]> sourceware.org Git - newlib-cygwin.git/commitdiff
* libc/locale/locale.c (lc_ctype_charset): Set to "UTF-8" on Cygwin.
authorCorinna Vinschen <corinna@vinschen.de>
Sun, 27 Sep 2009 12:21:16 +0000 (12:21 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Sun, 27 Sep 2009 12:21:16 +0000 (12:21 +0000)
(lc_message_charset): Ditto.
(loadlocale): Set charset of the "C" locale to "UTF-8" on Cygwin.
* libc/stdlib/mbtowc_r.c (__mbtowc): Default to __utf8_mbtowc on
Cygwin.
* libc/stdlib/wctomb_r.c (__wctomb): Default to __utf8_wctomb on
Cygwin.

newlib/ChangeLog
newlib/libc/locale/locale.c
newlib/libc/stdlib/mbtowc_r.c
newlib/libc/stdlib/wctomb_r.c

index 68706f9ef8b3007c2d9d940e04c453287bb03195..5202b89b0289387f6b434dae81d353a5ef17a98c 100644 (file)
@@ -1,3 +1,13 @@
+2009-09-27  Corinna Vinschen  <corinna@vinschen.de>
+
+       * libc/locale/locale.c (lc_ctype_charset): Set to "UTF-8" on Cygwin.
+       (lc_message_charset): Ditto.
+       (loadlocale): Set charset of the "C" locale to "UTF-8" on Cygwin.
+       * libc/stdlib/mbtowc_r.c (__mbtowc): Default to __utf8_mbtowc on
+       Cygwin.
+       * libc/stdlib/wctomb_r.c (__wctomb): Default to __utf8_wctomb on
+       Cygwin.
+
 2009-09-26  Eric Blake  <ebb9@byu.net>
 
        * libc/include/sys/unistd.h (execvpe, fexecve) [__CYGWIN__]:
index ef7a7e428721e1e16f8c5d680a2ef002b0be6cae..584e5d8f4e328ab725408866ccc254c490fdd8c6 100644 (file)
@@ -225,8 +225,13 @@ static const char *__get_locale_env(struct _reent *, int);
 
 #endif
 
+#ifdef __CYGWIN__
+static char lc_ctype_charset[ENCODING_LEN + 1] = "UTF-8";
+static char lc_message_charset[ENCODING_LEN + 1] = "UTF-8";
+#else
 static char lc_ctype_charset[ENCODING_LEN + 1] = "ASCII";
 static char lc_message_charset[ENCODING_LEN + 1] = "ASCII";
+#endif
 static int lc_ctype_cjk_lang = 0;
 
 char *
@@ -428,7 +433,11 @@ loadlocale(struct _reent *p, int category)
   if (!strcmp (locale, "POSIX"))
     strcpy (locale, "C");
   if (!strcmp (locale, "C"))                           /* Default "C" locale */
+#ifdef __CYGWIN__
+    strcpy (charset, "UTF-8");
+#else
     strcpy (charset, "ASCII");
+#endif
   else if (locale[0] == 'C' && locale[1] == '-')       /* Old newlib style */
        strcpy (charset, locale + 2);
   else                                                 /* POSIX style */
index 4e80c51b137b1428e263cd4b1213e5ebec9baab5..a791692be2f69c9627c64e11ea57787bf5325aff 100644 (file)
@@ -9,7 +9,11 @@
 
 int (*__mbtowc) (struct _reent *, wchar_t *, const char *, size_t,
                 const char *, mbstate_t *)
+#ifdef __CYGWIN__
+   = __utf8_mbtowc;
+#else
    = __ascii_mbtowc;
+#endif
 
 int
 _DEFUN (_mbtowc_r, (r, pwc, s, n, state),
index 95a04069c937d73acc4b5323d17e7bb337826df4..207221a7ea7548a66180e501ac4a03e149aa6153 100644 (file)
@@ -8,7 +8,11 @@
 
 int (*__wctomb) (struct _reent *, char *, wchar_t, const char *charset,
                 mbstate_t *)
+#ifdef __CYGWIN__
+    = __utf8_wctomb;
+#else
     = __ascii_wctomb;
+#endif
 
 int
 _DEFUN (_wctomb_r, (r, s, wchar, state),
This page took 0.058231 seconds and 5 git commands to generate.