Mail Archives: cygwin/2011/10/05/12:04:42
Op 4-10-2011 20:20, Corinna Vinschen schreef:
> On Oct 4 20:03, Erwin Waterlander wrote:
>> Corinna Vinschen schreef, Op 4-10-2011 16:29:
>>> Does it? Even if I'm running a german OS, I absolutely hate to see
>>> german diagnostic output from gcc, and I absolutely hate certain
>>> programs using non-ASCII chars in output. (In)famous examples are
>>> Unicode quoting chars rather than ' or ", or using the Unicode
>>> hyphen character rather than -. But that's just me.
>> You got used to ASCII, like all the old-timers... ;)
>> export LANG=C is your solution.
>>
>> By the way, I noticed that with the default locale C.UTF-8 the
>> nl_langinfo(CODESET) C function<langinfo.h> returns wrongly
>> "ISO-8859-1",
> Not for me:
>
> $ cat> setl.c<<EOF
> #include<stdio.h>
> #include<locale.h>
> #include<langinfo.h>
>
> int main(int argc, char **argv)
> {
> char *loc;
> if (argc> 1)
> loc = setlocale (LC_ALL, argv[1]);
> else
> loc = setlocale (LC_CTYPE, NULL);
> printf ("locale: %s charset: %s\n", loc, nl_langinfo (CODESET));
> return 0;
> }
> EOF
> $ gcc -o setl setl.c
> $ ./setl
> locale: C charset: ANSI_X3.4-1968
> $ ./setl C
> locale: C charset: ANSI_X3.4-1968
> $ ./setl C.utf8
> locale: C.utf8 charset: UTF-8
> $ ./setl C.UTF-8
> locale: C.UTF-8 charset: UTF-8
>
>
> Corinna
>
Hi,
My program (wcd) uses gettext/libintl. Libintl is causing the effect.
Libintl is not working properly with a locale C.UTF-8. That is a serious
problem.
#include <stdio.h>
#include <locale.h>
#include <langinfo.h>
#include <libintl.h>
int main(int argc, char **argv)
{
char *loc;
if (argc > 1)
loc = setlocale (LC_ALL, argv[1]);
else
loc = setlocale (LC_CTYPE, "");
bindtextdomain("setl","/usr/share/locale");
textdomain("setl");
printf ("locale: %s charset: %s\n", loc, nl_langinfo (CODESET));
return 0;
}
waterlan AT erwin2 ~/tmp
$ gcc -o setl setl.c -lintl
waterlan AT erwin2 ~/tmp
$ echo $LANG
C.UTF-8
waterlan AT erwin2 ~/tmp
$ ./setl
locale: en_US charset: ISO-8859-1
waterlan AT erwin2 ~/tmp
$ locale
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=
waterlan AT erwin2 ~/tmp
$ export LANG=nl_NL.UTF-8
waterlan AT erwin2 ~/tmp
$ ./setl
locale: nl_NL.UTF-8 charset: UTF-8
waterlan AT erwin2 ~/tmp
$ locale
LANG=nl_NL.UTF-8
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_ALL=
--
Erwin Waterlander waterlan AT xs4all DOT nl
Zeelsterstraat 59B, 5652 EB Eindhoven, The Netherlands
www: http://www.xs4all.nl/~waterlan/
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -