This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin started speaking German today


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@erwin2 ~/tmp
$ gcc -o setl setl.c -lintl

waterlan@erwin2 ~/tmp
$ echo $LANG
C.UTF-8

waterlan@erwin2 ~/tmp
$ ./setl
locale: en_US charset: ISO-8859-1

waterlan@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@erwin2 ~/tmp
$ export LANG=nl_NL.UTF-8

waterlan@erwin2 ~/tmp
$ ./setl
locale: nl_NL.UTF-8 charset: UTF-8

waterlan@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@xs4all.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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]