It all depends on your locale. Here is the result of an experiment (bold text is text I typed, non-bold is output):
Code:
$ echo 'int main() { return bar; }' > foo.c
$ LC_ALL=en_US.UTF-8 make foo
cc foo.c -o foo
foo.c: In function ‘main’:
foo.c:1: error: ‘bar’ undeclared (first use in this function)
foo.c:1: error: (Each undeclared identifier is reported only once
foo.c:1: error: for each function it appears in.)
make: *** [foo] Error 1
$ LC_ALL=en_US make foo
cc foo.c -o foo
foo.c: In function 'main':
foo.c:1: error: 'bar' undeclared (first use in this function)
foo.c:1: error: (Each undeclared identifier is reported only once
foo.c:1: error: for each function it appears in.)
make: *** [foo] Error 1
Notice that in the first, the single quotes are actual unicode quote marks (‘’). In the second, they are the ASCII straight quotes ('').
As for getting Emacs to display them properly, I can’t help you there, though I’m sure it’s possible (I am a vi man myself
.