mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 01:58:54 +01:00 
			
		
		
		
	Make the various printf feature test macros reflect the system printf,
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)
This commit is contained in:
		
				
					committed by
					
						
						Matthias Clasen
					
				
			
			
				
	
			
			
			
						parent
						
							7fabc62de7
						
					
				
				
					commit
					9a76ff17c1
				
			
							
								
								
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,23 @@
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								acinclude.m4
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								acinclude.m4
									
									
									
									
									
								
							@@ -20,6 +20,16 @@ doit(char * s, ...)
 | 
			
		||||
  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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -773,9 +773,6 @@ if test "$enable_included_printf" != "yes" ; then
 | 
			
		||||
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
 | 
			
		||||
@@ -1932,7 +1929,6 @@ AC_ARG_ENABLE(man,
 | 
			
		||||
              [AC_HELP_STRING([--enable-man],
 | 
			
		||||
                              [regenerate man pages from Docbook [default=no]])],enable_man=yes,
 | 
			
		||||
              enable_man=no)
 | 
			
		||||
 | 
			
		||||
dnl
 | 
			
		||||
dnl Check for xsltproc
 | 
			
		||||
dnl
 | 
			
		||||
 
 | 
			
		||||
@@ -13,22 +13,22 @@ be found at:
 | 
			
		||||
 | 
			
		||||
 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
 | 
			
		||||
 
 | 
			
		||||
@@ -96,7 +96,7 @@ int _g_gnulib_vfprintf (FILE *file, char const *format, va_list args)
 | 
			
		||||
  if (result == NULL) 
 | 
			
		||||
    return -1;
 | 
			
		||||
 | 
			
		||||
  fwrite (result, 1, length + 1, file);
 | 
			
		||||
  fwrite (result, 1, length, file);
 | 
			
		||||
  free (result);
 | 
			
		||||
  
 | 
			
		||||
  return length;
 | 
			
		||||
 
 | 
			
		||||
@@ -300,7 +300,7 @@ g_vasprintf (gchar      **string,
 | 
			
		||||
  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;
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,9 @@
 | 
			
		||||
#define _g_vsprintf  vsprintf
 | 
			
		||||
#define _g_vsnprintf vsnprintf
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_VASPRINTF
 | 
			
		||||
#define _g_vasprintf vasprintf
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user