2015-04-02 Pádraig Brady
mountlist: remove dependency on libmount
* lib/mountlist.c (read_file_system_list): Parse /proc/self/mountinfo
directly, rather than depending on libmount, which has many
dependencies due to its dependence on libselinux, as detailed at:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00063.html
Note we restrict this to __linux__ as that's probably where this
interface will remain. If ever porting, it would be best
to first pull the makedev() wrapper from coreutils to a gnulib module.
Note also we don't add a getline dependency to the mountlist module,
as all Linux versions are sufficient.
2015-04-02 Paul Eggert
stddef: port to pre-C11 GCC on x86
On this platform, max_align_t should have an alignment of 8 even
though the storage alignments of double, long, etc. max out at 4.
Inspired by a comment of Andreas Schwab's here:
https://sourceware.org/ml/libc-alpha/2015-04/msg00017.html
* lib/stddef.in.h (_GL_STDDEF_ALIGNAS) [!HAVE_MAX_ALIGN_T]: New macro.
(max_align_t) [!HAVE_MAX_ALIGN_T]: Use it.
* tests/test-stddef.c: Test __alignof__ too, if available.
2015-03-24 Pádraig Brady
quotearg-simple-tests: add missing gl_FUNC_MMAP_ANON dependency
* modules/quotearg-simple-tests: Reference m4/mmap-anon.m4
2015-03-24 Tobias Stoeckmann
yesno: make EOL optional in ENABLE_NLS case also (trival)
* lib/yesno.c (yesno): Check for EOL before replacing.
* tests/test-yesno.sh: Add a test case (test along with gettext).
2015-03-22 Paul Eggert
fdopendir-tests: test it does not close its arg
* tests/test-fdopendir.c (main): Test that fdopendir does not
close its argument. From a suggestion by David Grayson in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00039.html
2015-03-20 Paul Eggert
gitlog-to-changelog: trim trailing white space
* build-aux/gitlog-to-changelog (main):
Trim trailing white space from commit message lines.
This is helpful for processing the GNU Emacs repository,
which dates back to 1985 and contains a lot of such lines.
gitlog-to-changelog: new option --ignore-matching
* build-aux/gitlog-to-changelog (usage, git_dir_option, main):
Support new option --ignore-matching=PAT, which ignores all
commit messages whose first line matches PAT.
2015-03-19 Paul Eggert
fdopendir: port better to MinGW
* lib/fdopendir.c (fd_clone_opendir) [REPLACE_FCHDIR]:
Use 'dup' if dirfd fails. Suggested by Eli Zaretskii in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00033.html
* modules/fdopendir (Depends-on): Add dirfd.
2015-03-18 Paul Eggert
fdopendir: fix typo in comment
* lib/fdopendir.c (fdopendir_with_dup): REPLACE_FCHDIR was misspelled.
2015-03-09 Eric Blake
error: document all entry points provided
* doc/glibc-functions/error_print_progname.texi
(error_print_progname): Mention the error module.
* doc/glibc-functions/error_at_line.texi (error_at_line):
Likewise.
* doc/glibc-functions/error_message_count.texi
(error_message_count): Likewise.
* doc/glibc-functions/error_one_per_line.texi
(error_one_per_line): Likewise.
2015-03-03 Paul Eggert
vasnprintf: pacify clang 3.5.0
Problem reported by Werner Lemberg in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-03/msg00000.html
* lib/vasnprintf.c (VASNPRINTF): Omit casts that clang objects to.
The casts aren't needed, since the characters in question are ASCII.
2015-02-24 Paul Eggert
glob, etc.: port to MSVC v18 on MS-Windows 8.1
* lib/dirent--.h (GNULIB_defined_opendir):
* lib/dirent.in.h (GNULIB_defined_opendir)
(GNULIB_defined_closedir):
* lib/getcwd.c, lib/glob.c, lib/mountlist.c (opendir, closedir):
#undef only if Gnulib defined it.
poll: port to MSVC v18 on MS-Windows 8.1
Problem reported by Gisle Vanem in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00139.html
* lib/poll.c: Always include and .
* modules/poll (Depends-on) [!HAVE_POLL || REPLACE_POLL]:
Add sys_socket.
2015-02-24 Pádraig Brady
tests: support stderr verification with returns_()
* tests/init.sh (returns_): Disable tracing for this wrapper
function, so that stderr of the wrapped command is unchanged,
allowing for verification of the contents.
2015-02-24 Pavel Hrdina
passfd: avoid valgrind uninitalised data warning
* lib/passfd.c (sendfd): Reset the msg_controllen of msghdr,
to include just the fd we've initialised, rather than including
the extra space used for alignment.
2015-02-23 Paul Eggert
uniwbrk/u32-wordbreaks-tests: fix copyright
* tests/uniwbrk/test-uc-wordbreaks.c: Fix copyright date.
dup2: doc and test for Android bug
Reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00125.html
* doc/posix-functions/dup2.texi (dup2): Document the bug.
* m4/dup2.m4 (gl_FUNC_DUP2): Test for the bug.
2015-02-23 Kevin Cernekee
Replace dup2() on Android
* m4/dup2.m4 (gl_FUNC_DUP2): Android implements dup2() using dup3().
Since dup3(fd, fd) fails but dup2(fd, fd) should pass, test-dup2
fails. Using rpl_dup2() fixes this because it has an explicit test
for this condition.
2015-02-22 Paul Eggert
Android doesn't define RLIM_SAVED_*
Portability problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00122.html
* doc/posix-headers/sys_resource.texi (sys/resource.h):
Mention the portability problem.
* lib/getdtablesize.c (RLIM_SAVED_CUR, RLIM_SAVED_MAX):
Define if not defined.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Likewise.
2015-02-21 Paul Eggert
vasnprintf-posix-tests: use consistent test
* tests/test-vasnprintf-posix.c (test_function):
Use "<" in assert instead of "<=", for consistency with other tests.
2015-02-20 Paul Eggert
printf, isinf, etc.: noncanonical != NaN
Do not require that isinf, printf, etc. treat noncanonical
values as NaNs. Instead, require only that they do not crash.
Problem reported by Joseph Myers in:
https://sourceware.org/ml/libc-alpha/2015-02/msg00244.html
* doc/posix-functions/dprintf.texi (dprintf):
* doc/posix-functions/fprintf.texi (fprintf):
* doc/posix-functions/isfinite.texi (isfinite):
* doc/posix-functions/isinf.texi (isinf):
* doc/posix-functions/isnan.texi (isnan):
* doc/posix-functions/printf.texi (printf):
* doc/posix-functions/snprintf.texi (snprintf):
* doc/posix-functions/sprintf.texi (sprintf):
* doc/posix-functions/vdprintf.texi (vdprintf):
* doc/posix-functions/vfprintf.texi (vfprintf):
* doc/posix-functions/vprintf.texi (vprintf):
* doc/posix-functions/vsnprintf.texi (vsnprintf):
* doc/posix-functions/vsprintf.texi (vsprintf):
Document this.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS):
* m4/isinf.m4 (gl_ISINFL_WORKS):
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS):
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE):
* tests/test-isfinite.c (test_isfinitel):
* tests/test-isinf.c (test_isinfl):
* tests/test-isnan.c (test_long_double):
* tests/test-isnanl.h (main):
* tests/test-snprintf-posix.h (test_function):
* tests/test-sprintf-posix.h (test_function):
* tests/test-vasnprintf-posix.c (test_function):
* tests/test-vasprintf-posix.c (test_function):
o Test only that noncanonical values do not cause crashes, not that
they are treated as NaNs. In some cases this means a larger
output buffer is needed.
2015-02-20 Jaroslav Skarvada
fts: remove redundant close() (trivial)
* lib/fts.c (fts_read): Remove redundant call to close().
Spotted by coverity.
2015-02-20 Paul Eggert
getdtablesize: port better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00112.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize): Mention bug.
* lib/getdtablesize.c (getdtablesize): Don't fall back on _SC_OPEN_MAX.
Instead, just use getrlimit, taking care to avoid Cygwin bug.
poll: fixes for large fds
* lib/poll.c (poll): Don't check directly for NFD too large.
Don't rely on undefined behavior in FD_SET when an arg exceeds
FD_SETSIZE. Always set revents afterwards, even if to zero.
* tests/test-poll.c (poll1): Set revents to -1 instead of 0,
as that makes the test a bit stricter.
2015-02-19 Kevin Cernekee
fcntl: Fix cross compiling
* m4/fcntl.m4 (gl_FUNC_FCNTL): Assign the guessed result to the
correct variable name (gl_cv_func_fcntl_f_dupfd_works).
2015-02-18 Paul Eggert
dup2, fcntl: cross-compile better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00109.html
* m4/dup2.m4 (gl_FUNC_DUP2): Don't guess no when cross-compiling
for a Linux kernel. That kernel bug was fixed on 2009-05-11, and
there's little need to cross-compile for older kernels nowadays.
* m4/fcntl.m4 (gl_FUNC_FCNTL): When cross-compiling, guess no only
for systems where the bug is known to occur (AIX, Cygwin, Haiku).
2015-02-18 Pádraig Brady
getopt: don't crash on memory exhaustion
* lib/getopt.c (_getopt_internal_r): Use degraded diagnostics on
memory exhaustion. In the _LIBC case we use alloca() as is
already done in glibc, so we don't need to consider the separate
error path in that awkward case. Also fix a memory leak when
ambiguous options are present.
Reported by Tobias Stoeckmann
2015-02-17 Mike Miller
tempname: allow compilation with C++ (trivial)
* lib/tempname.h [C++]: Specify extern "C" linkage.
* lib/tempname.h (try_tempname):
* lib/tempname.c (__try_tempname, __gen_tempname):
Rename 'try' to 'tryfunc'.
2015-02-17 Paul Eggert
dup2, fcntl: port to AIX
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Prefer getrusage (RLIM_NOFILE ...)/rlim_cur to sysconf (_SC_OPEN_MAX).
The former works on AIX 7.1 but the latter does not.
Also, this may work better with Android; see:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00100.html
2015-02-16 Paul Eggert
getdtablesize, dup2, fcntl: port to Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00092.html
* doc/glibc-functions/getdtablesize.texi (getdtablesize):
Mention that getdtablesize doesn't work on Android.
* lib/getdtablesize.c: Use getrlimit substitute only if
getdtablesize is declared. This should suffice for Cygwin
while not breaking Android.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Prefer sysconf (_SC_OPEN_MAX) to getdtablesize, as the former is
standardized but the latter is not, and sysconf works on Android.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE):
Also check that getdtablesize is declared.
This removes the need for a special case for Android.
2015-02-16 Kevin Cernekee
localename: Implement gl_locale_name_thread_unsafe for Android
* lib/localename.c: Android API level >= 21 supports two hardcoded
locales: C (POSIX) and C.UTF-8. Distinguish them by checking
the internal __locale_t struct.
2015-02-16 Kamil Dudka
fts: avoid crash when a cycle is added while traversing
This could be triggered by auto-mounting a recursive bind mount.
Reported by Michael Chapman in: https://bugzilla.redhat.com/1188498
* lib/fts.c (fts_read): Avoid removing the original hash table item
when leaving a directory that caused a cycle, and preserve the FTS_DC
flag.
2015-02-16 Daiki Ueno
uniname/uniname: support character alias
* lib/uniname/gen-uninames.lisp (main): New argument ALIASFILE.
Generate one-way mapping from aliases to codepoints in the
generated tables. Special case variation selectors to reduce
table size.
* lib/uniname/uniname.c (unicode_character_name): Special case
variation selectors.
(unicode_name_character): Special case variation selectors and
their aliases.
* lib/uniname/uninames.h: Regenerate.
* tests/uniname/NameAliases.txt: New file, taken from UCD 7.0.0.
* modules/uniname/uniname-tests (Files): Add
tests/uniname/NameAliases.txt.
* tests/uniname/test-uninames.c: Mark as static.
(ALIASLEN): Define.
(struct unicode_alias): New struct.
(unicode_aliases): New variable.
(fill_aliases): New function.
(test_alias_lookup): New test function.
(main): Run the 'test_alias_lookup' test if the second argument is
given.
* tests/uniname/test-uninames.sh: Supply NameAliases.txt as the
second argument.
2015-02-11 Kevin Cernekee
Fix FILE struct compatibility with Android API level >= 21
* lib/stdio-impl.h: Test explicitly for __ANDROID__ instead of
__sferror. Recent versions of Bionic's stdio.h no longer define
__sferror.
* lib/fbufmode.c: Likewise.
* lib/fflush.c: Likewise.
* lib/fpurge.c: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freading.c: Likewise.
* lib/freadptr.c: Likewise.
* lib/freadseek.c: Likewise.
* lib/fseeko.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fwritable.c: Likewise.
Assume unbroken ungetc() on Android
* m4/ungetc.m4: Add Android case to host OS check. The ungetc()
test case passed when running on an Android host, and the code
hasn't really changed since 2009.
getdtablesize: Fix Android build
* m4/getdtablesize.m4: Add Android case to host OS check. Recent NDK
versions have this symbol in the .so library (at least 32-bit
platforms) but are missing the declaration in the header file,
causing the m4 logic to guess incorrectly.
localename: Fix Android build
* modules/localename (Depends-on): Add langinfo.
getugroups: Fix Android build
* lib/getugroups.c: Don't reference unsupported {get,set,end}grent
functions.
euidaccess: Fix Android build
* modules/euidaccess (Depends-on): Add fcntl-h to ensure that
AT_EACCESS gets declared.
linkat_nofollow: Add fallback case for cross compiling
* m4/linkat.m4: Guess no for Darwin, yes otherwise.
net_if: Handle content-free system headers
* m4/net_if_h.m4: Check to make sure actually defines
struct if_nameindex. If not, enable the replacement header.
signal_h: Fix Android build
* lib/signal.in.h: Add Android to the list of platforms that declare
pthread_sigmask() in instead of .
duplocale: Fix Android build of duplocale-tests
* modules/duplocale-tests (Depends-on): Add langinfo, as the header
is included by test-duplocale.c (but not by duplocale.c).
* modules/duplocale-tests (configure.ac): Check for monetary.h.
* tests/test-duplocale.c: Skip test if monetary.h is absent.
* doc/posix-headers/monetary.texi: Add Android to the list of
platforms missing monetary.h.
2015-02-11 Pádraig Brady
tests: avoid recent -Werror=unused-variable regression in test-locale
* tests/test-locale.c (main): Reference the variable to avoid the
"unused variable" warning.
2015-02-11 Pádraig Brady
maint: various whitespace cleanups in tempname
* lib/tempname.c: Normalize spacing and line length.
* lib/tempname.h: Likewise.
* modules/tempname: Likewise.
2015-02-11 Pádraig Brady
tests: provide returns_() to simplify exit status checking
* tests/init.sh (returns_): A new function for use in tests,
to allow for easier checking of return values, where you expect
a command to exit with failure status. By checking for a particular
exit code, you don't hide any crashes for example.
2015-02-11 Pádraig Brady
mountlist: only use libmount when specified
There are currently many shared libs dependencies introduced by
libmount with associated runtime and virt mem overhead.
Therefore don't enable by default.
* m4/ls-mntd-fs.m4: Use --with-libmount to enable at build time.
2015-02-08 Daiki Ueno
uniname/unimame-tests: don't link with -lunistring
* modules/uniname/uniname-tests (Makefile.am): Don't link against
$(LIBUNISTRING). Document the rationale why we need to
conditionalize the test.
2015-02-07 Paul Eggert
fstrcmp: don't assume strlen < INT_MAX
* lib/fstrcmp.c: Include stddef.h and stdint.h.
(uintptr_t): Remove, as we're now assuming stdint.
(OFFSET, EXTRA_CONTEXT_FIELDS, fstrcmp_bounded):
Prefer ptrdiff_t to int when the value could exceed INT_MAX
if the input string is long.
(fstrcmp_bounded): Check for size-calculation overflow. Prefer
uintptr_t to size_t when the underlying value is a pointer casted
to an unsigned integer. Avoid unnecessary 'buffer != NULL' test.
* modules/fstrcmp (Depends-on): Add stdint.
diffseq: prefer ptrdiff_t to ssize_t
* lib/diffseq.h: In commentary, prefer ptrdiff_t to ssize_t.
ptrdiff_t is the natural type for signed indexes.
On a few older platforms, ssize_t is narrower than size_t.
xalloc: fix typo that suppressed warnings
* lib/xalloc.h: Add missing _GL_INLINE_HEADER_END.
This typo, introduced a couple of years ago, mistakenly suppressed
some -Wsuggest-attribute=const, -Wmissing-prototypes, and
-Wmissing-declarations warnings.
full-read: fix license notice typo
* lib/full-read.h: Remove a stray line in the license notice.
Reported by Sam Ellis in: http://bugs.gnu.org/19808
crypto/gc: fix a -Wswitch warning
Reported by Bruce Korb in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-02/msg00046.html
* lib/gc-gnulib.c (gc_hash_open): Fail faster if MODE is nonzero.
2015-02-03 Pádraig Brady
gnulib-tool: fix handling of patch(1) diagnostics
* gnulib-tool: Send diagnostics from patch(1) to stderr,
as otherwise gnulib-tool will reparse that output and attempt
to lookup modules.
2015-02-03 Pádraig Brady
bootstrap: exit immediately upon gnulib-tool failure
* build-aux/bootstrap: Exit immediately if gnulib-tool fails.
This was noticed when gnulib-tool exited early due to failure
to apply a patch in coreutils at http://hydra.nixos.org/eval/1172233,
but various confusing errors were then given as the build proceeded.
2015-02-02 Andreas Gruenbacher
symlinkat: include all required header files
* lib/symlinkat.c (HAVE_SYMLINK_AT): Add for fstatat(),
and string.h for strlen(), required at least on OS X 10.10 (Yosemite).
Reported at https://savannah.gnu.org/bugs/index.php?44151
and by Jack Howarth.
2015-01-29 Pádraig Brady
localename: support Solaris 12 and illumos
* lib/localename.c (gl_locale_name_thread_unsafe): call
getlocalename_l() on newer __sun platforms.
Reported by Alexander Pyhalov.
Fix suggested by Rich Burridge.
2015-01-29 Alexander Pyhalov
locale: fix tests on illumos (trivial)
* tests/test-locale.c: LC_GLOBAL_LOCALE is a function call on illumos,
so move from global scope to main().
2015-01-24 Daiki Ueno
unictype: avoid undefined left-shift behavior
* lib/unictype/bidi_of.c (uc_bidi_class): Building libunistring with
gcc's -fsanitize=shift and running its tests triggered:
unictype/bidi_of.c:43:60: runtime error: left shift of 40167 by 16 \
places cannot be represented in type 'int'
Cast LHS to 'unsigned int' after integer promotion.
* lib/unictype/categ_of.c (lookup_withtable): Likewise.
* lib/unictype/joininggroup_of.c (uc_joining_group): Likewise.
2015-01-20 Daiki Ueno
libunistring: bump version of unitypes dependants
Due to the header file search order, all the headers which depend
on unitypes.h need to be generated, when the preinstalled
libunistring is older.
* modules/unicase/base (configure.ac): Bump minimum version to
0.9.4.
* modules/uniconv/base (configure.ac): Likewise.
* modules/unilbrk/base (configure.ac): Likewise.
* modules/uninorm/base (configure.ac): Likewise.
* modules/unistdio/base (configure.ac): Likewise.
* modules/unistr/base (configure.ac): Likewise.
* modules/uniwbrk/base (configure.ac): Likewise.
* modules/uniwidth/base (configure.ac): Likewise.
2015-01-20 Daiki Ueno
unictype/category-none: fix link with libunistring
Since _UC_CATEGORY_NONE is not a public symbol, it will be
prefixed with "libstring_" when compiled as part of libunistring.
To avoid undefined symbol at link time, increase the minimum
version when the dependant modules are updated.
* modules/unictype/category-none (configure.ac): Bump minimum
version to 0.9.5.
2015-01-20 Daiki Ueno
unitypes: fix build with installed libunistring
The minimum version has not bumped after _UC_ATTRIBUTE_CONST and
_UC_ATTRIBUTE_PURE were added to unitypes.in.h.
* modules/unitypes (configure.ac): Bump minimum version to 0.9.4.
2015-01-15 Paul Eggert
time: port to MinGW32 3.21
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00042.html
* lib/time.in.h:
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC):
* modules/time (Depends-on):
Fall back on unistd.h if the other include files don't define
struct timespec.
update-copyright: apply to self
* build-aux/update-copyright: Fix copyright date. How ironic!
2015-01-15 Daiki Ueno
libunistring: update to Unicode 7.0.0
* lib/unictype/joininggroup_byname.gperf: Add Straight Waw and
Manichaean names.
* lib/unictype/joininggroup_name.h: Likewise.
* lib/unictype.in.h (UC_JOINING_GROUP_STRAIGHT_WAW)
(UC_JOINING_GROUP_MANICHAEAN_ALEPH): New enumeration values.
* lib/gen-uni-tables.c (UC_JOINING_GROUP_STRAIGHT_WAW)
(UC_JOINING_GROUP_MANICHAEAN_*): New enumeration values.
(fill_arabicshaping, joining_group_as_c_identifier): Support those
enum values.
(is_property_alphabetic): Accept newly added characters to
cuneiform numeric signs.
(is_property_default_ignorable_code_point): Reject U+0605.
(FIELDLEN): Increase from 120 to 160.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+0605,
U+08FF, U+0C00, U+0C81, U+0D01, U+1AB0..U+1ABE, U+1BAC..U+1BAD,
U+1CF8..U+1CF9, U+1DE7..U+1DF5, U+A9E5, U+AA7C, U+FE27..U+FE2D,
U+102E0, U+10376..U+1037A, U+10AE5..U+10AE6, U+1107F, U+11173,
U+1122F..U+11231, U+11234, U+11236..U+11237, U+112DF,
U+112E3..U+112EA, U+11301, U+1133C, U+11340, U+11366..U+1136C,
U+11370..U+11374, U+114B3..U+114B8, U+114BA, U+114BF..U+114C0,
U+114C2..U+114C3, U+115B2..U+115B5, U+115BC..U+115C0,
U+11633..U+1163A, U+1163D, U+1163F..U+11640, U+16AF0..U+16AF4,
U+16B30..U+16B36, U+1BC9D..U+1BC9E, U+1BCA0..U+1BCA3, and
U+1E8D0..U+1E8D6.
(uc_width): Adjust nonspacing_table_ind boundary from 240 to 248.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* all generated files under lib/uni* and tests/uni*: Regenerate.
2015-01-14 Daiki Ueno
libunistring: update to Unicode 6.3.0
* lib/uniwbrk.in.h (WBP_DQ, WBP_SQ, WBP_HL): New enumeration values.
* lib/uniwbrk/u-wordbreaks.h (FUNC): Support WB7a, WB7b, and WB7c.
Update WB5, WB6, WB7, WB9, WB11, WB12, WB13a, and WB13b.
* lib/uniwbrk/wbrktable.h (uniwbrk_table): Adjust table size.
* lib/uniwbrk/wbrktable.c (uniwbrk_table): Support rule WB7a.
Update WB5, WB9, WB10, WB13a, and WB13b.
* tests/uniwbrk/test-uc-wordbreaks.c
(wordbreakproperty_to_string): Support WBP_DQ, WBP_SQ, and WBP_HL.
* lib/gen-uni-tables.c (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI)
(UC_BIDI_PDI): New enumeration values.
(bidi_category_byname): Support those enum values.
(is_WBP_MIDNUMLET): Exclude 0x0027 (SINGLE QUOTE), which is now a
dedicated property assigned.
(is_property_case_ignorable): Check 0x0027.
(WBP_DQ, WBP_SQ, WBP_HL): New enumeration values.
(get_wbp, debug_output_wbp, fill_org_wbp, debug_output_org_wbp)
(output_wbp): Support those enum values.
* lib/unictype.in.h (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI)
(UC_BIDI_PDI): New enumeration values.
* lib/unictype/bidi_byname.gperf: Add those property names.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+061C,
U+180E, U+1A1B, and U+2066..U+2069.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* all generated files under lib/uni* and tests/uni*: Regenerate.
2015-01-14 Daiki Ueno
libunistring: update to Unicode 6.2.0
* lib/unilbrk/lbrktables.h (LBP_RI): New enumeration value.
(unilbrk_table): Adjust table size.
* lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column
for LBP_RI.
* lib/uniwbrk.in.h (WBP_RI): New enumeration value.
* lib/uniwbrk/u-wordbreaks.h (FUNC): Support rule WB13c.
Normalize table index skipping ignored properties.
* lib/uniwbrk/wbrktable.c (uniwbrk_table): Support WBP_RI. Remove
WBP_EXTEND and WBP_FORMAT, which are now computed without using
the table.
* lib/uniwbrk/wbrktable.h: Adjust table size.
* lib/unigbrk.in.h (GBP_RI): New enumeration value.
* lib/unigbrk/uc-is-grapheme-break.c (UC_IS_GRAPHEME_BREAK):
Support rule GB8a.
(UC_GRAPHEME_BREAKS_FOR, gb_table): Support GBP_RI.
* tests/unigbrk/test-uc-is-grapheme-break.c
(graphemebreakproperty_to_string): Support GBP_RI.
* tests/uniwbrk/test-uc-wordbreaks.c
(wordbreakproperty_to_string): Support WBP_RI.
* lib/gen-uni-tables.c (LBP_RI): New enumeration value.
(get_lbp, debug_output_lbp, fill_org_lbp, debug_output_org_lbp)
(output_lbp): Support LBP_RI. Adjust some characters changed from
LBP_AL to LBP_ID.
(output_lbp): Support LBP_RI.
(WBP_RI): New enumeration value.
(debug_output_wbp, fill_org_wbp, debug_output_org_wbp)
(output_wbp): Support WBP_RI.
(GBP_RI): New enumeration value.
(output_gbp_test, fill_org_gbp): Support GBP_RI.
* all generated files under lib/uni* and tests/uni*: Regenerate.
2015-01-14 Daiki Ueno
libunistring: update to Unicode 6.1.0
* lib/gen-uni-tables.c (output_joining_group): Switch to
3-level table to accommodate joining groups defined with higher
codepoint value. Since there are only 88 groups defined in
Unicode 7.0.0, use 7-bit packed format for level3 entries.
(get_lbp): Update for Unicode 6.1.0.
* lib/unictype/joininggroup_of.c (uc_joining_group): Adjust to use
3-level table.
* lib/unictype/joininggroup_byname.gperf: Add Rohingya Yeh
joining group name.
* lib/unictype/joininggroup_name.h: Likewise.
* lib/unilbrk/lbrktables.h (LBP_HL): New enumeration value.
(unilbrk_table): Adjust table size.
* lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column
for LBP_HL.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+0604,
U+08E4..U+08FE, U+1BAB, U+1CF4, U+A674..U+A67B, U+A69F,
U+AAEC..U+AAED, U+AAF6, U+11100..U+11102, U+11127..U+1112B,
U+1112D..U+11134, U+11180..U+11181, U+111B6..U+111BE, U+116AB,
U+116AD, U+116B0..U+116B5, U+116B7, U+16F8F..U+16F92. Remove
U+302E..U+302F.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* all generated files under lib/uni* and tests/uni*: Regenerate.
* modules/uni*/* (configure.ac): Bump minimum version to 0.9.5.
2015-01-15 Daiki Ueno
uniwbrk/u32-wordbreaks-tests: add conformance test
* modules/uniwbrk/u32-wordbreaks-tests (Files): Add
tests/uniwbrk/test-uc-wordbreaks.c,
tests/uniwbrk/test-uc-wordbreaks.sh, and
tests/uniwbrk/WordBreakTest.txt.
(Makefile.am): Add uniwbrk/test-uc-wordbreaks.sh to $(TESTS), add
test-uc-wordbreaks to $(check_PROGRAMS), and define
test_uc_wordbreaks_SOURCES and test_uc_wordbreaks_LDADD.
* tests/uniwbrk/test-uc-wordbreaks.sh: New file.
* tests/uniwbrk/test-uc-wordbreaks.c: New file.
2015-01-15 Daiki Ueno
uniwbrk: ignore Extended/Format characters at BOL not BOS
* lib/uniwbrk/u-wordbreaks.h (FUNC): Ignore Extend and Format
characters if the previous character property is one of
WBP_NEWLINE, WBP_CR, and WBP_LF.
2015-01-11 Jim Meyering
test-strstr.c: avoid a trivial leak
* tests/test-strstr.c (main): Free haystack.
update-copyright: recognize groff's \(co marker
* build-aux/update-copyright (circle_c_re): Also accept
uses of \(co, as found in gzip.1.
2015-01-08 Pádraig Brady
maint.mk: fix compatibility with OS X nm
* top/maint.mk (_gl_tight_scope): Use the -g option to
show exported items rather than the -e option which is
ignored on all platforms except OS X where it gives an error.
Reported by Assaf Gordon.
2015-01-07 KO Myung-Hun
localcharset: improve charset detection on OS/2
Use system codepage when appropriate. Map OS/2 codepages to
GNU canonical charset names if possible.
* lib/config.charset: Don't output aliases if "$os" is os2*.
* lib/localcharset.c (get_charset_aliases) [OS2]: Hardcode the
result for OS/2.
(locale_charset) [OS2]: Use system codepage if codeset is omitted
from the locale name which is neither "C" nor "POSIX".
2015-01-06 Paul Eggert
count-leading-zeros: use 64-bit intrinsics on 32-bit Windows
This reverts the last patch but one, as it shouldn't be needed now
that the typo is fixed.
* lib/count-leading-zeros.h (count_leading_zeros_ll):
* lib/count-trailing-zeros.h:
* lib/count-one-bits.h:
Go back to using 64-bit intrinsics.
count-leading-zeros: fix pragma typos
* lib/count-leading-zeros.h (_BitScanReverse, _BitScanReverse64):
Fix typos in declaration of intrinsics when _MSC_VER.
2015-01-06 Pádraig Brady
count-leading-zeros: avoid 64-bit intrinsics on 32-bit Windows
* lib/count-leading-zeros.h (count_leading_zeros_ll): Use 32 bit
intrinsics in this case.
* lib/count-trailing-zeros.h: Likewise.
* lib/count-one-bits.h: Likewise.
2015-01-06 Daiki Ueno
uniname/uniname: update to Unicode 7.0.0 To accommodate new
characters added since Unicode 5.1.0, this changes the internal
representation of codepoint ranges. Previously, we grouped
codepoint ranges by manually assigned 4-bit tag, which only
allowed 16 groups. This removes the limitation by switching to
binary search on a table. For the detail rationale and the
benchmark results, see:
https://lists.gnu.org/archive/html/bug-libunistring/2014-06/msg00001.html
* lib/uniname/gen-uninames.lisp (unicode-char): Rename CODE member
to INDEX, as it no longer represents a codepoint.
(range): New struct.
(main): Switch to intervals list from a bit-pattern based
classification.
* lib/uniname/uninames.h: Regenerate.
* tests/uniname/UnicodeDataNames.txt: Update to Unicode 7.0.0.
* modules/uniname/base (configure.ac): Bump minimum version to
0.9.5.
* modules/uniname/uniname (configure.ac): Bump minimum version to
0.9.5.
2015-01-05 Eric Blake
doc: update INSTALL from autoconf
* doc/install.texi: Resync from autoconf.
* doc/INSTALL: Reflect recent autoconf update.
* doc/INSTALL.ISO: Likewise.
* doc/INSTALL.UTF-8: Likewise.
stdio: fix use of PRIdMAX on modern mingw
* m4/stdio_h.m4 (gl_STDIO_H): Probe for printf flavor via inttypes.
* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): Use result
to work with modern mingw.
2015-01-05 Daniel P. Berrange (tiny change)
pthread: detect git mingw builds with only partial pollution
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for additional
pollution, as seen temporarily in Fedora 21.
2015-01-04 Paul Eggert
lib-symbol-versions: cache script check
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT):
Cache the check for linker version scripts.
From a suggestion by Christophe Curis in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00011.html
2015-01-04 Benno Schulenberg
maint: fix grammar nits in propername (trivial change)
* lib/propername.h: Remove a mistaken comma and a duplicate "from",
and use an adequate verb and tense.
2015-01-02 Ludovic Courtès
Suggested by Paul Eggert .
* module/gendocs: Add 'doc/gendocs_template_min'.
* build-aux/gendocs.sh: Change email addresses and upstream URLs
from to Gnulib's.
(scripturl, templateurl): Adjust accordingly.
2015-01-01 Paul Eggert
gendocs: copyright date and version fix
Reported by Karl Berry in:
http://lists.gnu.org/archive/html/bug-gnulib/2015-01/msg00002.html
* build-aux/gendocs.sh, doc/gendocs_template, doc/gendocs_template_min:
Fix copyright date.
* build-aux/gendocs.sh (scriptversion): Update.
2015-01-01 Karl Berry
* doc/install.texi,
* build-aux/mdate-sh,
* build-aux/depcomp,
* build-aux/config.guess,
* build-aux/config.sub,
* build-aux/ar-lib,
* build-aux/compile: revert copyright updates (some from last
year) in slaved files.
2015-01-01 Paul Eggert
version-etc: new year
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date.
* all files: Run 'make update-copyright'.
2014-12-30 Pádraig Brady
xstrtol: ensure errno is reset
Since commit 3bf75404, on 26-09-1998, errno may not have been reset.
Noticed with a spurious coreutils test failure on Darwin 14.0.0.
* lib/xstrtol.c (__xstrtol): Always reset errno before returning.
2014-12-28 Paul Eggert
utimens: fix dependency typo
* modules/utimens (Depends-on): Remove 'assure'.
This bug was introduced in the recent 'assure' patch.
2014-12-22 Eric Blake
docs: mention why libgen.h is bad
* doc/posix-headers/libgen.texi (libgen.h): Refer to dirname module.
2014-12-20 Paul Eggert
assure: new module
This works better than 'assert' when compiling with -DNDEBUG,
as it avoids some compiler diagnostics in that case.
Reported by Norihiro Tanaka in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-12/msg00215.html
* MODULES.html.sh (func_all_modules): Add 'assure'.
* lib/assure.h, modules/assure: New files.
* lib/chdir-long.c, lib/cycle-check.c, lib/fchdir.c, lib/fts.c:
* lib/poll.c, lib/savewd.c, lib/xstrtol.c:
Prefer 'assure' to 'assert'.
* lib/utimens.c: Stop using 'assert'; it wasn't helpful.
* modules/chdir-long, modules/cycle-check, modules/fchdir:
* modules/poll, modules/savewd, modules/utimens, modules/xstrtol:
Depend on 'assure'.
2014-12-16 Paul Eggert
stdalign: port better to HP compilers
* m4/stdalign.m4 (gl_STDALIGN_H): Try the test if __HP_cc or
__HP_aCC are nonzero, to be consistent with the 2014-01-20 patch.
stdalign: work around Apple GCC 4.0 bug
Reported by David Fang in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-12/msg00194.html
* lib/stdalign.in.h (_Alignas):
* m4/stdalign.m4 (gl_STDALIGN_H):
Do not use aligned attribute with GCC 4.0 on Apple.
2014-12-16 Pádraig Brady
getcwd: fix test failure on OS X 10.9
* m4/getcwd-path-max.m4: Avoid the replacement if it
won't be effective due to the PATH_MAX limitation of lstat().
(gl_cv_func_getcwd_path_max): Adjust to indicate this case.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Define HAVE_GETCWD_SHORTER
for this case for use in tests, and also exclude this
case when setting REPLACE_GETCWD.
* tests/test-getcwd.c (test_long_name): Restrict the
tested path length so that lstat() will not be passed
a path greater than PATH_MAX.
Also key a test condition on HAVE_OPENAT_SUPPORT rather
than AT_FDCWD, since the latter is set unconditionally
since Sep 2009 in commit 52c658e9.
2014-12-14 Tim Rühsen
parse-datetime: avoid a compiler warning with byacc (trivial)
* lib/parse-datetime.y (yylex): Use the same prototype in the
function definition as the declaration, to avoid a -Wstrict-prototypes
warning seen when using byacc.
2014-12-12 Daiki Ueno
unicase/locale-language-tests: fix LOCALE_FR test
* tests/unicase/test-locale-language.sh: Really use $LOCALE_FR for
a French locale with traditional encoding.
Reported by umerqayam in:
http://lists.gnu.org/archive/html/bug-libunistring/2014-12/msg00000.html
2014-12-12 Paul Eggert
stddef: support C11's max_align_t
* doc/posix-headers/stddef.texi (stddef.h): Document max_align_t.
* lib/stddef.in.h (_@GUARD_PREFIX@_STDDEF_H) [__need_wint_t]:
Do not undef, as that might cause max_align_t to be defined twice.
Instead, change use to check for _GL_STDDEF_WINT_T too.
(max_align_t) [!HAVE_MAX_ALIGN_T]: New decl.
* m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS):
Check for max_align_t.
* modules/stddef (stddef.h): Substitute HAVE_MAX_ALIGN_T.
* modules/stddef-tests (Depends-on): Add stdalign.
* tests/test-stddef.c: Test max_align_t.
2014-12-11 Daiki Ueno
unistd: fix iOS check conditional
On Mac OS X 10.8, the TARGET_* macros are unconditonally defined
as 0 or 1 in , and the previous check always
yielded true on non-iOS environment.
* lib/unistd.in.h (environ) [__APPLE__]: Check the values of
TARGET_OS_IPHONE and TARGET_IPHONE_SIMULATOR, instead of whether
they are defined.
2014-12-09 Paul Eggert
posixtm: avoid compiler warning in a better way
* lib/posixtm.c (IF_LINT): Remove.
(year, posix_time_parse):
Return true (not 0) if successful. All callers changed.
(posix_time_parse): Simplify to pacify GCC without need for IF_LINT.
2014-12-08 KO Myung-Hun
* lib/relocatable.c (relocate): Prepend $UNIXROOT to pathname if it is
started with '/' on EMX.
2014-12-08 KO Myung-Hun
freopen: workaround freopen() on OS/2 kLIBC
* lib/freopen.c (rpl_freopen): Workaround.
* m4/freopen.m4: Add os2* case.
get_shared_library_fullname: port to EMX
* lib/relocatable.c: Define strcmp and strncmp to stricmp and strnicmp
on EMX, respectively.
(_DLL_InitTerm): New on EMX.
(get_shared_library_fullname): Implement on EMX.
find_executable: port to EMX
* lib/progreloc.c (find_executable): Implement on EMX.
sched: check struct sched_param in spawn.h as well
* lib/sched.in.h: Include spawn.h on kLIBC.
* lib/sched_h.m4: Check struct sched_param in spawn.h as well.
2014-12-08 Martin Kletzander (tiny change)
bootstrap: Allow perl modules in $buildreq
* build-aux/bootstrap: Add case for perl modules.
2014-12-08 Pádraig Brady
apply _GL_ATTRIBUTE_PURE to some inline functions
clang 3.4.2 flagged these inline functions as pure
* lib/savewd.h (savewd_errno): Set _GL_ATTRIBUTE_PURE.
* lib/sig-handler.h (get_handler): Likewise.
* lib/stat-time.h (get_stat_{a,c,m,birth}time{,_ns}): Likewise.
* lib/timespec.h (timespec_cmp, timespec_sign): Likewise.
2014-12-06 Pádraig Brady
vasnprintf: fix potential use after free
* lib/vasnprintf.c (VASNPRINTF): Fix free-memory read,
flagged by clang-analyzer 3.4.2.
2014-12-05 Pádraig Brady
filevercmp, posixtm: avoid compiler warnings with -O3
* lib/filevercmp.h (filevercmp): Tag with _GL_ATTRIBUTE_PURE
* lib/posixtm.c: (IF_LINT): Define.
(posix_time_parse): Use it to void a "may be used uninitialized"
warning, seen only with -O3.
2014-12-05 Bruno Haible
Fix LDBL80_WORDS macro on big endian platforms.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Add missing parenthesis in
LDBL80_WORDS macro.
* m4/isinf.m4 (gl_ISINFL_WORKS): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
* tests/test-isfinite.c (test_isfinitel): Likewise.
* tests/test-isinf.c (test_isinfl): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-isnanl.h (main): Likewise.
* tests/test-snprintf-posix.h (LDBL80_WORDS): Add missing parenthesis.
* tests/test-sprintf-posix.h (LDBL80_WORDS): Likewise.
* tests/test-vasnprintf-posix.c (LDBL80_WORDS): Likewise.
* tests/test-vasprintf-posix.c (LDBL80_WORDS): Likewise.
Reported by Pádraig Brady.
2014-12-02 KO Myung-Hun
git-version-gen: do not print new line characters
* build-aux/git-version-gen: Use printf instead of echo and tr.
gnulib-tool: recognize x:* as an absolute path
* gnulib-tool (func_gnulib_dir): Add ?:* case.
(func_relconcat): Likewise.
2014-12-02 Andrei Borzenkov
argp: avoid extraneous translation and mem leak with empty pre doc
* lib/argp-help.c (argp_doc): Never translate the empty string,
when "\v" is the first or last character of the string, as that
has a reserved meaning to return the header info from a po file.
This also fixes a small memory leak in the !post case.
The issue can be seen with this command for example:
LC_MESSAGES=en_US grub2-mknetdir --help
2014-11-27 Daiki Ueno
uniname/uniname-tests: skip if system's libunistring is used
* modules/uniname/uniname-tests (Makefile.am): Skip test if
uniname/uniname module is not compiled.
2014-11-27 Pádraig Brady
printf: fix configure check on big endian systems
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Add missing bracket.
2014-11-22 Daiki Ueno
pipe-filter-gi, pipe-filter-ii: port to AIX
On AIX 7.1, 'select' is defined as static and cannot be referred
to from inline function.
* lib/pipe-filter-aux.h (nointr_select): Remove, manually expand
the definition...
* lib/pipe-filter-gi.c (filter_loop): ...here, and...
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): ...here.
2014-11-20 Paul Eggert
gitlog-to-changelog: add --until
* build-aux/gitlog-to-changelog: Support new --until option.
Need described by Eli Zaretskii in: http://bugs.gnu.org/19113
2014-11-14 Paul Eggert
extern-inline: update commentary about GCC bugs
* m4/extern-inline.m4: Add another GCC bug number to comments.
2014-11-13 Daiki Ueno
gen-uni-tables: untabify
* lib/gen-uni-tables.c: Untabify.
2014-11-13 Daiki Ueno
gen-uni-tables: check out-of-range values added to 3-level tables
* lib/gen-uni-tables.c (output_category, output_bidi_category)
(output_joining_type, output_ident_category): Check out-of-range
values added to 3-level tables.
2014-11-13 Daiki Ueno
gen-uni-tables: utilize 'assert'
* lib/gen-uni-tables.c: Include .
(output_category, output_combclass, output_decimal_digit_test)
(output_decimal_digit, output_digit_test, output_digit)
(output_numeric, get_mirror_value, fill_properties)
(fill_property30, is_property_alphabetic)
(is_property_default_ignorable_code_point)
(is_property_uppercase, is_property_lowercase)
(is_property_cased, is_property_case_ignorable)
(is_property_changes_when_lowercased, is_property_iso_control)
(is_property_math, fill_arabicshaping, output_joining_group)
(fill_scripts, fill_blocks, output_lbp, fill_org_wbp)
(output_wbp, fill_org_gbp, get_decomposition)
(output_decomposition, fill_composition_exclusions)
(debug_output_composition_tables, output_composition_tables)
(redistribute_casefolding_rules, output_casing_rules): Use
'assert (EXPR);' instead of 'if (!EXPR) abort ();' for better error
reporting.
2014-11-13 Daiki Ueno
gen-uni-tables: cosmetic improvements
* lib/gen-uni-tables.c: Escape newlines in the Emacs file local
variables specification.
(is_outdigit): Remove unused function.
2014-11-12 Jeroen Roovers (tiny change)
fcntl-h-tests: port to PA-RISC GNU/Linux
* tests/test-fcntl-h.c (main): Check O_SYNC is different from O_DSYNC.
2014-11-10 Paul Eggert
fts: port to C89
Problem reported for MSVC 16 by Gisle Vanem in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-11/msg00027.html
* lib/fts.c (fts_build): Avoid declaration before statement.
2014-11-06 Paul Eggert
unistd: port to iOS
Problem reported by André Klitzing in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-11/msg00013.html
* lib/unistd.in.h (environ): Do not include crt_externs.h on iOS.
2014-11-05 Paul Eggert
obstack: do not reject malloc-style obstack_chunkfun, obstack_freefun
Problem reported by Alan Modra in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-11/msg00007.html
* lib/obstack.h (obstack_chunkfun, obstack_freefun):
Always cast the function arg, reverting this part of the previous
change.
2014-11-04 Paul Eggert
obstack: avoid potentially-nonportable function casts
* lib/obstack.c (CALL_CHUNKFUN, CALL_FREEFUN):
Remove, replacing with ...
(call_chunkfun, call_freefun): New static functions.
All uses changed. Avoid potentially-nonportable casts.
(chunkfun_type, freefun_type): Remove typedefs; no longer used.
(_obstack_begin_worker): Omit last two args, since they
rely on potentially-nonportable casts. All callers changed.
* lib/obstack.h (_OBSTACK_CAST): New macro.
Use it everywhere the old API used a potentially-nonportable cast.
The new API doesn't cast.
(struct obstack): Use unions rather than requiring
potentially-nonportable casts.
(obstack_chunkfun, obstack_freefun): Return void.
2014-11-03 Alan Modra
obstack: fix macro return values
* lib/obstack.h (obstack_next_free): Return void *.
(obstack_1grow_fast, obstack_blank_fast): Return void.
For __GNUC__ macros:
(obstack_1grow, obstack_blank): Remove now unnecessary (void) 0.
For !__GNUC__ macros:
(obstack_make_room, obstack_grow, obstack_grow0)
(obstack_ptr_grow_fast, obstack_int_grow_fast): Return void.
2014-11-03 Paul Eggert
obstack: do not assume system-supplied obstack is size_t safe
* m4/obstack.m4: New file.
* modules/obstack (Files): Add it.
obstack: port to platforms that #define __alignof__
* lib/obstack.c: Include if !defined __alignof__,
not if !_LIBC. We don't know of any platforms that #define
__alignof__, but it might be useful in tests. Conversely,
glibc assumes GCC.
2014-11-03 Pádraig Brady
linkat: don't unconditionally replace on GNU/Linux
* m4/linkat.m4 (gl_FUNC_LINKAT): The compile check for AT_SYMLINK_FOLLOW
was redundant for a few reasons. It was present to support compiling
on new systems but running on the old narrow window of Linux 2.6.1[67].
It setup and cleaned up test files which weren't actually used.
On non __linux__ it compile tested AT_SYMLINK_FOLLOW, but that is
implicit in the following check.
2014-11-03 Pádraig Brady
linkat: wrap to handle symlinks on OS X 10.10
* m4/linkat.m4 (gl_FUNC_LINKAT): linkat() is available on Yosemite
but not usable because it doesn't support creating hardlinks
to symlinks. Therefore add a generic test for this capability
and fallback to our emulation if linkat() fails with ENOTSUP.
2014-11-02 Paul Eggert
open, openat: document nonstandard FreeBSD, NetBSD O_NOFOLLOW errno
* doc/posix-functions/open.texi (open):
* doc/posix-functions/openat.texi (openat):
Document that these functions do not set errno to ELOOP when
a symlink is opened with O_NOFOLLOW.
2014-10-31 Paul Eggert
obstack: add NEWS entry for recent incompatible changes
* NEWS: Describe recent changes.
2014-10-30 Pádraig Brady
mountlist: don't use libmount to decide on dummy/remote
* lib/mountlist.c (read_file_system_list): Don't use the libmount
routines to determine whether a file system is dummy or remote,
as they're not currently compatible. For example the remoteness
is determined on file system type (for which the list seems incomplete),
rather than simply checking for a ':' in the device name.
Also libmount currently determines that 'tmpfs' is a dummy file system
even though it has associated storage.
2014-10-29 Paul Eggert
obstack: prefer __alignof__ to alignof
This is for portability to pre-4.7 GCC when compiling glibc.
See Joseph S. Myers in:
http://sourceware.org/ml/libc-alpha/2014-10/msg00703.html
* lib/obstack.c (__alignof__) [!_LIBC && !__GNUC__]:
New macro, defined by including and using .
(MAX): New macro.
(DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Redefine in terms of these.
Do not use enums as they are not portable to some broken compilers.
* modules/obstack (Depends-on): Depend on alignof, not stdalign.
obstack: prefer alignof to calculating alignments by hand
* lib/obstack.c: Include .
(struct fooalign): Remove.
(DEFAULT_ALIGNMENT): Use alignof rather than the old offsetof hack.
* modules/obstack (Depends-on): Add stdalign.
2014-10-28 Paul Eggert
obstack: use size_t alignments and check for overflow
* lib/obstack.c, lib/obstack.h (_obstack_begin, _obstack_begin_1):
* lib/obstack.c (_obstack_begin_worker, _obstack_newchunk):
* lib/obstack.h (struct obstack.alignment_mask):
Use _OBSTACK_SIZE_T, not int, for alignments.
* lib/obstack.c (_obstack_newchunk): Fail if the size calculation
overflows, e.g., when adding the alignment.
2014-10-29 Alan Modra
obstack: 64-bit obstack support, part 3
This finally enables full 64-bit obstack support. The glibc
shared library specific code is removed from obstack.c too, and
the error handling code conditionally compiled under control of
another macro, _OBSTACK_NO_ERROR_HANDLER.
* lib/obstack.h: Include string.h earlier.
(_OBSTACK_INTERFACE_VERSION): Define.
(_OBSTACK_SIZE_T, _CHUNK_SIZE_T): Define as size_t for version 2.
* lib/obstack.c: Don't include shlib-compat.h.
(OBSTACK_INTERFACE_VERSION): Delete.
(_OBSTACK_ELIDE_CODE): Rename from ELIDE_CODE. Define when version 1
glibc code is compatible with version 2. Don't include stdio.h for
__GNU_LIBRARY.
(obstack_exit_failure, print_and_abort, obstack_alloc_failed_handler):
Omit when _OBSTACK_NO_ERROR_HANDLER defined. Include stdio.h here.
(_obstack_compat, _obstack, _obstack_newchunk, obstack_free): Delete
glibc shared library specific source.
obstack: 64-bit obstack support, part 2
This gets us 4G obstack support, without changing ABI
compatibility, apart from possibly introducing some
signed/unsigned comparison warnings in code that uses obstack.h.
a) Replace "int" size parameters, return values, and macro local vars
with _OBSTACK_SIZE_T, an "unsigned int" for now.
b) Make obstack.chunk_size a _CHUNK_SIZE_T, an "unsigned long" for now.
c) Make all obstack macros checking available room use obstack_room.
"next_free + desired > chunk_limit" may wrap the lhs for chunks
allocated near the top of memory.
d) Use unsigned comparisons, and macro locals to support >2G on 32-bit.
* lib/obstack.h (_OBSTACK_SIZE_T): Define. Use throughout
in place of "int" size parameters, return values and local vars.
(_CHUNK_SIZE_T): Define.
(struct obstack): Make chunk_size a _CHUNK_SIZE_T. Make temp
union use an _OBSTACK_SIZE_T integer type.
For __GNUC__ versions of the following macros...
(obstack_room): Rename local var.
(obstack_make_room): Use obstack_room.
(obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
obstack_int_grow, obstack_blank): Likewise.
(obstack_finish): Use unsigned comparison when comparing aligned
next_free against chunk_limit.
(obstack_free): Cast OBJ to remove possible const qualifier.
For !__GNUC__ versions of the following macros...
(obstack_make_room): Use obstack_room.
(obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
obstack_int_grow, obstack_blank): Likewise.
(obstack_finish): Use unsigned comparision when comparing aligned
next_free against chunk_limit.
(obstack_free): Use temp.p and same comparisons as __GNUC__ version.
* lib/obstack.c (_obstack_begin_worker): Make "size" parameter
_OBSTACK_SIZE_T.
(_obstack_begin, _obstack_begin_1): Likewise.
(_obstack_newchunk): Likewise for length parameter. Use size_t locals.
(_obstack_memory_used): Return and use _OBSTACK_SIZE_T local.
obstack: 64-bit obstack support, part 1
a) Correct calls to alloc function, to use a size_t arg. "long" is
just wrong on targets like x86_64-mingw64 where "long" is 32 bits
and "size_t" 64 bits.
b) Consolidate _obstack_begin and _obstack_begin1 code.
* lib/obstack.h (struct obstack ): Correct prototype to
use "size_t" rather than "long".
(_obstack_begin, _obstack_begin1): Likewise.
(obstack_init, obstack_begin, obstack_specify_allocation_with_arg,
obstack_chunkfun): Update alloc function casts.
* lib/obstack.c (CALL_CHUNKFUN): Update chunkfun cast.
(chunkfun_type, freefun_type): New typdefs.
(_obstack_begin_worker): Split out from ..
(_obstack_begin, _obstack_begin_1): ..here.
obstack: tidy part 2
a) Don't be concerned about "not polluting the namespace with stddef.h
symbols" in obstack.h, since gnulib string.h includes stddef.h
anyway, and it seems unlikely that anyone would care.
b) Don't roll our own slow memcpy in _obstack_newchunk.
c) Rename obstack_free to _obstack_free. This makes the naming
consistent with other obstack functions and obviates the need for
__obstack_free. Ancient obstack.c defined both obstack_free and
_obstack_free. We continue to do that for _LIBC via an alias.
d) Miscellaneous macro fixes. The expression used to test for gcc-2.8
is clever, but nowadays gcc warns on undefined macros. You'll get
an undefined macro warning if simulating an old gcc with -U__GNUC__
-U__GNUC_MINOR__ -D__GNUC__=1.
* lib/obstack.h: Include stddef.h unconditionally. Formatting fixes.
(PTR_INT_TYPE): Delete, replace with ptrdiff_t.
(__obstack_free): Delete, update refs.
(_obstack_free): Rename from obstack_free.
(__extension__): Avoid undefined macro warning for __GNUC_MINOR__.
(obstack_object_size, obstack_room): Parenthesise !__GNUC__ versions.
* lib/obstack.c: Don't include stddef.h.
(COPYING_UNIT): Delete.
(_obstack_begin): Formatting fix.
(_obstack_newchunk): Use memcpy to move existing object to new chunk.
(_obstack_free): Rename from __obstack_free, update alias. Move
undef of obstack_free to where it is needed.
obstack: tidy part 1
a) Rename temp fields. temp.tempint and temp.tempptr just looks ugly
to me, and result in overlong lines after later patches.
b) Move error handling code, to avoid a forward declaration and to
simplify later patches in this series.
* lib/obstack.h (struct obstack ): Rename fields of union
and update all uses.
* lib/obstack.c: Include stdlib.h earlier.
(obstack_exit_failure, obstack_alloc_failed_handler): Move later
in file.
(print_and_abort): Remove now redundant forward declaration.
2014-10-24 Paul Eggert
socketlib, sockets, sys_socket: Use AC_REQUIRE to pacify autoconf.
Without this change, in bleeding-edge fileutils Autoconf complains
that gl_SOCKETLIB etc. are AC_REQUIREd after being invoked.
* modules/socketlib (configure.ac): AC_REQUIRE gl_SOCKETLIB.
* modules/sockets (configure.ac): AC_REQUIRE gl_SOCKETS.
* modules/sys_socket (configure.ac): AC_REQUIRE gl_HEADER_SYS_SOCKET.
2014-10-24 Daiki Ueno
iconv: avoid false detection of non-working iconv
The INBUF arguments of iconv can be either 'const char **'
or 'char **'. If CC is g++, the difference causes a compile error
and thus leads to a false detection of non-working iconv.
Reported by Eli Zaretskii and Werner LEMBERG in:
.
* m4/iconv.m4 (AM_ICONV_LINK): Try all possible argument types of
iconv. Bump serial number.
2014-10-23 Pádraig Brady
bootstrap: print more diagnostics for missing programs
* build-aux/bootstrap: only suppress stderr when checking for
alternative program names. This supports programs issuing non
standard error messages.
2014-10-23 Pádraig Brady
bootstrap: only update the gnulib submodule
* build-aux/bootstrap: Restrict the "submodule update" command
to the gnulib path.
2014-10-18 Paul Eggert
symlinkat: port to AIX 7.1
* doc/posix-functions/symlinkat.texi (symlinkat):
Mention AIX porting problem.
* lib/symlinkat.c: Always include errno.h.
(rpl_symlinkat) [HAVE_SYMLINKAT]: New function.
* lib/unistd.in.h (symlinkat): Add replacement machinery.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Check symlinkat behavior.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_SYMLINKAT.
* modules/symlinkat (Depends-on): Add fstatat if REPLACE_SYMLINKAT.
(configure.ac): Also compile replacement if REPLACE_SYMLINKAT.
* modules/unistd (unistd.h): Substitute REPLACE_SYMLINKAT.
readlinkat: port to AIX 7.1
* doc/posix-functions/readlink.texi (readlink):
* doc/posix-functions/readlinkat.texi (readlinkat):
Mention AIX porting problem.
* lib/readlinkat.c (rpl_readlinkat) [HAVE_READLINKAT]:
New function.
* lib/unistd.in.h (readlinkat): Add replacement machinery.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Check readlinkat signature.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_READLINKAT.
* modules/readlinkat (configure.ac): Also compile replacement
if REPLACE_READLINKAT.
* modules/unistd (unistd.h): Substitute REPLACE_READLINKAT.
2014-10-12 Karl Berry
* doc/posix-functions/dirname.texi: remove spurious {.
2014-09-28 Ben Pfaff
basename, dirname: Improve documentation.
* doc/posix-functions/basename.texi: Mention dirname module and
base_name() function.
* doc/posix-functions/dirname.texi: Mention dir_name() and
mdir_name() functions.
Suggested by Werner LEMBERG .
2014-09-24 Jim Meyering
exclude: declare exclude_patopts static
* lib/exclude.c (exclude_patopts): Declare static,
to avoid triggering a -Wmissing-prototypes warning.
The alternative (declaring it in the .h file) would
require publicizing the private "struct patopts".
2014-09-21 Werner Lemberg
dirname: support compilation with C++
* lib/dirname.h: Add necessary C linkage declarations.
2014-09-16 Paul Eggert
qsort_r: include
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00071.html
* lib/qsort.c [!_LIBC]: Include first.
2014-09-16 Dylan Cali
avltree-list: avoid compiler warnings (trivial)
* lib/gl_anytree_list2.h: Add _GL_ATTRIBUTE_PURE to avoid
-Werror=suggest-attribute=pure.
* lib/gl_array_list.c: Likewise.
* lib/gl_avltree_list.c (gl_avltree_list_check_invariants): Add extern
declaration to avoid -Werror=missing-prototypes. This is not added
to a header as only exported for tests. Add (void) to the
check_invariants() call to indicate we're discarding the result
in this context which avoids -Werror=unused-value. Note we don't
use ignore_value here to avoid a dependency as we know we'll not
be adding __attribute__((warn_unused_result)) to check_invariants().
Add _GL_ATTRIBUTE_CONST to avoid -Werror=suggest-attribute=const.
2014-09-15 Paul Eggert
qsort_r: new module, for GNU-style qsort_r
* m4/qsort_r.m4: New file. Forgot to add this earlier.
2014-09-15 Werner LEMBERG
strerror_r-posix: support compilation with C++
* lib/strerror_r.c: Add necessary C linkage declarations.
2014-09-11 Johannes Zarl
fcntl-h: fix compilation with Intel C++ compiler (trivial)
* lib/fcntl.in.h: ICC has the same issue as GCC <= 4.2.
2014-09-09 Fridolin Pokorny
mountlist: use /proc/self/mountinfo when available
Use libmount to propagate device IDs provided by Linux in
/proc/self/mountinfo. This will give more accurate output when
using df in chroot'ed environments as the device IDs are not
determined by stat() which may be inaccurate within the chroot.
* lib/mountlist.c (read_file_system_list): Use the libmount routines
from util-linux to parse "/proc/self/mountinfo" or fall back to
standard getmntent() processing.
* m4/ls-mntd-fs.m4: Check for libmount only when 1-argument
getmntent() is used, as is the case on GNU/Linux.
2014-09-07 Eric Wong
users.txt: add cmogstored
cmogstored has used gnulib since the beginning in 2012 to support
GNU/Linux, FreeBSD, and GNU/kFreeBSD.
2014-09-05 Mathieu Anquetin
Trivial change.
* gnulib-tool: Use same options as build-aux/bootstrap to download
PO files.
2014-09-05 Mathieu Anquetin
Trivial change.
* gnulib-tool: Fallback to wget when rsync of PO files fails.
2014-09-04 Eric Blake
maintainer-makefile: add syntax check for useless ';;'
* top/maint.mk (sc_prohibit_double_semicolon): New rule.
2014-09-04 Paul Eggert
pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04
Problem reported by Assaf Gordon in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00023.html
Apparently Ubuntu is doing some fancy link-time optimization
that doesn't work with -lpthread but does work with -pthread.
Work around the bug by preferring -pthread to -lpthread.
* m4/pthread.m4 (gl_PTHREAD_CHECK):
* m4/threadlib.m4 (gl_THREADLIB_BODY): Prefer -pthread to -lpthread.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
Treat -pthread like -lpthread.
2014-09-04 Eric Blake
error: drop spurious semicolon
* lib/error.c (__error_at_line): Fix ';;'.
2014-09-02 Paul Eggert
gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
* m4/gnulib-common.m4 (AC_C_RESTRICT):
Override AC_C_RESTRICT unconditionally.
Update from autoconf, incorporating:
2014-09-02 autoconf: port 'restrict' to GCC 4.2.1
2009-01-28 Fix AC_C_RESTRICT for Sun Studio 12 C++.
2014-09-01 Paul Eggert
manywarnings: add GCC 4.9 warnings
Also, make it easier to maintain this in the future.
* build-aux/gcc-warning.spec: Add -Wabi-tag,
-Wconditionally-supported, -Wdelete-incomplete,
-Winherited-variadic-ctor, -Wvirtual-move-assign, -Wzerotrip.
Remove duplicates. Use tabs uniformly, as that's what 'cut' wants.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wdate-time,
-Wopenmp-simd. Use -fdiagnostics-show-option and -funit-at-a-time
only for older GCC versions that need them. Handke
-Wnormalized=nfc specially, so that the 'comm' command used
for maintenance doesn't get confused.
2014-08-31 Paul Eggert
vasnprintf: fix bugs in width computation
* lib/vasnprintf.c (VASNPRINTF):
Rework previous change, which introduced a bug,
to avoid the warning in a different way.
Avoid undefined behavior if the width arg is less than -INT_MAX.
Avoid unnecessary use of HAS_WIDTH local.
2014-08-31 Thien-Thi Nguyen (tiny change)
vasnprintf: Avoid signed/unsigned comparison warning.
* lib/vasnprintf.c (VASNPRINTF): To calculate padding,
compare end addr of generated string w/ maximum end addr.
2013-08-30 Mats Erik Andersson (tiny change)
parse-datetime: Avoid pointer difference.
* lib/parse-datetime.y (yylex): Compare pointer to end of buffer,
instead of calculating difference of pointers. This removes an
annoying warning, devoid of any use.
2014-08-29 Paul Eggert
qsort_r: new module, for GNU-style qsort_r
This works even on FreeBSD, which has an incompatible qsort_r API.
* MODULES.html.sh: Add it.
* doc/glibc-functions/qsort_r.texi: It's now supported.
* lib/qsort.c: New file, taken from glibc with minor changes
inside "#ifndef _LIBC" and with an unnecessary "#include "
removed.
* lib/qsort_r.c: New file, compiled only on FreeBSD.
* lib/stdlib.in.h (qsort_r): Declare in the usual way.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS):
* modules/qsort_r, modules/qsort_r-tests: New files.
* modules/stdlib (Makefile): Set up its defaults.
* tests/test-qsort_r.c: New file.
2014-08-08 Paul Eggert
vla: new module
GNU RCS can use this, mostly for documentation I expect. See:
http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00025.html
* MODULES.html.sh: Add vla.
* lib/vla.h, modules/vla: New files.
2014-08-07 Daiki Ueno
localename: make gl_locale_name_thread really thread-safe on Windows
* lib/localename.c [WINDOWS_NATIVE && !IN_LIBINTL]: Include
"glthread/lock.h".
(get_lcid_lock) [WINDOWS_NATIVE]: New variable.
(get_lcid) [WINDOWS_NATIVE]: Lock while looking for an LCID.
2014-08-07 Paul Eggert
getpass: don't assume struct termios
Problem report and trivial fix by Jonas 'Sortie' Termansen in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00015.html
* lib/getpass.c (getpass): Port to systems lacking struct termios.
getdtablesize: fall back on sysconf (_SC_OPEN_MAX)
Problem reported by Jonas 'Sortie' Termansen in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-08/msg00023.html
* lib/getdtablesize.c (getdtablesize) [_SC_OPEN_MAX]:
Implement via sysconf for platforms that lack getdtablesize.
vararrays: modernize AC_C_VARARRAYS for C11
This backports a change I recently made to Autoconf.
* m4/vararrays.m4 (AC_C_VARARRAYS): Define __STDC_NO_VLA__ if
VLAs are not supported, as this is what C11 does. The old macro
HAVE_C_VARARRAYS is still defined if they are supported, but is
now obsolescent. Also, check for VLA bug in GCC 3.4.3.
2014-08-07 Alessandro Degano (tiny change)
relocatable-prog-wrapper: port gettext to OS X 10.8 + GCC 4.8.1
* build-aux/install-reloc (func_create_wrapper): Also wrap
strerror-override, stat, stat.
2014-08-05 Paul Eggert
sys_select: fix FD_ZERO problem on Solaris 10
* lib/sys_select.in.h: Fix Solaris 10 bug where "#include
" followed by "#include " caused FD_ZERO
to expand to an expression that invoked memset without necessarily
including . The problem was that the first include
defined _SYS_TIME_H, causing the second include to short-circuit.
Fix a similar problem with followed by .
Also, fix what appears to be a cut-and-paste typo, by replacing
_GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H with
_GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H.
accept: document Solaris 10 type glitch
* doc/posix-functions/accept.texi (accept): Mention that
Solaris 10 'accept' takes void * last arg, not socklen_t *.
2014-08-04 Paul Eggert
extern-inline: port to FreeBSD, DragonFly
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Also assume the bug
is present if either __DragonFly__ or __FreeBSD__ is defined.
FreeBSD problem reported by Andrey Borzenkov in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
Also, worry about __APPLE__ only if __MACH__ is also defined,
as this is more consistent with the rest of gnulib.
(_GL_EXTERN_INLINE_STDHEADER_BUG): Rename this internal macro from
_GL_EXTERN_INLINE_APPLE_BUG, since the bug is not limited to Apple.
2014-08-01 Siddhesh Poyarekar
regex: Make #if/#ifdef usage consistent for DEBUG
* lib/regex_internal.c: Use "#if defined DEBUG && DEBUG" instead
of the inconsistent usage of #if and #ifdef as that works with
both Glibc and Gnulib's style.
2014-07-31 Eric Blake
openat-die: use _Noreturn markup
* modules/openat-die (Depends-on): Add snippet/_Noreturn.
* lib/openat-die.c (openat_save_fail, openat_restore_fail): Mark
_Noreturn.
2014-07-30 Eric Blake
test-open: port to cygwin, which lacks Fortify
* tests/test-open.h (ALWAYS_INLINE): New macro.
(__always_inline): Don't abuse internal symbol on non-glibc.
2014-07-19 Eli Zaretskii
localename: Enforce declarations before statements.
* localename.c (gl_locale_name_thread): Declare 'lcid' before the
first statement.
2014-07-18 Jim Meyering
test-userspec: don't look up numeric user names
* tests/test-userspec.c: I found a system for which getpwnam("0")
returned a pointer to a non-root user's entry, and that made the
test fail.
(T): Prefix each numeric input with "+", to inhibit lookup.
2014-07-15 Eli Zaretskii
localcharset, localename: MS-Windows support for non-default locales
* lib/localcharset.c (locale_charset) [WINDOWS_NATIVE]: Before
falling back on the default system codepage, try extracting
the codepage from what 'setlocale' returns. This allows to
take into account changes of the codeset due to non-default
locale set by a previous call to 'setlocale'.
* lib/localename.c (LOCALE_NAME_MAX_LENGTH) [WINDOWS_NATIVE]:
Define if not already defined.
(enum_locales_fn, get_lcid) [WINDOWS_NATIVE]: New functions.
(gl_locale_name_thread) [WINDOWS_NATIVE]: Produce the
current locale by calling 'setlocale', then converting the
locale name into LCID by calling 'get_lcid'. This allows to
take into account changes in the current locale from the
default one, in contrast to GetThreadLocale.
2014-07-14 Daiki Ueno
announce-gen: avoid failure when Digest::SHA is installed
When Digest::SHA is available, Digest::SHA1 is not loaded and thus
Digest::SHA1->new in print_checksums fails.
* build-aux/announce-gen (digest_classes): New associative array
for available message digest implementations.
(print_locations): Use it.
2014-07-13 Pádraig Brady
gettext: revert "update macros to version 0.19"
This reverts commit 9b9370ca, as it currently requires that
developers of any project that explicitly uses the gettext module
or implicitly uses it through the utimens-tests or
futimens-tests modules, use gettext >= 0.19.
However there are some stability and availablity issues with
that version at present. We can reinstate this soon, when stability
is addressed and packages are more readily available.
2014-07-12 Jim Meyering
regex: don't deref NULL upon heap allocation failure
* lib/regcomp.c (parse_dup_op): Handle duplicate_tree
failure in one more place.
To trigger the segfault, configure grep -with-included-regex,
build it, and run these commands:
( ulimit -v 300000; echo a|src/grep -E a+++++++++++++++++++++ )
I discovered this while replying to a private report from
Jens Schleusener about excessive memory consumption by grep
when using a regular expression like the one above.
2014-07-11 Paul Eggert
regex: fix memory leak in compiler
Fix by Andreas Schwab in:
https://sourceware.org/ml/libc-alpha/2014-06/msg00503.html
* lib/regcomp.c (parse_reg_exp): Deallocate partially
constructed tree before returning error.
2014-07-10 Assaf Gordon
announce-gen: avoid perl warnings
* build-aux/announce-gen: add two minor checks to avoid
"use of uninitialized value" warnings when command-line parameters are
missing.
2014-07-10 Assaf Gordon
localename: avoid -Wsuggest-attribute={const,pure} warnings
* lib/localename.c (string_has): Tag internal function as pure.
* lib/localename.h (gl_locale_name_default): Tag extern declaration
as const when appropriate.
2014-07-10 Eli Zaretskii
nl_langinfo: Fix last change.
* lib/nl_langinfo.c (includes): Drop redundant include.
2014-07-10 Siddhesh Poyarekar
error: Fix -Wundef warnings in glibc
* lib/error.c [_LIBC]: Define default macros for
glibc.
(print_errno_message) [defined HAVE_STRERROR_R || _LIBC]:
Check _LIBC before STRERROR_R_CHAR_P.
error: Sync from glibc master
* lib/error.c [_LIBC]: Remove INTUSE usage.
(error_tail): Remove unused macro ALLOCA_LIMIT.
Fix potential buffer overflow. Fix potential NULL dereference
in strcmp.
2014-07-09 Pavel Hrdina (tiny change)
nl_langinfo: fix build under mingw
* lib/nl_langinfo.c (includes): Pick up for GetACP().
2014-07-09 Andrew D Warshall
mountlist: do not classify a bind-mounted dir entry as "dummy"
* m4/ls-mntd-fs.m4: Check for hasmntopt() on platforms with
1-argument getmntent() (instead of assuming absence).
2014-07-08 Eric Blake
maint.mk: less syntax-check noise when SIGPIPE is ignored
* top/maint.mk (_sc_header_without_use)
(sc_require_config_h_first): Parse full list.
2014-07-07 Eli Zaretskii
Paul Eggert
nl_langinfo: CODESET on MS-Windows and more items from localeconv
* lib/langinfo.in.h (DECIMAL_POINT, THOUSANDS_SEP, GROUPING)
(CURRENCY_SYMBOL, INT_CURR_SYMBOL, MON_DECIMAL_POINT)
(MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN)
(FRAC_DIGITS, INT_FRAC_DIGITS, P_CS_PRECEDES, N_CS_PRECEDES)
(P_SEP_BY_SPACE, N_SEP_BY_SPACE, P_SIGN_POSN, N_SIGN_POSN): Define.
* lib/nl_langinfo.c: Include and early.
Include if Microsoft Windows.
Include if !REPLACE_NL_LANGINFO.
(ctype_codeset): New function, taken from rpl_nl_langinfo,
and with improvements for Microsoft Windows.
(rpl_nl_langinfo): Use it.
(nl_langinfo) [!REPLACE_NL_LANGINFO]: Likewise.
Compute the values of RADIXCHAR, THOUSEP, GROUPING, CRNCYSTR,
INT_CURR_SYMBOL, MON_DECIMAL_POINT, MON_THOUSANDS_SEP,
MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN, FRAC_DIGITS,
INT_FRAC_DIGITS, P_CS_PRECEDES, N_CS_PRECEDES, P_SEP_BY_SPACE,
N_SEP_BY_SPACE, P_SIGN_POSN, and N_SIGN_POSN from the
corresponding values returned by 'localeconv'. Compute the values
of AM_STR, PM_STR, DAY_n, ABDAY_n, MON_n, and ABMON_n by calling
'strftime' with a suitable struct tm value.
2014-07-05 Paul Eggert
Bruno Haible has stepped down as maintainer.
See Karl Berry in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00004.html
Daiki Ueno has volunteered to maintain libunistring; see:
http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00005.html
* modules/gen-uni-tables, modules/libunistring:
* modules/libunistring-optional, modules/ucs4-utf16, modules/ucs4-utf8:
* modules/unicase/base, modules/unicase/cased:
* modules/unicase/empty-prefix-context:
* modules/unicase/empty-suffix-context, modules/unicase/ignorable:
* modules/unicase/locale-language, modules/unicase/special-casing:
* modules/unicase/tocasefold, modules/unicase/tolower:
* modules/unicase/totitle, modules/unicase/toupper:
* modules/unicase/u16-casecmp, modules/unicase/u16-casecoll:
* modules/unicase/u16-casefold, modules/unicase/u16-casemap:
* modules/unicase/u16-casexfrm, modules/unicase/u16-ct-casefold:
* modules/unicase/u16-ct-tolower, modules/unicase/u16-ct-totitle:
* modules/unicase/u16-ct-toupper, modules/unicase/u16-is-cased:
* modules/unicase/u16-is-casefolded, modules/unicase/u16-is-invariant:
* modules/unicase/u16-is-lowercase, modules/unicase/u16-is-titlecase:
* modules/unicase/u16-is-uppercase, modules/unicase/u16-prefix-context:
* modules/unicase/u16-suffix-context, modules/unicase/u16-tolower:
* modules/unicase/u16-totitle, modules/unicase/u16-toupper:
* modules/unicase/u32-casecmp, modules/unicase/u32-casecoll:
* modules/unicase/u32-casefold, modules/unicase/u32-casemap:
* modules/unicase/u32-casexfrm, modules/unicase/u32-ct-casefold:
* modules/unicase/u32-ct-tolower, modules/unicase/u32-ct-totitle:
* modules/unicase/u32-ct-toupper, modules/unicase/u32-is-cased:
* modules/unicase/u32-is-casefolded, modules/unicase/u32-is-invariant:
* modules/unicase/u32-is-lowercase, modules/unicase/u32-is-titlecase:
* modules/unicase/u32-is-uppercase, modules/unicase/u32-prefix-context:
* modules/unicase/u32-suffix-context, modules/unicase/u32-tolower:
* modules/unicase/u32-totitle, modules/unicase/u32-toupper:
* modules/unicase/u8-casecmp, modules/unicase/u8-casecoll:
* modules/unicase/u8-casefold, modules/unicase/u8-casemap:
* modules/unicase/u8-casexfrm, modules/unicase/u8-ct-casefold:
* modules/unicase/u8-ct-tolower, modules/unicase/u8-ct-totitle:
* modules/unicase/u8-ct-toupper, modules/unicase/u8-is-cased:
* modules/unicase/u8-is-casefolded, modules/unicase/u8-is-invariant:
* modules/unicase/u8-is-lowercase, modules/unicase/u8-is-titlecase:
* modules/unicase/u8-is-uppercase, modules/unicase/u8-prefix-context:
* modules/unicase/u8-suffix-context, modules/unicase/u8-tolower:
* modules/unicase/u8-totitle, modules/unicase/u8-toupper:
* modules/unicase/ulc-casecmp, modules/unicase/ulc-casecoll:
* modules/unicase/ulc-casexfrm, modules/unicodeio:
* modules/uniconv/base, modules/uniconv/u16-conv-from-enc:
* modules/uniconv/u16-conv-to-enc:
* modules/uniconv/u16-strconv-from-enc:
* modules/uniconv/u16-strconv-from-locale:
* modules/uniconv/u16-strconv-to-enc:
* modules/uniconv/u16-strconv-to-locale:
* modules/uniconv/u32-conv-from-enc, modules/uniconv/u32-conv-to-enc:
* modules/uniconv/u32-strconv-from-enc:
* modules/uniconv/u32-strconv-from-locale:
* modules/uniconv/u32-strconv-to-enc:
* modules/uniconv/u32-strconv-to-locale:
* modules/uniconv/u8-conv-from-enc, modules/uniconv/u8-conv-to-enc:
* modules/uniconv/u8-strconv-from-enc:
* modules/uniconv/u8-strconv-from-locale:
* modules/uniconv/u8-strconv-to-enc:
* modules/uniconv/u8-strconv-to-locale, modules/unictype/base:
* modules/unictype/bidicategory-all:
* modules/unictype/bidicategory-byname:
* modules/unictype/bidicategory-name, modules/unictype/bidicategory-of:
* modules/unictype/bidicategory-test, modules/unictype/bidiclass-all:
* modules/unictype/bidiclass-byname:
* modules/unictype/bidiclass-longname, modules/unictype/bidiclass-name:
* modules/unictype/bidiclass-of, modules/unictype/bidiclass-test:
* modules/unictype/block-all, modules/unictype/block-list:
* modules/unictype/block-of, modules/unictype/block-test:
* modules/unictype/category-C, modules/unictype/category-Cc:
* modules/unictype/category-Cf, modules/unictype/category-Cn:
* modules/unictype/category-Co, modules/unictype/category-Cs:
* modules/unictype/category-L, modules/unictype/category-LC:
* modules/unictype/category-Ll, modules/unictype/category-Lm:
* modules/unictype/category-Lo, modules/unictype/category-Lt:
* modules/unictype/category-Lu, modules/unictype/category-M:
* modules/unictype/category-Mc, modules/unictype/category-Me:
* modules/unictype/category-Mn, modules/unictype/category-N:
* modules/unictype/category-Nd, modules/unictype/category-Nl:
* modules/unictype/category-No, modules/unictype/category-P:
* modules/unictype/category-Pc, modules/unictype/category-Pd:
* modules/unictype/category-Pe, modules/unictype/category-Pf:
* modules/unictype/category-Pi, modules/unictype/category-Po:
* modules/unictype/category-Ps, modules/unictype/category-S:
* modules/unictype/category-Sc, modules/unictype/category-Sk:
* modules/unictype/category-Sm, modules/unictype/category-So:
* modules/unictype/category-Z, modules/unictype/category-Zl:
* modules/unictype/category-Zp, modules/unictype/category-Zs:
* modules/unictype/category-all, modules/unictype/category-and:
* modules/unictype/category-and-not, modules/unictype/category-byname:
* modules/unictype/category-longname, modules/unictype/category-name:
* modules/unictype/category-none, modules/unictype/category-of:
* modules/unictype/category-or, modules/unictype/category-test:
* modules/unictype/category-test-withtable:
* modules/unictype/combining-class:
* modules/unictype/combining-class-all:
* modules/unictype/combining-class-byname:
* modules/unictype/combining-class-longname:
* modules/unictype/combining-class-name, modules/unictype/ctype-alnum:
* modules/unictype/ctype-alpha, modules/unictype/ctype-blank:
* modules/unictype/ctype-cntrl, modules/unictype/ctype-digit:
* modules/unictype/ctype-graph, modules/unictype/ctype-lower:
* modules/unictype/ctype-print, modules/unictype/ctype-punct:
* modules/unictype/ctype-space, modules/unictype/ctype-upper:
* modules/unictype/ctype-xdigit, modules/unictype/decimal-digit:
* modules/unictype/digit, modules/unictype/joininggroup-all:
* modules/unictype/joininggroup-byname:
* modules/unictype/joininggroup-name, modules/unictype/joininggroup-of:
* modules/unictype/joiningtype-all:
* modules/unictype/joiningtype-byname:
* modules/unictype/joiningtype-longname:
* modules/unictype/joiningtype-name, modules/unictype/joiningtype-of:
* modules/unictype/mirror, modules/unictype/numeric:
* modules/unictype/property-all, modules/unictype/property-alphabetic:
* modules/unictype/property-ascii-hex-digit:
* modules/unictype/property-bidi-arabic-digit:
* modules/unictype/property-bidi-arabic-right-to-left:
* modules/unictype/property-bidi-block-separator:
* modules/unictype/property-bidi-boundary-neutral:
* modules/unictype/property-bidi-common-separator:
* modules/unictype/property-bidi-control:
* modules/unictype/property-bidi-embedding-or-override:
* modules/unictype/property-bidi-eur-num-separator:
* modules/unictype/property-bidi-eur-num-terminator:
* modules/unictype/property-bidi-european-digit:
* modules/unictype/property-bidi-hebrew-right-to-left:
* modules/unictype/property-bidi-left-to-right:
* modules/unictype/property-bidi-non-spacing-mark:
* modules/unictype/property-bidi-other-neutral:
* modules/unictype/property-bidi-pdf:
* modules/unictype/property-bidi-segment-separator:
* modules/unictype/property-bidi-whitespace:
* modules/unictype/property-byname:
* modules/unictype/property-case-ignorable:
* modules/unictype/property-cased:
* modules/unictype/property-changes-when-casefolded:
* modules/unictype/property-changes-when-casemapped:
* modules/unictype/property-changes-when-lowercased:
* modules/unictype/property-changes-when-titlecased:
* modules/unictype/property-changes-when-uppercased:
* modules/unictype/property-combining:
* modules/unictype/property-composite:
* modules/unictype/property-currency-symbol:
* modules/unictype/property-dash:
* modules/unictype/property-decimal-digit:
* modules/unictype/property-default-ignorable-code-point:
* modules/unictype/property-deprecated:
* modules/unictype/property-diacritic:
* modules/unictype/property-extender:
* modules/unictype/property-format-control:
* modules/unictype/property-grapheme-base:
* modules/unictype/property-grapheme-extend:
* modules/unictype/property-grapheme-link:
* modules/unictype/property-hex-digit:
* modules/unictype/property-hyphen:
* modules/unictype/property-id-continue:
* modules/unictype/property-id-start:
* modules/unictype/property-ideographic:
* modules/unictype/property-ids-binary-operator:
* modules/unictype/property-ids-trinary-operator:
* modules/unictype/property-ignorable-control:
* modules/unictype/property-iso-control:
* modules/unictype/property-join-control:
* modules/unictype/property-left-of-pair:
* modules/unictype/property-line-separator:
* modules/unictype/property-logical-order-exception:
* modules/unictype/property-lowercase, modules/unictype/property-math:
* modules/unictype/property-non-break:
* modules/unictype/property-not-a-character:
* modules/unictype/property-numeric:
* modules/unictype/property-other-alphabetic:
* modules/unictype/property-other-default-ignorable-code-point:
* modules/unictype/property-other-grapheme-extend:
* modules/unictype/property-other-id-continue:
* modules/unictype/property-other-id-start:
* modules/unictype/property-other-lowercase:
* modules/unictype/property-other-math:
* modules/unictype/property-other-uppercase:
* modules/unictype/property-paired-punctuation:
* modules/unictype/property-paragraph-separator:
* modules/unictype/property-pattern-syntax:
* modules/unictype/property-pattern-white-space:
* modules/unictype/property-private-use:
* modules/unictype/property-punctuation:
* modules/unictype/property-quotation-mark:
* modules/unictype/property-radical:
* modules/unictype/property-sentence-terminal:
* modules/unictype/property-soft-dotted:
* modules/unictype/property-space:
* modules/unictype/property-terminal-punctuation:
* modules/unictype/property-test, modules/unictype/property-titlecase:
* modules/unictype/property-unassigned-code-value:
* modules/unictype/property-unified-ideograph:
* modules/unictype/property-uppercase:
* modules/unictype/property-variation-selector:
* modules/unictype/property-white-space:
* modules/unictype/property-xid-continue:
* modules/unictype/property-xid-start:
* modules/unictype/property-zero-width, modules/unictype/scripts:
* modules/unictype/scripts-all, modules/unictype/syntax-c-ident:
* modules/unictype/syntax-c-whitespace:
* modules/unictype/syntax-java-ident:
* modules/unictype/syntax-java-whitespace, modules/unigbrk/base:
* modules/unigbrk/u16-grapheme-breaks:
* modules/unigbrk/u16-grapheme-next, modules/unigbrk/u16-grapheme-prev:
* modules/unigbrk/u32-grapheme-breaks:
* modules/unigbrk/u32-grapheme-next, modules/unigbrk/u32-grapheme-prev:
* modules/unigbrk/u8-grapheme-breaks, modules/unigbrk/u8-grapheme-next:
* modules/unigbrk/u8-grapheme-prev, modules/unigbrk/uc-gbrk-prop:
* modules/unigbrk/uc-is-grapheme-break:
* modules/unigbrk/ulc-grapheme-breaks, modules/unilbrk/base:
* modules/unilbrk/tables, modules/unilbrk/u16-possible-linebreaks:
* modules/unilbrk/u16-width-linebreaks:
* modules/unilbrk/u32-possible-linebreaks:
* modules/unilbrk/u32-width-linebreaks:
* modules/unilbrk/u8-possible-linebreaks:
* modules/unilbrk/u8-width-linebreaks, modules/unilbrk/ulc-common:
* modules/unilbrk/ulc-possible-linebreaks:
* modules/unilbrk/ulc-width-linebreaks, modules/uniname/base:
* modules/uniname/uniname, modules/uninorm/base:
* modules/uninorm/canonical-decomposition:
* modules/uninorm/compat-decomposition, modules/uninorm/composition:
* modules/uninorm/decompose-internal, modules/uninorm/decomposing-form:
* modules/uninorm/decomposition, modules/uninorm/decomposition-table:
* modules/uninorm/filter, modules/uninorm/nfc, modules/uninorm/nfd:
* modules/uninorm/nfkc, modules/uninorm/nfkd:
* modules/uninorm/u16-normalize, modules/uninorm/u16-normcmp:
* modules/uninorm/u16-normcoll, modules/uninorm/u16-normxfrm:
* modules/uninorm/u32-normalize, modules/uninorm/u32-normcmp:
* modules/uninorm/u32-normcoll, modules/uninorm/u32-normxfrm:
* modules/uninorm/u8-normalize, modules/uninorm/u8-normcmp:
* modules/uninorm/u8-normcoll, modules/uninorm/u8-normxfrm:
* modules/unistdio/base, modules/unistdio/u-printf-args:
* modules/unistdio/u16-asnprintf, modules/unistdio/u16-asprintf:
* modules/unistdio/u16-printf-parse, modules/unistdio/u16-snprintf:
* modules/unistdio/u16-sprintf, modules/unistdio/u16-u16-asnprintf:
* modules/unistdio/u16-u16-asprintf, modules/unistdio/u16-u16-snprintf:
* modules/unistdio/u16-u16-sprintf:
* modules/unistdio/u16-u16-vasnprintf:
* modules/unistdio/u16-u16-vasprintf:
* modules/unistdio/u16-u16-vsnprintf:
* modules/unistdio/u16-u16-vsprintf, modules/unistdio/u16-vasnprintf:
* modules/unistdio/u16-vasprintf, modules/unistdio/u16-vsnprintf:
* modules/unistdio/u16-vsprintf, modules/unistdio/u32-asnprintf:
* modules/unistdio/u32-asprintf, modules/unistdio/u32-printf-parse:
* modules/unistdio/u32-snprintf, modules/unistdio/u32-sprintf:
* modules/unistdio/u32-u32-asnprintf:
* modules/unistdio/u32-u32-asprintf, modules/unistdio/u32-u32-snprintf:
* modules/unistdio/u32-u32-sprintf:
* modules/unistdio/u32-u32-vasnprintf:
* modules/unistdio/u32-u32-vasprintf:
* modules/unistdio/u32-u32-vsnprintf:
* modules/unistdio/u32-u32-vsprintf, modules/unistdio/u32-vasnprintf:
* modules/unistdio/u32-vasprintf, modules/unistdio/u32-vsnprintf:
* modules/unistdio/u32-vsprintf, modules/unistdio/u8-asnprintf:
* modules/unistdio/u8-asprintf, modules/unistdio/u8-printf-parse:
* modules/unistdio/u8-snprintf, modules/unistdio/u8-sprintf:
* modules/unistdio/u8-u8-asnprintf, modules/unistdio/u8-u8-asprintf:
* modules/unistdio/u8-u8-snprintf, modules/unistdio/u8-u8-sprintf:
* modules/unistdio/u8-u8-vasnprintf, modules/unistdio/u8-u8-vasprintf:
* modules/unistdio/u8-u8-vsnprintf, modules/unistdio/u8-u8-vsprintf:
* modules/unistdio/u8-vasnprintf, modules/unistdio/u8-vasprintf:
* modules/unistdio/u8-vsnprintf, modules/unistdio/u8-vsprintf:
* modules/unistdio/ulc-asnprintf, modules/unistdio/ulc-asprintf:
* modules/unistdio/ulc-fprintf, modules/unistdio/ulc-printf-parse:
* modules/unistdio/ulc-snprintf, modules/unistdio/ulc-sprintf:
* modules/unistdio/ulc-vasnprintf, modules/unistdio/ulc-vasprintf:
* modules/unistdio/ulc-vfprintf, modules/unistdio/ulc-vsnprintf:
* modules/unistdio/ulc-vsprintf, modules/unistr/base:
* modules/unistr/u16-check, modules/unistr/u16-chr:
* modules/unistr/u16-cmp, modules/unistr/u16-cmp2:
* modules/unistr/u16-cpy, modules/unistr/u16-cpy-alloc:
* modules/unistr/u16-endswith, modules/unistr/u16-mblen:
* modules/unistr/u16-mbsnlen, modules/unistr/u16-mbtouc:
* modules/unistr/u16-mbtouc-unsafe, modules/unistr/u16-mbtoucr:
* modules/unistr/u16-move, modules/unistr/u16-next:
* modules/unistr/u16-prev, modules/unistr/u16-set:
* modules/unistr/u16-startswith, modules/unistr/u16-stpcpy:
* modules/unistr/u16-stpncpy, modules/unistr/u16-strcat:
* modules/unistr/u16-strchr, modules/unistr/u16-strcmp:
* modules/unistr/u16-strcoll, modules/unistr/u16-strcpy:
* modules/unistr/u16-strcspn, modules/unistr/u16-strdup:
* modules/unistr/u16-strlen, modules/unistr/u16-strmblen:
* modules/unistr/u16-strmbtouc, modules/unistr/u16-strncat:
* modules/unistr/u16-strncmp, modules/unistr/u16-strncpy:
* modules/unistr/u16-strnlen, modules/unistr/u16-strpbrk:
* modules/unistr/u16-strrchr, modules/unistr/u16-strspn:
* modules/unistr/u16-strstr, modules/unistr/u16-strtok:
* modules/unistr/u16-to-u32, modules/unistr/u16-to-u8:
* modules/unistr/u16-uctomb, modules/unistr/u32-check:
* modules/unistr/u32-chr, modules/unistr/u32-cmp:
* modules/unistr/u32-cmp2, modules/unistr/u32-cpy:
* modules/unistr/u32-cpy-alloc, modules/unistr/u32-endswith:
* modules/unistr/u32-mblen, modules/unistr/u32-mbsnlen:
* modules/unistr/u32-mbtouc, modules/unistr/u32-mbtouc-unsafe:
* modules/unistr/u32-mbtoucr, modules/unistr/u32-move:
* modules/unistr/u32-next, modules/unistr/u32-prev:
* modules/unistr/u32-set, modules/unistr/u32-startswith:
* modules/unistr/u32-stpcpy, modules/unistr/u32-stpncpy:
* modules/unistr/u32-strcat, modules/unistr/u32-strchr:
* modules/unistr/u32-strcmp, modules/unistr/u32-strcoll:
* modules/unistr/u32-strcpy, modules/unistr/u32-strcspn:
* modules/unistr/u32-strdup, modules/unistr/u32-strlen:
* modules/unistr/u32-strmblen, modules/unistr/u32-strmbtouc:
* modules/unistr/u32-strncat, modules/unistr/u32-strncmp:
* modules/unistr/u32-strncpy, modules/unistr/u32-strnlen:
* modules/unistr/u32-strpbrk, modules/unistr/u32-strrchr:
* modules/unistr/u32-strspn, modules/unistr/u32-strstr:
* modules/unistr/u32-strtok, modules/unistr/u32-to-u16:
* modules/unistr/u32-to-u8, modules/unistr/u32-uctomb:
* modules/unistr/u8-check, modules/unistr/u8-chr:
* modules/unistr/u8-cmp, modules/unistr/u8-cmp2, modules/unistr/u8-cpy:
* modules/unistr/u8-cpy-alloc, modules/unistr/u8-endswith:
* modules/unistr/u8-mblen, modules/unistr/u8-mbsnlen:
* modules/unistr/u8-mbtouc, modules/unistr/u8-mbtouc-unsafe:
* modules/unistr/u8-mbtoucr, modules/unistr/u8-move:
* modules/unistr/u8-next, modules/unistr/u8-prev:
* modules/unistr/u8-set, modules/unistr/u8-startswith:
* modules/unistr/u8-stpcpy, modules/unistr/u8-stpncpy:
* modules/unistr/u8-strcat, modules/unistr/u8-strchr:
* modules/unistr/u8-strcmp, modules/unistr/u8-strcoll:
* modules/unistr/u8-strcpy, modules/unistr/u8-strcspn:
* modules/unistr/u8-strdup, modules/unistr/u8-strlen:
* modules/unistr/u8-strmblen, modules/unistr/u8-strmbtouc:
* modules/unistr/u8-strncat, modules/unistr/u8-strncmp:
* modules/unistr/u8-strncpy, modules/unistr/u8-strnlen:
* modules/unistr/u8-strpbrk, modules/unistr/u8-strrchr:
* modules/unistr/u8-strspn, modules/unistr/u8-strstr:
* modules/unistr/u8-strtok, modules/unistr/u8-to-u16:
* modules/unistr/u8-to-u32, modules/unistr/u8-uctomb, modules/unitypes:
* modules/uniwbrk/base, modules/uniwbrk/table:
* modules/uniwbrk/u16-wordbreaks, modules/uniwbrk/u32-wordbreaks:
* modules/uniwbrk/u8-wordbreaks, modules/uniwbrk/ulc-wordbreaks:
* modules/uniwbrk/wordbreak-property, modules/uniwidth/base:
* modules/uniwidth/u16-strwidth, modules/uniwidth/u16-width:
* modules/uniwidth/u32-strwidth, modules/uniwidth/u32-width:
* modules/uniwidth/u8-strwidth, modules/uniwidth/u8-width:
* modules/uniwidth/width, modules/utf16-ucs4:
* modules/utf16-ucs4-unsafe, modules/utf8-ucs4:
* modules/utf8-ucs4-unsafe:
Change maintainer from Bruno Haible to Daiki Ueno.
This is my guess at the libunistring modules; please feel free
to fix if I guessed incorrectly.
* modules/accept4, modules/acl, modules/acos, modules/acosf:
* modules/alignof, modules/amemxfrm, modules/ansi-c++-opt:
* modules/areadlink, modules/array-list, modules/array-mergesort:
* modules/array-oset, modules/asin, modules/asinf, modules/astrxfrm:
* modules/atan, modules/atan2, modules/atan2f, modules/atanf:
* modules/avltree-list, modules/avltree-oset, modules/avltreehash-list:
* modules/binary-io, modules/bison-i18n, modules/btowc:
* modules/c-ctype, modules/c-strcase, modules/c-strcaseeq:
* modules/c-strcasestr, modules/c-strstr, modules/calloc-posix:
* modules/canonicalize-lgpl, modules/careadlinkat, modules/carray-list:
* modules/cbrt, modules/cbrt-ieee, modules/cbrtf, modules/cbrtf-ieee:
* modules/cbrtl, modules/cbrtl-ieee, modules/ceil, modules/ceil-ieee:
* modules/ceilf, modules/ceilf-ieee, modules/ceill, modules/ceill-ieee:
* modules/chdir, modules/classpath, modules/clean-temp, modules/close:
* modules/closedir, modules/concat-filename, modules/copy-file:
* modules/copysign, modules/copysignf, modules/copysignl, modules/cos:
* modules/cosf, modules/cosh, modules/coshf, modules/csharpcomp:
* modules/csharpcomp-script, modules/csharpexec:
* modules/csharpexec-script, modules/ctype, modules/diffseq:
* modules/dprintf, modules/dprintf-posix, modules/dup:
* modules/dup2-obsolete, modules/dup3, modules/duplocale:
* modules/eealloc, modules/environ, modules/erf, modules/erfc:
* modules/errno, modules/execute, modules/exp, modules/exp-ieee:
* modules/exp2, modules/exp2-ieee, modules/exp2f, modules/exp2f-ieee:
* modules/exp2l, modules/exp2l-ieee, modules/expf, modules/expf-ieee:
* modules/expl, modules/expl-ieee, modules/expm1, modules/expm1-ieee:
* modules/expm1f, modules/expm1f-ieee, modules/expm1l:
* modules/expm1l-ieee, modules/fabs, modules/fabs-ieee, modules/fabsf:
* modules/fabsf-ieee, modules/fabsl, modules/fabsl-ieee:
* modules/fatal-signal, modules/fbufmode, modules/fchdir:
* modules/fclose, modules/fd-hook, modules/fdopen, modules/filename:
* modules/findprog, modules/findprog-lgpl, modules/floor:
* modules/floor-ieee, modules/floorf, modules/floorf-ieee:
* modules/floorl, modules/floorl-ieee, modules/fma, modules/fma-ieee:
* modules/fmaf, modules/fmaf-ieee, modules/fmal, modules/fmal-ieee:
* modules/fmod, modules/fmod-ieee, modules/fmodf, modules/fmodf-ieee:
* modules/fmodl, modules/fmodl-ieee, modules/fopen, modules/fpieee:
* modules/fprintf-posix, modules/fpucw, modules/fpurge:
* modules/freadable, modules/freadahead, modules/freadptr:
* modules/freadseek, modules/freopen, modules/frexp:
* modules/frexp-ieee, modules/frexp-nolibm, modules/frexpf:
* modules/frexpf-ieee, modules/frexpl, modules/frexpl-ieee:
* modules/frexpl-nolibm, modules/fseek, modules/fseeko:
* modules/fseterr, modules/fstat, modules/fstrcmp, modules/ftell:
* modules/ftello, modules/full-read, modules/full-write:
* modules/fwritable, modules/fwriteerror, modules/gcd:
* modules/get-rusage-as, modules/get-rusage-data:
* modules/getdtablesize, modules/getrusage, modules/gettext:
* modules/gettext-h, modules/git-merge-changelog, modules/gperf:
* modules/grantpt, modules/havelib, modules/host-cpu-c-abi:
* modules/hostent, modules/hypot, modules/hypot-ieee, modules/hypotf:
* modules/hypotf-ieee, modules/hypotl, modules/hypotl-ieee:
* modules/iconv, modules/iconv-h, modules/iconv_open:
* modules/iconv_open-utf, modules/idpriv-drop, modules/idpriv-droptemp:
* modules/ilogb, modules/ilogbf, modules/ilogbl, modules/imaxabs:
* modules/imaxdiv, modules/integer_length, modules/integer_length_l:
* modules/integer_length_ll, modules/ioctl, modules/isatty:
* modules/isblank, modules/isnand, modules/isnand-nolibm:
* modules/isnanf, modules/isnanf-nolibm, modules/isnanl:
* modules/isnanl-nolibm, modules/iswblank, modules/iswctype:
* modules/j0, modules/j1, modules/javacomp, modules/javacomp-script:
* modules/javaexec, modules/javaexec-script, modules/javaversion:
* modules/jn, modules/langinfo, modules/ldd, modules/ldexp:
* modules/ldexp-ieee, modules/ldexpf, modules/ldexpf-ieee:
* modules/ldexpl, modules/ldexpl-ieee, modules/lgamma:
* modules/lib-symbol-visibility, modules/libsigsegv:
* modules/linked-list, modules/linkedhash-list, modules/list:
* modules/localcharset, modules/locale, modules/localeconv:
* modules/localename, modules/lock, modules/log, modules/log-ieee:
* modules/log10, modules/log10-ieee, modules/log10f:
* modules/log10f-ieee, modules/log10l, modules/log10l-ieee:
* modules/log1p, modules/log1p-ieee, modules/log1pf:
* modules/log1pf-ieee, modules/log1pl, modules/log1pl-ieee:
* modules/log2, modules/log2-ieee, modules/log2f, modules/log2f-ieee:
* modules/log2l, modules/log2l-ieee, modules/logb, modules/logb-ieee:
* modules/logbf, modules/logbf-ieee, modules/logbl, modules/logbl-ieee:
* modules/logf, modules/logf-ieee, modules/login_tty:
* modules/logl-ieee, modules/malloc-posix, modules/malloca:
* modules/mbchar, modules/mbfile, modules/mbiter, modules/mbmemcasecmp:
* modules/mbmemcasecoll, modules/mbrlen, modules/mbrtowc:
* modules/mbscasecmp, modules/mbscasestr, modules/mbschr:
* modules/mbscspn, modules/mbsinit, modules/mbslen:
* modules/mbsncasecmp, modules/mbsnlen, modules/mbsnrtowcs:
* modules/mbspbrk, modules/mbspcasecmp, modules/mbsrchr:
* modules/mbsrtowcs, modules/mbssep, modules/mbsspn, modules/mbsstr:
* modules/mbstok_r, modules/mbswidth, modules/mbtowc, modules/mbuiter:
* modules/memchr-obsolete, modules/memcmp2, modules/minmax:
* modules/mkdtemp, modules/mkostemp, modules/mktime-internal:
* modules/modf, modules/modf-ieee, modules/modff, modules/modff-ieee:
* modules/modfl, modules/modfl-ieee, modules/msvc-inval:
* modules/msvc-nothrow, modules/multiarch, modules/nextafter:
* modules/nl_langinfo, modules/no-c++, modules/nocrash:
* modules/nonblocking, modules/open, modules/opendir, modules/openmp:
* modules/oset, modules/pclose, modules/pipe, modules/pipe-filter-gi:
* modules/pipe-filter-ii, modules/pipe2, modules/poll-h:
* modules/posix_spawn, modules/posix_spawn-internal:
* modules/posix_spawn_file_actions_addclose:
* modules/posix_spawn_file_actions_adddup2:
* modules/posix_spawn_file_actions_addopen:
* modules/posix_spawn_file_actions_destroy:
* modules/posix_spawn_file_actions_init:
* modules/posix_spawnattr_destroy, modules/posix_spawnattr_getflags:
* modules/posix_spawnattr_getpgroup:
* modules/posix_spawnattr_getschedparam:
* modules/posix_spawnattr_getschedpolicy:
* modules/posix_spawnattr_getsigdefault:
* modules/posix_spawnattr_getsigmask, modules/posix_spawnattr_init:
* modules/posix_spawnattr_setflags, modules/posix_spawnattr_setpgroup:
* modules/posix_spawnattr_setschedparam:
* modules/posix_spawnattr_setschedpolicy:
* modules/posix_spawnattr_setsigdefault:
* modules/posix_spawnattr_setsigmask, modules/posix_spawnp:
* modules/pow, modules/powf, modules/printf-frexp:
* modules/printf-frexpl, modules/printf-posix, modules/printf-safe:
* modules/progname, modules/propername, modules/pselect:
* modules/pthread_sigmask, modules/ptsname, modules/ptsname_r:
* modules/qacl, modules/quotearg-simple, modules/raise, modules/random:
* modules/rbtree-list, modules/rbtree-oset, modules/rbtreehash-list:
* modules/read, modules/readdir, modules/readlink:
* modules/realloc-posix, modules/regex-quote, modules/relocatable-lib:
* modules/relocatable-lib-lgpl, modules/relocatable-perl:
* modules/relocatable-prog, modules/relocatable-prog-wrapper:
* modules/relocatable-script, modules/remainder:
* modules/remainder-ieee, modules/remainderf, modules/remainderf-ieee:
* modules/remainderl, modules/remainderl-ieee, modules/rewinddir:
* modules/rint, modules/rint-ieee, modules/rintf, modules/rintf-ieee:
* modules/rintl, modules/rintl-ieee, modules/round-ieee:
* modules/roundf-ieee, modules/roundl-ieee, modules/safe-read:
* modules/safe-write, modules/sched, modules/servent, modules/setenv:
* modules/setlocale, modules/sh-quote, modules/shutdown:
* modules/signal, modules/signbit, modules/sigpipe:
* modules/sigpipe-die, modules/sigprocmask, modules/sin, modules/sinf:
* modules/sinh, modules/sinhf, modules/size_max, modules/sleep:
* modules/snippet/arg-nonnull, modules/snippet/c++defs:
* modules/snippet/link-warning, modules/snippet/unused-parameter:
* modules/snprintf, modules/snprintf-posix, modules/spawn:
* modules/spawn-pipe, modules/sprintf-posix, modules/sqrt:
* modules/sqrt-ieee, modules/sqrtf, modules/sqrtf-ieee:
* modules/sqrtl-ieee, modules/stdalign, modules/stdarg:
* modules/stdbool, modules/stpcpy, modules/stpncpy, modules/strcase:
* modules/strcasestr, modules/strcasestr-simple, modules/strcspn:
* modules/streq, modules/strerror_r-posix, modules/striconv:
* modules/striconveh, modules/striconveha, modules/strncat:
* modules/strnlen1, modules/strpbrk, modules/strtod-obsolete:
* modules/sublist, modules/sys_resource, modules/sys_utsname:
* modules/sys_wait, modules/system-posix, modules/system-quote:
* modules/tan, modules/tanf, modules/tanh, modules/tanhf:
* modules/tcgetsid, modules/termios, modules/threadlib, modules/tls:
* modules/tmpdir, modules/towctrans, modules/trunc, modules/trunc-ieee:
* modules/truncf, modules/truncf-ieee, modules/truncl:
* modules/truncl-ieee, modules/ttyname_r, modules/uname:
* modules/unlockpt, modules/unsetenv, modules/vasnprintf:
* modules/vasnprintf-posix, modules/vasprintf, modules/vasprintf-posix:
* modules/vdprintf, modules/vdprintf-posix, modules/vfprintf-posix:
* modules/vfscanf, modules/vma-iter, modules/vprintf-posix:
* modules/vscanf, modules/vsnprintf-posix, modules/vsprintf-posix:
* modules/wait-process, modules/waitpid, modules/wcpcpy:
* modules/wcpncpy, modules/wcrtomb, modules/wcscasecmp, modules/wcscat:
* modules/wcschr, modules/wcscmp, modules/wcscoll, modules/wcscpy:
* modules/wcscspn, modules/wcsdup, modules/wcslen, modules/wcsncasecmp:
* modules/wcsncat, modules/wcsncmp, modules/wcsncpy, modules/wcsnlen:
* modules/wcsnrtombs, modules/wcspbrk, modules/wcsrchr:
* modules/wcsrtombs, modules/wcsspn, modules/wcsstr, modules/wcstok:
* modules/wcswidth, modules/wcsxfrm, modules/wctob, modules/wctomb:
* modules/wctrans, modules/wctype, modules/wcwidth, modules/wmemchr:
* modules/wmemcmp, modules/wmemcpy, modules/wmemmove, modules/wmemset:
* modules/write, modules/xconcat-filename, modules/xlist:
* modules/xmalloca, modules/xoset, modules/xprintf-posix:
* modules/xreadlink, modules/xsetenv, modules/xsize, modules/xstriconv:
* modules/xstriconveh, modules/xsublist, modules/xvasprintf-posix:
* modules/y0, modules/y1, modules/yn:
Remove Bruno Haible as maintainer; if he's the sole maintainer,
change the maintainer to 'all'. Let's hope someone volunteers.
2014-06-27 Paul Eggert
mktime: merge #if/#ifdef usage from glibc
* lib/mktime.c: Use "#if defined DEBUG && DEBUG", not "#if DEBUG",
as that works with both Glibc's and Gnulib's style.
See thread starting at Siddhesh Poyarekar's bug report at:
http://lists.gnu.org/archive/html/bug-gnulib/2014-06/msg00102.html
2014-06-20 Alfred M. Szmidt
git-version-gen: improve option descriptions
* build-aux/git-version-gen: Mention that --prefix and --fallback
have a mandatory argument.
2014-06-19 Paul Eggert
regex: fix memory leak in compiler
Fix by Andreas Schwab in:
https://sourceware.org/ml/libc-alpha/2014-06/msg00462.html
* lib/regcomp.c (parse_expression): Deallocate partially
constructed tree before returning error.
regex: merge patch from libc
2014-02-12 Joseph Myers
Combine __USE_BSD and __USE_SVID into __USE_MISC.
* lib/regex.h [__USE_BSD]: Change condition to [__USE_MISC].
2014-06-17 Paul Eggert
acl: port to gcc -Wredundant-decls
From a request by Dmitry Antipov in:
http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
* lib/acl.h (_GL_ACL_H): New macro. Protect entire contents with
"#ifndef _GL_ACL_H".
2014-06-11 Bruce Korb
Jim Meyering
parse-duration: eliminate 68-year duration limit
* lib/parse-duration.c: Include "intprops.h".
(TIME_MAX): Rename to MAX_DURATION and define to
TYPE_MAXIMUM(time_t).
* modules/parse-duration (Depends-on): Add intprops.
Reported by Jonas 'Sortie' Termansen.
2014-06-14 Paul Eggert
pthread: don't assume AC_CANONICAL_HOST, port better to Solaris, etc.
* modules/pthread (Depends-on): Add 'extensions', as it defines
_POSIX_PTHREAD_SEMANTICS, which is needed on Solaris.
(configure.ac-early): New section.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Revert previous change, as
it is no longer needed.
2014-06-14 Pádraig Brady
pthread: define thread-safe macros on some platforms
* m4/pthread.m4 (gl_PTHREAD_CHECK): Define macros needed
for thread-safe operation on some platforms.
2014-06-13 Paul Eggert
regex: don't be multithreaded if USE_UNLOCKED_IO.
Problem reported by Michael Felt in: http://bugs.gnu.org/17773
* lib/regex_internal.h: Do not use multithreaded version if
USE_UNLOCKED_IO is defined. This is a hack, but it works
around a porting bug with coreutils 8.22 on AIX 7.1.
2014-06-11 Daiki Ueno
gettext: update macros to version 0.19
* m4/intl.m4, m4/po.m4: Update from gettext-0.19. In particular,
depend on gl_EXTERN_INLINE and drop support for older Bison
versions.
2014-06-10 Pádraig Brady
select,poll: fix console handle check on windows 8
lib/poll.c (IsConsoleHandle): Change from testing the lower
2 bits of the handle to the more expensive but accurate syscall.
lib/select.c: Likewise.
2014-06-10 Eli Zaretskii
select: fix waiting on anonymous pipes on MS-Windows
* lib/select.c (rpl_select): Fall back to polling when select()
indicates there is nothing to check, while due to the timeout not
expiring, activity is indicated on one of the handles.
Also clear the TIMEOUT argument if the timer does expire.
2014-06-10 Eli Zaretskii
times: fix to return non constant value on MS-Windows
* lib/times.c (times): Don't use the process creation time,
rather clock() which on windows returns the number of
clock ticks since the process started.
2014-06-09 Michael Goffioul
isatty: fix to work on windows 8
* lib/isatty.c (IsConsoleHandle): Change from testing the lower
2 bits of the handle to the more expensive but accurate syscall.
2014-06-07 Paul Eggert
maint: fix typo in fdl.texi
* doc/fdl.texi: Fix typo (missing '@').
Somehow this was in fdl.texi but not fdl-1.3.texi.
2014-06-06 Ben Walton
mountlist: avoid hasmntopt const type warning on solaris
* lib/mountlist.c: Solaris defines the OPT param of hasmntopt()
with char * instead of const char *. Passing the constant string
"ignore" generates a compiler warning. For Solaris cast MNT_IGNORE
to avoid the warning.
2014-06-04 Eric Blake
maintainer-makefile: delete obsolete code
* top/maint.mk (build_aux): Drop old code, as threatened.
maintainer-makefile: avoid spurious error messages
* top/maint.mk (syntax-check): Guard definition and use of
$(shell) by whether Makefile is present.
2014-06-03 Ben Walton
rename: avoid unused-but-set-variable compiler warning
* lib/rename.c (rpl_rename): In the non-Win32 variant of rpl_rename,
it is possible that dst_exists may be set but not used. Mark it with
the unused attribute to avoid compiler warnings.
2014-06-02 Ben Walton
rename: mark a label as potentially unused
* lib/rename.c (rpl_rename): Avoid compiler warnings seen on Solaris,
by marking the out label as potentially unused.
* m4/gnulib-common.m4: Mention the need for the trailing ; for C++.
2014-06-01 Paul Eggert
gnulib-common.m4: Fix typo in _GL_UNUSED_LABEL.
* m4/gnulib-common.m4 (_GL_UNUSED_LABEL): Omit trailing semicolon.
2014-06-02 Ben Walton
acl: apply pure attribute to two functions
* lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial):
Mark as "pure" as flagged by gcc 4.9 on Solaris 10.
2014-06-01 Pádraig Brady
gnulib-common.m4: add _GL_UNUSED_LABEL
* m4/gnulib-common.m4: Add _GL_UNUSED_LABEL which is similar to
_GL_UNUSED, but handles g++ < 4.5 not supporting this syntax.
2014-05-31 Paul Eggert
dup2, fcntl, fcntl-h: port to AIX 7.1
This fixes some porting problems discovered when testing the latest
grep snapshot on AIX 7.1. I don't think if fixes any bugs
in grep but it could be important for other applications.
* doc/posix-functions/dup2.texi:
* doc/posix-functions/fcntl.texi:
* doc/posix-headers/fcntl.texi:
Document AIX bugs.
* lib/fcntl.in.h (O_CLOEXEC, O_NOFOLLOW, O_TTY_INIT) [_AIX]:
Define to 0 if outside 'int' range.
* m4/dup2.m4 (gl_FUNC_DUP2):
* m4/fcntl.m4 (gl_FUNC_FCNTL):
Check for getdtablesize. If it's available, test a value just
outside its range instead of testing 1000000. When cross-compiling,
guess that AIX will fail this improved test.
2014-05-30 Paul Eggert
printf, config.rpath: Port to FreeBSD 10.
Problem reported by Tijl Coosemans in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-05/msg00078.html
* build-aux/config.rpath (hardcode_libdir_flag_spec)
(hardcode_direct): Simplify FreeBSD configuration.
(library_names_spec): Don't mishandle FreeBSD 10+.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE)
(gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_F)
(gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99)
(gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99):
Don't mishandle FreeBSD 10+ when cross-compiling.
ftoastr: work around compiler bug in IBM xlc 12.1
* lib/ftoastr.h (_GL_FLT_PREC_BOUND, _GL_DBL_PREC_BOUND)
(_GL_LDBL_PREC_BOUND): Make these macros, not enums, to work
around a compiler bug in IBM xlc 12.1.0.0: it complains
'"ftoastr.c", line 80.37: 1506-045 (S) Undeclared identifier
_GL_FLT_PREC_BOUND.'
2014-05-30 Kieran Colford
valgrind-tests: fixed misleading help message
* m4/valgrind-tests.m4: The help message generated by configure
implied that valgrind was disabled by default, which it wasn't.
Adjusted the help message using s/enable/disable/ to clarify.
2014-05-30 Ulrich Weigand
isfinite, isinf, isnan tests: fix for little-endian PowerPC
* tests/test-isfinite.c (test_isfinitel): Only manipulate the
first double of a PowerPC "double double" pair.
* tests/test-isinf.c (test_isinfl): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-isnanl.h (main): Likewise.
* tests/test-signbit.c (test_signbitl): Likewise.
2014-05-29 Paul Eggert
exclude-tests: port to AIX 7.1
* modules/exclude-tests (test_exclude_LDADD): Add $(LIBTHREAD).
Needed on AIX 7.1 with xlc V12.1, otherwise it won't link because
the regex code uses locks.
2014-05-28 Paul Eggert
pthread_sigmask, timer-time: use gl_THREADLIB only if needed
Without this fix, Emacs would sometimes call sigprocmask instead
of pthread_sigmask, which is a no-no in multithreaded applications.
Problem reported by Jorgen Schaefer in .
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
Suppress check for pthread_sigmask working without -lpthread if
the application always links with -lpthread. Do not link with
$LIBMULTITHREAD if gl_THREADLIB is not defined.
* m4/timer_time.m4 (gl_TIMER_TIME):
Require gl_THREADLIB only if it is defined. Do not append
$LIBMULTITHREAD to LIB_TIMER_TIME if gl_THREADLIB is not defined.
2014-05-27 Sylvain Beucler .
gnulib-tool: wget translations using --no-verbose rather than --quiet
This allows the user to see error messages if any (--quiet hides them)
* gnulib-tool: Invoke wget with --no-verbose, rather than --quiet.
2014-05-27 Sylvain Beucler
gnulib-tool: adjust translation wget to avoid a https redirection
Context: http://translationproject.org/latest/gnulib redirects to
https://translationproject.org/latest/gnulib/
Rationale: if the user falls back to wget, she doesn't have rsync and
is probably in a minimal build environment, where packages such as
'ca-certificates' are missing as well, resulting in a failed (and
difficult to detect since ignored) translation initial fetch.
Consequently let's avoid https if possible, and add the missing
trailing slash. This also avoids an unnecessary 302 redirection.
* gnulib-tool: Add trailing slash to gnulib URL.
2014-05-22 Pádraig Brady
getlogin_r-tests: check return value rather than errno
* tests/test-getlogin_r.c (main): As per POSIX we should be
verifying the return value from getlogin_r() rather than errno.
2014-05-22 Pádraig Brady
getlogin_r-tests: fix various issues in recent change
* tests/test-getlogin_r.c: Include required headers that were
missed in recent commit eec20b4e.
Also consistently check the errno rather than the return value from
getlogin_r as POSIX only specifies that non zero is returned on error.
* modules/getlogin_r-tests (configure.ac): Add the check for ttyname().
2014-05-21 Paul Eggert
fchdir: port 'open' and 'close' redefinitions to AIX 7.1
* lib/chown.c, lib/clean-temp.c, lib/copy-file.c, lib/execute.c:
* lib/fsusage.c, lib/gc-gnulib.c, lib/javacomp.c, lib/mountlist.c:
* lib/openat-proc.c, lib/pagealign_alloc.c, lib/progreloc.c:
* lib/spawn-pipe.c:
Do not #undef 'open' and 'close'. AIX 7 does '#define open open64'
and then 'int open64(const char *, int, ...);', which means the
declaration for 'open' gets lost if we later '#undef open'.
Discovered while building grep pretest 2.18.151-1c770 on AIX 7.1,
where the compilation reported the non-fatal error "In function
'openat_proc_name' ... warning: implicit declaration of function
'open'". In this case the error is relatively harmless, but in
other cases it might not be so minor.
2014-05-20 Paul Eggert
xalloc: don't potentially generate invalid code for xmemdup calls
* lib/xalloc.h (xmemdup): Do not mark with _GL_ATTRIBUTE_ALLOC, as
this function can initialize the newly-allocated storage with new
pointers, which means this function is not malloc-like. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56955
2014-05-19 Pádraig Brady
getlogin_r-tests: avoid false failure under sudo/ssh etc.
* tests/test-getlogin_r.c (main): Sync up with test-getlogin.c
changes from commit 97249cf29 to not depend on environment variables.
2014-05-18 Pádraig Brady
getlogin-tests: avoid false failure under cron
* tests/test-getlogin.c (main): Avoid verifying errnos from ttyname()
since that's not what's under test. Centos 6 was seen to return
EINVAL for ttyname() when run from cron.
2014-05-16 Jim Meyering
mbrtowc.m4: fix a comment typo
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Fix typo s/2/-2/ in
emitted documentation string.
2014-05-16 Paul Eggert
mbrlen, mbrtowc: fix bug with empty input
* lib/mbrtowc.c (rpl_mbrtowc) [MBRTOWC_EMPTY_INPUT_BUG]: Fix the bug.
* m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): New macro. It's not used,
so this is mainly for documentation.
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): New macro.
(gl_FUNC_MBRTOWC): Use it.
* tests/test-mbrtowc.c (main): Test for the bug.
2014-05-15 Paul Eggert
doc: document mbrtowc and mbrlen problem with empty input
* doc/posix-functions/mbrlen.texi (mbrlen):
* doc/posix-functions/mbrtowc.texi (mbrtowc):
Document portability problem when the input string is empty. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=16950
doc: document exec* = spawn+exit bug with non-Cygwin Windows platforms
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/bug-grep/2014-05/msg00118.html
* doc/posix-functions/execl.texi (execl):
* doc/posix-functions/execle.texi (execle):
* doc/posix-functions/execlp.texi (execlp):
* doc/posix-functions/execv.texi (execv):
* doc/posix-functions/execve.texi (execve):
* doc/posix-functions/execvp.texi (execvp):
Mention spawn+exit problem on non-Cygwin Windows platforms.
2014-05-14 Guilherme de Almeida Suckevicz
getlogin-tests: avoid false failure under sudo/ssh etc.
* modules/getlogin-tests (configure.ac): Check for ttyname().
* tests/test-getlogin.c (main): Don't depend on environment variables
to correlate with getlogin(), since sudo and ssh etc. can tamper
with the LOGNAME and USER env vars. Instead lookup the name from
the uid associated with the stdin tty.
2014-05-11 Paul Eggert
mbsstr, quotearg, xstrtol: pacify IRIX 6.5 cc
These were found when building the latest grep snapshot on IRIX 6.5.
* lib/mbsstr.c (knuth_morris_pratt_multibyte): Break "a=b=c;" into
"b=c; a=b;", since IRIX 6.5 cc complains about the former if b is
never used later.
* lib/quotearg.c (quoting_options_from_style):
* lib/xstrtol.c (__xstrtol):
Use enum instead of 0, to pacify IRIX 6.5 cc.
2014-04-18 Pádraig Brady
gitlog-to-changelog: revert inclusion of git-log-fix file
* build-aux/git-log-fix: Delete dummy file.
* modules/gitlog-to-changelog: Don't reference (overwrite)
the project specific git-log-fix file.
2014-04-18 Assaf Gordon
maint.mk: Relax the copyright check to cater for non FSF projects
* top/maint.mk (sc_copyright_check): Relax the check for $PACKAGE.texi
to not require the "Free" suffix after the copyright years.
2014-04-18 Natanael Copa
physmem: use sysinfo on linux-gnu if _SC_PHYS_PAGES unavailable
* lib/physmem.c (physmem_total): Some systems like musl libc don't yet
support _SC_PHYS_PAGES. Use the linux syscall sysinfo as fallback
if _SC_PHYS_PAGES or _SC_PAGESIZE fails.
(physmem_available): Likewise for _SC_AVPHYS_PAGES.
2014-04-18 Paul Eggert
exclude: port to strict C99
Strict C does not allow converting a function pointer to void *
and vice versa. Pass a pointer to a function pointer instead.
* lib/exclude.c (add_exclude_file):
Pass the address of the function pointer.
(call_addfn): And deference the address here, to match.
2014-04-17 Paul Eggert
regex: do not depend on malloc-gnu
* modules/regex (Depends-on): Remove malloc-gnu.
It's no longer needed, because of the 2012-12-29 patch
"regex: port to hosts where malloc (0) == NULL".
Reported by Nathan Kennedy in:
http://lists.gnu.org/archive/html/bug-gnulib/2014-04/msg00026.html
2014-04-16 Assaf Gordon
expl: avoid incorrect expl(small_value) on OpenBSD 5.4
* m4/expl.m4 (gl_FUNC_EXPL): Add a check for this condition.
* doc/posix-functions/expl.texi: Mention the workaround.
2014-04-12 Paul Eggert
xalloc: allow x2nrealloc (P, PN, S) where P && !*PN
* lib/xalloc.h (x2nrealloc): Extend slightly, to allow the current
size to be zero even when the pointer is nonnull. This
accommodates the use case where P is malloc (0) and *PN is 0 on a
host where malloc (0) yields nonnull.
2014-04-09 Eric Blake
fts: avoid unnecessary strlen calls
* lib/fts.c (_D_EXACT_NAMLEN): Restore definition when needed.
2014-04-09 Paul Eggert
fts: avoid unnecessary strlen calls
* lib/fts.c (fts_build): Go back to using _D_EXECT_NAMLEN
when that can be faster than strlen.
2014-03-26 Bernhard Voelker
fts: avoid unnecessary strlen calls
* lib/fts.c (_D_EXACT_NAMLEN): Remove macro.
(fts_build): Store the length of the dp->d_name entry in a local variable
instead of calling strlen() several times via the above, removed macro.
For 'rm -rf some-dir' with e.g. 1M directory entries, this speeds up the
run by ~4%, yet this reduces the execution time by about a third if run
via "ltrace -c rm -rf some-dir".
2014-03-27 Paul Eggert
obstack: Remove ancient NeXTSTEP gcc support conditional
This change will ease merging with glibc. The "#if ... __NEXT__"
causes a warning with -Wundef which glibc now enables by default.
Problem reported by Will Newton in
.
glibc now uses __extension__ for GCC 2.8 or later,
so go with that.
* lib/obstack.h (__extension__):
2014-03-27 Paul Eggert
obstack: merge with glibc changes
* lib/obstack.c, lib/obstack.h: Merge from glibc.
This is mostly indenting and commentary changes.
Instances of 'register' have been removed.
2014-03-26 Bernhard Voelker
strftime: wrap macros in "do {...} while(0)"
* lib/strftime.c (DO_NUMBER): Wrap multi-statement code block of
this macro in "do {...} while(0)" to prevent false use as a
single statement, e.g., in an un-braced "{}" else-block.
(DO_SIGNED_NUMBER, DO_TZ_OFFSET, DO_NUMBER_SPACEPAD): Likewise.
(strftime_case_): Remove 'else' after 'goto' - which was the
only non-fatal, un-braced use of one of the above macros.
Spotted by coverity (NESTING_INDENT_MISMATCH).
2014-03-26 Bernhard Voelker
modechange: avoid memory leaks for invalid octal modes
* lib/modechange.c (mode_compile): During the parsing of
notations like +40, free the 'mc' buffer for invalid mode
strings like +17777 (greater than the maximum octal mode),
=18 (bad octal mode characters) or u=1 ('affected' with
octal modes).
Reproducer, e.g.:
$ valgrind --leak-check=full chmod +17777 file
Introduced via the 2012-03-09 commit, 4730c3e3, "modechange:
add notations +40, 00440, etc.".
Spotted by coverity (RESOURCE_LEAK).
2014-03-24 Paul Eggert
gitlog-to-changelog: include a dummy git-log-fix file
Problem reported by Nathan Stratton Treadway in:
http://lists.gnu.org/archive/html/bug-tar/2014-03/msg00082.html
* build-aux/git-log-fix: New file.
2014-03-13 Jim Meyering
gitlog-to-changelog: also include the file, git-log-fix
* modules/gitlog-to-changelog (Files): Add git-log-fix.
Reported by Assaf Gordon.
2014-03-06 Paul Eggert
regex: port to OS X 10.8.5 en_US.UTF-8 locale
This fixes a bug when ignoring case and when comparing the
titlecase letter 'Lj' (U+01C8 LATIN CAPITAL LETTER L WITH SMALL
LETTER J) to the corresponding uppercase letter 'LJ' (U+01C7 LATIN
CAPITAL LETTER LJ). In the OS X 10.8.5 en_US.UTF-8 locale, the
titlecase letter is neither lowercase nor uppercase, but
uppercasing the titlecase letter (via towupper) yields the
uppercase letter, so the two letters should match when ignoring case.
Problem reported by Jim Meyering in .
* lib/regex_internal.c (build_wcs_upper_buffer, build_upper_buffer):
Don't test whether a character is lowercase before uppercasing it.
2014-03-04 Kevin Cernekee
stdint, read-file: fix missing SIZE_MAX on Android (tiny change)
This is basically one of the options Bruno Haible proposed in:
http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00282.html
* lib/sys_types.in.h (_GL_INCLUDING_UNISTD_H): New macro.
* lib/stdint.in.h: Use it.
* modules/stdint (Depends-on): Add sys_types.
2014-02-26 Pádraig Brady
parse-datetime: fix crash or infloop in TZ="" parsing
* lib/parse-datetime.y (parse_datetime): Break out of the
TZ="" parsing loop once the second significant " is found.
Also skip over any subsequent whitespace to be consistent
with the non TZ= case.
* tests/test-parse-datetime.c: Add test cases for TZ="" parsing.
2014-02-26 Paul Eggert
savedir: new symbol for fast-read version
* lib/savedir.h (SAVEDIR_SORT_FASTREAD): New symbol, for programs
like GNU cp that want to use SAVEDIR_SORT_INODE if available,
SAVEDIR_SORT_NONE otherwise. Problem reported by Bernhard Voelker in:
http://lists.gnu.org/archive/html/coreutils/2014-02/msg00037.html
2014-02-25 Paul Eggert
unistd: port readlink to Mac OS X 10.3.9
* lib/unistd.in.h (_GL_INCLUDING_UNISTD_H): New macro, to work
around self-include problem in Mac OS X 10.3.9 when combined with
readlink module. Problem reported by Klaus Zietler in
.
2014-02-23 Paul Eggert
diffseq: remove TOO_EXPENSIVE heuristic
Problem with diffutils reported by Vincent Lefevre in
. The simplest solution is to remove
the TOO_EXPENSIVE heuristic that I added to GNU diff in 1993.
Although appropriate for circa-1993 hardware, these days the heuristic
seems to be more trouble than it's worth.
* lib/diffseq.h: Modernize citations.
(struct context): Remove member too_expensive.
All uses changed.
(struct partition): Remove members lo_minimal, hi_minimal.
All uses changed.
(diag, compareseq): Remove arg find_minimal. All uses changed.
(diag): Remove the TOO_EXPENSIVE heuristic that I added back in
1993 to make 'diff' run faster (but not as well) on large inputs.
These days, computers are fast enough that it's typically better
to run slower but more accurately.
* lib/fstrcmp.c: Remove duplicate comment.
* lib/fstrcmp.c (strcmp_bounded):
* lib/git-merge-changelog.c (compute_differences):
Adjust to diffseq.h changes.
* NEWS: Document the change.
savedir: simplify by using stpcpy
* lib/savedir.c (direntry_t): Remove size member. All uses removed.
(streamsavedir): Use stpcpy instead.
* modules/savedir (Depends-on): Add stpcpy.
2014-02-21 Pádraig Brady