[vlc-devel] [PATCH 4/4] win32: delete old *printf fixup code.

davidf+nntp at woaf.net davidf+nntp at woaf.net
Fri Apr 10 14:53:01 CEST 2009


From: David Flynn <davidf at woaf.net>

mingw provides this all for free and is better.

Signed-off-by: David Flynn <davidf at rd.bbc.co.uk>
---
 include/vlc_fixups.h |  184 --------------------------------------------------
 1 files changed, 0 insertions(+), 184 deletions(-)

diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
index 0294c3d..224a134 100644
--- a/include/vlc_fixups.h
+++ b/include/vlc_fixups.h
@@ -51,202 +51,18 @@ static inline char *strdup (const char *str)
 }
 #endif
 
-#ifdef WIN32
-/* Windows' printf doesn't support %z modifiers, thus we need to rewrite
- * the format string in a wrapper. */
-# include <string.h>
-# include <stdlib.h>
-static inline char *vlc_fix_format_string (const char *format)
-{
-    char *fmt;
-# ifdef WIN64
-    const char *src = format, *tmp;
-    char *dst;
-    size_t n = 0;
-    while ((tmp = strstr (src, "%z")) != NULL)
-    {
-        n++;
-        src = tmp + 2;
-    }
-    if (n == 0)
-        return NULL;
-
-    fmt = (char*)malloc (strlen (format) + n + 1);
-    if (fmt == NULL)
-        return NULL;
-
-    src = format;
-    dst = fmt;
-    while ((tmp = strstr (src, "%z")) != NULL)
-    {
-        size_t d = tmp - src;
-        memcpy (dst, src, d);
-        dst += d;
-        memcpy (dst, "%ll", 3);
-        dst += 3;
-        src = tmp + 2;
-    }
-    strcpy (dst, src);
-# else
-    char *f;
-    if (strstr (format, "%z") == NULL)
-        return NULL;
-
-    fmt = strdup (format);
-    if (fmt == NULL)
-        return NULL;
-
-    while ((f = strstr (fmt, "%z")) != NULL)
-    {
-       f[1] = 'l';
-    }
-# endif
-    return fmt;
-}
-
-# include <stdio.h>
-# include <stdarg.h>
-
-static inline int vlc_vprintf (const char *format, va_list ap)
-{
-    char *fmt = vlc_fix_format_string (format);
-    int ret = vprintf (fmt ? fmt : format, ap);
-    free (fmt);
-    return ret;
-}
-# define vprintf vlc_vprintf
-
-static inline int vlc_vfprintf (FILE *stream, const char *format, va_list ap)
-{
-    char *fmt = vlc_fix_format_string (format);
-    int ret = vfprintf (stream, fmt ? fmt : format, ap);
-    free (fmt);
-    return ret;
-}
-# define vfprintf vlc_vfprintf
-
-static inline int vlc_vsprintf (char *str, const char *format, va_list ap)
-{
-    char *fmt = vlc_fix_format_string (format);
-    int ret = vsprintf (str, fmt ? fmt : format, ap);
-    free (fmt);
-    return ret;
-}
-# define vsprintf vlc_vsprintf
-
-static inline int vlc_vsnprintf (char *str, size_t size, const char *format, va_list ap)
-{
-    char *fmt = vlc_fix_format_string (format);
-    int ret = vsnprintf (str, size, fmt ? fmt : format, ap);
-    free (fmt);
-    return ret;
-}
-# define vsnprintf vlc_vsnprintf
-
-static inline int vlc_printf (const char *format, ...)
-{
-    va_list ap;
-    int ret;
-    va_start (ap, format);
-    ret = vprintf (format, ap);
-    va_end (ap);
-    return ret;
-}
-# define printf(...) vlc_printf(__VA_ARGS__)
-
-static inline int vlc_fprintf (FILE *stream, const char *format, ...)
-{
-    va_list ap;
-    int ret;
-    va_start (ap, format);
-    ret = vfprintf (stream, format, ap);
-    va_end (ap);
-    return ret;
-}
-# define fprintf vlc_fprintf
-
-#if 0
-static inline int vlc_sprintf (char *str, const char *format, ...)
-{
-    va_list ap;
-    int ret;
-    va_start (ap, format);
-    ret = vsprintf (str, format, ap);
-    va_end (ap);
-    return ret;
-}
-# define sprintf vlc_sprintf
-#endif
-
-static inline int vlc_snprintf (char *str, size_t size, const char *format, ...)
-{
-    va_list ap;
-    int ret;
-    va_start (ap, format);
-    ret = vsnprintf (str, size, format, ap);
-    va_end (ap);
-    return ret;
-}
-# define snprintf vlc_snprintf
-
-/* Make sure we don't use flawed vasprintf or asprintf either */
-# undef HAVE_VASPRINTF
-# undef HAVE_ASPRINTF
-#endif
-
 #ifndef HAVE_VASPRINTF
 # include <stdio.h>
 # include <stdlib.h>
 # include <stdarg.h>
 static inline int vasprintf (char **strp, const char *fmt, va_list ap)
 {
-#ifndef UNDER_CE
     int len = vsnprintf (NULL, 0, fmt, ap) + 1;
     char *res = (char *)malloc (len);
     if (res == NULL)
         return -1;
     *strp = res;
     return vsnprintf (res, len, fmt, ap);
-#else
-    /* HACK: vsnprintf in the WinCE API behaves like
-     * the one in glibc 2.0 and doesn't return the number of characters
-     * it needed to copy the string.
-     * cf http://msdn.microsoft.com/en-us/library/1kt27hek.aspx
-     * and cf the man page of vsnprintf
-     *
-     Guess we need no more than 50 bytes. */
-    int n, size = 50;
-    char *res, *np;
-
-    if ((res = (char *) malloc (size)) == NULL)
-        return -1;
-
-    while (1)
-    {
-        n = vsnprintf (res, size, fmt, ap);
-
-        /* If that worked, return the string. */
-        if (n > -1 && n < size)
-        {
-            *strp = res;
-            return n;
-        }
-
-        /* Else try again with more space. */
-        size *= 2;  /* twice the old size */
-
-        if ((np = (char *) realloc (res, size)) == NULL)
-        {
-            free(res);
-            return -1;
-        }
-        else
-        {
-            res = np;
-        }
-
-    }
-#endif /* UNDER_CE */
 }
 #endif
 
-- 
1.5.6.5




More information about the vlc-devel mailing list