]> sourceware.org Git - newlib-cygwin.git/commitdiff
* strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value.
authorCorinna Vinschen <corinna@vinschen.de>
Fri, 8 May 2009 20:28:20 +0000 (20:28 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Fri, 8 May 2009 20:28:20 +0000 (20:28 +0000)
(sys_cp_mbstowcs): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/strfuncs.cc

index b887f4200eee33a2e72696c49a86d7a5408022ab..f0beeccd6b7378ea9c894ffb91faecd56621f086 100644 (file)
@@ -1,3 +1,9 @@
+2009-05-08  Corinna Vinschen  <corinna@vinschen.de>
+           IWAMURO Motonori <deenheart@gmail.com>
+
+       * strfuncs.cc (sys_cp_wcstombs): save and restore previous errno value.
+       (sys_cp_mbstowcs): Ditto.
+
 2009-05-08  IWAMURO Motonori <deenheart@gmail.com>
 
        * strfuncs.cc (sys_cp_wcstombs): Set errno to 0 before converting
index 75ca3db28aeebecd6b710a6626fdb7ab568b4281..e0395745d0527fcb27f720fcf00672250100737e 100644 (file)
@@ -416,6 +416,7 @@ sys_cp_wcstombs (wctomb_p f_wctomb, char *charset, char *dst, size_t len,
   wchar_t *pwcs = (wchar_t *) src;
   size_t n = 0;
   mbstate_t ps;
+  save_errno save;
 
   memset (&ps, 0, sizeof ps);
   if (dst == NULL)
@@ -432,7 +433,6 @@ sys_cp_wcstombs (wctomb_p f_wctomb, char *charset, char *dst, size_t len,
          ASCII SO; UTF-8 representation of invalid char. */
       if (bytes == -1 && *charset != 'U'/*TF-8*/)
         {
-         _REENT->_errno = 0;
          buf[0] = 0x0e; /* ASCII SO */
          bytes = __utf8_wctomb (_REENT, buf + 1, pw, charset, &ps);
          if (bytes == -1)
@@ -523,6 +523,7 @@ sys_cp_mbstowcs (mbtowc_p f_mbtowc, char *charset, wchar_t *dst, size_t dlen,
   size_t len = dlen;
   int bytes;
   mbstate_t ps;
+  save_errno save;
 
   memset (&ps, 0, sizeof ps);
   if (dst == NULL)
This page took 0.030457 seconds and 5 git commands to generate.