On Wed, Sep 28, 2005 at 06:03:16AM -0400, Jakub Jelinek wrote:
On Wed, Sep 28, 2005 at 04:56:09AM -0500, Berna Massingill wrote:
On FC2 (and earlier RedHat) systems, error messages from gcc seem to have been straight ASCII. On a couple of FC4 systems, output includes some non-ASCII characters; specifically, the characters used for single quotes (previous ` and ') have been replaced by something multi-byte. (I base this claim on redirecting stderr into a file and then displaying file contents with "od -c".) The sequence that replaces ' displays okay, but the sequence that replaces ` does not (appears as boldface u with umlaut).
My guess is that there's an environment variable somewhere that's not getting set quite right; the man page for gcc seems to be indicating that what gets produced for error messages is controlled by environment variables LANG and LC_MESSAGES. LC_MESSAGES is unset; LANG is set to en_US.UTF-8.
It is LC_CTYPE that tells the compiler what the display character set is. If LC_ALL nor LC_CTYPE is present in the environment, ctype defaults to $LANG (if set), otherwise to C. If your terminal can't display UTF-8 encoded characters, then I guess you shouldn't be using UTF-8 character set...
Works just fine here in FC4 both on the console and in gnome-terminal.
(Sorry about the delay in responding; I wanted to check behavior on a couple of different systems.)
Interesting ....
I would have said "isn't a text console a text console, and they all work the same way?" but apparently not -- on one system I use, I get the weird symptom I describe, while on another I don't. I guess it does make a kind of sense given that the two systems have different video hardware and presumably use different drivers.
Terminal emulations (gnome-terminal and xterm) seem to be fine on both systems.
Setting LC_CTYPE=C on the badly-behaving system makes the annoying symptom go away. I would not have guessed from the description in the gcc man page that this would have any effect on how error messages are formatted.
Thanks for the help!
-- blm