(truncate_wchar): Use wcrtomb not wctomb.
authordrepper <drepper>
Tue, 21 Aug 2001 02:39:40 +0000 (02:39 +0000)
committerdrepper <drepper>
Tue, 21 Aug 2001 02:39:40 +0000 (02:39 +0000)
posix/regex.c

index a5c35fe..facb833 100644 (file)
@@ -4627,9 +4627,16 @@ static unsigned char
 truncate_wchar (c)
      CHAR_T c;
 {
 truncate_wchar (c)
      CHAR_T c;
 {
-  unsigned char buf[MB_LEN_MAX];
-  int retval = wctomb(buf, c);
-  return retval > 0 ? buf[0] : (unsigned char)c;
+  unsigned char buf[MB_CUR_MAX];
+  mbstate_t state;
+  int retval;
+  memset (&state, '\0', sizeof (state));
+# ifdef _LIBC
+  retval = __wcrtomb (buf, c, &state);
+# else
+  retval = wcrtomb (buf, c, &state);
+# endif
+  return retval > 0 ? buf[0] : (unsigned char) c;
 }
 #endif /* WCHAR */
 
 }
 #endif /* WCHAR */