1The files
2
3 asnprintf.c
4 printf-args.c
5 printf-args.h
6 printf-parse.c
7 printf-parse.h
8 vasnprintf.c
9 vasnprintf.h
10
11are taken from the vasnprintf module of the GNUlib package, which can
12be found at:
13
14 http://www.gnu.org/software/gnulib/
15
16All files have been modified to include g-gnulib.h.
17
18vasnprintf.c has also been modified to include support for long long
19printing if the system printf doesn't. This code is protected by
20#ifndef HAVE_LONG_LONG_FORMAT.
21
22Code has been added to printf-args.[ch], printf-parse.c and vasnprintf.c
23to support printing of __int64 values with the I64 format modifier. This
24is protected by #ifdef HAVE_INT64_AND_I64.
25
26The files
27
28 printf.h
29 printf.c
30 g-gnulib.h
31
32have been written by me. printf.[hc] contain implementations of the
33remaining functions in the printf family based on vasnprintf.
34g-gnulib.h is included by all source files in order to move all
35exported functions to the _g_gnulib namespace, replace malloc by
36g_malloc and make sure that snprintf is only used if it implements
37C99 return value semantics.
38
39Matthias Clasen
40November 1, 2003
41
42To update:
43* Create an empty directory, put a configure.ac file into it.
44* Run gnulib-tool --lgpl=2 --import --lib=libgnu --source-base=lib \
45  --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. \
46  --no-conditional-dependencies --no-libtool --macro-prefix=gl \
47  isnand-nolibm isnanf-nolibm isnanl-nolibm printf-frexpl \
48  signbit vasnprintf
49* Then pick out the files that are already in glib/gnulib subdirectory
50  (the rest of the files are not needed):
51
52asnprintf.c
53c++defs.h
54float+.h
55fpucw.h
56gnulib_math.h.in (rename from math.in.h)
57isnan.c
58isnand.c
59isnand-nolibm.h
60isnanf.c
61isnanf-nolibm.h
62isnanl.c
63isnanl-nolibm.h
64printf-args.c
65printf-args.h
66printf-frexp.c
67printf-frexp.h
68printf-frexpl.c
69printf-frexpl.h
70printf-parse.c
71printf-parse.h
72signbitd.c
73signbitf.c
74signbitl.c
75vasnprintf.c
76vasnprintf.h
77verify.h
78xsize.h
79
80* Then look at the glib-gnulib.patch and re-introduce custom glib changes
81  contained in that patch.
82* If gnulib_math.h.in got some new @variables@, these will have to be
83  somehow set in meson.build, otherwise meson would warn about them
84  at configure stage
85
86LRN
87June 06, 2018
88