]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Avoid passing an 'rpl_mbstate_t *' to the system's wcrtomb.
authorBruno Haible <bruno@clisp.org>
Fri, 1 Jan 2010 02:04:02 +0000 (03:04 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 1 Jan 2010 02:04:02 +0000 (03:04 +0100)
gettext-runtime/intl/ChangeLog
gettext-runtime/intl/vasnprintf.c
gettext-runtime/libasprintf/ChangeLog
gettext-runtime/libasprintf/vasnprintf.c

index 654b16cfb6f35396152b1bc9105d2f49bfdafa5a..ab35972cd5001b399438834350edd798365dc546 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-01  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): If GNULIB_defined_mbstate_t is defined,
+       use wctomb instead of wcrtomb.
+
 2009-12-26  Bruno Haible  <bruno@clisp.org>
 
        * libintl.rc: Update.
index 08949b428796356503a656609b1801c29df725c8..295dbc46b438664f7c004ae0be75d3a06e03b62e 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2009 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2010 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -2368,7 +2368,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* Use only as many wide characters as needed to produce
                          at most PRECISION bytes, from the left.  */
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #  endif
@@ -2382,7 +2382,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           if (*arg_end == 0)
                             /* Found the terminating null wide character.  */
                             break;
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg_end, &state);
 #  else
                           count = wctomb (cbuf, *arg_end);
@@ -2413,7 +2413,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* Use the entire string, and count the number of
                          bytes.  */
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #  endif
@@ -2427,7 +2427,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           if (*arg_end == 0)
                             /* Found the terminating null wide character.  */
                             break;
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg_end, &state);
 #  else
                           count = wctomb (cbuf, *arg_end);
@@ -2465,7 +2465,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   {
                     TCHAR_T *tmpptr = tmpsrc;
                     size_t remaining;
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                     mbstate_t state;
                     memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2476,7 +2476,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                         if (*arg == 0)
                           abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                         count = wcrtomb (cbuf, *arg, &state);
 #   else
                         count = wctomb (cbuf, *arg);
@@ -2546,7 +2546,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* We know the number of bytes in advance.  */
                       size_t remaining;
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2558,7 +2558,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                           if (*arg == 0)
                             abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg, &state);
 #   else
                           count = wctomb (cbuf, *arg);
@@ -2576,7 +2576,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     }
                   else
                     {
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2587,7 +2587,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                           if (*arg == 0)
                             abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg, &state);
 #   else
                           count = wctomb (cbuf, *arg);
index 1bd01bc8d1ebb8d498bbb22b2a4600c1b5a04d17..79761d2573ca3f7a1084ab30b73a9128e6d3998b 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-01  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (VASNPRINTF): If GNULIB_defined_mbstate_t is defined,
+       use wctomb instead of wcrtomb.
+
 2009-12-12  Bruno Haible  <bruno@clisp.org>
 
        * *.h, *.c: Untabify.
index 08949b428796356503a656609b1801c29df725c8..295dbc46b438664f7c004ae0be75d3a06e03b62e 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2009 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2010 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published
@@ -2368,7 +2368,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* Use only as many wide characters as needed to produce
                          at most PRECISION bytes, from the left.  */
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #  endif
@@ -2382,7 +2382,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           if (*arg_end == 0)
                             /* Found the terminating null wide character.  */
                             break;
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg_end, &state);
 #  else
                           count = wctomb (cbuf, *arg_end);
@@ -2413,7 +2413,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* Use the entire string, and count the number of
                          bytes.  */
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #  endif
@@ -2427,7 +2427,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           if (*arg_end == 0)
                             /* Found the terminating null wide character.  */
                             break;
-#  if HAVE_WCRTOMB
+#  if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg_end, &state);
 #  else
                           count = wctomb (cbuf, *arg_end);
@@ -2465,7 +2465,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   {
                     TCHAR_T *tmpptr = tmpsrc;
                     size_t remaining;
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                     mbstate_t state;
                     memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2476,7 +2476,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                         if (*arg == 0)
                           abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                         count = wcrtomb (cbuf, *arg, &state);
 #   else
                         count = wctomb (cbuf, *arg);
@@ -2546,7 +2546,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     {
                       /* We know the number of bytes in advance.  */
                       size_t remaining;
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2558,7 +2558,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                           if (*arg == 0)
                             abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg, &state);
 #   else
                           count = wctomb (cbuf, *arg);
@@ -2576,7 +2576,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     }
                   else
                     {
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                       mbstate_t state;
                       memset (&state, '\0', sizeof (mbstate_t));
 #   endif
@@ -2587,7 +2587,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                           if (*arg == 0)
                             abort ();
-#   if HAVE_WCRTOMB
+#   if HAVE_WCRTOMB && !defined GNULIB_defined_mbstate_t
                           count = wcrtomb (cbuf, *arg, &state);
 #   else
                           count = wctomb (cbuf, *arg);