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.