diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/Makefile.gnulib | 35 | ||||
| -rw-r--r-- | lib/Makefile.in | 99 | ||||
| -rw-r--r-- | lib/dup2.c | 97 | ||||
| -rw-r--r-- | lib/math.in.h | 9 | ||||
| -rw-r--r-- | lib/stdbool.mini.h | 99 | ||||
| -rw-r--r-- | lib/stddef.in.h | 86 | ||||
| -rw-r--r-- | lib/stdlib.in.h | 2 | ||||
| -rw-r--r-- | lib/string.in.h | 2 | ||||
| -rw-r--r-- | lib/unistd.in.h | 25 | ||||
| -rw-r--r-- | lib/vasnprintf.c | 1 | 
11 files changed, 418 insertions, 40 deletions
| diff --git a/lib/Makefile.am b/lib/Makefile.am index 24644e33..2c8da9d9 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -65,7 +65,7 @@ nobase_nodist_include_HEADERS = \  # AIX >= 5.3 has <stdbool.h>.  # Solaris 10 and some HP-UX 11 versions have <stdbool.h> but it does not  # necessarily work. -unistring/stdbool.h : $(STDBOOL_H) +unistring/stdbool.h : $(STDBOOL_H) stdbool.mini.h  	@MKDIR_P@ unistring  	rm -f $@-t $@  	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @@ -85,6 +85,7 @@ unistring/stdbool.h : $(STDBOOL_H)  BUILT_SOURCES    += unistring/stdbool.h  MOSTLYCLEANFILES += unistring/stdbool.h-t  CLEANFILES       += unistring/stdbool.h +EXTRA_DIST       += stdbool.mini.h  # Produce an unistring/stdint.h that is not compiler dependent.  # Glibc >= 2 has <stdint.h>. diff --git a/lib/Makefile.gnulib b/lib/Makefile.gnulib index b7a5d319..735befa0 100644 --- a/lib/Makefile.gnulib +++ b/lib/Makefile.gnulib @@ -124,6 +124,15 @@ CLEANFILES += configmake.h configmake.h-t  ## end   gnulib module configmake +## begin gnulib module dup2 + + +EXTRA_DIST += dup2.c + +EXTRA_libunistring_la_SOURCES += dup2.c + +## end   gnulib module dup2 +  ## begin gnulib module errno  BUILT_SOURCES += $(ERRNO_H) @@ -603,6 +612,29 @@ EXTRA_DIST += stdbool.in.h  ## end   gnulib module stdbool +## begin gnulib module stddef + +BUILT_SOURCES += $(STDDEF_H) + +# We need the following in order to create <stddef.h> when the system +# doesn't have one that works with the given compiler. +stddef.h: stddef.in.h +	rm -f $@-t $@ +	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +	  sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +	      -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ +	      -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ +	      -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ +	      < $(srcdir)/stddef.in.h; \ +	} > $@-t +	mv $@-t $@ +MOSTLYCLEANFILES += stddef.h stddef.h-t + +EXTRA_DIST += stddef.in.h + +## end   gnulib module stddef +  ## begin gnulib module stdint  BUILT_SOURCES += $(STDINT_H) @@ -3003,6 +3035,7 @@ unistd.h: unistd.in.h  	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \  	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \  	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ +	      -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \  	      -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \  	      -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \  	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ @@ -3023,6 +3056,7 @@ unistd.h: unistd.in.h  	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \  	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \  	      -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ +	      -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \  	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \  	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \  	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ @@ -3030,6 +3064,7 @@ unistd.h: unistd.in.h  	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \  	      -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \  	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ +	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \  	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \  	      < $(srcdir)/unistd.in.h; \  	} > $@-t diff --git a/lib/Makefile.in b/lib/Makefile.in index a8cc5680..e243d6b3 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -59,6 +59,7 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4  am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \  	$(top_srcdir)/gnulib-m4/alloca.m4 \  	$(top_srcdir)/gnulib-m4/codeset.m4 \ +	$(top_srcdir)/gnulib-m4/dup2.m4 \  	$(top_srcdir)/gnulib-m4/eealloc.m4 \  	$(top_srcdir)/gnulib-m4/environ.m4 \  	$(top_srcdir)/gnulib-m4/errno_h.m4 \ @@ -68,6 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \  	$(top_srcdir)/gnulib-m4/exponentf.m4 \  	$(top_srcdir)/gnulib-m4/exponentl.m4 \  	$(top_srcdir)/gnulib-m4/extensions.m4 \ +	$(top_srcdir)/gnulib-m4/fcntl_h.m4 \  	$(top_srcdir)/gnulib-m4/float_h.m4 \  	$(top_srcdir)/gnulib-m4/fpieee.m4 \  	$(top_srcdir)/gnulib-m4/frexp.m4 \ @@ -111,8 +113,10 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \  	$(top_srcdir)/gnulib-m4/memchr.m4 \  	$(top_srcdir)/gnulib-m4/minmax.m4 \  	$(top_srcdir)/gnulib-m4/mmap-anon.m4 \ +	$(top_srcdir)/gnulib-m4/mode_t.m4 \  	$(top_srcdir)/gnulib-m4/multiarch.m4 \  	$(top_srcdir)/gnulib-m4/nocrash.m4 \ +	$(top_srcdir)/gnulib-m4/open.m4 \  	$(top_srcdir)/gnulib-m4/printf-frexp.m4 \  	$(top_srcdir)/gnulib-m4/printf-frexpl.m4 \  	$(top_srcdir)/gnulib-m4/printf.m4 \ @@ -121,6 +125,7 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \  	$(top_srcdir)/gnulib-m4/signbit.m4 \  	$(top_srcdir)/gnulib-m4/size_max.m4 \  	$(top_srcdir)/gnulib-m4/stdbool.m4 \ +	$(top_srcdir)/gnulib-m4/stddef_h.m4 \  	$(top_srcdir)/gnulib-m4/stdint.m4 \  	$(top_srcdir)/gnulib-m4/stdint_h.m4 \  	$(top_srcdir)/gnulib-m4/stdlib_h.m4 \ @@ -730,6 +735,7 @@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@  EOVERFLOW_VALUE = @EOVERFLOW_VALUE@  ERRNO_H = @ERRNO_H@  EXEEXT = @EXEEXT@ +FCNTL_H = @FCNTL_H@  FGREP = @FGREP@  FLOAT_H = @FLOAT_H@  GLIBC21 = @GLIBC21@ @@ -797,6 +803,7 @@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@  GNULIB_MEMRCHR = @GNULIB_MEMRCHR@  GNULIB_MKDTEMP = @GNULIB_MKDTEMP@  GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ +GNULIB_OPEN = @GNULIB_OPEN@  GNULIB_PUTENV = @GNULIB_PUTENV@  GNULIB_RANDOM_R = @GNULIB_RANDOM_R@  GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ @@ -829,6 +836,7 @@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@  GNULIB_TRUNC = @GNULIB_TRUNC@  GNULIB_TRUNCF = @GNULIB_TRUNCF@  GNULIB_TRUNCL = @GNULIB_TRUNCL@ +GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@  GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@  GNULIB_UNSETENV = @GNULIB_UNSETENV@  GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ @@ -927,6 +935,7 @@ HAVE_UNISTD_H = @HAVE_UNISTD_H@  HAVE_UNSETENV = @HAVE_UNSETENV@  HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@  HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@  HAVE_WCRTOMB = @HAVE_WCRTOMB@  HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@  HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ @@ -967,10 +976,12 @@ MAKEINFO = @MAKEINFO@  MKDIR_P = @MKDIR_P@  NAMESPACING = @NAMESPACING@  NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@  NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@  NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@  NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@  NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@  NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@  NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@  NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ @@ -978,10 +989,12 @@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@  NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@  NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@  NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@  NEXT_FLOAT_H = @NEXT_FLOAT_H@  NEXT_ICONV_H = @NEXT_ICONV_H@  NEXT_LOCALE_H = @NEXT_LOCALE_H@  NEXT_MATH_H = @NEXT_MATH_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@  NEXT_STDINT_H = @NEXT_STDINT_H@  NEXT_STDLIB_H = @NEXT_STDLIB_H@  NEXT_STRING_H = @NEXT_STRING_H@ @@ -999,6 +1012,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@  PACKAGE_NAME = @PACKAGE_NAME@  PACKAGE_STRING = @PACKAGE_STRING@  PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@  PACKAGE_VERSION = @PACKAGE_VERSION@  PATH_SEPARATOR = @PATH_SEPARATOR@  PERL = @PERL@ @@ -1012,6 +1026,7 @@ REPLACE_CEILF = @REPLACE_CEILF@  REPLACE_CEILL = @REPLACE_CEILL@  REPLACE_CHOWN = @REPLACE_CHOWN@  REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_DUP2 = @REPLACE_DUP2@  REPLACE_FCHDIR = @REPLACE_FCHDIR@  REPLACE_FLOORF = @REPLACE_FLOORF@  REPLACE_FLOORL = @REPLACE_FLOORL@ @@ -1040,6 +1055,8 @@ REPLACE_MEMCHR = @REPLACE_MEMCHR@  REPLACE_MEMMEM = @REPLACE_MEMMEM@  REPLACE_MKSTEMP = @REPLACE_MKSTEMP@  REPLACE_NAN = @REPLACE_NAN@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OPEN = @REPLACE_OPEN@  REPLACE_PUTENV = @REPLACE_PUTENV@  REPLACE_ROUND = @REPLACE_ROUND@  REPLACE_ROUNDF = @REPLACE_ROUNDF@ @@ -1065,10 +1082,12 @@ SHELL = @SHELL@  SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@  SIZE_T_SUFFIX = @SIZE_T_SUFFIX@  STDBOOL_H = @STDBOOL_H@ +STDDEF_H = @STDDEF_H@  STDINT_H = @STDINT_H@  STRIP = @STRIP@  TEXI2DVI = @TEXI2DVI@  UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@  VERSION = @VERSION@  VOID_UNSETENV = @VOID_UNSETENV@  WCHAR_H = @WCHAR_H@ @@ -1134,26 +1153,26 @@ top_srcdir = @top_srcdir@  AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies  # Version information according to Woe32 conventions. -EXTRA_DIST = alloca.in.h array-mergesort.h c-strcaseeq.h errno.in.h \ -	float.in.h fpucw.h frexp.c frexpl.c fseterr.h stdio-impl.h \ -	getpagesize.c $(top_srcdir)/build-aux/config.rpath \ -	iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \ -	iconv_open-osf.h iconv.in.h iconv_open-aix.gperf \ -	iconv_open-hpux.gperf iconv_open-irix.gperf \ -	iconv_open-osf.gperf iconv_open.c float+.h isnan.c \ -	isnand-nolibm.h isnand.c float+.h isnan.c isnanf-nolibm.h \ -	isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c \ -	$(top_srcdir)/build-aux/link-warning.h config.charset \ +EXTRA_DIST = alloca.in.h array-mergesort.h c-strcaseeq.h dup2.c \ +	errno.in.h float.in.h fpucw.h frexp.c frexpl.c fseterr.h \ +	stdio-impl.h getpagesize.c \ +	$(top_srcdir)/build-aux/config.rpath iconv_open-aix.h \ +	iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h \ +	iconv.in.h iconv_open-aix.gperf iconv_open-hpux.gperf \ +	iconv_open-irix.gperf iconv_open-osf.gperf iconv_open.c \ +	float+.h isnan.c isnand-nolibm.h isnand.c float+.h isnan.c \ +	isnanf-nolibm.h isnanf.c float+.h isnan.c isnanl-nolibm.h \ +	isnanl.c $(top_srcdir)/build-aux/link-warning.h config.charset \  	ref-add.sin ref-del.sin localename.h malloc.c malloca.h \  	malloca.valgrind math.in.h mbchar.h mbrtowc.c mbsinit.c \  	memchr.c memchr.valgrind memcmp2.h memxfrm.h printf-frexp.h \  	printf-frexp.c printf-frexpl.h relocatable.c relocatable.h \  	float+.h signbitd.c signbitf.c signbitl.c stdbool.in.h \ -	stdint.in.h stdlib.in.h streq.h iconveh.h string.in.h \ -	unicase.h unicase/cased.h unicase/caseprop.h unictype/bitmap.h \ -	unicase/caseprop.h unicase/ignorable.h unictype/bitmap.h \ -	unicase/locale-languages.h unicase/locale-languages.gperf \ -	unicase/special-casing-table.h \ +	stddef.in.h stdint.in.h stdlib.in.h streq.h iconveh.h \ +	string.in.h unicase.h unicase/cased.h unicase/caseprop.h \ +	unictype/bitmap.h unicase/caseprop.h unicase/ignorable.h \ +	unictype/bitmap.h unicase/locale-languages.h \ +	unicase/locale-languages.gperf unicase/special-casing-table.h \  	unicase/special-casing-table.gperf unicase/special-casing.h \  	unicase/casefold.h unicase/simple-mapping.h \  	unicase/tocasefold.h unicase/simple-mapping.h \ @@ -1360,28 +1379,31 @@ EXTRA_DIST = alloca.in.h array-mergesort.h c-strcaseeq.h errno.in.h \  	uniwbrk/u-wordbreaks.h uniwbrk/u-wordbreaks.h \  	uniwbrk/u-wordbreaks.h uniwbrk/wbrkprop.h localcharset.h \  	uniwidth.h uniwidth/cjk.h wchar.in.h wctype.in.h wcwidth.c \ -	stdint.mini.h libunistring.sym declared.sh libunistring.rc +	stdbool.mini.h stdint.mini.h libunistring.sym declared.sh \ +	libunistring.rc  BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) $(FLOAT_H) \  	$(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \  	iconv_open-irix.h iconv_open-osf.h math.h $(STDBOOL_H) \ -	$(STDINT_H) stdlib.h string.h unicase/locale-languages.h \ -	unicase/special-casing-table.h unictype/pr_byname.h \ -	unictype/scripts_byname.h uninorm/composition-table.h unistd.h \ -	$(WCHAR_H) $(WCTYPE_H) unistring/stdbool.h unistring/stdint.h \ +	$(STDDEF_H) $(STDINT_H) stdlib.h string.h \ +	unicase/locale-languages.h unicase/special-casing-table.h \ +	unictype/pr_byname.h unictype/scripts_byname.h \ +	uninorm/composition-table.h unistd.h $(WCHAR_H) $(WCTYPE_H) \ +	unistring/stdbool.h unistring/stdint.h \  	unistring/localcharset.h unistring/iconveh.h  # We distribute it because declared.sh relies on GNU sed.  MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \  	alloca.h-t errno.h errno.h-t float.h float.h-t iconv.h \  	iconv.h-t iconv_open-aix.h-t iconv_open-hpux.h-t \  	iconv_open-irix.h-t iconv_open-osf.h-t math.h math.h-t \ -	stdbool.h stdbool.h-t stdint.h stdint.h-t stdlib.h stdlib.h-t \ -	string.h string.h-t unicase/locale-languages.h-t \ -	unicase/special-casing-table.h-t unictype/pr_byname.h-t \ -	unictype/scripts_byname.h-t uninorm/composition-table.h-t \ -	unistd.h unistd.h-t wchar.h wchar.h-t wctype.h wctype.h-t \ -	unistring/stdbool.h-t unistring/stdint.h-t \ -	unistring/localcharset.h-t unistring/iconveh.h-t \ -	libunistring.sym-t config.h config.h-t $(am__append_4) +	stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \ +	stdlib.h stdlib.h-t string.h string.h-t \ +	unicase/locale-languages.h-t unicase/special-casing-table.h-t \ +	unictype/pr_byname.h-t unictype/scripts_byname.h-t \ +	uninorm/composition-table.h-t unistd.h unistd.h-t wchar.h \ +	wchar.h-t wctype.h wctype.h-t unistring/stdbool.h-t \ +	unistring/stdint.h-t unistring/localcharset.h-t \ +	unistring/iconveh.h-t libunistring.sym-t config.h config.h-t \ +	$(am__append_4)  CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \  	ref-del.sed unistring/stdbool.h unistring/stdint.h \  	unistring/localcharset.h unistring/iconveh.h @@ -1649,7 +1671,7 @@ libunistring_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h \  	verify.h xsize.h version.c $(am__append_2)  libunistring_la_LIBADD = $(gl_LTLIBOBJS) $(WOE32_LIBADD)  libunistring_la_DEPENDENCIES = $(gl_LTLIBOBJS) $(WOE32_LIBADD) -EXTRA_libunistring_la_SOURCES = frexp.c frexpl.c getpagesize.c \ +EXTRA_libunistring_la_SOURCES = dup2.c frexp.c frexpl.c getpagesize.c \  	iconv_open.c isnan.c isnand.c isnan.c isnanf.c isnan.c \  	isnanl.c malloc.c mbrtowc.c mbsinit.c memchr.c printf-frexp.c \  	relocatable.c signbitd.c signbitf.c signbitl.c printf-args.c \ @@ -3819,6 +3841,20 @@ stdbool.h: stdbool.in.h  	} > $@-t  	mv $@-t $@ +# We need the following in order to create <stddef.h> when the system +# doesn't have one that works with the given compiler. +stddef.h: stddef.in.h +	rm -f $@-t $@ +	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +	  sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +	      -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ +	      -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ +	      -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ +	      < $(srcdir)/stddef.in.h; \ +	} > $@-t +	mv $@-t $@ +  # We need the following in order to create <stdint.h> when the system  # doesn't have one that works with the given compiler.  stdint.h: stdint.in.h @@ -4022,6 +4058,7 @@ unistd.h: unistd.in.h  	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \  	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \  	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \ +	      -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \  	      -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \  	      -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \  	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ @@ -4042,6 +4079,7 @@ unistd.h: unistd.in.h  	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \  	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \  	      -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ +	      -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \  	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \  	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \  	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ @@ -4049,6 +4087,7 @@ unistd.h: unistd.in.h  	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \  	      -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \  	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ +	      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \  	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \  	      < $(srcdir)/unistd.in.h; \  	} > $@-t @@ -4132,7 +4171,7 @@ mostlyclean-local: mostlyclean-generic  # AIX >= 5.3 has <stdbool.h>.  # Solaris 10 and some HP-UX 11 versions have <stdbool.h> but it does not  # necessarily work. -unistring/stdbool.h : $(STDBOOL_H) +unistring/stdbool.h : $(STDBOOL_H) stdbool.mini.h  	@MKDIR_P@ unistring  	rm -f $@-t $@  	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ diff --git a/lib/dup2.c b/lib/dup2.c new file mode 100644 index 00000000..a7d3cfd7 --- /dev/null +++ b/lib/dup2.c @@ -0,0 +1,97 @@ +/* Duplicate an open file descriptor to a specified file descriptor. + +   Copyright (C) 1999, 2004, 2005, 2006, 2007, 2009 Free Software +   Foundation, Inc. + +   This program is free software: you can redistribute it and/or modify +   it under the terms of the GNU Lesser General Public License as published by +   the Free Software Foundation; either version 3 of the License, or +   (at your option) any later version. + +   This program is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public License +   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ + +/* written by Paul Eggert */ + +#include <config.h> + +/* Specification.  */ +#include <unistd.h> + +#include <errno.h> +#include <fcntl.h> + +#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +/* Get declarations of the Win32 API functions.  */ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif + +#if REPLACE_DUP2 + +# undef dup2 + +int +rpl_dup2 (int fd, int desired_fd) +{ +  int result; +# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +  /* If fd is closed, mingw hangs on dup2 (fd, fd).  If fd is open, +     dup2 (fd, fd) returns 0, but all further attempts to use fd in +     future dup2 calls will hang.  */ +  if (fd == desired_fd) +    { +      if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) +        { +          errno = EBADF; +          return -1; +        } +      return fd; +    } +# endif +  result = dup2 (fd, desired_fd); +  if (result == 0) +    result = desired_fd; +  return result; +} + +#else /* !REPLACE_DUP2 */ + +/* On older platforms, dup2 did not exist.  */ + +# ifndef F_DUPFD +static int +dupfd (int fd, int desired_fd) +{ +  int duplicated_fd = dup (fd); +  if (duplicated_fd < 0 || duplicated_fd == desired_fd) +    return duplicated_fd; +  else +    { +      int r = dupfd (fd, desired_fd); +      int e = errno; +      close (duplicated_fd); +      errno = e; +      return r; +    } +} +# endif + +int +dup2 (int fd, int desired_fd) +{ +  if (fd == desired_fd) +    return fd; +  close (desired_fd); +# ifdef F_DUPFD +  return fcntl (fd, F_DUPFD, desired_fd); +# else +  return dupfd (fd, desired_fd); +# endif +} +#endif /* !REPLACE_DUP2 */ diff --git a/lib/math.in.h b/lib/math.in.h index efca0f0b..d4940515 100644 --- a/lib/math.in.h +++ b/lib/math.in.h @@ -148,7 +148,8 @@ extern long double ceill (long double x);  #endif -#if @GNULIB_MATHL@ || !@HAVE_DECL_COSL@ +#if @GNULIB_MATHL@ || (!@HAVE_DECL_COSL@ && !defined cosl) +# undef cosl  extern long double cosl (long double x);  #endif  #if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK @@ -237,7 +238,8 @@ extern long double ldexpl (long double x, int exp);  #endif -#if @GNULIB_MATHL@ || !@HAVE_DECL_LOGL@ +#if @GNULIB_MATHL@ || (!@HAVE_DECL_LOGL@ && !defined logl) +# undef logl  extern long double logl (long double x);  #endif  #if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK @@ -292,7 +294,8 @@ extern long double roundl (long double x);  #endif -#if @GNULIB_MATHL@ || !@HAVE_DECL_SINL@ +#if @GNULIB_MATHL@ || (!@HAVE_DECL_SINL@ && !defined sinl) +# undef sinl  extern long double sinl (long double x);  #endif  #if !@GNULIB_MATHL@ && defined GNULIB_POSIXCHECK diff --git a/lib/stdbool.mini.h b/lib/stdbool.mini.h new file mode 100644 index 00000000..285f80c2 --- /dev/null +++ b/lib/stdbool.mini.h @@ -0,0 +1,99 @@ +/* Copyright (C) 2001-2003, 2006-2009 Free Software Foundation, Inc. +   Written by Bruno Haible <haible@clisp.cons.org>, 2001. + +   This program is free software; you can redistribute it and/or modify +   it under the terms of the GNU General Public License as published by +   the Free Software Foundation; either version 2, or (at your option) +   any later version. + +   This program is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU General Public License for more details. + +   You should have received a copy of the GNU General Public License +   along with this program; if not, write to the Free Software Foundation, +   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */ + +#ifndef _UNISTRING_STDBOOL_H +#define _UNISTRING_STDBOOL_H + +/* ISO C 99 <stdbool.h> for platforms that lack it.  */ + +/* Usage suggestions: + +   Programs that use <stdbool.h> should be aware of some limitations +   and standards compliance issues. + +   Standards compliance: + +       - <stdbool.h> must be #included before 'bool', 'false', 'true' +         can be used. + +       - You cannot assume that sizeof (bool) == 1. + +       - Programs should not undefine the macros bool, true, and false, +         as C99 lists that as an "obsolescent feature". + +   Limitations of this substitute, when used in a C89 environment: + +       - <stdbool.h> must be #included before the '_Bool' type can be used. + +       - You cannot assume that _Bool is a typedef; it might be a macro. + +       - Bit-fields of type 'bool' are not supported.  Portable code +         should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + +       - In C99, casts and automatic conversions to '_Bool' or 'bool' are +         performed in such a way that every nonzero value gets converted +         to 'true', and zero gets converted to 'false'.  This doesn't work +         with this substitute.  With this substitute, only the values 0 and 1 +         give the expected result when converted to _Bool' or 'bool'. + +   Also, it is suggested that programs use 'bool' rather than '_Bool'; +   this isn't required, but 'bool' is more common.  */ + + +/* 7.16. Boolean type and values */ + +/* For the sake of symbolic names in gdb, we define true and false as +   enum constants, not only as macros. +   It is tempting to write +      typedef enum { false = 0, true = 1 } _Bool; +   so that gdb prints values of type 'bool' symbolically. But if we do +   this, values of type '_Bool' may promote to 'int' or 'unsigned int' +   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' +   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the +   enum; this ensures that '_Bool' promotes to 'int'.  */ +#if defined __cplusplus +  /* Assume the compiler has 'bool' and '_Bool'.  */ +#else +   /* If @HAVE__BOOL@: +        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when +        the built-in _Bool type is used.  See +          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html +          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html +          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html +        Similar bugs are likely with other compilers as well; this file +        wouldn't be used if <stdbool.h> was working. +        So we override the _Bool type. +      If !@HAVE__BOOL@: +        Need to define _Bool ourselves. As 'signed char' or as an enum type? +        Use of a typedef, with SunPRO C, leads to a stupid +          "warning: _Bool is a keyword in ISO C99". +        Use of an enum type, with IRIX cc, leads to a stupid +          "warning(1185): enumerated type mixed with another type". +        Even the existence of an enum type, without a typedef, +          "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. +        The only benefit of the enum, debuggability, is not important +        with these compilers.  So use 'signed char' and no enum.  */ +# define _Bool signed char +#endif +#define bool _Bool + +/* The other macros must be usable in preprocessor directives.  */ +#define false 0 +#define true 1 +#define __bool_true_false_are_defined 1 + +#endif /* _UNISTRING_STDBOOL_H */ diff --git a/lib/stddef.in.h b/lib/stddef.in.h new file mode 100644 index 00000000..dacc83d9 --- /dev/null +++ b/lib/stddef.in.h @@ -0,0 +1,86 @@ +/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. + +   Copyright (C) 2009 Free Software Foundation, Inc. + +   This program is free software; you can redistribute it and/or modify +   it under the terms of the GNU Lesser General Public License as published by +   the Free Software Foundation; either version 2, or (at your option) +   any later version. + +   This program is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +   GNU Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public License +   along with this program; if not, write to the Free Software Foundation, +   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */ + +/* Written by Eric Blake.  */ + +/* + * POSIX 2008 <stddef.h> for platforms that have issues. + * <http://www.opengroup.org/susv3xbd/stddef.h.html> + */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif + +#if defined __need_wchar_t || defined __need_size_t  \ +  || defined __need_ptrdiff_t || defined __need_NULL \ +  || defined __need_wint_t +/* Special invocation convention inside gcc header files.  In +   particular, gcc provides a version of <stddef.h> that blindly +   redefines NULL even when __need_wint_t was defined, even though +   wint_t is not normally provided by <stddef.h>.  Hence, we must +   remember if special invocation has ever been used to obtain wint_t, +   in which case we need to clean up NULL yet again.  */ + +# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T) +#  ifdef __need_wint_t +#   undef _GL_STDDEF_H +#   define _GL_STDDEF_WINT_T +#  endif +#  @INCLUDE_NEXT@ @NEXT_STDDEF_H@ +# endif + +#else +/* Normal invocation convention.  */ + +# ifndef _GL_STDDEF_H + +/* The include_next requires a split double-inclusion guard.  */ + +#  @INCLUDE_NEXT@ @NEXT_STDDEF_H@ + +#  ifndef _GL_STDDEF_H +#   define _GL_STDDEF_H + +/* On NetBSD 5.0, the definition of NULL lacks proper parentheses.  */ +#if @REPLACE_NULL@ +# undef NULL +# ifdef __cplusplus +   /* ISO C++ says that the macro NULL must expand to an integer constant +      expression, hence '((void *) 0)' is not allowed in C++.  */ +#  if __GNUG__ >= 3 +    /* GNU C++ has a __null macro that behaves like an integer ('int' or +       'long') but has the same size as a pointer.  Use that, to avoid +       warnings.  */ +#   define NULL __null +#  else +#   define NULL 0L +#  endif +# else +#  define NULL ((void *) 0) +# endif +#endif + +/* Some platforms lack wchar_t.  */ +#if !@HAVE_WCHAR_T@ +# define wchar_t int +#endif + +#  endif /* _GL_STDDEF_H */ +# endif /* _GL_STDDEF_H */ +#endif /* __need_XXX */ diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 23325b56..2a62fb73 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -35,6 +35,8 @@  #ifndef _GL_STDLIB_H  #define _GL_STDLIB_H +/* NetBSD 5.0 mis-defines NULL.  */ +#include <stddef.h>  /* Solaris declares getloadavg() in <sys/loadavg.h>.  */  #if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@ diff --git a/lib/string.in.h b/lib/string.in.h index fe114256..35407658 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -28,6 +28,8 @@  #ifndef _GL_STRING_H  #define _GL_STRING_H +/* NetBSD 5.0 mis-defines NULL.  */ +#include <stddef.h>  #ifndef __attribute__  /* This feature is available in gcc versions 2.5 and later.  */ diff --git a/lib/unistd.in.h b/lib/unistd.in.h index 2e42c0b8..19bf5be8 100644 --- a/lib/unistd.in.h +++ b/lib/unistd.in.h @@ -29,6 +29,9 @@  #ifndef _GL_UNISTD_H  #define _GL_UNISTD_H +/* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */ +#include <stddef.h> +  /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */  #if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)  # include <stdio.h> @@ -43,6 +46,11 @@  # include <sys/types.h>  #endif +/* Get getopt(), optarg, optind, opterr, optopt.  */ +#if @GNULIB_UNISTD_H_GETOPT@ +# include <getopt.h> +#endif +  #if @GNULIB_GETHOSTNAME@  /* Get all possible declarations of gethostname().  */  # if @UNISTD_H_HAVE_WINSOCK2_H@ @@ -137,7 +145,7 @@ extern int chown (const char *file, uid_t uid, gid_t gid);  #  define close rpl_close  extern int close (int);  # endif -#elif @UNISTD_H_HAVE_WINSOCK2_H@ +#elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@  # undef close  # define close close_used_without_requesting_gnulib_module_close  #elif defined GNULIB_POSIXCHECK @@ -150,10 +158,13 @@ extern int close (int);  #if @GNULIB_DUP2@ -# if !@HAVE_DUP2@ +# if @REPLACE_DUP2@ +#  define dup2 rpl_dup2 +# endif +# if !@HAVE_DUP2@ || @REPLACE_DUP2@  /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if     NEWFD = OLDFD, otherwise close NEWFD first if it is open. -   Return 0 if successful, otherwise -1 and errno set. +   Return newfd if successful, otherwise -1 and errno set.     See the POSIX:2001 specification     <http://www.opengroup.org/susv3xsh/dup2.html>.  */  extern int dup2 (int oldfd, int newfd); @@ -214,7 +225,11 @@ extern int fchdir (int /*fd*/);  #  define dup rpl_dup  extern int dup (int); -#  define dup2 rpl_dup2 + +#  if @REPLACE_DUP2@ +#   undef dup2 +#  endif +#  define dup2 rpl_dup2_fchdir  extern int dup2 (int, int);  # endif @@ -363,7 +378,6 @@ extern int gethostname(char *name, size_t len);     See <http://www.opengroup.org/susv3xsh/getlogin.html>.   */  # if !@HAVE_DECL_GETLOGIN_R@ -#  include <stddef.h>  extern int getlogin_r (char *name, size_t size);  # endif  #elif defined GNULIB_POSIXCHECK @@ -524,7 +538,6 @@ extern int link (const char *path1, const char *path2);     See the POSIX:2001 specification     <http://www.opengroup.org/susv3xsh/readlink.html>.  */  # if !@HAVE_READLINK@ -#  include <stddef.h>  extern int readlink (const char *file, char *buf, size_t bufsize);  # endif  #elif defined GNULIB_POSIXCHECK diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index c620b4c0..35db978c 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -5476,6 +5476,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,  #undef TCHARS_PER_DCHAR  #undef SNPRINTF  #undef USE_SNPRINTF +#undef DCHAR_SET  #undef DCHAR_CPY  #undef PRINTF_PARSE  #undef DIRECTIVES | 
