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
gst-printf.h
Makefile.am
printf-args.c
printf-args.h
printf-extension.c
printf-extension.h
printf-parse.c
printf-parse.h
printf.c
printf.h
README
vasnprintf.c
vasnprintf.h

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.