+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
+2003-10-05 Matthias Clasen <maclas@gmx.de>
+
+ * configure.in: Make the various printf feature test macros
+ reflect the system printf, even when using the included printf.
+ In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h
+ needs that test result. (#122973)
+
+ * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
+ directly check for _g_vasprintf.
+
+ * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
+ if vasprintf() is available.
+
+ * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
+ trailing nul to the file. (#122973)
+
+ * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test
+ detect non-C99-compliance of AIX 5.1 and Solaris
+ vsnprintf(). (#122496)
+
Thu Oct 2 01:15:46 2003 Owen Taylor <otaylor@redhat.com>
* tests/gobject/ifacecheck.c: Test case for
r = vsnprintf(buffer, 5, s, args);
va_end(args);
+ if (r != 7)
+ exit(1);
+
+ /* AIX 5.1 and Solaris seems to have a half-baked vsnprintf()
+ implementation. The above will return 7 but if you replace
+ the size of the buffer with 0, it borks! */
+ va_start(args, s);
+ r = vsnprintf(buffer, 0, s, args);
+ va_end(args);
+
if (r != 7)
exit(1);
else
glib_cv_long_long_format="ll"
AC_DEFINE(HAVE_VASPRINTF,1)
- AC_DEFINE(HAVE_C99_VSNPRINTF,1)
- AC_DEFINE(HAVE_C99_SNPRINTF,1)
- AC_DEFINE(HAVE_UNIX98_PRINTF,1)
fi
# Checks needed for gnulib vasnprintf
[AC_HELP_STRING([--enable-man],
[regenerate man pages from Docbook [default=no]])],enable_man=yes,
enable_man=no)
-
dnl
dnl Check for xsltproc
dnl
http://www.gnu.org/software/gnulib/
-They have been modified to include g-gnulib.h. vasnprintf.c has also been modified to
-include support for long long printing if the system printf doesn't. This code is protected
-by #ifndef HAVE_LON_LONG_FORMAT.
+They have been modified to include g-gnulib.h. vasnprintf.c has also
+been modified to include support for long long printing if the system
+printf doesn't. This code is protected by #ifndef HAVE_LON_LONG_FORMAT.
-The files
+The files
printf.h
printf.c
g-gnulib.h
-have been written by me. printf.[hc] contain implementations of the
-remaining functions in the printf family based on
-vasnprintf. g-gnulib.h is included by all source files in order to
-move all exported functions to the _g_gnulib namespace, replace malloc
-by g_malloc and make sure that snprintf is only used if it implements
-C99 return value semantics.
+have been written by me. printf.[hc] contain implementations of the
+remaining functions in the printf family based on vasnprintf.
+g-gnulib.h is included by all source files in order to move all
+exported functions to the _g_gnulib namespace, replace malloc by
+g_malloc and make sure that snprintf is only used if it implements
+C99 return value semantics.
Matthias Clasen
July 28, 2003
if (result == NULL)
return -1;
- fwrite (result, 1, length + 1, file);
+ fwrite (result, 1, length, file);
free (result);
return length;
gint len;
g_return_val_if_fail (string != NULL, -1);
-#ifdef HAVE_VASPRINTF
+#ifdef _g_vasprintf
len = _g_vasprintf (string, format, args);
if (len < 0)
*string = NULL;
#define _g_vsprintf vsprintf
#define _g_vsnprintf vsnprintf
+#ifdef HAVE_VASPRINTF
#define _g_vasprintf vasprintf
+#endif
#else