Update gnulib.

* lib/Makefile.am, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.h,
lib/argp-ba.c, lib/argp-eexst.c, lib/argp-fmtstream.c,
lib/argp-fmtstream.h, lib/argp-fs-xinl.c, lib/argp-help.c,
lib/argp-namefrob.h, lib/argp-parse.c, lib/argp-pin.c, lib/argp-pv.c,
lib/argp-pvh.c, lib/argp-xinl.c, lib/argp.h, lib/asnprintf.c,
lib/basename-lgpl.c, lib/c-ctype.c, lib/c-ctype.h, lib/c-strcase.h,
lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strncasecmp.c,
lib/config.charset, lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h,
lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
lib/exitfail.h, lib/fcntl.in.h, lib/float+.h, lib/float.c,
lib/float.in.h, lib/getopt.c, lib/getopt.in.h, lib/getopt1.c,
lib/getopt_int.h, lib/gettext.h, lib/gettimeofday.c, lib/intprops.h,
lib/isatty.c, lib/itold.c, lib/localcharset.c, lib/localcharset.h,
lib/lstat.c, lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
lib/mempcpy.c, lib/mkstemp.c, lib/mkstemps.c, lib/msvc-inval.c,
lib/msvc-inval.h, lib/msvc-nothrow.c, lib/msvc-nothrow.h, lib/pathmax.h,
lib/printf-args.c, lib/printf-args.h, lib/printf-parse.c,
lib/printf-parse.h, lib/progname.c, lib/progname.h, lib/quote.h,
lib/quotearg.c, lib/quotearg.h, lib/rawmemchr.c, lib/ref-add.sin,
lib/ref-del.sin, lib/secure_getenv.c, lib/size_max.h, lib/sleep.c,
lib/stat.c, lib/stdalign.in.h, lib/stdbool.in.h, lib/stddef.in.h,
lib/stdint.in.h, lib/stdio.in.h, lib/stdlib.in.h, lib/stpcpy.c,
lib/strcasecmp.c, lib/strchrnul.c, lib/streq.h, lib/strerror-override.c,
lib/strerror-override.h, lib/strerror.c, lib/string.in.h,
lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c,
lib/strnlen.c, lib/strverscmp.c, lib/sys_stat.in.h, lib/sys_time.in.h,
lib/sys_types.in.h, lib/sys_wait.in.h, lib/sysexits.in.h,
lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/unistd.c,
lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h,
lib/vsnprintf.c, lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
lib/xalloc-oversized.h, lib/xalloc.h, lib/xmalloc.c, lib/xsize.h,
m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
m4/codeset.m4, m4/configmake.m4, m4/dirname.m4, m4/double-slash-root.m4,
m4/errno_h.m4, m4/error.m4, m4/exponentd.m4, m4/extensions.m4,
m4/extern-inline.m4, m4/fcntl-o.m4, m4/fcntl_h.m4, m4/float_h.m4,
m4/getopt.m4, m4/gettimeofday.m4, m4/glibc21.m4, m4/gnulib-cache.m4,
m4/gnulib-common.m4, m4/gnulib-comp.m4, m4/gnulib-tool.m4,
m4/include_next.m4, m4/intmax_t.m4, m4/inttypes_h.m4, m4/isatty.m4,
m4/largefile.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4,
m4/locale-zh.m4, m4/longlong.m4, m4/lstat.m4, m4/malloc.m4,
m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4,
m4/memchr.m4, m4/mempcpy.m4, m4/mkstemp.m4, m4/mkstemps.m4,
m4/mmap-anon.m4, m4/msvc-inval.m4, m4/msvc-nothrow.m4, m4/multiarch.m4,
m4/nocrash.m4, m4/off_t.m4, m4/pathmax.m4, m4/printf.m4, m4/quote.m4,
m4/quotearg.m4, m4/rawmemchr.m4, m4/secure_getenv.m4, m4/size_max.m4,
m4/sleep.m4, m4/ssize_t.m4, m4/stat.m4, m4/stdalign.m4, m4/stdbool.m4,
m4/stddef_h.m4, m4/stdint.m4, m4/stdint_h.m4, m4/stdio_h.m4,
m4/stdlib_h.m4, m4/stpcpy.m4, m4/strcase.m4, m4/strchrnul.m4,
m4/strerror.m4, m4/string_h.m4, m4/strings_h.m4, m4/strndup.m4,
m4/strnlen.m4, m4/strverscmp.m4, m4/sys_socket_h.m4, m4/sys_stat_h.m4,
m4/sys_time_h.m4, m4/sys_types_h.m4, m4/sys_wait_h.m4, m4/sysexits.m4,
m4/tempname.m4, m4/time_h.m4, m4/unistd_h.m4, m4/vasnprintf.m4,
m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4,
tools/snippet/arg-nonnull.h, tools/snippet/c++defs.h,
tools/snippet/warn-on-use.h: Update.
This commit is contained in:
Alexandre Duret-Lutz 2015-11-10 11:14:38 +01:00
parent e206b5ef33
commit 4a7733823e
215 changed files with 1609 additions and 1210 deletions

View file

@ -1,6 +1,6 @@
## DO NOT EDIT! GENERATED AUTOMATICALLY! ## DO NOT EDIT! GENERATED AUTOMATICALLY!
## Process this file with automake to produce Makefile.in. ## Process this file with automake to produce Makefile.in.
# Copyright (C) 2002-2013 Free Software Foundation, Inc. # Copyright (C) 2002-2015 Free Software Foundation, Inc.
# #
# This file is free software; you can redistribute it and/or modify # This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -104,10 +104,7 @@ EXTRA_DIST += argmatch.h
## begin gnulib module argp ## begin gnulib module argp
libgnu_la_SOURCES += argp.h argp-ba.c argp-eexst.c \ libgnu_la_SOURCES += argp.h argp-ba.c argp-eexst.c argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c argp-xinl.c
argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c \
argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c \
argp-xinl.c
## end gnulib module argp ## end gnulib module argp
@ -750,6 +747,7 @@ stddef.h: stddef.in.h $(top_builddir)/config.status
-e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-e 's|@''HAVE_MAX_ALIGN_T''@|$(HAVE_MAX_ALIGN_T)|g' \
-e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
-e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
< $(srcdir)/stddef.in.h; \ < $(srcdir)/stddef.in.h; \
@ -976,6 +974,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
-e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
-e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
-e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
-e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
-e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
-e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
@ -1027,6 +1026,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
-e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
-e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
-e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
-e 's|@''REPLACE_QSORT_R''@|$(REPLACE_QSORT_R)|g' \
-e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
-e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
-e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
@ -1462,10 +1462,12 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
-e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
-e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
-e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
-e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
-e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
-e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
-e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
-e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
-e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
-e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \
-e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
@ -1475,6 +1477,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
-e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|g' \
-e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
@ -1618,9 +1621,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
-e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
-e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
-e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
-e 's|@''REPLACE_READLINKAT''@|$(REPLACE_READLINKAT)|g' \
-e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
-e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
-e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
-e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
-e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
-e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
-e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \

View file

@ -1,6 +1,6 @@
/* Memory allocation on the stack. /* Memory allocation on the stack.
Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation, Copyright (C) 1995, 1999, 2001-2004, 2006-2015 Free Software Foundation,
Inc. Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View file

@ -1,6 +1,6 @@
/* argmatch.c -- find a match for a string in an array /* argmatch.c -- find a match for a string in an array
Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2013 Free Software Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* argmatch.h -- definitions and prototypes for argmatch.c /* argmatch.h -- definitions and prototypes for argmatch.c
Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2013 Free Software Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Default definition for ARGP_PROGRAM_BUG_ADDRESS. /* Default definition for ARGP_PROGRAM_BUG_ADDRESS.
Copyright (C) 1996-1997, 1999, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1996-1997, 1999, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Default definition for ARGP_ERR_EXIT_STATUS /* Default definition for ARGP_ERR_EXIT_STATUS
Copyright (C) 1997, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1997, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams /* Word-wrapping and line-truncating streams
Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2013 Free Software Copyright (C) 1997-1999, 2001-2003, 2005, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Word-wrapping and line-truncating streams. /* Word-wrapping and line-truncating streams.
Copyright (C) 1997, 2006-2013 Free Software Foundation, Inc. Copyright (C) 1997, 2006-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Real definitions for extern inline functions in argp-fmtstream.h /* Real definitions for extern inline functions in argp-fmtstream.h
Copyright (C) 1997, 2003-2004, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1997, 2003-2004, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Hierarchical argument parsing help output /* Hierarchical argument parsing help output
Copyright (C) 1995-2005, 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1995-2005, 2007, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -1506,11 +1506,15 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
if (vt) if (vt)
{ {
if (post) if (post)
inp_text = vt + 1; {
inp_text = vt + 1;
if (! *inp_text)
inp_text = 0;
}
else else
{ {
inp_text_len = vt - argp->doc; inp_text_len = vt - argp->doc;
inp_text = __strndup (argp->doc, inp_text_len); inp_text = inp_text_len ? __strndup (argp->doc, inp_text_len) : 0;
} }
} }
else else

View file

@ -1,5 +1,5 @@
/* Name frobnication for compiling argp outside of glibc /* Name frobnication for compiling argp outside of glibc
Copyright (C) 1997, 2003, 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1997, 2003, 2007, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Hierarchical argument parsing, layered over getopt /* Hierarchical argument parsing, layered over getopt
Copyright (C) 1995-2000, 2002-2004, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1995-2000, 2002-2004, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Full and short program names for argp module /* Full and short program names for argp module
Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2005, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Default definition for ARGP_PROGRAM_VERSION. /* Default definition for ARGP_PROGRAM_VERSION.
Copyright (C) 1996-1997, 1999, 2006, 2009-2013 Free Software Foundation, Copyright (C) 1996-1997, 1999, 2006, 2009-2015 Free Software Foundation,
Inc. Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Default definition for ARGP_PROGRAM_VERSION_HOOK. /* Default definition for ARGP_PROGRAM_VERSION_HOOK.
Copyright (C) 1996-1997, 1999, 2004, 2009-2013 Free Software Foundation, Copyright (C) 1996-1997, 1999, 2004, 2009-2015 Free Software Foundation,
Inc. Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Real definitions for extern inline functions in argp.h /* Real definitions for extern inline functions in argp.h
Copyright (C) 1997-1998, 2004, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1997-1998, 2004, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Hierarchical argument parsing, layered over getopt. /* Hierarchical argument parsing, layered over getopt.
Copyright (C) 1995-1999, 2003-2013 Free Software Foundation, Inc. Copyright (C) 1995-1999, 2003-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.

View file

@ -1,5 +1,5 @@
/* Formatted output to strings. /* Formatted output to strings.
Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1999, 2002, 2006, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* basename.c -- return the last element in a file name /* basename.c -- return the last element in a file name
Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,395 +1,3 @@
/* Character handling in C locale.
Copyright 2000-2003, 2006, 2009-2013 Free Software Foundation, Inc.
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 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */
#include <config.h> #include <config.h>
#define C_CTYPE_INLINE _GL_EXTERN_INLINE
/* Specification. */
#define NO_C_CTYPE_MACROS
#include "c-ctype.h" #include "c-ctype.h"
/* The function isascii is not locale dependent. Its use in EBCDIC is
questionable. */
bool
c_isascii (int c)
{
return (c >= 0x00 && c <= 0x7f);
}
bool
c_isalnum (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isalpha (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
#else
return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
#endif
#else
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isblank (int c)
{
return (c == ' ' || c == '\t');
}
bool
c_iscntrl (int c)
{
#if C_CTYPE_ASCII
return ((c & ~0x1f) == 0 || c == 0x7f);
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 0;
default:
return 1;
}
#endif
}
bool
c_isdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS
return (c >= '0' && c <= '9');
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
return 1;
default:
return 0;
}
#endif
}
bool
c_islower (int c)
{
#if C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z');
#else
switch (c)
{
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isgraph (int c)
{
#if C_CTYPE_ASCII
return (c >= '!' && c <= '~');
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isprint (int c)
{
#if C_CTYPE_ASCII
return (c >= ' ' && c <= '~');
#else
switch (c)
{
case ' ': case '!': case '"': case '#': case '$': case '%':
case '&': case '\'': case '(': case ')': case '*': case '+':
case ',': case '-': case '.': case '/':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
case '[': case '\\': case ']': case '^': case '_': case '`':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
case 's': case 't': case 'u': case 'v': case 'w': case 'x':
case 'y': case 'z':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_ispunct (int c)
{
#if C_CTYPE_ASCII
return ((c >= '!' && c <= '~')
&& !((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
#else
switch (c)
{
case '!': case '"': case '#': case '$': case '%': case '&':
case '\'': case '(': case ')': case '*': case '+': case ',':
case '-': case '.': case '/':
case ':': case ';': case '<': case '=': case '>': case '?':
case '@':
case '[': case '\\': case ']': case '^': case '_': case '`':
case '{': case '|': case '}': case '~':
return 1;
default:
return 0;
}
#endif
}
bool
c_isspace (int c)
{
return (c == ' ' || c == '\t'
|| c == '\n' || c == '\v' || c == '\f' || c == '\r');
}
bool
c_isupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE
return (c >= 'A' && c <= 'Z');
#else
switch (c)
{
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
case 'Y': case 'Z':
return 1;
default:
return 0;
}
#endif
}
bool
c_isxdigit (int c)
{
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
return ((c >= '0' && c <= '9')
|| ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
#else
return ((c >= '0' && c <= '9')
|| (c >= 'A' && c <= 'F')
|| (c >= 'a' && c <= 'f'));
#endif
#else
switch (c)
{
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
return 1;
default:
return 0;
}
#endif
}
int
c_tolower (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
#else
switch (c)
{
case 'A': return 'a';
case 'B': return 'b';
case 'C': return 'c';
case 'D': return 'd';
case 'E': return 'e';
case 'F': return 'f';
case 'G': return 'g';
case 'H': return 'h';
case 'I': return 'i';
case 'J': return 'j';
case 'K': return 'k';
case 'L': return 'l';
case 'M': return 'm';
case 'N': return 'n';
case 'O': return 'o';
case 'P': return 'p';
case 'Q': return 'q';
case 'R': return 'r';
case 'S': return 's';
case 'T': return 't';
case 'U': return 'u';
case 'V': return 'v';
case 'W': return 'w';
case 'X': return 'x';
case 'Y': return 'y';
case 'Z': return 'z';
default: return c;
}
#endif
}
int
c_toupper (int c)
{
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
#else
switch (c)
{
case 'a': return 'A';
case 'b': return 'B';
case 'c': return 'C';
case 'd': return 'D';
case 'e': return 'E';
case 'f': return 'F';
case 'g': return 'G';
case 'h': return 'H';
case 'i': return 'I';
case 'j': return 'J';
case 'k': return 'K';
case 'l': return 'L';
case 'm': return 'M';
case 'n': return 'N';
case 'o': return 'O';
case 'p': return 'P';
case 'q': return 'Q';
case 'r': return 'R';
case 's': return 'S';
case 't': return 'T';
case 'u': return 'U';
case 'v': return 'V';
case 'w': return 'W';
case 'x': return 'X';
case 'y': return 'Y';
case 'z': return 'Z';
default: return c;
}
#endif
}

View file

@ -5,7 +5,7 @@
<ctype.h> functions' behaviour depends on the current locale set via <ctype.h> functions' behaviour depends on the current locale set via
setlocale. setlocale.
Copyright (C) 2000-2003, 2006, 2008-2013 Free Software Foundation, Inc. Copyright (C) 2000-2003, 2006, 2008-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -25,6 +25,13 @@ along with this program; if not, see <http://www.gnu.org/licenses/>. */
#include <stdbool.h> #include <stdbool.h>
#ifndef _GL_INLINE_HEADER_BEGIN
#error "Please include config.h first."
#endif
_GL_INLINE_HEADER_BEGIN
#ifndef C_CTYPE_INLINE
# define C_CTYPE_INLINE _GL_INLINE
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -39,38 +46,6 @@ extern "C" {
characters. */ characters. */
/* Check whether the ASCII optimizations apply. */
/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that
'0', '1', ..., '9' have consecutive integer values. */
#define C_CTYPE_CONSECUTIVE_DIGITS 1
#if ('A' <= 'Z') \
&& ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \
&& ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \
&& ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \
&& ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \
&& ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \
&& ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \
&& ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \
&& ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \
&& ('Y' + 1 == 'Z')
#define C_CTYPE_CONSECUTIVE_UPPERCASE 1
#endif
#if ('a' <= 'z') \
&& ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \
&& ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \
&& ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \
&& ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \
&& ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \
&& ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \
&& ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \
&& ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \
&& ('y' + 1 == 'z')
#define C_CTYPE_CONSECUTIVE_LOWERCASE 1
#endif
#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
@ -96,11 +71,84 @@ extern "C" {
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
/* The character set is ASCII or one of its variants or extensions, not EBCDIC. /* The character set is ASCII or one of its variants or extensions, not EBCDIC.
Testing the value of '\n' and '\r' is not relevant. */ Testing the value of '\n' and '\r' is not relevant. */
#define C_CTYPE_ASCII 1 # define C_CTYPE_ASCII 1
#elif ! (' ' == '\x40' && '0' == '\xf0' \
&& 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \
&& 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2')
# error "Only ASCII and EBCDIC are supported"
#endif #endif
#if 'A' < 0
# error "EBCDIC and char is signed -- not supported"
#endif
/* Function declarations. */ /* Cases for control characters. */
#define _C_CTYPE_CNTRL \
case '\a': case '\b': case '\f': case '\n': \
case '\r': case '\t': case '\v': \
_C_CTYPE_OTHER_CNTRL
/* ASCII control characters other than those with \-letter escapes. */
#if C_CTYPE_ASCII
# define _C_CTYPE_OTHER_CNTRL \
case '\x00': case '\x01': case '\x02': case '\x03': \
case '\x04': case '\x05': case '\x06': case '\x0e': \
case '\x0f': case '\x10': case '\x11': case '\x12': \
case '\x13': case '\x14': case '\x15': case '\x16': \
case '\x17': case '\x18': case '\x19': case '\x1a': \
case '\x1b': case '\x1c': case '\x1d': case '\x1e': \
case '\x1f': case '\x7f'
#else
/* Use EBCDIC code page 1047's assignments for ASCII control chars;
assume all EBCDIC code pages agree about these assignments. */
# define _C_CTYPE_OTHER_CNTRL \
case '\x00': case '\x01': case '\x02': case '\x03': \
case '\x07': case '\x0e': case '\x0f': case '\x10': \
case '\x11': case '\x12': case '\x13': case '\x18': \
case '\x19': case '\x1c': case '\x1d': case '\x1e': \
case '\x1f': case '\x26': case '\x27': case '\x2d': \
case '\x2e': case '\x32': case '\x37': case '\x3c': \
case '\x3d': case '\x3f'
#endif
/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */
#define _C_CTYPE_LOWER_A_THRU_F_N(n) \
case 'a' + (n): case 'b' + (n): case 'c' + (n): case 'd' + (n): \
case 'e' + (n): case 'f' + (n)
#define _C_CTYPE_LOWER_N(n) \
_C_CTYPE_LOWER_A_THRU_F_N(n): \
case 'g' + (n): case 'h' + (n): case 'i' + (n): case 'j' + (n): \
case 'k' + (n): case 'l' + (n): case 'm' + (n): case 'n' + (n): \
case 'o' + (n): case 'p' + (n): case 'q' + (n): case 'r' + (n): \
case 's' + (n): case 't' + (n): case 'u' + (n): case 'v' + (n): \
case 'w' + (n): case 'x' + (n): case 'y' + (n): case 'z' + (n)
/* Cases for hex letters, digits, lower, punct, and upper. */
#define _C_CTYPE_A_THRU_F \
_C_CTYPE_LOWER_A_THRU_F_N (0): \
_C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a')
#define _C_CTYPE_DIGIT \
case '0': case '1': case '2': case '3': \
case '4': case '5': case '6': case '7': \
case '8': case '9'
#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)
#define _C_CTYPE_PUNCT \
case '!': case '"': case '#': case '$': \
case '%': case '&': case '\'': case '(': \
case ')': case '*': case '+': case ',': \
case '-': case '.': case '/': case ':': \
case ';': case '<': case '=': case '>': \
case '?': case '@': case '[': case '\\': \
case ']': case '^': case '_': case '`': \
case '{': case '|': case '}': case '~'
#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a')
/* Function definitions. */
/* Unlike the functions in <ctype.h>, which require an argument in the range /* Unlike the functions in <ctype.h>, which require an argument in the range
of the 'unsigned char' type, the functions here operate on values that are of the 'unsigned char' type, the functions here operate on values that are
@ -117,179 +165,202 @@ extern "C" {
if (c_isalpha (*s)) ... if (c_isalpha (*s)) ...
*/ */
extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */ C_CTYPE_INLINE bool
c_isalnum (int c)
{
switch (c)
{
_C_CTYPE_DIGIT:
_C_CTYPE_LOWER:
_C_CTYPE_UPPER:
return true;
default:
return false;
}
}
extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST; C_CTYPE_INLINE bool
extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST; c_isalpha (int c)
extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST; {
extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST; switch (c)
extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST; {
extern bool c_islower (int c) _GL_ATTRIBUTE_CONST; _C_CTYPE_LOWER:
extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST; _C_CTYPE_UPPER:
extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST; return true;
extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST; default:
extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST; return false;
extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST; }
extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST; }
extern int c_tolower (int c) _GL_ATTRIBUTE_CONST; /* The function isascii is not locale dependent.
extern int c_toupper (int c) _GL_ATTRIBUTE_CONST; Its use in EBCDIC is questionable. */
C_CTYPE_INLINE bool
c_isascii (int c)
{
switch (c)
{
case ' ':
_C_CTYPE_CNTRL:
_C_CTYPE_DIGIT:
_C_CTYPE_LOWER:
_C_CTYPE_PUNCT:
_C_CTYPE_UPPER:
return true;
default:
return false;
}
}
C_CTYPE_INLINE bool
c_isblank (int c)
{
return c == ' ' || c == '\t';
}
#if (defined __GNUC__ && !defined __STRICT_ANSI__ && defined __OPTIMIZE__ \ C_CTYPE_INLINE bool
&& !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS) c_iscntrl (int c)
{
switch (c)
{
_C_CTYPE_CNTRL:
return true;
default:
return false;
}
}
/* ASCII optimizations. */ C_CTYPE_INLINE bool
c_isdigit (int c)
{
switch (c)
{
_C_CTYPE_DIGIT:
return true;
default:
return false;
}
}
#undef c_isascii C_CTYPE_INLINE bool
#define c_isascii(c) \ c_isgraph (int c)
({ int __c = (c); \ {
(__c >= 0x00 && __c <= 0x7f); \ switch (c)
}) {
_C_CTYPE_DIGIT:
_C_CTYPE_LOWER:
_C_CTYPE_PUNCT:
_C_CTYPE_UPPER:
return true;
default:
return false;
}
}
#if C_CTYPE_CONSECUTIVE_DIGITS \ C_CTYPE_INLINE bool
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE c_islower (int c)
#if C_CTYPE_ASCII {
#undef c_isalnum switch (c)
#define c_isalnum(c) \ {
({ int __c = (c); \ _C_CTYPE_LOWER:
((__c >= '0' && __c <= '9') \ return true;
|| ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \ default:
}) return false;
#else }
#undef c_isalnum }
#define c_isalnum(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| (__c >= 'A' && __c <= 'Z') \
|| (__c >= 'a' && __c <= 'z')); \
})
#endif
#endif
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE C_CTYPE_INLINE bool
#if C_CTYPE_ASCII c_isprint (int c)
#undef c_isalpha {
#define c_isalpha(c) \ switch (c)
({ int __c = (c); \ {
((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \ case ' ':
}) _C_CTYPE_DIGIT:
#else _C_CTYPE_LOWER:
#undef c_isalpha _C_CTYPE_PUNCT:
#define c_isalpha(c) \ _C_CTYPE_UPPER:
({ int __c = (c); \ return true;
((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \ default:
}) return false;
#endif }
#endif }
#undef c_isblank C_CTYPE_INLINE bool
#define c_isblank(c) \ c_ispunct (int c)
({ int __c = (c); \ {
(__c == ' ' || __c == '\t'); \ switch (c)
}) {
_C_CTYPE_PUNCT:
return true;
default:
return false;
}
}
#if C_CTYPE_ASCII C_CTYPE_INLINE bool
#undef c_iscntrl c_isspace (int c)
#define c_iscntrl(c) \ {
({ int __c = (c); \ switch (c)
((__c & ~0x1f) == 0 || __c == 0x7f); \ {
}) case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
#endif return true;
default:
return false;
}
}
#if C_CTYPE_CONSECUTIVE_DIGITS C_CTYPE_INLINE bool
#undef c_isdigit c_isupper (int c)
#define c_isdigit(c) \ {
({ int __c = (c); \ switch (c)
(__c >= '0' && __c <= '9'); \ {
}) _C_CTYPE_UPPER:
#endif return true;
default:
return false;
}
}
#if C_CTYPE_CONSECUTIVE_LOWERCASE C_CTYPE_INLINE bool
#undef c_islower c_isxdigit (int c)
#define c_islower(c) \ {
({ int __c = (c); \ switch (c)
(__c >= 'a' && __c <= 'z'); \ {
}) _C_CTYPE_DIGIT:
#endif _C_CTYPE_A_THRU_F:
return true;
default:
return false;
}
}
#if C_CTYPE_ASCII C_CTYPE_INLINE int
#undef c_isgraph c_tolower (int c)
#define c_isgraph(c) \ {
({ int __c = (c); \ switch (c)
(__c >= '!' && __c <= '~'); \ {
}) _C_CTYPE_UPPER:
#endif return c - 'A' + 'a';
default:
#if C_CTYPE_ASCII return c;
#undef c_isprint }
#define c_isprint(c) \ }
({ int __c = (c); \
(__c >= ' ' && __c <= '~'); \
})
#endif
#if C_CTYPE_ASCII
#undef c_ispunct
#define c_ispunct(c) \
({ int _c = (c); \
(c_isgraph (_c) && ! c_isalnum (_c)); \
})
#endif
#undef c_isspace
#define c_isspace(c) \
({ int __c = (c); \
(__c == ' ' || __c == '\t' \
|| __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \
})
#if C_CTYPE_CONSECUTIVE_UPPERCASE
#undef c_isupper
#define c_isupper(c) \
({ int __c = (c); \
(__c >= 'A' && __c <= 'Z'); \
})
#endif
#if C_CTYPE_CONSECUTIVE_DIGITS \
&& C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#if C_CTYPE_ASCII
#undef c_isxdigit
#define c_isxdigit(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \
})
#else
#undef c_isxdigit
#define c_isxdigit(c) \
({ int __c = (c); \
((__c >= '0' && __c <= '9') \
|| (__c >= 'A' && __c <= 'F') \
|| (__c >= 'a' && __c <= 'f')); \
})
#endif
#endif
#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
#undef c_tolower
#define c_tolower(c) \
({ int __c = (c); \
(__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \
})
#undef c_toupper
#define c_toupper(c) \
({ int __c = (c); \
(__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \
})
#endif
#endif /* optimizing for speed */
C_CTYPE_INLINE int
c_toupper (int c)
{
switch (c)
{
_C_CTYPE_LOWER:
return c - 'a' + 'A';
default:
return c;
}
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
_GL_INLINE_HEADER_END
#endif /* C_CTYPE_H */ #endif /* C_CTYPE_H */

View file

@ -1,5 +1,5 @@
/* Case-insensitive string comparison functions in C locale. /* Case-insensitive string comparison functions in C locale.
Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2013 Free Software Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* c-strcasecmp.c -- case insensitive string comparator in C locale /* c-strcasecmp.c -- case insensitive string comparator in C locale
Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2006, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Optimized case-insensitive string comparison in C locale. /* Optimized case-insensitive string comparison in C locale.
Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2001-2002, 2007, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published under the terms of the GNU General Public License as published
@ -33,9 +33,6 @@
# if C_CTYPE_ASCII # if C_CTYPE_ASCII
# define CASEEQ(other,upper) \ # define CASEEQ(other,upper) \
(c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper)) (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper))
# elif C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
# define CASEEQ(other,upper) \
(c_isupper (upper) ? (other) == (upper) || (other) == (upper) - 'A' + 'a' : (other) == (upper))
# else # else
# define CASEEQ(other,upper) \ # define CASEEQ(other,upper) \
(c_toupper (other) == (upper)) (c_toupper (other) == (upper))

View file

@ -1,5 +1,5 @@
/* c-strncasecmp.c -- case insensitive string comparator in C locale /* c-strncasecmp.c -- case insensitive string comparator in C locale
Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2006, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,7 +1,7 @@
#! /bin/sh #! /bin/sh
# Output a system dependent table of character encoding aliases. # Output a system dependent table of character encoding aliases.
# #
# Copyright (C) 2000-2004, 2006-2013 Free Software Foundation, Inc. # Copyright (C) 2000-2004, 2006-2015 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -348,12 +348,10 @@ case "$os" in
#echo "sun_eu_greek ?" # what is this? #echo "sun_eu_greek ?" # what is this?
echo "UTF-8 UTF-8" echo "UTF-8 UTF-8"
;; ;;
freebsd* | os2*) freebsd*)
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
# localcharset.c falls back to using the full locale name # localcharset.c falls back to using the full locale name
# from the environment variables. # from the environment variables.
# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
# reuse FreeBSD's locale data for OS/2.
echo "C ASCII" echo "C ASCII"
echo "US-ASCII ASCII" echo "US-ASCII ASCII"
for l in la_LN lt_LN; do for l in la_LN lt_LN; do

View file

@ -1,6 +1,6 @@
/* dirname.c -- return all but the last element in a file name /* dirname.c -- return all but the last element in a file name
Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2013 Free Software Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* Take file names apart into directory and base names. /* Take file names apart into directory and base names.
Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation, Copyright (C) 1998, 2001, 2003-2006, 2009-2015 Free Software Foundation,
Inc. Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -31,6 +31,10 @@
# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 # define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
# endif # endif
#ifdef __cplusplus
extern "C" {
#endif
# if GNULIB_DIRNAME # if GNULIB_DIRNAME
char *base_name (char const *file); char *base_name (char const *file);
char *dir_name (char const *file); char *dir_name (char const *file);
@ -43,4 +47,8 @@ char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
bool strip_trailing_slashes (char *file); bool strip_trailing_slashes (char *file);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* not DIRNAME_H_ */ #endif /* not DIRNAME_H_ */

View file

@ -1,6 +1,6 @@
/* File names on MS-DOS/Windows systems. /* File names on MS-DOS/Windows systems.
Copyright (C) 2000-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2000-2001, 2004-2006, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* A POSIX-like <errno.h>. /* A POSIX-like <errno.h>.
Copyright (C) 2008-2013 Free Software Foundation, Inc. Copyright (C) 2008-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities /* Error handler for noninteractive utilities
Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1990-1998, 2000-2007, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -39,6 +39,9 @@
# include <stdint.h> # include <stdint.h>
# include <wchar.h> # include <wchar.h>
# define mbsrtowcs __mbsrtowcs # define mbsrtowcs __mbsrtowcs
# define USE_UNLOCKED_IO 0
# define _GL_ATTRIBUTE_FORMAT_PRINTF(a, b)
# define _GL_ARG_NONNULL(a)
#endif #endif
#if USE_UNLOCKED_IO #if USE_UNLOCKED_IO
@ -72,14 +75,14 @@ extern void __error (int status, int errnum, const char *message, ...)
extern void __error_at_line (int status, int errnum, const char *file_name, extern void __error_at_line (int status, int errnum, const char *file_name,
unsigned int line_number, const char *message, unsigned int line_number, const char *message,
...) ...)
__attribute__ ((__format__ (__printf__, 5, 6)));; __attribute__ ((__format__ (__printf__, 5, 6)));
# define error __error # define error __error
# define error_at_line __error_at_line # define error_at_line __error_at_line
# include <libio/iolibio.h> # include <libio/iolibio.h>
# define fflush(s) INTUSE(_IO_fflush) (s) # define fflush(s) _IO_fflush (s)
# undef putc # undef putc
# define putc(c, fp) INTUSE(_IO_putc) (c, fp) # define putc(c, fp) _IO_putc (c, fp)
# include <bits/libc-lock.h> # include <bits/libc-lock.h>
@ -171,7 +174,7 @@ print_errno_message (int errnum)
#if defined HAVE_STRERROR_R || _LIBC #if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024]; char errbuf[1024];
# if STRERROR_R_CHAR_P || _LIBC # if _LIBC || STRERROR_R_CHAR_P
s = __strerror_r (errnum, errbuf, sizeof errbuf); s = __strerror_r (errnum, errbuf, sizeof errbuf);
# else # else
if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
@ -201,7 +204,6 @@ error_tail (int status, int errnum, const char *message, va_list args)
#if _LIBC #if _LIBC
if (_IO_fwide (stderr, 0) > 0) if (_IO_fwide (stderr, 0) > 0)
{ {
# define ALLOCA_LIMIT 2000
size_t len = strlen (message) + 1; size_t len = strlen (message) + 1;
wchar_t *wmessage = NULL; wchar_t *wmessage = NULL;
mbstate_t st; mbstate_t st;
@ -237,7 +239,7 @@ error_tail (int status, int errnum, const char *message, va_list args)
if (res != len) if (res != len)
break; break;
if (__builtin_expect (len >= SIZE_MAX / 2, 0)) if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0))
{ {
/* This really should not happen if everything is fine. */ /* This really should not happen if everything is fine. */
res = (size_t) -1; res = (size_t) -1;
@ -342,7 +344,10 @@ error_at_line (int status, int errnum, const char *file_name,
if (old_line_number == line_number if (old_line_number == line_number
&& (file_name == old_file_name && (file_name == old_file_name
|| strcmp (old_file_name, file_name) == 0)) || (old_file_name != NULL
&& file_name != NULL
&& strcmp (old_file_name, file_name) == 0)))
/* Simply return and print nothing. */ /* Simply return and print nothing. */
return; return;
@ -374,10 +379,10 @@ error_at_line (int status, int errnum, const char *file_name,
} }
#if _LIBC #if _LIBC
__fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ",
file_name, line_number); file_name, line_number);
#else #else
fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", fprintf (stderr, file_name != NULL ? "%s:%u: " : " ",
file_name, line_number); file_name, line_number);
#endif #endif

View file

@ -1,5 +1,5 @@
/* Declaration for error-reporting function /* Declaration for error-reporting function
Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation, Copyright (C) 1995-1997, 2003, 2006, 2008-2015 Free Software Foundation,
Inc. Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -31,6 +31,16 @@
# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
#endif #endif
/* On mingw, the flavor of printf depends on whether the extensions module
* is in use; the check for <stdio.h> determines the witness macro. */
#ifndef _GL_ATTRIBUTE_SPEC_PRINTF
# if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
# define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__
# else
# define _GL_ATTRIBUTE_SPEC_PRINTF __printf__
# endif
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -40,11 +50,11 @@ extern "C" {
If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */
extern void error (int __status, int __errnum, const char *__format, ...) extern void error (int __status, int __errnum, const char *__format, ...)
_GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4));
extern void error_at_line (int __status, int __errnum, const char *__fname, extern void error_at_line (int __status, int __errnum, const char *__fname,
unsigned int __lineno, const char *__format, ...) unsigned int __lineno, const char *__format, ...)
_GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6));
/* If NULL, error will flush stdout, then print on stderr the program /* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this name, a colon and a space. Otherwise, error will call this

View file

@ -1,6 +1,6 @@
/* Failure exit status /* Failure exit status
Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2002-2003, 2005-2007, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Failure exit status /* Failure exit status
Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2002, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Like <fcntl.h>, but with non-working flags defined to 0. /* Like <fcntl.h>, but with non-working flags defined to 0.
Copyright (C) 2006-2013 Free Software Foundation, Inc. Copyright (C) 2006-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -34,7 +34,7 @@
extern "C" { ... } block, which leads to errors in C++ mode with the extern "C" { ... } block, which leads to errors in C++ mode with the
overridden <sys/stat.h> from gnulib. These errors are known to be gone overridden <sys/stat.h> from gnulib. These errors are known to be gone
with g++ version >= 4.3. */ with g++ version >= 4.3. */
#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
# include <sys/stat.h> # include <sys/stat.h>
#endif #endif
#@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@
@ -53,7 +53,7 @@
extern "C" { ... } block, which leads to errors in C++ mode with the extern "C" { ... } block, which leads to errors in C++ mode with the
overridden <sys/stat.h> from gnulib. These errors are known to be gone overridden <sys/stat.h> from gnulib. These errors are known to be gone
with g++ version >= 4.3. */ with g++ version >= 4.3. */
#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
# include <sys/stat.h> # include <sys/stat.h>
#endif #endif
/* The include_next requires a split double-inclusion guard. */ /* The include_next requires a split double-inclusion guard. */
@ -186,6 +186,22 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
/* Fix up the O_* macros. */ /* Fix up the O_* macros. */
/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT
to values outside 'int' range, so omit these misdefinitions.
But avoid namespace pollution on non-AIX systems. */
#ifdef _AIX
# include <limits.h>
# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX)
# undef O_CLOEXEC
# endif
# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX)
# undef O_NOFOLLOW
# endif
# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX)
# undef O_TTY_INIT
# endif
#endif
#if !defined O_DIRECT && defined O_DIRECTIO #if !defined O_DIRECT && defined O_DIRECTIO
/* Tru64 spells it 'O_DIRECTIO'. */ /* Tru64 spells it 'O_DIRECTIO'. */
# define O_DIRECT O_DIRECTIO # define O_DIRECT O_DIRECTIO

View file

@ -1,5 +1,5 @@
/* Supplemental information about the floating-point formats. /* Supplemental information about the floating-point formats.
Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007. Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Auxiliary definitions for <float.h>. /* Auxiliary definitions for <float.h>.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011. Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* A correct <float.h>. /* A correct <float.h>.
Copyright (C) 2007-2013 Free Software Foundation, Inc. Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -2,7 +2,7 @@
NOTE: getopt is part of the C library, so if you don't know what NOTE: getopt is part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to drepper@gnu.org "Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it! before changing it!
Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -487,7 +487,20 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
const struct option *p; const struct option *p;
struct option_list *next; struct option_list *next;
} *ambig_list = NULL; } *ambig_list = NULL;
#ifdef _LIBC
/* malloc() not used for _LIBC to simplify failure messages. */
# define free_option_list(l)
#else
# define free_option_list(l) \
while (l != NULL) \
{ \
struct option_list *pn = l->next; \
free (l); \
l = pn; \
}
#endif
int exact = 0; int exact = 0;
int ambig = 0;
int indfound = -1; int indfound = -1;
int option_index; int option_index;
@ -514,22 +527,37 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
pfound = p; pfound = p;
indfound = option_index; indfound = option_index;
} }
else if (ambig)
; /* Taking simpler path to handling ambiguities. */
else if (long_only else if (long_only
|| pfound->has_arg != p->has_arg || pfound->has_arg != p->has_arg
|| pfound->flag != p->flag || pfound->flag != p->flag
|| pfound->val != p->val) || pfound->val != p->val)
{ {
/* Second or later nonexact match found. */ /* Second or later nonexact match found. */
#ifdef _LIBC
struct option_list *newp = alloca (sizeof (*newp));
#else
struct option_list *newp = malloc (sizeof (*newp)); struct option_list *newp = malloc (sizeof (*newp));
newp->p = p; if (newp == NULL)
newp->next = ambig_list; {
ambig_list = newp; free_option_list (ambig_list);
ambig_list = NULL;
ambig = 1; /* Use simpler fallback message. */
}
else
#endif
{
newp->p = p;
newp->next = ambig_list;
ambig_list = newp;
}
} }
} }
if (ambig_list != NULL && !exact) if ((ambig || ambig_list) && !exact)
{ {
if (print_errors) if (print_errors && ambig_list)
{ {
struct option_list first; struct option_list first;
first.p = pfound; first.p = pfound;
@ -585,18 +613,20 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
fputc ('\n', stderr); fputc ('\n', stderr);
#endif #endif
} }
else if (print_errors && ambig)
{
fprintf (stderr,
_("%s: option '%s' is ambiguous\n"),
argv[0], argv[d->optind]);
}
d->__nextchar += strlen (d->__nextchar); d->__nextchar += strlen (d->__nextchar);
d->optind++; d->optind++;
d->optopt = 0; d->optopt = 0;
free_option_list (ambig_list);
return '?'; return '?';
} }
while (ambig_list != NULL) free_option_list (ambig_list);
{
struct option_list *pn = ambig_list->next;
free (ambig_list);
ambig_list = pn;
}
if (pfound != NULL) if (pfound != NULL)
{ {

View file

@ -1,5 +1,5 @@
/* Declarations for getopt. /* Declarations for getopt.
Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.

View file

@ -1,5 +1,5 @@
/* getopt_long and getopt_long_only entry points for GNU getopt. /* getopt_long and getopt_long_only entry points for GNU getopt.
Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.

View file

@ -1,5 +1,5 @@
/* Internal declarations for getopt. /* Internal declarations for getopt.
Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.

View file

@ -1,5 +1,5 @@
/* Convenience header for conditional use of GNU <libintl.h>. /* Convenience header for conditional use of GNU <libintl.h>.
Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* Provide gettimeofday for systems that don't have it or for which it's broken. /* Provide gettimeofday for systems that don't have it or for which it's broken.
Copyright (C) 2001-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2001-2003, 2005-2007, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* intprops.h -- properties of integer types /* intprops.h -- properties of integer types
Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2001-2005, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -263,22 +263,28 @@
: (a) % - (b)) \ : (a) % - (b)) \
== 0) == 0)
/* Check for integer overflow, and report low order bits of answer.
/* Integer overflow checks.
The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
might not yield numerically correct answers due to arithmetic overflow. might not yield numerically correct answers due to arithmetic overflow.
They work correctly on all known practical hosts, and do not rely The INT_<op>_WRAPV macros also store the low-order bits of the answer.
These macros work correctly on all known practical hosts, and do not rely
on undefined behavior due to signed arithmetic overflow. on undefined behavior due to signed arithmetic overflow.
Example usage: Example usage, assuming A and B are long int:
long int i = ...; long int result = INT_MULTIPLY_WRAPV (a, b);
long int j = ...; printf ("result is %ld (%s)\n", result,
if (INT_MULTIPLY_OVERFLOW (i, j)) INT_MULTIPLY_OVERFLOW (a, b) ? "after overflow" : "no overflow");
printf ("multiply would overflow");
else Example usage with WRAPV flavor:
printf ("product is %ld", i * j);
long int result;
bool overflow = INT_MULTIPLY_WRAPV (a, b, &result);
printf ("result is %ld (%s)\n", result,
overflow ? "after overflow" : "no overflow");
Restrictions on these macros:
These macros do not check for all possible numerical problems or These macros do not check for all possible numerical problems or
undefined or unspecified behavior: they do not check for division undefined or unspecified behavior: they do not check for division
@ -287,6 +293,9 @@
These macros may evaluate their arguments zero or multiple times, so the These macros may evaluate their arguments zero or multiple times, so the
arguments should not have side effects. arguments should not have side effects.
The WRAPV macros are not constant expressions. They support only
+, binary -, and *. The result type must be signed.
These macros are tuned for their last argument being a constant. These macros are tuned for their last argument being a constant.
Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
@ -317,4 +326,104 @@
_GL_INT_MINIMUM (0 * (b) + (a)), \ _GL_INT_MINIMUM (0 * (b) + (a)), \
_GL_INT_MAXIMUM (0 * (b) + (a))) _GL_INT_MAXIMUM (0 * (b) + (a)))
/* Compute A + B, A - B, A * B, respectively, storing the result into *R.
Return 1 if the result overflows. See above for restrictions. */
#define INT_ADD_WRAPV(a, b, r) \
_GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW)
#define INT_SUBTRACT_WRAPV(a, b, r) \
_GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW)
#define INT_MULTIPLY_WRAPV(a, b, r) \
_GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
#ifndef __has_builtin
# define __has_builtin(x) 0
#endif
/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
https://llvm.org/bugs/show_bug.cgi?id=25390
For now, assume all versions of GCC-like compilers generate bogus
warnings for _Generic. This matters only for older compilers that
lack __builtin_add_overflow. */
#if __GNUC__
# define _GL__GENERIC_BOGUS 1
#else
# define _GL__GENERIC_BOGUS 0
#endif
/* Store A <op> B into *R, where OP specifies the operation.
BUILTIN is the builtin operation, and OVERFLOW the overflow predicate.
See above for restrictions. */
#if 5 <= __GNUC__ || __has_builtin (__builtin_add_oveflow)
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r)
#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
(_Generic \
(*(r), \
signed char: \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
signed char, SCHAR_MIN, SCHAR_MAX), \
short int: \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
short int, SHRT_MIN, SHRT_MAX), \
int: \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
int, INT_MIN, INT_MAX), \
long int: \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
long int, LONG_MIN, LONG_MAX), \
long long int: \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
long long int, LLONG_MIN, LLONG_MAX)))
#else
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
(sizeof *(r) == sizeof (signed char) \
? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
signed char, SCHAR_MIN, SCHAR_MAX) \
: sizeof *(r) == sizeof (short int) \
? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
short int, SHRT_MIN, SHRT_MAX) \
: sizeof *(r) == sizeof (int) \
? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
int, INT_MIN, INT_MAX) \
: _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow))
# ifdef LLONG_MAX
# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
(sizeof *(r) == sizeof (long int) \
? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
long int, LONG_MIN, LONG_MAX) \
: _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
long long int, LLONG_MIN, LLONG_MAX))
# else
# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
long int, LONG_MIN, LONG_MAX))
# endif
#endif
/* Store the low-order bits of A <op> B into *R, where the operation
is given by OP. Use the unsigned type UT for calculation to avoid
overflow problems. *R's type is T, with extremal values TMIN and
TMAX. T must be a signed integer type. */
#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \
(sizeof ((a) op (b)) < sizeof (t) \
? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \
: _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax))
#define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \
((overflow (a, b) \
|| (_GL_INT_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \
|| (tmax) < ((a) op (b))) \
? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 1) \
: (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 0))
/* Return A <op> B, where the operation is given by OP. Use the
unsigned type UT for calculation to avoid overflow problems.
Convert the result to type T without overflow by subtracting TMIN
from large values before converting, and adding it afterwards.
Compilers can optimize all the operations except OP. */
#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t, tmin, tmax) \
(((ut) (a) op (ut) (b)) <= (tmax) \
? (t) ((ut) (a) op (ut) (b)) \
: ((t) (((ut) (a) op (ut) (b)) - (tmin)) + (tmin)))
#endif /* _GL_INTPROPS_H */ #endif /* _GL_INTPROPS_H */

View file

@ -1,5 +1,5 @@
/* isatty() replacement. /* isatty() replacement.
Copyright (C) 2012-2013 Free Software Foundation, Inc. Copyright (C) 2012-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -32,9 +32,11 @@
/* Get _get_osfhandle(). */ /* Get _get_osfhandle(). */
#include "msvc-nothrow.h" #include "msvc-nothrow.h"
/* Optimized test whether a HANDLE refers to a console. static BOOL IsConsoleHandle (HANDLE h)
See <http://lists.gnu.org/archive/html/bug-gnulib/2009-08/msg00065.html>. */ {
#define IsConsoleHandle(h) (((intptr_t) (h) & 3) == 3) DWORD mode;
return GetConsoleMode (h, &mode) != 0;
}
#if HAVE_MSVC_INVALID_PARAMETER_HANDLER #if HAVE_MSVC_INVALID_PARAMETER_HANDLER
static int static int

View file

@ -1,5 +1,5 @@
/* Replacement for 'int' to 'long double' conversion routine. /* Replacement for 'int' to 'long double' conversion routine.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2011. Written by Bruno Haible <bruno@clisp.org>, 2011.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* Determine a canonical name for the current locale's character encoding. /* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000-2006, 2008-2013 Free Software Foundation, Inc. Copyright (C) 2000-2006, 2008-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -34,6 +34,7 @@
#if defined _WIN32 || defined __WIN32__ #if defined _WIN32 || defined __WIN32__
# define WINDOWS_NATIVE # define WINDOWS_NATIVE
# include <locale.h>
#endif #endif
#if defined __EMX__ #if defined __EMX__
@ -127,7 +128,7 @@ get_charset_aliases (void)
cp = charset_aliases; cp = charset_aliases;
if (cp == NULL) if (cp == NULL)
{ {
#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__) #if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2)
const char *dir; const char *dir;
const char *base = "charset.alias"; const char *base = "charset.alias";
char *file_name; char *file_name;
@ -341,6 +342,36 @@ get_charset_aliases (void)
"CP54936" "\0" "GB18030" "\0" "CP54936" "\0" "GB18030" "\0"
"CP65001" "\0" "UTF-8" "\0"; "CP65001" "\0" "UTF-8" "\0";
# endif # endif
# if defined OS2
/* To avoid the troubles of installing a separate file in the same
directory as the DLL and of retrieving the DLL's directory at
runtime, simply inline the aliases here. */
/* The list of encodings is taken from "List of OS/2 Codepages"
by Alex Taylor:
<http://altsan.org/os2/toolkits/uls/index.html#codepages>.
See also "IBM Globalization - Code page identifiers":
<http://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */
cp = "CP813" "\0" "ISO-8859-7" "\0"
"CP878" "\0" "KOI8-R" "\0"
"CP819" "\0" "ISO-8859-1" "\0"
"CP912" "\0" "ISO-8859-2" "\0"
"CP913" "\0" "ISO-8859-3" "\0"
"CP914" "\0" "ISO-8859-4" "\0"
"CP915" "\0" "ISO-8859-5" "\0"
"CP916" "\0" "ISO-8859-8" "\0"
"CP920" "\0" "ISO-8859-9" "\0"
"CP921" "\0" "ISO-8859-13" "\0"
"CP923" "\0" "ISO-8859-15" "\0"
"CP954" "\0" "EUC-JP" "\0"
"CP964" "\0" "EUC-TW" "\0"
"CP970" "\0" "EUC-KR" "\0"
"CP1089" "\0" "ISO-8859-6" "\0"
"CP1208" "\0" "UTF-8" "\0"
"CP1381" "\0" "GB2312" "\0"
"CP1386" "\0" "GBK" "\0"
"CP3372" "\0" "EUC-JP" "\0";
# endif
#endif #endif
charset_aliases = cp; charset_aliases = cp;
@ -461,14 +492,34 @@ locale_charset (void)
static char buf[2 + 10 + 1]; static char buf[2 + 10 + 1];
/* The Windows API has a function returning the locale's codepage as a /* The Windows API has a function returning the locale's codepage as
number: GetACP(). a number, but the value doesn't change according to what the
When the output goes to a console window, it needs to be provided in 'setlocale' call specified. So we use it as a last resort, in
GetOEMCP() encoding if the console is using a raster font, or in case the string returned by 'setlocale' doesn't specify the
GetConsoleOutputCP() encoding if it is using a TrueType font. codepage. */
But in GUI programs and for output sent to files and pipes, GetACP() char *current_locale = setlocale (LC_ALL, NULL);
encoding is the best bet. */ char *pdot;
sprintf (buf, "CP%u", GetACP ());
/* If they set different locales for different categories,
'setlocale' will return a semi-colon separated list of locale
values. To make sure we use the correct one, we choose LC_CTYPE. */
if (strchr (current_locale, ';'))
current_locale = setlocale (LC_CTYPE, NULL);
pdot = strrchr (current_locale, '.');
if (pdot)
sprintf (buf, "CP%s", pdot + 1);
else
{
/* The Windows API has a function returning the locale's codepage as a
number: GetACP().
When the output goes to a console window, it needs to be provided in
GetOEMCP() encoding if the console is using a raster font, or in
GetConsoleOutputCP() encoding if it is using a TrueType font.
But in GUI programs and for output sent to files and pipes, GetACP()
encoding is the best bet. */
sprintf (buf, "CP%u", GetACP ());
}
codeset = buf; codeset = buf;
#elif defined OS2 #elif defined OS2
@ -478,6 +529,8 @@ locale_charset (void)
ULONG cp[3]; ULONG cp[3];
ULONG cplen; ULONG cplen;
codeset = NULL;
/* Allow user to override the codeset, as set in the operating system, /* Allow user to override the codeset, as set in the operating system,
with standard language environment variables. */ with standard language environment variables. */
locale = getenv ("LC_ALL"); locale = getenv ("LC_ALL");
@ -509,10 +562,12 @@ locale_charset (void)
} }
} }
/* Resolve through the charset.alias file. */ /* For the POSIX locale, don't use the system's codepage. */
codeset = locale; if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)
codeset = "";
} }
else
if (codeset == NULL)
{ {
/* OS/2 has a function returning the locale's codepage as a number. */ /* OS/2 has a function returning the locale's codepage as a number. */
if (DosQueryCp (sizeof (cp), cp, &cplen)) if (DosQueryCp (sizeof (cp), cp, &cplen))

View file

@ -1,5 +1,5 @@
/* Determine a canonical name for the current locale's character encoding. /* Determine a canonical name for the current locale's character encoding.
Copyright (C) 2000-2003, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2000-2003, 2009-2015 Free Software Foundation, Inc.
This file is part of the GNU CHARSET Library. This file is part of the GNU CHARSET Library.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* Work around a bug of lstat on some systems /* Work around a bug of lstat on some systems
Copyright (C) 1997-2006, 2008-2013 Free Software Foundation, Inc. Copyright (C) 1997-2006, 2008-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* malloc() function that is glibc compatible. /* malloc() function that is glibc compatible.
Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1997-1998, 2006-2007, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Convert multibyte character to wide character. /* Convert multibyte character to wide character.
Copyright (C) 1999-2002, 2005-2013 Free Software Foundation, Inc. Copyright (C) 1999-2002, 2005-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008. Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -328,7 +328,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
size_t size_t
rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
{ {
# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG # if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
if (s == NULL) if (s == NULL)
{ {
pwc = NULL; pwc = NULL;
@ -337,6 +337,11 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
} }
# endif # endif
# if MBRTOWC_EMPTY_INPUT_BUG
if (n == 0)
return (size_t) -2;
# endif
# if MBRTOWC_RETVAL_BUG # if MBRTOWC_RETVAL_BUG
{ {
static mbstate_t internal_state; static mbstate_t internal_state;

View file

@ -1,5 +1,5 @@
/* Test for initial conversion state. /* Test for initial conversion state.
Copyright (C) 2008-2013 Free Software Foundation, Inc. Copyright (C) 2008-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008. Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013 /* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2015
Free Software Foundation, Inc. Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se), Based on strlen implementation by Torbjorn Granlund (tege@sics.se),

View file

@ -1,5 +1,5 @@
/* Copy memory area and return pointer after last written byte. /* Copy memory area and return pointer after last written byte.
Copyright (C) 2003, 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2003, 2007, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2013 Free Software /* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is derived from the one in the GNU C Library. This file is derived from the one in the GNU C Library.

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2013 Free Software /* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is derived from the one in the GNU C Library. This file is derived from the one in the GNU C Library.

View file

@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries. /* Invalid parameter handler for MSVC runtime libraries.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Invalid parameter handler for MSVC runtime libraries. /* Invalid parameter handler for MSVC runtime libraries.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications /* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries. with MSVC runtime libraries.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Wrappers that don't throw invalid parameter notifications /* Wrappers that don't throw invalid parameter notifications
with MSVC runtime libraries. with MSVC runtime libraries.
Copyright (C) 2011-2013 Free Software Foundation, Inc. Copyright (C) 2011-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Define PATH_MAX somehow. Requires sys/types.h. /* Define PATH_MAX somehow. Requires sys/types.h.
Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 Free Software Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Decomposed printf argument list. /* Decomposed printf argument list.
Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 Free Software Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Decomposed printf argument list. /* Decomposed printf argument list.
Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 Free Software Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Formatted output to strings. /* Formatted output to strings.
Copyright (C) 1999-2000, 2002-2003, 2006-2013 Free Software Foundation, Inc. Copyright (C) 1999-2000, 2002-2003, 2006-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Parse printf format string. /* Parse printf format string.
Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 Free Software Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Program name management. /* Program name management.
Copyright (C) 2001-2003, 2005-2013 Free Software Foundation, Inc. Copyright (C) 2001-2003, 2005-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001. Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Program name management. /* Program name management.
Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2001-2004, 2006, 2009-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2001. Written by Bruno Haible <bruno@clisp.org>, 2001.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* quote.h - prototypes for quote.c /* quote.h - prototypes for quote.c
Copyright (C) 1998-2001, 2003, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1998-2001, 2003, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* quotearg.c - quote arguments for output /* quotearg.c - quote arguments for output
Copyright (C) 1998-2002, 2004-2013 Free Software Foundation, Inc. Copyright (C) 1998-2002, 2004-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -77,6 +77,8 @@ char const *const quoting_style_args[] =
"literal", "literal",
"shell", "shell",
"shell-always", "shell-always",
"shell-escape",
"shell-escape-always",
"c", "c",
"c-maybe", "c-maybe",
"escape", "escape",
@ -91,6 +93,8 @@ enum quoting_style const quoting_style_vals[] =
literal_quoting_style, literal_quoting_style,
shell_quoting_style, shell_quoting_style,
shell_always_quoting_style, shell_always_quoting_style,
shell_escape_quoting_style,
shell_escape_always_quoting_style,
c_quoting_style, c_quoting_style,
c_maybe_quoting_style, c_maybe_quoting_style,
escape_quoting_style, escape_quoting_style,
@ -116,7 +120,7 @@ clone_quoting_options (struct quoting_options *o)
/* Get the value of O's quoting style. If O is null, use the default. */ /* Get the value of O's quoting style. If O is null, use the default. */
enum quoting_style enum quoting_style
get_quoting_style (struct quoting_options *o) get_quoting_style (struct quoting_options const *o)
{ {
return (o ? o : &default_quoting_options)->style; return (o ? o : &default_quoting_options)->style;
} }
@ -178,7 +182,7 @@ set_custom_quoting (struct quoting_options *o,
static struct quoting_options /* NOT PURE!! */ static struct quoting_options /* NOT PURE!! */
quoting_options_from_style (enum quoting_style style) quoting_options_from_style (enum quoting_style style)
{ {
struct quoting_options o = { 0, 0, { 0 }, NULL, NULL }; struct quoting_options o = { literal_quoting_style, 0, { 0 }, NULL, NULL };
if (style == custom_quoting_style) if (style == custom_quoting_style)
abort (); abort ();
o.style = style; o.style = style;
@ -253,6 +257,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
bool backslash_escapes = false; bool backslash_escapes = false;
bool unibyte_locale = MB_CUR_MAX == 1; bool unibyte_locale = MB_CUR_MAX == 1;
bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0; bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0;
bool pending_shell_escape_end = false;
#define STORE(c) \ #define STORE(c) \
do \ do \
@ -263,6 +268,36 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
} \ } \
while (0) while (0)
#define START_ESC() \
do \
{ \
if (elide_outer_quotes) \
goto force_outer_quoting_style; \
escaping = true; \
if (quoting_style == shell_always_quoting_style \
&& ! pending_shell_escape_end) \
{ \
STORE ('\''); \
STORE ('$'); \
STORE ('\''); \
pending_shell_escape_end = true; \
} \
STORE ('\\'); \
} \
while (0)
#define END_ESC() \
do \
{ \
if (pending_shell_escape_end && ! escaping) \
{ \
STORE ('\''); \
STORE ('\''); \
pending_shell_escape_end = false; \
} \
} \
while (0)
switch (quoting_style) switch (quoting_style)
{ {
case c_maybe_quoting_style: case c_maybe_quoting_style:
@ -321,11 +356,18 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
} }
break; break;
case shell_escape_quoting_style:
backslash_escapes = true;
/* Fall through. */
case shell_quoting_style: case shell_quoting_style:
quoting_style = shell_always_quoting_style;
elide_outer_quotes = true; elide_outer_quotes = true;
/* Fall through. */ /* Fall through. */
case shell_escape_always_quoting_style:
if (!elide_outer_quotes)
backslash_escapes = true;
/* Fall through. */
case shell_always_quoting_style: case shell_always_quoting_style:
quoting_style = shell_always_quoting_style;
if (!elide_outer_quotes) if (!elide_outer_quotes)
STORE ('\''); STORE ('\'');
quote_string = "'"; quote_string = "'";
@ -345,8 +387,10 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
unsigned char c; unsigned char c;
unsigned char esc; unsigned char esc;
bool is_right_quote = false; bool is_right_quote = false;
bool escaping = false;
if (backslash_escapes if (backslash_escapes
&& quoting_style != shell_always_quoting_style
&& quote_string_len && quote_string_len
&& (i + quote_string_len && (i + quote_string_len
<= (argsize == SIZE_MAX && 1 < quote_string_len <= (argsize == SIZE_MAX && 1 < quote_string_len
@ -367,15 +411,15 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
case '\0': case '\0':
if (backslash_escapes) if (backslash_escapes)
{ {
if (elide_outer_quotes) START_ESC ();
goto force_outer_quoting_style;
STORE ('\\');
/* If quote_string were to begin with digits, we'd need to /* If quote_string were to begin with digits, we'd need to
test for the end of the arg as well. However, it's test for the end of the arg as well. However, it's
hard to imagine any locale that would use digits in hard to imagine any locale that would use digits in
quotes, and set_custom_quoting is documented not to quotes, and set_custom_quoting is documented not to
accept them. */ accept them. Use only a single \0 with shell-escape
if (i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9') as currently digits are not printed within $'...' */
if (quoting_style != shell_always_quoting_style
&& i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9')
{ {
STORE ('0'); STORE ('0');
STORE ('0'); STORE ('0');
@ -436,6 +480,14 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
case '\t': esc = 't'; goto c_and_shell_escape; case '\t': esc = 't'; goto c_and_shell_escape;
case '\v': esc = 'v'; goto c_escape; case '\v': esc = 'v'; goto c_escape;
case '\\': esc = c; case '\\': esc = c;
/* Never need to escape '\' in shell case. */
if (quoting_style == shell_always_quoting_style)
{
if (elide_outer_quotes)
goto force_outer_quoting_style;
goto store_c;
}
/* No need to escape the escape if we are trying to elide /* No need to escape the escape if we are trying to elide
outer quotes and nothing else is problematic. */ outer quotes and nothing else is problematic. */
if (backslash_escapes && elide_outer_quotes && quote_string_len) if (backslash_escapes && elide_outer_quotes && quote_string_len)
@ -488,6 +540,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
STORE ('\''); STORE ('\'');
STORE ('\\'); STORE ('\\');
STORE ('\''); STORE ('\'');
pending_shell_escape_end = false;
} }
break; break;
@ -601,9 +654,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
{ {
if (backslash_escapes && ! printable) if (backslash_escapes && ! printable)
{ {
if (elide_outer_quotes) START_ESC ();
goto force_outer_quoting_style;
STORE ('\\');
STORE ('0' + (c >> 6)); STORE ('0' + (c >> 6));
STORE ('0' + ((c >> 3) & 7)); STORE ('0' + ((c >> 3) & 7));
c = '0' + (c & 7); c = '0' + (c & 7);
@ -615,6 +666,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
} }
if (ilim <= i + 1) if (ilim <= i + 1)
break; break;
END_ESC ();
STORE (c); STORE (c);
c = arg[++i]; c = arg[++i];
} }
@ -624,18 +676,18 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
} }
} }
if (! ((backslash_escapes || elide_outer_quotes) if (! (((backslash_escapes && quoting_style != shell_always_quoting_style)
|| elide_outer_quotes)
&& quote_these_too && quote_these_too
&& quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1) && quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1)
&& !is_right_quote) && !is_right_quote)
goto store_c; goto store_c;
store_escape: store_escape:
if (elide_outer_quotes) START_ESC ();
goto force_outer_quoting_style;
STORE ('\\');
store_c: store_c:
END_ESC ();
STORE (c); STORE (c);
} }
@ -654,6 +706,8 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
force_outer_quoting_style: force_outer_quoting_style:
/* Don't reuse quote_these_too, since the addition of outer quotes /* Don't reuse quote_these_too, since the addition of outer quotes
sufficiently quotes the specified characters. */ sufficiently quotes the specified characters. */
if (quoting_style == shell_always_quoting_style && backslash_escapes)
quoting_style = shell_escape_always_quoting_style;
return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
quoting_style, quoting_style,
flags & ~QA_ELIDE_OUTER_QUOTES, NULL, flags & ~QA_ELIDE_OUTER_QUOTES, NULL,
@ -900,6 +954,15 @@ quotearg_colon_mem (char const *arg, size_t argsize)
return quotearg_char_mem (arg, argsize, ':'); return quotearg_char_mem (arg, argsize, ':');
} }
char *
quotearg_n_style_colon (int n, enum quoting_style s, char const *arg)
{
struct quoting_options options;
options = quoting_options_from_style (s);
set_char_quoting (&options, ':', 1);
return quotearg_n_options (n, arg, SIZE_MAX, &options);
}
char * char *
quotearg_n_custom (int n, char const *left_quote, quotearg_n_custom (int n, char const *left_quote,
char const *right_quote, char const *arg) char const *right_quote, char const *arg)

View file

@ -1,6 +1,6 @@
/* quotearg.h - quote arguments for output /* quotearg.h - quote arguments for output
Copyright (C) 1998-2002, 2004, 2006, 2008-2013 Free Software Foundation, Copyright (C) 1998-2002, 2004, 2006, 2008-2015 Free Software Foundation,
Inc. Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -73,6 +73,37 @@ enum quoting_style
*/ */
shell_always_quoting_style, shell_always_quoting_style,
/* Quote names for the shell if they contain shell metacharacters
or other problematic characters (ls --quoting-style=shell-escape).
Non printable characters are quoted using the $'...' syntax,
which originated in ksh93 and is widely supported by most shells,
and proposed for inclusion in POSIX.
quotearg_buffer:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
quotearg:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
quotearg_colon:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "'a:b'"
*/
shell_escape_quoting_style,
/* Quote names for the shell even if they would normally not
require quoting (ls --quoting-style=shell-escape).
Non printable characters are quoted using the $'...' syntax,
which originated in ksh93 and is widely supported by most shells,
and proposed for inclusion in POSIX. Behaves like
shell_escape_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect.
quotearg_buffer:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
quotearg:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
quotearg_colon:
"simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "'a:b'"
*/
shell_escape_always_quoting_style,
/* Quote names as for a C language string (ls --quoting-style=c). /* Quote names as for a C language string (ls --quoting-style=c).
Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is
in effect. Split into consecutive strings if in effect. Split into consecutive strings if
@ -247,7 +278,7 @@ struct quoting_options;
struct quoting_options *clone_quoting_options (struct quoting_options *o); struct quoting_options *clone_quoting_options (struct quoting_options *o);
/* Get the value of O's quoting style. If O is null, use the default. */ /* Get the value of O's quoting style. If O is null, use the default. */
enum quoting_style get_quoting_style (struct quoting_options *o); enum quoting_style get_quoting_style (struct quoting_options const *o);
/* In O (or in the default if O is null), /* In O (or in the default if O is null),
set the value of the quoting style to S. */ set the value of the quoting style to S. */
@ -362,6 +393,9 @@ char *quotearg_colon (char const *arg);
/* Like quotearg_colon (ARG), except it can quote null bytes. */ /* Like quotearg_colon (ARG), except it can quote null bytes. */
char *quotearg_colon_mem (char const *arg, size_t argsize); char *quotearg_colon_mem (char const *arg, size_t argsize);
/* Like quotearg_n_style, except with ':' quoting enabled. */
char *quotearg_n_style_colon (int n, enum quoting_style s, char const *arg);
/* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style /* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style
with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE. See with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE. See
set_custom_quoting for a description of acceptable LEFT_QUOTE and set_custom_quoting for a description of acceptable LEFT_QUOTE and

View file

@ -1,5 +1,5 @@
/* Searching in a string. /* Searching in a string.
Copyright (C) 2008-2013 Free Software Foundation, Inc. Copyright (C) 2008-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
# Add this package to a list of references stored in a text file. # Add this package to a list of references stored in a text file.
# #
# Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc. # Copyright (C) 2000, 2009-2015 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
# Remove this package from a list of references stored in a text file. # Remove this package from a list of references stored in a text file.
# #
# Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc. # Copyright (C) 2000, 2009-2015 Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Look up an environment variable more securely. /* Look up an environment variable more securely.
Copyright 2013 Free Software Foundation, Inc. Copyright 2013-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published under the terms of the GNU General Public License as published

View file

@ -1,5 +1,5 @@
/* size_max.h -- declare SIZE_MAX through system headers /* size_max.h -- declare SIZE_MAX through system headers
Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2005-2006, 2009-2015 Free Software Foundation, Inc.
Written by Simon Josefsson. Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Pausing execution of the current thread. /* Pausing execution of the current thread.
Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2007, 2009-2015 Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2007. Written by Bruno Haible <bruno@clisp.org>, 2007.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Work around platform bugs in stat. /* Work around platform bugs in stat.
Copyright (C) 2009-2013 Free Software Foundation, Inc. Copyright (C) 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* A substitute for ISO C11 <stdalign.h>. /* A substitute for ISO C11 <stdalign.h>.
Copyright 2011-2013 Free Software Foundation, Inc. Copyright 2011-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -52,7 +52,10 @@
#undef _Alignas #undef _Alignas
#undef _Alignof #undef _Alignof
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 /* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */
#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
|| (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9)))
# ifdef __cplusplus # ifdef __cplusplus
# if 201103 <= __cplusplus # if 201103 <= __cplusplus
# define _Alignof(type) alignof (type) # define _Alignof(type) alignof (type)
@ -64,7 +67,9 @@
# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) # define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
# endif # endif
#endif #endif
#define alignof _Alignof #if ! (defined __cplusplus && 201103 <= __cplusplus)
# define alignof _Alignof
#endif
#define __alignof_is_defined 1 #define __alignof_is_defined 1
/* alignas (A), also known as _Alignas (A), aligns a variable or type /* alignas (A), also known as _Alignas (A), aligns a variable or type
@ -95,14 +100,21 @@
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112
# if defined __cplusplus && 201103 <= __cplusplus # if defined __cplusplus && 201103 <= __cplusplus
# define _Alignas(a) alignas (a) # define _Alignas(a) alignas (a)
# elif __GNUC__ || __IBMC__ || __IBMCPP__ || __ICC || 0x5110 <= __SUNPRO_C # elif ((defined __APPLE__ && defined __MACH__ \
? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
: __GNUC__) \
|| __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \
|| __ICC || 0x590 <= __SUNPRO_C)
# define _Alignas(a) __attribute__ ((__aligned__ (a))) # define _Alignas(a) __attribute__ ((__aligned__ (a)))
# elif 1300 <= _MSC_VER # elif 1300 <= _MSC_VER
# define _Alignas(a) __declspec (align (a)) # define _Alignas(a) __declspec (align (a))
# endif # endif
#endif #endif
#if defined _Alignas || (defined __STDC_VERSION && 201112 <= __STDC_VERSION__) #if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \
|| (defined __STDC_VERSION && 201112 <= __STDC_VERSION__))
# define alignas _Alignas # define alignas _Alignas
#endif
#if defined alignas || (defined __cplusplus && 201103 <= __cplusplus)
# define __alignas_is_defined 1 # define __alignas_is_defined 1
#endif #endif

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc. /* Copyright (C) 2001-2003, 2006-2015 Free Software Foundation, Inc.
Written by Bruno Haible <haible@clisp.cons.org>, 2001. Written by Bruno Haible <haible@clisp.cons.org>, 2001.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,6 +1,6 @@
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
Copyright (C) 2009-2013 Free Software Foundation, Inc. Copyright (C) 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -39,7 +39,6 @@
# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
# ifdef __need_wint_t # ifdef __need_wint_t
# undef _@GUARD_PREFIX@_STDDEF_H
# define _GL_STDDEF_WINT_T # define _GL_STDDEF_WINT_T
# endif # endif
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@
@ -54,33 +53,56 @@
# @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@
# ifndef _@GUARD_PREFIX@_STDDEF_H
# define _@GUARD_PREFIX@_STDDEF_H
/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */
#if @REPLACE_NULL@ # if (@REPLACE_NULL@ \
# undef NULL && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T))
# ifdef __cplusplus # undef NULL
# ifdef __cplusplus
/* ISO C++ says that the macro NULL must expand to an integer constant /* ISO C++ says that the macro NULL must expand to an integer constant
expression, hence '((void *) 0)' is not allowed in C++. */ expression, hence '((void *) 0)' is not allowed in C++. */
# if __GNUG__ >= 3 # if __GNUG__ >= 3
/* GNU C++ has a __null macro that behaves like an integer ('int' or /* 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 'long') but has the same size as a pointer. Use that, to avoid
warnings. */ warnings. */
# define NULL __null # define NULL __null
# else # else
# define NULL 0L # define NULL 0L
# endif
# else
# define NULL ((void *) 0)
# endif
# endif # endif
# else
# define NULL ((void *) 0) # ifndef _@GUARD_PREFIX@_STDDEF_H
# endif # define _@GUARD_PREFIX@_STDDEF_H
#endif
/* Some platforms lack wchar_t. */ /* Some platforms lack wchar_t. */
#if !@HAVE_WCHAR_T@ #if !@HAVE_WCHAR_T@
# define wchar_t int # define wchar_t int
#endif #endif
/* Some platforms lack max_align_t. */
#if !@HAVE_MAX_ALIGN_T@
/* On the x86, the maximum storage alignment of double, long, etc. is 4,
but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8,
and the C11 standard allows this. Work around this problem by
using __alignof__ (which returns 8 for double) rather than _Alignof
(which returns 4), and align each union member accordingly. */
# ifdef __GNUC__
# define _GL_STDDEF_ALIGNAS(type) \
__attribute__ ((__aligned__ (__alignof__ (type))))
# else
# define _GL_STDDEF_ALIGNAS(type) /* */
# endif
typedef union
{
char *__p _GL_STDDEF_ALIGNAS (char *);
double __d _GL_STDDEF_ALIGNAS (double);
long double __ld _GL_STDDEF_ALIGNAS (long double);
long int __i _GL_STDDEF_ALIGNAS (long int);
} max_align_t;
#endif
# endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */
# endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */
#endif /* __need_XXX */ #endif /* __need_XXX */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. /* Copyright (C) 2001-2002, 2004-2015 Free Software Foundation, Inc.
Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
This file is part of gnulib. This file is part of gnulib.
@ -38,8 +38,7 @@
other system header files; just include the system's <stdint.h>. other system header files; just include the system's <stdint.h>.
Ideally we should test __BIONIC__ here, but it is only defined after Ideally we should test __BIONIC__ here, but it is only defined after
<sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */
#if defined __ANDROID__ \ #if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H
&& defined _SYS_TYPES_H_ && !defined __need_size_t
# @INCLUDE_NEXT@ @NEXT_STDINT_H@ # @INCLUDE_NEXT@ @NEXT_STDINT_H@
#else #else

View file

@ -1,6 +1,6 @@
/* A GNU-like <stdio.h>. /* A GNU-like <stdio.h>.
Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc. Copyright (C) 2004, 2007-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -84,8 +84,13 @@
except that it indicates to GCC that the supported format string directives except that it indicates to GCC that the supported format string directives
are the ones of the system printf(), rather than the ones standardized by are the ones of the system printf(), rather than the ones standardized by
ISO C99 and POSIX. */ ISO C99 and POSIX. */
#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ #if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
_GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument)
#else
# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
_GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
#endif
/* _GL_ATTRIBUTE_FORMAT_SCANF /* _GL_ATTRIBUTE_FORMAT_SCANF
indicates to GCC that the function takes a format string and arguments, indicates to GCC that the function takes a format string and arguments,
@ -718,11 +723,10 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
so any use of gets warrants an unconditional warning; besides, C11 so any use of gets warrants an unconditional warning; besides, C11
removed it. */ removed it. */
#undef gets #undef gets
#if HAVE_RAW_DECL_GETS #if HAVE_RAW_DECL_GETS && !defined __cplusplus
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif #endif
#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
struct obstack; struct obstack;
/* Grow an obstack with formatted output. Return the number of /* Grow an obstack with formatted output. Return the number of

View file

@ -1,6 +1,6 @@
/* A GNU-like <stdlib.h>. /* A GNU-like <stdlib.h>.
Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc. Copyright (C) 1995, 2001-2004, 2006-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -520,6 +520,29 @@ _GL_CXXALIAS_SYS (putenv, int, (char *string));
_GL_CXXALIASWARN (putenv); _GL_CXXALIASWARN (putenv);
#endif #endif
#if @GNULIB_QSORT_R@
# if @REPLACE_QSORT_R@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# undef qsort_r
# define qsort_r rpl_qsort_r
# endif
_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
int (*compare) (void const *, void const *,
void *),
void *arg) _GL_ARG_NONNULL ((1, 4)));
_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
int (*compare) (void const *, void const *,
void *),
void *arg));
# else
_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
int (*compare) (void const *, void const *,
void *),
void *arg));
# endif
_GL_CXXALIASWARN (qsort_r);
#endif
#if @GNULIB_RANDOM_R@ #if @GNULIB_RANDOM_R@
# if !@HAVE_RANDOM_R@ # if !@HAVE_RANDOM_R@

View file

@ -1,5 +1,5 @@
/* stpcpy.c -- copy a string and return pointer to end of new string /* stpcpy.c -- copy a string and return pointer to end of new string
Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2013 Free Software Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library. NOTE: The canonical source of this file is maintained with the GNU C Library.

View file

@ -1,5 +1,5 @@
/* Case-insensitive string comparison function. /* Case-insensitive string comparison function.
Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2007, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Searching in a string. /* Searching in a string.
Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc. Copyright (C) 2003, 2007-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,5 +1,5 @@
/* Optimized string comparison. /* Optimized string comparison.
Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2001-2002, 2007, 2009-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify it This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published under the terms of the GNU General Public License as published

View file

@ -1,6 +1,6 @@
/* strerror-override.c --- POSIX compatible system error routine /* strerror-override.c --- POSIX compatible system error routine
Copyright (C) 2010-2013 Free Software Foundation, Inc. Copyright (C) 2010-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* strerror-override.h --- POSIX compatible system error routine /* strerror-override.h --- POSIX compatible system error routine
Copyright (C) 2010-2013 Free Software Foundation, Inc. Copyright (C) 2010-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* strerror.c --- POSIX compatible system error routine /* strerror.c --- POSIX compatible system error routine
Copyright (C) 2007-2013 Free Software Foundation, Inc. Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* A GNU-like <string.h>. /* A GNU-like <string.h>.
Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc. Copyright (C) 1995-1996, 2001-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -15,16 +15,32 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */ along with this program; if not, see <http://www.gnu.org/licenses/>. */
#ifndef _@GUARD_PREFIX@_STRING_H
#if __GNUC__ >= 3 #if __GNUC__ >= 3
@PRAGMA_SYSTEM_HEADER@ @PRAGMA_SYSTEM_HEADER@
#endif #endif
@PRAGMA_COLUMNS@ @PRAGMA_COLUMNS@
#if defined _GL_ALREADY_INCLUDING_STRING_H
/* Special invocation convention:
- On OS X/NetBSD we have a sequence of nested includes
<string.h> -> <strings.h> -> "string.h"
In this situation system _chk variants due to -D_FORTIFY_SOURCE
might be used after any replacements defined here. */
#@INCLUDE_NEXT@ @NEXT_STRING_H@
#else
/* Normal invocation convention. */
#ifndef _@GUARD_PREFIX@_STRING_H
#define _GL_ALREADY_INCLUDING_STRING_H
/* The include_next requires a split double-inclusion guard. */ /* The include_next requires a split double-inclusion guard. */
#@INCLUDE_NEXT@ @NEXT_STRING_H@ #@INCLUDE_NEXT@ @NEXT_STRING_H@
#undef _GL_ALREADY_INCLUDING_STRING_H
#ifndef _@GUARD_PREFIX@_STRING_H #ifndef _@GUARD_PREFIX@_STRING_H
#define _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H
@ -1027,3 +1043,4 @@ _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
#endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */
#endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */
#endif

View file

@ -1,6 +1,6 @@
/* A substitute <strings.h>. /* A substitute <strings.h>.
Copyright (C) 2007-2013 Free Software Foundation, Inc. Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* stripslash.c -- remove redundant trailing slashes from a file name /* stripslash.c -- remove redundant trailing slashes from a file name
Copyright (C) 1990, 2001, 2003-2006, 2009-2013 Free Software Foundation, Copyright (C) 1990, 2001, 2003-2006, 2009-2015 Free Software Foundation,
Inc. Inc.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* strncasecmp.c -- case insensitive string comparator /* strncasecmp.c -- case insensitive string comparator
Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 1998-1999, 2005-2007, 2009-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* A replacement function, for systems that lack strndup. /* A replacement function, for systems that lack strndup.
Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2013 Free Software Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it

View file

@ -1,5 +1,5 @@
/* Find the length of STRING, but scan at most MAXLEN characters. /* Find the length of STRING, but scan at most MAXLEN characters.
Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc. Copyright (C) 2005-2007, 2009-2015 Free Software Foundation, Inc.
Written by Simon Josefsson. Written by Simon Josefsson.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify

View file

@ -1,5 +1,5 @@
/* Compare strings while treating digits characters numerically. /* Compare strings while treating digits numerically. -*- coding: utf-8 -*-
Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2013 Free Software Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2015 Free Software
Foundation, Inc. Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.

View file

@ -1,5 +1,5 @@
/* Provide a more complete sys/stat header file. /* Provide a more complete sys/stat header file.
Copyright (C) 2005-2013 Free Software Foundation, Inc. Copyright (C) 2005-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

View file

@ -1,6 +1,6 @@
/* Provide a more complete sys/time.h. /* Provide a more complete sys/time.h.
Copyright (C) 2007-2013 Free Software Foundation, Inc. Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by

Some files were not shown because too many files have changed in this diff Show more