]> git.saurik.com Git - apple/libc.git/blobdiff - locale/FreeBSD/wcsftime.c
Libc-763.11.tar.gz
[apple/libc.git] / locale / FreeBSD / wcsftime.c
index 2598043e644133d007bab9e9e1c1347863a4cbe7..40f3c6cf61bbfb1c83d4f5041fa058f5992332f4 100644 (file)
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/locale/wcsftime.c,v 1.4 2004/04/07 09:47:56 tjr Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/locale/wcsftime.c,v 1.6 2009/01/15 20:45:59 rdivacky Exp $");
 
 #include <errno.h>
 #include <limits.h>
@@ -52,7 +52,9 @@ wcsftime(wchar_t * __restrict wcs, size_t maxsize,
 {
        static const mbstate_t initial;
        mbstate_t mbs;
-       char *dst, *dstp, *sformat;
+       char *dst, *sformat;
+       const char *dstp;
+       const wchar_t *formatp;
        size_t n, sflen;
        int sverrno;
 
@@ -63,13 +65,14 @@ wcsftime(wchar_t * __restrict wcs, size_t maxsize,
         * for strftime(), which only handles single-byte characters.
         */
        mbs = initial;
-       sflen = wcsrtombs(NULL, &format, 0, &mbs);
+       formatp = format;
+       sflen = wcsrtombs(NULL, &formatp, 0, &mbs);
        if (sflen == (size_t)-1)
                goto error;
        if ((sformat = malloc(sflen + 1)) == NULL)
                goto error;
        mbs = initial;
-       wcsrtombs(sformat, &format, sflen + 1, &mbs);
+       wcsrtombs(sformat, &formatp, sflen + 1, &mbs);
 
        /*
         * Allocate memory for longest multibyte sequence that will fit
@@ -88,7 +91,7 @@ wcsftime(wchar_t * __restrict wcs, size_t maxsize,
                goto error;
        dstp = dst;
        mbs = initial;
-       n = mbsrtowcs(wcs, (const char **)&dstp, maxsize, &mbs);
+       n = mbsrtowcs(wcs, &dstp, maxsize, &mbs);
        if (n == (size_t)-2 || n == (size_t)-1 || dstp != NULL)
                goto error;