gstreamer/gst/printf
Tim-Philipp Müller e8a9f7acdf printf: fix handling of old printf extension specifiers for ABI compatibility
Fixes abort when the old specifiers are used. Fix up the conversion
specifier, it would get overwritten with 'c' below to the extension
format char, which then later is unhandled, leading to the abort.
Also fix up and enable unit test for this.

https://bugzilla.gnome.org/process_bug.cgi
2013-04-18 00:46:58 +01:00
..
asnprintf.c printf: add our own printf implementation for debug logging 2013-04-12 23:05:56 +01:00
gst-printf.h printf: use sprintf() to work around glibc complaining about %n in a writable format string 2013-04-14 11:23:10 +01:00
Makefile.am printf: deal with some of the HAVE_FOO used in the printf code 2013-04-12 23:05:59 +01:00
printf-args.c printf: make printf parser recognise our pointer extension format 2013-04-12 23:05:57 +01:00
printf-args.h printf: make printf parser recognise our pointer extension format 2013-04-12 23:05:57 +01:00
printf-extension.c printf: add infrastructure for pointer extensions hook 2013-04-12 23:05:57 +01:00
printf-extension.h printf: add infrastructure for pointer extensions hook 2013-04-12 23:05:57 +01:00
printf-parse.c printf: fix handling of old printf extension specifiers for ABI compatibility 2013-04-18 00:46:58 +01:00
printf-parse.h printf: make printf parser recognise our pointer extension format 2013-04-12 23:05:57 +01:00
printf.c printf: disable some unused printf variants 2013-04-14 11:33:41 +01:00
printf.h printf: disable some unused printf variants 2013-04-14 11:33:41 +01:00
README printf: fix alloca use for windows with mingw32 2013-04-12 23:05:58 +01:00
vasnprintf.c printf: fix alloca use for windows with mingw32 2013-04-12 23:05:58 +01:00
vasnprintf.h printf: fix up dodgy use of #if HAVE_FOO and #if !HAVE_FOO 2013-04-12 23:05:58 +01:00

The files

 asnprintf.c
 printf-args.c
 printf-args.h
 printf-parse.c
 printf-parse.h
 vasnprintf.c
 vasnprintf.h

are taken from the vasnprintf module of the GNUlib package, which can
be found at:

 http://www.gnu.org/software/gnulib/

All files 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_LONG_LONG_FORMAT.

Code has been added to printf-args.[ch], printf-parse.c and vasnprintf.c
to support printing of __int64 values with the I64 format modifier. This
is protected by #ifdef HAVE_INT64_AND_I64.

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.

Matthias Clasen
November 1, 2003

-----

GStreamer modifications

This was imported from GLib's gnulib subdirectory.

g-gnulib.h and _g_gnulib namespace has been changed to gst-printf.h and
__gst_printf namespace for GStreamer. Also #define HAVE_SNPRINTF 0 has
been changed to #undef HAVE_SNPRINTF, and HAVE_ALLOCA has been replaced
by an #if defined(alloca) || defined(GLIB_HAVE_ALLOCA_H)

printf-extension.[ch] were added to provide support for custom pointer
arguments (e.g. caps, events, etc.)

Files have also been indented with gst-indent, so this is basically a
permanent fork and any patches will have to be merged manually.

March 30, 2013.