Branch :
2025-10-23 Bruno Haible <bruno@clisp.org>
stdioext: Add support for OpenBSD >= 7.8.
* lib/stdio-impl.h (fp_): Separate definitions for OpenBSD from those
for Android. Add definition for OpenBSD >= 7.8.
* lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization,
update_fpos_cache, rpl_fflush): Don't test for __OpenBSD__, since
OpenBSD <= 7.7 is covered by the __sferror test and OpenBSD >= 7.8 does
not need the workarounds.
* lib/fseeko.c (fseeko): Likewise.
* lib/fpurge.c (fpurge): Likewise.
2025-10-23 Bruno Haible <bruno@clisp.org>
stdioext: Revert unneeded changes in 2025-07-20 commit.
* lib/fpending.c (__fpending): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __fpending.
* lib/freadahead.c (freadahead): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __freadahead.
* lib/freading.c (freading): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __freading.
* lib/freadptr.c (freadptr): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __freadptr.
* lib/freadseek.c (freadptrinc): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __freadptrinc.
* lib/fseterr.c (fseterr): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __fseterr.
* lib/fwriting.c (fwriting): Don't test for __OpenBSD__, since
OpenBSD >= 7.6 already has __fwriting.
2025-10-22 Collin Funk <collin.funk1@gmail.com>
doc: Update gmtime_r documentation for OpenBSD 7.8.
* doc/posix-functions/gmtime_r.texi: Mention that only OpenBSD 7.7 and
earlier use GMT instead of UTC.
2025-10-21 Collin Funk <collin.funk1@gmail.com>
fenv-rounding tests: Avoid test failure on Android.
* tests/test-fenv-round.c (test_towardzero, test_upward)
(test_downward): Disable tests that are known to fail.
* doc/posix-functions/fesetround.texi: Update list of platforms.
snan tests: Avoid test failure on Android.
* tests/test-snan-1.c (main): Disable test that is known to fail.
2025-10-21 Bruno Haible <bruno@clisp.org>
fts: Attempt to silence Coverity Scan.
* lib/fts.c (fts_safe_changedir): Add an assertion.
2025-10-21 Bruno Haible <bruno@clisp.org>
glob: Fix a memory leak.
Found by Coverity.
* lib/glob.c (__glob): Add scratch_buffer_free invocation, to match
scratch_buffer_init invocation.
2025-10-20 Bruno Haible <bruno@clisp.org>
glob: Add support for Android.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00054.html>.
* m4/glob.m4 (gl_GLOB): On Android, skip a test that assumes that
/bin/sh exists. Update cross-compilation guess.
* tests/test-glob.c (main): On Android, skip a test that assumes that
/bin/sh exists.
* doc/posix-functions/glob.texi: Mention also Android.
2025-10-20 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Trivial simplification.
* gnulib-tool.sh (func_exists_local_module): Remove redundant semicolon.
2025-10-17 Collin Funk <collin.funk1@gmail.com>
savedir tests: Check the length of the file names.
Suggested by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00049.html>.
* tests/test-savedir.c (test_savedir_sort_none)
(test_savedir_sort_name): Check that the file names are only one
character long.
savedir: Add tests.
* tests/test-savedir.c: New file.
* modules/savedir-tests: Likewise.
2025-10-15 Bruno Haible <bruno@clisp.org>
glob tests: Avoid a test failure on native Windows.
* tests/test-glob.c (main): Disable the new test cases on native
Windows.
2025-10-15 Bruno Haible <bruno@clisp.org>
glob: Fix test failure on Cygwin.
* m4/glob.m4 (gl_GLOB): Add a second test case.
* doc/posix-functions/glob.texi: Mention Cygwin.
2025-10-15 Bruno Haible <bruno@clisp.org>
glob tests: Improve maintainability.
* tests/test-glob.c (main): Make the second added test independent from
the first one.
2025-10-14 Collin Funk <collin.funk1@gmail.com>
getdelim: Avoid the symbol __getdelim with ASAN (regr. 2025-10-13).
* lib/stdio.in.h (rpl_getdelim)
[__GLIBC__ >= 2 && !__ADDRESS_SANITIZER__]: Don't define to __getdelim
so that ___interceptor_getdelim doesn't override our symbol.
glob: Ensure --enable-cross-guesses is obeyed (regr. yesterday).
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00041.html>.
* m4/glob.m4 (gl_GLOB): Set gl_cv_glob_overflows_stack on platforms
other than glibc.
2025-10-13 Collin Funk <collin.funk1@gmail.com>
glob tests: Add a test for the glibc bug.
* tests/test-glob.c (main): Add a test case for all slash characters and
a test case for many slash characters following a wildcard character.
glob: Prevent a stack overflow with many slashes.
* lib/glob.c (__glob): Strip trailing slashes before making the
recursive call.
* m4/glob.m4 (gl_GLOB): Check for the glibc bug.
* doc/posix-functions/glob.texi: Mention the bug.
2025-10-13 Bruno Haible <bruno@clisp.org>
getline: Fix compilation error in C++ mode (regression 2025-10-10).
* lib/stdio.in.h (getdelim): On glibc, define __getdelim instead of
rpl_getdelim.
(getline): In C++ mode, define getline as an inline function instead of
as a macro.
* lib/getdelim.c (getdelim): On glibc, don't test whether fp is NULL.
2025-10-12 Bruno Haible <bruno@clisp.org>
stdcountof-h tests: Fix link error on MSVC 14 (regression 2025-06-07).
* tests/test-stdcountof-h.c (a, b, c): Define as variables on MSVC.
2025-10-10 Collin Funk <collin.funk1@gmail.com>
getline tests: Add a test for the glibc bug.
* tests/test-getline.c (main): Check that the buffer is terminated with
a NUL character when the first character read is EOF.
getline: Work around a glibc bug.
* m4/getline.m4 (gl_FUNC_GETLINE): Check that the buffer is terminated
with a NUL character when the first character read is EOF. Guess that
the function does not work on glibc.
* doc/posix-functions/getline.texi: Mention the bug.
getdelim tests: Add a test for the glibc bug.
* tests/test-getdelim.c (main): Check that the buffer is terminated with
a NUL character when the first character read is EOF.
getdelim: Work around a glibc bug.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Check that the buffer is terminated
with a NUL character when the first character read is EOF. Guess that
the function does not work on glibc.
* doc/posix-functions/getdelim.texi: Mention the bug.
2025-10-08 Bruno Haible <bruno@clisp.org>
stdcountof-h tests: Test more kinds of string literals.
* tests/test-stdcountof-h.c (test_func): Test also wide string literals
and Unicode string literals.
2025-10-08 Alejandro Colomar <alx@kernel.org>
stdcountof-h tests: Test a string literal.
* tests/test-countof-h.c (test_func): Test a string literal.
2025-10-08 Bruno Haible <bruno@clisp.org>
stdcountof-h: Add support for string literal arguments in C++ mode.
Reported by Alejandro Colomar <alx@kernel.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00010.html>.
* lib/stdcountof.in.h (_gl_array_type_test): Add a partial instantiation
for string literals.
2025-10-03 Bruno Haible <bruno@clisp.org>
localename-unsafe: Fix handling of yue-Hans locale on macOS.
Reported by Grisha Levit <grishalevit@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00002.html>.
* lib/localename-unsafe.c (langtag_entry): Adjust array dimensions of
elements.
2025-10-03 Bruno Haible <bruno@clisp.org>
unimetadata/base: Add tests.
* tests/unimetadata/test-unimetadata-h.c: New file.
* modules/unimetadata/base-tests: New file.
* tests/unimetadata/test-unimetadata-h-c++.cc: New file.
* modules/unimetadata/base-c++-tests: New file.
unicase/base: Add tests.
* tests/unicase/test-unicase-h.c: New file.
* modules/unicase/base-tests: New file.
* tests/unicase/test-unicase-h-c++.cc: New file.
* modules/unicase/base-c++-tests: New file.
uninorm/base: Add tests.
* tests/uninorm/test-uninorm-h.c: New file.
* modules/uninorm/base-tests: New file.
* tests/uninorm/test-uninorm-h-c++.cc: New file.
* modules/uninorm/base-c++-tests: New file.
unilbrk/base: Add tests.
* tests/unilbrk/test-unilbrk-h.c: New file.
* modules/unilbrk/base-tests: New file.
* tests/unilbrk/test-unilbrk-h-c++.cc: New file.
* modules/unilbrk/base-c++-tests: New file.
uniwbrk/base: Add tests.
* tests/uniwbrk/test-uniwbrk-h.c: New file.
* modules/uniwbrk/base-tests: New file.
* tests/uniwbrk/test-uniwbrk-h-c++.cc: New file.
* modules/uniwbrk/base-c++-tests: New file.
unigbrk/base: Add tests.
* tests/unigbrk/test-unigbrk-h.c: New file.
* modules/unigbrk/base-tests: New file.
* tests/unigbrk/test-unigbrk-h-c++.cc: New file.
* modules/unigbrk/base-c++-tests: New file.
uniwidth/base: Add tests.
* tests/uniwidth/test-uniwidth-h.c: New file.
* modules/uniwidth/base-tests: New file.
* tests/uniwidth/test-uniwidth-h-c++.cc: New file.
* modules/uniwidth/base-c++-tests: New file.
unictype/base: Add tests.
* tests/unictype/test-unictype-h.c: New file.
* modules/unictype/base-tests: New file.
* tests/unictype/test-unictype-h-c++.cc: New file.
* modules/unictype/base-c++-tests: New file.
uniname/base: Add tests.
* tests/uniname/test-uniname-h.c: New file.
* modules/uniname/base-tests: New file.
* tests/uniname/test-uniname-h-c++.cc: New file.
* modules/uniname/base-c++-tests: New file.
unistdio/base: Add tests.
* tests/unistdio/test-unistdio-h.c: New file.
* modules/unistdio/base-tests: New file.
* tests/unistdio/test-unistdio-h-c++.cc: New file.
* modules/unistdio/base-c++-tests: New file.
uniconv/base: Add tests.
* tests/uniconv/test-uniconv-h.c: New file.
* modules/uniconv/base-tests: New file.
* tests/uniconv/test-uniconv-h-c++.cc: New file.
* modules/uniconv/base-c++-tests: New file.
unistr/base: Add tests.
* tests/unistr/test-unistr-h.c: New file.
* modules/unistr/base-tests: New file.
* tests/unistr/test-unistr-h-c++.cc: New file.
* modules/unistr/base-c++-tests: New file.
2025-10-03 Bruno Haible <bruno@clisp.org>
unistr, unigbrk: Fix compilation error in C++ mode (regr. 2025-02-09).
Reported by Ryan Carsten Schmidt <gnulib@ryandesign.com>
at <https://savannah.gnu.org/bugs/?67576>.
* lib/unistr.in.h (u*_check, u*_chr, u*_next, u*_prev, u*_strchr,
u*_strrchr, u*_strpbrk, u*_strstr): Define C++ templates outside of
'extern "C"' block.
* lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Likewise.
2025-09-28 Collin Funk <collin.funk1@gmail.com>
xsetenv: Revert the previous change.
* modules/xsetenv (Description): Restore the description of unsetenv.
xsetenv: Remove unnecessary text from module description.
* modules/xsetenv (Description): Remove mention of the unsetenv function
which is not provided by this module.
2025-09-24 Bruno Haible <bruno@clisp.org>
Update to Unicode 17.0.0.
* lib/gen-uni-tables.c (is_property_alphabetic): Add three
YANGQIN SIGNs.
(UC_JOINING_GROUP_THIN_NOON): New enum item.
(fill_arabicshaping, joining_group_as_c_identifier): Handle
UC_JOINING_GROUP_THIN_NOON.
(LBP_*): Split LBP_SA into LBP_SA1 and LBP_SA2.
(LBP_HH, LBP_SA): New enum items.
(get_lbp): Use them. Update such that unilbrk/lbrkprop.txt comes out as
expected.
(debug_output_lbp): Handle LBP_HH. Print either LBP_SA1, LBP_SA2 as
LBP_SA.
(fill_org_lbp, debug_output_org_lbp): Handle LBP_HH.
(lbp_value_to_string): Handle LBP_HH. Handle LBP_SA1, LBP_SA2 instead of
LBP_SA.
(output_lbrk_rules_as_tables): Update for LBP_HH change. Update rules
LBP12a, LB21 as specified by
https://www.unicode.org/reports/tr14/tr14-55.html.
(get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
* lib/unictype.in.h (UC_JOINING_GROUP_THIN_NOON): New enum item.
* lib/unictype/joininggroup_byname.gperf: Handle it.
* lib/unictype/joininggroup_name.h: Likewise.
* lib/unilbrk/lbrktables.h (LBP_*): Split LBP_SA into LBP_SA1 and
LBP_SA2.
(LBP_HH): New enum item.
(unilbrk_table): Update bounds.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Use LBP_HL_HY instead of LBP_HL_BA. Use LBP_SA1 instead of LBP_SA. Treat
LBP_SA2 like LBP_CM. Update rules LB20a and LB21a, as specified by
https://www.unicode.org/reports/tr14/tr14-55.html.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* tests/unigbrk/test-u8-grapheme-breaks.c (main): Use U+2B50 instead of
U+2605, because U+2605 no longer is an Extended_Pictographic character.
* tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u8-grapheme-next.c (main): Likewise.
* tests/unigbrk/test-u16-grapheme-next.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-next.c (main): Likewise.
* tests/unigbrk/test-u8-grapheme-prev.c (main): Likewise.
* tests/unigbrk/test-u16-grapheme-prev.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-prev.c (main): Likewise.
* tests/uniwidth/test-uc_width2.sh: Update expected test result.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* tests/unilbrk/LineBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2025-09-24 Bruno Haible <bruno@clisp.org>
unilbrk: Fix handling of future emojis in rule LB30b.
* lib/unilbrk/lbrktables.h (LBP_ID): Renamed from LBP_ID1.
(LBP_EBF): Renamed from LBP_ID2.
* lib/gen-uni-tables.c (LBP_ID): Renamed from LBP_ID1.
(LBP_EBF): Renamed from LBP_ID2.
(get_lbp): Update. Move is_property_extended_pictographic invocation.
(debug_output_org_lbp): Augment the information from the LineBreak.txt
file with the Extended_Pictographic property. Print the LBP_ID and
LBP_EBF values distinctly.
(fill_org_lbp): Assign value LBP_EBF to all unassigned
Extended_Pictographic characters.
(debug_output_org_lbp): Handle LBP_EBF.
(lbp_value_to_string): Update.
(output_lbrk_rules_as_tables): Treat LBP_EBF like LBP_EB instead of like
LBP_ID.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Update.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/lbrkprop2.h: Regenerated.
* lib/unilbrk/lbrktables.c: Regenerated.
* tests/unilbrk/test-uc-possible-linebreaks.c (main): Skip test cases
that contain the U+1F8FF character.
* modules/unilbrk/*-linebreaks: Bump required libunistring version.
2025-09-23 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Fix compilation error (regression 2025-09-17).
* lib/gen-uni-tables.c (streq, memeq): Move definitions before their
first use.
2025-09-23 Bruno Haible <bruno@clisp.org>
Clarify link dependency towards libgcrypt or OpenSSL's libcrypto.
* modules/crypto/gc-arcfour (Link): New section.
* modules/crypto/gc-arctwo (Link): Likewise.
* modules/crypto/gc-camellia (Link): Likewise.
* modules/crypto/gc-des (Link): Likewise.
* modules/crypto/gc-hmac-md5 (Link): Likewise.
* modules/crypto/gc-hmac-sha1 (Link): Likewise.
* modules/crypto/gc-hmac-sha256 (Link): Likewise.
* modules/crypto/gc-hmac-sha512 (Link): Likewise.
* modules/crypto/gc-md2 (Link): Likewise.
* modules/crypto/gc-md4 (Link): Likewise.
* modules/crypto/gc-md5 (Link): Likewise.
* modules/crypto/gc-pbkdf2 (Link): Likewise.
* modules/crypto/gc-pbkdf2-sha1 (Link): Likewise.
* modules/crypto/gc-rijndael (Link): Likewise.
* modules/crypto/gc-sha1 (Link): Likewise.
* modules/crypto/gc-sha256 (Link): Likewise.
* modules/crypto/gc-sha512 (Link): Likewise.
* modules/crypto/gc-sm3 (Link): Likewise.
* modules/crypto/gc-random (Link): Add $(LIB_CRYPTO).
2025-09-22 Collin Funk <collin.funk1@gmail.com>
crypto/gc-arctwo-tests: Fix link error when OpenSSL is enabled.
* modules/crypto/gc (Link): Add $(LIB_CRYPTO).
* modules/crypto/gc-arctwo-tests (Makefile.am): Link the test program to
@LIB_CRYPTO@.
2025-09-22 Bruno Haible <bruno@clisp.org>
fchownat: Revert my earlier change today entirely.
* doc/posix-functions/fchownat.texi: Revert last change.
2025-09-22 Paul Eggert <eggert@cs.ucla.edu>
fchownat: improve on test failure fix
* lib/fchownat.c (rpl_fchownat):
Clear the flag only if the trailing slash check needs to be made.
Do this before checking for the nofollow bug, to
avoid the need for the fork+chdir+lchown dance in that case.
Move the empty-filename check earlier, so that its file[0] check
can more easily be combined with the trailing slash check.
* m4/chown.m4, m4/fchownat.m4, modules/fchownat:
Revert most recent change.
2025-09-22 Bruno Haible <bruno@clisp.org>
fchownat: Fix test failure on OpenBSD and Cygwin 2.9 (regr. 2025-09-20).
* doc/posix-functions/fchownat.texi: Document that the dereferencing bug
also affects OpenBSD and Cygwin 2.9.
* m4/chown.m4 (gl_FUNC_CHOWN_CTIME): New macro, extracted from
gl_FUNC_CHOWN.
(gl_FUNC_CHOWN): Invoke it.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Guess that a platform
that has the chown ctime bug also has the fchownat AT_SYMLINK_NOFOLLOW
bug.
* modules/fchownat (Files): Add m4/chown.m4.
2025-09-21 Paul Eggert <eggert@cs.ucla.edu>
fchownat: fix recently introduced flag typo
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00282.html
* lib/fchownat.c (rpl_fchownat): Fix typo by passing
our flag to fstatat.
2025-09-21 Bruno Haible <bruno@clisp.org>
pthread-once: Improve configuration.
* m4/pthread-once.m4 (gl_PTHREAD_ONCE): Use a configure test to
determine whether linking with $(LIBPMULTITHREAD) is necessary.
2025-09-21 Paul Eggert <eggert@cs.ucla.edu>
tests: avoid grep in init.sh
* tests/init.sh (warn_, gl_shell_test_script_):
Avoid the use of grep, as that introduces an unwanted dependency.
On older systems like Solaris there can be many greps and they
can be buggy, so it’s better to not rely on them in a central
part of the test harness.
tests: avoid test failure due to rmdir race
* tests/init.sh (remove_tmp_): If the rm -rf fails, wait a second
and try again. This works around a problem I observed on Solaris
10 on a circa 2001 Sun Fire 280R with a single 750 MHz UltraSPARC
III, where a subprocess had not yet exited by the time the test
script attempted to remove the subprocess’s working directory.
This can happen, for example, if the process A in the shell
command ‘A | B’ closes stdout, checks that the close succeeded
-- a necessary check if stdout is NFS, on Solaris anyway --
and uses that check to affect its exit status.
In this situation, B can read end-of-file from its standard input
and exit before A exits, and then the shell, which waits only for B,
can then attempt to remove A’s working directory during cleanup.
This is not a problem on GNU/Linux where one can remove a
process’s working directory, but it is a problem on Solaris 10
which does not allow this. POSIX allows the Solaris 10 behavior.
2025-09-21 Bruno Haible <bruno@clisp.org>
doc: Update for Android API level 37.
* doc/glibc-functions/sched_getattr.texi: Document that the function is
missing on Android API level <= 36.
* doc/glibc-functions/sched_setattr.texi: Likewise.
2025-09-21 Bruno Haible <bruno@clisp.org>
doc: Update for Android API level 36.
* doc/glibc-functions/pthread_getaffinity_np.texi: Document that the
function is missing on Android API level <= 35.
* doc/glibc-functions/pthread_setaffinity_np.texi: Likewise.
2025-09-21 Bruno Haible <bruno@clisp.org>
chown, lchown: Fix regression on Cygwin 2.9.0 (regression today).
* m4/chown.m4 (AC_FUNC_CHOWN): Restore the previous configure-time test
on OpenBSD and Cygwin platforms.
* doc/posix-functions/chown.texi: Update platforms list.
2025-09-21 Bruno Haible <bruno@clisp.org>
lchown: Fix compilation error on macOS (regression today).
* lib/lchown.c: Include stat-time.h.
2025-09-21 Paul Eggert <eggert@cs.ucla.edu>
chown: simplify CHOWN_CHANGE_TIME_BUG checking
* m4/chown.m4 (AC_FUNC_CHOWN): Just use $host_os when checking for
CHOWN_CHANGE_TIME_BUG. This should be good enough for currently
supported Gnulib targets.
fchownat: fix security races and other bugs
This fixes some unlikely security races,
where our “no-op” chmod undid some other process’s chmod.
Ironically this bug occurred on OpenBSD, our most paranoid target.
This patch also fixes some EOVERFLOW bugs,
along with a performance bug and a CHOWN_CHANGE_TIME_BUG with fchownat.
* lib/chown.c, lib/fchownat.c, lib/lchown.c:
Remove unnecessary inconsistencies.
Include stat-time.h.
(CHOWN_CHANGE_TIME_BUG, CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE)
(CHOWN_MODIFIES_SYMLINK, CHOWN_TRAILING_SLASH_BUG):
Default to 0, and prefer ‘if (...)’ to ‘#ifdef ...’.
(utimensat) [!HAVE_UTIMENSAT]: Default to a no-op.
(rpl_chown, rpl_fchownat, rpl_lchown):
Prefer ‘if (...)’ to ‘#ifdef ...’.
Statically, call the stat-like and chown-like functions just once.
Do not fail if the stat-like function fails with EOVERFLOW,
if existence is all we care about.
Use utimensat to update ctime, instead of a chmod-like function.
* lib/fchownat.c (rpl_fchownat): Defend against OpenBSD’s
CHOWN_CHANGE_TIME_BUG. This bug in rpl_fchownat was exposed by
yesterday’s fix that caused rpl_fchownat to call fchownat instead
of using the tricky old fork/chdir business.
* m4/chown.m4 (gl_FUNC_CHOWN):
Check for utimensat if the ctime bug is present.
* modules/chown, modules/lchown, modules/fchownat:
(Depends-on): Add stat-time.
2025-09-21 Bruno Haible <bruno@clisp.org>
pthread-once: Fix link error on glibc < 2.34 systems (regr. yesterday).
* m4/pthread-once.m4 (gl_PTHREAD_ONCE): Use $LIBPMULTITHREAD also on
glibc systems.
2025-09-20 Collin Funk <collin.funk1@gmail.com>
sig2str: Port to Android API level 36.
* m4/sig2str.m4 (gl_FUNC_SIG2STR): Use gl_CHECK_FUNCS_ANDROID to check
for sig2str and str2sig instead of AC_CHECK_FUNCS.
* doc/posix-functions/sig2str.texi: Document that the function is
missing on Android API 35 and lower.
* doc/posix-functions/str2sig.texi: Likewise.
qsort_r: Port to Android API level 36.
* m4/qsort_r.m4 (gl_FUNC_QSORT_R): Use gl_CHECK_FUNCS_ANDROID to check
for qsort_r instead of AC_CHECK_FUNCS_ONCE.
* doc/glibc-functions/qsort_r.texi: Document that the function is
missing on Android API 35 and lower.
lchmod: Port to Android API level 36.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Use gl_CHECK_FUNCS_ANDROID to check for
lchmod instead of AC_CHECK_FUNCS_ONCE.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Likewise.
* doc/glibc-functions/lchmod.texi: Document that the function is missing
on Android API 35 and lower.
2025-09-20 Bruno Haible <bruno@clisp.org>
pthread-once: Reduce link dependencies.
Linking with -lpthread is not needed on musl libc, macOS, NetBSD,
Solaris, Cygwin, Haiku, Android.
Reported by Michael Osipov <michael.osipov@innomotics.com> and
Tijl Coosemans <tijl@FreeBSD.org> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-09/msg00019.html>.
* m4/pthread-once.m4 (gl_PTHREAD_ONCE): Require gl_PTHREADLIB. Set
PTHREAD_ONCE_LIB.
* modules/pthread-once (Link): Link with $(PTHREAD_ONCE_LIB) instead of
$(LIBPMULTITHREAD).
* modules/pthread-once-tests (Makefile.am): Update accordingly.
2025-09-20 Bruno Haible <bruno@clisp.org>
nl_langinfo: Work around nl_langinfo multithread-safety bug on macOS 26.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Set NL_LANGINFO_MTSAFE to 0
on macOS.
* lib/nl_langinfo.c (ITEMS): Define appropriately on macOS.
* doc/posix-functions/nl_langinfo.texi: Document the macOS bug.
2025-09-20 Paul Eggert <eggert@cs.ucla.edu>
fchownat: fix unlikely EOVERFLOW bug
* lib/fchownat.c (rpl_fchownat) [CHOWN_TRAILING_SLASH_BUG]:
Do the right thing if fstatat fails with EOVERFLOW.
This matters only on obsolete platforms like Solaris 9,
but it’s easy to do it right. Simplify neighboring code.
fchownat: fix missing HAVE_FCHOWNAT
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT): Use AC_CHECK_FUNCS instead of
AC_CHECK_FUNC, so that we define HAVE_FCHOWNAT if fchownat
exists. lib/fchownat.c uses HAVE_FCHOWNAT in some cases.
fchownat: depend on fstatat
* modules/fchownat (Depends-on): Add fstatat.
This fixes a dependency bug I introduced on 2022-03-09
when I made the statat module obsolute.
2025-09-19 Bruno Haible <bruno@clisp.org>
stringeq: Fix use in C++ mode.
* lib/string.in.h (memeq, streq): Define with "C" linkage.
2025-09-19 Bruno Haible <bruno@clisp.org>
map-c++-tests: Fix compilation error (regression 2025-09-17).
* tests/test-map-c++.cc (streq): Remove function.
* modules/map-c++-tests (Depends-on): Add stringeq.
2025-09-18 Bruno Haible <bruno@clisp.org>
stack-trace: Add support for Oracle DeveloperStudio cc.
* m4/stack-trace.m4 (gl_STACK_TRACE_EARLY): Use option
'-Wl,-export-dynamic' instead of '-rdynamic'.
2025-09-18 Pádraig Brady <P@draigBrady.com>
localcharset: fix macOS build
* lib/localcharset.c: s/ostreq/streq/ typo.
2025-09-17 Bruno Haible <bruno@clisp.org>
threadlib: Improve support for HP-UX.
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): Define _REENTRANT also on
HP-UX.
2025-09-17 Bruno Haible <bruno@clisp.org>
stringeq: Make use of Autoconf more reliable.
* m4/stringeq.m4: New file.
* modules/stringeq (Files): Add it.
(configure.ac): Don't set HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. Instead,
invoke gl_FUNC_STREQ and gl_FUNC_MEMEQ.
2025-09-17 Pádraig Brady <P@draigBrady.com>
cpu-supports: support checks on any architecture
* lib/cpu-supports.h (gcc_feature_to_glibc_hwcap): Define the
map for all architectures, because for example one can build
and detect and run x86_64 intrinsics in code built with -m32.
This should not add runtime overhead, as mentioned previously
the map resolves at compile time with standard optimizations.
2025-09-17 Pádraig Brady <P@draigBrady.com>
tests: support -ftrivial-auto-var-init
* tests/test-memset_explicit.c (do_secret_stuff): Mark stack variable
as not to be initialized with either zero or pattern on each invocation.
tests/test-explicit_bzero.c (do_secret_stuff): Likewise.
2025-09-17 Paul Eggert <eggert@cs.ucla.edu>
stringeq: port to platforms declaring memeq, streq
Work even if the system <string.h> declares memeq and streq.
Current standards allow systems to do that,
and we hope future systems will do it.
* lib/string.in.h (memeq) [HAVE_DECL_MEMEQ]: Do not define.
(streq) [HAVE_DECL_STREQ]: Do not define.
* m4/string_h.m4 (gl_STRING_H_DEFAULTS): Default HAVE_DECL_MEMEQ,
HAVE_DECL_STREQ.
* modules/string-h (string-h):
Substitute HAVE_DECL_MEMEQ, HAVE_DECL_STREQ.
* modules/stringeq (configure.ac):
Define HAVE_DECL_MEMEQ, HAVE_DECL_STREQ.
2025-09-17 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Fix module description (left-over from 2025-05-11).
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00223.html>.
* modules/gen-uni-tables (Depends-on): Remove str_startswith,
str_endswith.
2025-09-17 Bruno Haible <bruno@clisp.org>
Add copyright notices.
* lib/string.c: Add copyright notice. Use <string.h>, not "string.h".
2025-09-17 Paul Eggert <eggert@cs.ucla.edu>
stringeq: diagnose for streq instead of STREQ
* top/maint.mk (sc_prohibit_strcmp): In diagnostic, suggest streq
instead of STREQ/STRNEQ.
stringeq: prefer streq to strcmp in other modules
* lib/acl-internal.c, lib/argmatch.c, lib/argp-help.c:
* lib/argp-parse.c, lib/bcp47.c, lib/c32_get_mapping.c:
* lib/c32_get_type_test.c, lib/concat-filename.c:
* lib/cpu-supports.h, lib/dfa.c, lib/duplocale.c, lib/exclude.c:
* lib/findprog-in.c, lib/findprog.c, lib/fopen.c, lib/freopen.c:
* lib/fts.c, lib/gen-uni-tables.c, lib/getfilecon.c:
* lib/getlogin.c, lib/getugroups.c, lib/hard-locale.c:
* lib/hashcode-named-file.c, lib/hashkey-string.c:
* lib/iconv_open.c, lib/idcache.c, lib/lc-charset-unicode.c:
* lib/localcharset.c, lib/localename-environ.c:
* lib/localename-unsafe.c, lib/mbs_endswith.c, lib/mountlist.c:
* lib/newlocale.c, lib/nl_langinfo.c, lib/nproc.c, lib/open.c:
* lib/os2-spawn.c, lib/parse-datetime.y, lib/popen.c:
* lib/progreloc.c, lib/propername.c, lib/pt_chown.c, lib/putenv.c:
* lib/qcopy-acl.c, lib/readutmp.c, lib/rpmatch.c:
* lib/setlocale-fixes.c, lib/setlocale.c, lib/sig2str.c:
* lib/spawni.c, lib/stat.c, lib/str_endswith.c, lib/streq.h:
* lib/striconveha.c, lib/struniq.h, lib/supersede.c:
* lib/time_rz.c, lib/unicodeio.c, lib/vasnprintf.c:
* lib/vc-mtime.c, lib/wctrans-impl.h, lib/wctype-impl.h:
Prefer streq to strcmp when either will do.
Do not make this change to files shared with glibc.
Do not make the change to test files, at least not for now.
* lib/gen-uni-tables.c (streq): New static function, in same style.
* modules/acl-permissions, modules/argp, modules/c32_get_mapping:
* modules/c32_get_type_test, modules/concat-filename:
* modules/cpu-supports, modules/dfa, modules/duplocale:
* modules/exclude, modules/findprog, modules/findprog-in:
* modules/fopen, modules/fopen-gnu, modules/freopen, modules/fts:
* modules/getlocalename_l-simple, modules/getlocalename_l-unsafe:
* modules/getlogin, modules/getugroups, modules/hard-locale:
* modules/hashcode-named-file, modules/hashkey-string:
* modules/iconv_open, modules/idcache, modules/localcharset:
* modules/localename, modules/localename-unsafe:
* modules/mbs_endswith, modules/mountlist, modules/newlocale:
* modules/nl_langinfo, modules/nproc, modules/open:
* modules/parse-datetime, modules/popen:
* modules/posix_spawn-internal, modules/propername:
* modules/pt_chown, modules/putenv-gnu, modules/qcopy-acl:
* modules/rpmatch, modules/selinux-h, modules/setenv:
* modules/setlocale, modules/setlocale-fixes, modules/sig2str:
* modules/spawn-pipe, modules/stat, modules/str_endswith:
* modules/streq, modules/striconveha, modules/supersede:
* modules/time_rz, modules/uchar-h, modules/unicodeio:
* modules/uniconv/base, modules/wctrans, modules/wctype:
(Depends-on): Add stringeq.
stringeq: prefer memeq to memcmp in other modules
* lib/argmatch.c, lib/argmatch.h, lib/backupfile.c, lib/bcp47.c:
* lib/boot-time.c, lib/csharpcomp.c, lib/csharpexec.c:
* lib/file-has-acl.c, lib/gen-uni-tables.c, lib/get_ppid_of.c:
* lib/get_progname_of.c, lib/getlogin_r.c, lib/getprogname.c:
* lib/getumask.c, lib/isnan.c, lib/mbchar.h, lib/mem-hash-map.c:
* lib/memcoll.c, lib/progname.c, lib/progreloc.c:
* lib/pthread_sigmask.c, lib/quotearg.c, lib/readutmp.c:
* lib/same.c, lib/signbitd.c, lib/signbitf.c, lib/signbitl.c:
* lib/string-desc.c, lib/string.c, lib/string.in.h:
* lib/unictype/3level.h, lib/unictype/3levelbit.h:
* lib/uniname/uniname.c, lib/vc-mtime.c:
Prefer memeq to memcmp when either will do.
Do not make this change to files shared with glibc.
Do not make the change to test files, at least not for now.
* lib/gen-uni-tables.c (memeq): New static function, in same style.
* modules/argmatch, modules/backupfile, modules/bcp47:
* modules/boot-time, modules/csharpcomp, modules/csharpexec:
* modules/file-has-acl:
* modules/get_ppid_of, modules/get_progname_of:
* modules/getlogin_r, modules/getprogname, modules/getumask:
* modules/isnan, modules/mbchar, modules/mem-hash-map:
* modules/memcoll, modules/progname, modules/pthread_sigmask:
* modules/quotearg, modules/readutmp, modules/relocatable-prog:
* modules/relocatable-prog-wrapper, modules/same, modules/signbit:
* modules/string-desc, modules/stringeq, modules/uniname/uniname:
* modules/vc-mtime:
(Depends-on): Add stringeq.
stringeq: new module
* MODULES.html.sh (func_all_modules): Add stringeq.
* lib/string.c, modules/stringeq: New files.
* lib/string.in.h: Use _GL_INLINE-related macros.
(memeq, streq): New functions, if stringeq module is in use.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS):
New var GNULIB_STRINGEQ.
* modules/string-h (string.h): Substitute GNULIB_STRINGEQ.
2025-09-17 Pádraig Brady <P@draigBrady.com>
doc: MODULES.html.sh: add missing cpu-supports entry
* MODULES.html.sh: Add "cpu-supports" to Misc section.
2025-09-17 Bruno Haible <bruno@clisp.org>
stdio-h: Work around [v][f]printf bugs in mingw with msvcrt.
Reported by 松延 英樹 <maznobu@gmail.com> in
<https://github.com/mlocati/gettext-iconv-windows/issues/52>.
* lib/stdio.in.h (gl_consolesafe_fprintf, gl_consolesafe_printf,
gl_consolesafe_vfprintf, gl_consolesafe_vprintf): New declarations.
(fprintf): When msvcrt is in use, use gl_consolesafe_fprintf.
(printf): When msvcrt is in use, use gl_consolesafe_printf.
(vfprintf): When msvcrt is in use, use gl_consolesafe_vfprintf.
(vprintf): When msvcrt is in use, use gl_consolesafe_vprintf.
* lib/stdio-consolesafe.c: Include fseterr.h.
(gl_consolesafe_fprintf, gl_consolesafe_printf, gl_consolesafe_vfprintf,
gl_consolesafe_vprintf): New functions.
* lib/stdio-write.c (vfprintf): When msvcrt is in use, use
gl_consolesafe_vfprintf.
* modules/stdio-h (Depends-on): Add fseterr.
* doc/posix-functions/fprintf.texi: Document the mingw bug.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
2025-09-17 Bruno Haible <bruno@clisp.org>
stdio-h: Work around fwrite bug in msvcrt.
Reported by 松延 英樹 <maznobu@gmail.com> in
<https://github.com/mlocati/gettext-iconv-windows/issues/52>.
* lib/stdio.in.h (gl_consolesafe_fwrite): New declaration.
(fwrite): When msvcrt is in use, use gl_consolesafe_fwrite.
* lib/stdio-consolesafe.c: New file.
* lib/stdio-write.c (fwrite): When msvcrt is in use, use
gl_consolesafe_fwrite.
* modules/stdio.h (Files): Add lib/stdio-consolesafe.c.
(Depends-on): Add stdckdint-h.
(configure.ac): Define condition GL_COND_OBJ_STDIO_CONSOLESAFE.
(Makefile.am): Arrange to compile stdio-consolesafe.c.
* doc/posix-functions/fwrite.texi: Document the workaround.
2025-09-16 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fix truncation code (regression today).
* lib/strerror_r.c (strerror_r): Fix use of snprintf again.
2025-09-16 Bruno Haible <bruno@clisp.org>
inttypes-h tests: Avoid compilation error on mingw.
Reported by Michele Locati in
<https://lists.gnu.org/archive/html/bug-gettext/2024-09/msg00015.html>.
* tests/test-inttypes-h.c (l): On mingw without __USE_MINGW_ANSI_STDIO,
don't test for the presence of SCN*8, SCN*LEAST8, SCN*FAST8}.
* doc/posix-headers/inttypes.texi: Mention the mingw bug.
2025-09-16 Pádraig Brady <P@draigBrady.com>
cpu-supports: remove assert dependency
Avoid LGPL incompatibility issues by removing assert.
* lib/cpu-supports.c (hwcaps_allowed): Replace assert()s
with defensive returns allowing the passed hwcap.
* modules/cpu-supports: Remove the dependency.
2025-09-16 Bruno Haible <bruno@clisp.org>
Document msvcrt (native Windows) bugs regarding console output.
* doc/posix-functions/fputc.texi: Document a bug found in msvcrt.
* doc/posix-functions/putc.texi: Likewise.
* doc/posix-functions/fwrite.texi: Document another bug found in msvcrt.
2025-09-16 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Ensure a trailing NUL when truncating.
* lib/strerror_r.c (strerror_r): Fix use of snprintf.
2025-09-16 Bruno Haible <bruno@clisp.org>
strtof: Work around mingw bug with overflow.
* lib/strtod.c (STRTOD): Recognize overflow.
* modules/strtof (Depends-on): Add isinf.
* modules/strtod (Depends-on): Likewise.
* modules/strtold (Depends-on): Likewise.
* doc/posix-functions/strtof.texi: Update mingw version.
2025-09-16 Bruno Haible <bruno@clisp.org>
pagealign_alloc tests: Fix link error.
* modules/pagealign_alloc-tests (Makefile.am): Link
bench-pagealign_alloc with $(LIBINTL).
2025-09-15 Pádraig Brady <P@draigBrady.com>
tests: avoid infinite loop in init.sh
* tests/init.sh: Break from the loop if there's an issue with expr(1).
2025-09-15 Pádraig Brady <P@draigBrady.com>
cpu-supports: relicense under LGPL
* modules/cpu-supports: Relicense under LGPL
to match the crc-x86_64 module.
2025-09-15 Bruno Haible <bruno@clisp.org>
threadlib: Omit unsupported configure option.
Reported by Michael Osipov <michael.osipov@innomotics.com> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-09/msg00009.html>.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): If libtool is in use, don't
display the --disable-threads option.
2025-09-15 Bruno Haible <bruno@clisp.org>
pagealign_alloc tests: Fix link error.
* modules/pagealign_alloc-tests (Makefile.am): Link test-pagealign_alloc
with $(LIBINTL).
2025-09-14 Bruno Haible <bruno@clisp.org>
gettext-h: Avoid warning with gcc < 4.2.
Reported by Orgad Shaneh <orgads@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00183.html>.
* lib/gettext.h (gettext, dgettext, dcgettext): Don't use attribute
__gnu_inline__ with gcc < 4.2.
2025-09-14 Pádraig Brady <P@draigBrady.com>
crc-x86_64: honor GLIBC_TUNABLES to disable acceleration
* modules/crc-x86_64: Depend on cpu-supports.
* lib/crc.c: Call the cpu_supports() wrapper that honors glibc hwcaps.
2025-09-14 Pádraig Brady <P@draigBrady.com>
cpu-supports: a module to honor GLIBC_TUNABLES=glibc.cpu.hwcaps
* lib/cpu-supports.h (cpu_supports): A new wrapper that
checks that the GLIBC_TUNABLES environment variable allows
the hardware feature, before checking with __builtin_cpu_supports().
(cpu_may_support): Only perform the GLIBC_TUNABLES check,
which is useful if using other interfaces like getauxval().
(gcc_feature_to_glibc_hwcap): An internal helper that will resolve
at compile time with standard optimizations enabled.
* lib/cpu-supports.c (hwcap_allowed): Query the GLIBC_TUNABLES
environment variable (read once per process), to see if the
passed GLIBC_HWCAP is allowed.
* modules/cpu-supports: New module definition.
* modules/cpu-supports-tests: New test module definition.
* tests/test-cpu-supports.c: New tests.
2025-09-13 Bruno Haible <bruno@clisp.org>
gettext-h: Avoid -Wtrailing-whitespace in a better way.
* m4/gettext_h.m4: New file, extracted from modules/gettext-h. Add back
the newline at the end of the AH_BOTTOM argument.
* modules/gettext-h (Files): Add it.
(configure.ac): Invoke gl_GETTEXT_H.
2025-09-13 Collin Funk <collin.funk1@gmail.com>
gettext-h: Avoid -Wtrailing-whitespace in config.h.
* modules/gettext-h (configure.ac): Move the closing bracket and
parentheses of AH_BOTTOM to the preceding line.
2025-09-13 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Don't waste large amounts of memory (regr. 2025-09-10).
* lib/pagealign_alloc.c (get_default_impl): Choose a default that does
not waste large amounts of memory.
* tests/bench-pagealign_alloc.c: Update results.
2025-09-13 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Add unit test for scalability.
* tests/test-pagealign_alloc.c: New file.
* modules/pagealign_alloc-tests (Files): Add it.
(Depends-on): Add xalloc.
(configure.ac): Check for alarm().
(Makefile.am): Arrange to compile and run test-pagealign_alloc.
pagealign_alloc: Fix scalability problem.
Reported by Harry Sintonen <sintonen@iki.fi> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00108.html>.
* lib/pagealign_alloc.c: Include gl_xmap.h, gl_hash_map.h. Don't include
xalloc.h.
(info_t, memnode_t, struct memnode_s): Remove types.
(memnode_table): Remove variable.
(new_memnode, get_memnode): Remove functions.
(page_info_map): New variable.
(pagealign_alloc): Use gl_map_put instead of new_memnode.
(pagealign_free): Use gl_map_getremove instead of get_memnode.
* modules/pagealign_alloc (Depends-on): Add xmap, hash-map. Remove
xalloc.
2025-09-13 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Fix crashes (regression 2025-09-11).
* lib/pagealign_alloc.c (pagealign_alloc, pagealign_free): Add missing
'break' statements. For PA_IMPL_VIRTUAL_ALLOC, don't use new_memnode and
get_memnode.
2025-09-13 Paul Eggert <eggert@cs.ucla.edu>
endian: port to Solaris 11.4 and macOS 15
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00174.html
* lib/byteswap.in.h (_GL_BYTESWAP_INLINE):
Define before including stdint.h.
* lib/endian.in.h (bswap_16, bswap_32, bswap_64):
Declare as _GL_BYTESWAP_INLINE rather than as extern.
Conditionalize these decls with _GL_BYTESWAP_INLINE rather than
with _GL_BYTESWAP_H.
2025-09-13 Bruno Haible <bruno@clisp.org>
gettext-h: Move fallback definition of GNULIB_TEXT_DOMAIN.
* lib/gettext.h (GNULIB_TEXT_DOMAIN): Remove macro.
* modules/gettext-h (configure.ac): Define it here instead.
2025-09-12 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Improve documentation.
Suggested by Paul Eggert.
* lib/pagealign_alloc.h: Document that this module is not multithread-
safe.
2025-09-12 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Tweak the benchmark.
* tests/bench-pagealign_alloc.c (show_stats): Reformat.
(main): Fix usage message.
2025-09-12 Bruno Haible <bruno@clisp.org>
vma-iter: Improve on OpenBSD.
* lib/vma-iter.c (vma_iterate_bsd): Call sysctl() in a loop, not just
once.
(vma_iterate) [__OpenBSD__]: Don't return the interval that ends at 0.
2025-09-12 Bruno Haible <bruno@clisp.org>
gitsub.sh: Revert last change.
* top/gitsub.sh: Revert 2025-09-06 change.
2025-09-11 Paul Eggert <eggert@cs.ucla.edu>
endian: port to gcc 4.1 + glibc 2.4
Problem reported by Orgad Shaneh in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00128.html
* lib/endian.in.h (bswap_16, bswap_32, bswap_64) [_GL_BYTESWAP_H]:
Declare before using.
2025-09-11 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Add benchmark for comparing different implementations.
* lib/pagealign_alloc.h (pagealign_impl_t): New type.
(pagealign_impl): New declaration.
* lib/pagealign_alloc.c: On native Windows, include <malloc.h> and
<windows.h>.
(pagealign_impl): New variable.
(info_t): Change to a union type.
(get_default_impl): New function.
(pagealign_alloc, pagealign_free): Dispatch according to pagealign_impl.
* tests/bench-pagealign_alloc.c: New file.
* modules/pagealign_alloc-tests: New file.
2025-09-11 Bruno Haible <bruno@clisp.org>
pagealign_alloc, vma-prot tests: Fix use of HAVE_MMAP (regr. yesterday).
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Test for sys/mman.h. Use
ac_cv_header_sys_mman_h instead of gl_have_mmap.
* lib/pagealign_alloc.c: Test HAVE_SYS_MMAN_H instead of HAVE_MMAP.
* tests/test-vma-prot.c: Likewise.
2025-09-10 Paul Eggert <eggert@cs.ucla.edu>
pagealign_alloc: prefer posix_memalign
Problem reported by Harry Sintonen in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00108.html
* lib/pagealign_alloc.c (info_t, memnode_t, struct memnode_s)
(memnode_table, new_memnode, get_memnode):
Omit if HAVE_POSIX_MEMALIGN, even if HAVE_MMAP.
(pagealign_alloc, pagealign_free): Prefer posix_memalign to mmap.
2025-09-10 Bruno Haible <bruno@clisp.org>
Remove support for IRIX.
* all-modules: Update comments.
* build-aux/install-reloc: Likewise.
* build-aux/reloc-ldflags: Likewise.
* gnulib-tool: Likewise.
* gnulib-tool.py: Likewise.
* gnulib-tool.sh: Likewise.
* lib/aligned-malloc.h: Likewise.
* lib/boot-time.c: Likewise.
* lib/c32is-impl.h: Likewise.
* lib/c32srtombs-state.c: Likewise.
* lib/c32to-impl.h: Likewise.
* lib/c32width.c: Likewise.
* lib/errno.in.h: Likewise.
* lib/euidaccess.c: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fenv-except-state-get.c: Likewise.
* lib/fenv-except-state-set.c: Likewise.
* lib/fenv-except-tracking-clear.c: Likewise.
* lib/fenv-except-tracking-set.c: Likewise.
* lib/fenv-except-tracking-test.c: Likewise.
* lib/fenv-except-trapping.c: Likewise.
* lib/fenv-round.c: Likewise.
* lib/fflush.c: Likewise.
* lib/fileblocks.c: Likewise.
* lib/forkpty.c: Likewise.
* lib/fpending.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/fsusage.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
* lib/getdomainname.c: Likewise.
* lib/idpriv-drop.c: Likewise.
* lib/idpriv-droptemp.c: Likewise.
* lib/limits.in.h: Likewise.
* lib/mbrtoc16.c: Likewise.
* lib/mbrtoc32.c: Likewise.
* lib/mbsrtoc32s-state.c: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/mbtowc-lock.h: Likewise.
* lib/minmax.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/pipe-filter-ii.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/ptsname_r.c: Likewise.
* lib/readutmp.c: Likewise.
* lib/readutmp.h: Likewise.
* lib/resource-ext.h: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/save-cwd.c: Likewise.
* lib/stdbool.in.h: Likewise.
* lib/striconv.c: Likewise.
* lib/striconveh.c: Likewise.
* lib/termcap.h: Likewise.
* lib/terminfo.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/wcrtomb.c: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/fenv-environment.m4: Likewise.
* m4/fenv-exceptions-state.m4: Likewise.
* m4/fenv-exceptions-tracking.m4: Likewise.
* m4/fenv-rounding.m4: Likewise.
* m4/fmod.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getloadavg.m4: Likewise.
* m4/getopt.m4: Likewise.
* m4/hypot.m4: Likewise.
* m4/hypotf.m4: Likewise.
* m4/hypotl.m4: Likewise.
* m4/iconv.m4: Likewise.
* m4/intl-thread-locale.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/libdl.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/log.m4: Likewise.
* m4/log10.m4: Likewise.
* m4/log10f.m4: Likewise.
* m4/logf.m4: Likewise.
* m4/modf.m4: Likewise.
* m4/modff.m4: Likewise.
* m4/modfl.m4: Likewise.
* m4/pthread-rwlock.m4: Likewise.
* m4/semaphore.m4: Likewise.
* m4/socklen.m4: Likewise.
* m4/stdint.m4: Likewise.
* m4/strtod.m4: Likewise.
* m4/strtof.m4: Likewise.
* m4/strtold.m4: Likewise.
* modules/sigsegv: Likewise.
* posix-modules: Likewise.
* pygnulib/GLImport.py: Likewise.
* tests/init.sh: Likewise.
* tests/test-echo.sh: Likewise.
* tests/test-isatty.c: Likewise.
* tests/test-math-h.c: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-strtod.h: Likewise.
* tests/test-strtof.h: Likewise.
* tests/test-strtold.h: Likewise.
* tests/test-vasnprintf.c: Likewise.
* tests/test-vasnwprintf.c: Likewise.
doc: Remove support for IRIX.
* doc/gnulib.texi (Header files): Update.
* doc/posix-functions/sig2str.texi: Don't mention IRIX problem.
* doc/posix-functions/str2sig.texi: Likewise.
* doc/posix-functions/strerror.texi: Likewise.
* doc/posix-headers/sys_stat.texi: Don't mention IRIX.
* doc/posix-headers/sys_types.texi: Likewise.
tests: Remove support for IRIX.
* tests/minus-zero.h (compute_minus_zerof, compute_minus_zerod,
compute_minus_zerol): Remove code for IRIX.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-getaddrinfo.c (simple): Likewise.
* tests/test-isgraph_l.c (main): Likewise.
* tests/test-isprint_l.c (main): Likewise.
* tests/test-localeconv-mt.c (ENCODING): Likewise.
* tests/test-nl_langinfo-mt.c (ENCODING): Likewise.
* tests/test-setlocale_null-mt-all.c (ENCODING): Likewise.
* tests/test-setlocale_null-mt-one.c (ENCODING): Likewise.
* tests/test-sethostname1.c: Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* tests/test-frexpl.c (MIN_NORMAL_EXP): Likewise.
* tests/test-ilogbl.c (MIN_NORMAL_EXP): Likewise.
* tests/test-logbl.c (MIN_NORMAL_EXP): Likewise.
* tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP):
Likewise.
* tests/test-fma2.h (MIN_SUBNORMAL_EXP): Remove macro.
(test_function): Inline its value.
* tests/test-lseek.c (main): Update comments.
* tests/test-sigabbrev_np.c (main): Remove cases for SIGCKPT, SIGPTINTR,
SIGPTRESCHED, SIGRESTART, SIGUME.
* tests/test-sigdescr_np.c (main): Likewise.
* modules/math-h-c++-tests (Makefile.am): Don't link test-math-h-c++
with extra libraries.
relocatable-prog: Remove support for IRIX.
* build-aux/config.libpath: Remove code for IRIX.
havelib: Remove support for IRIX.
* build-aux/config.rpath: Remove code for IRIX.
wctype-h: Remove support for IRIX.
* lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit,
towlower, towupper): Remove workaround for IRIX.
wchar-h: Remove support for IRIX.
* lib/wchar.in.h: Don't set or test
_@GUARD_PREFIX@_ALREADY_INCLUDING_WCHAR_H.
(rpl_mbstate_t): Remove type.
(wctob): Test HAVE_WCTOB instead of HAVE_DECL_WCTOB.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_WCTOB instead of
HAVE_DECL_WCTOB.
* modules/wchar-h (Makefile.am): Substitute HAVE_WCTOB instead of
HAVE_DECL_WCTOB.
* m4/wctob.m4 (gl_FUNC_WCTOB): Don't set HAVE_DECL_WCTOB.
unicodeio: Remove support for IRIX.
* lib/unicodeio.c (unicode_to_mb): Remove code for IRIX.
threads-h: Remove support for IRIX.
* lib/threads.in.h (TSS_DTOR_ITERATIONS): Assume that
PTHREAD_DESTRUCTOR_ITERATIONS is defined.
thread: Remove support for IRIX.
* lib/glthread/thread.h: Remove code for IRIX.
threadlib: Remove support for IRIX.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Assume that
pthread_mutexattr_init and pthread_mutex_lock are defined in the same
library.
sys_select-h: Remove support for IRIX.
* lib/sys_select.in.h: Remove code for IRIX.
sysexits-h: Remove support for IRIX.
* lib/sysexits.in.h: Remove code for IRIX.
strtof, strtod, strtold: Remove support for IRIX.
* lib/strtod.c (minus_zero): Remove code for IRIX.
strerror_r: Remove support for IRIX.
* lib/strerror_r.c: Remove code for IRIX.
(strerror_r): Assume that strerror() returns non-NULL.
stdio-h: Remove support for IRIX.
* lib/stdio.in.h (_PRINTF_NAN_LEN_MAX): Remove code for IRIX.
stdint-h: Remove support for IRIX.
* lib/stdint.in.h: Don't define __STDINT_H__.
sigabbrev_np, sigdescr_np: Remove support for IRIX.
* lib/sigabbrev_np.c (sigabbrev_np): Remove cases for SIGCKPT,
SIGPTINTR, SIGPTRESCHED, SIGRESTART, SIGUME.
* lib/sigdescr_np.c (sigdescr_np): Likewise.
setlocale-null: Remove support for IRIX.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Remove code for IRIX.
ptsname_r: Remove support for IRIX.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Remove cross-compilation guess
for IRIX.
pthread_sigmask: Remove support for IRIX.
* lib/pthread_sigmask.c: Remove workaround for
PTHREAD_SIGMASK_UNBLOCK_BUG.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Remove test against
IRIX bug.
*printf-posix: Remove support for IRIX.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_ENOMEM,
gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_DIRECTIVE_N,
gl_VSNPRINTF_ZEROSIZE_C99): Remove cross-compilation guesses for IRIX.
physmem: Remove support for IRIX.
* lib/physmem.c: Remove code for IRIX.
* m4/physmem.m4 (gl_PHYSMEM): Don't test for <sys/sysmp.h> and sysmp.
passfd: Remove support for IRIX.
* lib/passfd.c (sendfd, recvfd): Remove code for IRIX.
openpty: Remove support for IRIX.
* lib/openpty.c (openpty): Remove code for IRIX.
* m4/pty.m4 (gl_FUNC_OPENPTY): Don't test for _getpty.
nproc: Remove support for IRIX.
* lib/nproc.c: Remove code for IRIX.
* m4/nproc.m4 (gl_PREREQ_NPROC): Don't test for <sys/sysmp.h> and sysmp.
mprotect: Remove support for IRIX.
* m4/mprotect.m4 (gl_FUNC_MPROTECT_WORKS): Remove cross-compilation
guess for IRIX.
mountlist: Remove support for IRIX.
* m4/mountlist.m4 (gl_MOUNTLIST): Update description of
MOUNTED_GETMNTENT1.
* lib/mountlist.c (ME_DUMMY_0): Don't test for file system type
"ignore".
mktime: Remove support for IRIX.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Remove irix_6_4_bug test.
malloc-posix: Remove support for IRIX.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Remove code for IRIX.
localcharset: Remove support for IRIX.
* lib/localcharset.h: Update comments.
* lib/localcharset.c (alias_table): Remove entries for IRIX.
ldd: Remove support for IRIX.
* m4/ldd.m4 (gl_LDD): Remove code for IRIX.
jit/cache: Remove support for IRIX.
* lib/jit/cache.h: Remove code for IRIX.
intprops, stdckdint-h: Remove support for IRIX.
* lib/intprops-internal.h (_GL_INT_NEGATE_CONVERT): Remove macro.
(_GL_EXPR_SIGNED, _GL_INT_MAXIMUM): Use _GL_INT_CONVERT instead.
* lib/intprops.h (_GL_DIVIDE_OVERFLOW, _GL_REMAINDER_OVERFLOW):
Likewise.
getprogname: Remove support for IRIX.
* lib/getprogname.c: Remove code for IRIX.
* modules/getprogname (Depends-on): Likewise.
getloadavg: Remove support for IRIX.
* lib/getloadavg.c: Remove code for IRIX.
get_ppid_of, get_progname_of: Remove support for IRIX.
* lib/get_ppid_of.c: Remove code for IRIX.
* lib/get_progname_of.c: Likewise.
get-rusage-data: Remove support for IRIX.
* lib/get-rusage-data.c (get_rusage_data): Remove code for IRIX.
fsusage: Remove support for IRIX.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Update description of
STAT_STATFS4.
fcntl: Remove support for IRIX.
* lib/fcntl.c (fcntl): Remove F_OPLKACK, F_OPLKREG cases.
chmod: Remove support for IRIX.
* m4/chmod.m4 (gl_FUNC_CHMOD): Remove cross-compilation guess for IRIX.
btowc: Remove support for IRIX.
* m4/btowc.m4 (gl_FUNC_BTOWC): Remove test of btowc (EOF).
assert-h: Remove support for IRIX.
* m4/assert_h.m4 (gl_ASSERT_H): Remove workaround for IRIX.
iconv_open: Remove support for IRIX.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Remove code for IRIX.
* lib/iconv_open.c (ICONV_FLAVOR_IRIX): Remove macro.
* lib/iconv_open-irix.gperf: Remove file.
* modules/iconv_open (Files): Remove it.
(Makefile.am): Remove rule for $(srcdir)/iconv_open-irix.h. Update
BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST
accordingly.
Remove support for IRIX regarding sigaltstack.
* m4/sigaltstack.m4 (SV_SIGALTSTACK): Assume that ss_sp is the start
address, not the end address, of the alternate stack area.
* lib/sigsegv.c: Remove code for IRIX.
(stackoverflow_install_handler): Ignore SIGALTSTACK_SS_REVERSED.
* lib/sigsegv.in.h: Remove code for IRIX.
Remove support for IRIX and Solaris <= 7 regarding old mmap.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Don't define HAVE_MAP_ANONYMOUS.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Assume that mmap supports MAP_ANONYMOUS
or MAP_ANON.
* m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise.
* lib/get-rusage-as.c (MAP_FILE): Remove macro.
(get_rusage_as_via_setrlimit): Assume that mmap supports MAP_ANONYMOUS
or MAP_ANON.
* modules/get-rusage-as (Depends-on): Remove 'open'.
* lib/pagealign_alloc.c (MAP_FILE): Remove macro.
(pagealign_alloc): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON.
* modules/pagealign_alloc (Depends-on): Remove 'open'.
* lib/vma-iter.c: Remove code for IRIX.
(vma_iterate): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON.
* lib/vma-iter.h: Remove code for IRIX.
* lib/stackvma.c: Remove code for IRIX.
(vma_iterate): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON.
* lib/stackvma.h: Remove code for IRIX.
* tests/mmap-anon-util.h: (zero_fd, map_flags, MAP_FILE): Remove macros.
(mmap_zeromap): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON.
* tests/zerosize-ptr.h (MAP_FILE): Remove macro.
(zerosize_ptr): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON.
* tests/jit/test-cache.c (main): Assume that mmap supports MAP_ANONYMOUS
or MAP_ANON.
* tests/test-sigsegv-catch-segv1.c (main): Assume that mmap supports
MAP_ANONYMOUS or MAP_ANON.
* tests/test-sigsegv-catch-segv2.c (main): Likewise.
* tests/test-sigsegv-catch-stackoverflow2.c (main): Likewise.
* tests/test-vma-prot.c: Test HAVE_MMAP instead of HAVE_MAP_ANONYMOUS.
signbit, *-ieee: Remove support for IRIX.
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Remove code for IRIX.
remainderf: Remove support for IRIX.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): Remove macro.
(gl_FUNC_REMAINDERF): Don't invoke it.
nan: Remove support for IRIX.
* lib/nan.h (NaNl): Remove code for IRIX.
logbl: Remove support for IRIX.
* m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Remove IRIX <float.h> workaround.
log1pl: Remove support for IRIX.
* m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): Remove IRIX <float.h> workaround.
* lib/log1pl.c (log1pl): Remove code for IRIX.
log1pf: Remove support for IRIX.
* m4/log1pf.m4 (gl_FUNC_LOG1PF_WORKS): Remove macro.
(gl_FUNC_LOG1PF): Don't invoke it.
log1p: Remove support for IRIX.
* lib/log1p.c (log1p): Remove code for IRIX.
log10l: Remove support for IRIX.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Remove IRIX <float.h> workaround.
* lib/log10l.c (log10l): Remove code for IRIX.
logl: Remove support for IRIX.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Remove IRIX <float.h> workaround.
isnan*, isnan*-nolibm: Remove support for IRIX.
* m4/isnanf.m4 (gl_ISNANF_WORKS): Remove test for isnanf (NaN ()).
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Simplify test program.
* lib/isnanf-nolibm.h (isnanf): Remove code for IRIX.
* lib/isnan.c (FUNC): Remove code for IRIX.
isinf: Remove support for IRIX.
* m4/isinf.m4 (gl_ISINFL_WORKS): Remove code for IRIX.
isfinite: Remove support for IRIX.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Remove code for IRIX.
ilogbl: Remove support for IRIX.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Remove code for IRIX. Remove IRIX
<float.h> workaround.
ilogbf: Remove support for IRIX.
* m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Remove code for IRIX.
ilogb: Remove support for IRIX.
* m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Remove code for IRIX.
frexpl: Remove support for IRIX.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Remove code for IRIX. Remove IRIX
<float.h> workaround.
frexpf: Remove support for IRIX.
* m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): Remove code for IRIX.
frexp: Remove support for IRIX.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Remove code for IRIX.
fmal: Remove support for IRIX.
* m4/fmal.m4 (gl_FUNC_FMAL): Don't test whether fmal is declared.
(gl_FUNC_FMAL_WORKS): Remove IRIX <float.h> workaround.
fmaf: Remove support for IRIX.
* m4/fmaf.m4 (gl_FUNC_FMAF): Don't test whether fmaf is declared.
fma: Remove support for IRIX.
* m4/fma.m4 (gl_FUNC_FMA): Don't test whether fma is declared.
fabsl: Remove support for IRIX.
* m4/fabsl.m4 (gl_FUNC_FABSL_WORKS): Remove macro.
(gl_FUNC_FABSL): Don't invoke it.
expm1f: Remove support for IRIX.
* m4/expm1f.m4 (gl_FUNC_EXPM1F_WORKS): Remove macro.
(gl_FUNC_EXPM1F): Don't invoke it.
expl: Remove support for IRIX.
* m4/expl.m4 (gl_FUNC_EXPL): Remove IRIX <float.h> workaround.
ceil, rint, round, trunc, *-ieee: Remove support for IRIX.
* m4/minus-zero.m4 (gl_FLOAT_MINUS_ZERO_CODE, gl_DOUBLE_MINUS_ZERO_CODE,
gl_LONG_DOUBLE_MINUS_ZERO_CODE): Remove code for IRIX cc.
* lib/ceil.c (MINUS_ZERO): Likewise.
* lib/rint.c (MINUS_ZERO): Likewise.
* lib/round.c (MINUS_ZERO): Likewise.
* lib/trunc.c (MINUS_ZERO): Likewise.
math-h: Remove support for IRIX.
* lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Remove code for IRIX.
(cbrtf): Test HAVE_CBRTF instead of HAVE_DECL_CBRTF.
(cbrtl): Test HAVE_CBRTL instead of HAVE_DECL_CBRTL.
(copysignf): Test HAVE_COPYSIGNF instead of HAVE_DECL_COPYSIGNF.
(exp2f): Test HAVE_EXP2F instead of HAVE_DECL_EXP2F.
(exp2): Test HAVE_EXP2 instead of HAVE_DECL_EXP2.
(exp2l): Test HAVE_EXP2L instead of HAVE_DECL_EXP2L.
(expm1l): Test HAVE_EXPM1L instead of HAVE_DECL_EXPM1L.
(log2f): Test HAVE_LOG2F instead of HAVE_DECL_LOG2F.
(log2): Test HAVE_LOG2 instead of HAVE_DECL_LOG2.
(log2l): Test HAVE_LOG2L instead of HAVE_DECL_LOG2L.
(remainder): Don't test HAVE_DECL_REMAINDER.
(remainderl): Test HAVE_REMAINDERL instead of HAVE_DECL_REMAINDERL.
(rintf): Test HAVE_RINTF instead of HAVE_DECL_RINTF.
(roundf): Test HAVE_ROUNDF instead of HAVE_DECL_ROUNDF.
(round): Test HAVE_ROUND instead of HAVE_DECL_ROUND.
(roundl): Test HAVE_ROUNDL instead of HAVE_DECL_ROUNDL.
(isnanf, isnand): Remove code for IRIX.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_COPYSIGNF,
HAVE_EXP2, HAVE_EXP2F, HAVE_EXP2L, HAVE_EXPM1L, HAVE_LOG2, HAVE_LOG2F,
HAVE_LOG2L, HAVE_REMAINDERL, HAVE_RINTF, HAVE_ROUND, HAVE_ROUNDF,
HAVE_ROUNDL. Don't initialize HAVE_DECL_CBRTF, HAVE_DECL_CBRTL,
HAVE_DECL_COPYSIGNF, HAVE_DECL_EXP2, HAVE_DECL_EXP2F, HAVE_DECL_EXP2L,
HAVE_DECL_EXPM1L, HAVE_DECL_LOG2, HAVE_DECL_LOG2F, HAVE_DECL_LOG2L,
HAVE_DECL_REMAINDER, HAVE_DECL_REMAINDERL, HAVE_DECL_RINTF,
HAVE_DECL_ROUND, HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL.
* modules/math-h (Makefile.am): Substitute HAVE_COPYSIGNF, HAVE_EXP2,
HAVE_EXP2F, HAVE_EXP2L, HAVE_EXPM1L, HAVE_LOG2, HAVE_LOG2F, HAVE_LOG2L,
HAVE_REMAINDERL, HAVE_RINTF, HAVE_ROUND, HAVE_ROUNDF, HAVE_ROUNDL.
Don't substitute HAVE_DECL_CBRTF, HAVE_DECL_CBRTL, HAVE_DECL_COPYSIGNF,
HAVE_DECL_EXP2, HAVE_DECL_EXP2F, HAVE_DECL_EXP2L, HAVE_DECL_EXPM1L,
HAVE_DECL_LOG2, HAVE_DECL_LOG2F, HAVE_DECL_LOG2L, HAVE_DECL_REMAINDER,
HAVE_DECL_REMAINDERL, HAVE_DECL_RINTF, HAVE_DECL_ROUND,
HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL.
* m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): Remove macro.
(gl_FUNC_CBRTF): Don't invoke it. Don't set HAVE_DECL_CBRTF.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Don't set HAVE_DECL_CBRTL. Remove test
regarding cbrtl (-0.0L).
* lib/cbrtl.c (cbrtl): Remove code for IRIX.
* m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Don't set HAVE_DECL_COPYSIGNF.
* m4/exp2f.m4 (gl_FUNC_EXP2F): Don't set HAVE_DECL_EXP2F.
* m4/exp2.m4 (gl_FUNC_EXP2): Don't set HAVE_DECL_EXP2.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Don't set HAVE_DECL_EXP2L. Remove code
for IRIX. Remove test regarding exp2l (-Inf).
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Don't set HAVE_DECL_EXPM1L. Remove code
for IRIX.
* m4/log2f.m4 (gl_FUNC_LOG2F): Don't set HAVE_DECL_LOG2F.
* m4/log2.m4 (gl_FUNC_LOG2): Don't set HAVE_DECL_LOG2.
* lib/log2.c (log2): Remove code for IRIX.
* m4/log2l.m4 (gl_FUNC_LOG2L): Don't set HAVE_DECL_LOG2L. Remove code
for IRIX.
* lib/log2l.c (log2l): Remove code for IRIX.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Don't set HAVE_DECL_REMAINDER.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't set HAVE_DECL_REMAINDERL.
Remove code for IRIX.
* m4/rintf.m4 (gl_FUNC_RINTF): Don't set HAVE_DECL_RINTF.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Don't set HAVE_DECL_ROUNDF.
* m4/round.m4 (gl_FUNC_ROUND): Don't set HAVE_DECL_ROUND.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Don't set HAVE_DECL_ROUNDL.
float-h: Remove support for IRIX.
* m4/float_h.m4 (gl_FLOAT_H): Remove code for IRIX.
langinfo-h: Remove support for IRIX.
* lib/langinfo.in.h (T_FMT_AMPM, GNULIB_defined_T_FMT_AMPM, YESEXPR,
NOEXPR, GNULIB_defined_YESEXPR): Remove macros.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Don't set HAVE_LANGINFO_T_FMT_AMPM,
HAVE_LANGINFO_YESEXPR.
* modules/langinfo-h (Makefile.am): Don't substitute
HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Don't test against IRIX bug.
* lib/nl_langinfo.c (rpl_nl_langinfo): Remove fallback code for
T_FMT_AMPM, YESEXPR, NOEXPR.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Just test for <langinfo.h>. Don't
test for YESEXPR.
* lib/rpmatch.c: Test HAVE_LANGINFO_H instead of HAVE_LANGINFO_YESEXPR.
errno-iter, strerrorname_np: Remove support for IRIX.
* lib/errno-iter.c (errno_iterate): Remove cases for EBADFILT,
EBADRSPEC, EBADTSPEC, EBDHDL, EBUFSIZE, ECANTEXTENT, ECELLDOWN, ECKPT,
ECLOCKCPU, ECONTROLLER, EDELAY, EDESTROYED, EDIRCORRUPTED, EDISJOINT,
EEMPTY, EENDOFMINOR, EENQUEUED, EFSCORRUPTED, EGROUPLOOP, EINIT,
EINVALMODE, EINVALSTATE, EINVALTIME, EIORESID, EJOINED, ELOGINLIM,
EMEMRETRY, EMIGRATED, EMIGRATING, EMUSTRUN, ENFSREMOTE, ENOATTACH,
ENOBWD, ENOEXIST, ENOINTRGROUP, ENOLIMFILE, ENOLOGIN, ENOMESSAGE,
ENOPROC, ENOSERVICE, ENOTCONTROLLER, ENOTENQUEUED, ENOTJOINED,
ENOTSTOPPED, EREMDEV, EWRONGFS.
* lib/strerrorname_np.c (strerrorname_np): Likewise.
* tests/test-strerrorname_np.c (main): Likewise.
acl-permissions, file-has-acl: Remove support for IRIX.
* lib/acl-internal.h (MODE_INSIDE_ACL): Remove code for IRIX.
* lib/acl-internal.c (acl_access_nontrivial): Likewise.
* lib/acl_entries.c (acl_entries): Likewise.
* lib/file-has-acl.c: Update comments.
* lib/get-permissions.c: Likewise.
* lib/set-permissions.c: Likewise.
* m4/acl.m4 (gl_FUNC_ACL): Likewise.
* doc/acl-resources.txt: Remove info about IRIX.
acl, file-has-acl, copy-file tests: Remove support for IRIX.
* tests/test-file-has-acl.sh: Remove code for IRIX ACLs.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-sameacls.c: Update comment.
2025-09-10 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify gcc 15.2
* config/srclist.txt: Stop listing lib/regex.c.
* lib/regex.c: Also ignore -Wswitch-enum.
Needed for gcc 15.2.1 20250808 (Red Hat 15.2.1-1) x86-64.
regex: fix support for overriding "gnulib"
Problem reported by Pádraig Brady in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00104.html
* lib/regex_internal.h [!_LIBC]: Simplify by including gettext.h
rather than doing things by hand and mishandling GNULIB_TEXT_DOMAIN.
(gettext_noop) [!_LIBC]: Remove, since gettext.h does that now.
* modules/regex (Depends-on): Add gettext-h.
2025-09-09 Pádraig Brady <P@draigBrady.com>
maintainer-makefile: relax coverage requirements
* top/maint.mk (COVERAGE_CCOPTS): Since we're overriding CFLAGS,
add -Wno-error to relax warning requirements. Projects usually default
to -O2, and changing from that can very well induce new warnings.
(build-coverage, gen-coverage): Keep going on non-fatal errors.
2025-09-09 Bruno Haible <bruno@clisp.org>
Remove support for OSF/1.
* lib/fseeko.c: Update comments.
* lib/stdbool.in.h: Likewise.
* m4/threadlib.m4: Likewise.
* modules/getprogname (Depends-on): Simplify platforms list.
2025-09-09 Paul Eggert <eggert@cs.ucla.edu>
gettext-h: support overriding "gnulib"
This is for GNU Diffutils, which is still using the old way
of also translating Gnulib’s msgids.
* lib/gettext.h (GNULIB_TEXT_DOMAIN): New macro.
* lib/argmatch.c, lib/bitset/stats.c, lib/c-stack.c:
* lib/clean-temp-simple.c, lib/clean-temp-simple.c, lib/clean-temp.c:
* lib/closein.c, lib/closeout.c, lib/copy-acl.c, lib/copy-file.c:
* lib/csharpcomp.c, lib/csharpexec.c, lib/cygpath.c, lib/dfa.c:
* lib/error.c, lib/execute.c, lib/gai_strerror.c, lib/getaddrinfo.c:
* lib/getopt.c, lib/javacomp.c, lib/javaexec.c, lib/javaversion.c:
* lib/mkdir-p.c, lib/obstack.c, lib/openat-die.c, lib/os2-spawn.c:
* lib/pagealign_alloc.c, lib/parse-datetime.y, lib/pipe-filter-gi.c:
* lib/pipe-filter-ii.c, lib/quotearg.c, lib/rpmatch.c, lib/set-acl.c:
* lib/sigpipe-die.c, lib/spawn-pipe.c, lib/strsignal.c, lib/timevar.c:
* lib/unicodeio.c, lib/userspec.c, lib/vc-mtime.c, lib/version-etc.c:
* lib/wait-process.c, lib/windows-cygpath.c, lib/xalloc-die.c:
* lib/xbinary-io.c, lib/xfreopen.c, lib/xmemcoll.c, lib/xprintf.c:
* lib/xsetenv.c, lib/xstdopen.c, lib/xstrerror.c, lib/xstrtol-error.c:
(_): Use GNULIB_TEXT_DOMAIN instead of "gnulib" when calling dgettext.
* lib/argmatch.h (ARGMATCH_DEFINE_GROUP):
* lib/file-type.c (file_type):
* lib/regex_internal.h (gettext) [HAVE_LIBINTL_H & ENABLE_NLS & !_LIBC]:
* lib/xstrtol-error.c (xstrtol_error):
Likewise.
2025-09-09 Bruno Haible <bruno@clisp.org>
Remove support for OSF/1.
* all-modules: Update comments.
* build-aux/install-reloc: Likewise.
* gnulib-tool: Likewise.
* gnulib-tool.py: Likewise.
* gnulib-tool.sh: Likewise.
* lib/calloc.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fflush.c: Likewise.
* lib/fpending.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.
* lib/fwriting.c: Likewise.
* lib/get-permissions.c: Likewise.
* lib/get-rusage-as.c: Likewise.
* lib/getdomainname.c: Likewise.
* lib/getpass.c: Likewise.
* lib/glthread/spin.c: Likewise.
* lib/idpriv-drop.c: Likewise.
* lib/idpriv-droptemp.c: Likewise.
* lib/log10l.c: Likewise.
* lib/login_tty.c: Likewise.
* lib/minmax.h: Likewise.
* lib/mountlist.c: Likewise.
* lib/netdb.in.h: Likewise.
* lib/nproc.c: Likewise.
* lib/passfd.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/resource-ext.h: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/sys-limits.h: Likewise.
* lib/termcap.h: Likewise.
* lib/terminfo.h: Likewise.
* lib/ttyname_r.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/wait-process.c: Likewise.
* m4/fmal.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getopt.m4: Likewise.
* m4/hypot.m4: Likewise.
* m4/hypotf.m4: Likewise.
* m4/hypotl.m4: Likewise.
* m4/iconv.m4: Likewise.
* m4/iconv_open-utf.m4: Likewise.
* m4/imaxabs.m4: Likewise.
* m4/imaxdiv.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/log10l.m4: Likewise.
* m4/mkstemp.m4: Likewise.
* m4/mmap-anon.m4: Likewise.
* m4/modf.m4: Likewise.
* m4/modff.m4: Likewise.
* m4/modfl.m4: Likewise.
* m4/semaphore.m4: Likewise.
* m4/socklen.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/terminfo.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* posix-modules: Likewise.
* tests/havelib/README: Likewise.
* tests/init.sh: Likewise.
* tests/socket-client.h: Likewise.
* tests/socket-server.h: Likewise.
* tests/test-echo.sh: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-strtod.h: Likewise.
* tests/test-strtof.h: Likewise.
tests: Remove support for OSF/1.
* tests/test-mbmemcasecmp.h (test_iso_8859_1): Remove code for OSF/1.
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE): Likewise.
* tests/test-select.h (test_bad_fd): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
wcsrtombs: Remove support for OSF/1.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION): Remove macro.
(gl_FUNC_WCSRTOMBS): Don't invoke it. Don't define
WCSRTOMBS_TERMINATION_BUG.
(gl_WCSRTOMBS_NULL): Remove cross-compilation guess for OSF/1.
* lib/wcsrtombs.c: Ignore WCSRTOMBS_TERMINATION_BUG.
wcrtomb: Remove support for OSF/1.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Remove cross-compilation guess for
OSF/1.
vma-iter: Remove support for OSF/1.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on OSF/1.
* lib/vma-iter.c: Remove code for OSF/1.
unistd-h: Remove support for OSF/1.
* lib/unistd.in.h: Remove code for OSF/1.
ttyname_r: Remove support for OSF/1.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Remove cross-compilation guess
for OSF/1.
truncl: Remove support for OSF/1.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Don't test against OSF/1 bug.
threadlib: Remove support for OSF/1.
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): Don't define -D_REENTRANT on
OSF/1.
(gl_THREADLIB_EARLY_BODY): Don't disable multithreading by default on
OSF/1.
sys_socket-h: Remove support for OSF/1.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Don't define _POSIX_PII_SOCKET.
sys_select-h: Remove support for OSF/1.
* m4/sys_select_h.m4 (gl_SYS_SELECT_H): Don't test against OSF/1 bug.
* lib/sys_select.in.h: Remove code for OSF/1.
signal-h: Remove support for OSF/1.
* lib/signal.in.h: Remove code for OSF/1.
unsetenv: Remove support for OSF/1.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Remove workaround for OSF/1.
remainderl-ieee: Remove support for OSF/1.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't test against OSF/1 bug.
remainderf-ieee: Remove support for OSF/1.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Don't test against OSF/1 bug.
remainder-ieee: Remove support for OSF/1.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Don't test against OSF/1 bug.
readutmp: Remove support for OSF/1.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): Don't test for ut_termination,
ut_exit members.
* lib/readutmp.c (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Don't access
ut_termination, ut_exit members.
random_r: Remove support for OSF/1.
* lib/stdlib.in.h: Don't include <random.h>.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Don't initialize HAVE_RANDOM_H.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Don't set HAVE_RANDOM_H. Don't set
REPLACE_RANDOM_R on OSF/1.
* modules/stdlib-h (Makefile.am): Don't substitute HAVE_RANDOM_H.
ptsname_r: Remove support for OSF/1.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Remove test for non-standard
signature of ptsname_r.
* lib/ptsname_r.c: Remove code for OSF/1.
*printf-posix: Remove support for OSF/1.
* m4/printf.m4 (gl_PRINTF_ENOMEM, gl_SNPRINTF_TRUNCATION_C99,
gl_SNPRINTF_DIRECTIVE_N): Remove cross-compilation guesses for OSF/1.
physmem: Remove support for OSF/1.
* lib/physmem.c: Don't include <machine/hal_sysinfo.h>, <sys/table.h>.
(physmem_total, physmem_claimable): Remove code for OSF/1.
mountlist: Remove support for OSF/1.
* m4/mountlist.m4 (gl_MOUNTLIST): Update description of
MOUNTED_GETFSSTAT.
mknod: Remove support for OSF/1.
* lib/sys_stat.in.h (mknod): Simplify C++ alias declaration.
mbrtowc: Remove support for OSF/1.
* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG2): Remove macro.
(gl_FUNC_MBRTOWC): Don't invoke it. Don't define MBRTOWC_NULL_ARG2_BUG.
(gl_MBRTOWC_INCOMPLETE_STATE): Remove cross-compilation guess for OSF/1.
* lib/mbrtowc.c (rpl_mbrtowc): Ignore MBRTOWC_NULL_ARG2_BUG.
mbrlen: Remove support for OSF/1.
* m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE): Remove cross-compilation
guess for OSF/1.
log2l: Remove support for OSF/1.
* m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Remove test regarding
log2l (-0.0L).
log2f: Remove support for OSF/1.
* m4/log2f.m4 (gl_FUNC_LOG2F_WORKS): Remove test regarding
log2f (-0.0f).
log2: Remove support for OSF/1.
* m4/log2.m4 (gl_FUNC_LOG2_WORKS): Remove test regarding log2 (-0.0).
log10f: Remove support for OSF/1.
* m4/log10f.m4 (gl_FUNC_LOG10F_WORKS): Remove macro.
(gl_FUNC_LOG10F): Don't invoke it.
* lib/log10f.c (log10f): Assume that log10f (±0.0f) is correct.
log10: Remove support for OSF/1.
* m4/log10.m4 (gl_FUNC_LOG10_WORKS): Remove macro.
(gl_FUNC_LOG10): Don't invoke it.
* lib/log10.c (log10): Assume that log10 (±0.0) is correct.
logl: Remove support for OSF/1.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Remove test regarding logl (-0.0L).
* lib/logl.c (logl): Remove workaround for OSF/1.
logf: Remove support for OSF/1.
* m4/logf.m4 (gl_FUNC_LOGF_WORKS): Remove macro.
(gl_FUNC_LOGF): Don't invoke it.
* lib/logf.c (logf): Assume that logf (±0.0f) is correct.
log: Remove support for OSF/1.
* m4/log.m4 (gl_FUNC_LOG_WORKS): Remove macro.
(gl_FUNC_LOG): Don't invoke it.
* lib/log.c (log): Assume that log (±0.0) is correct.
localcharset: Remove support for OSF/1.
* lib/localcharset.h: Update comments.
* lib/localcharset.c (alias_table): Remove entries for OSF/1.
ldd: Remove support for OSF/1.
* m4/ldd.m4 (gl_LDD): Remove code for OSF/1.
iconv_open: Remove support for OSF/1.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Remove code for OSF/1.
* lib/iconv_open.c (ICONV_FLAVOR_OSF): Remove macro.
(rpl_iconv_open): Update comments.
* lib/iconv_open-osf.gperf: Remove file.
* modules/iconv_open (Files): Remove it.
(Makefile.am): Remove rule for $(srcdir)/iconv_open-osf.h. Update
BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST
accordingly.
getprogname: Remove support for OSF/1.
* lib/getprogname.c: Remove code for OSF/1.
getlogin_r: Remove support for OSF/1.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Remove cross-compilation guess
for OSF/1.
getloadavg: Remove support for OSF/1.
* lib/getloadavg.c: Remove code for OSF/1.
get-rusage-data: Remove support for OSF/1.
* lib/get-rusage-data.c (get_rusage_data): Remove code for OSF/1.
fsusage: Remove support for OSF/1.
* lib/fsusage.c (get_fs_usage): Remove code for STAT_STATFS3_OSF1.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Remove test for for 3-argument
statfs function.
fmodl-ieee: Remove support for OSF/1.
* m4/fmodl.m4 (gl_FUNC_FMODL): Don't test against OSF/1 bug.
fmodf-ieee: Remove support for OSF/1.
* m4/fmodf.m4 (gl_FUNC_FMODF): Don't test against OSF/1 bug.
fmod: Remove support for OSF/1.
* m4/fmod.m4 (gl_FUNC_FMOD): Don't test against OSF/1 bug.
fcntl-h: Remove support for OSF/1.
* lib/fcntl.in.h (O_DIRECT): Don't test for O_DIRECTIO.
errno-iter, strerrorname_np: Remove support for OSF/1.
* lib/errno-iter.c (errno_iterate): Remove cases for EAIO, ECLONEME,
EDIRTY, EDUPPKG, EEMULATE, EFAIL, EINPROG, EMTIMERS, ERELOCATED,
ESUCCESS, EVERSION.
* lib/strerrorname_np.c (strerrorname_np): Likewise.
* tests/test-strerrorname_np.c (main): Likewise.
errno-h: Remove support for OSF/1.
* lib/errno.in.h: Don't test EMULTIHOP_HIDDEN, ENOLINK_HIDDEN,
EOVERFLOW_HIDDEN.
* m4/errno_h.m4 (gl_REPLACE_ERRNO_VALUE): Remove macro.
(gl_HEADER_ERRNO_H): Don't invoke it.
* modules/errno-h (Makefile.am): Don't substitute EMULTIHOP_HIDDEN,
EMULTIHOP_VALUE, ENOLINK_HIDDEN, ENOLINK_VALUE, EOVERFLOW_HIDDEN,
EOVERFLOW_VALUE.
faccessat, truncate: Remove support for OSF/1.
* lib/faccessat.c: Simplify include of <unistd.h>.
* lib/truncate.c: Likewise.
fchmodat, fstat, fstatat, lstat, stat: Remove support for OSF/1.
* lib/fchmodat.c: Simplify include of <sys/stat.h>.
* lib/fstat.c: Likewise.
* lib/fstatat.c: Likewise.
* lib/lstat.c: Likewise.
* lib/stat.c: Likewise.
fopen, freopen: Remove support for OSF/1.
* lib/fopen.c: Simplify include of <stdio.h>.
* lib/freopen.c: Likewise.
creat, open, openat: Remove support for OSF/1.
* lib/creat.c: Simplify include of <fcntl.h>.
* lib/open.c: Likewise.
* lib/openat.c: Likewise.
acl-permissions, file-has-acl: Remove support for OSF/1.
* m4/acl.m4 (gl_FUNC_ACL): Don't test for libpacl.
* lib/acl-internal.h (rpl_acl_get_fd, rpl_acl_set_fd): Remove functions.
* lib/acl-internal.c (acl_access_nontrivial): Remove code for OSF/1.
* lib/acl_entries.c (acl_entries): Likewise.
* lib/file-has-acl.c (fdfile_has_aclinfo): Likewise.
* lib/set-permissions.c (acl_from_mode): Likewise.
* doc/acl-resources.txt: Remove info about OSF/1.
acl, file-has-acl, copy-file tests: Remove support for OSF/1.
* tests/test-file-has-acl.sh: Remove code for OSF/1 ACLs.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-sameacls.c: Update comment.
2025-09-08 Bruno Haible <bruno@clisp.org>
stdcountof-h: Add support for C++ compilers that lack _Countof.
* lib/stdcountof.in.h: Use include_next idiom. In C++ mode, test
CXX_HAVE_STDCOUNTOF_H instead of HAVE_STDCOUNTOF_H.
* m4/stdcountof_h.m4 (gl_STDCOUNTOF_H): Invoke gl_CHECK_NEXT_HEADERS.
Set CXX_HAVE_STDCOUNTOF_H. Consider CXX_HAVE_STDCOUNTOF_H when setting
GL_GENERATE_STDCOUNTOF_H.
* modules/stdcountof-h (Depends-on): Add include_next.
(Makefile.am): Substitute GUARD_PREFIX, HAVE_STDCOUNTOF_H,
CXX_HAVE_STDCOUNTOF_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER,
PRAGMA_COLUMNS, NEXT_STDCOUNTOF_H.
2025-09-08 Bruno Haible <bruno@clisp.org>
stdcountof-h tests: Fix compilation error with clang 21.
* tests/test-stdcountof-h.c (test_func): Don't use _gl_verify_is_array
if it's not defined.
2025-09-08 Bruno Haible <bruno@clisp.org>
announce-gen: Improve efficiency of "git clone".
* build-aux/announce-gen: Use read-only mirrors of git.savannah.gnu.org.
2025-09-07 Paul Eggert <eggert@cs.ucla.edu>
maint: allow false/true in C macros
* top/maint.mk (sc_Wundef_boolean): Allow false and true in C
macro definiens. C23 requires support for false and true, and the
‘bool’ module makes it easy to support this in older compilers.
2025-09-07 Bruno Haible <bruno@clisp.org>
bootstrap: Improve efficiency of "git clone".
* top/bootstrap-funclib.sh (default_gnulib_url): Use read-only mirror of
git.savannah.gnu.org.
* build-aux/bootstrap: Regenerated.
2025-09-06 Collin Funk <collin.funk1@gmail.com>
crypo/sha3: Fix typo from the previous commit.
* lib/sha3-stream.c (sha3_xxx_stream): Add missing &'s since
sha3_free_ctx expects a pointer.
crypto/sha3-buffer, crypto/sha3: Protect against double frees (regr. today).
* lib/sha3.c (sha3_free_ctx): Only free the EVP_MD_CTX if it is not
NULL, and set it to NULL after freeing.
(DEFINE_SHA3_INIT_CTX, sha3_finish_ctx, sha3_process_bytes): Leave
freeing memory to the caller.
* lib/sha3-stream.c (sha3_xxx_stream): Call sha3_free_ctx on success and
if sha3_init_ctx fails.
* tests/test-sha3-224-buffer.c (main): Add a test that would otherwise
segfault without this patch.
* tests/test-sha3-256-buffer.c (main): Likewise.
* tests/test-sha3-384-buffer.c (main): Likewise.
* tests/test-sha3-512-buffer.c (main): Likewise.
crypto/sha3-buffer: Set errno when OpenSSL functions fail.
* lib/sha3.c: Include <errno.h>
(DEFINE_SHA3_INIT_CTX): Set errno to ENOMEM if function fails.
(sha3_finish_ctx, sha3_process_block): Set errno to EINVAL on failure.
crypto/sha3, crypto/sha3-buffer: Don't leak memory when using OpenSSL.
Reported by Pádraig Brady in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00058.html>.
* lib/sha3.c (DEFINE_SHA3_INIT_CTX) [!HAVE_OPENSSL_SHA3]: Always return
true.
[HAVE_OPENSSL_SHA3]: Call EVP_MD_CTX_create to allocate an EVP_MD_CTX.
(DEFINE_SHA3_BUFFER, sha3_process_bytes, sha3_process_block)
[!HAVE_OPENSSL_SHA3]: Always return true.
[HAVE_OPENSSL_SHA3]: Return NULL if any function calls fail.
(sha3_finish_ctx) [HAVE_OPENSSL_SHA3]: Free memory allocated by
EV_MD_CTX_create.
(sha3_free_ctx): New function.
* lib/sha3.h (struct sha3_ctx): Use a heap allocated EVP_MD_CTX.
(sha3_224_init_ctx, sha3_256_init_ctx, sha3_384_init_ctx)
(sha3_512_init_ctx, sha3_process_block, sha3_process_bytes): Change
prototype to return a bool. Mention that they return false if an OpenSSL
function fails.
(sha3_finish_ctx, sha3_read_ctx, sha3_224_buffer, sha3_256_buffer)
(sha3_384_buffer, sha3_512_buffer): Mention that these functions return
NULL if an OpenSSL function fails.
(sha3_free_ctx): New function.
* lib/sha3-stream.c (sha3_xxx_stream): Expect a function parameter that
returns bool. Check the return values of the sha3 functions, cleaning up
memory on failure.
* modules/crypto/sha3-buffer: Add bool.
2025-09-06 Bruno Haible <bruno@clisp.org>
gitsub.sh: Support URL redirections also for subcheckouts.
* top/gitsub.sh (func_expand): New function.
(func_pull): Invoke it, and show a message about redirection.
2025-09-05 Collin Funk <collin.funk1@gmail.com>
quotearg: Remove an unused variable.
* lib/quotearg.c (gettext_quote): Remove a variable that is no longer
used after yesterdays changes.
2025-09-05 Paul Eggert <eggert@cs.ucla.edu>
dfa, propername-lite, quotearg: prefer mbszero
Problem reported by Collin Funk in:
https://lists.gnu.org/r/bug-gnulib/2025-09/msg00063.html
* lib/dfa.c (mbszero) [GAWK]: Omit unnecessary parens.
* lib/localeinfo.c (mbszero) [GAWK]: New macro, copied from dfa.c.
(is_using_utf8, init_localeinfo): Use it.
* lib/propername-lite.c (proper_name_lite):
* lib/quotearg.c (gettext_quote):
Prefer mbszero to initializing the entire mbstate_t.
unlocked-io: also deal with fileno
This shouldn’t affect performance on glibc, where fileno and
fileno_unlocked are aliases under the theory that no locking is needed.
However, it might help a bit on platforms like FreeBSD where
fileno_unlocked is inline and does not lock.
* lib/unlocked-io.h (fileno, fileno_unlocked):
Define as needed, similarly to fgets etc.
* m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO):
Also check fileno_unlocked.
progname: static check instead of dynamic
* lib/progname.c: Don’t include stdio.h or stdlib.h.
(set_program_name): Omit dynamic check that (with current glibc
optimization) drags in fwrite even when unlocked I/O is wanted.
The check was not all that useful in practice and we now have a
static one anyway (which admittedly is not that useful either).
Prefer memcmp to strncmp when equivalent, for clarity.
* lib/progname.h: Include arg-nonnull.h and declare
set_program_name with _GL_ARG_NONNULL.
* modules/progname (Depends-on): Add snippet/arg-nonnull.
propername-lite: simplify USE_MBRTOC32 away
* lib/propername-lite.c (USE_MBRTOC32): Remove.
Replace its use with HAVE_UCHAR_H.
2025-09-05 Bruno Haible <bruno@clisp.org>
propername-lite: Fix compilation error on Haiku r1/beta4 (regr. today).
* lib/propername-lite.c: Test HAVE_UCHAR_H instead of relying on
__has_include.
* modules/propername-lite (Depends-on): Add uchar-h.
2025-09-05 Bruno Haible <bruno@clisp.org>
quotearg: Improve comment.
* lib/quotearg.c (gettext_quote): Improve terminology. Use standard
encoding name.
2025-09-05 Paul Eggert <eggert@cs.ucla.edu>
propername-lite: lighten it up some more
This should help GNU diffutils avoid some Gnulib modules.
* lib/propername-lite.c: Do not include c-strcase.h, localcharset.h.
Include <uchar.h> and mbrtoc32 if available.
Use __has_include to detect this; that should be good enough nowadays.
Use native mbrtoc32 instead of Gnulib replacement; that should
be good enough. 2nd arg is now possibly unused.
Use mbrtoc32, if available, to determine whether UTF-8 is being used,
to avoid dependencies.
* modules/propername-lite (Depends-on):
Remove localcharset, c-strcasecmp.
2025-09-04 Paul Eggert <eggert@cs.ucla.edu>
quotearg: do not depend on localcharset
* lib/quotearg.c: Do not include localcharset.h.
(gettext_quote): Do not use locale_charset; instead, use
mbrtoc32 to determine whether the character set uses UTF-8.
Treat GB-18030 like similar encodings, as it is not worth the
trouble of special-casing: its special-case code has been broken
since 2011, nobody cared enough to report the bug, and the idea
that someone would use GB-18030 without translations is weird anyway.
* modules/quotearg (Depends-on): Remove localcharset.
2025-09-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve changes from yesterday and today.
* gnulib-tool.sh (func_emit_tests_Makefile_am): Consider also the case
that --with-tests is specified and --makefile-name /
--tests-makefile-name are not specified. Simplify an initialization and
augmentation to an initialization.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Likewise.
2025-09-03 Collin Funk <collin.funk1@gmail.com>
crypto/sha3-buffer: Don't abort on OOM.
* modules/crypto/sha3-buffer (Depends-on): Add stddef-h.
* lib/sha3.h: Include stddef.h.
(sha3_ctx): Use a stack allocated buffer used to cast to store an
EVP_MD_CTX.
* lib/sha3.c (DEFINE_SHA3_INIT_CTX): Initialize the structure to zero.
Use the stack allocated buffer instead of calling EVP_MD_CTX_create.
(sha3_read_ctx): Just call sha3_finish_ctx similar to the other crypto
modules.
(sha3_finish_ctx): Remove call to EVP_MD_CTX_free. Call
EVP_DigestFinal_ex.
gnulib-tool: Avoid Automake error when using --create-testdir (regr. today).
* gnulib-tool.sh (func_emit_tests_Makefile_am): Initialize AM_CFLAGS and
AM_CXXFLAGS when creating a test directory.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Likewise.
2025-09-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: In tests directories, augment AM_CFLAGS and AM_CXXFLAGS.
Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00018.html>.
* gnulib-tool.sh (func_emit_tests_Makefile_am): Append the
warning-protection options to AM_CFLAGS and AM_CXXFLAGS, in addition to
initializing CFLAGS and CXXFLAGS.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Likewise.
* doc/gnulib-tool.texi (Modified build rules): Document the need to
initialize AM_CFLAGS and AM_CXXFLAGS in tests directories.
* NEWS: Mention the new requirement.
2025-09-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve C++ awareness of 2021-06-10 / 2024-03-06 commit.
* gnulib-tool.sh (func_emit_lib_Makefile_am): If the file list contains
some C++ files, emit also an initialization for
${libname}_${libext}_CXXFLAGS.
(func_emit_tests_Makefile_am): If the file list contains no C++ files,
don't emit an initialization for CXXFLAGS.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): If the file list
contains some C++ files, emit also an initialization for
${libname}_${libext}_CXXFLAGS.
(GLEmiter.tests_Makefile_am): If the file list contains no C++ files,
don't emit an initialization for CXXFLAGS.
2025-09-02 Collin Funk <collin.funk1@gmail.com>
crypto/sha3-buffer: Add support for OpenSSL.
* lib/sha3.c (DEFINE_SHA3_INIT_CTX, sha3_read_ctx, sha3_finish_ctx)
(DEFINE_SHA3_BUFFER, sha3_process_bytes, sha3_process_block)
[HAVE_OPENSSL_SHA3]: Define these functions/macros using the OpenSSL EVP
API.
* lib/sha3.h [HAVE_OPENSSL_SHA3]: Include <openssl/evp.h>.
(struct sha3_ctx) [HAVE_OPENSSL_SHA3]: Only store a pointer to an
EVP_MD_CTX in the structure.
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): If the argument is SHA3 check for
EVP_sha3_224.
* m4/sha3.m4 (gl_SHA3): New file, based on m4/sha512.m4.
* modules/crypto/sha3-buffer (Files): Add m4/gl-openssl.m4 and
m4/sha3.m4.
(configure.ac): Invoke gl_SHA3. Remove gl_BIGENDIAN.
* modules/crypto/sha3-buffer-tests (Makefile.am): Link to @LIB_CRYPTO@.
2025-09-02 Bruno Haible <bruno@clisp.org>
tests: Fix potential link errors.
* modules/mbiter-bench-tests (Makefile.am): Link the benchmark program
with $(LIBICONV).
* modules/mbiterf-bench-tests (Makefile.am): Likewise.
* modules/mbuiter-bench-tests (Makefile.am): Likewise.
* modules/mbuiterf-bench-tests (Makefile.am): Likewise.
* modules/mcel-bench-tests (Makefile.am): Likewise.
* modules/mbswidth-bench-tests (Makefile.am): Likewise.
2025-09-02 Bruno Haible <bruno@clisp.org>
Clarify link dependency towards libiconv.
* modules/propername (Link): Document requirement to link with
$(LIBICONV) or $(LTLIBICONV).
* modules/xstriconv (Link): Likewise.
2025-09-02 Bruno Haible <bruno@clisp.org>
getlogin tests: Fix link error on musl libc.
* modules/getlogin-tests (Makefile.am): Link test-getlogin with
$(LIBINTL).
2025-09-02 Bruno Haible <bruno@clisp.org>
Clarify link dependency towards libintl on FreeBSD, Solaris, etc.
* modules/acl (Link): Document requirement to link with $(LIBINTL) or
$(LTLIBINTL).
* modules/areadlinkat (Link): Likewise.
* modules/areadlinkat-with-size (Link): Likewise.
* modules/argmatch (Link): Likewise.
* modules/argp (Link): Likewise.
* modules/argp-version-etc (Link): Likewise.
* modules/backup-rename (Link): Likewise.
* modules/backupfile (Link): Likewise.
* modules/bitset (Link): Likewise.
* modules/bitsetv (Link): Likewise.
* modules/c-xvasprintf (Link): Likewise.
* modules/canon-host (Link): Likewise.
* modules/canonicalize (Link): Likewise.
* modules/chdir-long (Link): Likewise.
* modules/chmodat (Link): Likewise.
* modules/chownat (Link): Likewise.
* modules/classpath (Link): Likewise.
* modules/clean-temp (Link): Likewise.
* modules/clean-temp-simple (Link): Likewise.
* modules/closein (Link): Likewise.
* modules/closeout (Link): Likewise.
* modules/copy-file (Link): Likewise.
* modules/csharpcomp (Link): Likewise.
* modules/csharpexec (Link): Likewise.
* modules/cygpath (Link): Likewise.
* modules/dfa (Link): Likewise.
* modules/dirname (Link): Likewise.
* modules/error (Link): Likewise.
* modules/exclude (Link): Likewise.
* modules/execute (Link): Likewise.
* modules/faccessat (Link): Likewise.
* modules/fchmodat (Link): Likewise.
* modules/fchownat (Link): Likewise.
* modules/fdopendir (Link): Likewise.
* modules/fdutimensat (Link): Likewise.
* modules/file-set (Link): Likewise.
* modules/file-type (Link): Likewise.
* modules/filenamecat (Link): Likewise.
* modules/findprog (Link): Likewise.
* modules/fstatat (Link): Likewise.
* modules/fstrcmp (Link): Likewise.
* modules/fts (Link): Likewise.
* modules/getcwd (Link): Likewise.
* modules/getlogin (Link): Likewise.
* modules/getopt-gnu (Link): Likewise.
* modules/getopt-posix (Link): Likewise.
* modules/getumask (Link): Likewise.
* modules/getusershell (Link): Likewise.
* modules/glob (Link): Likewise.
* modules/hamt (Link): Likewise.
* modules/hash-triple (Link): Likewise.
* modules/hashcode-file-inode (Link): Likewise.
* modules/human (Link): Likewise.
* modules/idcache (Link): Likewise.
* modules/issymlinkat (Link): Likewise.
* modules/javacomp (Link): Likewise.
* modules/javaexec (Link): Likewise.
* modules/javaversion (Link): Likewise.
* modules/kwset (Link): Likewise.
* modules/lchmod (Link): Likewise.
* modules/linebuffer (Link): Likewise.
* modules/linkat (Link): Likewise.
* modules/list-c++ (Link): Likewise.
* modules/long-options (Link): Likewise.
* modules/map-c++ (Link): Likewise.
* modules/mem-hash-map (Link): Likewise.
* modules/mkancesdirs (Link): Likewise.
* modules/mkdir-p (Link): Likewise.
* modules/mkdirat (Link): Likewise.
* modules/mkfifoat (Link): Likewise.
* modules/modechange (Link): Likewise.
* modules/mountlist (Link): Likewise.
* modules/obstack (Link): Likewise.
* modules/obstack-printf (Link): Likewise.
* modules/obstack-printf-gnu (Link): Likewise.
* modules/obstack-printf-posix (Link): Likewise.
* modules/obstack-zprintf (Link): Likewise.
* modules/obstack-zprintf-gnu (Link): Likewise.
* modules/obstack-zprintf-posix (Link): Likewise.
* modules/omap-c++ (Link): Likewise.
* modules/openat (Link): Likewise.
* modules/openat-die (Link): Likewise.
* modules/openat-safer (Link): Likewise.
* modules/opendirat (Link): Likewise.
* modules/oset-c++ (Link): Likewise.
* modules/pagealign_alloc (Link): Likewise.
* modules/parse-datetime (Link): Likewise.
* modules/parse-datetime2 (Link): Likewise.
* modules/pipe-filter-gi (Link): Likewise.
* modules/pipe-filter-ii (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/propername-lite (Link): Likewise.
* modules/quote (Link): Likewise.
* modules/quotearg (Link): Likewise.
* modules/quotearg-simple (Link): Likewise.
* modules/readlinkat (Link): Likewise.
* modules/readtokens (Link): Likewise.
* modules/readtokens0 (Link): Likewise.
* modules/readutmp (Link): Likewise.
* modules/regex-quote (Link): Likewise.
* modules/relocatable-lib (Link): Likewise.
* modules/relocatable-prog (Link): Likewise.
* modules/renameat (Link): Likewise.
* modules/renameatu (Link): Likewise.
* modules/same (Link): Likewise.
* modules/save-cwd (Link): Likewise.
* modules/savedir (Link): Likewise.
* modules/savewd (Link): Likewise.
* modules/selinux-at (Link): Likewise.
* modules/set-c++ (Link): Likewise.
* modules/sh-quote (Link): Likewise.
* modules/sigpipe-die (Link): Likewise.
* modules/spawn-pipe (Link): Likewise.
* modules/stack (Link): Likewise.
* modules/statat (Link): Likewise.
* modules/string-desc-quotearg (Link): Likewise.
* modules/strsignal (Link): Likewise.
* modules/supersede (Link): Likewise.
* modules/symlinkat (Link): Likewise.
* modules/system-quote (Link): Likewise.
* modules/term-style-control (Link): Likewise.
* modules/timevar (Link): Likewise.
* modules/trim (Link): Likewise.
* modules/unicodeio (Link): Likewise.
* modules/unlinkat (Link): Likewise.
* modules/userspec (Link): Likewise.
* modules/utimecmp (Link): Likewise.
* modules/utimensat (Link): Likewise.
* modules/vc-mtime (Link): Likewise.
* modules/verror (Link): Likewise.
* modules/version-etc (Link): Likewise.
* modules/version-etc-fsf (Link): Likewise.
* modules/wait-process (Link): Likewise.
* modules/windows-cygpath (Link): Likewise.
* modules/xalignalloc (Link): Likewise.
* modules/xalloc (Link): Likewise.
* modules/xalloc-die (Link): Likewise.
* modules/xbinary-io (Link): Likewise.
* modules/xconcat-filename (Link): Likewise.
* modules/xfreopen (Link): Likewise.
* modules/xgetcwd (Link): Likewise.
* modules/xgetcwd-lgpl (Link): Likewise.
* modules/xgetdomainname (Link): Likewise.
* modules/xgetgroups (Link): Likewise.
* modules/xgethostname (Link): Likewise.
* modules/xhash (Link): Likewise.
* modules/xlist (Link): Likewise.
* modules/xmalloca (Link): Likewise.
* modules/xmap (Link): Likewise.
* modules/xmemcoll (Link): Likewise.
* modules/xmemdup0 (Link): Likewise.
* modules/xomap (Link): Likewise.
* modules/xoset (Link): Likewise.
* modules/xprintf (Link): Likewise.
* modules/xprintf-gnu (Link): Likewise.
* modules/xprintf-posix (Link): Likewise.
* modules/xreadlink (Link): Likewise.
* modules/xreadlinkat (Link): Likewise.
* modules/xset (Link): Likewise.
* modules/xsetenv (Link): Likewise.
* modules/xstdopen (Link): Likewise.
* modules/xstrerror (Link): Likewise.
* modules/xstriconv (Link): Likewise.
* modules/xstring-buffer (Link): Likewise.
* modules/xstring-buffer-reversed (Link): Likewise.
* modules/xstring-desc (Link): Likewise.
* modules/xstrndup (Link): Likewise.
* modules/xstrtol-error (Link): Likewise.
* modules/xsublist (Link): Likewise.
* modules/xvasprintf (Link): Likewise.
* modules/xvasprintf-gnu (Link): Likewise.
* modules/xvasprintf-posix (Link): Likewise.
* modules/yesno (Link): Likewise.
2025-09-01 Bruno Haible <bruno@clisp.org>
uchar-h: Fix compilation error of <cuchar> in C++ mode on macOS 15.
* lib/uchar.in.h: In C++ mode, use CXX_HAVE_UCHAR_H instead of
HAVE_UCHAR_H.
* m4/uchar_h.m4 (gl_UCHAR_H): Set CXX_HAVE_UCHAR_H.
* modules/uchar-h (Makefile.am): Substitute CXX_HAVE_UCHAR_H.
2025-09-01 Collin Funk <collin.funk1@gmail.com>
sys_types-h tests: Fix a static_assert failure on glibc/alpha.
* tests/test-sys_types-h.c [__GLIBC__ && __alpha]: Don't check that
blksize_t and blkcnt_t are signed.
* doc/posix-headers/sys_types.texi: Mention that these types are
unsigned on this platform.
sys_stat-h tests: Fix a static_assert failure on glibc/alpha.
Reported by Santiago Vila <sanvila@debian.org> in:
<https://lists.gnu.org/archive/html/bug-m4/2025-09/msg00000.html>.
* tests/test-sys_stat-h.c [__GLIBC__ && __alpha]: Don't check that
blksize_t and blkcnt_t are signed.
* doc/posix-headers/sys_stat.texi: Mention that these types are
unsigned on this platform.
2025-09-01 Paul Eggert <eggert@cs.ucla.edu>
tests: more fixes for AT_FDCWD portability
* tests/test-areadlinkat-with-size.c (main):
* tests/test-areadlinkat.c (main):
* tests/test-faccessat.c (main):
* tests/test-fchmodat.c (main):
* tests/test-fchownat.c (main):
* tests/test-fstatat.c (main):
* tests/test-linkat.c (main):
* tests/test-mkdirat.c (main):
* tests/test-mkfifoat.c (main):
* tests/test-openat.c (main):
* tests/test-openat-safer.c (main):
* tests/test-readlinkat.c (main):
* tests/test-renameat.c (main):
* tests/test-renameatu.c (main):
* tests/test-symlinkat.c (main):
* tests/test-unlinkat.c (main):
* tests/test-utimensat.c (main):
Work even if AT_FDCWD == -1.
2025-08-31 Collin Funk <collin.funk1@gmail.com>
u64: Allow the header to be included twice.
* lib/u64.h: Add include guard.
crypto/sha3: New module.
* modules/crypto/sha3: New file.
* lib/sha3-stream.c: New file, based on sha512-stream.c.
* lib/sha3.h (sha3_224_stream, sha3_256_stream, sha3_384_stream)
(sha3_512_stream): New declarations.
crypto/sha3-buffer: Add tests.
* modules/crypto/sha3-buffer-tests: New file.
* tests/test-sha3-224-buffer.c: Likewise.
* tests/test-sha3-256-buffer.c: Likewise.
* tests/test-sha3-384-buffer.c: Likewise.
* tests/test-sha3-512-buffer.c: Likewise.
* tests/bench-sha3-224.c: Likewise.
* tests/bench-sha3-256.c: Likewise.
* tests/bench-sha3-384.c: Likewise.
* tests/bench-sha3-512.c: Likewise.
crypto/sha3-buffer: New module.
* lib/u64.h (u64getlo, u64not): New functions.
* lib/sha3.c: New file, based on lib/sha512.c.
* lib/sha3.h: New file, based on lib/sha512.h.
* modules/crypto/sha3-buffer: New file.
2025-08-31 Paul Eggert <eggert@cs.ucla.edu>
u64: avoid theoretical problem with >64-bit int
* lib/u64.h: Include limits.h, for INT_MAX. Use uint64_t only if
INT_MAX < UINT64_MAX, to avoid undefined behavior on theoretical
platforms where adding two uint64_t expressions can have undefined
behavior on signed integer overflow.
2024-08-25 Bruno Haible <bruno@clisp.org>
nstrftime tests: Test in the UTF-8 environment on native Windows.
Prompted by <https://debbugs.gnu.org/79296>.
* tests/test-nstrftime-w32utf8.sh: New file.
* tests/test-nstrftime-w32utf8.c: New file.
* modules/nstrftime-tests (Files): Add them. Add windows-utf8.rc,
windows-utf8.manifest, m4/windows-rc.m4.
(configure.ac): Invoke gl_WINDOWS_RC.
(Makeile.am): Arrange to build test-nstrftime-w32utf8 and
run test-nstrftime-w32utf8.sh.
2024-08-23 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Update a comment.
* lib/gen-uni-tables.c: Update comment regarding glibc.
2025-08-22 Collin Funk <collin.funk1@gmail.com>
mbfile: Make mb_setascii an inline function.
* lib/mbchar.h (mb_setascii): Define as an extern inline function
instead of a macro.
2024-08-19 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.42.
* doc/glibc-functions/uabs.texi: New file.
* doc/glibc-functions/ulabs.texi: New file.
* doc/glibc-functions/ullabs.texi: New file.
* doc/glibc-functions/uimaxabs.texi: New file.
* doc/gnulib.texi (Glibc inttypes.h): New section.
(Glibc stdlib.h): Include three of these files.
doc: Update for glibc 2.42.
* doc/glibc-functions/pthread_gettid_np.texi: New file.
* doc/gnulib.texi (Glibc pthread.h): Include it.
* doc/posix-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
2024-08-19 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.41.
* doc/glibc-functions/sched_getattr.texi: New file.
* doc/glibc-functions/sched_setattr.texi: New file.
* doc/gnulib.texi (Glibc sched.h): Include them.
* doc/posix-functions/initstate.texi: Update.
* doc/glibc-functions/initstate_r.texi: Likewise.
* doc/posix-functions/compoundn*.texi: Likewise.
2025-08-19 Pádraig Brady <P@draigBrady.com>
nproc: honor cgroupv2 CPU quotas
* lib/nproc.c (cgroup2_mount): Identify the cgroup2 mount point,
first at the common location for efficiency,
resorting to searching mount points otherwise.
(get_cgroup2_cpu_quota): Walk cgroup2 quotas for the current process,
returning the lowest integer number of CPUs configured.
(cpu_quota): On Linux return the cgroupv2 CPU quota if the
current scheduler honors it. Otherwise return ULONG_MAX.
(num_processors): Clamp the return to <= quota.
* m4/nproc.m4: Add a check for mntent.h.
* tests/test-nproc.c: Document how cgroup CPU quotas were tested.
2025-08-19 Bruno Haible <bruno@clisp.org>
doc: Mention some musl libc stubs.
* doc/posix-functions/sched_getparam.texi: Mention musl libc stub.
* doc/posix-functions/sched_setparam.texi: Likewise.
* doc/posix-functions/sched_getscheduler.texi: Likewise.
* doc/posix-functions/sched_setscheduler.texi: Likewise.
* doc/posix-functions/posix_spawnattr_getschedparam.texi: Likewise.
* doc/posix-functions/posix_spawnattr_setschedparam.texi: Likewise.
* doc/posix-functions/posix_spawnattr_getschedpolicy.texi: Likewise.
* doc/posix-functions/posix_spawnattr_setschedpolicy.texi: Likewise.
2025-08-18 Bruno Haible <bruno@clisp.org>
sys_stat: Fix namespace pollution on native Windows.
* lib/issymlink.h: New file, extracted from lib/sys_stat.in.h.
* lib/issymlink.c: Include issymlink.h instead of <sys/stat.h>.
* lib/issymlinkat.c: Likewise.
* modules/issymlink (Files): Add lib/issymlink.h.
(Depends-on): Add extern-inline.
(configure.ac): Use gl_MODULE_INDICATOR.
(Include): Set to "issymlink.h".
* modules/issymlinkat (Files): Add lib/issymlink.h.
(Depends-on): Add extern-inline.
(configure.ac): Use gl_MODULE_INDICATOR.
(Include): Set to "issymlink.h".
* lib/sys_stat.in.h: Don't include <errno.h>, <unistd.h>.
(_GL_ISSYMLINK_INLINE, _GL_ISSYMLINKAT_INLINE): Remove macros.
(issymlink, issymlinkat): Remove functions.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Don't initialize
GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT.
* modules/sys_stat-h (Depends-on): Remove extern-inline.
(Makefile.am): Don't substitute GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT.
* lib/chown.c: Include issymlink.h.
* lib/lchown.c: Likewise.
* lib/lchmod.c: Likewise.
* lib/fchmodat.c: Likewise.
* lib/rename.c: Likewise.
* lib/renameatu.c: Likewise.
* lib/unlink.c: Likewise.
* lib/unlinkat.c: Likewise.
* lib/utimens.c: Likewise.
2025-08-15 Bruno Haible <bruno@clisp.org>
Reduce risk of compilation errors within include files.
* lib/dirent.in.h: Move include <sys/stat.h> near the end of the file.
* lib/stdlib.in.h: Move include <sys/wait.h> near the end of the file.
* lib/sys_select.in.h: Move include <string.h> near the end of the file.
* lib/unistd.in.h: Add comment.
2025-08-14 Bruno Haible <bruno@clisp.org>
utimens: Use issymlink.
* lib/utimens.c (lutimens): Use issymlink instead of readlink.
* modules/utimens (Depends-on): Remove readlink. Add issymlink.
2025-08-14 Bruno Haible <bruno@clisp.org>
unlinkat: Use issymlinkat.
* lib/unlinkat.c (rpl_unlinkat): Use issymlinkat instead of readlinkat.
* modules/unlinkat (Depends-on): Remove readlinkat. Add issymlinkat.
2025-08-14 Bruno Haible <bruno@clisp.org>
unlink: Use issymlink.
* lib/unlink.c (rpl_unlink): Use issymlink instead of readlink.
* modules/unlink (Depends-on): Remove readlink. Add issymlink.
2025-08-14 Bruno Haible <bruno@clisp.org>
renameatu: Use issymlinkat.
* lib/renameatu.c (renameatu): Use issymlinkat instead of readlinkat.
* modules/renameatu (Depends-on): Remove readlinkat. Add issymlinkat.
2025-08-14 Bruno Haible <bruno@clisp.org>
rename: Use issymlink.
* lib/rename.c (rpl_rename): Use issymlink instead of readlink.
* modules/rename (Depends-on): Remove readlink. Add issymlink.
2025-08-14 Bruno Haible <bruno@clisp.org>
fchmodat: Use issymlinkat.
* lib/fchmodat.c (fchmodat): Use issymlinkat instead of readlinkat.
* modules/fchmodat (Depends-on): Add issymlinkat, openat.
2025-08-14 Bruno Haible <bruno@clisp.org>
lchmod: Use issymlink, issymlinkat.
* lib/lchmod.c (lchmod): Use issymlink instead of readlink and
issymlinkat instead of readlinkat.
* modules/lchmod (Depends-on): Remove readlink. Add issymlink,
issymlinkat.
2025-08-14 Bruno Haible <bruno@clisp.org>
chown: Avoid a redundant stat() call.
* lib/chown.c (rpl_chown): Set stat_valid after stat() succeeded.
2025-08-14 Bruno Haible <bruno@clisp.org>
lchown: Use issymlink.
* lib/lchown.c (lchown): Use issymlink instead of readlink.
* modules/lchown (Depends-on): Remove readlink. Add issymlink.
2025-08-14 Bruno Haible <bruno@clisp.org>
chown: Use issymlink.
* lib/chown.c (rpl_chown): Use issymlink instead of readlink.
* modules/chown (Depends-on): Add issymlink.
2025-08-14 Bruno Haible <bruno@clisp.org>
issymlink, issymlinkat: New modules.
* lib/sys_stat.in.h: Invoke _GL_INLINE_HEADER_BEGIN,
_GL_INLINE_HEADER_END. Include <errno.h>, <unistd.h>.
(_GL_ISSYMLINK_INLINE, _GL_ISSYMLINKAT_INLINE): New macros.
(issymlink, issymlinkat): New declarations.
* lib/unistd.in.h: Do the #include <fcntl.h>, when needed for O_CLOEXEC,
at the end of the file. So that when <fcntl.h> includes <sys/stat.h>,
the declarations of readlink() and readlinkat() on native Windows are
already present.
* lib/issymlink.c: New file.
* lib/issymlinkat.c: New file.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT.
* modules/sys_stat-h (Depends-on): Add extern-inline.
(Makefile.am): Substitute GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT.
* modules/issymlink: New file.
* modules/issymlinkat: New file.
2025-08-11 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update C warnings for GCC 15.2
This is merely changes to commentary; no changes to
the flags passed to GCC.
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 15.2.
Prefer readlink to lstat+S_ISLNK when easy
To test for a symlink, use readlink, not lstat+S_ISLNK,
when the lstat is used only for the symlink test.
This avoids EOVERFLOW issues.
* lib/lchown.c (rpl_lchown) [CHOWN_CHANGE_TIME_BUG]:
* lib/rename.c (rpl_rename):
[!(_WIN32 && !__CYGWIN__) && (RENAME_TRAILING_SLASH_SOURCE_BUG
|| RENAME_DEST_EXISTS_BUG || RENAME_HARD_LINK_BUG)]:
* lib/renameatu.c (renameatu):
[HAVE_RENAMEAT && RENAME_TRAILING_SLASH_SOURCE_BUG]:
* lib/unlink.c (rpl_unlink):
* lib/unlinkat.c (rpl_unlinkat):
* lib/utimens.c (lutimens) [!HAVE_LUTIMENS]:
Prefer readlink to lstat+S_ISLNK.
* modules/lchown, modules/rename, modules/unlink, modules/utimens:
(Depends-on): Add readlink.
* modules/unlinkat (Depends-on): Add fstatat, readlinkat.
2025-08-11 Bruno Haible <bruno@clisp.org>
nlcanon tests: Fix test failure on Solaris.
* tests/test-nlcanon.sh: Handle the --no-reexec option (from init.sh).
2025-08-11 Bruno Haible <bruno@clisp.org>
nlcanon: Make it work on OpenBSD.
* build-aux/nlcanon.sh.in (sed_convert_crlf): New variable. Use it
instead of a sed script that contains '\r'.
2025-08-10 Bruno Haible <bruno@clisp.org>
Use standard way of including <config.h>.
* lib/string-desc.c: Use normalized boilerplate.
* lib/string-desc-contains.c: Likewise.
* lib/str_startswith.c: Likewise.
* lib/str_endswith.c: Likewise.
* lib/mbs_endswith.c: Likewise.
2025-08-10 Bruno Haible <bruno@clisp.org>
test-framework-sh: Ensure TESTS_ENVIRONMENT gets augmented in gltests/.
* modules/test-framework-sh (Applicability): New section.
2025-08-09 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix invalid generated Makefile.am (regression 2025-08-04).
* gnulib-tool.sh (func_emit_lib_Makefile_am): Emit line that initializes
TESTS_ENVIRONMENT.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Likewise.
2025-08-05 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Remove module.
It is now available through
$ git clone https://git.savannah.gnu.org/git/vc-changelog.git
see https://gitweb.git.savannah.gnu.org/gitweb/?p=vc-changelog.git .
* lib/git-merge-changelog.c: Remove file.
* modules/git-merge-changelog: Remove file.
* NEWS: Mention the change.
2025-08-04 Bruno Haible <bruno@clisp.org>
nlcanon tests: Fix last commit.
* tests/init.sh (setup_): Revert last change.
* modules/test-framework-sh (Makefile.am): Augment TESTS_ENVIRONMENT
here.
* modules/nlcanon-tests (Makefile.am): Don't augment TESTS_ENVIRONMENT
here.
2025-08-04 Paul Eggert <eggert@cs.ucla.edu>
vma-iter: pacify Coverity Scan
* lib/vma-iter.c (vma_iterate_procmap_query):
Define only if it could be useful.
dfa: pacify Coverity Scan
* lib/dfa.c (parse_bracket_exp): Omit unnecessary assignments.
2025-08-04 Bruno Haible <bruno@clisp.org>
nlcanon: Add tests.
* tests/test-nlcanon.sh: New file.
* modules/nlcanon-tests: New file.
* tests/init.sh (setup_): Adjust also top_builddir, if set.
nlcanon: New module.
* build-aux/nlcanon.sh.in: New file, with a function func_tmpdir taken
from build-aux/csharpexec.sh.in.
* modules/nlcanon: New file.
2025-08-01 Collin Funk <collin.funk1@gmail.com>
doc: Mention the copy_file_range bug.
* doc/glibc-functions/copy_file_range.texi: Mention glibc bug 33245 in
version 2.41 and 2.42.
2025-08-01 Paul Eggert <eggert@cs.ucla.edu>
copy-file-range: work around glibc bug 33245
Problem reported by Leah Neukirchen <https://bugs.gnu.org/79139>.
* lib/copy-file-range.c: Include sys-limits.h.
(copy_file_range) [glibc 2.42 and earlier]:
Copy at most SYS_BUFSIZE_MAX bytes.
* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE):
Replace on glibc platforms, as well as on Linux platforms.
* modules/copy-file-range (Files): Add lib/sys-limits.h.
copy-file-range: tune for more-modern kernels
* lib/copy-file-range.c [__linux__ && HAVE_COPY_FILE_RANGE]:
Include <linux/version.h>. Include <sys/utsname.h>
only for kernel 5.2 and earlier.
(CHECK_LINUX_KERNEL_VERSION): New macro.
(copy_file_range) [__linux__ && HAVE_COPY_FILE_RANGE]:
Call utsname only when built for kernel 5.2 and earlier.
(copy_file_range) [!__linux__ && HAVE_COPY_FILE_RANGE]:
Use underlying copy_file_range. This doesn’t change
behavior since the code is not compiled in this case,
but it makes the code a bit cleaner.
* modules/copy-file-range (Depends-on): Add bool.
2025-08-01 Bruno Haible <bruno@clisp.org>
sigsegv: Use new ioctl available in Linux >= 6.11.
* lib/stackvma.c: On Linux, include <sys/ioctl.h>, <linux/fs.h>.
(vma_iterate_procmap_query): New function.
(vma_iterate): Try vma_iterate_procmap_query first.
2025-08-01 Bruno Haible <bruno@clisp.org>
vma-iter: Use new ioctl available in Linux >= 6.11.
* lib/vma-iter.c: On Linux, include <sys/ioctl.h>, <linux/fs.h>.
(vma_iterate_procmap_query): New function.
(vma_iterate): Try vma_iterate_procmap_query first.
2025-07-31 Simon Josefsson <simon@josefsson.org>
doc: Improvements for gnulib git bundle.
* doc/gnulib-git-bundle.texi (Gnulib Git Bundle): Add 20250729 release.
Improve reproducibility instructions.
2025-07-29 Collin Funk <collin.funk1@gmail.com>
announce-gen: Support all non-deprecated Automake dist formats.
* build-aux/announce-gen (@archive_suffixes): Add tar.bz3, tar.zst, and
zip.
2025-07-29 Bruno Haible <bruno@clisp.org>
nstrftime: Handle non-Gregorian calendars the same way on all platforms.
Suggested by Collin Funk.
* modules/nstrftime-limited: New file, based on modules/nstrftime.
* modules/nstrftime (Depends-on): Add nstrftime-limited.
Add localename-unsafe. Remove localename-unsafe-limited.
(configure.ac): Invoke gl_MODULE_INDICATOR.
(Makefile.am): Don't add nstrftime.c to lib_SOURCES; this would conflict
with modules/nstrftime-limited.
(Link): Add $(LIBTHREAD).
* lib/strftime.c (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME): Don't force
to false if GNULIB_NSTRFTIME is defined.
* modules/nstrftime-tests (Makefile.am): Link test-nstrftime,
test-nstrftime-?? with $(LIBTHREAD).
2025-07-29 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Fix upstream/downstream heuristic for "git pull".
* lib/git-merge-changelog.c: Suggest to pass %Y as 4th parameter.
Include <errno.h>, spawn-pipe.h, wait-process.h, xvasprintf.h,
c-ctype.h.
(_): New macro.
(execute_and_read_line): New function, from lib/javacomp.c.
(is_all_hex_digits): New function.
(long_options): Moved into 'main'.
(usage): Document the --debug option.
(main): Accept a --debug option and turn on debugging at runtime instead
of compile-time. Accept an optional other_conflict_label parameter.
Improve 'downstream' determination using two heuristics.
* modules/git-merge-changelog (Depends-on): Add spawn-pipe,
wait-process, xvasprintf, c-ctype.
2025-07-29 Bruno Haible <bruno@clisp.org>
javacomp: Fix memory leak.
* lib/javacomp.c (execute_and_read_line): Free the line after getline()
failed.
2025-07-29 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Fix essential functionality (regr. 2023-05-21).
Fixes two mistakes in commit a8921605af342b9061e04e18fc952d386e5a071c.
Reported by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00181.html>.
* lib/git-merge-changelog.c (main): Fix off-by-one mistakes in crucial
places.
2025-07-28 Paul Eggert <eggert@cs.ucla.edu>
float-h: change IBM long double to match GCC 15
This is in response to the GCC developers;
see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120993>.
* lib/float.c (gl_LDBL_MAX): Remove the implementation for PowerPC,
as it should no longer be needed.
* lib/float.in.h (LDBL_MIN_EXP, LDBL_MIN_10_EXP, LDBL_MIN)
(LDBL_MAX, LDBL_EPSILON, LDBL_NORM_MAX): On PowerPC with IBM long
double, simplify by using the GCC 15 values unconditionally.
These are the correct values according to the GCC developers
and there seems little point to disagreeing with current GCC
about obsolescent arithmetic that is so problematic in practice.
* tests/test-float-h.c (test_long_double): Relax tests of LDBL_MAX
when !LDBL_IS_IEC_60559, as the tests would now fail on PowerPC and
they were not portable in that case anyway.
2025-07-23 Collin Funk <collin.funk1@gmail.com>
posixtm tests: Avoid test failure on Haiku.
* tests/test-posixtm.c (T): On Haiku, disable test cases that would
fail.
sethostname tests: Avoid test failure on Haiku.
* tests/test-sethostname2.c (main): On Haiku, skip the "too long
hostname" test.
* doc/glibc-functions/sethostname.texi: Mention the Haiku problem.
2025-07-23 Bruno Haible <bruno@clisp.org>
run-test: Suggest a more reliable way of invoking valgrind.
* build-aux/run-test (func_usage): Suggest to use the --error-exitcode
option.
2025-07-23 Bruno Haible <bruno@clisp.org>
thrd: Avoid conversion between different function pointer types.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00170.html>.
* m4/thrd.m4 (gl_FUNC_THRD_JOIN): Define BROKEN_THRD_START_T or
BROKEN_THRD_JOIN. Don't define BROKEN_THRD_START_T_OR_JOIN.
* lib/thrd.c (thrd_main_func): Define with the right return type,
depending on BROKEN_THRD_START_T.
2025-07-22 Collin Funk <collin.funk1@gmail.com>
Paul Eggert <eggert@cs.ucla.edu>
doc: Document that fsync and fdatasync require write access.
Reported for fsync on AIX by Lakshmi-Surekha
<Lakshmi.Kovvuri@ibm.com> in:
<https://github.com/tukaani-project/xz/issues/188>.
* doc/posix-functions/fdatasync.texi:
* doc/posix-functions/fsync.texi: Document the behavior.
2025-07-22 Paul Eggert <eggert@cs.ucla.edu>
mkdir-p: ENOENT/ENOTDIR safety and consistency
* lib/mkdir-p.c (make_dir_parents): If mkdir fails with ENOENT or
ENOTDIR, do not attempt anything else since the file does not exist.
Treat ENOENT and ENOTDIR consistently later, too.
mkdir-p: better diagnostics
Problem reported by Lauri Tirkkonen <https://bugs.gnu.org/79072>.
* lib/mkdir-p.c (make_dir_parents):
If savewd_chdir fails due to anything other than EACCES, do
not attempt to preserve permissions; instead, fail with mkdir’s
errno if nonzero, and with savewd_chdir’s errno otherwise.
2025-07-21 Collin Funk <collin.funk1@gmail.com>
sys_un-h: Make sure that the 'sys' subdirectory is created.
* modules/sys_un-h (Makefile.am): Make the 'sys' subdirectory. Remove
@NMD@ that is not applicable to subdirectories.
2025-07-21 Bruno Haible <bruno@clisp.org>
Fix typos.
Reported by <Jens.Schleusener@fossies.org>.
* lib/mbiterf.h: Fix typo in comment.
* lib/mbuiterf.h: Likewise.
2025-07-20 Collin Funk <collin.funk1@gmail.com>
stdioext: Adjust some comments.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00161.html>.
* lib/stdio-impl.h: In comments use a comma instead of an ampersand to
separate items.
stdioext: Port to recent OpenBSD snapshots with an incomplete FILE type.
* lib/fbufmode.c (fbufmode): Check for __OpenBSD__ definition since
__sferror is no longer defined publicly on this platform.
* lib/fflush.c (clear_ungetc_buffer, update_fpos_cache, rpl_fflush):
Likewise.
* lib/fpending.c (__fpending): Likewise.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* lib/stdio-impl.h: Likewise.
(_gl_flags_file_t): Define to 'short'.
(_gl_file_offset_t): Define to 'fpos_t'.
(fp_): Define this macro using the one already written for Android.
(struct __sfileext): Define the same way as Android which does not rely
on a public 'struct __sbuf' definition.
(__SLBF, __SNBF, __SRD, __SWR, __SRW, __SEOF, __SERR, __SOFF): Define
macros to the same value as on Android.
2025-07-20 Bruno Haible <bruno@clisp.org>
doc: Document resilience against supply chain attacks.
* doc/gnulib-intro.texi (Other source code libraries): New subsection.
2025-07-19 Collin Funk <collin.funk1@gmail.com>
readme-release: Remove link to Hydra autobuilder.
* top/README-release: Remove link to Hydra autobuilder since the recipes
have not been updated in years.
2025-07-19 Bruno Haible <bruno@clisp.org>
next-prime: Tweaks for GNU gettext.
* lib/next-prime.c (is_prime): Change so that is_prime (3) returns true.
* tests/test-next-prime.c (main): Allow next_prime (1) to be 1.
2025-07-18 Collin Funk <collin.funk1@gmail.com>
doc: Mention GNU/Hurd is missing sync_file_range.
* doc/glibc-functions/sync_file_range.texi: Add GNU/Hurd to the list of
platforms missing sync_file_range.
2025-07-17 Bruno Haible <bruno@clisp.org>
parse-datetime: Update documentation regarding non-Gregorian calendars.
* doc/parse-datetime.texi (General date syntax): Mention that date
syntax should use the Gregorian calendar. Change examples that use %Y
to use LC_ALL=C, so that they work even for users in Thailand, Iran, or
Ethiopia.
2025-07-17 Bruno Haible <bruno@clisp.org>
Fix sb_dupfree(), sbr_dupfree() on an empty buffer.
Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> at
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00119.html>.
* lib/string-desc.c (_sd_new_addr, _rwsd_new_addr): Don't canonicalize
(0, non-NULL) to (0, NULL).
* lib/string-buffer.h (sb_dupfree): Fix description.
* lib/string-buffer-reversed.h (sbr_dupfree): Likewise.
* tests/test-string-buffer.c (main): Test sb_dupfree on an empty buffer.
* tests/test-string-buffer-reversed.c (main): Test sbr_dupfree on an
empty buffer.
2025-07-16 Collin Funk <collin.funk1@gmail.com>
doc: Use @code around errno constants.
* doc/posix-functions/mkfifoat.texi: Use @code for errno constants
instead of @samp.
* doc/posix-functions/mknodat.texi: Likewise.
* doc/posix-functions/setenv.texi: Likewise.
* doc/posix-functions/symlinkat.texi: Likewise.
* doc/posix-functions/unsetenv.texi: Likewise.
* doc/glibc-functions/sethostname.texi: Use @code around errno
constants.
* doc/posix-functions/chmod.texi: Likewise.
* doc/posix-functions/posix_fallocate.texi: Likewise.
* doc/posix-functions/ptsname_r.texi: Likewise.
2025-07-15 Collin Funk <collin.funk1@gmail.com>
doc: Mention copy_file_range stub on GNU/Hurd.
* doc/glibc-functions/copy_file_range.texi: Use @code around errno
constants. Mention that the GNU/Hurd version of this function is just a
stub.
2025-07-15 Bruno Haible <bruno@clisp.org>
nstrftime: Add support for non-Gregorian calendars.
* lib/calendars.h: New file.
* lib/calendar-thai.h: New file.
* lib/calendar-persian.h: New file.
* lib/calendar-ethiopian.h: New file.
* lib/strftime.h (nstrftime): Document which directives don't work with
non-Gregorian calendars.
* lib/strftime.c (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME): New macro.
Include localcharset.h, localename.h, calendars.h.
(CAL_ARGS): New macro.
(my_strftime): Recognize locales with non-Gregorian calendars. Pass cal
and caldate down to __strftime_internal.
(__strftime_internal): Accept additional parameters cal, caldate.
Remove rejection of modifier 'O' for directive 'Y' and allow a non-ASCII
alternate digits base. Produce calendar-aware output for the directives
'b', 'h', 'B', 'x', 'd', 'e', 'm', 'Y'.
* modules/nstrftime (Files): Add the calendar files.
(Depends-on): Add localcharset.
(Link): New section.
* modules/fprintftime (Link): New section.
* tests/test-nstrftime-DE.c: New file.
* tests/test-nstrftime-TH.c: New file.
* tests/test-nstrftime-IR.c: New file.
* tests/test-nstrftime-ET.c: New file.
* modules/nstrftime-tests (Files): Add them.
(Depends-on): Add localcharset, setenv.
(Makefile.am): Link test-nstrftime with $(INTL_MACOSX_LIBS). Arrange to
compile and run test-nstrftime-DE, test-nstrftime-TH, test-nstrftime-IR,
test-nstrftime-ET.
2025-07-15 Bruno Haible <bruno@clisp.org>
nstrftime: Remove old comment about OSF/1.
* lib/strftime.c (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 always.
2025-07-15 Bruno Haible <bruno@clisp.org>
localename-unsafe-limited: Extend to more platforms.
* modules/localename-unsafe-limited (Description): Update platforms
list.
(Files): Add m4/intlmacosx.m4, m4/musl.m4.
(Depends-on): Add localename-environ, strdup, windows-mutex.
(configure.ac): Invoke gl_MUSL_LIBC.
(Link): Add $(INTL_MACOSX_LIBS).
* m4/localename.m4 (gl_LOCALENAME_UNSAFE): Don't require
gl_LOCALE_H_DEFAULTS.
(gl_LOCALENAME_UNSAFE_LIMITED): Require gt_INTL_MACOSX.
2025-07-15 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe-limited: Extend to more platforms.
* modules/getlocalename_l-unsafe-limited (Description): Update platforms
list.
(Files): Add m4/intl-thread-locale.m4.
(Depends-on): Add setlocale-fixes.
(configure.ac): Invoke gl_FUNC_GETLOCALENAME_L_UNSAFE and
gl_PREREQ_GETLOCALENAME_L_UNSAFE. Update platforms list.
2025-07-15 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Make configuration more robust.
* m4/getlocalename_l.m4 (gl_FUNC_GETLOCALENAME_L_UNSAFE): Require
gl_LOCALE_H_DEFAULTS.
2025-07-15 Bruno Haible <bruno@clisp.org>
localename-unsafe: Reduce dependencies.
* lib/localename-unsafe.c: Include windows-mutex.h instead of
glthread/lock.h.
(get_lcid_lock): Change type to glwthread_mutex_t.
(get_lcid): Use glwthread_mutex_* functions.
* modules/localename-unsafe (Depends-on): Add windows-mutex. Remove
lock.
2025-07-15 Bruno Haible <bruno@clisp.org>
next-prime tests: Update unit test after last change.
* tests/test-next-prime.c (main): Allow either behaviour.
2025-07-14 Karl Berry <karl@freefriends.org>
epsf.tex: Sync it.
* config/srclist.txt (epsf.tex): sync it as a sibling of texinfo.tex.
The file is ultimately still maintained by Tom Rokicki and any
updates will appear in TeX Live (currently,
texmf-dist/tex/generic/epsf/epsf.tex).
* config/srclistvars.sh (TEXINFOTEX): switch to ../texinfo/doc
so we can find epsf.tex. More parallel, too.
2025-07-14 Bruno Haible <bruno@clisp.org>
epsf.tex: New file.
* build-aux/epsf.tex: New file, from
texlive/texmf-dist/tex/generic/epsf/epsf.tex.
2025-07-13 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Remove support for javac versions < 1.8.
* m4/javacomp.m4 (gt_JAVACOMP): State that the minimum source_version
and the minimum target_version are 1.8. Map smaller values to 1.8.
Complain if the java version is < 1.8. Use 1.8 as default, instead of
1.6.
* lib/javacomp.h (compile_java_class): State that the minimum
source_version and the minimum target_version are 1.8.
* lib/javacomp.c (default_target_version): Complain if the java version
is < 1.8. Use 1.8 as default, instead of 1.6.
(SOURCE_VERSION_BOUND, source_version_index): Adjust to the new minimum
source_version = 1.8.
(TARGET_VERSION_BOUND, target_version_index): Adjust to the new minimum
target_version = 1.8.
(get_compiler_version): Update comment.
(is_envjavac_usable, is_javac_usable): Update.
(compile_java_class): Map source_version < 1.8 to 1.8. Map
target_version < 1.8 to 1.8.
2025-07-13 Paul Eggert <eggert@cs.ucla.edu>
safe-alloc: make obsolete and remove REALLOC_N
Problem reported by Vivien Kraus in:
https://lists.gnu.org/r/bug-gnulib/2025-07/msg00073.html
This module never caught on.
* lib/safe-alloc.h (REALLOC_N): Remove.
* modules/safe-alloc: Now obsolete.
* tests/test-safe-alloc.c (main): Remove REALLOC_N test.
2025-07-12 Bruno Haible <bruno@clisp.org>
next-prime: Revert to original behaviour in GNU gettext.
Reported by Rocket Aaron <i@rocka.me> at
<https://savannah.gnu.org/bugs/?67305>.
* lib/next-prime.c (next_prime): In GNU gettext, don't skip small
primes.
2025-07-12 Bruno Haible <bruno@clisp.org>
obstack-printf: Fix memory overrun on glibc systems.
* m4/obstack.m4 (gl_FUNC_OBSTACK): Define through AC_DEFUN_ONCE.
* m4/obstack-printf.m4 (gl_FUNC_OBSTACK_PRINTF): Require
gl_FUNC_OBSTACK. Invoke gl_REPLACE_OBSTACK_PRINTF when using the
'obstack' replacement code.
2025-07-10 Bruno Haible <bruno@clisp.org>
string-h: Fix compilation error on macOS with fortify.
Reported by Pierre Ossman <ossman@cendio.se> at
<https://savannah.gnu.org/bugs/?67300>.
* lib/string.in.h (memcpy etc.): Don't redeclare functions that are
declared as macros.
2025-07-09 Bernhard Voelker <mail@bernhard-voelker.de>
regexprops-generic: update from regex.h
* doc/regexprops-generic.texi: Re-generate by running the 'regexprops'
binary from GNU findutils:
./regexprops "Regular Expressions" generic
At least the recent(ish) change (efd5c380ff) to regex.h aligning
gnulib with Emacs behavior had made this document out-of-date.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00037.html>.
Additionally, today's findutils commit c9c2c51175 fixed the sort order
of the Texinfo nodes.
2025-07-08 Paul Eggert <eggert@cs.ucla.edu>
float-h: work around GCC bug 120993
Also, fix a too-low LDBL_MAX on this platform, a problem that
contributed to LDBL_NORM_MAX test failures with C23 PowerPC GCC
with ibmlongdouble.
* lib/float.c (gl_LDBL_MAX): On PowerPC with ibmlongdouble, the
correct value is 2**1024 - 2**918, not 2**1024 - 2**971. Also,
use C99 hex double notation for the divisor, as it’s clearer and
should work nowadays.
* lib/float.in.h: Simplify by not worring whether it’s AIX or
GNU/Linux when redefining LDBL_* macros on PowerPC GCC with
ibmlongdouble, as the problem seems to be universal then.
(LDBL_NORM_MAX): On PowerPC GCC with ibmlongdouble, define to be
LDBL_MAX, so that it’s 2**1024 - 2**918, doubling GCC’s value
if supplied.
* modules/float-h-tests (Depends-on): Remove floorl, ldexpl.
Add truncl.
(test_float_h_LDADD): Likewise for libraries.
* tests/test-float-h.c (test_isfinitel): New static function,
so that we need not rely on isfinitel.
(normalize_long_double): Work even if X is negative or not finite.
Do not rely on frexpl or ldexpl. Use truncl instead of floorl
so that the negative results are consistent with positive.
Defend against fritzy PowerPC long double arithmetic.
2025-07-08 Collin Funk <collin.funk1@gmail.com>
options: Add reminder to include <config.h>.
* lib/options.h: Check that config.h was already included.
stdcountof-h: Add reminder to include <config.h>.
* lib/stdcountof.in.h: Check that config.h was already included.
2025-07-07 Bruno Haible <bruno@clisp.org>
float-h: Enforce the ISO C 23 compliant value for LDBL_EPSILON.
Reported by Cosima Neidahl <opna2608@protonmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00021.html>.
* lib/float.in.h (LDBL_EPSILON): Override on all PowerPC platforms.
2025-07-07 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix -Wswitch-unreachable warning.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00026.html>.
* lib/vasnprintf.c (VASNPRINTF): Put a #if around a potentially
unreachable switch case.
2025-07-06 Paul Eggert <eggert@cs.ucla.edu>
float-h-tests: port to C23 PowerPC GCC
Problems reported by C. Neidhal in:
https://lists.gnu.org/r/bug-gnulib/2025-07/msg00021.html
https://lists.gnu.org/r/bug-gnulib/2025-07/msg00027.html
* lib/float.in.h (LDBL_MAX): Do not override on PowerPC
if __LDBL_NORM_MAX__ is defined, as GCC versions defining that
symbol surely have LDBL_MAX right.
(LDBL_NORM_MAX): Prefer __LDBL_NORM_MAX__ if defined.
Otherwise, hardcode PowerPC value if applicable.
* modules/float-h-tests (Depends-on): Add floorl, frexpl, ldexpl.
(test_float_h_LDADD): Link the resulting libms too.
* tests/test-float-h.c: Include math.h.
(normalize_long_double): New function.
(test_long_double): Use it.
2025-07-06 Collin Funk <collin.funk1@gmail.com>
pagealign_alloc: Don't assume pointers fit in 'unsigned long'.
* modules/pagealign_alloc (Depends-on): Add stdint-h.
* lib/pagealign_alloc.c: Include stdint.h.
(pagealign_alloc): Cast pointers to 'uintptr_t' instead of 'unsigned
long'.
2025-07-05 Collin Funk <collin.funk1@gmail.com>
strptime: Convert K&R definitions to ANSI C.
* lib/strptime.c (LOCALE_PARAM) [_LIBC]: Adjust to match glibc, not
relevant for Gnulib.
(LOCALE_PARAM_PROTO, LOCALE_PARAM_DECL): Remove definitions.
(__strptime_internal, strptime): Convert K&R definition to ANSI C.
2025-07-04 Collin Funk <collin.funk1@gmail.com>
strncasecmp_l: Fix previous change.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00009.html>.
* lib/strncasecmp_l.c: Include c-strcase.h unconditionally. Use
#include "c-strcase.h" instead of #include <c-strcase.h>.
strcasecmp_l: Fix previous change.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-07/msg00009.html>.
* lib/strcasecmp_l.c: Include c-strcase.h unconditionally. Use
#include "c-strcase.h" instead of #include <c-strcase.h>.
strncasecmp_l: Fix missing declaration of c_strncasecmp.
* lib/strncasecmp_l.c [GNULIB_defined_locale_t]: Include c-strcase.h.
strcasecmp_l: Fix missing declaration of c_strcasecmp.
* lib/strcasecmp_l.c [GNULIB_defined_locale_t]: Include c-strcase.h.
forkpty: Adjust misleading comment.
* lib/forkpty.c: Remove comment about mingw where it does not build.
2025-07-01 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202507. Mention that stable-202407 is no longer updated.
2025-06-30 Bruno Haible <bruno@clisp.org>
options tests: Fix link error.
* modules/options (Link): New section.
* modules/options-tests (Makefile.am): Link test-options and
test-options-prog with LIBINTL.
2025-06-30 Bruno Haible <bruno@clisp.org>
_Noreturn: Fix compilation in C++ mode on Solaris (regr. 2025-06-27).
* lib/_Noreturn.h (_Noreturn): Restore C++ mode handling.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
2025-06-30 Bruno Haible <bruno@clisp.org>
kwset tests: Fix link error.
* modules/kwset-tests (Makefile.am): Link test-kwset with LIBINTL.
2025-06-29 Bruno Haible <bruno@clisp.org>
options: Support use in a shared library on mingw.
* lib/options.h (_gl_get_next_option): New declaration.
(get_next_option): On mingw, define in terms of _gl_get_next_option.
* lib/options.c (_gl_get_next_option): On mingw, define this function
instead of get_next_option.
2025-06-29 Paul Eggert <eggert@cs.ucla.edu>
open, openat: port O_DIRECTORY changes to OS X
Problem reported by Liam Stitt <https://bugs.gnu.org/78924>.
* lib/open.c, lib/openat.c (HAVE_WORKING_O_DIRECTORY):
Default to false, fixing a typo.
2025-06-28 Bruno Haible <bruno@clisp.org>
options: Avoid -Wmissing-field-initializers warnings.
* lib/options.h (BEGIN_ALLOW_OMITTING_FIELD_INITIALIZERS,
END_ALLOW_OMITTING_FIELD_INITIALIZERS): New macros.
2025-06-28 Collin Funk <collin.funk1@gmail.com>
gnupload: adjust commentary regarding gnupg versions
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00310.html>.
* build-aux/gnupload: Remove misleading year comment. Mention that
Slackware requires 'gpg2' instead of 'gpg' instead of Ubuntu where they
are now the same.
2025-06-27 Paul Eggert <eggert@cs.ucla.edu>
_Noreturn: pacify gcc -std=gnu99 -Wpedantic
Problem reported by Helmut Eller <https://bugs.gnu.org/78903>.
* lib/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY): Prefer __attribute__
((__noreturn__)) to _Noreturn if __STDC_VERSION__ < 201112, to
pacify gcc -std=gnu99 -Wpedantic. Simplify. Do not bother
suggesting -D_GL_WORK_AROUND_LLVM_BUG_59792; suggest the
equivalent -D_Noreturn= instead, and remove the test on
_GL_WORK_AROUND_LLVM_BUG_59792.
2025-06-27 Bruno Haible <bruno@clisp.org>
options: Fix typo in comment.
Patch by Antonio Diaz Diaz <antonio@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00300.html>.
* lib/options.h: Fix typo in comment.
options: Add tests.
* tests/test-options.c: New file, based on tests/test-getopt_long.h.
* tests/test-options-prog.c: New file.
* modules/options-tests: New file.
options: New module.
* lib/options.h: New file.
* lib/options.c: New file.
* modules/options: New file.
* doc/glibc-functions/getopt_long.texi: Mention the new module.
2025-06-26 Bruno Haible <bruno@clisp.org>
kwset: Improve header file.
* lib/kwset.h (kwsalloc): Clarify size of trans parameter. Add
_GL_ATTRIBUTE_RETURNS_NONNULL attribute.
(kwswords): Add specification comment.
(kwsincr, kwswords, kwsprep, kwsexec, kwsfree): Add _GL_ARG_NONNULL
attribute.
kwset: Add specification comments in .h file.
* lib/kwset.h (kwsalloc, kwsincr, kwsprep, kwsexec, kwsfree): Move
specification to here...
* lib/kwset.c (kwsalloc, kwsincr, kwsprep, kwsexec, kwsfree): ...from
here.
2025-06-26 Paul Eggert <eggert@cs.ucla.edu>
regex: fix parse_bracket_exp double-free
Problem reported by Anastasia Belova in:
https://sourceware.org/pipermail/libc-alpha/2025-June/168231.html
* lib/regcomp.c (parse_bracket_exp): Avoid double-free
when storage allocation fails in create_token_tree.
2025-06-25 Bruno Haible <bruno@clisp.org>
kwset: Add tests.
* lib/kwset.c (kwsexec): Correct documentation.
* tests/test-kwset.c: New file.
* modules/kwset-tests: New file.
kwset: Usability tweaks.
* lib/kwset.h: Make header idempotent and C++ safe. Check that config.h
was already included.
kwset: New module.
* lib/kwset.h: New file, from GNU grep.
* lib/kwset.c: New file, from GNU grep.
Include <limits.h>, minmax.h. Don't include system.h.
(IGNORE_DUPLICATE_BRANCH_WARNING): New macro, from grep/src/system.h.
(NCHAR): New enum value, from grep/src/system.h.
(to_uchar): New function, from grep/src/system.h.
* modules/kwset: New file.
2025-06-24 Paul Eggert <eggert@cs.ucla.edu>
Sort-of sync model bootstrap.conf from coreutils
* build-aux/bootstrap.conf (XGETTEXT_OPTIONS):
Sync from coreutils, providing flags for error, etc.
(gettext_external, excluded_files): Remove, as
excluded_files has not worked for a long time.
(bootstrap_post_import_hook): New function, doing
what the old excluded_files tried to do.
2025-06-23 Bruno Haible <bruno@clisp.org>
Fix typo in comment.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Fix typo in comment.
2025-06-22 Bruno Haible <bruno@clisp.org>
gcd: Improve comments regarding GCD_WORD_T.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00243.html>.
* lib/gcd.h (GCD_WORD_T): Improve comments.
gcd: Allow customizing the parameter and result type.
* lib/gcd.h (GCD_WORD_T): New type.
(gcd): Use GCD_WORD_T instead of 'unsigned long'.
* lib/gcd.c (WORD_T): Likewise.
2025-06-18 Bruno Haible <bruno@clisp.org>
string-desc: Fix a compiler warning.
* lib/string-desc.h (sd_overwrite): Remove 'return' keyword.
2025-06-16 Bruno Haible <bruno@clisp.org>
gnulib-tool: Default to --single-configure. New option --two-configures.
* gnulib-tool.sh: single_configure now defaults to false. New option
--two-configures. Stop documenting option --single-configure.
* pygnulib/GLInfo.py (GLInfo.usage): Document option --two-configures.
Stop documenting option --single-configure.
* pygnulib/GLTestDir.py (GLTestDir.execute): Update comment.
* pygnulib/main.py (main): single_configure now defaults to false.
New option --two-configures.
* doc/transversal.texi: Update.
* HACKING: Update.
2025-06-15 Bruno Haible <bruno@clisp.org>
fenv-environment tests: Fix compilation errors on Linux/sh4.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00124.html>.
* tests/test-fenv-env-2.c (FE_UPWARD, FE_DOWNWARD): Define as aliases.
* tests/test-fenv-env-3.c: Likewise.
* tests/test-fenv-env-4.c: Likewise.
* tests/test-fenv-env-5.c: Likewise.
2025-06-14 Paul Eggert <eggert@cs.ucla.edu>
libgmp-mpz: require Baillie-PSW primality test
* m4/libgmp.m4 (gl_LIBGMP): Reject GMP 6.1.2 (2016) and earlier,
as these older versions had an inferior primality test and
coreutils factor.c will need Baillie-PSW. mini-gmp.c already has
Baillie-PSW, so it can serve as a fallback.
2025-06-13 Bruno Haible <bruno@clisp.org>
stat: Support the file name "/dev/null" on native Windows.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00119.html>.
* lib/stat.c (rpl_stat): On native Windows, map "/dev/null" to "NUL".
* tests/test-fstat.c (main): Test /dev/null also on native Windows.
* tests/test-stat.h (test_stat_func): Likewise.
* tests/test-lstat.h (test_lstat_func): Likewise.
* doc/posix-functions/stat.texi: Mention problem of null device name.
* doc/posix-functions/lstat.texi: Likewise.
2025-06-12 Bruno Haible <bruno@clisp.org>
lstat tests: Avoid test failure on Solaris.
* tests/test-lstat.h (test_lstat_func): Reduce assumption about
/dev/null on Solaris.
stat, lstat, fstat tests: Enhance tests regarding /dev/null or NUL.
* tests/test-fstat.c: Include <fcntl.h>.
(main): Check that fstat reports /dev/null or NUL as a character device.
* tests/test-stat.h (test_stat_func): Likewise for stat.
* tests/test-lstat.h (test_lstat_func): Likewise for lstat.
2025-06-12 Bruno Haible <bruno@clisp.org>
stat: Document mingw bug.
* doc/posix-functions/stat.texi: Mention the bug with NUL on mingw.
2025-06-12 Bruno Haible <bruno@clisp.org>
stat: Add support for mingw 13 in 32-bit mode.
* lib/sys_stat.in.h (_stat32i64): Redirect to rpl_stat.
2025-06-12 Bruno Haible <bruno@clisp.org>
dcomp-script: Reject D compilers with installation problems.
* m4/dcomp.m4 (gt_DCOMP): Try each candidate program, seeing whether it
can compile a trivial program.
* build-aux/dcomp.sh.in: Fix typos in comment.
2025-06-12 Bruno Haible <bruno@clisp.org>
gettext: Improve config.log traces.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Emit the configure line
number into config.log.
2025-06-11 Bruno Haible <bruno@clisp.org>
fenv*: Fix compilation error with mingw 13.
It's caused by an ABI change in mingw:
<https://sourceforge.net/p/mingw-w64/mingw-w64/ci/5c5973cf5f021db8fd75e9667e63881ccd169320/>.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00215.html>.
* m4/fenv-environment.m4 (gl_FENV_ENVIRONMENT): Update comments for
mingw 13.
* lib/fenv-private.h (exceptions_to_x86hardware,
x86hardware_to_exceptions): On mingw >= 13, define these like on MSVC.
* lib/fenv-round.c (fegetround, fesetround): Do the safe mapping also on
mingw >= 13.
* lib/fenv-except-state-set.c (fesetexceptflag): Do the
exceptions_to_x86hardware conversion also on other platforms than MSVC.
* lib/fenv-except-tracking-clear.c (feclearexcept): Likewise.
* lib/fenv-except-tracking-set.c (fesetexcept): Likewise.
* lib/fenv-except-trapping.c (feenableexcept, fedisableexcept,
fegetexcept): Do the exceptions_to_x86hardware and
x86hardware_to_exceptions conversions also on other platforms than MSVC.
* lib/fenv-env.c (fegetenv, fesetenv): Add new implementation for
mingw >= 13.
* doc/posix-functions/fesetenv.texi: Mention the new mingw bug.
* doc/posix-functions/feupdateenv.texi: Mention the new mingw bug.
2025-06-09 Collin Funk <collin.funk1@gmail.com>
Silence 'time-stamp' warnings with bleeding-edge Emacs.
* build-aux/announce-gen: Use "%Y" instead of "%:y" for the
'time-stamp-format' local variable.
* build-aux/do-release-commit-and-tag: Likewise.
* build-aux/gendocs.sh: Likewise.
* build-aux/git-version-gen: Likewise.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/gnu-web-doc-update: Likewise.
* build-aux/gnupload: Likewise.
* build-aux/move-if-change: Likewise.
* build-aux/prefix-gnulib-mk: Likewise.
* build-aux/update-copyright: Likewise.
* build-aux/useless-if-before-free: Likewise.
* build-aux/vc-list-files: Likewise.
* top/bootstrap: Likewise.
* top/bootstrap-funclib.sh: Likewise.
* build-aux/bootstrap: Regenerate.
2025-06-09 Bruno Haible <bruno@clisp.org>
file-has-acl tests: Avoid test failure on Cygwin.
* modules/file-has-acl-tests (Makefile.am): Add host_os to the
TESTS_ENVIRONMENT.
* tests/test-file-has-acl-2.sh: On Cygwin, skip this test.
2025-06-08 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: debug mktime failures better
* lib/parse-datetime.y (debug_mktime_not_ok):
Handle mktime failures too.
Don’t pretend that the time was normalized if mktime failed.
Don’t attempt to deduce DST shifts; it’s impractical in general
and even a reasonable heuristic is too painful.
2025-06-07 Bruno Haible <bruno@clisp.org>
stdcountof-h: Work around a clang bug.
Reported by Basil L. Contovounesios <basil@contovou.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-06/msg00073.html>.
* lib/stdcountof.in.h (_gl_verify_is_array): Disable the checking on
clang.
* tests/test-stdcountof-h.c (test_func): Add another test case.
2025-06-06 Collin Funk <collin.funk1@gmail.com>
doc: Add some missing Makefile targets.
* doc/Makefile (standards.pdf, maintain.info, maintain.html)
(maintain.dvi, maintain.pdf): New targets.
* doc/.gitignore: Add files generated when building GNU Maintainer
Information and GNU Standards.
2025-06-05 Alec Brown <alec.r.brown@oracle.com> (tiny change)
regex: fix resource leak when searching
* lib/regex.c (merge_state_with_log):
In this function, memory is allocated for the variable next_nodes when
creating a union of the variables table_nodes and log_nodes.
However, if next_state->entrance_nodes is NULL, table_nodes becomes
NULL and we still allocate memory to copy the contents of log_nodes.
This can cause a resource leak since we only free the memory for
next_nodes if table_nodes isn't NULL. To prevent this, check that
next_state->entrance_nodes isn't NULL before allocating memory
for the union.
This issue was found by a Coverity Scan of GRUB2 under the
following CID: CID: 473887
2025-06-05 Paul Eggert <eggert@cs.ucla.edu>
regex: fix some leaks when pattern compilation fails
Problem reported by Alec Brown in:
https://lists.gnu.org/r/bug-gnulib/2025-06/msg00040.html
* lib/regcomp.c (create_initial_state, calc_eclosure_iter):
Fix some memory leaks when these functions fail.
2025-06-05 Bruno Haible <bruno@clisp.org>
unictype/base, uninorm/base, etc.: Support shared libraries on MSVC.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE_WITH_VARIABLE): Use
the value of
${module_indicator_prefix}_GNULIB_LIBUNISTRING_DLL_VARIABLE_NAME.
2025-06-04 Bruno Haible <bruno@clisp.org>
test-xfail: Relicense more permissively.
* modules/test-xfail (License): Change to 'GPLed build tool'.
2025-06-03 Bruno Haible <bruno@clisp.org>
fcntl-h: Fix configure test on MSVC.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Reshuffle the exit code assignments
again, so that a compilation failure produces the "no" result both on
mingw and on MSVC. Fix typo in the test program.
2025-06-03 Collin Funk <collin.funk1@gmail.com>
setlocale: Update a comment.
* lib/setlocale.c: Mention that gl_locale_name_from_win32_LANGID is now
defined in localename-unsafe.c instead of localename.c.
2025-06-03 Bruno Haible <bruno@clisp.org>
stdcountof-h tests: Fix compilation error with gcc versions < 15.
* tests/test-stdcountof-h.c (HAVE___TYPEOF__): Remove macro.
(test_func): Remove __typeof__ invocations.
2025-06-03 Bruno Haible <bruno@clisp.org>
fcntl-h, open: Fix two regressions on native Windows (regr. 2025-05-26).
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Reshuffle the exit code bits, so
that a compilation failure produces the "no" result.
* lib/open.c (open): Don't pass the O_DIRECTORY flag when doing
recursion with /dev/null.
2025-06-03 Bruno Haible <bruno@clisp.org>
fts: Update dependencies.
* modules/fts (Depends-on): Add close, dirfd, fstatat, openat. Remove
lstat, open, opendir.
2025-06-03 Bruno Haible <bruno@clisp.org>
stdcountof-h: Always return size_t, in a better way.
* lib/stdcountof.in.h: Revert last change. Include <stddef.h>
unconditionally.
(countof): Cast value to size_t.
* tests/test-stdcountof-h.c (HAVE___TYPEOF__, HAVE__GENERIC): New
macros.
(test_func): Check the return type of countof.
2025-06-02 Paul Eggert <eggert@cs.ucla.edu>
stdcountof-h: always return size_t
* lib/stdcountof.in.h (__SIZE_TYPE__): Define to size_t,
including stddef.h to get it, if not already defined.
This avoids a bit of namespace pollution.
All uses of size_t changed to use __SIZE_TYPE__.
(countof): Return size_t, even if size_t is narrower than int (!).
While we’re at it, simplify ‘sizeof ((a)[0])’ to ‘sizeof *(a)’
as it’s simpler and later code uses the ‘*(a)’ notation already.
2025-06-02 Bruno Haible <bruno@clisp.org>
stdcountof-h: Tweaks.
Reported by Alejandro Colomar <alx@kernel.org>.
* lib/stdcountof.in.h (countof): Parenthesize better.
* modules/stdcountof-h (Description): To appear in C2y, not C23.
stdcountof-h: Add tests.
* tests/test-stdcountof-h.c: New file.
* tests/test-stdcountof-h-c++.cc: New file.
* modules/stdcountof-h-tests: New file.
* modules/stdcountof-h-c++-tests: New file.
stdcountof-h: New module.
* lib/stdcountof.in.h: New file.
* m4/stdcountof_h.m4: New file.
* modules/stdcountof-h: New file.
2025-06-02 Bruno Haible <bruno@clisp.org>
stddef-h: Fix compilation errors in C++ mode (regression 2025-05-27).
* m4/stddef_h.m4 (gl_STDDEF_H): Set and substitute HAVE_C_UNREACHABLE.
Don't test for unreachable in <stddef.h> in C++. Set
GL_GENERATE_STDDEF_H to true always.
* lib/stddef.in.h (gl_unreachable): Renamed from _gl_unreachable. Test
HAVE_C_UNREACHABLE.
(unreachable): Don't define in C++ mode. Don't define if
HAVE_C_UNREACHABLE is 1.
* modules/stddef-h (Makefile.am): Substitute HAVE_C_UNREACHABLE.
* tests/test-stddef-h.c (test_unreachable_optimization,
test_unreachable_noreturn): Don't define in C++ mode.
(test_gl_unreachable_optimization, test_gl_unreachable_noreturn): New
functions.
* tests/test-stddef-h-c++3.cc (test_cxx_unreachable_1): Test
gl_unreachable instead of unreachable.
* lib/error.in.h (__gl_error_call1): Use gl_unreachable instead of
unreachable.
2025-06-02 Bruno Haible <bruno@clisp.org>
open, openat: Fix test failure on native Windows.
* tests/test-open.h (test_open): Expect a different error code for
"/dev/null/" on native Windows.
open: Fix syntax error on native Windows (regression 2025-05-28).
* lib/open.c (open): Add missing parenthesis.
2025-06-01 Bruno Haible <bruno@clisp.org>
gettext-h: Avoid warnings from "gcc -Wextra".
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00280.html>.
* lib/gettext.h (gettext, dgettext, dcgettext): Silence
-Wbuiltin-declaration-mismatch warning.
2025-05-31 Bruno Haible <bruno@clisp.org>
stat-time tests: Add C++ tests.
* tests/test-stat-time-c++.cc: New file.
* modules/stat-time-c++-tests: New file.
* modules/stat-time-tests (Depends-on): Add stat-time-c++-tests.
stat-time: Fix syntax errors in C++ mode on MSVC (regr. 2023-05-14).
Reported by Kirill Makurin <maiddaisuki@outlook.com> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-05/msg00071.html>.
* lib/stat-time.h (_gl_make_timespec): New macro / function.
(get_stat_atime, get_stat_ctime, get_stat_mtime, get_stat_birthtime):
Use it instead of a compound literal expression.
2025-05-31 Bruno Haible <bruno@clisp.org>
gettext-h: Fix compilation error on Solaris 11 (regr. 2025-05-28).
* lib/gettext.h (gettext, dgettext, dcgettext): On Solaris, use 'char *'
as return type.
2025-05-31 Bruno Haible <bruno@clisp.org>
Make gl_CHECK_FUNCS_MACOS work with current unreleased Autoconf.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-autoconf/2025-05/msg00024.html>.
* m4/gnulib-common.m4 (gl_CHECK_FUNCS_CASE_FOR_MACOS): Temporarily set
ac_c_future_darwin_options, ac_cxx_future_darwin_options to empty for
the second AC_CHECK_DECL invocation.
2025-05-28 Paul Eggert <eggert@cs.ucla.edu>
open, openat: handle O_DIRECTORY on special files
On deficient platforms where we must check for directories
ourselves when opening files, check before opening as well as after.
This prevents a hang when trying to open a special file like a
fifo in a context where a directory is required. Although there
is still a race so we could still hang in a perverse situation,
it’s the best we can do and it is better than hanging in the
more-common case.
* lib/open.c (lstatif): New static function.
(open) [REPLACE_FCHDIR]: Also inspect O_CREAT.
* lib/open.c (open), lib/openat.c (rpl_openat):
When checking for directories, also do this before opening.
Also, respect O_NOFOLLOW when checking for directories.
* lib/openat.c: Remove a few more unnecessary differences from open.c.
* modules/open (Depends-on): Depend on lstat.
* modules/openat (Depends-on): Add fstatat.
* modules/fcntl-safer-tests, modules/open-tests, modules/openat-tests:
(Depends-on): Add mkfifo.
(configure.ac) Check for alarm decl.
* tests/test-fcntl-safer.c, tests/test-open.c, tests/test-openat.c:
Include sys/stat.h, for mkfifo.
[HAVE_DECL_ALARM]: Include signal.h, for alarm.
* tests/test-open.h (test_open): Fail if test takes too long
because we tried to open a fifo. Test opening /dev/null,
/dev/tty and a fifo, with a trailing "/" and with O_DIRECTORY.
2025-05-28 Collin Funk <collin.funk1@gmail.com>
vasnprintf: Fix uninitialized values.
* lib/vasnprintf.c (VASNPRINFT): Initialize all occurrences of
thousep_len to zero.
2025-05-28 Bruno Haible <bruno@clisp.org>
gettext-h: Avoid gcc -Wformat-security warnings with --disable-nls.
Reported by Holger Hoffstätte <holger@applied-asynchrony.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00225.html>.
* lib/gettext.h (gettext, dgettext, dcgettext): With gcc in C mode,
define these as inline functions.
* lib/sigpipe-die.c (sigpipe_die): Use translated string as a format
string, relying on the format string checking done by 'msgfmt -c'.
* lib/xmemcoll.c (collate_error): Revert commit from 2025-01-17.
* lib/xprintf.c (xvprintf, xvfprintf): Likewise.
* lib/openat-die.c (openat_save_fail, openat_restore_fail): Revert
commit from 2024-12-10.
2025-05-27 Bruno Haible <bruno@clisp.org>
stddef-h: Make 'unreachable' usable in C++ mode.
Reported by Pierre Ossman <ossman@cendio.se>
at <https://savannah.gnu.org/bugs/?67152>.
* m4/stddef_h.m4 (gl_STDDEF_H): Also test whether unreachable is defined
by <stddef.h> in C++ mode.
* lib/stddef.in.h: In C++ mode, include <utility> and either import
'unreachable' from the std namespace or define it as an inline function.
* tests/test-stddef-h.c: Disable some tests in C++ mode.
* tests/test-stddef-h-c++.cc: Perform nearly the same tests in C++ mode
as in C mode.
* tests/test-stddef-h-c++2.cc: Rename some variables. Disable the NULL
test with clang on Windows.
* tests/test-stddef-h-c++3.cc: New file.
* modules/stddef-h-c++-tests (Files): Include it.
(Makefile.am): Link test-stddef-h-c++ with test-stddef-h-c++3.o.
2025-05-27 Bruno Haible <bruno@clisp.org>
strchrnul: Fix for users of the current macOS SDK.
Reported in <https://savannah.gnu.org/bugs/?67141>.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Use gl_CHECK_FUNCS_ANDROID_MACOS
instead of gl_CHECK_FUNCS_ANDROID.
2025-05-27 Bruno Haible <bruno@clisp.org>
doc: Update platforms list re *_CLOFORK.
* doc/posix-headers/fcntl.texi: Update platforms list.
2025-05-27 Bruno Haible <bruno@clisp.org>
fcntl-h: Update platforms list re O_DIRECTORY.
* doc/posix-headers/fcntl.texi: Update platforms list.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Guess that O_DIRECTORY works for
Mac OS X >= 10.5. Use prefix 'gl_', not 'ac_', for our variables.
2025-05-27 Bruno Haible <bruno@clisp.org>
doc: Style module name.
* doc/posix-headers/fcntl.texi: Style module name with @code.
2025-05-26 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: support O_DIRECTORY
It is relatively easy to support O_DIRECTORY on platforms that
lack it, so let’s do that instead of having to work around bugs
like <https://bugs.gnu.org/78509#95>.
* lib/fcntl.in.h (O_DIRECTORY): Default to 0x20000000 not 0,
since Gnulib now supports it.
* lib/open.c, lib/openat.c (OPEN_TRAILING_SLASH_BUG):
Default to false, so that this can be used outside #if.
(open, openat): Add support for O_DIRECTORY on platforms that lack it.
If fstat fails, fail instead of assuming the file is a directory,
since failure can occur due to EOVERFLOW, etc.
Rearrange code to minimize differences between open.c and openat.c.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Also test O_DIRECTORY,
and define HAVE_WORKING_O_DIRECTORY if needed.
Prefer AS_CASE for Emacs’s benefit.
* m4/open.m4 (gl_FUNC_OPEN):
* m4/openat.m4 (gl_FUNC_OPENAT):
Require gl_FCNTL_O_FLAGS and replace the function
if O_DIRECTORY does not work.
* tests/test-open.h: Test O_DIRECTORY.
2025-05-26 Collin Funk <collin.funk1@gmail.com>
crypto/gc: Simplify the previous change.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00249.html>.
* lib/gc-gnulib.c (gc_cipher_setkey, gc_cipher_setiv): Remove cast and
perform a bitwise AND with an unsigned constant.
crypto/gc: Pacify -Wformat warnings.
* lib/gc-gnulib.c (gc_cipher_setkey, gc_cipher_setiv): Cast the argument
since "%02x" expects the argument to be unsigned.
2025-05-26 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove build-aux/test-driver.orig from testdirs.
* gnulib-tool.sh (func_create_testdir): Remove file
build-aux/test-driver.orig at the end.
* pygnulib/GLTestDir.py (_patch_test_driver): Likewise.
2025-05-25 Bruno Haible <bruno@clisp.org>
stddef-h tests: Add more C++ tests.
* tests/test-stddef-h-c++2.cc: Test the expected contents of <cstddef>.
2025-05-25 Bruno Haible <bruno@clisp.org>
selinux-h: Fix error with MSVC.
* lib/se-selinux.in.h: Add comment.
* modules/selinux-h (Depends-on): Add sys_types-h.
2025-05-25 Bruno Haible <bruno@clisp.org>
fcntl-h, unistd-h: Fix errors in C++ mode with MSVC.
* lib/fcntl.in.h (open): Use _GL_CXXALIAS_MDA_CAST instead of
_GL_CXXALIAS_MDA.
* lib/unistd.in.h: Include <io.h>, <direct.h> before <fcntl.h>.
2025-05-25 Bruno Haible <bruno@clisp.org>
utime-h: Fix error in C++ mode with MSVC.
* lib/utime.in.h (utime): Use _GL_CXXALIAS_MDA_CAST instead of
_GL_CXXALIAS_MDA.
2025-05-22 Collin Funk <collin.funk1@gmail.com>
stdckdint-h: Don't generate header if it is not needed.
Suggested by Paul Eggert in:
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00216.html>.
* m4/stdckdint_h.m4: New file.
* modules/stdckdint-h (Files): Add m4/stdckdint_h.m4.
(configure.ac): Remove checks and just invoke gl_STDCKDINT_H.
(Makefile.am): Replace variables set by ./configure.
* lib/stdckdint.in.h: Include the compilers header if it exists. Add
comment mentioning expected future standardization in C++26.
(ckd_add, ckd_sub, ckd_mul): Only define if the compilers definitions do
not work.
2025-05-22 Bruno Haible <bruno@clisp.org>
strchrnul: Update doc.
* doc/glibc-functions/strchrnul.texi: strchrnul got added in macOS 15.4.
2025-05-19 Collin Funk <collin.funk1@gmail.com>
stdckdint-h: Work around missing declarations with g++ 15.0.
* modules/stdckdint-h (configure.ac): Generate the header if the system
has one and C++ is being used.
stdckdint-h C++ tests: Verify the ckd_* functions can be invoked.
* tests/test-stdckdint-h-c++.cc (main): Invoke ckd_add, ckd_sub, and
ckd_mul.
2025-05-18 Paul Eggert <eggert@cs.ucla.edu>
tests: simplify test_exit_status decl
* tests/macros.h (test_exit_status) [!NO_MAIN_HERE]:
Declare test_exit_status too, as this is simpler
and we might as well check definition vs declaration.
2025-05-18 Bruno Haible <bruno@clisp.org>
unigbrk/u*-grapheme-prev: Support Indic, Emojis, regional indicators.
Reported by Kang-Che Sung <explorer09@gmail.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2025-03/msg00000.html>.
* lib/unigbrk/u-grapheme-prev.h: New file, based on
lib/unigbrk/u-grapheme-breaks.h.
* lib/unigbrk/u8-grapheme-prev.c: Include unictype.h and
u-grapheme-prev.h.
(u8_grapheme_prev): Remove function.
* lib/unigbrk/u16-grapheme-prev.c: Include unictype.h and
u-grapheme-prev.h.
(u16_grapheme_prev): Remove function.
* lib/unigbrk/u32-grapheme-prev.c: Include unictype.h and
u-grapheme-prev.h.
(u32_grapheme_prev): Remove function.
* modules/unigbrk/u8-grapheme-prev (Files): Add
lib/unigbrk/u-grapheme-prev.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* modules/unigbrk/u16-grapheme-prev (Files): Add
lib/unigbrk/u-grapheme-prev.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* modules/unigbrk/u32-grapheme-prev (Files): Add
lib/unigbrk/u-grapheme-prev.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* tests/unigbrk/test-u8-grapheme-prev.c (main): Add more test cases,
from tests/unigbrk/test-u8-grapheme-breaks.c.
* tests/unigbrk/test-u16-grapheme-prev.c (main): Add more test cases,
from tests/unigbrk/test-u16-grapheme-breaks.c.
* tests/unigbrk/test-u32-grapheme-prev.c (main): Add more test cases,
from tests/unigbrk/test-u32-grapheme-breaks.c.
2025-05-18 Bruno Haible <bruno@clisp.org>
unigbrk/u*-grapheme-next: Support Indic, Emojis, regional indicators.
Reported by Kang-Che Sung <explorer09@gmail.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2025-03/msg00000.html>
and by Lich <author@lch361.net> in
<https://lists.gnu.org/archive/html/bug-libunistring/2025-05/msg00000.html>.
* lib/unigbrk/u-grapheme-next.h: New file, based on
lib/unigbrk/u-grapheme-breaks.h.
* lib/unigbrk/u8-grapheme-next.c: Include unictype.h and
u-grapheme-next.h.
(u8_grapheme_next): Remove function.
* lib/unigbrk/u16-grapheme-next.c: Include unictype.h and
u-grapheme-next.h.
(u16_grapheme_next): Remove function.
* lib/unigbrk/u32-grapheme-next.c: Include unictype.h and
u-grapheme-next.h.
(u32_grapheme_next): Remove function.
* modules/unigbrk/u8-grapheme-next (Files): Add
lib/unigbrk/u-grapheme-next.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* modules/unigbrk/u16-grapheme-next (Files): Add
lib/unigbrk/u-grapheme-next.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* modules/unigbrk/u32-grapheme-next (Files): Add
lib/unigbrk/u-grapheme-next.h.
(Depends-on): Remove unigbrk/uc-is-grapheme-break. Add unigbrk/base,
unigbrk/uc-gbrk-prop, unictype/incb-of,
unictype/property-extended-pictographic, bool.
(configure.ac): Bump required libunistring version.
* tests/unigbrk/test-u8-grapheme-next.c (main): Add more test cases,
from tests/unigbrk/test-u8-grapheme-breaks.c.
* tests/unigbrk/test-u16-grapheme-next.c (main): Add more test cases,
from tests/unigbrk/test-u16-grapheme-breaks.c.
* tests/unigbrk/test-u32-grapheme-next.c (main): Add more test cases,
from tests/unigbrk/test-u32-grapheme-breaks.c.
2025-05-18 Bruno Haible <bruno@clisp.org>
unigbrk/u*-grapheme-breaks: Tiny optimization.
* lib/unigbrk/u-grapheme-breaks.h (FUNC): Exploit the fact that n > 0.
2025-05-17 Bruno Haible <bruno@clisp.org>
cosh: Add more tests.
* tests/test-cosh.c: Include <stdio.h>, <string.h>.
(main): Add another test case.
2025-05-17 Bruno Haible <bruno@clisp.org>
sinh: Add more tests.
* tests/test-sinh.c: Include <stdio.h>, <string.h>.
(main): Add another test case.
2025-05-17 Bruno Haible <bruno@clisp.org>
crypto/sha512-buffer: Add some tests.
* tests/test-sha384-buffer.c: New file, based on
tests/test-sha1-buffer.c.
* tests/test-sha512-buffer.c: New file, based on
tests/test-sha1-buffer.c.
* modules/crypto/sha512-buffer-tests (Files): Add them.
(Makefile.am): Compile and test test-sha384-buffer, test-sha512-buffer.
2025-05-17 Bruno Haible <bruno@clisp.org>
crypto/sha256-buffer: Add some tests.
* tests/test-sha224-buffer.c: New file, based on
tests/test-sha1-buffer.c.
* tests/test-sha256-buffer.c: New file, based on
tests/test-sha1-buffer.c.
* modules/crypto/sha256-buffer-tests (Files): Add them.
(Makefile.am): Compile and test test-sha224-buffer, test-sha256-buffer.
2025-05-17 Bruno Haible <bruno@clisp.org>
next-prime tests: Add more tests.
* tests/test-next-prime.c (main): Add another test case.
2025-05-17 Bruno Haible <bruno@clisp.org>
clean-temp: Fix typo in comment.
* lib/clean-temp.h: Fix typo in comment.
2025-05-16 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Fix race condition on native Windows.
* lib/asyncsafe-spin.h (asyncsafe_spin_lock, asyncsafe_spin_unlock): Add
from_signal_handler parameter.
* lib/asyncsafe-spin.c (asyncsafe_spin_lock, asyncsafe_spin_unlock):
Likewise.
* modules/asyncsafe-spin (Depends-on): Add bool.
* tests/test-asyncsafe-spin1.c (main): Update.
* tests/test-asyncsafe-spin2.c (lock_mutator_thread,
lock_checker_thread): Update.
* lib/clean-temp-simple.c (clean_temp_asyncsafe_close): Update.
* lib/clean-temp.c (asyncsafe_fclose_variant): Update.
2025-05-16 Bruno Haible <bruno@clisp.org>
sigprocmask: Make multithread-safe on native Windows.
* lib/sigprocmask.c: Include glthread/lock.h.
(sig_lock): New variable.
(blocked_set): Remove 'volatile'.
(sigprocmask, _gl_raise_SIGPIPE): Use the sig_lock.
* modules/sigprocmask (Depends-on): Add lock.
* doc/posix-functions/sigprocmask.texi: Mention the async-safety issue.
2025-05-16 Bruno Haible <bruno@clisp.org>
pthread-rwlock tests: Add a comment.
Reported by Natanael Copa <ncopa@alpinelinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00164.html>.
* tests/test-pthread-rwlock.c: Explain why this test can fail.
2025-05-14 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Rely on module 'spin'.
* lib/asyncsafe-spin.h: Include glthread/spin.h.
(asyncsafe_spinlock_t, ASYNCSAFE_SPIN_INIT): Simplify by using
gl_spinlock_t, gl_spinlock_initializer.
* lib/asyncsafe-spin.c: Simplify by using glthread_spin_* functions.
* modules/asyncsafe-spin (Files): Remove m4/atomic-cas.m4.
(Depends-on): Add spin. Remove bool, windows-spin, sparcv8+.
(configure.ac): Remove tests.
2025-05-14 Bruno Haible <bruno@clisp.org>
spin: Add tests.
* tests/test-spin1.c: New file, based on tests/test-asyncsafe-spin1.c.
* tests/test-spin2.c: New file, based on tests/test-asyncsafe-spin2.c.
* modules/spin-tests: New file.
spin: New module.
* lib/glthread/spin.h: New file, based on lib/glthread/lock.h and
lib/asyncsafe-spin.h.
* lib/glthread/spin.c: New file, based on lib/asyncsafe-spin.c.
* modules/spin: New file.
* doc/multithread.texi (Choosing a multithreading API): Spin locks no
longer require POSIX threads.
(Gnulib multithreading): Mention the 'spin' module.
2025-05-12 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix compilation error on Solaris (regression 2025-05-09).
* lib/file-has-acl.c (acl_get_fdfile): Don't define on platforms that
don't need it.
2025-05-12 Bruno Haible <bruno@clisp.org>
doc: Update doc about ACLs on Cygwin.
* doc/acl-resources.txt: Update function list for Cygwin >= 2.5.
2025-05-12 Bruno Haible <bruno@clisp.org>
obstack: Fix compilation error on MSVC (regression 2025-05-07).
* lib/obstack.in.h (obstack_free): Fix typo.
2025-05-12 Bruno Haible <bruno@clisp.org>
doc: Update for a few recently fixed Hurd bugs.
* doc/posix-functions/utimensat.texi: List the affected glibc versions.
* doc/posix-functions/futimens.texi: Likewise.
* doc/posix-functions/linkat.texi: Likewise.
* doc/glibc-functions/renameat2.texi: Likewise.
2025-05-11 Collin Funk <collin.funk1@gmail.com>
fts: Generate fts_.h.
Suggested by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00134.html>.
* lib/fts_.h: Remove file.
* lib/fts.in.h: New file.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Use gl_CHECK_HEADER_SYS_CDEFS_H instead
of AC_CHECK_HEADERS_ONCE.
* modules/fts (Files): Remove lib/fts_.h. Add lib/fts.in.h and
m4/sys_cdefs_h.m4.
(Depends-on): Add gen-header.
(Makefile.am): Add fts_.h to BUILT_SOURCES. Generate fts_.h using
fts.in.h while replacing @HAVE_SYS_CDEFS_H@. Add fts_.h and fts_.h-t to
MOSTLYCLEANFILES.
2025-05-11 Bruno Haible <bruno@clisp.org>
string-h, wchar-h: Fix some g++ -Wsystem-headers warnings.
* lib/string.in.h (memcpy, memccpy, memmove, strncpy, strndup, strncat,
memcmp, strncmp, memset): On glibc systems, declare with
_GL_ATTRIBUTE_NOTHROW.
* lib/wchar.in.h (wmemcpy, wmemmove, wcsncpy, wcsncat, wmemcmp, wcsncmp,
wmemset): Likewise.
2025-05-11 Bruno Haible <bruno@clisp.org>
qsort-tests: Fix a clang -Wpedantic warning.
* tests/test-qsort.c (lib_qsort): Remove a redundant 'return'.
2025-05-11 Bruno Haible <bruno@clisp.org>
Silence some more gcc 15 -Wunterminated-string-initialization warnings.
* lib/uninorm/composition.c (struct composition_rule): Mark codes[] as
nonstring.
* lib/gen-uni-tables.c (output_composition_tables): Emit the same
'struct composition_rule' definition.
* lib/uninorm/composition-table.gperf: Regenerated.
2025-05-11 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Fix logic mistake (regression 2025-01-03).
* lib/gen-uni-tables.c (is_property_composite): Fix mistake.
2025-05-11 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Fix compilation error (regression 2025-01-03).
* lib/gen-uni-tables.c (str_startswith): New function, from
lib/str_startswith.c.
(str_endswith): New function, from lib/str_endswith.c.
2025-05-11 Bruno Haible <bruno@clisp.org>
HACKING: Add documentation regarding link dependencies.
* HACKING (Maintaining link dependencies): New section.
2025-05-11 Bruno Haible <bruno@clisp.org>
bison: Fix configure test failure if POSIXLY_CORRECT is set.
Reported by Arsen Arsenović.
* m4/bison.m4 (gl_PROG_BISON): In the bison invocation, put all options
before the non-option arguments.
2025-05-11 Collin Funk <collin.funk1@gmail.com>
fts: Make sure __GNUC_PREREQ is defined (regression yesterday).
Reported by <nroycea+gnu@gmail.com> in
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78376>.
* lib/fts_.h (__GNUC_PREREQ): Define macro on clang or if the system
does not define it.
2025-05-10 Bruno Haible <bruno@clisp.org>
string-desc: Fixes for string literals and older GCC versions.
* lib/string-desc.h (HAVE__GENERIC, HAVE_BUILTIN_CHOOSE_EXPR,
HAVE_BUILTIN_CONSTANT_P, HAVE_RW_STRING_DESC): New macros.
Use HAVE_RW_STRING_DESC instead of HAVE_STATEMENT_EXPRESSIONS
everywhere.
(sd_new_addr): Use __builtin_choose_expr to deal with string literals.
* lib/xstring-desc.h: Use HAVE_RW_STRING_DESC instead of
HAVE_STATEMENT_EXPRESSIONS.
* lib/string-buffer.c (sb_dupfree): Construct an empty writable string
without a cast.
* lib/xstring-buffer.c (sb_xdupfree): Likewise.
* lib/string-buffer-reversed.c (sbr_dupfree): Likewise.
* lib/xstring-buffer-reversed.c (sbr_xdupfree): Likewise.
2025-05-10 Collin Funk <collin.funk1@gmail.com>
fts: Fix redefinition of __THROW.
* lib/fts_.h: Include <sys/cdefs.h> if the system has it.
(__THROW, __BEGIN_DECLS, __END_DECLS): Define properly if not previously
defined.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Check for sys/cdefs.h.
2025-05-10 Bruno Haible <bruno@clisp.org>
string-desc, xstring-desc: Avoid GCC attributes in function definitions.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00126.html>.
* lib/attribute.h: Clarify the allowed positions of attributes in
function definitions.
* lib/string-desc.h (_sd_char_at): Add a declaration, to hold the
gcc attrribute.
* lib/xstring-desc.h (_xsd_c): Likewise.
2025-05-10 Bruno Haible <bruno@clisp.org>
string-desc: Improve a declaration.
* lib/string-desc.h (_sd_char_at): Use _GL_ATTRIBUTE_NONNULL, not
_GL_ATTRIBUTE_NONNULL_IF_NONZERO.
2025-05-10 Bruno Haible <bruno@clisp.org>
qcopy-acl: Update link dependencies after yesterday's change.
* m4/acl.m4 (gl_QCOPY_ACL): Require gl_FILE_HAS_ACL.
(QCOPY_ACL_LIB): Conditionally add $FILE_HAS_ACL_LIB.
* modules/acl-tests (Makefile.am): Revert last change.
2025-05-10 Bruno Haible <bruno@clisp.org>
file-has-acl: Simplify logic for FILE_HAS_ACL_LIB.
* m4/acl.m4 (gl_FUNC_ACL_ARG): Don't set gl_need_lib_has_acl.
(gl_FUNC_ACL): Don't set FILE_HAS_ACL_LIB.
(gl_FILE_HAS_ACL): Require gl_FUNC_ACL. Don't set gl_need_lib_has_acl.
2025-05-09 Paul Eggert <eggert@cs.ucla.edu>
acl-tests: link with $(FILE_HAS_ACL_LIB)
* modules/acl-tests (test_copy_acl_LDADD): Add
$(FILE_HAS_ACL_LIB), since qcopy-acl depends on file-has-acl.
Although this suggests that QCOPY_ACL_LIB should contain
FILE_HAS_ACL_LIB, I’m not sure whether that’s the right course of
action and anyway this is good enough for coreutils.
2025-05-09 Bruno Haible <bruno@clisp.org>
string-desc: Distinguish writable strings from read-only strings.
* lib/string-desc.h (HAVE_STATEMENT_EXPRESSIONS): New macro.
(rw_string_desc_t): New type.
(string_desc_t) [HAVE_STATEMENT_EXPRESSIONS]: Change field _data from
'char *' to 'const char *'.
(sd_readonly, sd_readwrite): New inline functions.
(sd_length): Define through a macro with _Generic.
(sd_char_at): Define through a macro and an inline function.
(sd_data, sd_is_empty): Define through a macro with _Generic.
(sd_equals, sd_startswith, sd_endswith, sd_cmp, sd_c_casecmp, sd_index,
sd_last_index, sd_contains): Define through a macro.
(sd_new_addr): Define through a macro with _Generic.
(sd_substring, sd_write, sd_fwrite): Define through a macro.
(sd_new, sd_new_filled): Change parameter type.
(sd_copy): Define through a macro.
(sd_concat): Change parameter type.
(sd_c): Define through a macro.
(sd_set_char_at, sd_fill): Change parameter type.
(sd_overwrite): Define through a macro.
(sd_free): Change parameter type.
* lib/string-desc.c (_sd_equals): Renamed from sd_equals. Take scalar
parameters.
(_sd_startswith): Renamed from sd_startswith. Take scalar parameters.
(_sd_endswith): Renamed from sd_endswith. Take scalar parameters.
(_sd_cmp): Renamed from sd_cmp. Take scalar parameters.
(_sd_c_casecmp): Renamed from sd_c_casecmp. Take scalar parameters.
(_sd_index): Renamed from sd_index. Take scalar parameters.
(_sd_last_index): Renamed from sd_last_index. Take scalar parameters.
(_sd_new_addr, _rwsd_new_addr): Renamed from sd_new_addr.
(sd_substring): Remove function.
(_sd_write): Renamed from sd_write. Take scalar parameters.
(_sd_fwrite): Renamed from sd_fwrite. Take scalar parameters.
(sd_new, sd_new_filled): Change parameter type.
(_sd_copy): Renamed from sd_copy. Change parameter type. Take scalar
parameters.
(sd_concat): Change parameter type.
(_sd_c): Renamed from sd_c. Take scalar parameters.
(sd_set_char_at, sd_fill): Change parameter type.
(_sd_overwrite): Renamed from sd_overwrite. Change parameter type. Take
scalar parameters.
(sd_free): Change parameter type.
* lib/string-desc-contains.c (_sd_contains): Renamed from sd_contains.
Take scalar parameters.
* lib/xstring-desc.h (xsd_new, xsd_new_filled, xsd_copy, xsd_concat):
Change return type to rw_string_desc_t.
(xsd_c): Define through a macro.
* lib/xstring-desc.c (xsd_concat): Change return type to
rw_string_desc_t.
* doc/string-desc.texi (Handling strings with NUL characters): Mention
rw_string_desc_t and the sd_readonly() function.
* lib/string-buffer.h (sb_dupfree, sb_xdupfree): Change return type to
rw_string_desc_t.
* lib/string-buffer.c (sb_contents): Add a cast to 'const char *'.
(sb_dupfree): Change return type to rw_string_desc_t.
* lib/xstring-buffer.c (sb_xdupfree): Change return type to
rw_string_desc_t.
* lib/string-buffer-reversed.h (sbr_dupfree, sbr_xdupfree): Change
return type to rw_string_desc_t.
* lib/string-buffer-reversed.c (sbr_contents): Add a cast to
'const char *'.
(sbr_dupfree): Change return type to rw_string_desc_t.
* lib/xstring-buffer-reversed.c (sbr_xdupfree): Change return type to
rw_string_desc_t.
* tests/test-string-desc.c (main): Use type rw_string_desc_t as
appropriate.
* tests/test-xstring-desc.c (main): Likewise.
* tests/test-sf-istream.c (main): Remove cast in sd_new_addr argument.
* tests/test-sfl-istream.c (main): Likewise.
* NEWS: Mention the change.
2025-05-09 Paul Eggert <eggert@cs.ucla.edu>
qcopy-acl: port better to NFSv4 on GNU/Linux
Problem reported by Ian Dall in <https://bugs.gnu.org/78328>
and by Thomas Clark in <https://bugzilla.redhat.com/2363149>.
* lib/file-has-acl.c (smack_new_label_from_file) [!HAVE_SMACK]:
New dummy function.
(has_xattr, get_aclinfo): New arg FD. All callers changed.
Remove some unnecessary MAYBE_UNUSEDs.
(acl_get_fd_np): Fall back on acl_get_fd if this function is
needed but not available.
(acl_get_fdfile): New function, if needed.
(file_has_aclinfo): Reimplement in terms of ...
(fdfile_has_aclinfo): ... this new function,
which also has an FD argument.
* lib/qcopy-acl.c [USE_XATTR]: Include dirent.h, for DT_DIR etc.
(qcopy_acl): If attr_copy_file or attr_copy_fd fail with EOPNOTSUPP,
don’t fail if the source has a trivial ACL (this is the part
that fixes the bug; the rest is optimization).
* modules/qcopy-acl (Depends-on): Depend on dirent-h and
file-has-acl if $use_xattr. Also, depend on acl-permissions
unconditionally, since qcopy-acl.c includes acl.h unconditionally.
2025-05-09 Bruno Haible <bruno@clisp.org>
HACKING: Update.
* HACKING: Update for gcc 15 and clang 20.
2025-05-09 Bruno Haible <bruno@clisp.org>
string-desc: Detect invalid arguments to sd_substring.
* lib/string-desc.c (sd_substring): Verify that the substring does not
extend beyond the given string.
2025-05-08 Bruno Haible <bruno@clisp.org>
nstrftime: Fix a link error on Android API level ≥ 35.
Reported by Po Lu <luangruo@yahoo.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00069.html>.
* lib/strftime.c (HAVE_ONLY_C_LOCALE): New macro.
(REQUIRE_GNUISH_STRFTIME_AM_PM): Set to false if HAVE_ONLY_C_LOCALE
is 1.
(TOUPPER): Use c_toupper if HAVE_ONLY_C_LOCALE is 1.
(c_locale_cache, c_locale): Don't define if HAVE_ONLY_C_LOCALE
&& HAVE_STRUCT_TM_TM_ZONE.
(utc_timezone_cache, utc_timezone): Don't define if
(HAVE_ONLY_C_LOCALE || (USE_C_LOCALE && !HAVE_STRFTIME_L))
&& HAVE_STRUCT_TM_TM_ZONE.
(c_weekday_names, c_month_names): Define also if HAVE_ONLY_C_LOCALE
is 1.
(underlying_strftime): Don't define if
HAVE_ONLY_C_LOCALE && HAVE_STRUCT_TM_TM_ZONE
&& !(USE_C_LOCALE && !HAVE_STRFTIME_L).
(get_tm_zone): On Android, don't return NULL.
(__strftime_internal): If HAVE_ONLY_C_LOCALE is 1, don't invoke
underlying_strftime.
* modules/nstrftime (Depends-on): Add c-ctype.
2025-05-07 Paul Eggert <eggert@cs.ucla.edu>
obstack: avoid undefined pointer comparison
* lib/obstack.in.h (_OBSTACK_CPTR): New macro.
(obstack_free): Use it instead of comparing pointers directly,
when the pointers might not point into the same object.
obstack: check def before use; use ({...}) in last Sun C
* lib/obstack.in.h (__attribute_noreturn__, __extension__):
Be more careful about checking whether a macro is defined before
using it, as some compilers complain otherwise.
Use statement expressions and __extension__ in
Oracle Developer Studio 12.6, where __SUNPRO_C == 0x5150.
Simplify the logic for __extension__.
2025-05-07 Bruno Haible <bruno@clisp.org>
Add/fix some license notices.
* lib/mcel.c: Use same license notice as lib/mcel.h.
* lib/same-inode.c: Use same license notice as lib/same-inode.h.
* lib/str_startswith.c: Change license notice to LGPLv2+.
* lib/str_endswith.c: Likewise.
* lib/hash-triple.h: Change license notice to GPL.
* lib/xstring-buffer.c: Likewise.
* lib/xstring-buffer-printf.c: Likewise.
* lib/xstring-buffer-reversed.c: Likewise.
* lib/xstring-buffer-reversed-printf.c: Likewise.
2025-05-07 Bruno Haible <bruno@clisp.org>
Add syntax-check rule against CPU predef misspellings.
* lib/getloadavg.c: Test __alpha, not __alpha__.
* tests/test-snan-2.c: Likewise.
* m4/exponentd.m4: Test __arm__, not __arm.
* lib/utimensat.c: Test __hppa, not __hppa__.
* tests/qemu.h: Likewise.
* lib/fma.c: Test __sparc, not __sparc__.
* tests/qemu.h: Likewise.
* tests/test-exp2.h: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-snan-1.c: Likewise.
* tests/test-snan-2.c: Likewise.
Add syntax-check rule against OS predef misspellings.
* Makefile (sc_prohibit_misspelled_os_predefs): New target.
* lib/stat-size.h: Simplify detection of HP-UX.
* lib/mountlist.c: Fix typo in comment.
Add syntax-check rule against compiler predef misspellings.
* Makefile (sc_prohibit_misspelled_compiler_predefs): New target.
2025-05-07 Bruno Haible <bruno@clisp.org>
Remove obsolete syntax-check rules.
* Makefile (sc_maint): Comment out.
(sc_cpp_indent_check, sc_check_sym_list): Remove targets.
2025-05-07 Bruno Haible <bruno@clisp.org>
Fix "make sc_check_config_h_reminder" failure.
* Makefile (config_h_MACROS2): Add _GL_ATTRIBUTE_DEALLOC_FREE,
_GL_ATTRIBUTE_NONNULL_IF_NONZERO, _GL_ATTRIBUTE_REPRODUCIBLE,
_GL_ATTRIBUTE_UNSEQUENCED, _GL_ATTRIBUTE_CAPABILITY_TYPE,
_GL_ATTRIBUTE_ACQUIRE_CAPABILITY, _GL_ATTRIBUTE_RELEASE_CAPABILITY.
(exclude_file_name_regexp--sc_check_config_h_reminder): New variable.
(sc_check_config_h_reminder): Use it.
* lib/areadlink.h: Add <config.h> reminder.
* lib/crc.h: Likewise.
* lib/crc-x86_64.h: Likewise.
* lib/diffseq.h: Likewise.
* lib/gl_sublist.h: Likewise.
* lib/signed-nan.h: Likewise.
* lib/signed-snan.h: Likewise.
* lib/snan.h: Likewise.
* lib/unicase/special-casing.in.h: Likewise.
2025-05-07 Bruno Haible <bruno@clisp.org>
Tidy "make sc_prohibit_AC_LIBOBJ_in_m4" check.
* Makefile (sc_prohibit_AC_LIBOBJ_in_m4): Don't hide the rule commands.
(allow_AC_LIBOBJ): Remove exceptions that are no longer needed.
2025-05-07 Bruno Haible <bruno@clisp.org>
Fix "make sc_prohibit_sc_omitted_at" failure.
* Makefile (sc_prohibit_sc_omitted_at): Don't apply to this Makefile.
(sc_*): Don't hide the rule commands.
2025-05-07 Bruno Haible <bruno@clisp.org>
Fix "make sc_prefer_ac_check_funcs_once" failure.
* Makefile (exclude_file_name_regexp--sc_prefer_ac_check_funcs_once):
New variable.
(sc_prefer_ac_check_funcs_once): Use it.
2025-05-07 Bruno Haible <bruno@clisp.org>
Fix "make sc_prohibit_leading_TABs" failures.
* Makefile (exclude_file_name_regexp--sc_prohibit_leading_TABs): New
variable.
(sc_prohibit_leading_TABs): Use it.
* lib/crc-x86_64-pclmul.c: Untabify.
* tests/test-crc.c: Untabify.
* tests/test-parse-duration.sh: Remove leading tabs from here documents.
2025-05-06 Collin Funk <collin.funk1@gmail.com>
stddef-h: Fix __GNUC_MINOR__ typo.
* m4/stddef_h.m4 (gl_STDDEF_H): Use __GNUC_MINOR__ instead of
__GNUC_MINOR.
2025-05-06 Paul Eggert <eggert@cs.ucla.edu>
obstack: let glibc user #define __obstack_free
* lib/obstack.in.h (__obstack_free)
[! (__GL_GNULIB_HEADER && __GL_REPLACE_OBSTACK__)]:
Allow glibc user to #define __obstack_free. Although this
vestigial feature is not useful any more, it is one less change to
current glibc usage and so should make it a bit easier to merge
with glibc.
obstack: don’t assume INT_MAX < SIZE_MAX
This for clarity and to document the overflow checking better;
I think no current Gnulib or glibc targets have SIZE_MAX <= INTMAX,
so it shouldn’t change behavior on current targets.
* lib/obstack.c: Include stdckdint.h, not limits.h.
Remove no-longer needed ! (SIZE_MAX <= INT_MAX) check.
(align_chunk_size_up): Rename from align_size_up,
and change API to detect overflow directly. All callers changed.
(align_chunk_size_up, _obstack_newchunk): Use ckd_add instead of
checking overflow by hand in a way that assumed INT_MAX < SIZE_MAX.
(call_chunkfun, _obstack_begin_worker, _obstack_newchunk):
Accept and use _OBSTACK_CHUNK_SIZE_T not size_t. This affects
only glibc, since the two types are the same in Gnulib. All
callers changed.
* modules/obstack (Depends-on): Add stdckdint-h.
2025-05-06 Bruno Haible <bruno@clisp.org>
obstack: Fix library namespacing (regression yesterday).
* lib/obstack.in.h (__obstack_free): Define to _obstack_free, not
obstack_free, within glibc and in gnulib on systems without glibc.
* lib/obstack.c (obstack_free): Undefine only for the strong_alias.
(obstack_free): Define as an alias of _obstack_free, not vice versa.
2025-05-05 Paul Eggert <eggert@cs.ucla.edu>
obstack: match obstack.c with glibc
Make this file easier to compare with glibc obstack.c.
* lib/obstack.c: Include shlib-compat.h or libc-config.h.
Move some !_OBSTACK_NO_ERROR_HANDLER declarations up.
Add _LIBC-only compatibility decls.
* modules/obstack (Depends-on): Add libc-config.
obstack: simplify default size, alignment
* lib/obstack.c (MAX, DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Remove.
(_obstack_begin_worker): Use __alignof__ (max_align_t)
instead of calculating it by hand, possibly incorrectly
on oddball platforms. Estimate a good size of 4000 bytes
rather than using a no-longer-valid value.
* modules/obstack (Depends-on): Add stddef-h, for max_align_t.
obstack: use signed chunk sizes
* lib/obstack.in.h (_OBSTACK_CHUNK_SIZE_T) [!__GL_GNULIB_HEADER]:
Now long, not unsigned long, since that’s what glibc does.
obstack: fix undefined behavior if big alignment
* lib/obstack.c: Include stddef.h, for offsetof.
(align_size_up): New static function.
(_obstack_begin_worker, _obstack_newchunk):
Ensure that the chunk limit is aligned, too.
(_obstack_begin_worker): Don’t assume that 4096 is large enough,
as the alignment could be larger.
* lib/obstack.in.h (obstack_finish): Remove code that could have
set next_free outside the limits of the allocated storage, which
had undefined behavior. This code is no longer needed now that
chunk_limit has proper alignment.
libc-config, obstack: Oracle __extension__ support
* lib/cdefs.h, lib/obstack.in.h (__extension__):
Oracle Developer Studio 12.6 also supports __extension__.
obstack: be more like glibc for __extension__
* lib/obstack.in.h (__extension__): Use glibc-like syntax
for testing gcc version.
obstack: be more like glibc in return values
This partly reverts commit d15b2da0ac25e085ce30a9e2672624999ce910a6
dated 2014-11-03. It keeps the part of that commit that fixed the
return type of non-gcc versions of obstack_make_room,
obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow_fast,
obstack_int_grow_fast, obstack_blank so that they agree with gcc
versions.
* lib/obstack.in.h (obstack_next_free, obstack_chunkfun)
(obstack_freefun, obstack_1grow_fast, obstack_blank_fast):
Go back to returning a value instead of void,
to allay any glibc concerns about compatibility.
(obstack_1grow, obstack_blank): Explicitly return void,
since callees no longer do so.
obstack: _obstack_free → __obstack_free
* lib/obstack.in.h (__obstack_free): Rename back from _obstack_free.
This is for compatibility with glibc, which in turn is for
compatibility with old Gnulib. All uses changed.
obstack: use glibc’s temp slot names
* lib/obstack.in.h (struct obstack): Rename temp fields back to
what glibc uses, to avoid any glibc concerns about source code
compatibility. All uses changed back. This affect only
non-GNU-compatible compilers.
obstack: size_t → _OBSTACK_CHUNK_SIZE_T
* lib/obstack.c (_obstack_begin, _obstack_begin_1):
* lib/obstack.in.h (struct obstack, obstack_init, obstack_begin)
(obstack_specify_allocation)
(obstack_specify_allocation_with_arg, obstack_chunkfun):
Use _OBSTACK_CHUNK_SIZE_T instead of size_t in places where
glibc uses unsigned long rather than size_t. This makes
no difference with Gnulib, but should help allay any concerns
that merging Gnulib with glibc might change glibc’s ABI
on obsolescent glibc platforms where size_t is unsigned int.
obstack: rename to _OBSTACK_CHUNK_SIZE_T
* lib/obstack.in.h (_OBSTACK_CHUNK_SIZE_T):
Rename from _CHUNK_SIZE_T, for namespace prefix consistency.
obstack: use int where glibc does
Make it easier to merge with glibc, by using int where
the glibc API uses int, when compiling for glibc.
This does not affect Gnulib behavior.
* lib/obstack.in.h (_OBSTACK_INDEX_T): New macro.
* lib/obstack.in.h (struct obstack):
* lib/obstack.c (_obstack_begin_worker, obstack_begin)
(_obstack_begin_1, _obstack_newchunk, _obstack_memory_used):
Use _OBSTACK_INDEX_T, not _OBSTACK_SIZE_T, for API components
where glibc uses int.
obstack: use presence of uintptr_t
The code depends on the presence of uintptr_t,
not on whether ptrdiff_t is narrower than a pointer,
so use C macros that reflect this.
Also, clean up the namespace in the typical GCC-like case
* lib/obstack.in.h (_OBSTACK_UINTPTR_TYPE): New macro.
Include <stdint.h> only if needed (i.e., not GCC-like).
(__PTR_ALIGN): Use new macro instead of relying on
__GL_SMALL_PTRDIFF_T__ and directly on uintptr_t.
* m4/obstack.m4 (gl_FUNC_OBSTACK): Simplify by removing
__GL_SMALL_PTRDIFF_T__.
obstack: define PTR_INT_TYPE
* lib/obstack.in.h (PTR_INT_TYPE): Define, for compatibility
with glibc even though we don’t need the type for anything
other than compatibility. Include stddef.h only if needed,
like glibc obstack.h does.
obstack: merge better with glibc
When compiled for glibc, keep the fake array content size at 4,
for API compatibility with older glibc.
* lib/obstack.in.h (__FLEXIBLE_ARRAY_MEMBER): Remove.
(_OBSTACK_CHUNK_CONTENTS_SIZE): New macro.
(struct _obstack_chunk): Use it for contents size.
* modules/obstack (Depends-on): Add flexmember.
obstack: stop depending on alignof
* lib/obstack.c (__alignof__) [!__GNUC__]:
Default to alignof, not to alignof_type.
* modules/obstack (Depends-on): Depend on alignasof directly,
not indirectly via alignof.
obstack: fix unlikely buffer overrun in glibc
This bug is not plausible on any Gnulib platform,
but it could happen in glibc if the requested size is UINT_MAX.
* lib/obstack.c (_obstack_newchunk): Fail if requested size is 0.
* lib/obstack.in.h (obstack_grow0): Check for room <= len,
not room <= len + 1 where len + 1 could overflow.
2025-05-05 Bruno Haible <bruno@clisp.org>
windows-cygpath: Make it work with the native Windows 'git' port.
* lib/windows-cygpath.c (windows_cygpath_w): When we don't invoke
cygpath, still convert slashes to backslashes.
2025-05-05 Bruno Haible <bruno@clisp.org>
vc-mtime: Another fix for native Windows.
* lib/vc-mtime.c (SLASH): New macro.
(max_vc_mtime): Use it as expected directory separator in canonicalized
file names.
vc-mtime: Make it work with Cygwin's 'git' command on native Windows.
* lib/vc-mtime.c: Include windows-cygpath.h.
(abs_git_checkout): Invoke windows_cygpath_w.
* modules/vc-mtime (Depends-on): Add windows-cygpath.
2025-05-05 Bruno Haible <bruno@clisp.org>
New module windows-cygpath.
* lib/windows-cygpath.h: New file, based on lib/cygpath.h.
* lib/windows-cygpath.c: New file, based on lib/cygpath.c.
* modules/windows-cygpath: New file.
2025-05-05 Bruno Haible <bruno@clisp.org>
obstack: Relicense under LGPLv2+.
Alan Modra's permission is at
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00042.html>.
Paul Eggert's permission is at
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00041.html>.
* modules/obstack (License): Change to LGPLv2+.
* lib/obstack.in.h: Update license notice.
* lib/obstack.c: Likewise.
2025-05-04 Collin Funk <collin.funk1@gmail.com>
crypto/gc-arcfour tests: Fix link error when using --with-libgcrypt.
* modules/crypto/gc-arcfour-tests (Makefile.am): Link the test program
to @LIB_CRYPTO@.
2025-05-04 Bruno Haible <bruno@clisp.org>
sockets: Fix typo in comment.
* lib/sockets.h: Fix a typo in comment.
2025-05-04 Collin Funk <collin.funk1@gmail.com>
crypto/gc: Silence some -Wcalloc-transposed-args warnings, part 2.
* lib/gc-libgcrypt.c (gc_hash_open, gc_hash_clone): Swap the arguments
to calloc().
2025-05-04 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Improve support for Solaris 11 OpenIndiana.
Suggested by Andy Fiddaman <illumos@fiddaman.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-05/msg00018.html>.
* lib/getlocalename_l-unsafe.c (getlocalename_l_unsafe): On Solaris, use
the system's getlocalename_l() function if available.
2025-05-04 Bruno Haible <bruno@clisp.org>
vc-mtime: Don't crash if xgetcwd() returns NULL.
* lib/vc-mtime.c (max_vc_mtime): Skip the git processing if xgetcwd()
returns NULL.
2025-05-04 Bruno Haible <bruno@clisp.org>
vc-mtime: Fix a buffer overflow.
* lib/vc-mtime.c (max_vc_mtime): Increase the size of argv by one
element.
2025-05-04 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Fix typo in comment.
* lib/getlocalename_l-unsafe.h (struct string_with_storage): Fix
comment.
2025-05-04 Bruno Haible <bruno@clisp.org>
havelib: Fix m4 underquoting bug in AC_LIB_FROMPACKAGE.
Reported for GNU clisp by Adam Sampson <ats@offog.org> at
<https://gitlab.com/gnu-clisp/clisp/-/issues/60>.
* m4/lib-link.m4 (AC_LIB_FROMPACKAGE): Protect the comma in the
expansion of [acl_libsinpackage_]PACKUP by one more level of quotes.
2025-05-03 Bruno Haible <bruno@clisp.org>
tests: Avoid compilation errors on GNU/kFreeBSD.
* tests/test-sys_stat-h.c: Disable blksize_t assertion on GNU/kFreeBSD.
* tests/test-sys_types-h.c: Likewise.
2025-05-02 Collin Funk <collin.funk1@gmail.com>
doc: Update documentation for 'open' errno discrepancies.
* doc/posix-functions/open.texi: Document that NetBSD 10.0 and FreeBSD
14.2 set errno differently than POSIX specifies for
'open ("symlink", O_NOFOLLOW ...)'.
2025-05-02 Bruno Haible <bruno@clisp.org>
vc-mtime: Make it work with git versions < 2.28.
* lib/vc-mtime.c (git_version): New variable.
(is_git_present): Read the output of "git --version", and set
git_version.
(max_vc_mtime): Don't pass option --no-relative if the git version
is < 2.28.
2025-05-01 Bruno Haible <bruno@clisp.org>
vc-mtime: Add API for more efficient use of git, part 2.
* lib/vc-mtime.c (max_vc_mtime): Don't skip the odd-numbered arguments.
2025-05-01 G. Branden Robinson <g.branden.robinson@gmail.com> (tiny change)
doc: Clarify age of <sys/types.h>.
* doc/gnulib-readme.texi (C language versions): Mention when
<sys/types.h> first appeared.
2025-05-01 Bruno Haible <bruno@clisp.org>
vc-mtime: Add API for more efficient use of git.
Reported by Serhii Tereshchenko, Arthur, Adam YS, Foucauld Degeorges
at <https://savannah.gnu.org/bugs/?66865>.
* lib/vc-mtime.h (max_vc_mtime): New declaration.
* lib/vc-mtime.c: Include <errno.h>, <stdio.h>, <string.h>, filename.h,
xalloc.h, xgetcwd.h, xvasprintf.h, gl_map.h, gl_xmap.h, gl_hash_map.h,
hashkey-string.h, unlocked-io.h.
(is_git_present): New function, extracted from vc_mtime.
(vc_mtime): Invoke it.
(MAX_COMMAND_LENGTH, MAX_CMD_LEN): New macros.
(abs_git_checkout): New function, based on execute_and_read_line in
lib/javacomp.c.
(ancestor_level, relativize): New functions.
(struct accumulator): New type.
(accumulate): New function.
(max_vc_mtime): New function.
(test_ancestor_level, test_relativize, main) [TEST]: New functions.
* modules/vc-mtime (Depends-on): Add filename, xalloc, xgetcwd,
canonicalize-lgpl, xvasprintf, str_startswith, map, xmap, hash-map,
hashkey-string, getdelim.
2025-05-01 Bruno Haible <bruno@clisp.org>
javacomp: Fix resource leak.
* lib/javacomp.c (execute_and_read_line): Upon failure, close the stream
and wait for the child process to terminate.
2025-04-30 Bruno Haible <bruno@clisp.org>
New module hashcode-string1.
* lib/hashcode-string1.h: New file.
* lib/hashcode-string1.c: New file, based on lib/hash.c.
* modules/hashcode-string1: New file.
* lib/hash.h: Include hashcode-string1.h.
(hash_string): Remove declaration.
* lib/hash.c (hash_string): Remove function.
* modules/hash (Depends-on): Add hashcode-string1.
* lib/exclude.c: Include hashcode-string1.h.
* modules/exclude (Depends-on): Add hashcode-string1.
2025-04-30 Bruno Haible <bruno@clisp.org>
Rename module hashcode-string to hashcode-string2.
* lib/hashcode-string2.h: Renamed from lib/hashcode-string.h.
* lib/hashcode-string2.c: Renamed from lib/hashcode-string.c.
* modules/hashcode-string2: Renamed from modules/hashcode-string.
* MODULES.html.sh: Update.
* top/maint.mk: Update.
* lib/hash-pjw.h: Update.
* modules/hash-pjw: Update.
* lib/hashcode-named-file.c: Update.
* modules/hashcode-named-file (Depends-on): Update.
* tests/test-hash.c: Update.
* modules/hash-tests (Depends-on): Update.
2025-04-30 Bruno Haible <bruno@clisp.org>
clean-temp: Fix link error (regression yesterday).
* lib/clean-temp.c: Include hashkey-string.h.
(create_temp_dir): Use hashkey_string_* functions instead of
clean_temp_string_*.
* lib/clean-temp-private.h (clean_temp_string_equals,
clean_temp_string_hash): Remove declarations.
* modules/clean-temp (Depends-on): Add hashkey-string.
2025-04-30 Bruno Haible <bruno@clisp.org>
hashcode-named-file: Fix mistake (regression yesterday).
* lib/hash-triple.h: Include the correct header.
2025-04-30 Bruno Haible <bruno@clisp.org>
obstack: Make it easier to sync back with glibc.
* lib/obstack.in.h: Use __GL_GNULIB_HEADER to delimit sections that are
for Gnulib usage.
Test __GL_SMALL_PTRDIFF_T__ instead of @SMALL_PTRDIFF_T@.
Test __GL_REPLACE_OBSTACK__ instead of @REPLACE_OBSTACK@.
* modules/obstack (Makefile.am): Substitute __GL_GNULIB_HEADER.
Substitute __GL_SMALL_PTRDIFF_T__ instead of @SMALL_PTRDIFF_T@.
Substitute __GL_REPLACE_OBSTACK__ instead of @REPLACE_OBSTACK@.
2025-04-29 Bruno Haible <bruno@clisp.org>
hash: Rename an internal function.
* lib/hash.c (find_entry): Rename from hash_find_entry.
2025-04-29 Bruno Haible <bruno@clisp.org>
New module mem-hash-map.
* lib/mem-hash-map.h: New file, from GNU gettext.
* lib/mem-hash-map.c: New file, from GNU gettext.
* modules/mem-hash-map: New file, from GNU gettext.
2025-04-29 Bruno Haible <bruno@clisp.org>
next-prime: Add tests.
* tests/test-next-prime.c: New file.
* modules/next-prime-tests: New file.
New module next-prime.
* lib/next-prime.h: New file, based on lib/hash.c.
* lib/next-prime.c: New file, based on lib/hash.c.
* modules/next-prime: New file.
* lib/hash.c: Include next-prime.h.
(is_prime, next_prime): Remove functions.
* modules/hash (Depends-on): Add next-prime.
2025-04-29 Bruno Haible <bruno@clisp.org>
New module hashkey-string.
* lib/hashkey-string.h: New file.
* lib/hashkey-string.c: New file, based on lib/clean-temp-simple.c.
* modules/hashkey-string: New file.
* lib/clean-temp-simple.c: Include hashkey-string.h. Don't include
<limits.h>.
(clean_temp_string_equals, clean_temp_string_hash): Remove functions.
(SIZE_BITS): Remove macro.
(register_temporary_file): Use hashkey_string_equals and
hashkey_string_hash.
* modules/clean-temp-simple (Depends-on): Add hashkey-string.
2025-04-29 Bruno Haible <bruno@clisp.org>
Rename include file hash-triple.h to hashcode-file.h.
* lib/hashcode-file.h: Renamed from lib/hash-triple.h.
* lib/hash-triple.h: New file.
* lib/hashcode-named-file.c: Update.
* lib/hashcode-file-inode.c: Update.
* lib/canonicalize.c: Update.
* lib/file-set.c: Update.
* modules/hashcode-named-file (Files, Include): Update.
* modules/hashcode-file-inode (Include): Update.
* modules/hash-triple (Include): Update.
Rename module hash-triple to hashcode-file-inode.
* lib/hashcode-file-inode.c: Renamed from lib/hash-triple.c.
* modules/hashcode-file-inode: Renamed from modules/hash-triple.
* modules/hash-triple: New file.
* lib/hash-triple.h: Update.
* MODULES.html.sh: Update.
Rename module hash-triple-simple to hashcode-named-file.
* lib/hashcode-named-file.c: Renamed from lib/hash-triple-simple.c.
* modules/hashcode-named-file: Renamed from modules/hash-triple-simple.
* lib/hash-triple.h: Update.
* modules/canonicalize (Depends-on): Update.
* modules/file-set (Depends-on): Update.
* modules/hash-triple (Depends-on): Update.
* NEWS: Mention the change.
2025-04-29 Bruno Haible <bruno@clisp.org>
Rename module hash-pjw to hashcode-string.
* lib/hashcode-string.h: Renamed from lib/hash-pjw.h.
* lib/hashcode-string.c: Renamed from lib/hash-pjw.c.
* lib/hash-pjw.h: New file.
* modules/hashcode-string: Renamed from modules/hash-pjw.
* modules/hash-pjw: New file.
* MODULES.html.sh: Update.
* top/maint.mk: Update.
* lib/hash-triple-simple.c: Update.
* modules/hash-triple-simple (Depends-on): Update.
* tests/test-hash.c: Update.
* modules/hash-tests (Depends-on): Update.
2025-04-29 Bruno Haible <bruno@clisp.org>
Rename module hash-pjw-bare to hashcode-mem.
* lib/hashcode-mem.h: Renamed from lib/hash-pjw-bare.h.
* lib/hashcode-mem.c: Renamed from lib/hash-pjw-bare.c.
* lib/hash-pjw-bare.h: New file.
* modules/hashcode-mem: Renamed from modules/hash-pjw-bare.
* modules/hash-pjw-bare: New file.
* MODULES.html.sh: Update.
2025-04-29 Bruno Haible <bruno@clisp.org>
hash: Remove deprecated function 'hash_delete'.
* lib/hash.h (hash_delete): Remove declaration.
* lib/hash.c (hash_delete): Remove function.
2025-04-29 Bruno Haible <bruno@clisp.org>
hash: Add more comments.
* lib/hash.h (Hash_hasher, Hash_comparator, Hash_data_freer): Add
comments.
2025-04-28 Bruno Haible <bruno@clisp.org>
sigsegv: Fix compilation error on Mac OS X 10.4/powerpc.
Patch by Evan Miller <emmiller@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-08/msg00153.html>.
* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER) [macOS/powerpc: On Mac OS X
<= 10.4, assume struct field names without underscores.
2025-04-28 Bruno Haible <bruno@clisp.org>
threadlib: Avoid multi-dimensional pattern matching.
* m4/threadlib.m4: Change multi-dimensional AS_CASE back to several
one-dimensional tests.
threadlib: Correct indentation.
* m4/threadlib.m4: Put cases on a fresh line. Correct indentation.
2025-04-27 Paul Eggert <eggert@cs.ucla.edu>
threadlib: follow Autoconf AC_REQUIRE rules better
* m4/threadlib.m4: When conditionally invoking a macro that uses
or might use AC_REQUIRE, put it inside AS_CASE or AS_IF instead
of using shell constructs directly.
threadlib: make m4 work better with Emacs
* m4/threadlib.m4: Refactor by prefering AS_CASE to case, " to ',
$(...) to `, [[...]] to changequote, and #-to-newline to #-with-].
That way, Emacs commands recognize the sexps here.
Omit some unnecessary quotes.
manywarnings: omit -Wdisabled-optimization
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Remove -Wdisabled-optimization, as this is a warning about the
compiler not the program. I discovered the need for this when
compiling bleeding-edge Emacs with gcc-15 (Ubuntu
15-20250404-0ubuntu1) 15.0.1 20250404 (experimental) [master
r15-9193-g08e803aa9be] on x86-64. Also, omit a
no-longer-necessary LC_ALL=C in a comment.
gendocs: do not depend on awk
* build-aux/gendocs.sh (calcsize): Use shell directly, rather than
depending on awk. Allow spaces in outdir. Simplify.
2025-04-27 Bruno Haible <bruno@clisp.org>
Make use of gcc's __nonnull_if_nonzero__ attribute.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define
_GL_ATTR_nonnull_if_nonzero and _GL_ATTRIBUTE_NONNULL_IF_NONZERO.
* lib/attribute.h (ATTRIBUTE_NONNULL_IF_NONZERO): new macro.
* lib/stdlib.in.h (_GL_ATTRIBUTE_NONNULL_IF_NONZERO): New macro.
(bsearch, qsort, qsort_r): Use it.
* lib/string.in.h (_GL_ATTRIBUTE_NONNULL_IF_NONZERO): New macro.
(memcpy, memccpy, memmove, strncpy, strndup, strncat, memcmp, strncmp,
memchr, memrchr, memset, memset_explicit): Use it.
* lib/wchar.in.h (_GL_ATTRIBUTE_NONNULL_IF_NONZERO): New macro.
(wmemcpy, wmemmove, wcsncpy, wcsncat, wmemcmp, wcsncmp, wmemchr,
wmemset): Use it.
* lib/string-desc.h (sd_new_addr): Use it.
2025-04-26 Bruno Haible <bruno@clisp.org>
crc: Fix -Wmissing-variable-declarations warning.
* lib/crc-generate-table.c (crc_table): Make static.
2025-04-26 Bruno Haible <bruno@clisp.org>
stdopen: Silence -Wanalyzer-fd-leak warnings.
* lib/stdopen.c: Add a '#pragma GCC diagnostic ignored'.
2025-04-26 Bruno Haible <bruno@clisp.org>
ssfmalloc: Fix -Wmissing-variable-declarations warnings.
* lib/ssfmalloc.h (small_block_pages, medium_block_pages): Make static.
bitset: Fix -Wmissing-variable-declarations warnings.
* lib/bitset/table.c (tbitset_vtable): Make static.
* lib/bitset/array.c (abitset_small_vtable, abitset_vtable): Likewise.
* lib/bitset/vector.c (vbitset_vtable): Likewise.
* lib/bitset/list.c (lbitset_vtable): Likewise.
* lib/bitset/stats.c (bitset_stats_info_data, bitset_stats_info,
bitset_stats_vtable): Likewise.
argp: Fix -Wmissing-variable-declarations warnings.
* lib/argp-ba.c: Include <config.h> and argp.h.
* lib/argp-pv.c: Likewise.
2025-04-26 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix -Wshadow=local warnings.
* lib/vasnprintf.c (VASNPRINTF): Rename local variable 'i' to 'di'.
2025-04-26 Bruno Haible <bruno@clisp.org>
Silence gcc 15 -Wunterminated-string-initialization warnings.
* tests/test-gc-arctwo.c (main): Mark arrays as _GL_ATTRIBUTE_NONSTRING.
* tests/test-sf-istream.c (test_open_stream): Likewise.
* tests/test-sfl-istream.c (test_open_stream): Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-u8-width-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c (test_function): Likewise.
* tests/uniwbrk/test-u8-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-ulc-wordbreaks.c (main): Likewise.
2025-04-25 Collin Funk <collin.funk1@gmail.com>
pselect: Disable signature check on AIX.
* tests/test-pselect.c [_AIX]: Skip pselect signature check.
2025-04-25 Paul Eggert <eggert@cs.ucla.edu>
stddef-h: port better to future GCC 13.4, 14.3
* m4/stddef_h.m4 (gl_STDDEF_H): The idempotency bug should
be fixed in GCC 13.4 and 14.3, if and when they’re published.
2025-04-25 Bruno Haible <bruno@clisp.org>
unistdio/u*-vasnprintf: Fix handling of grouping rule.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00180.html>.
* lib/unistdio/u8-vasnprintf.c (DCHAR_STRLEN): New macro.
* lib/unistdio/u8-u8-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/unistdio/u16-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/unistdio/u16-u16-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/unistdio/u32-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/unistdio/u32-u32-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/unistdio/ulc-vasnprintf.c (DCHAR_STRLEN): Likewise.
* lib/vasnprintf.c (DCHAR_STRLEN): Define fallback.
(thousands_separator_DCHAR): New function.
(VASNPRINTF): Use it when DCHAR_T is uintN_t. Use DCHAR_CPY instead of
memcpy.
2025-04-24 Bruno Haible <bruno@clisp.org>
modula2comp-script: New module.
* m4/modula2comp.m4: New file.
* modules/modula2comp-script: New file.
2025-04-24 Bruno Haible <bruno@clisp.org>
fbufmode: Don't require peeking into the FILE structure on recent Haiku.
Suggested by Augustin Cavalier <waddlesplash@gmail.com>
in <https://dev.haiku-os.org/ticket/19479#comment:15>.
* lib/fbufmode.c (fbufmode): On Haiku >= hrev58760, use the same
implementation as on musl libc.
2025-04-24 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Disable unwanted compiler optimization.
* lib/getlocalename_l-unsafe.c (_GL_ARG_NONNULL): Define to empty.
2025-04-23 Collin Funk <collin.funk1@gmail.com>
tsearch tests: Disable tfind signature check on Cygwin.
* tests/test-tsearch.c [__CYGWIN__]: Skip the tfind signature check.
* doc/posix-functions/tfind.texi: Mention the Cygwin signature.
2025-04-22 Collin Funk <collin.funk1@gmail.com>
random_r tests: Disable signature check on Haiku.
* tests/test-random_r.c [__HAIKU__]: Skip initstate_r and setstate_r
signature check.
* doc/glibc-functions/initstate_r.texi: Remove year.
* doc/glibc-functions/setstate_r.texi: Likewise.
2025-04-21 Collin Funk <collin.funk1@gmail.com>
strsignal tests: Disable signature check on Haiku.
* tests/test-strsignal.c [__HAIKU__]: Skip signature check.
* doc/posix-functions/strsignal.texi: Document that strsignal returns
'const char *' instead of 'char *' on Haiku.
getloadavg: Fix typo in previous commit.
* lib/getloadavg.c (getloadavg): Remove '__' prefix from 'defined'.
2025-04-21 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: port to Android 3.1-
Problem reported by Po Lu in:
https://lists.gnu.org/r/bug-gnulib/2025-04/msg00172.html
* lib/getloadavg.c (getloadavg): Do not try to use sysinfo on
Android 3.1 Honeycomb (API 12, 2011) and earlier.
2025-04-19 Bruno Haible <bruno@clisp.org>
Update users.txt.
* users.txt: Add gperf.
2025-04-18 Bruno Haible <bruno@clisp.org>
Pacify gcc -Wtrailing-whitespace warnings across all of config.h.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Use AH_TOP and AH_BOTTOM to
disable -Wtrailing-whitespace warnings across all of config.h.
* m4/iconv.m4: Revert last change.
2025-04-18 Bruno Haible <bruno@clisp.org>
unitypes-h: Avoid risky coding pattern.
* m4/unitypes_h.m4: New file, based on modules/unitypes-h.
* modules/unitypes-h (Files): Add it.
(configure.ac): Invoke gl_UNITYPES_H. Remove AH_VERBATIM invocation.
2025-04-18 Bruno Haible <bruno@clisp.org>
getlogin_r tests: Remove xalloc dependency.
* tests/test-getlogin.c (main): Don't assume the putenv argument is
unmodified.
* tests/test-getlogin_r.c: Do not include xalloc.h.
(main): Use a static rather than heap storage.
* modules/getlogin_r-tests (Depends-on): Remove xalloc.
(test_getlogin_LDADD): Remove @LIBINTL@.
2025-04-17 Paul Eggert <eggert@cs.ucla.edu>
memset_explicit-tests: pacify -Wuse-after-free
* tests/test-memset_explicit.c: Ignore -Wuse-after-free,
since the test deliberately uses after free.
Pacify -Wunterminated-string-initialization
* tests/test-fwrite.c (main): Mark nonstrings with
_GL_ATTRIBUTE_NONSTRING.
* tests/test-mbsinit.c (main): "\303" → {'\303'} in initializer.
getlogin-tests: remove xalloc dependency
* modules/getlogin-tests (Depends-on): Remove xalloc.
(test_getlogin_LDADD): Remove @LIBINTL@.
* tests/test-getlogin.c: Do not include xalloc.h.
(main): Use a static rather than heap storage.
Pacify GCC 15’s new -Wtrailing-whitespace option
* m4/builtin-expect.m4 (gl___BUILTIN_EXPECT):
* m4/iconv.m4 (AM_ICONV_LINK, AM_ICONV):
Avoid whitespace at line end in C code.
* modules/unitypes-h (unitypes_restrict):
Likewise, bearing in mind that configure.ac lines will be indented
so such lines containing only '])' should be avoided when they
generate C code.
manywarnings: update C warnings for GCC 15
Adjust for C programs compiled by GCC 15.
This is merely changes to commentary; no changes to
the flags passed to GCC.
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 15.
Sort for LC_ALL=C, so that the update procedure is reproducible.
* m4/manywarnings.m4: Specify LC_ALL=C in comment.
2025-04-16 Bruno Haible <bruno@clisp.org>
getopt-posix: Avoid trouble due to 'struct rpl_option'.
* lib/getopt.in.h: Arrange for the system's <getopt.h> to define
'struct sys_option' instead of 'struct option'.
* lib/getopt-pfx-ext.h (option): Don't rename to rpl_option.
2025-04-16 Grisha Levit <grishalevit@gmail.com> (tiny change)
Ensure that the configuration cleans up conftest.dSYM directories.
* m4/gnulib-common.m4 (gl_CC_ALLOW_WARNINGS, gl_CXX_ALLOW_WARNINGS):
Remove conftest* files and directories recursively.
* m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX, gl_C_ASM): Likewise.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Likewise.
* m4/warnings.m4 (gl_CC_INHIBIT_WARNINGS, gl_CXX_INHIBIT_WARNINGS):
Likewise.
2025-04-15 Paul Eggert <eggert@cs.ucla.edu>
dfa: pacify gcc -Wstringop-overflow
Problem reported by Christian Hesse in:
https://bugs.gnu.org/77828
* lib/dfa.c (dfaanalyze): Pacify gcc -flto -Wstringop-overflow.
2025-04-15 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix exception during --update with changed macro-prefix.
* pygnulib/GLImport.py (GLImport.__init__): Support the case that the
expected ${macro_prefix}_FILE_LIST definition was not found.
2025-04-15 Bruno Haible <bruno@clisp.org>
trim tests: Avoid test failures on macOS 15.4.
* tests/test-trim.c (main): On macOS, disable test cases that fail on
macOS 15.4.
2025-04-15 Bruno Haible <bruno@clisp.org>
vasnprintf: Optimize new code.
* lib/vasnprintf.c (VASNPRINTF): Optimize common subexpressions.
2025-04-14 Paul Eggert <eggert@cs.ucla.edu>
regex: remove _REGEX_NELTS
This is a cleanup after the recent fix for undefined behavior.
* lib/regex.h (_REGEX_NELTS): Remove, as it is no longer useful.
All uses removed. Remove no-longer-needed uses of #pragma GCC.
regex: don’t check RE_SYNTAX_EMACS
* m4/regex.m4 (gl_REGEX): Do not check RE_SYNTAX_EMACS’s value.
Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2025-04/msg00098.html
2025-04-14 Bruno Haible <bruno@clisp.org>
c32is*, c32to* tests: Avoid test failures on macOS 15.4.
* tests/test-c32isalnum.c (main): On macOS, disable test cases that fail
on macOS 15.4.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32isspace.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-c32tolower.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
2025-04-14 Bruno Haible <bruno@clisp.org>
c-stack tests: Remove left-over core dump file.
Suggested by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00101.html>.
* tests/test-c-stack2.sh: Remove 'core' and 'test-c-stack.core' when
done.
2025-04-14 Bruno Haible <bruno@clisp.org>
regex: Fix undefined behaviour.
* lib/regex.h (_REGEX_NELTS): Define to empty; don't use ISO C99
variable-length arrays.
2025-04-14 Bruno Haible <bruno@clisp.org>
select tests: Work around a Cygwin bug.
* tests/test-select-in.sh: Skip the /dev/null test on Cygwin 3.6.x.
2025-04-14 Bruno Haible <bruno@clisp.org>
isnanl, isfinite, snan: Improve cross-compilation guess.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Don't assume that
arm is always little-endian.
isnanl, isfinite, snan: Improve cross-compilation guess.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): When
cross-compiling, invoke gl_LONG_DOUBLE_VS_DOUBLE and
gl_DOUBLE_EXPONENT_LOCATION, and guess the result depending on the CPU.
* modules/getpayloadl (Depends-on): Add exponentd.m4, math_h.m4.
* modules/isfinite (Depends-on): Likewise.
* modules/isnanl (Depends-on): Likewise.
* modules/setpayloadl (Depends-on): Likewise.
* modules/setpayloadsigl (Depends-on): Likewise.
* modules/isnanl-nolibm (Depends-on): Add exponentd.m4.
2025-04-13 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify gcc -Wcalloc-transposed-args
* lib/regcomp.c (init_dfa, parse_bracket_exp)
(build_charclass_op):
* lib/regex.h (RE_BACKSLASH_ESCAPE_IN_LISTS):
Define to 1ul so that the RE_* macros can be used in #if.
* lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
* lib/regexec.c (get_subexp, build_trtable):
When calling calloc, put size argument last.
regex: match current Emacs behavior
* config/srclist.txt: Comment out regex.h, since we now
disagree with glibc.
* lib/regex.h (RE_SYNTAX_EMACS):
Match Emacs 21+ behavior, not Emacs 20-.
* m4/regex.m4 (gl_REGEX): Check for this Emacs fix.
2025-04-13 Bruno Haible <bruno@clisp.org>
getlogin_r tests: Avoid writing to a literal string.
* tests/test-getlogin_r.c: Include xalloc.h.
(main): Pass a writable string to putenv().
* modules/getlogin_r-tests (Depends-on): Add xalloc.
(Makefile.am): Link the program with libintl when needed.
getlogin tests: Avoid writing to a literal string.
* tests/test-getlogin.c: Include xalloc.h.
(main): Pass a writable string to putenv().
* modules/getlogin-tests (Depends-on): Add xalloc.
(Makefile.am): Link the program with libintl when needed.
2025-04-13 Bruno Haible <bruno@clisp.org>
vasnprintf: Optimize last commit.
* lib/vasnprintf.c (VASNPRINTF): Optimize a few loops.
vasnprintf: Consider the grouping rule.
Reported by Pádraig Brady.
* lib/vasnprintf.c (grouping_rule, num_thousands_separators): New
functions.
(MAX_ROOM_NEEDED): Adjust worst-case guess for FLAG_GROUP.
(VASNPRINTF): Likewise. Invoke grouping_rule, num_thousands_separators.
Use the grouping rule to determine where to insert the thousands
separators.
* modules/vasnprintf (Depends-on): Add localeconv.
* modules/vasnwprintf (Depends-on): Likewise.
* modules/c-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2025-04-13 Bruno Haible <bruno@clisp.org>
vasnprintf tests: Fix compilation error on MSVC (regression yesterday).
* tests/test-vasnprintf-posix2.c (main): Disable the new test on
platforms where the 'long double' value range is insufficient.
* tests/test-vasnwprintf-posix2.c (main): Likewise.
2025-04-13 Bruno Haible <bruno@clisp.org>
*printf: Document a Haiku bug.
* doc/posix-functions/fwprintf.texi: Mention the missing ' flag support.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
2025-04-12 Collin Funk <collin.funk1@gmail.com>
aligned-malloc tests: Simplify a macro definition and improve comment.
Suggested by Bruno Haible.
* tests/test-aligned-malloc.c (ALIGNMENT): Undefine without checking.
Mention that the #undef is for AIX which defines it beforehand in
<sys/socket.h>.
immutable: Simplify a macro definition and improve comment.
Suggested by Bruno Haible.
* lib/immutable.c (ALIGNMENT): Undefine without checking. Mention that
the #undef is for AIX which defines it beforehand in <sys/socket.h>.
2025-04-12 Bruno Haible <bruno@clisp.org>
vasnprintf tests: Add a test case that showcases a Solaris bug.
* tests/test-vasnprintf-posix2.c (main): Add one more %'g test.
* tests/test-vasnwprintf-posix2.c (main): Likewise.
2025-04-12 Collin Funk <collin.funk1@gmail.com>
stdlib: Avoid syntax errors in libstdc++ header files on AIX.
* lib/stdlib.in.h: Include <string> before strtol, strtoll, strtoul, or
strtoull gets defined as a macro.
aligned-malloc tests: Avoid redefining macros on AIX.
* tests/test-aligned-malloc.c (ALIGNMENT): Undefine any definition from
system headers.
immutable: Avoid redefining macros on AIX.
* lib/immutable.c (ALIGNMENT): Undefine any definition from system
headers.
2025-04-12 Bruno Haible <bruno@clisp.org>
is*_l, fnmatch tests: Avoid test failures on macOS 15.4.
Reported by Daniel Collins <solemnwarning@solemnwarning.net>
at <https://savannah.gnu.org/bugs/?67007>.
* tests/test-isgraph_l.c (main): On macOS, disable test cases that fail
on macOS 15.4.
* tests/test-isprint_l.c (main): Likewise.
* tests/test-ispunct_l.c (main): Likewise.
* tests/test-fnmatch.c (main): Likewise.
2025-04-12 Bruno Haible <bruno@clisp.org>
vasnprintf: Work around two grouping bugs on native Windows.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_GROUPING): On native
Windows, define NEED_PRINTF_FLAG_GROUPING.
* lib/vasnprintf.c (localeconv): Undefine.
(thousands_separator_char, thousands_separator_wchar): On native
Windows, use localeconv().
* tests/test-vasnprintf-posix2.c (main): On native Windows, expect
3 digits for the exponent.
* tests/test-vasnwprintf-posix2.c (main): Likewise.
* doc/posix-functions/fprintf.texi: Mention the mingw and MSVC bugs.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/asprintf.texi: Likewise.
* doc/posix-functions/vasprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2025-04-12 Bruno Haible <bruno@clisp.org>
localeconv tests: Add multithread-safety test.
* tests/test-localeconv-mt.c: New file, based on
tests/test-nl_langinfo-mt.c.
* modules/localeconv-tests (Files): Add it.
(Depends-on): Add setlocale, thread, nanosleep.
(Makefile.am): Arrange to compile and run test-localeconv-mt.
2025-04-11 Bruno Haible <bruno@clisp.org>
vasnprintf: Work around two grouping bugs on many platforms.
* m4/printf.m4 (gl_PRINTF_FLAG_GROUPING_INT_PRECISION): New macro.
(gl_PRINTF_FLAG_GROUPING_MULTIBYTE): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Require
gl_PRINTF_FLAG_GROUPING_INT_PRECISION,
gl_PRINTF_FLAG_GROUPING_MULTIBYTE. Test
gl_cv_func_printf_flag_grouping_int_precision,
gl_cv_func_printf_flag_grouping_multibyte.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX):
Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_GROUPING): Require
gl_PRINTF_FLAG_GROUPING_INT_PRECISION,
gl_PRINTF_FLAG_GROUPING_MULTIBYTE. Test
gl_cv_func_printf_flag_grouping_int_precision,
gl_cv_func_printf_flag_grouping_multibyte. Define the C macro
NEED_PRINTF_FLAG_GROUPING_INT.
* lib/vasnprintf.c (thousands_separator_char): New function.
(THOUSEP_CHAR_MAXLEN): New macro.
(thousands_separator_wchar): New function.
(THOUSEP_WCHAR_MAXLEN): New macro.
(MAX_ROOM_NEEDED): Improve the room estimate for FLAG_GROUP.
(VASNPRINTF): Add code for emitting thousands separators in the %f, %F,
%g, %G implementations and in the code relies the system's
sprintf/snprintf/swprintf function. Test NEED_PRINTF_FLAG_GROUPING and
NEED_PRINTF_FLAG_GROUPING_INT where needed.
* tests/test-vasnprintf-posix2.c (main): Add tests of the grouping flag.
* tests/test-vasnwprintf-posix2.c (main): Likewise.
* tests/test-vasnprintf-posix2.sh: Test in both French locales, not only
in one of them.
* tests/test-vasnwprintf-posix2.sh: Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Add localeconv.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* doc/posix-functions/fprintf.texi: Mention the grouping bug with
precision on integers and the grouping bug with a multibyte thousands
separator.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/asprintf.texi: Likewise.
* doc/posix-functions/vasprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2025-04-11 Bruno Haible <bruno@clisp.org>
vasnprintf: Follow glibc's behaviour on glibc systems.
* lib/vasnprintf.c (DCHAR_MBSNLEN): Define fallback.
(VASNPRINTF): Use it on for width handling on glibc.
* modules/vasnprintf (Depends-on): Add mbsnlen.
* modules/c-vasnprintf (Depends-on): Likewise.
2025-04-11 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix memory size bound for %g with grouping and precision.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): For %g, consider also the size of
the thousands separators.
2025-04-11 Bruno Haible <bruno@clisp.org>
newlocale: Support cross-compilation.
* m4/newlocale.m4 (gl_FUNC_NEWLOCALE): Use a no-op command as third
argument of AC_RUN_IFELSE.
2025-04-10 Bruno Haible <bruno@clisp.org>
strcasecmp: Support cross-compilation.
Reported by Rudi Heitbaum <rudi@heitbaum.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-04/msg00055.html>.
* m4/strcasecmp.m4 (gl_STRCASECMP_WORKS): Use a no-op command as third
argument of AC_RUN_IFELSE.
2025-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix handling of # flag in %b, %B directives.
* lib/vasnprintf.c (VASNPRINTF): In the prec_ourselves code, treat a 0b
prefix like a 0x prefix.
2025-04-09 Simon Josefsson <simon@josefsson.org>
string-h: Fix build error on Windows/macOS about strerror_l.
https://lists.gnu.org/r/bug-gnulib/2025-04/msg00045.html
* lib/string.in.h: Wrap _GL_WARN_ON_USE in
HAVE_RAW_DECL_STRERROR_L.
2025-04-08 Collin Funk <collin.funk1@gmail.com>
stddef-h: Silence autoconf warnings introduced in previous commit.
* m4/stddef_h.m4 (gl_STDDEF_H): Use AC_LANG_SOURCE inside call to
AC_COMPILE_IFELSE.
2025-04-08 Bruno Haible <bruno@clisp.org>
stddef-h: Make a configure test work with upcoming GCC 15.
* m4/stddef_h.m4 (gl_STDDEF_H): Replace test "for clean definition" with
one that succeeds in GCC 15.
2025-04-07 Bruno Haible <bruno@clisp.org>
verify: Enhance a comment.
* lib/verify.h (_GL_COUNTER): Reference portability study regarding
__COUNTER__.
2025-04-07 Bruno Haible <bruno@clisp.org>
stdioext: Update comments regarding Haiku.
* lib/fbufmode.c (fbufmode): Update comment.
* lib/fpending.c: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freadptr.c: Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseterr.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
2025-04-07 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: port symlink code to Cygwin
Problem reported by Corinna Vinschen in:
https://lists.gnu.org/r/bug-gnulib/2025-03/msg00112.html
* lib/file-has-acl.c (acl_get_link_np): New static function,
defined only if needed; include <fcntl.h> if needed for this.
(HAVE_ACL_GET_LINK_NP): Define this if defining acl_get_link_np.
2025-04-07 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Avoid submodule-checks fail without submodules.
* top/maint.mk (no-submodule-changes): Condition on .gitmodules.
(public-submodule-commit): Likewise.
2025-04-06 Collin Funk <collin.funk1@gmail.com>
fseterr: Port to recent Haiku snapshots.
* lib/fseterr.h (__fseterr): Provide missing declaration.
fflush: Port to recent Haiku snapshots.
* lib/stdio-impl.h (_IO_IN_BACKUP) [__HAIKU__]: Define macros.
* lib/fflush.c (fp_) [!__HAIKU__]: Define to fp.
(fflush): Use fp_ instead of fp.
fbufmode: Port to recent Haiku snapshots.
* lib/stdio-impl.h (_IO_UNBUFFERED, _IO_LINE_BUF) [__HAIKU__]: Define
macros.
* lib/fbufmode.c (fp_) [!__HAIKU__]: Define to fp.
(fbufmode): Use fp_ instead of fp.
fseeko: Port to recent Haiku snapshots.
* lib/stdio-impl.h (fp_) [__HAIKU__]: Define to FILE which is an
incomplete type on Haiku.
(_IO_EOF_SEEN) [__HAIKU__]: Define macro.
* lib/fseeko.c (fp_) [!__HAIKU__]: Define to fp.
(fseeko): Use fp_ instead of fp.
2025-04-04 Eric Blake <eblake@redhat.com>
tests: Better name in init.sh usage.
* tests/init.sh: Prefer a word with non-negative connotation,
and which can't be confused for a typo.
2025-04-04 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Work with modern LCOV versions.
* top/maint.mk (gen-coverage): Don't pass --highlight to genhtml.
2025-04-02 Bruno Haible <bruno@clisp.org>
crypto/gc: Silence some -Wcalloc-transposed-args warnings.
* lib/gc-gnulib.c (gc_cipher_open, gc_hash_open, gc_hash_clone): Swap
the arguments of calloc().
2025-04-02 Bruno Haible <bruno@clisp.org>
Silence some -Wunterminated-string-initialization warnings.
* lib/base32.c (base32_encode): Mark b32str as not NUL-terminated.
* lib/base64.c (b64c): Mark as not NUL-terminated.
* lib/bcp47.c (struct script): Mark the 'code' field as not
NUL-terminated.
* lib/striconveh.c (mem_cd_iconveh_internal): Mark hex as not
NUL-terminated.
* lib/unicase/special-casing.in.h (struct special_casing_rule): Mark the
'code' field as not NUL-terminated.
2025-04-02 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Avoid undefined behaviour on Solaris 11.4.
* lib/getlocalename_l-unsafe.c (getlocalename_l_unsafe): On
Solaris 11.4, use "" as fallback.
2025-04-01 Bruno Haible <bruno@clisp.org>
dcomp-script: Handle gdc binaries named <host>-gdc.
* m4/dcomp.m4 (gt_DCOMP): Look only at the first word of the --version
output and accept a "<host>-" prefix.
* build-aux/dcomp.sh.in: Likewise.
2025-03-31 Bruno Haible <bruno@clisp.org>
dcomp-script: New module.
* m4/dcomp.m4: New file.
* build-aux/dcomp.sh.in: New file.
* modules/dcomp-script: New file.
2025-03-31 Bruno Haible <bruno@clisp.org>
acl, file-has-acl tests: Strengthen tests on Cygwin.
Suggested by Corinna Vinschen in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00126.html>.
* tests/test-set-mode-acl.sh: On Cygwin, use group 1 instead of the
non-existent group 0.
* tests/test-copy-acl.sh: Likewise.
* tests/test-file-has-acl.sh: Likewise.
2025-03-30 Bruno Haible <bruno@clisp.org>
file-has-acl: Update comments regarding Cygwin.
* lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE, acl_extended_file): Add
more comments.
2025-03-29 Bruno Haible <bruno@clisp.org>
acl-permissions: Update comments regarding NetBSD.
* lib/acl-internal.c: Update comments.
* lib/acl_entries.c: Likewise.
* tests/test-file-has-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
2025-03-28 Collin Funk <collin.funk1@gmail.com>
doc: Document NetBSD acl functions.
* doc/acl-resources.txt: Document that NetBSD supports all ACL functions
that FreeBSD supports.
2025-03-27 Simon Josefsson <simon@josefsson.org>
bootstrap: Improve "make dist" tarball reproducability.
* top/bootstrap-funclib.sh (autogen): Don't pass unnecessary -I's
when invoking autoreconf. The order of M4 include directories is
reflected in Makefile.in content. Our GNUmakefile _version rule
invoke autoreconf without any extra -I, and this difference in how
autoreconf is invoked results in different tarballs for "make
dist" vs "make release" which is undesirable.
2025-03-27 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Check spelling using 'codespell'.
* top/maint.mk (sc_codespell): Add.
2025-03-24 Paul Eggert <eggert@cs.ucla.edu>
same-inode: don't assume memory objects have ino
* lib/same-inode.h (psame_inode): Do not assume shared and/or
typed memory objects have reliable st_dev and st_ino when given to
stat-like functions, as POSIX does not guarantee this.
I don’t know of any such platforms (QNX perhaps?) but it’s
easy to be safe.
same-inode: update now-wrong dependency
* modules/same-inode (Depends-on): Depend on sys_stat-h,
not sys_types.h.
libtextstyle-optional: pacify gcc -Wunused-parameter
* lib/textstyle.in.h (html_ostream_create): Mark arg as unused.
2025-03-24 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Work around Cygwin 3.6.0 bug.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize
REPLACE_GETLOCALENAME_L.
* m4/getlocalename_l.m4 (gl_FUNC_GETLOCALENAME_L_UNSAFE): Test whether
getlocalename_l works. Set REPLACE_GETLOCALENAME_L.
* modules/locale-h (Makefile.am): Substitute REPLACE_GETLOCALENAME_L.
* lib/locale.in.h (getlocalename_l): Consider REPLACE_GETLOCALENAME_L.
* modules/getlocalename_l-simple (Depends-on, configure.ac): Likewise.
* doc/posix-functions/getlocalename_l.texi: Mention two Cygwin bugs.
2025-03-24 Bruno Haible <bruno@clisp.org>
mountlist: Fix a compilation error on Solaris with gcc 14.
* lib/mountlist.c (read_file_system_list): Cast the argument of
MNT_IGNORE.
2025-03-24 Bruno Haible <bruno@clisp.org>
gocomp-script: Improve comments.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00094.html>.
* build-aux/gocomp.sh.in: Mention limitation in comments.
2025-03-23 Collin Funk <collin.funk1@gmail.com>
mountlist tests: Fix link error. (regr. 2025-03-18).
* modules/mountlist-tests (Makefile.am): Link the test program with
LIBINTL.
utimens: Fix missing declarations on NetBSD (regr. 2024-09-16).
* lib/utimens.h [HAVE_UTIMENS || HAVE_LUTIMENS]: Include <sys/stat.h>
instead of <sys/time.h> for the declarations of these functions on
NetBSD.
newlocale: Fix implicit function declarations.
* lib/newlocale.c [HAVE_NEWLOCALE]: Include string.h for strlen and
strcmp, stdio.h for sprintf, and stdlib.h for free.
2025-03-22 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Add Android workaround, like on OpenBSD.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Set
gt_cv_locale_fake to yes also on Android.
2025-03-22 Bruno Haible <bruno@clisp.org>
setlocale-messages: Rename to setlocale-fixes and add Android support.
* lib/setlocale-fixes.h: Renamed from lib/setlocale-messages.h.
(setlocale_fixed, setlocale_fixed_null): New declarations.
* lib/setlocale-fixes.c: Renamed from lib/setlocale-messages.h.
(lc_cat_name): New variable.
(cat_to_index, index_to_cat): New macro.
(lc_all_name): New variable.
(cat_names): New constant.
(fill_lc_all_name, extract_single_name, setlocale_fixed,
setlocale_fixed_null): New functions.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set NEED_SETLOCALE_IMPROVED to 1
on Android.
* lib/setlocale.c: Include setlocale-fixes.h instead of
setlocale-messages.h.
(setlocale_unixlike) [__ANDROID__]: Use setlocale_fixed instead of
setlocale_mtsafe.
(setlocale_improved): On Android, use setlocale_fixed_null instead of
setlocale.
* lib/getlocalename_l-unsafe.c: Include setlocale-fixes.h instead of
setlocale-messages.h.
(getlocalename_l_unsafe): On Android, use setlocale_fixed_null instead
of setlocale_null.
* modules/setlocale-fixes: Renamed from modules/setlocale-messages.
(Files): Update.
(configure.ac): Compile the .c file also on Android.
(Include): Include setlocale-fixes.h instead of setlocale-messages.h.
* modules/setlocale (Depends-on): Add setlocale-fixes. Remove
setlocale-messages.
* modules/getlocalename_l-unsafe (Depends-on): Likewise.
* doc/posix-functions/setlocale.texi: Mention the Android problem.
2025-03-21 Bruno Haible <bruno@clisp.org>
getloadavg: Improve Linux and Android support.
* lib/getloadavg.c [__linux__, __ANDROID__]: Include <sys/param.h> and
<sys/sysinfo.h>.
(getloadavg) [__linux__, __ANDROID__]: Use sysinfo() instead of reading
/proc/loadavg.
(LINUX_LDAV_FILE): Remove macro.
2025-03-21 Bruno Haible <bruno@clisp.org>
parse-duration: Work around an strtoul() misfeature.
* lib/parse-duration.c (str_const_to_ul): Reject a + or - sign between
the optional whitespace and the digits.
* tests/test-parse-duration.sh: Add some tests with expected failure.
* tests/test-parse-duration.c (main): Fix usage message.
2025-03-21 Bruno Haible <bruno@clisp.org>
mountlist: Add specification comment in .h file.
* lib/mountlist.h (read_file_system_list): Move specification to here...
* lib/mountlist.c (read_file_system_list): ...from here.
2025-03-21 Bruno Haible <bruno@clisp.org>
mountlist: Work around an strtoul() misfeature.
* lib/mountlist.c: Include c-ctype.h.
(dev_from_mount_options): Ignore the dev=... option if its value starts
with whitespace or with a + or - sign.
* modules/mountlist (Depends-on): Add c-ctype.
2025-03-21 Bruno Haible <bruno@clisp.org>
mountlist: Replace a configure-time error with a compile-time error.
Reported by Yury V. Zaytsev <yury@shurup.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00080.html>.
* m4/mountlist.m4 (gl_MOUNTLIST): Instead of aborting the configuration,
define MOUNTED_NOT_PORTED.
* lib/mountlist.c (read_file_system_list): Err out if MOUNTED_NOT_PORTED
is defined.
* modules/mountlist (configure.ac, Makefile.am): Compile mountlist.c on
all platforms.
2025-03-21 Bruno Haible <bruno@clisp.org>
setlocale-null: Fix autoconf warning.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Define through
AC_DEFUN_ONCE.
2025-03-20 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on Android.
* lib/string.in.h (memset_explicit, strerrorname_np): Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* lib/time.in.h (timespec_getres): Likewise.
* lib/unistd.in.h (copy_file_range): Likewise.
2025-03-20 Bruno Haible <bruno@clisp.org>
nproc: Optimize.
* lib/nproc.c (num_processors): Optimize away the
num_processors_ignoring_omp (query) call when possible.
2025-03-19 Paul Eggert <eggert@cs.ucla.edu>
nproc, openmp-init: omit unnecessary strtol code
* lib/nproc.c (parse_omp_threads):
* lib/omp-init.c (parse_omp_threads):
Remove unnecessary initialization and unnecessary check
whether endptr == NULL.
Reported by Alejandro Colomar in:
https://lore.kernel.org/liba2i/jx4664ishtl34eg2npdrv5fkfdiczqnlq3vjuacjrupjvh377x@gddcftzgwmfq/
2025-03-19 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Fix typo in documentation.
Reported by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00071.html>.
* doc/posix-functions/getlogin.texi: Fix typo.
* doc/posix-functions/getlogin_r.texi: Likewise.
2025-03-19 Bruno Haible <bruno@clisp.org>
mountlist: Improve implementation on native Windows.
* lib/mountlist.c (read_file_system_list) [_WIN32 && !__CYGWIN__]:
Also return the mount points inside the file systems.
mountlist: Improve implementation on native Windows.
* lib/mountlist.c (read_file_system_list) [_WIN32 && !__CYGWIN__]:
Return the mntroot of drives mapped by SUBST or NET USE.
mountlist: Improve implementation on native Windows.
* lib/mountlist.c (read_file_system_list) [_WIN32 && !__CYGWIN__]:
Filter out those volumes for which GetVolumeInformation fails.
2025-03-18 Collin Funk <collin.funk1@gmail.com>
futimens: Work around a GNU/Hurd bug.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Check if futimens validates the
tv_nsec values of the timespec argument. Set bits in a return value
instead of exiting early.
* doc/posix-functions/futimens.texi (futimens): Mention the GNU/Hurd
bug. Mention the same bug occurs on NetBSD 10.
mountlist: Add tests.
* modules/mountlist-tests: New file.
* tests/test-mountlist.c: New file.
* modules/mountlist (Usable-in-testdir): Remove section.
* gnulib-tool.sh (func_create_testdir): Allow mountlist to be used in
testdirs.
mountlist: Add support for native Windows.
* lib/mountlist.c (read_file_system_list) [_WIN32 && !__CYGWIN__]:
Enumerate all drive prefixes.
* m4/mountlist.m4 (gl_MOUNTLIST): Don't abort on native Windows.
Prefer the __gnu_hurd__ macro over __GNU__.
* lib/get_ppid_of.c: Replace use of __GNU__ with __gnu_hurd__.
* lib/get_progname_of.c: Likewise.
* lib/sigsegv.c: Likewise.
* lib/sigsegv.in.h: Likewise.
* lib/vma-iter.c: Likewise.
* lib/vma-iter.h: Likewise.
* tests/test-ptsname.c: Likewise.
* tests/test-ptsname_r.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow1.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow2.c: Likewise.
* lib/getloadavg.c: Likewise. Adjust conditions and comments to account
for the fact that NeXT defines __GNU__ and not __gnu_hurd__.
utimensat: Make sure exit status in configure check doesn't exceed 127.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00061.html>.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Merge bits for tests to match
expectations on current platforms.
2025-03-17 Collin Funk <collin.funk1@gmail.com>
utimensat: Increment serial number for previous commit.
* m4/utimensat.m4: Increment serial number.
utimensat: Work around a GNU/Hurd bug.
* lib/utimensat.c (rpl_utimensat) [__gnu_hurd__]: Check for out of range
tv_nsec values.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. Guess that utimensat
doesn't work on GNU/Hurd.
* doc/posix-functions/utimensat.texi: Mention the bug.
2025-03-13 Collin Funk <collin.funk1@gmail.com>
vma-iter: Detect executable memory segments on Haiku (regr. 2011-01-25).
* lib/vma-iter.c (vma_iterate) [__BEOS__ || __HAIKU__]: Use the
B_EXECUTE_AREA flag.
2025-03-12 Collin Funk <collin.funk1@gmail.com>
dup3: Fix behavior for equal file descriptors on Haiku.
* lib/dup3.c (dup3) [__HAIKU__]: Set errno to EINVAL and return -1 if
both file descriptors are equal.
* doc/posix-functions/dup3.texi: Document the Haiku bug.
2025-03-12 Bruno Haible <bruno@clisp.org>
fcntl-h: Fix GNULIB_defined_O_NONBLOCK on Haiku (regr. 2025-02-16).
* lib/fcntl.in.h (_@GUARD_PREFIX@_ALREADY_INCLUDING_FCNTL_H): New macro.
2025-03-12 Simon Josefsson <simon@josefsson.org>
doc: Improvements for gnulib git bundle.
* doc/gnulib-git-bundle.texi (Gnulib Git Bundle): Use https URL,
suggested by Bruno. Update instructions and add checksum/keyinfo.
2025-03-10 Bruno Haible <bruno@clisp.org>
quotearg: Avoid undefined behaviour.
Reported by Kirill Furman <kfurman@astralinux.ru> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00037.html>.
* lib/quotearg.c (set_char_quoting): Use 'unsigned int', not 'int', for
doing bit mask operations.
2025-03-10 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Document limitation.
Reported by Nicolas Boos <nicolas.boos@wanadoo.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00033.html>.
* doc/posix-functions/getlogin.texi: Mention the "different user names
with same uid" limitation.
* doc/posix-functions/getlogin_r.texi: Likewise.
2025-03-09 Bruno Haible <bruno@clisp.org>
getlogin_r: Work around musl bug.
* lib/getlogin_r.c (getlogin_r): Add implementation for Linux.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Test whether getlogin_r has the
musl bug.
* tests/test-getlogin_r.c (main): Add another test.
* doc/posix-functions/getlogin_r.texi: Mention the workaround.
2025-03-09 Bruno Haible <bruno@clisp.org>
getlogin: Work around musl bug.
* lib/unistd.in.h (getlogin): Consider REPLACE_GETLOGIN.
* lib/getlogin.c: Change license header to GPL.
(getlogin): Add implementation for Linux.
* m4/getlogin.m4 (gl_FUNC_GETLOGIN): Test whether getlogin works.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETLOGIN.
* modules/unistd-h (Makefile.am): Substitute REPLACE_GETLOGIN.
* modules/getlogin (Depends-on): Add readutmp.
(configure.ac): Consider REPLACE_GETLOGIN.
(License): Change to GPL.
* tests/test-getlogin.c (main): Add another test.
* doc/posix-functions/getlogin.texi: Mention the workaround.
2025-03-08 Paul Eggert <eggert@cs.ucla.edu>
getlogin: document musl bug
Problem reported by Nicolas Boos <https://bugs.gnu.org/76876>.
2025-03-07 Bruno Haible <bruno@clisp.org>
gocomp-script: Avoid error on native Windows.
* build-aux/gocomp.sh.in: Unset CC and CXX.
2025-03-06 Bruno Haible <bruno@clisp.org>
gocomp-script: New module.
* m4/gocomp.m4: New file.
* build-aux/gocomp.sh.in: New file.
* modules/gocomp-script: New file.
2025-03-04 Collin Funk <collin.funk1@gmail.com>
getaddrinfo: Fix AI_NUMERICSERV configure check on GCC 14 (regr. 2025-02-12).
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Define a pointer to pass to
getaddrinfo where it allocates and stores the result.
2025-03-03 Bruno Haible <bruno@clisp.org>
doc: Update publication recipe.
* doc/README: Update publication commands.
2025-03-03 Simon Josefsson <simon@josefsson.org>
doc: Document upcoming Gnulib Git Bundle.
* doc/gnulib.texi (Miscellaneous Notes): Add sub-section "Gnulib Git Bundle".
* doc/gnulib-git-bundle.texi: New file.
2025-03-03 Bruno Haible <bruno@clisp.org>
vasprintf-posix, vasprintf-gnu: Fix module description.
Reported by Vivien Kraus <vivien@planete-kraus.eu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-03/msg00009.html>.
* modules/vasprintf-posix (Include): Change to <stdio.h>.
* modules/vasprintf-gnu (Include): Likewise.
2025-03-01 Bruno Haible <bruno@clisp.org>
package-version: Improve wording in './configure --help'.
Reported by Benno Schulenberg <bensberg@telfort.nl> in
<https://lists.gnu.org/archive/html/bug-gettext/2025-03/msg00000.html>.
* doc/package-version.texi: Recommend a dummy version number named
'package', not 'dummy'.
* m4/init-package-version.m4: Update comments accordingly.
* build-aux/git-version-gen: Likewise.
2025-02-28 Bruno Haible <bruno@clisp.org>
vc-mtime: Fix module description.
Reported by Vivien Kraus <vivien@planete-kraus.eu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-02/msg00174.html>.
* modules/vc-mtime (Include): Fix typo.
2025-02-25 Bruno Haible <bruno@clisp.org>
csharpcomp: Reduce number of read() system calls.
* lib/csharpcomp.c: Include <stddef.h>.
(compile_csharp_using_dotnet): Read bytes into a buffer, not one-by-one.
2025-02-25 Bruno Haible <bruno@clisp.org>
vc-mtime: Reduce number of read() system calls.
* lib/vc-mtime.c: Include <stddef.h>.
(git_vc_controlled): Read bytes into a buffer, not one-by-one.
2025-02-25 Bruno Haible <bruno@clisp.org>
vc-mtime: Improve comment.
Suggested by Paul Eggert.
* lib/vc-mtime.c (git_mtime): Clarify CommitDate vs. AuthorDate.
2025-02-24 Bruno Haible <bruno@clisp.org>
vc-mtime: New module.
* lib/vc-mtime.h: New file.
* lib/vc-mtime.c: New file.
* modules/vc-mtime: New file.
2025-02-24 Bruno Haible <bruno@clisp.org>
nl_langinfo: Support abbreviated alternative month names on FreeBSD.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): If HAVE_LANGINFO_ABALTMON
is 0, set REPLACE_NL_LANGINFO to 1.
2025-02-24 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: Fix compilation error on OpenBSD, AIX.
* modules/getlocalename_l-unsafe (configure.ac): Add module indicator.
* m4/locale_h.m4 (gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_GETLOCALENAME_L_UNSAFE.
* modules/locale-h (Makefile.am): Substitute
GNULIB_GETLOCALENAME_L_UNSAFE.
* lib/locale.in.h (newlocale, duplocale, freelocale): Test the module
indicator of 'getlocalename_l-unsafe', not the module indicator of
'getlocalename_l'.
2025-02-24 Bruno Haible <bruno@clisp.org>
nl_langinfo: Fix support of abbreviated alternative month names.
* lib/nl_langinfo.c (rpl_nl_langinfo): Treat ABALTMON_i like ABMON_i.
2025-02-24 Bruno Haible <bruno@clisp.org>
strerror_l tests: Fix link error.
* modules/strerror_l-tests (Makefile.am): Link the test program with
LIBINTL.
2025-02-22 Bruno Haible <bruno@clisp.org>
localename-unsafe-limited: Use getlocalename_l-unsafe-limited.
* modules/localename-unsafe-limited (Depends-on): Add
getlocalename_l-unsafe-limited. Remove getlocalename_l-unsafe.
2025-02-22 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe-limited: New module.
* modules/getlocalename_l-unsafe-limited: New file.
* modules/getlocalename_l-unsafe (Depends-on): Add
getlocalename_l-unsafe-limited.
(Makefile.am): Don't compile getlocalename_l-unsafe.c if already
compiled as part of module 'getlocalename_l-unsafe-limited'.
2025-02-22 Bruno Haible <bruno@clisp.org>
localename-unsafe: Use getlocalename_l-unsafe.
* lib/localename-unsafe.c: Include getlocalename_l-unsafe.h.
(gl_locale_name_thread_unsafe): Invoke getlocalename_l_unsafe instead of
getlocalename_l.
* modules/localename-unsafe (Depends-on): Add getlocalename_l-unsafe.
Remove getlocalename_l-simple.
* modules/localename-unsafe-limited (Depends-on): Likewise.
2025-02-22 Bruno Haible <bruno@clisp.org>
getlocalename_l-unsafe: New module.
* lib/getlocalename_l-unsafe.h: New file, based on
lib/getlocalename_l.c.
* lib/getlocalename_l-unsafe.c: New file.
* lib/getlocalename_l.c: Most code moved to
lib/getlocalename_l-unsafe.c.
(getlocalename_l): Implement based on getlocalename_l_unsafe.
* m4/getlocalename_l.m4 (gl_FUNC_GETLOCALENAME_L_UNSAFE,
gl_PREREQ_GETLOCALENAME_L_UNSAFE): New macros.
(gl_FUNC_GETLOCALENAME_L_SIMPLE): Require
gl_FUNC_GETLOCALENAME_L_UNSAFE.
(gl_PREREQ_GETLOCALENAME_L_SIMPLE): Now empty.
* modules/getlocalename_l-unsafe: New file.
* modules/getlocalename_l-simple (Files): Remove
lib/localename-table.h, lib/localename-table.c,
m4/intl-thread-locale.m4.
(Depends-on): Add getlocalename_l-unsafe. Remove setlocale-messages,
setlocale-null, free-posix.
(Makefile.am): Don't compile localename-table.c.
2025-02-21 Bruno Haible <bruno@clisp.org>
langinfo-h, nl_langinfo: Support abbreviated alternative month names.
* lib/langinfo.in.h (ABALTMON_1...ABALTMON_12): New macros.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Define HAVE_LANGINFO_ABALTMON.
* modules/langinfo-h (Makefile.am): Substitute HAVE_LANGINFO_ABALTMON.
* tests/test-langinfo-h.c (items): Add ABALTMON_1 to ABALTMON_12.
* lib/nl_langinfo.c (rpl_nl_langinfo): Treat ABALTMON_i like ABMON_i.
* tests/test-nl_langinfo.c (main): Test ABALTMON_*.
* doc/posix-headers/langinfo.texi: Document support of ABALTMON_*.
* doc/posix-functions/nl_langinfo.texi: Likewise.
2025-02-21 Bruno Haible <bruno@clisp.org>
langinfo-h tests: Verify that ALTMON_* are defined.
* tests/test-langinfo-h.c (items): Add ALTMON_1 to ALTMON_12.
2025-02-21 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Improve support for loongarch32.
Reported by <wuruilong@loongson.cn>
in <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1098478>
via Simon Josefsson.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Prepare template for
__loongarch32__ in config.h.
(gl_HOST_CPU_C_ABI_32BIT): Speed up the configure test on loongarch*.
2025-02-21 Bruno Haible <bruno@clisp.org>
getlocalename_l-simple: Add tests.
* tests/test-getlocalename_l.c: New file.
* modules/getlocalename_l-simple-tests: New file.
getlocalename_l-simple: New module.
* lib/locale.in.h (newlocale, duplocale, freelocale): Now enabled by
module 'getlocalename_l-simple'.
(getlocalename_l): New declaration.
* lib/getlocalename_l.c: New file, based on lib/localename-unsafe.c,
with modifications for glibc systems, NetBSD, OpenBSD, Android.
* lib/localename-table.h (LCMIN): New macro.
* lib/struniq.h: Update a comment.
* lib/localename-unsafe.c: Don't define the
LOCALENAME_ENHANCE_LOCALE_FUNCS overrides here. Moved to
lib/getlocalename_l.c.
(gl_locale_name_thread_unsafe): Invoke getlocalename_l. Previous code
moved to lib/getlocalename_l.c.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Improve support
for OpenBSD: Set gt_nameless_locales to yes and
gt_localename_enhances_locale_funcs to yes also when $gt_fake_locales is
yes.
* m4/getlocalename_l.m4: New file, based on m4/localename.m4.
* m4/localename.m4 (gl_LOCALENAME_UNSAFE, gl_LOCALENAME_UNSAFE_LIMITED):
Remove code that was moved to m4/getlocalename_l.m4.
* m4/locale_h.m4 (gl_LOCALE_H): Test whether getlocalename_l is
declared.
(gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETLOCALENAME_L.
(gl_LOCALE_H_DEFAULTS): Initialize HAVE_GETLOCALENAME_L.
* modules/locale-h (Makefile.am): Substitute GNULIB_GETLOCALENAME_L,
HAVE_GETLOCALENAME_L.
* modules/getlocalename_l-simple: New file.
* modules/localename-unsafe (Files): Remove lib/localename-table.h,
lib/localename-table.c, lib/struniq.h.
(Depends-on): Add getlocalename_l-simple. Remove bool, flexmember,
free-posix, langinfo-h, thread-optim.
(Makefile.am): Don't compile localename-table.c.
* modules/localename-unsafe-limited (Depends-on): Add
getlocalename_l-simple.
* modules/newlocale (Link): New section.
* modules/duplocale (Link): Link with $(GETLOCALENAME_L_LIB).
* modules/freelocale (Link): New section.
* modules/newlocale-tests (Makefile.am): Link the test program with
$(GETLOCALENAME_L_LIB).
* modules/duplocale-tests (Makefile.am): Likewise.
* modules/freelocale-tests (Makefile.am): Likewise.
* modules/is*_l-tests (Makefile.am): Likewise.
* modules/tolower_l-tests (Makefile.am): Likewise.
* modules/toupper_l-tests (Makefile.am): Likewise.
* modules/strcasecmp_l-tests (Makefile.am): Likewise.
* modules/strncasecmp_l-tests (Makefile.am): Likewise.
* modules/strerror_l-tests (Makefile.am): Likewise.
* doc/posix-functions/getlocalename_l.texi: Mention the new module.
2025-02-21 Bruno Haible <bruno@clisp.org>
setlocale-messages: New module.
* lib/setlocale-messages.h: New file.
* lib/setlocale-messages.c: New file, based on lib/setlocale.c.
* modules/setlocale-messages: New file.
* lib/setlocale.c: Include setlocale-messages.h.
(lc_messages_name): Remove variable.
(setlocale_single): Just invoke setlocale_messages.
* modules/setlocale (Depends-on): Add setlocale-messages.
2025-02-21 Bruno Haible <bruno@clisp.org>
localename-unsafe: Remove dead code.
* lib/localename-unsafe.c (gl_locale_name_thread_unsafe): On Solaris,
assume HAVE_NAMELESS_LOCALES is undefined.
2025-02-21 Bruno Haible <bruno@clisp.org>
localename-unsafe: Remove support for nonexistent Solaris 12.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Remove test for
getlocalename_l.
* lib/localename-unsafe.c: Ignore HAVE_GETLOCALENAME_L.
2025-02-21 Bruno Haible <bruno@clisp.org>
setlocale: Relicense under LGPLv2+.
* modules/setlocale (License): Change to LGPLv2+.
* lib/setlocale.c: Update license notice.
2025-02-20 Bruno Haible <bruno@clisp.org>
*_l: Fix mistake.
* lib/is_l-impl.h (FUNC): Fix array index on old NetBSD and OpenBSD.
* lib/to_l-impl.h (FUNC): Likewise.
* lib/strcasecmp_l.c (strcasecmp_l): Likewise.
* lib/strncasecmp_l.c (strncasecmp_l): Likewise.
* lib/strerror_l.c (strerror_l_r): Likewise.
2025-02-19 Bruno Haible <bruno@clisp.org>
readutmp: Let callers distinguish LOGINs from USERs.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-02/msg00123.html>.
* lib/readutmp.h (LOGIN_PROCESS, UT_TYPE_LOGIN_PROCESS): New macros.
* lib/readutmp.c (read_utmp_from_systemd): Possibly use LOGIN_PROCESS
instead of USER_PROCESS, depending on the session's class.
2025-02-18 Bruno Haible <bruno@clisp.org>
strerror_l: Add tests.
* tests/test-strerror_l.c: New file.
* modules/strerror_l-tests: New file.
strerror_l: New module.
* lib/string.in.h: Include <locale.h>.
(strerror_l, strerror_l_r): New declarations.
* lib/strerror_l.c: New file.
* m4/strerror_l.m4: New file.
* m4/string_h.m4 (gl_STRING_H): Test for strerror_l.
(gl_STRING_H_REQUIRE_DEFAULTS): Initialize GNULIB_STRERROR_L.
(gl_STRING_H_DEFAULTS): Initialize HAVE_STRERROR_L, REPLACE_STRERROR_L.
* modules/string-h (Makefile.am): Substitute GNULIB_STRERROR_L,
HAVE_STRERROR_L, REPLACE_STRERROR_L.
* modules/strerror_l: New file.
* tests/test-string-h-c++.cc: Check declaration of strerror_l.
* doc/posix-functions/strerror_l.texi: Mention the new module.
2025-02-18 Bruno Haible <bruno@clisp.org>
errno-iter: New module.
* lib/errno-iter.h: New file.
* lib/errno-iter.c: New file, based on lib/strerrorname_np.c.
* modules/errno-iter: New file.
2025-02-18 Bruno Haible <bruno@clisp.org>
at-init: Add tests.
* tests/test-at-init.sh: New file.
* tests/test-at-init.c: New file.
* tests/test-at-init-2.c: New file.
* tests/test-at-init-3.c: New file.
* modules/at-init-tests: New file.
at-init: New module.
* lib/at-init.h: New file.
* lib/at-init.c: New file.
* modules/at-init: New file.
2025-02-17 Paul Eggert <eggert@cs.ucla.edu>
fts: expose fts_debug
* lib/fts_.h (fts_debug) [GNULIB_FTS_DEBUG]: New decl.
Coreutils was accessing this by the back door; let’s make it public.
crc-tests: use consistent type for randomb
* tests/randomb.c (randomb): Now array of char, not unsigned char,
since callers all want char. All uses changed.
2025-02-17 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Improve documentation.
* DEPENDENCIES: Mention requirements of 'readutmp' and 'boot-time'.
2025-02-17 Bruno Haible <bruno@clisp.org>
getaddrinfo tests: Skip test cases that may fail on Debian 12.
* tests/test-getaddrinfo.c (main): Skip some test cases on glibc.
2025-02-17 Bruno Haible <bruno@clisp.org>
strncasecmp_l: Fix replacement implementation.
* lib/strncasecmp_l.c (strncasecmp_l): Use tolower_l, not tolower.
2025-02-17 Bruno Haible <bruno@clisp.org>
strcasecmp, strncasecmp: Fix compilation error on MSVC.
* modules/strcasecmp (configure.ac): Invoke gl_STRINGS_MODULE_INDICATOR.
* modules/strncasecmp (configure.ac): Likewise.
2025-02-17 Bruno Haible <bruno@clisp.org>
getaddrinfo tests: Make failures more verbose.
* tests/test-getaddrinfo.c (simple): Print some info before returning 1.
2025-02-16 Collin Funk <collin.funk1@gmail.com>
doc: Adjust platforms that define O_CLOEXEC in unistd.h.
Suggested by Bruno Haible.
* posix-headers/unistd.texi: Mention that macOS 12 and AIX 7.3 do not
define O_CLOEXEC in this header. Remove redundant MSVC.
2025-02-16 Bruno Haible <bruno@clisp.org>
strncasecmp_l: Add tests.
* tests/test-strncasecmp_l.c: New file.
* modules/strncasecmp_l-tests: New file.
strncasecmp_l: New module.
* lib/strings.in.h (strncasecmp_l): New declaration.
* lib/strncasecmp_l.c: New file, based on lib/strncasecmp.c.
* m4/strncasecmp_l.m4: New file.
* m4/strings_h.m4 (gl_STRINGS_H): Test for strncasecmp_l.
(gl_STRINGS_H_REQUIRE_DEFAULTS): Initialize GNULIB_STRNCASECMP_L.
(gl_STRINGS_H_DEFAULTS): Initialize HAVE_STRNCASECMP_L,
REPLACE_STRNCASECMP_L.
* modules/strings-h (Makefile.am): Substitute GNULIB_STRNCASECMP_L,
HAVE_STRNCASECMP_L, REPLACE_STRNCASECMP_L.
* modules/strncasecmp_l: New file.
* tests/test-strings-h-c++.cc: Check declaration of strncasecmp_l.
* doc/posix-functions/strncasecmp_l.texi: Mention the new module and the
macOS, Solaris, Cygwin bugs.
2025-02-16 Bruno Haible <bruno@clisp.org>
strcasecmp_l: Add tests.
* tests/test-strcasecmp_l.c: New file.
* modules/strcasecmp_l-tests: New file.
strcasecmp_l: New module.
* lib/strings.in.h: Include <locale.h>.
(strcasecmp_l): New declaration.
* lib/strcasecmp_l.c: New file, based on lib/strcasecmp.c.
* m4/strcasecmp_l.m4: New file.
* m4/strings_h.m4 (gl_STRINGS_H): Test for strcasecmp_l.
(gl_STRINGS_H_REQUIRE_DEFAULTS): Initialize GNULIB_STRCASECMP_L.
(gl_STRINGS_H_DEFAULTS): Initialize HAVE_STRCASECMP_L,
REPLACE_STRCASECMP_L.
* modules/strings-h (Makefile.am): Substitute GNULIB_STRCASECMP_L,
HAVE_STRCASECMP_L, REPLACE_STRCASECMP_L.
* modules/strcasecmp_l: New file.
* tests/test-strings-h-c++.cc: Check declaration of strcasecmp_l.
* doc/posix-functions/strcasecmp_l.texi: Mention the new module and the
macOS, Solaris, Cygwin bugs.
2025-02-16 Collin Funk <collin.funk1@gmail.com>
unistd-h tests: Check that unistd.h defines O_CLOEXEC.
* tests/test-unistd-h.c: Prefer #error to emitting a syntax error. Check
that O_CLOEXEC is defined.
unistd-h: Make sure O_CLOEXEC is defined.
* modules/unistd-h (Depends-on): Add fcntl-h.
* lib/unistd.in.h: Include fcntl.h if inclusion of unistd.h does not
define O_CLOEXEC.
* doc/posix-headers/unistd.texi: Document the platforms that do not
define O_CLOEXEC in unistd.h.
2025-02-16 Bruno Haible <bruno@clisp.org>
strncasecmp: Add tests.
* tests/test-strncasecmp-1.sh: New file.
* tests/test-strncasecmp-2.sh: New file.
* tests/test-strncasecmp.c: New file.
* modules/strncasecmp-tests: New file.
strncasecmp: Work around Solaris, Cygwin bug.
* lib/strings.in.h (strncasecmp): Consider REPLACE_STRNCASECMP. Use the
usual idioms.
* m4/strings_h.m4 (gl_STRINGS_H_DEFAULTS): Initialize HAVE_STRNCASECMP,
REPLACE_STRNCASECMP.
* m4/strncasecmp.m4 (gl_FUNC_STRNCASECMP): Invoke gl_STRNCASECMP_WORKS.
Set REPLACE_STRNCASECMP. Assume that HAVE_STRNCASECMP is initialized.
* modules/strncasecmp (Files): Add m4/strcasecmp.m4.
(configure.ac): Consider REPLACE_STRNCASECMP.
* modules/strings-h (Makefile.am): Substitute HAVE_STRNCASECMP,
REPLACE_STRNCASECMP.
* doc/posix-functions/strncasecmp.texi: Mention the Solaris, Cygwin bug.
2025-02-16 Bruno Haible <bruno@clisp.org>
strcasecmp: Add tests.
* tests/test-strcasecmp-1.sh: New file.
* tests/test-strcasecmp-2.sh: New file.
* tests/test-strcasecmp.c: New file.
* modules/strcasecmp-tests: New file.
strcasecmp: Work around Solaris, Cygwin bug.
* lib/strings.in.h (strcasecmp): Consider REPLACE_STRCASECMP. Use the
usual idioms.
* m4/strings_h.m4 (gl_STRINGS_H_DEFAULTS): Initialize
REPLACE_STRCASECMP.
* m4/strcasecmp.m4 (gl_STRCASECMP_WORKS): New macro.
(gl_FUNC_STRCASECMP): Invoke it. Set REPLACE_STRCASECMP.
* modules/strcasecmp (configure.ac): Consider REPLACE_STRCASECMP.
* modules/strings-h (Makefile.am): Substitute REPLACE_STRCASECMP.
* doc/posix-functions/strcasecmp.texi: Mention the Solaris, Cygwin bug.
2025-02-16 Bruno Haible <bruno@clisp.org>
strcasecmp, strncasecmp: Fix header reference.
* lib/strcasecmp.c: Include <strings.h>, not <string.h>.
* lib/strncasecmp.c: Likewise.
2025-02-16 Bruno Haible <bruno@clisp.org>
realloc: Fix link error in C++ mode on CentOS 5 (regression 2024-11-04).
* lib/stdlib.in.h (rpl_realloc): Ensure C linkage, not C++ linkage, in
C++ mode.
2025-02-16 Bruno Haible <bruno@clisp.org>
c-strcasecmp, c-strncasecmp: New modules.
* modules/c-strcasecmp: New file.
* modules/c-strncasecmp: New file.
* modules/c-strcase: Merely depend on c-strcasecmp, c-strncasecmp.
* lib/strings.in.h (strcasecmp, strncasecmp): Update warning message.
* tests/test-c-strcasecmp.sh: New file, based on
tests/test-c-strcase.sh.
* tests/test-c-strncasecmp.sh: New file, based on
tests/test-c-strcase.sh.
* tests/test-c-strcase.sh: Remove file.
* modules/c-strcasecmp-tests: New file.
* modules/c-strncasecmp-tests: New file.
* modules/c-strcase-tests: Remove file.
* doc/c-strcasecmp.texi: New file, based on doc/c-strcase.texi.
* doc/c-strncasecmp.texi: New file, based on doc/c-strcase.texi.
* doc/c-strcase.texi: Remove file.
* doc/c-locale.texi: Include c-strcasecmp.texi and c-strncasecmp.texi
separately.
* modules/c-strcaseeq (Depends-on): Add c-strcasecmp. Remove c-strcase.
* modules/iconv_open (Depends-on): Likewise.
* modules/nl_langinfo-tests (Depends-on): Likewise.
* modules/propername (Depends-on): Likewise.
* modules/propername-lite (Depends-on): Likewise.
* modules/striconv (Depends-on): Likewise.
* modules/striconveh (Depends-on): Likewise.
* modules/striconveha (Depends-on): Likewise.
* modules/c-strcasestr (Depends-on): Add c-strncasecmp. Remove
c-strcase.
2025-02-16 Bruno Haible <bruno@clisp.org>
strings-h: Don't declare strcasecmp, strncasecmp without the module.
* lib/strings.in.h (strcasecmp): Don't declare if module 'strcasecmp' is
not present.
(strncasecmp): Don't declare if module 'strncasecmp' is not present.
* m4/strings_h.m4 (gl_STRINGS_H_REQUIRE_DEFAULTS): Initialize
GNULIB_STRCASECMP, GNULIB_STRNCASECMP.
* modules/strings-h (Makefile.am): Substitute GNULIB_STRCASECMP,
GNULIB_STRNCASECMP.
2025-02-16 Bruno Haible <bruno@clisp.org>
strcasecmp, strncasecmp: New modules.
* modules/strcasecmp: New file.
* modules/strncasecmp: New file.
* modules/strcase: Merely depend on strcasecmp, strncasecmp.
* m4/strcasecmp.m4: New file, based on m4/strcase.m4.
* m4/strncasecmp.m4: New file, based on m4/strcase.m4.
* m4/strcase.m4: Remove file.
* lib/strings.in.h (strcasecmp, strncasecmp): Fix typo in warning
message.
* lib/strcasecmp.c: Improve comment.
* lib/strncasecmp.c: Likewise.
* doc/posix-functions/strcasecmp.texi: Mention module strcasecmp, not
module strcase.
* doc/posix-functions/strncasecmp.texi: Mention module strncasecmp, not
module strcase.
* doc/strings.texi (Comparison of string APIs): Reference modules
strcasecmp, strncasecmp.
* modules/argp (Depends-on): Add strcasecmp. Remove strcase.
* modules/strcasestr-simple (Depends-on): Add strncasecmp. Remove
strcase.
* modules/strptime (Depends-on): Likewise.
2025-02-16 Bruno Haible <bruno@clisp.org>
ctype-h: Make ctype.h self-contained again (regr. 2025-02-14).
* lib/ctype.in.h: Add comments re _GL_ARG_NONNULL.
* modules/ctype-h (Depends-on): Add snippet/arg-nonnull.
(Makefile.am): Substitute $(ARG_NONNULL_H) into ctype.h.
2025-02-16 Bruno Haible <bruno@clisp.org>
bootstrap: Fix recognition of --depth option with recent git releases.
Reported by Benno Schulenberg <bensberg@telfort.nl> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-02/msg00106.html>.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Assume that
'git clone' and 'git fetch' support the --depth option.
* build-aux/bootstrap: Regenerated.
2025-02-16 Bruno Haible <bruno@clisp.org>
toupper_l: Add tests.
* tests/test-toupper_l.c: New file, based on tests/test-c32toupper.c.
* modules/toupper_l-tests: New file.
toupper_l: New module.
* lib/ctype.in.h: (toupper_l): New declaration.
* lib/toupper_l.c: New file.
* m4/toupper_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for toupper_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_TOUPPER_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_TOUPPER_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_TOUPPER_L,
HAVE_TOUPPER_L.
* modules/toupper_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of toupper_l.
* doc/posix-functions/toupper_l.texi: Mention the new module.
2025-02-16 Bruno Haible <bruno@clisp.org>
tolower_l: Add tests.
* tests/test-tolower_l.c: New file, based on tests/test-c32tolower.c.
* modules/tolower_l-tests: New file.
tolower_l: New module.
* lib/ctype.in.h: (tolower_l): New declaration.
* lib/tolower_l.c: New file.
* lib/to_l-impl.h: New file.
* m4/tolower_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for tolower_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_TOLOWER_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_TOLOWER_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_TOLOWER_L,
HAVE_TOLOWER_L.
* modules/tolower_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of tolower_l.
* doc/posix-functions/tolower_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isxdigit_l: Add tests.
* tests/test-isxdigit_l.c: New file, based on tests/test-c32isxdigit.c.
* modules/isxdigit_l-tests: New file.
isxdigit_l: New module.
* lib/ctype.in.h: (isxdigit_l): New declaration.
* lib/isxdigit_l.c: New file.
* m4/isxdigit_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isxdigit_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISXDIGIT_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISXDIGIT_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISXDIGIT_L,
HAVE_ISXDIGIT_L.
* modules/isxdigit_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isxdigit_l.
* doc/posix-functions/isxdigit_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isupper_l: Add tests.
* tests/test-isupper_l.c: New file, based on tests/test-c32isupper.c.
* modules/isupper_l-tests: New file.
isupper_l: New module.
* lib/ctype.in.h: (isupper_l): New declaration.
* lib/isupper_l.c: New file.
* m4/isupper_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isupper_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISUPPER_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISUPPER_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISUPPER_L,
HAVE_ISUPPER_L.
* modules/isupper_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isupper_l.
* doc/posix-functions/isupper_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isspace_l: Add tests.
* tests/test-isspace_l.c: New file, based on tests/test-c32isspace.c.
* modules/isspace_l-tests: New file.
isspace_l: New module.
* lib/ctype.in.h: (isspace_l): New declaration.
* lib/isspace_l.c: New file.
* m4/isspace_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isspace_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISSPACE_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISSPACE_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISSPACE_L,
HAVE_ISSPACE_L.
* modules/isspace_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isspace_l.
* doc/posix-functions/isspace_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
ispunct_l: Add tests.
* tests/test-ispunct_l.c: New file, based on tests/test-c32ispunct.c.
* modules/ispunct_l-tests: New file.
ispunct_l: New module.
* lib/ctype.in.h: (ispunct_l): New declaration.
* lib/ispunct_l.c: New file.
* m4/ispunct_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for ispunct_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISPUNCT_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISPUNCT_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISPUNCT_L,
HAVE_ISPUNCT_L.
* modules/ispunct_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of ispunct_l.
* doc/posix-functions/ispunct_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isprint_l: Add tests.
* tests/test-isprint_l.c: New file, based on tests/test-c32isprint.c.
* modules/isprint_l-tests: New file.
isprint_l: New module.
* lib/ctype.in.h: (isprint_l): New declaration.
* lib/isprint_l.c: New file.
* m4/isprint_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isprint_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISPRINT_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISPRINT_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISPRINT_L,
HAVE_ISPRINT_L.
* modules/isprint_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isprint_l.
* doc/posix-functions/isprint_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
islower_l: Add tests.
* tests/test-islower_l.c: New file, based on tests/test-c32islower.c.
* modules/islower_l-tests: New file.
islower_l: New module.
* lib/ctype.in.h: (islower_l): New declaration.
* lib/islower_l.c: New file.
* m4/islower_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for islower_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISLOWER_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISLOWER_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISLOWER_L,
HAVE_ISLOWER_L.
* modules/islower_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of islower_l.
* doc/posix-functions/islower_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isgraph_l: Add tests.
* tests/test-isgraph_l.c: New file, based on tests/test-c32isgraph.c.
* modules/isgraph_l-tests: New file.
isgraph_l: New module.
* lib/ctype.in.h: (isgraph_l): New declaration.
* lib/isgraph_l.c: New file.
* m4/isgraph_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isgraph_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISGRAPH_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISGRAPH_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISGRAPH_L,
HAVE_ISGRAPH_L.
* modules/isgraph_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isgraph_l.
* doc/posix-functions/isgraph_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isdigit_l: Add tests.
* tests/test-isdigit_l.c: New file, based on tests/test-c32isdigit.c.
* modules/isdigit_l-tests: New file.
isdigit_l: New module.
* lib/ctype.in.h: (isdigit_l): New declaration.
* lib/isdigit_l.c: New file.
* m4/isdigit_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isdigit_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISDIGIT_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISDIGIT_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISDIGIT_L,
HAVE_ISDIGIT_L.
* modules/isdigit_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isdigit_l.
* doc/posix-functions/isdigit_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
iscntrl_l: Add tests.
* tests/test-iscntrl_l.c: New file, based on tests/test-c32iscntrl.c.
* modules/iscntrl_l-tests: New file.
iscntrl_l: New module.
* lib/ctype.in.h: (iscntrl_l): New declaration.
* lib/iscntrl_l.c: New file.
* m4/iscntrl_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for iscntrl_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISCNTRL_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISCNTRL_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISCNTRL_L,
HAVE_ISCNTRL_L.
* modules/iscntrl_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of iscntrl_l.
* doc/posix-functions/iscntrl_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isblank_l: Add tests.
* tests/test-isblank_l.c: New file, based on tests/test-c32isblank.c.
* modules/isblank_l-tests: New file.
isblank_l: New module.
* lib/ctype.in.h: (isblank_l): New declaration.
* lib/isblank_l.c: New file.
* m4/isblank_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isblank_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISBLANK_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISBLANK_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISBLANK_L,
HAVE_ISBLANK_L.
* modules/isblank_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isblank_l.
* doc/posix-functions/isblank_l.texi: Mention the new module.
2025-02-15 Bruno Haible <bruno@clisp.org>
isalpha_l: Add tests.
* tests/test-isalpha_l.c: New file, based on tests/test-c32isalpha.c.
* modules/isalpha_l-tests: New file.
isalpha_l: New module.
* lib/ctype.in.h: (isalpha_l): New declaration.
* lib/isalpha_l.c: New file.
* m4/isalpha_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isalpha_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISALPHA_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISALPHA_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISALPHA_L,
HAVE_ISALPHA_L.
* modules/isalpha_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isalpha_l.
* doc/posix-functions/isalpha_l.texi: Mention the new module.
2025-02-14 Paul Eggert <eggert@cs.ucla.edu>
isascii: stop using it
* doc/pastposix-functions/isascii.texi: There is no isascii module.
* m4/mbswidth.m4 (gl_MBSWIDTH): Do not check for isascii,
as it no longer seems to be used here.
* tests/test-c-ctype.c (test_agree_with_C_locale):
Do not assume isascii exists, as POSIX no longer requires it.
doc: “C11” → “C standard” for <sys/types.h>
* doc/gnulib-readme.texi (C language versions): Don’t be overly
specific about <sys/types.h>’s absence from the C standard.
2025-02-14 Bruno Haible <bruno@clisp.org>
isalnum_l: Fix errors in C++ mode.
* lib/ctype.in.h (isalnum_l): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* tests/test-ctype-h-c++.cc (isalnum_l): Fix typo.
* doc/posix-functions/isalnum_l.texi: Correct platforms list.
isalnum_l: Add tests.
* tests/test-isalnum_l.c: New file, based on tests/test-c32isalnum.c.
* modules/isalnum_l-tests: New file.
isalnum_l: New module.
* lib/ctype.in.h: Include <locale.h>.
(isalnum_l): New declaration.
* lib/isalnum_l.c: New file.
* lib/is_l-impl.h: New file.
* m4/isalnum_l.m4: New file.
* m4/ctype_h.m4 (gl_CTYPE_H): Test for isalnum_l.
(gl_CTYPE_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISALNUM_L.
(gl_CTYPE_H_DEFAULTS): Initialize HAVE_ISALNUM_L.
* modules/ctype-h (Makefile.am): Substitute GNULIB_ISALNUM_L,
HAVE_ISALNUM_L.
* modules/isalnum_l: New file.
* tests/test-ctype-h-c++.cc: Check declaration of isalnum_l.
* doc/posix-functions/isalnum_l.texi: Mention the new module.
2025-02-14 Bruno Haible <bruno@clisp.org>
freelocale: Allow non-POSIX prototype on macOS.
* tests/test-freelocale.c: Skip the signature check on macOS.
* doc/posix-functions/freelocale.texi: Mention the macOS problem.
2025-02-14 Bruno Haible <bruno@clisp.org>
newlocale: Work around NetBSD bug.
* lib/newlocale.c (newlocale) [NetBSD]: Test whether the locale name is
valid; fail with error ENOENT if not.
* doc/posix-functions/newlocale.texi: Mention the NetBSD bug.
2025-02-14 Bruno Haible <bruno@clisp.org>
newlocale: Work around macOS, NetBSD, Solaris 11 OpenIndiana bug.
* m4/newlocale.m4 (gl_FUNC_NEWLOCALE): Test for the "null base" bug.
Set REPLACE_NEWLOCALE to 1 if it has the bug.
* lib/newlocale.c (newlocale): Add alternative implementation that uses
the system's newlocale().
* modules/newlocale (configure.ac): Consider REPLACE_NEWLOCALE.
* tests/test-newlocale.c: Include <langinfo.h>.
(main): Verify fix for the "null base" bug.
* modules/newlocale-tests (configure.ac): Test for nl_langinfo_l.
* doc/posix-functions/newlocale.texi: Mention the "null base" bug.
2025-02-14 Bruno Haible <bruno@clisp.org>
newlocale, freelocale: Tweak configuration.
* m4/newlocale.m4 (gl_FUNC_NEWLOCALE): Make consistent with
m4/localename.m4.
* m4/freelocale.m4 (gl_FUNC_FREELOCALE): Likewise.
2025-02-14 Bruno Haible <bruno@clisp.org>
duplocale: Support all platforms.
* lib/locale.in.h (duplocale): Declare also on platforms that don't
already have a duplocale function. Don't define HAVE_WORKING_DUPLOCALE.
* lib/duplocale.c: Include <stdlib.h>.
(duplocale): Renamed from rpl_duplocale. Add implementation for
platforms without native locale_t.
* modules/duplocale (Depends-on): Add newlocale, freelocale.
(configure.ac): Compile also on platforms without native locale_t.
* tests/test-duplocale.c: Ignore HAVE_WORKING_DUPLOCALE.
* tests/test-locale-h-c++.cc: Likewise.
* doc/posix-functions/duplocale.texi: Mention the change.
2025-02-14 Bruno Haible <bruno@clisp.org>
freelocale: Fix typo.
* lib/locale.in.h (freelocale): Fix mistake in last patch.
freelocale: Add tests.
* tests/test-freelocale.c: New file.
* modules/freelocale-tests: New file.
freelocale: New module.
* lib/locale.in.h (freelocale): Consider GNULIB_FREELOCALE. Declare if
not declared.
* lib/freelocale.c: New file.
* m4/freelocale.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_FREELOCALE.
* modules/locale-h (Makefile.am): Substitute GNULIB_FREELOCALE.
* modules/freelocale: New file.
* tests/test-locale-h-c++.cc: Check declaration of freelocale.
* doc/posix-functions/freelocale.texi: Mention the new module.
2025-02-14 Bruno Haible <bruno@clisp.org>
newlocale: Add tests.
* tests/test-newlocale.c: New file.
* modules/newlocale-tests: New file.
newlocale: New module.
* lib/locale.in.h (newlocale): Consider GNULIB_NEWLOCALE. Declare if
not declared. Don't define HAVE_WORKING_NEWLOCALE.
* lib/newlocale.c: New file.
* m4/newlocale.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_NEWLOCALE.
* modules/locale-h (Makefile.am): Substitute GNULIB_NEWLOCALE.
* modules/newlocale: New file.
* tests/test-locale-h-c++.cc: Check declaration of newlocale.
* tests/test-localename.c: Ignore HAVE_WORKING_NEWLOCALE.
* doc/posix-functions/newlocale.texi: Mention the new module.
2025-02-14 Bruno Haible <bruno@clisp.org>
localename-environ: New module.
* lib/localename-environ.c: New file, extracted from
lib/localename-unsafe.c.
* lib/localename-unsafe.c (gl_locale_name_environ): Remove function.
* m4/localename.m4 (gl_LOCALENAME_ENVIRON): New macro.
* modules/localename-environ: New file.
* modules/localename-unsafe (Depends-on): Add localename-environ.
* modules/setlocale (Depends-on): Likewise.
2025-02-13 Bruno Haible <bruno@clisp.org>
locale-h: Ensure locale_t type.
* lib/locale.in.h (gl_log2_lc_mask, gl_log2_lcmask_to_index,
gl_index_to_log2_lcmask): New macros.
(LC_COLLATE_MASK, LC_CTYPE_MASK, LC_MESSAGES_MASK, LC_MONETARY_MASK,
LC_NUMERIC_MASK, LC_TIME_MASK, LC_ALL_MASK): New macros.
(struct gl_locale_category_t, struct gl_locale_t, locale_t): New types.
(LC_GLOBAL_LOCALE, GNULIB_defined_locale_t): New macros.
* m4/locale_h.m4 (gl_LOCALE_H): Set and define HAVE_WINDOWS_LOCALE_T.
(gl_LOCALE_T): Prepare for substituting HAVE_LOCALE_T.
* modules/locale-h (Depends-on): Add bool.
(Makefile.am): Substitute HAVE_LOCALE_T, HAVE_WINDOWS_LOCALE_T.
* tests/test-locale-h.c: Check that the LC_*_MASK macros and locale_t
are defined.
* doc/posix-headers/locale.texi: Document the change.
2025-02-13 Bruno Haible <bruno@clisp.org>
duplocale: Relicense under LGPLv2+.
* modules/duplocale (License): Change to LGPLv2+.
* lib/duplocale.c: Update license notice.
2025-02-13 Bruno Haible <bruno@clisp.org>
Rename module ctype to ctype-h.
* modules/ctype-h: Renamed from modules/ctype.
* modules/ctype-h-tests: Renamed from modules/ctype-tests.
* modules/ctype-h-c++-tests: Renamed from modules/ctype-c++-tests.
* tests/test-ctype-h.c: Renamed from tests/test-ctype.c.
* tests/test-ctype-h-c++.cc: Renamed from tests/test-ctype-c++.cc.
* tests/test-ctype-h-c++2.cc: Renamed from tests/test-ctype-c++2.cc.
* doc/posix-headers/ctype.texi: Update.
* modules/* (Depends-on): Update.
* modules/ctype: New file.
2025-02-13 Bruno Haible <bruno@clisp.org>
getaddrinfo: Fix a compilation error in C++ mode (regression yesterday).
Reported by KO Myung-Hun <komh78@gmail.com>.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Don't set REPLACE_GETADDRINFO to 1
if getaddrinfo does not exist.
2025-02-12 Bruno Haible <bruno@clisp.org>
setlocale: Update info about Galician and Tamil.
* lib/setlocale.c (locales_with_principal_territory): Galician is
mostly spoken in Spain, not Portugal. Tamil is mostly spoken in India,
not Sri Lanka.
2025-02-12 Bruno Haible <bruno@clisp.org>
gettext-h: Fix compilation error on native Windows.
* modules/gettext-h (Depends-on): Add locale-h.
2025-02-12 Bruno Haible <bruno@clisp.org>
getaddrinfo: Support the AI_NUMERICSERV flag.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Require AC_CANONICAL_HOST. Test
whether getaddrinfo supports AI_NUMERICSERV.
* lib/getaddrinfo.c (getaddrinfo): Accept and implement the
AI_NUMERICSERV flag.
* tests/test-getaddrinfo.c (simple): In pass 4, pass the AI_NUMERICSERV
flag.
(main): Test numeric services in pass 1. Add pass 4.
* doc/posix-functions/getaddrinfo.texi: Mention the native Windows bug.
2025-02-12 Bruno Haible <bruno@clisp.org>
getaddrinfo: Support the AI_NUMERICHOST flag.
* lib/getaddrinfo.c (is_numeric_host): New function.
(getaddrinfo): Accept and implement the AI_NUMERICHOST flag.
* modules/getaddrinfo (Depends-on): Add inet_pton.
* tests/test-getaddrinfo.c: Include <ctype.h>.
(simple): In pass 3, pass the AI_NUMERICHOST flag.
(main): Add a pass 3.
2025-02-12 Bruno Haible <bruno@clisp.org>
getaddrinfo tests: Test both a NULL and a non-NULL hints argument.
* tests/test-getaddrinfo.c (simple): Add a 'pass' argument.
(main): Make two passes of 'simple' invocations.
2025-02-12 Bruno Haible <bruno@clisp.org>
netdb-h: Ensure AI_NUMERICHOST and AI_NUMERICSERV are defined.
* lib/netdb.in.h (AI_NUMERICHOST): New macro.
* tests/test-netdb-h.c: Verify that AI_NUMERICHOST and AI_NUMERICSERV
are defined.
* doc/posix-headers/netdb.texi: Mention the platform support for
AI_NUMERICHOST and AI_NUMERICSERV.
2025-02-11 Collin Funk <collin.funk1@gmail.com>
acl-permissions, file-has-acl: Depend on stdint-h for SIZE_MAX.
* lib/acl-internal.h: Include stdint.h.
(SIZE_MAX): Remove definition.
* lib/file-has-acl.c: Don't include stdint.h again.
* modules/acl-permissions (Depends-on): Add stdint-h.
* modules/file-has-acl (Depends-on): Likewise.
2025-02-10 KO Myung-Hun <komh78@gmail.com>
popen: Set gl_cv_func_popen_works to "guessing no" on OS/2.
* doc/posix-functions/popen.texi: List OS/2 kLIBC case.
* m4/popen.m4 (gl_FUNC_POPEN): Set gl_cv_func_popen_works to
"guessing no" on OS/2.
2025-02-10 Bruno Haible <bruno@clisp.org>
mbsstr, unistr, unigbrk: Support library namespacing.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Don't define
const-improved macro if the function is already declared as a macro.
* lib/unistr.in.h (u*_check, u*_next, u*_prev, u*_chr, u*_strchr,
u*_strrchr, u*_strpbrk, u*_strstr): Likewise.
* lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Likewise.
2025-02-10 Bruno Haible <bruno@clisp.org>
mbsstr, etc.: Fix compilation in C++ mode on AIX with xlc.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Wrap template
declarations and definitions in 'extern "C++" { ... }'.
2025-02-10 Bruno Haible <bruno@clisp.org>
mbsstr, unistr, unigbrk: Fix compilation with "gcc-4.8.5 -std=gnu11".
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Don't assume that
GCC and clang support '_Generic' with '-std=c11' or 'std=gnu11' option.
* lib/unistr.in.h (u*_check, u*_next, u*_prev, u*_chr, u*_strchr,
u*_strrchr, u*_strpbrk, u*_strstr): Likewise.
* lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Likewise.
2025-02-09 Bruno Haible <bruno@clisp.org>
string-buffer, string-buffer-reversed: Allow for better static analysis.
* lib/string-buffer.h (sb_appendvf, sb_appendf, sb_xappendvf,
sb_xappendf): Don't declare if SB_NO_APPENDF is defined.
(sb_xdupfree_c): Declare a non-NULL return value if SB_NO_APPENDF is
defined.
* lib/string-buffer-reversed.h (sbr_prependvf, sbr_prependf,
sbr_xprependvf, sbr_xprependf): Don't declare if SBR_NO_PREPENDF is
defined.
(sbr_xdupfree_c): Declare a non-NULL return value if SBR_NO_PREPENDF is
defined.
2025-02-09 Bruno Haible <bruno@clisp.org>
xstring-desc: Allow for better static analysis.
* lib/xstring-desc.h (xsd_c): Declare a non-NULL return value.
2025-02-09 Bruno Haible <bruno@clisp.org>
mbsstr, mbscasestr, mbspcasecmp, unistr, unigbrk: Simplify.
Suggested by Paul Eggert.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): On ISO C compliant
compilers, use the _Generic based macro instead of the 'typeof' based
macro.
* lib/unistr.in.h (u*_check, u*_next, u*_prev, u*_chr, u*_strchr,
u*_strrchr, u*_strpbrk, u*_strstr): Likewise.
* lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Likewise.
2025-02-09 Bruno Haible <bruno@clisp.org>
string-buffer, string-buffer-reversed: Make OOM handling consistent.
* lib/string-buffer.h (struct string_buffer): New field 'oom'.
* lib/string-buffer.c (sb_init): Initialize the 'oom' field.
(sb_append1, sb_append_desc, sb_append_c): Upon out-of-memory, set
buffer->oom, not buffer->error.
(sb_dupfree, sb_dupfree_c): If there was an OOM, return NULL.
* lib/string-buffer-printf.c (sb_appendvf, sb_appendf): Upon
out-of-memory, set buffer->oom, not buffer->error.
* lib/string-buffer-reversed.h (struct string_buffer_reversed): New
field 'oom'.
* lib/string-buffer-reversed.c (sbr_init): Initialize the 'oom' field.
(sbr_prepend1, sbr_prepend_desc, sbr_prepend_c): Upon out-of-memory, set
buffer->oom, not buffer->error.
(sbr_dupfree, sbr_dupfree_c): If there was an OOM, return NULL.
* lib/string-buffer-reversed-printf.c (sbr_prependvf, sbr_prependf):
Upon out-of-memory, set buffer->oom, not buffer->error.
2025-02-09 Bruno Haible <bruno@clisp.org>
unistr, unigbrk: Use const-improved function macros for 30 functions.
Reported by Kang-Che Sung <explorer09@gmail.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2025-02/msg00000.html>.
* lib/unistr.in.h (u*_check, u*_next, u*_prev): Define as macros that
cast the result to a non-const pointer when the argument is a non-const
pointer.
(u*_chr, u*_strchr, u*_strrchr, u*_strpbrk, u*_strstr): Define as macros
that cast the result to a const pointer when the argument is a const
pointer.
* lib/unistr/u8-check.c: Define _LIBUNISTRING_NO_CONST_GENERICS.
* lib/unistr/u16-check.c: Likewise.
* lib/unistr/u32-check.c: Likewise.
* lib/unistr/u8-next.c: Likewise.
* lib/unistr/u16-next.c: Likewise.
* lib/unistr/u32-next.c: Likewise.
* lib/unistr/u8-prev.c: Likewise.
* lib/unistr/u16-prev.c: Likewise.
* lib/unistr/u32-prev.c: Likewise.
* lib/unistr/u8-chr.c: Likewise.
* lib/unistr/u16-chr.c: Likewise.
* lib/unistr/u32-chr.c: Likewise.
* lib/unistr/u8-strchr.c: Likewise.
* lib/unistr/u16-strchr.c: Likewise.
* lib/unistr/u32-strchr.c: Likewise.
* lib/unistr/u8-strrchr.c: Likewise.
* lib/unistr/u16-strrchr.c: Likewise.
* lib/unistr/u32-strrchr.c: Likewise.
* lib/unistr/u8-strpbrk.c: Likewise.
* lib/unistr/u16-strpbrk.c: Likewise.
* lib/unistr/u32-strpbrk.c: Likewise.
* lib/unistr/u8-strstr.c: Likewise.
* lib/unistr/u16-strstr.c: Likewise.
* lib/unistr/u32-strstr.c: Likewise.
* lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Define as
macros that cast the result to a non-const pointer when the argument is
a non-const pointer.
* lib/unigbrk/u8-grapheme-next.c: Define _LIBUNISTRING_NO_CONST_GENERICS.
* lib/unigbrk/u16-grapheme-next.c: Likewise.
* lib/unigbrk/u32-grapheme-next.c: Likewise.
* lib/unigbrk/u8-grapheme-prev.c: Likewise.
* lib/unigbrk/u16-grapheme-prev.c: Likewise.
* lib/unigbrk/u32-grapheme-prev.c: Likewise.
2025-02-09 Bruno Haible <bruno@clisp.org>
mbsstr, mbscasestr, mbspcasecmp: Fix use of 'typeof'.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Perform array to
pointer conversion in argument of 'typeof'.
mbsstr, mbscasestr, mbspcasecmp: Use const-improved C++ templates.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): In C++, define
through a template that supports both 'char *' and 'const char *'.
mbsstr, mbscasestr, mbspcasecmp: Use const-improved function macros.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Define as macros
that cast the result to 'const char *' when the first argument is a
'const char *'.
* lib/mbsstr.c: Define _GL_NO_CONST_GENERICS.
* lib/mbscasestr.c: Likewise.
* lib/mbspcasecmp.c: Likewise.
2025-02-09 Bruno Haible <bruno@clisp.org>
stdckdint-h tests: Fix compilation error (regression 2025-02-07).
* tests/test-intprops.c: Exclude INT_PROMOTE checks if TEST_STDCKDINT is
defined.
2025-02-09 Bruno Haible <bruno@clisp.org>
intprops tests: Strengthen INT_PROMOTE tests.
* lib/intprops.h (INT_PROMOTE): Refine comment.
* tests/test-intprops.c: Check the size and sign of INT_PROMOTE (x) on
all compilers.
(main): Check that INT_PROMOTE is a no-op on floats.
2025-02-08 Collin Funk <collin.funk1@gmail.com>
doc: Document free_aligned_sized and free_sized added in C23.
* doc/posix-functions/free_aligned_sized.texi: New file.
* doc/posix-functions/free_sized.texi: New file.
* doc/gnulib.texi (Functions in <stdlib.h>): Include them.
2025-02-08 Paul Eggert <eggert@cs.ucla.edu>
memalignment: document
* doc/gnulib-readme.texi (Other portability assumptions):
Mention the C23 function memalignment.
* doc/posix-functions/memalignment.texi: New file.
* doc/gnulib.texi (Functions in <stdlib.h>): Include it.
2025-02-07 Paul Eggert <eggert@cs.ucla.edu>
intprops: new macro INT_PROMOTE
Something like this was requested for Emacs.
* doc/intprops.texi (Arithmetic Type Conversion): New section.
* lib/intprops.h (INT_PROMOTE): New macro.
* tests/test-intprops.c: Test it.
2025-02-05 Paul Eggert <eggert@cs.ucla.edu>
errno-h: document Haiku errors can’t be -1
* doc/posix-headers/errno.texi: Document Haiku errno range.
2025-02-05 Bruno Haible <bruno@clisp.org>
test-xfail: Define a condition for Haiku.
* modules/test-xfail (configure.ac): Define OS_IS_HAIKU conditional.
2025-02-05 Bruno Haible <bruno@clisp.org>
xstring-buffer-reversed: New module.
* lib/xstring-buffer-reversed.c: New file, based on
lib/xstring-buffer.c.
* lib/xstring-buffer-reversed-printf.c: New file, based on
lib/xstring-buffer-printf.c.
* modules/xstring-buffer-reversed: New file.
2025-02-05 Bruno Haible <bruno@clisp.org>
string-buffer-reversed: Add tests.
* tests/test-string-buffer-reversed.c: New file, based on
tests/test-string-buffer.c.
* modules/string-buffer-reversed-tests: New file.
string-buffer-reversed: New module.
* lib/string-buffer-reversed.h: New file, based on lib/string-buffer.h.
* lib/string-buffer-reversed.c: New file, based on lib/string-buffer.c.
* lib/string-buffer-reversed-printf.c: New file, based on
lib/string-buffer-printf.c.
* modules/string-buffer-reversed: New file.
2025-02-05 Bruno Haible <bruno@clisp.org>
string-buffer: Improve comments.
* lib/string-buffer.h (struct string_buffer): Add a comment.
2025-02-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix the result of --create-testdir (regression yesterday).
* gnulib-tool.sh (func_emit_lib_Makefile_am): If $for_test, revert to
the previous code.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): If for_test, revert
to the previous code.
2025-02-04 Bruno Haible <bruno@clisp.org>
*vasnprintf: Add a stricter runtime check.
* lib/printf-args.c (PRINTF_FETCHARGS): Abort in case of an unknown
type.
2025-02-03 Bruno Haible <bruno@clisp.org>
bootstrap: Remove undesired output.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Silence the initial
branch hint.
* build-aux/bootstrap: Regenerated.
2025-02-03 Paul Eggert <eggert@cs.ucla.edu>
*vasnprintf: pacify -Wswitch-enum
* lib/printf-args.c (PRINTF_FETCHARGS):
Mention TYPE_NONE as being a default case.
* lib/vasnprintf.c (VASNPRINTF): Use switch (+E).
2025-02-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Allow compiler warnings in Gnulib code.
* gnulib-tool.sh (func_emit_lib_Makefile_am): Append
$(GL_CFLAG_ALLOW_WARNINGS) to the ${libname}_${libext}_CFLAGS variable.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Likewise.
2025-02-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Apply libgnu.{,l}a specific CFLAGS to all its object files.
* gnulib-tool.sh (func_emit_initmacro_end): Define
${macro_prefix}_${libname}_{LIBOBJS,LTLIBOBJS,LIBOBJDEPS} macros, that
include libname in the base name of the object files.
(func_emit_lib_Makefile_am): Use ${macro_prefix}_${libname}_*LIBOBJS
values instead of ${macro_prefix}_*LIBOBJS values.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Define
{macro_prefix_arg}_{libname}_{LIBOBJS,LTLIBOBJS,LIBOBJDEPS} macros, that
include libname in the base name of the object files.
(GLEmiter.lib_Makefile_am):Use {macro_prefix}_{libname}_*LIBOBJS
values instead of {macro_prefix}_*LIBOBJS values.
2025-02-02 Paul Eggert <eggert@cs.ucla.edu>
savewd, xstrtol-error: pacify -Wswitch-enum
* lib/savewd.c (savewd_chdir, savewd_restore, savewd_finish):
* lib/xstrtol-error.c (xstrtol_error):
Enumerate all the enum values.
quotearg: pacify -Wswitch-enum
* lib/quotearg.c (quotearg_buffer_restyled): Use switch (+E), and
omit default case, to pacify gcc -Wswitch-enum. This is a good
way to pacify -Wswitch-enum when we don’t want to enumerate
all the enum values. Omit unnecessary ‘default: break;’s.
test-gettext-h: check call results
* tests/test-gettext-h.c: Include string.h.
(main): Check return values of calls.
This also pacifies GCC, which otherwise might
warn about a variable being set but not used.
2025-01-31 Paul Eggert <eggert@cs.ucla.edu>
announce-gen: add comments
* top/maint.mk: Add comments re recent change.
2025-02-01 Simon Josefsson <simon@josefsson.org>
announce-gen: Allow 'make release' to work any day.
* top/maint.mk (today): Use regexp rather than current time.
2025-02-01 Simon Josefsson <simon@josefsson.org>
announce-gen: Deal with 'guix --version'.
* build-aux/announce-gen (get_tool_versions): Handle git commit
--versions. Improve error message.
2025-01-28 Collin Funk <collin.funk1@gmail.com>
doc: Document version-etc, version-etc-fsf, and argp-version-etc.
* doc/version-etc.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2025-01-28 Bruno Haible <bruno@clisp.org>
git-version-gen: Change suffix.
* doc/package-version.texi (Propagating the package version): Drop the
git-version-gen postprocessing line, that does not work on Solaris.
* build-aux/git-version-gen: Likewise. Produce a suffix '-modified'
instead of '-dirty'.
2025-01-26 Bruno Haible <bruno@clisp.org>
package-version: Avoid compiler warnings in config.log.
* m4/init-package-version.m4 (gl_INIT_PACKAGE_VERSION): Undefine
PACKAGE_VERSION and PACKAGE_STRING before redefining them.
2025-01-26 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix --with-libsmack option handling.
* m4/acl.m4 (gl_FUNC_ACL_ARG): Add missing comma between macro
arguments.
2025-01-26 Bruno Haible <bruno@clisp.org>
bootstrap: Remove obsolete code.
Reported by Basil L. Contovounesios <basil@contovou.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00221.html>.
* top/bootstrap-funclib.sh (package): Don't look at gl_INIT_PACKAGE
invocations.
* build-aux/bootstrap: Regenerated.
2025-01-24 Collin Funk <collin.funk1@gmail.com>
ptsname_r: Work around ptsname_r bug on Solaris 11 OmniOS.
* lib/ptsname_r.c (ptsname_r): Ensure the resulting buffer is not
clobbered if it is too small on Solaris 11 OmniOS.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): On Solaris 11 OmniOS, arrange to
override ptsname_r.
* doc/posix-functions/ptsname_r.texi: Document the bug.
strerrorname_np: Work around a bug on Solaris 11 OmniOS.
* m4/strerrorname_np.m4 (gl_CHECK_STRERRORNAME_NP): Test if
strerrorname_np returns NULL when given ERESTART or ESTRPIPE.
* doc/glibc-functions/strerrorname_np.texi: Document the bug.
2025-01-24 Bruno Haible <bruno@clisp.org>
package-version: Simplify further.
* doc/package-version.texi (Propagating the package version): Recommend
use of gl_INIT_PACKAGE_VERSION instead of gl_INIT_PACKAGE.
* build-aux/git-version-gen: Likewise.
* m4/init-package-version.m4: Likewise.
(gl_INIT_PACKAGE_VERSION): Renamed from gl_INIT_PACKAGE. Take only one
argument. Don't fiddle with AC_PACKAGE_NAME, AC_PACKAGE_TARNAME,
PACKAGE.
(gl_RPL_INIT_AUTOMAKE): Update.
package-version: Simplify its use.
Reported by Basil L. Contovounesios <basil@contovou.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00195.html>.
* doc/package-version.texi (Propagating the package version): Recommend
to pass the usual arguments to AC_INIT.
* m4/init-package-version.m4: Likewise.
(gl_INIT_PACKAGE): Define PACKAGE_VERSION and PACKAGE_STRING as needed.
(gl_RPL_INIT_AUTOMAKE): Improve quoting.
2025-01-24 Bruno Haible <bruno@clisp.org>
tests: Fix a few compilation errors on Solaris 11 OmniOS with gcc 14.
* tests/test-accept.c: Omit the signature check on Solaris.
* tests/test-gethostname.c: Likewise.
* tests/test-getpeername.c: Likewise.
* tests/test-getsockname.c: Likewise.
* tests/test-getsockopt.c: Likewise.
* tests/test-recvfrom.c: Likewise.
* doc/posix-functions/accept.texi: Mention the Solaris 11 OmniOS
problem.
* doc/posix-functions/gethostname.texi: Likewise.
* doc/posix-functions/getpeername.texi: Likewise.
* doc/posix-functions/getsockname.texi: Likewise.
* doc/posix-functions/getsockopt.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
2025-01-24 Bruno Haible <bruno@clisp.org>
sys_socket-h tests: Avoid compilation error on Solaris 11.4.
* doc/posix-headers/sys_socket.texi: Update.
* tests/test-sys_socket-h.c (main): Don't assume that all platforms that
have SOCK_CLOFORK also have MSG_CMSG_CLOFORK.
2025-01-23 Collin Funk <collin.funk1@gmail.com>
uchar-h-c23: Fix compilation error on OmniOS.
* lib/lc-charset-unicode.c (locale_encoding_to_unicode)
(unicode_to_locale_encoding): Cast the argument to iconv with
ICONV_CONST.
2025-01-23 Bruno Haible <bruno@clisp.org>
bootstrap: Make it work with module 'package-version'.
Reported by Basil L. Contovounesios <basil@contovou.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00195.html>.
* top/bootstrap-funclib.sh (normalize_package_name): New variable.
(extract_package_name): Don't normalize the package name here.
(package): Also look at the first argument of a gl_INIT_PACKAGE
invocation.
* build-aux/bootstrap: Regenerated.
2025-01-22 Bruno Haible <bruno@clisp.org>
doc: Document the workflows of the .tarball-version and .version files.
* doc/package-version.texi: New file.
* doc/gnulib.texi (Build Infrastructure Modules): Include it.
* build-aux/git-version-gen: Fix comments: Fix description of
.tarball-version. Recommend to invoke git-version-gen at configure time,
not at autoconf time. Remove description of .version. Rename Makefile
target 'tarball-version' to 'dist-tarball-version'.
* top/GNUmakefile: Improve comments.
2025-01-22 Bruno Haible <bruno@clisp.org>
New module 'version-stamp'.
* m4/version-stamp.m4: New file.
* modules/version-stamp: New file.
2025-01-22 Bruno Haible <bruno@clisp.org>
New module 'package-version'.
* m4/init-package-version.m4: New file, from GNU libunistring.
* modules/package-version: New file.
* modules/git-version-gen (Depends-on): Add it.
2025-01-19 Bruno Haible <bruno@clisp.org>
attribute: Add note about ongoing standardization of some attributes.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add note that the meaning of
_GL_ATTRIBUTE_REPRODUCIBLE and _GL_ATTRIBUTE_UNSEQUENCED are likely to
change.
* lib/attribute.h (UNSEQUENCED, REPRODUCIBLE): Likewise.
2025-01-19 Bruno Haible <bruno@clisp.org>
renameatu: Simplify configure test.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Prepare the test scenario outside
of the test program. Use a bit mask as the test program's exit code.
2025-01-18 Paul Eggert <eggert@cs.ucla.edu>
flexmember: port to IBM XL C 16.1
* lib/flexmember.h (FLEXALIGNOF): Use the conservative definition
if _Alignof is a macro, to avoid a C99 conformance issue exposed
by IBM XL C 16.1 which otherwise complains "An aggregate
containing a flexible array member cannot be used as a member of a
structure or as an array element."
alignasof: port to IBM XL C 16.1
* doc/gnulib.texi (alignof):
Improve doc to match implementationa better.
* m4/stdalign.m4 (alignas): Do not define to _Alignas
if __xlC__ claims to conform to C11, because _Alignas fails with
weird diagnostics "Unexpected text %1$s encountered."
* tests/test-alignasof.c (TEST_ALIGNMENT, alignas):
Follow doc advice.
2025-01-18 Collin Funk <collin.funk1@gmail.com>
renameatu: Work around a GNU/Hurd bug.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Check if renameat2 handles trailing
slashes.
* doc/glibc-functions/renameat2.texi: Mention the GNU/Hurd bug.
linkat tests: Revert the last change.
* tests/test-linkat.c (main): Disallow EINVAL an alternative error
value.
* doc/posix-functions/linkat.texi: Document the GNU/Hurd bug.
linkat tests: Avoid failure on GNU/Hurd.
* tests/test-linkat.c (main): Allow EINVAL an alternative error value.
2025-01-17 Paul Eggert <eggert@cs.ucla.edu>
alignasof: port to IBM XL C V16.1
* m4/stdalign.m4 (gl_ALIGNASOF):
Work around similar bug in IBM XL C V16.1.0 cc (non-clang).
Since this is the last version of this obsolescent compiler,
assume the bug is in earlier versions.
stdalign, stdnoreturn: improve deprecation warnings
* modules/stdalign, modules/stdalign-h, modules/stdnoreturn:
* modules/stdnoreturn-h: Use more consistent deprecation
warnings, that do not recommend a different deprecated module.
2025-01-17 Bruno Haible <bruno@clisp.org>
sys_stat-h: Ensure blksize_t and blkcnt_t are defined.
* tests/test-sys_stat-h.c: Check that blksize_t and blkcnt_t are
defined. Include intprops.h. Check the signedness of various types.
* modules/sys_stat-h-tests (Depends-on): Add intprops.
* doc/posix-headers/sys_stat.texi: Mention the issues with blksize_t and
blkcnt_t.
sys_types-h: Ensure blksize_t and blkcnt_t are defined.
* lib/sys_types.in.h (blksize_t, blkcnt_t): New definitions.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set HAVE_BLKSIZE_T and
HAVE_BLKCNT_T.
* modules/sys_types-h (Makefile.am): Substitute HAVE_BLKSIZE_T and
HAVE_BLKCNT_T.
* tests/test-sys_types-h.c: Check that blksize_t and blkcnt_t are
defined. Include intprops.h. Check the signedness of various types.
* modules/sys_types-h-tests (Depends-on): Add assert-h, intprops.
* doc/posix-headers/sys_types.texi: Mention the issues with blksize_t
and blkcnt_t.
2025-01-17 Paul Eggert <eggert@cs.ucla.edu>
crc-x86_64: port to old GCC compilers
* m4/crc-x86_64.m4 (gl_CRC_X86_64_PCLMUL):
Check that the compiler supports __m128i_u, too,
since we’re using the type now. Issue reported in
the same message from Lasse Collin.
crc-x86_64: better fix for unaligned access
Avoid undefined behavior in a way that doesn’t require
the input buffer to be aligned.
From a suggestion by Lasse Collin in:
https://lists.gnu.org/r/bug-gnulib/2025-01/msg00148.html
* lib/crc-x86_64-pclmul.c (crc32_update_no_xor_pclmul):
Since the const void * pointer ‘buf’ might not be aligned,
assign it to const __m128i_u * instead of to const __m128i *.
* lib/crc.c (crc32_update_no_xor):
Remove recently-addeda check for buffer alignment.
2025-01-17 Pádraig Brady <P@draigBrady.com>
Avoid -Wformat=security failures with --disable-nls
This was noticed with GCC 14.
* lib/xmemcoll.c: Always use format arguments.
* lib/xprintf.c: Likewise.
2025-01-16 Paul Eggert <eggert@cs.ucla.edu>
crc-x86_64: fix unaligned access
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2025-01/msg00142.html
* lib/crc.c (crc32_update_no_xor): Don’t pass unaligned buffer to
crc32_update_no_xor_pclmul. No doubt there is a higher
performance fix, perhaps involving advancing byte-by-byte along
the buffer until we get to an aligned boundary, but at least this
should fix the alignment bug.
2025-01-16 Bruno Haible <bruno@clisp.org>
getopt-posix: Fix compilation error in C++ mode (regression 2024-09-21).
Reported by G. Branden Robinson <g.branden.robinson@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00135.html>.
* lib/getopt-pfx-core.h: On several platforms, include <unistd.h> first.
* modules/getopt-posix (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
2025-01-16 Bruno Haible <bruno@clisp.org>
wchar_h: Fix for glibc 2.5.
* lib/wchar.in.h (__need_wint_t): Clean up after including glibc's
<wchar.h>.
2025-01-15 Pádraig Brady <P@draigBrady.com>
file-has-acl: handle listxattr returning ENOTSUP
listxattr() was seen to return ENOTSUP on virtiofs,
which resulted in ls outputting "Not supported" errors.
* lib/file-has-acl.c (aclinfo_may_indicate_xattr): Treat any
non valid acl errno as being inconclusive as to whether there
are xattrs available.
2025-01-15 Collin Funk <collin.funk1@gmail.com>
libgmp-mpz: Respect Automake's silent-rules.
* modules/libgmp-mpz (Depends-on): Depend on gen-header.
(Makefile.am): Prefix commands with $(AM_V_GEN), $(gl_V_at), and
$(AM_V_at).
2025-01-14 Bruno Haible <bruno@clisp.org>
assert-h: Fix compilation error with gcc >= 13 on Solaris 11.
Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00120.html>.
* m4/assert_h.m4 (gl_ASSERT_H): Don't assume that on Solaris with gcc or
clang, static_assert works: /usr/include/assert.h is in the way.
2025-01-14 Simon Josefsson <simon@josefsson.org>
git-version-gen: Fix makefile rule typo, suggested by Bruno.
* build-aux/git-version-gen: Typo fix.
2025-01-14 Simon Josefsson <simon@josefsson.org>
git-version-gen: Use an indirect 'dist-hook' make rule instead.
* build-aux/git-version-gen: Doc fix.
2025-01-13 Paul Eggert <eggert@cs.ucla.edu>
fts, savedir: avoid glibc 2.2 readdir ENOENT bug
This is mostly to document the bug.
If these old platforms were still common I suppose we should
change the readdir module to work around it. However, I’m not
sure it’s worth the hassle at this point.
* doc/posix-functions/readdir.texi, doc/posix-functions/readdir_r.texi:
Document the bug.
* lib/fts.c (fts_build):
* lib/savedir.c (streamsavedir):
Work around it.
2025-01-13 Bruno Haible <bruno@clisp.org>
stdlib-h: Define WCOREDUMP, as required by POSIX:2024.
* lib/stdlib.in.h: Include <sys/wait.h> also when WCOREDUMP is not
defined.
* doc/posix-headers/stdlib.texi: Document the glibc bug.
2025-01-12 Collin Funk <collin.funk1@gmail.com>
crc: Respect Automake's silent-rules.
* modules/crc (Makefile.am): Add the $(AM_V_GEN) prefix before the
command.
2025-01-12 Pádraig Brady <P@draigBrady.com>
progname: also set program_invocation_short_name
* lib/progname.c (set_program_name): Keep program_invocation_name
and program_invocation_short_name consistent.
2025-01-11 Pádraig Brady <P@draigBrady.com>
file-has-acl: handle NFSv4 ACLs with listxattr returning EACCES
* lib/file-has-acl.c (has_xattr): A new helper function to
lookup aclinfo for the xattr or fallback to getxattr() if appropriate.
(get_aclinfo): Use has_xattr() rather than aclinfo_has_xattr().
Discussed at <https://bugs.gnu.org/74692>
2025-01-11 Bruno Haible <bruno@clisp.org>
sys_un-h: Document the glibc bug.
Reported by Miro Palmu <email@miropalmu.cc> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00077.html>.
* doc/posix-headers/sys_un.texi: Mention the glibc bug.
2025-01-11 Bruno Haible <bruno@clisp.org>
sys_socket-h: Fix configuration mistake (regression yesterday).
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Test
ac_cv_type_struct_sockaddr_storage after invoking
gl_PREREQ_SYS_SA_FAMILY, not before.
2025-01-11 Bruno Haible <bruno@clisp.org>
eealloc, malloca: Fix module dependencies.
Reported by Miro Palmu <email@miropalmu.cc> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00077.html>.
* modules/eealloc (Depends-on): Add stdlib-h.
* modules/malloca (Depends-on): Likewise.
canonicalize: Fix module dependencies.
Reported by Miro Palmu <email@miropalmu.cc> in
<https://lists.gnu.org/archive/html/bug-gnulib/2025-01/msg00077.html>.
* modules/canonicalize (Depends-on): Add stdlib-h.
2025-01-10 Bruno Haible <bruno@clisp.org>
sys_un-h: Ensure that <sys/un.h> defines sa_family_t.
* lib/sys_un.in.h: Include <sys/socket.h> or define sa_family_t
explicitly.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_SA_FAMILY): New macro, extracted
from gl_SYS_SOCKET_H.
(gl_SYS_SOCKET_H): Invoke it.
(gl_SYS_SOCKET_H_DEFAULTS): Don't initialize HAVE_SA_FAMILY_T.
* m4/sys_un_h.m4 (gl_SYS_UN_H): Invoke gl_PREREQ_SYS_SA_FAMILY. Test
whether <sys/un.h> defines sa_family_t. If not, set GL_GENERATE_SYS_UN_H
to true.
* modules/sys_un-h (Makefile.am): Substitute HAVE_SA_FAMILY_T,
HAVE_SA_FAMILY_T_IN_SYS_UN_H.
* tests/test-sys_un-h.c: Include intprops.h. Verify that sa_family_t is
defined and an unsigned integer type.
* modules/sys_un-h-tests (Depends-on): Add intprops.
* doc/posix-headers/sys_un.texi: Mention the problem with sa_family_t.
2025-01-10 Bruno Haible <bruno@clisp.org>
sys_wait-h: Document WCOREDUMP fix.
* doc/posix-headers/sys_wait.texi: Mention the portability problem with
WCOREDUMP.
2025-01-10 Collin Funk <collin.funk1@gmail.com>
sys_wait-h tests: Check that WCOREDUMP is defined.
* tests/test-sys_wait-h.h (test_sys_wait_macros): Check that WCOREDUMP
is defined and can be used.
sys_wait-h: Update comment.
* lib/sys_wait.in.h (WCOREDUMP): Remove comment about this macro being
non-standardized since it was added by POSIX.1-2024.
2025-01-10 Paul Eggert <eggert@cs.ucla.edu>
doc: document some file system portability issues
* doc/glibc-functions/flistxattr.texi:
* doc/glibc-functions/listxattr.texi:
* doc/glibc-functions/llistxattr.texi:
* doc/posix-functions/fchdir.texi, doc/posix-functions/fstat.texi:
* doc/posix-functions/fstatvfs.texi:
Document some portability gotchas that Gnulib does not work around.
2025-01-10 Bruno Haible <bruno@clisp.org>
gitlog-to-changelog: Recommend more reliable Makefile rule idiom.
Reported by Basil L. Contovounesios <basil@contovou.net>.
* doc/gitlog-to-changelog.texi: Make the gen-ChangeLog rule fail if the
ChangeLog file cannot be created or if the disk is full. Drop the use of
an intermediate file, not needed under $(distdir).
2025-01-10 Bruno Haible <bruno@clisp.org>
doc: Fix syntax errors (regression yesterday).
* doc/posix-headers/sys_socket.texi: Fix syntax errors.
2025-01-09 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: port to Linux 6.12 + NFS listxattr
* lib/file-has-acl.c (get_aclinfo): Try the getxattr-related calls
even if [l]listxattr fails with EACCES. Problem reported by
Pádraig Brady <https://bugs.gnu.org/74692#25>. Also, treat E2BIG
like EACCES.
2025-01-09 Bruno Haible <bruno@clisp.org>
sys_socket-h: Update for POSIX:2024.
* doc/posix-headers/sys_socket.texi: Mention a variety of portability
problems.
* tests/test-sys_socket-h.c: Check for struct sockaddr,
struct sockaddr_storage, struct linger, SOL_SOCKET, SOMAXCONN.
Include macros.h.
(main): Check the socket types, socket options, and some MSG* constants.
* modules/sys_socket-h-tests (Files): Add tests/macros.h.
2025-01-09 Bruno Haible <bruno@clisp.org>
bootstrap: Support a tag name as GNULIB_REVISION.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): If $GNULIB_REVISION
is a tag name, make sure to add that tag.
* build-aux/bootstrap: Regenerated.
2025-01-08 Bruno Haible <bruno@clisp.org>
sys_select-h: Define suseconds_t on native Windows.
* lib/sys_select.in.h (suseconds_t): New type.
(GNULIB_defined_suseconds_t): New macro.
2025-01-08 Bruno Haible <bruno@clisp.org>
pselect: Document this module.
* doc/posix-functions/pselect.texi: Document module 'pselect'.
2025-01-08 Bruno Haible <bruno@clisp.org>
sys_select-h: Update for POSIX:2024.
* lib/sys_select.in.h (rpl_fd_isset): Change type of second parameter to
'const fd_set *'.
* tests/test-sys_select-h.c: Check for some more types and for
FD_SETSIZE.
(FD_ISSET): Expect type of second parameter to be 'const fd_set *'.
2025-01-08 Bruno Haible <bruno@clisp.org>
doc: Document the previous change.
* doc/posix-headers/fcntl.texi: Document O_SEARCH musl workaround.
2025-01-08 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: port better to musl on GNU/Linux
* lib/fcntl.in.h (O_SEARCH): Redefine to O_RDONLY on musl,
which mistakenly defines it to be O_PATH on GNU/Linux.
Problem reported by Lasse Collin in:
https://bugs.gnu.org/75405
2025-01-06 Collin Funk <collin.funk1@gmail.com>
servent tests: Fix mistake in previous commit.
Reported by Bruno Haible.
* tests/test-servent.c (getservbyname, getservbyport)
[_WIN32 && !_WIN64 && !__CYGWIN__]: Disable signature check.
servent tests: Fix failure on 32-bit native Windows.
* tests/test-servent.c (getservbyname, getservbyport)
[_WIN64 && !__CYGWIN__]: Disable signature check.
* doc/posix-functions/getservbyname.texi: Document the incompatible
__stdcall function signature.
* doc/posix-functions/getservbyport.texi: Likewise.
2025-01-05 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime-tests: port to Gnulib mktime
Problem reported by Pádraig Brady in:
https://lists.gnu.org/r/bug-gnulib/2025-01/msg00040.html
* tests/test-parse-datetime.c (main): Allow both pedantic and
naive interpretation of "now - 35 years", since the main point of
the test introfuced to fix <https://bugs.gnu.org/48085> was that
parse_datetime shouldn’t fail.
utimensat: mention Linux kernel bug with CIFS
* doc/posix-functions/utimensat.texi (utimensat):
Mention Linux kernel bug reported by Bruno Haible in:
https://lists.gnu.org/r/bug-tar/2024-12/msg00004.html
2025-01-05 Bruno Haible <bruno@clisp.org>
parse-datetime: Internationalize 6 more strings.
* lib/parse-datetime.y (dbg_printf, dbg_fputs): Don't invoke _().
(parse_datetime_body): Internationalize 6 dbg_fputs invocations.
2025-01-05 Bruno Haible <bruno@clisp.org>
sigsegv tests: Work around a longjmp bug on GNU/Hurd.
* tests/test-sigsegv-catch-stackoverflow1.c (_FORTIFY_SOURCE,
__USE_FORTIFY_LEVEL): Undefine, as a workaround to the Hurd longjmp bug.
* tests/test-sigsegv-catch-stackoverflow2.c (_FORTIFY_SOURCE,
__USE_FORTIFY_LEVEL): Likewise.
* doc/posix-functions/longjmp.texi: Document the Hurd bug.
2025-01-05 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: pacify gcc 14 -Wformat-security
I found this when updating GNU patch.
* lib/parse-datetime.y (dbg_herald): New static function.
(dbg_printf): Use it.
(dbg_fputs): New static function. All dbg_printf callers
changed to use it, if their formats contain no directives.
(parse_datetime_body): Call fputs instead of fprintf
if either will do.
2025-01-05 Bruno Haible <bruno@clisp.org>
xstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.
* tests/test-xstrtol.c (main): Update expected test results regarding
Cygwin 2.9.0.
2025-01-05 Bruno Haible <bruno@clisp.org>
tests: Don't use module 'getcwd' as dependency.
* modules/getcwd (Comment): New section.
* modules/xgetcwd (Comment): Likewise.
* modules/xgetcwd-lgpl: New file, based on modules/xgetcwd.
* modules/chown-tests (Depends-on): Add xgetcwd-lgpl. Remove xgetcwd.
* modules/fchownat-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
* modules/lchown-tests (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/utime-tests (Depends-on): Likewise.
* modules/utimens-tests (Depends-on): Likewise.
* modules/utimensat-tests (Depends-on): Likewise.
2025-01-04 Paul Eggert <eggert@cs.ucla.edu>
mktime: ease merge of locking code with glibc
This shouldn't affect behavior of either Gnulib or glibc.
* lib/mktime-internal.h (__libc_lock_lock, __libc_lock_unlock)
(__tzset_unlocked) [!_LIBC]: New macros.
* lib/mktime.c (tzset) [!_LIBC]: Define this instead of __tzset,
if defining either.
(__mktime64): Simplify now that mktime-internal defines
libc-specific macros to noops when !_LIBC.
mktime: improve tm_isdst heuristic
* lib/mktime.c (__mktime_internal): When tm_isdst disagrees with
what was requested, search at most a year (+ stride) from the
requested time for a matching tm_isdst, and ignore the request if
the search fails. This is more likely to match user expectations
in timezones like Asia/Kolkata.
Problem reported by Florian Weimer in:
https://sourceware.org/pipermail/libc-alpha/2025-January/163342.html
mktime: support glibc locking
This is part of my attempt to merge glibc and gnulib mktime.c.
It should not affect Gnulib-using code.
* lib/mktime.c [_LIBC]: Include <tzset.h>.
(convert_time, __tz_convert) [_LIBC]: Omit definitions,
since glibc supplies __tz_convert internally.
(__mktime64) [_LIBC]: Lock __tzset_lock while running.
mktime: prefer bool to int
* lib/mktime.c (__mktime_internal): Use bool for a boolean local.
2025-01-04 Bruno Haible <bruno@clisp.org>
mbs_endswith: Fix abort in the case of incomplete characters.
Reported by Paul Eggert.
* lib/mbs_endswith.c: Don't include <stdlib.h>.
(mbs_endswith): Instead of aborting, return false.
* tests/test-mbs_endswith2.c (main): Test invalid and incomplete
characters.
2025-01-04 Bruno Haible <bruno@clisp.org>
doc: Deal with tables that are overloaded in info mode.
Suggested by Paul Eggert.
* doc/strings.texi (Comparison of string APIs): In info mode, use manual
line breaking in the startswith row.
* doc/containers.texi (Ordinary containers): Use different column
proportions in info mode.
(Sequential lists): In info mode, suggest to look at the HTML-formatted
documentation.
* doc/libunistring.texi (<unictype.h> modules): Likewise.
2025-01-04 Bruno Haible <bruno@clisp.org>
*_startswith, *_endswith: Change return type to 'bool'.
Suggested by Paul Eggert.
* lib/string.in.h (str_startswith, str_endswith, mbs_startswith,
mbs_endswith): Change return type to 'bool'.
* lib/str_startswith.c (str_startswith): Likewise.
* lib/str_endswith.c (str_endswith): Likewise.
* lib/mbs_endswith.c (mbs_endswith): Likewise.
* modules/str_startswith (Depends-on): Add bool.
* modules/str_endswith (Depends-on): Likewise.
* modules/mbs_startswith (Depends-on): Likewise.
* modules/mbs_endswith (Depends-on): Likewise.
2025-01-03 Bruno Haible <bruno@clisp.org>
doc: Mention the new modules.
* doc/strings.texi (Comparison of string APIs): Add rows for startswith
and endswith functions.
2025-01-03 Bruno Haible <bruno@clisp.org>
mbs_endswith: Add tests.
* tests/test-mbs_endswith1.c: New file.
* tests/test-mbs_endswith2.sh: New file, based on tests/test-mbsstr2.sh.
* tests/test-mbs_endswith2.c: New file.
* tests/test-mbs_endswith3.sh: New file, based on tests/test-mbsstr3.sh.
* tests/test-mbs_endswith3.c: New file.
* modules/mbs_endswith-tests: New file.
mbs_endswith: New module.
* lib/string.in.h (mbs_endswith): New declaration.
* lib/mbs_endswith.c: New file.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Initialize
GNULIB_MBS_ENDSWITH.
* modules/string-h (Makefile.am): Substitute GNULIB_MBS_ENDSWITH.
* modules/mbs_endswith: New file.
2025-01-03 Bruno Haible <bruno@clisp.org>
mbs_startswith: New module.
* lib/string.in.h (mbs_startswith): New declaration.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Initialize
GNULIB_MBS_STARTSWITH.
* modules/string-h (Makefile.am): Substitute GNULIB_MBS_STARTSWITH.
* modules/mbs_startswith: New file.
2025-01-03 Bruno Haible <bruno@clisp.org>
tests: Use str_endswith.
* tests/test-canonicalize.c (main): Use str_endswith.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-setlocale-w32utf8.c (main): Likewise.
* modules/canonicalize-tests (Depends-on): Add str_endswith.
* modules/canonicalize-lgpl-tests (Depends-on): Likewise.
* modules/setlocale-tests (Depends-on): Likewise.
gen-uni-tables, get-rusage-data, isatty: Use str_endswith.
* lib/gen-uni-tables.c (fill_attributes): Use str_endswith.
* lib/get-rusage-data.c (get_rusage_data_via_setrlimit): Likewise.
* lib/isatty.c (IsCygwinConsoleHandle): Likewise.
* modules/gen-uni-tables (Depends-on): Add str_endswith.
* modules/get-rusage-data (Depends-on): Likewise.
* modules/isatty (Depends-on): Likewise.
2025-01-03 Bruno Haible <bruno@clisp.org>
tests: Use str_startswith.
* tests/test-environ.c (main): Use str_startswith.
* tests/test-getprogname.c (main): Likewise.
* tests/test-libtextstyle.c (main): Likewise.
* tests/test-strsignal.c (ASSERT_DESCRIPTION): Likewise.
* modules/environ-tests (Depends-on): Add str_startswith.
* modules/getprogname-tests (Depends-on): Likewise.
* modules/libtextstyle-optional-tests (Depends-on): Likewise.
* modules/strsignal-tests (Depends-on): Likewise.
git-merge-changelog, gen-uni-tables: Use str_startswith.
* lib/git-merge-changelog.c (main): Use str_startswith.
* lib/gen-uni-tables.c (output_predicate, is_property_composite,
is_nonspacing): Likewise.
* modules/git-merge-changelog (Depends-on): Add str_startswith.
* modules/gen-uni-tables (Depends-on): Likewise.
2025-01-03 Bruno Haible <bruno@clisp.org>
str_endswith: Add tests.
* tests/test-str_endswith.c: New file.
* modules/str_endswith-tests: New file.
str_endswith: New module.
* lib/string.in.h (str_endswith): New declaration.
* lib/str_endswith.c: New file.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Initialize
GNULIB_STR_ENDSWITH.
* modules/string-h (Makefile.am): Substitute GNULIB_STR_ENDSWITH.
* modules/str_endswith: New file.
2025-01-03 Bruno Haible <bruno@clisp.org>
str_startswith: Add tests.
* tests/test-str_startswith.c: New file.
* modules/str_startswith-tests: New file.
str_startswith: New module.
* lib/string.in.h (str_startswith): New declaration.
* lib/str_startswith.c: New file.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Initialize
GNULIB_STR_STARTSWITH.
* modules/string-h (Makefile.am): Substitute GNULIB_STR_STARTSWITH.
* modules/str_startswith: New file.
2025-01-02 Bruno Haible <bruno@clisp.org>
gnulib-l10n: Clarify the license of the POT file.
Reported by Simon Josefsson. Suggested by Benno Schulenberg.
* po/Makefile ($(DOMAIN).pot): Replace the license notice line.
2025-01-02 Bruno Haible <bruno@clisp.org>
string-desc, xstring-desc, string-desc-quotearg: Rename functions.
* lib/string-desc.h (sd_equals): Renamed from string_desc_equals.
(sd_startswith): Renamed from string_desc_startswith.
(sd_endswith): Renamed from string_desc_endswith.
(sd_cmp): Renamed from string_desc_cmp.
(sd_c_casecmp): Renamed from string_desc_c_casecmp.
(sd_index): Renamed from string_desc_index.
(sd_last_index): Renamed from string_desc_last_index.
(sd_contains): Renamed from string_desc_contains.
(sd_new_empty): Renamed from string_desc_new_empty.
(sd_new_addr): Renamed from string_desc_new_addr.
(sd_from_c): Renamed from string_desc_from_c.
(sd_substring): Renamed from string_desc_substring.
(sd_write): Renamed from string_desc_write.
(sd_fwrite): Renamed from string_desc_fwrite.
(sd_new): Renamed from string_desc_new.
(sd_new_filled): Renamed from string_desc_new_filled.
(sd_copy): Renamed from string_desc_copy.
(sd_concat): Renamed from string_desc_concat.
(sd_c): Renamed from string_desc_c.
(sd_set_char_at): Renamed from string_desc_set_char_at.
(sd_fill): Renamed from string_desc_fill.
(sd_overwrite): Renamed from string_desc_overwrite.
(sd_free): Renamed from string_desc_free.
(sd_length): Renamed from string_desc_length.
(sd_char_at): Renamed from string_desc_char_at.
(sd_data): Renamed from string_desc_data.
(sd_is_empty): Renamed from string_desc_is_empty.
* lib/string-desc.c (sd_equals): Renamed from string_desc_equals.
(sd_startswith): Renamed from string_desc_startswith.
(sd_endswith): Renamed from string_desc_endswith.
(sd_cmp): Renamed from string_desc_cmp.
(sd_c_casecmp): Renamed from string_desc_c_casecmp.
(sd_index): Renamed from string_desc_index.
(sd_last_index): Renamed from string_desc_last_index.
(sd_new_empty): Renamed from string_desc_new_empty.
(sd_new_addr): Renamed from string_desc_new_addr.
(sd_from_c): Renamed from string_desc_from_c.
(sd_substring): Renamed from string_desc_substring.
(sd_write): Renamed from string_desc_write.
(sd_fwrite): Renamed from string_desc_fwrite.
(sd_new): Renamed from string_desc_new.
(sd_new_filled): Renamed from string_desc_new_filled.
(sd_copy): Renamed from string_desc_copy.
(sd_concat): Renamed from string_desc_concat.
(sd_c): Renamed from string_desc_c.
(sd_set_char_at): Renamed from string_desc_set_char_at.
(sd_fill): Renamed from string_desc_fill.
(sd_overwrite): Renamed from string_desc_overwrite.
(sd_free): Renamed from string_desc_free.
* lib/xstring-desc.h (xsd_concat): Renamed from xstring_desc_concat.
(xsd_new): Renamed from xstring_desc_new.
(xsd_new_filled): Renamed from xstring_desc_new_filled.
(xsd_copy): Renamed from xstring_desc_copy.
(xsd_c): Renamed from xstring_desc_c.
* lib/xstring-desc.c (xsd_concat): Renamed from xstring_desc_concat.
* lib/string-desc-quotearg.h (sd_quotearg_buffer): Renamed from
string_desc_quotearg_buffer.
(sd_quotearg_alloc): Renamed from string_desc_quotearg_alloc.
(sd_quotearg_n): Renamed from string_desc_quotearg_n.
(sd_quotearg): Renamed from string_desc_quotearg.
(sd_quotearg_n_style): Renamed from string_desc_quotearg_n_style.
(sd_quotearg_style): Renamed from string_desc_quotearg_style.
(sd_quotearg_char): Renamed from string_desc_quotearg_char.
(sd_quotearg_colon): Renamed from string_desc_quotearg_colon.
(sd_quotearg_n_custom): Renamed from string_desc_quotearg_n_custom.
(sd_quotearg_custom): Renamed from sd_quotearg_n_custom.
* lib/string-desc-contains.c (sd_contains): Renamed from
string_desc_contains.
* lib/string-buffer.h: Update.
* lib/string-buffer.c (sb_append_desc, sb_contents, sb_dupfree): Update.
* lib/xstring-buffer.c (sb_xdupfree): Update.
* lib/sf-istream.c (sf_istream_init_from_string_desc): Update.
* tests/test-string-desc.c (main): Update.
* tests/test-string-desc.sh: Update.
* tests/test-xstring-desc.c (main): Update.
* tests/test-string-desc-quotearg.c (main): Update.
* tests/test-string-buffer.c (main): Update.
* tests/test-sf-istream.c (main): Update.
* tests/test-sfl-istream.c (main): Update.
* doc/string-desc.texi: Update.
* doc/strings.texi: Update.
* NEWS: Mention the change.
2025-01-02 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Improve gnulib-version handling.
* top/maint.mk (gnulib-version): Prefix commit id with human
readable leading ChangeLog date, suggested by Bruno Haible.
(announcement): Handle multi-word gnulib-version.
2025-01-01 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202501. Mention that stable-202401 is no longer updated.
2024-12-31 Paul Eggert <eggert@cs.ucla.edu>
maint: update update-copyright for Emacs
* build-aux/update-copyright: Add support for Emacs, which
uses file names like Changelog.1 that are not man pages,
and file names like emacs.1.in that are man page templates.
2024-12-31 Collin Funk <collin.funk1@gmail.com>
servent tests: Fix failure due to missing htons declaration.
* modules/servent-tests (Depends-on): Add htonl.
(Makefile.am): Link program to $(HTONL_LIB).
* tests/test-servent.c (main): Fix formatting and typo.
servent: Make sure netdb.h is generated.
* modules/servent (Depends-on): Add netdb-h.
2024-12-31 Bruno Haible <bruno@clisp.org>
getcwd: Return "/bin" instead of "//bin" on Adélie Linux.
Reported by Zach van Rijn <me@zv.io> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00072.html>
and <https://git.adelielinux.org/adelie/packages/-/issues/987>.
* lib/getcwd.c (__getcwd_generic): Remove a trailing slash from the
result of readlink().
2024-12-30 Collin Funk <collin.funk1@gmail.com>
servent: Add tests.
* tests/test-servent.c: New file.
* modules/servent-tests: New file.
2024-12-30 Bruno Haible <bruno@clisp.org>
mbfile: Support pushback characters also right before EOF.
* lib/mbfile.h (mbfile_multi_getc): Read pushed-back character before
testing for sticky EOF.
* tests/test-mbfile.c (main): Test pushback at EOF.
mbfile: Allow 2 pushback characters.
* lib/mbfile.h: Include <stdlib.h>.
(MBFILE_MAX_PUSHBACK): New macro.
(struct mbfile_multi): Replace field 'have_pushback' with
'pushback_count'. Make field 'pushback' an array.
(mbfile_multi_getc, mbfile_multi_ungetc): Handle multiple pushback
characters.
(mbf_init): Update.
2024-12-30 Bruno Haible <bruno@clisp.org>
bcp47: Handle language variants.
Reported by Balló György <ballogyor@gmail.com> at
<https://savannah.gnu.org/bugs/?66620>.
* lib/bcp47.c (xpg_to_bcp47, bcp47_to_xpg): Handle variants.
* tests/test-bcp47.c (main): Test a regional variant.
2024-12-30 Bruno Haible <bruno@clisp.org>
doc: Revisit some index entries.
* doc/attribute.texi: Refer to the 'attribute' module.
* doc/verify.texi: Refer to the 'verify' module.
* doc/noreturn.texi: Remove duplicate index entries.
2024-12-30 Bruno Haible <bruno@clisp.org>
doc: Document the 'inline' module.
* doc/static-inline.texi: Document the 'inline' module.
* m4/inline.m4: Fix comment.
2024-12-30 Bruno Haible <bruno@clisp.org>
signal: Deprecate old stub module.
* modules/signal: Mark as deprecated.
2024-12-29 Bruno Haible <bruno@clisp.org>
qsort_r: Update documentation.
* modules/qsort_r (Description): Say "POSIX signature".
* doc/posix-functions/qsort_r.texi: Mention the qsort_r module.
2024-12-29 Pádraig Brady <P@draigBrady.com>
git-version-gen: reinstate executable permission
* build-aux/git-version-gen: chmod a+x
2024-12-29 Bruno Haible <bruno@clisp.org>
sig2str: Document a portability problem.
* doc/posix-functions/sig2str.texi: Document IRIX problem.
* doc/posix-functions/str2sig.texi: Likewise.
2024-12-29 Bruno Haible <bruno@clisp.org>
doc: Document the advanced FILE stream functions.
* doc/stdioext.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2024-12-29 Collin Funk <collin.funk1@gmail.com>
signal-h tests: Check that SIG2STR_MAX is properly defined.
* modules/signal-h-tests (Depends-on): Add assert-h.
* tests/test-signal-h.c: Check that SIG2STR_MAX is defined to a
positive integer.
sig2str tests: Add signature check.
* modules/sig2str-tests (Files): Add tests/signature.h.
* tests/test-sig2str.c: Include signal.h instead of sig2str.h. Check the
function signature of sig2str and str2sig.
2024-12-29 Bruno Haible <bruno@clisp.org>
doc: Document the modules for containers.
* doc/containers.texi: Document the modules for each container data
type.
2024-12-29 Bruno Haible <bruno@clisp.org>
doc: Omit internal modules from the "Undocumented modules" index.
* doc/internal-modules: New file.
* doc/Makefile (undocumented-modules.texi): Filter out the internal
modules.
2024-12-28 Collin Funk <collin.funk1@gmail.com>
doc: Add missing module index.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00240.html>.
* doc/posix-functions/getservbyname.texi (getservbyname): Add module
index.
* doc/posix-functions/getservbyport.texi (getservbyport): Likewise.
doc: Fix the previous commit.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00236.html>.
* doc/posix-functions/getservbyname.texi: Mention the Windows
declaration under "Portability problems fixed by Gnulib".
* doc/posix-functions/getservbyport.texi: Likewise.
doc: Mention the servent module.
* doc/posix-functions/getservbyname.texi: Document that the servent
module will provide the declarations in netdb.h.
* doc/posix-functions/getservbyport.texi: Likewise.
2024-12-28 Simon Josefsson <simon@josefsson.org>
git-version-gen: avoid use of grep, suggested by Jim Meyering.
* build-aux/git-version-gen: Use /bin/sh case instead.
2024-12-28 Simon Josefsson <simon@josefsson.org>
git-version-gen: fix preceding change
* build-aux/git-version-gen: Do use *-git content only when
keyword is not present. Move post-processing later. Doc fixes.
2024-12-28 Bruno Haible <bruno@clisp.org>
doc: Omit deprecated modules from the "Undocumented modules" index.
* doc/Makefile (undocumented-modules.texi): Filter out the deprecated
modules.
2024-12-28 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Improve gnulib-version derivation.
* top/maint.mk (gnulib-version): Use git only when possible,
falling back to GNULIB_REVISION or ChangeLog date otherwise. Use
consistent full identifier.
2024-12-28 Simon Josefsson <simon@josefsson.org>
announce-gen: Support VPATH builds better.
* build-aux/announce-gen: Pass -C$srcdir to git.
2024-12-28 Bruno Haible <bruno@clisp.org>
endian: Fix link error on CentOS 5.
* m4/endian_h.m4 (gl_ENDIAN_H): Use AC_LINK_IFELSE, not
AC_COMPILE_IFELSE.
2024-12-28 Jim Meyering <meyering@meta.com>
git-version-gen: fix preceding change
* build-aux/git-version-gen: Use the contents of the -git file
when its first line has the proper form (fixing a reversed test).
Also, reference the file only once, rather than three times.
Also, double quote $tarball_version_file in preexisting code.
2024-12-28 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix compilation error on CentOS 6 (regression 2024-09-29).
* lib/file-has-acl.c (XATTR_NAME_SMACK, XATTR_NAME_SELINUX): Add
fallback definitions.
2024-12-28 Bruno Haible <bruno@clisp.org>
assert-h, verify: Make static_assert work in C++ mode on FreeBSD 11.
* lib/verify.h (static_assert): Override when using old versions of
clang++.
2024-12-28 Bruno Haible <bruno@clisp.org>
endian: Fix compilation error on NetBSD 7.1.
* m4/endian_h.m4 (gl_ENDIAN_H): Test for <sys/endian.h>. Set
HAVE_SYS_ENDIAN_H.
* lib/endian.in.h: Test HAVE_SYS_ENDIAN_H as an alternative to
HAVE_ENDIAN_H.
* modules/endian (Makefile.am): Substitute HAVE_SYS_ENDIAN_H.
2024-12-28 Bruno Haible <bruno@clisp.org>
wchar-h: Fix wcrtomb prototype conflict in C++ mode on OpenBSD 6.0.
* lib/wchar.in.h (rpl_mbstate_t): Don't define on OpenBSD.
2024-12-28 Bruno Haible <bruno@clisp.org>
stack-trace: Fix compilation errors on older BSD systems.
* m4/stack-trace.m4 (gl_STACK_TRACE_EARLY): Test whether we can link
with libexecinfo before modifying LIBS.
2024-12-28 Bruno Haible <bruno@clisp.org>
Rename module stdbool-h to bool.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00193.html>.
* modules/bool: Renamed from modules/stdbool-h.
* modules/bool-tests: Renamed from modules/stdbool-h-tests.
* modules/bool-c++-tests: Renamed from modules/stdbool-h-c++-tests.
* tests/test-bool.c: Renamed from tests/test-stdbool-h.c.
* tests/test-bool-c++.cc: Renamed from tests/test-stdbool-h-c++.cc.
* tests/test-bool-c++2.cc: Renamed from tests/test-stdbool-h-c++2.cc.
* modules/stdbool-h-c99-tests: Update.
* modules/stdbool-h-c99-c++-tests: Update.
* tests/test-stdbool-h-c99.c: Update.
* tests/test-stdbool-h-c99-c++.cc: Update.
* doc/posix-headers/stdbool.texi: Update.
* doc/gnulib-readme.texi: Update.
* doc/gnulib.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdbool: Update.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module wchar to wchar-h.
* modules/wchar-h: Renamed from modules/wchar.
* modules/wchar-h-tests: Renamed from modules/wchar-tests.
* modules/wchar-h-c++-tests: Renamed from modules/wchar-c++-tests.
* tests/test-wchar-h.c: Renamed from tests/test-wchar.c.
* tests/test-wchar-h-c++.cc: Renamed from tests/test-wchar-c++.cc.
* tests/test-wchar-h-c++2.cc: Renamed from tests/test-wchar-c++2.cc.
* tests/test-wchar-h-c++3.cc: Renamed from tests/test-wchar-c++3.cc.
* doc/posix-headers/wchar.texi: Update.
* modules/* (Depends-on): Update.
* modules/wchar: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module utmp to utmp-h.
* modules/utmp-h: Renamed from modules/utmp.
* modules/utmp-h-tests: Renamed from modules/utmp-tests.
* modules/utmp-h-c++-tests: Renamed from modules/utmp-c++-tests.
* tests/test-utmp-h.c: Renamed from tests/test-utmp.c.
* tests/test-utmp-h-c++.cc: Renamed from tests/test-utmp-c++.cc.
* doc/posix-headers/utmp.texi: Update.
* modules/* (Depends-on): Update.
* modules/utmp: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module unitypes to unitypes-h.
* modules/unitypes-h: Renamed from modules/unitypes.
* doc/libunistring.texi: Update.
* modules/* (Depends-on): Update.
* modules/unitypes: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module unistd to unistd-h.
* modules/unistd-h: Renamed from modules/unistd.
* modules/unistd-h-tests: Renamed from modules/unistd-tests.
* modules/unistd-h-c++-tests: Renamed from modules/unistd-c++-tests.
* tests/test-unistd-h.c: Renamed from tests/test-unistd.c.
* tests/test-unistd-h-c++.cc: Renamed from tests/test-unistd-c++.cc.
* doc/posix-headers/unistd.texi: Update.
* doc/posix-functions/_exit.texi: Update.
* modules/* (Depends-on): Update.
* modules/unistd: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module uchar-c23 to uchar-h-c23.
* modules/uchar-h-c23: Renamed from modules/uchar-c23.
* lib/uchar.in.h: Update.
* doc/posix-headers/uchar.texi: Update.
* doc/posix-functions/mbrtoc32.texi: Update.
* doc/strings.texi: Update.
* modules/* (Depends-on): Update.
* modules/uchar-c23: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module uchar to uchar-h.
* modules/uchar-h: Renamed from modules/uchar.
* modules/uchar-h-tests: Renamed from modules/uchar-tests.
* modules/uchar-h-c++-tests: Renamed from modules/uchar-c++-tests.
* tests/test-uchar-h.c: Renamed from tests/test-uchar.c.
* tests/test-uchar-h-c++.cc: Renamed from tests/test-uchar-c++.cc.
* tests/test-uchar-h-c++2.cc: Renamed from tests/test-uchar-c++2.cc.
* doc/posix-headers/uchar.texi: Update.
* modules/* (Depends-on): Update.
* modules/uchar: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module termios to termios-h.
* modules/termios-h: Renamed from modules/termios.
* modules/termios-h-tests: Renamed from modules/termios-tests.
* modules/termios-h-c++-tests: Renamed from modules/termios-c++-tests.
* tests/test-termios-h.c: Renamed from tests/test-termios.c.
* tests/test-termios-h-c++.cc: Renamed from tests/test-termios-c++.cc.
* doc/posix-headers/termios.texi: Update.
* modules/* (Depends-on): Update.
* modules/termios: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_wait to sys_wait-h.
* modules/sys_wait-h: Renamed from modules/sys_wait.
* modules/sys_wait-h-tests: Renamed from modules/sys_wait-tests.
* modules/sys_wait-h-c++-tests: Renamed from modules/sys_wait-c++-tests.
* tests/test-sys_wait-h.h: Renamed from tests/test-sys_wait.h.
* tests/test-sys_wait-h.c: Renamed from tests/test-sys_wait.c.
* tests/test-stdlib-h.c: Update.
* tests/test-sys_wait-h-c++.cc: Renamed from tests/test-sys_wait-c++.cc.
* doc/posix-headers/sys_wait.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_wait: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_utsname to sys_utsname-h.
* modules/sys_utsname-h: Renamed from modules/sys_utsname.
* modules/sys_utsname-h-tests: Renamed from modules/sys_utsname-tests.
* modules/sys_utsname-h-c++-tests: Renamed from
modules/sys_utsname-c++-tests.
* tests/test-sys_utsname-h.c: Renamed from tests/test-sys_utsname.c.
* tests/test-sys_utsname-h-c++.cc: Renamed from
tests/test-sys_utsname-c++.cc.
* doc/posix-headers/sys_utsname.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_utsname: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_un to sys_un-h.
* modules/sys_un-h: Renamed from modules/sys_un.
* modules/sys_un-h-tests: Renamed from modules/sys_un-tests.
* modules/sys_un-h-c++-tests: Renamed from modules/sys_un-c++-tests.
* tests/test-sys_un-h.c: Renamed from tests/test-sys_un.c.
* tests/test-sys_un-h-c++.cc: Renamed from tests/test-sys_un-c++.cc.
* doc/posix-headers/sys_un.texi: Update.
* modules/sys_un: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_uio to sys_uio-h.
* modules/sys_uio-h: Renamed from modules/sys_uio.
* modules/sys_uio-h-tests: Renamed from modules/sys_uio-tests.
* modules/sys_uio-h-c++-tests: Renamed from modules/sys_uio-c++-tests.
* tests/test-sys_uio-h.c: Renamed from tests/test-sys_uio.c.
* tests/test-sys_uio-h-c++.cc: Renamed from tests/test-sys_uio-c++.cc.
* doc/posix-headers/sys_uio.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_uio: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_types to sys_types-h.
* modules/sys_types-h: Renamed from modules/sys_types.
* modules/sys_types-h-tests: Renamed from modules/sys_types-tests.
* modules/sys_types-h-c++-tests: Renamed from
modules/sys_types-c++-tests.
* tests/test-sys_types-h.c: Renamed from tests/test-sys_types.c.
* tests/test-sys_types-h-c++.cc: Renamed from
tests/test-sys_types-c++.cc.
* doc/posix-headers/sys_types.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_types: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_times to sys_times-h.
* modules/sys_times-h: Renamed from modules/sys_times.
* modules/sys_times-h-tests: Renamed from modules/sys_times-tests.
* modules/sys_times-h-c++-tests: Renamed from
modules/sys_times-c++-tests.
* tests/test-sys_times-h.c: Renamed from tests/test-sys_times.c.
* tests/test-sys_times-h-c++.cc: Renamed from
tests/test-sys_times-c++.cc.
* doc/posix-headers/sys_times.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_times: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_time to sys_time-h.
* modules/sys_time-h: Renamed from modules/sys_time.
* modules/sys_time-h-tests: Renamed from modules/sys_time-tests.
* modules/sys_time-h-c++-tests: Renamed from modules/sys_time-c++-tests.
* tests/test-sys_time-h.c: Renamed from tests/test-sys_time.c.
* tests/test-sys_time-h-c++.cc: Renamed from tests/test-sys_time-c++.cc.
* doc/posix-headers/sys_time.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_time: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_stat to sys_stat-h.
* modules/sys_stat-h: Renamed from modules/sys_stat.
* modules/sys_stat-h-tests: Renamed from modules/sys_stat-tests.
* modules/sys_stat-h-c++-tests: Renamed from modules/sys_stat-c++-tests.
* tests/test-sys_stat-h.c: Renamed from tests/test-sys_stat.c.
* tests/test-sys_stat-h-c++.cc: Renamed from tests/test-sys_stat-c++.cc.
* doc/posix-headers/sys_stat.texi: Update.
* doc/posix-functions/mkdir.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_stat: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_socket to sys_socket-h.
* modules/sys_socket-h: Renamed from modules/sys_socket.
* modules/sys_socket-h-tests: Renamed from modules/sys_socket-tests.
* modules/sys_socket-h-c++-tests: Renamed from
modules/sys_socket-c++-tests.
* tests/test-sys_socket-h.c: Renamed from tests/test-sys_socket.c.
* tests/test-sys_socket-h-c++.cc: Renamed from
tests/test-sys_socket-c++.cc.
* doc/posix-headers/sys_socket.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_socket: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_shm to sys_shm-h.
* modules/sys_shm-h: Renamed from modules/sys_shm.
* doc/posix-headers/sys_shm.texi: Update.
* modules/sys_shm: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_sem to sys_sem-h.
* modules/sys_sem-h: Renamed from modules/sys_sem.
* doc/posix-headers/sys_sem.texi: Update.
* modules/sys_sem: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_select to sys_select-h.
* modules/sys_select-h: Renamed from modules/sys_select.
* modules/sys_select-h-tests: Renamed from modules/sys_select-tests.
* modules/sys_select-h-c++-tests: Renamed from
modules/sys_select-c++-tests.
* tests/test-sys_select-h.c: Renamed from tests/test-sys_select.c.
* tests/test-sys_select-h-c++.cc: Renamed from
tests/test-sys_select-c++.cc.
* doc/posix-headers/sys_select.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_select: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_resource to sys_resource-h.
* modules/sys_resource-h: Renamed from modules/sys_resource.
* modules/sys_resource-h-tests: Renamed from modules/sys_resource-tests.
* modules/sys_resource-h-c++-tests: Renamed from
modules/sys_resource-c++-tests.
* tests/test-sys_resource-h.c: Renamed from tests/test-sys_resource.c.
* tests/test-sys_resource-h-c++.cc: Renamed from
tests/test-sys_resource-c++.cc.
* doc/posix-headers/sys_resource.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_resource: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_random to sys_random-h.
* modules/sys_random-h: Renamed from modules/sys_random.
* modules/sys_random-h-tests: Renamed from modules/sys_random-tests.
* modules/sys_random-h-c++-tests: Renamed from
modules/sys_random-c++-tests.
* tests/test-sys_random-h.c: Renamed from tests/test-sys_random.c.
* tests/test-sys_random-h-c++.cc: Renamed from
tests/test-sys_random-c++.cc.
* doc/glibc-headers/sys_random.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_random: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_msg to sys_msg-h.
* modules/sys_msg-h: Renamed from modules/sys_msg.
* doc/posix-headers/sys_msg.texi: Update.
* modules/sys_msg: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_ioctl to sys_ioctl-h.
* modules/sys_ioctl-h: Renamed from modules/sys_ioctl.
* modules/sys_ioctl-h-tests: Renamed from modules/sys_ioctl-tests.
* modules/sys_ioctl-h-c++-tests: Renamed from
modules/sys_ioctl-c++-tests.
* tests/test-sys_ioctl-h.c: Renamed from tests/test-sys_ioctl.c.
* tests/test-sys_ioctl-h-c++.cc: Renamed from
tests/test-sys_ioctl-c++.cc.
* doc/glibc-headers/sys_ioctl.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_ioctl: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sys_file to sys_file-h.
* modules/sys_file-h: Renamed from modules/sys_file.
* modules/sys_file-h-tests: Renamed from modules/sys_file-tests.
* modules/sys_file-h-c++-tests: Renamed from modules/sys_file-c++-tests.
* tests/test-sys_file-h.c: Renamed from tests/test-sys_file.c.
* tests/test-sys_file-h-c++.cc: Renamed from tests/test-sys_file-c++.cc.
* doc/glibc-headers/sys_file.texi: Update.
* modules/* (Depends-on): Update.
* modules/sys_file: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sysexits to sysexits-h.
* modules/sysexits-h: Renamed from modules/sysexits.
* modules/sysexits-h-tests: Renamed from modules/sysexits-tests.
* modules/sysexits-h-c++-tests: Renamed from modules/sysexits-c++-tests.
* tests/test-sysexits-h.c: Renamed from tests/test-sysexits.c.
* tests/test-sysexits-h-c++.cc: Renamed from tests/test-sysexits-c++.cc.
* doc/glibc-headers/sysexits.texi: Update.
* modules/* (Depends-on): Update.
* modules/sysexits: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module strings to strings-h.
* modules/strings-h: Renamed from modules/strings.
* modules/strings-h-tests: Renamed from modules/strings-tests.
* modules/strings-h-c++-tests: Renamed from modules/strings-c++-tests.
* tests/test-strings-h.c: Renamed from tests/test-strings.c.
* tests/test-strings-h-c++.cc: Renamed from tests/test-strings-c++.cc.
* doc/posix-headers/strings.texi: Update.
* modules/* (Depends-on): Update.
* modules/strings: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module string to string-h.
* modules/string-h: Renamed from modules/string.
* modules/string-h-tests: Renamed from modules/string-tests.
* modules/string-h-c++-tests: Renamed from modules/string-c++-tests.
* tests/test-string-h.c: Renamed from tests/test-string.c.
* tests/test-string-h-c++.cc: Renamed from tests/test-string-c++.cc.
* tests/test-string-h-c++2.cc: Renamed from tests/test-string-c++2.cc.
* doc/posix-headers/string.texi: Update.
* doc/posix-functions/strcat.texi: Update.
* doc/posix-functions/strcpy.texi: Update.
* doc/posix-functions/strncpy.texi: Update.
* modules/* (Depends-on): Update.
* modules/string: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdnoreturn to stdnoreturn-h.
* modules/stdnoreturn-h: Renamed from modules/stdnoreturn.
* modules/stdnoreturn-h-tests: Renamed from modules/stdnoreturn-tests.
* tests/test-stdnoreturn-h.c: Renamed from tests/test-stdnoreturn.c.
* doc/posix-headers/stdnoreturn.texi: Update.
* doc/noreturn.texi: Update.
* modules/stdnoreturn: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdlib to stdlib-h.
* modules/stdlib-h: Renamed from modules/stdlib.
* modules/stdlib-h-tests: Renamed from modules/stdlib-tests.
* modules/stdlib-h-c++-tests: Renamed from modules/stdlib-c++-tests.
* tests/test-stdlib-h.c: Renamed from tests/test-stdlib.c.
* tests/test-stdlib-h-c++.cc: Renamed from tests/test-stdlib-c++.cc.
* tests/test-stdlib-h-c++2.cc: Renamed from tests/test-stdlib-c++2.cc.
* doc/posix-headers/stdlib.texi: Update.
* doc/posix-functions/exit.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdlib: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdio to stdio-h.
* modules/stdio-h: Renamed from modules/stdio.
* modules/stdio-h-tests: Renamed from modules/stdio-tests.
* modules/stdio-h-c++-tests: Renamed from modules/stdio-c++-tests.
* tests/test-stdio-h.c: Renamed from tests/test-stdio.c.
* tests/test-stdio-h-c++.cc: Renamed from tests/test-stdio-c++.cc.
* tests/test-stdio-h-c++2.cc: Renamed from tests/test-stdio-c++2.cc.
* doc/posix-headers/stdio.texi: Update.
* doc/posix-functions/fgetc.texi: Update.
* doc/posix-functions/fgets.texi: Update.
* doc/posix-functions/fprintf.texi: Update.
* doc/posix-functions/fputc.texi: Update.
* doc/posix-functions/fputs.texi: Update.
* doc/posix-functions/fread.texi: Update.
* doc/posix-functions/fscanf.texi: Update.
* doc/posix-functions/fwrite.texi: Update.
* doc/posix-functions/getc.texi: Update.
* doc/posix-functions/getchar.texi: Update.
* doc/posix-functions/printf.texi: Update.
* doc/posix-functions/putc.texi: Update.
* doc/posix-functions/putchar.texi: Update.
* doc/posix-functions/puts.texi: Update.
* doc/posix-functions/read.texi: Update.
* doc/posix-functions/scanf.texi: Update.
* doc/posix-functions/vfprintf.texi: Update.
* doc/posix-functions/vprintf.texi: Update.
* doc/posix-functions/write.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdio: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdint to stdint-h.
* modules/stdint-h: Renamed from modules/stdint.
* modules/stdint-h-tests: Renamed from modules/stdint-tests.
* modules/stdint-h-c++-tests: Renamed from modules/stdint-c++-tests.
* tests/test-stdint-h.c: Renamed from tests/test-stdint.c.
* tests/test-stdint-h-c++.cc: Renamed from tests/test-stdint-c++.cc.
* tests/test-stdint-h-c++2.cc: Renamed from tests/test-stdint-c++2.cc.
* doc/posix-headers/stdint.texi: Update.
* doc/gnulib-readme.texi: Update.
* doc/gnulib.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdint: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stddef to stddef-h.
* modules/stddef-h: Renamed from modules/stddef.
* modules/stddef-h-tests: Renamed from modules/stddef-tests.
* modules/stddef-h-c++-tests: Renamed from modules/stddef-c++-tests.
* tests/test-stddef-h.c: Renamed from tests/test-stddef.c.
* tests/test-stddef-h-c++.cc: Renamed from tests/test-stddef-c++.cc.
* tests/test-stddef-h-c++2.cc: Renamed from tests/test-stddef-c++2.cc.
* doc/posix-headers/stddef.texi: Update.
* modules/* (Depends-on): Update.
* modules/stddef: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdckdint to stdckdint-h.
* modules/stdckdint-h: Renamed from modules/stdckdint.
* modules/stdckdint-h-tests: Renamed from modules/stdckdint-tests.
* modules/stdckdint-h-c++-tests: Renamed from
modules/stdckdint-c++-tests.
* tests/test-stdckdint-h.c: Renamed from tests/test-stdckdint.c.
* tests/test-stdckdint-h-c++.cc: Renamed from
tests/test-stdckdint-c++.cc.
* doc/posix-headers/stdckdint.texi: Update.
* doc/intprops.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdckdint: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdbool to stdbool-h.
* modules/stdbool-h: Renamed from modules/stdbool.
* modules/stdbool-h-tests: Renamed from modules/stdbool-tests.
* modules/stdbool-h-c++-tests: Renamed from modules/stdbool-c++-tests.
* tests/test-stdbool-h.c: Renamed from tests/test-stdbool.c.
* tests/test-stdbool-h-c++.cc: Renamed from tests/test-stdbool-c++.cc.
* tests/test-stdbool-h-c++2.cc: Renamed from tests/test-stdbool-c++2.cc.
* tests/test-stdbool-h-c99.c: Update.
* tests/test-stdbool-h-c99-c++.cc: Update.
* doc/posix-headers/stdbool.texi: Update.
* doc/gnulib-readme.texi: Update.
* doc/gnulib.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdbool: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdbool-c99 to stdbool-h-c99.
* modules/stdbool-h-c99: Renamed from modules/stdbool-c99.
* modules/stdbool-h-c99-tests: Renamed from modules/stdbool-c99-tests.
* modules/stdbool-h-c99-c++-tests: Renamed from
modules/stdbool-c99-c++-tests.
* tests/test-stdbool-h-c99.c: Renamed from tests/test-stdbool-c99.c.
* tests/test-stdbool-h-c99-c++.cc: Renamed from
tests/test-stdbool-c99-c++.cc.
* doc/posix-headers/stdbool.texi: Update.
* modules/stdbool-c99: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdarg to stdarg-h.
* modules/stdarg-h: Renamed from modules/stdarg.
* modules/stdarg-h-tests: Renamed from modules/stdarg-tests.
* modules/stdarg-h-c++-tests: Renamed from modules/stdarg-c++-tests.
* tests/test-stdarg-h-c++.cc: Renamed from tests/test-stdarg-c++.cc.
* tests/test-stdarg-h-c++2.cc: Renamed from tests/test-stdarg-c++2.cc.
* doc/posix-headers/stdarg.texi: Update.
* doc/posix-functions/va_copy.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdarg: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module stdalign to stdalign-h.
* modules/stdalign-h: Renamed from modules/stdalign.
* modules/stdalign-h-tests: Renamed from modules/stdalign-tests.
* modules/stdalign-h-c++-tests: Renamed from modules/stdalign-c++-tests.
* tests/test-stdalign-h-c++.cc: Renamed from tests/test-stdalign-c++.cc.
* doc/posix-headers/stdalign.texi: Update.
* modules/stdalign: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module spawn to spawn-h.
* modules/spawn-h: Renamed from modules/spawn.
* modules/spawn-h-tests: Renamed from modules/spawn-tests.
* modules/spawn-h-c++-tests: Renamed from modules/spawn-c++-tests.
* tests/test-spawn-h.c: Renamed from tests/test-spawn.c.
* tests/test-spawn-h-c++.cc: Renamed from tests/test-spawn-c++.cc.
* doc/posix-headers/spawn.texi: Update.
* modules/* (Depends-on): Update.
* modules/spawn: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module search to search-h.
* modules/search-h: Renamed from modules/search.
* modules/search-h-tests: Renamed from modules/search-tests.
* modules/search-h-c++-tests: Renamed from modules/search-c++-tests.
* tests/test-search-h.c: Renamed from tests/test-search.c.
* tests/test-search-h-c++.cc: Renamed from tests/test-search-c++.cc.
* doc/posix-headers/search.texi: Update.
* modules/* (Depends-on): Update.
* modules/search: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module sched to sched-h.
* modules/sched-h: Renamed from modules/sched.
* modules/sched-h-tests: Renamed from modules/sched-tests.
* modules/sched-h-c++-tests: Renamed from modules/sched-c++-tests.
* tests/test-sched-h.c: Renamed from tests/test-sched.c.
* tests/test-sched-h-c++.cc: Renamed from tests/test-sched-c++.cc.
* doc/posix-headers/sched.texi: Update.
* modules/* (Depends-on): Update.
* modules/sched: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module pty to pty-h.
* modules/pty-h: Renamed from modules/pty.
* modules/pty-h-tests: Renamed from modules/pty-tests.
* modules/pty-h-c++-tests: Renamed from modules/pty-c++-tests.
* tests/test-pty-h.c: Renamed from tests/test-pty.c.
* tests/test-pty-h-c++.cc: Renamed from tests/test-pty-c++.cc.
* doc/glibc-headers/pty.texi: Update.
* doc/gnulib-intro.texi: Update.
* modules/* (Depends-on): Update.
* modules/pty: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module netinet_in to netinet_in-h.
* modules/netinet_in-h: Renamed from modules/netinet_in.
* modules/netinet_in-h-tests: Renamed from modules/netinet_in-tests.
* modules/netinet_in-h-c++-tests: Renamed from
modules/netinet_in-c++-tests.
* tests/test-netinet_in-h.c: Renamed from tests/test-netinet_in.c.
* tests/test-netinet_in-h-c++.cc: Renamed from
tests/test-netinet_in-c++.cc.
* doc/posix-headers/netinet_in.texi: Update.
* modules/* (Depends-on): Update.
* modules/netinet_in: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module net_if to net_if-h.
* modules/net_if-h: Renamed from modules/net_if.
* modules/net_if-h-tests: Renamed from modules/net_if-tests.
* modules/net_if-h-c++-tests: Renamed from modules/net_if-c++-tests.
* tests/test-net_if-h.c: Renamed from tests/test-net_if.c.
* tests/test-net_if-h-c++.cc: Renamed from tests/test-net_if-c++.cc.
* doc/posix-headers/net_if.texi: Update.
* modules/net_if: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module netdb to netdb-h.
* modules/netdb-h: Renamed from modules/netdb.
* modules/netdb-h-tests: Renamed from modules/netdb-tests.
* modules/netdb-h-c++-tests: Renamed from modules/netdb-c++-tests.
* tests/test-netdb-h.c: Renamed from tests/test-netdb.c.
* tests/test-netdb-h-c++.cc: Renamed from tests/test-netdb-c++.cc.
* doc/posix-headers/netdb.texi: Update.
* modules/* (Depends-on): Update.
* modules/netdb: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module monetary to monetary-h.
* modules/monetary-h: Renamed from modules/monetary.
* modules/monetary-h-tests: Renamed from modules/monetary-tests.
* modules/monetary-h-c++-tests: Renamed from modules/monetary-c++-tests.
* tests/test-monetary-h.c: Renamed from tests/test-monetary.c.
* tests/test-monetary-h-c++.cc: Renamed from tests/test-monetary-c++.cc.
* doc/posix-headers/monetary.texi: Update.
* modules/* (Depends-on): Update.
* modules/monetary: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module mntent to mntent-h.
* modules/mntent-h: Renamed from modules/mntent.
* doc/glibc-headers/mntent.texi: Update.
* modules/* (Depends-on): Update.
* modules/mntent: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module math to math-h.
* modules/math-h: Renamed from modules/math.
* modules/math-h-tests: Renamed from modules/math-tests.
* modules/math-h-c++-tests: Renamed from modules/math-c++-tests.
* tests/test-math-h.c: Renamed from tests/test-math.c.
* tests/test-math-h-c++.cc: Renamed from tests/test-math-c++.cc.
* tests/test-math-h-c++2.cc: Renamed from tests/test-math-c++2.cc.
* doc/posix-headers/math.texi: Update.
* modules/* (Depends-on): Update.
* modules/math: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module locale to locale-h.
* modules/locale-h: Renamed from modules/locale.
* modules/locale-h-tests: Renamed from modules/locale-tests.
* modules/locale-h-c++-tests: Renamed from modules/locale-c++-tests.
* tests/test-locale-h.c: Renamed from tests/test-locale.c.
* tests/test-locale-h-c++.cc: Renamed from tests/test-locale-c++.cc.
* tests/test-locale-h-c++2.cc: Renamed from tests/test-locale-c++2.cc.
* doc/posix-headers/locale.texi: Update.
* modules/* (Depends-on): Update.
* modules/locale: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module langinfo to langinfo-h.
* modules/langinfo-h: Renamed from modules/langinfo.
* modules/langinfo-h-tests: Renamed from modules/langinfo-tests.
* modules/langinfo-h-c++-tests: Renamed from modules/langinfo-c++-tests.
* tests/test-langinfo-h.c: Renamed from tests/test-langinfo.c.
* tests/test-langinfo-h-c++.cc: Renamed from tests/test-langinfo-c++.cc.
* doc/posix-headers/langinfo.texi: Update.
* modules/* (Depends-on): Update.
* modules/langinfo: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module inttypes to inttypes-h.
* modules/inttypes-h: Renamed from modules/inttypes.
* modules/inttypes-h-tests: Renamed from modules/inttypes-tests.
* modules/inttypes-h-c++-tests: Renamed from modules/inttypes-c++-tests.
* tests/test-inttypes-h.c: Renamed from tests/test-inttypes.c.
* tests/test-inttypes-h-c++.cc: Renamed from tests/test-inttypes-c++.cc.
* tests/test-inttypes-h-c++2.cc: Renamed from tests/test-inttypes-c++2.cc.
* doc/posix-headers/inttypes.texi: Update.
* modules/* (Depends-on): Update.
* modules/inttypes: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module inttypes-incomplete to inttypes-h-incomplete.
* modules/inttypes-h-incomplete: Renamed from
modules/inttypes-incomplete.
* modules/* (Depends-on): Update.
* modules/inttypes-incomplete: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module float to float-h.
* modules/float-h: Renamed from modules/float.
* modules/float-h-tests: Renamed from modules/float-tests.
* modules/float-h-c++-tests: Renamed from modules/float-c++-tests.
* tests/test-float-h.c: Renamed from tests/test-float.c.
* tests/test-float-h-c++.cc: Renamed from tests/test-float-c++.cc.
* tests/test-float-h-c++2.cc: Renamed from tests/test-float-c++2.cc.
* doc/posix-headers/float.texi: Update.
* modules/* (Depends-on): Update.
* modules/float: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module fenv to fenv-h.
* modules/fenv-h: Renamed from modules/fenv.
* modules/fenv-h-tests: Renamed from modules/fenv-tests.
* modules/fenv-h-c++-tests: Renamed from modules/fenv-c++-tests.
* tests/test-fenv-h.c: Renamed from tests/test-fenv.c.
* tests/test-fenv-h-c++.cc: Renamed from tests/test-fenv-c++.cc.
* doc/posix-headers/fenv.texi: Update.
* modules/* (Depends-on): Update.
* modules/fenv: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module errno to errno-h.
* modules/errno-h: Renamed from modules/errno.
* modules/errno-h-tests: Renamed from modules/errno-tests.
* modules/errno-h-c++-tests: Renamed from modules/errno-c++-tests.
* tests/test-errno-h.c: Renamed from tests/test-errno.c.
* tests/test-errno-h-c++.cc: Renamed from tests/test-errno-c++.cc.
* tests/test-errno-h-c++2.cc: Renamed from tests/test-errno-c++2.cc.
* doc/posix-headers/errno.texi: Update.
* modules/* (Depends-on): Update.
* modules/errno: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module dirent to dirent-h.
* modules/dirent-h: Renamed from modules/dirent.
* modules/dirent-h-tests: Renamed from modules/dirent-tests.
* modules/dirent-h-c++-tests: Renamed from modules/dirent-c++-tests.
* tests/test-dirent-h.c: Renamed from tests/test-dirent.c.
* tests/test-dirent-h-c++.cc: Renamed from tests/test-dirent-c++.cc.
* doc/posix-headers/dirent.texi: Update.
* modules/* (Depends-on): Update.
* modules/dirent: New file.
2024-12-27 Bruno Haible <bruno@clisp.org>
Rename module arpa_inet to arpa_inet-h.
* modules/arpa_inet-h: Renamed from modules/arpa_inet.
* modules/arpa_inet-h-tests: Renamed from modules/arpa_inet-tests.
* modules/arpa_inet-h-c++-tests: Renamed from
modules/arpa_inet-c++-tests.
* tests/test-arpa_inet-h.c: Renamed from tests/test-arpa_inet.c.
* tests/test-arpa_inet-h-c++.cc: Renamed from
tests/test-arpa_inet-c++.cc.
* doc/posix-headers/arpa_inet.texi: Update.
* modules/* (Depends-on): Update.
* modules/arpa_inet: New file.
2024-12-27 Simon Josefsson <simon@josefsson.org>
git-version-gen: Support git-archive tarballs.
* build-aux/git-version-gen: Use .tarball-version-git as final guess.
2024-12-27 Bruno Haible <bruno@clisp.org>
Document the ieee754-h module better.
* doc/glibc-headers/ieee754.texi: Mention the module ieee754-h. Give an
example of a platform without IEEE floating-point numbers.
2024-12-27 Bruno Haible <bruno@clisp.org>
Document the libunistring modules.
* doc/libunistring.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2024-12-27 Bruno Haible <bruno@clisp.org>
doc: Improve an external reference.
* doc/zprintf.texi: For an external reference, use @url when not
producing an info file.
2024-12-26 Simon Josefsson <simon@josefsson.org>
gitlog-to-changelog: Handle srcdir!=builddir builds.
* doc/gitlog-to-changelog.texi (dist-hook): Use --srcdir.
2024-12-26 Bruno Haible <bruno@clisp.org>
doc: Document the *-ieee modules.
* doc/posix-functions/cbrt.texi: Mention the cbrt-ieee module.
* doc/posix-functions/cbrtf.texi: Mention the cbrtf-ieee module.
* doc/posix-functions/exp.texi: Mention the exp-ieee module.
* doc/posix-functions/exp2.texi: Mention the exp2-ieee module.
* doc/posix-functions/exp2f.texi: Mention the exp2f-ieee module.
* doc/posix-functions/expf.texi: Mention the expf-ieee module.
* doc/posix-functions/expl.texi: Mention the expl-ieee module.
* doc/posix-functions/expm1l.texi: Mention the expm1l-ieee module.
* doc/posix-functions/fabs.texi: Mention the fabs-ieee module.
* doc/posix-functions/fabsf.texi: Mention the fabsf-ieee module.
* doc/posix-functions/fabsl.texi: Mention the fabsl-ieee module.
* doc/posix-functions/fma.texi: Mention the fma-ieee module.
* doc/posix-functions/fmaf.texi: Mention the fmaf-ieee module.
* doc/posix-functions/fmal.texi: Mention the fmal-ieee module.
* doc/posix-functions/frexp.texi: Mention the frexp-ieee module.
* doc/posix-functions/frexpf.texi: Mention the frexpf-ieee module.
* doc/posix-functions/frexpl.texi: Mention the frexpl-ieee module.
* doc/posix-functions/ldexp.texi: Mention the ldexp-ieee module.
* doc/posix-functions/ldexpf.texi: Mention the ldexpf-ieee module.
* doc/posix-functions/ldexpl.texi: Mention the ldexpl-ieee module.
* doc/posix-functions/log10l.texi: Mention the log10l-ieee module.
* doc/posix-functions/log2l.texi: Mention the log2l-ieee module.
* doc/posix-functions/logb.texi: Mention the logb-ieee module.
* doc/posix-functions/logbf.texi: Mention the logbf-ieee module.
* doc/posix-functions/logbl.texi: Mention the logbl-ieee module.
* doc/posix-functions/logl.texi: Mention the logl-ieee module.
* doc/posix-functions/rint.texi: Mention the rint-ieee module.
* doc/posix-functions/rintf.texi: Mention the rintf-ieee module.
* doc/posix-functions/rintl.texi: Mention the rintl-ieee module.
* doc/posix-functions/sqrt.texi: Mention the sqrt-ieee module.
* doc/posix-functions/sqrtf.texi: Mention the sqrtf-ieee module.
* doc/posix-functions/sqrtl.texi: Mention the sqrtl-ieee module.
2024-12-25 Bruno Haible <bruno@clisp.org>
Document the *zprintf functions.
* doc/zprintf.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2024-12-25 Bruno Haible <bruno@clisp.org>
xprintf, xprintf-posix, xprintf-gnu: Use *zprintf.
* lib/xprintf.h (xprintf, xvprintf, xfprintf, xvfprintf): Change return
type to off64_t. Move documentation from xprintf.c to here. Mention
EOVERFLOW as another possible error unrelated to file I/O.
* lib/xprintf.c (xprintf): Change return type to off64_t.
(xvprintf): Likewise. Use vzprintf.
(xfprintf): Change return type to off64_t.
(xvfprintf): Likewise. Use vfzprintf.
* modules/xprintf (Description): Mention also fprintf. Mention EOVERFLOW
as another possible error unrelated to file I/O.
(Depends-on): Add vzprintf, vfzprintf.
* modules/xprintf-posix (Description): Mention also fprintf. Mention
EOVERFLOW as another possible error unrelated to file I/O.
(Depends-on): Add vzprintf-posix, vfzprintf-posix. Remove vprintf-posix,
vfprintf-posix.
* modules/xprintf-gnu (Description): Mention also fprintf. Mention
EOVERFLOW as another possible error unrelated to file I/O.
(Depends-on): Add vzprintf-gnu, vfzprintf-gnu. Remove vprintf-gnu,
vfprintf-gnu.
* tests/test-xprintf-posix.c (RETTYPE): Change to off64_t.
* tests/test-xfprintf-posix.c (RETTYPE): Likewise.
* NEWS: Document the change.
2024-12-25 Bruno Haible <bruno@clisp.org>
stdlib: Improve change from 2024-12-23.
* m4/stdlib_h.m4 (gl_STDLIB_H): Improve indentation.
2024-12-24 Bruno Haible <bruno@clisp.org>
access, euidaccess tests: Avoid test failure in Cygwin 3.5.5.
* tests/test-access.h [__CYGWIN__]: Include <grp.h>, <string.h>,
<unistd.h>.
(is_administrator): New function.
(is_root): New macro.
(test_access): Reenable F_OK test for non-administrators on Cygwin.
Disable X_OK test for administrators on Cygwin.
2024-12-24 Bruno Haible <bruno@clisp.org>
localename-unsafe: Improve the Windows UTF-8 environment support.
Reported by Lasse Collin <lasse.collin@tukaani.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00165.html>.
* lib/localename-unsafe.c (gl_locale_name_from_win32_LANGID): In locale
names with a modifier, insert the codeset part ".UTF-8" before the
modifier.
2024-12-24 Paul Eggert <eggert@cs.ucla.edu>
stdlib: support including stdlib.h from config.h
Emacs <config.h> includes <stdlib.h> in some situations, causing
problems on macOS as described by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2024-12/msg00923.html
Although this usage is not recommended, it is easier to support
it for POSIX-required headers, than to fix Emacs.
* doc/extern-inline.texi (extern inline): Document the Emacs problem.
* lib/endian.c, lib/math.c, lib/stdbit.c, lib/stdlib.c:
* lib/sys_socket.c, lib/unistd.c, lib/wctype-h.c:
Define #define _GL_..._INLINE to _GL_EXTERN_INLINE
before including <config.h>, not merely before including
the .h file that defines the inline function.
2024-12-24 Bruno Haible <bruno@clisp.org>
setlocale: Fix a buffer overflow check (mistake in yesterday's commit).
* lib/setlocale.c (setlocale_unixlike): Update buffer overflow check.
2024-12-24 Bruno Haible <bruno@clisp.org>
doc: Document mingw with MSVCRT vs. mingw with UCRT.
* doc/posix-functions/btowc.texi: Add more details regarding mingw.
* doc/posix-functions/fopen.texi: Likewise.
* doc/posix-functions/mbrtowc.texi: Likewise.
* doc/posix-functions/mbsinit.texi: Likewise.
* doc/posix-functions/modf.texi: Likewise.
* doc/posix-functions/modff.texi: Likewise.
* doc/posix-functions/round.texi: Likewise.
* doc/posix-functions/roundf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/timespec_get.texi: Likewise.
* doc/posix-functions/wcrtomb.texi: Likewise.
2024-12-24 Bruno Haible <bruno@clisp.org>
wchar: Support several gnulib-tool invocations better.
* lib/wchar.in.h (_GL_ALREADY_INCLUDING_WCHAR_H): Rename to a macro that
depends on GUARD_PREFIX.
(mbszero): Avoid duplicate definition.
2024-12-24 Bruno Haible <bruno@clisp.org>
threads-h: Support several gnulib-tool invocations better.
* lib/threads.in.h (_GL_ALREADY_INCLUDING_THREADS_H): Rename to a macro
that depends on GUARD_PREFIX.
(struct thrd_with_exitcode): Avoid duplicate definition.
2024-12-24 Bruno Haible <bruno@clisp.org>
sys_socket: Support several gnulib-tool invocations better.
* lib/sys_socket.in.h (_GL_ALREADY_INCLUDING_SYS_SOCKET_H): Rename to a
macro that depends on GUARD_PREFIX.
(struct msghdr): Avoid duplicate definition.
2024-12-24 Bruno Haible <bruno@clisp.org>
string: Support several gnulib-tool invocations better.
* lib/string.in.h (_GL_ALREADY_INCLUDING_STRING_H): Rename to a macro
that depends on GUARD_PREFIX.
2024-12-24 Bruno Haible <bruno@clisp.org>
stdio: Support several gnulib-tool invocations better.
* lib/stdio.in.h: Test _GL_SKIP_GNULIB_STDIO_H.
(_GL_ALREADY_INCLUDING_STDIO_H): Rename to a macro that depends on
GUARD_PREFIX.
* lib/fopen.c: Set _GL_SKIP_GNULIB_STDIO_H instead of
_GL_ALREADY_INCLUDING_STDIO_H.
* lib/freopen.c: Likewise.
2024-12-24 Bruno Haible <bruno@clisp.org>
spawn: Support several gnulib-tool invocations better.
* lib/spawn.in.h (_GL_ALREADY_INCLUDING_SPAWN_H): Rename to a macro that
depends on GUARD_PREFIX.
2024-12-24 Bruno Haible <bruno@clisp.org>
signal-h: Support several gnulib-tool invocations better.
* lib/signal.in.h (_GL_ALREADY_INCLUDING_SIGNAL_H): Rename to a macro
that depends on GUARD_PREFIX.
2024-12-24 Bruno Haible <bruno@clisp.org>
pthread-h: Support several gnulib-tool invocations better.
* lib/pthread.in.h (_GL_ALREADY_INCLUDING_PTHREAD_H): Rename to a macro
that depends on GUARD_PREFIX.
2024-12-24 Bruno Haible <bruno@clisp.org>
malloc-h: Support several gnulib-tool invocations better.
* lib/malloc.in.h (_GL_ALREADY_INCLUDING_MALLOC_H): Rename to a macro
that depends on GUARD_PREFIX.
2024-12-24 Bruno Haible <bruno@clisp.org>
locale: Support several gnulib-tool invocations better.
* lib/locale.in.h (_GL_ALREADY_INCLUDING_LOCALE_H): Rename to a macro
that depends on GUARD_PREFIX.
(struct lconv): Avoid duplicate definition.
2024-12-24 Bruno Haible <bruno@clisp.org>
limits-h: Support several gnulib-tool invocations better.
* lib/limits.in.h (_GL_ALREADY_INCLUDING_LIMITS_H): Rename to a macro
that depends on GUARD_PREFIX.
2024-12-23 Paul Eggert <eggert@cs.ucla.edu>
stdlib: fix MB_CUR_MAX on older Android
Android NDK r16 MB_CUR_MAX doesn’t link when compiling C.
Problem found in GNU Emacs, which worked around it this way:
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=39a7e6b79fdeafc539a36f6831d922a2622cb679
... but this ran afoul of the recent Gnulib change that
added lib/stdlib.c.
* lib/stdlib.in.h (gl_MB_CUR_MAX): If @REPLACE_MB_CUR_MAX@
is positive, use its value directly.
* m4/stdlib_h.m4 (gl_STDLIB_H): Set REPLACE_MB_CUR_MAX to (-1)
if the Solaris bug, and to 4 if the Android bug. Use AS_CASE
so that Emacs can navigate this code better.
* tests/test-stdlib.c (main): Check that MB_CUR_MAX compiles
and is nonzero.
stdlib: MB_CUR_MAX is type size_t
* lib/stdlib.in.h (gl_MB_CUR_MAX): Return size_t, not int,
to conform to POSIX.
2024-12-23 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Test in the UTF-8 environment on native Windows.
* tests/test-mbrtowc-w32utf8.sh: New file.
* tests/test-mbrtowc-w32utf8.c: New file.
* modules/mbrtowc-tests (Files): Add these files and
m4/windows-rc.m4, tests/windows-utf8.rc, tests/windows-utf8.manifest.
(Depends-on): Add test-xfail.
(configure.ac): Invoke gl_WINDOWS_RC.
(Makefile.am): Arrange to compile test-mbrtowc-w32utf8 and run
test-mbrtowc-w32utf8.sh.
2024-12-23 Bruno Haible <bruno@clisp.org>
setlocale tests: Test in the UTF-8 environment on native Windows.
* tests/test-setlocale-w32utf8.sh: New file.
* tests/test-setlocale-w32utf8.c: New file.
* modules/setlocale-tests (Files): Add these files and
m4/windows-rc.m4, tests/windows-utf8.rc, tests/windows-utf8.manifest.
(Depends-on): Add test-xfail.
(configure.ac): Invoke gl_WINDOWS_RC.
(Makefile.am): Arrange to compile test-setlocale-w32utf8 and run
test-setlocale-w32utf8.sh.
setlocale: Support the UTF-8 environment on native Windows.
* lib/setlocale.c: Include <windows.h>.
(setlocale_unixlike): In the UTF-8 environment, append a suffix ".65001"
to the locale names passed to the native setlocale().
2024-12-23 Bruno Haible <bruno@clisp.org>
localename tests: Test in the UTF-8 environment on native Windows.
* tests/test-localename-w32utf8.sh: New file.
* tests/test-localename-w32utf8.c: New file.
* modules/localename-tests (Files): Add these files and
m4/windows-rc.m4, tests/windows-utf8.rc, tests/windows-utf8.manifest.
(Depends-on): Add test-xfail.
(configure.ac): Invoke gl_WINDOWS_RC.
(Makefile.am): Arrange to compile test-localename-w32utf8 and run
test-localename-w32utf8.sh.
localename-unsafe: Support the UTF-8 environment on native Windows.
* lib/localename-unsafe.c (gl_locale_name_from_win32_LANGID): Append a
suffix ".UTF-8" to the result if GetACP() is UTF-8.
2024-12-23 Bruno Haible <bruno@clisp.org>
localcharset tests: Test in the UTF-8 environment on native Windows.
* m4/windows-rc.m4: New file.
* tests/test-localcharset-w32utf8.sh: New file.
* tests/test-localcharset-w32utf8.c: New file.
* tests/windows-utf8.rc: New file.
* tests/windows-utf8.manifest: New file.
* modules/localcharset-tests (Files): Add these files.
(Depends-on): Add test-xfail.
(configure.ac): Invoke gl_WINDOWS_RC.
(Makefile.am): Arrange to compile test-localcharset-w32utf8 and run
test-localcharset-w32utf8.sh.
localcharset: Support the UTF-8 environment on native Windows.
* lib/localcharset.c (locale_charset): Recognize also the special case
of a setlocale() result that ends in ".UTF-8".
2024-12-23 Bruno Haible <bruno@clisp.org>
setlocale tests: Add unit test for LC_MESSAGES handling.
* tests/test-setlocale-w32.c: New file.
* modules/setlocale-tests (Files): Add it.
(Makefile.am): Arrange to compile and run test-setlocale-w32.
setlocale: Handle LC_MESSAGES correctly on native Windows.
* lib/setlocale.c (setlocale_improved): Revamp the LC_ALL case if
LC_MESSAGES is 1729.
2024-12-22 Bruno Haible <bruno@clisp.org>
c32isprint tests: Avoid test failure on mingw/ucrt.
* tests/test-c32isprint.c (main): Disable test that fails on mingw/ucrt.
2024-12-22 Bruno Haible <bruno@clisp.org>
btowc: Fix declaration on mingw/ucrt.
* m4/btowc.m4 (gl_FUNC_BTOWC): Require gt_TYPE_WINT_T. If gnulib
overrides wint_t, set REPLACE_BTOWC to 1.
2024-12-22 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addchdir tests: Avoid test failure on MSYS2.
* tests/test-posix_spawn-chdir.c (test): Recognize also the 'pwd' output
for root on MSYS2.
2024-12-22 Bruno Haible <bruno@clisp.org>
test-framework-sh: Avoid test suite failures on MSYS2.
* tests/init.sh (compare_) [MSys]: Use a temporary file on MSYS2.
* tests/test-update-copyright.sh: Use the test framework.
(compare): Remove function.
* modules/update-copyright-tests (Depends-on): Add test-framework-sh.
2024-12-22 Bruno Haible <bruno@clisp.org>
test-framework-sh: Avoid test suite failures on MSYS2.
* tests/init.sh (mkdir) [MSys]: New function.
2024-12-22 Bruno Haible <bruno@clisp.org>
execl, execle, execlp: Fix compilation error with gcc 14.
* lib/execl.c (execl): Cast second argument of execv.
* lib/execle.c (execle): Cast second argument of execve.
* lib/execlp.c (execlp): Cast second argument of execvp.
2024-12-21 Bruno Haible <bruno@clisp.org>
crc-x86_64: Fix compilation error with clang in a simpler way.
Suggested by Collin Funk.
* modules/crc-x86_64 (Makefile.am): Revert last change.
* lib/crc-x86_64-pclmul.c: Normalize includes.
(crc32_update_no_xor_pclmul): Use __attribute__ ((__target (...))).
* m4/crc-x86_64.m4 (gl_CRC_X86_64_PCLMUL): Use
__attribute__ ((__target (...))) here as well. Don't use modified
CFLAGS.
crc-x86_64: Fix compilation error with clang.
* modules/crc-x86_64 (Makefile.am): Declare a separate library
libpclmul.{a,la}.
* lib/crc-x86_64-pclmul.c: Remove the GCC pragmas.
gnulib-tool: Recognize @LT@, @la@, @lo@ tokens in module descriptions.
* gnulib-tool.sh (func_emit_lib_Makefile_am): Replace @LT@, @la@, @lo@
tokens.
(func_emit_tests_Makefile_am): Likewise.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Likewise.
(GLEmiter.tests_Makefile_am): Likewise.
2024-12-20 Bruno Haible <bruno@clisp.org>
stdint: Detect MSVC __typeof__ support.
* m4/stdint.m4 (gl_STDINT_H): Copy condition from lib/stdbit.in.h.
2024-12-19 Collin Funk <collin.funk1@gmail.com>
intprops: Detect MSVC __typeof__ support.
* lib/intprops-internal.h (_GL_HAVE___TYPEOF__): Copy condition from
lib/stdbit.in.h.
stdbit-h: Detect MSVC __typeof__ support.
* lib/stdbit.in.h (_GL_STDBIT_TYPEOF_CAST): Use __typeof__ on Visual
Studio 2022 version 17.9 and later.
2024-12-18 Pádraig Brady <P@draigBrady.com>
crc-x86_64: fix build failure due to indentation
* modules/crc-x86_64: Remove indentation on lib_SOURCES,
so that it's transformed correctly to lib_libcoreutils_a_SOURCES.
2024-12-17 Bruno Haible <bruno@clisp.org>
crc-x86_64: Tweaks.
* modules/crc-x86_64 (Include): Fix the file name.
* m4/crc-x86_64.m4 (gl_CRC_X86_64_PCLMUL): Improve indentation.
2024-12-17 Bruno Haible <bruno@clisp.org>
xstdopen: Improve error message.
* lib/xstdopen.c (xstdopen): Improve error message. Ignore the errno
value.
2024-12-16 Sam Russell <sam.h.russell@gmail.com>
crc: Add PCLMUL implementation
* lib/crc-x86_64-pclmul.c: Implement CRC32 with PCLMUL intrinsics.
* lib/crc-x86_64.h: Add header for CRC32 with PCLMUL instrinsics.
* lib/crc.c: Use PCLMUL implementation if available.
* m4/crc-x86_64.m4: Detect PCLMUL and build accordingly.
* modules/crc-x86_64: New module for crc-x86_64.
2024-12-12 Paul Eggert <eggert@cs.ucla.edu>
atexit: document z/OS bug
* doc/posix-functions/atexit.texi: Mention z/OS issue
raised by Sachin <https://bugs.gnu.org/74788>.
2024-12-12 Bruno Haible <bruno@clisp.org>
bcp47: Silence a gcc 14 -Wanalyzer-infinite-loop warning.
* lib/bcp47.c: Include <stdlib.h>.
(bcp47_to_xpg): Verify an invariant through an abort().
2024-12-11 Paul Eggert <eggert@cs.ucla.edu>
doc: isdigit and isxdigit are locale-independent
* doc/posix-functions/isdigit.texi:
* doc/posix-functions/isxdigit.texi:
Document that mingw and MSVC do not conform to the C standard,
which says that isdigit and isxdigit are independent of locale.
Issue pointed out by Florian Weimer in:
https://sourceware.org/pipermail/libc-alpha/2024-December/162362.html
doc: document non-translation
* doc/gnulib-tool.texi (Localization):
Say what to do if you don’t want translations.
2024-12-10 Bruno Haible <bruno@clisp.org>
openat-die: Fix a gcc -Wformat -Wformat-security warning.
* lib/openat-die.c (openat_save_fail, openat_restore_fail): Put the
internationalized error message into non-format-string position.
2024-05-12 Simon Josefsson <simon@josefsson.org>
announce-gen: Mention git commit and tag in announcement.
* build-aux/announce-gen (this_commit_hash): New variable.
(main): Print git commit hash and tag.
(main): Put git-log info near git and NEWS info.
2024-12-10 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Pass on $(announce_gen_args) to announce-gen.
* top/maint.mk (announce_gen_args): New variable, for cfg.mk use.
(announcement): Use it.
2024-12-09 Bruno Haible <bruno@clisp.org>
xstrtol-error: Use the translation domain "gnulib".
* lib/xstrtol-error.c (_): New macro.
(xstrtol_error): Use dgettext() instead of gettext().
* modules/xstrtol-error (Depends-on): Add gnulib-i18n.
xprintf: Use the translation domain "gnulib".
* lib/xprintf.c (_): New macro.
(xvprintf, xvfprintf): Use it instead of gettext().
* modules/xprintf (Depends-on): Add gnulib-i18n.
unicodeio: Use the translation domain "gnulib".
* lib/unicodeio.h (unicode_to_mb): Clarify that the message passed to
the failure callback may already be localized.
* lib/unicodeio.c (unicode_to_mb): For the messages defined in this
file, use the translation domain "gnulib".
file-type: Use the translation domain "gnulib".
* lib/file-type.c (file_type): Use the translation domain "gnulib".
* modules/file-type (Depends-on): Add gnulib-i18n.
argmatch: Use the translation domain "gnulib".
* lib/argmatch.h (ARGMATCH_DEFINE_GROUP): Use translation domain
"gnulib" for the literal string here.
2024-12-09 Bruno Haible <bruno@clisp.org>
Localizations: Fix omissions from the POT file.
Reported by Benno Schulenberg.
* po/Makefile ($(DOMAIN).pot): Remove the file pre-filtering; just pass
all source files to xgettext.
* po/Makevars (XGETTEXT_OPTIONS): Recognize gettext_noop as a keyword.
2024-12-09 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix test failures (regression 2024-12-06).
* gnulib-tool.sh (func_import): Try both remove-potcdate.sin and
remove-potcdate.sed, whichever exists.
* pygnulib/GLImport.py (GLImport.execute): Likewise.
2024-12-09 Paul Eggert <eggert@cs.ucla.edu>
gnupload: mention GPG_TTY
* build-aux/gnupload (usage): Mention GPG_TTY and gpg-agent.
2024-12-09 Bruno Haible <bruno@clisp.org>
quotearg tests: Fix test failure (regression yesterday).
* tests/testlocale/fr/LC_MESSAGES/gnulib.po: Renamed from
tests/testlocale/fr/LC_MESSAGES/test-quotearg.po.
* tests/testlocale/fr/LC_MESSAGES/gnulib.mo: Renamed from
tests/testlocale/fr/LC_MESSAGES/test-quotearg.mo.
* tests/test-quotearg.c (main): Use bindtextdomain for the domain
"gnulib", not "test-quotearg".
* tests/test-quotearg.sh: Fix typo in comments.
* modules/quotearg-tests (Files): Update.
2024-12-08 Bruno Haible <bruno@clisp.org>
Document the new approach for gnulib localization.
* doc/gnulib-tool.texi (Localization): Recommend to use the gnulib-l10n
package. Deprecate the two previous approaches.
* gnulib-tool.sh (func_usage): Deprecate the --po-base and --po-domain
options.
* pygnulib/GLInfo.py (GLInfo.usage): Likewise.
Use the translation domain "gnulib".
* lib/argmatch.c (_): Use translation domain "gnulib".
* lib/bitset/stats.c (_): Likewise.
* lib/c-stack.c (_): Likewise.
* lib/clean-temp.c (_): Likewise.
* lib/clean-temp-simple.c (_): Likewise.
* lib/closein.c (_): Likewise.
* lib/closeout.c (_): Likewise.
* lib/copy-acl.c (_): Likewise.
* lib/copy-file.c (_): Likewise.
* lib/csharpcomp.c (_): Likewise.
* lib/csharpexec.c (_): Likewise.
* lib/cygpath.c (_): Likewise.
* lib/dfa.c (_): Likewise.
* lib/error.c (_): Likewise.
* lib/execute.c (_): Likewise.
* lib/gai_strerror.c (_): Likewise.
* lib/getaddrinfo.c (_): Likewise.
* lib/getopt.c (_): Likewise.
* lib/javacomp.c (_): Likewise.
* lib/javaexec.c (_): Likewise.
* lib/javaversion.c (_): Likewise.
* lib/mkdir-p.c (_): Likewise.
* lib/obstack.c (_) [!_LIBC]: Likewise.
* lib/openat-die.c (_): Likewise.
* lib/os2-spawn.c (_): Likewise.
* lib/pagealign_alloc.c (_): Likewise.
* lib/parse-datetime.y (_): Likewise.
* lib/pipe-filter-gi.c (_): Likewise.
* lib/pipe-filter-ii.c (_): Likewise.
* lib/quotearg.c (_): Likewise.
* lib/regex_internal.h (gettext): Likewise.
* lib/rpmatch.c (_): Likewise.
* lib/set-acl.c (_): Likewise.
* lib/sigpipe-die.c (_): Likewise.
* lib/spawn-pipe.c (_): Likewise.
* lib/strsignal.c (_) [!_LIBC]: Likewise.
* lib/timevar.c (_): Likewise.
* lib/unicodeio.c (_): Likewise.
* lib/userspec.c (_): Likewise.
* lib/version-etc.c (_): Likewise.
* lib/wait-process.c (_): Likewise.
* lib/xalloc-die.c (_): Likewise.
* lib/xbinary-io.c (_): Likewise.
* lib/xfreopen.c (_): Likewise.
* lib/xmemcoll.c (_): Likewise.
* lib/xsetenv.c (_): Likewise.
* lib/xstdopen.c (_): Likewise.
* lib/xstrerror.c (_): Likewise.
* modules/acl (Depends-on): Add gnulib-i18n.
* modules/argmatch (Depends-on): Likewise.
* modules/bitset (Depends-on): Likewise.
* modules/c-stack (Depends-on): Likewise.
* modules/clean-temp (Depends-on): Likewise.
* modules/clean-temp-simple (Depends-on): Likewise.
* modules/closein (Depends-on): Likewise.
* modules/closeout (Depends-on): Likewise.
* modules/copy-file (Depends-on): Likewise.
* modules/csharpcomp (Depends-on): Likewise.
* modules/csharpexec (Depends-on): Likewise.
* modules/cygpath (Depends-on): Likewise.
* modules/dfa (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise.
* modules/getaddrinfo (Depends-on): Likewise.
* modules/getopt-posix (Depends-on): Likewise.
* modules/javacomp (Depends-on): Likewise.
* modules/javaexec (Depends-on): Likewise.
* modules/javaversion (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/obstack (Depends-on): Likewise.
* modules/openat-die (Depends-on): Likewise.
* modules/pagealign_alloc (Depends-on): Likewise.
* modules/parse-datetime (Depends-on): Likewise.
* modules/pipe-filter-gi (Depends-on): Likewise.
* modules/pipe-filter-ii (Depends-on): Likewise.
* modules/quotearg (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/rpmatch (Depends-on): Likewise.
* modules/sigpipe-die (Depends-on): Likewise.
* modules/spawn-pipe (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/timevar (Depends-on): Likewise.
* modules/unicodeio (Depends-on): Likewise.
* modules/userspec (Depends-on): Likewise.
* modules/version-etc (Depends-on): Likewise.
* modules/wait-process (Depends-on): Likewise.
* modules/xalloc-die (Depends-on): Likewise.
* modules/xbinary-io (Depends-on): Likewise.
* modules/xfreopen (Depends-on): Likewise.
* modules/xmemcoll (Depends-on): Likewise.
* modules/xsetenv (Depends-on): Likewise.
* modules/xstdopen (Depends-on): Likewise.
* modules/xstrerror (Depends-on): Likewise.
gnulib-i18n: New module.
* m4/gnulib-i18n.m4: New file, based on m4/bison-i18n.m4.
* modules/gnulib-i18n: New file.
Add infrastructure for handling gnulib localizations.
* po/Makefile: New file.
* po/Makevars: New file, based on the template from GNU gettext.
* gnulib-l10n/README: New file.
* gnulib-l10n/configure.ac: New file.
* gnulib-l10n/Makefile.am: New file.
* gnulib-l10n/m4/Makefile.am: New file.
* gnulib-l10n/autogen.sh: New file.
* gnulib-l10n/autoclean.sh: New file.
* Makefile (gnulib.pot, gnulib-tp-snapshot, gnulib-l10n-release): New
targets.
2024-12-08 Bruno Haible <bruno@clisp.org>
bison-i18n: Improve usability.
* modules/bison-i18n (Depends-on): Remove 'gettext'.
* m4/bison-i18n.m4 (BISON_I18N): Instead of bailing out if there is no
AM_GNU_GETTEXT invocation, just warn. Define BISON_LOCALEDIR also in
config.h, removing the need to do it in the Makefile.
2024-12-08 Bruno Haible <bruno@clisp.org>
Update dependencies of modules that include "gettext.h".
* modules/closein (Depends-on): Add gettext-h.
* modules/dfa (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/xfreopen (Depends-on): Likewise.
* modules/xstrerror (Depends-on): Likewise.
2024-12-07 Bruno Haible <bruno@clisp.org>
Update COPYING file.
* COPYING: Remove statements that are not true any more since
2021-06-04.
2024-12-06 Bruno Haible <bruno@clisp.org>
signbit: Fix compilation error with g++ 5.5 on Solaris 10.
Reported by G. Branden Robinson <g.branden.robinson@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00180.html>.
* lib/math.in.h (signbit): In C++ 11 or newer, assume that <math.h> or
<cmath> may define signbit through three inline functions.
2024-12-06 Bruno Haible <bruno@clisp.org>
Update build-aux/po/Makefile.in.in.
Reported by Assaf Gordon in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00045.html>
and by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00020.html>.
* build-aux/po/Makefile.in.in: Sync from GNU gettext 0.23.
Fixes:
- Don't fail when 'make' is used with option -j.
- Pass the option --quiet to 'msgmerge'.
- Simplify by assuming that 'sed' groks comments.
* build-aux/po/remove-potcdate.sed: Renamed from
build-aux/po/remove-potcdate.sin.
* doc/gnulib.texi (Developer tools): Update file list.
* gnulib-tool.sh (func_import): Copy remove-potcdate.sed instead of
remove-potcdate.sin.
* pygnulib/GLImport.py (GLImport.execute): Likewise.
2024-12-05 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix invalid use of cache.
* pygnulib/GLModuleSystem.py (GLModule._getDependents): Make the modules
argument mandatory. Don't store the result in self.cache.
gnulib-tool.py: Refactor.
* pygnulib/GLModuleSystem.py (GLModuleSystem.getAllModules): Moved here
from GLModule._getAllModules. No need to eliminate empty module names.
(GLModule._getDependents, GLModule.getDependentsRecursively): Update.
gnulib-tool.py: Remove dead code.
* pygnulib/GLModuleSystem.py (GLModule.getDependents): Remove top_level
parameter. Use the cached value if present.
* pygnulib/main.py: Update accordingly.
2024-12-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make --extract-dependents quick again.
Suggested by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-12/msg00012.html>.
* pygnulib/GLModuleSystem.py (GLModule.getDependents): Add an optional
argument to use the implementation before yesterdays change.
* pygnulib/main.py (mode == 'extract-dependents'): Add the optional
argument to call of GLModule.getDependents.
2024-12-04 Bruno Haible <bruno@clisp.org>
bison-i18n: Ensure BISON_LOCALEDIR_c expands to a C string.
Reported by Holger Hoffstätte via Sam James <sam@gentoo.org>.
* m4/bison-i18n.m4 (BISON_I18N): Define BISON_LOCALEDIR_c and
BISON_LOCALEDIR_c_make in the usual way even when BISON_LOCALEDIR
expands to empty.
2024-12-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Optimize --extract-recursive-dependents.
* pygnulib/GLModuleSystem.py (GLModuleSystem.list): Add optional
argument to include test modules.
(GLModule._getDependents) New function.
(GLModule.getDependents): Use it.
(GLModule.getDependentsRecursively): Likewise.
(GLModule._getAllModules): New function.
2024-12-03 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Silence gcc 14 warning.
* lib/strerror_r.c (strerror_r): Silence -Wformat-truncation warning.
2024-12-02 Bruno Haible <bruno@clisp.org>
gettext: Sync with gettext 0.23.
* m4/gettext.m4: Update from current gettext git.
* m4/po.m4: Likewise.
2024-12-02 Bruno Haible <bruno@clisp.org>
announce-gen: Add option --cksum-checksums.
* build-aux/announce-gen: Accept option --cksum-checksums.
(usage): Document option --cksum-checksums.
(print_checksums): Add prefer_cksum parameter.
2024-12-01 Bruno Haible <bruno@clisp.org>
announce-gen: Show an SHA256 sum that can be verified more easily.
* build-aux/announce-gen (print_checksums): Output SHA256 sum in hex,
instead of base64 wrapped.
2024-12-01 Bruno Haible <bruno@clisp.org>
announce-gen: Fix bug when accessing symlinks.
* build-aux/announce-gen (sizes): Pass the option -L to 'du'.
2024-11-26 Bruno Haible <bruno@clisp.org>
fpurge: Improve configure test.
Reported by Eli Schwartz <eschwartz@gentoo.org>.
* m4/fpurge.m4 (gl_FUNC_FPURGE): If fpurge is not declared, don't test
whether it works. Remove now-redundant cross-compilation guess.
2024-11-25 Simon Josefsson <simon@josefsson.org>
bootstrap: avoid sc_prohibit_undesirable_word_seq failure
* top/bootstrap-funclib.sh: s/can not/cannot/
* build-aux/bootstrap: Regenerated.
2024-11-24 Collin Funk <collin.funk1@gmail.com>
doc: Add missing module index.
Reported by Bruno Haible <bruno@clisp.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00193.html>.
* doc/glibc-functions/glob_pattern_p.texi (glob_pattern_p): Add module
index.
2024-11-24 Bruno Haible <bruno@clisp.org>
gettext-h: Add tests.
Suggested by Ben Pfaff <blp@cs.stanford.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00186.html>.
* tests/test-gettext-h.c: New file.
* modules/gettext-h-tests: New file.
gettext-h: Fix compilation error when pgettext is used.
Reported by Friedrich Beckmann <friedrich.beckmann@posteo.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00189.html>.
* lib/gettext.h: Include <locale.h>.
2024-11-23 Collin Funk <collin.funk1@gmail.com>
doc: Document that glob includes glob_pattern_p.
* doc/glibc-functions/glob_pattern_p.texi (glob_pattern_p): Document
that the glob module includes the glob_pattern_p function.
2024-11-20 Paul Eggert <eggert@cs.ucla.edu>
openat: don’t close (-1)
* lib/openat.c (openat_permissive): Don’t close (-1), as some
debugging systems dislike that. Clarify errno handling a bit.
tests: omit MEMCHR etc as no longer needed
* tests/test-memchr.c (MEMCHR):
* tests/test-memchr2.c (MEMCHR2):
* tests/test-memrchr.c (MEMRCHR):
* tests/test-rawmemchr.c (RAWMEMCHR):
Remove these macros, as the code never adds to their results.
All uses replaced by original functions.
tests: dissuade unwanted clang optimization
Pacify Apple clang 14.0.0 (clang-1400.0.29.202) for
arm64-apple-darwin21.6.0 on test-memset_explicit.c,
which otherwise complains “warning: null passed to a callee that
requires a non-null argument [-Wnonnull]” and presumably could
do an unwanted optimization based on this analysis.
Do other tests consistently.
* tests/test-bsearch.c (lib_bsearch, volatile_bsearch, bsearch):
* tests/test-memccpy.c (lib_memccpy, volatile_memccpy, memccpy):
* tests/test-memchr.c (lib_memchr, volatile_memchr, memchr)
* tests/test-memcmp.c (lib_memcmp, volatile_memcmp, memcmp):
* tests/test-memcpy.c (lib_memcpy, volatile_memcpy, memcpy):
* tests/test-memmove.c (lib_memmove, volatile_memmove, memmove):
* tests/test-memset.c (lib_memset, volatile_memset, memset):
* tests/test-memset_explicit.c (lib_memset_explicit)
(volatile_memset_explicit, memset_explicit):
* tests/test-qsort.c (lib_qsort, volatile_qsort, qsort):
* tests/test-strncat.c (lib_strncat, volatile_strncat, strncat):
* tests/test-strncmp.c (lib_strncmp, volatile_strncmp, strncmp):
* tests/test-strncpy.c (lib_strncpy, volatile_strncpy, strncpy):
* tests/test-strndup.c (lib_strndup, volatile_strndup, strndup):
* tests/test-wcsncat.c (lib_wcsncat, volatile_wcsncat, wcsncat):
* tests/test-wcsncmp.c (lib_wcsncmp, volatile_wcsncmp, wcsncmp):
* tests/test-wcsncpy.c (lib_wcsncpy, volatile_wcsncpy, wcsncpy):
* tests/test-wmemchr.c (lib_wmemchr, volatile_wmemchr, wmemchr):
* tests/test-wmemcmp.c (lib_wmemcmp, volatile_wmemcmp, wmemcmp):
* tests/test-wmemcpy.c (lib_wmemcpy, volatile_wmemcpy, wmemcpy):
* tests/test-wmemmove.c (lib_wmemmove, volatile_wmemmove, wmemmove):
* tests/test-wmemset.c (lib_wmemset, volatile_wmemset, wmemset)
Convince the compiler to not optimize based on what it thinks
about the function. Callers changed to not use volatile locals,
since they should no longer be needed.
openat: omit unnecessary fd test
* lib/openat.c (openat_permissive): Close fd regardless
of whether it’s STDERR_FILENO. This saves a bit of code space
and there’s no point to making this unlikely path faster.
Also change a couple of != 0 to < 0 for clarity
when -1 is the only option.
openat: use C99 decls after stmts
* lib/openat.c (rpl_openat, openat_permissive):
Refactor to put decls closer to where they’re used.
openat: don’t lose track of save_cwd errno
* lib/openat.c (openat_permissive): When ‘close’ is called
after save_cwd failed, don’t lose track of save_cwd’s errno.
This fixes a recently-introduced unlikely bug.
2024-11-20 Bruno Haible <bruno@clisp.org>
c-stack: Avoid a busy-looping test on macOS.
* lib/c-stack.c: Undefine abort.
2024-11-20 Bruno Haible <bruno@clisp.org>
tests: Silence some more -Wdeprecated-declarations warnings.
* tests/test-execute-child.c: Silence warning about sprintf.
* tests/test-fstatat.c: Silence warnings about statat and lstatat.
* tests/test-statat.c: Add comment.
2024-11-19 Paul Eggert <eggert@cs.ucla.edu>
savewd: remove O_SEARCH optimization
* lib/savewd.c (savewd_save): Remove recently-added optimization
for platforms with O_SEARCH, as it does not work on macOS 12.6
due to what seems to be a bug there.
strerror, vasnprintf: pacify clang 14 on macOS
* lib/strerror.c, lib/vasnprintf.c: Pacify clang 14 on macOS 12.6.
2024-11-19 Pádraig Brady <P@draigBrady.com>
unicodeio: avoid iconv issues for most ASCII characters
* lib/unicodeio.c (print_unicode_char): Avoid unicode_to_mb()
for mose ASCII characters, to avoid iconv() issues
which were seen on macOS.
Addresses https://bugs.gnu.org/74428
2024-11-19 Bruno Haible <bruno@clisp.org>
stdlib: Adjust warning about function 'free'.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00158.html>.
* lib/stdlib.in.h (free): Talk about POSIX:2024, not future POSIX.
Recommend module 'free-posix'.
2024-11-18 Pádraig Brady <P@draigBrady.com>
maint: avoid sc_prohibit_undesirable_word_seq failure
* build-aux/bootstrap: s/can not/cannot/
2024-11-17 Paul Eggert <eggert@cs.ucla.edu>
savewd: set errnum for FINAL_STATE too
Problem reported by Grisha Levit in:
https://lists.gnu.org/r/bug-gnulib/2024-11/msg00137.html
* lib/savewd.c (savewd_finish):
Set errnum to 0 unless we were in an error state.
* lib/savewd.h (savewd_errno): Report final state errnum too.
2024-11-17 Collin Funk <collin.funk1@gmail.com>
doc: Prefer https urls where possible.
* doc/gnulib.texi (POSIXURL): Use https url.
* doc/multithread.texi: Use https instead of http where possible.
* doc/glibc-functions/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* lib/glthread/lock.c: Likewise.
* lib/hamt.h: Likewise.
* lib/localcharset.c: Likewise.
* lib/pipe2.c: Likewise.
* lib/pipe.c: Likewise.
* lib/sigsegv.c: Likewise.
* lib/sigsegv.in.h: Likewise.
* lib/sm3.c: Likewise.
* lib/sm3.h: Likewise.
* lib/sm3-stream.c: Likewise.
* lib/stackvma.c: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdnoreturn.in.h: Likewise.
* m4/getopt.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/stdalign.m4: Likewise.
* STATUS-libposix: Likewise.
* tests/test-float.c: Likewise.
* tests/test-getopt.h: Likewise.
* tests/test-setenv.c: Likewise.
* tests/test-spawn-pipe-child.c: Likewise.
* tests/test-strerror.c: Likewise.
* tests/test-strerror_r.c: Likewise.
* tests/test-unsetenv.c: Likewise.
* users.txt: Likewise.
2024-11-17 Jan Palus <jpalus@fastmail.com> (tiny change)
md5-stream, sha*-stream, sm3-stream: Avoid duplicate symbols.
* lib/md5-stream.c (GL_OPENSSL_INLINE): Remove definition, that caused
the symbols defined in md5.o to be defined in md5-stream.o as well.
* lib/sha1-stream.c (GL_OPENSSL_INLINE): Likewise.
* lib/sha256-stream.c (GL_OPENSSL_INLINE): Likewise.
* lib/sha512-stream.c (GL_OPENSSL_INLINE): Likewise.
* lib/sm3-stream.c (GL_OPENSSL_INLINE): Likewise.
2024-11-17 Paul Eggert <eggert@cs.ucla.edu>
std-gnu23: sync from Autoconf
This fixes a problem reported from Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-11/msg00145.html
* m4/std-gnu23.m4 (_AC_C_C23_TEST_MAIN): Use null_pointer.
2024-11-16 Collin Funk <collin.funk1@gmail.com>
Remove .cvsignore files.
* .cvsignore: Remove file.
* doc/.cvsignore: Likewise.
* lib/.cvsignore: Likewise.
* m4/.cvsignore: Likewise.
2024-11-16 Paul Eggert <eggert@cs.ucla.edu>
std-gnu23: don’t test stdbit.h
Although freestanding C23 compilers must support <stdbit.h>,
some current sort-of-C23 environments lack it.
We still want to use options like -std=gnu23 on such platforms.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-11/msg00141.html
* m4/std-gnu23.m4 (_AC_C_C23_TEST_GLOBALS): Do not test stdbit.h.
2024-11-16 Paul Eggert <eggert@cs.ucla.edu>
std-gnu23: pacify GCC 15
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-11/msg00140.html
* m4/std-gnu23.m4 (_AC_C_C23_TEST_GLOBALS): Add parens.
While we’re at it, use sizeof so that the expression is a
conforming integer constant expression.
2024-11-16 Bruno Haible <bruno@clisp.org>
calloc-gnu: Fix bug on 32-bit AIX (regression 2024-11-04).
* lib/stdlib.in.h (calloc): Consider _GL_USE_STDLIB_ALLOC.
* lib/calloc.c: Define _GL_USE_STDLIB_ALLOC. Don't undefine calloc.
* lib/malloc.c: Add comment.
* lib/realloc.c: Likewise.
2024-11-14 Paul Eggert <eggert@cs.ucla.edu>
mktime: don’t consult daylight
* lib/mktime.c (__mktime_internal): Do not consult __daylight
as it has unreliable contents - among other things, the user
can set it. It also wasn’t being configured properly for
mingw-w64; this problem was reported by Markus Muetzel in
<https://lists.gnu.org/r/bug-gnulib/2024-11/msg00126.html>.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Do not check for ‘daylight’;
no longer needed.
2024-11-14 Bruno Haible <bruno@clisp.org>
Eliminate gcc -Wzero-as-null-pointer-constant warnings.
* lib/argp-help.c: Use NULL, not 0, to denote a null pointer.
* lib/argp-parse.c: Likewise.
* lib/backup-find.c (get_version): Likewise.
* lib/bitset/list.c: Likewise.
* lib/bitset/stats.c (bitset_stats_init): Likewise.
* lib/bitset/table.c: Likewise.
* lib/bitsetv.c (bitsetv_alloc): Likewise.
* lib/error.c (print_errno_message): Likewise.
* lib/exclude.c (new_exclude_segment): Likewise.
* lib/getopt.c (GETOPT_ENTRY): Likewise.
* lib/human.c (block_size_args): Likewise.
* lib/obstack.c (_obstack_begin_worker, _obstack_newchunk,
_obstack_allocated_p, _obstack_free, _obstack_memory_used): Likewise.
* lib/quotearg.c (quoting_style_args, quotearg_buffer_restyled,
quotearg_alloc_mem): Likewise.
* lib/readutmp.c (read_utmp_from_file): Likewise.
* lib/savedir.c (comparison_function_table): Likewise.
* lib/settime.c (settime): Likewise.
* tests/nap.h (nap_works): Likewise.
* tests/test-fts.c (argv, fts_dealloc, remove_tree, main): Likewise.
* tests/test-getaddrinfo.c (simple): Likewise.
* tests/test-nstrftime.h (posixtm_test, TZ, quarter_test, errno_test,
locales_test): Likewise.
* tests/test-parse-datetime.c (main): Likewise.
* tests/test-regex.c (main): Likewise.
2024-11-14 Bruno Haible <bruno@clisp.org>
ftruncate, ftello: Make them work again for large files on MSVC.
* lib/ftruncate.c: Test _GL_WINDOWS_64_BIT_OFF_T again.
* lib/ftello.c: Likewise.
2024-11-14 Bruno Haible <bruno@clisp.org>
pthread-rwlock tests: Fix compilation error on AIX with xlc.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Cast the NULL pointer.
* tests/test-pthread-rwlock-waitqueue.c (do_test): Likewise.
2024-11-14 Bruno Haible <bruno@clisp.org>
ftello: Add tests for large files.
* tests/test-ftello-largefile.c: New file.
* modules/ftello-extra-tests: New file.
* modules/ftello-tests (Depends-on): Add ftello-extra-tests.
2024-11-14 Bruno Haible <bruno@clisp.org>
fseeko: Add tests for large files.
* tests/test-fseeko-largefile.c: New file.
* modules/fseeko-extra-tests: New file.
* modules/fseeko-tests (Depends-on): Add fseeko-extra-tests.
2024-11-14 Bruno Haible <bruno@clisp.org>
ftello: Fix override on mingw.
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00108.html>.
* lib/ftello.c: Test whether module 'largefile' is in use, not
whether it had to override 'off_t'.
2024-11-14 Bruno Haible <bruno@clisp.org>
fseeko: Fix potentially wrong override.
* m4/fseeko.m4 (gl_PREREQ_FSEEKO): Define the C macro HAVE_FSEEKO.
2024-11-14 Bruno Haible <bruno@clisp.org>
ftello: Fix override on mingw and 32-bit Solaris OpenIndiana.
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00108.html>.
* m4/ftello.m4 (gl_PREREQ_FTELLO): Define the C macro HAVE_FTELLO.
2024-11-14 Bruno Haible <bruno@clisp.org>
ftruncate: Accept lengths > 2 GiB on 32-bit mingw.
* lib/ftruncate.c: Test whether module 'largefile' is in use, not
whether it had to override 'off_t'.
2024-11-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix logic of --remove-import option.
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00101.html>.
* pygnulib/GLImport.py (GLImport.__init__): Compute the modules to keep
correctly.
2024-11-12 Bruno Haible <bruno@clisp.org>
bootstrap: Tweak GNULIB_REFDIR related changes.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Improve if/else
structure and comments. When cloning GNULIB_REFDIR and no submodule
'gnulib' is configured, switch to the default branch.
* top/bootstrap (usage): Update documentation.
* build-aux/bootstrap: Regenerated.
2024-11-12 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: avoid "cd"
* top/bootstrap-funclib.sh: Avoid "cd". This saves a few
subprocesses and is more likely to yield diagnostics that make
sense to the user.
* build-aux/bootstrap: Regenerate.
bootstrap: go back to old non-submodule semantics
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR):
When cloning GNULIB_REFDIR and no submodule 'gnulib' is configured,
set the origin’s URL to $gnulib_url and fetch from remote,
so that GNULIB_REFDIR is merely an accelerant rather than
having different semantics.
(autopull_usage): Update documentation.
* build-aux/bootstrap: Regenerate.
2024-11-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix comment.
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00101.html>.
* gnulib-tool: Fix comment.
2024-11-12 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: tune Octave bootstrap --gnulib-refdir
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR):
Use GNULIB_REFDIR also when a submodule 'gnulib' is not configured.
This greatly speeds up bootstrapping Octave when using
‘./bootstrap --gnulib-refdir=...’.
* build-aux/bootstrap: Regenerate.
2024-11-11 Paul Eggert <eggert@cs.ucla.edu>
openat: port lowest-fd to native MS-Windows
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-11/msg00081.html
* lib/openat.c (openat_permissive): When save_cwd allocates an FD,
allocate another one DFD and then close FD so that the later
open returns FD (the lowest available fd), as POSIX requires.
2024-11-11 Bruno Haible <bruno@clisp.org>
fts: Fix dependencies (regression 2024-11-06).
* modules/fts (Depends-on): Add fcntl-safer.
2024-11-11 Paul Eggert <eggert@cs.ucla.edu>
malloca: pacify CHERI clang
* lib/malloca.c (freea) [__CHERI_PURE_CAPABILITY__]:
Add a cast as the code otherwise doesn’t conform to C.
file-has-acl: another nofollow fix for FreeBSD
* lib/file-has-acl.c (file_has_aclinfo): On FreeBSD, NetBSD >= 10,
if we don’t follow symlinks the first time, also don’t follow
them the second time, when it is typically a directory - so it
doesn’t matter whether symlinks are followed - but it might not be.
file-has-acl: minor refactor of acl_get_link_np fix
* lib/file-has-acl.c (file_has_aclinfo): Redo to avoid ‘else #endif’.
file-has-acl: scontext even if --disable-acl
Be able to get the security context even if configured with
--disable-acl, as security contexts are not ACLs, and the
main reason for --disable-acl was for efficiency with GNU ls -l,
a concern that does not apply to security contexts (which are
needed only with ls -Z). Problem reported by Pádraig Brady
<https://bugs.gnu.org/73418#52>.
* lib/acl.h (ACL_GET_SCONTEXT): New constant.
(aclinfo_free, aclinfo_scontext_free): Declare even if !USE_ACL.
* lib/file-has-acl.c (USE_LINUX_XATTR): No longer false merely
because !USE_ACL, because we need xattr to get scontext.
(get_aclinfo): Support new ACL_GET_SCONTEXT flag.
2024-11-11 Bruno Haible <bruno@clisp.org>
nproc: Use affinity mask even in out-of-memory situations.
* lib/nproc.c (num_processors_via_affinity_mask): Use a stack-allocated
cpu_set_t as fallback. Add comments.
2024-11-11 Florian Weimer <fweimer@redhat.com>
nproc: Use affinity mask even on systems with more than 1024 CPUs.
* lib/nproc.c (num_processors_via_affinity_mask): Retry
with larger affinity masks if CPU_ALLOC_SIZE is available.
2024-11-11 Bruno Haible <bruno@clisp.org>
acl-permissions: Define the inline functions in this module.
* lib/acl-internal.c (ACL_INTERNAL_INLINE): Define here.
* lib/qset-acl.c (ACL_INTERNAL_INLINE): Don't define here.
2024-11-11 Bruno Haible <bruno@clisp.org>
getpagesize: Fix use of 'extern inline' (regression 2012-11-20).
* lib/unistd.in.h (_GL_GETPAGESIZE_INLINE): New macro.
(getpagesize): Use it.
* lib/getpagesize.c (_GL_GETPAGESIZE_INLINE): Define.
* modules/getpagesize (configure.ac): Compile getpagesize.c also when
getpagesize is missing.
2024-11-11 Bruno Haible <bruno@clisp.org>
realloc-posix: Fix link error (regression 2024-11-04).
* doc/extern-inline.texi (extern inline): Mention that one needs a
*_INLINE macro per compilation unit.
* lib/stdlib.in.h (_GL_REALLOC_INLINE): New macro.
(rpl_realloc): Use it. Don't test IN_GNULIB_TESTS.
* lib/realloc.c (_GL_REALLOC_INLINE): Define.
2024-11-11 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix compilation errors on macOS et al. (regr. 2024-11-09).
* m4/acl.m4 (gl_FUNC_ACL): Test whether acl_get_link_np exists.
* lib/file-has-acl.c (file_has_aclinfo): Use ACL_SYMLINK_FOLLOW, not
AC_SYMLINK_FOLLOW. Don't use acl_get_link_np if this function does not
exist.
2024-11-10 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Fix compilation error on NetBSD 7.
Reported by Ionut Cosmin Mihai <ionut.cosmin.mihai@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2024-11/msg00000.html>.
* lib/relocwrapper.c: Fix dependency tree.
* modules/relocatable-prog-wrapper (Files): Add lib/stat-time.h,
lib/stat-time.c.
* build-aux/install-reloc (func_create_wrapper): Compile also
stat-time.c.
2024-11-10 Pádraig Brady <P@draigBrady.com>
file-has-acl: avoid -Werror=unused-variable with --disable-acl
* lib/file-has-acl.c (file_has_aclinfo): Mark D_TYPE as unused
in certain configurations.
2024-11-09 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: symlinks can have scontext
Problem reported by Pádraig Brady <https://bugs.gnu.org/73418#35>.
* lib/file-has-acl.c (file_has_aclinfo):
With SELinux, symbolic links can have security contexts,
so omit incorrect optimizations assuming that they lack them.
When ! (flags & AC_SYMLINK_FOLLOW), prefer acl_get_link_np to
acl_get_file on platforms that have both APIs,
as this can avoid some races.
2024-11-07 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: minor ENOMEM fixes
* lib/file-has-acl.c: Include limits.h.
(get_aclinfo): Use a saturating add rather than reporting
overflow, in the very unlikely case that the size overflows.
This is simpler and is good enough here.
Also, defend against implausible system that fails with ERANGE
even when the buffer size is SSIZE_MAX.
* modules/file-has-acl (Depends-on): Add limits.h.
Also add malloc-posix, since we rely on malloc errno.
file-has-acl: remove __gl_acl_alloc member
It may have been needed in earlier versions of this code,
but it is no longer needed.
* lib/acl.h (struct aclinfo): Remove __gl_acl_alloc. All uses removed.
* lib/file-has-acl.c (get_aclinfo):
Use local, not the removed struct aclinfo slot.
2024-11-06 Paul Eggert <eggert@cs.ucla.edu>
opendirat: don’t depend on openat-safer
* lib/opendirat.c: Include fcntl.h.
[!GNULIB_OPENAT_SAFER]: Don’t include fcntl--.h.
* modules/opendirat (Depends-on): Depend on openat, not openat-safer.
getusershell: don’t depend on fopen-safer
* lib/getusershell.c: Include stdio.h.
[!GNULIB_FOPEN_SAFER]: Don’t include stdio--.h.
* modules/getusershell (Depends-on): Depend on fopen, not fopen-safer.
savewd: don’t depend on fcntl-safer
* lib/savewd.c: Don’t include fcntl-safer.
[GNULIB_FCNTL_SAFER]: Include fcntl--.h.
(savewd_save): Use open, not open_safer.
* modules/savewd (Depends-on): Remove fcntl-safer.
savedir: don’t depend on dirent-safer
* lib/savedir.c: Include dirent.h, not dirent--.h.
* modules/savedir (Depends-on): Depend on dirent, not dirent-safer.
save-cwd: don’t depend on fd-safer-flag, unistd-safer
They aren’t needed in packages that use xstdopen
* lib/save-cwd.c: Do not include unistd--.h.
(GNULIB_FCNTL_SAFER): Do not define.
(save_cwd): Do not use fd_safer_flag, as the package should use
either fcntl-safer+unistd-safer or xstdopen if it cares about
closed stdin.
* modules/save-cwd (Depends-on): Remove fd-safer-flag, unistd-safer.
error: tune a bit for xstdopen
* lib/error.c (flush_stdout): Also optimize if GNULIB_XSTDOPEN.
unistd-safer, xstdopen: indicate presence
* modules/unistd-safer, modules/xstdopen (configure.ac):
Add module indicator.
2024-11-06 Bruno Haible <bruno@clisp.org>
memset_explicit: Guarantee N3322 functionality.
* m4/memset_explicit.m4 (gl_PREREQ_MEMSET_EXPLICIT): Require
AC_CANONICAL_HOST. Test whether memset_s supports zero-length
operations.
* lib/memset_explicit.c (memset_explicit): Don't invoke memset_s with
argument 0 if memset_s does not support this.
2024-11-06 Bruno Haible <bruno@clisp.org>
wcsncat: Fix configure test.
* m4/wcsncat.m4 (gl_FUNC_WCSNCAT): Fix wrong cache variable name.
2024-11-06 Bruno Haible <bruno@clisp.org>
strncat, wcsncat tests: Fix test.
* tests/test-strncat.c (main): Change y to a valid string.
* tests/test-wcsncat.c (main): Change y to a valid wide string.
2024-11-05 Paul Eggert <eggert@cs.ucla.edu>
eealloc: deprecate
Now that malloc-gnu and realloc-posix arrange for the
various memory allocators to return non-null on success,
should be no need for the eealloc module.
* NEWS, modules/eealloc: Mention this.
relocatable-prog-wrapper: remove eealloc.m4
* modules/relocatable-prog-wrapper (Files): Remove m4/eealloc.m4.
It wasn’t being used and evidently was listed only because
a previous version needed it.
regex: port better to AIX extensions
Also, switch from eealloc.m4 to malloc.m4 to determine
whether malloc (0) returns nonnull.
* lib/regex_internal.c (re_node_set_alloc):
Remove special case for malloc (0).
* lib/regex_internal.h (MALLOC_0_IS_NONNULL): Remove.
* m4/regex.m4 (gl_PREREQ_REGEX): Do not require gl_EEMALLOC.
* modules/regex (Files): Remove m4/eealloc.m4, m4/malloc.m4.
(Depends-on): Add malloc-gnu.
malloca: port better to AIX extensions
Also, switch from eealloc.m4 to malloc.m4 to determine
whether malloc (0) returns nonnull.
* lib/malloca.c (mmalloca): Use HAVE_MALLOC_0_NONNULL,
not MALLOC_0_IS_NONNULL.
* m4/malloca.m4 (gl_MALLOCA): Require gl_FUNC_MALLOC_GNU,
not gl_EEMALLOC.
* modules/malloca (Files): Remove m4/eemalloc.m4.
(Depends-on): Add extensions-aix.
* modules/relocatable-prog-wrapper:
AC_REQUIRE gl_FUNC_MALLOC_POSIX to suppress Autoconf 2.71
“warning: AC_REQUIRE: `gl_FUNC_MALLOC_POSIX' was expanded before
it was required”.
malloc: refactor to help replace eealloc
* m4/malloc.m4 (gl_FUNC_MALLOC_0_NONNULL):
New macro, split out from gl_FUNC_MALLOC_GNU.
(gl_FUNC_MALLOC_GNU): Require it.
2024-11-06 Bruno Haible <bruno@clisp.org>
aligned_alloc tests: Fix compilation error on mingw (regr. 2024-11-04).
* tests/test-aligned_alloc.c (aligned_alloc): Don't redefine if
aligned_alloc does not exist.
2024-11-06 Bruno Haible <bruno@clisp.org>
reallocarray: Fix compilation error in C++ mode (regr. 2024-11-04).
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Don't use
REPLACE_REALLOC_FOR_REALLOC_POSIX here. Use gl_cv_malloc_ptrdiff
instead.
2024-11-05 Bruno Haible <bruno@clisp.org>
wmemset tests: Verify N3322 functionality.
* tests/test-wmemset.c: New file.
* modules/wmemset-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
wmemchr tests: Verify N3322 functionality.
* tests/test-wmemchr.c: New file.
* modules/wmemchr-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
wmemcmp tests: Verify N3322 functionality.
* tests/test-wmemcmp.c (main): Add zero-size tests.
2024-11-05 Bruno Haible <bruno@clisp.org>
wcsncmp tests: Verify N3322 functionality.
* tests/test-wcsncmp.c (main): Add zero-size tests.
2024-11-05 Bruno Haible <bruno@clisp.org>
wcsncat tests: Verify N3322 functionality.
* tests/test-wcsncat.c: New file.
* modules/wcsncat-tests: New file.
wcsncat: Guarantee N3322 functionality.
* lib/wchar.in.h (wcsncat): Consider REPLACE_WCSNCAT.
* m4/wcsncat.m4 (gl_FUNC_WCSNCAT): Test whether the zero-length bug is
present.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSNCAT.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSNCAT.
* modules/wcsncat (Status, Notice): Remove.
(configure.ac): Consider REPLACE_WCSNCAT.
* doc/posix-functions/wcsncat.texi: Mention the zero-length bug.
2024-11-05 Bruno Haible <bruno@clisp.org>
wmemmove tests: Verify N3322 functionality.
* tests/test-wmemmove.c: New file.
* modules/wmemmove-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
wmemcpy tests: Verify N3322 functionality.
* tests/test-wmemcpy.c: New file.
* modules/wmemcpy-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
wcsncpy tests: Verify N3322 functionality.
* tests/test-wcsncpy.c: New file.
* modules/wcsncpy-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memset_explicit tests: Verify N3322 functionality.
* tests/test-memset_explicit.c (main): Add a zero-size test.
2024-11-05 Bruno Haible <bruno@clisp.org>
memset tests: Verify N3322 functionality.
* tests/test-memset.c: New file.
* modules/memset-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memchr tests: Verify N3322 functionality.
* tests/test-memchr.c (main): Add a zero-size test.
2024-11-05 Bruno Haible <bruno@clisp.org>
strncmp tests: Verify N3322 functionality.
* modules/strncmp: New file.
* doc/posix-functions/strncmp.texi: Mention the new module.
* tests/test-strncmp.c: New file.
* modules/strncmp-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memcmp tests: Verify N3322 functionality.
* tests/test-memcmp.c (main): Add zero-size tests.
2024-11-05 Bruno Haible <bruno@clisp.org>
strncat tests: Verify N3322 functionality.
* tests/test-strncat.c (main): Add a zero-size test.
2024-11-05 Bruno Haible <bruno@clisp.org>
strndup tests: Verify N3322 functionality.
* tests/test-strndup.c: New file.
* modules/strndup-tests: New file.
strndup: Guarantee N3322 functionality.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Check against the AIX bug.
* doc/posix-functions/strndup.texi: Mention the AIX bug.
2024-11-05 Bruno Haible <bruno@clisp.org>
strncpy tests: Verify N3322 functionality.
* modules/strncpy: New file.
* doc/posix-functions/strncpy.texi: Mention the new module.
* tests/test-strncpy.c: New file.
* modules/strncpy-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memmove tests: Verify N3322 functionality.
* tests/test-memmove.c: New file.
* modules/memmove-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memccpy tests: Verify N3322 functionality.
* modules/memccpy: New file.
* doc/posix-functions/memccpy.texi: Mention the new module.
* tests/test-memccpy.c: New file.
* modules/memccpy-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
memcpy tests: Verify N3322 functionality.
* tests/test-memcpy.c: New file.
* modules/memcpy-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
qsort tests: Verify N3322 functionality.
* modules/qsort: New file.
* doc/posix-functions/qsort.texi: Mention the new module.
* tests/test-qsort.c: New file.
* modules/qsort-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
bsearch tests: Verify N3322 functionality.
* modules/bsearch: New file.
* doc/posix-functions/bsearch.texi: Mention the new module.
* tests/test-bsearch.c: New file.
* modules/bsearch-tests: New file.
2024-11-05 Bruno Haible <bruno@clisp.org>
realloc-posix: Avoid use of AC_LIBOBJ.
* modules/realloc-posix (configure.ac): Define
GL_COND_OBJ_REALLOC_POSIX. Don't invoke AC_LIBOBJ.
(Makefile.am): Add realloc.c to lib_SOURCES instead.
2024-11-05 Bruno Haible <bruno@clisp.org>
realloc-posix: Fix link error (regression yesterday).
* lib/stdlib.in.h (realloc): Don't inline rpl_realloc if IN_GNULIB_TESTS
is defined.
* modules/realloc-posix (Depends-on, configure.ac): Compile realloc.c
also if REPLACE_REALLOC_FOR_REALLOC_POSIX is 2.
2024-11-05 Bruno Haible <bruno@clisp.org>
stdlib: Add a copyright header.
* lib/stdlib.c: Add a copyright header.
calloc, malloc: Fix a comment.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Mention that it sets
HAVE_MALLOC_PTRDIFF.
(gl_FUNC_MALLOC_PTRDIFF): Likewise.
(gl_CHECK_MALLOC_PTRDIFF): Do not mention HAVE_MALLOC_PTRDIFF here.
calloc: Fix configure test (regression yesterday).
* m4/calloc.m4 (gl_FUNC_CALLOC_IF): Fix wrong cache variable name.
Rename cache variable. Restore earlier comment.
2024-11-04 Paul Eggert <eggert@cs.ucla.edu>
safe-alloc: simplify, given new reallocarray behavior
* lib/safe-alloc.h [__CHERI_PURE_CAPABILITY__]:
Remove special cases for this, as reallocarray
now does it for us.
(safe_alloc_realloc_n): Remove. All uses replaced by reallocarray.
argz: defend against realloc (0, 0)
* modules/argz (Depends-on): Add realloc-posix so that
argz_append doesn’t wrongly fail with ENOMEM on AIX.
realloc-posix: update doc
* doc/posix-functions/realloc.texi: Update to match recent Gnulib
changes and OS discoveries, and to clarify and simplify by
coalescing behaviors (4) and (5).
realloc-posix: tune for glibc-like
For glibc, implementing realloc (p, s) as realloc (p, s?s:1) suffices,
and it’s probably better to do it inline to aid static checking.
* lib/realloc.c (rpl_realloc) [_GL_INLINE_RPL_REALLOC]:
Remove, replacing with inline function in stdlib.h.
* lib/stdlib.in.h (_GL_INLINE_RPL_REALLOC): New macro.
(rpl_realloc): Define as inline if _GL_INLINE_RPL_REALLOC.
* m4/realloc.m4 (gl_FUNC_REALLOC_0_NONNULL):
Set REPLACE_REALLOC_FOR_REALLOC_POSIX=2 instead of 1,
if it’s close enough to glibc that the inline optimization is valid.
realloc-posix: use _GL_USE_STDLIB_ALLOC
* lib/realloc.c (_GL_USE_STDLIB_ALLOC):
New macro, which we can use now that we don’t use malloc.
(realloc): Do not undef; no longer needed.
stdlib: make MB_CUR_MAX usable from extern inline
* lib/stdlib.c: New file.
* modules/stdlib (Files, lib_SOURCES): Add it.
(Depends-on): Add extern-inline.
* lib/stdlib.in.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_STDLIB_INLINE): New macro.
(gl_MB_CUR_MAX): Make it _GL_STDLIB_INLINE not static inline,
so that it can be called from extern inline functions.
Redo implementation to help GCC better optimize common expressions
like (MB_CUR_MAX == 1).
realloc-posix: set CHERI bounds
* lib/ialloc.h, lib/xmalloc.c [__CHERI_PURE_CAPABILITY__]:
Do nothing special, as realloc and reallocarray
should do this for us now.
* lib/realloc.c [__CHERI_PURE_CAPABILITY__]:
Include cheri.h, and arrange for rpl_realloc to set bounds.
realloc-posix: realloc (..., 0) now returns nonnull
* lib/realloc.c (rpl_realloc): Simplify and tune by using
HAVE_REALLOC_0_NONNULL and HAVE_MALLOC_PTRDIFF, and
by having just one call to realloc instead of two.
* lib/reallocarray.c (reallocarray): Simplify and tune
by delegating the zero case to the revised realloc.
* m4/eealloc.m4 (_AC_FUNC_REALLOC_IF): Since only eealloc uses
this macro now, move its definition here ...
* m4/realloc.m4: ... from here.
(gl_FUNC_REALLOC_0_NONNULL): Also check that realloc (p, 0)
returns nonnull. Require gl_FUNC_REALLOC_POSIX.
Define HAVE_REALLOC_0_NONNULL.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY):
Also replace reallocarray if it returns a null pointer for size zero.
* modules/eealloc (Files): Remove m4/realloc.m4.
* modules/realloc-posix (Depends-on): Add extensions-aix.
* modules/reallocarray (Files): Add m4/realloc.m4.
stdlib: simplify preprocessor conditionals
* lib/stdlib.in.h: Omit some redundant tests in conditionals.
realloc: don’t require success for nongrowth
* lib/realloc.c (rpl_realloc): Do not require realloc (p, 0) to
succeed, as apparently glibc realloc (p, n) can sometimes fail
even when the region would not grow.
calloc, malloc: tune a bit
This applies mostly to non-glibc platforms, or to 32-bit
glibc before glibc 2.30 (2019).
* lib/calloc.c (rpl_calloc):
* lib/malloc.c (rpl_malloc):
Optimize away some of the code if !HAVE_MALLOC_0_NONNULL or if
!HAVE_MALLOC_PTRDIFF.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Define HAVE_MALLOC_0_NONNULL.
(gl_FUNC_MALLOC_PTRDIFF): Define HAVE_MALLOC_PTRDIFF.
calloc: configure more like malloc
* m4/calloc.m4 (gl_FUNC_CALLOC_IF): Rename from _AC_FUNC_CALLOC_IF
since this is not derived from Autoconf. All uses changed.
Redo implementation so that it is more like _AC_FUNC_MALLOC_IF;
this fixes some problems with "volatile" and modernizes the known
platforms.
malloc-gnu: depend on stdckdint not xalloc-oversized
* lib/malloc.c: Include stdckdint.h, xalloc-oversized.h.
(rpl_malloc): Use ckd_mul instead of xalloc_oversized.
* modules/malloc-gnu, modules/malloc-posix:
(Depends-on): Depend on stdckdint, not xalloc-oversized.
calloc: depend on stdckdint not xalloc-oversized
* lib/calloc.c: Include stdckdint.h, xalloc-oversized.h.
(rpl_calloc): Use ckd_mul instead of xalloc_oversized.
* modules/calloc-gnu, modules/calloc-posix:
(Depends-on): Depend on stdckdint, not xalloc-oversized.
malloc etc. tests: use volatile more consistently
Typically it’s ineffective to use ‘void *volatile p’
when testing malloc and similar functions, as the compiler
can optimize the call to malloc before assigning the result
to the volatile pointer variable. Instead, be more systematic
about calling malloc through a volatile function pointer
so that the compiler cannot infer that it is a malloc call.
This fix can’t be done for alloca-like functions which may not
have a function address, so continue to trust to luck there.
* tests/test-aligned-malloc.c (aligned4_malloc, aligned4_free)
(aligned8_malloc, aligned8_free, aligned16_malloc)
(aligned16_free, aligned32_malloc, aligned32_free):
* tests/test-aligned_alloc.c (aligned_alloc):
* tests/test-calloc-gnu.c (calloc):
* tests/test-free.c (free):
* tests/test-malloc-gnu.c (malloc):
* tests/test-reallocarray.c (reallocarray):
Test indirectly, by calling through a volatile pointer.
* tests/test-aligned-malloc.c, tests/test-aligned_alloc.c:
* tests/test-calloc-gnu.c, tests/test-calloc-posix.c:
* tests/test-free.c, tests/test-malloc-gnu.c:
* tests/test-malloc-posix.c, tests/test-realloc-posix.c:
* tests/test-reallocarray.c:
(main) Don’t bother making data pointers olatile, as it’s ineffective.
* tests/test-calloc-gnu.c (identity):
* tests/test-free.c (get_errno, get_errno_func):
Remove; all uses removed.
2024-11-04 Bruno Haible <bruno@clisp.org>
aligned_alloc: Fix test failures on macOS, Solaris (regr. 2024-10-30).
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Check for the Solaris
bug. Let the test program return a bit mask. Update cross-compilation
guesses.
* lib/aligned_alloc.c: Include <errno.h>.
(aligned_alloc): Fail if the alignment is not a power of 2. Work around
the Solaris bug.
* modules/aligned_alloc (Depends-on): Add malloc-posix.
* doc/posix-functions/aligned_alloc.texi: Mention the Solaris bug.
2024-11-04 Bruno Haible <bruno@clisp.org>
tests: Add comments.
* tests/test-aligned_alloc.c (main): Clarify that we test a zero size.
* tests/test-posix_memalign.c (main): Likewise.
2024-11-04 Bruno Haible <bruno@clisp.org>
malloc, calloc, realloc tests: Work around clang optimization bug.
* tests/test-malloc-posix.c (my_malloc): New variable.
* tests/test-calloc-posix.c (my_calloc): New variable.
* tests/test-realloc-posix.c (my_realloc): New variable.
2024-11-03 Bruno Haible <bruno@clisp.org>
crc: Fix build rules with Automake's option 'subdir-objects'.
Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-11/msg00011.html>.
* build-aux/prefix-gnulib-mk: Add comments.
(usage): Mark this usage as deprecated.
* modules/crc (Makefile.am): Use %reldir%. Write $(srcdir)/. instead of
$(srcdir).
2024-11-01 Bruno Haible <bruno@clisp.org>
select: Document a Haiku bug.
* doc/posix-functions/select.texi: Mention a Haiku bug.
2024-11-01 Bruno Haible <bruno@clisp.org>
eealloc: Revert last change.
* m4/eealloc.m4 (gl_EEMALLOC): Invoke _AC_FUNC_MALLOC_IF, not
gl_CHECK_MALLOC_POSIX.
2024-11-01 Bruno Haible <bruno@clisp.org>
realloc-posix: Fix test failure on AIX (regression 2024-10-27).
* m4/realloc.m4 (gl_FUNC_REALLOC_0_NONNULL): New macro.
* modules/realloc-posix (configure.ac): Invoke it.
2024-11-01 Bruno Haible <bruno@clisp.org>
eealloc: Use the same cross-compilation guess as malloc-posix.
* m4/eealloc.m4 (gl_EEMALLOC): Invoke gl_CHECK_MALLOC_POSIX, not
_AC_FUNC_MALLOC_IF.
* modules/malloca (Files): Add m4/malloc.m4.
* modules/regex (Files): Likewise.
2024-11-01 Bruno Haible <bruno@clisp.org>
Improve log output of an Autoconf test.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): On native Windows, report
"guessing yes/no".
(gl_FUNC_MALLOC_POSIX): Update.
* m4/strdup.m4 (gl_FUNC_STRDUP_POSIX): Likewise.
2024-10-31 Paul Eggert <eggert@cs.ucla.edu>
malloc, realloc: fix $3 bug
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-10/msg00284.html
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
Sync from bleeding-edge Autoconf again.
2024-10-31 Bruno Haible <bruno@clisp.org>
crc: Support generating the tables also when cross-compiling.
* m4/build-cc.m4: New file.
* modules/crc (Files): Add it.
(configure.ac): Invoke gl_BUILD_CC. Don't set GL_CROSS_COMPILING.
(Makefile.am): Use $(BUILD_CC) etc. instead of $(CC) etc.
2024-10-31 Bruno Haible <bruno@clisp.org>
malloc-posix, realloc-posix: Fix incorrect expansion of AC_FUNC_MALLOC.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Handle the case of a missing third
argument.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
2024-10-31 Bruno Haible <bruno@clisp.org>
malloc-gnu, eealloc: Make code more future-proof.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Protect evaluation of
$gl_cross_guess_normal.
* m4/eealloc.m4 (gl_EEMALLOC, gl_EEREALLOC): Likewise.
2024-10-31 Bruno Haible <bruno@clisp.org>
malloc-posix, calloc-posix, realloc-posix: Optimize on MSVC.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Assume that malloc sets errno
upon failure if UCRT is in use.
2024-10-31 Bruno Haible <bruno@clisp.org>
realloc-posix tests: Enhance tests.
* tests/test-realloc-posix.c (main): Check errno also after normal
failing realloc calls.
2024-10-31 Bruno Haible <bruno@clisp.org>
realloc-posix tests: Fix memory leak.
* tests/test-realloc-posix.c (main): Don't clobber variable 'p' in
failing call.
2024-10-31 Bruno Haible <bruno@clisp.org>
calloc-posix: Add tests.
* tests/test-calloc-posix.c: New file.
* modules/calloc-posix-tests: New file.
2024-10-31 Bruno Haible <bruno@clisp.org>
malloc-posix: Add tests.
* tests/test-malloc-posix.c: New file.
* modules/malloc-posix-tests: New file.
2024-10-31 Bruno Haible <bruno@clisp.org>
realloc-posix: Set errno when failing (regression 2029-10-29).
* lib/realloc.c (rpl_realloc): When failing, with HAVE_MALLOC_POSIX not
defined, set errno.
2024-10-31 Bruno Haible <bruno@clisp.org>
crc: Avoid potential conflict with other configure.ac files.
Suggested by Simon Josefsson.
* modules/crc (configure.ac, Makefile.am): Rename CROSS_COMPILING to
GL_CROSS_COMPILING.
2024-10-31 Sam Russell <sam.h.russell@gmail.com>
crc: Fix compile warnings
* lib/crc-generate-table.c: Mark non-exported functions as static
* lib/crc.c: Mark non-exported functions as static
2024-10-31 Bruno Haible <bruno@clisp.org>
crc: Don't attempt to run a compiled C program when cross-compiling.
* lib/crc-generate-table.c: Don't include config.h.
* modules/crc (configure.ac): Define CROSS_COMPILING variable. Invoke
AC_PROG_MKDIR_P.
(Makefile.am): When cross-compiling, don't regenerate crc-sliceby8.h.
Don't use Gnulib modules while compiling the generator.
2024-10-31 Bruno Haible <bruno@clisp.org>
crc: Tweak generator.
* lib/crc-generate-table.c (print_header): Don't emit a blank line at
the end.
(print_copyright_notice): Prepend a "DO NOT EDIT" line.
(main): Fail if disk is full after we wrote part of the file.
2024-10-31 Simon Josefsson <simon@josefsson.org>
crc: make it a maintainer setting rather than a user setting.
* m4/crc.m4 (gl_CRC_SLICE_BY_8): Drop AC_ARG_ENABLE.
2024-10-31 Sam Russell <sam.h.russell@gmail.com>
crc: New optimised slice-by-8 implementation
* lib/crc.c: Implementation of slice-by-8 algorithm
* lib/crc-generate-table.c: Generation code for CRC32 lookup tables
* m4/crc.m4: Autoconf enable slice-by-8, flag to disable
* modules/crc (Depends-on): Add endian.
(Makefile.am): Build slice-by-8 tables from crc-generate-table.c.
2024-10-31 Bruno Haible <bruno@clisp.org>
posix_memalign: Fix configure test (regression yesterday).
* m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN): Fix typo in comment.
Fix variable name.
2024-10-31 Bruno Haible <bruno@clisp.org>
aligned_alloc: Fix comment.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Fix typo in comment.
2024-10-31 Bruno Haible <bruno@clisp.org>
assert-h: Allow mixed use of gcc/g++ also on Haiku 2022.
* m4/assert_h.m4 (gl_ASSERT_H): Don't assume that in C mode, <assert.h>
defines static_assert.
2024-10-30 Bruno Haible <bruno@clisp.org>
futimes, utimensat, utimes, utime: Document Haiku malfunction.
* doc/posix-functions/futimens.texi: Mention Haiku's brokenness.
* doc/posix-functions/utimensat.texi: Likewise.
* doc/posix-functions/utimes.texi: Likewise.
* doc/pastposix-functions/utime.texi: Likewise.
2024-10-30 Paul Eggert <eggert@cs.ucla.edu>
posix_memalign: check for GNU behavior with size 0
* lib/posix_memalign.c: Include stdckdint.h.
(posix_memalign): Test for overflow more straightforwardly,
and more portably to unlikely platforms where SIZE_MAX <= INT_MAX.
Treat a zero size as if it were alignment.
* m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN):
* tests/test-posix_memalign.c (main):
Test zero size too. Use volatile to avoid compiler optimizations.
* modules/posix_memalign (Depends-on): Add stdckdint.
aligned_alloc: check for GNU behavior with size 0
If someone ever needs to distinguish between GNU and merely POSIX
behavior we can split this into two modules, but for now just
make this module act like GNU.
* lib/aligned_alloc.c (aligned_alloc): Treat zero size like GNU.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC):
* tests/test-aligned_alloc.c (main):
Test zero size too.
2024-10-30 Bruno Haible <bruno@clisp.org>
assert-h, stdbool: Fix compilation error with MSVC 14 (regr. yesterday).
* m4/assert_h.m4 (gl_ASSERT_H): Add parentheses to the preprocessor
expression.
* m4/c-bool.m4 (gl_C_BOOL): Likewise.
2024-10-29 Paul Eggert <eggert@cs.ucla.edu>
malloc, realloc: sync from Autoconf master
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
Sync from bleeding-edge Autoconf. All uses changed.
malloc: fix recent doc bug for AIX 7.3
* doc/posix-functions/malloc.texi: Undo previous change,
as _LINUX_SOURCE_COMPAT no longer affects malloc on AIX 7.3.
It did affect it in AIX 7.1 but 7.1 is no longer supported.
realloc-posix: realloc (p, 0) yields nonnull
* lib/realloc.c: Include <stdckdint.h>, not "xalloc-oversized.h".
Use of xalloc_oversized replaced by ckd_add.
(rpl_realloc) [!NEED_SANITIZED_REALLOC]:
Treat realloc (p, 0) as if it were a realloc (p, 1) that never fails.
That’s easier, reduces module dependencies,
and better supports the future alloc-0-nonnull module.
* modules/realloc-posix (Depends-on): Remove free-posix,
malloc-posix, xalloc-oversized. Add stdckdint.
2024-10-29 Collin Funk <collin.funk1@gmail.com>
backupfile: Remove non-existent module dependency.
* modules/backupfile (Depends-on): Remove irealloc dependency since the
function is a part of the ialloc module.
2024-10-29 Bruno Haible <bruno@clisp.org>
Fix indentation in config.h (regression 2024-09-25).
* m4/gnulib-common.m4 (gl_COMMON_BODY): Fix a '#else' indentation.
2024-10-29 Bruno Haible <bruno@clisp.org>
assert-h, stdbool: Allow mixed use of gcc/g++ and clang/clang++ again.
* m4/assert_h.m4 (gl_ASSERT_H): Improve indentation. With GCC and clang,
don't use the value of HAVE_C_STATIC_ASSERT.
* m4/c-bool.m4 (gl_C_BOOL): With GCC and clang, don't use the value of
HAVE_C_BOOL.
2024-10-29 Bruno Haible <bruno@clisp.org>
doc: Don't mention Java dependency.
* doc/build-automation.texi (Building gnulib): Remove Java from the
needed tools.
2024-10-28 Collin Funk <collin.funk1@gmail.com>
doc: Mention Python dependency.
* doc/build-automation.texi (Building gnulib): Document that Python is
needed for gnulib-tool.
2024-10-28 Bruno Haible <bruno@clisp.org>
doc: Improve usability of generated PDF.
* doc/gnulib.texi: Use a brown colour for interactive links.
2024-10-27 Collin Funk <collin.funk1@gmail.com>
realloc-gnu: Fix typo in deprecation notice.
* modules/realloc-gnu (Notice): Recommend 'realloc-posix' in the
deprecation notice.
2024-10-27 Bruno Haible <bruno@clisp.org>
realloc-gnu: Replace module with an alias to realloc-posix.
* tests/test-realloc-posix.c: Renamed from tests/test-realloc-gnu.c. Add
more tests, not yet activated.
* modules/realloc-posix-tests: Renamed from modules/realloc-gnu-tests.
Test test-realloc-posix instead of test-realloc-gnu.
* modules/realloc-gnu: Mark as a deprecated alias of 'realloc-posix'.
* lib/stdlib.in.h (realloc): Ignore GNULIB_REALLOC_GNU.
* modules/stdlib (Makefile.am): Don't substitute GNULIB_REALLOC_GNU,
REPLACE_REALLOC_FOR_REALLOC_GNU.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Don't initialize
GNULIB_REALLOC_GNU.
(gl_STDLIB_H_DEFAULTS): Don't initialize
REPLACE_REALLOC_FOR_REALLOC_GNU.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Remove macro.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Update comment.
* doc/posix-functions/realloc.texi: Remove description of module
'realloc-gnu'.
* MODULES.html.sh (Memory management functions <stdlib.h>): Remove
realloc-gnu. Add realloc-posix.
2024-10-27 Bruno Haible <bruno@clisp.org>
doc: Add a module index.
* doc/Makefile (undocumented-modules.texi): New rule.
(%.info, %.html, %.dvi, %.pdf): Depend on undocumented-modules.texi.
(mostlyclean): Remove also *.m and *.tmp.
(force): New rule.
* doc/*.texi: Add module index entries.
* doc/*/*.texi: Likewise.
2024-10-26 Paul Eggert <eggert@cs.ucla.edu>
posix_memalign: port better to OpenBSD 6.2+ cross
* m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN):
Don’t assume sizeof (void *) <= 32 (!).
The bug is fixed in OpenBSD 6.2+.
posix_memalign-tests: fix message typo
* tests/test-posix_memalign.c (main): Fix diagnostic typo.
aligned_alloc: document glibc bug 32301
* doc/posix-functions/aligned_alloc.texi:
* doc/posix-functions/posix_memalign.texi: Mention glibc bug
32301, which it is not worth our time to work around.
eealloc: update commentary
Even if we remove eealloc we might as well add commentary
explaining some of its confusion, before we remove it.
* lib/eealloc.h: Update comment.
* modules/eealloc (Description):
Update, since eealloc is not glibc compatible.
2024-10-26 Bruno Haible <bruno@clisp.org>
regex: Avoid dialog while running configure test on Haiku/x86_64.
Reported by Alexandru Popa <alpopa@gmail.com> in
<https://sourceforge.net/p/clisp/mailman/message/58831511/>.
* m4/regex.m4 (gl_REGEX): Disable dialog upon abort on Haiku.
2024-10-26 Bruno Haible <bruno@clisp.org>
regex: Make configure test more maintainable.
* m4/regex.m4 (gl_REGEX): Include <malloc.h> before testing for
M_CHECK_ACTION.
2024-10-26 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Fix compilation error on Cygwin (regr. 2024-10-22).
* lib/windows-path.h: Include <stdlib.h>.
2024-10-26 Bruno Haible <bruno@clisp.org>
pipe-filter-gi: Correct documentation.
Reported by Miro Palmu <email@miropalmu.cc> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-10/msg00199.html>.
* lib/pipe-filter.h (pipe_filter_gi_create): Don't say that this
function may return NULL.
2024-10-25 Bruno Haible <bruno@clisp.org>
eealloc: Relicense under LGPLv2+.
Jim Meyering's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-10/msg00192.html>.
* modules/eealloc (License): Change to LGPLv2+.
* lib/eealloc.h: Update license notice.
* lib/eealloc.c: Likewise.
2024-10-25 Bruno Haible <bruno@clisp.org>
xalloc: Adjust dependencies after last change.
* modules/xalloc (Depends-on): Remove realloc-gnu. Add realloc-posix.
2024-10-25 Bruno Haible <bruno@clisp.org>
ialloc: Fix dependencies.
* modules/ialloc (Depends-on): Add realloc-posix.
2024-10-24 Paul Eggert <eggert@cs.ucla.edu>
realloc: minor style coalescing
* lib/alignalloc.h (alignalloc):
* lib/eealloc.h (eerealloc):
* lib/ialloc.h (irealloc, ireallocarray):
* lib/safe-alloc.h (safe_alloc_realloc_n):
Adjust commentary and code to better match what’s used elsewhere.
This doesn’t change behavior.
xalloc: port to Cheri, strict C23, realloc null
* lib/xmalloc.c [__CHERI_PURE_CAPABILITY__]: Include <cheri.h>.
(xrealloc, xreallocarray): Support Cheri. Avoid undefined
behavior in strict C23. Work better on platforms where
realloc (p, 0) returns a null pointer
reallocarray: simplify
* lib/reallocarray.c (reallocarray): Use simpler workaround
for realloc glitch, which does not involve malloc.
* modules/reallocarray (Depends-on): Remove malloc-posix.
2024-10-23 Paul Eggert <eggert@cs.ucla.edu>
ialloc: fix realloc-gnu dependency
* modules/ialloc (Depends-on): Remove realloc-gnu,
as ialloc.c does not depend on GNU semantics for realloc.
backupfile: fix irealloc dependency
* modules/backupfile (Depends-on): Depend on irealloc,
not realloc-gnu, as the code now uses irealloc not realloc
and does not depend on GNU semantics anyway.
group-member: fix malloc-gnu dependency
* modules/group-member (Depends-on): Depend on malloc-gnu,
not realloc-gnu, since the code uses malloc not realloc.
realloc: still more improvements for realloc (p, 0)
* doc/posix-functions/malloc.texi: AIX is sans _LINUX_SOURCE_COMPAT.
* doc/posix-functions/realloc.texi:
Give more details about what recent POSIX versions say,
and fix some misperceptions about C89 through C11.
Document that the GNU behavior does not conform to POSIX,
and that AIX's behavior with _LINUX_SOURCE_COMPAT
matches glibc's circa 1999 behavior, not its current behavior.
Be a little less confident about realloc-gnu, since it doesn't
fully implement current glibc behavior.
Give more details about when memory leaks or false positives can occur.
* doc/posix-functions/reallocarray.texi:
Say that it shares realloc’s woes with zero sizes.
2024-10-22 Sam Russell <sam.h.russell@gmail.com>
crc: New tests for non-byte-aligned data.
* tests/test-crc.c: New tests.
* modules/crc-tests (Files): Add dependency on randomb.c
2024-10-22 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Support DLL dependencies of Windows executables.
Reported by Michele Locati <michele@locati.it>.
* lib/windows-path.h: New file.
* lib/windows-path.c: New file.
* lib/windows-spawn.h (compose_envblock): Add new_PATH parameter.
(spawnpvech): Add dll_dirs parameter. Call extended_PATH.
* lib/windows-spawn.c: Include windows-path.h.
(compose_envblock): Add new_PATH parameter.
* modules/windows-spawn (Description): Now applies to Cygwin as well.
(Files): Add lib/windows-path.h, lib/windows-path.c.
(configure.ac): Define GL_COND_OBJ_WINDOWS_PATH.
(Makefile.am): Conditionally compile windows-path.c.
(Include): Add windows-path.h.
* lib/spawni.c (__spawni): Update compose_envblock call.
* lib/execute.h (execute): Add dll_dirs parameter.
* lib/execute.c: Include windows-path.h.
(execute): Add dll_dirs parameter. Pass it down to spawnpvech. Call
extended_environ.
* lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi):
Add dll_dirs parameter.
* lib/spawn-pipe.c: Include windows-path.h.
(create_pipe): Add dll_dirs parameter. Pass it down to spawnpvech. Call
extended_environ.
(create_pipe_bidi, create_pipe_in, create_pipe_out): Add dll_dirs
parameter.
* lib/javaexec.c (execute_java_class): Update execute invocations.
* lib/cygpath.c (execute_and_read_line): Update create_pipe_in
invocation.
* lib/javaversion.c (execute_and_read_line): Likewise.
* lib/csharpcomp.c (compile_csharp_using_mono,
compile_csharp_using_dotnet, compile_csharp_using_sscli): Update
execute, create_pipe_in invocations.
* lib/csharpexec.c (execute_csharp_using_mono,
execute_csharp_using_dotnet, execute_csharp_using_sscli): Likewise.
* lib/javacomp.c (compile_using_envjavac, compile_using_javac,
execute_and_read_line, is_javac_present): Likewise.
* lib/pipe-filter-gi.c (pipe_filter_gi_create): Update create_pipe_bidi
invocation.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Likewise.
* tests/test-execute-main.c (main): Update execute invocations.
* tests/test-execute-script.c (main): Likewise.
* tests/test-spawn-pipe-main.c (main): Update create_pipe_bidi
invocation.
* tests/test-spawn-pipe-script.c (main): Update create_pipe_in
invocations.
* NEWS: Mention the changes.
2024-10-21 Bruno Haible <bruno@clisp.org>
reallocarray: Don't assume unportable behaviour of realloc.
* lib/reallocarray.c (reallocarray): Handle the nbytes==0 case
explicitly.
* modules/reallocarray (Depends-on): Remove realloc-gnu. Add
malloc-posix, realloc-posix.
realloc: Optionally check for undefined behaviour.
* m4/realloc.m4 (gl_FUNC_REALLOC_SANITIZED): New macro.
(gl_FUNC_REALLOC_POSIX): Require it. If a sanitized realloc is
requested, define NEED_SANITIZED_REALLOC and compile realloc.c.
(gl_FUNC_REALLOC_GNU): Require it. If a sanitized realloc is requested,
don't compile realloc.c a second time.
* lib/realloc.c (rpl_realloc): If NEED_SANITIZED_REALLOC is defined,
abort in the case of undefined behaviour.
2024-10-19 Paul Eggert <eggert@cs.ucla.edu>
realloc: more improvements for realloc (p, 0)
* doc/posix-functions/realloc.texi (realloc):
Document more realloc (p, 0) gotchas: evolution of C standards,
errno values, which glibc versions do what, how programs might
misbehave, what happens when not growing.
2024-10-19 Bruno Haible <bruno@clisp.org>
realloc: Improve documentation.
* doc/posix-functions/realloc.texi: Regarding realloc(p,0), document
what the platforms actually do, not merely theoretical possibilities.
2024-10-17 Collin Funk <collin.funk1@gmail.com>
Use a warranty disclaimer in all-permissive license notices, part 2.
* doc/gnulib-intro.texi (Copyright): Add a short warranty disclaimer
sentence.
* users.txt: Likewise.
* modules/COPYING: Likewise.
2024-10-17 Bruno Haible <bruno@clisp.org>
Use a warranty disclaimer in all-permissive license notices.
* etc/license-notices/unlimited: Add a short warranty disclaimer
sentence.
* m4/*.m4: Update.
* build-aux/prefix-gnulib-mk: Likewise.
* HACKING: Likewise.
2024-10-17 Bruno Haible <bruno@clisp.org>
gettext: Un-obsolete.
Reported by Assaf Gordon <assafgordon@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00047.html>.
* modules/gettext (Description): Add a third purpose.
(Status, Notice): Remove sections.
2024-10-16 Bruno Haible <bruno@clisp.org>
crc tests: Add a benchmark program.
* tests/macros.h (randomb): New declaration.
* tests/randomb.c: New file.
* tests/bench-crc.c: New file.
* modules/crc-tests (Files): Add them. Add tests/macros.h,
tests/bench.h.
(Depends-on): Add getrusage, gettimeofday.
(Makefile.am): Arrange to compile bench-crc.
2024-10-16 Bruno Haible <bruno@clisp.org>
pthread-h tests: Fix a compilation error on MacOS X 10.4.
Reported by Sevan Janiyan <venture37@geeklan.co.uk> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-11/msg00183.html>.
* tests/test-pthread.c: Omit the PTHREAD_RWLOCK_INITIALIZER test if
module 'pthread-rwlock' is not in use.
2024-10-13 Bruno Haible <bruno@clisp.org>
string-desc: New function string_desc_c_casecmp.
* lib/string-desc.h: New declaration.
* lib/string-desc.c: Include <limits.h>, c-ctype.h.
(string_desc_c_casecmp): New function.
* modules/string-desc (Depends-on): Add c-ctype.
* tests/test-string-desc.c (main): Add tests of string_desc_c_casecmp.
2024-10-13 Bruno Haible <bruno@clisp.org>
string-desc: Fix categorization string_desc_new_addr.
* lib/string-desc.h (string_desc_new_addr): Move to section
"Side-effect-free operations".
* lib/string-desc.c (string_desc_new_addr): Move accordingly.
2024-10-12 Bruno Haible <bruno@clisp.org>
doc: Recommend string descriptors for application area like parsers.
* doc/string-desc.texi (Handling strings with NUL characters): Mention
the ease of taking a substring.
2024-10-11 Bruno Haible <bruno@clisp.org>
bison-i18n: Add support for mingw builds on Cygwin hosts.
* m4/bison-i18n.m4 (BISON_I18N): Define also BISON_LOCALEDIR_c and
BISON_LOCALEDIR_c_make.
* modules/bison-i18n (Files): Add m4/build-to-host.m4.
2024-10-11 Bruno Haible <bruno@clisp.org>
build-to-host.m4: Add one more convenience macro.
* m4/build-to-host.m4 (gl_BUILD_TO_HOST_DATADIR): New macro.
2024-10-10 Bruno Haible <bruno@clisp.org>
csharpcomp-script: Handle directories with spaces correctly.
Reported by Michele Locati <michele@locati.it>.
* build-aux/csharpcomp.sh.in (command_for_print, command_for_eval,
options_csc_for_print, options_csc_for_eval, sources_csc_for_print,
sources_csc_for_eval): New variables.
(sed_protect_1, sed_protect_2a, sed_protect_2b, sed_protect_2c,
sed_protect_3a, sed_protect_3b): New variables, copied from
build-aux/x-to-1.in.
(func_add_word_to_command): New function, copied from
build-aux/x-to-1.in.
(func_add_word_to_options_csc, func_add_word_to_sources_csc): New
functions.
(options_csc, sources_csc): Remove variables. Use
func_add_word_to_options_csc, func_add_word_to_sources_csc instead of
augmenting them.
Use options_csc_for_print, options_csc_for_eval, sources_csc_for_print,
sources_csc_for_eval when invoking csc.
* build-aux/csharpexec.sh.in (sed_quote_subst): Remove unused variable.
2024-10-10 Bruno Haible <bruno@clisp.org>
java{comp,exec}-script, csharp{comp,exec}-script: Improve debugging.
* build-aux/javaexec.sh.in: Send debugging output to stderr, not stdout.
* build-aux/javacomp.sh.in: Likewise.
* build-aux/csharpexec.sh.in: Likewise.
* build-aux/csharpcomp.sh.in: Likewise.
2024-10-09 Bruno Haible <bruno@clisp.org>
csharpcomp: Avoid error on Windows.
Reported by Michele Locati <michele@locati.it>.
* build-aux/csharpcomp.sh.in: Don't produce -reference options for DLLs
whose name starts with a lowercase letter or contains '.Native.'.
* lib/csharpcomp.c (name_is_dll): Filter our file names that start with
a lowercase letter or contain '.Native.'.
2024-10-09 Bruno Haible <bruno@clisp.org>
csharpcomp-script: Recognize dotnet even without --enable-csharp=dotnet.
* m4/csharpcomp.m4 (gt_CSHARPCOMP): Try 'dotnet' also when
--enable-csharp=dotnet is not specified.
2024-10-08 Bruno Haible <bruno@clisp.org>
csharpcomp: Add support for dotnet.
* lib/csharpcomp.c: Include <dirent.h>, concat-filename.h, xvasprintf.h.
(name_is_dll): New function, from lib/csharpexec.c.
(compile_csharp_using_dotnet): New function.
(compile_csharp_class): Invoke compile_csharp_using_dotnet.
* modules/csharpcomp (Depends-on): Add xconcat-filename, scandir,
alphasort, xvasprintf.
csharpcomp-script: Add support for dotnet.
* m4/csharpcomp.m4 (gt_CSHARPCOMP): Support 'dotnet' as implementation.
Set HAVE_DOTNET_SDK, HAVE_DOTNET_CSC.
* build-aux/csharpcomp.sh.in: Add implementations for the cases
$HAVE_DOTNET_SDK = 1 and $HAVE_DOTNET_CSC = 1.
2024-10-08 Bruno Haible <bruno@clisp.org>
csharpexec: Add support for dotnet.
* lib/csharpexec.c: Include <dirent.h>, <errno.h>, <sys/stat.h>,
dirname.h, concat-filename.h, canonicalize.h, spawn-pipe.h,
wait-process.h, xalloc.h, copy-file.h, clean-temp-simple.h,
clean-temp.h.
(name_is_dll, execute_csharp_using_dotnet): New functions.
(execute_csharp_program): Invoke execute_csharp_using_dotnet.
* modules/csharpexec (Depends-on): Add stat, dirname, xconcat-filename,
canonicalize, spawn-pipe, wait-process, scandir, alphasort, copy-file,
clean-temp-simple, clean-temp.
csharpexec-script: Add support for dotnet.
* m4/csharpexec.m4 (gt_CSHARPEXEC): Support 'dotnet' as implementation.
Set HAVE_DOTNET.
* build-aux/csharpexec.sh.in (func_tmpdir): New function, copied from
build-aux/csharpcomp.sh.in.
Add implementation for the case $HAVE_DOTNET = 1.
2024-10-08 Bruno Haible <bruno@clisp.org>
csharpexec-script, csharpcomp-script: Prepare support for dotnet.
* m4/csharp.m4 (gt_CSHARP_CHOICE): Recognize 'dotnet' as value of
--enable-csharp.
2024-10-08 Bruno Haible <bruno@clisp.org>
csharpcomp: Behave like csharpcomp-script.
* lib/csharpcomp.c (compile_csharp_using_sscli): Pass the option
'-nologo' to csc.
2024-10-08 Bruno Haible <bruno@clisp.org>
csharpcomp: Fix memory management bug (regression yesterday).
* lib/csharpcomp.c (compile_csharp_using_sscli): Allocate the source
options with malloc() always, not sometimes with malloca() and sometimes
with malloc().
2024-10-07 Bruno Haible <bruno@clisp.org>
csharpcomp: Improve Cygwin support.
* lib/csharpcomp.c: Include cygpath.h.
(compile_csharp_using_sscli): Convert the file names passed to 'csc' to
native Windows syntax.
* modules/csharpcomp (Depends-on): Add cygpath.
csharpcomp-script: Improve Cygwin support.
* build-aux/csharpcomp.sh.in: Convert the file names passed to 'csc' to
native Windows syntax.
2024-10-07 Bruno Haible <bruno@clisp.org>
csharpexec: Improve Cygwin support.
* lib/csharpexec.c: Include cygpath.h.
(execute_csharp_using_sscli): Convert the first 'clix' argument to
native Windows syntax.
* modules/csharpexec (Depends-on): Add cygpath.
csharpexec-script: Improve Cygwin support.
* build-aux/csharpexec.sh.in: Convert the first 'clix' argument to
native Windows syntax.
2024-10-07 Bruno Haible <bruno@clisp.org>
cygpath: New module.
* lib/cygpath.h: New file.
* lib/cygpath.c: New file, based on lib/javaversion.c.
* modules/cygpath: New file.
2024-10-07 Bruno Haible <bruno@clisp.org>
mntent: Fix syntax error when module 'hasmntopt' is not in use.
Reported by Bernhard Voelker <mail@bernhard-voelker.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-10/msg00039.html>.
* modules/mntent (configure.ac): Invoke gl_MNTENT_H_REQUIRE_DEFAULTS.
2024-10-07 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix test failure on Cygwin.
* lib/file-has-acl.c (file_has_aclinfo): On Cygwin, don't fail if
acl_get_file (name, ACL_TYPE_DEFAULT) returns NULL on a file of unknown
type.
2024-10-07 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix performance regression on FreeBSD, Cygwin.
* lib/dirent.in.h (_GL_DT_NOTDIR): New macro.
* lib/acl.h (ACL_SYMLINK_FOLLOW): Increase value.
* lib/file-has-acl.c (file_has_aclinfo): Don't call
acl_get_file (name, ACL_TYPE_DEFAULT) if we know that name does not
denote a directory.
(file_has_acl): Extract from *SB the information that NAME is not a
directory.
2024-10-07 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix comments.
* lib/file-has-acl.c (file_has_aclinfo): Fix typo in comment.
2024-10-06 Bruno Haible <bruno@clisp.org>
javacomp, javaversion: Fix resource leak.
* lib/javacomp.c (execute_and_read_line): When fdopen fails, terminate
the program.
* lib/javaversion.c (execute_and_read_line): Likewise. When we can't
read a single line, call fclose and wait_subprocess, to free resources.
2024-10-05 Paul Eggert <eggert@cs.ucla.edu>
mktime: fix daylight default
Problem for FreeBSD 14 reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-10/msg00026.html
* m4/mktime.m4 (gl_PREREQ_MKTIME): Default daylight to 1, not 0.
2024-10-04 Paul Eggert <eggert@cs.ucla.edu>
mktime: improve thread-safety
* lib/mktime.c (__mktime_internal) [!_LIBC]: Double the number of
probes. Although this isn’t guaranteed to suffice, it should be
good enough for practical applications, and fixing the problem
in general would require access to the underlying tz state lock
which would be hard to do.
mktime: fix timegm bug that set tmp->tm_isdst
* lib/timegm.c (__timegm64): Omit now-unnecessary initialization
of tm_isdst. Anyway, the initialization was always wrong, since
timegm should not modify *TMP when it fails.
mktime: refactor to get closer to glibc
* lib/mktime.c (convert_time): Reorder args.
(__tz_convert): New macro. All convert_time callers changed to use it.
2024-10-04 Bruno Haible <bruno@clisp.org>
iconv_open: Fix undefined behaviour.
Reported by Tim Sweet <tsweet64@protonmail.com>
at <https://savannah.gnu.org/bugs/?66289>.
* lib/iconv.c (utf32be_mbtowc, utf32le_mbtowc): Cast 'unsigned char'
values to ucs4_t before shifting them to the left.
2024-10-04 Bruno Haible <bruno@clisp.org>
bcp47: Refactor.
* lib/bcp47.c (SCRIPT_*): New macros.
(default_script_in_territory, default_script_for_language2,
default_script_for_language3): New functions.
(xpg_to_bcp47, bcp47_to_xpg): Use them.
2024-10-04 Paul Eggert <eggert@cs.ucla.edu>
timegm: ignore incoming tm_isdst
Problem reported by Florian Weimer via a proposed glibc patch in:
https://sourceware.org/pipermail/libc-alpha/2024-October/160310.html
* lib/mktime.c (__mktime_internal): Ignore any tm_isdst request
if the timezone never observes DST, as is the case for timegm.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Define new C macro __daylight
if needed.
timegm: desync from glibc for now
* config/srclist.txt: Omit time/timegm.c and time/mktime-internal.h
for now, until we can sync glibc from Gnulib.
* lib/mktime-internal.h, lib/timegm.c: Revert autoupdate, going
back to the recent Gnulib-specific version.
2024-10-03 Paul Eggert <eggert@cs.ucla.edu>
mktime: prefer static_assert to verify
This should work better with glibc.
* lib/mktime.c: Do not include verify.h.
Use static_assert instead of verify.
* modules/mktime (Depends-on): Depend on assert-h, not verify.
mktime: refactor convert_time
This is to better merge with a future version of glibc.
This merges a glibc patch by Florian Weimer in:
https://sourceware.org/pipermail/libc-alpha/2024-October/160308.html
* lib/mktime.c (convert_time): Accept a boolean flag instead
of a function pointer. All callers changed.
2024-10-03 Bruno Haible <bruno@clisp.org>
bcp47: Add tests.
* tests/test-bcp47.c: New file.
* modules/bcp47-tests: New file.
bcp47: New module.
* lib/bcp47.h: New file.
* lib/bcp47.c: New file.
* modules/bcp47: New file.
2024-10-02 Collin Funk <collin.funk1@gmail.com>
error, verror: Don't call va_end twice.
* lib/error.c (error_tail): Remove va_end call.
2024-10-02 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: no need for struct stat
Change the API of the new file_has_aclinfo function so that it no
longer needs a struct stat *. In some cases this can help GNU ls
avoid an unnecessary ‘stat’ call for each file it lists, which
can be a significant win.
* lib/acl.h (ACL_SYMLINK_NOFOLLOW): Change from 1 to UCHAR_MAX+1
so that it can be ORed with any d_type value.
* lib/file-has-acl.c: Include dirent.h, for the DT_* macros.
Check that ACL_SYMLINK_NOFOLLOW is outside unsigned char range.
(file_has_aclinfo): Change API so that struct stat is no longer
needed. Instead, the file type (if known) is passed as part of
the flags. All callers changed. Simplify NFSv4 code.
* modules/file-has-acl (Depends-on): Add assert-h for static_assert,
and dirent for DT_* macros.
* tests/test-file-has-acl.c: Include dirent.h.
(main): Adjust to file_has_aclinfo API change.
Briefly test ACL_SYMLINK_FOLLOW.
dirent: define DT_* macros on all platforms
* lib/dirent.in.h (DT_UNKNOWN, DT_FIFO, DT_CHR, DT_DIR, DT_BLK)
(DT_REG, DT_LNK, DT_SOCK, DT_WHT): Define these on all platforms,
if the system does not already define them. Check that they
have distinct values.
(_GL_DIRENT_S_ISWHT, _GL_DIRENT_S_IFWHT) [!(IFTODT && DTTOIF)]:
New macros.
(IFTODT, DTTOIF): Define if not already defined.
* modules/dirent (Depends-on): Add assert-h, extensions.
2024-10-02 Bruno Haible <bruno@clisp.org>
Silence -Wunused-const-variable warnings in Gnulib code.
Reported by Yuri Kanivetsky <yuri.kanivetsky@gmail.com>
via Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-10/msg00007.html>.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Add
-Wno-unused-const-variable whenever it is supported.
2024-10-01 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl-tests: omit string.h include
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-10/msg00001.html
* tests/test-file-has-acl.c: Don’t include string.h.
file-has-acl.c: port back to macOS
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-10/msg00000.html
* lib/file-has-acl.c (file_has_aclinfo): Don’t attempt to link to
acl_extended_file if !HAVE_ACL_EXTENDED_FILE. Most of this patch
consists of indenting changes; the real change is to use ‘#if’
rather than ‘if’.
2024-10-01 Bruno Haible <bruno@clisp.org>
localename-unsafe: Modernize locale name mapping.
* lib/localename-unsafe.c (gl_locale_name_from_win32_LANGID): Return
"az" instead of "az@latin", "az_AZ" instead of "az_AZ@latin",
"ber_MA" instead of "ber_MA@arabic", "ber_DZ" instead of "ber_DZ@latin".
2024-09-30 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: improve performance on Linux symlinks
* lib/file-has-acl.c (USE_LINUX_XATTR): Now can be used outside #if.
(file_has_aclinfo): As an optimization on Linux, do not attempt to
get extended attributes on symlinks, as this will always fail.
Also, use lgetxattr (not getxattr) and acl_extended_file_nofollow
(not acl_extended_file) when not following symlinks, to avoid some
races.
2024-09-30 Bruno Haible <bruno@clisp.org>
selinux-h: Fix two syntax errors.
* m4/selinux-selinux-h.m4 (gl_CHECK_HEADER_SELINUX_SELINUX_H):
Terminate each 'case' clause with ';;'. Remove extraneous closing brace.
2024-09-30 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix compilation error (regression yesterday).
* m4/acl.m4 (gl_FILE_HAS_ACL): Require, not invoke,
gl_CHECK_HEADER_SELINUX_SELINUX_H.
2024-09-29 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: new function file_has_aclinfo
This is for GNU coreutils, whose ‘ls’ can be made faster with the
new function because it means (for example) that ‘ls’ needn’t call
both listxattr and lgetxattr in the common case where the file has
no extended attributes.
* lib/acl.h (ACL_SYMLINK_FOLLOW): New constant.
(struct aclinfo): New type.
* lib/file-has-acl.c (UNKNOWN_SECURITY_CONTEXT): New constant.
(USE_LINUX_XATTR): New macro. When set:
Include stdint.h (for uint32_t). If also USE_SELINUX_SELINUX_H,
include selinux/selinux.h (for getfilecon).
If HAVE_SMACK, include <sys/smack.h>, otherwise provide substitutes
for smack_smackfs_path and smack_new_label_from_path.
(is_smack_enabled): New function.
(aclinfo_has_xattr): Rename from have_xattr and make it extern.
Use struct aclinfo const * arg instead of char const * and ssize_t.
Work even if ai->size < 0. Supply a no-op macro on platforms
lacking xattr.
(get_aclinfo): New static function, much of it taken from
coreutils/src/ls.c.
(file_has_aclinfo): New function, which generalizes file_has_acl
to provide more info. Its body is taken from the old file_has_acl
with new stuff from ls.c.
(file_has_acl): Use it.
(aclinfo_scontext_free, aclinfo_free): Nwew functions, if not
already no-op macros.
* m4/acl.m4 (gl_FUNC_ACL_ARG): Add --without-libsmack option.
(gl_FILE_HAS_ACL): Check for libsmack, selinux.
* m4/selinux-selinux-h.m4 (gl_CHECK_HEADER_SELINUX_SELINUX_H):
New macro, for use by file-has-acl. Rename HAVE_SELINUX_SELINUX_H
to USE_SELINUX_SELINUX_H to avoid confusion as to whether we have
<selinux/selinux.h>; all uses changed.
(gl_HEADERS_SELINUX_SELINUX_H): Use the new macro.
* modules/file-has-acl (Files): Add m4/selinux-selinux-h.m4.
(Depends-on): Add errno, ssize_t.
* tests/test-file-has-acl.c (main): Add a little test for
file_has_aclinfo.
2024-09-26 Bruno Haible <bruno@clisp.org>
string-buffer tests: Avoid test failure on native Windows.
Reported by Michele Locati <mlocati@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00135.html>.
* tests/test-string-buffer.c (main): Skip a wchar_t test on native
Windows.
2024-09-25 Bruno Haible <bruno@clisp.org>
manywarnings: Enable -Wthread-safety for clang.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): Enable -Wthread-safety
if supported.
2024-09-25 Bruno Haible <bruno@clisp.org>
build-to-host.m4: Add one more convenience macro.
* m4/build-to-host.m4 (gl_BUILD_TO_HOST_PKGLIBEXECDIR): New macro.
2024-09-25 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Add support for mingw builds on Cygwin hosts.
Reported by Michele Locati <michele@locati.it> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-09/msg00033.html>.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_BODY): Use
gl_BUILD_TO_HOST on the value of INSTALLPREFIX.
* modules/relocatable-lib (Files): Add m4/build-to-host.m4.
* modules/relocatable-lib-lgpl (Files): Likewise.
* modules/relocatable-prog-wrapper (Files): Likewise.
2024-09-25 Bruno Haible <bruno@clisp.org>
build-to-host.m4: Add some convenience macros.
Reported by Michele Locati <michele@locati.it> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-09/msg00033.html>.
* m4/build-to-host.m4 (gl_BUILD_TO_HOST_BINDIR, gl_BUILD_TO_HOST_LIBDIR,
gl_BUILD_TO_HOST_LIBEXECDIR, gl_BUILD_TO_HOST_LOCALEDIR,
gl_BUILD_TO_HOST_PKGDATADIR, gl_BUILD_TO_HOST_PKGLIBDIR): New macros.
* m4/gettext.m4 (AM_GNU_GETTEXT): Invoke gl_BUILD_TO_HOST_LOCALEDIR.
* doc/relocatable-maint.texi (Supporting Relocation): Suggest to use the
*dir_c_make variables and explain how to get them.
2024-09-25 Bruno Haible <bruno@clisp.org>
xstring-buffer: New module.
* lib/string-buffer.h (sb_xappend1, sb_xappend_desc, sb_xappend_c,
sb_xappendvf, sb_xappendf, sb_xcontents_c, sb_xdupfree, sb_xdupfree_c):
New declarations.
* lib/xstring-buffer.c: New file.
* lib/xstring-buffer-printf.c: New file.
* modules/xstring-buffer: New file.
2024-09-25 Bruno Haible <bruno@clisp.org>
string-buffer: Add more API.
* lib/string-buffer.h: Include string-desc.h.
(sb_append1, sb_append_desc): New declarations.
(sb_append_c): Renamed from sb_append.
(sb_contents, sb_contents_c, sb_dupfree): New declarations.
(sb_dupfree_c): Renamed from sb_dupfree.
* lib/string-buffer.c (sb_append1, sb_append_desc): New functions.
(sb_append_c): Renamed from sb_append.
(sb_contents, sb_contents_c, sb_dupfree): New functions.
(sb_dupfree_c): Renamed from sb_dupfree. Optimize.
* modules/string-buffer (Depends-on): Add string-desc.
* tests/test-string-buffer.c (main): Use sb_append_c instead of
sb_append. Use sb_dupfree_c instead of sb_dupfree. Test also sb_append1,
sb_append_desc, sb_contents.
* NEWS: Mention the changes.
2024-09-25 Bruno Haible <bruno@clisp.org>
string-buffer: Enable resource leak warnings from clang.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macros
_GL_ATTRIBUTE_CAPABILITY_TYPE, _GL_ATTRIBUTE_ACQUIRE_CAPABILITY,
_GL_ATTRIBUTE_RELEASE_CAPABILITY.
* lib/string-buffer.h (sb_heap_allocated_pointer_t): New type.
(struct string_buffer): Use it.
(sb_init): Mark with _GL_ATTRIBUTE_ACQUIRE_CAPABILITY.
(sb_free, sb_dupfree): Mark with _GL_ATTRIBUTE_RELEASE_CAPABILITY.
* lib/string-buffer.c: Silence the -Wthread-safety warnings in this
compilation unit.
2024-09-24 Bruno Haible <bruno@clisp.org>
string-buffer: Remove INT_MAX limitation.
* lib/string-buffer.h (sb_appendvf, sb_appendf): Document that errno is
set upon failure.
* lib/string-buffer-printf.c: Include <errno.h>.
(sb_appendvf): Call vsnzprintf instead of vsnprintf. Ensure errno is
set upon failure.
(sb_appendf): Likewise.
* modules/string-buffer (Depends-on): Add vsnzprintf-posix. Remove
vsnprintf-posix.
* tests/test-string-buffer.c (main): Test error code from sb_appendf.
2024-09-24 Bruno Haible <bruno@clisp.org>
string-buffer: Link to vasnprintf implementation only when needed.
* lib/string-buffer-printf.c: New file, extracted from
lib/string-buffer.c.
* lib/string-buffer.c: Don't include <stdarg.h>.
(sb_ensure_more_bytes): Declare. Make non-static.
(sb_appendvf, sb_appendf): Moved to lib/string-buffer-printf.c.
* modules/string-buffer (Files): Add lib/string-buffer-printf.c.
(Makefile.am): Arrange to compile string-buffer-printf.c.
2024-09-24 Bruno Haible <bruno@clisp.org>
sfl-istream: Add tests.
* tests/test-sfl-istream.c: New file, based on tests/test-sf-istream.c.
* modules/sfl-istream-tests: New file.
sfl-istream: New module.
* lib/sfl-istream.h: New file.
* lib/sfl-istream.c: New file.
* modules/sfl-istream: New file.
2024-09-24 Bruno Haible <bruno@clisp.org>
sf-istream: Add tests.
* tests/test-sf-istream.c: New file.
* modules/sf-istream-tests: New file.
sf-istream: New module.
* lib/sf-istream.h: New file.
* lib/sf-istream.c: New file.
* modules/sf-istream: New file.
* doc/posix-functions/fmemopen.texi: Mention the new module.
2024-09-23 Bruno Haible <bruno@clisp.org>
getopt-posix: Fix compilation error in C++ mode (regression 2024-09-21).
* lib/getopt-pfx-core.h: On AIX, HP-UX, Solaris, QNX, include <stdio.h>
first.
2024-09-23 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix link error (regression 2024-09-20).
* m4/libdl.m4: New file.
* modules/jit/cache-tests (Files): Add it.
(configure.ac): Invoke gl_LIBDL.
(Makefile.am): Link test-cache with $(LIBDL).
2024-09-23 Bruno Haible <bruno@clisp.org>
utimens: Fix test failure on NetBSD 10 (regression 2024-09-16).
* lib/utimens.h (utimens): Declare as an override if utimens exists in
libc.
(lutimens): Declare as an override if lutimens exists in libc.
* lib/utimens.c (is_valid_timespec, is_valid_timespecs): New functions,
extracted from validate_timespec.
(validate_timespec): Call is_valid_timespecs.
(utimens, lutimens): On NetBSD, validate the argument before calling
NetBSD's libc function.
* tests/test-utimens-common.h (check_ctime): Set to -1 on NetBSD.
2024-09-21 Bruno Haible <bruno@clisp.org>
getopt-posix, crypto/md5-buffer: Fix __GNUC_PREREQ re clang.
* lib/getopt-cdefs.in.h (__GNUC_PREREQ): Copy definition from
lib/libc-config.h.
* lib/md5.h (__GNUC_PREREQ): Likewise.
2024-09-21 Henrik Lindström <henrik@lxm.se>
getopt-posix: Improve definition of __GNUC_PREREQ.
* lib/getopt-cdefs.in.h (__GNUC_PREREQ): Test __GNUC_MINOR__, not
__GNUC_VERSION__.
2024-09-20 Paul Eggert <eggert@cs.ucla.edu>
sigsegv-tests: port to GCC 14
GCC 14 on x86-64 with -O2 apparently outsmarts our test for null
pointer dereference, and this is something the C standard allows.
Fix the test by putting ‘volatile’ at the right place.
* tests/test-sigsegv-catch-stackoverflow2.c (null_pointer):
Make it a volatile pointer, not a pointer to volatile.
Also, rename from null_pointer_to_volatile_int; use changed.
2024-09-20 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix crash with clang's UBSAN + ASAN.
* tests/jit/test-cache.c (clang_ubsan_workaround): New variable.
(CODE, SET_CODE): Use it.
(main): Initialize it.
2024-09-20 Bruno Haible <bruno@clisp.org>
unictype/scripts: Fix integer overflow in generated table.
Reported by clang through a -Wconstant-conversion warning.
* lib/gen-uni-tables.c (output_scripts): Generate a level2 array of
'unsigned short', not 'short', values.
* lib/unictype/scripts.h: Regenerated.
* lib/unictype/scripts.c (uc_script): Update accordingly.
2024-09-20 KO Myung-Hun <komh78@gmail.com>
wait-process: Use waitpid() of LIBCx on OS/2 kLIBC if available.
* lib/wait-process.c (klibc_waitpid) [kLIBC]: New function.
(waitpid) [kLIBC]: Define it to klibc_waitpid.
2024-09-19 Bruno Haible <bruno@clisp.org>
spawn-pipe: Simplify.
* m4/spawn-pipe.m4 (gl_SPAWN_PIPE): Don't define HAVE_LIBCX_SPAWN2_H as
an AC_SUBSTed variable. Don't test for it on platforms other than OS/2.
2024-09-19 KO Myung-Hun <komh78@gmail.com>
spawn-pipe: Support a directory argument of create_pipe() on OS/2 kLIBC.
* lib/os2-spawn.h (spawnpvech): New declaration.
* lib/os2-spawn.c (spawnpvech): New function.
* lib/spawn-pipe.c (create_pipe) [kLIBC]: Reimplement with spawnpvech().
* m4/spawn-pipe.m4 (gl_SPAWN_PIPE) [HAVE_LIBCX_SPAWN2_H]: Check if
libcx/spawn2.h is available.
2024-09-16 Paul Eggert <eggert@cs.ucla.edu>
utimens: port to NetBSD-10.99.12/amd64
On this platform, <sys/time.h> declares utimens and lutimens and the
C library defines them, so we needn’t (and shouldn’t).
Problem reported privately by Thomas Klausner.
* lib/utimens.c (utimens) [HAVE_UTIMENS]: Don’t define.
(lutimens) [HAVE_LUTIMENS]: Don’t define.
* lib/utimens.h [HAVE_UTIMENS || HAVE_LUTIMENS]:
Include <sys/time.h>, for NetBSD’s declaration of utimens and lutimens.
(utimens) [HAVE_UTIMENS]: Don’t declare.
(lutimens) [HAVE_LUTIMENS]: Don’t declare.
* m4/utimens.m4 (gl_UTIMENS): Check for utimens, lutimens.
2024-09-16 Bruno Haible <bruno@clisp.org>
stdlib: Fix compilation error with Sun C++.
* lib/stdlib.in.h: Don't obey the special invocation convention when
Sun C++ is used.
2024-09-16 Bruno Haible <bruno@clisp.org>
stdc_count_ones: Fix compilation error with g++ < 4.4.
* lib/stdbit.in.h (__gl_stdbit_popcount_wide): Suffix 64-bit integer
constant with LL.
2024-09-16 Bruno Haible <bruno@clisp.org>
faccessat: Correct errno value on AIX.
* lib/faccessat.c (rpl_faccessat): Do the trailing-slash workaround also
if the original faccessat invocation failed.
2024-09-16 Paul Eggert <eggert@cs.ucla.edu>
fflush: NetBSD, OpenBSD can’t fflush input
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Guess no on NetBSD and
OpenBSD; they document fflush to fail unless the stream is open
for writing.
2024-09-16 Bruno Haible <bruno@clisp.org>
unictype/category-of: Fix integer overflow in generated table.
Reported by clang through -Wconstant-conversion warnings.
* lib/gen-uni-tables.c (output_category): Generate a level2 array of
'unsigned short', not 'short', values.
* lib/unictype/categ_of.h: Regenerated.
* lib/unictype/categ_of.c (lookup_withtable): Update accordingly.
2024-09-16 Bruno Haible <bruno@clisp.org>
unilbrk tests: Avoid two gcc -Wparentheses warnings.
* tests/unilbrk/test-uc-possible-linebreaks.c (main): Add redundant
parentheses.
2024-09-16 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime no longer depends on nstrftime
I discovered this unnecessary dependency when debugging
GNU Patch.
* lib/parse-datetime.y:
(populate_local_time_zone_table) [!HAVE_STRUCT_TM_TM_ZONE]:
(debug_strfdatetime): Use strftime not nstrftime,
as we don’t need nstrftime’s extensions or bug fixes.
* modules/parse-datetime (Depends-on): Remove nstrftime.
Also remove setenv, unsetenv, timegm, as this module
no longer depends on them directly.
Don’t port July [[...]] changes to C89
Yesterday’s changes to port to C17 and earlier were intrusive,
since they twice replaced one macro with two. Revert the macro
definitions to what they were before yesterday, and instead change
callers so that they always have four arguments even if the last
one is empty. Although this change requires C99 or later, that’s
safe nowadays. Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-09/msg00079.html
* doc/gnulib-readme.texi (C99 features assumed):
Document that we assume this C99 feature.
* lib/c++defs.h (_GL_FUNCDECL_RPL, _GL_FUNCDECL_SYS):
Revert yesterday’s changes. All callers changed.
Add comments explaining the required comma before missing attrs.
2024-09-16 Bruno Haible <bruno@clisp.org>
wchar: Fix compilation error (regression yesterday).
* lib/wchar.in.h (wctob): Use _GL_FUNCATTR_RPL, _GL_FUNCATTR_SYS here
as well.
wchar: Fix compilation error (regression yesterday).
* lib/wchar.in.h (btowc): Use _GL_FUNCATTR_RPL, _GL_FUNCATTR_SYS here
as well.
2024-09-15 Paul Eggert <eggert@cs.ucla.edu>
Port July changes for [[...]] to C17
The July 30 changes to _GL_FUNCDECL_RPL etc. to support use of
attributes in bracket syntax used a C23 preprocessor feature that is
a common extension to C17 and earlier, but which doesn’t work when
compiled with stricter C17-and-earlier compilers. The feature is
using ‘#define f(a, ...) b’ and calling ‘f’ with only one arg.
Port back to C17 and earlier. Problem discovered with
IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72) on cfarm111.
* lib/c++defs.h (_GL_FUNCDECL_RPL): Turn this into two macros
_GL_FUNCDECL_RPL and _GL_FUNCATTR_RPL. The first macro is for
functions without attributes, the second one for functions with
attributes. All uses changed.
(_GL_FUNCDECL_SYS): Likewise, turn this into _GL_FUNCDECL_SYS
and _GL_FUNCATTR_SYS.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Some more tweaks.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Assign to preceding_prop at each loop round. Assign to prev2_ea,
prev_ea, prev_nus also when a line break was seen.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Strengthen tests.
* lib/gen-uni-tables.c: Add shell commands for creating
tests/unilbrk/LineBreakTest.txt.
* tests/unilbrk/LineBreakTest.txt: New file, from unicode.org.
* tests/unilbrk/test-uc-possible-linebreaks.c: New file, based on
tests/uniwbrk/test-uc-wordbreaks.c.
* tests/unilbrk/test-uc-possible-linebreaks.sh: New file, based on
tests/uniwbrk/test-uc-wordbreaks.sh.
* modules/unilbrk/u32-possible-linebreaks-tests (Files): Add them.
(Makefile.am): Arrange to compile test-uc-possible-linebreaks.c and test
test-uc-possible-linebreaks.sh.
2024-09-15 Bruno Haible <bruno@clisp.org>
uniwbrk tests: Modernize code.
* tests/uniwbrk/test-uc-wordbreaks.c (main): Reduce the scope of local
variables. Remove memset() calls. Align expected and actial output
lines. Add comments.
2024-09-15 Bruno Haible <bruno@clisp.org>
unigbrk tests: Modernize code.
* tests/unigbrk/test-uc-grapheme-breaks.c (main): Reduce the scope of
local variables. Add comments.
* tests/unigbrk/test-uc-is-grapheme-break.c (main): Likewise.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Fix conflicts between rules.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Avoid side effect of (LB18) on (LB14) and (LB15a). Avoid side effect
of (LB19a) on (LB18).
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Enable most cases of Unicode rule (LB29).
* lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Enable rule LB29.
* lib/unilbrk/lbrktables.c: Regenerated.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Allow a break between a character with property IS and '<'.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Fully implement Unicode rule (LB9).
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
New variable preceding_prop. Don't copy prop to prev_prop and ea to
prev_ea if the conditions of rule (LB9) apply.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
2024-09-15 Bruno Haible <bruno@clisp.org>
unilbrk: Fix bugs in implementation of Unicode rules (LB15a), (LB15b).
* lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Fix typo in
comment.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Do the LBP_QU2 to LBP_QU1 mapping for (LB15a) after the table lookup but
before the assignment to last_prop. Do the LBP_QU3 to LBP_QU1 mapping
for (LB15b) in a way that does not influence prev_prop or last_prop.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
2024-09-14 Bruno Haible <bruno@clisp.org>
unilbrk: Fix bug in implementation of Unicode rule (LB16).
* lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Fix typo.
* lib/unilbrk/lbrktables.c: Regenerated.
2024-09-14 Bruno Haible <bruno@clisp.org>
unilbrk: Fix handling of unassigned code points (regression yesterday).
* lib/unilbrk/lbrktables.h (unilbrkprop_lookup): Correct the default
return value.
2024-09-14 Bruno Haible <bruno@clisp.org>
unilbrk/tables: Fix table (regression yesterday).
Reported by Collin Funk <collin.funk1@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00061.html>.
* lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Use LBP_AL1 as
array index instead of LBP_AL. Update comments.
* lib/unilbrk/lbrktables.c: Regenerated.
2024-09-13 Bruno Haible <bruno@clisp.org>
Implement a new property, added by Unicode 16.0.0.
* lib/gen-uni-tables.c (is_property_modifier_combining_mark): New
function.
(output_properties): Output also the property modifier_combining_mark.
* lib/unictype.in.h (UC_PROPERTY_MODIFIER_COMBINING_MARK,
uc_is_property_modifier_combining_mark): New declarations.
* m4/unictype_h.m4 (gl_UNICTYPE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK.
* modules/unictype/base (Makefile.am): Substitute
GNULIB_UNICTYPE_PROPERTY_MODIFIER_COMBINING_MARK.
* lib/unictype/pr_modifier_combining_mark.c: New file.
* lib/unictype/pr_modifier_combining_mark.h: New generated file.
* modules/unictype/property-modifier-combining-mark: New file.
* tests/unictype/test-pr_modifier_combining_mark.c: New generated file.
* modules/unictype/property-modifier-combining-mark-tests: New file.
* lib/unictype/pr_byname.gperf: Add modifier_combining_mark.
* lib/unictype/pr_byname.c
(UC_PROPERTY_INDEX_MODIFIER_COMBINING_MARK): New enum item.
(uc_property_byname): Handle it.
* modules/unictype/property-byname (Depends-on): Add
unictype/property-modifier-combining-mark.
* modules/unictype/property-all (Depends-on): Likewise.
* MODULES.html.sh (func_all_modules): Add
unictype/property-modifier-combining-mark.
2024-09-13 Bruno Haible <bruno@clisp.org>
Update to Unicode 16.0.0.
* lib/gen-uni-tables.c (PROP_MODIFIER_COMBINING_MARK): New enum item.
(fill_properties): Recognize property Modifier_Combining_Mark.
(UC_JOINING_GROUP_KASHMIRI_YEH): New enum item.
(fill_arabicshaping, joining_group_as_c_identifier): Handle
UC_JOINING_GROUP_KASHMIRI_YEH.
(LBP_*): Split LBP_AL into LBP_AL1 and LBP_AL2.
(LBP_AL): New enum item.
(get_lbea): New function.
(get_lbp): Use it. Update such that unilbrk/lbrkprop.txt comes out as
expected. Map U+25CC to LBP_AL2.
(PROP_EA, PROP, EA): New macros.
(debug_output_lbp): Print either LBP_AL1, LBP_AL2 as LBP_AL.
(lbp_value_to_string): Handle LBP_AL1, LBP_AL2 instead of LBP_AL.
(struct lbpea_table): Renamed from struct lbp_table.
(output_lbpea): Renamed from output_lbp. Store both the line break
property and the line break EastAsian bit in the same table entry.
(output_lbrk_tables): Update.
(output_lbrk_rules_as_tables): Update for LBP_AL change. Implement rules
LB28a, LB25, LB19, LB15d, LB13 as specified by
https://www.unicode.org/reports/tr14/tr14-53.html.
(get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
* lib/unictype.in.h (UC_JOINING_GROUP_KASHMIRI_YEH): New enum item.
* lib/unictype/joininggroup_byname.gperf: Handle it.
* lib/unictype/joininggroup_name.h: Likewise.
* lib/unilbrk/lbrktables.h: Split LBP_AL into LBP_AL1 and LBP_AL2.
(LBP_AKLS_VI): New enum item, for rule LB28a.
(PROP, EA, PROP_EA): New macros.
(unilbrk_table): Update bounds.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Use LBP_AL1 instead of LBP_AL. Use 2 characters of lookahead, for rules
LB15c, LB19a, LB25, LB28a. New variables prev_ea, prev2_ea, for rule
LB19a. New variable prev_initial_hyphen, for rule LB20a. New variable
prev_nus, for rule LB25. Implement rules LB15c, LB19a, LB20a, LB21a,
LB25, LB28a, as specified by
https://www.unicode.org/reports/tr14/tr14-53.html.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* modules/unilbrk/base (Depends-on): Add stdbool.
* tests/uninorm/test-u32-normalize-big.h
(struct normalization_test_file): Now 6 parts.
* tests/uninorm/test-u32-normalize-big.c (read_normalization_test_file):
Fill in 6 parts.
(test_specific, free_normalization_test_file): Now handle 6 parts.
* tests/uniwidth/test-uc_width2.sh: Update expected test result.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2024-09-13 Bruno Haible <bruno@clisp.org>
uninorm/composition: Fix mistake in last commit (regression yesterday).
* modules/uninorm/composition (Files): Add
lib/uninorm/composition-table-bounds.h.
2024-09-12 Bruno Haible <bruno@clisp.org>
uninorm/composition: Make more maintainable.
* lib/gen-uni-tables.c (output_composition_tables): Add a filename2
parameter. Emit definitions of UNINORM_COMPOSE_MAX_ARG1 and
UNINORM_COMPOSE_MAX_ARG2 to this file.
(main): Invoke it with additional file name
uninorm/composition-table-bounds.h.
* uninorm/composition-table-bounds.h: New generated file.
* lib/uninorm/composition.c: Include it.
(uc_composition): Use UNINORM_COMPOSE_MAX_ARG1 and
UNINORM_COMPOSE_MAX_ARG2 instead of hardcoded bounds.
2024-09-10 Bruno Haible <bruno@clisp.org>
mbrtoc16: Fix undefined behaviour.
* lib/mbrtoc16.c (SET_EXTRA_STATE): Cast to 'unsigned int' before
shifting the bits to the positions 31..16.
2024-09-09 Bruno Haible <bruno@clisp.org>
string-desc: Fix undefined behaviour.
* lib/string-desc-contains.c (string_desc_contains): Handle the case of
an empty haystack before invoking 'memmem'.
2024-09-09 Bruno Haible <bruno@clisp.org>
striconv, striconveh, unicodeio: Drop workaround for glibc 2.1.
* lib/striconv.c (mem_cd_iconv, str_iconv): Remove glibc-2.1 and
Solaris 9 bug workarounds.
* lib/striconveh.c (mem_cd_iconveh_internal): Likewise.
* lib/unicodeio.c (unicode_to_mb): Likewise.
striconv, striconveh: Drop workaround for glibc 2.1.
* lib/striconv.c (str_iconv): Remove glibc-2.1 bug workaround.
* lib/striconveh.c (iconveh_open): Likewise.
2024-09-08 Jim Meyering <meyering@meta.com>
crc.h: declare each function with _GL_ATTRIBUTE_PURE
* lib/crc.h (crc32, crc32_update, crc32_no_xor)
(crc32_update_no_xor): Declare with _GL_ATTRIBUTE_PURE.
2024-09-05 Paul Eggert <eggert@cs.ucla.edu>
Fix COPYING.EXCEPTION license notices
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00227.html
* m4/std-gnu11.m4: Fix license notice to use COPYING.EXCEPTION
correctly.
* m4/std-gnu23.m4: Likewise. Also document the commit ID,
since Autoconf was updated likewise and we’re copying from there.
2024-09-04 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 35.
Reported by Po Lu <luangruo@yahoo.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00024.html>.
* lib/time.in.h (timezone_t, tzalloc, tzfree): Don't require _GNU_SOURCE
to be defined. Define depending on HAVE_TZALLOC, not HAVE_TIMEZONE_T.
(localtime_rz, mktime_z): Likewise. Override if REPLACE_LOCALTIME_RZ or
REPLACE_MKTIME_Z is 1, respectively.
* lib/time_rz.c: If NEED_TIMEZONE_NULL_SUPPORT, define only localtime_rz
and mktime_z and only as wrappers around the system function.
* m4/time_h.m4 (gl_TIME_H_DEFAULTS): Initialize HAVE_TZALLOC,
REPLACE_LOCALTIME_RZ, REPLACE_MKTIME_Z.
* m4/time_rz.m4 (gl_TIME_RZ): Conditionally set HAVE_TZALLOC,
REPLACE_LOCALTIME_RZ, REPLACE_MKTIME_Z. Conditionally define
NEED_TIMEZONE_NULL_SUPPORT.
* modules/time-h (Makefile.am): Substitute HAVE_TZALLOC,
REPLACE_LOCALTIME_RZ, REPLACE_MKTIME_Z.
* modules/time_rz (Depends-on, configure.ac): Consider HAVE_TZALLOC,
REPLACE_LOCALTIME_RZ, REPLACE_MKTIME_Z. Ignore HAVE_TIMEZONE_T.
* m4/strerrorname_np.m4 (gl_FUNC_COPY_FILE_RANGE): Conditionally set
REPLACE_STRERRORNAME_NP.
(gl_CHECK_STRERRORNAME_NP): Test for strerrorname_np using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2024-09-04 Bruno Haible <bruno@clisp.org>
Doc regarding functions introduced in Android API level 35.
* doc/posix-functions/_Fork.texi: Mention the Android API levels.
* doc/glibc-functions/epoll_pwait2.texi: Likewise.
* doc/glibc-functions/strerrorname_np.texi: Likewise.
2024-09-03 Bruno Haible <bruno@clisp.org>
tests: Strenghten tests with invalid file descriptor.
* tests/test-close.c: Include <fcntl.h>.
(main): Check that AT_FDCWD is recognized as an invalid file descriptor.
* tests/test-dup.c: Include <fcntl.h>.
(main): Check that AT_FDCWD is recognized as an invalid file descriptor.
* tests/test-unlockpt.c: Include <fcntl.h>.
(main): Check that AT_FDCWD is recognized as an invalid file descriptor.
* tests/test-fchdir.c (main): Likewise.
* tests/test-fdatasync.c (main): Likewise.
* tests/test-fdopendir.c (main): Likewise.
* tests/test-fsync.c (main): Likewise.
* tests/test-isatty.c (main): Likewise.
2024-09-03 Bruno Haible <bruno@clisp.org>
doc: More details about pthread_setname_np.
Reported by Eric Gallager <egall@gwmail.gwu.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-09/msg00017.html>.
* doc/glibc-functions/pthread_setname_np.texi: Mention the different
signature on macOS.
2024-09-03 Simon Josefsson <simon@josefsson.org>
syntax-check: Catch all FSF postal addresses.
* top/maint.mk (sc_franklin_street): Rename to sc_fsf_postal,
improve regexp.
2024-09-03 Bruno Haible <bruno@clisp.org>
unlockpt tests: Avoid test failure on Haiku.
* tests/test-unlockpt.c (main): Skip the test on Haiku.
* doc/posix-functions/unlockpt.texi: Update platforms list.
2024-09-03 Bruno Haible <bruno@clisp.org>
doc: Mention a gmtime_r problem.
* doc/posix-functions/gmtime_r.texi: Mention "UTC" vs. "GMT".
2024-09-02 Bruno Haible <bruno@clisp.org>
vma-prot tests: Strengthen test.
Found by Coverity.
* tests/test-vma-prot.c (main): Fix typo.
2024-09-02 Simon Josefsson <simon@josefsson.org>
syntax-check: Catch obsolete Franklin Street usages.
* top/maint.mk (sc_franklin_street): New function.
2024-09-02 Bruno Haible <bruno@clisp.org>
error, getprogname: Stricter dependency conditions.
* modules/error (Depends-on): Add dependency condition.
* modules/getprogname (Depends-on): Make dependency condition stricter.
(configure.ac): Require AC_CANONICAL_HOST.
2024-09-02 Bruno Haible <bruno@clisp.org>
utime, futimens tests: Avoid test failure on Haiku.
* tests/test-utimens-common.h (checkable_atime): On Haiku, return false.
2024-09-01 Bruno Haible <bruno@clisp.org>
strtold: Work around a Haiku bug.
* lib/strtod.c (HAVE_UNDERLYING_STRTOD): Set to 0 for 'long double'
parsing on Haiku.
* doc/posix-functions/strtold.texi: Mention the bug.
2024-09-01 Bruno Haible <bruno@clisp.org>
math: Remove workaround for an older Haiku bug.
* lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Don't override on Haiku.
* doc/posix-headers/math.texi: Update.
2024-09-01 Simon Josefsson <simon@josefsson.org>
Avoid using postal address in license
* lib/dfa.h, lib/dfa.c: Update license header.
* lib/localeinfo.h, lib/localeinfo.c: Likewise.
* tests/test-dfa-match-aux.c: Likewise.
2024-09-01 Bruno Haible <bruno@clisp.org>
Fix mbscasestr test failure on native Windows with MSVC.
* lib/c32to-impl.h (FUNC): On native Windows, ignore the system's
towlower/towupper function entirely.
* tests/test-c32tolower.c (main): On native Windows, reenable test that
previously failed.
* tests/test-c32toupper.c (main): Likewise. Disable two other tests on
native Windows.
* doc/posix-functions/towlower.texi: Mention bug in the native Windows
UTF-8 locale.
* doc/posix-functions/towupper.texi: Likewise.
2024-09-01 Bruno Haible <bruno@clisp.org>
Fix quoting of $LOCALE_EN_UTF8 (regression yesterday).
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Properly quote $LOCALE_EN_UTF8.
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
* m4/mbrtoc16.m4 (gl_MBRTOC16_NULL_DESTINATION): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_NULL_ARG1,
gl_MBRTOWC_NULL_ARG2, gl_MBRTOWC_RETVAL, gl_MBRTOWC_STORES_INCOMPLETE):
Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
2024-09-01 Bruno Haible <bruno@clisp.org>
doc: Mention how to obtain UTF-8 locales.
* doc/posix-functions/setlocale.texi: Mention the names of UTF-8 locales
and the needed compiler flags.
2024-08-31 Collin Funk <collin.funk1@gmail.com>
doc: Fix typo.
* doc/pastposix-functions/siginterrupt.texi (siginterrupt): Fix typo.
2024-08-31 Bruno Haible <bruno@clisp.org>
Strengthen LC_CTYPE configure tests on OpenBSD, Android, Haiku.
* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Require gt_LOCALE_EN_UTF8 instead of
gt_LOCALE_FR_UTF8. Use LOCALE_EN_UTF8 instead of LOCALE_FR_UTF8.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_NULL_ARG1,
gl_MBRTOWC_NULL_ARG2, gl_MBRTOWC_RETVAL, gl_MBRTOWC_STORES_INCOMPLETE):
Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/mbrtoc16.m4 (gl_MBRTOC16_NULL_DESTINATION): Require
gt_LOCALE_EN_UTF8 instead of gt_LOCALE_FR_UTF8. Use LOCALE_EN_UTF8
instead of LOCALE_FR_UTF8. Update cross-compilation guess.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* modules/btowc (Files): Add m4/locale-en.m4.
* modules/c32isalnum (Files): Likewise.
* modules/c32isalpha (Files): Likewise.
* modules/c32isblank (Files): Likewise.
* modules/c32iscntrl (Files): Likewise.
* modules/c32isdigit (Files): Likewise.
* modules/c32isgraph (Files): Likewise.
* modules/c32islower (Files): Likewise.
* modules/c32isprint (Files): Likewise.
* modules/c32ispunct (Files): Likewise.
* modules/c32isspace (Files): Likewise.
* modules/c32isupper (Files): Likewise.
* modules/c32isxdigit (Files): Likewise.
* modules/c32rtomb (Files): Likewise.
* modules/c32tob (Files): Likewise.
* modules/c32tolower (Files): Likewise.
* modules/c32toupper (Files): Likewise.
* modules/c32width (Files): Likewise.
* modules/iswdigit (Files): Likewise.
* modules/mbrtoc16 (Files): Likewise.
* modules/mbrtoc32 (Files): Likewise.
* modules/mbsnrtowcs (Files): Likewise.
* modules/mbsrtowcs (Files): Likewise.
* modules/wcrtomb (Files): Likewise.
* modules/wcsnrtombs (Files): Likewise.
* modules/wcsrtombs (Files): Likewise.
* modules/wctob (Files): Likewise.
* modules/mbrlen (Files): Add m4/locale-en.m4. Remove m4/locale-fr.m4.
* modules/mbrtowc (Files): Likewise.
* modules/stdlib (Files): Likewise.
2024-08-31 Colin Watson <cjwatson@debian.org>
Update users.txt.
* users.txt: Add libpipeline.
2024-08-31 Bruno Haible <bruno@clisp.org>
tests: Avoid some test failures on Android.
* tests/test-c32isalpha.c (main): Disable tests that fail on Android.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
2024-08-31 Bruno Haible <bruno@clisp.org>
tests: Avoid some test failures on OpenBSD 7.5.
* tests/test-c32isalpha.c (main): Disable tests that fail on
OpenBSD 7.5.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
2024-08-31 Bruno Haible <bruno@clisp.org>
iswxdigit: Work around OpenBSD, Android, Haiku bug.
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Require gt_LOCALE_EN_UTF8 instead
of gt_LOCALE_FR_UTF8. Use LOCALE_EN_UTF8 instead of LOCALE_FR_UTF8.
Update cross-compilation guess.
* modules/iswxdigit (Files): Add m4/locale-en.m4. Remove m4/locale-fr.m4.
* doc/posix-functions/iswxdigit.texi: Update list of platforms.
2024-08-31 Bruno Haible <bruno@clisp.org>
iswdigit: Work around OpenBSD, Android, Haiku bug.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Require gt_LOCALE_EN_UTF8 instead
of gt_LOCALE_FR_UTF8. Use LOCALE_EN_UTF8 instead of LOCALE_FR_UTF8.
Update cross-compilation guess.
* modules/iswdigit (Files): Add m4/locale-en.m4.
* doc/posix-functions/iswdigit.texi: Update list of platforms.
2024-08-31 Bruno Haible <bruno@clisp.org>
tests: Strengthen LC_CTYPE tests on OpenBSD, Android, Haiku.
* m4/locale-en.m4: New file, based on m4/locale-fr.m4.
* m4/locale-ar.m4 (gt_LOCALE_AR): Update comments.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
* m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
* modules/btoc32-tests (Files): Add m4/locale-en.m4.
(configure.ac): Invoke gt_LOCALE_EN_UTF8.
(Makefile.am): Set LOCALE_EN_UTF8 in TESTS_ENVIRONMENT.
* modules/btowc-tests: Likewise.
* modules/c32isalnum-tests: Likewise.
* modules/c32isalpha-tests: Likewise.
* modules/c32isblank-tests: Likewise.
* modules/c32iscntrl-tests: Likewise.
* modules/c32isdigit-tests: Likewise.
* modules/c32isgraph-tests: Likewise.
* modules/c32islower-tests: Likewise.
* modules/c32isprint-tests: Likewise.
* modules/c32ispunct-tests: Likewise.
* modules/c32isspace-tests: Likewise.
* modules/c32isupper-tests: Likewise.
* modules/c32isxdigit-tests: Likewise.
* modules/c32rtomb-tests: Likewise.
* modules/c32snrtombs-tests: Likewise.
* modules/c32srtombs-tests: Likewise.
* modules/c32stombs-tests: Likewise.
* modules/c32tolower-tests: Likewise.
* modules/c32toupper-tests: Likewise.
* modules/fnmatch-tests: Likewise.
* modules/iswdigit-tests: Likewise.
* modules/iswxdigit-tests: Likewise.
* modules/mbmemcasecmp-tests: Likewise.
* modules/mbmemcasecoll-tests: Likewise.
* modules/mbrlen-tests: Likewise.
* modules/mbrtoc16-tests: Likewise.
* modules/mbrtoc32-tests: Likewise.
* modules/mbrtowc-tests: Likewise.
* modules/mbscasestr-tests: Likewise.
* modules/mbscspn-tests: Likewise.
* modules/mbsinit-tests: Likewise.
* modules/mbslen-tests: Likewise.
* modules/mbsnlen-tests: Likewise.
* modules/mbsnrtoc32s-tests: Likewise.
* modules/mbsnrtowcs-tests: Likewise.
* modules/mbspbrk-tests: Likewise.
* modules/mbsrtoc32s-tests: Likewise.
* modules/mbsrtowcs-tests: Likewise.
* modules/mbsspn-tests: Likewise.
* modules/mbsstr-tests: Likewise.
* modules/mbstoc32s-tests: Likewise.
* modules/mbstowcs-tests: Likewise.
* modules/mcel-tests: Likewise.
* modules/trim-tests: Likewise.
* modules/unicodeio-tests: Likewise.
* modules/wcrtomb-tests: Likewise.
* modules/wcsnrtombs-tests: Likewise.
* modules/wcsrtombs-tests: Likewise.
* tests/test-btoc32-3.sh: If LOCALE_FR_UTF8 is 'none', try
LOCALE_EN_UTF8 instead.
* tests/test-btowc-3.sh: Likewise.
* tests/test-c32isalnum.sh: Likewise.
* tests/test-c32isalpha.sh: Likewise.
* tests/test-c32isblank.sh: Likewise.
* tests/test-c32iscntrl.sh: Likewise.
* tests/test-c32isdigit.sh: Likewise.
* tests/test-c32isgraph.sh: Likewise.
* tests/test-c32islower.sh: Likewise.
* tests/test-c32isprint.sh: Likewise.
* tests/test-c32ispunct.sh: Likewise.
* tests/test-c32isspace.sh: Likewise.
* tests/test-c32isupper.sh: Likewise.
* tests/test-c32isxdigit.sh: Likewise.
* tests/test-c32rtomb.sh: Likewise.
* tests/test-c32snrtombs-3.sh: Likewise.
* tests/test-c32srtombs-3.sh: Likewise.
* tests/test-c32stombs-3.sh: Likewise.
* tests/test-c32tolower.sh: Likewise.
* tests/test-c32toupper.sh: Likewise.
* tests/test-fnmatch-3.sh: Likewise.
* tests/test-iswdigit.sh: Likewise.
* tests/test-iswxdigit.sh: Likewise.
* tests/test-mbmemcasecmp-3.sh: Likewise.
* tests/test-mbmemcasecoll-3.sh: Likewise.
* tests/test-mbrlen-3.sh: Likewise.
* tests/test-mbrtoc16-3.sh: Likewise.
* tests/test-mbrtoc32-3.sh: Likewise.
* tests/test-mbrtowc-3.sh: Likewise.
* tests/test-mbscasestr2.sh: Likewise.
* tests/test-mbscspn.sh: Likewise.
* tests/test-mbsinit.sh: Likewise.
* tests/test-mbslen.sh: Likewise.
* tests/test-mbsnlen.sh: Likewise.
* tests/test-mbsnrtoc32s-3.sh: Likewise.
* tests/test-mbsnrtowcs-3.sh: Likewise.
* tests/test-mbspbrk.sh: Likewise.
* tests/test-mbsrtoc32s-3.sh: Likewise.
* tests/test-mbsrtowcs-3.sh: Likewise.
* tests/test-mbsspn.sh: Likewise.
* tests/test-mbsstr2.sh: Likewise.
* tests/test-mbstoc32s-3.sh: Likewise.
* tests/test-mbstowcs-3.sh: Likewise.
* tests/test-mcel-3.sh: Likewise.
* tests/test-trim2.sh: Likewise.
* tests/test-unicodeio2.sh: Likewise.
* tests/test-wcrtomb.sh: Likewise.
* tests/test-wcsnrtombs-3.sh: Likewise.
* tests/test-wcsrtombs-3.sh: Likewise.
2024-08-31 Bruno Haible <bruno@clisp.org>
trim, unicodeio tests: Fix module description.
* modules/trim-tests (configure.ac): Invoke the respective gt_LOCALE_*
macros.
* modules/unicodeio-tests (Makefile.am): Augment TESTS_ENVIRONMENT.
2024-08-31 Bruno Haible <bruno@clisp.org>
mbrtoc32: Fix a cross-compilation guess.
* m4/mbrtoc32.m4 (gl_MBRTOC32_UTF8_LOCALE): Guess no on Cygwin.
2024-08-30 Bruno Haible <bruno@clisp.org>
mkfifoat: Work around a Haiku bug.
* lib/mknodat.c (rpl_mknodat): On Haiku, handle S_IFIFO explicitly.
* doc/posix-functions/mknodat.texi: Mention the S_IFIFO flag bug.
2024-08-30 Bruno Haible <bruno@clisp.org>
doc: Mention an mknod bug.
* doc/posix-functions/mknod.texi: Mention the S_IFIFO flag bug.
2024-08-30 Bruno Haible <bruno@clisp.org>
posix_openpt tests: Fix test failure on Haiku.
* tests/test-posix_openpt.c (main): On Haiku, create a child process and
call setsid().
2024-08-30 Bruno Haible <bruno@clisp.org>
Trivial relicensing of macro-only modules, part 3.
* modules/config-h (License): Change to unlimited.
* modules/host-os (License): Likewise.
* modules/no-c++ (License): Likewise.
* modules/openmp (License): Likewise.
* modules/longlong (License): Change to LGPLv2+.
* modules/va-args (License): Likewise.
Trivial relicensing of macro-only modules, part 2.
* modules/bison (License): Change to unlimited.
* modules/perl (License): Likewise.
Trivial relicensing of macro-only modules, part 1.
* modules/link-follow (License): Change to unlimited.
* modules/rmdir-errno (License): Likewise.
* modules/unlink-busy (License): Likewise.
* modules/uptime (License): Likewise.
* modules/winsz-termios (License): Likewise.
2024-08-30 Bruno Haible <bruno@clisp.org>
doc: Correct statement about license of m4/*.m4 files.
* doc/gnulib-intro.texi (Copyright): For m4/*.m4 files, list also the
"GPL with Autoconf exception" as a possible license notice.
2024-08-30 Bruno Haible <bruno@clisp.org>
sigsegv: Clarify license of the *.m4 files.
* m4/sigaltstack.m4: In the license notice, clarify which version of the
GPL is meant.
* m4/stack-direction.m4: Likewise.
2024-08-30 Bruno Haible <bruno@clisp.org>
libsigsegv: Relicense under GPLv2+.
* modules/libsigsegv (License): Change to GPLv2+.
2024-08-29 Bruno Haible <bruno@clisp.org>
vma-prot: Add tests.
* tests/test-vma-prot.c: New file.
* modules/vma-prot-tests: New file.
vma-prot: New module.
* lib/vma-prot.h: New file.
* lib/vma-prot.c: New file.
* modules/vma-prot: New file.
2024-08-29 Bruno Haible <bruno@clisp.org>
vma-iter: Relicense under GPLv2+.
* modules/vma-iter (License): Change to GPLv2+.
* lib/vma-iter.h: Update license notice.
* lib/vma-iter.c: Likewise.
2024-08-29 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Allow verifying license compatibility with GPLv2+.
* pygnulib/GLInfo.py (GLInfo.usage): Document the --gpl option.
* pygnulib/main.py (main): Accept a --gpl option. Pass it to the
GLConfig.
* pygnulib/GLConfig.py (GLConfig): Add 'gpl' field and constructor
argument. Add getGPL, setGPL, resetGPL methods.
* m4/gnulib-tool.m4 (gl_GPL): New macro.
* doc/gnulib-tool.texi (Modified imports): Document the gl_GPL macro.
* pygnulib/GLImport.py (GLImport.__init__): Look for gl_GPL invocations
in gnulib-cache.m4.
(GLImport.actioncmd): Output --gpl option when option --gpl was given.
(GLImport.gnulib_cache): Emit a gl_GPL invocation when option --gpl was
given.
(GLImport.prepare): Do license compatibility checking when option --gpl
was given.
* pygnulib/GLModuleSystem.py: Update a comment.
2024-08-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix description of --lgpl option (missed on 2021-06-04).
* gnulib-tool.sh (func_usage): Remove "Also modify license template"
sentence.
* pygnulib/GLInfo.py (GLInfo.usage): Likewise.
2024-08-29 Bruno Haible <bruno@clisp.org>
obstack-printf-gnu: Fix mistake (reported by check-AC_LIBOBJ).
* modules/obstack-printf-gnu (Files): Add lib/obstack_printf.c.
2024-08-29 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
libgmp-mpq: Add tests.
* modules/libgmp-mpq-tests: New file.
* tests/test-libgmp-mpq.c: New file.
libgmp-mpq: New module.
* MODULES.html.sh: Mention libgmp-mpz and
libgmp-mpq.
* config/srclist.txt: Mention mini-mpq.c and mini-mpq.h.
* lib/mini-mpq-gnulib.c: New file.
* lib/mini-mpq.c: New upstream source file from
https://gmplib.org/repo/gmp/raw-file/tip/mini-gmp/mini-mpq.c.
* lib/mini-mpq.h: New upstream source file from
https://gmplib.org/repo/gmp/raw-file/tip/mini-gmp/mini-mpq.h.
* modules/libgmp-mpq: New module.
* modules/libgmp-mpz: Conditionally include mini-mpq.h in gmp.h.
* modules/libgmp: Add libgmp-mpq dependency.
2024-08-28 Pádraig Brady <P@draigBrady.com>
avoid GCC -Wmaybe-uninitialized false positives with LTO
Avoids false warnings with GCC 14.2.1 with -flto
* lib/canonicalize.c: Initialize END_IDX.
* lib/getndelim2.c: Initialize C.
2024-08-28 Bruno Haible <bruno@clisp.org>
threads-h: Don't override the C++ keyword 'thread_local'.
* lib/threads.in.h (thread_local): Don't define as a macro in C++ 11
or newer.
2024-08-28 Bruno Haible <bruno@clisp.org>
libgmp-mpz: New module, renamed from libgmp.
* modules/libgmp-mpz: Renamed from modules/libgmp.
* modules/libgmp: New file.
* modules/libgmp-mpz-tests: Renamed from modules/libgmp-tests.
* tests/test-libgmp-mpz.c: Renamed from tests/test-libgmp.c.
2024-08-28 Bruno Haible <bruno@clisp.org>
doc: Add more details about O_EXEC and O_SEARCH.
* doc/posix-headers/fcntl.texi: Add platforms list and revisit note
about O_EXEC and O_SEARCH.
2024-08-27 Bruno Haible <bruno@clisp.org>
mcel: Fix compilation error with MSVC.
* modules/builtin-expect (Description): Improve.
* m4/builtin-expect.m4: Improve comment.
* modules/mcel (Depends-on): Add builtin-expect.
2024-08-27 Paul Eggert <eggert@cs.ucla.edu>
savewd: port to native MS-Windows
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00187.html
* lib/savewd.c (fork) [_WIN32 && !__CYGWIN]: New macro.
(savewd_save): Don’t fork on MS-Windows, or if O_SEARCH != O_RDONLY.
2024-08-27 Bruno Haible <bruno@clisp.org>
bcopy: Deprecate module.
* modules/bcopy (Status, Notice): Mark as deprecated.
* doc/pastposix-functions/bcopy.texi: Mention that this module does not
declare bcopy().
2024-08-27 Bruno Haible <bruno@clisp.org>
simple-atomic: Fix a clang warning on native Windows.
* lib/simple-atomic.c (atomic_compare_and_swap_ptr): Add a cast.
2024-08-27 Bruno Haible <bruno@clisp.org>
write-any-file: Don't reference an undefined function on native Windows.
* m4/write-any-file.m4 (gl_WRITE_ANY_FILE): Remove test for <priv.h>,
obsolete since 2009-05-03. Test for geteuid.
* lib/write-any-file.c (geteuid): Define a fallback.
2024-08-27 Bruno Haible <bruno@clisp.org>
mkdir-p: Don't reference an undefined function on native Windows.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Test whether fchown exists.
* lib/dirchownmod.c (fchown): Define to a fallback if the system does
not have fchown.
(dirchownmod): Test HAVE_FCHOWN.
2024-08-27 Bruno Haible <bruno@clisp.org>
getusershell: Don't completely ignore lines that contain a comment.
* lib/getusershell.c (getusershell): Truncate the line where a comment
starts, instead of ignoring the line entirely.
2024-08-27 Bruno Haible <bruno@clisp.org>
fts: Don't assume that a pointer is as wide as a 'long'.
* lib/fts.c (fts_sort): Cast pointers to 'uintptr_t', not to 'long'.
2024-08-27 Bruno Haible <bruno@clisp.org>
mkdir: Fix for use of posixcheck module on native Windows.
* lib/sys_stat.in.h (mkdir): Give priority to the native Windows
definition over the GNULIB_POSIXCHECK redefinition.
2024-08-27 Bruno Haible <bruno@clisp.org>
windows-spawn: Fix clang warning.
* lib/windows-spawn.c (convert_CreateProcess_error): Remove unreachable
'break;' statements.
2024-08-27 Bruno Haible <bruno@clisp.org>
Improve support for clang on Windows.
* lib/c++defs.h (_GL_CXXALIASWARN_2): Treat clang like gcc 4.2.
* lib/stdio.in.h (fwrite, fwrite_unlocked): Likewise.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Likewise.
* lib/libc-config.h (__GNUC_PREREQ): Override glibc's definition to
handle clang in disguise.
2024-08-27 Bruno Haible <bruno@clisp.org>
Explicitly exclude clang when we test for a GCC version >= 4.3.
Rationale: clang can disguise as any possible GCC version.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): When testing __GNUC__,
exclude clang.
* lib/_Noreturn.h (_Noreturn): Likewise.
* lib/aligned-malloc.h (aligned_free, aligned_malloc): Likewise.
* lib/base32.h: Likewise.
* lib/base64.h: Likewise.
* lib/dfa.c (FALLTHROUGH): Likewise.
* lib/dirent.in.h (_GL_ATTRIBUTE_DEALLOC, opendir, fdopendir): Likewise.
* lib/intprops-internal.h: Likewise.
* lib/jit/cache.h (clear_cache): Likewise.
* lib/malloc.in.h (memalign): Likewise.
* lib/mcel.h: Likewise.
* lib/regex.h: Likewise.
* lib/stddef.in.h (_GL_HAS_BUILTIN_UNREACHABLE): Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_DEALLOC, fdopen, fopen, popen, tmpfile):
Likewise.
* lib/stdlib.in.h (_GL_ATTRIBUTE_DEALLOC, aligned_alloc, calloc,
canonicalize_file_name, malloc, realloc): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_DEALLOC, strdup, strndup): Likewise.
* lib/verify.h: Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC, wcsdup): Likewise.
* lib/xalloc-oversized.h (xalloc_oversized): Likewise.
* lib/fenv-private.h (_FPU_GETCW, _FPU_SETCW, _FPU_GETFPSR,
_FPU_SETFPSR): When testing __GNUC__, exclude clang. Use different
builtins for clang.
* lib/hamt.h (GL_HAMT_THREAD_SAFE): When testing __GNUC__, exclude
clang. Enable for clang >= 4.
* lib/astrxfrm.c: Use _GL_GNUC_PREREQ.
* lib/readutmp.c: Likewise.
* lib/strftime.c: Likewise.
* tests/test-asyncsafe-linked_list-strong.c: Likewise.
* tests/test-asyncsafe-linked_list-weak.c: Likewise.
* tests/test-c-strtod-mt.c: Likewise.
* tests/test-c-strtof-mt.c: Likewise.
* tests/test-c-strtold-mt.c: Likewise.
* tests/test-gmtime_r-mt.c: Likewise.
* tests/test-intprops.c: Likewise.
* tests/test-limits-h.c: Likewise.
* tests/test-localtime_r-mt.c: Likewise.
* tests/test-memrchr.c: Likewise.
* tests/test-nl_langinfo-mt.c: Likewise.
* tests/test-setlocale_null-mt-all.c: Likewise.
* tests/test-setlocale_null-mt-one.c: Likewise.
* tests/test-statat.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
2024-08-27 Bruno Haible <bruno@clisp.org>
doc: Update about psignal.
Reported by Eric Gallager <egall@gwmail.gwu.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00177.html>.
* doc/posix-functions/psignal.texi: Mention the Solaris problem and the
first parameter type.
2024-08-27 Bruno Haible <bruno@clisp.org>
readutmp: In systemd mode, show sessions of type "web".
Reported by Allison Karlitskaya <allison.karlitskaya@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00160.html>.
* lib/readutmp.c (read_utmp_from_systemd): For a systemd session of type
"web", add a single USER_PROCESS entry.
2024-08-26 Bruno Haible <bruno@clisp.org>
Fix a test failure from a clang that masquerades as gcc 13.
* tests/test-fenv-except-trapping-2.c (main): Skip the '4' test on
clang, since clang 17 still generates buggy comparisons, like gcc
versions < 8.
2024-08-26 Bruno Haible <bruno@clisp.org>
Fix some of the warnings from a clang that masquerades as gcc 13.
* lib/c-stack.c: Use _GL_GNUC_PREREQ to test for the gcc version.
* lib/canonicalize.c: Likewise.
* lib/diffseq.h: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/freopen-safer.c: Likewise.
* lib/getndelim2.c: Likewise.
* lib/mini-gmp-gnulib.c: Likewise.
* lib/propername.c: Likewise.
* lib/quotearg.c: Likewise.
* lib/savedir.c: Likewise.
* lib/vasnprintf.c: Likewise.
* tests/test-argmatch.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-explicit_bzero.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-fopen.h: Likewise.
* tests/test-getdtablesize.c: Likewise.
* tests/test-getgroups.c: Likewise.
* tests/test-listen.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-memset_explicit.c: Likewise.
* tests/test-open.h: Likewise.
* tests/test-perror2.c: Likewise.
* tests/test-select.h: Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD): Don't use
gnu_printf with clang.
* lib/string-buffer.h: Likewise.
* lib/textstyle.in.h: Likewise.
2024-08-26 Bruno Haible <bruno@clisp.org>
relocatable-prog: Fix config.libpath failure (regression 2024-08-24).
* build-aux/config.libpath: Expect 2 arguments, not 1.
2024-08-26 Bruno Haible <bruno@clisp.org>
Fix compilation errors with clang that masquerades as gcc 13.
Reported by Sam James and Paul Eggert.
* m4/gnulib-common.m4 (gl_COMMON_BODY): For _GL_GNUC_PREREQ, ignore the
values of __GNUC__ and __GNUC_MINOR__ defined by clang.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Don't treat
clang like GCC.
* lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Disable
the _GL_CXXALIASWARN1 and _GL_CXXALIASWARN invocations for masquerading
clang++.
2024-08-25 Paul Eggert <eggert@cs.ucla.edu>
diffseq: don’t worry about clang
* lib/diffseq.h: Stop worrying about __clang__ for pragmas.
This basically reverts the previous change to this file.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00145.html
2024-08-24 Bruno Haible <bruno@clisp.org>
copy-file: Add functions for copying non-confidential files.
Reported by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00142.html>.
* lib/copy-file.h (copy_file_to, xcopy_file_to): New declarations.
* lib/copy-file.c (copy_file_internal): New function, extracted from
qcopy_file_preserving.
(qcopy_file_preserving): Invoke it.
(copy_file_to): New function.
(handle_error_code): New function, extracted from xcopy_file_preserving.
(xcopy_file_preserving): Invoke it.
(xcopy_file_to): New function.
2024-08-24 Bruno Haible <bruno@clisp.org>
copy-file: First step towards more consistent function names.
* lib/copy-file.h (xcopy_file_preserving): New declaration.
(copy_file_preserving): Mark deprecated.
* lib/copy-file.c (xcopy_file_preserving): Renamed from
copy_file_preserving.
(copy_file_preserving): New function.
* tests/test-copy-file.c (main): Test xcopy_file_preserving instead of
copy_file_preserving.
acl: First step towards more consistent function names.
* lib/acl.h (xset_acl): New declaration.
(set_acl): Mark deprecated.
(xcopy_acl): New declaration.
(copy_acl): Mark deprecated.
* lib/set-acl.c (xset_acl): Renamed from set_acl.
(set_acl): New function.
* lib/copy-acl.c (xcopy_acl): Renamed from copy_acl.
(copy_acl): New function.
* tests/test-set-mode-acl.c (main): Test xset_acl instead of set_acl.
* tests/test-copy-acl.c (main): Test xcopy_acl instead of copy_acl.
2024-08-24 Paul Eggert <eggert@cs.ucla.edu>
diffseq: port to clang 18.1.6 in ‘patch’
* lib/diffseq.h: Omit the pragmas if __clang__.
2024-08-24 Bruno Haible <bruno@clisp.org>
relocatable-prog: Add support for 32-bit build on FreeBSD/powerpc64.
Reference: <https://savannah.gnu.org/patch/?10469>.
* build-aux/config.libpath: Accept a second argument. Use it on
FreeBSD/powerpc64.
(func_usage): Document it.
* m4/relocatable.m4 (AC_LIB_LIBPATH): Require gl_HOST_CPU_C_ABI_32BIT.
Pass HOST_CPU_C_ABI_32BIT to the config.libpath script.
* modules/relocatable-prog (Files): Add m4/host-cpu-c-abi.m4.
2024-08-23 Paul Eggert <eggert@cs.ucla.edu>
diffseq: port to GCC 14.2.1 in ‘patch’
* lib/diffseq.h: Also suppress -Wanalyzer-use-of-uninitialized-value.
This fixes an unwanted diagnostic when compiling GNU ‘patch’
with gcc (GCC) 14.2.1 20240801 (Red Hat 14.2.1-1) x86-64.
2024-08-23 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Update comment, working around FreeBSD breakage.
* m4/host-cpu-c-abi.m4: For powerpc64, recommend to test
__BIG_ENDIAN__ or __LITTLE_ENDIAN__, not _BIG_ENDIAN or _LITTLE_ENDIAN,
as FreeBSD 14 breaks the latter.
2024-08-21 Paul Eggert <eggert@cs.ucla.edu>
mcel: port to uClibc-ng
Problem reported by Waldemar Brodkorb in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00130.html
* lib/mcel.h (mcel_scan): Don’t treat uClibc-ng like glibc.
2024-08-21 Bruno Haible <bruno@clisp.org>
stdio: Fix compilation error in C++ mode on Linux/riscv64 with musl.
* lib/stdio.in.h (fpurge): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2024-08-19 Bruno Haible <bruno@clisp.org>
hasmntopt: Add tests.
* tests/test-hasmntopt.c: New file.
* modules/hasmntopt-tests: New file.
hasmntopt: New module.
* lib/mntent.in.h: Add config.h check.
(hasmntopt): New declaration.
* lib/hasmntopt.c: New file, based on glibc/misc/mntent_r.c.
* m4/hasmntopt.m4: New file.
* m4/mntent_h.m4 (gl_MNTENT_H): Test whether hasmntopt is declared.
(gl_MNTENT_H_REQUIRE_DEFAULTS): Initialize GNULIB_HASMNTOPT.
(gl_MNTENT_H_DEFAULTS): Initialize HAVE_HASMNTOPT, HAVE_SETMNTENT,
REPLACE_HASMNTOPT.
* modules/mntent (Depends-on): Add snippet/arg-nonnull, snippet/c++defs,
snippet/warn-on-use.
(Makefile.am): Insert c++defs.h, arg-nonnull.h, warn-on-use.h into
mntent.h. Substitute GNULIB_HASMNTOPT, HAVE_HASMNTOPT, HAVE_SETMNTENT,
REPLACE_HASMNTOPT.
* modules/hasmntopt: New file.
* doc/glibc-functions/hasmntopt.texi: Mention the new module and the
musl bug.
* doc/glibc-functions/setmntent.texi: Update info about Android.
* doc/glibc-functions/getmntent_r.texi: Likewise.
* doc/glibc-functions/endmntent.texi: Likewise.
2024-08-19 Bruno Haible <bruno@clisp.org>
mntent: New module.
* lib/mntent.in.h: New file.
* m4/mntent_h.m4: New file.
* modules/mntent: New file.
* doc/glibc-headers/mntent.texi: Mention the new module.
* top/maint.mk (gl_prefer_angle_bracket_headers_): Add mntent.h.
* doc/gnulib-tool.texi (Style of #include statements): Add mntent.h to
the list.
2024-08-17 Bruno Haible <bruno@clisp.org>
once: Fix pthread-rwlock crashes with clang (regr. 2024-08-07).
* lib/glthread/once.h: Don't mark pthread_rwlock_init,
pthread_rwlockattr_init as weak if we are overriding them.
2024-08-16 Collin Funk <collin.funk1@gmail.com>
pty tests: Add C tests.
* modules/pty-tests (Files): Add tests/test-pty.c.
(Makefile.am): Add the new program.
* tests/test-pty.c: New file.
pty: Define 'struct winsize' on all platforms.
* modules/pty (Depends-on): Add termios.
* lib/pty.in.h: Make comments more accurate.
(struct winsize): Remove forward declaration.
2024-08-16 Bruno Haible <bruno@clisp.org>
gitsub.sh: For a submodule, merge from the right remote branch.
Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> at
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00101.html>.
* top/gitsub.sh (func_upgrade): For a submodule, use 'git branch' to
determine the branch to merge from, instead of assuming that it is
always the 'master' branch.
2024-08-16 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Correct the result of --extract-dependents.
* pygnulib/GLModuleSystem.py (GLModule.getDependents): Add the current
module's test module, if that exists.
2024-08-16 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't treat 'valgrind-tests' as a tests module.
Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00093.html>.
* pygnulib/GLModuleSystem.py (_isTestsModuleName): New function.
(GLModuleSystem.list, GLModule.isNonTests, GLModule.getApplicability,
GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional,
GLModule.getLicense): Use it.
2024-08-15 Bruno Haible <bruno@clisp.org>
termios: Tweak doc.
* doc/posix-headers/termios.texi: Update list of platforms.
2024-08-14 Paul Eggert <eggert@cs.ucla.edu>
verror: allow library name-spacing of verror
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00085.html
* lib/error.c (verror, verror_at_line) [!_LIBC]: #undef only if
the corresponding GNULIB_defined_... macros are defined.
* lib/error.in.h (verror, verror_with_line):
Don't define as macros if they are already defined, or if
_GL_NO_INLINE_ERROR is defined. This may lose some niceties with GCC
warnings, but the code’s valid.
error: merge from glibc and with verror
* lib/error.c: Merge changes since 2018 from glibc.
----- The following changes are taken from glibc:
(__error_internal, __error_at_line_internal): New functions,
with most of the old error and error_at_line_internal but
with va_list and with a new trailing mode_args,
for wide character mode.
(error_tail): Add trailing arg.
(error_tail, __error_internal, __error_at_line_internal):
Redo _LIBC implementation with respect to cancelation.
[_LIBC]: Include <libc-lock.h>, not <bits/libc-lock.h>.
----- The following changes are specific to Gnulib:
(__error_internal, __error_at_line_internal, error_tail) [!_LIBC]:
Use macros to define away the new trailing arg, and to name
the internal functions to verror and verror_at_line.
(verror, verror_at_line) [!_LIBC]: Undef so that we omit
the __gl_error_call business when defining these functions.
* lib/error.in.h: Include stdarg.h.
(verror, verror_at_line): New decls and macros.
* m4/error_h.m4 ([gl_ERROR_H]): Always compile error.c if
the verror module is also present.
* modules/verror (Files, lib_SOURCES):
Remove lib/verror.h, lib/verror.c.
(Depends-on): Remove stdio, xvasprintf.
(configure.ac-early): Define gl_HAVE_MODULE_VERROR so that
the error module compiles error.c. Not sure if this is the
standard way to do this, but it seems to work.
* modules/verror (Include), tests/test-verror.c:
Include error.h, not verror.h.
error: it’s cold
This mimics what glibc is doing nowadays.
* lib/error.in.h (error, error_at_line):
* lib/verror.h (verror, verror_at_line):
Declare with _GL_ATTRIBUTE_COLD.
2024-08-14 Bruno Haible <bruno@clisp.org>
pthread-rwlock-extra-tests: Exclude this test from packages by default.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Add comment.
* modules/pthread-rwlock-extra-tests (Status): Mark as longrunning-test.
2024-08-14 Bruno Haible <bruno@clisp.org>
tests: Fix link errors (regression 2024-08-12).
* modules/chown-tests (Makefile.am): Link test-chown with LIBINTL.
* modules/lchown-tests (Makefile.am): Link test-lchown with LIBINTL.
* modules/stat-time-tests (Makefile.am): Link test-stat-time with
LIBINTL.
2024-08-13 Bruno Haible <bruno@clisp.org>
mbrtoc16: Fix compilation error on Haiku.
* lib/uchar.in.h (mbrtoc16): Fix typo.
2024-08-12 Collin Funk <collin.funk1@gmail.com>
termios tests: Check for struct winsize.
* tests/test-termios.c (t2): Make sure inclusion of termios.h allows use
of struct winsize.
termios: Define struct winsize on all platforms.
* doc/posix-headers/termios.texi (termios.h): Mention struct winsize is
defined in <sys/ioctl.h> on glibc.
* lib/termios.in.h (struct winsize): Define or include.
* m4/termios_h.m4 (gl_TERMIOS_H): Check for a definition of struct
winsize.
* modules/termios (Makefile.am): Replace AC_SUBST variables.
2024-08-12 Bruno Haible <bruno@clisp.org>
errno tests: Avoid test failure on Haiku.
* doc/posix-headers/errno.texi: Mention the Haiku problem.
* tests/test-errno.c: On Haiku, don't check that the error numbers are
positive.
2024-08-12 Bruno Haible <bruno@clisp.org>
errno: Ensure ESOCKTNOSUPPORT gets defined.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also whether ESOCKTNOSUPPORT
is defined.
* lib/errno.in.h (ESOCKTNOSUPPORT, GNULIB_defined_ESOCKTNOSUPPORT): New
macros.
* lib/strerror-override.h (strerror_override): Declare also if
GNULIB_defined_ESOCKTNOSUPPORT is defined.
* lib/strerror-override.c (strerror_override): Handle ESOCKTNOSUPPORT.
* lib/strerrorname_np.c (strerrorname_np): Move ESOCKTNOSUPPORT code to
the POSIX section.
* doc/posix-headers/errno.texi: Document the Haiku problem.
2024-08-12 Bruno Haible <bruno@clisp.org>
fdutimensat, utimensat tests: Fix test failures on Cygwin.
* tests/nap.h: Include concat-filename.h, xgetcwd.h.
(nap_file): New variable.
(nap_get_stat, clear_temp_file): Use nap_file, not TEMPFILE.
(nap): Initialize nap_file.
* modules/chown-tests (Depends-on): Add xconcat-filename, xgetcwd.
* modules/fchownat-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
* modules/lchown-tests (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/utime-tests (Depends-on): Likewise.
* modules/utimens-tests (Depends-on): Likewise.
* modules/utimensat-tests (Depends-on): Likewise.
2024-08-12 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Attempt harder to avoid test failure on macOS.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 200 ms on macOS.
pthread-rwlock: Attempt harder to avoid test failure on macOS.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 100 ms on macOS.
pthread-rwlock: Attempt harder to avoid test failure on macOS.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 50 ms on macOS.
2024-08-12 Bruno Haible <bruno@clisp.org>
pthread-rwlock tests: Move the waitqueue test into a separate module.
* modules/pthread-rwlock-extra-tests: New file.
* modules/pthread-rwlock-tests: Revert 2024-08-07 changes.
(Depends-on): Add pthread-rwlock-extra-tests.
2024-08-12 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Attempt to avoid test failure on some more machines.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 20 ms on macOS.
2024-08-11 Collin Funk <collin.funk1@gmail.com>
htonl: Fix link errors on Windows.
Reported by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00066.html>.
* lib/arpa_inet.in.h (htons, htonl, ntohs, ntohl): Only define when not
declared by the system.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Set default behavior for
htonl functions.
* m4/htonl.m4 (gl_FUNC_HTONL): Check if -lws2_32 is required. Only check
for declarations on POSIX systems.
* modules/arpa_inet (Makefile.am): Substitute new Makefile variables.
* modules/htonl (Files): Add m4/sys_socket_h.m4.
(Depends-on): Remove endian condition.
(Link): Add $(HOTNL_LIB).
* modules/htonl-tests: Link to @HTONL_LIB@.
2024-08-11 Bruno Haible <bruno@clisp.org>
doc: Update regarding Windows <winsock2.h> functions.
* doc/posix-functions/accept.texi: Mention that it's declared elsewhere
on native Windows.
* doc/posix-functions/bind.texi: Likewise.
* doc/posix-functions/connect.texi: Likewise.
* doc/posix-functions/getpeername.texi: Likewise.
* doc/posix-functions/getsockname.texi: Likewise.
* doc/posix-functions/getsockopt.texi: Likewise.
* doc/posix-functions/listen.texi: Likewise.
* doc/posix-functions/recv.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
* doc/posix-functions/select.texi: Likewise.
* doc/posix-functions/send.texi: Likewise.
* doc/posix-functions/sendto.texi: Likewise.
* doc/posix-functions/setsockopt.texi: Likewise.
* doc/posix-functions/shutdown.texi: Likewise.
* doc/posix-functions/socket.texi: Likewise.
* doc/pastposix-functions/gethostbyaddr.texi: Don't say that the
function is missing on native Windows.
* doc/pastposix-functions/gethostbyname.texi: Likewise.
* doc/posix-functions/getprotobyname.texi: Likewise.
* doc/posix-functions/getprotobynumber.texi: Likewise.
* doc/posix-functions/getservbyname.texi: Likewise.
* doc/posix-functions/getservbyport.texi: Likewise.
* doc/posix-functions/htonl.texi: Likewise.
* doc/posix-functions/htons.texi: Likewise.
* doc/posix-functions/inet_addr.texi: Likewise.
* doc/posix-functions/inet_ntoa.texi: Likewise.
* doc/posix-functions/ntohl.texi: Likewise.
* doc/posix-functions/ntohs.texi: Likewise.
* doc/posix-functions/gethostname.texi: Update.
2024-08-10 Paul Eggert <eggert@cs.ucla.edu>
test-fdutimensat: fix newly-added test
Problem reported by Bruno Haible and Collin Funk in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00061.html
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00064.html
* tests/test-utimens.h (test_utimens): Fix typo in new test,
which causes the test to break on file systems that are not noatime.
2024-08-10 Collin Funk <collin.funk1@gmail.com>
htonl: Add tests.
* modules/htonl-tests: New file.
* tests/test-htonl.c: New file.
htonl: New module.
* modules/htonl: New file.
* lib/arpa_inet.c: New file.
* m4/htonl.m4: New file.
* modules/arpa_inet (Files): Add lib/arpa_inet.c.
(Depends-on): Add extern-inline.
* lib/arpa_inet.in.h (htons, htonl, ntohs, ntohl): New declarations.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Define REPLACE_HTONL.
* doc/posix-functions/htons.texi (htons): Mention the module.
* doc/posix-functions/htonl.texi (htonl): Likewise.
* doc/posix-functions/ntohs.texi (ntohs): Likewise.
* doc/posix-functions/ntohl.texi (ntohl): Likewise.
2024-08-10 Bruno Haible <bruno@clisp.org>
Make sure gperf-generated files are the same in VPATH builds.
Reported by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-texinfo/2024-08/msg00030.html>.
* modules/iconv_open (Makefile.am): Eliminate directory names from the
generated iconv_open-aix.h, iconv_open-hpux.h, iconv_open-irix.h,
iconv_open-osf.h, iconv_open-solaris.h, iconv_open-zos.h.
* modules/unicase/locale-language (Makefile.am): Eliminate directory
names from the generated unicase/locale-languages.h.
* modules/unicase/special-casing (Makefile.am): Eliminate directory
names from the generated unicase/special-casing-table.h.
* modules/unictype/bidiclass-byname (Makefile.am): Eliminate directory
names from the generated unictype/bidi_byname.h.
* modules/unictype/category-byname (Makefile.am): Eliminate directory
names from the generated unictype/categ_byname.h.
* modules/unictype/combining-class-byname (Makefile.am): Eliminate
directory names from the generated unictype/combiningclass_byname.h.
* modules/unictype/incb-byname (Makefile.am): Eliminate directory names
from the generated unictype/incb_byname.h.
* modules/unictype/joininggroup-byname (Makefile.am): Eliminate
directory names from the generated unictype/joininggroup_byname.h.
* modules/unictype/joiningtype-byname (Makefile.am): Eliminate directory
names from the generated unictype/joiningtype_byname.h.
* modules/unictype/property-byname (Makefile.am): Eliminate directory
names from the generated unictype/pr_byname.h.
* modules/unictype/scripts (Makefile.am): Eliminate directory names from
the generated unictype/scripts_byname.h.
* modules/uninorm/composition (Makefile.am): Eliminate directory names
from the generated uninorm/composition-table.h.
2024-08-09 Paul Eggert <eggert@cs.ucla.edu>
full-read, etc.: prefer signed types
* lib/full-read.h, lib/full-write.h, lib/safe-read.h, lib/safe-write.h:
Include idx.h.
* lib/full-write.c (full_read, full_write):
Now accept and returns idx_t.
* lib/safe-read.c (bufptr): New type, since apps are not
supposed to #define keywords like ‘const’.
(safe_read, safe_write): Now accept idx_t and return ptrdiff_t.
* lib/safe-read.h (SAFE_READ_ERROR):
* lib/safe-write.h (SAFE_WRITE_ERROR):
Now ptrdiff_t, not size_t.
* modules/full-read, modules/full-write, modules/safe-read:
* modules/safe-write (Depends-on): Add idx.
2024-08-09 Bruno Haible <bruno@clisp.org>
sig2str: Align with POSIX:2024.
* lib/signal.in.h (SIG2STR_MAX): New macro.
(sig2str, str2sig): New declarations.
* lib/sig2str.h: Don't include intprops.h.
(SIG2STR_MAX): Remove macro.
(sig2str, str2sig): Remove declarations.
* lib/sig2str.c: Include <signal.h> as the specification header.
* m4/signal_h.m4 (gl_SIGNAL_H): Test whether sig2str, str2sig are
declared.
(gl_SIGNAL_H_REQUIRE_DEFAULTS): Initialize GNULIB_SIG2STR.
(gl_SIGNAL_H_DEFAULTS): Initialize HAVE_SIG2STR, HAVE_STR2SIG.
* m4/sig2str.m4 (gl_FUNC_SIG2STR): Require gl_SIGNAL_H_DEFAULTS. Check
also for str2sig. Set HAVE_SIG2STR, HAVE_STR2SIG.
* modules/signal-h (Makefile.am): Substitute GNULIB_SIG2STR,
HAVE_SIG2STR, HAVE_STR2SIG.
* modules/sig2str (Depends-on): Add signal-h. Remove intprops.
(configure.ac): Test HAVE_SIG2STR, HAVE_STR2SIG. Invoke
gl_SIGNAL_MODULE_INDICATOR.
(Include): Add <signal.h>.
* doc/posix-functions/sig2str.texi: Mention as implemented through the
sig2str module.
* doc/posix-functions/str2sig.texi: Likewise.
2024-08-09 Paul Eggert <eggert@cs.ucla.edu>
test-utime: port to noatime file systems
Problem encountered on Ubuntu 24.04 zfs mounted noatime.
* tests/test-fdutimensat.c (main):
* tests/test-futimens.h (test_futimens):
* tests/test-lutimens.h (test_lutimens):
* tests/test-utime.c (test_utime):
* tests/test-utimens-common.h (checkable_atime): New function.
* tests/test-utimens.h (test_utimens):
* tests/test-utimensat.c (main):
Do not check atime on file systems mounted noatime.
2024-08-09 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Attempt to avoid test failure on some machines.
Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00050.html>.
* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 10 ms.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Likewise.
2024-08-08 Bruno Haible <bruno@clisp.org>
doc: Update for other functions added in POSIX:2024.
* doc/posix-functions/be16toh.texi: New file.
* doc/posix-functions/be32toh.texi: New file.
* doc/posix-functions/be64toh.texi: New file.
* doc/posix-functions/dcgettext_l.texi: New file.
* doc/posix-functions/dcngettext_l.texi: New file.
* doc/posix-functions/dgettext_l.texi: New file.
* doc/posix-functions/dngettext_l.texi: New file.
* doc/posix-functions/getlocalename_l.texi: New file.
* doc/posix-functions/gettext_l.texi: New file.
* doc/posix-functions/htobe16.texi: New file.
* doc/posix-functions/htobe32.texi: New file.
* doc/posix-functions/htobe64.texi: New file.
* doc/posix-functions/htole16.texi: New file.
* doc/posix-functions/htole32.texi: New file.
* doc/posix-functions/htole64.texi: New file.
* doc/posix-functions/le16toh.texi: New file.
* doc/posix-functions/le32toh.texi: New file.
* doc/posix-functions/le64toh.texi: New file.
* doc/posix-functions/ngettext_l.texi: New file.
* doc/posix-functions/posix_close.texi: New file.
* doc/posix-functions/posix_devctl.texi: New file.
* doc/posix-functions/posix_getdents.texi: New file.
* doc/posix-functions/posix_spawn_file_actions_addchdir.texi: New file.
* doc/posix-functions/posix_spawn_file_actions_addfchdir.texi: New file.
* doc/posix-functions/sig2str.texi: New file.
* doc/posix-functions/str2sig.texi: New file.
* doc/posix-functions/tcgetwinsize.texi: New file.
* doc/posix-functions/tcsetwinsize.texi: New file.
* doc/posix-functions/wcslcat.texi: New file.
* doc/posix-functions/wcslcpy.texi: New file.
* doc/gnulib.texi (Functions in <devctl.h>, Functions in <endian.h>):
New sections.
(Functions in <dirent.h>, Functions in <libintl.h>,
Functions in <locale.h>, Functions in <signal.h>,
Functions in <spawn.h>, Functions in <termios.h>,
Functions in <unistd.h>, Functions in <wchar.h>): Include the other new
files.
* doc/posix-functions/strlcat.texi: Update.
* doc/posix-functions/strlcpy.texi: Update.
2024-08-08 Bruno Haible <bruno@clisp.org>
doc: Update for ISO C functions added in POSIX:2024.
* doc/posix-functions/CMPLX*.texi: New files.
* doc/posix-functions/at_quick_exit.texi: New file.
* doc/posix-functions/atomic_*.texi: New files.
* doc/posix-functions/kill_dependency.texi: New file.
* doc/posix-functions/*.texi: Update.
* doc/gnulib.texi (Functions in <stdatomic.h>): New section.
(Functions in <complex.h>, Functions in <stdlib.h>): Include the other
new files.
2024-08-08 Bruno Haible <bruno@clisp.org>
doc: Update for ISO C header files added in POSIX:2024.
* doc/posix-headers/*.texi: Update.
2024-08-08 Bruno Haible <bruno@clisp.org>
doc: Update for header files added in POSIX:2024.
* doc/posix-headers/devctl.texi: New file.
* doc/posix-headers/endian.texi: Renamed from
doc/glibc-headers/endian.texi. Update.
* doc/posix-headers/libintl.texi: Renamed from
doc/glibc-headers/libintl.texi. Update.
* doc/gnulib.texi (Header File Substitutes,
Glibc Header File Substitutes): Update.
2024-08-08 Bruno Haible <bruno@clisp.org>
doc: Update for Cygwin 3.5.3.
* doc/posix-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2024-08-07 Bruno Haible <bruno@clisp.org>
math: Fix INFINITY and NAN on mingw.
* doc/posix-headers/math.texi: Mention this mingw bug.
* lib/math.in.h (INFINITY, NAN): Replace also on mingw.
2024-08-07 Bruno Haible <bruno@clisp.org>
doc: Update for OpenBSD 7.5.
* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2024-08-07 Bruno Haible <bruno@clisp.org>
Avoid compiler warnings in some configure tests.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Allocate more room for local
array 'name'.
* m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK): Don't
pass a NULL pointer to pthread_mutex_timedlock.
2024-08-07 Bruno Haible <bruno@clisp.org>
pthread-rwlock tests: Strengthen tests.
* tests/test-pthread-rwlock-waitqueue.c: New file.
* modules/pthread-rwlock-tests (Files): Add it.
(Depends-on): Add extensions, nanosleep, stdbool.
(Makefile.am): Arrange to test test-pthread-rwlock-waitqueue.
2024-08-07 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Fix default wait queue behaviour on glibc/Linux.
* lib/pthread.in.h: If REPLACE_PTHREAD_RWLOCK_INIT is 1 but
REPLACE_PTHREAD_RWLOCK_DESTROY is 0, override
PTHREAD_RWLOCK_INITIALIZER.
* lib/pthread-rwlock.c
(pthread_rwlockattr_init) [PTHREAD_RWLOCK_BAD_WAITQUEUE]: New function.
(pthread_rwlock_init) [PTHREAD_RWLOCK_BAD_WAITQUEUE]: New function.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Check for reasonable
pthread_rwlock wait queue handling. Set REPLACE_PTHREAD_RWLOCK_INIT and
REPLACE_PTHREAD_RWLOCKATTR_INIT and define PTHREAD_RWLOCK_BAD_WAITQUEUE
if not.
* modules/pthread-rwlock (configure.ac): Update
GL_COND_OBJ_PTHREAD_RWLOCK condition.
* doc/posix-functions/pthread_rwlock_rdlock.texi: Mark the glibc problem
as fixed.
* doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise.
2024-08-07 Paul Eggert <eggert@cs.ucla.edu>
errno-tests: port to GNU/Hurd
Test for errno distinctness dynamically rather than statically,
since the static test blows up the compiler on Hurd.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00039.html
Also, test that errno values can all be used in #if,
and improve diagnostics.
* tests/test-errno.c: Include stdio.h, stdlib.h, string.h.
(USABLE_IN_IF): New macro. Use it to check errno values in #if.
(ERRTAB): New macro.
(struct nameval): New type.
(errtab): New global variable.
(errtab_cmp): New function.
(main): Test for errno distinctness dynamically not statically.
Diagnose lack of distinctness better.
2024-08-07 Bruno Haible <bruno@clisp.org>
fchmodat: Fix cross-compilation guess.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Tolerate Linux version number
in $host_os.
2024-08-06 Bruno Haible <bruno@clisp.org>
windows-mutex, windows-timedmutex: Fix mistake in last commit.
* lib/windows-mutex.c (glwthread_mutex_init): Initialize the 'owner'
field.
* lib/windows-timedmutex.c (glwthread_timedmutex_init): Likewise.
2024-08-06 Bruno Haible <bruno@clisp.org>
doc: Mention a macOS bug.
* doc/posix-functions/pthread_rwlock_trywrlock.texi: Mention a macOS
bug.
2024-08-06 Bruno Haible <bruno@clisp.org>
mtx tests: Strengthen tests.
* tests/test-mtx-type.c: New file.
* modules/mtx-tests (Files): Add it.
(Makefile.am): Arrange to test test-mtx-type.
2024-08-06 Bruno Haible <bruno@clisp.org>
pthread-mutex tests: Strengthen tests.
* tests/test-pthread-mutex-type.c: New file.
* modules/pthread-mutex-tests (Files): Add it.
(Makefile.am): Arrange to test test-pthread-mutex-type.
* doc/posix-functions/pthread_mutex_lock.texi: Mention FreeBSD and
NetBSD problem.
* doc/posix-functions/pthread_mutex_trylock.texi: Likewise.
2024-08-06 Bruno Haible <bruno@clisp.org>
windows-timedrecmutex: Add tests.
* tests/test-windows-timedrecmutex-type.c: New file.
* modules/windows-timedrecmutex-tests: New file.
windows-recmutex: Add tests.
* tests/test-windows-recmutex-type.c: New file.
* modules/windows-recmutex-tests: New file.
windows-timedmutex: Add tests.
* tests/test-windows-timedmutex-type.c: New file.
* modules/windows-timedmutex-tests: New file.
windows-mutex: Add tests.
* tests/test-windows-mutex-type.c: New file.
* modules/windows-mutex-tests: New file.
2024-08-06 Bruno Haible <bruno@clisp.org>
windows-mutex, windows-timedmutex: Follow pthread_mutex_trylock spec.
* lib/windows-mutex.h (glwthread_mutex_t): Add 'owner' field.
* lib/windows-mutex.c: Include <stdlib.h>.
(glwthread_mutex_lock): Set the 'owner' field after entering the
critical section.
(glwthread_mutex_trylock): Detect whether the lock was previously locked
by this thread. Set the 'owner' field after entering the critical
section.
(glwthread_mutex_unlock): Clear the 'owner' field before leaving the
critical section.
* lib/windows-timedmutex.h (glwthread_timedmutex_t): Add 'owner' field.
* lib/windows-timedmutex.c: (glwthread_timedmutex_lock): Set the 'owner'
field after entering the critical section.
(glwthread_timedmutex_trylock): Detect whether the lock was previously
locked by this thread. Set the 'owner' field after entering the critical
section.
(glwthread_timedmutex_unlock): Clear the 'owner' field before leaving
the critical section.
2024-08-05 Bruno Haible <bruno@clisp.org>
Improve a comment.
With info from Sam James <sam@gentoo.org>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Reference the gcc bug that is
the reason for _GL_BRACKET_BEFORE_ATTRIBUTE.
2024-08-05 Bruno Haible <bruno@clisp.org>
math: Fix HUGE_VAL and HUGE_VALL on AIX.
* lib/math.in.h (HUGE_VAL, HUGE_VALL): Override on AIX.
* doc/posix-headers/math.texi: Mention this AIX problem.
2024-08-05 Bruno Haible <bruno@clisp.org>
xstrtol, xstrtoll tests: Fix test failures.
* tests/test-xstrtol.c (is_GNULIB_strtol): New macro.
(main): Use it in the expected test results.
* tests/test-xstrtoll.c (is_GNULIB_strtol): New macro.
2024-08-05 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix testdirs created with --without-tests.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't assume that 'gltests'
is the last subdirectory with a configure.ac.
2024-08-05 Bruno Haible <bruno@clisp.org>
Fix compilation error in C++ mode with clang >= 16 (regr. 2024-07-29).
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define
_GL_BRACKET_BEFORE_ATTRIBUTE with clang++ 16 or newer.
2024-08-05 Bernhard Voelker <mail@bernhard-voelker.de>
dfa-tests: Detect test-dfa-match-aux error.
* tests/test-dfa-invalid-merge.sh: Set fail=1 if test-dfa-match-aux fails.
Remove redundant 'returns_ 0'.
2024-08-05 Bernhard Voelker <mail@bernhard-voelker.de>
test-framework-sh: Improve returns_ example.
In the shell test framework, an error is either flagged by setting
the shell variable fail=1, or by invoking the fail_ function with an
error diagnostic.
* tests/init.sh (returns_): Change example code in the comment to
use '|| fail=1' properly.
2024-08-05 Bruno Haible <bruno@clisp.org>
once: Add missing .m4 file.
Reported by Collin Funk.
* m4/once.m4: New file.
2024-08-04 Bruno Haible <bruno@clisp.org>
mtx-tests: Reduce dependencies.
* tests/test-mtx.c: Don't include glthread/lock.h.
* modules/mtx-tests (Depends-on): Remove lock.
2024-08-04 Bruno Haible <bruno@clisp.org>
thread: Reduce dependencies.
* lib/glthread/thread.c: Don't include glthread/lock.h.
* modules/thread (Depends-on): Remove lock.
2024-08-04 Bruno Haible <bruno@clisp.org>
uchar-c23: Reduce dependencies.
* lib/lc-charset-unicode.c: Include glthread/once.h instead of
glthread/lock.h.
* modules/uchar-c23 (Depends-on): Add once. Remove lock.
2024-08-04 Bruno Haible <bruno@clisp.org>
strsignal: Reduce dependencies.
* lib/strsignal.c: Include glthread/once.h instead of glthread/lock.h.
* modules/strsignal (Depends-on): Add once. Remove lock.
2024-08-04 Bruno Haible <bruno@clisp.org>
immutable: Clarify dependencies.
* lib/immutable.c: Include glthread/once.h instead of glthread/lock.h.
* modules/immutable (Depends-on): Add once.
2024-08-04 Bruno Haible <bruno@clisp.org>
fstrcmp: Reduce dependencies.
* lib/fstrcmp.c: Include glthread/once.h instead of glthread/lock.h.
* modules/fstrcmp (Depends-on): Add once. Remove lock.
2024-08-04 Bruno Haible <bruno@clisp.org>
lock-tests: Clarify dependencies.
* tests/test-lock.c: Include glthread/once.h.
* modules/lock-tests (Depends-on): Add once.
2024-08-04 Bruno Haible <bruno@clisp.org>
fatal-signal: Clarify dependencies.
* lib/fatal-signal.c: Include glthread/once.h.
* modules/fatal-signal (Depends-on): Add once.
2024-08-04 Bruno Haible <bruno@clisp.org>
clean-temp-simple: Clarify dependencies.
* lib/clean-temp-simple.c: Include glthread/once.h.
* modules/clean-temp-simple (Depends-on): Add once.
2024-08-04 Bruno Haible <bruno@clisp.org>
once-tests: New module, extracted from lock-tests.
* modules/once-tests: New file.
* modules/lock-tests (Files): Remove tests/test-once.c.
(Makefile.am): Don't build and test test-once1 and test-once2.
once: New module, extracted from lock.
* lib/glthread/once.h: New file, extracted from lib/glthread/lock.h.
* lib/glthread/once.c: New file, extracted from lib/glthread/lock.c.
* lib/glthread/lock.h: Include glthread/once.h. Don't include
windows-once.h.
(c11_threads_in_use, glthread_in_use, gl_once_t, gl_once_define,
glthread_once): Remove.
(glthread_once_singlethreaded, glthread_once_multithreaded): Remove
declarations.
* lib/glthread/lock.c (fresh_once, glthread_once_singlethreaded,
glthread_once_multithreaded): Remove.
* modules/once: New file.
* modules/lock (Depends-on): Add once. Remove pthread-once,
windows-once.
* tests/test-once.c: Include glthread/once.h instead of glthread/lock.h.
* doc/multithread.texi (Gnulib multithreading): Mention the module
'once'.
2024-08-03 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Small refactoring.
Suggested by Collin Funk.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively):
Return a set of GLModule.
* pygnulib/main.py (main): Convert the result to a string here.
2024-08-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Correct type hint and doc string.
* pygnulib/GLModuleSystem.py (GLModule.getDependentsRecursively): Adjust
type hint and doc string to correctly state a set of GLModule's is
returned.
2024-08-02 Bruno Haible <bruno@clisp.org>
Allow use of --avoid=extensions-aix.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Don't require gl_USE_AIX_EXTENSIONS
explicitly.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise.
* m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise.
2024-08-01 Bruno Haible <bruno@clisp.org>
math: Fix INFINITY and NAN on FreeBSD and AIX.
* doc/posix-headers/math.texi: Mention some FreeBSD and AIX bugs.
* lib/math.in.h (INFINITY): New macro.
(NAN): Replace also on FreeBSD < 8 and AIX. Use __builtin_nanf where
available.
(HUGE_VALF): Replace also on FreeBSD < 6. Use __builtin_inff where
available.
(HUGE_VAL): Replace also on FreeBSD < 6. Use __builtin_inf where
available.
(HUGE_VALL): Replace also on FreeBSD < 6. Use __builtin_infl where
available.
* tests/test-math.c: Check that INFINITY, NAN, HUGE_VALF, HUGE_VAL,
HUGE_VALL are constant expressions.
(main): Check the type of INFINITY and NAN.
2024-08-01 Bruno Haible <bruno@clisp.org>
Ensure consistent effects of _LINUX_SOURCE_COMPAT.
* modules/extensions (configure.ac-early): New section.
* m4/extensions-aix.m4: New file.
* modules/extensions-aix: New file.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Require gl_USE_AIX_EXTENSIONS,
instead of defining _LINUX_SOURCE_COMPAT at this stage.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise.
* m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise.
* modules/errno (Depends-on): Add extensions-aix.
* modules/malloc-gnu (Depends-on): Likewise.
* modules/calloc-gnu (Depends-on): Likewise.
* modules/realloc-gnu (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
2024-08-01 Bruno Haible <bruno@clisp.org>
strerror_r: Fix for AIX (regression yesterday).
* lib/strerror_r.c: Ignore the value of STRERROR_R_CHAR_P on AIX.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
_LINUX_SOURCE_COMPAT, since it provides no advantage for strerror_r.
2024-07-31 Paul Eggert <eggert@cs.ucla.edu>
errno: make EEXIST != ENOTEMPTY on AIX
Also, improve errno tests.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU):
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU):
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU):
* m4/scandir.m4 (gl_FUNC_SCANDIR):
Define _LINUX_SOURCE_COMPAT, as this can sometimes help on AIX.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H):
Define _LINUX_SOURCE_COMPAT, to make EEXIST != ENOTEMPTY.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R):
Define _LINUX_SOURCE_COMPAT, in case someone else does.
* modules/errno-tests (Depends-on): Add assert-h, c99.
* tests/test-errno.c (e1, ..., e131): Remove, replacing with ...
(CHECK_POSIX_ERRNOS, POSITIVE_INTEGER_CONSTANT_EXPRESSION)
(INDEXED_BY_ERRNO, ERRNO_COUNT): These new macros.
Check that all errno values are positive integer constant expressions.
Check that they are all distinct, except perhaps for
EWOULDBLOCK == EAGAIN and ENOTSUP == EOPNOTSUPP.
Also check ESOCKTNOSUPPORT, added in POSIX.1-2024.
Also, check that errno values are distinct except when POSIX says
they needn’t be distinct, since POSIX.1-2024 gives license to
GNU/Linux’s non-distinct values.
2024-07-31 Bruno Haible <bruno@clisp.org>
float: Update to mostly guarantee ISO C 23 compliance.
* doc/posix-headers/float.texi: Mention the various portability
problems.
* lib/float.in.h (FLT_HAS_SUBNORM, FLT_DECIMAL_DIG, FLT_TRUE_MIN,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_TRUE_MIN, LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN): New macros.
(gl_LDBL_TRUE_MIN): New declaration.
(FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN, GNULIB_defined_FLT_SNAN,
DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN, GNULIB_defined_DBL_SNAN,
LDBL_IS_IEC_60559, LDBL_NORM_MAX, LDBL_SNAN, GNULIB_defined_LDBL_SNAN):
New macros.
(gl_FLT_SNAN_t, gl_DBL_SNAN_t, gl_LDBL_SNAN_t): New types.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New declarations.
* lib/float.c (gl_LDBL_TRUE_MIN): New variable.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New variables.
* m4/float_h.m4 (gl_FLOAT_H): Add check whether float.h conforms to
ISO C23. Set REPLACE_FLOAT_SNAN.
* modules/float (configure.ac): Test also REPLACE_FLOAT_SNAN. Require
gl_BIGENDIAN.
* tests/test-float.c: Also check FLT_EVAL_METHOD, FLT_HAS_SUBNORM,
FLT_DECIMAL_DIG, FLT_IS_IEC_60559, FLT_TRUE_MIN, FLT_NORM_MAX,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_IS_IEC_60559, DBL_TRUE_MIN,
DBL_NORM_MAX, LDBL_HAS_SUBNORM, LDBL_DECIMAL_DIG, LDBL_IS_IEC_60559.
Conditionally check LDBL_TRUE_MIN, LDBL_NORM_MAX.
Include isnanf-nolibm.h, isnand-nolibm.h, isnanl-nolibm.h.
(test_float): Check the values of FLT_HAS_SUBNORM, FLT_DECIMAL_DIG,
FLT_TRUE_MIN, FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN.
(test_double): Check the values of DBL_HAS_SUBNORM, DBL_DECIMAL_DIG,
DBL_TRUE_MIN, DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN.
(test_long_double): Check the values of LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN, LDBL_IS_IEC_60559, LDBL_NORM_MAX,
LDBL_SNAN.
* modules/float-tests (Depends-on): Add isnanf-nolibm, isnand-nolibm,
isnanl-nolibm.
2024-07-30 Bruno Haible <bruno@clisp.org>
attribute: Improve documentation.
* lib/attribute.h: Clarify where to place the various attributes.
2024-07-30 Bruno Haible <bruno@clisp.org>
Reenable use of attributes in bracket syntax [[...]] (regr. yesterday).
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add more comments. Don't define
_GL_BRACKET_USABLE.
* lib/c++defs.h (_GL_EXTERN_C_FUNC): New macro.
(_GL_FUNCDECL_RPL, _GL_FUNCDECL_RPL_1, _GL_FUNCDECL_SYS): Expect the
attributes in an optional 4th argument. Expand them before the return
type.
* lib/arpa_inet.in.h: Update all _GL_FUNCDECL_RPL and _GL_FUNCDECL_SYS
invocations.
* lib/dirent.in.h: Likewise.
* lib/error.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/fnmatch.in.h: Likewise.
* lib/glob.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/malloc.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/monetary.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/sys_random.in.h: Likewise.
* lib/sys_resource.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/threads.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/uchar.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/utime.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Move _GL_ATTRIBUTE_NODISCARD back to the beginning of the
declaration.
2024-07-29 Bruno Haible <bruno@clisp.org>
vaszprintf-posix tests: Fix a gcc warning.
* tests/test-vaszprintf-posix.c (test_function): Remove an unused
variable.
2024-07-29 Bruno Haible <bruno@clisp.org>
Use attribute [[nodiscard]] wherever glibc uses __wur.
* lib/malloc.in.h (memalign): Mark with _GL_ATTRIBUTE_NODISCARD.
* lib/stdio.in.h (fdopen, fgets, fopen, fread, freopen, fscanf, ftell,
ftello, getdelim, getline, popen, scanf, tmpfile, vfscanf, vscanf):
Likewise.
* lib/stdlib.in.h (aligned_alloc, atoll, calloc, canonicalize_file_name,
getsubopt, malloc, mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps,
posix_memalign, posix_openpt, ptsname, realloc, reallocarray, realpath,
rpmatch, secure_getenv): Likewise.
* lib/sys_random.in.h (getrandom): Likewise.
* lib/sys_stat.in.h (fchmodat): Likewise.
* lib/unistd.in.h (chown, dup, faccessat, fchdir, fchownat, ftruncate,
getcwd, getdomainname, getentropy, getgroups, lchown, link, linkat,
pipe, pipe2, pread, pwrite, read, readlink, readlinkat, sethostname,
symlink, symlinkat, truncate, ttyname_r, write): Likewise.
2024-07-29 Bruno Haible <bruno@clisp.org>
Avoid g++ "warning: attributes are not permitted in this position".
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add more comments. Define
_GL_BRACKET_USABLE. Use it for _GL_ATTRIBUTE_DEPRECATED,
_GL_ATTRIBUTE_MAYBE_UNUSED, _GL_ATTRIBUTE_NODISCARD,
_GL_ATTRIBUTE_REPRODUCIBLE, _GL_ATTRIBUTE_UNSEQUENCED.
* lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Move
_GL_ATTRIBUTE_NODISCARD to the same position as the other attributes.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Likewise.
2024-07-29 Bruno Haible <bruno@clisp.org>
An update for clang >= 16.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Don't define
_GL_BRACKET_BEFORE_ATTRIBUTE with clang++ 16 or newer.
2024-07-29 Bruno Haible <bruno@clisp.org>
Fix misspelling of __clang_major__.
* lib/cdefs.h (__THROW, __THROWNL, __NTH, __NTHNL): Fix misspelled macro
name.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
* lib/malloc.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stddef.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stdlib.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/sys_stat.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
2024-07-29 Bruno Haible <bruno@clisp.org>
chdir: Fix mistake in GNULIB_POSIXCHECK.
* lib/unistd.in.h: Don't attach the chdir warning to the 'chown'
function.
2024-07-29 Bruno Haible <bruno@clisp.org>
atoll: Fix module dependencies.
* modules/atoll (Depends-on): Add stdlib.
2024-07-29 Bruno Haible <bruno@clisp.org>
vasprintf, c-vasprintf: Remind users to consider the return value.
* lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Mark with
_GL_ATTRIBUTE_NODISCARD.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Likewise.
2024-07-29 Bruno Haible <bruno@clisp.org>
xstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.
* tests/test-xstrtol.c (main): Update expected test results.
2024-07-29 Bruno Haible <bruno@clisp.org>
logp1l: Add tests.
* tests/test-logp1l.c: New file, based on tests/test-log1pl.c.
* modules/logp1l-tests: New file.
logp1l: New module.
* lib/math.in.h (logp1l): New declaration.
* lib/logp1l.c: New file.
* m4/logp1l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1l is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LOGP1L.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1L.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1L, HAVE_LOGP1L.
* modules/logp1l: New file.
* doc/posix-functions/logp1l.texi: Mention the new module.
2024-07-29 Bruno Haible <bruno@clisp.org>
logp1f: Add tests.
* tests/test-logp1f.c: New file, based on tests/test-log1pf.c.
* modules/logp1f-tests: New file.
logp1f: New module.
* lib/math.in.h (logp1f): New declaration.
* lib/logp1f.c: New file.
* m4/logp1f.m4: New file.
* m4/log1p.m4 (gl_FUNC_LOG1P): Define through AC_DEFUN_ONCE.
* m4/isnand.m4 (gl_FUNC_ISNAND): Define through AC_DEFUN_ONCE.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1f is declared.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1F.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1F, HAVE_LOGP1F.
* modules/logp1f: New file.
* doc/posix-functions/logp1f.texi: Mention the new module.
2024-07-29 Bruno Haible <bruno@clisp.org>
logp1: Add tests.
* tests/test-logp1.c: New file, based on tests/test-log1p.c.
* modules/logp1-tests: New file.
logp1: New module.
* lib/math.in.h (logp1): New declaration.
* lib/logp1.c: New file.
* m4/logp1.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1 is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LOGP1.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1, HAVE_LOGP1.
* modules/logp1: New file.
* doc/posix-functions/logp1.texi: Mention the new module.
2024-07-28 Bruno Haible <bruno@clisp.org>
More updates regarding the 'Useable-in-testdir' sections.
* gnulib-tool.sh (sed_extract_prog, sed_extract_field_header): Recognize
the 'Useable-in-testdir' sections.
* modules/TEMPLATE-EXTENDED: Add a 'Useable-in-testdir' section.
* doc/gnulib.texi (Module description): Move new text.
2024-07-28 Collin Funk <collin.funk1@gmail.com>
doc: Document the 'Useable-in-testdir' field in module descriptions.
* doc/gnulib.texi (Module description): Add the 'Usable-in-testdir'
field.
2024-07-28 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: New options --extract-[recursive-]dependents.
* pygnulib/GLInfo.py (GLInfo.usage): Document --extract-dependents and
--extract-recursive-dependents options.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively): Move
method.
(getDependents, getDependentsRecursively): New methods.
* pygnulib/main.py (main): Add support for --extract-dependents and
--extract-recursive-dependents.
2024-07-28 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Avoid adding specific modules to a testdir.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00292.html>.
* pygnulib/GLInfo.py (GLInfo.usage): Document
--extract-usability-in-testdir option.
* pygnulib/GLModuleSystem.py (GLModule.section_label_pattern): Recognize
Usable-in-testdir section.
(GLModule.getUsabilityInTestdir): New function.
* pygnulib/GLTestDir.py (GLTestDir.execute): Invoke it to filter out
modules to avoid. Warn if such a module was specified.
* pygnulib/main.py (main): Add support for
--extract-usability-in-testdir. Provide an error message for error 24.
* pygnulib/GLError.py: Likewise.
* modules/config-h (Usable-in-testdir): New section.
* modules/lib-ignore (Usable-in-testdir): New section.
* modules/mountlist (Usable-in-testdir): New section.
* modules/non-recursive-gnulib-prefix-hack (Usable-in-testdir): New
section.
* modules/timevar (Usable-in-testdir): New section.
(Files): Remove lib/timevar.def.
2024-07-28 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix an exception message.
* pygnulib/GLModuleSystem.py (GLModuleSystem.find): Raise error 23,
not 3.
* pygnulib/GLError.py: Provide an error message for error 23.
* pygnulib/main.py: Likewise.
2024-07-28 Paul Eggert <eggert@cs.ucla.edu>
maint: remove ‘coding: utf-8’ on ASCII
These days, ‘coding: utf-8’ tags aren’t needed in general,
as Emacs typically defaults to UTF-8, and Emacs itself now
has many untagged source files in UTF-8. However, for now let’s
just remove the tags when they are on ASCII files.
* lib/md5-stream.c, lib/sha1-stream.c, lib/sha256-stream.c:
* lib/sm3-stream.c: Remove unnecessary coding: lines.
maint: remove coding: that did not work
* m4/fnmatch.m4, m4/fpieee.m4, m4/mbrlen.m4, m4/mbrtowc.m4:
Remove ineffective coding: strings.
std-gnu23: new module
The plan is to update the c99 module to depend on std-gnu23
instead of on std-gnu11, and to make std-gnu11 obsolete.
A benefit of this will be that c99 will no longer affect C++.
For now, though, std-gnu23 is simply a new, optional module.
* MODULES.html.sh (func_all_modules): Add it.
* modules/std-gnu23, m4/std-gnu23.m4: New files.
* m4/std-gnu11.m4: Do nothing if _AC_C_C23_OPTIONS is defined.
(AC_PROG_CC): Use AC_DEFUN, not AC_DEFUN_ONCE, so that
we can be superseded.
timevar: add missing timevar.def
* modules/timevar (Files): Add timevar.def.
2024-07-27 Collin Funk <collin.funk1@gmail.com>
doc: Remove HTML code tags from Texinfo files.
* doc/posix-functions/alarm.texi (alarm): Use @code{} instead of
<code></code>.
* doc/posix-headers/sys_un.texi (sys/un.h): Likewise.
maintainer-makefile: Fix yesterdays #include <...> change.
* top/maint.mk (gl_prefer_angle_bracket_headers_): Remove files that
don't include #include_next. Sort using the C locale.
doc: Fix yesterdays #include <...> change.
* doc/gnulib-tool.texi (Style of #include statements): Remove files that
don't include #include_next. Sort using the C locale.
2024-07-26 Collin Funk <collin.funk1@gmail.com>
maintainer-makefile: Update list of headers to use #include <...>.
* top/maint.mk (gl_prefer_angle_bracket_headers_): Add missing headers
from lib/*.in.h. Re-sort list.
doc: Update list of headers to use #include <...>.
* doc/gnulib-tool.texi (Style of #include statements): Add missing
headers from lib/*.in.h. Re-sort list.
sys_time, sys_types: Remove sys directory at 'make mostlyclean'.
* modules/sys_time (Makefile.am): Add sys to MOSTLYCLEANDIRS.
* modules/sys_types (Makefile.am): Likewise.
2024-07-26 Bruno Haible <bruno@clisp.org>
sys_un: Avoid compilation error in C++ <string.h> on glibc systems.
* m4/sys_un_h.m4 (gl_SYS_UN_H): Require AC_CANONICAL_HOST. Set
GL_GENERATE_SYS_UN_H to true on glibc systems. Invoke
gl_CHECK_NEXT_HEADERS. Initialize HAVE_SYS_UN_H.
* lib/sys_un.in.h: Use include_next and a split double-inclusion guard.
In C++ mode, include <stddef.h> and <string.h> first.
* modules/sys_un (Depends-on): Add include_next.
(Makefile.am): Substitute INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER,
PRAGMA_COLUMNS, NEXT_SYS_UN_H, HAVE_SYS_UN_H. Arrange to remove 'sys'
directory at "make mostlyclean".
2024-07-26 Bruno Haible <bruno@clisp.org>
xstrtol, xstrtoll tests: Improve comment.
* tests/test-xstrtol.c (main): Clarify that the new test exercises
undefined behaviour.
2024-07-25 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: remove the base-checking changes
* lib/xstrtol.c (__xstrtol): Stop worrying about hypothetical
implementations that are causing more confusion than the code is
worth. Instead, go back more to old way of doing things.
None of this matters for practical applications.
* lib/xstrtol.h: Document that behavior is undefined
if the base is negative, 1, or greater than 36.
* modules/xstrtol (Depends-on): Remove nullptr; no longer needed.
2024-07-25 Bruno Haible <bruno@clisp.org>
xstrtol, xstrtoll tests: Avoid test failure on FreeBSD.
* tests/test-xstrtol.c (main): Adjust expected results for FreeBSD.
xstrtol, xstrtoll tests: Test behaviour for an invalid base.
Reported by Alejandro Colomar <alx@kernel.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00249.html>.
* modules/xstrtol-tests (Files): Add tests/macros.h.
* modules/xstrtoll-tests (Files): Likewise.
* tests/test-xstrtol.c: Include macros.h.
(main): If no arguments are given on the command line, perform
miscellaneous tests.
* tests/test-xstrtol.sh: Also invoke test-xstrtol without arguments.
* tests/test-xstrtoll.sh: Also invoke test-xstrtoll without arguments.
2024-07-24 Collin Funk <collin.funk1@gmail.com>
sys_un: Add C++ tests.
* modules/sys_un-c++-tests: New file.
* tests/test-sys_un-c++.cc: New file.
* modules/sys_un-tests (Depends-on): Add sys_un-c++-tests.
sys_un: Add tests.
* modules/sys_un-tests: New file.
* tests/test-sys_un.c: New file.
sys_un: New module.
* doc/posix-headers/sys_un.texi (sys/un.h): Mention it.
* lib/sys_un.in.h: New file.
* m4/sys_un_h.m4: New file.
* modules/sys_un: New file.
2024-07-24 Bruno Haible <bruno@clisp.org>
Avoid false select_used_without_requesting_gnulib_module_select.
* modules/select (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_select.in.h (select): Don't define to
select_used_without_requesting_gnulib_module_select if the gnulib module
'select' is in use under the same configure.ac.
Avoid false shutdown_used_without_requesting_gnulib_module_shutdown.
* modules/shutdown (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (shutdown): Don't define to
shutdown_used_without_requesting_gnulib_module_shutdown if the gnulib
module 'shutdown' is in use under the same configure.ac.
Avoid false setsockopt_used_without_requesting_gnulib_module_setsockopt.
* modules/setsockopt (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (setsockopt): Don't define to
setsockopt_used_without_requesting_gnulib_module_setsockopt if the
gnulib module 'setsockopt' is in use under the same configure.ac.
Avoid false sendto_used_without_requesting_gnulib_module_sendto.
* modules/sendto (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (sendto): Don't define to
sendto_used_without_requesting_gnulib_module_sendto if the gnulib module
'sendto' is in use under the same configure.ac.
Avoid false recvfrom_used_without_requesting_gnulib_module_recvfrom.
* modules/recvfrom (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (recvfrom): Don't define to
recvfrom_used_without_requesting_gnulib_module_recvfrom if the gnulib
module 'recvfrom' is in use under the same configure.ac.
Avoid false send_used_without_requesting_gnulib_module_send.
* modules/send (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (send): Don't define to
send_used_without_requesting_gnulib_module_send if the gnulib module
'send' is in use under the same configure.ac.
Avoid false recv_used_without_requesting_gnulib_module_recv.
* modules/recv (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (recv): Don't define to
recv_used_without_requesting_gnulib_module_recv if the gnulib module
'recv' is in use under the same configure.ac.
Avoid false listen_used_without_requesting_gnulib_module_listen.
* modules/listen (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (listen): Don't define to
listen_used_without_requesting_gnulib_module_listen if the gnulib module
'listen' is in use under the same configure.ac.
Avoid false getsockopt_used_without_requesting_gnulib_module_getsockopt.
* modules/getsockopt (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (getsockopt): Don't define to
getsockopt_used_without_requesting_gnulib_module_getsockopt if the
gnulib module 'getsockopt' is in use under the same configure.ac.
Avoid false getsockname_used_without_requesting_gnulib_module_getsockname.
* modules/getsockname (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (getsockname): Don't define to
getsockname_used_without_requesting_gnulib_module_getsockname if the
gnulib module 'getsockname' is in use under the same configure.ac.
Avoid false getpeername_used_without_requesting_gnulib_module_getpeername.
* modules/getpeername (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (getpeername): Don't define to
getpeername_used_without_requesting_gnulib_module_getpeername if the
gnulib module 'getpeername' is in use under the same configure.ac.
Avoid false bind_used_without_requesting_gnulib_module_bind.
* modules/bind (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (bind): Don't define to
bind_used_without_requesting_gnulib_module_bind if the gnulib module
'bind' is in use under the same configure.ac.
Avoid false accept_used_without_requesting_gnulib_module_accept.
* modules/accept (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (accept): Don't define to
accept_used_without_requesting_gnulib_module_accept if the gnulib module
'accept' is in use under the same configure.ac.
Avoid false socket_used_without_requesting_gnulib_module_connect.
* modules/connect (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (connect): Don't define to
socket_used_without_requesting_gnulib_module_connect if the gnulib
module 'connect' is in use under the same configure.ac. Fix typo.
Avoid false socket_used_without_requesting_gnulib_module_socket.
* modules/socket (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (socket): Don't define to
socket_used_without_requesting_gnulib_module_socket if the gnulib module
'socket' is in use under the same configure.ac.
Avoid false lstat_used_without_requesting_gnulib_module_lstat.
* modules/lstat (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_stat.in.h (lstat): Don't define to
lstat_used_without_requesting_gnulib_module_lstat if the gnulib module
'lstat' is in use under the same configure.ac.
Avoid false fstatat_used_without_requesting_gnulib_module_fstatat.
* modules/fstatat (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_stat.in.h (fstatat): Don't define to
fstatat_used_without_requesting_gnulib_module_fstatat if the gnulib
module 'fstatat' is in use under the same configure.ac.
Avoid false fstat_used_without_requesting_gnulib_module_fstat.
* modules/fstat (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_stat.in.h (fstat): Don't define to
fstat_used_without_requesting_gnulib_module_fstat if the gnulib module
'fstat' is in use under the same configure.ac.
Avoid false stat_used_without_requesting_gnulib_module_stat.
* modules/stat (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_stat.in.h (stat): Don't define to
stat_used_without_requesting_gnulib_module_stat if the gnulib module
'stat' is in use under the same configure.ac.
Avoid false ioctl_used_without_requesting_gnulib_module_ioctl.
* modules/ioctl (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_ioctl.in.h (ioctl): Don't define to
ioctl_used_without_requesting_gnulib_module_ioctl if the gnulib module
'ioctl' is in use under the same configure.ac.
Avoid false localeconv_used_without_requesting_gnulib_module_localeconv.
* modules/localeconv (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/locale.in.h (localeconv): Don't define to
localeconv_used_without_requesting_gnulib_module_localeconv if the
gnulib module 'localeconv' is in use under the same configure.ac.
Avoid false gethostname_used_without_requesting_gnulib_module_gethostname.
* modules/gethostname (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/unistd.in.h (gethostname): Don't define to
gethostname_used_without_requesting_gnulib_module_gethostname if the
gnulib module 'gethostname' is in use under the same configure.ac.
Avoid false error close_used_without_requesting_gnulib_module_close.
Reported by Frédéric at <https://savannah.gnu.org/bugs/?65958>.
* modules/close (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/unistd.in.h (close): Don't define to
close_used_without_requesting_gnulib_module_close if the gnulib module
'close' is in use under the same configure.ac.
2024-07-24 Bruno Haible <bruno@clisp.org>
xstrtod, xstrtold: Don't treat gradual underflow as an error.
* lib/xstrtod.c (XSTRTOD): Upon gradual underflow, return true with
errno = 0.
* lib/xstrtod.h (xstrtod, xstrtold): Update specification.
* tests/test-xstrtod.c (main): For gradual underflow, expect ok &&
errno == 0.
* tests/test-xstrtold.c (main): Likewise.
2024-07-23 Collin Funk <collin.funk1@gmail.com>
Detect UNIX domain sockets supported by recent Windows versions.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILY_UNIX): Check for afunix.h if
winsock2.h is found. Include it in the compile check.
sys_socket tests: Fix mistake in previous commit.
* modules/sys_socket-tests (configure.ac): Invoke gl_SOCKET_FAMILY_UNIX.
sys_socket tests: Define macros necessary for tests (regr. 2024-07-22).
* modules/sys_socket-tests (configure.ac): Invoke gl_SOCKET_FAMILIES.
sys_socket tests: Improve checks for socklen_t and sa_family_t.
* modules/sys_socket-tests (Depends-on): Add intprops.
* tests/test-sys_socket.c: Check that socklen_t is at least 32 bits
wide. Check that sa_family_t is unsigned.
2024-07-23 Bruno Haible <bruno@clisp.org>
getopt-posix, getopt-gnu tests: Avoid test failure on mingw.
* tests/test-getopt.h (test_getopt): Don't special-case mingw.
2024-07-23 Bruno Haible <bruno@clisp.org>
xstrtod, xstrtold: Add documentation.
* lib/xstrtod.h (xstrtod, xstrtold): Add comments.
* lib/xstrtod.c (XSTRTOD): Improve comments.
2024-07-23 Bruno Haible <bruno@clisp.org>
xstrtold: Add tests.
* tests/test-xstrtold.c: New file, based on tests/test-strtold.h.
* modules/xstrtold-tests: New file.
2024-07-23 Bruno Haible <bruno@clisp.org>
xstrtod: Add tests.
* tests/test-xstrtod.c: New file, based on tests/test-strtod.h.
* modules/xstrtod-tests: New file.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtof, strtod, strtold tests: Strengthen tests.
* tests/test-strtof.h (test_function): Strengthen the flush-to-zero
underflow tests.
* tests/test-strtod.h (test_function): Likewise.
* tests/test-strtold.h (test_function): Likewise.
2024-07-23 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.40.
* doc/posix-headers/utmpx.texi: Update.
* doc/posix-functions/*.texi: Likewise.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtof, strtod, strtold tests: Strengthen tests.
* tests/test-strtof.h (test_function): Add another overflow test.
* tests/test-strtod.h (test_function): Likewise.
* tests/test-strtold.h (test_function): Likewise.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtold: Revisit underflow behaviour.
* doc/posix-functions/strtold.texi: Mention broken mingw 5.0. Mention
that gradual underflow does not count as an error on MSVC.
* tests/test-strtold.h (test_function): Add a gradual underflow test.
Check the sign in case of flush-to-zero underflow.
strtod: Revisit underflow behaviour.
* doc/posix-functions/strtod.texi: Mention the macOS bug. Mention that
gradual underflow does not count as an error on Cygwin 2.9 and MSVC.
* m4/strtod.m4 (gl_FUNC_STRTOD): Update comment.
* tests/test-strtod.h (test_function): Add a gradual underflow test.
Check the sign in case of flush-to-zero underflow.
strtof: Revisit underflow behaviour.
* doc/posix-functions/strtof.texi: Mention the macOS bug. Mention the
mingw overflow bug. Mention the underflow bugs on Cygwin 2.9 and mingw.
Mention that gradual underflow does not count as an error on Cygwin 2.9,
mingw, MSVC.
* m4/strtof.m4 (gl_FUNC_STRTOF): Test against the mingw overflow bug.
* tests/test-strtof.h (test_function): Add a gradual underflow test.
Check the sign in case of flush-to-zero underflow.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtof, strtod, strtold: Fix underflow behaviour of system function.
* m4/strtof.m4 (gl_FUNC_STRTOF): Test for strtof's behaviour upon
underflow. Conditionally define STRTOF_HAS_UNDERFLOW_BUG,
STRTOF_HAS_GRADUAL_UNDERFLOW_PROBLEM.
* m4/strtod.m4 (gl_FUNC_STRTOD): Test for strtod's behaviour upon
underflow. Conditionally define STRTOD_HAS_UNDERFLOW_BUG,
STRTOD_HAS_GRADUAL_UNDERFLOW_PROBLEM.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Test for strtold's behaviour upon
gradual underflow. Conditionally define
STRTOLD_HAS_GRADUAL_UNDERFLOW_PROBLEM.
* lib/strtod.c (HAVE_UNDERLYING_STRTOD): Test STRTOF_HAS_UNDERFLOW_BUG,
STRTOD_HAS_UNDERFLOW_BUG.
(HAS_GRADUAL_UNDERFLOW_PROBLEM): New macro.
(SET_ERRNO_UPON_GRADUAL_UNDERFLOW): New macro.
(STRTOD): Use it.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtof: Use the system's strtof() if available.
* m4/strtof.m4 (gl_FUNC_STRTOF): Define HAVE_STRTOF if strtof exists.
2024-07-23 Bruno Haible <bruno@clisp.org>
strtof, strtod, strtold: Set errno upon gradual underflow.
* lib/strtod.c (scale_radix_exp): If the result is a denormalized
number, set errno to ERANGE.
2024-07-22 Collin Funk <collin.funk1@gmail.com>
sys_socket tests: Improve tests for macro definitions.
* modules/sys_socket-tests (Depends-on): Add assert-h.
* tests/test-sys_socket.c (a): Remove variable.
(main): Test that each supported address family is defined to a distinct
value. Test that each constant passed as the second argument of
'shutdown' is defined to a distinct value.
2024-07-22 Bruno Haible <bruno@clisp.org>
gnulib-tool: Omit the logs of skipped tests from test-suite.log.
* gnulib-tool.sh (func_emit_tests_Makefile_am): Emit an assignment to
IGNORE_SKIPPED_LOGS.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Likewise.
2024-07-21 Bruno Haible <bruno@clisp.org>
bootstrap: Avoid failure when gnulib-tool removed gettext.m4.
* top/bootstrap-funclib.sh (autogen): When gnulib-tool has removed
gettext.m4 but the package needs gettext.m4, repeat the autopoint and
gnulib-tool invocations.
* build-aux/bootstrap: Regenerated.
2024-07-20 Bruno Haible <bruno@clisp.org>
stack-trace: Don't use libasan by default.
* m4/stack-trace.m4 (gl_STACK_TRACE_EARLY): Remove libasan as second
choice.
2024-07-20 Bruno Haible <bruno@clisp.org>
doc: Sort the ISO C and POSIX Function Substitutes by header file.
* doc/gnulib.texi (Function Substitutes): Add one section per header
file.
* doc/posix-functions/*.texi: Each of these files is now a subsection.
2024-07-20 Bruno Haible <bruno@clisp.org>
getpayload*: Do use glibc's implementation when it works.
Reported by Andreas K. Huettel <dilfridge@gentoo.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00206.html>.
* m4/getpayload.m4 (gl_FUNC_GETPAYLOADF, gl_FUNC_GETPAYLOAD,
gl_FUNC_GETPAYLOADL): Link the test program with -lm if needed.
2024-07-20 Bruno Haible <bruno@clisp.org>
doc: Reference POSIX for functions that are added in POSIX:2024.
* doc/posix-functions/_Fork.texi etc: Reference POSIX:2024, not the LSB
and not the Austin Group tracker.
doc: Update status of functions that are added in POSIX:2024.
* doc/posix-functions/_Fork.texi: Moved here from doc/glibc-functions/.
* doc/posix-functions/accept4.texi: Likewise.
* doc/posix-functions/asprintf.texi: Likewise.
* doc/posix-functions/bind_textdomain_codeset.texi: Likewise.
* doc/posix-functions/bindtextdomain.texi: Likewise.
* doc/posix-functions/dcgettext.texi: Likewise.
* doc/posix-functions/dcngettext.texi: Likewise.
* doc/posix-functions/dgettext.texi: Likewise.
* doc/posix-functions/dladdr.texi: Likewise.
* doc/posix-functions/dngettext.texi: Likewise.
* doc/posix-functions/dup3.texi: Likewise.
* doc/posix-functions/ffsl.texi: Likewise.
* doc/posix-functions/ffsll.texi: Likewise.
* doc/posix-functions/getentropy.texi: Likewise.
* doc/posix-functions/getresgid.texi: Likewise.
* doc/posix-functions/getresuid.texi: Likewise.
* doc/posix-functions/gettext.texi: Likewise.
* doc/posix-functions/in6addr_any.texi: Likewise.
* doc/posix-functions/in6addr_loopback.texi: Likewise.
* doc/posix-functions/memmem.texi: Likewise.
* doc/posix-functions/mkostemp.texi: Likewise.
* doc/posix-functions/ngettext.texi: Likewise.
* doc/posix-functions/pipe2.texi: Likewise.
* doc/posix-functions/ppoll.texi: Likewise.
* doc/posix-functions/pthread_cond_clockwait.texi: Likewise.
* doc/posix-functions/pthread_mutex_clocklock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_clockrdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_clockwrlock.texi: Likewise.
* doc/posix-functions/ptsname_r.texi: Likewise.
* doc/posix-functions/qsort_r.texi: Likewise.
* doc/posix-functions/secure_getenv.texi: Likewise.
* doc/posix-functions/sem_clockwait.texi: Likewise.
* doc/posix-functions/setresgid.texi: Likewise.
* doc/posix-functions/setresuid.texi: Likewise.
* doc/posix-functions/textdomain.texi: Likewise.
* doc/posix-functions/timespec_get.texi: Likewise.
* doc/posix-functions/vasprintf.texi: Likewise.
* doc/posix-functions/reallocarray.texi: Likewise. Improve text.
* doc/gnulib.texi (Function Substitutes): Include them here.
(Glibc Function Substitutes): Don't include them here.
(Glibc libintl.h): Remove section.
(Glibc poll.h): Remove section.
(Glibc semaphore.h): Remove section.
2024-07-20 Bruno Haible <bruno@clisp.org>
doc: Reference POSIX:2024 instead of POSIX:2018.
* doc/*.texi: Change URL to POSIX.
* doc/posix-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
2024-07-20 Bruno Haible <bruno@clisp.org>
doc: Update status of functions that are removed from POSIX:2024.
* doc/pastposix-functions/_longjmp.texi: Moved here
from doc/posix-functions/.
* doc/pastposix-functions/_setjmp.texi: Likewise.
* doc/pastposix-functions/_tolower.texi: Likewise.
* doc/pastposix-functions/_toupper.texi: Likewise.
* doc/pastposix-functions/fattach.texi: Likewise.
* doc/pastposix-functions/fdetach.texi: Likewise.
* doc/pastposix-functions/ftw.texi: Likewise.
* doc/pastposix-functions/getitimer.texi: Likewise.
* doc/pastposix-functions/getmsg.texi: Likewise.
* doc/pastposix-functions/getpmsg.texi: Likewise.
* doc/pastposix-functions/gets.texi: Likewise.
* doc/pastposix-functions/gettimeofday.texi: Likewise.
* doc/pastposix-functions/ioctl.texi: Likewise.
* doc/pastposix-functions/isascii.texi: Likewise.
* doc/pastposix-functions/isastream.texi: Likewise.
* doc/pastposix-functions/posix_trace_*.texi: Likewise.
* doc/pastposix-functions/pthread_getconcurrency.texi: Likewise.
* doc/pastposix-functions/pthread_setconcurrency.texi: Likewise.
* doc/pastposix-functions/putmsg.texi: Likewise.
* doc/pastposix-functions/putpmsg.texi: Likewise.
* doc/pastposix-functions/setitimer.texi: Likewise.
* doc/pastposix-functions/setpgrp.texi: Likewise.
* doc/pastposix-functions/sighold.texi: Likewise.
* doc/pastposix-functions/sigignore.texi: Likewise.
* doc/pastposix-functions/siginterrupt.texi: Likewise.
* doc/pastposix-functions/sigpause.texi: Likewise.
* doc/pastposix-functions/sigrelse.texi: Likewise.
* doc/pastposix-functions/sigset.texi: Likewise.
* doc/pastposix-functions/tempnam.texi: Likewise.
* doc/pastposix-functions/toascii.texi: Likewise.
* doc/pastposix-functions/ulimit.texi: Likewise.
* doc/pastposix-functions/utime.texi: Likewise.
* doc/gnulib.texi (Function Substitutes): Don't include them here.
(Legacy Function Substitutes): Include them here.
2024-07-19 Collin Funk <collin.funk1@gmail.com>
gitlog-to-changelog: Improve output of pdf documentation.
* doc/gitlog-to-changelog.texi (gitlog-to-changelog): Reformat code to
use shorter lines and avoid overfull hboxes.
2024-07-19 Bruno Haible <bruno@clisp.org>
doc: Reference a newer ISO C23 draft.
Suggested by Alejandro Colomar <alx@kernel.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00191.html>.
* doc/*/*.texi: Refer to n3220.pdf (February 2024) instead of
n3096.pdf (April 2023).
2024-07-19 Bruno Haible <bruno@clisp.org>
doc: Add documentation about math_errhandling.
* doc/posix-functions/math_errhandling.texi: New file.
* doc/gnulib.texi (Function Substitutes): Include it.
2024-07-19 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: be more robust against odd failures
* lib/xstrtol.c (__xstrtol): Don’t update *endptr if strtol doesn’t.
Also, if the underlying strtol gives an unusual error number and
sets *endpnr = nptr, assume that’s an error not a missing number.
Problems reported by Alejandro Colomar in:
https://lists.gnu.org/r/bug-gnulib/2024-07/msg00175.html
https://lists.gnu.org/r/bug-gnulib/2024-07/msg00176.html
* modules/xstrtol (Depends-on): Add nullptr.
2024-07-19 Bruno Haible <bruno@clisp.org>
doc: Mention <math.h> functions that were added in ISO C23.
* doc/posix-functions/acospi.texi: New file.
* doc/posix-functions/acospif.texi: New file.
* doc/posix-functions/acospil.texi: New file.
* doc/posix-functions/asinpi.texi: New file.
* doc/posix-functions/asinpif.texi: New file.
* doc/posix-functions/asinpil.texi: New file.
* doc/posix-functions/atanpi.texi: New file.
* doc/posix-functions/atanpif.texi: New file.
* doc/posix-functions/atanpil.texi: New file.
* doc/posix-functions/atan2pi.texi: New file.
* doc/posix-functions/atan2pif.texi: New file.
* doc/posix-functions/atan2pil.texi: New file.
* doc/posix-functions/compoundn.texi: New file.
* doc/posix-functions/compoundnf.texi: New file.
* doc/posix-functions/compoundnl.texi: New file.
* doc/posix-functions/cospi.texi: New file.
* doc/posix-functions/cospif.texi: New file.
* doc/posix-functions/cospil.texi: New file.
* doc/posix-functions/exp10.texi: Moved here from doc/glibc-functions/.
* doc/posix-functions/exp10f.texi: Moved here from doc/glibc-functions/.
* doc/posix-functions/exp10l.texi: Moved here from doc/glibc-functions/.
* doc/posix-functions/exp10m1.texi: New file.
* doc/posix-functions/exp10m1f.texi: New file.
* doc/posix-functions/exp10m1l.texi: New file.
* doc/posix-functions/exp2m1.texi: New file.
* doc/posix-functions/exp2m1f.texi: New file.
* doc/posix-functions/exp2m1l.texi: New file.
* doc/posix-functions/log10p1.texi: New file.
* doc/posix-functions/log10p1f.texi: New file.
* doc/posix-functions/log10p1l.texi: New file.
* doc/posix-functions/log2p1.texi: New file.
* doc/posix-functions/log2p1f.texi: New file.
* doc/posix-functions/log2p1l.texi: New file.
* doc/posix-functions/logp1.texi: New file.
* doc/posix-functions/logp1f.texi: New file.
* doc/posix-functions/logp1l.texi: New file.
* doc/posix-functions/pown.texi: New file.
* doc/posix-functions/pownf.texi: New file.
* doc/posix-functions/pownl.texi: New file.
* doc/posix-functions/powr.texi: New file.
* doc/posix-functions/powrf.texi: New file.
* doc/posix-functions/powrl.texi: New file.
* doc/posix-functions/rootn.texi: New file.
* doc/posix-functions/rootnf.texi: New file.
* doc/posix-functions/rootnl.texi: New file.
* doc/posix-functions/rsqrt.texi: New file.
* doc/posix-functions/rsqrtf.texi: New file.
* doc/posix-functions/rsqrtl.texi: New file.
* doc/posix-functions/sinpi.texi: New file.
* doc/posix-functions/sinpif.texi: New file.
* doc/posix-functions/sinpil.texi: New file.
* doc/posix-functions/tanpi.texi: New file.
* doc/posix-functions/tanpif.texi: New file.
* doc/posix-functions/tanpil.texi: New file.
* doc/gnulib.texi (Function Substitutes): Include them.
(Glibc math.h): Don't include glibc-functions/exp10*.texi.
2024-07-19 Bruno Haible <bruno@clisp.org>
doc: Add references to ISO C23.
* doc/posix-functions/totalorder*.texi: Reference ISO C23.
* doc/posix-functions/getpayload*.texi: Likewise.
* doc/posix-functions/setpayload*.texi: Likewise.
2024-07-19 Bruno Haible <bruno@clisp.org>
doc: Mention a bug in NetBSD's *gettext functions.
* doc/glibc-functions/gettext.texi: Mention buggy handling of empty
LANGUAGE environment variable.
* doc/glibc-functions/dgettext.texi: Likewise.
* doc/glibc-functions/dcgettext.texi: Likewise.
* doc/glibc-functions/ngettext.texi: Likewise.
* doc/glibc-functions/dngettext.texi: Likewise.
* doc/glibc-functions/dcngettext.texi: Likewise.
2024-07-19 Bruno Haible <bruno@clisp.org>
xstrtol: Improve documentation.
* lib/xstrtol.h: Don't test _STRTOL_ERROR, left-over from 2007-08-08.
(_DECLARE_XSTRTOL): Add the parameter names, referenced by the comments.
2024-07-18 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: document and stray less from strtol
This patch alters xstrtol behavior slightly, in areas are not
likely to affect any real callers, by making xstrtol behave more
like the system strtol. In particular, it lets xstrtol support
bases other than those required by POSIX, if the underlying
implementation does; this removes the need for an ‘assert’.
It also uses ‘restrict’ like the underlying strtol does.
The patch also documents xstrtol in xstrtol.h.
Problems reported by Alejandro Colomar in:
https://lists.gnu.org/r/bug-gnulib/2024-07/msg00159.html
* lib/xstrtol.c: Do not include stdio.h or assure.h.
(__xstrtol): Use same parameter names as POSIX, to make it
easier for outsiders to follow. Assume C99 decls after statement.
Do not require the base to be 0, or 2-36, as the underlying
implementation is allowed to support other bases.
Do not assume isspace preserves errno.
* lib/xstrtol.h (_DECLARE_XSTRTOL): Declare pointers to be
‘restrict’, for compatibility with C.
* m4/xstrtol.m4 (gl_XSTRTOL): Require AC_C_RESTRICT.
* modules/xstrtol (Depends-on): Remove ‘assure’.
2024-07-18 Bruno Haible <bruno@clisp.org>
abort-debug: Don't assume that signal SIGABRT is unmasked and unhandled.
* lib/abort-debug.c (rpl_abort): At the end, call the original abort
function.
2024-07-18 Bruno Haible <bruno@clisp.org>
abort-debug: Document better.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00154.html>.
* lib/stdlib.in.h (abort): Add comment.
* doc/stack-trace.texi: Document what to do in signal handlers.
2024-07-18 Alejandro Colomar <alx@kernel.org>
xstrtol: Strengthen sanity check.
* lib/xstrtol.c (__xstrtol): Don't allow strtol_base to be 1.
2024-07-18 Bruno Haible <bruno@clisp.org>
doc: Document the stack-trace and abort-debug modules.
* doc/stack-trace.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2024-07-18 Bruno Haible <bruno@clisp.org>
stdlib: Don't define print_stack_trace unconditionally.
* modules/stack-trace (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/stdlib.in.h (print_stack_trace): Don't define if module
'stack-trace' is not present.
* tests/macros.h (print_stack_trace): Define as a fallback if module
'stack-trace' is not present.
2024-07-18 Bruno Haible <bruno@clisp.org>
stack-trace: Don't use NetBSD's broken libasan.
* m4/stack-trace.m4 (gl_STACK_TRACE_EARLY): Test whether a program
linked with libasan even minimally works.
2024-07-17 Bruno Haible <bruno@clisp.org>
stack-trace: Use libasan as an alternative to libbacktrace.
* m4/stack-trace.m4 (gl_STACK_TRACE_EARLY): As a second choice, use
libasan.
* lib/stack-trace-impl.h (print_stack_trace_to) [HAVE_LIBASAN]:
Implement using libasan.
* lib/stack-trace.c (print_stack_trace): Test also HAVE_LIBASAN.
* lib/abort-debug.c (rpl_abort): Likewise.
2024-07-17 Bruno Haible <bruno@clisp.org>
stack-trace: Add tests.
* tests/test-stack-trace.c: New file.
* modules/stack-trace-tests: New file.
stack-trace: New module.
* lib/stdlib.in.h (print_stack_trace): Make part of the stack-trace
module.
* lib/stack-trace-impl.h: New file, based on lib/abort-debug.c.
* lib/stack-trace.c: New file, based on lib/abort-debug.c.
* lib/abort-debug.c: Include stack-trace-impl.h. Remove definitions
moved to stack-trace-impl.h.
(print_stack_trace): Remove function.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize
GNULIB_STACK_TRACE.
(gl_STDLIB_H_DEFAULTS): Initialize CAN_PRINT_STACK_TRACE.
* m4/stack-trace.m4: New file, based on m4/abort-debug.m4.
* m4/abort-debug.m4 (gl_ABORT_DEBUG_EARLY): Remove macro.
(gl_ABORT_DEBUG): Require gl_STDLIB_H_DEFAULTS, gl_STACK_TRACE_EARLY.
Set REPLACE_ABORT here.
* modules/stdlib (Makefile.am): Substitute GNULIB_STACK_TRACE,
CAN_PRINT_STACK_TRACE.
* modules/stack-trace: New file.
* modules/abort-debug (Depends-on): Add stack-trace. Remove execinfo.
(configure.ac-early): Remove section.
* DEPENDENCIES: Update.
2024-07-17 Bruno Haible <bruno@clisp.org>
abort-debug: Export the print_stack_trace function.
* lib/stdlib.in.h (print_stack_trace): Renamed from _gl_pre_abort.
* lib/abort-debug.c (print_stack_trace_to): Renamed from
print_stack_trace.
(print_stack_trace): Renamed from _gl_pre_abort.
(rpl_abort): Update.
* tests/macros.h (ASSERT, ASSERT_NO_STDIO): Update.
2024-07-17 Bruno Haible <bruno@clisp.org>
doc: List library dependencies.
* DEPENDENCIES: List the library dependencies.
2024-07-16 Collin Funk <collin.funk1@gmail.com>
gitlog-to-changelog: Improve --version and --help output.
* build-aux/gitlog-to-changelog (usage): Add bug reporting address.
(print_version): New function.
announce-gen: Add bug reporting address to --help.
* build-aux/announce-gen (usage): Add bug reporting address.
useless-if-before-free: Add bug reporting address to --help.
* build-aux/useless-if-before-free (usage): Add bug reporting address.
2024-07-15 Paul Eggert <eggert@cs.ucla.edu>
strnlen: port to Android 5.0 (API 21)
This is needed for GNU Emacs, which attempts to port to these
old Android versions.
* m4/strnlen.m4 (AC_FUNC_STRNLEN): Replace if Autoconf 2.72 or
earlier, with code that detects the Android problem with strnlen.
This version works around some further bugs in the test, notably,
misplaced 'volatile' and need for volatile in the AIX 4.3 bug
check too.
2024-07-15 Bruno Haible <bruno@clisp.org>
manywarnings: Don't enable -Wsystem-headers.
* build-aux/gcc-warning.spec: Add -Wsystem-headers.
* build-aux/g++-warning.spec: Likewise.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): Don't enable
-Wsystem-headers.
* m4/manywarnings-c++.m4 (gl_MANYWARN_ALL_GCC_CXX_IMPL): Likewise.
2024-07-15 Bruno Haible <bruno@clisp.org>
qcopy-acl: Fix copying of ACLs on CentOS 7 (regression 2023-01-12).
* lib/qcopy-acl.c: Include <string.h>, <linux/xattr.h>.
(XATTR_NAME_NFSV4_ACL, XATTR_NAME_POSIX_ACL_ACCESS,
XATTR_NAME_POSIX_ACL_DEFAULT): New macros, from file-has-acl.c.
(is_attr_permissions): Test for these names explicitly.
* m4/acl.m4 (gl_QCOPY_ACL): New macro.
* modules/qcopy-acl (Files): Add m4/acl.m4.
(configure.ac): Invoke gl_QCOPY_ACL.
2024-07-14 Bruno Haible <bruno@clisp.org>
stdlib: Fix last commit on macOS, OpenBSD, mingw.
* lib/stdlib.in.h: Don't include <string> with clang, and don't include
it on platforms other than Solaris.
stdlib: Avoid syntax errors in libstdc++ header files.
* lib/stdlib.in.h: Include <string> before strtol, strtoll, strtoul, or
strtoull gets defined as a macro.
2024-07-14 Bruno Haible <bruno@clisp.org>
Activate strtold workarounds.
* modules/c-strtold-tests (Depends-on): Add strtold.
* modules/ldtoastr (Depends-on): Add strtold.
2024-07-14 Bruno Haible <bruno@clisp.org>
strtold: Work around major mingw bugs.
* lib/strtod.c (HAVE_UNDERLYING_STRTOD) [USE_LONG_DOUBLE]: Set to 0 on
mingw versions before 10.0.
* doc/posix-functions/strtold.texi: Mention the mingw bugs.
2024-07-13 Collin Funk <collin.funk1@gmail.com>
useless-if-before-free: Fix copyright year in --version output.
* build-aux/useless-if-before-free (copyright_year): Derive from
time-stamp.
announce-gen: Fix copyright year in --version output.
* build-aux/announce-gen (copyright_year): Derive from time-stamp.
2024-07-13 Bruno Haible <bruno@clisp.org>
stdlib: Support use of clang++ on Ubuntu.
* lib/stdlib.in.h: Ignore __need_system_stdlib_h when GCC's
c++/11/stdlib.h is being included or has been included.
2024-07-13 Bruno Haible <bruno@clisp.org>
doc: Revamp list of dependencies.
* DEPENDENCIES: Clarify that GNU make is only needed on OpenBSD and
Solaris. Mark GNU tar as optional, not recommended. Add note about
Solaris 10. Add a second section "Dependencies for building the imported
code". Document the needed locales.
2024-07-13 Bruno Haible <bruno@clisp.org>
tests: Don't depend on the exact locale name.
* tests/test-c-ctype.c: Include <stdlib.h>.
(main): Test the return value of setlocale(). Try not only de_DE, but
also de_DE.ISO-8859-1.
* tests/test-vasnprintf-posix3.c (main): Try not only fa_IR.UTF-8, but
also fa_IR.
* tests/test-vasnwprintf-posix3.c (main): Likewise.
2024-07-10 Pip Cet <pipcet@protonmail.com>
timespec-sub: Fix compilation error on clang.
Reported by Gerd Möllmann <gerd.moellmann@gmail.com> at
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72036>.
* lib/timespec-sub.c (timespec_sub): Use 'int' as type of variable.
Copyright-paperwork-exempt: Yes
2024-07-06 Bruno Haible <bruno@clisp.org>
pthread-cond: Fix compilation error on native Windows.
* lib/pthread-cond.c: Include windows-cond.h, not windows-thread.h.
2024-07-06 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: simplify/speed startup
* gnulib-tool, gnulib-tool.py (prog): New var. Use it to simplify
and speed up startup in common cases.
2024-07-04 Bruno Haible <bruno@clisp.org>
gitlog-to-changelog: Tweak documentation.
* doc/gitlog-to-changelog.texi (gitlog-to-changelog): Omit irrelevant
detail.
2024-07-04 Collin Funk <collin.funk1@gmail.com>
Make time-stamp after-save-hooks buffer-local.
* build-aux/announce-gen: Pass optional arguments to 'add-hook'.
* build-aux/bootstrap: Likewise.
* build-aux/do-release-commit-and-tag: Likewise.
* build-aux/gendocs.sh: Likewise.
* build-aux/git-version-gen: Likewise.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/gnu-web-doc-update: Likewise.
* build-aux/gnupload: Likewise.
* build-aux/move-if-change: Likewise.
* build-aux/prefix-gnulib-mk: Likewise.
* build-aux/update-copyright: Likewise.
* build-aux/useless-if-before-free: Likewise.
* build-aux/vc-list-files: Likewise.
* top/bootstrap: Likewise.
* top/bootstrap-funclib.sh: Likewise.
2024-07-03 Collin Funk <collin.funk1@gmail.com>
gitlog-to-changelog: Add a new --commit-timezone option.
* build-aux/gitlog-to-changelog: Use the date given in the commit time
zone if --commit-timezone is used.
(usage): Mention the new option.
* doc/gitlog-to-changelog.texi (gitlog-to-changelog): Mention the
--commit-timezone and add an invocation example. Add example of date
ordering that may be undesired.
2024-07-03 Jim Meyering <meyering@meta.com>
maintainer-makefile: derive VERSION from RELEASE only from command line
* top/maint.mk (VERSION, RELEASE_TYPE): Do not let an environment-
specified RELEASE influence the VERSION and RELEASE_TYPE variables.
Reported by Simon Josefsson in
https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00021.html
2024-07-02 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Simplify installation instructions.
Reported by Samuel Bronson <naesten@gmail.com> via Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00014.html>.
* lib/git-merge-changelog.c: Suggest creating a .gitattributes file only
at the top-level.
2024-07-02 Bruno Haible <bruno@clisp.org>
uniname/uniname: Modernize gen-uninames.lisp.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00011.html>.
* lib/uniname/gen-uninames.lisp: Swap second and third parameter. Look
up clisp in $PATH.
* lib/gen-uni-tables.c: Update invocation.
2024-07-01 Bruno Haible <bruno@clisp.org>
Avoid some possibly wrong configure test results.
Reported by Arsen Arsenović <arsen@gentoo.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00000.html>.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): Include necessary header file
for _exit().
(gl_SNPRINTF_DIRECTIVE_N): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Update comment.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/wcsstr.m4 (gl_FUNC_WCSSTR): Likewise.
2024-07-01 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202407. Mention that stable-202307 is no longer updated.
2024-06-30 Collin Funk <collin.funk1@gmail.com>
doc: Remove references to POSIX 202x.
* doc/posix-functions/encrypt.texi: Document as obsolete in
POSIX.1-2024.
* doc/posix-functions/inet_addr.texi: Likewise.
* doc/posix-functions/inet_ntoa.texi: Likewise.
* doc/posix-functions/setkey.texi: Likewise.
* doc/posix-functions/ftw.texi: Document as removed in POSIX.1-2024.
Link the POSIX.1-2017 specification.
* doc/posix-functions/getitimer.texi: Likewise.
* doc/posix-functions/setitimer.texi: Likewise.
* doc/posix-functions/toascii.texi: Likewise.
2024-06-30 Bruno Haible <bruno@clisp.org>
*printf* tests: Remove unused includes.
* tests/test-fprintf-gnu.c: Don't include <stdarg.h>.
* tests/test-fprintf-posix.c: Likewise.
* tests/test-szprintf-gnu.c: Likewise.
* tests/test-szprintf-posix.c: Likewise.
* tests/test-xfprintf-posix.c: Likewise.
2024-06-30 Bruno Haible <bruno@clisp.org>
vprintf-posix tests: Fix test title.
* tests/test-vprintf-posix.c: Fix title.
2024-06-30 Bruno Haible <bruno@clisp.org>
zprintf-gnu: Add tests.
* tests/test-zprintf-gnu.c: New file, based on tests/test-printf-gnu.c.
* tests/test-zprintf-gnu.sh: New file, based on
tests/test-printf-gnu.sh.
* modules/zprintf-gnu-tests: New file.
zprintf-gnu: New module.
* modules/zprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vzprintf-gnu: Add tests.
* tests/test-printf-gnu.h (test_function): Use RETTYPE instead of 'int'.
* tests/test-printf-gnu.c (RETTYPE): New macro.
* tests/test-vprintf-gnu.c (RETTYPE): New macro.
* tests/test-vzprintf-gnu.c: New file, based on
tests/test-vprintf-gnu.c.
* tests/test-vzprintf-gnu.sh: New file, based on
tests/test-vprintf-gnu.sh.
* modules/vzprintf-gnu-tests: New file.
vzprintf-gnu: New module.
* modules/vzprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
fzprintf-gnu: Add tests.
* tests/test-fzprintf-gnu.c: New file, based on
tests/test-fprintf-gnu.c.
* tests/test-fzprintf-gnu.sh: New file, based on
tests/test-fprintf-gnu.sh.
* modules/fzprintf-gnu-tests: New file.
fzprintf-gnu: New module.
* modules/fzprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vfzprintf-gnu: Add tests.
* tests/test-vfzprintf-gnu.c: New file, based on
tests/test-vfprintf-gnu.c.
* tests/test-vfzprintf-gnu.sh: New file, based on
tests/test-vfprintf-gnu.sh.
* tests/test-fprintf-gnu.h: Update title.
* modules/vfzprintf-gnu-tests: New file.
vfzprintf-gnu: New module.
* modules/vfzprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
zprintf-posix: Add tests.
* tests/test-zprintf-posix.c: New file, based on
tests/test-printf-posix.c.
* tests/test-zprintf-posix.sh: New file, based on
tests/test-printf-posix.sh.
* modules/zprintf-posix-tests: New file.
zprintf-posix: New module.
* modules/zprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vzprintf-posix: Add tests.
* tests/test-printf-posix.h (test_function): Use RETTYPE instead of
'int'.
* tests/test-printf-posix.c (RETTYPE): New macro.
* tests/test-vprintf-posix.c (RETTYPE): New macro.
* tests/test-xprintf-posix.c (RETTYPE): New macro.
* tests/test-vzprintf-posix.c: New file, based on
tests/test-vprintf-posix.c.
* tests/test-vzprintf-posix.sh: New file, based on
tests/test-vprintf-posix.sh.
* modules/vzprintf-posix-tests: New file.
vzprintf-posix: New module.
* modules/vzprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
fzprintf-posix: Add tests.
* tests/test-fzprintf-posix.c: New file, based on
tests/test-fprintf-posix.c.
* tests/test-fzprintf-posix.sh: New file, based on
tests/test-fprintf-posix.sh.
* modules/fzprintf-posix-tests: New file.
fzprintf-posix: New module.
* modules/fzprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vfzprintf-posix: Add tests.
* tests/test-vfzprintf-posix.c: New file, based on
tests/test-vfprintf-posix.c.
* tests/test-vfzprintf-posix.sh: New file, based on
tests/test-vfprintf-posix.sh.
* tests/test-fprintf-posix.h: Update title.
* modules/vfzprintf-posix-tests: New file.
vfzprintf-posix: New module.
* modules/vfzprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
printf-posix: Document properly.
* lib/stdio.in.h (printf): Add specification.
* lib/vprintf.c (printf): Remove specification.
zprintf: New module.
* lib/stdio.in.h (zprintf): New declaration.
* lib/zprintf.c: New file, based on lib/vzprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_ZPRINTF.
* modules/zprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vprintf-posix: Document properly.
* lib/stdio.in.h (vprintf): Add specification.
* lib/vprintf.c (vprintf): Remove specification.
vzprintf: New module.
* lib/stdio.in.h (vzprintf): New declaration.
* lib/vzprintf.c: New file, based on lib/vprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VZPRINTF.
* modules/vzprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
fprintf-posix: Use vfzprintf.
* lib/stdio.in.h (fprintf): Add specification.
* lib/fprintf.c: Don't include <stdlib.h>, vasnprintf.h.
Include intprops.h.
(fprintf): Implement based on vfzprintf.
* modules/fprintf-posix (Depends-on): Add vfzprintf, intprops. Remove
vasnprintf, free-posix.
fzprintf: New module.
* lib/stdio.in.h (fzprintf): New declaration.
* lib/fzprintf.c: New file, based on lib/vfzprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_FZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_FZPRINTF.
* modules/fzprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vfprintf-posix: Use vfzprintf.
* lib/stdio.in.h (vfprintf): Add specification.
* lib/vfprintf.c: Don't include <stdlib.h>, vasnprintf.h.
Include intprops.h.
(vfprintf): Implement based on vfzprintf.
* modules/vfprintf-posix (Depends-on): Add vfzprintf, intprops. Remove
vasnprintf, free-posix.
vfzprintf: New module.
* lib/stdio.in.h (vfzprintf): New declaration.
* lib/vfzprintf.c: New file, based on lib/vfprintf.c and
lib/vdzprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VFZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VFZPRINTF.
* modules/vfzprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
dzprintf-gnu: Add tests.
* tests/test-dprintf-gnu.h: New file, extracted from
tests/test-dprintf-gnu.c.
* tests/test-dprintf-gnu.c: Include it.
(test_function): Remove function.
* modules/dprintf-gnu-tests (Files): Add it.
* tests/test-dzprintf-gnu.c: New file, based on
tests/test-dprintf-gnu.c.
* tests/test-dzprintf-gnu.sh: New file, based on
tests/test-dprintf-gnu.sh.
* modules/dzprintf-gnu-tests: New file.
dzprintf-gnu: New module.
* modules/dzprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vdzprintf-gnu: Add tests.
* tests/test-fprintf-gnu.h (test_function): Use RETTYPE instead of
'int'.
* tests/test-fprintf-gnu.c (RETTYPE): New macro.
* tests/test-vdprintf-gnu.c (RETTYPE): New macro.
* tests/test-vfprintf-gnu.c (RETTYPE): New macro.
* tests/test-vdzprintf-gnu.c: New file, based on
tests/test-vdzprintf-posix.c.
* tests/test-vdzprintf-gnu.sh: New file, based on
tests/test-vdzprintf-posix.sh.
* modules/vdzprintf-gnu-tests: New file.
vdzprintf-gnu: New module.
* modules/vdzprintf-gnu: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
dzprintf-posix: Add tests.
* tests/test-dprintf-posix.h: New file, extracted from
tests/test-dprintf-posix.c.
* tests/test-dprintf-posix.c: Include it. Don't include infinity.h.
(test_function): Remove function.
* modules/dprintf-posix-tests (Files): Add it.
* tests/test-dzprintf-posix.c: New file, based on
tests/test-dprintf-posix.c.
* tests/test-dzprintf-posix.sh: New file, based on
tests/test-dprintf-posix.sh.
* modules/dzprintf-posix-tests: New file.
dzprintf-posix: New module.
* modules/dzprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vdzprintf-posix: Add tests.
* tests/test-fprintf-posix.h (test_function): Use RETTYPE instead of
'int'.
* tests/test-fprintf-posix.c (RETTYPE): New macro.
* tests/test-vdprintf-posix.c (RETTYPE): New macro.
* tests/test-vfprintf-posix.c (RETTYPE): New macro.
* tests/test-xfprintf-posix.c (RETTYPE): New macro.
* tests/test-vdzprintf-posix.c: New file, based on
tests/test-vdprintf-posix.c.
* tests/test-vdzprintf-posix.sh: New file, based on
tests/test-vdprintf-posix.sh.
* modules/vdzprintf-posix-tests: New file.
vdzprintf-posix: New module.
* modules/vdzprintf-posix: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
dprintf: Use vdzprintf.
* lib/stdio.in.h (dprintf): Add specification.
* lib/dprintf.c: Don't include <stdlib.h>, full-write.h, vasnprintf.h.
Include intprops.h.
(dprintf): Implement based on vdzprintf.
* modules/dprintf (Depends-on): Add vdzprintf, intprops. Remove
vasnprintf, free-posix, full-write.
dzprintf: New module.
* lib/stdio.in.h (dzprintf): New declaration.
* lib/dzprintf.c: New file, based on lib/vdzprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_DZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_DZPRINTF.
* modules/dzprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
vdprintf: Use vdzprintf.
* lib/stdio.in.h (vdprintf): Add specification.
* lib/vdprintf.c: Don't include <stdlib.h>, full-write.h, vasnprintf.h.
Include intprops.h.
(vdprintf): Implement based on vdzprintf.
* modules/vdprintf (Depends-on): Add vdzprintf, intprops. Remove
vasnprintf, free-posix, full-write.
vdzprintf: New module.
* lib/stdio.in.h (vdzprintf): New declaration.
* lib/vdzprintf.c: New file, based on lib/vdprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VDZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VDZPRINTF.
* modules/vdzprintf: New file.
2024-06-30 Bruno Haible <bruno@clisp.org>
*printf-tests: Correct test file descriptions.
* tests/test-fprintf-gnu.h: Fix title line.
* tests/test-fprintf-posix.h: Likewise.
* tests/test-printf-gnu.h: Likewise.
* tests/test-printf-posix.h: Likewise.
* tests/test-snzprintf-gnu.h: Likewise.
* tests/test-vaszprintf-gnu.h: Likewise.
2024-06-30 Bruno Haible <bruno@clisp.org>
*printf-posix-tests: Strengthen tests.
* tests/test-fprintf-posix.h (test_function): Test %b directive.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-dprintf-posix.c (test_function): Likewise.
* tests/test-printf-posix.output: Update expected test result.
2024-06-30 Bruno Haible <bruno@clisp.org>
*printf-{posix,gnu}: Tweak module descriptions.
* modules/c-snzprintf-gnu (Description): Say "POSIX compatible", not
"POSIX compliant", since these modules don't implement the %n directive
by default any more.
* modules/c-vaszprintf-gnu (Description): Likewise.
* modules/c-vsnzprintf-gnu (Description): Likewise.
* modules/obstack-printf-posix (Description): Likewise.
* modules/obstack-zprintf-gnu (Description): Likewise.
* modules/obstack-zprintf-posix (Description): Likewise.
* modules/snzprintf-gnu (Description): Likewise.
* modules/snzprintf-posix (Description): Likewise.
* modules/szprintf-gnu (Description): Likewise.
* modules/szprintf-posix (Description): Likewise.
* modules/vaszprintf-gnu (Description): Likewise.
* modules/vaszprintf-posix (Description): Likewise.
* modules/vsnzprintf-gnu (Description): Likewise.
* modules/vsnzprintf-posix (Description): Likewise.
* modules/vszprintf-gnu (Description): Likewise.
* modules/vszprintf-posix (Description): Likewise.
2024-06-30 Paul Eggert <eggert@cs.ucla.edu>
strnlen: avoid undefined memcmp behavior
Problem reported by Po Lu in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00288.html
* config/srclist.txt: Don’t mention strnlen.c even in a comment,
as the Gnulib and glibc implementations have diverged for
portability reasons, and they’re never likely to merge.
* lib/strnlen.c (strnlen): Avoid undefined behavior if
the array S points to has fewer than MAXLEN bytes.
2024-06-30 Bruno Haible <bruno@clisp.org>
tests: Avoid warning "is_running_under_virtualbox defined but not used".
* tests/virtualbox.h (is_running_under_virtualbox): Mark as possibly
unused.
2024-06-29 Bruno Haible <bruno@clisp.org>
bootstrap-funclib.sh: Restore readability.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Add a line break
instead of removing spaces.
* build-aux/bootstrap: Regenerated.
2024-06-29 Bruno Haible <bruno@clisp.org>
Global rename *zs[n]printf -> *s[n]zprintf.
* lib/aszprintf.c: Renamed from lib/azsprintf.c.
* lib/c-aszprintf.c: Renamed from lib/c-azsprintf.c.
* lib/c-vaszprintf.c: Renamed from lib/c-vazsprintf.c.
* lib/c-vsnzprintf.c: Renamed from lib/c-vzsnprintf.c.
* lib/c-snzprintf.c: Renamed from lib/c-zsnprintf.c.
* lib/vaszprintf.c: Renamed from lib/vazsprintf.c.
* lib/vsnzprintf.c: Renamed from lib/vzsnprintf.c.
* lib/vszprintf.c: Renamed from lib/vzsprintf.c.
* lib/snzprintf.c: Renamed from lib/zsnprintf.c.
* lib/szprintf.c: Renamed from lib/zsprintf.c.
* tests/test-c-vaszprintf-gnu.c: Renamed from
tests/test-c-vazsprintf-gnu.c.
* tests/test-c-vaszprintf-gnu.sh: Renamed from
tests/test-c-vazsprintf-gnu.sh.
* tests/test-c-vsnzprintf-gnu.c: Renamed from
tests/test-c-vzsnprintf-gnu.c.
* tests/test-c-vsnzprintf-gnu.sh: Renamed from
tests/test-c-vzsnprintf-gnu.sh.
* tests/test-c-snzprintf-gnu.c: Renamed from
tests/test-c-zsnprintf-gnu.c.
* tests/test-c-snzprintf-gnu.sh: Renamed from
tests/test-c-zsnprintf-gnu.sh.
* tests/test-vaszprintf-gnu.c: Renamed from tests/test-vazsprintf-gnu.c.
* tests/test-vaszprintf-gnu.h: Renamed from tests/test-vazsprintf-gnu.h.
* tests/test-vaszprintf-posix.c: Renamed from
tests/test-vazsprintf-posix.c.
* tests/test-vsnzprintf-gnu.c: Renamed from tests/test-vzsnprintf-gnu.c.
* tests/test-vsnzprintf-posix.c: Renamed from
tests/test-vzsnprintf-posix.c.
* tests/test-vszprintf-gnu.c: Renamed from tests/test-vzsprintf-gnu.c.
* tests/test-vszprintf-posix.c: Renamed from
tests/test-vzsprintf-posix.c.
* tests/test-snzprintf-gnu.c: Renamed from tests/test-zsnprintf-gnu.c.
* tests/test-snzprintf-gnu.h: Renamed from tests/test-zsnprintf-gnu.h.
* tests/test-snzprintf-posix.c: Renamed from
tests/test-zsnprintf-posix.c.
* tests/test-snzprintf-posix.h: Renamed from
tests/test-zsnprintf-posix.h.
* tests/test-szprintf-gnu.c: Renamed from tests/test-zsprintf-gnu.c.
* tests/test-szprintf-gnu.h: Renamed from tests/test-zsprintf-gnu.h.
* tests/test-szprintf-posix.c: Renamed from tests/test-zsprintf-posix.c.
* tests/test-szprintf-posix.h: Renamed from tests/test-zsprintf-posix.h.
* modules/c-vaszprintf: Renamed from modules/c-vazsprintf.
* modules/c-vaszprintf-gnu: Renamed from modules/c-vazsprintf-gnu.
* modules/c-vaszprintf-gnu-tests: Renamed from
modules/c-vazsprintf-gnu-tests.
* modules/c-vsnzprintf: Renamed from modules/c-vzsnprintf.
* modules/c-vsnzprintf-gnu: Renamed from modules/c-vzsnprintf-gnu.
* modules/c-vsnzprintf-gnu-tests: Renamed from
modules/c-vzsnprintf-gnu-tests.
* modules/c-snzprintf: Renamed from modules/c-zsnprintf.
* modules/c-snzprintf-gnu: Renamed from modules/c-zsnprintf-gnu.
* modules/c-snzprintf-gnu-tests: Renamed from
modules/c-zsnprintf-gnu-tests.
* modules/vaszprintf: Renamed from modules/vazsprintf.
* modules/vaszprintf-gnu: Renamed from modules/vazsprintf-gnu.
* modules/vaszprintf-gnu-tests: Renamed from
modules/vazsprintf-gnu-tests.
* modules/vaszprintf-posix: Renamed from modules/vazsprintf-posix.
* modules/vaszprintf-posix-tests: Renamed from
modules/vazsprintf-posix-tests.
* modules/vsnzprintf: Renamed from modules/vzsnprintf.
* modules/vsnzprintf-gnu: Renamed from modules/vzsnprintf-gnu.
* modules/vsnzprintf-gnu-tests: Renamed from
modules/vzsnprintf-gnu-tests.
* modules/vsnzprintf-posix: Renamed from modules/vzsnprintf-posix.
* modules/vsnzprintf-posix-tests: Renamed from
modules/vzsnprintf-posix-tests.
* modules/vszprintf: Renamed from modules/vzsprintf.
* modules/vszprintf-gnu: Renamed from modules/vzsprintf-gnu.
* modules/vszprintf-gnu-tests: Renamed from modules/vzsprintf-gnu-tests.
* modules/vszprintf-posix: Renamed from modules/vzsprintf-posix.
* modules/vszprintf-posix-tests: Renamed from
modules/vzsprintf-posix-tests.
* modules/snzprintf: Renamed from modules/zsnprintf.
* modules/snzprintf-gnu: Renamed from modules/zsnprintf-gnu.
* modules/snzprintf-gnu-tests: Renamed from modules/zsnprintf-gnu-tests.
* modules/snzprintf-posix: Renamed from modules/zsnprintf-posix.
* modules/snzprintf-posix-tests: Renamed from
modules/zsnprintf-posix-tests.
* modules/szprintf: Renamed from modules/zsprintf.
* modules/szprintf-gnu: Renamed from modules/zsprintf-gnu.
* modules/szprintf-gnu-tests: Renamed from modules/zsprintf-gnu-tests.
* modules/szprintf-posix: Renamed from modules/zsprintf-posix.
* modules/szprintf-posix-tests: Renamed from
modules/zsprintf-posix-tests.
All function names updated.
* lib/stdio.in.h, m4/stdio_h.m4, modules/stdio: Update module indicator
names.
2024-06-29 Jim Meyering <meyering@meta.com>
bootstrap-funclib.sh: shrink or split too-long lines
* top/bootstrap-funclib.sh: The generated bootstrap file had lines
lines that triggered a syntax-check failure. Sure, I could have
exempted this file, but it was easy to comply. Besides, this also
fixed a quoting bug in the event that ${GNULIB_URL:-$default_gnulib_url}
had a value requiring double quotes.
* build-aux/bootstrap: Regenerate.
2024-06-29 Bruno Haible <bruno@clisp.org>
tests: Avoid test failures due to VirtualBox specific bug.
* tests/virtualbox.h: New file.
* tests/test-pthread-cond.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* tests/test-cnd.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* tests/test-cond.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* tests/test-pthread_sigmask1.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* tests/test-pthread_sigmask2.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* tests/test-sigprocmask.c: Include virtualbox.h.
(main): Skip the test under VirtualBox with KVM paravirtualization and
more than 1 CPU.
* modules/pthread-cond-tests (Files): Add tests/virtualbox.h.
* modules/cnd-tests (Files): Likewise.
* modules/cond-tests (Files): Likewise.
* modules/pthread_sigmask-tests (Files): Likewise.
* modules/sigprocmask-tests (Files): Likewise.
2024-06-28 Collin Funk <collin.funk1@gmail.com>
doc: Mention the byteswap module in function documentation.
* doc/glibc-functions/bswap_16.texi (bswap_16): Mention the byteswap
module.
* doc/glibc-functions/bswap_32.texi (bswap_32): Likewise.
* doc/glibc-functions/bswap_64.texi (bswap_64): Likewise.
2024-06-28 Bruno Haible <bruno@clisp.org>
doc: Mention pthread_cond_timedwait bug caused by hypervisor.
* doc/posix-functions/pthread_cond_timedwait.texi: Mention VirtualBox
specific bug.
* doc/posix-functions/cnd_timedwait.texi: Likewise.
2024-06-28 Bruno Haible <bruno@clisp.org>
cond tests: Avoid theoretically possible failure.
* tests/test-cnd.c (cnd_wait_routine, cnd_timedwait_routine): Report to
the main thread if this thread comes too late.
(test_cnd_wait, test_cnd_timedwait): Return a 'skipped' value.
(main): Print SKIP instead of OK if the essence of the test was skipped.
* tests/test-cond.c (cond_routine, timedcond_routine): Report to the
main thread if this thread comes too late.
(test_cond, test_timedcond): Return a 'skipped' value.
(main): Print SKIP instead of OK if the essence of the test was skipped.
* tests/test-pthread-cond.c (pthread_cond_wait_routine,
pthread_cond_timedwait_routine): Report to the main thread if this
thread comes too late.
(test_pthread_cond_wait, test_pthread_cond_timedwait): Return a
'skipped' value.
(main): Print SKIP instead of OK if the essence of the test was skipped.
cond tests: Improve multithread-safety.
* tests/test-cnd.c (cond_value, cond_timed_out): Mark as volatile.
* tests/test-cond.c (cond_value, cond_timed_out): Likewise.
* tests/test-pthread-cond.c (cond_value, cond_timed_out): Likewise.
cond tests: Improve comments.
* tests/test-cnd.c: Improve comments.
(cond_value): Remove initializer.
(cond_timed_out): Renamed from cond_timeout.
* tests/test-cond.c: Improve comments.
(cond_value): Remove initializer.
(cond_timed_out): Renamed from cond_timeout.
* tests/test-pthread-cond.c: Improve comments.
(cond_value): Remove initializer.
(cond_timed_out): Renamed from cond_timeout.
2024-06-28 Bruno Haible <bruno@clisp.org>
time: Fix test failure on FreeBSD.
* m4/time.m4 (gl_FUNC_TIME): Guess no for FreeBSD in general.
* doc/posix-functions/time.texi: Mention FreeBSD in general.
2024-06-27 Collin Funk <collin.funk1@gmail.com>
doc: Improve documentation of previous POSIX functions.
* doc/pastposix-functions/bsd_signal.texi: Document revision that
removed function. Mention the link is the previous version.
* doc/pastposix-functions/getcontext.texi: Likewise.
* doc/pastposix-functions/gethostbyaddr.texi: Likewise.
* doc/pastposix-functions/gethostbyname.texi: Likewise.
* doc/pastposix-functions/h_errno.texi: Likewise.
* doc/pastposix-functions/makecontext.texi: Likewise.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi: Likewise.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi: Likewise.
* doc/pastposix-functions/scalb.texi: Likewise.
* doc/pastposix-functions/setcontext.texi: Likewise.
* doc/pastposix-functions/swapcontext.texi: Likewise.
* doc/pastposix-functions/ualarm.texi: Likewise.
* doc/pastposix-functions/usleep.texi: Likewise.
* doc/pastposix-functions/vfork.texi: Likewise.
2024-06-27 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: always include locale.h
* lib/strftime.c: Include locale.h unconditionally, simplifying
the code. Emacs is now open for this change, which we had wanted
to do earlier.
2024-06-27 Collin Funk <collin.funk1@gmail.com>
netdb: Simplify NI_MAXHOST and NI_MAXSERV definitions.
* lib/netdb.in.h (NI_MAXHOST, NI_MAXSERV): Fix typos in comments.
Undefine and then redefine to the correct value.
doc: Fix error in previous commits.
* doc/posix-headers/netdb.texi (netdb.h): Move @end itemize to the end
of the list.
netdb tests: Check for NI_MAXHOST and NI_MAXSERV.
* modules/netdb-tests (Depends-on): Add assert-h.
* tests/test-netdb.c: Check that NI_MAXHOST and NI_MAXSERV are defined
correctly.
netdb: Define NI_MAXHOST and NI_MAXSERV.
* doc/posix-headers/netdb.texi (netdb.h): Document definitions that
differ from RFC 2553.
* lib/netdb.in.h (NI_MAXHOST, NI_MAXSERV): Define NI_MAXHOST and
NI_MAXSERV.
2024-06-26 Paul Eggert <eggert@cs.ucla.edu>
strnlen: document Android bug
* doc/posix-functions/strnlen.texi (strnlen):
Mention Android 5.0 bug reported by Po Lu in this thread:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00271.html
2024-06-25 Collin Funk <collin.funk1@gmail.com>
idpriv-droptemp: Handle large user and group ids.
* lib/idpriv-droptemp.c (saved_uid): Use uid_t instead of int.
(saved_gid): Use gid_t instead of int.
(idpriv_temp_drop): Use uid_t and gid_t instead of int.
(idpriv_temp_restore): Likewise.
idpriv-drop: Handle large user and group ids.
* lib/idpriv-drop.c (idpriv_drop): Use uid_t and gid_t instead of int.
2024-06-25 Bruno Haible <bruno@clisp.org>
c-vazsprintf-gnu: Add tests.
* tests/test-vazsprintf-gnu.h: New file, extracted from
tests/test-vazsprintf-gnu.c.
* tests/test-vazsprintf-gnu.c: Include test-vazsprintf-gnu.h.
(test_function): Moved out to tests/test-vazsprintf-gnu.h.
* modules/vazsprintf-gnu-tests (Files): Add tests/test-vazsprintf-gnu.h.
* tests/test-c-vazsprintf-gnu.c: New file.
* tests/test-c-vazsprintf-gnu.sh: New file, based on
tests/test-c-snprintf.sh.
* modules/c-vazsprintf-gnu-tests: New file.
c-vazsprintf-gnu: New module.
* modules/c-vazsprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
c-zsnprintf-gnu: Add tests.
* tests/test-c-zsnprintf-gnu.c: New file.
* tests/test-c-zsnprintf-gnu.sh: New file, based on
tests/test-c-snprintf.sh.
* modules/c-zsnprintf-gnu-tests: New file.
c-zsnprintf-gnu: New module.
* modules/c-zsnprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
c-vzsnprintf-gnu: Add tests.
* tests/test-c-vzsnprintf-gnu.c: New file, based on
tests/test-vzsnprintf-gnu.c.
* tests/test-c-vzsnprintf-gnu.sh: New file, based on
tests/test-c-snprintf.sh.
* modules/c-vzsnprintf-gnu-tests: New file.
c-vzsnprintf-gnu: New module.
* modules/c-vzsnprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
c-vasnprintf: Add tests.
* tests/test-c-vasnprintf.c: New file, based on tests/test-c-snprintf.c.
* tests/test-c-vasnprintf.sh: New file, based on
tests/test-c-snprintf.sh.
* modules/c-vasnprintf-tests: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
c-vasnprintf: Fix link errors.
* modules/c-vasnprintf (configure.ac): Ensure printf-args.c and
printf-parse.c get compiled. Invoke gl_PREREQ_PRINTF_ARGS,
gl_PREREQ_PRINTF_PARSE.
2024-06-25 Bruno Haible <bruno@clisp.org>
obstack-zprintf-gnu: Add tests.
* tests/test-obstack-zprintf-gnu.c: New file, based on
tests/test-vazsprintf-gnu.c.
* modules/obstack-zprintf-gnu-tests: New file.
obstack-zprintf-gnu: New module.
* modules/obstack-zprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
vazsprintf-gnu: Add tests.
* tests/test-vazsprintf-gnu.c: New file, based on
tests/test-zsnprintf-gnu.h.
* modules/vazsprintf-gnu-tests: New file.
vazsprintf-gnu: New module.
* modules/vazsprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
zsprintf-gnu: Add tests.
* tests/test-zsprintf-gnu.c: New file.
* modules/zsprintf-gnu-tests: New file.
zsprintf-gnu: New module.
* modules/zsprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
vzsprintf-gnu: Add tests.
* tests/test-vzsprintf-gnu.c: New file.
* tests/test-zsprintf-gnu.h: New file, based on
tests/test-zsnprintf-gnu.h.
* modules/vzsprintf-gnu-tests: New file.
vzsprintf-gnu: New module.
* modules/vzsprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
zsnprintf-gnu: Add tests.
* tests/test-zsnprintf-gnu.c: New file.
* modules/zsnprintf-gnu-tests: New file.
zsnprintf-gnu: New module.
* modules/zsnprintf-gnu: New file.
2024-06-25 Bruno Haible <bruno@clisp.org>
vzsnprintf-gnu: Add tests.
* tests/test-vzsnprintf-gnu.c: New file.
* tests/test-zsnprintf-gnu.h: New file, based on
tests/test-snprintf-gnu.h.
* modules/vzsnprintf-gnu-tests: New file.
vzsnprintf-gnu: New module.
* modules/vzsnprintf-gnu: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
obstack-zprintf-posix: Add tests.
* tests/test-obstack-zprintf-posix.c: New file, based on
tests/test-vazsprintf-posix.c.
* modules/obstack-zprintf-posix-tests: New file.
obstack-zprintf-posix: New module.
* modules/obstack-zprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
vazsprintf-posix: Add tests.
* tests/test-vazsprintf-posix.c: New file, based on
tests/test-zsnprintf-posix.h.
* modules/vazsprintf-posix-tests: New file.
vazsprintf-posix: New module.
* modules/vazsprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
zsprintf-posix: Add tests.
* tests/test-zsprintf-posix.c: New file.
* modules/zsprintf-posix-tests: New file.
zsprintf-posix: New module.
* modules/zsprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
vzsprintf-posix: Add tests.
* tests/test-vzsprintf-posix.c: New file.
* tests/test-zsprintf-posix.h: New file, based on
tests/test-zsnprintf-posix.h.
* modules/vzsprintf-posix-tests: New file.
vzsprintf-posix: New module.
* modules/vzsprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
zsnprintf-posix: Add tests.
* tests/test-zsnprintf-posix.c: New file.
* modules/zsnprintf-posix-tests: New file.
zsnprintf-posix: New module.
* modules/zsnprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
vzsnprintf-posix: Add tests.
* tests/test-vzsnprintf-posix.c: New file.
* tests/test-zsnprintf-posix.h: New file, based on
tests/test-snprintf-posix.h.
* modules/vzsnprintf-posix-tests: New file.
vzsnprintf-posix: New module.
* modules/vzsnprintf-posix: New file.
2024-06-24 Bruno Haible <bruno@clisp.org>
Ease maintainability of *printf-gnu modules.
* modules/mixin/printf-gnu: New file.
* modules/dprintf-gnu (Depends-on): Add it.
* modules/fprintf-gnu (Depends-on): Likewise.
* modules/obstack-printf-gnu (Depends-on): Likewise.
* modules/printf-gnu (Depends-on): Likewise.
* modules/snprintf-gnu (Depends-on): Likewise.
* modules/sprintf-gnu (Depends-on): Likewise.
* modules/vasnprintf-gnu (Depends-on): Likewise.
* modules/vasnwprintf-gnu (Depends-on): Likewise.
* modules/vasprintf-gnu (Depends-on): Likewise.
* modules/vdprintf-gnu (Depends-on): Likewise.
* modules/vfprintf-gnu (Depends-on): Likewise.
* modules/vprintf-gnu (Depends-on): Likewise.
* modules/vsnprintf-gnu (Depends-on): Likewise.
* modules/vsprintf-gnu (Depends-on): Likewise.
2024-06-24 Bruno Haible <bruno@clisp.org>
Reduce duplication among *printf-posix modules.
* modules/mixin/printf-posix: New file.
* modules/c-vasnprintf (Depends-on): Add it. Remove isnan*-nolibm,
frexp*-nolibm, printf-frexp*, signbit, fpucw.
* modules/dprintf-posix (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasnwprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vdprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
2024-06-24 Bruno Haible <bruno@clisp.org>
c-vasnprintf: Relicense under LGPLv2+.
* lib/c-vasnprintf.h: Rebase on lib/vasnprintf.h.
* lib/c-vasnprintf.c: Rebase on lib/unistdio/ulc-vasnprintf.c.
* modules/c-vasnprintf (License): Change to LGPLv2+.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about *printf.
* doc/*-functions/*printf.texi: Update info regarding size specifiers
w8, wf8, etc.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about *printf.
* doc/*-functions/*printf.texi: Update info regarding %B directive.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about *printf.
* doc/*-functions/*printf.texi: Update info regarding %b directive.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about *printf.
* doc/*-functions/*printf.texi: Update info regarding %f, %e, %g
directives.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about *printf.
* doc/*-functions/*printf.texi: Update info regarding %a directive.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Likewise. Improve bits
assignment in return value.
2024-06-24 Bruno Haible <bruno@clisp.org>
doc: Update info about obstack_*printf.
* doc/glibc-functions/obstack_*printf.texi: Update info.
2024-06-24 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Improve last commit.
* lib/git-merge-changelog.c (conflict_write): Add comments.
2024-06-24 Andreas Schwab <schwab@suse.de>
git-merge-changelog: Improve conflict markers.
* lib/git-merge-changelog.c (conflict_write): Add a space after <<<<<<<
and >>>>>>>.
2024-06-23 Collin Funk <collin.funk1@gmail.com>
test-framework-sh: Fix typo in function invocation (regression 2024-06-11).
* tests/init.sh (mktempd_): Invoke fail_ properly.
2024-06-22 Bruno Haible <bruno@clisp.org>
obstack-zprintf: Add more tests.
* tests/test-obstack-zprintf-big.c: New file, based on
tests/test-vasnprintf-big.c.
* modules/obstack-zprintf-extra-tests: New file.
* modules/obstack-zprintf-tests (Depends-on): Add it.
obstack-zprintf: Add tests.
* tests/test-obstack-printf.h: New file, based on
tests/test-obstack-printf.c.
* tests/test-obstack-printf.c: Include test-obstack-printf.h.
(obstack_chunk_alloc, obstack_chunk_free, test_function): Moved to
tests/test-obstack-printf.h.
(test_obstack_vprintf, test_obstack_printf): Remove functions.
(main): Inline them here.
* tests/test-obstack-zprintf.c: New file, based on
tests/test-obstack-printf.c.
* modules/obstack-printf-tests (Files): Add tests/test-obstack-printf.h.
* modules/obstack-zprintf-tests: New file.
obstack-zprintf: New module.
* lib/stdio.in.h (obstack_zprintf, obstack_vzprintf): New declarations.
(obstack_printf, obstack_vprintf): Tweak comment.
* lib/obstack_printf.c: Parameterize.
(RESULT_TYPE, OBSTACK_PRINTF, OBSTACK_VPRINTF): New macros.
* lib/obstack_zprintf.c: New file.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_OBSTACK_ZPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_OBSTACK_ZPRINTF.
* modules/obstack-zprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
physmem: Fix typo.
* lib/physmem.h (physmem_claimable): Fix typo in comment.
2024-06-22 Bruno Haible <bruno@clisp.org>
c-xvasprintf: Guarantee a non-NULL result.
* lib/c-xvasprintf.h: Clarify the programmer's responsibilities.
(c_xasprintf, c_xvasprintf): Declare as returning non-NULL.
* lib/c-xvasprintf.c: Include <stdlib.h>, <string.h>.
(c_xvasprintf): Call c_vazsprintf instead of c_vasprintf. When some
other error occurs, emit an error message and abort.
* modules/c-xvasprintf (Files): Add m4/strerrorname_np.m4.
(Depends-on): Add extensions, c-vazsprintf. Remove c-vasprintf.
(configure.ac): Invoke gl_OPTIONAL_STRERRORNAME_NP.
* NEWS: Mention the change.
2024-06-22 Bruno Haible <bruno@clisp.org>
c-vasprintf: Make return convention consistent with other modules.
* lib/c-vasprintf.h (c_asprintf, c_vasprintf): Add specification.
* lib/c-asprintf.c: Replaced with code based on lib/asprintf.c.
* lib/c-vasprintf.c: Replaced with code based on lib/vasprintf.c.
* modules/c-vasprintf (Depends-on): Add stdint.
(License): Change to LGPLv2+.
c-vazsprintf: New module.
* lib/c-vasprintf.h: Change license to LGPLv2+.
Include <stddef.h>.
(c_azsprintf, c_vazsprintf): New declarations.
* lib/c-azsprintf.c: New file, based on lib/azsprintf.c.
* lib/c-vazsprintf.c: New file, based on lib/vazsprintf.c.
* modules/c-vazsprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
c-snprintf: Use c-vzsnprintf.
* lib/c-snprintf.h (c_snprintf): Move specification to here.
* lib/c-snprintf.c: Change license to LGPLv2+.
Don't include <stdlib.h>, <string.h>, c-vasnprintf.h. Include
<stdint.h>, c-vsnprintf.h.
(c_snprintf): Implement based on c_vzsnprintf.
* modules/c-snprintf (Depends-on): Add stdint, c-vzsnprintf. Remove
c-vasnprintf.
c-zsnprintf: New module.
* lib/c-snprintf.h: Change license to LGPLv2+.
(c_zsnprintf): New declaration.
* lib/c-zsnprintf.c: New file, based on lib/zsnprintf.c.
* modules/c-zsnprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
c-vsnprintf: Use c-vzsnprintf.
* lib/c-vsnprintf.h (c_vsnprintf): Move specification to here.
* lib/c-vsnprintf.c: Change license to LGPLv2+.
Don't include <stdlib.h>, <string.h>, c-vasnprintf.h. Include
<stdint.h>.
(c_vsnprintf): Implement based on c_vzsnprintf.
* modules/c-vsnprintf (Depends-on): Add stdint, c-vzsnprintf. Remove
c-vasnprintf.
(License): Change to LGPLv2+.
c-vzsnprintf: New module.
* lib/c-vsnprintf.h: Change license to LGPLv2+.
(c_vzsnprintf): New declaration.
* lib/c-vzsnprintf.c: New file, based on lib/vzsnprintf.c.
* modules/c-vzsnprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
xvasprintf: Guarantee a non-NULL result.
* lib/xvasprintf.h: Clarify the programmer's responsibilities.
(xasprintf, xvasprintf): Declare as returning non-NULL.
* lib/xvasprintf.c: Include <stdlib.h>.
(xstrcat): Allow results longer than INT_MAX characters. Upon size
overflow, invoke xalloc_die.
(xvasprintf): Call vazsprintf instead of vasprintf. When some other
error occurs, emit an error message and abort.
* m4/strerrorname_np.m4 (gl_CHECK_STRERRORNAME_NP): New macro, extracted
from gl_FUNC_STRERRORNAME_NP.
(gl_FUNC_STRERRORNAME_NP): Invoke it.
(gl_OPTIONAL_STRERRORNAME_NP): New macro.
* m4/xvasprintf.m4 (gl_XVASPRINTF): Invoke gl_OPTIONAL_STRERRORNAME_NP.
* modules/xvasprintf (Files): Add m4/strerrorname_np.m4.
(Depends-on): Add extensions, vazsprintf. Remove vasprintf.
* NEWS: Mention the change.
2024-06-22 Bruno Haible <bruno@clisp.org>
vasprintf: Make return convention consistent with other modules.
* lib/vasprintf.c: Include <stdint.h>.
(vasprintf): If the length is > PTRDIFF_MAX, fail with ENOMEM, not
EOVERFLOW.
* modules/vasprintf (Depends-on): Add stdint.
vazsprintf: New module.
* lib/stdio.in.h (azsprintf, vazsprintf): New declarations.
* lib/vazsprintf.c: New file, based on lib/vasprintf.c.
* lib/azsprintf.c: New file, based on lib/asprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VAZSPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VAZSPRINTF.
* modules/vazsprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
sprintf-posix: Use vzsprintf.
* lib/stdio.in.h (sprintf): Move specification to here.
* lib/sprintf.c: Don't include <stdlib.h>, vasnprintf.h. Include
<stdint.h>.
(sprintf): Implement based on vzsprintf.
* modules/sprintf-posix (Depends-on): Add vzsprintf. Remove vasnprintf.
zsprintf: New module.
* lib/stdio.in.h (zsprintf): New declaration, based on
lib/sprintf.c.
* lib/zsprintf.c: New file, based on lib/sprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ZSPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_ZSPRINTF.
* modules/zsprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
vsprintf-posix: Use vzsprintf.
* lib/stdio.in.h (vsprintf): Move specification to here.
* lib/vsprintf.c: Don't include <stdlib.h>, vasnprintf.h.
(SIZE_MAX): Remove macro.
(vsprintf): Implement based on vzsprintf.
* modules/vsprintf-posix (Depends-on): Add vzsprintf. Remove vasnprintf.
vzsprintf: New module.
* lib/stdio.in.h (vzsprintf): New declaration, based on
lib/vsprintf.c.
* lib/vzsprintf.c: New file, based on lib/vsprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VZSPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VZSPRINTF.
* modules/vzsprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
snprintf: Use vzsnprintf.
* lib/stdio.in.h (snprintf): Move specification to here.
* lib/snprintf.c: Don't include <stdlib.h>, <string.h>, vasnprintf.h.
Include <stdint.h>.
(snprintf): Implement based on vzsnprintf.
* modules/snprintf (Depends-on): Add stdint, vzsnprintf. Remove
vasnprintf.
zsnprintf: New module.
* lib/stdio.in.h (zsnprintf): New declaration, based on
lib/snprintf.c.
* lib/zsnprintf.c: New file, based on lib/snprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ZSNPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_ZSNPRINTF.
* modules/zsnprintf: New file.
2024-06-22 Bruno Haible <bruno@clisp.org>
vsnprintf: Use vzsnprintf.
* lib/stdio.in.h (vsnprintf): Move specification to here.
* lib/vsnprintf.c: Don't include <stdlib.h>, <string.h>, vasnprintf.h.
Include <stdint.h>.
(vsnprintf): Implement based on vzsnprintf.
* modules/vsnprintf (Depends-on): Add stdint, vzsnprintf. Remove
vasnprintf.
vzsnprintf: New module.
* lib/stdio.in.h (vzsnprintf): New declaration, based on
lib/vsnprintf.c.
* lib/vzsnprintf.c: New file, based on lib/vsnprintf.c.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize
GNULIB_VZSNPRINTF.
* modules/stdio (Makefile.am): Substitute GNULIB_VZSNPRINTF.
* modules/vzsnprintf: New file.
2024-06-20 Bruno Haible <bruno@clisp.org>
test-framework-sh: Fix side effect on dfa tests (regression 2024-06-11).
* tests/init.sh (returns_): Silence the 'local is_tracing' assignment
for real.
test-framework-sh: Fix side effect on dfa tests (regression 2024-06-11).
* tests/init.sh (returns_): Silence the 'local is_tracing' assignment.
2024-06-20 Bruno Haible <bruno@clisp.org>
vasnwprintf tests: Add test of huge %ls arguments.
* tests/test-vasnwprintf-big.c (main): Add tests for wide string
arguments with > 2^31 wide characters.
vasnwprintf: Support huge wide string arguments.
* lib/vasnprintf.c: (VASNPRINTF): In 64-bit builds, handle the %ls
directive ourselves.
(local_wcslen): Adjust #if condition.
2024-06-20 Paul Eggert <eggert@cs.ucla.edu>
sigsegv: avoid unlikely undefined behavior
Problem found by Coverity for diffutils and reported by Wasser Mai in:
https://bugs.gnu.org/71535
* lib/stackvma.c (rof_open) [__linux__ || __FreeBSD__ || etc]:
Don’t assume result of ‘read’ fits in int.
Avoid undefined behavior if ‘n + MIN_LEFTOVER’ would overflow.
Also, move a test to be after an (n == 0) test, to help the compiler.
2024-06-19 Bruno Haible <bruno@clisp.org>
vasnprintf, u*-asnprintf tests: Add test of huge %ls arguments.
* tests/test-vasnprintf-big.c: Include <wchar.h>.
(main): Add tests for wide string arguments with > 2^31 wide characters.
* tests/unistdio/test-u8-asnprintf-big.c: Include <wchar.h>.
(main): Add tests for wide string arguments with > 2^31 wide characters.
* tests/unistdio/test-ulc-asnprintf-big.c: Include <wchar.h>.
(main): Add tests for wide string arguments with > 2^31 wide characters.
vasnprintf, u*-vasnprintf: Support huge wide string arguments.
* lib/vasnprintf.c: (VASNPRINTF): In 64-bit builds, handle the %ls
directive ourselves.
(local_wcslen, local_wcrtomb): Adjust #if condition.
2024-06-19 Bruno Haible <bruno@clisp.org>
vasnwprintf tests: Add test of %s directive with large arguments.
* tests/test-vasnwprintf-big.c: New file, based on
tests/test-vasnprintf-big.c.
* modules/vasnwprintf-extra-tests: New file.
* modules/vasnwprintf-tests (Depends-on): Depend on it.
2024-06-19 Bruno Haible <bruno@clisp.org>
vasnprintf, u*-asnprintf tests: Adjust memory need.
* tests/test-vasnprintf-big.c (main): Require 10, not 12, GiB of RAM.
* tests/unistdio/test-u8-asnprintf-big.c (main): Require 15 GiB of RAM.
* tests/unistdio/test-ulc-asnprintf-big.c (main): Likewise.
2024-06-19 Bruno Haible <bruno@clisp.org>
u8-asnprintf tests: Fix mistake.
* tests/unistdio/test-u8-asnprintf-big.c: Include <unistr.h>.
(main): Use u8_strlen instead of strlen.
* modules/unistdio/u8-asnprintf-extra-tests (Depends-on): Add
unistr/u8-strlen.
2024-06-19 Collin Funk <collin.funk1@gmail.com>
filemode tests: Fix comment.
* tests/test-filemode.c: Make the file description accurate.
2024-06-19 Bruno Haible <bruno@clisp.org>
ulc-asnprintf tests: Add test of %U, %s directives with large arguments.
* tests/unistdio/test-ulc-asnprintf-big.c: New file, based on
tests/test-vasnprintf-big.c.
* modules/unistdio/ulc-asnprintf-extra-tests: New file.
* modules/unistdio/ulc-asnprintf-tests (Depends-on): Depend on it.
u8-asnprintf tests: Add test of %U, %s directives with large arguments.
* tests/unistdio/test-u8-asnprintf-big.c: New file, based on
tests/test-vasnprintf-big.c.
* modules/unistdio/u8-asnprintf-extra-tests: New file.
* modules/unistdio/u8-asnprintf-tests (Depends-on): Depend on it.
vasnprintf tests: Add test of %s directive with large arguments.
* tests/test-vasnprintf-big.c: New file.
* modules/vasnprintf-extra-tests: New file.
* modules/vasnprintf-tests (Depends-on): Depend on it.
vasnprintf, u*-vasnprintf: Support string arguments longer than 2 GiB.
* lib/vasnprintf.c: Include <stdint.h>.
(VASNPRINTF): In 64-bit builds, handle the %s directive ourselves.
(local_strnlen): Adjust #if condition.
* modules/unistdio/u8-vasnprintf (Depends-on): Add stdint.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2024-06-19 Bruno Haible <bruno@clisp.org>
vasnwprintf: Optimize handling of %c directive.
* lib/vasnprintf.c (VASNPRINTF): Use a single ENSURE_ALLOCATION instead
of two.
2024-06-19 Bruno Haible <bruno@clisp.org>
u*-vasnprintf: Fix a rare memory leak.
* lib/vasnprintf.c (VASNPRINTF): Use ENSURE_ALLOCATION_ELSE instead of
ENSURE_ALLOCATION, to free temporary allocations before failing due to
out-of-memory.
2024-06-19 Bruno Haible <bruno@clisp.org>
u*-vasnprintf: Improve comments.
* lib/vasnprintf.c (VASNPRINTF): Improve comments.
2024-06-19 Bruno Haible <bruno@clisp.org>
u*-vasnprintf tests: Add more tests of %U, %lU, %llU directives.
* tests/unistdio/test-u8-printf1.h (test_xfunction): Add more tests of
%U, %lU, %llU directives with width and non-ASCII argument.
* tests/unistdio/test-u16-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-u32-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-ulc-vasnprintf2.c (test_function): Likewise.
* tests/unistdio/test-ulc-vasnprintf3.c (test_function): Likewise.
2024-06-19 Bruno Haible <bruno@clisp.org>
filemode tests: Tweak.
* tests/test-filemode.c: Update comment.
* modules/filemode-tests (Depends-on): Add unistd.
2024-06-18 Collin Funk <collin.funk1@gmail.com>
filemode: Add tests.
* modules/filemode-tests: New file.
* tests/test-filemode.c: New file.
2024-06-18 Bruno Haible <bruno@clisp.org>
copysignl tests: Avoid failure on Solaris 11.4.
* tests/test-copysignl.c: Include <float.h>.
(LDBL_BYTES): New macro.
(main): Use it instead of sizeof (long double).
* modules/copysignl-tests (Depends-on): Add float.
2024-06-18 Bruno Haible <bruno@clisp.org>
mbsnlen: Add tests.
* tests/test-mbsnlen.c: New file.
* tests/test-mbsnlen.sh: New file, based on tests/test-mbsspn.sh.
* modules/mbsnlen-tests: New file.
mbsnlen: Fix bug (regression 2023-09-26).
* lib/mbsnlen.c (mbsnlen): Fix bug in GNULIB_MCEL_PREFER implementation.
2024-06-18 Bruno Haible <bruno@clisp.org>
mbslen: Add tests.
* tests/test-mbslen.c: New file.
* tests/test-mbslen.sh: New file, based on tests/test-mbsspn.sh.
* modules/mbslen-tests: New file.
2024-06-18 Bruno Haible <bruno@clisp.org>
u*-vasnprintf tests: Add tests of %ls directive.
* tests/unistdio/test-u8-vasnprintf2.c (test_function): Add tests of
the %ls directive with non-ASCII argument.
* tests/unistdio/test-u8-vasnprintf3.c (test_function): Likewise.
* tests/unistdio/test-u16-vasnprintf2.c (test_function): Likewise.
* tests/unistdio/test-u16-vasnprintf3.c (test_function): Likewise.
* tests/unistdio/test-u32-vasnprintf2.c (test_function): Likewise.
* tests/unistdio/test-u32-vasnprintf3.c (test_function): Likewise.
* tests/unistdio/test-ulc-vasnprintf2.c (test_function): Likewise.
* tests/unistdio/test-ulc-vasnprintf3.c (test_function): Likewise.
u*-vasnprintf: Fix handling of %ls, %lc directives on Solaris, MSVC.
* lib/vasnprintf.c (VASNPRINTF): When implementing the %ls, %lc
directives ourselves: Rename variable 'characters' to 'bytes'. Also
count characters, if necessary for the width handling. Fix
DCHAR_MBSNLEN invocation.
2024-06-18 Bruno Haible <bruno@clisp.org>
vasnprintf: Refactor.
* lib/vasnprintf.c (VASNPRINTF) [!DCHAR_IS_TCHAR]: Reduce the scope of
the tmpsrc variables.
2024-06-18 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: tweak volatile access
* lib/strftime.c (utc_timezone): Avoid unnecessary access to volatile.
2024-06-18 Bruno Haible <bruno@clisp.org>
nstrftime: Fix crash on NetBSD 10.0.
* lib/strftime.c (utc_timezone_cache): New variable.
(utc_timezone): New function.
(underlying_strftime): Use it when tz is NULL.
2024-06-18 Bruno Haible <bruno@clisp.org>
c-nstrftime: Fix warning on platforms without strftime_l.
* lib/strftime.c: Add comment regarding HAVE_STRFTIME_L.
(underlying_strftime): Don't define if this function is not used.
Correct indentation. Simplify #if condition.
(__strftime_internal): Disable code that is not used on platforms
without strftime_l.
2024-06-17 Paul Eggert <eggert@cs.ucla.edu>
Improve wording for Y2038 and largefile probes
This change syncs from Autoconf master.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00181.html
* m4/largefile.m4 (_AC_SYS_YEAR2038_PROBE)
(_AC_SYS_LARGEFILE_PROBE): Improve wording of chatter.
nstrftime: fix bug with -0000 on Solaris 11
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00201.html
* lib/strftime.c (strftime) [!_LIBC]: Move #undef up.
(underlying_strftime) [!_LIBC]: New function, containing most of
what __strftime_internal used to do at the underlying_strftime label.
(get_tm_zone): New function, containing much of what
__strftime_internal used to do for %Z.
Be consistent about using "UTC" rather than "GMT";
this changes behavior only on platforms lacking tm_zone.
(__strftime_internal): Use them to compute time zone abbreviation
when needed. Make ‘zone’ more local, and compute it only if
needed. Simplify by removing set_and_revert_tz local var and its
uses; no longer needed now that we have get_tm_zone. Do not
assume %EZ and %OZ are equivalent to %Z.
2024-06-17 Bruno Haible <bruno@clisp.org>
nstrftime: Correct indentation.
* lib/strftime.c (__strftime_internal): Correct indentation of
preprocessor directives.
2024-06-17 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: improve fix for NetBSD link errors
This makes the NetBSD code thread-safe and presumably faster.
* lib/strftime.c (HAVE_NATIVE_TIME_Z): New macro.
(__strftime_internal): If HAVE_NATIVE_TIME_Z, use strftime_lz
or strftime_z instead of setting and reverting TZ.
* lib/time-internal.c: Remove, reverting recent change.
* lib/time_rz.c, modules/time_rz: Also revert recent changes,
since the relevant functions can now remain private to time_rz.c.
* m4/c-nstrftime.m4 (gl_C_GNU_STRFTIME): Check for strftime_lz.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Check for strftime_z.
2024-06-17 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix test failure on Cygwin.
* m4/vasnprintf.m4 (gl_FUNC_VASNPRINTF): Require AC_CANONICAL_HOST. Test
whether vasnprintf works reliably; invoke gl_REPLACE_VASNPRINTF if not.
2024-06-17 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime: Fix crash on Solaris 11.4.
* lib/strftime.c (__strftime_internal): Restore protection against zone
being NULL.
2024-06-17 Bruno Haible <bruno@clisp.org>
time_rz: Fix link errors on NetBSD (regression yesterday).
* lib/time-internal.c: New file, extracted from lib/time_rz.c.
(tzgetname): New function.
* lib/time_rz.c (getenv_TZ, setenv_TZ, change_env, set_tz, revert_tz):
Moved to lib/time-internal.c.
* modules/time_rz (Files): Add lib/time-internal.c.
(Depends-on): Update.
(Makefile.am): Arrange to compile time-internal.c on all platforms.
2024-06-17 Bruno Haible <bruno@clisp.org>
doc: Update for macOS 12, 13, 14.
* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Update cross-compilation
guess.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Update comments.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Likewise.
2024-06-16 Collin Funk <collin.funk1@gmail.com>
useless-if-before-free: Check for nullptr.
* build-aux/useless-if-before-free (is_NULL): Add nullptr to the
condition.
(foo): Add nullptr to the regular expressions.
2024-06-16 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: omit never-used code
* lib/strftime.c (__strftime_internal): Remove code protected by
‘#ifndef my_strftime’. my_strftime is always defined. This
code isn’t needed for POSIX conformance as it’s never used in glibc.
nstrftime,time_rz: don’t depend on tzname
* lib/strftime.c (HAVE_TZNAME_ARRAY) [_LIBC]: Remove.
All uses removed.
(__strftime_internal): Simplify calculation of zone to be closer
to what glibc does. However, in Gnulib do not look at tzname as
this is problematic for all the usual reasons; instead, use the
underlying strftime with %Z, making sure that call to the
underlying strftime is now always compiled in the non-glibc case.
Set and revert TZ as needed around the underlying call.
* lib/time-internal.h (struct tm_zone)
[HAVE_TZNAME_ARRAY && !HAVE_STRUCT_TM_TM_ZONE]: Remove tzname_copy.
All uses removed.
(set_tz, revert_tz): Declare, as they’re now extern.
(local_tz): Move here from time_rz.c, and now a macro.
* lib/time_rz.c (save_abbr): Do not worry about tzname_copy,
since strftime.c no longer needs it. Instead, save abbrs
only from tm_zone.
* modules/c-nstrftime, modules/nstrftime, modules/time_rz:
(Depends-on): Remove tzname.
parse-datetime: don’t depend on tzname
* lib/parse-datetime.y (TIME_ZONE_BUFSIZE): Move earlier.
(parser_control) [!HAVE_STRUCT_TM_TM_ZONE]:
New member tz_abbr, to save abbrs calculated by strftime %Z.
(populate_local_time_zone_table): New function, which
optimizes the HAVE_STRUCT_TM_TM_ZONE case as before,
and falls back on strftime with %Z otherwise.
Although strftime %Z can be more accurate than the old tzname
based method, the new heuristic is still wrong so often that it
probably doesn’t help all that much.
(parse_datetime_body): Use it.
* modules/parse-datetime (Depends-on): Remove tzname.
time_r: refactor tm_zone tests
* m4/tm_gmtoff.m4 (gl_TM_GMTOFF): Also check for tm_zone
and define HAVE_STRUCT_TM_TM_ZONE accordingly.
* modules/time_r-tests (Files): Add m4/tm_gmtoff.m4.
(configure.ac): Simplify by using gl_TM_GMTOFF.
time_r-tests: avoid tzname test
* modules/time_r-tests (configure.ac):
Do not check for tzname, as the tests don’t use it.
Simply check for struct tm.tm_zone.
nstrftime: rename HAVE_TM_GMTOFF
* m4/tm_gmtoff.m4 (gl_TM_GMTOFF): Rename HAVE_TM_GMTOFF
to HAVE_STRUCT_TM_TM_GMTOFF, for consistency with
HAVE_STRUCT_TM_TM_ZONE. All uses changed.
2024-06-15 Bruno Haible <bruno@clisp.org>
Drop outdated cppi configuration.
* lib/.cppi-disable: Remove file.
2024-06-15 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.39.
* doc/glibc-functions/pidfd_getpid.texi: New file.
* doc/glibc-functions/pidfd_spawn.texi: New file.
* doc/glibc-functions/pidfd_spawnp.texi: New file.
* doc/glibc-functions/posix_spawnattr_getcgroup_np.texi: New file.
* doc/glibc-functions/posix_spawnattr_setcgroup_np.texi: New file.
* doc/gnulib.texi: Include them.
* doc/posix-functions/*scanf.texi: Update.
2024-06-15 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.38.
* doc/posix-functions/strlcat.texi: New file.
* doc/posix-functions/strlcpy.texi: New file.
* doc/gnulib.texi: Include them.
* doc/posix-headers/inttypes.texi: Update.
* doc/posix-functions/*printf.texi: Update.
2024-06-15 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.36.
* doc/posix-functions/c8rtomb.texi: Update.
* doc/posix-functions/mbrtoc8.texi: Update.
* doc/glibc-functions/arc4random.texi: New file.
* doc/glibc-functions/arc4random_buf.texi: New file.
* doc/glibc-functions/arc4random_uniform.texi: New file.
* doc/glibc-functions/fsconfig.texi: New file.
* doc/glibc-functions/fsmount.texi: New file.
* doc/glibc-functions/fsopen.texi: New file.
* doc/glibc-functions/fspick.texi: New file.
* doc/glibc-functions/mount_setattr.texi: New file.
* doc/glibc-functions/move_mount.texi: New file.
* doc/glibc-functions/open_tree.texi: New file.
* doc/glibc-functions/pidfd_getfd.texi: New file.
* doc/glibc-functions/pidfd_open.texi: New file.
* doc/glibc-functions/pidfd_send_signal.texi: New file.
* doc/glibc-functions/process_madvise.texi: New file.
* doc/glibc-functions/process_mrelease.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc sys/pidfd.h): New section.
2024-06-15 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Revert previous change.
* pygnulib/constants.py (joinpath): Restore function and remove unused
local variable.
(relativize, symlink_relative, as_link_value_at_dest, hardlink): Use it.
* pygnulib/GLConfig.py (resetAutoconfFile): Likewise.
* pygnulib/GLEmiter.py (lib_Makefile_am, tests_Makefile_am): Likewise.
* pygnulib/GLFileSystem.py (lookup, shouldLink, tmpfilename, add)
(update, add_or_update, super_update): Likewise.
* pygnulib/GLImport.py (__init__, relative_to_currdir)
(_done_dir_, _update_ignorelist_, prepare, execute): Likewise.
* pygnulib/GLInfo.py (version): Likewise.
* pygnulib/GLMakefileTable.py (parent): Likewise.
* pygnulib/GLModuleSystem.py (exists, find, getFiles)
(getAutomakeSnippet_Unconditional): Likewise.
* pygnulib/GLTestDir.py (_patch_test_driver, execute): Likewise.
* pygnulib/main.py (main): Likewise.
2024-06-14 Paul Eggert <eggert@cs.ucla.edu>
timespec-add,timespec-sub: tune
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
Simplify by detecting overflow when the two overflow bits of the
underlying operation differ. This avoids some gotos and labels
and conditional branches; GCC 14 x86-64 now generates just one
conditional branch for the resulting code. Idea stolen from
my recent changes to the glibc manual’s time chapter.
* modules/timespec-add (Depends-on):
* modules/timespec-sub (Depends-on): Add stdbool.
2024-06-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Simplify joining paths.
* pygnulib/constants.py (joinpath): Remove function. It is equivalent to
os.path.normpath(os.path.join(...)) where the os.path.normpath is
typically not needed.
(relativize, symlink_relative, as_link_value_at_dest, hardlink): Use
os.path.join instead of joinpath.
* pygnulib/GLConfig.py (resetAutoconfFile): Likewise.
* pygnulib/GLEmiter.py (lib_Makefile_am, tests_Makefile_am): Likewise.
* pygnulib/GLFileSystem.py (lookup, shouldLink, tmpfilename, add)
(update, add_or_update, super_update): Likewise.
* pygnulib/GLInfo.py (version): Likewise.
* pygnulib/GLMakefileTable.py (parent): Likewise.
* pygnulib/GLTestDir.py (_patch_test_driver, execute): Likewise.
* pygnulib/main.py (main): Likewise.
* pygnulib/GLModuleSystem.py (exists, find, getFiles): Likewise.
* pygnulib/GLImport.py (__init__, relative_to_currdir)
(_done_dir_, _update_ignorelist_, prepare, execute): Likewise.
(getAutomakeSnippet_Unconditional): Likewise. Add a comment about not
using os.path.normpath() to protect a Make variable.
2024-06-14 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.35.
* doc/glibc-functions/_dl_find_object.texi: New file.
* doc/glibc-functions/epoll_pwait2.texi: New file.
* doc/glibc-functions/posix_spawn_file_actions_addtcsetpgrp_np.texi: New
file.
* doc/posix-functions/dfmal.texi: New file.
* doc/posix-functions/dsqrtl.texi: New file.
* doc/posix-functions/ffma.texi: New file.
* doc/posix-functions/ffmal.texi: New file.
* doc/posix-functions/fmaximum.texi: New file.
* doc/posix-functions/fmaximum_mag.texi: New file.
* doc/posix-functions/fmaximum_mag_num.texi: New file.
* doc/posix-functions/fmaximum_mag_numf.texi: New file.
* doc/posix-functions/fmaximum_mag_numl.texi: New file.
* doc/posix-functions/fmaximum_magf.texi: New file.
* doc/posix-functions/fmaximum_magl.texi: New file.
* doc/posix-functions/fmaximum_num.texi: New file.
* doc/posix-functions/fmaximum_numf.texi: New file.
* doc/posix-functions/fmaximum_numl.texi: New file.
* doc/posix-functions/fmaximumf.texi: New file.
* doc/posix-functions/fmaximuml.texi: New file.
* doc/posix-functions/fminimum.texi: New file.
* doc/posix-functions/fminimum_mag.texi: New file.
* doc/posix-functions/fminimum_mag_num.texi: New file.
* doc/posix-functions/fminimum_mag_numf.texi: New file.
* doc/posix-functions/fminimum_mag_numl.texi: New file.
* doc/posix-functions/fminimum_magf.texi: New file.
* doc/posix-functions/fminimum_magl.texi: New file.
* doc/posix-functions/fminimum_num.texi: New file.
* doc/posix-functions/fminimum_numf.texi: New file.
* doc/posix-functions/fminimum_numl.texi: New file.
* doc/posix-functions/fminimumf.texi: New file.
* doc/posix-functions/fminimuml.texi: New file.
* doc/posix-functions/fsqrt.texi: New file.
* doc/posix-functions/fsqrtl.texi: New file.
* doc/gnulib.texi: Include them.
2024-06-14 Bruno Haible <bruno@clisp.org>
doc: More updates for glibc 2.34.
* doc/glibc-functions/ns_name_compress.texi: New file.
* doc/glibc-functions/ns_name_ntop.texi: New file.
* doc/glibc-functions/ns_name_pack.texi: New file.
* doc/glibc-functions/ns_name_pton.texi: New file.
* doc/glibc-functions/ns_name_skip.texi: New file.
* doc/glibc-functions/ns_name_uncompress.texi: New file.
* doc/glibc-functions/ns_name_unpack.texi: New file.
* doc/gnulib.texi (Glibc arpa/nameser.h): New section.
doc: More updates for glibc 2.34.
* doc/glibc-functions/close_range.texi: New file.
* doc/gnulib.texi: Include it.
2024-06-14 Paul Eggert <eggert@cs.ucla.edu>
xsize: port to SIZE_MAX <= INT_MAX
* lib/xsize.h (xsum): Port to oddball platforms where SIZE_MAX <=
INT_MAX. Although no such platform is a current Gnulib porting
target, it’s easy enough to port to them.
ssfmalloc-tests: simplify by using sysconf
* tests/test-ssfmalloc.c (getpagesize) [__hpux]: Remove decl.
(init_pagesize): Use sysconf instead of getpagesize.
free-posix-tests, sigsegv-tests: port to plain POSIX
* tests/test-free.c (main):
* tests/test-sigsegv-catch-segv1.c, tests/test-sigsegv-catch-segv2.c:
(SIGSEGV_FAULT_ADDRESS_ROUNDOFF_BITS):
Use sysconf (_SC_PAGESIZE) instead of getpagesize, as this code is
compiled only on platforms that have _SC_PAGESIZE and POSIX
prefers the latter.
maint: avoid some test getpagesize dependencies
* modules/memcasecmp-tests, modules/memchr-tests:
* modules/memchr2-tests, modules/memcmp-tests:
* modules/memmem-tests, modules/memrchr-tests:
* modules/rawmemchr-tests, modules/strncat-tests:
* modules/strnlen-tests, modules/strstr-tests:
* modules/unistr/u16-chr-tests, modules/unistr/u16-cmp-tests:
* modules/unistr/u16-stpncpy-tests:
* modules/unistr/u16-strchr-tests:
* modules/unistr/u16-strncat-tests:
* modules/unistr/u16-strncpy-tests:
* modules/unistr/u16-strnlen-tests, modules/unistr/u32-chr-tests:
* modules/unistr/u32-cmp-tests, modules/unistr/u32-stpncpy-tests:
* modules/unistr/u32-strchr-tests:
* modules/unistr/u32-strncat-tests:
* modules/unistr/u32-strncpy-tests:
* modules/unistr/u32-strnlen-tests, modules/unistr/u8-chr-tests:
* modules/unistr/u8-cmp-tests, modules/unistr/u8-stpncpy-tests:
* modules/unistr/u8-strchr-tests, modules/unistr/u8-strncat-tests:
* modules/unistr/u8-strncpy-tests:
* modules/unistr/u8-strnlen-tests, modules/wcsstr-tests:
Do not depend on getpagesize.
* tests/zerosize-ptr.h (zerosize_ptr): Use sysconf (_SC_PAGESIZE)
instead of getpagesize, as this code is compiled only on
platforms that have _SC_PAGESIZE.
mprotect: don’t assume pointers fit in long
* m4/mprotect.m4 (gl_FUNC_MPROTECT_WORKS): Don’t assume pointers
fit into unsigned long, as this is not true on CheriBSD. Prefer
sysconf (_SC_PAGESIZE) to getpagesize.
memchr,strncat: prefer sysconf (_SC_PAGESIZE)
* m4/memchr.m4 (gl_FUNC_MEMCHR):
* m4/strncat.m4 (gl_FUNC_STRNCAT):
Use sysconf (_SC_PAGESIZE) instead of getpagesize, as it’s
in POSIX and there’s no point to worrying about getpagesize
performance advantages here.
getcwd: simplify abort bug checking
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Don’t invoke
gl_CHECK_FUNC_GETPAGESIZE or #define or use HAVE_GETPAGESIZE.
Protect ‘bug_possible’ with ‘defined _SC_PAGESIZE’ instead.
That’s good enough as the buggy platforms all define _SC_PAGESIZE.
* modules/getcwd (Files): Remove m4/getpagesize.m4.
* tests/test-getcwd.c (getpagsize): Remove replacement macro.
(test_abort_bug): Similar fix for ‘bug_possible’.
getpagesize: remove outdated ref
* lib/.cppi-disable: Remove getpagesize.h.
getpagesize: improve doc
* doc/glibc-functions/getpagesize.texi:
Mention portability problems not fixed by Gnulib.
2024-06-14 Bruno Haible <bruno@clisp.org>
vasnprintf: Reject a width > INT_MAX.
* lib/vasnprintf.c (VASNPRINTF): If a width is > INT_MAX, fail with
EOVERFLOW.
* tests/test-vasnprintf.c: Include <errno.h>.
(test_function): Test huge widths.
* tests/test-vasnwprintf.c: Include <errno.h>.
(test_function): Test huge widths.
* tests/unistdio/test-u8-asnprintf1.h (test_function): Test huge widths.
* tests/unistdio/test-u16-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-u32-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-ulc-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-ulc-asnprintf1.c: Include <errno.h>.
* tests/unistdio/test-ulc-vasnprintf1.c: Likewise.
2024-06-14 Bruno Haible <bruno@clisp.org>
relocatable-prog: Implement --help and --version for all programs.
* build-aux/config.libpath (func_usage, func_version, func_fatal_error):
New functions.
Add command-line option processing.
* build-aux/libtool-reloc (func_usage, func_version, func_fatal_error):
New functions.
Add command-line option processing.
* build-aux/reloc-ldflags (func_usage, func_version, func_fatal_error):
New functions.
Add command-line option processing.
2024-06-14 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Implement --help, --version for all programs.
* build-aux/install-reloc (func_usage, func_version, func_fatal_error):
New functions.
(progname): Remove variable.
Add command-line option processing.
2024-06-14 Bruno Haible <bruno@clisp.org>
havelib: Implement --help and --version for all programs.
* build-aux/config.rpath (func_usage, func_version, func_fatal_error):
New functions.
Add command-line option processing.
2024-06-14 Bruno Haible <bruno@clisp.org>
Improve bug reporting address for some programs.
* build-aux/declared.sh (func_usage): Change bug reporting address to
bug-gnulib.
(func_version): Bump year.
* build-aux/libtool-next-version (func_usage): Change bug reporting
address to bug-gnulib.
* build-aux/run-test (func_usage): Change bug reporting address to
bug-gnulib.
(func_version): Bump year.
2024-06-13 Bruno Haible <bruno@clisp.org>
Assume wchar_t.
* lib/stddef.in.h (wchar_t): Remove fallback definition.
* m4/stddef_h.m4 (gl_STDDEF_H): Don't require gt_TYPE_WCHAR_T. Assume
gt_cv_c_wchar_t is 'yes'.
(gl_STDDEF_H_DEFAULTS): Don't initialize HAVE_WCHAR_T.
* modules/stddef (Files): Remove m4/wchar_t.m4.
(Makefile.am): Don't substitute HAVE_WCHAR_T.
* doc/posix-headers/stddef.texi: Don't mention the problem of a missing
wchar_t.
--
* lib/printf-args.h (arg_type): Assume HAVE_WCHAR_T is 1.
* lib/printf-args.c (PRINTF_FETCHARGS): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): Likewise.
* lib/vasnprintf.c: Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE,
gl_PREREQ_VASNXPRINTF): Don't require gt_TYPE_WCHAR_T.
* modules/c-vasnprintf (Files): Remove m4/wchar_t.m4.
* modules/vasnprintf (Files): Likewise.
* modules/vasnwprintf (Files): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
* modules/unistdio/u16-vasnprintf (Files): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
* modules/unistdio/u32-vasnprintf (Files): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
* modules/unistdio/u8-vasnprintf (Files): Likewise.
* modules/unistdio/ulc-vasnprintf (Files): Likewise.
* tests/test-sprintf-posix.h (test_function): Assume HAVE_WCHAR_T is 1.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
--
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Don't require gt_TYPE_WCHAR_T.
* modules/wcwidth (Files): Remove m4/wchar_t.m4.
--
* tests/test-stdint.c: Assume HAVE_WCHAR_T is 1.
* modules/stdint-tests (Files): Remove m4/wchar_t.m4.
(configure.ac): Don't require gt_TYPE_WCHAR_T.
--
* m4/wchar_t.m4: Remove file.
2024-06-13 Yves Orton <demerphq@gmail.com>
gitlog-to-changelog: Ensure that use of keys() is deterministic.
Reported at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25629>
via Karl Berry.
* build-aux/gitlog-to-changelog: Iterate over hash table in a
predictable order.
2024-06-13 Yves Orton <demerphq@gmail.com>
gendocs: Ensure that use of keys() is deterministic.
Reported at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25629>
via Karl Berry.
* build-aux/gendocs.sh (copy_images): Iterate over hash table in a
predictable order.
2024-06-11 Bruno Haible <bruno@clisp.org>
parse-datetime: Revert last commit.
* modules/parse-datetime (Makefile.am): Remove the '$(srcdir)/' prefix
from the target. Add a comment.
2024-06-11 Paul Eggert <eggert@cs.ucla.edu>
mktempd: use GNU-style -t if available
This better satisfies Jim Meyering’s point in:
https://lists.gnu.org/archive/html/bug-gnulib/2016-03/msg00074.html
that it’s more useful when each temporary test directory name
includes the corresponding test’s name.
* build-aux/mktempd: Try mktemp -t only with GNU syntax, so that
NetBSD mktemp fails. Also, reject templates beginning with "-" so
that they are not treated as options.
* tests/init.sh (mktempd_): Likewise.
2024-06-11 Bruno Haible <bruno@clisp.org>
parse-datetime: Add support for VPATH builds with OpenBSD 'make'.
* modules/parse-datetime (Makefile.am): Prefix the target file name
with '$(srcdir)/'.
2024-06-11 Collin Funk <collin.funk1@gmail.com>
mktempd: Invoke mktemp portably.
* build-aux/mktempd (mktempd): Don't use -t when invoking mktemp since
some implementations expect an argument while others do not.
2024-06-11 Bruno Haible <bruno@clisp.org>
test-framework-sh: Fix 'returns_' to not turn off tracing permanently.
* tests/init.sh (returns_): Restore tracing if it was enabled before.
2024-06-11 Paul Eggert <eggert@cs.ucla.edu>
maint: avoid duplicate tight-scope work
* top/maint.mk (_gl_tight_scope): Sort $(SOURCES), to remove
duplicates and thereby avoid unnecessary work. Found when testing
this on GNU diffutils.
2024-06-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Handle absolute path checks consistently.
* pygnulib/GLImport.py (GLImport.relative_to_destdir)
(GLImport.relative_to_currdir): Use os.path.isabs() instead of checking
for a slash.
* pygnulib/constants.py (symlink_relative, as_link_value_at_dest)
(hardlink): Use os.path.isabs() instead of checking for a slash or drive
prefix.
2024-06-09 Bruno Haible <bruno@clisp.org>
c32width tests: Avoid a test failure on Solaris 11 OpenIndiana, OmniOS.
* tests/test-c32width.c (main): On Solaris, disable two tests that fail
on Solaris 11 OpenIndiana and Solaris 11 OmniOS.
2024-06-09 Bruno Haible <bruno@clisp.org>
c32ispunct tests: Avoid a test failure on Solaris 11 OmniOS.
* tests/test-c32ispunct.c (main): On Solaris, disable two tests that
fail in the zh_CN.GB18030 locale on Solaris 11 OmniOS.
2024-06-09 Bruno Haible <bruno@clisp.org>
c32rtomb: Add a sanity check, working around Solaris 11 OmniOS.
* m4/c32rtomb.m4 (gl_CHECK_FUNC_C32RTOMB): New macro, extracted from
gl_FUNC_C32RTOMB.
(gl_C32RTOMB_SANITYCHECK): New macro.
(gl_FUNC_C32RTOMB): Require gl_CHECK_FUNC_C32RTOMB and
gl_C32RTOMB_SANITYCHECK. If HAVE_WORKING_C32RTOMB is 0, set
REPLACE_C32RTOMB.
* lib/c32rtomb.c (c32rtomb): Together with HAVE_WORKING_MBRTOC32, test
also HAVE_WORKING_C32RTOMB.
--
* m4/mbrtoc32.m4 (gl_PREREQ_MBRTOC32): Require gl_C32RTOMB_SANITYCHECK.
* lib/mbrtoc32.c (mbrtoc32): Together with HAVE_WORKING_MBRTOC32, test
also HAVE_WORKING_C32RTOMB.
* modules/mbrtoc32 (Files): Add m4/c32rtomb.m4.
--
* lib/btoc32.c (btoc32): Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
--
* lib/mbsrtoc32s.c: Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
--
* lib/mbsnrtoc32s.c: Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
--
* lib/c32tob.c (c32tob): Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
* modules/c32tob (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
--
* lib/c32srtombs.c: Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
--
* lib/c32snrtombs.c: Together with HAVE_WORKING_MBRTOC32, test also
HAVE_WORKING_C32RTOMB.
--
* lib/c32is-impl.h (FUNC): Together with HAVE_WORKING_MBRTOC32, test
also HAVE_WORKING_C32RTOMB.
* modules/c32isalnum (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isalpha (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isblank (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32iscntrl (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isdigit (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isgraph (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32islower (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isprint (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32ispunct (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isspace (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isupper (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32isxdigit (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
--
* lib/c32to-impl.h (FUNC): Together with HAVE_WORKING_MBRTOC32, test
also HAVE_WORKING_C32RTOMB.
* modules/c32tolower (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
* modules/c32toupper (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
--
* lib/c32width.c (c32width): Together with HAVE_WORKING_MBRTOC32, test
also HAVE_WORKING_C32RTOMB.
* modules/c32width (Files): Add m4/c32rtomb.m4.
(configure.ac): Require gl_C32RTOMB_SANITYCHECK.
2024-06-08 Bruno Haible <bruno@clisp.org>
c32isblank tests: Avoid test failure on NetBSD 10.0.
* tests/test-c32isblank.c (main): Disable test of '\f', that fails in
the fr_FR.UTF-8 locale.
2024-06-08 Bruno Haible <bruno@clisp.org>
usleep tests: Avoid failure due to known Cygwin 3.5.3 bug.
* modules/usleep-tests (Depends-on): Add test-xfail.
(Makefile.am): Don't test test-usleep on Cygwin.
2024-06-08 Collin Funk <collin.funk1@gmail.com>
test-framework-sh: Don't leave temporary directories on NetBSD.
Reported by Taylor R Campbell <riastradh@NetBSD.org> in
<https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=58319>
* tests/init.sh (mktempd_): Don't use mktemp with the -t option as it
leads to uncleaned temporary directories on NetBSD.
2024-06-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask tests: Avoid failure due to known NetBSD 10.0 bug.
* modules/pthread_sigmask-tests (Depends-on): Add test-xfail.
(Makefile.am): Don't test test-pthread_sigmask1 on NetBSD.
2024-06-07 Bruno Haible <bruno@clisp.org>
sigprocmask tests: Avoid failure due to known NetBSD 10.0 bug.
* modules/sigprocmask-tests (Depends-on): Add test-xfail.
(Makefile.am): Don't test test-sigprocmask on NetBSD.
2024-06-07 Bruno Haible <bruno@clisp.org>
Update HACKING.
* HACKING: Mention the new many-platforms continuous integration.
2024-06-07 Bruno Haible <bruno@clisp.org>
usleep: Document Cygwin bug.
* doc/pastposix-functions/usleep.texi: Mention Cygwin 3.5.3 bug.
2024-06-06 Paul Eggert <eggert@cs.ucla.edu>
tzname: document some limitations
Unfortunately tzname is a vestigial interface that doesn't work
<https://data.iana.org/time-zones/theory.html#vestigial>.
It's relatively useless in portable code and is planned to be removed
from POSIX <https://austingroupbugs.net/view.php?id=1816>.
Document this better here.
2024-06-06 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime: Support time zone names on MSVC.
* lib/strftime.c: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME.
(tzname): Remove declaration.
* modules/nstrftime (Depends-on): Add tzname.
* modules/c-nstrftime (Depends-on): Likewise.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't require
AC_STRUCT_TIMEZONE.
* m4/c-nstrftime.m4 (gl_C_GNU_STRFTIME): Likewise.
2024-06-06 Bruno Haible <bruno@clisp.org>
parse-datetime: Support time zone names on MSVC.
* lib/parse-datetime.y (parse_datetime_body): Use HAVE_TZNAME_ARRAY
instead of HAVE_TZNAME. Don't declare tzname.
* modules/parse-datetime (Depends-on): Add tzname.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don't invoke
AC_STRUCT_TIMEZONE.
2024-06-06 Bruno Haible <bruno@clisp.org>
time_rz: Support time zone names on MSVC.
* lib/time-internal.h: Use HAVE_TZNAME_ARRAY instead of HAVE_TZNAME.
* lib/time_rz.c (tzalloc, save_abbr, mktime_z): Likewise.
* modules/time_rz (Depends-on): Add tzname.
* m4/time_rz.m4 (gl_TIME_RZ): Don't require AC_STRUCT_TIMEZONE.
2024-06-06 Bruno Haible <bruno@clisp.org>
tzname: Add tests.
* tests/test-tzname.c: New file.
* modules/tzname-tests: New file.
tzname: New module.
* lib/time.in.h (tzname): New declaration.
* m4/tzname.m4: New file.
* m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS): Initialize GNULIB_TZNAME.
* modules/time-h (Makefile.am): Substitute GNULIB_TZNAME.
* modules/tzname: New file.
* doc/posix-functions/tzname.texi: Mention the new module.
2024-06-06 Bruno Haible <bruno@clisp.org>
tzname, daylight, timezone: Update documentation.
* doc/posix-functions/tzname.texi: Update info about native Windows.
* doc/posix-functions/daylight.texi: Update info about OpenBSD, Cygwin,
native Windows.
* doc/posix-functions/timezone.texi: Update info about FreeBSD, OpenBSD,
native Windows.
2024-06-06 Bruno Haible <bruno@clisp.org>
acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin.
* lib/acl-internal.c (acl_access_nontrivial): On Cygwin, ignore also
group:Users:* entries.
2024-06-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't perform unnecessary configure.ac scanning.
* pygnulib/GLImport.py (GLImport.execute): Use re.search() instead of
re.findall() since we only care about finding one match. Remove
unnecessary bool() calls.
2024-06-05 Bruno Haible <bruno@clisp.org>
setenv: On native Windows, don't modify _environ directly.
* m4/setenv.m4 (gl_PREREQ_SETENV): Check for _putenv.
* lib/setenv.c: On native Windows, include <windows.h> and define
SetEnvironmentVariable.
(setenv) [HAVE_DECL__PUTENV]: New implementation for platforms with
_putenv.
* modules/setenv (Depends-on): Add malloc-posix.
2024-06-05 Bruno Haible <bruno@clisp.org>
unsetenv: On native Windows, don't modify _environ directly.
* m4/setenv.m4 (gl_PREREQ_UNSETENV): Check for _putenv.
* lib/unsetenv.c (unsetenv): Add native Windows handling, from
lib/putenv.c.
* modules/unsetenv (Depends-on): Add free-posix, malloc-posix.
* m4/putenv.m4 (gl_FUNC_PUTENV): Use AC_CHECK_DECLS_ONCE.
* lib/putenv.c (_unsetenv): Moved to lib/unsetenv.c.
(putenv): Invoke unsetenv instead of _unsetenv.
* modules/putenv-gnu (Depends-on): Add unsetenv.
2024-06-05 Bruno Haible <bruno@clisp.org>
putenv: Don't crash upon out-of-memory.
* lib/putenv.c (_unsetenv): Handle malloc failure.
2024-06-05 Bruno Haible <bruno@clisp.org>
putenv: Improve comments.
* lib/putenv.c (_unsetenv, putenv): Improve comments regarding native
Windows.
2024-06-05 Bruno Haible <bruno@clisp.org>
setenv: Modernize.
* lib/setenv.c (__add_to_environ): Remove unnecessary casts.
2024-06-05 Bruno Haible <bruno@clisp.org>
nstrftime: Make %c work on native Windows again, part 2.
* lib/strftime.c (__strftime_internal): Fix typo in my previous commit.
2024-06-05 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: don’t assume <locale.h>
* lib/strftime.c: Include <locale.h> only if needed, since Emacs
attempts to be portable to platforms lacking <locale.h> so it
avoids localename-unsafe-limited and defines
REQUIRE_GNUISH_STRFTIME_AM_PM to false.
2024-06-05 Bruno Haible <bruno@clisp.org>
nstrftime: Make %c work on native Windows again.
* lib/strftime.c: Include <locale.h> always. Include <wchar.h> on native
Windows.
(__strftime_internal): On native Windows, inspect the locale name like
hard_locale would do.
* modules/nstrftime (Link): Remove section.
* tests/test-nstrftime.h (locales_test): Disallow alternative that is
not culturally acceptable for French.
2024-06-04 Paul Eggert <eggert@cs.ucla.edu>
endian: port better to Android NDK r26
* lib/endian.in.h (be16toh, be32toh, be64toh, htobe16, htobe32)
(htobe64, le16toh, le32toh, le64toh, htole16, htole32, htole64):
When @HAVE_ENDIAN_H@, define each NAME to rpl_NAME so that they
don’t interact incorrectly with system-defined implementations.
Problem reported by Po Lu for Android NDK r26 in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00040.html
and this patch is an updated version of Collin Funk’s patch in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00041.html
2024-06-04 Collin Funk <collin.funk1@gmail.com>
boot-time, readutmp: Fix missing MinGW include (regr. 2024-05-24).
Reported by Eli Zaretskii in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-06/msg00044.html>.
* lib/boot-time.c [_WIN32 && !__CYGWIN__]: Remove unnecessary
<sysinfoapi.h> include. Some systems do not have this header and
<windows.h> should have the correct declarations.
* lib/readutmp.c [_WIN32 && !__CYGWIN__]: Likewise.
2024-06-03 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: remove dependency on hard-locale
GNU Emacs would rather keep dependencies to a minimum,
and hard-locale brings in some other stuff.
* lib/strftime.c: Include locale.h only if (USE_C_LOCALE &&
HAVE_STRFTIME_L) || ((defined __NetBSD__ || defined __sun) &&
REQUIRE_GNUISH_STRFTIME_AM_PM). Do not include hard-locale.h.
(__strftime_internal): On native MS-Windows, use the C locale %c
format regardless of language. I hope that’s good enough.
If not, let’s try to think of a way of solving the problem
that doesn’t require using hard_locale.
* modules/nstrftime (Depends-on): Remove hard-locale.
* modules/nstrftime-tests (test_nstrftime_LDADD):
Remove $(HARD_LOCALE_LIB).
* tests/test-nstrftime.h (locales_test):
Add a test that I hope works on French MS-Windows.
2024-06-03 Paul Eggert <eggert@cs.ucla.edu>
ieee754-h: port to Android NDK r26
Problem reported by Po Lu in:
https://lists.gnu.org/r/bug-gnulib/2024-06/msg00015.html
* lib/ieee754.in.h (_IEEE754_BYTE_ORDER, _IEEE754_BIG_ENDIAN)
(_IEEE754_LITTLE_ENDIAN, _IEEE754_FLOAT_WORD_ORDER): New macros.
All uses of __BYTE_ORDER, __BIG_ENDIAN, __LITTLE_ENDIAN,
__FLOAT_WORD_ORDER changed to use these new macros.
[!_GL_GNULIB_HEADER]: Include bits/endian.h, not endian.h,
as that’s what glibc does now.
[_GL_GNULIB_HEADER]: Include endian.h instead of rolling our own.
(__BEGIN_DECLS, __END_DECLS): Remove. All uses replaced
by definiens.
* modules/ieee754-h (Depends-on): Add endian.
2024-06-03 Bruno Haible <bruno@clisp.org>
readlinkat: Work around a Cygwin 3.3.6 bug.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Set REPLACE_READLINKAT to 1 on
Cygwin.
* lib/readlinkat.c (rpl_readlinkat): On Cygwin, for /dev/* files, don't
return results that start with a backslash.
* doc/posix-functions/readlinkat.texi: Mention the Cygwin bug.
2024-06-03 Bruno Haible <bruno@clisp.org>
readlink: Work around a Cygwin 3.3.6 bug.
* m4/readlink.m4 (gl_FUNC_READLINK): Set REPLACE_READLINK to 1 on Cygwin.
* lib/readlink.c (rpl_readlink): On Cygwin, for /dev/* files, don't
return results that start with a backslash.
* tests/test-readlink.h (test_readlink): Add a test of /dev/null.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* doc/posix-functions/readlink.texi: Mention the Cygwin bug.
2024-06-03 Bruno Haible <bruno@clisp.org>
flock tests: Don't expect a failure on native Windows.
* modules/flock-tests (Depends-on): Add test-xfail.
(Makefile.am): Don't augment XFAIL_TESTS on native Windows.
2024-06-03 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime tests: Avoid some failures on native Windows.
* tests/test-nstrftime.h (TZ): Use time zone names that are supported by
native Windows.
(LT): Disable two more tests on native Windows.
2024-06-03 Paul Eggert <eggert@cs.ucla.edu>
attribute: improve comments
* lib/attribute.h: Update comments to better reflect what
GCC actually does with pure and const functions.
2024-06-03 Bruno Haible <bruno@clisp.org>
acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin.
* lib/acl-internal.c: Include <sys/types.h>, <grp.h>, <string.h>.
(acl_access_nontrivial): On Cygwin, ignore group:SYSTEM:*,
group:Administrators:*, mask::* entries.
* doc/acl-resources.txt: Add one more reference.
2024-06-03 Bruno Haible <bruno@clisp.org>
dprintf-posix tests: Skip the memory leak test on macOS.
* tests/test-dprintf-posix2.c: Skip the test on macOS.
(main): Return a different exit code at each point. Allow 100 KB extra
memory consumption.
* tests/test-dprintf-posix2.sh: Update.
2024-06-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use a set to optimize.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Call set() on the result of
_extract_lib_SOURCES() to ensure computing the difference between
another set is O(n).
2024-06-03 Bruno Haible <bruno@clisp.org>
pthread-* tests, regex tests: Prepare for use of 'alarm'.
* modules/pthread-cond-tests (configure.ac): Test whether 'alarm' is
declared.
* modules/pthread-mutex-tests (configure.ac): Likewise.
* modules/pthread-once-tests (configure.ac): Likewise.
* modules/pthread-rwlock-tests (configure.ac): Likewise.
* modules/pthread-tss-tests (configure.ac): Likewise.
* modules/regex-tests (configure.ac): Likewise.
2024-06-03 Bruno Haible <bruno@clisp.org>
mtx tests: Fix a possible link error.
* modules/mtx-tests (Files): Add m4/semaphore.m4.
(configure.ac): Require gl_SEMAPHORE.
(Makefile.am): Link test-mtx with @LIB_SEMAPHORE@.
2024-06-03 Bruno Haible <bruno@clisp.org>
pthread-mutex, pthread-rwlock: Fix a compilation error.
* modules/pthread-mutex-tests (Files): Add m4/semaphore.m4.
(configure.ac): Check for semaphore.h. Require gl_SEMAPHORE.
* modules/pthread-rwlock-tests (Files): Add m4/semaphore.m4.
(configure.ac): Check for semaphore.h. Require gl_SEMAPHORE.
2024-06-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Refactor duplicated regular expressions.
* pygnulib/GLModuleSystem.py (_LIB_SOURCES_PATTERN): New variable.
(_extract_lib_SOURCES): New function.
(GLModule.getAutomakeSnippet_Unconditional): Use the new function.
(GLModuleTable.add_dummy): Likewise. Add a second break statement to
stop unnecessary looping.
2024-06-02 Bruno Haible <bruno@clisp.org>
c-strtod, c-strtof, c-strtold: Fix link error on AIX.
* lib/c-strtod.c (newlocale): Undefine before use.
2024-06-02 Bruno Haible <bruno@clisp.org>
totalorder*: Avoid compilation error by IBM XL C compiler.
* tests/test-totalorder.h (main) [__IBMC__]: Skip the test.
* tests/test-totalordermag.h (main) [__IBMC__]: Likewise.
2024-06-02 Bruno Haible <bruno@clisp.org>
isnanf, isnand, isnanl: Fix link errors on AIX 7.1 with xlc.
* lib/isnanf-nolibm.h (HAVE_ISNANF_NOLIBM): New macro.
* lib/isnand-nolibm.h (HAVE_ISNAND_NOLIBM): New macro.
* lib/isnanl-nolibm.h (HAVE_ISNANL_NOLIBM): New macro.
* lib/math.h (isnanf): Don't define via isnan if HAVE_ISNANF_NOLIBM is
defined.
(isnand): Don't define via isnan if HAVE_ISNAND_NOLIBM is defined.
(isnanl): Don't define via isnan if HAVE_ISNANL_NOLIBM is defined.
2024-06-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix regular expression (regr. today).
* pygnulib/main.py (main) [import]: Match all characters until '#' or
end of line, whichever comes first.
gnulib-tool.py: Fix crash when no ACLOCAL_AMFLAGS is found.
* pygnulib/main.py (main) [import]: Use a regular expression to match
the ACLOCAL_AMFLAGS Makefile.am variable. Properly handle the case where
none is found.
2024-05-31 Bruno Haible <bruno@clisp.org>
windows-once: Improve comments.
* lib/windows-once.c (glwthread_once): Mention the 'started' field in
the comments.
windows-once: Fix race (regression yesterday).
* lib/windows-once.h (glwthread_once_t): Change type of inited to LONG.
* lib/windows-once.c (glwthread_once): Increment inited from 1 to 2, to
ensure that DeleteCriticalSection gets invoked only once.
windows-once: Simplify.
* lib/windows-once.c (glwthread_once): Use InterlockedCompareExchange
instead of InterlockedIncrement.
2024-05-31 Bruno Haible <bruno@clisp.org>
pthread-once: Fix race in Cygwin workaround implementation.
* lib/pthread-once.c (pthread_once): Test the 'done' word after
incrementing num_threads. Make sure to invoke pthread_mutex_destroy
only once.
pthread-once: Simplify Cygwin workaround implementation.
* lib/pthread-once.c (pthread_once): Use separate 16-bit words to store
the parts of the state.
pthread-once: Simplify Cygwin workaround implementation.
* lib/pthread-once.c (pthread_once): Use _Atomic instead of __sync_*
gcc primitives.
2024-05-30 Bruno Haible <bruno@clisp.org>
assert-h, verify: Fix compilation error with g++ (4.8.5) -std=gnu++11.
Reported by Harmen <harmen@stoppels.ch> at
<https://savannah.gnu.org/bugs/index.php?65811>.
* lib/verify.h (static_assert): In C++ mode with g++ < 6 and
-std=gnu++11, define in a way that supports also the 1-argument
invocations and the invocations inside C++ struct and class.
2024-05-30 Collin Funk <collin.funk1@gmail.com>
endian: Unquote variables that are always defined.
* m4/endian.m4 (gl_ENDIAN_H): Unquote $ac_cv_header_endian_h and
$GL_GENERATE_ENDIAN_H.
2024-05-30 Bruno Haible <bruno@clisp.org>
attribute: Try harder to avoid syntax errors.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define
_GL_ATTRIBUTE_REPRODUCIBLE and _GL_ATTRIBUTE_UNSEQUENCED to empty if
_GL_BRACKET_BEFORE_ATTRIBUTE is defined.
2024-05-30 Bruno Haible <bruno@clisp.org>
attribute: Improve comments.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Mention each macro name at the
beginning of its commentary.
2024-05-30 Collin Funk <collin.funk1@gmail.com>
endian: Quote variables that may be undefined (regr. 2024-05-18).
* m4/endian_h.m4 (gl_ENDIAN_H): Quote variables that are undefined on
some systems or may be defined by the user.
2024-05-30 Bruno Haible <bruno@clisp.org>
call_once: Work around Cygwin 3.5.3 bug.
* m4/call_once.m4 (gl_FUNC_CALL_ONCE): Require AC_CANONICAL_HOST.
On Cygwin, set REPLACE_CALL_ONCE to 1.
* lib/call_once.c (call_once): On Cygwin, use a cast, to avoid a
compiler warning.
* modules/call_once (Depends-on): Add pthread-once.
* doc/posix-functions/call_once.texi: Mention the Cygwin bug.
2024-05-30 Bruno Haible <bruno@clisp.org>
windows-once: Free allocated resources when done.
Based on an observation regarding Cygwin's pthread_once implementation
by Takashi Yano <takashi.yano@nifty.ne.jp> at
<https://cygwin.com/pipermail/cygwin/2024-January/255182.html> and
<https://cygwin.com/pipermail/cygwin-patches/2024q1/012600.html>
* lib/windows-once.h (glwthread_once_t): Add field 'num_threads'.
(GLWTHREAD_ONCE_INIT): Initialize it to zero.
* lib/windows-once.c (glwthread_once): Increment num_threads while the
thread uses the lock. Let the last thread that uses the lock destroy it.
2024-05-29 Bruno Haible <bruno@clisp.org>
call_once tests: Fix link error on mingw.
* modules/call_once-tests (Depends-on): Add mtx.
2024-05-29 Bruno Haible <bruno@clisp.org>
mbfile tests: Avoid test failure on mingw.
* tests/test-mbfile.c: Include <string.h>, localcharset.h.
(main): Verify that setlocale() has installed an UTF-8 locale.
* modules/mbfile-tests (Depends-on): Add localcharset.
2024-05-29 Bruno Haible <bruno@clisp.org>
pthread-once tests: Fix crash on mingw.
* modules/pthread-once-tests (Depends-on): Add pthread-rwlock.
2024-05-29 Bruno Haible <bruno@clisp.org>
lock: Work around Cygwin 3.5.3 bug.
* modules/lock (Depends-on): Add pthread-once.
2024-05-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't emit non-ASCII shell output (regr. yesterday).
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00441.html>.
* pygnulib/GLModuleSystem.py (GLModule.shell_id_chars): Use the re.ASCII
flag for the regular expression.
2024-05-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add missing docstring.
* pygnulib/GLModuleSystem.py (GLModule.getShellId): Add docstring
forgotten in the previous commit.
gnulib-tool.py: Simplify creation of module shell ids.
* pygnulib/GLModuleSystem.py (GLModule.shell_id_chars): Remove class
variable.
(GLModule.shell_id_pattern): New class variable.
(GLModule.getShellId): New function.
(GLModule.getShellFunc, GLModule.getShellVar)
(GLModule.getConditionalName): Use it.
2024-05-28 Bruno Haible <bruno@clisp.org>
pthread-once: Work around Cygwin 3.5.3 bug.
* m4/pthread-once.m4 (gl_PTHREAD_ONCE): On Cygwin, set
REPLACE_PTHREAD_ONCE to 1.
* lib/pthread-once.c (pthread_once): Add an implementation for Cygwin.
* doc/posix-functions/pthread_once.texi: Mention the Cygwin bug.
2024-05-28 Paul Eggert <eggert@cs.ucla.edu>
attribute: const/pure defaults to unsequenced/reproducible
Also, update the commentary to reflect the fact that unsequenced
and reproducible functions can inspect and update storage
addressed by their arguments, and clarify the business about
returning once, and about REPRODUCIBLE and UNSEQUENCED applying to
pointers to functions and to function types. It’s not clear that
we should encourage the use of REPRODUCIBLE and UNSEQUENCED yet,
as the support is not there and the likely benefits are small.
* m4/gnulib-common.m4 (_GL_ATTRIBUTE_CONST): Default to
_GL_ATTRIBUTE_UNSEQUENCED if the const attribute is lacking,
as every const function is also unsequenced.
(_GL_ATTRIBUTE_PURE): Similarly, default to _GL_ATTRIBUTE_REPRODUCIBLE
as every pure function is reproducible.
2024-05-27 Collin Funk <collin.funk1@gmail.com>
maint.mk: Update system header list for #include syntax checks.
* top/maint.mk (gl_prefer_angle_bracket_headers_): Add byteswap.h,
endian.h, and stdbit.h.
doc: Mention byteswap.h as a system header.
* doc/gnulib-tool.texi (Style of #include statements): Add byteswap.h.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime tests: Avoid test failures on native Windows.
* doc/posix-functions/tzset.texi: Add a reference.
* tests/test-nstrftime.h (TZ): Use time zone names that are supported by
native Windows.
(LT): Disable a test of New Zealand DST.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime tests: Avoid some failures on native Windows.
* tests/test-nstrftime.h (tzalloc_test): On native Windows, ignore
differences in the way the time zone is printed.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime: Make %r work on native Windows.
* doc/posix-functions/strftime.texi: Mention the %r problem.
* lib/strftime.c (__strftime_internal): On native Windows, for %r, use
the English AM/PM format.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime: Make %h work on native Windows.
* doc/posix-functions/strftime.texi: Mention the %h problem.
* lib/strftime.c (__strftime_internal): On native Windows, for %h, do a
%b directive.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime: Make %c work on native Windows.
* doc/posix-functions/strftime.texi: Mention the %c problem.
* lib/strftime.c: Include <locale.h> always. Include hard-locale.h.
(__strftime_internal): For %c, use a subformat that contains the weekday
name (or abbrev.) and the month name (or abbrev.).
* modules/nstrftime (Depends-on): Add hard-locale.
(Link): New section.
* modules/nstrftime-tests (Makefile.am): Link test-nstrftime with
$(HARD_LOCALE_LIB).
2024-05-27 Bruno Haible <bruno@clisp.org>
tests: Fix internationalization problems on native Windows.
* doc/posix-functions/setlocale.texi: Clarify the deficiency of
setlocale() on native Windows.
* modules/c-nstrftime-tests (Depends-on): Add setlocale.
* modules/dfa-tests (Depends-on): Likewise.
* modules/hard-locale-tests (Depends-on): Likewise.
* modules/localcharset-tests (Depends-on): Likewise.
* modules/nstrftime-tests (Depends-on): Likewise.
2024-05-27 Bruno Haible <bruno@clisp.org>
nstrftime, c-nstrftime tests: Improve debuggability.
* tests/test-nstrftime.h (posixtm_test, tzalloc_test, quarter_test,
errno_test, locales_test): Flush output after every printf invocation.
2024-05-27 Bruno Haible <bruno@clisp.org>
parse-datetime tests: Avoid failure on native Windows.
* tests/test-parse-datetime.c (SOME_TIMEPOINT): New macro.
(main): Use it. On native Windows, use Windows time zone names.
Invoke tzset() after setting TZ.
* doc/posix-functions/gmtime.texi: Mention the native Windows problem.
* doc/posix-functions/localtime.texi: Likewise.
2024-05-27 Bruno Haible <bruno@clisp.org>
tests: Don't test on the broken NetBSD 10.0 zh_CN.GB18030 locale.
* tests/test-mbrtowc.c (main): Add tests for one-by-one input in the
UTF-8 and GB18030 encodings.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Add a sanity check with mbrtowc.
2024-05-27 Bruno Haible <bruno@clisp.org>
attribute: Support ISO C 23 [[reproducible]] and [[unsequenced]].
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTR_reproducible,
_GL_ATTR_unsequenced, _GL_ATTRIBUTE_REPRODUCIBLE,
_GL_ATTRIBUTE_UNSEQUENCED.
* lib/attribute.h (UNSEQUENCED, REPRODUCIBLE): New macros.
2024-05-25 Bruno Haible <bruno@clisp.org>
euidaccess: Fix test failure on native Windows.
* lib/euidaccess.c: Don't include <io.h>.
(euidaccess): On native Windows, invoke access, not _access.
2024-05-25 Bruno Haible <bruno@clisp.org>
mcel tests: Avoid test failures due to broken GB18030 converter.
* tests/test-mcel.c (main): Skip most GB18030 tests on platforms where
the GB18030 converter is known to be broken.
2024-05-25 Bruno Haible <bruno@clisp.org>
mcel tests: Fix typo.
* tests/test-mcel.c (main): Increment j instead of i.
2024-05-25 Bruno Haible <bruno@clisp.org>
uchar-c23: Speed up mbrtoc32 on Solaris 11.4.
* lib/lc-charset-unicode.c (get_converters): Cache the return value.
2024-05-25 Bruno Haible <bruno@clisp.org>
tests: Refactor.
* tests/test-inttostr.c (main): Report SKIP in the 'if' branch.
* tests/test-quotearg.c (main): Likewise.
2024-05-25 Bruno Haible <bruno@clisp.org>
tests: Before declaring a SKIP, test if there were ASSERT failures.
* HACKING: Document idiom to use with test_exit_status.
* tests/test-c32isalnum.c (main): If there were ASSERT failures, report
them instead of declaring SKIP.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isblank.c (main): Likewise.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isdigit.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32isspace.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-c32isxdigit.c (main): Likewise.
* tests/test-c32rtomb.c (main): Likewise.
* tests/test-c32rtomb-w32.c (main): Likewise.
* tests/test-c32snrtombs.c (main): Likewise.
* tests/test-c32srtombs.c (main): Likewise.
* tests/test-c32stombs.c (main): Likewise.
* tests/test-c32tolower.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-duplocale.c (main): Likewise.
* tests/test-fbufmode.c (main): Likewise.
* tests/test-fenv-except-state-3.c (main): Likewise.
* tests/test-fenv-except-trapping-1.c (main): Likewise.
* tests/test-fenv-except-trapping-2.c (main): Likewise.
* tests/test-fnmatch.c (main): Likewise.
* tests/test-fnmatch-w32.c (main): Likewise.
* tests/test-fpurge.c (main): Likewise.
* tests/test-freadable.c (main): Likewise.
* tests/test-fseek.c (main): Likewise.
* tests/test-fseeko.c (main): Likewise.
* tests/test-ftell.c (main): Likewise.
* tests/test-ftell3.c (main): Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-ftello3.c (main): Likewise.
* tests/test-fwritable.c (main): Likewise.
* tests/test-fwriting.c (main): Likewise.
* tests/test-getrandom.c (main): Likewise.
* tests/test-mbrlen-w32.c (main): Likewise.
* tests/test-mbrtoc16.c (main): Likewise.
* tests/test-mbrtoc16-w32.c (main): Likewise.
* tests/test-mbrtoc32.c (main): Likewise.
* tests/test-mbrtoc32-w32.c (main): Likewise.
* tests/test-mbrtowc-w32.c (main): Likewise.
* tests/test-mbsnrtoc32s.c (main): Likewise.
* tests/test-mbsrtoc32s.c (main): Likewise.
* tests/test-mbstoc32s.c (main): Likewise.
* tests/test-nl_langinfo2.c (main): Likewise.
* tests/test-nstrftime.c (main): Likewise.
* tests/test-passfd.c (main): Likewise.
* tests/test-posix_spawn-script.c (main): Likewise.
* tests/test-posix_spawnp-script.c (main): Likewise.
* tests/test-ptsname.c (main): Likewise.
* tests/test-ptsname_r.c (main): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-strfmon_l.c (main): Likewise.
* tests/test-utime.c (main): Likewise.
* tests/test-wcrtomb-w32.c (main): Likewise.
* tests/test-execute-script.c (main): Obey CONTINUE_AFTER_ASSERT better.
* tests/test-spawn-pipe-script.c (main): Likewise.
* tests/test-linkat.c (main): Use the common idiom.
2024-05-25 Collin Funk <collin.funk1@gmail.com>
byteswap tests: Verify header can be used from C++.
* modules/byteswap-c++-tests: New file.
* tests/test-byteswap-c++.cc: New file.
* modules/byteswap-tests (Depends-on): Add byteswap-c++-tests.
2024-05-24 Collin Funk <collin.funk1@gmail.com>
readutmp: Fix dependencies.
* modules/readutmp (Depends-on): Add gettimeofday.
boot-time, readutmp: Add a Native Windows boot time fallback.
* lib/boot-time-aux.h (initialize, get_windows_boot_time_fallback): New
functions.
* lib/boot-time.c [_WIN32 && !__CYGWIN__]: Include Windows headers and
<sys/time.h>.
(get_boot_time_uncached): Use the fallback.
* lib/readutmp.c [_WIN32 && !__CYGWIN__]: Include Windows headers and
<sys/time.h>.
(read_utmp_from_file): Use the fallback.
* modules/boot-time (Depends-on): Add gettimeofday.
2024-05-24 Bruno Haible <bruno@clisp.org>
putenv tests: Put the putenv() argument strings into writable memory.
* tests/test-putenv.c (main): Declare static variables of type 'char[]',
not 'char *'.
2024-05-24 Bruno Haible <bruno@clisp.org>
mbrtoc32 tests: Avoid failure on Solaris 11.4 (regression yesterday).
* tests/test-mbrtoc32.c (main): Conditionalize an assertion with
GL_CHAR32_T_IS_UNICODE.
2024-05-23 Collin Funk <collin.funk1@gmail.com>
putenv tests: Silence -Wanalyzer-putenv-of-auto-var.
* tests/test-putenv.c (main): Declare static variables to pass to
putenv.
2024-05-23 Paul Eggert <eggert@cs.ucla.edu>
POSIX.1-2024 has been approved
It hasn’t been published yet, so just fix documentation talking
about “draft” POSIX, about particular POSIX versions, etc.
More work will need to be done once it’s published on the web,
to update URLs, and better document new and changed interfaces.
2024-05-23 Bruno Haible <bruno@clisp.org>
mbrtoc32: Strengthen tests.
* tests/test-mbrtoc32.c (main): Add tests for one-by-one input in the
UTF-8 and GB18030 encodings.
mbrtoc32: Work around bug in Cygwin 3.5.3.
* m4/mbrtoc32.m4 (gl_MBRTOC32_UTF8_LOCALE): New macro.
(gl_FUNC_MBRTOC32): Invoke it. If mbrtoc32 has this bug, define
MBRTOC32_MULTIBYTE_LOCALE_BUG and reset LOCALE_ZH_CN to 'none'.
* lib/mbrtoc32.c (mbrtoc32): Test MBRTOC32_MULTIBYTE_LOCALE_BUG.
* doc/posix-functions/mbrtoc32.texi: Mention the Cygwin bug.
2024-05-23 Bruno Haible <bruno@clisp.org>
sethostname tests: Avoid test failure on Cygwin.
* tests/test-sethostname2.c (main): On Cygwin, skip the "too long
hostname" test.
* doc/glibc-functions/sethostname.texi: Mention the Cygwin problem.
2024-05-23 Bruno Haible <bruno@clisp.org>
access, euidaccess tests: Avoid test failures on Cygwin.
* tests/test-access.h (test_access): On Cygwin, don't test for the
absence of the W_OK permission.
2024-05-23 Bruno Haible <bruno@clisp.org>
c32is*, c32toupper tests: Avoid test failures on Cygwin.
* tests/test-c32isalpha.c (main): Disable tests that fail on
Cygwin 3.5.3.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
2024-05-23 Bruno Haible <bruno@clisp.org>
poll tests: Avoid test failure on Cygwin.
* tests/test-poll.c (test_pipe): Disable the POLLHUP check also on
Cygwin.
* doc/posix-functions/poll.texi: Mention also Cygwin w.r.t. POLLHUP.
2024-05-23 Bruno Haible <bruno@clisp.org>
passfd tests: Mark as expected failure on Cygwin.
* tests/test-passfd.c (main): Always fail on Cygwin.
* modules/passfd-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-passfd fails on Cygwin.
2024-05-23 Bruno Haible <bruno@clisp.org>
renameatu: Work around Cygwin 3.4.6 bug.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Test whether renameat2 works, and
define HAVE_WORKING_RENAMEAT2 if so.
* lib/renameatu.c (renameatu): Test HAVE_WORKING_RENAMEAT2 instead of
HAVE_RENAMEAT2.
* doc/glibc-functions/renameat2.texi: Mention the Cygwin bug.
2024-05-23 Bruno Haible <bruno@clisp.org>
readlinkat, areadlinkat: Avoid test failures on Cygwin 3.4.6.
* tests/test-readlink.h (test_readlink): For an empty file name, allow
errno == EBADF.
* tests/test-areadlink.h (test_areadlink): Likewise.
2024-05-23 Bruno Haible <bruno@clisp.org>
doc: Small updates regarding Cygwin.
* doc/glibc-functions/fallocate.texi: Update for Cygwin 3.5.x.
* doc/posix-functions/c8rtomb.texi: Likewise.
* doc/posix-functions/c16rtomb.texi: Likewise.
* doc/posix-functions/c32rtomb.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/mbrtoc8.texi: Likewise.
* doc/posix-functions/mbrtoc16.texi: Likewise.
* doc/posix-functions/mbrtoc32.texi: Likewise.
* doc/posix-functions/posix_spawnp.texi: Likewise.
2024-05-22 Bruno Haible <bruno@clisp.org>
iconv: Reject the broken macOS 14.4 iconv implementation.
Reported by Daniel Collins <solemnwarning@solemnwarning.net> at
<https://savannah.gnu.org/bugs/?65686>.
* m4/iconv.m4 (AM_ICONV_LINK): In the test "for working iconv", test
against the macOS 14.4 iconv bug.
* doc/posix-functions/iconv.texi: Document the bug.
2024-05-22 Bruno Haible <bruno@clisp.org>
stdlib: Handle glibc special invocation conventions correctly.
* lib/stdlib.in.h: Undefine __need_malloc_and_calloc after doing the
#include_next <stdlib.h>.
2024-05-21 Paul Eggert <eggert@cs.ucla.edu>
c-strtod: include <stdio.h>
* lib/c-strtod.c: Include <stdio.h>, since we call sprintf.
Problem found by Oracle Developer Studio 12.6 on Solaris 10.
2024-05-21 Collin Funk <collin.funk1@gmail.com>
getusershell: Split file by lines instead of spaces.
* lib/getusershell.c: Include string.h and filename.h
(GNULIB_GETUSERSHELL_SINGLE_THREAD): Remove conditional to include
unlocked stdio functions that are no longer used.
(readname): Remove function.
(getusershell): Use getline and process the string instead of using
readname. Return the first absolute file name.
* modules/getusershell (Depends-on): Remove unlocked-io-internal.
Add getline and filename.
* doc/multithread.texi (Multithreading Optimizations): Don't mention
GNULIB_GETUSERSHELL_SINGLE_THREAD.
2024-05-21 Paul Eggert <eggert@cs.ucla.edu>
boot-time: port to Alpine 3.20.0_rc2
* lib/boot-time-aux.h (get_openbsd_boot_time):
Port to Alpine Linux, which had bogus timestamps on /var/run/utmp.
2024-05-21 Bruno Haible <bruno@clisp.org>
trim tests: Avoid test failure on Solaris 11 OmniOS.
* tests/test-trim.c (main): Skip the failing test on Illumos.
2024-05-21 Bruno Haible <bruno@clisp.org>
mcel tests: Run the test in several locales.
* tests/test-mcel-1.sh: New file, based on tests/test-mbrtowc-1.sh.
* tests/test-mcel-2.sh: New file, based on tests/test-mbrtowc-2.sh.
* tests/test-mcel-3.sh: New file, based on tests/test-mbrtowc-3.sh.
* tests/test-mcel-4.sh: New file, based on tests/test-mbrtowc-4.sh.
* tests/test-mcel-5.sh: New file, based on tests/test-mbrtowc-5.sh.
* modules/mcel-tests (Files): Add them. Add tests/macros.h,
m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/codeset.m4.
(Depends-on): Remove assert-h.
(configure.ac, Makefile.am): Essentially copy from
modules/mbrtowc-tests.
2024-05-21 Bruno Haible <bruno@clisp.org>
flock tests: Mark as expected failure on Solaris 11.
* modules/flock-tests (Makefile.am): Expect that test-flock fails with
the Gnulib fallback.
2024-05-21 Bruno Haible <bruno@clisp.org>
Fix "'gl_CHECK_HEADER_SYS_CDEFS_H' was expanded before it was required".
* m4/sys_cdefs_h.m4 (gl_CHECK_HEADER_SYS_CDEFS_H): Define through
AC_DEFUN_ONCE.
2024-05-21 Bruno Haible <bruno@clisp.org>
access, euidaccess tests: Avoid test failure for root user on Solaris.
* tests/test-access.h (test_access): On Solaris, for the root user,
don't expect X_OK permissions to be absent.
* doc/posix-functions/access.texi: Mention the Solaris problem.
* doc/glibc-functions/euidaccess.texi: Likewise.
2024-05-21 Collin Funk <collin.funk1@gmail.com>
fnmatch tests: Avoid test failure on OmniOS.
Using the GB18030 locale OmniOS doesn't match U+00D7 MULTIPLICATION SIGN
as a punctuation character.
* tests/test-fnmatch.c (main): Skip the test. Discovered by CI test
using OmniOS r151048 and reproduced on OmniOS r151050.
2024-05-20 Bruno Haible <bruno@clisp.org>
vasnprintf: Don't abort for pseudo-denormal arguments on macOS 12.
Reported by Gaëtan Herfray <g.herfray@gahfy.io> via Erik Blake in
<https://lists.gnu.org/archive/html/bug-m4/2022-03/msg00002.html>
<https://lists.gnu.org/archive/html/bug-gnulib/2022-03/msg00066.html>.
* lib/vasnprintf.c (safe_frexpl): New function.
(decode_long_double, floorlog10l): Invoke it instead of frexpl.
2024-05-20 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix: port better to Alpine 3.20.0_rc1
Alpine’s <sys/cdefs.h> is a stub that issues a deprecation #warning.
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER):
* m4/sched_h.m4 (gl_SCHED_H): Use the new macro
gl_CHECK_HEADER_SYS_CDEFS_H instead of checking independently.
* m4/sys_cdefs_h.m4: New file.
* modules/getopt-posix, modules/sched (Files): Add m4/sys_cdefs_h.m4.
2024-05-20 Collin Funk <collin.funk1@gmail.com>
tests: Update expected tests results on NetBSD.
These tests were fixed by the previous commit.
* modules/fdutimensat-tests (Depends-on): Remove test-xfail.
(Makefile.am): Expect that test-fdutimensat succeeds on NetBSD.
* modules/futimens-tests (Depends-on): Remove test-xfail.
(Makefile.am): Expect that test-futimens succeeds on NetBSD.
* modules/utimens-tests (Depends-on): Remove test-xfail.
(Makefile.am): Expect that test-utimens succeeds on NetBSD.
* modules/utimensat-tests (Depends-on): Remove test-xfail.
(Makefile.am): Expect that test-utimensat succeeds on NetBSD.
utimensat, utimens: Work around NetBSD 10.0 bugs.
* lib/utimens.c (fdutimens): Work around a NetBSD 10.0 UTIME_OMIT bug in
the same way as Linux kernel 2.6.32 and Solaris 11.1.
(lutimens): Likewise.
* lib/utimensat.c (rpl_utimensat): Likewise. Workaround a NetBSD 10.0
bug where invalid tv_nsec values are not rejected in the same way as
Linux kernel 2.6.22.19 on hppa.
* doc/posix-functions/utimensat.texi: Document the invalid tv_nsec bug.
2024-05-20 Paul Eggert <eggert@cs.ucla.edu>
byteswap: fix problem on macOS
* m4/byteswap.m4 (gl_BYTESWAP): Quote a variable that might not
be defined (or the user may have defined it to something with spaces!).
Problem reported by Mattias Engdegård for Emacs on macOS.
linkat-tests: fix up assertion-failure changes
* tests/test-linkat.c (main): Don’t lose the failure results of
earlier tests. Problem found by Coverity.
dfa: attempt to pacify Coverity
* lib/dfa.c (lex): Use ‘assume’ rather than ‘abort’,
to try to pacify Coverity.
(maybe_disable_superset_dfa): Use ‘assume’ here too, for consistency.
Using ‘assume’ should make the code a tiny bit faster, though
at the cost of having undefined behavior instead of nicely aborting.
2024-05-20 Bruno Haible <bruno@clisp.org>
Make it easy to generate debug info for libbacktrace on macOS.
* build-aux/macos-compile: New file.
2024-05-20 Bruno Haible <bruno@clisp.org>
stdint: Verify the width of 'long long' before using it as int64_t.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00315.html>.
* lib/stdint.in.h (gl_int64_t): Verify that the number of bits of
'long long' is 64 before using it.
(gl_uint64_t): Verify that the number of bits of 'unsigned long long'
is 64 before using it.
2024-05-19 Collin Funk <collin.funk1@gmail.com>
getusershell: Work around musl bugs.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00261.html>.
* doc/glibc-functions/getusershell.texi: Mention the musl bug.
* lib/unistd.in.h (getusershell, setusershell, endusershell): Allow the
functions to be declared with the rpl_ prefix.
* m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Prepare functions to be
replaced on musl systems.
(gl_PREREQ_GETUSERSHELL): New macro.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
REPLACE_GETUSERSHELL.
* modules/getusershell (Depends-on): Update module conditions to account
for the function being available but replaced by Gnulib.
(configure.ac): Likewise. Invoke gl_PREREQ_GETUSERSHELL.
2024-05-18 Bruno Haible <bruno@clisp.org>
abort-debug: Prefer libbacktrace to execinfo.
* lib/abort-debug.c: Include <backtrace.h>.
(state): New variable.
(print_stack_trace): Add another implementation.
(_gl_pre_abort, rpl_abort): Also test HAVE_LIBBACKTRACE.
* m4/abort-debug.m4 (gl_ABORT_DEBUG_EARLY): Check for libbacktrace.
Set LIBS, not LDFLAGS.
2024-05-18 Bruno Haible <bruno@clisp.org>
mkfifoat: Work around a macOS 14 bug.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Also test the case of a dangling
symlink.
* doc/posix-functions/mkfifoat.texi: Mention the macOS bug.
2024-05-18 Paul Eggert <eggert@cs.ucla.edu>
sha512-buffer: port back to 32-bit-only hosts
Port to platforms lacking 64-bit integers (something that Emacs
still attempts to do, in theory) by adding an u64bswap primitive
to u64.h and using that, instead of using bswap_64. This fixes a
bug I made in commit 0d45ec7c033c165ad73a6509c7fa84aa67edf4ea
dated Sun Jun 17 14:35:37 2018 -0700.
* lib/sha512.c (SWAP): Use u64bswap, not bswap_64, to port
to older platforms lacking 64-bit integers.
* lib/u64.h: Include stddef.h, for size_t.
Include byteswap.h, for bswap_64 (on platforms with 64-bit int),
bswap_32.
(u64rol): Now a function, not a macro, so that it evaluates
its args only once.
(u64uint32): New typedef.
(u64, u64hilo, u64lo): Use it.
(_GL_U64_MASK32): New macro.
(u64size, u64plus, u64shl, u64shr, u64plus): Use it as needed for
odd platforms where unsigned int is wider than 32 bits.
(u64lt): Return bool, not int.
* modules/u64 (Depends-on): Add byteswap, stdbool.
* tests/test-u64.c (main): Test u64bswap.
2024-05-18 Collin Funk <collin.funk1@gmail.com>
dup3: Update documentation and expected test results.
* doc/glibc-functions/dup3.texi: Mention NetBSD bug fixed by the Gnulib
implementation after the previous commit.
* modules/dup3-tests (Depends-on): Remove test-xfail.
(Makefile.am): Don't expect test-dup3 to fail on NetBSD.
dup3: Fix behavior for equal file descriptors on NetBSD.
* lib/dup3.c (dup3) [__NetBSD__]: Check for equal file descriptors upon
a successful call to dup3. If they are equal fail with errno == EINVAL.
2024-05-18 Collin Funk <collin.funk1@gmail.com>
endian: Make sure system headers can be included.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00290.html>.
* lib/endian.in.h (be16toh, be32toh, be64toh, htobe16, htobe32, htobe64)
(le16toh, le32toh, le64toh, htole16, htole32, htole64): Don't define
functions if the system has working versions.
* m4/endian_h.m4 (gl_ENDIAN_H): Separate checks for stdint types and
proper macro/function definitions.
* modules/endian (Depends-on): Add include_next. Update module
dependency conditions.
(Makefile.am): Perform sed replacements on the header substitute.
2024-05-18 Bruno Haible <bruno@clisp.org>
abort-debug: Integrate with CONTINUE_AFTER_ASSERT.
* lib/stdlib.in.h (_gl_pre_abort): New declaration.
* lib/abort-debug.c (_gl_pre_abort): New function.
* tests/macros.h (ASSERT, ASSERT_NO_STDIO): If CONTINUE_AFTER_ASSERT
is 1 and the assertion fails, invoke _gl_pre_abort.
2024-05-18 Bruno Haible <bruno@clisp.org>
tests: Support showing all assertion failures, not just the first one.
* tests/macros.h (CONTINUE_AFTER_ASSERT): New macro.
(test_exit_status): New variable.
(ASSERT, ASSERT_NO_STDIO): If CONTINUE_AFTER_ASSERT is 1, set
test_exit_status instead of aborting.
* tests/**/test-*.{c,h,cc} (main): Instead of exiting with exit code 0,
exit with exit code test_exit_status.
* tests/test-spawn-pipe-child.c: Undefine CONTINUE_AFTER_ASSERT.
* tests/uninorm/test-nf*.c: Include macros.h.
* tests/uninorm/test-u32-nf*-big.c: Likewise.
* tests/random*.c: Define NO_MAIN_HERE.
2024-05-18 Paul Eggert <eggert@cs.ucla.edu>
byteswap: pacify GCC 4.4.7 and older
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-05/msg00277.html
* lib/byteswap.in.h (bswap_16, bswap_32, bswap_64):
Compute the mask rather than using long constants like
0xff00000000000000 that may generate bogus warnings.
2024-05-18 Bruno Haible <bruno@clisp.org>
endian tests: Verify that it can be used from C++.
* tests/test-endian-c++.cc: New file.
* modules/endian-c++-tests: New file.
* modules/endian-tests (Depends-on): Add endian-c++-tests.
2024-05-18 Bruno Haible <bruno@clisp.org>
endian: Update doc and strengthen tests.
* doc/glibc-headers/endian.texi: Reference LSB and future POSIX
specifications. Update platforms list.
* tests/test-endian.c: Verify that BYTE_ORDER, LITTLE_ENDIAN, BIG_ENDIAN
can be used in #if.
2024-05-18 Collin Funk <collin.funk1@gmail.com>
endian: Add tests.
* tests/test-endian.c: New file.
* modules/endian-tests: New file.
endian: New module.
* doc/glibc-headers/endian.texi, doc/gnulib-tool.texi: Mention it.
* lib/endian.c: New file.
* lib/endian.in.h: New file.
* m4/endian_h.m4: New file.
* modules/endian: New file.
2024-05-17 Bruno Haible <bruno@clisp.org>
tests: Fix link errors (regression today).
* tests/test-execute-child.c (abort): Undefine.
* tests/test-spawn-pipe-child.c (abort): Likewise.
2024-05-17 Collin Funk <collin.funk1@gmail.com>
getusershell tests: Fail if empty lines are returned.
* tests/test-getusershell.c (first_pass): Check the result of malloc.
Make sure '\0' isn't returned from getusershell when there is an empty
line in /etc/shells.
2024-05-17 Bruno Haible <bruno@clisp.org>
unistd: Fix compilation error with MSVC in C++ mode.
* lib/unistd.in.h (read, write): Use _GL_CXXALIAS_MDA_CAST instead of
_GL_CXXALIAS_MDA.
2024-05-17 Bruno Haible <bruno@clisp.org>
stdbit-h: Fix compilation error with MSVC in C++ mode.
* lib/stdbit.in.h (_BitScanReverse, _BitScanReverse64, _BitScanForward,
_BitScanForward64, __cpuid, __popcnt, __popcnt64): Declare with a
prototype.
* lib/count-leading-zeros.h (_BitScanReverse, _BitScanReverse64):
Likewise.
* lib/count-trailing-zeros.h (_BitScanForward, _BitScanForward64):
Likewise.
* lib/count-one-bits.h (__cpuid, __popcnt, __popcnt64): Likewise.
2024-05-17 Paul Eggert <eggert@cs.ucla.edu>
byteswap: port better to limited platforms
POSIX does not require uint64_t, and the C standard
does not require uint16_t or uint32_t either, so port
to platforms that lack these types. The POSIX limitation
is the only significant one in practice. I ran into this
issue when updating Emacs, which still ports to platforms
lacking 64-bit types.
* lib/byteswap.in.h (bswap_16, bswap_32, bswap_64):
Accept and return uint_leastN_t instead of uintN_t,
for portability to non-POSIX hosts that lack uintN_t.
Almost no platforms these days lack the types, but
it’s easy to port so let’s do that. Also, redo to avoid
unnecssary parentheses, as these are now functions not macros.
(bswap_64): Define only if UINT_LEAST64_MAX, for benefit
of not-quite-C99 platforms. This is similar to what
bitrotate.h does.
* tests/test-byteswap.c (test_bswap_constant)
(test_bswap_eval_once, test_bswap_double) [!UINT_LEAST64_MAX]:
Do not test 64-bit swaps.
2024-05-17 Bruno Haible <bruno@clisp.org>
stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC.
* lib/stdbit.in.h (__gl_stdbit_clzll) [_MSC_VER]: On x86_64, use
_BitScanReverse64.
2024-05-17 Bruno Haible <bruno@clisp.org>
getusershell tests: Fix link error on MSVC.
* modules/getusershell-tests (Makefile.am): Link test-getusershell with
$(LIBINTL).
2024-05-17 Bruno Haible <bruno@clisp.org>
tests: Mark tests that fail on NetBSD as expected failures.
* modules/dup3-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-dup3 fails on NetBSD.
* modules/fdutimensat-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-fdutimensat fails on NetBSD.
* modules/futimens-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-futimens fails on NetBSD.
* modules/utimens-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-utimens fails on NetBSD.
* modules/utimensat-tests (Depends-on): Add test-xfail.
(Makefile.am): Expect that test-utimensat fails on NetBSD.
2024-05-17 Bruno Haible <bruno@clisp.org>
New module 'test-xfail'.
* modules/test-xfail: New file.
2024-05-17 Bruno Haible <bruno@clisp.org>
New module 'abort-debug'.
* lib/stdlib.in.h (abort): New declaration.
* lib/abort-debug.c: New file.
* m4/abort-debug.m4: New file.
* modules/abort-debug: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ABORT_DEBUG.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_ABORT.
* modules/stdlib (Makefile.am): Substitute GNULIB_ABORT_DEBUG,
REPLACE_ABORT.
2024-05-17 Bruno Haible <bruno@clisp.org>
execinfo: Update doc.
* doc/glibc-headers/execinfo.texi: Mention musl libc.
* doc/glibc-functions/backtrace.texi: Likewise.
* doc/glibc-functions/backtrace_symbols.texi: Likewise.
* doc/glibc-functions/backtrace_symbols_fd.texi: Likewise.
2024-05-17 Bruno Haible <bruno@clisp.org>
tests: Fix dependencies to test-framework-sh.
* modules/argp-tests (Depends-on): Add test-framework-sh.
* modules/argp-version-etc-tests (Depends-on): Likewise.
* modules/dfa-tests (Depends-on): Likewise.
* modules/error-tests (Depends-on): Likewise.
* modules/readtokens-tests (Depends-on): Likewise.
* modules/string-desc-tests (Depends-on): Likewise.
* modules/verror-tests (Depends-on): Likewise.
* modules/xstdopen-tests (Depends-on): Remove test-framework-sh.
2024-05-17 Bruno Haible <bruno@clisp.org>
stdbit-h: Fix syntax error.
* lib/stdbit.in.h (__gl_stdbit_ctzll) [_MSC_VER]: Fix syntax error.
2024-05-17 Bruno Haible <bruno@clisp.org>
sys_select: Fix compilation error in C++ mode on macOS 13, 14.
* lib/sys_select.in.h (select): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2024-05-17 Bruno Haible <bruno@clisp.org>
putenv-gnu: Update documentation.
* doc/posix-functions/putenv.texi: Refer also to the glibc
documentation. Use the usual doc structure.
2024-05-17 Collin Funk <collin.funk1@gmail.com>
doc: Update outdated module name.
* doc/ld-version-script.texi (LD Version Scripts): Refer to
'lib-symbol-visibility' instead of 'visibility'.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
byteswap: Use __has_builtin portably.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00249.html>.
* lib/byteswap.in.h (_GL_BYTESWAP_HAS_BUILTIN_BSWAP16)
(_GL_BYTESWAP_HAS_BUILTIN_BSWAP32)
(_GL_BYTESWAP_HAS_BUILTIN_BSWAP64): Define using the GCC version or
__has_builtin after checking that it is defined.
(bswap_16, bswap_32, bswap_64): Use the macros.
* modules/byteswap (Depends-on): Add stdbool as a conditional
dependency.
2024-05-16 Paul Eggert <eggert@cs.ucla.edu>
putenv-tests: pacify gcc -Wdiscarded-qualifiers
* tests/test-putenv.c (main): Don’t pass a string literal
to a function expecting ‘char *’.
alloca-opt-tests: add a ‘volatile’
* tests/test-alloca-opt.c (func) [HAVE_ALLOCA]:
Now volatile, to foil whole-program optimization.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
byteswap tests: Strengthen tests.
* modules/byteswap-tests (Depends-on): Add stdint.
* tests/test-byteswap.c (test_bswap_constant, test_bswap_eval_once)
(test_bswap_double): New functions.
(main): Use them.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
byteswap: Use inline functions instead of macros.
* lib/byteswap.c: New file.
* lib/byteswap.in.h (bswap_16, bswap_32, bswap_64): Use inline functions
instead of macros.
* m4/byteswap.m4 (gl_BYTESWAP): Check that bswap functions can be used
on double values.
* modules/byteswap (Files): Add lib/byteswap.c.
(Depends-on): Add extern-inline and stdint as conditional dependencies.
(Makefile.am): Add lib/byteswap.c to lib_SOURCES.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix return value when exiting with Ctrl-C.
* pygnulib/main.py (main_with_exception_handling): Catch
KeyboardInterrupts and exit with a return code of 1.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
unsetenv tests: Update module dependencies.
* modules/unsetenv-tests (Depends-on): Depend on 'putenv-gnu' instead of
the deprecated 'putenv'.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
Rename module 'putenv' to 'putenv-gnu'.
* modules/putenv-gnu: Renamed from modules/putenv.
(Description): Mention the removal of environment variables.
* modules/putenv-gnu-tests: Renamed from modules/putenv-tests.
* modules/putenv: New file, an indirection to the new module.
* doc/posix-functions/putenv.texi: Mention the new module name.
* NEWS: Mention the change.
2024-05-16 Collin Funk <collin.funk1@gmail.com>
putenv: Add tests.
* tests/test-putenv.c: New file.
* modules/putenv-tests: New file.
2024-05-15 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't print tracebacks when Ctrl-C is pressed.
Suggested by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00200.html>.
* pygnulib/main.py (cli_exception): New function.
(main_with_exception_handling): Use it.
2024-05-15 Bruno Haible <bruno@clisp.org>
stdbit-h: Add tests.
* tests/test-stdbit-h.c: New file.
* tests/test-stdbit-h-c++.cc: New file.
* modules/stdbit-h-tests: New file.
* modules/stdbit-h-c++-tests: New file.
2024-05-15 Bruno Haible <bruno@clisp.org>
stdbit-h: Make it work in C++ mode.
* lib/stdbit.in.h: Remove extraneous 'extern "C" {' marker.
2024-05-15 Bruno Haible <bruno@clisp.org>
stdbit-h, stdc_*: New modules, part of the stdbit module.
* lib/stdbit.in.h (_GL_STDC_*_INLINE): New macros.
Enclose function definitions in #if @GL_STDC_*@ conditionals.
* lib/stdc_leading_zeros.c: New file.
* lib/stdc_leading_ones.c: New file.
* lib/stdc_trailing_zeros.c: New file.
* lib/stdc_trailing_ones.c: New file.
* lib/stdc_first_leading_zero.c: New file.
* lib/stdc_first_leading_one.c: New file.
* lib/stdc_first_trailing_zero.c: New file.
* lib/stdc_first_trailing_one.c: New file.
* lib/stdc_count_zeros.c: New file.
* lib/stdc_count_ones.c: New file, based on lib/stdbit.c.
* lib/stdc_has_single_bit.c: New file.
* lib/stdc_bit_width.c: New file.
* lib/stdc_bit_floor.c: New file.
* lib/stdc_bit_ceil.c: New file.
* lib/stdbit.c (__gl_stdbit_popcount_support): Remove variable.
* m4/stdbit_h.m4 (gl_STDBIT_H): Initialize GL_STDC_* variables.
* modules/stdbit-h: New file, based on modules/stdbit.
(Depends-on): Add gen-header.
(Makefile.am): Substitute GL_STDC_* variables.
* modules/stdc_leading_zeros: New file.
* modules/stdc_leading_ones: New file.
* modules/stdc_trailing_zeros: New file.
* modules/stdc_trailing_ones: New file.
* modules/stdc_first_leading_zero: New file.
* modules/stdc_first_leading_one: New file.
* modules/stdc_first_trailing_zero: New file.
* modules/stdc_first_trailing_one: New file.
* modules/stdc_count_zeros: New file.
* modules/stdc_count_ones: New file.
* modules/stdc_has_single_bit: New file.
* modules/stdc_bit_width: New file.
* modules/stdc_bit_floor: New file.
* modules/stdc_bit_ceil: New file.
* modules/stdbit: Change to a pure composition module.
* modules/stdc_leading_zeros-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_leading_ones-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_trailing_zeros-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_trailing_ones-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_first_leading_zero-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_first_leading_one-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_first_trailing_zero-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_first_trailing_one-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_count_zeros-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_count_ones-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_has_single_bit-tests: New file, based on
modules/stdbit-tests.
* modules/stdc_bit_width-tests: New file, based on modules/stdbit-tests.
* modules/stdc_bit_floor-tests: New file, based on modules/stdbit-tests.
* modules/stdc_bit_ceil-tests: New file, based on modules/stdbit-tests.
* modules/stdbit-tests: Remove file.
* doc/posix-functions/stdc_leading_zeros.texi: Update.
* doc/posix-functions/stdc_leading_ones.texi: Likewise.
* doc/posix-functions/stdc_trailing_zeros.texi: Likewise.
* doc/posix-functions/stdc_trailing_ones.texi: Likewise.
* doc/posix-functions/stdc_first_leading_zero.texi: Likewise.
* doc/posix-functions/stdc_first_leading_one.texi: Likewise.
* doc/posix-functions/stdc_first_trailing_zero.texi: Likewise.
* doc/posix-functions/stdc_first_trailing_one.texi: Likewise.
* doc/posix-functions/stdc_count_zeros.texi: Likewise.
* doc/posix-functions/stdc_count_ones.texi: Likewise.
* doc/posix-functions/stdc_has_single_bit.texi: Likewise.
* doc/posix-functions/stdc_bit_width.texi: Likewise.
* doc/posix-functions/stdc_bit_floor.texi: Likewise.
* doc/posix-functions/stdc_bit_ceil.texi: Likewise.
2024-05-15 Paul Eggert <eggert@cs.ucla.edu>
stdbit: tweak first_leading for GCC
* lib/stdbit.in.h (stdc_first_leading_zero)
(stdc_first_leading_one, stdc_first_trailing_zero_uc)
(stdc_first_trailing_one_uc): Redo to avoid the need for a
conditional branch, at least on x86-64 with GCC 14.
* lib/stdbit.in.h (__gl_stdbit_clz, __gl_stdbit_clzl)
(__gl_stdbit_clzll, __gl_stdbit_ctz, __gl_stdbit_ctzl)
(__gl_stdbit_ctzll): Work even if the argument is zero.
All callers changed. This should help avoid branches
on non-GCC-like platforms.
2024-05-15 Bruno Haible <bruno@clisp.org>
vasnprintf: Avoid a dummy memory allocation.
* lib/vasnprintf.c (NOMEM_PTR): New macro.
(multiply, divide): Return it instead of NULL in case of memory
allocation failure.
(scale10_round_decimal_decoded): Update.
2024-05-15 Bruno Haible <bruno@clisp.org>
getusershell tests: Verify the function declarations.
* tests/test-getusershell.c: Include signature.h.
(getusershell, setusershell, endusershell): Check the signatures.
* modules/getusershell-tests (Files): Add tests/signature.h.
2024-05-15 Collin Funk <collin.funk1@gmail.com>
getusershell: Add tests.
* modules/getusershell-tests: New file.
* tests/test-getusershell.c: New file.
2024-05-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.sh: Don't continue creating testdirs when destdir exists.
* gnulib-tool.sh (create-testdir, create-megatestdir): Fail if the
destination directory exists instead of creating files and failing to
patch test driver.
2024-05-14 Paul Eggert <eggert@cs.ucla.edu>
stdbit: fix dependency
* modules/stdbit (Depends-on): Add extern-inline.
2024-05-14 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix formatting of error message in last commit.
* pygnulib/main.py (main_with_exception_handling): Use the usual
formatting of error messages.
2024-05-13 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't continue creating testdirs when destdir exists.
* pygnulib/GLError.py (GLError.__init__, GLError.__repr__): Add a new
error number for destination directories that already exist.
* pygnulib/main.py (main_with_exception_handling): Print the message.
* pygnulib/GLTestDir.py (GLTestDir.__init__, GLMegaTestdir.__init__):
Fail if the destination directory exists instead of creating files and
failing to patch test driver.
2024-05-13 Paul Eggert <eggert@cs.ucla.edu>
stdbit: redo clzll without lookup table
* lib/stdbit.c (__gl_stdbit_clztab):
* lib/stdbit.in.h (__gl_stdbit_clzll):
[!_GL_STDBIT_HAS_BUILTIN_CLZ && !_MSC_VER]: Rewrite to avoid the
need for a lookup table in memory, and remove the lookup table.
Do this by shrinking the table to 64 bits and putting it in a 64-bit
constant. Although this needs another round of shifts, it avoids
the need for a multiplication and memory access a la de Bruijn,
and is probably a win.
2024-05-13 Bruno Haible <bruno@clisp.org>
stdbit tests: Adhere better to Gnulib naming conventions.
* tests/from-glibc/tst-stdc_bit_ceil.c: Renamed from
tests/tst-stdc_bit_ceil.c.
* tests/from-glibc/tst-stdc_bit_floor.c: Renamed from
tests/tst-stdc_bit_floor.c.
* tests/from-glibc/tst-stdc_bit_width.c: Renamed from
tests/tst-stdc_bit_width.c.
* tests/from-glibc/tst-stdc_count_ones.c: Renamed from
tests/tst-stdc_count_ones.c.
* tests/from-glibc/tst-stdc_count_zeros.c: Renamed from
tests/tst-stdc_count_zeros.c.
* tests/from-glibc/tst-stdc_first_leading_one.c: Renamed from
tests/tst-stdc_first_leading_one.c.
* tests/from-glibc/tst-stdc_first_leading_zero.c: Renamed from
tests/tst-stdc_first_leading_zero.c.
* tests/from-glibc/tst-stdc_first_trailing_one.c: Renamed from
tests/tst-stdc_first_trailing_one.c.
* tests/from-glibc/tst-stdc_first_trailing_zero.c: Renamed from
tests/tst-stdc_first_trailing_zero.c.
* tests/from-glibc/tst-stdc_has_single_bit.c: Renamed from
tests/tst-stdc_has_single_bit.c.
* tests/from-glibc/tst-stdc_leading_ones.c: Renamed from
tests/tst-stdc_leading_ones.c.
* tests/from-glibc/tst-stdc_leading_zeros.c: Renamed from
tests/tst-stdc_leading_zeros.c.
* tests/from-glibc/tst-stdc_trailing_ones.c: Renamed from
tests/tst-stdc_trailing_ones.c.
* tests/from-glibc/tst-stdc_trailing_zeros.c: Renamed from
tests/tst-stdc_trailing_zeros.c.
* tests/from-glibc/tst-stdbit.h: Renamed from tests/tst-stdbit.h.
* tests/from-glibc/support/test-driver.c: Renamed from
tests/support/test-driver.c.
* modules/stdbit-tests (Files, Makefile.am): Update.
* config/srclist.txt: Update.
2024-05-13 Bruno Haible <bruno@clisp.org>
config: Clarify which destination files have a different basename.
* config/srclist.txt: Specify the gnulib-side basename in the third
column of a few entries.
config: Document the update script better.
* config/srclist-update: Improve comments.
2024-05-13 Bruno Haible <bruno@clisp.org>
doc: Document our conventions for *.m4 files.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00156.html>.
* doc/gnulib.texi (Autoconf macros): Document the structure of our *.m4
files.
2024-05-13 Paul Eggert <eggert@cs.ucla.edu>
stdbit: fix typo in MS-Windows port
Problem reported by Mattias Engdegård <https://bugs.gnu.org/70898#8>.
* lib/stdbit.in.h (__gl_stdbit_popcount_support) [_MSC_VER]:
Fix misspelling in decl.
2024-05-13 Bruno Haible <bruno@clisp.org>
doc: Document <stdbit.h> function-like macros.
* doc/posix-headers/stdbit.texi: Reference ISO C 23 as the
documentation. Update platforms list.
* doc/posix-functions/stdc_leading_zeros.texi: New file.
* doc/posix-functions/stdc_leading_ones.texi: New file.
* doc/posix-functions/stdc_trailing_zeros.texi: New file.
* doc/posix-functions/stdc_trailing_ones.texi: New file.
* doc/posix-functions/stdc_first_leading_zero.texi: New file.
* doc/posix-functions/stdc_first_leading_one.texi: New file.
* doc/posix-functions/stdc_first_trailing_zero.texi: New file.
* doc/posix-functions/stdc_first_trailing_one.texi: New file.
* doc/posix-functions/stdc_count_zeros.texi: New file.
* doc/posix-functions/stdc_count_ones.texi: New file.
* doc/posix-functions/stdc_has_single_bit.texi: New file.
* doc/posix-functions/stdc_bit_width.texi: New file.
* doc/posix-functions/stdc_bit_floor.texi: New file.
* doc/posix-functions/stdc_bit_ceil.texi: New file.
* doc/gnulib.texi (Function Substitutes): Include them all.
2024-05-13 Paul Eggert <eggert@cs.ucla.edu>
stdbit: port to theoretical platforms
Port to theoretical platforms that C and POSIX allow but are not
likely to ever exist. This is mostly just to document the existing
source code: when optimizing, the machine code should be largely
unchanged even on platforms lacking __builtin_clz etc.
* lib/stdbit.in.h: Omit static_assert that checks for 8-bit bits.
stdbit-tests checks for this, and omitting the static_assert here
removes a module dependency.
(__gl_stdbit_clzll): Do not limit word size to 128 bits.
(__gl_stdbit_popcount255): Rename from __gl_stdbit_popcount255.
All uses changed. Do not limit word size to 255 bits. Correct
bugs on odd theoretical platforms where the word size is not a
power of 2.
* modules/stdbit (Depends-on): Remove assert-h.
2024-05-12 Paul Eggert <eggert@cs.ucla.edu>
stdbit-tests: make GNULIB_TEST_STDBIT work standalone
* modules/stdbit-tests (GNULIB_TEST_STDBIT):
Do not define in config.h, since config.h is conditionally
included depending on this macro.
Instead, specify -DGNULIB_TEST_STDBIT in the CPPFLAGS
of each test.
2024-05-12 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Silence announce-gen error with GNULIB_REVISION.
* top/maint.mk (gnulib-version): Silence git describe on failure.
2024-05-12 Bruno Haible <bruno@clisp.org>
execinfo: Document known bugs.
* doc/glibc-functions/backtrace.texi: Mention the various bugs on
FreeBSD, NetBSD, OpenBSD.
* doc/glibc-functions/backtrace_symbols_fd.texi: Mention the glibc bug.
2024-05-12 Bruno Haible <bruno@clisp.org>
execinfo tests: Strengthen tests.
* tests/test-execinfo.c (test_backtrace): Add an argument. Check the
return value of backtrace(). Check that backtrace_symbols_fd is defined.
Check the return value of backtrace_symbols().
(main): Test also the case of a short buffer.
* modules/execinfo-tests (Makefile.am): Verify that LIB_EXECINFO is
defined.
2024-05-11 Paul Eggert <eggert@cs.ucla.edu>
stdbit: don’t assume -DHAVE_CONFIG_H
This is needed for diffutils, which doesn’t define HAVE_CONFIG_H.
There needs to be some way for a test shared with glibc to discover
whether it should use the Gnulib or the glibc testing framework,
and I guess this is it.
* modules/stdbit-tests (GNULIB_TEST_STDBIT): Define.
* tests/tst-stdbit.h: Use GNULIB_TEST_STDBIT, not HAVE_CONFIG_H.
2024-05-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Filter out dependencies that cannot be found.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00136.html>.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesWithConditions):
Reorder conditionals to avoid duplicate checks. Filter out None from the
gathered dependencies when gathering module dependencies. Let
GLModuleSystem.find() warn instead of crashing.
2024-05-11 Collin Funk <collin.funk1@gmail.com>
execinfo: Add tests.
* modules/execinfo-tests: New file.
* tests/test-execinfo.c (test_backtrace): New function. Simply test that
the symbols defined in execinfo.h can be used.
(main): Use it.
2024-05-11 Bruno Haible <bruno@clisp.org>
Continue to use spaces for indentation, not tabs.
* lib/strftime.c: Untabify. Correct indentation.
* tests/test-posix_memalign.c: Untabify.
2024-05-11 Bruno Haible <bruno@clisp.org>
error-h: Avoid namespace pollution on mingw.
* lib/error.in.h: Don't include mingw's <error.h>.
2024-05-11 Paul Eggert <eggert@cs.ucla.edu>
stdbit: clean up namespace and simplify
Fix namespace pollution in substitute stdbit.h.
Clean up and simplify some of the non-GCC code, by preferring
inline functions to macros and substituting something
more straightforward than a de Bruijn hash (possibly faster?).
The non-GCC non-C23 substitutes should all compile to
branch-free code, if the compiler is good.
* lib/stdbit.c (COUNT_LEADING_ZEROS_INLINE)
(COUNT_TRAILING_ZEROS_INLINE, COUNT_ONE_BITS_INLINE): Remove.
(__gl_stdbit_clztab) [!_GL_STDBIT_HAS_BUILTIN_CLZ && !_MSC_VER]:
New constant array.
(__gl_stdbit_popcount_support): Adjust to stdbit.in.h changes.
* lib/stdbit.in.h: Do not include <limits.h> or <stdlib.h>.
Check that bytes are 8 bits.
(COUNT_LEADING_ZEROS_INLINE, COUNT_TRAILING_ZEROS_INLINE)
(COUNT_ONE_BITS_INLINE, COUNT_LEADING_ZEROS)
(count_leading_zeros_32, count_leading_zeros)
(count_leading_zeros_l, count_leading_zeros_ll)
(COUNT_TRAILING_ZEROS, count_trailing_zeros_32)
(count_trailing_zeros, count_trailing_zeros_l)
(count_trailing_zeros_ll, COUNT_ONE_BITS, count_one_bits_32)
(COUNT_ONE_BITS_GENERIC, count_one_bits, count_one_bits_l)
(count_one_bits_ll): Remove, replacing all uses with ...
(_GL_STDBIT_HAS_BUILTIN_CLZ)
(_GL_STDBIT_HAS_BUILTIN_CTZ, _GL_STDBIT_HAS_BUILTIN_POPCOUNT)
(__gl_stdbit_clz, __gl_stdbit_clzl, __gl_stdbit_clzll)
(__gl_stdbit_ctz, __gl_stdbit_ctzl, __gl_stdbit_ctzll)
(__gl_stdbit_popcount, __gl_stdbit_popcountl, __gl_stdbit_popcountll)
(__gl_stdbit_popcount255): ... these new functions and macros.
(__popcnt64): Omit unnecessary casts.
(__gl_stdbit_popcount_support): Rename from popcount_support
and make it a signed char since that’s all we need.
(__gl_stdbit_popcount_supported): Rename from popcount_supported.
All uses changed.
* modules/stdbit (Depends-on): Add assert-h, for static_assert.
stdbit: remove most module dependence
Remove dependence of stdbit on the modules count-leading-zeros,
count-trailing-zeros, and count-one-bits. stdbit is part of C23
and in the long run is more likely to be more portable, so code
should start preferring it.
* lib/stdbit.c (popcount_support): New var, if needed.
* lib/stdbit.in.h: Contain contents of count-leading-zeros.h,
count-trailing-zeros.h, and count-one-bits.h instead of including
those files. In the long run those files should be stubs that are
implemented via stdbit.
* modules/stdbit (Depends-on): Do not depend on count-leading-zeros,
count-trailing-zeros, count-one-bits.
stdbit-tests: new module
* config/srclist.txt: Add files containing stdbit test cases
shared with glibc.
* modules/stdbit-tests: New file.
* tests/support/test-driver.c, tests/tst-stdbit.h:
New files, copied from glibc with changes.
* tests/tst-stdc_bit_ceil.c:
* tests/tst-stdc_bit_floor.c, tests/tst-stdc_bit_width.c:
* tests/tst-stdc_count_ones.c, tests/tst-stdc_count_zeros.c:
* tests/tst-stdc_first_leading_one.c:
* tests/tst-stdc_first_leading_zero.c:
* tests/tst-stdc_first_trailing_one.c:
* tests/tst-stdc_first_trailing_zero.c:
* tests/tst-stdc_has_single_bit.c, tests/tst-stdc_leading_ones.c:
* tests/tst-stdc_leading_zeros.c, tests/tst-stdc_trailing_ones.c:
* tests/tst-stdc_trailing_zeros.c:
New files, copied verbatim from glibc.
stdbit: new module
* doc/gnulib-tool.texi, doc/gnulib.texi: Mention it.
* doc/posix-headers/stdbit.texi, lib/stdbit.c, lib/stdbit.in.h:
* m4/stdbit_h.m4, modules/stdbit:
New files.
2024-05-11 Bruno Haible <bruno@clisp.org>
doc: Mention module execinfo.
* doc/glibc-headers/execinfo.texi: Mention module execinfo.
* doc/glibc-functions/backtrace.texi: Likewise.
* doc/glibc-functions/backtrace_symbols.texi: Likewise.
* doc/glibc-functions/backtrace_symbols_fd.texi: LIkewise.
2024-05-11 Bruno Haible <bruno@clisp.org>
doc: Update regarding backtrace functions on *BSD.
* doc/glibc-functions/backtrace.texi: Mention in which *BSD releases
this function was missing.
* doc/glibc-functions/backtrace_symbols.texi: Likewise.
* doc/glibc-functions/backtrace_symbols_fd.texi: LIkewise.
* doc/glibc-headers/execinfo.texi: Update *BSD versions.
2024-05-11 Collin Funk <collin.funk1@gmail.com>
doc: Mention backtrace functions supported on BSD.
* doc/glibc-functions/backtrace.texi (backtrace): Mention that FreeBSD
supports this function from 10.0 onwards. Mention that NetBSD and
OpenBSD support this function from 7.0 onwards.
* doc/glibc-functions/backtrace_symbols.texi (backtrace_symbols):
Likewise.
* doc/glibc-functions/backtrace_symbols_fd.texi (backtrace_symbols_fd):
Likewise.
2024-05-09 Bruno Haible <bruno@clisp.org>
unistr/u8-strstr tests: Avoid test failure with ASAN.
* tests/unistr/test-u8-strstr.c (main): Increase timeout to 50 sec.
* tests/unistr/test-u16-strstr.c (main): Likewise.
* tests/unistr/test-u32-strstr.c (main): Likewise.
2024-05-09 Bruno Haible <bruno@clisp.org>
free tests: Avoid test failure with ASAN.
* tests/test-free.c (main): Skip mmap/munmap based test if ASAN is
enabled.
2024-05-09 Bruno Haible <bruno@clisp.org>
explicit_bzero, memset_explicit tests: Avoid test failures with ASAN.
* tests/test-explicit_bzero.c (test_heap, test_stack): Define to empty
if ASAN is enabled.
* tests/test-memset_explicit.c (test_heap, test_stack): Likewise.
2024-05-09 Bruno Haible <bruno@clisp.org>
dprintf-posix, fprintf-posix tests: Avoid test failures with ASAN.
* tests/test-dprintf-posix2.c (main): Skip the test if ASAN is enabled.
* tests/test-fprintf-posix3.c (main): Likewise.
* tests/test-dprintf-posix2.sh: Update.
* tests/test-fprintf-posix3.sh: Likewise.
2024-05-09 Bruno Haible <bruno@clisp.org>
unistdio/*printf: Fix %n handling with module 'printf-with-n-directive'.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Optimize the
case of VERSION = 999.9.
* modules/unistdio/u8-asnprintf (configure.ac): If module
'printf-with-n-directive' is in use, don't use an installed libunistring
for this module.
* modules/unistdio/u8-asprintf (configure.ac): Likewise.
* modules/unistdio/u8-snprintf (configure.ac): Likewise.
* modules/unistdio/u8-sprintf (configure.ac): Likewise.
* modules/unistdio/u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u8-vasprintf (configure.ac): Likewise.
* modules/unistdio/u8-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u8-vsprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-asnprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-asprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-snprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-sprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vasprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vsprintf (configure.ac): Likewise.
* modules/unistdio/u16-asnprintf (configure.ac): Likewise.
* modules/unistdio/u16-asprintf (configure.ac): Likewise.
* modules/unistdio/u16-snprintf (configure.ac): Likewise.
* modules/unistdio/u16-sprintf (configure.ac): Likewise.
* modules/unistdio/u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-vasprintf (configure.ac): Likewise.
* modules/unistdio/u16-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u16-vsprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-asnprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-asprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-snprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-sprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vasprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vsprintf (configure.ac): Likewise.
* modules/unistdio/u32-asnprintf (configure.ac): Likewise.
* modules/unistdio/u32-asprintf (configure.ac): Likewise.
* modules/unistdio/u32-snprintf (configure.ac): Likewise.
* modules/unistdio/u32-sprintf (configure.ac): Likewise.
* modules/unistdio/u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-vasprintf (configure.ac): Likewise.
* modules/unistdio/u32-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u32-vsprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-asnprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-asprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-snprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-sprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vasprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vsnprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vsprintf (configure.ac): Likewise.
* modules/unistdio/ulc-asnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-asprintf (configure.ac): Likewise.
* modules/unistdio/ulc-fprintf (configure.ac): Likewise.
* modules/unistdio/ulc-snprintf (configure.ac): Likewise.
* modules/unistdio/ulc-sprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vasnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vasprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vfprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vsnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vsprintf (configure.ac): Likewise.
2024-05-08 Collin Funk <collin.funk1@gmail.com>
ftello: Prefer stdckdint to intprops.
* lib/ftello.c (ftello): Include stdckdint.h instead of intprops.h.
Prefer ckd_add to INT_ADD_OK.
* modules/ftello (Depends-on): Depend on stdckdint instead of intprops.
2024-05-08 Bruno Haible <bruno@clisp.org>
sigsegv, c-stack tests: Avoid test failures with ASAN.
* tests/test-sigsegv-catch-stackoverflow1.c
(HAVE_STACK_OVERFLOW_RECOVERY): Undefine if ASAN is enabled.
* tests/test-sigsegv-catch-stackoverflow2.c
(HAVE_STACK_OVERFLOW_RECOVERY): Likewise.
* tests/test-c-stack.c (main): Skip the test if ASAN is enabled.
2024-05-08 Bruno Haible <bruno@clisp.org>
argp: Fix test failure with clang's ASAN.
Reported in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-12/msg00035.html>.
* m4/argp.m4 (gl_ARGP): Rename argp_parse to rpl_argp_parse.
2024-05-08 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Make --megatest behaviour more similar to shell impl.
* pygnulib/main.py (main) [megatest]: Remove space from the testdir
name.
2024-05-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: In --megatestdir mode, stop when there is an error.
* gnulib-tool.sh (megatest): Fail when one of the 'configure' or 'make'
steps fails.
* pygnulib/main.py (main): Likewise.
2024-05-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix behavior of --test when a subprocess fails.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00101.html>.
* pygnulib/main.py (main): Use sp.run with check=True so that an
exception is thrown when a process fails. Simply exit if an exception
occurs.
2024-05-07 Collin Funk <collin.funk1@gmail.com>
base32, base64: Prefer stdckdint to intprops.
* lib/base32.c (base32_encode_alloc): Include stdckdint.h. Prefer
ckd_mul to INT_MULTIPLY_OK.
* lib/base64.c (base64_encode_alloc): Likewise.
* modules/base32 (Depends-on): Add stdckdint.
* modules/base64 (Depends-on): Likewise.
2024-05-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Handle module dependencies that cannot be found.
* pygnulib/GLModuleSystem.py
(GLModule.getDependenciesWithoutConditions): Filter out None from the
module dependencies. An appropriate warning will already be printed by
GLModuleSystem.find().
2024-05-07 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: use clearer code for padding
This also works around GCC bug 114965
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114965>.
* lib/strftime.c (enum pad_style): New type.
(width_add, my_strftime, __strftime_internal):
Use it instead of checking the raw chars.
* tests/test-nstrftime.h (T): Test for the GCC bug.
2024-05-06 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Prohibit BSD4.3/SysV u_char etc types.
* top/maint.mk (sc_unsigned_char, sc_unsigned_short)
(sc_unsigned_int, sc_unsigned_long): Add.
2024-05-06 Simon Josefsson <simon@josefsson.org>
inet-ntop, inet-pton: Avoid obsolete u_char type.
* lib/inet_pton.c (inet_pton6): Use unsigned char instead of u_char.
* lib/inet_ntop.c: Doc fix.
2024-05-05 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Regenerate aclocal.m4 before using 'autoconf -t ...'.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00065.html>.
* pygnulib/GLImport.py (GLImport): New field m4dirs.
(GLImport.__init__): Accept an additional m4dirs argument.
(GLImport.execute): Regenerate aclocal.m4 before creating the library
Makefile.
* pygnulib/main.py (main): Pass the guessed_m4dirs to GLImport.
2024-05-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool: Ignore autom4te.cache when using GNULIB_TOOL_IMPL=sh+py.
Reported by Paul Eggert in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00061.html>.
* gnulib-tool: Don't compare the autom4te.cache directory since requests
are not sorted in Autoconf version 2.71 and below.
2024-05-04 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Work around a Cygwin 3.5.3 bug.
Reported by Ken Brown <kbrown@cornell.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00035.html>.
* lib/boot-time-aux.h (get_windows_boot_time): On Cygwin, ignore
pagefile.sys if it appears to be a directory, and use another file as
a fallback.
2024-05-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix an undefined function name (regression 2024-05-02).
* pygnulib/main.py (main_with_exception_handling): Use the tempfile
module prefix when calling mkdtemp(). Use the 'glpy' prefix for the
temporary directory that exists for the entirety of the program.
2024-05-03 Simon Josefsson <simon@josefsson.org>
maint.mk: Don't fail on ~/.indent.pro, reported by Collin Funk.
* top/maint.mk (indent_args): Use --ignore-profile.
2024-05-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.sh: Fix program name in error message.
* gnulib-tool.sh: Use 'gnulib-tool' instead of 'gnulib' as the program
name in the error message.
2024-05-02 Collin Funk <collin.funk1@gmail.com>
DEPENDENCIES: Add Cygwin as supported platform.
* DEPENDENCIES: Mention Cygwin as a supported platform for building
Windows binaries.
2024-05-02 Bruno Haible <bruno@clisp.org>
doc: Add appendix about Gnulib history.
* doc/gnulib-history.texi: New file.
* doc/gnulib.texi: Include it.
2024-05-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't leave temporary directories on exit.
* pygnulib/main.py (main_with_exception_handling): Use
tempfile.TemporaryDirectory as a context manager so it is removed before
the program exits.
(main): Expect a temporary directory to be passed as an argument.
* pygnulib/GLConfig.py (GLConfig.__init__): Accept an optional temporary
directory parameter instead of creating one.
* pygnulib/GLImport.py (GLImport.__init__): Don't remove the cache's
temporary directory since it doesn't create one anymore.
(GLImport.execute): Don't remove the temporary directory explicitly. It
is handled by the usage of a context manager.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
2024-05-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Quote file names passed to 'patch'.
* pygnulib/GLTestDir.py (_patch_test_driver): Import shlex and cleanup
unused imports. Use shlex.quote() on the file names passed to 'patch'.
* pygnulib/GLFileSystem.py (GLFileSystem.lookup): Likewise. Perform
redirection using sp.call() arguments instead of using the shell.
2024-05-01 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Improve for some Cygwin installations.
Reported by Ken Brown <kbrown@cornell.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00008.html>.
* lib/boot-time-aux.h (get_windows_boot_time): Use /proc/cygdrive/
instead of /cygdrive/.
2024-05-01 Bruno Haible <bruno@clisp.org>
stddef: A better workaround against GCC bug 114870.
* lib/stddef.in.h: If STDDEF_NOT_IDEMPOTENT is 1, disable the special
invocation convention.
* m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_NOT_IDEMPOTENT.
(gl_STDDEF_H_DEFAULTS): Initialize STDDEF_NOT_IDEMPOTENT.
* modules/stddef (Makefile.am): Substitute STDDEF_NOT_IDEMPOTENT.
2024-05-01 Bruno Haible <bruno@clisp.org>
stddef: Fix <stddef.h> behaviour on Cygwin (regression 2024-04-27).
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00522.html>.
* lib/stddef.in.h: Don't test _@GUARD_PREFIX@_STDDEF_H. Fix comments.
2024-05-01 Bruno Haible <bruno@clisp.org>
doc: Reference a gcc bug.
* doc/posix-headers/stddef.texi: Reference a gcc bug.
2024-05-01 Bruno Haible <bruno@clisp.org>
sprintf-posix, snprintf-posix tests: Add comment.
Suggested by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00546.html>.
* tests/test-sprintf-posix.h (test_function): Add comment about known
failures.
2024-05-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix mistake in previous commit.
* pygnulib/GLModuleSystem.py (GLModuleSystem.exists)
(GLModuleSystem.find): Rename 'module' argument to 'module_name' so it
is clear they are not a GLModule object. Treat them as such.
2024-05-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use the GLModule's name variable directly.
* pygnulib/GLModuleSystem.py (GLModule.getName): Remove function.
(GLModule.__str__, GLModule.__repr__, GLModule.isNonTests)
(GLModule.repeatModuleInTests, GLModule.getDependenciesRecursively)
(GLModule.getShellFunc, GLModule.getShellVar)
(GLModule.getConditionalName, GLModule.getApplicability)
(GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional)
(GLModule.getLicense, GLModuleSystem.find)
(GLModuleTable.transitive_closure): Use the GLModule's name instance
variable instead of using str() or removed getName() function.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet)
(GLEmiter.preEarlyMacros, GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): Likewise.
* pygnulib/GLImport.py (GLImport.gnulib_comp, GLImport.prepare):
Likewise.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
2024-04-30 Paul Eggert <eggert@cs.ucla.edu>
intprops: document fix for GCC bug 68193
* lib/intprops-internal.h (_GL__GENERIC_BOGUS):
GCC bug 68193 is fixed in GCC 14. This is just for documentation,
as _GL__GENERIC_BOGUS is not consulted in GCC 14.
2024-04-30 Bruno Haible <bruno@clisp.org>
*printf: Don't invoke gl_PRINTF_DIRECTIVE_N when it's not needed.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Don't require
gl_PRINTF_DIRECTIVE_N if gl_PRINTF_SUPPORT_N_DIRECTIVE is not defined.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX): Likewise.
2024-04-30 Bruno Haible <bruno@clisp.org>
*printf: Avoid a dialog during 'configure' with MSVC in debug mode.
Suggested by Paul Harris <harris.pc@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-04/msg00005.html>.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): In the test program, include
<crtdbg.h> and disable the MSVC reporting for assertion failures.
2024-04-30 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove remaining unused instance variables.
* pygnulib/GLModuleSystem.py (GLModule.__init__)
(GLModuleTable.__init__): Remove the unused GLFileSystem variable. These
classes perform lookups with a GLModuleSystem.
* pygnulib/GLTestDir.py (GLTestDir.__init__): Remove the unused
GLFileAssistant variable. The transformations it performs are not needed
in testdirs.
2024-04-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add type hints to classes.
* pygnulib/*.py: Add type hints for all instance and class variables.
* pygnulib/GLMakefileTable.py (GLMakefileTable.__getitem__): Fix return
type hint since the dictionary has str values.
2024-04-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Emit libtests in testdirs generated Makefile.am.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00463.html>.
* pygnulib/GLTestDir.py (GLTestDir.execute): Modify the GLEmiter's
config variable instead of the GLTestDir's so that it can be accessed
when emitting the Makefile.am.
2024-04-28 Collin Funk <collin.funk1@gmail.com>
doc: Update macro list in gnulib-cache.m4 documentation.
* doc/gnulib-tool.texi (Modified imports): Add missing macros from the
sed invocation in func_import of gnulib-tool.sh.
2024-04-28 Collin Funk <collin.funk1@gmail.com>
doc: Mention AC_CONFIG_MACRO_DIRS in configure.ac.
Document the following gnulib-tool change:
2021-12-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't insist on ACLOCAL_AMFLAGS.
* doc/gnulib-tool.texi (Initial import): Update the example gnulib-tool
invocation. Document the use of AC_CONFIG_MACRO_DIRS as an alternative
to ACLOCAL_AMFLAGS.
2024-04-28 Bruno Haible <bruno@clisp.org>
bootstrap: Support checking out a recent GNULIB_REVISION, part 2.
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00507.html>.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): If using a submodule
and the 'git checkout' command fails, fetch the newer commits and then
retry it.
* build-aux/bootstrap: Regenerated.
2024-04-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Preserve module ordering in --create-megatestdir.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): Use a separate set to
remove duplicates from the original list without sorting.
2024-04-27 Bruno Haible <bruno@clisp.org>
gnulib-tool: Simplify the Python version test.
Suggested by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00469.html>.
* gnulib-tool: Use Python's sys.version_info, not --version.
* gnulib-tool.py: Use the same version test here. Use --version only to
produce a specific error message.
2024-04-27 Bruno Haible <bruno@clisp.org>
fcntl-h, stdio, unistd: Ensure off64_t is defined on all platforms.
* lib/fcntl.in.h: Update comment regarding off64_t.
* lib/stdio.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* tests/test-fcntl-h.c: Verify that off64_t is defined.
* tests/test-stdio.c: Likewise.
* tests/test-unistd.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention the off64_t workaround.
* doc/posix-headers/stdio.texi: Likewise.
* doc/posix-headers/unistd.texi: Likewise.
* doc/posix-headers/aio.texi: Mention the problem with off64_t.
sys_types: Ensure off64_t is defined on all platforms.
* m4/off64_t.m4: New file.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Require gl_TYPE_OFF64_T.
* lib/sys_types.in.h (off64_t): New type.
(GNULIB_defined_off64_t): New macro.
* modules/sys_types (Files): Add m4/off64_t.m4.
(configure.ac-early): Require AC_USE_SYSTEM_EXTENSIONS.
(Makefile.am): Substitute HAVE_OFF64_T.
* tests/test-sys_types.c: Verify that off64_t is defined.
* doc/posix-headers/sys_types.texi: Mention the off64_t workaround.
2024-04-27 Paul Eggert <eggert@cs.ucla.edu>
nullptr: work around GCC nullptr sentinel bug
* m4/nullptr.m4 (gl_NULLPTR): Work around GCC bug 114780.
stddef: work around GCC stddef.h bugs
* lib/stddef.in.h: Do nothing if _@GUARD_PREFIX@_STDDEF_H is
defined, as stddef.h has already been included. This works
around GCC bug 114870.
(_GCC_NULLPTR_T): Define if needed to work around GCC bug 114869.
* m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS):
* modules/stddef (stddef.h):
Detect the two bugs.
* doc/posix-headers/stddef.texi: Mention one of the two bugs.
2024-04-27 Bruno Haible <bruno@clisp.org>
bootstrap: Support checking out a recent GNULIB_REVISION.
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00462.html>.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): If the
'git checkout' command fails, fetch the newer commits and then retry it.
* build-aux/bootstrap: Regenerated.
2024-04-27 Bruno Haible <bruno@clisp.org>
ctime, localtime, tzset, wcsftime: Fix env access (regr. 2024-02-09).
Reported by Markus Mützel <markus.muetzel@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00457.html>.
* lib/ctime.c (rpl_ctime): Fix logic of environment traversal.
* lib/localtime.c (rpl_localtime): Likewise.
* lib/tzset.c (rpl_tzset): Likewise.
* lib/wcsftime.c (rpl_wcsftime): Likewise.
2024-04-26 Bruno Haible <bruno@clisp.org>
login_tty tests: Avoid gcc warnings.
* tests/test-login_tty.c: Include ignore-value.h.
(main): Ignore the results of the freopen calls.
* modules/login_tty-tests (Depends-on): Add ignore-value.
2024-04-26 Bruno Haible <bruno@clisp.org>
Document prerequisite for gnulib-tool.
Suggested by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00450.html>.
* DEPENDENCIES: Add Python 3.7 as "recommended".
2024-04-26 Bruno Haible <bruno@clisp.org>
gnulib-tool: Use the Python implementation by default.
* gnulib-tool: If GNULIB_TOOL_IMPL is not set: Use the Python
implementation if a suitable 'python3' program is found in $PATH;
otherwise print a warning and use the shell implementation.
2024-04-26 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove some unused instance variables.
* pygnulib/GLTestDir.py (GLMegaTestDir.__init__): Don't define instance
variables that are never used.
2024-04-25 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Reduce code duplication in file name transformations.
* pygnulib/functions.py: New file for shared functions between modules.
Add a function based on functions removed from GLImport and GLTestDir.
Accepts a single file name instead of a list.
* pygnulib/GLImport.py (GLImport.prepare): Use the new function.
(GLImport.rewrite_new_files, GLImport.rewrite_old_files): Remove
functions.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use the new function.
(GLTestDir.rewrite_files): Remove functions.
* pygnulib/main.py (main): Remove unused function import. Use the new
function.
2024-04-25 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of IRIX as supported platform.
* doc/posix-headers/netdb.texi: Don't mention IRIX specific workarounds.
* doc/posix-headers/pthread.texi: Likewise.
* doc/posix-headers/sys_socket.texi: Likewise.
* doc/posix-headers/wctype.texi: Likewise.
* doc/posix-functions/btowc.texi: Likewise.
* doc/posix-functions/cbrtf.texi: Likewise.
* doc/posix-functions/cbrtl.texi: Likewise.
* doc/posix-functions/copysignf.texi: Likewise.
* doc/posix-functions/exp2.texi: Likewise.
* doc/posix-functions/exp2f.texi: Likewise.
* doc/posix-functions/exp2l.texi: Likewise.
* doc/posix-functions/expm1f.texi: Likewise.
* doc/posix-functions/expm1l.texi: Likewise.
* doc/posix-functions/fabsl.texi: Likewise.
* doc/posix-functions/isnan.texi: Likewise.
* doc/posix-functions/iswblank.texi: Likewise.
* doc/posix-functions/link.texi: Likewise.
* doc/posix-functions/log10l.texi: Likewise.
* doc/posix-functions/log1pf.texi: Likewise.
* doc/posix-functions/log2.texi: Likewise.
* doc/posix-functions/log2f.texi: Likewise.
* doc/posix-functions/log2l.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/nl_langinfo.texi: Likewise.
* doc/posix-functions/pthread_sigmask.texi: Likewise.
* doc/posix-functions/remainderf.texi: Likewise.
* doc/posix-functions/remainderl.texi: Likewise.
* doc/posix-functions/rintf.texi: Likewise.
* doc/posix-functions/sigaltstack.texi: Likewise.
* doc/posix-functions/strtod.texi: Likewise.
* doc/posix-functions/strtold.texi: Likewise.
* doc/posix-functions/vscanf.texi: Likewise.
* doc/posix-functions/wctob.texi: Likewise.
* doc/**/*.texi: Update.
2024-04-25 Collin Funk <collin.funk1@gmail.com>
HACKING: Fix a typo.
* HACKING: Add missing 't' to platforms.
2024-04-25 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Allow unconditional use of set_relocation_prefix.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00384.html>.
* lib/relocatable.h (set_relocation_prefix): Define in a dummy way if
ENABLE_RELOCATABLE is not defined.
2024-04-25 Bruno Haible <bruno@clisp.org>
doc: Update target platforms list.
* doc/gnulib-intro.texi (Supported Platforms): Mention FreeBSD 14
instead of 13. Mention AIX 7.3 instead of 7.2. Mention Cygwin 3.4.
Don't mention IRIX.
(Formerly Supported Platforms): Add IRIX.
2024-04-25 Bruno Haible <bruno@clisp.org>
largefile: Update documentation.
* doc/largefile.texi: Remove mention of IRIX.
2024-04-24 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add a new GLFileTable class.
* pygnulib/GLFileTable.py: New file. Define the GLFileTable class with
five attributes which can be individually typed.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use the GLFileTable class.
* pygnulib/GLImport.py (GLImport.gnulib_comp, GLImport.prepare)
(GLImport.execute): Likewise. Update type hints and doc strings.
2024-04-24 Paul Eggert <eggert@cs.ucla.edu>
largefile: port to C++
This patch is mostly taken from Autoconf master.
* m4/largefile.m4 (AC_SYS_YEAR2038_RECOMMENDED):
Undefine if unpatched Autoconf 2.72 or earlier, so that
later code will redefine it.
The remaining part of this patch is from Autoconf master.
(_AC_SYS_YEAR2038_PROBE, _AC_SYS_LARGEFILE_PROBE):
Put "$CCFLAGS" in diagnostics, not "$CC".
(_AC_SYS_LARGEFILE_OPTIONS): Omit -n32.
(AC_SYS_LARGEFILE_PROBE): Fiddle with CPPFLAGS, not CC.
Do not worry about -n32.
c32srtombs,mbsrtoc32s,mbsrtowcs,wcsrtombs: pacify GCC 14
* lib/c32srtombs-state.c (_gl_c32srtombs_state):
* lib/mbsrtoc32s-state.c (_gl_mbsrtoc32s_state):
* lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state):
* lib/wcsrtombs-state.c (_gl_wcsrtombs_state):
Add an extern decl for a “private” extern symbol, to pacify GCC
14’s -Wmissing-variable-declarations option.
2024-04-24 Bruno Haible <bruno@clisp.org>
physmem: Port better to Linux.
* lib/physmem.h (physmem_total, physmem_available): Add documentation.
(physmem_claimable): New declaration.
* lib/physmem.c: Include <fcntl.h>, <stdio.h>, full-read.h.
(get_meminfo): New function.
(physmem_claimable): Renamed from physmem_available. Add logic for
aggressivity > 0.
(physmem_available): New function.
* modules/physmem (Depends-on): Add full-read.
2024-04-24 Bruno Haible <bruno@clisp.org>
Fix warnings triggered by including <config.h> twice (regr. 2024-04-19).
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00398.html>.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use AH_VERBATIM instead
of AC_DEFINE.
2024-04-23 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update C warnings for GCC 14
Adjust for C programs compiled by GCC 14.
(A C++ expert still needs to look at manywarnings-c++.m4.)
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 14.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add -Wflex-array-member-not-at-end, -Wmissing-variable-declarations.
2024-04-23 Bruno Haible <bruno@clisp.org>
Update HACKING.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00388.html>.
* HACKING: Mention an alternative to gitk.
2024-04-23 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make better use of imports.
* pygnulib/*.py: Import functions from constants.py directly instead of
assigning them to module-specific variable. Keep the module prefix for
standard library functions.
2024-04-23 Bruno Haible <bruno@clisp.org>
Update HACKING.
* HACKING: Mention the linear git history, how to work with ChangeLog,
how to run a testdir, where to find the gnulib-tool tests, and where are
the continuous integrations.
2024-04-22 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix trouble caused by Python's bytecode cache.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00367.html>.
* gnulib-tool: In sh+py mode, ignore the __pycache__ directory during
comparison.
2024-04-22 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix trouble caused by Python's bytecode cache.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00367.html>.
* gnulib-tool.py: Set PYTHONPYCACHEPREFIX, so as to avoid creating a
__pycache__ directory in the developer's gnulib checkout (only effective
with Python ≥ 3.8).
2024-04-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make temporary directories recognizable.
* pygnulib/GLConfig.py (GLConfig.__init__): Pass the 'glpy' prefix to
mkdtemp.
2024-04-21 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: In --create-testdir, just warn about a bad module name.
* gnulib-tool.sh (func_create_testdir): Validate the modules list.
2024-04-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't fail when given a bad module name.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't include None in the
list of GLModule objects.
* pygnulib/GLModuleSystem.py (GLModuleSystem.find): Document the meaning
of the None return.
2024-04-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Update type hints and docstring.
* pygnulib/GLImport.py (GLImport.execute): Update transformer type hint
to reflect change from sed expressions to re.sub() arguments.
(GLImport.prepare): Likewise. Don't reference sed or license
replacements in docstring.
2024-04-20 Bruno Haible <bruno@clisp.org>
signed-snan: Relicense under LGPLv2+.
* modules/signed-snan (License): Change to LGPLv2+.
* lib/signed-snan.h: Update license notice.
snan: Relicense under LGPLv2+.
* modules/snan (License): Change to LGPLv2+.
* lib/snan.h: Update license notice.
signed-nan: Relicense under LGPLv2+.
* modules/signed-nan (License): Change to LGPLv2+.
* lib/signed-nan.h: Update license notice.
nan: Relicense under LGPLv2+.
Eric Blake's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00290.html>.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00324.html>.
Daniel Richard G.'s approval was given in private email.
* modules/nan (License): Change to LGPLv2+.
* lib/nan.h: Update license notice.
2024-04-20 Bruno Haible <bruno@clisp.org>
gnulib-tool: In sh+py mode, don't fail because of dangling symlinks.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00318.html>
and Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00321.html>.
* gnulib-tool: In sh+py mode, use diff option '--no-dereference' if
available.
2024-04-20 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove duplicate per-module definitions.
* pygnulib/constants.py: Remove duplicate __authors__, __license__, and
__copyright__ definitions.
* pygnulib/GLInfo.py: Use the value of __authors__ and __copyright__
from __init__.py for output.
* pygnulib/*.py: Remove unused references to the constant.py
definitions.
2024-04-20 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix a bug in removed / added files handling.
* pygnulib/GLImport.py (GLImport.execute): When looking for files that
are in both filetable['old'] and filetable['new'], consider only the
first element of each tuple, not the entire tuple.
2024-04-20 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Sort file lists case-sensitively.
* pygnulib/GLImport.py (GLImport.prepare, GLImport.execute): Omit
.lower() call in sort key computation.
2024-04-20 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix output of --create-megatestdir.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): Remove stray backslash
from output.
2024-04-19 Bruno Haible <bruno@clisp.org>
wcsstr: Update doc.
* doc/posix-functions/wcsstr.texi: Update glibc version.
2024-04-19 Bruno Haible <bruno@clisp.org>
getlogin_r tests: Fix compilation error on some OpenSolaris derivatives.
* tests/test-getlogin_r.c (getlogin_r): Don't check the signature on
Solaris.
2024-04-19 Bruno Haible <bruno@clisp.org>
memset_explicit: Fix compilation error on some OpenSolaris derivatives.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Arrange to define
__STDC_WANT_LIB_EXT1__ to 1.
* modules/memset_explicit (Depends-on): Add extensions.
* m4/memset_explicit.m4 (gl_FUNC_MEMSET_EXPLICIT): Require
gl_USE_SYSTEM_EXTENSIONS.
* lib/memset_explicit.c (__STDC_WANT_LIB_EXT1__): Remove definition.
2024-04-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make use of GLModule's __hash__ method.
* pygnulib/GLModuleSystem.py (GLModuleTable.addUnconditional)
(GLModuleTable.isConditional): Use the GLModule object instead of the
module name directly.
(GLModuleTable.addConditional, GLModuleTable.getCondition): Likewise.
Use a tuple of two GLModule objects as a key for the conditionals
dictionary.
2024-04-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Simplify data structures for dependencies.
* pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Use a defaultdict
for dependers to remove the base initialization case.
(GLModuleTable.addConditional): Use a set to disallow duplicates instead
of performing list lookups.
2024-04-19 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Simplify running some commands in a given directory.
* pygnulib/GLImport.py (GLImport.execute): Use sp.call with a cwd
argument, instead of calling chdir twice.
* pygnulib/GLModuleSystem.py (GLModuleSystem.list): Likewise.
* pygnulib/main.py (mode=='find'): Likewise.
2024-04-19 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Update authors list.
* pygnulib/constants.py (__author__): Add Collin Funk.
* pygnulib/__init__.py (__copyright__, __author__): Include years and
authors of the gnulib-tool shell script.
2024-04-19 Bruno Haible <bruno@clisp.org>
getpayload* tests: Don't assume that '-' works as expected on NaN.
* tests/test-getpayload.c: Include signed-nan.h.
(main): Use minus_NaNd.
* tests/test-getpayloadf.c: Include signed-nan.h.
(main): Use minus_NaNf.
* tests/test-getpayloadl.c: Include signed-nan.h.
(main): Use minus_NaNl.
* modules/getpayload-tests (Depends-on): Add signed-nan.
* modules/getpayloadf-tests (Depends-on): Likewise.
* modules/getpayloadl-tests (Depends-on): Likewise.
signed-nan: Don't assume that '-' works as expected on NaN values.
* lib/signed-nan.h (minus_NaNf): New function.
(positive_NaNf, negative_NaNf): Use it.
(minus_NaNd): New function.
(positive_NaNd, negative_NaNd): Use it.
(minus_NaNl): New function.
(positive_NaNl, negative_NaNl): Use it.
* tests/test-totalorder.c (TOTALORDER_MINUS): New macro.
* tests/test-totalorderf.c (TOTALORDER_MINUS): New macro.
* tests/test-totalorderl.c (TOTALORDER_MINUS): New macro.
* tests/test-totalorder.h (negative_NaN_with_payload): Use it.
* tests/test-totalordermag.c (TOTALORDER_MINUS): New macro.
* tests/test-totalordermagf.c (TOTALORDER_MINUS): New macro.
* tests/test-totalordermagl.c (TOTALORDER_MINUS): New macro.
* tests/test-totalordermag.h (negative_NaN_with_payload): Use it.
2024-04-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add a comment about coding style.
* pygnulib/main.py: Add a note about the common convention of using an
underscore prefix to mark a function/variable as private.
2024-04-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove some unused instance variables.
* pygnulib/GLModuleSystem.py (GLModuleSystem.__init__)
(GLModule.__init__): Remove unused 'args' instance variable.
2024-04-19 Paul Eggert <eggert@cs.ucla.edu>
fstatat, stat: document macOS st_ino pipe bug
* doc/posix-functions/fstatat.texi (fstatat):
* doc/posix-functions/stat.texi (stat):
Document macOS bug (see <https://bugs.gnu.org/70411>).
2024-04-18 Bruno Haible <bruno@clisp.org>
totalordermagl: Add tests.
* tests/test-totalordermagl.c: New file, based on
tests/test-totalorderl.c.
* modules/totalordermagl-tests: New file, based on
modules/totalorderl-tests.
totalordermagl: New module.
* lib/math.in.h (totalordermagl): New declaration.
* lib/totalordermagl.c: New file, based on lib/totalorderl.c.
* m4/math_h.m4 (gl_MATH_H): Test whether totalordermagl is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_TOTALORDERMAGL.
(gl_MATH_H_DEFAULTS): Initialize HAVE_TOTALORDERMAGL,
REPLACE_TOTALORDERMAGL.
* modules/math (Makefile.am): Substitute GNULIB_TOTALORDERMAGL,
HAVE_TOTALORDERMAGL, REPLACE_TOTALORDERMAGL.
* modules/totalordermagl: New file, based on modules/totalorderl.
* doc/posix-functions/totalordermagl.texi: Mention the new module.
2024-04-18 Bruno Haible <bruno@clisp.org>
totalordermagf: Add tests.
* tests/test-totalordermagf.c: New file, based on
tests/test-totalorderf.c.
* modules/totalordermagf-tests: New file, based on
modules/totalorderf-tests.
totalordermagf: New module.
* lib/math.in.h (totalordermagf): New declaration.
* lib/totalordermagf.c: New file, based on lib/totalorderf.c.
* m4/math_h.m4 (gl_MATH_H): Test whether totalordermagf is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_TOTALORDERMAGF.
(gl_MATH_H_DEFAULTS): Initialize HAVE_TOTALORDERMAGF,
REPLACE_TOTALORDERMAGF.
* modules/math (Makefile.am): Substitute GNULIB_TOTALORDERMAGF,
HAVE_TOTALORDERMAGF, REPLACE_TOTALORDERMAGF.
* modules/totalordermagf: New file, based on modules/totalorderf.
* doc/posix-functions/totalordermagf.texi: Mention the new module.
2024-04-18 Bruno Haible <bruno@clisp.org>
totalordermag: Add tests.
* tests/test-totalordermag.c: New file, based on
tests/test-totalorder.c.
* tests/test-totalordermag.h: New file, based on
tests/test-totalorder.h.
* modules/totalordermag-tests: New file, based on
modules/totalorder-tests.
totalordermag: New module.
* lib/math.in.h (totalordermag): New declaration.
* lib/totalordermag.c: New file, based on lib/totalorder.c.
* m4/totalordermag.m4: New file, based on m4/totalorder.m4.
* m4/math_h.m4 (gl_MATH_H): Test whether totalordermag is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_TOTALORDERMAG.
(gl_MATH_H_DEFAULTS): Initialize HAVE_TOTALORDERMAG,
REPLACE_TOTALORDERMAG.
* modules/math (Makefile.am): Substitute GNULIB_TOTALORDERMAG,
HAVE_TOTALORDERMAG, REPLACE_TOTALORDERMAG.
* modules/totalordermag: New file, based on modules/totalorder.
* doc/posix-functions/totalordermag.texi: Mention the new module.
2024-04-18 Bruno Haible <bruno@clisp.org>
setpayloadsig*: Support newer MIPS CPUs.
* lib/setpayloadsig.c (setpayloadsig): On MIPS CPUs with MIPS_NAN2008_DOUBLE,
reject a zero payload.
* lib/setpayloadsigf.c (setpayloadsigf): On MIPS CPUs with MIPS_NAN2008_FLOAT,
reject a zero payload.
* lib/setpayloadsigl.c (setpayloadsigl): On MIPS CPUs with
MIPS_NAN2008_LONG_DOUBLE, reject a zero payload.
2024-04-18 Bruno Haible <bruno@clisp.org>
setpayload*: Support newer MIPS CPUs.
* lib/setpayload.c (setpayload): On MIPS CPUs with MIPS_NAN2008_DOUBLE,
accept a zero payload.
* lib/setpayloadf.c (setpayloadf): On MIPS CPUs with MIPS_NAN2008_FLOAT,
accept a zero payload.
* lib/setpayloadl.c (setpayloadl): On MIPS CPUs with
MIPS_NAN2008_LONG_DOUBLE, accept a zero payload.
* m4/setpayload.m4 (gl_FUNC_SETPAYLOADF, gl_FUNC_SETPAYLOAD,
gl_FUNC_SETPAYLOADL): Invoke gl_NAN_MIPS.
* modules/setpayload (Files): Add m4/nan-mips.m4.
* modules/setpayloadf (Files): Likewise.
* modules/setpayloadl (Files): Likewise.
2024-04-18 Bruno Haible <bruno@clisp.org>
totalorder*: Support newer MIPS CPUs.
* lib/totalorder.c (totalorder): On MIPS CPUs with MIPS_NAN2008_DOUBLE,
don't invert the most significant bit of the mantissa field.
* lib/totalorderf.c (totalorderf): On MIPS CPUs with MIPS_NAN2008_FLOAT,
don't invert the most significant bit of the mantissa field.
* lib/totalorderl.c (totalorderl): On MIPS CPUs with
MIPS_NAN2008_LONG_DOUBLE, don't invert the most significant bit of the
mantissa field.
* m4/totalorder.m4 (gl_FUNC_TOTALORDERF, gl_FUNC_TOTALORDER,
gl_FUNC_TOTALORDERL): Invoke gl_NAN_MIPS.
* modules/totalorder (Files): Add m4/nan-mips.m4.
* modules/totalorderf (Files): Likewise.
* modules/totalorderl (Files): Likewise.
2024-04-18 Bruno Haible <bruno@clisp.org>
snan: Add support for m68k.
* lib/snan.h (construct_memory_SNaNl): Handle m68k specially.
2024-04-18 Bruno Haible <bruno@clisp.org>
totalorderl: Simplify on MSVC.
* lib/totalorderl.c (totalorderl): If 'long double' is the same as
'double', just invoke totalorder. Otherwise, drop the optimized code
for small 'long double' since it does not occur on any platform.
* m4/totalorder.m4 (gl_FUNC_TOTALORDERL): Require
gl_LONG_DOUBLE_VS_DOUBLE. If 'long double' is the same as 'double', use
TOTALORDER_LIBM.
* modules/totalorderl (Depends-on): Add totalorder.
2024-04-18 Bruno Haible <bruno@clisp.org>
signbit: Fix typos.
* lib/signbitd.c: Fix typo in comment.
* lib/signbitf.c: Likewise.
2024-04-18 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Ignore 'attribute-defined-outside-init' warnings.
* pygnulib/.pylintrc: Add W0201 to the disabled warnings.
See discussion here:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00275.html>
2024-04-17 Bruno Haible <bruno@clisp.org>
totalorder* tests: Strengthen tests.
* tests/test-totalorder.h: Include <math.h>.
(positive_NaN_with_payload, negative_NaN_with_payload): New functions.
(main): Test quiet NaNs of each sign with different payload.
* tests/test-totalorder.c (TOTALORDER_POSITIVE_NAN,
TOTALORDER_NEGATIVE_NAN): Remove macros.
(TOTALORDER_SETPAYLOAD): New macro.
* tests/test-totalorderf.c (TOTALORDER_POSITIVE_NAN,
TOTALORDER_NEGATIVE_NAN): Remove macros.
(TOTALORDER_SETPAYLOAD): New macro.
* tests/test-totalorderl.c (TOTALORDER_POSITIVE_NAN,
TOTALORDER_NEGATIVE_NAN): Remove macros.
(TOTALORDER_SETPAYLOAD): New macro.
* modules/totalorder-tests (Depends-on): Add setpayload.
(Makefile.am): Link test-totalorder with $(SETPAYLOAD_LIBM).
* modules/totalorderf-tests (Depends-on): Add setpayloadf.
(Makefile.am): Link test-totalorderf with $(SETPAYLOADF_LIBM).
* modules/totalorderl-tests (Depends-on): Add setpayloadl.
(Makefile.am): Link test-totalorderl with $(SETPAYLOADL_LIBM).
2024-04-17 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Use same warning style as gnulib-tool.sh.
* pygnulib/GLTestDir.py (GLTestDir.execute): Prefix the
"incompatible license" message with "gnulib-tool: warning: ".
2024-04-17 Bruno Haible <bruno@clisp.org>
stdio, utime-h: Fix more linkage errors when using C++.
* lib/stdio.in.h (rpl_fwrite, rpl_fwrite_unlocked): Use _GL_EXTERN_C
instead of extern.
* lib/utime.in.h (_gl_utimens_windows): Likewise.
2024-04-17 Bruno Haible <bruno@clisp.org>
Fix linkage errors when using C++.
Reported by Miro Palmu <email@miropalmu.cc> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00274.html>.
* lib/acl.h: Add 'extern "C" {' / '}' boilerplate.
* lib/alignalloc.h: Likewise.
* lib/aligned-malloc.h: Likewise.
* lib/allocator.h: Likewise.
* lib/arcfour.h: Likewise.
* lib/arctwo.h: Likewise.
* lib/areadlink.h: Likewise.
* lib/argv-iter.h: Likewise.
* lib/argz.in.h: Likewise.
* lib/binary-io.h: Likewise.
* lib/bitrotate.h: Likewise.
* lib/bitset.h: Likewise.
* lib/bitsetv.h: Likewise.
* lib/c-strcaseeq.h: Likewise.
* lib/canon-host.h: Likewise.
* lib/careadlinkat.h: Likewise.
* lib/chdir-long.h: Likewise.
* lib/check-version.h: Likewise.
* lib/classpath.h: Likewise.
* lib/cloexec.h: Likewise.
* lib/close-stream.h: Likewise.
* lib/crc.h: Likewise.
* lib/csharpcomp.h: Likewise.
* lib/csharpexec.h: Likewise.
* lib/cycle-check.h: Likewise.
* lib/des.h: Likewise.
* lib/dev-ino.h: Likewise.
* lib/di-set.h: Likewise.
* lib/eealloc.h: Likewise.
* lib/exclude.h: Likewise.
* lib/execinfo.in.h: Likewise.
* lib/execute.h: Likewise.
* lib/exitfail.h: Likewise.
* lib/fcntl-safer.h: Likewise.
* lib/file-set.h: Likewise.
* lib/file-type.h: Likewise.
* lib/filenamecat.h: Likewise.
* lib/filevercmp.h: Likewise.
* lib/fpending.h: Likewise.
* lib/fprintftime.h: Likewise.
* lib/fpucw.h: Likewise.
* lib/fsusage.h: Likewise.
* lib/ftoastr.h: Likewise.
* lib/full-read.h: Likewise.
* lib/gc.h: Likewise.
* lib/getndelim2.h: Likewise.
* lib/getnline.h: Likewise.
* lib/getugroups.h: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/hamt.h: Likewise.
* lib/hard-locale.h: Likewise.
* lib/hash-pjw-bare.h: Likewise.
* lib/hash-pjw.h: Likewise.
* lib/hash-triple.h: Likewise.
* lib/hmac.h: Likewise.
* lib/human.h: Likewise.
* lib/i-ring.h: Likewise.
* lib/idcache.h: Likewise.
* lib/idx.h: Likewise.
* lib/ino-map.h: Likewise.
* lib/inttostr.h: Likewise.
* lib/isapipe.h: Likewise.
* lib/javacomp.h: Likewise.
* lib/javaexec.h: Likewise.
* lib/jit/cache.h: Likewise.
* lib/linebuffer.h: Likewise.
* lib/localeinfo.h: Likewise.
* lib/long-options.h: Likewise.
* lib/mbchar.h: Likewise.
* lib/mbfile.h: Likewise.
* lib/mbiter.h: Likewise.
* lib/mbiterf.h: Likewise.
* lib/mbuiter.h: Likewise.
* lib/mbuiterf.h: Likewise.
* lib/mcel.h: Likewise.
* lib/memcasecmp.h: Likewise.
* lib/memcoll.h: Likewise.
* lib/memxor.h: Likewise.
* lib/mgetgroups.h: Likewise.
* lib/mkdir-p.h: Likewise.
* lib/modechange.h: Likewise.
* lib/mountlist.h: Likewise.
* lib/mpsort.h: Likewise.
* lib/msvc-nothrow.h: Likewise.
* lib/nan.h: Likewise.
* lib/openat-priv.h: Likewise.
* lib/openat.h: Likewise.
* lib/opendirat.h: Likewise.
* lib/pagealign_alloc.h: Likewise.
* lib/parse-datetime.h: Likewise.
* lib/parse-duration.h: Likewise.
* lib/physmem.h: Likewise.
* lib/posixtm.h: Likewise.
* lib/posixver.h: Likewise.
* lib/printf-frexp.h: Likewise.
* lib/printf-frexpl.h: Likewise.
* lib/priv-set.h: Likewise.
* lib/quote.h: Likewise.
* lib/quotearg.h: Likewise.
* lib/read-file.h: Likewise.
* lib/readline.h: Likewise.
* lib/readtokens.h: Likewise.
* lib/readtokens0.h: Likewise.
* lib/regex-quote.h: Likewise.
* lib/renameatu.h: Likewise.
* lib/rijndael-alg-fst.h: Likewise.
* lib/rijndael-api-fst.h: Likewise.
* lib/safe-alloc.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/same-inode.h: Likewise.
* lib/same.h: Likewise.
* lib/save-cwd.h: Likewise.
* lib/savedir.h: Likewise.
* lib/savewd.h: Likewise.
* lib/selinux-at.h: Likewise.
* lib/signed-nan.h: Likewise.
* lib/signed-snan.h: Likewise.
* lib/snan.h: Likewise.
* lib/sockets.h: Likewise.
* lib/stdio-safer.h: Likewise.
* lib/stdlib-safer.h: Likewise.
* lib/streq.h: Likewise.
* lib/strerror-override.h: Likewise.
* lib/tmpdir.h: Likewise.
* lib/trim.h: Likewise.
* lib/u64.h: Likewise.
* lib/unicase/casefold.h: Likewise.
* lib/unicase/caseprop.h: Likewise.
* lib/unicase/invariant.h: Likewise.
* lib/unicase/special-casing.in.h: Likewise.
* lib/unicase/unicasemap.h: Likewise.
* lib/unicodeio.h: Likewise.
* lib/unilbrk/lbrktables.h: Likewise.
* lib/unilbrk/ulc-common.h: Likewise.
* lib/uninorm/decompose-internal.h: Likewise.
* lib/unistd-safer.h: Likewise.
* lib/unitypes.in.h: Likewise.
* lib/uniwbrk/wbrktable.h: Likewise.
* lib/unlinkdir.h: Likewise.
* lib/userspec.h: Likewise.
* lib/utimecmp.h: Likewise.
* lib/utimens.h: Likewise.
* lib/windows-spawn.h: Likewise.
* lib/write-any-file.h: Likewise.
* lib/xbinary-io.h: Likewise.
* lib/xgetcwd.h: Likewise.
* lib/xgetdomainname.h: Likewise.
* lib/xgethostname.h: Likewise.
* lib/xmemcoll.h: Likewise.
* lib/xprintf.h: Likewise.
* lib/xreadlink.h: Likewise.
* lib/xsize.h: Likewise.
* lib/xstrndup.h: Likewise.
* lib/xstrtod.h: Likewise.
* lib/xstrtol.h: Likewise.
* lib/yesno.h: Likewise.
* lib/isnand-nolibm.h (isnand): Declare with C linkage.
* lib/isnanf-nolibm.h (isnanf): Likewise.
* lib/isnanl-nolibm.h (isnanl): Likewise.
2024-04-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make an instance variable local to a function.
* pygnulib/GLImport.py (GLImport.execute): Define the GLFileAssistant as
local to this function because it is unused elsewhere.
2024-04-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove an unused instance attribute.
* pygnulib/GLImport.py (GLImport.__init__): Remove the unused
GLFileSystem object.
2024-04-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix a pylint 'attribute-defined-outside-init' warning.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Don't
define a 'modules' attribute since it is never used.
2024-04-17 Bruno Haible <bruno@clisp.org>
getpayloadl: Add tests.
* tests/test-getpayloadl.c: New file.
* modules/getpayloadl-tests: New file.
getpayloadl: New module.
* lib/math.in.h (getpayloadl): New declaration.
* lib/getpayloadl.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether getpayloadl is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETPAYLOADL.
(gl_MATH_H_DEFAULTS): Initialize HAVE_GETPAYLOADL, REPLACE_GETPAYLOADL.
* modules/math (Makefile.am): Substitute GNULIB_GETPAYLOADL,
HAVE_GETPAYLOADL, REPLACE_GETPAYLOADL.
* modules/getpayloadl: New file.
* doc/posix-functions/getpayloadl.texi: Mention the new module and the
glibc bug.
2024-04-17 Bruno Haible <bruno@clisp.org>
getpayloadf: Add tests.
* tests/test-getpayloadf.c: New file.
* modules/getpayloadf-tests: New file.
getpayloadf: New module.
* lib/math.in.h (getpayloadf): New declaration.
* lib/getpayloadf.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether getpayloadf is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETPAYLOADF.
(gl_MATH_H_DEFAULTS): Initialize HAVE_GETPAYLOADF, REPLACE_GETPAYLOADF.
* modules/math (Makefile.am): Substitute GNULIB_GETPAYLOADF,
HAVE_GETPAYLOADF, REPLACE_GETPAYLOADF.
* modules/getpayloadf: New file.
* doc/posix-functions/getpayloadf.texi: Mention the new module and the
glibc bug.
2024-04-17 Bruno Haible <bruno@clisp.org>
getpayload: Add tests.
* tests/test-getpayload.c: New file.
* modules/getpayload-tests: New file.
getpayload: New module.
* lib/math.in.h (getpayload): New declaration.
* lib/getpayload.c: New file.
* m4/getpayload.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether getpayload is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETPAYLOAD.
(gl_MATH_H_DEFAULTS): Initialize HAVE_GETPAYLOAD, REPLACE_GETPAYLOAD.
* modules/math (Makefile.am): Substitute GNULIB_GETPAYLOAD,
HAVE_GETPAYLOAD, REPLACE_GETPAYLOAD.
* modules/getpayload: New file.
* doc/posix-functions/getpayload.texi: Mention the new module and the
glibc bug.
2024-04-16 Sam James <sam@gentoo.org>
wchar: Fix serial number.
* m4/wchar_h.m4: Remove duplicate serial number specification and
increment serial.
2024-04-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make GLModule's __eq__ and __hash__ method agree.
* pygnulib/GLModuleSystem.py (GLModuleTable.__hash__): Only use the
module name in hash computations.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadsigl: Add tests.
* tests/test-setpayloadsigl.c: New file, based on
tests/test-setpayloadl.c.
* modules/setpayloadsigl-tests: New file.
setpayloadsigl: New module.
* lib/math.in.h (setpayloadsigl): New declaration.
* lib/setpayloadsigl.c: New file, based on lib/setpayloadl.c.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayloadsigl is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOADSIGL.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOADSIGL.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOADSIGL,
HAVE_SETPAYLOADSIGL.
* modules/setpayloadsigl: New file.
* doc/posix-functions/setpayloadsigl.texi: Mention the new module.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadsigf: Add tests.
* tests/test-setpayloadf.c (PAYLOAD_BITS): New macro.
(main): Use it.
* tests/test-setpayloadsigf.c: New file, based on
tests/test-setpayloadf.c.
* modules/setpayloadsigf-tests: New file.
setpayloadsigf: New module.
* lib/math.in.h (setpayloadsigf): New declaration.
* lib/setpayloadsigf.c: New file, based on lib/setpayloadf.c.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayloadsigf is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOADSIGF.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOADSIGF.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOADSIGF,
HAVE_SETPAYLOADSIGF.
* modules/setpayloadsigf: New file.
* doc/posix-functions/setpayloadsigf.texi: Mention the new module.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadsig: Add tests.
* tests/test-setpayload.c (PAYLOAD_BITS): New macro.
(main): Use it.
* tests/test-setpayloadsig.c: New file, based on
tests/test-setpayload.c.
* modules/setpayloadsig-tests: New file.
setpayloadsig: New module.
* lib/math.in.h (setpayloadsig): New declaration.
* lib/setpayloadsig.c: New file, based on lib/setpayload.c.
* m4/setpayloadsig.m4: New file, based on m4/setpayload.m4.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayloadsig is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOADSIG.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOADSIG.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOADSIG,
HAVE_SETPAYLOADSIG.
* modules/setpayloadsig: New file.
* doc/posix-functions/setpayloadsig.texi: Mention the new module.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadl: Fix platform-specific bugs.
* lib/setpayloadl.c (setpayloadl): On m68k, consider the actual memory
layout of a 'long double'. On platforms with quadruple-precision
'long double', store 111 bits of payload, not only 110 bits.
2024-04-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Prefer 'not in' over 'not ... in'.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Change conditional.
* pygnulib/GLModuleSystem.py (GLModuleTable.addConditional): Likewise.
2024-04-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make data structures more clear.
* pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Use a set to
represent the unconditional modules instead of a dictionary. Remove
redundant comments.
(GLModuleTable.addUnconditional): Add the module to a set instead of
using it as a key to the dictionary.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadl: Add tests.
* tests/test-setpayloadl.c: New file.
* modules/setpayloadl-tests: New file.
setpayloadl: New module.
* lib/math.in.h (setpayloadl): New declaration.
* lib/setpayloadl.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayloadl is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOADL.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOADL.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOADL,
HAVE_SETPAYLOADL.
* modules/setpayloadl: New file.
* doc/posix-functions/setpayloadl.texi: Mention the new module.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayloadf: Add tests.
* tests/test-setpayloadf.c: New file.
* modules/setpayloadf-tests: New file.
setpayloadf: New module.
* lib/math.in.h (setpayloadf): New declaration.
* lib/setpayloadf.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayloadf is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOADF.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOADF.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOADF,
HAVE_SETPAYLOADF.
* modules/setpayloadf: New file.
* doc/posix-functions/setpayloadf.texi: Mention the new module.
2024-04-16 Bruno Haible <bruno@clisp.org>
setpayload: Add tests.
* tests/test-setpayload.c: New file.
* modules/setpayload-tests: New file.
setpayload: New module.
* lib/math.in.h (setpayload): New declaration.
* lib/setpayload.c: New file.
* m4/setpayload.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether setpayload is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_SETPAYLOAD.
(gl_MATH_H_DEFAULTS): Initialize HAVE_SETPAYLOAD.
* modules/math (Makefile.am): Substitute GNULIB_SETPAYLOAD,
HAVE_SETPAYLOAD.
* modules/setpayload: New file.
* doc/posix-functions/setpayload.texi: Mention the new module.
2024-04-15 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Optimize directory creation.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use a list of possible
subdirectories and create them upfront instead of checking every file.
2024-04-15 Simon Josefsson <simon@josefsson.org>
gitlog-to-changelog: Revert 2024-04-12 fix and add documentation.
* build-aux/gitlog-to-changelog: Use localtime.
* doc/gitlog-to-changelog.texi: Add.
* doc/gnulib.texi (Build Infrastructure Modules): Add.
2024-04-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix incorrect type hint.
* pygnulib/constants.py (filter_filelist): Correct the type hint on the
'filelist' argument. It is a list of strings, not a string.
2024-04-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Write newlines consistently.
* pygnulib/constants.py (NL): Remove variable.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Use '\n' instead of
constants.NL.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Likewise.
* pygnulib/main.py (main_with_exception_handling): Likewise.
2024-04-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't perform newline conversions.
* pygnulib/constants.py (nlconvert): Remove function. Remove unused
platform import.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Remove calls to
nlconvert().
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Likewise.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
2024-04-14 Bruno Haible <bruno@clisp.org>
users.txt: Update some more entries.
* users.txt: Remove cvsps, gpg, gtkreindeer, libvirt, mailfromd, msmtp,
OPeNDAP. Update some existing entries.
2024-04-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove some unused variable assignments.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Remove unused
variable.
* pygnulib/GLInfo.py (GLInfo.date, GLInfo.version): Remove assignments
to variables unconditionally set in try, except blocks.
* pygnulib/GLModuleSystem.py (GLModule.getConditionalName)
(GLModule.getShellFunc, GLModule.getShellVar): Likewise.
2024-04-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't use mutable default arguments.
* pygnulib/GLFileSystem.py (GLFileAssistant.__init__): Set the default
argument for 'transformers' to None. If it is None then set it to an
empty dictionary in the body.
2024-04-13 Bruno Haible <bruno@clisp.org>
bootstrap: Implement phase 1 as documented in the --help output.
Reported by Simon Josefsson as bug #1 in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00152.html>.
* top/bootstrap: Correct indentation.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Implement as
documented:
If GNULIB_SRCDIR and GNULIB_REVISION are set and there is a 'gnulib'
submodule, checkout the revision GNULIB_REVISION.
If GNULIB_SRCDIR and GNULIB_REVISION are set and --no-git is specified,
don't checkout the revision GNULIB_REVISION.
2024-04-13 Bruno Haible <bruno@clisp.org>
bootstrap: Simplify git submodule initialization.
* top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): Err out if git is
older than version 1.6.4. Remove fallback code for older versions.
* build-aux/bootstrap: Regenerated.
2024-04-13 Collin Funk <collin.funk1@gmail.com>
Improve 'git diff' of Python files.
* .gitattributes: Add a rule for *.py files.
2024-04-13 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix extra arguments to function call.
* pygnulib/GLImport.py (GLImport.execute): Add the missing joinpath call
on two file name components before calling isfile().
2024-04-13 Bruno Haible <bruno@clisp.org>
bootstrap: Fix --help messages.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00162.html>.
* top/bootstrap (usage): Fix the description of GNULIB_SRCDIR. Document
GNULIB_REFDIR. Use full-sentences style. Tweak wording.
* top/bootstrap-funclib.sh (autopull_usage): Clarify the phase. Don't
mention nonexistent options --gnulib-srcdir and --gnulib-refdir. Use
full-sentences style.
(autogen_usage): Clarify the phase. Use full-sentences style.
* build-aux/bootstrap: Regenerated.
2024-04-13 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Code tweak.
* pygnulib/main.py (main): Move file contents analysis out of a 'with'
statement.
2024-04-13 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Stop using codecs.open.
* pygnulib/*.py: To open a file, consistently use
open(..., mode='[rwa]', newline='\n', encoding='utf-8').
2024-04-13 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Refactor directory tree removals.
* pygnulib/constants.py (rmtree): New function.
* pygnulib/GLImport.py (GLImport.execute): Use it instead of calling
'rm -rf' directly or shutil.rmtree.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
* pygnulib/main.py (main): Likewise.
2024-04-12 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix --copy-file directory creation.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00140.html>
* pygnulib/main.py (main): Make sure that destdir is set in the GLConfig
object before copying files.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Implement --add-import --with-*-tests correctly.
* pygnulib/GLConfig.py (GLConfig.update): Use list-merging for the test
categories.
* pygnulib/GLImport.py (GLImport.__init__): Don't merge back those
values which were already considered by taking the union.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Implement --add-import --avoid correctly.
* pygnulib/GLConfig.py (GLConfig.update): Don't test for the unused key
'tests'.
(GLConfig.default): Likewise.
* pygnulib/GLImport.py (GLImport.__init__): Don't merge back those
values which were already considered by taking the union.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Refactor.
* pygnulib/GLConfig.py (GLConfig.update, GLConfig.update_key): Improve
variable names and comments.
* pygnulib/GLImport.py (GLImport.__init__): Improve comments.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Optimize.
* pygnulib/GLConfig.py (GLConfig.update, GLConfig.update_key): Avoid
useless cloning of dictionaries.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Implement --no-conditional-dependencies correctly.
* pygnulib/GLConfig.py (GLConfig.default): For 'conddeps', return None,
not False.
(GLConfig.checkCondDeps): Update result type.
(resetCondDeps): Reset to return None, not False.
* pygnulib/GLImport.py (GLImport.actioncmd): Update.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Implement --no-libtool option correctly.
* pygnulib/GLConfig.py (GLConfig.default): For 'libtool', return None,
not False.
(GLConfig.checkLibtool): Update result type.
(resetLibtool): Reset to return None, not False.
* pygnulib/GLImport.py (GLImport.actioncmd): Update.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Accept conditional dependencies with tests.
* pygnulib/GLImport.py (GLImport.__init__): Don't reject the combination
of gl_CONDITIONAL_DEPENDENCIES and gl_WITH_TESTS.
* pygnulib/GLError.py (GLError.__repr__): Remove error 10.
* pygnulib/main.py (main_with_exception_handling): Likewise.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix handling of --with-obsolete.
* pygnulib/constants.py (TESTS): Remove 'obsolete' category.
* pygnulib/GLConfig.py (GLConfig.__init__): Add optional incobsolete
parameter.
(GLConfig.default): Handle 'incobsolete'.
(GLConfig.checkIncObsolete, GLConfig.setIncObsolete,
GLConfig.resetIncObsolete): New methods.
* pygnulib/GLModuleSystem.py (GLModuleSystem.transitive_closure): For
incobsolete, use new GLConfig methods.
* pygnulib/GLImport.py (GLImport.__init__, GLImport.actioncmd,
GLImport.gnulib_cache): Likewise.
* pygnulib/main.py (main): Pass the incobsolete value to the GLConfig
constructor.
2024-04-12 Simon Josefsson <simon@josefsson.org>
gitlog-to-changelog: Make output reproducible.
* build-aux/gitlog-to-changelog: Use gmtime instead of localtime.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix parsing of gl_LGPL in gnulib-cache.m4.
* pygnulib/GLImport.py (GLImport.__init__): Search for gl_LGPL in
gnulib-cache.m4 more carefully.
gnulib-tool.py: Fix parsing of gnulib-cache.m4.
* pygnulib/GLImport.py (GLImport.__init__): While parsing
gnulib-cache.m4, stop parsing the identifier starting with 'gl_' when
encountering a character that is not a uppercase letter, digit, or
underscore.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix misspelled option in output.
* pygnulib/GLImport.py (GLImport.actioncmd): Fix typo.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Persist the --with-longrunning-tests option.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Conditionally add
gl_WITH_LONGRUNNING_TESTS to gnulib-cache.m4.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Print warnings just like gnulib-tool.sh.
* pygnulib/main.py (main): When printing a warning, print just
"gnulib-tool" instead of the absolute file name.
2024-04-12 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Accept conditional dependencies with tests.
* gnulib-tool.sh (func_import): Don't reject the combination of
gl_CONDITIONAL_DEPENDENCIES and gl_WITH_TESTS.
2024-04-11 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Optimize module set lookups.
* gnulib-tool.py (profiler_args): New variable.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Turn
handledmodules into a set.
(GLModuleTable.transitive_closure_separately): For the 'in' test, use
a set variable main_modules_set.
2024-04-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove redundant backslashes from regexps.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't backslash ']' when it
is outside of a set.
* pygnulib/GLImport.py (GLImport.__init__): Don't use a backslash when
']' is at the start of a '[...]' set. Don't backslash special characters
in a '[...]' set since they have their meaning dropped.
* pygnulib/main.py (main): Likewise.
2024-04-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Simplify regular expressions.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): Change occurrences of '[A-Z][A-Z]*' to
'[A-Z]+'.
2024-04-11 Bruno Haible <bruno@clisp.org>
users.txt: Correct some entries.
* users.txt: Update some existing entries.
2024-04-11 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Improve sort order of directories.
* gnulib-tool.sh (func_import): In file fileset-changes, store directory
names without a trailing slash.
2024-04-11 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Remove './' prefix from file names to update or remove.
* gnulib-tool.sh (func_import): Don't let rewritten file names start
with './'.
2024-04-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix sorting of the LINGUAS file.
* pygnulib/GLImport.py (GLImport.execute): Sort the list of locales
before writing them into the LINGUAS file.
2024-04-10 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Handle .gitignore files that do not end in a newline.
* gnulib-tool.sh (func_import): If the .gitignore file ends with a
character other than a newline, add a newline before adding more lines.
2024-04-10 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Skip nonexistent modules instead of failing.
* pygnulib/GLModuleSystem.py (GLModuleSystem.find): Use the same warning
wording as gnulib-tool.sh.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Print the specified
modules, not the base modules.
(GLImport.prepare): Don't put None elements into base_modules.
2024-04-10 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use function arguments instead of magic numbers.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Remove the
'verifier' integer flag argument. Add the 'module_filter' function
argument. Use it to determine if Autoconf snippets should be printed for
each module.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Update call to use a
lambda function.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2024-04-10 Collin Funk <collin.funk1@gmail.com>
gnulib-tool: Fix a typo.
* gnulib-tool.sh: Fix a typo in comment.
* pygnulib/main.py (main): Likewise.
2024-04-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Change the avoid list to a set for lookups.
* pygnulib/GLModuleSystem.py (GLModuleSystem.__init__): Store the
avoided modules in a set instead of a list. This is used only for
membership checks when computing the transitive closure of the given
modules, therefore prefer the O(1) average case over O(n).
2024-04-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove unused setter and getter functions.
* pygnulib/GLModuleSystem.py (GLModuleTable.getAvoids)
(GLModuleTable.setAvoids): Remove these unused functions.
2024-04-09 Bruno Haible <bruno@clisp.org>
totalorder, totalorderf: Avoid miscompilation by gcc on NetBSD/i386.
* lib/totalorder.c (totalorder): Use the a compiler optimization barrier
also for GCC.
* lib/totalorderf.c (totalorderf): Likewise.
2024-04-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Simplify use of GLModuleTable accessors.
* pygnulib/GLModuleSystem.py (GLModuleTable.__getitem__): Remove
function.
* pygnulib/GLImport.py (GLImport.gnulib_cache, GLImport.gnulib_comp)
(GLImport.execute): Use function calls on the GLModuleTable to access
module lists instead of using keys to emulate a dictionary.
2024-04-09 Bruno Haible <bruno@clisp.org>
totalorder, totalorderf: Avoid miscompilation by clang on OpenBSD/i386.
* lib/totalorder.c (totalorder): Insert a compiler optimization barrier.
* lib/totalorderf.c (totalorderf): Likewise.
2024-04-09 Bruno Haible <bruno@clisp.org>
totalorder, totalorderf: Fix handling of SNaN on i386 and x86_64 CPUs.
* lib/totalorder.c: Include <string.h>.
(totalorder): Use memcpy to copy the 'double' values into the union.
Drop 'volatile'.
* lib/totalorderf.c: Include <string.h>.
(totalorderf): Use memcpy to copy the 'float' values into the union.
Drop 'volatile'.
2024-04-09 Bruno Haible <bruno@clisp.org>
totalorder tests: Fix signature test.
* tests/test-totalorder.c: Test the signature of totalorder, not
totalorderf.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use single-quotes for strings, part 2.
* pygnulib/GLEmiter.py (GLEmiter.po_Makevars): Change a double-quoted
string to single-quotes missed by the previous commit.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use single-quotes for strings.
* pygnulib/*.py: Change double-quoted strings to use single-quotes
unless doing so would require adding backslashes.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Prefer 'list.append(item)' over 'list += [item]'.
* pygnulib/*.py: Change occurrences '+= [item]' to use '.append(item)'
where item is a single element added to the list.
See discussion here:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00091.html>
2024-04-08 Bruno Haible <bruno@clisp.org>
ptsname_r: Work around ptsname_r bug on NetBSD 10.0.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): On NetBSD, arrange to override
ptsname_r.
* lib/ptsname_r.c (ptsname_r): Add workaround for NetBSD bug.
* doc/glibc-functions/ptsname_r.texi: Mention the NetBSD bug.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix incomplete type hint.
* pygnulib/GLModuleSystem.py (GLModuleTable.getCondition): Add None to
the return type hint. This is the return value when the module is not a
conditional dependency.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove unnecessary conditional.
* pygnulib/GLModuleSystem.py (GLModuleTable.__getitem__): Don't check if
the key is valid twice.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Remove an unused and incorrect function.
* pygnulib/GLFileSystem.py (GLFileAssistant.removeFile): Remove this
unused function. The correct method of removing an element from a list
is to use the remove() function, not pop() which takes an index.
2024-04-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Omit some unnecessary list() calls around sorted().
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Remove the list()
call in the argument to sorted. The sorted() function works on any
iterable and always returns a list.
* pygnulib/GLImport.py (GLImport.rewrite_old_files)
(GLImport.rewrite_new_files): Likewise.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure)
(GLModuleTable.transitive_closure_separately): Likewise.
* pygnulib/GLTestDir.py (GLTestDir.rewrite_files): Likewise.
2024-04-08 Bruno Haible <bruno@clisp.org>
pthread-h: Fix configuration (regression 2024-03-28).
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00036.html>.
* m4/pthread_h.m4 (gl_PTHREAD_H_PART1): New macro, extracted from
gl_PTHREAD_H.
(gl_PTHREAD_H): Require it. Define using AC_DEFUN.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Require gl_PTHREAD_H_PART1,
not only gl_PTHREAD_H_DEFAULTS.
2024-04-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't remove duplicate avoided modules.
* pygnulib/GLConfig.py (GLConfig.addAvoid): Don't remove duplicates from
the modules passed with --avoid.
2024-04-07 Bruno Haible <bruno@clisp.org>
sigsegv tests: Avoid a crash on NetBSD 10.0/i386.
* tests/test-sigsegv-catch-stackoverflow1.c
(stackoverflow_handler_continuation): On NetBSD/i386, align the stack
pointer before calling longjmp.
2024-04-07 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Add comment.
* pygnulib/constants.py (joinpath): Document a limitation.
2024-04-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't allow path normalization to delete a variable.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Use os.path.join() on the
Makefile variable so it isn't deleted by a following '..' from
os.path.norm().
2024-04-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use auxdir as given by AC_CONFIG_AUX_DIR.
* pygnulib/GLImport.py (GLImport.__init__): Don't modify the path given
by AC_CONFIG_AUX_DIR by prefixing it with destdir. Use a more strict
regular expression instead of cleaner().
2024-04-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Locate configure.ac correctly when --dir is given.
* pygnulib/GLConfig.py (GLConfig.setAutoconfFile): Don't combine the
given file name argument with destdir.
* pygnulib/main.py (main): Use os.path.join() instead of joinpath() when
constructing the path to the configure.ac file. The latter normalizes
paths which causes the test suite to fail when printed in files.
2024-04-06 Bruno Haible <bruno@clisp.org>
expm1l: Work around a NetBSD 10.0/i386 bug.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Test the value of
expm1l(2^LDBL_MIN_EXP).
* doc/posix-functions/expm1l.texi: Mention the NetBSD 10.0/i386 bug.
* tests/test-expm1.h (test_function): Allow more deviation on
NetBSD/i386.
2024-04-05 Bruno Haible <bruno@clisp.org>
exp2l: Work around a NetBSD 10.0/i386 bug.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Test the value of exp2l(LDBL_MAX_EXP-1).
* doc/posix-functions/exp2l.texi: Mention the NetBSD 10.0/i386 bug.
2024-04-05 Bruno Haible <bruno@clisp.org>
roundl: Fix a link error on Linux/powerpc64le.
* m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Accept an additional TYPE
argument.
* m4/isfinite.m4 (gl_ISFINITE): Use the type 'double'.
* m4/isinf.m4 (gl_ISINF): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Use the type 'float'.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Use the type 'long double'.
2024-04-05 Bruno Haible <bruno@clisp.org>
exp2l tests: Enable a test for glibc versions >= 2.16.
* tests/test-exp2.h (test_function): Disable a glibc bug workaround for
glibc versions >= 2.16.
2024-04-05 Bruno Haible <bruno@clisp.org>
expl tests: Avoid test failure on NetBSD 10.0/i386.
* tests/test-exp.h (test_function): Allow more deviation on NetBSD/i386.
2024-04-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use 'Any' instead of type unions in GLConfig.
* pygnulib/GLConfig.py (GLConfig.__getitem__, GLConfig.dictionary)
(GLConfig.default, GLConfig.isdefault, GLConfig.values): Use 'Any' from
the typing module instead of large type unions. This silences unhelpful
warnings from type checkers.
2024-04-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix 'consider-using-set-comprehension' warnings.
* pygnulib/GLImport.py (GLImport.prepare): Create a set directly instead
of creating a list and passing it to a call of set().
(GLImport.__init__): Likewise. Use max() instead of getting the last
element of a sorted list.
2024-04-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix 'consider-using-with' pylint warnings.
* pygnulib/GLModuleSystem.py (GLModuleSystem.list): Use run() instead of
Popen() from the subprocess module. This function handles cleanup
internally instead of as a context manager via the 'with' statement.
2024-04-05 Bruno Haible <bruno@clisp.org>
Update for NetBSD 9.3 and 10.0.
* doc/*/*.texi: Update for NetBSD 9.3 and 10.0.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Update comments and cross-compilation
guess.
* m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): Likewise.
* m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise.
* m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): Likewise.
* m4/fcntl.m4: Update comments.
* m4/fenv-environment.m4: Likewise.
* m4/fenv-exceptions-trapping.m4: Likewise.
* m4/fnmatch.m4: Likewise.
* m4/getcwd-abort-bug.m4: Likewise.
* m4/iswdigit.m4: Likewise.
* m4/iswxdigit.m4: Likewise.
* m4/modfl.m4: Likewise.
* m4/wcscmp.m4: Likewise.
* m4/wcsncmp.m4: Likewise.
* m4/wctrans.m4: Likewise.
* m4/wcwidth.m4: Likewise.
2024-04-04 Collin Funk <collin.funk1@gmail.com>
posix-modules, all-modules: Fix --version output using git options.
* all-modules (func_version): Pass --format and --date options to git
so the output does not depend on the user's configuration. Pass
'-n 1' to speed up the operation, since we only need the first entry.
* posix-modules (func_version): Likewise.
2024-04-04 Bruno Haible <bruno@clisp.org>
all-modules: Fix errors during './all-modules --version' execution.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00050.html>.
* all-modules (func_exit, func_fatal_error, func_readlink,
func_gnulib_dir): Include auxiliary functions from gnulib-tool.sh.
2024-04-04 Bruno Haible <bruno@clisp.org>
posix-modules: Sync auxiliary functions from gnulib-tool.sh.
* posix-modules (func_exit, func_fatal_error, func_readlink,
func_gnulib_dir): Move before func_usage and func_version. Incorporate
improvements from gnulib-tool.sh.
2024-04-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Ignore 'use-dict-literal' warnings.
* pygnulib/.pylintrc: Don't emit warning messages suggesting that
'dict()' be converted to '{}'. This literal can be mistaken for sets,
see discussion here:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00054.html>
* pygnulib/main.py: Document this convention in coding style section.
* pygnulib/GLFileSystem.py (GLFileAssistant.__init__): Convert an
occurrence of '{}' to 'dict()'.
2024-04-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix pylint 'raise-missing-from' warnings.
* pygnulib/*.py: Use explicit exception chaining so that stack trace
messages do not seem like bugs. See examples in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00056.html>
2024-04-04 Bruno Haible <bruno@clisp.org>
Add serial numbers to *.m4 files that did not have them.
* m4/*.m4: Ensure the usual file header with file name and serial
number.
Make the file header of *.m4 files consistent:
1. The file name.
2. The serial number.
3. The copyright and license header.
* m4/*.m4: Adjust file headers.
Make the serial numbers in *.m4 files effective.
Reported by Sam James in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00051.html>.
* m4/*.m4: Apply sed -e '1s|^# \(.*[.]m4\) serial |# \1\n# serial |'.
2024-04-03 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Reduce code duplication in last commit.
* gnulib-tool.sh (func_get_automake_snippet_unconditional): Refactor
computation of sed_prepend_auxdir.
2024-04-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.sh: Don't emit an unnecessary './' path component.
* gnulib-tool.sh (func_get_automake_snippet_unconditional): Only prefix
build-aux files with '$(top_srcdir)/' when $auxdir is the top level
directory.
2024-04-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Modernize class declarations to Python 3.
* pygnulib/GLConfig.py: Remove the explicit object inheritance from
class declarations. This is previously required in Python 2.
* pygnulib/GLEmiter.py: Likewise.
* pygnulib/GLFileSystem.py: Likewise.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLInfo.py: Likewise.
* pygnulib/GLMakefileTable.py: Likewise.
* pygnulib/GLModuleSystem.py: Likewise.
* pygnulib/GLTestDir.py: Likewise.
2024-04-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Ignore pylint 'unidiomatic-typecheck' warnings.
* pygnulib/.pylintrc: Disable warning C0123 since we don't mind using
'type() is' instead of 'isinstance'.
2024-04-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't ignore the argument to --doc-base.
* pygnulib/main.py (main): Check for the argument to --doc-base before
creating the GLConfig object.
2024-04-03 Pádraig Brady <P@draigBrady.com>
quotearg: fix shell-escape quoting with single quotes
With shell-escape quoting, we misquoted strings
where the first and last characters required escaping,
while the string also contained single quotes.
* lib/quotearg.c (quotearg_buffer_restyled): Ensure that
pending_shell_escape_end is reset to the initial state
when reprocessing input due to single quotes.
* tests/test-quotearg-simple.c: Add a minimal test case.
* tests/test-quotearg.c: Likewise.
* tests/test-quotearg.h: Likewise.
Reported by Grisha Levit
2024-04-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use [] instead of list() to initialize empty lists.
* pygnulib/*.py: Change occurrences of list() to [].
2024-04-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix determination whether to add the dummy module.
* pygnulib/GLModuleSystem.py (GLModuleSystem.add_dummy): Only match the
'lib_SOURCES' variable; stop at end-of-line.
2024-04-02 Pádraig Brady <P@draigBrady.com>
renameatu: handle ENOSYS from renameatx_np
* lib/renameatu.c(): Fall back to renameat() without RENAME_EXCL
if "Function not implemented" is returned. This was seen with macFUSE.
Reported at https://github.com/coreutils/coreutils/issues/79
2024-04-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Accept valid make syntax for escaped newlines.
* pygnulib/GLModuleSystem.py (GLModuleTable.add_dummy): Use
combine_lines instead of remove remove_backslash_newline so spaces are
added between each combined line.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
* pygnulib/constants.py (remove_backslash_newline): Remove unused
function.
2024-04-02 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't default to 'build-aux' for --auxdir.
* pygnulib/GLConfig.py (GLConfig.__getitem__): Don't map '' to
'build-aux' for the 'auxdir' key.
* pygnulib/GLImport.py (GLImport.__init__): Change conditional to use an
empty string instead of None since this is returned when --auxdir is not
used.
2024-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove unused variables.
* pygnulib/GLConfig.py: Remove unused variables.
* pygnulib/GLEmiter.py: Likewise.
* pygnulib/GLFileSystem.py: Likewise.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLInfo.py: Likewise.
* pygnulib/GLModuleSystem.py: Likewise.
* pygnulib/GLTestDir.py: Likewise.
* pygnulib/main.py: Likewise.
* gnulib-tool.sh (func_emit_tests_Makefile_am): Remove unused variable
perhapsLT.
gnulib-tool.py: Remove no-op statements.
* pygnulib/GLConfig.py (GLConfig.update): Remove no-op statement.
gnulib-tool.py: Remove unused imports.
* pygnulib/GLFileSystem.py: Remove unused imports.
* pygnulib/GLEmiter.py: Likewise.
(GLEmiter.autoconfSnippets): Fix type assertion message.
gnulib-tool.py: Fix some IDE warnings.
* HACKING: Update configuration of warnings.
2024-04-01 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Add developer documentation.
* HACKING: New section "Debugging the Python implementation of
gnulib-tool".
2024-04-01 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Use a standard Python program directory structure.
* pygnulib/main.py (main_with_exception_handling): New function for
existing code.
* .gnulib-tool.py: New file.
* pygnulib/constants.py: Update the computation of APP['root'].
* gnulib-tool.py: Don't set PYTHONPATH.
2024-04-01 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Simplify imports.
* pygnulib/enums.py: New file, extracted from pygnulib/GLFileSystem.py.
* pygnulib/classes.py: Remove file.
* pygnulib/GLFileSystem.py: Remove class CopyAction. Update imports.
* pygnulib/GLTestDir.py: Update imports.
* pygnulib/GLConfig.py: Update imports and remove 'classes.' prefix.
* pygnulib/main.py: Likewise.
2024-04-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Only check existence for --extract-tests-module.
* pygnulib/main.py (main): Check that the test module exists instead of
looking it up and patching it if diff's are found.
2024-04-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix --extract-tests-module with a test module.
* pygnulib/GLModuleSystem.py (GLModule.getTestsName): Return the module
name with '-tests' appended to it unconditionally.
2024-04-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Use case-sensitive sorting for file names.
* pygnulib/GLImport.py (GLImport.prepare): Remove the str.lower key from
the call to sorted().
2024-04-01 Paul Eggert <eggert@cs.ucla.edu>
getcwd: port better to buggy file systems
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
Time out after 5 seconds.
2024-03-31 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add missing quotation mark to reminder.
* pygnulib/GLImport.py (GLImport.execute): Add missing end quote around
file name in AC_CONFIG_FILES reminder.
2024-03-31 Bruno Haible <bruno@clisp.org>
quotearg: Improve documentation.
* lib/quotearg.h: Refer to specification of $'...' syntax. Document a
limitation of QA_ELIDE_OUTER_QUOTES.
2024-03-31 Bruno Haible <bruno@clisp.org>
canonicalize[-lgpl] tests: Fix test failure on musl libc.
Reported by Adept's Lab <adeptslab@gmail.com> via Pádraig Brady at
<https://lists.gnu.org/archive/html/bug-coreutils/2024-03/msg00086.html>.
* tests/test-canonicalize-lgpl.c (main): Don't special-case "//"
handling for musl libc.
* tests/test-canonicalize.c (main): Likewise.
* modules/canonicalize-lgpl-tests (Files): Remove m4/musl.m4.
(configure.ac): Don't invoke gl_MUSL_LIBC.
2024-03-31 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix output of 'po/LINGUAS'.
* pygnulib/GLImport.py (GLImport.execute): Only use PO files when
determining the output for po/LINGUAS.
2024-03-31 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix sorting of modules when --local-dir is used.
* pygnulib/GLModuleSystem.py (GLModule.__eq__, GLModule.__ne__)
(GLModule.__ge__, GLModule.__gt__, GLModule.__hash__, GLModule.__le__)
(GLModule.__lt__): Use module names as identifiers instead of paths.
2024-03-31 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Make a module's name immediately accessible.
* pygnulib/GLModuleSystem.py (GLModuleSystem.find): Pass the module name
to the GLModule constructor.
(GLModule.__init__): Accept the module's name as argument and store it.
(GLModule.getName): Simplify.
2024-03-30 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't discard the 'dummy' module.
* pygnulib/GLImport.py (GLImport.prepare): Don't set modules stored in
the GLModuleTable until after the 'dummy' module is added.
* pygnulib/GLModuleSystem.py (GLImport.setBaseModules)
(GLImport.setFinalModules, GLImport.setMainModules)
(GLImport.setTestsModules): Don't sort modules since the 'dummy' module
should be placed last in the Makefiles.
2024-03-30 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix reading of 'gl_VC_FILES' in gnulib-cache.m4.
* pygnulib/GLImport.py (GLImport.__init__): Check for an empty string
explicitly in conditional so False is not ignored.
2024-03-30 Bruno Haible <bruno@clisp.org>
time_r tests: Avoid misleading skip message on native Windows.
* tests/test-localtime_r.c (main): Use the macro FRENCH_TZ.
* tests/test-localtime_r-mt.c (main): Likewise.
2024-03-30 Paul Eggert <eggert@cs.ucla.edu>
time_r-tests: skip French tests if no Europe/Paris
* tests/test-localtime_r.c (main):
* tests/test-localtime_r-mt.c (main):
If TZ='Europe/Paris' does not work, skip these tests.
2024-03-29 Paul Eggert <eggert@cs.ucla.edu>
intprops: pacify GCC < 10 -Wsign-compare
Problem reported by Martin Dorey in:
https://savannah.gnu.org/bugs/index.php?65537
* lib/intprops-internal.h (_GL_INT_MULTIPLY_WRAPV):
When working around GCC bug 91450, pacify -Wsign-compare by
casting 0 to the result type.
2024-03-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Use bold output on Linux, NetBSD, OpenBSD, OmniOS consoles.
Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00399.html>.
* gnulib-tool.sh (func_show_module_list): Use 'tput' to determine the
"bold" capability of terminal types other than xterm*.
* pygnulib/constants.py (get_terminfo_string, bold_escapes): New
functions.
* pygnulib/GLTestDir.py (GLTestDir.execute): Invoke
constants.bold_escapes.
* pygnulib/GLImport.py (GLImport.prepare): Likewise.
2024-03-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Display specified modules in bold.
* pygnulib/GLImport.py (GLImport.prepare): Detect terminals starting
with 'xterm'. Change hexadecimal numbers to octal, matching
gnulib-tool.sh.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2024-03-29 Bruno Haible <bruno@clisp.org>
attribute: Work around compiler bug of Oracle cc 12.6.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Expand _GL_ATTRIBUTE_PACKED to
empty on SunPRO C.
2024-03-29 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't print Makefile.am edits that are already done.
* pygnulib/GLMakefileTable.py (GLMakefileTable): Improve comments.
(GLMakefileTable.__getitem__): Do not clone the result.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am, tests_Makefile_am):
Avoid a KeyError when testing for 'var'.
Use 'del' to remove a dictionary entry.
* pygnulib/GLImport.py (GLImport.execute): Avoid a KeyError when
testing for 'var'. Simplify loop over makefiletable.
2024-03-28 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99: Fix test failures with Oracle cc 12.6.
* lib/fenv-except-state-set.c (mask387cw): New function.
(fesetexceptflag): Use it on glibc.
2024-03-28 Bruno Haible <bruno@clisp.org>
mcel tests: Fix test failure with Oracle cc 12.6.
* tests/test-mcel.c (main): Explicitly return 0 at the end.
2024-03-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Drop workarounds for Automake < 1.14.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00384.html>.
* gnulib-tool.sh (func_emit_lib_Makefile_am): Emit pkgdata_DATA
initialization always.
(func_emit_tests_Makefile_am): Likewise.
(func_import): Don't emit 'AC_REQUIRE([AM_PROG_CC_C_O])' into
gnulib-comp.m4.
(func_create_testdir): Don't emit AM_PROG_CC_C_O into configure.ac.
Bump required Automake version to 1.14.
(func_create_megatestdir): Bump required Automake version to 1.14.
* pygnulib/constants.py: Update comments.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Emit pkgdata_DATA
initialization always. Don't return uses_subdirs.
(GLEmiter.tests_Makefile_am): Likewise.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Don't emit
'AC_REQUIRE([AM_PROG_CC_C_O])'.
(GLImport.execute): Update.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't emit AM_PROG_CC_C_O
into configure.ac. Bump required Automake version to 1.14.
(GLMegaTestDir.execute): Bump required Automake version to 1.14.
2024-03-28 Bruno Haible <bruno@clisp.org>
pthread-h: Fix override of pthread_spinlock_t with non-GNU compilers.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Define through AC_DEFUN_ONCE.
Require gl_PTHREAD_H_DEFAULTS, not gl_PTHREAD_H.
* m4/pthread_h.m4 (gl_PTHREAD_H): Invoke gl_PTHREAD_SPIN.
* lib/pthread.in.h (pthread_spinlock_t,
GNULIB_defined_pthread_spin_types): Don't define if
HAVE_PTHREAD_SPIN_INIT && !REPLACE_PTHREAD_SPIN_INIT.
* modules/pthread-h (Files): Add m4/pthread-spin.m4.
2024-03-28 Bruno Haible <bruno@clisp.org>
havelib: Recognize ELF platform despite SunPRO C on Linux.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Recognize Linux as an ELF
platform, even with the SunPRO C compiler that does not define __ELF__.
2024-03-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix missing 'gnulib-cache.m4' in EXTRA_DIST.
* pygnulib/GLMakefileTable.py (GLMakefileTable.parent): Fix the loop
condition so that it matches gnulib-tool.sh.
2024-03-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix whitespace in gnulib-comp.m4.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Prefix each line with
the indentation string instead of using regular expressions.
2024-03-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Inline 'sed' invocations used on library files.
* pygnulib/GLFileSystem.py (GLFileAssistant.__init__): Update type hints
and docstrings to reflect changes necessary for using re.sub() instead
of 'sed'.
(GLFileAssistant.add_or_update): Use re.sub() instead of invoking 'sed'.
* pygnulib/GLImport.py (GLImport.prepare): Update transformation
variables to reflect changes to GLFileAssistant.
2024-03-27 Bruno Haible <bruno@clisp.org>
obstack: Work around ICE with Oracle cc 12.6 (regr. 2023-12-01).
* lib/obstack.in.h (__PTR_ALIGN): Use SMALL_PTRDIFF_T, instead of
testing sizeof (ptrdiff_t) < sizeof (void *) at compile time.
* m4/obstack.m4 (gl_FUNC_OBSTACK): Set SMALL_PTRDIFF_T.
* modules/obstack (Makefile.am): Substitute SMALL_PTRDIFF_T.
2024-03-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add type hints to all functions.
* pygnulib/*.py: Add type hints and remove duplicate function signatures
from docstrings.
2024-03-26 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Allow the use of both configure.ac and configure.in.
* pygnulib/GLImport.py (GLImport.__init__): Remove redundant checks for
configure.ac and configure.in.
* pygnulib/main.py (main): Check for configure.ac and configure.in
before reading it. Pass it to GLImport using the GLConfig object.
2024-03-26 Bruno Haible <bruno@clisp.org>
gettime-res: Fix test failure on Solaris 11.4/SPARC.
* lib/gettime-res.c (gettime_res): On Solaris/SPARC, just return 1 ns.
2024-03-25 Bruno Haible <bruno@clisp.org>
jit/cache: Fix a compilation error on Solaris 11.4/SPARC.
* lib/jit/cache.h: On Solaris, include <stddef.h>.
2024-03-25 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Print "executing mkdir ..." messages.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Print a message before creating a 'build-aux' directory.
2024-03-25 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak last change.
* pygnulib/GLImport.py (GLImport.execute): Recognize #if also at the
beginning of an Include snippet.
2024-03-25 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix output of #include directive advice.
* pygnulib/GLImport.py (GLImport.execute): Copy comment from
gnulib-tool.sh with modified variable names. Search the 'Include:' as a
whole instead of each individual line.
2024-03-25 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Simplify last change.
* pygnulib/GLImport.py (GLImport.execute): Remove unnecessary list to
set and set to list conversion.
2024-03-25 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix "Creating directory" output.
* pygnulib/GLImport.py (GLImport.execute): Reorder directories. Use
os.path.join instead of joinpath to avoid path normalization.
2024-03-25 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak last change.
* pygnulib/GLImport.py (GLImport._update_ignorelist_): Rename some local
variables. Use rstrip built-in function.
2024-03-25 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Handle removed files in the vc ignore files.
* pygnulib/GLImport.py (GLImport._update_ignorelist_): Handle removed
files. Check whether the original lines should be removed too.
2024-03-24 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix filetable construction for ignorelist.
* pygnulib/GLImport.py (GLImport.execute): Fix typo in dictionary key
that overwrites removed files. Sort ignorelist by directory.
2024-03-24 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Use Python raw strings for regular expressions.
* pygnulib/*.py: Use raw string syntax for regular expression pattern
strings and repl strings.
2024-03-24 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Bring the output into the right order.
* pygnulib/constants.py (force_output): New function.
(execute): Flush stdout after printing the "executing ..." line.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Invoke force_output.
* pygnulib/main.py (test, megatest): Likewise.
2024-03-24 Bruno Haible <bruno@clisp.org>
nstrtime, c-nstrftime: Fix %c directive's result on glibc ≤ 2.30.
* lib/strftime.c (__strftime_internal): On glibc ≤ 2.30, like on NetBSD
and Solaris, remove the last word of the %c directive's result if it
looks like a time zone.
* doc/posix-functions/strftime.texi: Update platforms list.
2024-03-24 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix output of notices.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't print notices if the
verbosity is < -1. Strip newlines from each notice.
* pygnulib/GLImport.py (GLImport.prepare): Don't print notices if the
verbosity is < -1. Strip only newlines, not spaces.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix the modules indentation in --create-testdir' output.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use specified_modules
instead of self.config.getModules(), since the latter may be empty.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Use a default auxdir in --extract-automake-snippet.
* gnulib-tool.sh (extract-automake-snippet): Set auxdir to 'build-aux'
if it is not set.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't unnecessarily sort an EXTRA_DIST augmentation.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Don't remove duplicates or
sort the filenames in the EXTRA_lib_SOURCES augmentation or the
EXTRA_DIST augmentation for build-aux.
2024-03-23 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't print Python bools in gnulib-cache.m4.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Convert Python bools to
lowercase before printing.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't unnecessarily run configure && make in testdirs.
* pygnulib/GLTestDir.py (GLTestDir.execute): Correct the value of
tests_distributed_built_sources.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix autoconf snippets inclusion if --single-configure.
* pygnulib/GLTestDir.py (GLTestDir.execute): Correct the arguments
passed to autoconfSnippets.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Produce same diagnostics regardless of Automake version.
* pygnulib/GLTestDir.py (_patch_test_driver): Suppress the diagnostics
from 'patch', and instead provide our own diagnostics.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Print "executing touch config.h.in".
* pygnulib/GLTestDir.py (GLTestDir.execute): Print
"executing touch config.h.in", like gnulib-tool.sh does.
2024-03-23 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Refactor.
* pygnulib/GLImport.py (GLImport._done_dir_,
GLImport._update_ignorelist_, GLImport.execute): Rename some variables.
(GLImport._update_ignorelist_): Use constants.substart.
2024-03-23 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 69.
Follow gnulib-tool change
2012-08-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove old file names from .cvsignore, .gitignore.
* pygnulib/GLImport.py (GLImport._update_ignorelist_): Add
gnulib-comp.m4 to the added file list.
(GLImport.execute): Remove unused variables. Use sets to match the
'join' invocations in gnulib-tool.sh.
2024-03-22 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't remove newlines in testdir's Automake snippets.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't strip newlines from
Automake snippets.
2024-03-22 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix empty newline output in test directories.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Match newlines printed by gnulib-tool.sh.
2024-03-22 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix unconditional Automake snippets for non-tests.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Fix the file lookups used
to determine the EXTRA_DIST and EXTRA_lib_SOURCES Automake variables.
Update comment to match gnulib-tool.sh.
* pygnulib/constants.py (filter_filelist): Fix misleading return type in
docstring. Return an empty string if no files were found.
2024-03-22 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Produce same diagnostics regardless of Automake version.
* gnulib-tool.sh (func_create_testdir, func_create_megatestdir):
Suppress the diagnostics from 'patch', and instead provide our own
diagnostics.
2024-03-22 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove test-driver.{orig,rej} if patching succeeded.
* gnulib-tool.sh (func_create_testdir, func_create_megatestdir): After
a 'patch' command failed, remove the leftover files test-driver.orig and
test-driver.rej.
* pygnulib/GLTestDir.py (_patch_test_driver): Likewise.
2024-03-22 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix an error in --create-testdir.
* pygnulib/GLTestDir.py (GLTestDir.execute): Fix chdir calls at the end.
2024-03-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.sh: Avoid a redundant space in gl_AVOID in gnulib-cache.m4.
* gnulib-tool.sh (avoidlist): Don't add a space before the first module
name.
2024-03-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix --extract-recursive-link-directive.
* pygnulib/GLModuleSystem.py (GLModule.getLinkDirectiveRecursively):
Check the 'Link:' section of each individual module. Use sets instead of
lists to remove duplicates.
2024-03-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make --extract-filelist match gnulib-tool.sh.
* pygnulib/GLModuleSystem.py (GLModule.getFiles_Raw): New function which
returns the 'Files:' section from a module unchanged.
(GLModule.getFiles): Use it.
* pygnulib/main.py (main): Use it and match the output of gnulib-tool.sh
for --extract-filelist.
2024-03-21 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make the .gitignore files handling more consistent.
* gnulib-tool.sh (func_done_dir): Ignore the presence or absence of a
.git directory if there is a .gitignore file in the same place.
* pygnulib/GLImport.py (GLImport._done_dir_): Likewise.
2024-03-20 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Undocument the --[no-]cache-modules options.
Reported by Collin Funk in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00234.html>.
Rationale:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00243.html>.
* gnulib-tool.sh (func_usage): Don't mention --cache-modules,
--no-cache-modules.
2024-03-20 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't print empty Automake snippets.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): Handle empty strings when checking if the
snippet should be printed.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 68.
Follow gnulib-tool change
2022-07-31 Akim Demaille <akim@lrde.epita.fr>
gnulib-tool: add support for --automake-subdir-tests
* pygnulib/main.py (main): Add support for --automake-subdir-tests.
* pygnulib/GLInfo.py (GLInfo.usage): Add --automake-subdir-tests to the
help message.
* pygnulib/GLConfig.py (GLConfig.__init__): Add 'automake_subdir_tests'
to the parameter list. Initialize it.
(GLConfig.default): Default --automake-subdir-tests to False.
(GLConfig.resetAutomakeSubdir): Fix misleading docstring.
(GLConfig.getAutomakeSubdirTests, GLConfig.setAutomakeSubdirTests)
(GLConfig.resetAutomakeSubdirTests): New functions to manipulate and
access whether --automake-subdir-tests is in use.
* pygnulib/GLEmiter.py (GLEmiter.shellvars_init)
(GLEmiter.initmacro_end): Use sourcebase when handling tests and
--automake-subdir-tests is given.
* pygnulib/GLError.py (GLError.__repr__): Update error message to
include --automake-subdir-tests.
* pygnulib/GLImport.py (GLImport.__init__): Check for the
'subdir-objects' Automake option when --automake-subdir-tests is in use.
(GLImport.actioncmd): Add --automake-subdir-tests to the actioncmd
printed in generated files.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix incorrect assignment operator.
* pygnulib/GLImport.py (GLImport.actioncmd): Use '+=' instead of '=' to
append the string to the actioncmd instead of overwriting it.
2024-03-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make it work in the test suite.
* gnulib-tool.sh (gnulib_dir): Make absolute.
(func_create_megatestdir): If .git/refs/heads/master does not exist, use
ChangeLog instead.
* pygnulib/main.py (main): Make gnulib_dir absolute.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): If
.git/refs/heads/master does not exist, use ChangeLog instead.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make sure temporary files are removed.
* pygnulib/GLImport.py (GLImport.execute): Fix nesting of statement so
that both temporary files are removed.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 67.
Follow gnulib-tool change
2022-03-01 Paul Eggert <eggert@cs.ucla.edu>
Create lib/Makefile.am after gnulib-comp.m4
* pygnulib/GLImport.py (GLImport.execute): Create library makefile after
creating gnulib-comp.m4.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 66.
Follow gnulib-tool change
2021-12-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix handling of module libtextstyle-optional.
* pygnulib/GLModuleSystem.py (GLModule.repeatModuleInTests): New function.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Use it for creating
the tests/Makefile.am.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use it when creating the
file list.
2024-03-19 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 65.
Follow gnulib-tool change
2021-12-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't insist on ACLOCAL_AMFLAGS.
* pygnulib/GLImport.py (GLImport.execute): Don't add extra '-I' before
m4 directory in ACLOCAL_AMFLAGS. Prefer '0' instead of 'int()'. Mention
the use of AC_CONFIG_MACRO_DIRS in configure.ac as an alternative to
augmenting ACLOCAL_AMFLAGS.
* pygnulib/main.py (main): To find the m4 directories, look also for
AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS invocations in
configure.ac. Remove unnecessary call to 'joinpath' since it accepts a
variable length of arguments.
2024-03-18 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak last change.
* pygnulib/GLModuleSystem.py (GLModule.isTests, GLModule.isNonTests):
Update comments.
2024-03-18 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 64.
Follow gnulib-tool change
2021-12-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Respect applicability 'all' without --single-configure.
* pygnulib/GLModuleSystem.py (GLModule.isTests): Treat modules with
applicability 'all' like 'tests' modules, not like 'main' modules.
(GLModule.isNonTests): Treat all modules not ending in '-tests' as
non-test modules.
(GLModule.getApplicability): Don't use GLModule.isTests(). Because it
depends on the result of this function, using it would cause a
RecursionError exception.
(GLModule.getDependencies): Respect the difference between
module.isTests(), module.isNonTests(), and
module.getName().endswith('-tests').
(GLModule.getAutomakeSnippet_Unconditional, GLModule.getLicense)
(GLModuleTable.add_dummy): Likewise.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Likewise.
2024-03-17 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Handle empty lists of lines consistently.
* pygnulib/constants.py (lines_to_multiline): New function.
(nlremove): Remove unused function.
* pygnulib/GLEmiter.py (_eliminate_NMD): Use lines_to_multiline instead
of the '\n'.join idiom.
(GLEmiter.autoconfSnippet, GLEmiter.autoconfSnippets,
GLEmiter.lib_Makefile_am): Likewise.
* pygnulib/GLImport.py (GLImport._update_ignorelist_, GLImport.execute):
Likewise.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively,
GLModule.getLinkDirectiveRecursively, GLModuleTable.remove_if_blocks):
Likewise.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
* pygnulib/main.py (main): Likewise.
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 63.
Follow gnulib-tool change
2020-12-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix logic whether to add a dummy.c.
* pygnulib/GLModuleSystem.py (GLModuleTable.remove_if_blocks): New
function.
(GLModuleTable.add_dummy): Use it to eliminate all conditional
statements from the automake snippet.
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't print extra newlines.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Don't print extra
newline that are not printed by gnulib-tool.sh.
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 62.
Follow gnulib-tool change
2020-02-22 Bruno Haible <bruno@clisp.org>
gnulib-tool: Ensure copied files are writable.
* pygnulib/constants.py (ensure_writable): New function. Make sure files
are writable.
(symlink_relative, hardlink): Use it.
* pygnulib/GLFileSystem.py (GLFileSystem.lookup)
(GLFileAssistant.add_or_update): Likewise.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
* pygnulib/main.py (main): Likewise.
2024-03-17 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add undocumented option --gnulib-dir.
* gnulib-tool.sh: Accept --gnulib-dir=... option.
* pygnulib/constants.py (init_DIRS): New function.
* pygnulib/main.py (main): Accept --gnulib-dir=... option. Invoke
init_DIRS. Expect .git directory to be present in DIRS['root'], not
APP['root'].
* pygnulib/GLImport.py (GLImport.execute): Use DIRS['root'], not
APP['root'].
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 61.
Follow gnulib-tool change
2022-01-09 Bruno Haible <bruno@clisp.org>
Remove influence of Automake conditionals on conditional dependencies.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Don't
inhibit conditional dependencies processing on a module that uses an
Automake conditional.
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 60.
Follow gnulib-tool change
2019-11-18 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix build error on macOS with --conditional-dependencies.
* pygnulib/GLModuleSystem.py (GLModuleTable.add_dummy): Ignore modules
that are conditionally enabled.
2024-03-17 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Don't try to remove files that don't exist.
* pygnulib/GLFileSystem.py (GLFileSystem.add_or_update): Check if the
temporary file exists before trying to remove it.
2024-03-16 Paul Eggert <eggert@cs.ucla.edu>
renameatu: support RENAME_EXCHANGE on macOS
* lib/renameatu.c (renameat2ish, renameatu) [RENAME_SWAP]:
Use macOS RENAME_SWAP to implement GNU/Linux RENAME_EXCHANGE.
* tests/test-renameatu.c (main): Add a test for RENAME_EXCHANGE.
2024-03-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 59.
Follow gnulib-tool change
2017-10-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid unnecessary config.h.in remaking in testdirs.
* pygnulib/GLTestDir.py (GLTestDir.execute): Touch the 'config.h.in'
file after executing 'autoheader' to update it's timestamps.
2024-03-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix 'git update-index' call when using hard links.
* pygnulib/main.py: Fix conditional used to check whether 'git
update-index' should be called. Only catch FileNotFoundError exceptions
thrown when no 'git' program exists.
2024-03-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Coding style: Avoid not().
* pygnulib/GLModuleSystem.py (isNonTests): Avoid not(). Write
'not condition' instead of 'not(condition)'.
2024-03-16 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Coding style: Avoid bool().
* pygnulib/GLModuleSystem.py (GLModule): Write False instead of bool().
2024-03-16 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 58.
Follow gnulib-tool change
2017-05-21 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add options to create hard links.
* pygnulib/GLConfig.py (GLConfig.__init__): Add 'copymode' and
'lcopymode' to the parameter list. Initialize them.
(GLConfig.default): Don't use symbolic or hard links by default.
(GLConfig.checkCopyMode, GLConfig.setCopyMode, GLConfig.resetCopyMode):
New functions to modify and check the method for copying non --local-dir
files.
(GLConfig.checkLCopyMode, GLConfig.setLCopyMode)
(GLConfig.resetLCopyMode): New functions to modify and check the method
for copying --local-dir files.
(GLConfig.checkSymbolic, GLConfig.resetSymbolic, GLConfig.setSymbolic)
(GLConfig.checkLSymbolic, GLConfig.resetLSymbolic)
(GLConfig.setLSymbolic): Remove unused functions. The functionality of
these are now implemented in the *CopyMode() and *LCopyMode() variants.
* pygnulib/GLFileSystem.py (CopyAction.Hardlink): New Enum value to
describe hard links.
(GLFileSystem.shouldLink): Check if hard links should be used.
(GLFileAssistant.add, GLFileAssistant.update): Try to hard link if
enabled. Copy the file if linking fails.
(GLFileAssistant.add_or_update): Remove temporary files unconditionally.
* pygnulib/GLInfo.py (GLInfo.usage): Document new options in the usage
message.
* pygnulib/GLTestDir.py (GLTestDir.execute): Try to hard link if
enabled. Copy the file if linking fails.
* pygnulib/classes.py: Importy the CopyAction Enum.
* pygnulib/constants.py (hardlink): New function based on
symlink_relative.
* pygnulib/main.py (main): Add new options --hardlink and
--local-hardlink. Invoke 'git update-index --refresh' to mitigate the
effects of the hard links on git.
2024-03-16 Bruno Haible <bruno@clisp.org>
gnulib-tool.sh: Make --local-dir options in gnulib-cache.m4 look nicer.
* gnulib-tool.sh (func_import): Append the --local-dir=... options
through func_append_actionarg.
2024-03-16 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't lose the gl_LGPL value from gnulib-cache.m4.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00152.html>.
* pygnulib/GLConfig.py (GLConfig.default): For the 'lgpl' property,
return None, not False.
2024-03-15 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't lose the gl_LOCAL_DIR value from gnulib-cache.m4.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00152.html>.
* pygnulib/GLConfig.py (GLConfig.default): For the 'localpath' property,
return [], not ''.
2024-03-15 Bruno Haible <bruno@clisp.org>
gnulib-tool: Enhance last patch.
* gnulib-tool: If gnulib-tool.sh failed but gnulib-tool.py succeeded,
report that and don't erase the outputs and log files.
2024-03-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 57.
Follow gnulib-tool change
2019-01-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: New option --extract-recursive-link-directive.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively): New
function. Implements the --extract-recursive-dependencies option.
(GLModule.getLinkDirectiveRecursively): New function. Implements the
--extract-recursive-link-directive.
* pygnulib/main.py (main): Add the --extract-recursive-dependencies and
--extract-recursive-link-directive options.
* pygnulib/GLInfo.py (GLInfo.usage): Add new options to help message.
2024-03-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Obey environment variable GNULIB_TOOL_IMPL.
* gnulib-tool.sh: Renamed from gnulib-tool.
* gnulib-tool: New file, based on gnulib-tool.sh.
* gnulib-tool.py: Check the Python version.
2024-03-14 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix write failure due to bad sourcebase.
* pygnulib/constants.py (cleaner): Only call strip() on string objects.
* pygnulib/main.py (main): Fix parsing of AMLOCAL_AMFLAGS from
Makefile.am. Add some comments from gnulib-tool.
2024-03-13 Bruno Haible <bruno@clisp.org>
sig2str tests: Refactor.
* tests/test-sig2str.c (test_sig2str, test_str2sig): New functions,
extracted from main.
(main): Invoke them.
2024-03-13 Collin Funk <collin.funk1@gmail.com>
sig2str: Add tests.
* tests/test-sig2str.c: New file.
* modules/sig2str-tests: New file.
2024-03-12 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 56.
Follow gnulib-tool change
2021-04-26 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: port better to current Autoconf
* pygnulib/GLImport.py (GLImport.execute): Remove exit() call before
printing reminders. Suggest replacing AC_PROG_CC_STDC and
AC_PROG_CC_C99, as per current Autoconf.
2024-03-12 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix last commit.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Silence Python
warnings about invalid escape. Make sure to escape the backslash
character we want to print.
2024-03-12 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 55.
Follow gnulib-tool changes
2022-01-05 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid known warnings that reflect Gnulib's coding style.
2022-01-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove all *.Po files upon distclean (regr. 2022-01-05).
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Collect the *.Po or
*.Plo files to remove into an AC_SUBSTed variable gl_LIBOBJDEPS. Use
Python f-strings instead of string replacements.
(GLEmiter.lib_Makefile_am): Add the GL_CFLAG_GNULIB_WARNINGS to the
CFLAGS of all the compilation units of the library. Extend the distclean
and maintainer-clean rules.
(GLEmiter.tests_Makefile_am): Add the GL_CFLAG_GNULIB_WARNINGS to the
CFLAGS.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Emit an invocation of
gl_CC_GNULIB_WARNINGS.
2024-03-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 54.
Follow gnulib-tool change
2021-12-24 Paul Eggert <eggert@cs.ucla.edu>
maint: avoid empty lines in recipes
* pygnulib/GLEmiter.py (_eliminate_NMD_from_line): Eliminate occurrences
of @!NMD@ too. Document parameters in docstring.
(_eliminate_NMD): Update docstring to reflect changes. Document
parameters.
2024-03-11 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak last commit.
* pygnulib/GLEmiter.py (_eliminate_NMD): Don't add an extra newline when
the result should be empty.
2024-03-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 53.
Follow gnulib-tool change
2021-12-21 Bruno Haible <bruno@clisp.org>
Optimize redundant 'mkdir -p .' invocations.
* pygnulib/GLEmiter.py (_eliminate_NMD_from_line): New private function
to remove @NMD@ occurrences from the line of an Automake snippet.
(_eliminate_NMD): New private function which uses
_eliminate_NMD_from_line on each line of the Automake snippet.
(GLEmiter.lib_Makefile_am, GLEmiter.tests_Makefile_am): Use
_eliminate_NMD on the Automake snippet.
2024-03-11 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Make some code more straightforward.
* pygnulib/GLImport.py (GLImport.__init__): Reorder assignments and
conditions slightly.
2024-03-11 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 52.
Follow gnulib-tool change
2021-12-15 Bruno Haible <bruno@clisp.org>
automake-subdir support: Look for 'subdir-objects' also in configure.ac.
* pygnulib/GLImport.py (GLImport.__init__): Check for 'subdir-objects'
in the AM_INIT_AUTOMAKE macro of configure.ac.
2024-03-10 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak last commit.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Avoid an implicit str
to bool conversion.
* pygnulib/GLImport.py (GLImport.__init__): Add a comment. Don't allow
a '|' in place of whitespace. Don't emit redundant gl_source_base
assignments.
2024-03-10 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 51.
Follow gnulib-tool change
2021-12-15 Bruno Haible <bruno@clisp.org>
Accommodate non-recursive Automake in a less hacky way.
* pygnulib/GLConfig.py (GLConfig.__init__): Add 'automake_subdir' to the
parameter list.
(GLConfig.default): Set the default value of automake_subdir to a
boolean False.
(GLConfig.getAutomakeSubdir, GLConfig.setAutomakeSubdir)
(GLConfig.resetAutomakeSubdir): New functions to access and manipulate
the automake_subdir option.
* pygnulib/GLEmiter.py (GLEmiter.shellvars_init): New function.
(GLEmiter.initmacro_end): Add second parameter 'gentests'. Use it to prefix each
object file name in *_LIBOBJS and *_LTLIBOBJS.
* pygnulib/GLError.py (GLError.__init__, GLError.__repr__): Add new
error for if --automake-subdir is used without the 'subdir-objects'
Automake option.
* pygnulib/GLImport.py (GLImport.__init__): Check for 'subdir-objects'
in Makefile.am.
(GLImport.actioncmd): Emit --automake-subdir in actioncmd.
(GLImport.gnulib_cache): Add gl_AUTOMAKE_SUBDIR to gnulib-cache.m4 if
--automake-subdir is used.
(GLImport.gnulib_comp): Update calls to GLEmiter.initmacro_end. Call
GLEmiter.shellvars_init.
(GLImport.execute): Likewise. Use the build-aux/prefix-gnulib-mk script.
* pygnulib/GLInfo.py (GLInfo.usage): Add --automake-subdir to the usage
message.
* pygnulib/GLTestDir.py (GLTestDir.execute): Update calls to
GLEmiter.initmacro_end. Call GLEmiter.shellvars_init.
* pygnulib/main.py (main): Add support for --automake-subdir.
2024-03-10 Collin Funk <collin.funk1@gmail.com>
gnulib-tool: Don't remove comments referencing @NMD@, part 2.
* gnulib-tool (func_emit_tests_Makefile_am): Replace lines that start
with @NMD@ or @!NMD@ instead of lines that contain them.
2024-03-10 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: One more comment regarding coding style.
* pygnulib/main.py: Add comment regarding conditional expressions.
2024-03-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 50.
Follow gnulib-tool changes
2021-12-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Try to support non-recursive-gnulib-prefix-hack with tests.
2021-12-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix mistake in last commit.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Expect the filetable as a
parameter instead of a list of all files. Add type checks. Invoke
AC_CONFIG_LIBOBJ_DIR based on the location of alloca.c.
(GLImport.execute): Adjust call to GLImport.gnulib_comp to reflect
parameter changes.
2024-03-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 49.
Follow gnulib-tool change
2021-08-07 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add support for Automake 1.16.4.
* pygnulib/GLTestDir.py (_patch_test_driver): If patching
build-aux/test-driver fails with build-aux/test-driver.diff try again
with build-aux/test-driver-1.16.3.diff.
2024-03-09 Bruno Haible <bruno@clisp.org>
unistr/u16-to-u32: Relicense under LGPLv2+.
* modules/unistr/u16-to-u32 (License): Change to LGPLv2+.
* lib/unistr/u16-to-u32.c: Update license notice.
unistr/u16-mbtoucr: Relicense under LGPLv2+.
* modules/unistr/u16-mbtoucr (License): Change to LGPLv2+.
* lib/unistr/u16-mbtoucr.c: Update license notice.
unistr/u16-strlen: Relicense under LGPLv2+.
* modules/unistr/u16-strlen (License): Change to LGPLv2+.
* lib/unistr/u16-strlen.c: Update license notice.
2024-03-09 Bruno Haible <bruno@clisp.org>
parse-datetime: Simplify.
* modules/parse-datetime (Makefile.am): Don't generate
parse-datetime-gen.h.
2024-03-09 Bruno Haible <bruno@clisp.org>
parse-datetime: Simplify.
* lib/parse-datetime.y (yyerror): Change return type to 'void'.
2024-03-09 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 48.
Follow gnulib-tool change
2019-01-23 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support running testdirs on Android.
* pygnulib/GLError.py (GLError.__init__, GLError.__repr__): Add errno 20
to print an error if patching build-aux/test-driver fails.
* pygnulib/main.py (main): Likewise.
* pygnulib/GLTestDir.py (_patch_test_driver): New private function which
runs patch on build-aux/test-driver with build-aux/test-driver.diff.
(GLTestDir.execute, GLMegaTestDir.execute): Check for
build-aux/test-driver in each testdir and patch it after running
automake.
2024-03-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool: Don't remove comments referencing @NMD@.
* gnulib-tool (func_emit_lib_Makefile_am): Replace lines that start with
@NMD@ or @!NMD@ instead of lines that contain them.
2024-03-08 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 47.
Follow gnulib-tool changes
2021-12-15 Bruno Haible <bruno@clisp.org>
Fix creation of build directories with non-recursive-gnulib-prefix-hack.
2021-12-18 Bruno Haible <bruno@clisp.org>
Fix support for --gnu-make in tests (regression 2021-12-15).
* pygnulib/GLEmiter.py (_CONVERT_TO_GNU_MAKE): New variable which is a
list of tuples which are used with re.sub.
(_convert_to_gnu_make): New function which converts an input snippet
from Automake to GNU Make syntax using the regular expressions stored in
_CONVERT_TO_GNU_MAKE.
(GLEmiter.lib_Makefile_am): Use _convert_to_gnu_make. Replace '%reldir%'
tokens.
(GLEmiter.tests_Makefile_am): Likewise.
2024-03-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix errors when executing --create-megatestdir.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): Create a testdir for
each module in its own subdirectory. Create a testdir with all modules
in 'ALL'. Add missing join call on str object. Don't emit 'configure.ac'
into 'Makefile.am'. Make sure commands are executed in the proper
directory.
2024-03-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 46.
Follow gnulib-tool change
2022-02-22 Simon Josefsson <simon@josefsson.org>
gnulib-tool: Bump automake dependency.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): Require Automake >= 1.14, for %reldir%
support.
2024-03-07 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 45.
Follow gnulib-tool changes
2021-12-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support different basenames for the lib/,tests/ Makefiles.
2022-01-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix "Don't forget" messages (regression 2021-12-12).
* pygnulib/GLConfig.py (GLConfig.__init__): Add 'tests_makefile_name'
argument.
(GLConfig.getMakefileName, GLConfig.setMakefileName)
(GLConfig.resetMakefileName): Remove references to tests Makefile.am in
doc strings.
(GLConfig.getTestsMakefileNamem, GLConfig.setTestsMakefileName)
(GLConfig.resetTestsMakefileName): New methods used to access value
passed with the '--tests-makefile-name' option.
* pygnulib/GLImport.py (GLImport.__init__): Check for
'gl_TESTS_MAKEFILE_NAME' in cache.
(GLImport.actioncmd): Output --tests-makefile-name when describing
gnulib-tool invocation.
(GLImport.gnulib_cache): Output 'gl_TESTS_MAKEFILE_NAME' to cache.
(GLImport.execute): Use two local variables, source_makefile_am and
tests_makefile_am, which are passed to gnulib-tool.py or given default
values.
* pygnulib/GLInfo.py (GLInfo.usage): Add '--tests-makefile-name' to
usage message.
* pygnulib/GLMakefileTable.py (GLMakefileTable.parent): Reduce code
duplication by expecting Makefile names passed as arguments.
* pygnulib/main.py (main): Add support for '--tests-makefile-name'.
2024-03-06 Bruno Haible <bruno@clisp.org>
gnulib-tool: Search for a working 'join' program.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00044.html>.
* gnulib-tool (JOIN): New variable. Use it everywhere instead of 'join'.
2024-03-06 Bruno Haible <bruno@clisp.org>
c-strtof, c-strtod, c-strtold: Comment.
* lib/c-strtod.c: Mention me as co-author.
2024-03-06 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix value of LDADD for libtests.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Fix value of LDADD
to match gnulib-tool.
2024-03-06 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 44.
Follow gnulib-tool changes
2021-06-10 Bruno Haible <bruno@clisp.org>
Clarify where to report test failures from Gnulib tests.
2021-06-11 Bruno Haible <bruno@clisp.org>
Make message in last commit more precise.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Emit a dependency
of 'check-am' on 'check-notice' that prints a notice describing where to
report test failures.
2024-03-06 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak comment location.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Move a comment.
2024-03-06 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 43.
Follow gnulib-tool change
2021-06-10 Bruno Haible <bruno@clisp.org>
Clarify that compiler warnings in the Gnulib tests can be ignored.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_start): Add boolean argument
to control whether gl_CC_ALLOW_WARNINGS and gl_CXX_ALLOW_WARNINGS should
be required.
(GLEmiter.tests_Makefile_am): Emit overrides for CFLAGS and CXXFLAGS.
Emit a dependency of 'all' on 'all-notice' that prints a warning that
compiler warnings can be ignored for tests.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Add boolean argument to
tell whether a tests Makefile.am is being emitted. Update calls to
GLEmiter.initmacro_start.
(GLImport.execute): Update calls to GLEmiter.initmacro_start.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2024-03-06 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix gnulib-cache.m4 output.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Don't emit an extra '#'
to start the actioncmd comment.
2024-03-06 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Tweak comment.
* pygnulib/GLMakefileTable.py (GLMakefileTable.parent): Tweak 'gentests'
description.
2024-03-06 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 42.
Follow gnulib-tool change
2019-02-15 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support --import with just a few tests, not --with-tests.
* pygnulib/GLImport.py (GLImport.execute): Use 'gentests' instead of
'inctests' when generating files.
* pygnulib/GLMakefileTable.py (GLMakefileTable.parent): Add 'gentests'
argument and use it instead of 'inctests'.
2024-03-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 41.
Follow gnulib-tool change
2018-09-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix build order when $testsbase is a subdir of $sourcebase.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Consider the dotfirst
flag.
(GLEmiter.tests_Makefile_am): Don't consider the dotfirst flag.
* pygnulib/GLImport.py (GLImport.execute): Set the dotfirst for tests.
* pygnulib/GLMakefileTable.py (GLMakefileTable.editor): Add optional
dotfirst flag to fix build order when $testsbase is a subdir of
$sourcebase.
2024-03-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 40.
Follow gnulib-tool change
2021-12-18 Bruno Haible <bruno@clisp.org>
stdint: Fix handling of limits.h (regression 2021-12-16).
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): If --gnu-make is used, assume that
AC_SUBSTed variables for conditionals are constructed by appending the
suffix '_CONDITION'.
2024-03-05 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix incorrect tests Makefile.am generation.
* pygnulib/GLImport.py: Call GLEmiter.tests_Makefile_am instead of
GLEmiter.lib_Makefile_am when creating the tests Makefile. Replace
incorrect actioncmd argument with witness_macro.
2024-03-05 Bruno Haible <bruno@clisp.org>
doc: Update info about fopencookie.
Reported by Michael Ford <fanquake@gmail.com>.
* doc/glibc-functions/fopencookie.texi: Update platforms list.
2024-03-05 Bruno Haible <bruno@clisp.org>
doc: Fix a typo.
Reported by Tim Rice in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00023.html>.
* doc/build-automation.texi (Building gnulib): Fix typo.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtof, c-strtod, c-strtold: Make multithread-safe.
* lib/c-strtod.c: Include <langinfo.h>, c-ctype.h.
(decimal_point_char): New function, copied from lib/vasnprintf.c.
(C_STRTOD): On platforms that don't have STRTOD_L nor a working
uselocale(), pre-parse the number and call STRTOD after having replaced
the '.' with the locale-dependent decimal point character.
* m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOF, gl_C_STRTOLD): Test for
nl_langinfo().
* modules/c-strtof (Depends-on): Add c-ctype. Remove strdup-posix.
* modules/c-strtod (Depends-on): Likewise.
* modules/c-strtold (Depends-on): Likewise.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtold: Add multithread-safety test.
* tests/test-c-strtold-mt.c: New file.
* tests/test-c-strtold-mt.sh: New file, based on
tests/test-c-strtold1.sh.
* modules/c-strtold-tests (Files): Add them.
(Depends-on): Add thread, nanosleep.
(Makefile.am): Arrange to build test-c-strtold-mt and run
test-c-strtold-mt.sh.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtod: Add multithread-safety test.
* tests/test-c-strtod-mt.c: New file.
* tests/test-c-strtod-mt.sh: New file, based on tests/test-c-strtod1.sh.
* modules/c-strtod-tests (Files): Add them.
(Depends-on): Add thread, nanosleep.
(Makefile.am): Arrange to build test-c-strtod-mt and run
test-c-strtod-mt.sh.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtof: Add multithread-safety test.
* tests/test-c-strtof-mt.c: New file.
* tests/test-c-strtof-mt.sh: New file, based on tests/test-c-strtof1.sh.
* modules/c-strtof-tests (Files): Add them.
(Depends-on): Add thread, nanosleep.
(Makefile.am): Arrange to build test-c-strtof-mt and run
test-c-strtof-mt.sh.
2024-03-05 Bruno Haible <bruno@clisp.org>
locale-*.m4: Update comments.
* m4/locale-ar.m4: Update comments for Solaris 10.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtold: Add tests.
* tests/test-strtold.h: New file, extracted from tests/test-strtold.c.
* tests/test-strtold.c: Include test-strtold.h.
(FABSL): Remove unused macro.
(main): Just invoke test_function.
* tests/test-strtold1.c: Add comment.
* modules/strtold-tests (Files): Add tests/test-strtold.h.
* tests/test-c-strtold.c: New file, based on tests/test-strtold.c.
* tests/test-c-strtold1.c: New file, based on tests/test-strtold1.c.
* tests/test-c-strtold1.sh: New file, based on tests/test-strtold1.sh.
* modules/c-strtold-tests: New file, based on modules/strtold-tests.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtod: Add tests.
* tests/test-strtod.h: New file, extracted from tests/test-strtod.c.
* tests/test-strtod.c: Include test-strtod.h.
(FABS): Remove unused macro.
(main): Just invoke test_function.
* tests/test-strtod1.c: Add comment.
* modules/strtod-tests (Files): Add tests/test-strtod.h.
* tests/test-c-strtod.c: New file, based on tests/test-strtod.c.
* tests/test-c-strtod1.c: New file, based on tests/test-strtod1.c.
* tests/test-c-strtod1.sh: New file, based on tests/test-strtod1.sh.
* modules/c-strtod-tests: New file, based on modules/strtod-tests.
2024-03-05 Bruno Haible <bruno@clisp.org>
c-strtof: Add tests.
* tests/test-strtof.h: New file, extracted from tests/test-strtof.c.
* tests/test-strtof.c: Include test-strtof.h.
(FABS): Remove unused macro.
(main): Just invoke test_function.
* tests/test-strtof1.c: Add comment.
* modules/strtof-tests (Files): Add tests/test-strtof.h.
* tests/test-c-strtof.c: New file, based on tests/test-strtof.c.
* tests/test-c-strtof1.c: New file, based on tests/test-strtof1.c.
* tests/test-c-strtof1.sh: New file, based on tests/test-strtof1.sh.
* modules/c-strtof-tests: New file, based on modules/strtof-tests.
2024-03-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 39.
Follow gnulib-tool change
2017-12-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --conditional-dependencies work better.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Add argument
referenceable_modules. Use referencable_modules for dependencies.
* pygnulib/GLImport.py (GLImport.__init__): Don't reject the combination
of --conditional-dependencies with --with-tests when mode is 'import'.
(GLImport.gnulib_comp): Pass it.
* pygnulib/GLTestDir.py (GLTestDir.execute): Pass it.
2024-03-04 Bruno Haible <bruno@clisp.org>
doc: Tweak last commit.
* doc/gnulib-tool.texi (Style of #include statements): Use
@itemize @asis{}. Recommended by Patrice Dumas.
2024-03-04 Collin Funk <collin.funk1@gmail.com>
doc: Fix build errors.
* doc/gnulib-tool.texi (Style of #include statements): Use @itemize w{}
instead of the incorrect @itemize @asis.
2024-03-04 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Adjust construction of configure.ac path.
* pygnulib/GLConfig.py (GLConfig.setAutoconfFile): Join destdir and
configure.ac instead of using relativize.
2024-03-03 Collin Funk <collin.funk1@gmail.com>
Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix output of gnulib-comp.m4.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Fix indentation.
Don't print nonstring values into gnulib-comp.m4.
2024-03-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make output of test Makefile.am match gnulib-tool.
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Don't sort EXTRA_DIST file
names for test modules.
2024-03-03 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix last commit.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Ignore libname and
libext here.
2024-03-03 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 38.
Follow gnulib-tool change
2020-12-26 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --conditional-dependencies work with --with-tests.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Add missing
moduletable argument. Handle conditional dependencies like
GLEmiter.lib_Makefile_am.
* pygnulib/GLTestDir.py (GLTestDir.execute): Adjust arguments.
2024-03-03 Bruno Haible <bruno@clisp.org>
doc: Update regarding --create-megatestdir.
Reported by Alexei Sholomitskiy <asholomitskiy84@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00071.html>
and by Collin Funk <collin.funk1@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00007.html>.
* doc/build-automation.texi (Building gnulib): Discourage the use of
--create-megatestdir with all modules.
2024-03-01 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Clarify minimum supported Python version.
* pygnulib/main.py: Add comment regarding the Python version.
2024-03-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 37.
Follow gnulib-tool change
2018-10-22 Bruno Haible <bruno@clisp.org>
Assume Automake >= 1.11.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am)
(GLEmiter.tests_Makefile_am): Emit a Makefile.am that requires Automake
>= 1.11.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
* pygnulib/constants.py: Update comment.
2024-03-01 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix GNU Make conversion regular expressions.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Reduce code
duplication. Use re.MULTILINE so '^' matches the start of each line
instead of only the start of a string.
2024-02-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 36.
Follow gnulib-tool change
2017-03-14 Mathieu Lirzin <mthl@gnu.org>
gnulib-tool: don't automatically distribute files from top/
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Don't distribute files from
top/ automatically.
2024-02-29 Bruno Haible <bruno@clisp.org>
xalloc: Don't use identifier 'nonnull'.
* lib/xmalloc.c (check_nonnull): Renamed from nonnull.
2024-02-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 35.
Follow gnulib-tool change
2023-05-28 Bruno Haible <bruno@clisp.org>
warnings, manywarnings: Assume autoconf >= 2.64.
* pygnulib/GLConfig.py (GLConfig.default, GLConfig.getAutoconfVersion)
(GLConfig.setAutoconfVersion, resetAutoconfVersion): Set required
Autoconf version to 2.64.
* pygnulib/GLError.py (GLError.__init__, GLError.__repr__): Likewise.
* pygnulib/GLImport.py (GLImport.__init__): Likewise.
* pygnulib/constants.py (DEFAULT_AUTOCONF_MINVERSION): Likewise.
* pygnulib/main.py: Likewise.
2024-02-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 34.
Follow gnulib-tool change
2017-05-15 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix generated code when libtests contains module 'alloca'.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Use @ALLOCA@ for
libtests.a instead of @LTALLOCA@.
2024-02-29 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 33.
Follow gnulib-tool change
2017-03-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't produce a tests directory with only snippet .h files.
* pygnulib/GLModuleSystem.py
(GLModuleTable.transitive_closure_separately): Don't create a test
directory if all test related modules have applicability 'all'.
2024-02-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 32.
Follow gnulib-tool change
2018-10-22 Bruno Haible <bruno@clisp.org>
Fix failure of 'gnulib-tool --create-testdir' with all modules.
* pygnulib/GLTestDir.py (GLTestDir.execute): Exclude the 'timevar'
module from --create-testdir with all modules. Update comment.
2024-02-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Emit year range on file copyright notices.
* pygnulib/GLInfo.py (GLInfo.copyright_range): New function. Return a
copyright string with a year range.
* pygnulib/GLEmiter.py (GLEmiter.copyright_notice): Use the new function
for file copyright headers.
2024-02-28 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Make module sorting more similar to gnulib-tool.
* pygnulib/GLImport.py (GLImport.__init__): Sort modules when mode is
'import'.
(GLImport.actioncmd): Don't sort modules while creating actioncmd. Use
preferred quoting style.
2024-02-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --version output independent of git's configuration.
Reported by Collin Funk <collin.funk1@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00268.html>.
* pygnulib/GLInfo.py (GLInfo.date): Pass --format and --date options, to
override the user's git configuration.
* gnulib-tool (func_version): Likewise. Also pass options '-n 1', to
speed up the operation.
2024-02-28 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Avoid exception when 'git log' output is unexpected.
* pygnulib/GLInfo.py (GLInfo.date): When the 'git log' output does not
contain a line with the expected 'Date:' pattern, pass the empty string
to GNU date.
2024-02-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid references to functions that get defined later.
* gnulib-tool (func_fatal_error, func_warning, func_readlink): Move
before func_gnulib_dir.
2024-02-27 Bruno Haible <bruno@clisp.org>
isnan: Fix compilation error in C++ mode on OpenBSD 7.5-beta.
Reported by Christian Weisgerber <naddy@mips.inka.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00261.html>.
* lib/math.in.h (GNULIB_NAMESPACE_LACKS_ISNAN): Define on all platforms
with clang ≥ 14.
2024-02-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix configure.ac output.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_end): Fix backslash escapes
in raw string.
2024-02-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 31.
Follow gnulib-tool change
2021-06-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Stop doing license notice replacements.
* pygnulib/GLConfig.py (GLConfig.default): Remove 'copyrights' key.
(checkCopyrights): Remove function.
(setSymbolic, resetSymbolic): Remove 'copyrights' key.
* pygnulib/GLImport.py (GLImport.prepare): Remove copyrights variable.
Don't modify license notice on source files.
(GLImport.execute): Remove copyrights variable.
2024-02-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Small fix of part 27.
* pygnulib/GLConfig.py (GLConfig.default): Add 'gnu_make' key which
returns False.
2024-02-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 30.
Follow gnulib-tool change
2021-05-30 Bruno Haible <bruno@clisp.org>
Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'.
* pygnulib/GLImport.py (GLImport.prepare): Change.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2024-02-27 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 29.
Follow gnulib-tool change
2021-03-06 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime2: fix licensing
* pygnulib/GLModuleSystem.py (GLModule.getLicense): Handle the special
licensing case for parse-datetime2 or any other module starting with
"parse-datetime". Update comment.
2024-02-26 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Add more comments.
* pygnulib/main.py: Add comments regarding code style. Mention the
pycodestyle and pylint configurations.
2024-02-26 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Add configuration files for Python tools.
* pygnulib/.pylintrc: New file, used by pylintrc.
* pygnulib/setup.cfg: New file, currently only used for pycodestyle
options.
2024-02-26 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix undefined variable access.
* pygnulib/main.py (main): Don't use gnu_make before it is defined.
2024-02-26 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Reorganize code.
* pygnulib/main.py: New file, moved here from gnulib-tool.py.
* pygnulib/constants.py: Change the way APP['name'] and DIRS['root'] are
computed.
* gnulib-tool.py: New file, based on gnulib-tool.
2024-02-25 Bruno Haible <bruno@clisp.org>
bitset: Don't access errno when it's not set.
* lib/bitset/stats.c (bitset_stats_read): Don't use errno after neither
fread() nor ferror() has set it. On native Windows, don't use errno
after fclose().
2024-02-25 Bruno Haible <bruno@clisp.org>
bitset: Avoid newlines at the end of translatable strings.
* lib/bitset/stats.c (bitset_percent_histogram_print,
bitset_log_histogram_print): Print a newline after msg.
(bitset_stats_print_1): Don't include a newline in the argument of
bitset_percent_histogram_print or bitset_log_histogram_print.
(bitset_stats_print): Move newlines outside of translatable strings.
2024-02-24 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 28.
Follow gnulib-tool change
2018-07-17 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: limit line length for git send-email
* pygnulib/GLImport.py (GLImport.actioncmd): Break actioncmd into
multiple lines. Reorder emitting of arguments to match gnulib-tool. Emit
"--witness-c-macro" instead of "--witness_c_macro". Emit "--po-domain"
instead of "--podomain". Document ordering of unimplemented options. Add
updated comments documenting line length limitations of git send-email
and some implementations of AWK.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Remove comment which
was moved to pygnulib/GLImport.py. Remove length limitation on actioncmd
since it now spans multiple lines.
2024-02-24 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Further fix last commit.
* gnulib-tool.py (main): Make the mode test match for 'create-testdir',
'create-megatestdir', 'test', 'megatest'.
2024-02-24 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix conditional checking the incorrect variable.
Reported by Bruno Haible <bruno@clisp.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00207.html>.
* gnulib-tool.py (main): Fix incorrect conditional. Check that mode, not
modules, is not None before treating it as a string.
2024-02-24 Bruno Haible <bruno@clisp.org>
striconveha tests: Avoid test failure on macOS 12.5.
* tests/test-striconveha.c (main): Skip transliteration tests when using
Apple's modified GNU libiconv or the bastard Apple iconv.
2024-02-23 Bruno Haible <bruno@clisp.org>
DEPENDENCIES: Update entry about gperf.
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00201.html>.
* DEPENDENCIES (gperf): Mention some more modules which require 'gperf'.
2024-02-23 Bruno Haible <bruno@clisp.org>
unictype/mirror: Update to Unicode 15.1.0.
Reported by Daurnimator <quae@daurnimator.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2016-11/msg00010.html>.
* lib/gen-uni-tables.c (struct mirror_pair): New type.
(mirror_pairs): Don't initialize statically.
(mirror_pairs_count): New variable.
(fill_mirror): New function.
(get_mirror_value): Update.
(main): Expect the file name of BidiMirroring.txt as command-line
argument. Invoke fill_mirror.
* lib/unictype/mirror.h: Regenerated.
* modules/unictype/mirror (configure.ac): Bump required libunistring
version.
2024-02-23 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Keep line number better up-to-date.
* lib/gen-uni-tables.c (fill_width, fill_org_lbp): Increase lineno by 1
when reading a blank line.
2024-02-23 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 27.
Follow gnulib-tool changes
2017-03-12 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: new option --gnu-make
2017-03-13 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: minor --gnu-make fixups
2017-03-14 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: fix typo in comment output
2017-05-14 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: improve GNU Make debugging
2018-07-04 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: minor tweaks for --gnu-make
* gnulib-tool.py (main): Add --gnu-make option. Do not allow --gnu-make
in test modes, since they all require Automake.
* pygnulib/GLConfig.py: Add gnu_make argument to constructor.
(getGnuMake, setGnuMake, resetGnuMake): New methods for accessing the
gnu_make instance variable.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Use the "+=" operator
with GNU Make and Automake. Transform conditionals to GNU Make syntax if
--gnu-make is in use. Use a Autoconf subprocess to define values and
check the return code for errors.
(GLEmiter.tests_Makefile_am): Likewise.
* pygnulib/GLImport.py (GLImport.actioncmd): Add "--gnu-make" to the
output comment if it is in use.
(GLImport.gnulib_comp): Don't require "AM_PROG_CC_C_O" when using GNU
Make.
* pygnulib/GLInfo.py (GLInfo.usage): Update help message to reflect
addition of --gnu-make.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Don't
add Automake snippets as unconditional dependencies when using
--gnu-make.
2024-02-23 Bruno Haible <bruno@clisp.org>
unistdio/*printf tests: Update expected test results regarding %n.
* tests/unistdio/test-u8-printf1.h (test_xfunction): If
NEED_PRINTF_WITH_N_DIRECTIVE is not defined, expect a NULL result in the
%n test.
* tests/unistdio/test-u16-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-u32-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-ulc-printf1.h (test_xfunction): Likewise.
2024-02-22 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 26.
Follow gnulib-tool change
2017-04-20 Bruno Haible <bruno@clisp.org>
verify tests: Fix spurious failure with parallel make.
* pygnulib/GLEmiter.py (GLEmiter.tests_Makefile_am): Emit initialization
of EXTRA_PROGRAMS so that the verify-tests module does not cause
Automake to warn about the use of "+=" instead of "=".
2024-02-22 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Follow gnulib-tool changes, part 25.
Follow gnulib-tool change
2017-06-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Clean up after autotools.
* pygnulib/GLTestDir.py (GLTestDir.execute): Remove
unnessecary autom4te.cache directory generated by Autotools.
(GLMegaTestDir.execute): Likewise.
2024-02-21 Bruno Haible <bruno@clisp.org>
c-strtof: New module.
* lib/c-strtod.h (c_strtof): New declaration.
* lib/c-strtod.c: Support FLOAT.
* lib/c-strtof.c: New file.
* m4/c-strtod.m4 (gl_C_STRTOF): New macro.
* modules/c-strtof: New file.
2024-02-21 Bruno Haible <bruno@clisp.org>
c-strtold: Use strtold_l when available (regr. 2019-01-31).
* lib/c-strtod.c: Fix typo: HAVE_GOOD_STRTOLD_L was never defined.
2024-02-21 Bruno Haible <bruno@clisp.org>
strtof: Add tests.
* tests/test-strtof.c: New file, based on tests/test-strtod.c.
* tests/test-strtof1.sh: New file, based on tests/test-strtod1.sh.
* tests/test-strtof1.c: New file, based on tests/test-strtod1.c.
* modules/strtof-tests: New file, based on modules/strtod-tests.
strtof: New module.
* lib/stdlib.in.h (strtof): New declaration.
* lib/strtod.c: Support USE_FLOAT.
* lib/strtof.c: New file.
* m4/strtof.m4: New file, based on m4/strtod.m4.
* m4/ldexpf.m4 (gl_CHECK_LDEXPF_NO_LIBM): New macro, based on
m4/ldexp.m4.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize
GNULIB_STRTOF.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOF, HAVE_STRTOF,
REPLACE_STRTOF.
* modules/strtof: New file.
* tests/test-stdlib-c++.cc (strtof): Check signature.
* doc/posix-functions/strtof.texi: Mention the new module and the bugs
that it fixes.
(gl_STDLIB_H_DEFAULTS): Initialize HAVE_STRTOF, REPLACE_STRTOF.
2024-02-21 Bruno Haible <bruno@clisp.org>
strtod, strtold tests: Avoid a test failure on native Windows.
* modules/strtod-tests (Depends-on): Add setlocale.
* modules/strtold-tests (Depends-on): Likewise.
2024-02-21 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix undefined variable while emitting testdir.
* pygnulib/GLTestDir.py (GLTestDir.execute): Fix undefined
variable refrence caused by commit
01cd78f9d682ff75cc5ab1c2d21b911bdd9215b8.
Restore the previous auxdir when finished writing the
configure.ac file in the test directory.
2024-02-21 Bruno Haible <bruno@clisp.org>
*printf-posix: Disable support for the 'n' directive by default.
* m4/printf-with-n-directive.m4: New file.
* modules/printf-with-n-directive: New file.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): If
gl_PRINTF_SUPPORT_N_DIRECTIVE is not defined, ignore the value of the
gl_cv_func_printf_directive_n variable.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): If
gl_PRINTF_SUPPORT_N_DIRECTIVE is not defined, ignore the values of the
gl_cv_func_printf_directive_n and gl_cv_func_snprintf_directive_n
variables.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): If NEED_PRINTF_WITH_N_DIRECTIVE is
not defined, treat the 'n' directive like an unknown directive.
* lib/vasnprintf.c (VASNPRINTF): If NEED_PRINTF_WITH_N_DIRECTIVE is not
defined, disable the processing of the 'n' directive.
* tests/test-snprintf-posix.h (test_function): If
NEED_PRINTF_WITH_N_DIRECTIVE is not defined, skip the %n test.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/posix-functions/dprintf.texi: Mention that support for the 'n'
directive is only enabled together with the module
'printf-with-n-directive'.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* NEWS: Mention the change.
2024-02-21 Bruno Haible <bruno@clisp.org>
*printf-posix: Avoid crash in another configure test.
* m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): In the test program, catch the
SIGABRT signal, so that the program does not dump core.
2024-02-20 Bruno Haible <bruno@clisp.org>
unimetadata/u-version: Add tests.
* tests/unimetadata/test-u-version.c: New file.
* modules/unimetadata/u-version-tests: New file.
unimetadata/u-version: New module.
* lib/gen-uni-tables.c (output_version): New function.
(main): Invoke it.
* lib/unimetadata/u-version.c: New generated file.
* modules/unimetadata/u-version: New file.
unimetadata/base: New module.
* lib/unimetadata.in.h: New file.
* m4/unimetadata_h.m4: New file.
* modules/unimetadata/base: New file.
2024-02-20 Collin Funk <collin.funk1@gmail.com>
maint.mk: Fix include header typo.
* top/maint.mk: Change arpa_inet.h to arpa/inet.h.
2024-02-20 Bruno Haible <bruno@clisp.org>
*printf-posix: Avoid crash in a configure test.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): In the test program, catch the
SIGABRT signal, so that the program does not dump core.
2024-02-18 Jim Meyering <meyering@meta.com>
maint.mk: improve new syntax-check rule
* top/maint.mk (sc_prefer_angle_bracket_headers): Rename from
sc_verify_absolute_include_headers. Simplify to run a single
invocation of grep, rather than usually many. Derive a regular
expression matching the selected headers, and warn about any
offending matches via what is usually a single grep invocation.
2024-02-18 Collin Funk <collin.funk1@gmail.com>
gnulib-tool.py: Fix function call on incorrect object.
* pygnulib/GLImport.py: Call checkInclTestCategory on the
GLConfig member instead of the GLImport object itself.
* pygnulib/__init__.py: Update copyright dates.
* pygnulib/constants.py: Update copyright dates.
2024-02-18 Bruno Haible <bruno@clisp.org>
maint.mk: Add more comments.
* top/maint.mk: Reference the Gnulib documentation where suitable.
2024-02-18 Collin Funk <collin.funk1@gmail.com>
maint.mk: Add syntax-check rule to check for #include syntax.
* top/maint.mk (sc_verify_absolute_include_headers): New rule
to check for #includes that might cause
-Winclude-next-absolute-path warnings.
2024-02-18 Bruno Haible <bruno@clisp.org>
doc: Mention requirement regarding #include syntax.
* doc/gnulib-tool.texi (-I options, Include <config.h>,
Style of #include statements): New subsections.
2024-02-17 Paul Eggert <eggert@cs.ucla.edu>
qsort_r-tests: minor visibility cleanup
* tests/test-qsort_r.c (cmp): Now static.
savedir: work around GCC bug 113963
* lib/savedir.c: Ignore -Wanalyzer-malloc-leak and
-Wanalyzer-null-dereference.
Solaris EOL update
* doc/solaris-versions: Solaris 11.4 EOL update. Also mention 11.3.
2024-02-17 Collin Funk <collin.funk1@gmail.com>
math: More clang -Winclude-next-absolute-path silencing.
* lib/math.c: Write #include <math.h> instead of #include "math.h".
2024-02-17 Bruno Haible <bruno@clisp.org>
error: More clang -Winclude-next-absolute-path silencing.
* modules/error-h (Include): Suggest <error.h>, not "error.h".
* m4/error_h.m4: Write #include <error.h>.
2024-02-15 Bruno Haible <bruno@clisp.org>
nstrftime: Optimize module dependencies.
* modules/nstrftime (Depends-on): Remove localename-unsafe. Add
localename-unsafe-limited.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename-unsafe-limited: New module.
* m4/localename.m4 (gl_LOCALENAME_UNSAFE_LIMITED): New macro.
* modules/localename-unsafe-limited: New file.
* modules/localename-unsafe (Depends-on): Add localename-unsafe-limited.
(Makefile.am): Compile localename-unsafe.c only if the module
localename-unsafe-limited does not already do it.
2024-02-15 Bruno Haible <bruno@clisp.org>
nstrftime, fprintftime: Optimize.
* lib/strftime.c (should_remove_ampm): Call gl_locale_name_unsafe
instead of gl_locale_name.
* modules/nstrftime (Depends-on): Remove localename. Add
localename-unsafe.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename-unsafe: Optimize.
* lib/localename-unsafe.c (gl_locale_name_posix_unsafe): Call
setlocale_null_unlocked instead of setlocale_null.
* modules/localename-unsafe (Depends-on): Add setlocale-null-unlocked.
2024-02-15 Bruno Haible <bruno@clisp.org>
setlocale_null-unlocked: Add tests.
* tests/test-setlocale_null-unlocked.c: New file, based on
tests/test-setlocale_null.c.
* modules/setlocale-null-unlocked-tests: New file.
setlocale_null-unlocked: New module.
* lib/setlocale_null.h (setlocale_null_r_unlocked,
setlocale_null_unlocked): New declarations.
* lib/setlocale_null-unlocked.c: New file, based on
lib/setlocale_null.c.
* lib/setlocale_null.c: Don't include <wchar.h>.
(setlocale_null_unlocked, setlocale_null_r_unlocked): Remove functions.
* modules/setlocale-null-unlocked: New file.
* modules/setlocale-null (Depends-on): Add setlocale-null-unlocked.
2024-02-15 Bruno Haible <bruno@clisp.org>
setlocale-null: Refactor.
* lib/setlocale_null.c
(setlocale_null_r_with_lock): Renamed from setlocale_null_with_lock.
(setlocale_null_r_unlocked): Renamed from setlocale_null_unlocked.
(setlocale_null_unlocked): Renamed from setlocale_null_androidfix.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename-unsafe: New module.
* lib/localename.h (gl_locale_name_unsafe, gl_locale_name_thread_unsafe,
gl_locale_name_posix_unsafe): New declarations.
* lib/localename-unsafe.c: New file, based on lib/localename.c.
(gl_locale_name_thread_unsafe): Renamed from gl_locale_name_thread.
(gl_locale_name_posix_unsafe): Renamed from gl_locale_name_posix.
(gl_locale_name_unsafe): Renamed from gl_locale_name.
(struniq): Define only on platforms that need it.
* lib/localename.c: Remove code that was moved to
lib/localename-unsafe.c.
(gl_locale_name_thread): Just call gl_locale_name_thread_unsafe and
struniq.
(gl_locale_name_posix): Just call gl_locale_name_posix_unsafe and
struniq.
* lib/locale.in.h: Test @GNULIB_LOCALENAME_UNSAFE@ instead of
@GNULIB_LOCALENAME@.
* m4/locale_h.m4 (gl_LOCALE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_LOCALENAME_UNSAFE instead of GNULIB_LOCALENAME.
* modules/locale (Makefile.am): Substitute GNULIB_LOCALENAME_UNSAFE
instead of GNULIB_LOCALENAME.
* m4/localename.m4 (gl_LOCALENAME_UNSAFE): Renamed from gl_LOCALENAME.
* modules/localename-unsafe: New file, based on modules/localename.
* modules/localename: Greatly simplify.
(Depends-on): Add localename-unsafe.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename: Refactor.
* lib/struniq.h: New file, extracted from lib/localename.c.
* lib/localename.c: Include it.
* modules/localename (Files): Add lib/struniq.h.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename: Speed up lookup of the LC_MESSAGES name on AIX ≥ 7.2.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): On AIX, test
for the 'locale_name' member.
* lib/localename.c (get_locale_t_name): For the LC_MESSAGES category,
use the 'locale_name' member if available.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename: Add more comments.
* m4/intl-thread-locale.m4: Document expected configuration results.
* doc/posix-functions/uselocale.texi: Update platforms list.
* lib/localename.c: Likewise.
2024-02-15 Bruno Haible <bruno@clisp.org>
localename: Add parameter validation.
* lib/localename.c (get_locale_t_name, gl_locale_name_thread_unsafe,
gl_locale_name_thread, gl_locale_name_posix, gl_locale_name): Verify
that the category argument is not LC_ALL.
2024-02-14 Bruno Haible <bruno@clisp.org>
localename: Notice setlocale() invocations on more platforms.
* lib/localename.c (HAVE_LOCALE_NULL): Define also on musl, FreeBSD,
NetBSD, Solaris, Haiku.
* modules/localename (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* tests/test-localename.c (C_CANONICALIZED): New macro, for Haiku.
(is_default): New function, for musl libc and Haiku.
(test_locale_name, test_locale_name_posix): Use these definitions.
* modules/localename-tests (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
2024-02-14 Bruno Haible <bruno@clisp.org>
Don't treat Apple's new Citrus/FreeBSD-based iconv like GNU libiconv.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Don't treat the bastard Apple
iconv like GNU libiconv.
* lib/striconv.c (mem_cd_iconv, str_cd_iconv): Likewise.
* lib/striconveh.c (iconv_carefully, iconv_carefully_1,
mem_cd_iconveh_internal): Likewise.
* lib/propername.c (proper_name_utf8): Likewise.
* lib/unicodeio.c (unicode_to_mb): Likewise.
* lib/uniconv/u16-conv-from-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u16-conv-to-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u16-strconv-to-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u32-conv-from-enc.c (UTF32_NAME): Likewise.
* lib/uniconv/u32-conv-to-enc.c (UTF32_NAME): Likewise.
* lib/uniconv/u32-strconv-to-enc.c (UTF32_NAME): Likewise.
* tests/test-striconveh.c (main): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
2024-02-14 Bruno Haible <bruno@clisp.org>
Improve support of Citrus/FreeBSD iconv.
* lib/striconveh.c (iconveh_open): Use //TRANSLIT with all iconv
implementations that support it.
* lib/striconveha.c (mem_iconveha, str_iconveha): Likewise.
* lib/propername.c (proper_name_utf8): Likewise.
2024-02-14 Bruno Haible <bruno@clisp.org>
isnan: Fix compilation error in C++ mode on macOS 14.4 / Xcode 15.2.
Reported by Paul E Reimer <reimer@anl.gov> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-02/msg00002.html>.
* lib/math.in.h (GNULIB_NAMESPACE_LACKS_ISNAN): Define also on macOS
with clang ≥ 14.
2024-02-13 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: allow opt-out of AM/PM adjustment
For Emacs I would rather avoid bringing in the Gnulib locking code,
since Emacs has its own idea about locks and its main engine is
single-threaded anyway.
Provide a way to use the nstrftime module while avoiding its
recently-added localename dependency, which entails locking code.
(It’s not clear to me that the locking code is needed for nstrftime,
as NetBSD has strftime_z and Solaris locales could be inspected in
some thread-safe way, e.g., by probing strftime month names.
Anyway, all that’s more hassle than I want to put up with right now
for the trivial matter of AM/PM behavior.)
* lib/strftime.c (REQUIRE_GNUISH_STRFTIME_AM_PM):
New macro, which can be overridden by config.h.
(should_remove_ampm, __strftime_internal):
Use it instead of !USE_C_LOCALE when deciding to
implement Gnuish AM/PM behavior.
2024-02-13 Bruno Haible <bruno@clisp.org>
uniwidth/width tests: Update unit test for last commit.
* tests/uniwidth/test-uc_width2.sh: Update expected test result.
2024-02-12 Bruno Haible <bruno@clisp.org>
uniwidth/width: Assign width 1 to prepended concatenation marks.
Suggested by Jules Bertholet <julesbertholet@quoi.xyz> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00093.html>.
* lib/gen-uni-tables.c (is_nonspacing): For characters with property
Prepended_Concatenation_Mark, return false instead of true.
* lib/uniwidth/width0.h: Regenerated. This assigns width 1 to the
characters U+0600..U+0605, U+06DD, U+070F, U+0890..U+0891, U+08E2,
U+110BD, U+110CD.
* modules/uniwidth/width (configure.ac): Bump required libunistring
version.
* modules/uniwidth/u8-width (configure.ac): Likewise.
* modules/uniwidth/u8-strwidth (configure.ac): Likewise.
* modules/uniwidth/u16-width (configure.ac): Likewise.
* modules/uniwidth/u16-strwidth (configure.ac): Likewise.
* modules/uniwidth/u32-width (configure.ac): Likewise.
* modules/uniwidth/u32-strwidth (configure.ac): Likewise.
2024-02-12 Bruno Haible <bruno@clisp.org>
Implement a new property, added by Unicode 9.0.0.
* lib/gen-uni-tables.c (is_property_prepended_concatenation_mark): New
function.
(output_properties): Output also the property
prepended_concatenation_mark.
* lib/unictype.in.h (UC_PROPERTY_PREPENDED_CONCATENATION_MARK,
uc_is_property_prepended_concatenation_mark): New declarations.
* m4/unictype_h.m4 (gl_UNICTYPE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK.
* modules/unictype/base (Makefile.am): Substitute
GNULIB_UNICTYPE_PROPERTY_PREPENDED_CONCATENATION_MARK.
* lib/unictype/pr_prepended_concatenation_mark.c: New file.
* lib/unictype/pr_prepended_concatenation_mark.h: New generated file.
* modules/unictype/property-prepended-concatenation-mark: New file.
* tests/unictype/test-pr_prepended_concatenation_mark.c: New generated
file.
* modules/unictype/property-prepended-concatenation-mark-tests: New
file.
* lib/unictype/pr_byname.gperf: Add prepended_concatenation_mark.
* lib/unictype/pr_byname.c
(UC_PROPERTY_INDEX_PREPENDED_CONCATENATION_MARK): New enum item.
(uc_property_byname): Handle it.
* modules/unictype/property-byname (Depends-on): Add
unictype/property-prepended-concatenation-mark.
* modules/unictype/property-all (Depends-on): Likewise.
* MODULES.html.sh (func_all_modules): Add
unictype/property-prepended-concatenation-mark.
2024-02-12 Bruno Haible <bruno@clisp.org>
posixtm tests: Fix reference to undefined module (regr. 2024-02-09).
* modules/posixtm-tests (Depends-on): Remove strftime. Add
strftime-fixes.
2024-02-12 Bruno Haible <bruno@clisp.org>
limits-h: Fix BOOL_MAX value.
* lib/limits.in.h (BOOL_MAX): Define to 1, not to 2^BOOL_WIDTH-1.
* tests/test-limits-h.c (main): Change expected value of BOOL_MAX.
2024-02-12 Bruno Haible <bruno@clisp.org>
stdalign: Document a clang 17 bug.
* doc/posix-headers/stdalign.texi: Mention a clang 17 bug.
2024-02-12 Bruno Haible <bruno@clisp.org>
getcwd, getcwd-lgpl: Fix configure test.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Don't redeclare getcwd().
2024-02-12 Florian Weimer <fweimer@redhat.com>
pthread_mutex_timedlock, pthread-spin: Fix configure test.
* m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK): Pass
a pointer of the correct type to pthread_mutex_timedlock.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Pass a pointer of the correct
type to pthread_spin_init.
2024-02-11 Bruno Haible <bruno@clisp.org>
Fulfil the obligations of the Unicode license.
* lib/gen-uni-tables.c: Prepend the Unicode license when copying
NameAliases.txt, UnicodeData.txt, NormalizationTest.txt,
GraphemeBreakTest.txt, WordBreakTest.txt.
* tests/unigbrk/GraphemeBreakTest.txt: Prepend the Unicode license.
* tests/uniname/NameAliases.txt: Likewise.
* tests/uniname/UnicodeData.txt: Likewise.
* tests/uninorm/NormalizationTest.txt: Likewise.
* tests/uniwbrk/WordBreakTest.txt: Likewise.
* tests/uniname/HangulSyllableNames.txt: Add public-domain notice.
2024-02-11 Bruno Haible <bruno@clisp.org>
time_r: Add tests.
* lib/time_r.c: Add comment.
* tests/test-gmtime_r.c: New file.
* tests/test-gmtime_r-mt.c: New file, based on
tests/test-nl_langinfo-mt.c.
* tests/test-localtime_r.c: New file.
* tests/test-localtime_r-mt.c: New file, based on
tests/test-nl_langinfo-mt.c.
* modules/time_r-tests: New file.
2024-02-10 Paul Eggert <eggert@cs.ucla.edu>
doc: improve warnings about ctime etc.
* doc/posix-functions/asctime.texi (asctime):
* doc/posix-functions/asctime_r.texi (asctime_r):
Say why these functions are typically used mistakenly.
* doc/posix-functions/ctime.texi (ctime):
* doc/posix-functions/ctime_r.texi (ctimef):
Say that they can dump core due to an internal null pointer, too.
* doc/posix-functions/ctime.texi (ctime):
Don’t recommend ctime_r.
2024-02-10 Bruno Haible <bruno@clisp.org>
havelib: Add support for NetBSD/sparc64.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On NetBSD/sparc64 in
32-bit mode, search for libraries in /usr/lib/sparc.
2024-02-09 Bruno Haible <bruno@clisp.org>
ctime, localtime, tzset, wcsftime: Make multithread-safe.
* lib/ctime.c: Include <wchar.h>.
(rpl_ctime): Modify _environ and _wenviron without using _putenv.
* lib/localtime.c: Include <wchar.h>.
(rpl_localtime): Modify _environ and _wenviron without using _putenv.
* lib/tzset.c: Include <wchar.h>.
(rpl_tzset): Modify _environ and _wenviron without using _putenv.
* lib/wcsftime.c (rpl_wcsftime): Likewise.
2024-02-09 Bruno Haible <bruno@clisp.org>
strftime: Remove module, deprecated in 2017.
* modules/strftime: Remove file.
* NEWS: Mention it.
2024-02-09 Bruno Haible <bruno@clisp.org>
Avoid suboptimal definition of _GL_HAS_ATTRIBUTE on FreeBSD/sparc64.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_HAS_ATTRIBUTE only
once.
2024-02-08 Bruno Haible <bruno@clisp.org>
nstrtime, c-nstrftime tests: Strengthen the tests.
* tests/test-nstrftime.h (FUNC_CHECKED): New function.
(posixtm_test, tzalloc_test, quarter_test, errno_test, locales_test):
Invoke FUNC_CHECKED instead of FUNC.
2024-02-08 Bruno Haible <bruno@clisp.org>
nstrtime: Fix %p, %P, %r directives' results on NetBSD, Solaris.
* lib/strftime.c: Include <locale.h>, localename.h.
(should_remove_ampm): New function.
(__strftime_internal): On NetBSD and Solaris, remove the AM/PM indicator
from the %p, %r directives' results in specific locales.
* modules/nstrftime (Depends-on): Add localename.
* tests/test-nstrftime.h (locales_test): Update the expected result of
the %r directive.
* doc/posix-functions/strftime.texi: Mention the problem of the %p and
%r directives on NetBSD and Solaris.
2024-02-08 Bruno Haible <bruno@clisp.org>
nstrtime, c-nstrftime: Fix %c directive's result on NetBSD, Solaris.
* lib/strftime.c (__strftime_internal): On NetBSD and Solaris, remove
the last word of the %c directive's result if it looks like a time zone.
* doc/posix-functions/strftime.texi: Mention this as a restriction of
strftime.
2024-02-07 Bruno Haible <bruno@clisp.org>
c-nstrftime: Add tests.
* tests/test-c-nstrftime.c: New file, based on tests/test-nstrftime.c.
* tests/test-c-nstrftime-1.sh: New file, based on
tests/test-nstrftime-1.sh.
* tests/test-c-nstrftime-2.sh: New file, based on
tests/test-nstrftime-2.sh.
* modules/c-nstrftime-tests: New file.
c-nstrftime: New module.
Suggested by Paul Eggert.
* lib/strftime.h (c_nstrftime): New declaration.
* lib/c-nstrftime.c: New file.
* lib/strftime.c (FPRINTFTIME): Move fallback definition before its
first use.
(USE_C_LOCALE): Add fallback definition.
If USE_C_LOCALE is set, include c-ctype.h instead of <ctype.h>.
Conditionally include <locale.h>.
(TOUPPER, TOLOWER): Define differently if USE_C_LOCALE is set.
(c_locale_cache, c_locale): New definitions, copied from lib/c-strtod.c.
(c_weekday_names, c_month_names): New variables, based on
glibc/time/strftime_l.c.
(__strftime_internal): Define a_wkday, aw_len, f_wkday, a_month, am_len,
f_month, ampm, ap_len differently for USE_C_LOCALE. Avoid a
'goto underlying_strftime' if USE_C_LOCALE && !HAVE_STRFTIME_L. If
USE_C_LOCALE, use strftime_l() with the C locale object instead of
strftime().
* m4/c-nstrftime.m4: New file, based on m4/nstrftime.m4.
* modules/c-nstrftime: New file, based on modules/nstrftime.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime: Add tests of all directives, also in non-trivial locales.
* tests/test-nstrftime.h (language_t): New type.
(locales_test): New function.
* tests/test-nstrftime.c: Include <locale.h>, <stdlib.h>.
(main): Invoke setlocale and locales_test.
* tests/test-nstrftime-1.sh: New file.
* tests/test-nstrftime-2.sh: New file, based on tests/test-strtod1.sh.
* modules/nstrftime-tests (Files): Add them. Add m4/locale-fr.m4,
m4/codeset.m4, m4/musl.m4.
(configure.ac): Invoke gt_LOCALE_FR, gt_LOCALE_FR_UTF8, gl_MUSL_LIBC.
(Makefile.am): Link test-nstrftime with $(SETLOCALE_LIB). Test
test-nstrftime-*.sh instead of test-nstrftime.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime: Work around strftime bug with %r on macOS and FreeBSD.
* lib/strftime.c (__strftime_internal): For %r, don't use the underlying
strftime() directly.
* doc/posix-functions/strftime.texi: Mention the %r bug.
2024-02-07 Paul Eggert <eggert@cs.ucla.edu>
Assume ‘long long’ support
* modules/strtoimax, modules/strtoumax (Depends-on):
Assume the compiler supports ‘long long’.
This was overlooked in the 2019-12-22 patch
<https://lists.gnu.org/r/bug-gnulib/2019-12/msg00190.html>.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime: Fix typo in documentation.
Reported by Tim Rice <tim@multitalents.net>.
* lib/strftime.h (nstrftime): Fix typo in comment.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime tests: Avoid test failures on DragonFly BSD.
* tests/test-nstrftime.h (LT): Disable specific test cases also on
DragonFly BSD.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime: Modernize.
* lib/strftime.c (__strftime_internal): Make the strftime fallback
declaration ISO C 23 compliant.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime tests: Avoid test failures on FreeBSD, NetBSD, Android.
* tests/test-nstrftime.h (LT): Disable specific test cases on FreeBSD,
NetBSD, Android.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime tests: Allow reuse with another function.
* tests/test-nstrftime.h: New file, extracted from
tests/test-nstrftime.c.
(FUNC_NAME, STRINGIFY): New macros.
(posixtm_test, tzalloc_test, quarter_test, errno_test): Use FUNC or
FUNC_NAME instead of nstrftime.
(quarter_test): Rename local variable 'result' to 'fail'.
* tests/test-nstrftime.c: Remove code that moved to test-nstrftime.h.
Include test-nstrftime.h.
(STREQ): Remove redundant macro.
* modules/nstrftime-tests (Files): Add tests/test-nstrftime.h.
2024-02-07 Bruno Haible <bruno@clisp.org>
nstrftime: Document the nstrftime function.
* lib/strftime.h (nstrftime): Add more comments.
2024-02-06 Bruno Haible <bruno@clisp.org>
nl_langinfo: Fix fallback list of month names (regression 2014-07-07).
* lib/nl_langinfo.c (nl_langinfo): In the implementation for native
Windows, fix the results for MON_8..MON_12, ALTMON_8..ALTMON_12,
ABMON_8..ABMON_12.
2024-02-06 Bruno Haible <bruno@clisp.org>
nstrftime: Merge glibc strftime changes.
This incorporates:
2023-02-07 Use 64-bit time_t interfaces in strftime and strptime
* lib/strftime.c [_LIBC] (time_t, __gmtime_r, mktime): Define as macros.
* config/srclist.txt: Update comment regarding glibc/time/strftime_l.c.
2024-02-06 Bruno Haible <bruno@clisp.org>
nstrftime, fprintftime: Simplify.
* lib/strftime.c: Renamed from lib/nstrftime.c.
(my_strftime): Don't define here.
* lib/nstrftime.c: New file.
* lib/fprintftime.c (my_strftime): New macro.
Include strftime.c, not nstrftime.c.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't define my_strftime in
config.h.
* modules/nstrftime (Files): Add lib/strftime.c.
* modules/fprintftime (Files): Likewise.
* config/srclist.txt: Update comment regarding glibc/time/strftime.c.
2024-02-06 Bruno Haible <bruno@clisp.org>
Further improve cross-compilation for midipix.
Reported by Ørjan Malde <red@foxi.me>.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Improve cross-compilation guess
for midipix.
2024-02-05 Paul Eggert <eggert@cs.ucla.edu>
ctime: improve doc
* doc/posix-functions/asctime.texi (asctime):
* doc/posix-functions/asctime_r.texi (asctime_r):
* doc/posix-functions/ctime_r.texi (ctime_r):
* doc/posix-functions/ctime.texi (ctime):
Mention locale problem of strftime more consistently. Improve
wording. For ctime and ctime_r, mention that localtime_r can
fail.
* doc/posix-functions/ctime.texi (ctime): Move history section
to end and spiff up a bit.
* doc/posix-functions/ctime_r.texi (ctime_r): Omit commentary that
assumes traditional SunOS ctime_r API; it was confusing and not
useful for Gnulib apps, which assume the POSIX API.
2024-02-05 Bruno Haible <bruno@clisp.org>
Further improve cross-compilation for midipix.
Based on patch by Ørjan Malde <red@foxi.me> from
<https://lists.gnu.org/archive/html/bug-gnulib/2024-02/msg00004.html>.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Add cross-compilation guess for
midipix.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/truncate.m4 (gl_FUNC_TRUNCATE): Likewise.
* m4/utime.m4 (gl_FUNC_UTIME): Likewise.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
2024-02-05 Paul Eggert <eggert@cs.ucla.edu>
doc: Extend doc of *ctime functions.
* doc/posix-functions/ctime.texi (ctime): Document why we got into
this mess.
* doc/posix-functions/asctime.texi (asctime):
* doc/posix-functions/asctime_r.texi (asctime_r):
* doc/posix-functions/ctime_r.texi (ctime_r):
Refer to ctime’s buffer overflow doc.
2024-02-05 Bruno Haible <bruno@clisp.org>
snippet/warn-on-use: Add comment.
* lib/warn-on-use.h: Document a restriction of _GL_WARN_ON_USE.
2024-02-03 Paul Eggert <eggert@cs.ucla.edu>
xalloc-oversized: omit unnecessary cast
* lib/xalloc-oversized.h (__xalloc_oversized): Omit unnecessary
cast of a positive in-range value to size_t. This seems to be
left over from an older version of the code.
glob: port better to C23
* lib/glob.c: Include <stdckdint.h>.
(size_add_wrapv): Remove. All uses replaced by ckd_add.
* modules/glob: Depend on stdckdint.
ctime: fix false positive
Problem reported by Bjarni Ingi Gislason in:
https://lists.gnu.org/r/bug-gnulib/2024-02/msg00006.html
* lib/time.in.h (ctime): Do not warn about ctime portability,
as there is a more serious warning about it crashing,
and the two warning directives can cause false alarms.
2024-01-31 Bruno Haible <bruno@clisp.org>
Implement 3 new properties, added by Unicode 15.1.0.
* lib/gen-uni-tables.c (is_property_id_compat_math_start,
is_property_id_compat_math_continue, is_property_ids_unary_operator):
New functions.
(output_properties): Output also the properties id_compat_math_start,
id_compat_math_continue, ids_unary_operator.
* lib/unictype.in.h (UC_PROPERTY_ID_COMPAT_MATH_START,
UC_PROPERTY_ID_COMPAT_MATH_CONTINUE, UC_PROPERTY_IDS_UNARY_OPERATOR,
uc_is_property_id_compat_math_start,
uc_is_property_id_compat_math_continue,
uc_is_property_ids_unary_operator): New declarations.
* m4/unictype_h.m4 (gl_UNICTYPE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE,
GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE,
GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE.
* modules/unictype/base (Makefile.am): Substitute
GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_START_DLL_VARIABLE,
GNULIB_UNICTYPE_PROPERTY_ID_COMPAT_MATH_CONTINUE_DLL_VARIABLE,
GNULIB_UNICTYPE_PROPERTY_IDS_UNARY_OPERATOR_DLL_VARIABLE.
* lib/unictype/pr_id_compat_math_continue.c: New file.
* lib/unictype/pr_id_compat_math_continue.h: New generated file.
* lib/unictype/pr_id_compat_math_start.c: New file.
* lib/unictype/pr_id_compat_math_start.h: New generated file.
* lib/unictype/pr_ids_unary_operator.c: New file.
* modules/unictype/property-id-compat-math-continue: New file.
* modules/unictype/property-id-compat-math-start: New file.
* modules/unictype/property-ids-unary-operator: New file.
* tests/unictype/test-pr_id_compat_math_continue.c: New generated file.
* tests/unictype/test-pr_id_compat_math_start.c: New generated file.
* tests/unictype/test-pr_ids_unary_operator.c: New generated file.
* modules/unictype/property-id-compat-math-continue-tests: New file.
* modules/unictype/property-id-compat-math-start-tests: New file.
* modules/unictype/property-ids-unary-operator-tests: New file.
* lib/unictype/pr_byname.gperf: Add id_compat_math_start,
id_compat_math_continue, ids_unary_operator.
* lib/unictype/pr_byname.c (UC_PROPERTY_INDEX_ID_COMPAT_MATH_START,
UC_PROPERTY_INDEX_ID_COMPAT_MATH_CONTINUE,
UC_PROPERTY_INDEX_IDS_UNARY_OPERATOR): New enum items.
(uc_property_byname): Handle them.
* modules/unictype/property-byname (Depends-on): Add
unictype/property-id-compat-math-continue,
unictype/property-id-compat-math-start,
unictype/property-ids-unary-operator.
* modules/unictype/property-all (Depends-on): Likewise.
* MODULES.html.sh (func_all_modules): Add
unictype/property-id-compat-math-continue,
unictype/property-id-compat-math-start,
unictype/property-ids-unary-operator.
2024-01-30 Bruno Haible <bruno@clisp.org>
Update to Unicode 15.1.0.
* lib/gen-uni-tables.c (PROP_SENTENCE_TERMINAL): Renamed from
PROP_STERM.
(PROP_IDS_UNARY_OPERATOR, PROP_ID_COMPAT_MATH_CONTINUE,
PROP_ID_COMPAT_MATH_START): New enum items.
(UC_INDIC_CONJUNCT_BREAK_*): New enum items.
(unicode_indic_conjunct_break): New variable.
(fill_properties): Rename local variable propvalue to propcode. Handle
the properties IDS_Unary_Operator, ID_Compat_Math_Continue,
ID_Compat_Math_Start. Parse the InCB values from file
DerivedCoreProperties.txt.
(indic_conjunct_break_as_c_identifier,
output_indic_conjunct_break_test): New functions.
(indic_conjunct_break_table): New variable.
(output_indic_conjunct_break): New function.
(fill_width): Accept spaces at the end of field0 and at the start and
end of field1.
(LBP_QU1, LBP_QU2, LBP_QU3): New enum items, for Unicode TR #14 rules
(LB15a) and (LB15b).
(LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF): New enum items, for Brahmic
scripts.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.
(debug_output_lbp): Print either LBP_QU1 or LBP_QU2 or LBP_QU3 as
LBP_QU. Handle LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF.
(fill_org_lbp): Accept spaces at the end of field0 and at the start and
end of field1. Recognize LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF.
(debug_output_org_lbp): Handle LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF.
(lbp_value_to_string): Handle LBP_QU1, LBP_QU2, LBP_QU3 instead of
LBP_QU. Handle LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF.
(output_lbrk_rules_as_tables): Treat LBP_QU as macro that maps to three
table rows/columns. Replace rule (LB15) with rules (LB15b) and (LB15a).
(get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
(main): Invoke output_indic_conjunct_break_test and
output_indic_conjunct_break.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* lib/unilbrk/lbrktables.h (LBP_QU1, LBP_QU2, LBP_QU3): New enum items,
for Unicode TR #14 rules (LB15a) and (LB15b).
(LBP_QU): Remove enum item.
(LBP_AP, LBP_AK, LBP_AS, LBP_VI, LBP_VF): New enum items, for Brahmic
scripts.
(unilbrk_table): Update array bounds.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Conditionally replace LBP_QU2 with LBP_QU1, for rule (LB15a).
Conditionally replace LBP_QU3 with LBP_QU1, for rule (LB15b).
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* lib/unictype.in.h (UC_INDIC_CONJUNCT_BREAK_*): New enum values.
(uc_indic_conjunct_break_name, uc_indic_conjunct_break_byname,
uc_indic_conjunct_break): New declarations.
* lib/unictype/incb_byname.c: New file.
* lib/unictype/incb_byname.gperf: New file.
* lib/unictype/incb_name.c: New file.
* lib/unictype/incb_name.h: New file.
* lib/unictype/incb_of.c: New file.
* lib/unictype/incb_of.h: New generated file.
* modules/unictype/incb-all: New file.
* modules/unictype/incb-byname: New file.
* modules/unictype/incb-name: New file.
* modules/unictype/incb-of: New file.
* tests/unictype/test-incb_byname.c: New file.
* tests/unictype/test-incb_name.c: New file.
* tests/unictype/test-incb_of.c: New file.
* tests/unictype/test-incb_of.h: New generated file.
* modules/unictype/incb-byname-tests: New file.
* modules/unictype/incb-name-tests: New file.
* modules/unictype/incb-of-tests: New file.
* lib/unigbrk.in.h (uc_is_grapheme_break, u*_grapheme_next,
u*_grapheme_prev): Add comments.
* lib/unigbrk/u-grapheme-breaks.h (FUNC): Add local variables
incb_consonant_extended, incb_consonant_extended_linker,
incb_consonant_extended_linker_extended. Implement rule (GB9c).
* modules/unigbrk/u8-grapheme-breaks (Depends-on): Add unictype/incb-of.
* modules/unigbrk/u16-grapheme-breaks (Depends-on): Likewise.
* modules/unigbrk/u32-grapheme-breaks (Depends-on): Likewise.
* modules/unigbrk/uc-grapheme-breaks (Depends-on): Likewise.
* tests/unigbrk/test-uc-is-grapheme-break.c (main): Add local variables
incb_consonant_extended, incb_consonant_extended_linker,
incb_consonant_extended_linker_extended. Skip test cases that match rule
(GB9c).
* modules/unigbrk/uc-is-grapheme-break-tests (Depends-on): Add
unictype/incb-of.
* All the affected modules: Bump required libunistring version.
2024-01-30 Bruno Haible <bruno@clisp.org>
unigbrk/uc-is-grapheme-break tests: Reduce verbosity.
* tests/unigbrk/test-uc-is-grapheme-break.c
(graphemebreakproperty_to_string): Don't print gbp to stdout.
2024-01-30 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Update copyright year in output.
* lib/gen-uni-tables.c (output_predicate_test, output_predicate,
output_category, output_combclass, output_bidi_category,
output_decimal_digit_test, output_decimal_digit, output_digit_test,
output_digit, output_numeric_test, output_numeric, output_mirror,
output_joining_type_test, output_joining_type,
output_joining_group_test, output_joining_group, output_scripts,
output_scripts_byname, output_blocks, output_ident_category,
output_nonspacing_property, output_lbrk_tables,
output_lbrk_rules_as_tables, output_wbrk_tables, output_gbp_test,
output_gbp_table, output_decomposition_tables,
output_composition_tables, output_simple_mapping_test,
output_simple_mapping, output_casing_rules): Bump copyright year in
output.
* lib/uniname/gen-uninames.lisp (main): Likewise.
2024-01-30 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Refactor, based on UAX #14 version 49.
* lib/gen-uni-tables.c (get_lbp): Reorder, based on
<https://www.unicode.org/reports/tr14/tr14-49.html#DescriptionOfProperties>.
For LBP_EB, use the "emoji modifier base" property.
2024-01-30 Bruno Haible <bruno@clisp.org>
unigbrk tests: Tweak error reporting.
* tests/unigbrk/test-ulc-grapheme-breaks.c (main): Print byte values in
upper-case hexadecimal.
* tests/unigbrk/test-u8-grapheme-breaks.c (test_u8_grapheme_breaks):
Print unit values in upper-case hexadecimal.
* tests/unigbrk/test-u16-grapheme-breaks.c (test_u16_grapheme_breaks):
Print unit values with at least 4 hexadecimal digits.
* tests/unigbrk/test-u32-grapheme-breaks.c (test_u32_grapheme_breaks):
Likewise.
* tests/unigbrk/test-uc-grapheme-breaks.c (test_uc_grapheme_breaks):
Print characters with at least 4 hexadecimal digits.
2024-01-30 Bruno Haible <bruno@clisp.org>
Update copyright year in tests/unictype/*.
* tests/unictype/*: Bump copyright years range to include 2024.
* Makefile (update-copyright): Don't exclude the tests/unictype
directory.
2024-01-29 Patrice Dumas <pertusus@free.fr>
gendocs: get only targeted manual source and includes, when possible
* build-aux/gendocs.sh: if makeinfo, based on version, has the
--trace-includes option, gather only the targeted manual srcfile and
the included files obtained with makeinfo --trace-includes. In that
case output include files to tar stdin and use -T-. Bruno Haible for
the version comparison and use of tar.
2024-01-29 Bruno Haible <bruno@clisp.org>
Port FALLTHROUGH to Mac OS X 10.9.
Report and fix by Ryan Carsten Schmidt <gnulib@ryandesign.com>
at <https://savannah.gnu.org/bugs/?63866>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): For _GL_HAS_ATTRIBUTE, don't use
__has_attribute for Apple clang versions < 7000000.
* lib/cdefs.h (__glibc_has_attribute): Don't use __has_attribute for
Apple clang versions < 7000000.
2024-01-29 Bruno Haible <bruno@clisp.org>
libc-config: Apply lesson learned on 2023-01-13.
* lib/cdefs.h (__glibc_has_attribute): On non-Apple platforms, don't
use __has_attribute for clang versions < 5.0.
2024-01-28 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Let gl_HOST_CPU_C_ABI_32BIT never return 'unknown'.
Reported by Mohammad-Reza Nabipoor <mnabipoor@gnu.org>.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): Use the list of
always-32-bit CPUs and the list of always-64-bit CPUs also when
gl_HOST_CPU_C_ABI has already been run. As a fallback, use a test of
'sizeof (void *)' to always return 'yes' or 'no', never 'unknown'.
2024-01-27 Paul Eggert <eggert@cs.ucla.edu>
gendocs: allow other chars in source file names
* build-aux/gendocs.sh: Generalize to also allow leading ‘-’
and newlines (!) in source file names. Exit if there
is an error creating the tarball.
2024-01-27 Patrice Dumas <pertusus@free.fr>
gendocs: allow spaces, metacharacters and quotes in source file names
* build-aux/gendocs.sh: output files to tar stdin and use -T- to allow
spaces, metacharacters and quotes in file names. Bruno Haible
solution.
2024-01-27 Patrice Dumas <pertusus@free.fr>
gendocs: fix --no-html
* build-aux/gendocs.sh: fix typo in variable name set by --no-html.
2024-01-25 Bruno Haible <bruno@clisp.org>
execute tests: Avoid test failure on macOS 14.
Reported by Guangyu Li <gl343@cornell.edu> in
<https://lists.gnu.org/archive/html/bug-gettext/2024-01/msg00006.html>.
* tests/test-execute-main.c (main): In the tests 17, 18, 19, 20, use the
file descriptors 15, 16 instead of 10, 11, respectively.
* tests/test-execute-child.c (main): Likewise.
2024-01-25 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 35.
* lib/time.in.h (timespec_getres): Consider REPLACE_TIMESPEC_GETRES.
* m4/time_h.m4 (gl_TIME_H_DEFAULTS): Initialize REPLACE_TIMESPEC_GETRES.
* modules/time-h (Makefile.am): Substitute REPLACE_TIMESPEC_GETRES.
* m4/timespec_getres.m4 (gl_FUNC_TIMESPEC_GETRES): Test for
timespec_getres using gl_CHECK_FUNCS_ANDROID instead of
AC_CHECK_FUNCS_ONCE. Conditionally set REPLACE_TIMESPEC_GETRES.
* modules/timespec_getres (Depends-on, configure.ac): Consider
REPLACE_TIMESPEC_GETRES.
* m4/gettime.m4 (gl_GETTIME_RES): Test for timespec_getres using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* doc/posix-functions/timespec_getres.texi: Mention the Android API
levels.
2024-01-25 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 34.
* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE): On platforms without
glibc, test for copy_file_range using gl_CHECK_FUNCS_ANDROID instead of
AC_CHECK_FUNCS_ONCE. Conditionally set REPLACE_COPY_FILE_RANGE.
* doc/glibc-functions/copy_file_range.texi: Mention the Android API
levels.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test for
posix_spawn_file_actions_addchdir_np and
posix_spawn_file_actions_addfchdir_np using gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS_ONCE.
* m4/posix_spawn_faction_addchdir.m4
(gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR): Test for
posix_spawn_file_actions_addchdir_np using gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS_ONCE.
* m4/posix_spawn_faction_addfchdir.m4
(gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR): Test for
posix_spawn_file_actions_addfchdir_np using gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS_ONCE.
* doc/glibc-functions/posix_spawn_file_actions_addchdir_np.texi: Mention
the Android API levels.
* doc/glibc-functions/posix_spawn_file_actions_addfchdir_np.texi:
Likewise.
* lib/string.in.h (memset_explicit): Consider REPLACE_MEMSET_EXPLICIT.
* m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize
REPLACE_MEMSET_EXPLICIT.
* modules/string (Makefile.am): Substitute REPLACE_MEMSET_EXPLICIT.
* m4/memset_explicit.m4 (gl_FUNC_MEMSET_EXPLICIT): Test for
memset_explicit using gl_CHECK_FUNCS_ANDROID instead of
AC_CHECK_FUNCS_ONCE. Conditionally set REPLACE_MEMSET_EXPLICIT.
* modules/memset_explicit (configure.ac): Consider
REPLACE_MEMSET_EXPLICIT.
* doc/posix-functions/memset_explicit.texi: Mention the Android API
levels.
* m4/freadahead.m4 (gl_FUNC_FREADAHEAD): Test for __freadahead using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* lib/freadahead.h: Update comment.
2024-01-25 Bruno Haible <bruno@clisp.org>
Doc regarding functions introduced in Android API level 33.
* doc/glibc-functions/backtrace.texi: Mention the Android API levels.
* doc/glibc-functions/backtrace_symbols.texi: Likewise.
* doc/glibc-functions/backtrace_symbols_fd.texi: Likewise.
* doc/glibc-functions/preadv2.texi: Likewise.
* doc/glibc-functions/pwritev2.texi: Likewise.
2024-01-25 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 30.
* doc/glibc-functions/memfd_create.texi: Mention the Android API levels.
* doc/glibc-functions/mlock2.texi: Likewise.
* doc/glibc-functions/pthread_cond_clockwait.texi: Likewise.
* doc/glibc-functions/pthread_mutex_clocklock.texi: Likewise.
* doc/glibc-functions/pthread_rwlock_clockrdlock.texi: Likewise.
* doc/glibc-functions/pthread_rwlock_clockwrlock.texi: Likewise.
* doc/glibc-functions/renameat2.texi: Likewise.
* doc/glibc-functions/sem_clockwait.texi: Likewise.
* doc/glibc-functions/statx.texi: Likewise.
* lib/threads.in.h (thrd_sleep): Consider REPLACE_THRD_SLEEP.
(thrd_yield): Consider REPLACE_THRD_YIELD.
(mtx_init): Consider REPLACE_MTX_INIT.
(mtx_lock): Consider REPLACE_MTX_LOCK.
(mtx_trylock): Consider REPLACE_MTX_TRYLOCK.
(mtx_timedlock): Consider REPLACE_MTX_TIMEDLOCK.
(mtx_unlock): Consider REPLACE_MTX_UNLOCK.
(mtx_destroy): Consider REPLACE_MTX_DESTROY.
(call_once): Consider REPLACE_CALL_ONCE. Fix warning message.
(cnd_init): Consider REPLACE_CND_INIT.
(cnd_wait): Consider REPLACE_CND_WAIT.
(cnd_timedwait): Consider REPLACE_CND_TIMEDWAIT.
(cnd_signal): Consider REPLACE_CND_SIGNAL.
(cnd_broadcast): Consider REPLACE_CND_BROADCAST.
(cnd_destroy): Consider REPLACE_CND_DESTROY.
(tss_create): Consider REPLACE_TSS_CREATE.
(tss_set): Consider REPLACE_TSS_SET.
(tss_get): Consider REPLACE_TSS_GET.
(tss_delete): Consider REPLACE_TSS_DELETE.
* m4/threads_h.m4 (gl_THREADS_H_DEFAULTS): Initialize REPLACE_CALL_ONCE,
REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
* modules/threads-h (Makefile.am): Substitute REPLACE_CALL_ONCE,
REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
* m4/thrd.m4 (gl_FUNC_THRD_CREATE): New macro.
* modules/thrd (configure.ac): Invoke gl_FUNC_THRD_CREATE.
* m4/call_once.m4: New file.
* modules/call_once (Files): Add m4/call_once.m4.
(configure.ac): Invoke gl_FUNC_CALL_ONCE. Consider REPLACE_CALL_ONCE.
* m4/cnd.m4: New file.
* modules/cnd (Files): Add m4/cnd.m4.
(configure.ac): Invoke gl_FUNC_CND_INIT. Consider REPLACE_CND_INIT.
* m4/mtx.m4: New file.
* modules/mtx (Files): Add m4/mtx.m4.
(configure.ac): Invoke gl_FUNC_MTX_INIT. Consider REPLACE_MTX_INIT.
* m4/tss.m4: New file.
* modules/tss (Files): Add m4/tss.m4.
(configure.ac): Invoke gl_FUNC_TSS_CREATE. Consider REPLACE_TSS_CREATE.
* doc/posix-functions/call_once.texi: Mention the Android API levels.
* doc/posix-functions/cnd_broadcast.texi: Likewise.
* doc/posix-functions/cnd_destroy.texi: Likewise.
* doc/posix-functions/cnd_init.texi: Likewise.
* doc/posix-functions/cnd_signal.texi: Likewise.
* doc/posix-functions/cnd_timedwait.texi: Likewise.
* doc/posix-functions/cnd_wait.texi: Likewise.
* doc/posix-functions/mtx_destroy.texi: Likewise.
* doc/posix-functions/mtx_init.texi: Likewise.
* doc/posix-functions/mtx_lock.texi: Likewise.
* doc/posix-functions/mtx_timedlock.texi: Likewise.
* doc/posix-functions/mtx_trylock.texi: Likewise.
* doc/posix-functions/mtx_unlock.texi: Likewise.
* doc/posix-functions/thrd_create.texi: Likewise.
* doc/posix-functions/thrd_current.texi: Likewise.
* doc/posix-functions/thrd_detach.texi: Likewise.
* doc/posix-functions/thrd_equal.texi: Likewise.
* doc/posix-functions/thrd_exit.texi: Likewise.
* doc/posix-functions/thrd_join.texi: Likewise.
* doc/posix-functions/thrd_sleep.texi: Likewise.
* doc/posix-functions/thrd_yield.texi: Likewise.
* doc/posix-functions/tss_create.texi: Likewise.
* doc/posix-functions/tss_delete.texi: Likewise.
* doc/posix-functions/tss_get.texi: Likewise.
* doc/posix-functions/tss_set.texi: Likewise.
2024-01-21 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Port to Android NDK r26.
Reported by Po Lu <luangruo@yahoo.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00063.html>.
* lib/readutmp.h: Update comments.
(UTMP_NAME_FUNCTION): Define as a no-op for Android with HAVE_UTMPX_H.
2024-01-21 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Fix link error on various platforms.
* m4/atomic-cas.m4: New file.
* lib/asyncsafe-spin.c: Test HAVE_ATOMIC_COMPARE_AND_SWAP_GCC41 instead
of a condition that considers only __sparc__, __ANDROID__, __ibmxl__.
* lib/pthread-spin.c: Likewise.
* lib/simple-atomic.c: Likewise.
* modules/asyncsafe-spin (Files): Add m4/atomic-cas.m4.
(configure.ac): Require gl_ATOMIC_COMPARE_AND_SWAP.
* modules/pthread-spin: Likewise.
* modules/simple-atomic: Likewise.
2024-01-19 Bruno Haible <bruno@clisp.org>
fenv-environment: Fix for NetBSD/powerpc.
* m4/fenv-environment.m4 (gl_FENV_ENVIRONMENT): For feupdateenv, use
the same configure test on NetBSD/powerpc as on glibc/hppa.
* doc/posix-functions/feupdateenv.texi: Mention the NetBSD/powerpc bug.
fenv-exceptions-trapping: Avoid a test failure on *BSD/powerpc*.
* tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests also on
FreeBSD/powerpc* and NetBSD/powerpc*.
fenv-exceptions-state-c99: Fix for FreeBSD/powerpc64 and NetBSD/powerpc.
* m4/fenv-exceptions-state.m4 (gl_FENV_EXCEPTIONS_STATE): On
FreeBSD/powerpc64 and NetBSD/powerpc, set REPLACE_FESETEXCEPTFLAG.
* doc/posix-functions/fesetexceptflag.texi: Mention the FreeBSD and
NetBSD bug.
fenv-*: Avoid test failures on FreeBSD/powerpc64 and NetBSD/powerpc.
On these platforms, FE_ALL_EXCEPT contains additional bits.
* tests/test-fenv-except-tracking-1.c (FE_VXSOFT, FE_VXZDZ): Define
fallbacks.
(main): Allow fetestexcept(FE_ALL_EXCEPT) to contain FE_VXSOFT or
FE_VXZDZ in addition to FE_INVALID.
* tests/test-fenv-except-tracking-4.c (FE_VXSOFT): Define fallback.
(main): Allow fetestexcept(FE_ALL_EXCEPT) to contain FE_VXSOFT in
addition to FE_INVALID.
* tests/test-fenv-env-2.c: Likewise.
* tests/test-fenv-env-3.c: Likewise.
* tests/test-fenv-env-4.c: Likewise.
* tests/test-fenv-env-5.c: Likewise.
2024-01-19 Bruno Haible <bruno@clisp.org>
fenv-*: Fix test failures on NetBSD 9.3/arm64.
* m4/fenv-exceptions-trapping.m4 (gl_FENV_EXCEPTIONS_TRAPPING): Override
feenableexcept() also on NetBSD/arm64.
* doc/glibc-functions/feenableexcept.texi: Update platforms list.
2024-01-19 Bruno Haible <bruno@clisp.org>
fenv-*: Avoid test failures on OpenBSD/sparc64.
* tests/test-fenv-except-tracking-2.c (main): On OpenBSD/sparc64, skip
the 'long double' test.
* tests/test-fenv-except-trapping-2.c (main): Skip the 'long double'
tests also on OpenBSD/sparc64.
2024-01-18 Bruno Haible <bruno@clisp.org>
fenv-rounding: Avoid a test failure on OpenBSD/arm64.
* tests/test-fenv-round.c (test_towardzero, test_upward, test_downward):
Skip the 'long double' tests on OpenBSD/arm64.
* doc/posix-functions/fesetround.texi: Update platforms list.
2024-01-18 Bruno Haible <bruno@clisp.org>
Avoid test failures in FreeBSD's GB18030 locale.
The FreeBSD 14.0 iconv converter (GB18030 → UTF-8) cannot convert e.g.
0x94 0x32 0xBB 0x34 to U+1D100.
* tests/test-c32isalnum.c (main): Skip the GB18030 locale tests on
FreeBSD, if GL_CHAR32_T_IS_UNICODE (or, equivalently,
GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION) is defined.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isblank.c (main): Likewise.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isdigit.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32isspace.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-c32isxdigit.c (main): Likewise.
* tests/test-c32rtomb.c (main): Likewise.
* tests/test-c32snrtombs.c (main): Likewise.
* tests/test-c32srtombs.c (main): Likewise.
* tests/test-c32stombs.c (main): Likewise.
* tests/test-c32tolower.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-mbrtoc16.c (main): Likewise.
* tests/test-mbrtoc32.c (main): Likewise.
* tests/test-mbsnrtoc32s.c (main): Likewise.
* tests/test-mbsrtoc32s.c (main): Likewise.
* tests/test-mbstoc32s.c (main): Likewise.
2024-01-18 Bruno Haible <bruno@clisp.org>
get-rusage-data: Avoid test failure on NetBSD 9.3.
* tests/test-get-rusage-data.c (main): Don't expect a strict increase on
NetBSD systems.
2024-01-18 Bruno Haible <bruno@clisp.org>
log10l: Work around bug on NetBSD 9.3/arm64.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Add another test case, taken from
the unit test.
2024-01-18 Bruno Haible <bruno@clisp.org>
doc: Update regarding <math.h> *l functions on NetBSD 9.3.
* doc/posix-functions/acoshl.texi: Mention the buggy implementation on
NetBSD.
* doc/posix-functions/acosl.texi: Likewise.
* doc/posix-functions/asinhl.texi: Likewise.
* doc/posix-functions/asinl.texi: Likewise.
* doc/posix-functions/atan2l.texi: Likewise.
* doc/posix-functions/atanhl.texi: Likewise.
* doc/posix-functions/atanl.texi: Likewise.
* doc/posix-functions/coshl.texi: Likewise.
* doc/posix-functions/cosl.texi: Likewise.
* doc/posix-functions/erfcl.texi: Likewise.
* doc/posix-functions/erfl.texi: Likewise.
* doc/posix-functions/powl.texi: Likewise.
* doc/posix-functions/sinhl.texi: Likewise.
* doc/posix-functions/sinl.texi: Likewise.
* doc/posix-functions/tanhl.texi: Likewise.
* doc/posix-functions/tanl.texi: Likewise.
* doc/posix-functions/expl.texi: Update NetBSD version info.
* doc/posix-functions/exp2l.texi: Likewise.
* doc/posix-functions/hypotl.texi: Likewise.
* doc/posix-functions/logl.texi: Likewise.
* doc/posix-functions/log10l.texi: Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Update comments.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL_WORKS): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Likewise.
2024-01-18 Bruno Haible <bruno@clisp.org>
modfl: Work around bug on NetBSD 9.3/arm64.
* m4/modfl.m4 (gl_FUNC_MODFL): Add test whether modfl basically works.
* doc/posix-functions/modfl.texi: Mention the NetBSD bug.
2024-01-18 Bruno Haible <bruno@clisp.org>
isnanl: Avoid autoconf warning.
* m4/isnanl.m4 (gl_FUNC_ISNANL): Declare through AC_DEFUN_ONCE.
2024-01-18 Bruno Haible <bruno@clisp.org>
fmaf, fma, fmal: Work around bugs on OpenBSD 7.4/arm64.
* m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Use a volatile function pointer
variable to disable clang's inlining.
* m4/fma.m4 (gl_FUNC_FMA_WORKS): Likewise.
* m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Likewise.
* doc/posix-functions/fmaf.texi: Mention the OpenBSD bug.
* doc/posix-functions/fma.texi: Likewise.
* doc/posix-functions/fmal.texi: Likewise.
2024-01-18 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202401. Mention that stable-202301 is no longer updated.
2024-01-17 Bruno Haible <bruno@clisp.org>
getopt-gnu: Fix out-of-bounds access (regression 2023-12-11).
* lib/getopt.c (process_long_option): Don't set ambig_set[option_index]
if ambig_set is &ambig_fallback.
2024-01-17 Bruno Haible <bruno@clisp.org>
Improve naming of local variables.
* gnulib-tool, posix-modules, build-aux/relocatable.sh.in,
build-aux/reloc-ldflags, build-aux/install-reloc, tests/init.sh,
m4/argz.m4: Rename save_IFS to saved_IFS.
* m4/*.m4: Rename save_LIBS to saved_LIBS.
* m4/00gnulib.m4, m4/gnulib-common.m4, m4/warn-on-use.m4, m4/wchar_h.m4:
Rename save_ac_compile to saved_ac_compile.
* m4/00gnulib.m4: Rename ac_save_ac_compile to ac_saved_ac_compile.
* m4/gnulib-common.m4: Rename save_ac_compile_for_check_decl to
saved_ac_compile_for_check_decl.
* m4/assert_h.m4, m4/manywarnings.m4, m4/stdalign.m4, m4/visibility.m4:
Rename gl_save_CFLAGS to gl_saved_CFLAGS.
* m4/dirfd.m4: Rename dirfd_save_CFLAGS to gl_saved_CFLAGS.
* m4/include_next.m4, m4/pread.m4, m4/pwrite.m4, m4/termcap.m4,
m4/terminfo.m4: Rename gl_save_CPPFLAGS to gl_saved_CPPFLAGS.
* m4/lib-link.m4: Rename ac_save_CPPFLAGS to acl_save_CPPFLAGS.
* m4/iconv.m4, m4/readline.m4: Rename am_save_CPPFLAGS to
gl_saved_CPPFLAGS.
* m4/gettext.m4: Rename gt_save_CPPFLAGS to gt_saved_CPPFLAGS.
* m4/ansi-c++.m4: Rename gl_save_CXX to gl_saved_CXX.
* m4/manywarnings-c++.m4: Rename gl_save_CXXFLAGS to gl_saved_CXXFLAGS.
* m4/lib-link.m4: Rename acl_save_ifs to acl_saved_IFS.
* m4/lib-prefix.m4: Rename acl_save_IFS to acl_saved_IFS.
* m4/progtest.m4: Rename ac_save_IFS to gt_saved_IFS.
* m4/lib-link.m4: Rename save_libdir to saved_libdir, acl_save_libdir to
acl_saved_libdir.
* m4/ld-version-script.m4: Rename save_LDFLAGS to saved_LDFLAGS.
* m4/acl.m4, m4/getgroups.m4: Rename ac_save_LIBS to gl_saved_LIBS.
* m4/lib-link.m4: Rename ac_save_LIBS to acl_saved_LIBS.
* m4/getdomainname.m4, m4/gethostname.m4, m4/getloadavg.m4,
m4/hostent.m4, m4/inet_ntop.m4, m4/inet_pton.m4,
m4/pthread_mutex_timedlock.m4, m4/pthread_sigmask.m4,
m4/pthread-spin.m4, m4/readutmp.m4, m4/selinux-selinux-h.m4,
m4/servent.m4, m4/socketlib.m4, m4/termcap.m4, m4/terminfo.m4,
m4/thread.m4: Rename gl_save_LIBS to gl_saved_LIBS.
* m4/getaddrinfo.m4, m4/iconv.m4, m4/readline.m4: Rename am_save_LIBS to
gl_saved_LIBS.
* m4/gettext.m4, m4/intlmacosx.m4: Rename gt_save_LIBS to gt_saved_LIBS.
* m4/libunistring.m4: Rename glus_save_LIBS to glus_saved_LIBS.
* m4/nanosleep.m4: Rename nanosleep_save_libs to gl_saved_LIBS.
* m4/lib-prefix.m4: Rename acl_save_prefix to acl_saved_prefix,
acl_save_exec_prefix to acl_saved_exec_prefix.
* m4/configmake.m4: Rename gl_save_<variable> to gl_saved_<variable>.
* m4/terminfo.m4: Likewise.
* m4/gettext.m4: Rename gt_save_<variable> to gt_saved_<variable>.
* m4/javaexec.m4: Rename save_CLASSPATH to gt_saved_CLASSPATH.
* m4/warnings.m4: Rename gl_save_compiler_FLAGS to
gl_saved_compiler_FLAGS.
* lib/pread.c, lib/pwrite.c, lib/read-file.c, lib/tempname.c: Rename
save_errno to saved_errno.
* lib/read-file.c: Rename save_alloc to saved_alloc.
* lib/strptime.c: Rename save_wday to saved_wday, save_mday to
saved_mday, save_mon to saved_mon.
2024-01-16 Paul Eggert <eggert@cs.ucla.edu>
posixtm: pacify clang 18
Problem reported by Khem Raj in:
https://lists.gnu.org/r/bug-gnulib/2024-01/msg00045.html
* lib/posixtm.c (posixtime): Pacify clang 18 by converting bool to int.
Arguably this is a bug in draft C2x, since the non-pointer args to
ckd_add should promote just like any other expressions do;
but that’s not clang’s fault.
2024-01-07 Jim Meyering <meyering@meta.com>
update-copyright: handle more cases
* build-aux/update-copyright: Handle cases like gunzip.in
with its two copyright lines.
Making it work required two changes: don't stop upon first match.
And then, when continuing, a little trickiness: knowing that the
final substitution would reset m{}g's "pos()", so save and restore
that, to avoid an infinite loop in some cases.
* tests/test-update-copyright.sh: Add a test for this.
2024-01-15 Paul Eggert <eggert@cs.ucla.edu>
test-framework-sh: fix spelling typo
* tests/init.sh (setup_): Name local var consistently with
elsewhere in Gnulib, fixing a typo.
2024-01-15 Bruno Haible <bruno@clisp.org>
test-framework-sh: Improve portability to native Windows and OS/2.
Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00037.html>.
* tests/init.sh (setup_): Test for an absolute directory name like
Autoconf does.
test-framework-sh: Improve portability to native Windows and OS/2.
Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00037.html>.
* tests/init.sh (setup_): In new_PATH, use $PATH_SEPARATOR instead of
':'.
test-framework-sh: Improve portability to native Windows and OS/2.
Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00037.html>.
* tests/init.sh (setup_): Set IFS, like in Autoconf's _AS_PATH_WALK and
in build-aux/relocatable.sh.in.
2024-01-12 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix link error.
* modules/jit/cache-tests (Makefile.am): Link test-cache with
$(LIBINTL).
2024-01-12 Bruno Haible <bruno@clisp.org>
qsort_r: Fix compilation error in C++ mode on FreeBSD 14.0/powerpc64.
* lib/stdlib.in.h (qsort_r): Enable the C++ alias warning only on glibc
systems.
2024-01-11 Bruno Haible <bruno@clisp.org>
time: Fix test failure on FreeBSD 12.2/sparc64.
* m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on
FreeBSD/sparc.
* doc/posix-functions/time.texi: Mention the bug on FreeBSD/sparc.
2024-01-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Reject broken 'join' program as seen in macOS, FreeBSD etc.
Reported by Avinash Sonawane <rootkea@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00028.html>.
* gnulib-tool: Move the func_gnulib_dir and func_tmpdir invocations
ahead. If the 'join' program exists but does not handle missing fields,
bail out.
2024-01-10 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix for powerpc64le CPUs.
* tests/jit/test-cache.c: Treat Linux/powerpc64le *not* like AIX.
2024-01-10 Bruno Haible <bruno@clisp.org>
jit/cache tests: Avoid gcc -Wstrict-aliasing warning on Linux/powerpc64.
* tests/jit/test-cache.c (funcptr_to_structptr): Turn into an inline
function.
2024-01-10 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix for arm CPUs with GCC target arm-linux-gnueabihf.
* tests/jit/test-cache.c (CODE): Define differently on arm.
(SET_CODE, IS, SET_IS): New macros.
(main): New variables is_of_return1, is_of_return2. Use the SET_CODE and
SET_IS macros.
2024-01-10 Bruno Haible <bruno@clisp.org>
jit/cache tests: Avoid compiler warnings on OpenBSD.
* tests/jit/test-cache.c (main): New variables size_of_return1,
size_of_return2.
2024-01-09 Bruno Haible <bruno@clisp.org>
jit/cache: Fix for ia64 CPUs.
* lib/jit/cache.h (clear_cache): On ia64 CPUs, use the 'fc', 'sync',
'srlz' instructions.
2024-01-09 Bruno Haible <bruno@clisp.org>
jit/cache: Fix for hppa CPUs.
* lib/jit/cache.h (clear_cache): On hppa CPUs, use the 'fdc' and 'fic'
instructions.
jit/cache tests: Avoid test failure on OpenBSD.
* tests/jit/test-cache.c (return1_code, return2_code): New constants.
(main): On OpenBSD, use return1_code and return2_code instead of
CODE (return1) and CODE (return2), since the latter may not be in a
readable memory area.
jit/cache tests: Avoid test failure on hppa CPUs.
* tests/jit/test-cache.c (FUNCPTR_BIAS): New macro.
(structptr_to_funcptr, funcptr_to_structptr): New functions/macros.
(xcopy_structptr): Renamed from xcopy_funcptr. Mark as inline.
(COPY_FUNCPTR, CODE): Use structptr_to_funcptr, funcptr_to_structptr.
* modules/jit/cache-tests (configure.ac): Require AC_C_INLINE.
2024-01-08 Bruno Haible <bruno@clisp.org>
jit/cache tests: Fix for powerpc*, ia64, hppa* CPUs.
* modules/jit/cache-tests (Depends-on): Add xalloc.
* tests/jit/test-cache.c: Include xalloc.h.
(FUNCPTR_POINTS_TO_CODE, COPY_FUNCPTR): New macros.
(xcopy_funcptr): New function.
(main): Create a copy of the function pointer return1, so as not to
destructively modify return1. Fix memcpy argument.
2024-01-08 Bruno Haible <bruno@clisp.org>
jit/cache tests: Port to native Windows.
* tests/jit/test-cache.c (main): On native Windows, use VirtualAlloc
instead of mmap.
2024-01-08 Bruno Haible <bruno@clisp.org>
jit/cache tests: Avoid test failure on OpenBSD.
* modules/jit/cache-tests (Files): Add m4/warnings.m4.
(configure.ac): Set and substitute DISABLE_OPENBSD_RETGUARD.
(Makefile.am): Set test_cache_CFLAGS.
* tests/jit/test-cache.c (main): If the compiler defines _RET_PROTECTOR,
skip the test.
2024-01-08 Bruno Haible <bruno@clisp.org>
jit/cache tests: Avoid test failure on CentOS, *BSD, macOS.
* tests/jit/test-cache.c: Include <fcntl.h>, <stdio.h>, <stdlib.h>.
Don't include pagealign_alloc.h. Include clean-temp-simple.h. Don't test
HAVE_MPROTECT.
(struct func): Fix #if conditions.
(main): Don't invoke pagealign_xalloc and mprotect. Instead, invoke mmap,
using a temporary file if needed.
* modules/jit/cache-tests (Files): Add m4/mmap-anon.m4.
(Depends-on): Add clean-temp-simple. Remove pagealign_alloc.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Don't test for mprotect.
2024-01-07 Paul Eggert <eggert@cs.ucla.edu>
doc: adjust to texinfo 7.1
* doc/Makefile (MAKEINFO): Adjust to texinfo 7.1, where makeinfo
by default outputs ASCII approximations to characters.
2024-01-02 Bruno Haible <bruno@clisp.org>
strverscmp: Work around bug in musl libc 1.2.3 and in Cygwin.
Reported by Dmitry Bogatov <KAction@gnu.org> via Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-01/msg00002.html>.
* m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize REPLACE_STRVERSCMP.
* m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Test whether strverscmp works
and set REPLACE_STRVERSCMP if not.
* lib/string.in.h (strverscmp): Consider REPLACE_STRVERSCMP.
* modules/strverscmp (Depends-on, configure.ac): Likewise.
* modules/string (Makefile.am): Substitute REPLACE_STRVERSCMP.
* tests/test-strverscmp.c (main): Add test cases suggested by Dmitry
Bogatov and by Simon Josefsson.
* doc/glibc-functions/strverscmp.texi: Mention the musl and Cygwin bug.
Update version info regarding FreeBSD.
2024-01-01 Paul Eggert <eggert@cs.ucla.edu>
update-copyright-tests: immunize against self
Problem reported by Bernhard Voelker in:
https://lists.gnu.org/r/bug-gnulib/2024-01/msg00003.html
* tests/test-update-copyright.sh (ight): New var.
Use it in tests, to prevent update-copyright from
messing with the test data.
2023-12-29 Paul Eggert <eggert@cs.ucla.edu>
tests: don’t skip if LONG_MAX < pid
* modules/pthread_sigmask-tests, modules/sigprocmask-tests:
(Depends-on): Add inttypes.
* tests/test-pthread_sigmask1.c, tests/test-sigprocmask.c:
Include inttypes.h.
(main): Don’t skip test if pid exceeds LONG_MAX.
Omit no-longer-needed pragmas
* lib/anytostr.c, lib/poll.c, lib/regex.c:
Omit pragmas that should no longer be needed.
gnulib-common: suppress -Wtautological-constant-out-of-range-compare
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Pass
-Wno-tautological-constant-out-of-range-compare to clang, as it’s
the warning is enabled by default and in portable code where type
ranges are platform dependent it is generally more trouble than
it’s worth.
2023-12-29 Simon Josefsson <simon@josefsson.org>
announce-gen: Improve links.
* build-aux/announce-gen: Use https:// URLs.
2023-12-29 Bruno Haible <bruno@clisp.org>
error: More clang -Winclude-next-absolute-path silencing.
* modules/error (Include): Suggest <error.h>, not "error.h".
* tests/test-error.c: Write #include <error.h>.
* tests/test-exclude.c: Likewise.
* tests/test-verror.c: Likewise.
* tests/test-xstrtol.c: Likewise.
2023-12-28 Paul Eggert <eggert@cs.ucla.edu>
include_next: pacify clang -Winclude-next-absolute-path
Without this change, Ubuntu clang version 16.0.6 (15) issues
warnings like this: “In file included from xalloc-die.c:25:
./error.h:28:3: warning: #include_next in file found relative to
primary source file or found by absolute path; will search from
start of include path [-Winclude-next-absolute-path]”.
And sure enough, each file includes itself rather than the
next include file and it’s only the subsidiary include that
gets around to including the next include file.
* lib/argmatch.c, lib/chdir-long.c, lib/clean-temp-simple.c:
* lib/clean-temp.c, lib/closein.c, lib/closeout.c, lib/copy-acl.c:
* lib/copy-file.c, lib/creat.c, lib/csharpcomp.c:
* lib/csharpexec.c, lib/error.c, lib/exclude.c, lib/execute.c:
* lib/faccessat.c, lib/fopen.c, lib/freopen.c, lib/getopt.c:
* lib/getopt1.c, lib/git-merge-changelog.c, lib/javacomp.c:
* lib/javaexec.c, lib/javaversion.c, lib/mkdir-p.c, lib/open.c:
* lib/openat-die.c, lib/openat.c, lib/os2-spawn.c:
* lib/pagealign_alloc.c, lib/pipe-filter-gi.c:
* lib/pipe-filter-ii.c, lib/same.c, lib/set-acl.c:
* lib/sigpipe-die.c, lib/spawn-pipe.c, lib/sys_socket.c, lib/truncate.c:
* lib/unistd.c, lib/verror.c, lib/wait-process.c, lib/wctype-h.c:
* lib/xalloc-die.c, lib/xfreopen.c, lib/xmemcoll.c, lib/xprintf.c:
* lib/xsetenv.c, lib/xstdopen.c, lib/xstrtol-error.c:
Use ‘#include <foo.h>’ instead of ‘#include "foo.h"’ if foo.h
possibly uses #include_next. (However, don’t do this on OSF/1
which has its own problems.)
stat-time: fix macOS bug with negative file times
macOS has a bug similar (but not identical) to Solaris when
file timestamps are negative: tv_nsec might go negative.
Problem reported on Darwin 8.11.0 for GNU Tar by Gordon Steemson in:
https://lists.gnu.org/r/bug-tar/2023-12/msg00001.html
This was evidently Mac OS X 10.4.11; I reproduced it on
Darwin 21.6.0 (macOS 12.6 build 21G115).
* lib/stat-time.h (STAT_TIMESPEC_OFFSETOF): New macro.
(stat_time_normalize): Also normalize timestamps on macOS.
* m4/fstat.m4 (gl_FUNC_FSTAT):
* m4/fstatat.m4 (gl_FUNC_FSTATAT):
* m4/lstat.m4 (gl_FUNC_LSTAT):
* m4/stat.m4 (gl_FUNC_STAT):
Also replace on macOS.
2023-12-19 Bruno Haible <bruno@clisp.org>
jit/cache: Fix compilation error on m68k, sparc, etc.
* lib/jit/cache.h: Include <stdint.h>.
* modules/jit/cache (Depends-on): Add stdint.
2023-12-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
jit/cache tests: Make more portable.
* tests/jit/test-cache.c (CODE): New macro.
(struct func): New type.
(main): Initialize f more carefully.
* modules/jit/cache-tests (Depends-on): Add host-cpu-c-abi.
2023-12-19 Christian Göttsche <cgzones@googlemail.com>
selinux-h: add stubs and wrappers for raw counterparts
Add stubs and wrappers of already covered libselinux interfaces for
their `raw` counterparts. These counterparts perform the same
operation except for context translation. Context translation is used
to convert SELinux labels to human readable form, see mcstransd(8).
* lib/se-selinux.in.h: Add declarations for raw variants.
* lib/se-label.in.h: Likewise.
* lib/getfilecon.c: Add wrappers for problematic raw variants.
* m4/selinux-selinux-h.m4: Use wrappers for problematic raw variants.
2023-12-14 Paul Eggert <eggert@cs.ucla.edu>
mcel-tests: fix thinko in test
* tests/test-mcel.c (main): Fix typo in mcel_scanz test.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-12/msg00034.html
2023-12-11 Paul Eggert <eggert@cs.ucla.edu>
savedir: scale better when sorting by name
* lib/savedir.c: Include attribute.h.
(direntry_t): The ‘name’ member is now idx_t, not char *,
so that it survives name_space relocation.
(direntry_cmp_name, direntry_cmp_inode, comparison_function):
Adjust to qsort_r API, and to direntry_t layout change.
(streamsavedir): Redo to avoid need for xstrdup on each directory
entry. Instead, copy the string data into name_space; this
typically scales better as the memory allocator is called O(log N)
rather than O(N) times. Use qsort_r so that name_space can be
passed to the comparison functions. Simplify calls to ‘free’ so
that lack of leakage is more obvious.
* modules/savedir (Depends-on): Add attribute, qsort_r.
getopt: pacify gcc -Wanalyzer-null-dereference
* lib/getopt.c (process_long_option): Simplify logic slightly.
This pacifies gcc -flto -Wanalyzer-null-dereference when compiling
GNU tar on x86-64 with gcc 13.2.1 20231205 (Red Hat 13.2.1-6).
2023-12-10 Pádraig Brady <P@draigBrady.com>
bootstrap: fix option propagation with --bootstrap-sync
* top/bootstrap: Ensure options are propagated through
upgrade_bootstrap().
* top/bootstrap-funclib.sh: Likewise.
* build-aux/bootstrap: Auto generated with `make build-aux/bootstrap`.
Fixes https://bugs.gnu.org/67731
2023-12-01 Paul Eggert <eggert@cs.ucla.edu>
frexp, frexpf: pacify clang re address-of-volatile
Problem reported by Sam James in:
https://lists.gnu.org/r/bug-gnulib/2023-12/msg00013.html
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Don’t try to convert
‘double volatile *’ to ‘void const *’ as the C standard
doesn’t allow accessing volatile variables through
pointer-to-nonvolatile.
* m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): Likewise.
Update portability doc for CHERI, C23
* doc/gnulib-readme.texi:
Prefer “null pointer” to “@code{NULL}” since C23 has nullptr.
(Portability guidelines): Mention C99 instead of C89 for what
Gnulib assumes of headers.
(C99 features avoided): Mention CHERI issue with intptr_t etc.
(Other portability assumptions): Say that C23 requires two’s
complement. Mention CHERI’s holes.
2023-12-01 Bruno Haible <bruno@clisp.org>
obstack: Avoid undefined behaviour.
Reported by Alexey Palienko <Alexey.Palienko@cma.se> in
<https://lists.gnu.org/archive/html/bug-m4/2023-02/msg00000.html>.
* lib/obstack.in.h: Include <stdint.h>.
(__BPTR_ALIGN): Remove macro.
(__PTR_ALIGN): For the optimized case, compute the alignment through
uintptr_t, instead of computing NULL + something.
2023-12-01 Bruno Haible <bruno@clisp.org>
doc: Update for FreeBSD 14.0.
* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* m4/printf.m4: Update comments.
2023-12-01 Bruno Haible <bruno@clisp.org>
sethostname tests: Fix a compilation error on FreeBSD 14.0.
* tests/test-sethostname1.c: Skip the SIGNATURE_CHECK on some platforms.
* doc/glibc-functions/sethostname.texi: Update platforms list.
2023-11-27 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
stack: Fix documentation in header file.
* lib/stack.h: Correct documentation on `stack_current_base'.
2023-11-27 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
jit/cache-tests: Fix include guard.
* tests/jit/test-cache.c (main): Extend range of include guard.
2023-11-25 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
jit/cache-tests: New module.
* tests/jit/test-cache.c: New file.
* modules/jit/cache-tests: New file. Mark the test as unportable
for now.
2023-11-25 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
jit/cache: Fix configure error.
* m4/valgrind-helper.m4: Unconditionally set support_valgrind.
2023-11-24 Bruno Haible <bruno@clisp.org>
floorf, ceilf tests: Strengthen against compiler optimizations.
Reported by René Rebe <rene@t2-project.org>.
* tests/test-floorf1.c (main): Mark my_floorf as 'volatile'.
* tests/test-floorf-ieee.c (main): Likewise.
* tests/test-ceilf1.c (main): Mark my_ceilf as 'volatile'.
* tests/test-ceilf-ieee.c (main): Likewise.
2023-11-21 Bruno Haible <bruno@clisp.org>
strerrorname_np: Work around glibc bug on HPPA systems.
* m4/strerrorname_np.m4 (gl_FUNC_STRERRORNAME_NP): Test also
strerrorname_np (ENOSYM).
* lib/strerrorname_np.c (strerrorname_np): Update comments.
* tests/test-strerrorname_np.c (main): Likewise.
* doc/glibc-functions/strerrorname_np.texi: Mention that glibc 2.37
still needs a workaround.
2023-11-21 Bruno Haible <bruno@clisp.org>
rand: Use the usual patterns for overriding a function.
* lib/stdlib.in.h (RAND_MAX): Override also if module 'rand' is present.
(rand): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize GNULIB_RAND.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_RAND.
* modules/stdlib (Makefile.am): Substitute GNULIB_RAND and REPLACE_RAND.
2023-11-18 Bruno Haible <bruno@clisp.org>
nan, snan tests: Don't include these tests by default.
* modules/nan-tests (Status): Mark the test as unportable.
* modules/snan-tests (Status): Likewise.
2023-11-17 Bruno Haible <bruno@clisp.org>
realloc-gnu: Fix wrong configure test result with optimizing ibm-clang.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Use 'volatile', to defeat an
ibm-clang optimization.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise.
2023-11-17 Bruno Haible <bruno@clisp.org>
mbrtowc, mbrtoc32, nl_langinfo, setlocale-null: Obey --disable-threads.
Reported by David Edelsohn <dje.gcc@gmail.com> in
<https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636830.html>,
<https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636843.html>.
* m4/threadlib.m4 (gl_THREADLIB_BODY): If --disable-threads was
specified, define AVOID_ANY_THREADS to 1.
* lib/mbtowc-lock.c: Omit all code if --disable-threads was specified.
* lib/nl_langinfo-lock.c: Likewise.
* lib/setlocale-lock.c: Likewise.
* lib/mbtowc-lock.h: Omit locking code if --disable-threads was
specified.
* lib/nl_langinfo.c: Likewise.
* lib/setlocale_null.c: Likewise.
* lib/mbrtowc.c: Don't include any multithreading headers if
--disable-threads was specified.
* lib/mbrtoc32.c: Likewise.
2023-11-17 Bruno Haible <bruno@clisp.org>
gettext: Recognize a statically built libintl on macOS and AIX.
Reported by David Edelsohn <dje.gcc@gmail.com> in
<https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636558.html>.
* m4/gettext.m4 (AM_GNU_GETTEXT): In the
"checking for GNU gettext in libintl..." test, add also the special
system library dependencies needed on macOS and AIX.
2023-11-16 Bruno Haible <bruno@clisp.org>
boot-time: Make it work on Adélie Linux.
* lib/boot-time.c (get_boot_time_uncached): Invoke Linux fallbacks also
on Linux systems that have neither <utmp.h> nor <utmpx.h>.
2023-11-15 Bruno Haible <bruno@clisp.org>
obstack: Modernize, fixing several problems.
* lib/obstack.in.h: Renamed from lib/obstack.h. Add reference to the
glibc documentation.
(_OBSTACK_INTERFACE_VERSION): Remove macro.
(_OBSTACK_SIZE_T, _CHUNK_SIZE_T, _OBSTACK_CAST): Mark old values with
_LIBC.
(_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
_obstack_memory_used, _obstack_allocated_p): Override if REPLACE_OBSTACK
is 1.
* lib/obstack.c: Don't include <gnu-versions.h>.
(_OBSTACK_ELIDE_CODE): Remove macro.
* m4/obstack.m4 (gl_FUNC_OBSTACK): Test whether obstack.h exists. Don't
define HAVE_OBSTACK any more. Set HAVE_OBSTACK, REPLACE_OBSTACK,
GL_GENERATE_OBSTACK_H.
* modules/obstack (Files): Remove obstack.h. Add obstack.in.h.
(Depends-on): Add gen-header. Add conditions.
(configure.ac): Consider HAVE_OBSTACK, REPLACE_OBSTACK. Invoke
gl_CONDITIONAL_HEADER and AC_PROG_MKDIR_P.
(Makefile.am): Generate obstack.h. Augment BUILT_SOURCES and
MOSTLYCLEANFILES.
2023-11-15 Paul Eggert <eggert@cs.ucla.edu>
striconveha: pacify gcc -Wcast-align
* lib/striconveha.c (uniconv_register_autodetect): Rewrite to
avoid the need to cast from char * to a pointer to a more strictly
aligned type. Use decls after statements to avoid some repetition.
2023-11-14 Bruno Haible <bruno@clisp.org>
doc: Mention a 'random' limitation on OpenBSD.
Reported by Corinna Vinschen <vinschen@redhat.com>.
* doc/posix-functions/random.texi: Mention the OpenBSD limitation.
2023-11-14 Bruno Haible <bruno@clisp.org>
rand: Mark as obsolete.
* modules/rand (Status, Notice): New sections.
2023-11-14 Bruno Haible <bruno@clisp.org>
*printf-posix: Revert expectations of %lc of 0.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LC): Expect a NUL byte in the
output.
* lib/vasnprintf.c (VASNPRINTF): In the %lc implementation, don't
special-case the NUL wide character.
* tests/test-vasnprintf-posix.c (test_function): Change expected result
for %lc of L'\0'.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* doc/posix-functions/dprintf.texi: Update platform list regarding %lc
of 0 bug.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/asprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2023-11-13 Bruno Haible <bruno@clisp.org>
doc: Add a note.
* doc/posix-headers/stdatomic.texi: Add a note about the memory model.
2023-11-13 Bruno Haible <bruno@clisp.org>
Don't use CHERI facilities with CC="clang -march=morello".
Suggested by Jessica Clarke <jrtc27@jrtc27.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-11/msg00116.html>.
* lib/alignalloc.h (alignalloc): Test __CHERI_PURE_CAPABILITY__, not
__CHERI__.
* lib/eealloc.h (eemalloc, eerealloc): Likewise.
* lib/ialloc.h (irealloc, ireallocarray): Likewise.
* lib/malloca.h (malloca): Likewise.
* lib/malloca.c (small_t, mmalloca, freea): Likewise.
* lib/rawmemchr.c (rawmemchr): Likewise.
* lib/safe-alloc.h (safe_alloc_realloc_n): Likewise.
* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): Likewise.
* lib/ssfmalloc.h (struct dissected_page_header, init_small_block_page,
init_medium_block_page, free_block_from_pool, allocate_block): Likewise.
* tests/test-stdint.c: Likewise.
2023-11-13 Bruno Haible <bruno@clisp.org>
jit/cache: Fix configure test.
* m4/valgrind-helper.m4 (gl_VALGRIND_HELPER): Check already at configure
time whether <valgrind/valgrind.h> exists. Fix AC_DEFINE_UNQUOTED
invocation.
2023-11-12 Paul Eggert <eggert@cs.ucla.edu>
rawmemchr: speed up, particularly on CHERI
* lib/rawmemchr.c (rawmemchr) [__CHERI__]: Use memchr instead of
one-byte reads. This sped up a simple benchmark (rawmemchr on
100,000 bytes) by 6x on a Research Morello SoC r0p0 on CheriBSD 14.
[!__CHERI__]: Use sizeof, not alignof, as better alignment
should help performance a bit on some platforms.
* modules/rawmemchr (Depends-on): Remove alignasof.
2023-11-12 Bruno Haible <bruno@clisp.org>
jit/cache: New module.
* lib/jit/cache.h: New file.
* m4/valgrind-helper.m4: New file.
* modules/jit/cache: New file.
2023-11-11 Bruno Haible <bruno@clisp.org>
ssfmalloc: Take advantage of CHERI bounds-checking.
* lib/ssfmalloc.h: Include <cheri.h>.
(struct dissected_page_header) [CHERI]: Add field 'whole_page'.
(init_small_block_page, init_medium_block_page) [CHERI]: Initialize it.
(free_block_from_pool) [CHERI]: Use this field to initialize
pool->freeable_page.
(allocate_block) [CHERI]: Return a pointer with a tight upper bound.
2023-11-11 Johannes Schindelin <johannes.schindelin@gmx.de>
vasnprintf: Re-enable parsing of directive with I64 (regr. 2023-03-24).
* lib/printf-parse.c (PRINTF_PARSE): When parsing a size specifier
"I64", increment cp by 3, not 1.
2023-11-11 Bruno Haible <bruno@clisp.org>
malloca: Take advantage of CHERI bounds-checking.
* lib/malloca.h: Include <cheri.h>.
(malloca) [CHERI]: In the stack-allocation case, return a pointer with
a tight lower bound and a tight upper bound.
* lib/malloca.c: Include <cheri.h>.
(small_t) [CHERI]: Define as uintptr_t.
(mmalloca) [CHERI]: Return a pointer with a tight upper bound.
(freea) [CHERI]: Update.
2023-11-11 Bruno Haible <bruno@clisp.org>
safe-alloc: Take advantage of CHERI bounds-checking.
* lib/safe-alloc.h: Include <cheri.h>.
(safe_alloc_realloc_n): When count or size is 0, return a pointer whose
bounds are of size 0, not 1.
2023-11-11 Bruno Haible <bruno@clisp.org>
ialloc: Take advantage of CHERI bounds-checking.
* lib/ialloc.h: Include <cheri.h>.
(irealloc): When s is 0, return a pointer whose bounds are of size 0,
not 1.
(ireallocarray): When n or s is 0, return a pointer whose bounds are of
size 0, not 1.
2023-11-11 Bruno Haible <bruno@clisp.org>
eealloc: Take advantage of CHERI bounds-checking.
* lib/eealloc.h: Include <cheri.h>.
(eemalloc): When n is 0, return a pointer whose bounds are of size 0,
not 1.
(eerealloc): Likewise.
2023-11-11 Bruno Haible <bruno@clisp.org>
alignalloc: Take advantage of CHERI bounds-checking.
* lib/alignalloc.h: Include <cheri.h>.
(alignalloc): When size is 0, return a pointer whose bounds are of
size 0, not 1.
2023-11-11 Bruno Haible <bruno@clisp.org>
rawmemchr tests: Add test case for last commit.
* tests/test-rawmemchr.c (main): Add test case for aligned oversized
read.
2023-11-11 Paul Eggert <eggert@cs.ucla.edu>
rawmemchr: port better to CHERI
* lib/rawmemchr.c (rawmemchr): Use unsigned char for longword,
since CHERI doesn’t allow the aligned-word trick to speed up
performance.
2023-11-10 Paul Eggert <eggert@cs.ucla.edu>
di-set: port better to CHERI-64
* lib/di-set.c: Include stdint.h.
(hashint): Make it uintptr_t, not size_t, since it’s for use
when converting to pointer and back again. This suppresses
a false positive on CHERI-64.
* modules/di-set (Depends-on): Add stdint.
stdio: fix port to older macOS
* lib/stdio.in.h: It’s pre macOS 13, not pre macOS 10.13.
Problem reported by Sevan Janiyan in:
https://lists.gnu.org/r/bug-gnulib/2023-11/msg00066.html
et seq.
2023-11-10 Bruno Haible <bruno@clisp.org>
doc: Mention rand and srand limitations.
* doc/posix-functions/rand.texi: Mention multithread-safety problem.
* doc/posix-functions/srand.texi: Mention a Cygwin bug.
2023-11-10 Bruno Haible <bruno@clisp.org>
tests: In multithreaded tests, use random() instead of rand().
* tests/test-asyncsafe-spin2.c (random_account, lock_mutator_thread):
Use random() instead of rand().
* tests/test-lock.c (random_account, lock_mutator_thread,
rwlock_mutator_thread, recshuffle): Likewise.
* tests/test-mtx.c (random_account, lock_mutator_thread, recshuffle):
Likewise.
* tests/test-pthread-mutex.c (random_account, lock_mutator_thread,
recshuffle): Likewise.
* tests/test-pthread-rwlock.c (random_account, rwlock_mutator_thread):
Likewise.
* tests/test-pthread-spin.c (random_account, lock_mutator_thread):
Likewise.
* tests/test-pthread-tss.c (perhaps_yield, worker_thread,
racecheck_thread): Likewise.
* tests/test-thread_local.c (perhaps_yield, worker_thread): Likewise.
* tests/test-tls.c (perhaps_yield, worker_thread, racecheck_thread):
Likewise.
* tests/test-tss.c (perhaps_yield, worker_thread, racecheck_thread):
Likewise.
* asyncsafe-spin-tests (Depends-on): Add random.
* lock-tests (Depends-on): Likewise.
* mtx-tests (Depends-on): Likewise.
* pthread-mutex-tests (Depends-on): Likewise.
* pthread-rwlock-tests (Depends-on): Likewise.
* pthread-spin-tests (Depends-on): Likewise.
* pthread-tss-tests (Depends-on): Likewise.
* threads-h-tests (Depends-on): Likewise.
* tls-tests (Depends-on): Likewise.
* tss-tests (Depends-on): Likewise.
2023-11-10 Bruno Haible <bruno@clisp.org>
doc: Mention an srandom limitation on OpenBSD.
* doc/posix-functions/srandom.texi: Mention the OpenBSD limitation.
2023-11-10 Bruno Haible <bruno@clisp.org>
random tests: Add multithread-safety test.
* tests/test-random-mt.c: New file.
* modules/random-tests (Files): Add it.
(Depends-on): Add xalloc, thread, yield.
(Makefile.am): Also build and test test-random-mt.
random: Fix multithread-safety bug in general.
* m4/random.m4 (gl_FUNC_RANDOM): Override also macOS, FreeBSD, Solaris,
Cygwin, Haiku.
* doc/posix-functions/random.texi: Mention the wider scope of the
multithread-safety bug.
2023-11-09 Bruno Haible <bruno@clisp.org>
sigsegv: Improve port to CHERI.
* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): Define also on CheriBSD.
sigsegv: Port to CHERI.
* lib/sigsegv.c: Treat __aarch64__ like __arm64__.
(SIGSEGV_FOR_ALL_SIGNALS): Treat SIGPROT like SIGSEGV and SIGBUS.
2023-11-09 Paul Eggert <eggert@cs.ucla.edu>
stdio: port better to older macOS
* lib/stdio.in.h: Do not define _POSIX_C_SOURCE on older macOS,
as it is not needed and defining it causes other problems.
Problem reported by Sevan Janiyan in:
https://mail.gnu.org/r/bug-gnulib/2023-11/msg00039.html
2023-11-09 Bruno Haible <bruno@clisp.org>
rand: Add tests.
* tests/test-rand.c: New file.
* modules/rand-tests: New file.
rand: New module.
* lib/rand.c: New file, based on glibc/stdlib/rand.c.
* m4/rand.m4: New file.
* modules/rand: New file.
* doc/posix-functions/rand.texi: Mention the new module.
2023-11-09 Bruno Haible <bruno@clisp.org>
random: Fix multithread-safety bug on CheriBSD.
* m4/random.m4 (gl_FUNC_RANDOM): Override on CheriBSD.
* lib/random.c: Include glthread/lock.h.
(__libc_lock_define_initialized, __libc_lock_lock, __libc_lock_unlock):
Define to do real locking.
* modules/random (Depends-on): Add lock.
* doc/posix-functions/random.texi: Mention the multithread-safety
problem.
2023-11-09 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Port to CHERI.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): Treat aarch64c like
aarch64.
2023-11-08 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Port to Mac OS X 10.4.
Reported by Sevan Janiyan <venture37@geeklan.co.uk>.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): On macOS, test for the
presence of PTHREAD_RWLOCK_INITIALIZER. If it is not defined, don't
attempt to use pthread_rwlock_init.
2023-11-07 Bruno Haible <bruno@clisp.org>
fenv-environment tests: Add a test of the link dependencies.
* tests/test-fenv-env-6.c: Renamed from tests/test-fenv-env-5.c.
* tests/test-fenv-env-5.c: Renamed from tests/test-fenv-env-4.c.
* tests/test-fenv-env-4.c: Renamed from tests/test-fenv-env-3.c.
* tests/test-fenv-env-3.c: Renamed from tests/test-fenv-env-2.c.
* tests/test-fenv-env-2.c: Renamed from tests/test-fenv-env-1.c.
* tests/test-fenv-env-1.c: New file.
* tests/test-fenv-env-6.sh: Renamed from tests/test-fenv-env-5.sh. Update.
* modules/fenv-environment-tests: Update. Add test-fenv-env-1 unit test.
2023-11-07 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99 tests: Add a test of the link dependencies.
* tests/test-fenv-except-state-4.c: Renamed from
tests/test-fenv-except-state-3.c.
* tests/test-fenv-except-state-3.c: Renamed from
tests/test-fenv-except-state-2.c.
* tests/test-fenv-except-state-2.c: Renamed from
tests/test-fenv-except-state-1.c.
* tests/test-fenv-except-state-1.c: New file.
* modules/fenv-exceptions-state-c23-tests: Update.
* modules/fenv-exceptions-state-c99-tests: Update. Add
test-fenv-except-state-1 unit test.
2023-11-07 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping tests: Comments.
* tests/test-fenv-except-trapping-1.c (main): Add a comment.
2023-11-07 Paul Eggert <eggert@cs.ucla.edu>
malloca: pacify -Wcheri-provenance
This shouldn’t affect generated code when optimizing.
* lib/malloca.c (mmalloca): Pacify -Wcheri-provenance on CHERI-64 cc.
(freea): Assign to temporaries to simplify debugging and avoid casts.
2023-11-07 Bruno Haible <bruno@clisp.org>
rawmemchr: Port to CHERI.
* lib/rawmemchr.c (rawmemchr): Use 'unsigned long' instead of uintptr_t.
2023-11-06 Paul Eggert <eggert@cs.ucla.edu>
stdint: port intptr_t to CHERI
* lib/stdint.in.h: Do not redefine intptr_t/uintptr_t
if __INTPTR_WIDTH__ says otherwise. This is needed on CHERI.
stdint-tests: port to CHERI etc
* tests/test-stdint.c: Test intptr_t only if INTPTR_MAX is
defined, since the type is optional. Similarly for uintptr_t.
If CHERI, don’t assume TYPE_MINIMUM and TYPE_MAXIMUM works on
intptr_t, and similarly for TYPE_MAXIMUM and uintptr_t.
posix_memalign-tests: port to CHERI-64
* tests/test-posix_memalign.c (main):
Don’t assume sizeof (void *) <= 8.
mcel-tests: fix read overrun in test case
* tests/test-mcel.c (main): Don’t overrun test input buffer.
Problem reported by Bruno Haible; found on CHERI-64.
2023-11-06 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99 tests: Fix typo.
Found by coverity.
* tests/test-fenv-except-tracking-1.c (main): Write & ~, not & !.
2023-11-06 Bruno Haible <bruno@clisp.org>
snan: Avoid test failures on OpenBSD/mips64.
* tests/test-snan-1.c (main): Skip the 'long double' test on
OpenBSD/mips64.
* tests/test-snan-2.c (main): Likewise.
fenv-*: Avoid test failures on OpenBSD/mips64.
* tests/test-fenv-round.c (test_towardzero, test_upward, test_downward):
Skip the 'long double' tests on OpenBSD/mips64.
* tests/test-fenv-except-tracking-2.c (main): On OpenBSD/mips64, skip
the 'long double' test.
* tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests and the
'long double' tests also on OpenBSD/mips64.
* doc/posix-functions/fesetround.texi: Mention OpenBSD/mips64 here too.
fenv-exceptions-tracking-c99: Fix test failures on OpenBSD/mips64.
* m4/fenv-exceptions-tracking.m4 (gl_FENV_EXCEPTIONS_TRACKING): On
OpenBSD/mips, set REPLACE_FECLEAREXCEPT to 1.
* doc/posix-functions/feclearexcept.texi: Mention the OpenBSD/mips64
bug.
* m4/fenv-exceptions-state.m4 (gl_FENV_EXCEPTIONS_STATE): No need to set
gl_cv_func_fesetexceptflag_works1 to 'no' on OpenBSD/mips.
2023-11-06 Bruno Haible <bruno@clisp.org>
nan: Defeat clang's incorrect -O2 optimization on mips64.
* lib/nan.h (NaNf, NaNd, NaNl): Use 'volatile' to disable a clang
optimization.
2023-11-06 Bruno Haible <bruno@clisp.org>
nan: Work around clang's incorrect constant-folding on mips64.
* lib/nan.h (NaNf, NaNd, NaNl): On mips platforms, avoid the compiler's
constant-folding for 0.0f/0.0f, 0.0/0.0, 0.0L/0.0L.
2023-11-06 Bruno Haible <bruno@clisp.org>
snan: Add more info for mips-based platforms.
* m4/nan-mips.m4: New file.
* lib/snan.h: Add comments regarding mips.
* modules/snan (Files): Add m4/nan-mips.m4.
(configure.ac): Invoke gl_NAN_MIPS.
* m4/snan.m4: Update comment.
2023-11-06 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99: Update doc regarding Minix.
* doc/posix-functions/fesetexceptflag.texi: Mention the Minix bug.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Avoid test failure on Minix.
* tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests also on
Minix.
fenv-exceptions-tracking-c99: Fix test failures on Minix.
* m4/fenv-exceptions-tracking.m4 (gl_FENV_EXCEPTIONS_TRACKING): On
Minix, set REPLACE_FECLEAREXCEPT and REPLACE_FETESTEXCEPT to 1.
* doc/posix-functions/feclearexcept.texi: Mention the Minix bug.
* doc/posix-functions/fetestexcept.texi: Likewise.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Avoid test failure on Haiku/i386.
* tests/test-fenv-except-trapping-2.c (main): Skip the '4' tests also on
Haiku/i386.
fenv-exceptions-state: Fix test failure on Haiku/i386 and Haiku/x86_64.
* m4/fenv-exceptions-state.m4 (gl_FENV_EXCEPTIONS_STATE): Arrange to
override fesetexceptflag() on Haiku.
* doc/posix-functions/fesetexceptflag.texi: Mention the Haiku bug.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv: Add C++ tests.
* tests/test-fenv-c++.cc: New file.
* modules/fenv-c++-tests: New file.
* modules/fenv-tests (Depends-on): Add it.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-environment: Add tests.
* tests/test-fenv-env-1.c: New file.
* tests/test-fenv-env-2.c: New file.
* tests/test-fenv-env-3.c: New file.
* tests/test-fenv-env-4.c: New file.
* tests/test-fenv-env-5.sh: New file.
* tests/test-fenv-env-5.c: New file.
* modules/fenv-environment-tests: New file.
fenv-environment: New module.
* lib/fenv.in.h (fenv_t) [hppa]: Remove the __exception field.
(FE_DFL_ENV): Override if <fenv.h> exists but HAVE_FE_DFL_ENV is not
defined.
(fegetenv, fesetenv, feupdateenv, feholdexcept): New declarations.
* lib/fenv-env.c: New file, based on glibc.
* lib/fenv-env-hold.c: New file.
* lib/fenv-env-update.c: New file.
* m4/fenv-environment.m4: New file.
* m4/mathfunc.m4 (gl_MATHFUNC): Handle also the 'fenv_t *' type.
* m4/fenv_h.m4 (gl_FENV_H_DEFAULTS): Initialize REPLACE_FEGETENV,
REPLACE_FEHOLDEXCEPT, REPLACE_FESETENV, REPLACE_FEUPDATEENV.
* modules/fenv (Makefile.am): Substitute REPLACE_FEGETENV,
REPLACE_FEHOLDEXCEPT, REPLACE_FESETENV, REPLACE_FEUPDATEENV.
* modules/fenv-environment: New file.
* doc/posix-functions/fegetenv.texi: Mention the new module and the bugs
on glibc, macOS, AIX.
* doc/posix-functions/feholdexcept.texi: Mention the new module and the
bugs on glibc, musl libc, FreeBSD, AIX, mingw, MSVC.
* doc/posix-functions/fesetenv.texi: Mention the new module and the bugs
on musl libc, FreeBSD, NetBSD, AIX, Solaris, Cygwin, mingw, MSVC.
* doc/posix-functions/feupdateenv.texi: Mention the new module and the
bugs on glibc, musl libc, macOS, FreeBSD, AIX, Solaris, mingw, MSVC.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99 tests: Enhance tests.
* tests/test-fenv-except-tracking-3.sh: Test not only FE_INVALID, but
also FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW, FE_INEXACT.
* tests/test-fenv-except-tracking-3.c: Include <stdlib.h>, <string.h>.
Don't include fpe-trapping.h. Assume HAVE_FPE_TRAPPING is 1.
(main): Receive the exception to test as first argument.
2023-11-05 Bruno Haible <bruno@clisp.org>
fpe-trapping: Simplify.
* lib/fpe-trapping.h (sigfpe_on_invalid): Remove all platform specific
code. Just rely on feclearexcept and feenableexcept.
* m4/fpe-trapping.m4: Renamed from m4/fpe.m4.
(gl_FPE_TRAPPING): Greatly simplify.
* modules/fpe-trapping (Files): Use m4/fpe-trapping.m4 instead of
m4/fpe.m4. Remove m4/mathfunc.m4, m4/musl.m4.
(Depends-on): Add fenv-exceptions-trapping.
* tests/test-fenv-except-state-2.c (main): Update skip message.
* tests/test-fenv-except-tracking-2.c (main): Likewise.
* tests/test-fenv-except-tracking-3.c (main): Likewise.
* tests/test-fenv-except-tracking-5.c (main): Likewise.
* tests/test-nan-2.c (main): Likewise.
* tests/test-snan-2.c (main): Likewise.
2023-11-05 Bruno Haible <bruno@clisp.org>
fpe-tracking: Remove module.
* modules/fpe-tracking: Remove file.
* m4/fpe.m4 (gl_FPE_TRACKING): Remove macro.
(gl_FPE_TRAPPING): Require gl_FENV_EXCEPTIONS_TRACKING instead of
gl_FPE_TRACKING. Use FENV_EXCEPTIONS_TRACKING_LIBM instead of
FPE_TRACKING_LIBM.
* modules/nan-tests (Depends-on): Add fenv-exceptions-tracking-c99.
Remove fpe-tracking.
(Makefile.am): Use FENV_EXCEPTIONS_TRACKING_LIBM instead of
FPE_TRACKING_LIBM.
* modules/snan-tests (Depends-on): Add fenv-exceptions-tracking-c99.
Remove fpe-tracking.
(Makefile.am): Use FENV_EXCEPTIONS_TRACKING_LIBM instead of
FPE_TRACKING_LIBM.
* tests/test-nan-1.c: Assume HAVE_FE_INVALID is 1.
* tests/test-snan-1.c: Likewise.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Avoid test failure on NetBSD/sparc.
* tests/test-fenv-except-trapping-2.c (main): Skip the 'long double'
tests also on NetBSD/sparc.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Update documentation.
* doc/glibc-functions/feenableexcept.texi: Document the Linux/hppa
problem.
2023-11-05 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Avoid test failure on older systems.
* tests/test-fenv-except-trapping-2.c (main): Skip the test also on x86
systems with gcc < 8.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Fix for powerpc* platforms.
* lib/fenv-except-trapping.c (feenableexcept, fedisableexcept)
[powerpc]: Use the correct bit mask for the trap bits.
* tests/test-fenv-except-trapping-2.c (main): Reenable the '9' tests on
powerpc platforms.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99: Fix compilation error on FreeBSD.
* lib/fenv.in.h (fegetexceptflag, fesetexceptflag): On FreeBSD, use an
rpl_ prefix, to avoid a conflict with an inline definition in FreeBSD's
<fenv.h>.
2023-11-04 Bruno Haible <bruno@clisp.org>
doc: Update info about Cygwin feraiseexcept bug.
* doc/posix-functions/feraiseexcept.texi: Update info regarding Cygwin.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99 tests: Avoid test failure on NetBSD/sparc.
* tests/test-fenv-except-tracking-2.c (main): On NetBSD/sparc, skip the
'long double' test.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99: Fix fetestexcept() override for AIX.
* lib/fenv-except-tracking-test.c (fetestexcept): On AIX, use
fp_read_flag() rather than the fpscr register.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99: Work around a NetBSD/x86_64 bug.
* m4/fenv-exceptions-tracking.m4 (gl_FENV_EXCEPTIONS_TRACKING): On
NetBSD/x86_64, set REPLACE_FETESTEXCEPT to 1.
* doc/posix-functions/fetestexcept.texi: Document the NetBSD bug.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-rounding: Avoid a test failure on NetBSD/sparc64.
* tests/test-fenv-round.c (test_towardzero, test_upward, test_downward):
Skip the 'long double' tests on NetBSD/sparc64.
* doc/posix-functions/fesetround.texi: Mention the problem with
'long double' operations on some platforms.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-rounding: Improve code for MSVC.
* lib/fenv-round.c (fegetround) [MSVC]: Use the rounding direction from
the SSE unit. Don't assume stable values for FE_UPWARD and FE_DOWNWARD.
(fesetround) [MSVC]: Set the rounding direction only in the SSE unit.
Don't assume stable values for FE_UPWARD and FE_DOWNWARD.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv-rounding et al.: Require AC_CANONICAL_HOST before accessing $host.
* m4/fenv-rounding.m4 (gl_FENV_ROUNDING): Require AC_CANONICAL_HOST.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Likewise.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise.
* m4/iswpunct.m4 (gl_FUNC_ISWPUNCT): Likewise.
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/strerrorname_np.m4 (gl_FUNC_STRERRORNAME_NP): Likewise.
* m4/strfmon_l.m4 (gl_FUNC_STRFMON_L): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Likewise.
* m4/wcscmp.m4 (gl_FUNC_WCSCMP): Likewise.
* m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Likewise.
2023-11-04 Bruno Haible <bruno@clisp.org>
fenv: Document an ABI break on MSVC.
* doc/posix-headers/fenv.texi: Document why fegetround and fesetround
are seemingly broken on MSVC.
2023-10-31 Bruno Haible <bruno@clisp.org>
fenv-exceptions-trapping: Add tests.
* tests/test-fenv-except-trapping-1.c: New file.
* tests/test-fenv-except-trapping-2.sh: New file.
* tests/test-fenv-except-trapping-2.c: New file.
* modules/fenv-exceptions-trapping-tests: New file.
fenv-exceptions-trapping: New module.
* lib/fenv.in.h (feenableexcept, fedisableexcept, fegetexcept): New
declarations.
* lib/fenv-except-trapping.c: New file, based on glibc.
* m4/fenv_h.m4 (gl_FENV_H): Test also whether fegetexcept is declared.
* m4/fenv-exceptions-trapping.m4: New file.
* modules/fenv-exceptions-trapping: New file.
* doc/glibc-functions/fegetexcept.texi: Mention the new module.
* doc/glibc-functions/fedisableexcept.texi: Likewise.
* doc/glibc-functions/feenableexcept.texi: Likewise. Mention the glibc,
macOS, FreeBSD bugs.
2023-10-30 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99: Fix the x86_64 and i386 case.
* lib/fenv-except-state-set.c (fesetexceptflag): Make sure to restore
the exception trap bits in all cases.
2023-10-30 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c23: Add tests.
* tests/test-fenv-except-state-3.c: New file.
* modules/fenv-exceptions-state-c23-tests: New file.
fenv-exceptions-state-c23: New module.
* lib/fenv.in.h (fetestexceptflag): New declaration.
* lib/fenv-except-state-test.c: New file, based on glibc.
* m4/fenv-exceptions-state-c23.m4: New file.
* modules/fenv-exceptions-state-c23: New file.
* doc/posix-functions/fetestexceptflag.texi: Mention the new module.
2023-10-30 Bruno Haible <bruno@clisp.org>
fenv-exceptions-state-c99: Add tests.
* tests/test-fenv-except-state-1.c: New file.
* tests/test-fenv-except-state-2.c: New file.
* modules/fenv-exceptions-state-c99-tests: New file.
fenv-exceptions-state-c99: New module.
* lib/fenv.in.h (fegetexceptflag, fesetexceptflag): New declarations.
* lib/fenv-except-state-get.c: New file, based on glibc.
* lib/fenv-except-state-set.c: New file, based on glibc.
* m4/mathfunc.m4 (gl_MATHFUNC): Handle also the 'fexcept_t *' type.
* m4/fenv-exceptions-state.m4: New file.
* modules/fenv-exceptions-state-c99: New file.
* doc/posix-functions/fegetexceptflag.texi: Mention the new module.
* doc/posix-functions/fesetexceptflag.texi: Mention the new module and
the glibc, musl libc, macOS, AIX, mingw bugs.
2023-10-30 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-{c99,c23}: Fix the x86_64 and i386 case.
* lib/fenv-except-tracking-clear.c (feclearexcept): Make sure to restore
the exception trap bits in all cases.
* lib/fenv-except-tracking-raise.c (feraiseexcept): Likewise.
* lib/fenv-except-tracking-set.c (fesetexcept): Likewise.
2023-10-29 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c23: Add tests.
* tests/test-fenv-except-tracking-4.c: New file.
* tests/test-fenv-except-tracking-5.c: New file.
* modules/fenv-exceptions-tracking-c23-tests: New file.
fenv-exceptions-tracking-c23: New module.
* lib/fenv.in.h (fesetexcept): New declaration.
* lib/fenv-except-tracking-set.c: New file, based on glibc.
* lib/fenv-private.h (_GETMSR, _SETMSR, MSR_FP_EXC_MASK, PR_SET_FPEXC,
PR_FP_EXC_DISABLED, PR_FP_EXC_NONRECOV, PR_FP_EXC_ASYNC,
PR_FP_EXC_PRECISE, prctl) [NetBSD/powerpc]: New macros.
* m4/fenv-exceptions-tracking-c23.m4: New file.
* modules/fenv-exceptions-tracking-c23: New file.
* doc/posix-functions/fesetexcept.texi: Mention the new module and the
glibc bugs.
2023-10-28 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99: Fix feraiseexcept (FE_OVERFLOW) on MSVC.
* lib/fenv-except-tracking-raise.c (feraiseexcept): Use the generic
approach for all exceptions.
2023-10-28 Bruno Haible <bruno@clisp.org>
fpe-trapping: Always clear the FE_INVALID exception flag first.
* lib/fpe-trapping.h: Include <fenv.h> on all platforms.
(sigfpe_on_invalid) [AIX, HP-UX, IRIX, Solaris] : Clear the FE_INVALID
exception flag first.
* modules/fpe-trapping (Depends-on): Add fenv-exceptions-tracking-c99.
2023-10-28 Bruno Haible <bruno@clisp.org>
fenv-exceptions-tracking-c99: Add tests.
* tests/test-fenv-except-tracking-1.c: New file.
* tests/test-fenv-except-tracking-2.sh: New file.
* tests/test-fenv-except-tracking-2.c: New file.
* tests/test-fenv-except-tracking-3.sh: New file.
* tests/test-fenv-except-tracking-3.c: New file.
* modules/fenv-exceptions-tracking-c99-tests: New file.
fenv-exceptions-tracking-c99: New module.
* lib/fenv.in.h (feclearexcept, feraiseexcept, fetestexcept): New
declarations.
* lib/fenv-except-tracking-clear.c: New file, based on glibc.
* lib/fenv-except-tracking-raise.c: New file, based on glibc.
* lib/fenv-except-tracking-test.c: New file, based on glibc.
* m4/fenv-exceptions-tracking.m4: New file.
* m4/fenv-exceptions.m4: New file.
* modules/fenv-exceptions-tracking-c99: New file.
* doc/posix-functions/feclearexcept.texi: Mention the new module.
* doc/posix-functions/fetestexcept.texi: Likewise.
* doc/posix-functions/feraiseexcept.texi: Likewise. Mention the glibc
and Cygwin bugs.
2023-10-27 Bruno Haible <bruno@clisp.org>
fenv-rounding: Add tests.
* tests/test-fenv-round.c: New file.
* modules/fenv-rounding-tests: New file.
fenv-rounding: New module.
* lib/fenv.in.h (fegetround, fesetround): New declarations.
* lib/fenv-private.h: New file, based on glibc.
* lib/fenv-round.c: New file, based on glibc.
* m4/mathfunc.m4 (gl_MATHFUNC): Handle also the type fp_rnd.
* m4/fenv-rounding.m4: New file.
* modules/fenv (Depends-on): Add snippet/c++defs.
(Makefile.am): Substitute $(CXXDEFS_H) into fenv.h.
* modules/fenv-rounding: New file.
* doc/posix-functions/fegetround.texi: Mention the new module.
* doc/posix-functions/fesetround.texi: Likewise.
2023-10-27 Bruno Haible <bruno@clisp.org>
tests: Use C99 initializer syntax for memory_long_double.
* tests/test-isfinite.c (test_isfinitel): Use '.word = ...' syntax when
initializing memory_long_double variables.
* tests/test-isinf.c (test_isinfl): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/isfinite-tests (Depends-on): Add c99.
* modules/isinf-tests (Depends-on): Likewise.
* modules/isnan-tests (Depends-on): Likewise.
* modules/isnanl-nolibm-tests (Depends-on): Likewise.
* modules/isnanl-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
* modules/snprintf-posix-tests (Depends-on): Likewise.
* modules/sprintf-posix-tests (Depends-on): Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Likewise.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* modules/vasprintf-posix-tests (Depends-on): Likewise.
* modules/vsnprintf-posix-tests (Depends-on): Likewise.
* modules/vsprintf-posix-tests (Depends-on): Likewise.
2023-10-26 Pádraig Brady <P@draigBrady.com>
base32, base64: disallow non-canonical encodings
* lib/base32.c: Check that discarded bits in the encoding are zero.
* lib/base64.c: Likewise.
* tests/test-base32.c: Add test cases.
* tests/test-base64.c: Likewise.
2023-10-26 Bruno Haible <bruno@clisp.org>
fenv: Add tests.
* tests/test-fenv.c: New file.
* modules/fenv-tests: New file.
fenv: New module.
* lib/fenv.in.h: New file, based on glibc.
* m4/fenv_h.m4: New file.
* modules/fenv: New file.
* doc/posix-headers/fenv.texi: Mention the new module.
2023-10-25 Paul Eggert <eggert@cs.ucla.edu>
base32: new function isubase32; also, tune.
* lib/base32.c (BASE32_INLINE): Define.
(base32_to_int): Rename from b32 and make it extern. All uses changed.
(uchar_in_range): Remove. All uses removed.
(isbase32, base32_decode_ctx_init):
Move to lib/base32.h and make inline.
* lib/base32.h: Ignore -Wtype-limits, so that we needn’t
worry about uchar_in_range.
(BASE32_INLINE): Define, and use _GL_INLINE_HEADER_BEGIN.
(isubase32): New function, useful as it as a different signature.
(isbase32): Define in terms of isubase32.
* modules/base32 (Depends-on): Add extern-inline.
base64: new function isubase64; also, tune.
* lib/base64.c (BASE64_INLINE): Define.
(base64_to_int): Rename from b64 and make it extern. All uses changed.
(uchar_in_range): Remove. All uses removed.
(isbase64, base64_decode_ctx_init):
Move to lib/base64.h and make inline.
* lib/base64.h: Ignore -Wtype-limits, so that we needn’t
worry about uchar_in_range.
(BASE64_INLINE): Define, and use _GL_INLINE_HEADER_BEGIN.
(isubase64): New function, useful as it as a different signature.
(isbase64): Define in terms of isubase64.
* modules/base64 (Depends-on): Add extern-inline.
2023-10-24 Paul Eggert <eggert@cs.ucla.edu>
tests/unistr/u16-chr-tests: pacify -Wcast-align
* tests/unistr/test-chr.h (main): Redo types to pacify
gcc -Wcast-align.
isnanl-tests, stdio-tests: pacify GCC -Wshadow
* tests/test-isnanl.h (NWORDS): Remove.
(memory_long_double): Do not redefine in an inner scope.
All uses changed to use the snan.h memory_long_double.
* tests/test-stdio.c (NWORDS): Remove.
(memory_long_double): Do not redefine in an inner scope.
The snan.h memory_long_double is fine here.
explicit_bzero-tests: pacify GCC 13.2.1
* tests/test-explicit_bzero.c:
* tests/test-memset_explicit.c:
Ignore -Wdangling pointer.
2023-10-22 Bruno Haible <bruno@clisp.org>
memset_explicit, explicit_bzero tests: Fix test failures with new gcc.
Reported by Sam James <sam@gentoo.org> in
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111904>.
Fix by Alexandre Oliva <aoliva@gcc.gnu.org>.
* tests/test-memset_explicit.c (do_secret_stuff): Declare with
attributes 'noclone' and 'noipa'.
* tests/test-explicit_bzero.c (do_secret_stuff): Likewise.
2023-10-15 Bruno Haible <bruno@clisp.org>
net_if tests: Fix gcc warning.
* tests/test-net_if.c: Include <string.h>.
2023-10-15 Bruno Haible <bruno@clisp.org>
mbspbrk: Fix gcc warning (regression 2023-09-26).
* lib/mbspbrk.c (mbspbrk): Fix gcc warning in GNULIB_MCEL_PREFER mode.
2023-10-15 Bruno Haible <bruno@clisp.org>
pthread-spin: Fix warnings on FreeBSD 5.2.1/i386.
* lib/pthread.in.h (pthread_spinlock_t): Override if <pthread.h> defines
pthread_spinlock_t but we need to approximate spinlocks with mutexes.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): When the pthread_spin_*
functions are declared but don't exist, mark them as REPLACEd.
pthread-spin: Fix link errors on FreeBSD 5.2.1/i386.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Test not only whether
<pthread.h> defines the pthread_spinlock_t type, but also whether the
function pthread_spin_init is actually defined.
2023-10-15 Bruno Haible <bruno@clisp.org>
pthread_mutex_timedlock: Fix link errors on FreeBSD 5.2.1/i386.
* m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK): Test
not only whether pthread_mutex_timedlock is declared, but also whether
it is actually defined.
2023-10-15 Bruno Haible <bruno@clisp.org>
threadlib: Fix link errors on FreeBSD 5.2.1/i386.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): When pthread_kill could not be
found in -lpthread, try -lthr.
2023-10-15 Bruno Haible <bruno@clisp.org>
lock: Make Autoconf macro more robust.
* m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER):
Require gl_THREADLIB, not gl_THREADLIB_EARLY. Needed to get the value of
LIBMULTITHREAD.
2023-10-15 Bruno Haible <bruno@clisp.org>
totalorder-bench-tests: New module.
* tests/bench-totalorder.c: New file, based on tests/test-totalorder.h.
* modules/totalorder-bench-tests: New file.
2023-10-15 Bruno Haible <bruno@clisp.org>
snan: Simplify a type.
* lib/snan.h (memory_long_double): Put the 'value' field first.
* tests/test-totalorder.h (main): No need for designated initializer
syntax any more.
2023-10-15 Bruno Haible <bruno@clisp.org>
vma-iter: Fix compilation error on FreeBSD 5.2.1.
* lib/vma-iter.c [FreeBSD]: Include <sys/param.h>.
2023-10-14 Bruno Haible <bruno@clisp.org>
totalorder*: Document glibc bug on SH4.
* doc/posix-functions/totalorder.texi: Mention the glibc bug on SH4.
* doc/posix-functions/totalorderf.texi: Likewise.
* doc/posix-functions/totalorderl.texi: Likewise.
totalorder*: Fix test failures on SH4.
* lib/snan.h: Update comment.
* lib/totalorderf.c (totalorderf): On sh4, invert bit 22 before
comparing two NaNs.
* lib/totalorder.c (totalorder): On sh4, invert bit 51 before comparing
two NaNs.
* lib/totalorderl.c (totalorderl): On sh4, invert bit 51 or 47 of the
xhi, yhi parts before comparing two NaNs.
totalorder*: Fix test failures on PA-RISC and MIPS CPUs.
* lib/totalorderf.c (totalorderf): On hppa and mips, invert bit 22
before comparing two NaNs.
* lib/totalorder.c (totalorder): On hppa and mips, invert bit 51 before
comparing two NaNs.
* lib/totalorderl.c: Include <float.h>.
(totalorderl): On hppa and mips, invert bit 51 or 47 of the xhi, yhi
parts before comparing two NaNs.
* modules/totalorderl (Depends-on): Add 'float'.
2023-10-14 Bruno Haible <bruno@clisp.org>
totalorder* tests: Test also the signalling NaNs.
* tests/test-totalorder.h: Include signed-snan.h.
(main): Change the array initializer to contain memory_* objects rather
than floating-point numbers. This is needed for i386 and x86_64 CPUs.
* tests/test-totalorder.c (TOTALORDER_TYPE): Use memory_double.
(TOTALORDER_HAVE_SNAN, TOTALORDER_POSITIVE_SNAN,
TOTALORDER_NEGATIVE_SNAN): New macros.
* tests/test-totalorderf.c (TOTALORDER_TYPE): Use memory_float.
(TOTALORDER_HAVE_SNAN, TOTALORDER_POSITIVE_SNAN,
TOTALORDER_NEGATIVE_SNAN): New macros.
* tests/test-totalorderl.c (TOTALORDER_TYPE): Use memory_long_double.
(TOTALORDER_HAVE_SNAN, TOTALORDER_POSITIVE_SNAN,
TOTALORDER_NEGATIVE_SNAN): New macros.
* modules/totalorder-tests (Depends-on): Add signed-snan.
* modules/totalorderf-tests (Depends-on): Likewise.
* modules/totalorderl-tests (Depends-on): Likewise.
2023-10-14 Bruno Haible <bruno@clisp.org>
totalorder* tests: Make it easier to debug failures.
* tests/test-totalorder.h: Include <stdio.h>.
(main): Print array indices of all failures.
2023-10-14 Bruno Haible <bruno@clisp.org>
totalorder* tests: Verify also the function signatures.
* tests/test-totalorder.h: New file, based on tests/test-totalorder.c.
* tests/test-totalorder.c: Check the signature. Include
test-totalorder.h for the rest.
* tests/test-totalorderf.c: Include <config.h>, <math.h>. Check the
signature. Include test-totalorder.h instead of test-totalorder.c.
* tests/test-totalorderl.c: Likewise.
* modules/totalorder-tests (Files): Add test-totalorder.h, signature.h.
* modules/totalorderf-tests (Files): Add test-totalorder.h, signature.h.
Remove test-totalorder.c.
* modules/totalorderl-tests (Files): Likewise.
2023-10-14 Bruno Haible <bruno@clisp.org>
totalorder*: Improve documentation.
* doc/posix-functions/totalorder.texi: Reference the specification.
* doc/posix-functions/totalorderf.texi: Likewise.
* doc/posix-functions/totalorderl.texi: Likewise.
2023-10-14 Bruno Haible <bruno@clisp.org>
snan, signed-snan: Add API that works also on x86 and x86_64 CPUs.
* lib/snan.h (memory_float, memory_double, memory_long_double): New
types.
(construct_memory_SNaNf, memory_SNaNf, construct_memory_SNaNd,
memory_SNaNd, construct_memory_SNaNl, memory_SNaNl): New functions.
* lib/signed-snan.h (memory_positive_SNaNf, memory_negative_SNaNf,
memory_positive_SNaNd, memory_negative_SNaNd, memory_positive_SNaNl,
memory_negative_SNaNl): New functions.
2023-10-14 Bruno Haible <bruno@clisp.org>
snan tests: Fix "unused variable" warnings on i386.
* tests/test-snan-1.c (main): Mark nanf, nand, nanl as possibly unused.
* tests/test-snan-2.c (main): Likewise.
2023-10-14 Bruno Haible <bruno@clisp.org>
snan: Avoid test failures with CC="gcc -mfpmath=387".
* tests/test-snan-1.c (main): Treat x86_64 CPU with
__FLT_EVAL_METHOD__ == 2 like i386 CPU. Update comments.
* tests/test-snan-2.c (main): Likewise.
2023-10-14 Bruno Haible <bruno@clisp.org>
snan: Fix the value of SNaNl() on i386, x86_64, ia64 CPUs.
* lib/snan.h (construct_SNaNl): On i386, x86_64, ia64 CPUs, invert
bit 62, not bit 63, of the mantissa.
* m4/snan.m4 (gl_SNAN): Require gl_LONG_DOUBLE_VS_DOUBLE.
* modules/snan (Files): Add m4/math_h.m4.
2023-10-13 Bruno Haible <bruno@clisp.org>
tests: Make use of signed signalling NaNs.
* tests/test-signbit.c: Include signed-snan.h instead of snan.h.
(test_signbitf): Test positive_SNaNf, negative_SNaNf, instead of only
SNaNf.
(test_signbitd): Test positive_SNaNd, negative_SNaNd, instead of only
SNaNd.
(test_signbitl): Test positive_SNaNl, negative_SNaNl, instead of only
SNaNl.
* tests/test-stdio.c: Include signed-snan.h instead of snan.h.
(main): Test positive_SNaNd, negative_SNaNd, instead of only SNaNd.
Also, test positive_NaNd, negative_NaNd, instead of NaNd.
* modules/signbit-tests (Depends-on): Add signed-snan. Remove snan.
* modules/stdio-tests (Depends-on): Likewise.
2023-10-13 Bruno Haible <bruno@clisp.org>
signed-snan: New module.
* lib/snan.h (construct_SNaNf): New function, extracted from SNaNf.
(SNaNf): Use it.
(construct_SNaNd): New function, extracted from SNaNd.
(SNaNd): Use it.
(construct_SNaNl): New function, extracted from SNaNl.
(SNaNl): Use it.
* lib/signed-snan.h: New file.
* modules/signed-snan: New file.
2023-10-13 Bruno Haible <bruno@clisp.org>
signed-nan: New module, renamed from qnan.
* lib/signed-nan.h: Renamed from lib/qnan.h. Update double-inclusion
guard.
* modules/signed-nan: Renamed from modules/qnan. Update.
* tests/test-signbit.c: Update.
* tests/test-stdio.c: Likewise.
* tests/test-totalorder.c: Likewise.
* modules/*-tests: Update.
2023-10-13 Bruno Haible <bruno@clisp.org>
access: Fix test failure on native Windows.
* lib/access.c (access): Do the trailing slash workaround also on
native Windows.
* modules/access (Depends-on): Add stat.
2023-10-13 Bruno Haible <bruno@clisp.org>
isnanf, isnand: Fix conflict with Solaris <ieeefp.h>.
* lib/math.in.h (isnanf, isnand): On Solaris and IRIX, declare this
function, instead of defining it as a macro.
2023-10-12 Bruno Haible <bruno@clisp.org>
*printf tests: Test printing of signalling NaNs.
These tests run without sigfpe_on_invalid(), therefore they won't crash.
* tests/test-vasnprintf-posix.c: Include snan.h.
(test_function): For each test case that uses NaNd or NaNl, add a test
case with SNaNd or SNaNl, respectively.
* tests/test-vasprintf-posix.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-vasnwprintf-posix.c: Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Add snan.
* modules/vasprintf-posix-tests (Depends-on): Likewise.
* modules/vsnprintf-posix-tests (Depends-on): Likewise.
* modules/snprintf-posix-tests (Depends-on): Likewise.
* modules/vsprintf-posix-tests (Depends-on): Likewise.
* modules/sprintf-posix-tests (Depends-on): Likewise.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
2023-10-12 Bruno Haible <bruno@clisp.org>
nan, snan tests: Avoid test failures.
* tests/test-nan-1.c (main): Special handling of arm CPUs with software
floating-point emulation.
* tests/test-snan-1.c (main): Likewise. Disable tests that are known to
fail.
* tests/test-snan-2.c (main): Skip tests that are known to fail.
* modules/snan-tests (Files): Add m4/math_h.m4.
(configure.ac): Require gl_LONG_DOUBLE_VS_DOUBLE.
* m4/math_h.m4 (gl_LONG_DOUBLE_VS_DOUBLE): Mention also NetBSD/sparc32.
2023-10-12 Bruno Haible <bruno@clisp.org>
snan: Add tests.
* tests/test-snan-1.c: New file.
* tests/test-snan-2.sh: New file.
* tests/test-snan-2.c: New file.
* modules/snan-tests: New file.
2023-10-12 Bruno Haible <bruno@clisp.org>
nan: Add tests.
* tests/test-nan-1.c: New file.
* tests/test-nan-2.c: New file.
* modules/nan-tests: New file.
2023-10-12 Bruno Haible <bruno@clisp.org>
fpe-tracking, fpe-trapping: New modules.
* lib/fpe-trapping.h: New file.
* m4/mathfunc.m4 (gl_MATHFUNC): Handle also the type fp_except_t.
* m4/fpe.m4: New file.
* modules/fpe-tracking: New file.
* modules/fpe-trapping: New file.
2023-10-12 Bruno Haible <bruno@clisp.org>
snan: Comments.
* lib/snan.h: Add more comments.
2023-10-12 Bruno Haible <bruno@clisp.org>
snan: New module.
* lib/snan.h: Renamed from tests/snan.h. Add double-inclusion guard.
* m4/snan.m4: New file.
* modules/snan: New file.
* isfinite-tests (Files): Remove tests/snan.h, m4/exponent*.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION,
gl_DOUBLE_EXPONENT_LOCATION, gl_LONG_DOUBLE_EXPONENT_LOCATION.
* isinf-tests (Files): Remove tests/snan.h, m4/exponent*.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION,
gl_DOUBLE_EXPONENT_LOCATION, gl_LONG_DOUBLE_EXPONENT_LOCATION.
* isnan-tests (Files): Remove tests/snan.h, m4/exponent*.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION,
gl_DOUBLE_EXPONENT_LOCATION, gl_LONG_DOUBLE_EXPONENT_LOCATION.
* isnanf-nolibm-tests (Files): Remove tests/snan.h, m4/exponentf.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION.
* isnanf-tests (Files): Remove tests/snan.h, m4/exponentf.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION.
* isnand-nolibm-tests (Files): Remove tests/snan.h, m4/exponentd.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_DOUBLE_EXPONENT_LOCATION.
* isnand-tests (Files): Remove tests/snan.h, m4/exponentd.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_DOUBLE_EXPONENT_LOCATION.
* isnanl-nolibm-tests (Files): Remove tests/snan.h, m4/exponentl.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_LONG_DOUBLE_EXPONENT_LOCATION.
* isnanl-tests (Files): Remove tests/snan.h, m4/exponentl.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_LONG_DOUBLE_EXPONENT_LOCATION.
* signbit-tests (Files): Remove tests/snan.h, m4/exponent*.m4.
(Depends-on): Add snan.
(configure.ac): Don't invoke gl_FLOAT_EXPONENT_LOCATION,
gl_DOUBLE_EXPONENT_LOCATION, gl_LONG_DOUBLE_EXPONENT_LOCATION.
* stdio-tests (Files): Remove tests/snan.h
(Depends-on): Add snan.
2023-10-12 Bruno Haible <bruno@clisp.org>
qnan: New module.
* lib/qnan.h: Renamed from tests/qnan.h. Add double-inclusion guard.
* modules/qnan: New file.
* modules/signbit-tests (Files): Remove tests/qnan.h.
(Depends-on): Add qnan. Remove nan.
* modules/stdio-tests (Files): Remove tests/qnan.h.
(Depends-on): Add qnan. Remove nan.
* modules/totalorder-tests (Files): Remove tests/qnan.h.
(Depends-on): Add qnan. Remove nan, signbit.
* modules/totalorderf-tests (Files): Remove tests/qnan.h.
(Depends-on): Add qnan. Remove nan, signbit.
* modules/totalorderl-tests (Files): Remove tests/qnan.h.
(Depends-on): Add qnan. Remove nan, signbit.
2023-10-12 Bruno Haible <bruno@clisp.org>
nan: New module.
* lib/nan.h: Renamed from tests/nan.h. Change double-inclusion guard.
* modules/nan: New file.
* modules/*-tests: Depend on this module instead of embedding
tests/nan.h.
2023-10-11 Bruno Haible <bruno@clisp.org>
unictype/category-and-not: Add more tests.
Suggested by Arindam Sharma <arindam.sharma@imperial.ac.uk>.
* tests/unictype/test-categ_and_not.c (main): Add two more test cases.
* modules/unictype/category-and-not-tests (Depends-on): Add
unictype/category-Cc.
2023-10-09 Bruno Haible <bruno@clisp.org>
tests: Refactor functions for signalling NaNs.
* tests/snan.h: New file, based on tests/test-isnanf.h,
tests/test-isnand.h, tests/test-isnanl.h.
* tests/test-isfinite.c: Include snan.h.
(test_isfinitef, test_isfinited, test_isfinitel): Simplify.
* tests/test-isinf.c: Include snan.h.
(test_isinff, test_isinfd, test_isinfl): Simplify.
* tests/test-isnan.c: Include snan.h.
(test_float, test_double, test_long_double): Simplify.
* tests/test-isnanf.h: Include snan.h.
(main): Simplify.
* tests/test-isnand.h: Include snan.h.
(main): Simplify.
* tests/test-isnanl.h: Include snan.h.
(main): Simplify.
* tests/test-signbit.c: Include snan.h.
(test_signbitf, test_signbitd, test_signbitl): Simplify.
* tests/test-stdio.c: Include qnan.h, snan.h instead of nan.h.
(main): Test quiet NaNs always. Also test a signalling NaN.
* modules/isfinite-tests (Files): Add tests/nan.h, tests/snan.h.
* modules/isinf-tests (Files): Likewise.
* modules/isnan-tests (Files): Add tests/snan.h.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/stdio-tests (Files): Add tests/qnan.h, tests/snan.h.
2023-10-08 Bruno Haible <bruno@clisp.org>
isfinite: Work around a bug with 'long double' in glibc 2.5/ia64.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Require
gl_LONG_DOUBLE_EXPONENT_LOCATION. Test also another NaN value.
* modules/isfinite (Files): Add m4/exponentl.m4.
* doc/posix-functions/isfinite.texi: Mention also a 'long double'
problem on ia64.
2023-10-07 Bruno Haible <bruno@clisp.org>
tests: Refactor functions for quiet NaNs.
* tests/qnan.h: New file, based on tests/totalorder.c.
* tests/nan.h: Add double-inclusion guard.
* tests/test-signbit.c: Include qnan.h.
(test_signbitf, test_signbitd, test_signbitl): Simplify.
* tests/test-totalorder.c: Include qnan.h instead of NaN.h.
(TOTALORDER_NAN): Remove macro.
(TOTALORDER_POSITIVE_NAN, TOTALORDER_NEGATIVE_NAN): New macros.
(positive_nan, negative_nan): Remove functions.
(main): Update.
* tests/test-totalorderf.c (TOTALORDER_NAN): Remove macro.
(TOTALORDER_POSITIVE_NAN, TOTALORDER_NEGATIVE_NAN): New macros.
* tests/test-totalorderl.c (TOTALORDER_NAN): Remove macro.
(TOTALORDER_POSITIVE_NAN, TOTALORDER_NEGATIVE_NAN): New macros.
* modules/signbit-tests (Files): Add tests/nan.h, tests/qnan.h.
* modules/totalorder-tests (Files): Add tests/qnan.h.
(Depends-on): Add signbit.
* modules/totalorderf-tests (Files): Add tests/qnan.h.
(Depends-on): Add signbit.
* modules/totalorderl-tests (Files): Add tests/qnan.h.
(Depends-on): Add signbit.
2023-10-07 Bruno Haible <bruno@clisp.org>
totalorder*: Fix compilation error on glibc 2.25..2.30.
* m4/totalorder.m4 (gl_FUNC_TOTALORDERF): Test whether <math.h> has an
incompatible declaration of totalorderf, and set REPLACE_TOTALORDERF
to 1 if so.
(gl_FUNC_TOTALORDER): Test whether <math.h> has an incompatible
declaration of totalorder, and set REPLACE_TOTALORDER to 1 if so.
(gl_FUNC_TOTALORDERL): Test whether <math.h> has an incompatible
declaration of totalorderl, and set REPLACE_TOTALORDERL to 1 if so.
2023-10-07 Bruno Haible <bruno@clisp.org>
isnan: Avoid dangerous shell coding pattern.
* m4/isnand.m4 (gl_FUNC_ISNAND): Use 'test -n "$arg"', not
'test "$arg"'.
* m4/isnanf.m4 (gl_FUNC_ISNANF): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL): Likewise.
2023-10-05 Bruno Haible <bruno@clisp.org>
doc: Mention xstrerror.
* doc/posix-functions/strerror_r.texi: Mention xstrerror.
xstrerror: Add tests.
* tests/test-xstrerror.c: New file.
* modules/xstrerror-tests: New file.
xstrerror: New module.
* lib/xstrerror.h: New file.
* lib/xstrerror.c: New file.
* modules/xstrerror: New file.
* modules/strerror_r-posix (configure.ac): Update comment.
2023-10-05 Paul Eggert <eggert@cs.ucla.edu>
isnan: slightly simplify configuration
* m4/isnand.m4 (gl_FUNC_ISNAND):
* m4/isnanf.m4 (gl_FUNC_ISNANF):
* m4/isnanl.m4 (gl_FUNC_ISNANL):
Slightly simplify shell ‘if’. This should simplify future changes.
totalorder: speed up configuration
* m4/totalorder.m4 (gl_FUNC_TOTALORDERF, gl_FUNC_TOTALORDER)
(gl_FUNC_TOTALORDERL): Avoid unnecessary call to AC_SEARCH_LIBS,
since the information is already available in shell vars.
totalorderl: minor porting fixes
* lib/totalorderl.c (LDBL_SIGNBIT_WORD): Define to -1 if not defined.
(totalorderl): Avoid unused local zu by preferring ‘if’ to ‘ifdef’.
Don’t assume sizeof (unsigned long long) == 2 * sizeof (unsigned).
2023-10-04 Bruno Haible <bruno@clisp.org>
totalorder* tests: Refactor.
* tests/test-totalorder.c (positive_nan, negative_nan): New functions,
extracted from main.
(main): Use them when initializing the array.
2023-10-04 Bruno Haible <bruno@clisp.org>
totalorderl: Optimize.
* modules/totalorderl (Files): Add m4/signbit.m4.
* m4/totalorder.m4 (gl_FUNC_TOTALORDERL): Invoke
gl_LONG_DOUBLE_SIGN_LOCATION.
* lib/totalorderl.c (totalorderl): If LDBL_SIGNBIT_WORD is known,
use it, so that 'bigendian' becomes a constant.
2023-10-04 Bruno Haible <bruno@clisp.org>
totalorderl: Work around Solaris cc bug.
* lib/totalorderl.c (totalorderl): Initialize xu, yu, zu using a
different syntax.
2023-10-04 Bruno Haible <bruno@clisp.org>
signbit tests: Strengthen tests.
* tests/test-signbit.c (test_signbitf, test_signbitd, test_signbitl):
Test the sign bit both of a NaN value and of its negative.
2023-10-03 Bruno Haible <bruno@clisp.org>
doc: Document portability of __VA_ARGS__.
* doc/gnulib-readme.texi (C99 features assumed): Add a note about
__VA_ARGS__.
2023-10-03 Bruno Haible <bruno@clisp.org>
ilogb: Document a Mac OS X bug.
* doc/posix-functions/ilogb.texi: Mention a bug that affects Mac OS X.
* m4/ilogb.m4 (gl_FUNC_ILOGB): Update comments.
2023-10-03 Bruno Haible <bruno@clisp.org>
*printf-posix: Work around bug with %#.0x on Mac OS X 10.6.
* lib/vasnprintf.c (VASNPRINTF): Enable NEED_PRINTF_UNBOUNDED_PRECISION-
guarded code also for NEED_PRINTF_FLAG_ALT_PRECISION_ZERO. Set
prec_ourselves to 1 if NEED_PRINTF_FLAG_ALT_PRECISION_ZERO, precision is
0, and the directive is 'x' or 'X'. If prec_ourselves, remove the "0"
output if required.
* m4/printf.m4 (gl_PRINTF_FLAG_ALT_PRECISION_ZERO): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_ALT_PRECISION_ZERO): New
macro.
(gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS): Invoke it.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Require
gl_PRINTF_FLAG_ALT_PRECISION_ZERO and test its result.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX):
Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* doc/glibc-functions/asprintf.texi: Mention the %#.0x bug.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
2023-10-03 Bruno Haible <bruno@clisp.org>
faccessat tests: Strengthen tests.
* tests/test-faccessat.c (main): Test other modes than F_OK. Check errno
values.
2023-10-03 Bruno Haible <bruno@clisp.org>
euidaccess: Reject trailing slashes on symlinks to non-directories.
* modules/euidaccess (Depends-on): Add access.
euidaccess: Add tests.
* tests/test-access.h: New file, extracted from tests/test-access.c.
* tests/test-access.c: Moved most code to tests/test-access.h.
Include test-access.h.
(main): Invoke test_access.
* tests/test-euidaccess.c: New file, based on tests/test-access.c.
* modules/access-tests (Files): Add tests/test-access.h.
* modules/euidaccess-tests: New file, based on modules/access-tests.
2023-10-03 Bruno Haible <bruno@clisp.org>
access: Make last change work also when module 'stat' is in use.
* lib/access.c (access): When stat() returns -1 with errno != EOVERFLOW,
fail.
access: Work around trailing slash bug on Mac OS X 10.5.
* m4/access.m4 (gl_FUNC_ACCESS): Test whether access honors a trailing
slash. Set REPLACE_ACCESS to 1 and define ACCESS_TRAILING_SLASH_BUG if
not.
* lib/access.c (access): Add an implementation for Unix-like platforms.
* tests/test-access.c (main): Test for result if the argument has a
trailing slash.
* modules/access-tests (Depends-on): Add 'symlink'.
* doc/posix-functions/access.texi: Mention the Mac OS X bug.
2023-10-03 Bruno Haible <bruno@clisp.org>
update-copyright tests: Fix test failure (regression 2023-06-18).
* build-aux/update-copyright: Add "use re 'eval';" declaration.
2023-10-03 Bruno Haible <bruno@clisp.org>
Update re *-*-windows*-gnu* config triplets, withdrawn on 2023-09-19.
* m4/*.m4: Don't recognize windows*-gnu* as equivalent to mingw*.
2023-10-03 Bruno Haible <bruno@clisp.org>
string-c++-tests, uchar-c++-tests: Fix link errors on Mac OS X.
* modules/string-c++-tests (Makefile.am): Link test-string-c++ with
$(LIBC32CONV).
* modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with
$(LIBC32CONV).
2023-10-03 Bruno Haible <bruno@clisp.org>
mcel tests: Fix link error.
* modules/mcel-tests (Makefile.am): Link test-mcel with $(LIBUNISTRING)
$(SETLOCALE_LIB) $(MBRTOWC_LIB) $(LIBC32CONV).
2023-10-03 Bruno Haible <bruno@clisp.org>
mcel: Fix compilation error in tests.
* lib/mcel.h (mcel_scan): Undefine 'mbs' after use.
2023-10-02 Bruno Haible <bruno@clisp.org>
localename, gettext: Avoid crash on macOS 14.
Reported by Shupeng Xue <dspxue@gmail.com> at
<https://lists.gnu.org/archive/html/bug-gettext/2023-10/msg00001.html>.
Cf <https://github.com/aria2/aria2/issues/2083#issuecomment-1694662007>.
* m4/intlmacosx.m4 (gt_INTL_MACOSX): Link with the CoreServices
framework in addition to the CoreFoundation framework.
2023-10-02 Bruno Haible <bruno@clisp.org>
localcharset: Avoid internal compiler error with -Wextra on macOS 10.5.
* lib/localcharset.c (locale_charset): Use an empty compound statement
instead of a null statement.
2023-10-02 KO Myung-Hun <komh78@gmail.com>
fchdir: Fix a compilation error on OS/2 kLIBC (regression 2023-09-29).
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Define REPLACE_FCHDIR macro to 1 if
REPLACE_FCHDIR is 1.
2023-10-02 Bruno Haible <bruno@clisp.org>
totalorder, totalorderf, totalorderl: Fix some typos.
* m4/totalorder.m4 (gl_FUNC_TOTALORDERF): Assign TOTALORDERF_LIBM, not
TOTALORDER_LIBM.
* modules/totalorder (Description): Fix copy&paste mistake.
(Depends-on): Fix conditions.
* modules/totalorderf (Depends-on): Likewise.
* modules/totalorderl (Depends-on): Likewise.
2023-10-01 Paul Eggert <eggert@cs.ucla.edu>
totalorder, totalorderf, totalorderl: new modules
* lib/math.in.h: Declare totalorderf, totalorder, totalorderl.
* lib/totalorder.c, lib/totalorderf.c, lib/totalorderl.c:
* m4/totalorder.m4, modules/totalorder, modules/totalorder-tests:
* modules/totalorderf, modules/totalorderf-tests:
* modules/totalorderl, modules/totalorderl-tests:
* tests/test-totalorder.c, tests/test-totalorderf.c:
* tests/test-totalorderl.c: New files.
* m4/math_h.m4 (gl_MATH_H, gl_MATH_H_REQUIRE_DEFAULTS)
(gl_MATH_H_DEFAULTS):
* modules/math (math.h): Set up totalorder, totalorderf, totalorderl.
* m4/mathfunc.m4 (gl_MATHFUNC): Also support pointer-to-const.
2023-09-30 Paul Eggert <eggert@cs.ucla.edu>
regex-quote: fix recently-introduced typo
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-09/msg00146.html
* lib/regex-quote.c (regex_quote_copy): Add missing #endif.
2023-09-30 Bruno Haible <bruno@clisp.org>
wgetcwd-lgpl: Add tests.
* tests/test-wgetcwd-lgpl.c: New file, based on
tests/test-getcwd-lgpl.c.
* modules/wgetcwd-lgpl-tests: New file, based on
modules/getcwd-lgpl-tests.
wgetcwd-lgpl: New module.
* lib/wchar.in.h (wgetcwd): New declaration.
* lib/wgetcwd-lgpl.c: New file, based on lib/getcwd-lgpl.c.
* m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_WGETCWD.
* modules/wchar (Makefile.am): Substitute GNULIB_WGETCWD.
* modules/wgetcwd-lgpl: New file.
2023-09-30 Bruno Haible <bruno@clisp.org>
getcwd-lgpl: Tweaks.
* lib/unistd.in.h (getcwd): Mention the module 'getcwd-lgpl'.
* lib/getcwd-lgpl.c (rpl_getcwd): Minimize scope of local variables.
* tests/test-getcwd-lgpl.c (main): Use GNU coding style.
2023-09-29 Bruno Haible <bruno@clisp.org>
Allow different --libtool options from multiple gnulib-tool invocations.
* modules/crypto/gc (Makefile.am): Don't test GL_COND_LIBTOOL, since
gnulib-tool already eliminates lib_LDFLAGS augmentations for non-libtool
libraries.
* modules/striconv (Makefile.am): Likewise.
* modules/striconveh (Makefile.am): Likewise.
* modules/termcap (Makefile.am): Likewise.
* modules/terminfo (Makefile.am): Likewise.
2023-09-29 KO Myung-Hun <komh78@gmail.com>
stdlib: Cast putenv() on OS/2 kLIBC
* lib/stdlib.in.h (putenv) [kLIBC]: Cast with _GL_CXXALIAS_SYS_CAST().
2023-09-29 Bruno Haible <bruno@clisp.org>
fchdir: Override properly on OS/2 kLIBC.
* lib/unistd.in.h (fchdir): Override if REPLACE_FCHDIR is 1.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FCHDIR.
* modules/unistd (Makefile.am): Substitute REPLACE_FCHDIR.
* modules/fchdir (Depends-on, configure.ac): Test REPLACE_FCHDIR.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Instead of setting HAVE_FCHDIR to 0,
set REPLACE_FCHDIR to 1.
2023-09-29 KO Myung-Hun <komh78@gmail.com>
fdopendir: Use Windows code path on OS/2 kLIBC
* lib/closedir.c (closedir): Use Windows code path.
* lib/dirent.in.h (_gl_register_dirp_fd, _gl_unregister_dirp_fd):
Remove.
* lib/dirfd.c (_gl_register_dirp_fd, _gl_unregister_dirp_fd): Remove.
(dirfd): Use Windows code path.
* lib/fdopendir.c (fdopendir): Use Windows code path.
* lib/opendir.c (opendir): Use Windows code path.
* m4/closedir.m4 (REPLACE_CLOSEDIR): Use Windows code path.
* m4/dirent_h.m4 (DIR_HAS_FD_MEMBER): Use Windows code path.
* m4/dirfd.m4 (REPLACE_DIRFD): Use Windows code path.
* m4/fchdir.m4 (HAVE_FCHDIR): Replace fchdir() if dirfd() does not work.
* m4/opendir.m4 (REPLACE_OPENDIR): Use Windows code path.
* m4/readdir.m4 (REPLACE_READDIR): Use Windows code path.
* m4/rewinddir.m4 (REPLACE_REWINDDIR): Use Windows code path.
* modules/fchdir (Depends-on): Include dirent always.
2023-09-26 Paul Eggert <eggert@cs.ucla.edu>
mcel-bench-tests: fix typo
* tests/bench-mcel.c (main): Fix typo in usage message.
Remaining support for GNULIB_MCEL_PREFER
Support mcel API in remaining modules where this might matter,
for apps that prefer it.
* lib/mbmemcasecmp.c, lib/mbscspn.c, lib/mbsncasecmp.c, lib/mbsnlen.c:
* lib/mbspbrk.c, lib/mbspcasecmp.c, lib/mbssep.c, lib/mbsspn.c:
* lib/regex-quote.c:
Include mcel.h instead of mbiterf.h or mbuiterf.h,
if GNULIB_MCEL_PREFER.
* lib/mbmemcasecmp.c (mbmemcasecmp), lib/mbscspn.c (mbscspn):
* lib/mbsncasecmp.c (mbsncasecmp), lib/mbsnlen.c (mbsnlen):
* lib/mbspbrk.c (mbspbrk), lib/mbspcasecmp.c (mbspcasecmp):
* lib/mbssep.c (mbssep), lib/mbsspn.c (mbsspn):
* lib/regex-quote.c (regex_quote_length, regex_quote_copy):
Use mcel API, if GNULIB_MCEL_PREFER.
* lib/mbscspn.c, lib/mbspbrk.c, lib/mbspcasecmp.c, lib/mbsspn.c:
Include stdlib.h, for MB_CUR_MAX.
* modules/mbmemcasecmp, modules/mbsncasecmp, modules/mbspcasecmp:
Depend on c32tolower.
* modules/regex-quote: Depend on mempcpy.
2023-09-25 Paul Eggert <eggert@cs.ucla.edu>
mbscasestr: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
This mirrors the recent changes to mbsstr.
* lib/mbscasestr.c [GNULIB_MCEL_PREFER]: Include mcel.h not mbuiter.h.
(mbchar_t, mb_equal) [GNULIB_MCEL_PREFER]: New type and function,
to make it easier to use common code.
(knuth_morris_pratt_multibyte): Don't assume mbchar_t's alignment
is at least that of size_t.
(knuth_morris_pratt_multibyte, mbscasestr) [GNULIB_MCEL_PREFER]:
Use mcel API.
* modules/mbscasestr (Depends-on): Add alignasof.
2023-09-24 Bernhard Voelker <mail@bernhard-voelker.de>
maintainer-makefile: Fix syntax-check rules wrt README.
* top/maint.mk (sc_readme_link_install): Change the value of the
variable in_vc_files to contain a pattern for the README file.
(sc_readme_link_copying): Likewise.
Previously, the above rules always passed, because the generated
list of files was empty. Bug introduced when adding the rules
in commit 53b4bf3018.
2023-09-22 Bruno Haible <bruno@clisp.org>
striconveh, *vasnprintf, vasnwprintf: Make more virtual-memory friendly.
* lib/striconveh.c (mem_cd_iconveh_internal): Mark hex as 'const'.
* lib/vasnprintf.c (wctomb_fallback): Likewise.
2023-09-21 Paul Eggert <eggert@cs.ucla.edu>
mbschr, mbsrchr: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
The following changes are in effect only if GNULIB_MCEL_PREFER.
* lib/mbschr.c, lib/mbsrchr.c: Include stdlib.h, for MB_CUR_MAX.
[GNULIB_MCEL_PREFER]: Include mcel.h instead of mbuiterf.h.
(mbschr, mbsrchr) [GNULIB_MCEL_PREFER]: Use mcel API.
gnulib-common: don’t suppress -Wpedantic
Problem reported by Pádraig Brady in:
https://lists.gnu.org/r/bug-gnulib/2023-09/msg00130.html
* m4/gnulib-common.m4 (_GL_HAVE___HAS_C_ATTRIBUTE): New macro.
Use it instead of ‘defined __has_c_attribute’.
crypto/sm3: rename gl_cv_* variable for clarity
* m4/gc-sm3.m4 (gl_cv_libgcrypt_md_sm3):
Rename from gl_cv_libcrypt_md_sm3 since this is unrelated to libcrypt.
2023-09-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: pacify GCC -Wtype-limits
* lib/intprops-internal.h: Pacify gcc (GCC) 13.2.1 20230728 (Red
Hat 13.2.1-1) x86-64 -Wtype-limits on bleeding-edge diffutils.
2023-09-16 Bruno Haible <bruno@clisp.org>
lib-symbol-visibility: Fix a misnomer.
* doc/lib-symbol-visibility.texi: Rename LIBFOO_DLL_EXPORTED to
LIBFOO_SHLIB_EXPORTED. Prefer the term "shared library", since the term
"DLL" applies only to Windows.
* lib/relocatable.h (RELOCATABLE_SHLIB_EXPORTED): Renamed from
RELOCATABLE_DLL_EXPORTED. Prefer the term "shared library", since the
term "DLL" applies only to Windows.
* lib/mbtowc-lock.c (SHLIB_EXPORTED): Renamed from DLL_EXPORTED.
* lib/nl_langinfo-lock.c (SHLIB_EXPORTED): Likewise.
* lib/setlocale-lock.c (SHLIB_EXPORTED): Likewise.
2023-09-15 Bruno Haible <bruno@clisp.org>
acl-permissions: Fix compilation error on Solaris 11 (regr. 2023-09-04).
* lib/set-permissions.c: Include minmax.h.
* modules/acl-permissions (Depends-on): Add minmax.
2023-09-15 Bruno Haible <bruno@clisp.org>
readutmp: Fix crash when gdm is in use.
Reported by Thorsten Kukuk <kukuk@suse.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00093.html>.
* lib/readutmp.c (read_utmp_from_systemd): Don't use the value returned
by sd_session_get_display if it is NULL.
2023-09-14 Bruno Haible <bruno@clisp.org>
doc: Mention libucontext.
* doc/pastposix-functions/getcontext.texi: Mention libucontext.
* doc/pastposix-functions/makecontext.texi: Likewise.
* doc/pastposix-functions/setcontext.texi: Likewise.
* doc/pastposix-functions/swapcontext.texi: Likewise.
2023-09-13 Bruno Haible <bruno@clisp.org>
mbfile: Add tests.
* tests/test-mbfile.sh: New file.
* tests/test-mbfile.c: New file.
* modules/mbfile-tests: New file.
mbfile: Fix major bug (regression 2023-07-04).
Reported by Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00088.html>.
* lib/mbfile.h (mbfile_multi_getc): If bytes != -1, -2, -3, add the
previous mbf->bufcount to bytes.
2023-09-11 Pádraig Brady <P@draigBrady.com>
gnu-web-doc-update: fix updating of manual directory
* build-aux/gnu-web-doc-update: Change to the 'manual' directory,
since $tmp is a relative path. This avoids removing files
outside of the 'manual' directory.
2023-09-10 Bruno Haible <bruno@clisp.org>
Fix clang errors "different exception specifier" (regr. 2023-09-04).
* lib/malloc.in.h (memalign): Don't use _GL_ATTRIBUTE_NOTHROW on
platforms other than glibc systems.
* lib/stdio.in.h (fdopen): Likewise.
* lib/stdlib.in.h (aligned_alloc, calloc, canonicalize_file_name,
malloc, realloc): Likewise.
* lib/string.in.h (strdup, strndup): Likewise.
* lib/sys_stat.in.h (getumask): Likewise.
* lib/wchar.in.h (wcsdup): Likewise.
2023-09-09 Paul Eggert <eggert@cs.ucla.edu>
propername: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
The following changes are in effect only if GNULIB_MCEL_PREFER.
* lib/propername.c: Include mcel.h, not mbchar.h and mbuiter.h.
(mbsstr_trimmed_wordbounded): Use mcel API.
* modules/propername (Depends-on): Add c32isalnum.
trim: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
The following changes are in effect only if GNULIB_MCEL_PREFER.
* lib/trim.c: Include mcel.h, not mbchar.h and mbuiterf.h.
(trim2): Use mcel API.
* modules/trim (Depends-on): Add c32isspace.
mbsstr: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
* lib/mbsstr.c [GNULIB_MCEL_PREFER]: Include mcel.h not mbuiter.h.
(mbchar_t, mb_equal) [GNULIB_MCEL_PREFER]: New type and function,
to make it easier to use common code.
(knuth_morris_pratt_multibyte): Don't assume mbchar_t's alignment
is at least that of size_t.
(knuth_morris_pratt_multibyte, mbsstr) [GNULIB_MCEL_PREFER]:
Use mcel API.
* modules/mbsstr (Depends-on): Add alignasof.
mbslen: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
The following changes are in effect only if GNULIB_MCEL_PREFER.
* lib/mbslen.c: Include mcel.h instead of mbuiterf.h.
(mbslen): Use mcel API.
chown: work around symlink issues on odd platforms
Problem reported by Jordi Sanfeliu in:
https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00116.html
* lib/chown.c (rpl_chown) [CHOWN_MODIFIES_SYMLINK]:
Do not declare unused locals st, stat_valid.
Redo to just call chown if arg is a symlink.
This induces a race but is perhaps the best we can do easily
on oddball platforms where chown does not follow symlinks.
2023-09-09 Bruno Haible <bruno@clisp.org>
chown, lchown: Revisit platforms.
* doc/posix-functions/chown.texi: Update platforms list.
* doc/posix-functions/lchown.texi: Likewise.
* lib/chown.c (rpl_chown): Add platform comments.
* lib/lchown.c: Likewise.
2023-09-07 Paul Eggert <eggert@cs.ucla.edu>
mbscasecmp: support GNULIB_MCEL_PREFER
* lib/mbscasecmp.c: Include stdlib.h, since we use MB_CUR_MAX.
Include uchar.h, for c32tolower.
(GNULIB_MCEL_PREFER): Include mcel.h instead of mbuiterf.h.
(mbscasecmp) [GNULIB_MCEL_PREFER]: Use mcel instead of mbuiterf.
* modules/mbscasecmp (Depends-on): Add c32tolower, stdlib, uchar.
Depend on mbuiterf only if not preferring mcel.
exclude: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
The following changes are in effect only if GNULIB_MCEL_PREFER.
* lib/exclude.c: Include mcel.h instead of mbuiter.h.
(string_hasher_ci): Use mcel_scanz instead of mbui_init,
mbui_avail, mbui_cur, and mbui_advance.
* modules/exclude: Do not depend on mbuiter.
mcel-prefer: new module
* modules/mcel-prefer: New file.
mcel-bench-tests: new module
* modules/mcel-bench-tests, tests/bench-mcel.c: New files.
* tests/bench-multibyte.h (TEXT_LATIN_ASCII_LINE1)
(TEXT_FRENCH_UTF8_LINE1, TEXT_GREEK_UTF8_LINE1)
(TEXT_CHINESE_UTF8_LINE1): New macros.
(text_random_bytes): New constant.
* tests/bench.h (timing_output): Mark with _GL_UNUSED,
since bench-mcel.c does not use it.
mcel-tests: new module
* modules/mcel-tests, tests/test-mcel.c: New files
mcel: new module
* lib/mcel.c, lib/mcel.h, modules/mcel: New files.
2023-09-07 Bruno Haible <bruno@clisp.org>
Don't use 'throw ()' in C++ 11 or newer.
* lib/stddef.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(abort): Declare with _GL_ATTRIBUTE_NOTHROW instead of throw().
* lib/malloc.in.h (rpl_free, free): Likewise.
* lib/stdlib.in.h (free): Likewise.
* lib/string.in.h (rpl_free, free, memchr, memrchr, rawmemchr,
strchrnul, strpbrk, strstr, strcasestr): Likewise.
* lib/wchar.in.h (rpl_free, free): Likewise.
* lib/getopt-cdefs.in.h (__THROW): Define to noexcept(true) for C++ 11
or newer.
* lib/md5.h (__THROW): Likewise.
2023-09-07 Bruno Haible <bruno@clisp.org>
Add info about recommended warning options with clang.
* HACKING (Warning Options): Add info regarding clang.
2023-09-07 Bruno Haible <bruno@clisp.org>
uchar: Fix references to overridden functions with GNULIB_NAMESPACE.
* lib/uchar.in.h (btoc32, c32isalnum, c32isalpha, c32isblank,
c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint, c32ispunct,
c32isspace, c32isupper, c32isxdigit, c32tolower, c32toupper, c32width,
c32snrtombs, c32srtombs, c32swidth, c32tob, mbsnrtoc32s, mbsrtoc32s,
c32_get_type_test, c32_apply_type_test, c32_get_mapping,
c32_apply_mapping): Use GNULIB_NAMESPACE:: prefix to refer to the gnulib
overridden function.
* modules/uchar (Depends-on): Add wctype-h.
(Makefile.am): Substitute GNULIB_BTOWC, GNULIB_ISWDIGIT,
GNULIB_ISWXDIGIT, GNULIB_WCWIDTH, GNULIB_WCSNRTOMBS, GNULIB_WCSRTOMBS,
GNULIB_WCSWIDTH, GNULIB_WCTOB, GNULIB_MBSNRTOWCS, GNULIB_MBSRTOWCS,
GNULIB_WCTYPE, GNULIB_ISWCTYPE, GNULIB_WCTRANS, GNULIB_TOWCTRANS.
2023-09-07 Bruno Haible <bruno@clisp.org>
tests: Fix some clang -Wimplicit-fallthrough warnings.
* tests/test-execute-main.c (main): Add 'break' statement.
* tests/test-sys_file.c (main): Likewise.
unictype/category-none: Fix clang -Wpedantic warning.
* lib/unictype/categ_none.c (_UC_CATEGORY_NONE): Use ISO C designated
initializer syntax to initialize the intended field of the union.
c-*snprintf: Fix some clang -Wmissing-prototypes warnings.
* lib/c-snprintf.c: Include c-snprintf.h instead of <stdio.h>.
* lib/c-vsnprintf.c: Include c-vsnprintf.h instead of <stdio.h>.
* lib/c-vasnprintf.c: Include c-vasnprintf.h.
2023-09-06 Bruno Haible <bruno@clisp.org>
argp: Fix clang -Wextra-semi-stmt warning.
* lib/argp-help.c (SKIPWS): Remove trailing semicolon.
2023-09-06 Bruno Haible <bruno@clisp.org>
doc: Refine documentation of MSVC support for shared libraries.
* doc/lib-symbol-visibility.texi (Exported Symbols of Shared Libraries):
Recommend to define BUILDING_SHARED as an Autoconf variable. Recommend
to test DLL_EXPORT.
2023-09-06 Bruno Haible <bruno@clisp.org>
doc: Fix syntax error (regression 2023-09-03).
* doc/posix-headers/sys_stat.texi: Correct @itemize / @end itemize
nesting.
2023-09-05 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Don't export symbols from static MSVC .obj files.
Reported by Dmitry Bely <dmitry.bely@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-08/msg00002.html>.
* lib/relocatable.h (RELOCATABLE_DLL_EXPORTED): Don't use
__declspec(dllexport) when creating static .obj files with MSVC.
2023-09-05 Bruno Haible <bruno@clisp.org>
unigbrk/u8-grapheme-{next,prev} tests: Fix gcc -Wformat warnings.
* tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next): Use
%tu, not %zu, to print a pointer difference.
* tests/unigbrk/test-u16-grapheme-next.c (test_u16_grapheme_next):
Likewise.
* tests/unigbrk/test-u32-grapheme-next.c (test_u32_grapheme_next):
Likewise.
* tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev):
Likewise.
* tests/unigbrk/test-u16-grapheme-prev.c (test_u16_grapheme_prev):
Likewise.
* tests/unigbrk/test-u32-grapheme-prev.c (test_u32_grapheme_prev):
Likewise.
2023-09-05 Bruno Haible <bruno@clisp.org>
stdint, *printf: Update doc about MSVC.
* doc/posix-headers/stdint.texi: MSVC 14 has <stdint.h>.
* doc/posix-functions/*printf.texi: Current mingw and MSVC 14 support
the j, t, z size specifiers.
* doc/glibc-functions/obstack_*printf.texi: Likewise.
2023-09-05 Bruno Haible <bruno@clisp.org>
tests: Ensure stderr output is displayed before abort().
* tests/atomic-int-gnulib.h (init_atomic_int): Call fflush(stderr)
before abort().
* tests/atomic-int-isoc.h (init_atomic_int): Likewise.
* tests/atomic-int-posix.h (init_atomic_int): Likewise.
* tests/unigbrk/test-u8-grapheme-breaks.c (test_u8_grapheme_breaks):
Likewise.
* tests/unigbrk/test-u16-grapheme-breaks.c (test_u16_grapheme_breaks):
Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (test_u32_grapheme_breaks):
Likewise.
* tests/unigbrk/test-uc-grapheme-breaks.c (test_uc_grapheme_breaks):
Likewise.
* tests/unigbrk/test-ulc-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next):
Likewise.
* tests/unigbrk/test-u16-grapheme-next.c (test_u16_grapheme_next):
Likewise.
* tests/unigbrk/test-u32-grapheme-next.c (test_u32_grapheme_next):
Likewise.
* tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev):
Likewise.
* tests/unigbrk/test-u16-grapheme-prev.c (test_u16_grapheme_prev):
Likewise.
* tests/unigbrk/test-u32-grapheme-prev.c (test_u32_grapheme_prev):
Likewise.
2023-09-05 Bruno Haible <bruno@clisp.org>
threads-h: Modernize configure test.
* m4/threads_h.m4 (gl_THREADS_H): In the test program, put the
'_Thread_local' storage class specifier before the type.
2023-09-05 Bruno Haible <bruno@clisp.org>
Add info about recommended warning options.
* HACKING: New section "Warning Options".
2023-09-04 Bruno Haible <bruno@clisp.org>
string-buffer tests: Fix a compilation error (regression from today).
* tests/test-string-buffer.c: Include <wchar.h>.
unistr/u{8,16,32}-strtok tests: Fix -Wanalyzer-allocation-size warnings.
* tests/unistr/test-u-strtok.h (test_u_strtok): Correct values of
input_len and delim_len.
sigpipe tests: Fix -Wanalyzer-unsafe-call-within-signal-handler warning.
* tests/test-sigpipe.c (handler): Invoke _exit, not exit.
* tests/test-raise.c (handler): Update comments after 2020-11-25 change.
argp: Distinguish NULL and '\0' from 0.
* lib/argp-pin.c: Include <stddef.h>.
(program_invocation_short_name, program_invocation_name): Use NULL
instead of 0.
* lib/argp-parse.c (convert_options, __argp_parse, __argp_input):
Likewise.
* lib/argp-fmtstream.c (__argp_make_fmtstream): Likewise.
* lib/argp-help.c (make_hol, hol_entry_first_long, hol_find_entry,
hol_append, hol_entry_help, argp_doc, _help): Likewise.
(hol_usage): Use '\0' instead of 0.
argp: Fix gcc -Wanalyzer-use-of-uninitialized-value warning.
* lib/argp-help.c (hol_find_entry): Access hol->entries only after
having verified that hol->num_entries > 0.
unictype/category-byname tests: Fix gcc -Wunused-value warning.
* tests/unictype/test-categ_byname.c (main): Add some tests for category
Nl.
unigbrk/uc-grapheme-breaks tests: Fix gcc -Wunused-function warning.
* tests/unigbrk/test-uc-grapheme-breaks.c
(graphemebreakproperty_to_string): Mark as possibly unused.
bitset, nonblocking-* tests: Fix gcc -Wunused-but-set-variable warnings.
* tests/test-bitset.c (check_zero): Mark 'i' as possibly unused.
* tests/test-nonblocking-reader.h (full_read): Mark 'spent_time' as
possibly unused.
2023-09-04 Bruno Haible <bruno@clisp.org>
Use statement-expressions without warnings, even in strict ISO C mode.
Suggested by Eric Blake <eblake@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00025.html>.
* lib/error.in.h (__gl_error_call): Use the variant with obvious control
flow also with clang. Use '__extension__' to avoid -Wpedantic warnings.
* lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Define as
macros even when __STRICT_ANSI__ is defined. But use '__extension__' to
avoid -Wpedantic warnings.
* lib/setenv.c (KNOWN_VALUE): Use '__extension__' to avoid -Wpedantic
warnings.
* lib/xalloc-oversized.h (xalloc_oversized): Use optimized variant even
when __STRICT_ANSI__ is defined. But use '__extension__' to avoid
-Wpedantic warnings.
2023-09-04 Bruno Haible <bruno@clisp.org>
Fix some g++ warnings "has a different exception specifier".
* m4/gnulib-common.m4 (gl_COMMON_BODY): Make _GL_ATTRIBUTE_NOTHROW
effective in C++ mode.
* lib/attribute.h (ATTRIBUTE_NOTHROW): Add a comment.
* lib/malloc.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(memalign): Invoke _GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
* lib/stdio.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(fdopen): Invoke _GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
* lib/stdlib.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(aligned_alloc, calloc, canonicalize_file_name, malloc, realloc): Invoke
_GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
* lib/string.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(strdup, strndup): Invoke _GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
* lib/sys_stat.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback
definition.
(getumask): Invoke _GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
* lib/wchar.in.h (_GL_ATTRIBUTE_NOTHROW): Provide fallback definition.
(wcsdup): Invoke _GL_FUNCDECL_SYS with _GL_ATTRIBUTE_NOTHROW.
2023-09-04 Bruno Haible <bruno@clisp.org>
unistr/u{8,16,32}-strchr tests: Fix some gcc -Wshadow warnings.
* tests/unistr/test-strchr.h (test_strchr): Reduce of scope of local
variable 'i'.
unistr/u{8,16,32}-chr tests: Fix some gcc -Wshadow warnings.
* tests/unistr/test-chr.h (main): Reduce of scope of local variables
'i' and 'page_boundary'.
pipe-filter-gi, pipe-filter-ii tests: Fix some gcc -Wshadow warnings.
* tests/test-pipe-filter-gi1.c (main): Rename local variable 'argv' to
'tr_argv'.
* tests/test-pipe-filter-ii1.c (main): Likewise.
argv-iter tests: Avoid gcc -Wanalyzer-out-of-bounds warning.
* tests/test-argv-iter.c (main): Simplify logic.
crypto/{gc-rijndael,rijndael} tests: Fix some gcc -Wshadow warnings.
* tests/test-gc-rijndael.c (main): Rename local variable 'i' to 'round'.
* tests/test-rijndael.c (main): Likewise.
threads-h tests: Fix gcc -Wold-style-declaration warning.
* tests/test-thread_local.c (value0, value1, value2, value3): Put the
'thread_local' storage class specifier before the type.
ieee754-h tests: Fix some gcc -Wmissing-field-initializers warnings.
* tests/test-ieee754-h.c (float_tests): Use float literals.
(double_tests): Use double literals. Initialize frac_lo.
string-buffer tests: Fix a gcc -Wformat warning.
* tests/test-string-buffer.c: Don't assume that wint_t has the same size
as 'int'.
crypto/* tests: Fix some gcc -Wdiscarded-qualifiers warnings.
* tests/test-gc-hmac-md5.c (main): Change type of variables with a
string literal initializer to 'const char *'.
* tests/test-gc-hmac-sha1.c (main): Likewise.
* tests/test-gc-hmac-sha256.c (main): Likewise.
* tests/test-gc-hmac-sha512.c (main): Likewise.
* tests/test-gc-md2.c (main): Likewise.
* tests/test-gc-md5.c (main): Likewise.
* tests/test-gc-sha1.c (main): Likewise.
* tests/test-gc-sha256.c (main): Likewise.
* tests/test-gc-sha512.c (main): Likewise.
* tests/test-hmac-md5.c (main): Likewise.
* tests/test-hmac-sha1.c (main): Likewise.
* tests/test-hmac-sha256.c (main): Likewise.
* tests/test-hmac-sha512.c (main): Likewise.
file-has-acl: Avoid gcc warning.
* lib/acl-internal.h (MIN): Remove definition.
2023-09-03 Paul Eggert <eggert@cs.ucla.edu>
same-inode, stat-size: support pointers too
Add functions and macros so that we can test pointers to struct
stat as well as plain struct stat. This lets coreutils deal with
structs that are only partly initialized, without relying on
undefined behavior.
* NEWS: Mention this.
* doc/posix-headers/sys_stat.texi, doc/stat-size.texi:
Mention this and modernize.
* lib/at-func2.c (at_func2):
* lib/fts.c (same_fd):
* lib/rename.c (rpl_rename) [RENAME_HARD_LINK_BUG]:
* lib/same-inode.c: New file.
* lib/same.c (same_nameat):
* lib/term-style-control.c (activate_term_style_controller):
Prefer psame_inode (a, b) to SAME_INODE (*a, *b).
* lib/hash-triple-simple.c (triple_compare_ino_str):
* lib/hash-triple.c (triple_compare):
Prefer PSAME_INODE (a, b) to SAME_INODE (*a, *b).
psame_inode is not suitable since the args are not struct stat *.
* lib/same-inode.h: Check that config.h is included first.
(SAME_INODE_INLINE, PSAME_INODE): New macros.
(SAME_INODE): Reimplement in terms of PSAME_INODE.
(psame_inode): New function.
* lib/stat-size.h (STP_BLKSIZE, STP_NBLOCKS): New macros.
(ST_BLKSIZE, ST_NBLOCKS): Use them.
* lib/term-style-control.c (log_signal_handler_called):
Always define as a function, to pacify -Wunused*.
* modules/canonicalize-lgpl-tests (Files): Add m4/musl.m4.
(Depends-on): Call gl_MUSL_LIBC.
* modules/same-inode (Files): Add same-inode.c.
(Depends-on): Add extern-inline, stdbool.
(lib_SOURCES): New macro.
* tests/test-binary-io.c, tests/test-canonicalize-lgpl.c:
* tests/test-canonicalize.c, tests/test-cloexec.c:
* tests/test-dup-safer.c, tests/test-dup2.c, tests/test-error.c:
* tests/test-fcntl.c, tests/test-fdopendir.c, tests/test-fgetc.c:
* tests/test-fputc.c, tests/test-fread.c, tests/test-fstat.c:
* tests/test-fstatat.c, tests/test-ftruncate.c:
* tests/test-fwrite.c, tests/test-getcwd.c:
* tests/test-getdtablesize.c, tests/test-isblank.c:
* tests/test-linkat.c, tests/test-lock.c, tests/test-lstat.h:
* tests/test-malloc-gnu.c, tests/test-openat.c:
* tests/test-pthread-thread.c, tests/test-pthread_sigmask1.c:
* tests/test-pthread_sigmask2.c, tests/test-ptsname.c:
* tests/test-ptsname_r.c, tests/test-raise.c:
* tests/test-realloc-gnu.c, tests/test-rwlock1.c:
* tests/test-sigprocmask.c, tests/test-snprintf.c:
* tests/test-stat.h, tests/test-term-style-control-hello.c:
* tests/test-term-style-control-yes.c, tests/test-thread_create.c:
* tests/test-unlinkat.c, tests/test-vasnprintf.c:
* tests/test-xalloc-die.c:
Adjust to these changes, and fix some warnings elicited by
-Wall -Wextra that I ran into while testing.
* top/maint.mk (sc_prohibit_stat_st_blocks): Mention STP_NBLOCKS.
2023-09-02 Bruno Haible <bruno@clisp.org>
alignalloc: Fix license header.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00170.html>.
* lib/alignalloc.h: Make license header consistent with module
description.
* lib/alignalloc.c: Likewise.
2023-09-01 Bruno Haible <bruno@clisp.org>
crypto/{sha*,md5}-buffer: Add comment.
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Add comment regarding license.
2023-09-01 Bruno Haible <bruno@clisp.org>
crypto/{sha*,md5,sm3}-buffer: Fix --with-openssl (regr. 2023-08-26).
Reported by Agostino Sarubbo via Sam James <sam@gentoo.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-09/msg00000.html>.
* lib/sha1.h: Test the OpenSSL major version before attempting to
include <openssl/configuration.h>.
* lib/sha256.h: Likewise.
* lib/sha512.h: Likewise.
* lib/md5.h: Likewise.
* lib/sm3.h: Likewise.
2023-08-31 Bruno Haible <bruno@clisp.org>
readutmp: Fix memory leak introduced by last commit.
* lib/readutmp.c (read_utmp_from_systemd): If num_sessions == 0 and
sessions != NULL, do call free (sessions).
2023-08-30 Paul Eggert <eggert@cs.ucla.edu>
readutmp: fix core dump if --enable-systemd
Problem reported by Thorsten Kukuk <https://bugs.gnu.org/65617>.
* lib/readutmp.c (read_utmp_from_systemd):
Don’t assume session_ptr != NULL if num_sessions == 0.
In practice it can be null, and the man page OKs this behavior.
2023-08-30 Bruno Haible <bruno@clisp.org>
doc: Mention the module 'wchar-single'.
* doc/multithread.texi: Mention the module 'wchar-single'.
2023-08-30 Paul Eggert <eggert@cs.ucla.edu>
wchar-single: fix module broken since 2021
Adjust to 2021-03-07 change “Rename GNULIB_WCHAR_SINGLE to
GNULIB_WCHAR_SINGLE_LOCALE”. Apparently nobody noticed that
the module was broken. Perhaps we should obsolete the module?
* modules/wchar-single (GNULIB_WCHAR_SINGLE_LOCALE): Define.
2023-08-29 Bruno Haible <bruno@clisp.org>
wctype: Rely on module iswpunct.
* m4/wctype.m4 (gl_FUNC_WCTYPE): Also test whether the "punct" class
works.
* modules/wctype (Depends-on): Add iswpunct.
* tests/test-iswctype.c (main): Add more tests of the "punct" class.
* doc/posix-functions/wctype.texi: Mention the Android problem.
c32ispunct: Rely on module iswpunct.
* modules/c32ispunct (Depends-on): Add iswpunct.
* tests/test-c32ispunct.c (main): Add a few more tests in the "C"
locale.
iswpunct: Add tests.
* tests/test-iswpunct.c: New file, based on tests/test-iswdigit.c and
tests/test-c32ispunct.c.
* tests/test-iswpunct.sh: New file, based on tests/test-iswdigit.sh.
* modules/iswpunct-tests: New file.
iswpunct: New module.
* lib/wctype.in.h (iswpunct): New declaration.
* lib/iswpunct.c: New file.
* m4/iswpunct.m4: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H_REQUIRE_DEFAULTS): Initialize
GNULIB_ISWPUNCT.
(gl_WCTYPE_H_DEFAULTS): Initialize REPLACE_ISWPUNCT.
* modules/wctype-h (Makefile.am): Substitute GNULIB_ISWPUNCT,
REPLACE_ISWPUNCT.
* modules/iswpunct: New file.
* doc/posix-functions/iswpunct.texi: Mention the new module.
wctype-h tests: Add more tests.
* tests/test-wctype-h.c (main): Add a sanity check of iswpunct.
2023-08-29 Bruno Haible <bruno@clisp.org>
iswdigit, iswxdigit: Fix documentation.
* doc/posix-functions/iswdigit.texi: Mention the module 'iswdigit'.
* doc/posix-functions/iswxdigit.texi: Mention the module 'iswxdigit'.
2023-08-29 Bruno Haible <bruno@clisp.org>
wctype: Fix documentation (mistake 2023-07-26).
* doc/posix-functions/wctype.texi: The "blank" argument problem on mingw
is now worked around by Gnulib.
2023-08-26 Paul Eggert <eggert@cs.ucla.edu>
trim: do not over-allocate result
* lib/trim.c: Include mbuiterf.h, not mbiterf.h, since we no
longer compute strlen at first.
(trim2): Do not over-allocate result and then trim the parts we
don’t want. Instead, skip unwanted input before allocating,
so that the result is just the right size. Use mempcpy
instead of memmove. Simplify.
* modules/trim (Depends-on): Remove mbiterf, memmove, strdup, xalloc.
Add mbuiterf, mempcpy, xalloc-die.
2023-08-26 Paul Eggert <eggert@cs.ucla.edu>
propername: tune single-byte code
* lib/propername.c (mbsstr_trimmed_wordbounded): Cache MB_CUR_MAX.
Simplify word boundary detection in single-byte code.
2023-08-26 Paul Eggert <eggert@cs.ucla.edu>
Tune single-byte code involving tolower
* lib/mbmemcasecmp.c (mbmemcasecmp):
* lib/mbscasecmp.c (mbscasecmp):
* lib/mbscasestr.c (mbscasestr):
* lib/mbsncasecmp.c (mbsncasecmp):
* lib/mbspcasecmp.c (mbspcasecmp):
Avoid some unnecessary calls to tolower. For example, if the two
single-byte characters are equal before downcasing there is no
need to call tolower on either character.
2023-08-26 Bruno Haible <bruno@clisp.org>
c32width tests: Avoid failure on FreeBSD 12.
* tests/test-c32width.c (main): Skip two tests on FreeBSD < 13.
2023-08-26 Bruno Haible <bruno@clisp.org>
crypto/{sha*,md5,sm3}-buffer: Ignore too old OpenSSL versions.
* lib/sha1.h: If <openssl/macros.h> would give a compile-time error,
undefine HAVE_OPENSSL_SHA1.
* lib/sha256.h: If <openssl/macros.h> would give a compile-time error,
undefine HAVE_OPENSSL_SHA256.
* lib/sha512.h: If <openssl/macros.h> would give a compile-time error,
undefine HAVE_OPENSSL_SHA512.
* lib/md5.h: If <openssl/macros.h> would give a compile-time error,
undefine HAVE_OPENSSL_MD5.
* lib/sm3.h: If <openssl/macros.h> would give a compile-time error,
undefine HAVE_OPENSSL_SM3.
2023-08-26 Bruno Haible <bruno@clisp.org>
selinux-h: Add a comment.
* lib/se-selinux.in.h: Clarify which #endif belongs to the
double-inclusion guard.
2023-08-26 Bruno Haible <bruno@clisp.org>
sys_utsname: Make double-inclusion guard more robust.
* lib/sys_utsname.in.h: Test the guard symbol a second time.
2023-08-26 Bruno Haible <bruno@clisp.org>
sys_times: Make double-inclusion guard more robust.
* lib/sys_times.in.h: Test the guard symbol a second time.
2023-08-26 Bruno Haible <bruno@clisp.org>
uchar: Make #include_next work right.
* lib/uchar.in.h: Use a split double-inclusion guard.
2023-08-26 Paul Eggert <eggert@cs.ucla.edu>
utimens: update FIXME date
* lib/utimens.c (fdutimens): Change FIXME date to agree with
similar FIXME in utimensat.c.
2023-08-24 Paul Eggert <eggert@cs.ucla.edu>
exclude: refactor for more-modern style
* lib/exclude.c: Sort include directives.
(fnmatch_pattern_has_wildcards, file_name_matches):
Prefer ‘true’ to ‘1’.
(string_hasher, string_compare, string_compare_ci):
Avoid unnecessary locals.
(string_free): Remove. All callers changed to just use ‘free’.
(new_exclude_segment): Prefer xmalloc to xzalloc when it’s
clearer to initialize ourselves.
(new_exclude_segment, exclude_patopts, add_exclude_fp):
Prefer nullptr to NULL.
(free_exclude_segment, file_pattern_matches):
Avoid unnecessary nesting.
(free_exclude, fnmatch_no_wildcards, exclude_fnmatch)
(excluded_file_name, add_exclude, add_exclude_fp):
Assume C99 decl syntax.
(fnmatch_no_wildcards): Prefer idx_t to size_t.
(exclude_fnmatch, add_exclude_fp): Prefer ‘f (x)’ to ‘(*f) (x)’.
(add_exclude): Help compiler by refactoring search for
trailing slashes. Avoid unnecessary cast to char *.
* modules/exclude (Depends-on): Add nullptr.
2023-08-21 Paul Eggert <eggert@cs.ucla.edu>
unlocked-io: fix getc_unlocked typo
* lib/unlocked-io.h (getc): Fix misspelling of ‘getc_unlocked’.
2023-08-21 Bruno Haible <bruno@clisp.org>
alignasof, stdalign: Fix a compilation error in C++ mode on FreeBSD 12.
* m4/stdalign.m4 (gl_ALIGNASOF): In C++ mode, prefer __builtin_offsetof
over offsetof when possible, since __builtin_offsetof works also when
<stddef.h> has not been fully included yet.
2023-08-21 Bruno Haible <bruno@clisp.org>
wcsstr: Relicense under LGPLv2+.
* modules/wcsstr (License): Change to LGPLv2+.
wcsstr-simple: Relicense under LGPLv2+.
* modules/wcsstr-simple (License): Change to LGPLv2+.
* lib/wcsstr.c: Update license notice.
* lib/wcsstr-impl.h: Update license notice. The code added here on
2023-03-27 was under LGPLv2+.
wmemcmp: Relicense under LGPLv2+.
* modules/wmemcmp (License): Change to LGPLv2+.
* lib/wmemcmp.c: Update license notice.
* lib/wmemcmp-impl.h: Likewise.
wcschr: Relicense under LGPLv2+.
* modules/wcschr (License): Change to LGPLv2+.
* lib/wcschr.c: Update license notice.
* lib/wcschr-impl.h: Likewise.
2023-08-21 Bruno Haible <bruno@clisp.org>
unistr/u32-strlen: Complete license change from 2023-07-23.
* lib/unistr/u-strlen.h: Update license notice.
2023-08-21 Bruno Haible <bruno@clisp.org>
isnanl: Relicense under LGPLv2+.
* modules/isnanl (License): Change to LGPLv2+.
2023-08-20 Paul Eggert <eggert@cs.ucla.edu>
ldexp: port to non-two’s complement
* lib/ldexp.c (FUNC): Don’t assume two’s-complement.
2023-08-20 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix the result on runit and s6 init systems.
* lib/boot-time-aux.h (get_linux_boot_time_fallback): Try also
/var/lib/urandom/random-seed. Try /var/run/utmp last.
2023-08-20 Paul Eggert <eggert@cs.ucla.edu>
ldexp: fix INT_MIN infloop
* lib/ldexp.c (FUNC): Instead of converting EXP to unsigned,
work on it directly. This simplifies the code and avoids
an infinite loop when EXP == INT_MIN.
* modules/ldexp, modules/ldexpl: Depend on stdbool.
* tests/test-ldexp.h: Include <limits.h> for INT_MIN.
(test_function): Test for infloop.
2023-08-20 Bruno Haible <bruno@clisp.org>
ldexp: Fix compilation error in C++ mode.
* lib/math.in.h (ldexp): Use _GL_CXXALIASWARN1, not _GL_CXXALIASWARN.
2023-08-19 Bruno Haible <bruno@clisp.org>
ldexp: Work around OpenBSD/mips64 bug.
* lib/math.in.h (ldexp): New declaration.
* lib/ldexp.c: New file, based on lib/ldexpl.c.
* lib/ldexpl.c: Moved the implementation to lib/ldexp.c. Just include
it.
* m4/math_h.m4 (gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LDEXP.
(gl_MATH_H_DEFAULTS): Initialize REPLACE_LDEXP.
* m4/ldexp.m4 (gl_FUNC_LDEXP): Require gl_MATH_H_DEFAULTS and
gl_FUNC_ISNAND. Invoke gl_FUNC_LDEXP_WORKS. Set REPLACE_LDEXP. Consider
it when setting LDEXP_LIBM.
(gl_FUNC_LDEXP_WORKS): New macro.
* modules/math (Makefile.am): Substitute GNULIB_LDEXP, REPLACE_LDEXP.
* modules/ldexp (Files): Add lib/ldexp.c.
(Depends-on): Add math, isnand.
(configure.ac): Set GL_COND_OBJ_LDEXP. Invoke gl_MATH_MODULE_INDICATOR.
(Makefile.am): Conditionally compile ldexp.c.
* modules/ldexpl (Files): Add lib/ldexp.c.
* doc/posix-functions/ldexp.texi: Mention the OpenBSD bug.
2023-08-19 Bruno Haible <bruno@clisp.org>
ldexpl: Relicense under LGPLv2+.
* modules/ldexpl (License): Change to LGPLv2+.
* lib/ldexpl.c: Update license notice.
2023-08-19 Bruno Haible <bruno@clisp.org>
isnand: Relicense under LGPLv2+.
* modules/isnand (License): Change to LGPLv2+.
2023-08-19 Bruno Haible <bruno@clisp.org>
ldexpl: Avoid possible -Wshadow warning.
* lib/ldexpl.c (exp): Locally rename to 'exponent'.
ldexpl: Fix signed integer overflow.
* lib/ldexpl.c (ldexpl): Use an 'unsigned int' variable to represent the
absolute value of exp without overflow.
2023-08-19 Bruno Haible <bruno@clisp.org>
logbl: Work around endless loop on OpenBSD 7.3/mips64.
* m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Terminate the test program if it
takes longer than 5 seconds.
* doc/posix-functions/logbl.texi: Mention the OpenBSD bug.
2023-08-18 Bruno Haible <bruno@clisp.org>
thrd: Work around thrd_join bug on AIX 7.3.1.
* m4/threads_h.m4 (gl_THREADS_H): Test against AIX 7 thrd_join bug. Set
BROKEN_THRD_JOIN.
(gl_THREADS_H_DEFAULTS): Initialize BROKEN_THRD_JOIN.
* m4/thrd.m4 (gl_FUNC_THRD_JOIN): Set REPLACE_THRD_* to 1 also if
BROKEN_THRD_JOIN is 1. Define BROKEN_THRD_START_T_OR_JOIN instead of
BROKEN_THRD_START_T.
* modules/threads-h (Makefile.am): Substitute BROKEN_THRD_JOIN.
* lib/threads.in.h (rpl_thrd_t, thrd_t): Define also if BROKEN_THRD_JOIN
is 1.
* lib/thrd.c: Test BROKEN_THRD_START_T_OR_JOIN instead of
BROKEN_THRD_START_T.
* doc/posix-functions/thrd_join.texi: Update.
* doc/posix-functions/thrd_exit.texi: Likewise.
thrd: Refactor.
* m4/thrd.m4 (gl_FUNC_THRD_JOIN): Define BROKEN_THRD_JOIN_NULL, not
BROKEN_THRD_JOIN. Rename gl_cv_func_thrd_join_works to
gl_cv_func_thrd_join_null_works.
* lib/thrd.c: Test BROKEN_THRD_JOIN_NULL instead of BROKEN_THRD_JOIN.
2023-08-18 Bruno Haible <bruno@clisp.org>
thrd tests: Add unit test for thrd_exit.
* tests/test-thrd_exit.c: New file, based on tests/test-thrd_create.c.
* modules/thrd-tests (Files): Add it.
(Makefile.am): Compile and run it.
thrd: On AIX 7.1 and 7.2, override also thrd_exit.
* lib/threads.in.h (thrd_exit): Consider REPLACE_THRD_EXIT.
* lib/thrd.c (rpl_thrd_exit): New function.
* m4/threads_h.m4 (gl_THREADS_H_DEFAULTS): Initialize REPLACE_THRD_EXIT.
* m4/thrd.m4 (gl_FUNC_THRD_JOIN): Set also REPLACE_THRD_EXIT and adjust
LIBSTDTHREAD.
* modules/threads-h (Makefile.am): Substitute REPLACE_THRD_EXIT.
* doc/posix-functions/thrd_exit.texi: Mention the AIX thrd_join problem
also here.
2023-08-18 Bruno Haible <bruno@clisp.org>
aligned_alloc: Fix test failure on AIX 7.3 with ibm-clang.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Use 'volatile', to
disable optimization of ibm-clang -O2.
* doc/posix-functions/aligned_alloc.texi: Update version info.
2023-08-18 Bruno Haible <bruno@clisp.org>
sys_socket: Fix compilation errors in C++ mode on AIX 7.3 with gcc.
* lib/sys_socket.in.h (accept, getpeername, getsockname, recvfrom):
Disable _GL_CXXALIASWARN invocation on non-glibc systems.
2023-08-18 Bruno Haible <bruno@clisp.org>
stddef: Don't unnecessarily override max_align_t on AIX 7.3 with gcc.
* lib/stddef.in.h (max_align_t, GNULIB_defined_max_align_t): Don't
define or override if HAVE_MAX_ALIGN_T is 1.
2023-08-18 Bruno Haible <bruno@clisp.org>
uptime: Deprecate.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-coreutils/2023-08/msg00070.html>.
* modules/uptime (Status, Notice): New sections.
2023-08-17 Bruno Haible <bruno@clisp.org>
Recognize the *-*-windows* config triplets introduced on 2023-06-26.
* m4/*.m4: Treat windows* as equivalent to mingw*.
* modules/*: Likewise.
2023-08-16 Bruno Haible <bruno@clisp.org>
mbrtoc32-regular: Make it work as expected on glibc 2.12.
* lib/mbrtoc32.c (mbrtoc32): If necessary, clear the mbstate_t after
mbrtowc() returned.
2023-08-16 Bruno Haible <bruno@clisp.org>
fnmatch: Override fnmatch from glibc versions < 2.22.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Force REPLACE_FNMATCH=1 in
glibc versions < 2.22.
2023-08-16 Bruno Haible <bruno@clisp.org>
tests: Avoid some test failures on Slackware 13.37.
* tests/test-c32isalnum.c (main): Disable GB18030 tests on
glibc 2.13..2.15.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isblank.c (main): Likewise.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isdigit.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32isspace.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-c32isxdigit.c (main): Likewise.
* tests/test-c32rtomb.c (main): Likewise.
* tests/test-c32snrtombs.c (main): Likewise.
* tests/test-c32srtombs.c (main): Likewise.
* tests/test-c32stombs.c (main): Likewise.
* tests/test-c32tolower.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-fnmatch.c (main): Likewise.
* tests/test-mbrtoc16.c (main): Likewise.
* tests/test-mbrtoc32.c (main): Likewise.
* tests/test-mbsnrtoc32s.c (main): Likewise.
* tests/test-mbsrtoc32s.c (main): Likewise.
* tests/test-mbstoc32s.c (main): Likewise.
2023-08-15 Bruno Haible <bruno@clisp.org>
readutmp tests: Add test against today's bug.
* tests/test-readutmp.c (main): Verify that there is exactly one
BOOT_TIME entry.
readutmp: Fix for platforms without ut_type (regression 2023-08-08).
* lib/readutmp.h (UT_TYPE_BOOT_TIME, UT_TYPE_USER_PROCESS): Don't use
UT_TYPE_EQ macro.
(IS_USER_PROCESS): Don't use UT_USER, UT_TYPE_NOT_DEFINED macros.
* lib/readutmp.c (IS_USER_PROCESS): Don't override.
2023-08-14 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Don't use __UT_* symbols (regression 2023-08-11).
* lib/readutmp.h (_GL_UT_USER_SIZE, _GL_UT_ID_SIZE, _GL_UT_LINE_SIZE,
_GL_UT_HOST_SIZE): New macros.
(struct utmpx32): Use them.
2023-08-14 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix build on 32-bit glibc (regression 2023-08-11).
Reported by Andreas Schwab <schwab@suse.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00125.html>.
* lib/readutmp.h (struct utmpx32): Reference __UT_NAMESIZE, not
__UT_USERSIZE.
2023-08-13 Bruno Haible <bruno@clisp.org>
stdint: Fix configure test result with gcc 4.7 or 4.8.
* m4/stdint.m4 (gl_STDINT_H): Don't assume that _Generic works with
GCC versions < 4.9 with -std=gnu11.
2023-08-13 Bruno Haible <bruno@clisp.org>
Fix some test module descriptions.
* modules/boot-time-tests (Files): Add tests/macros.h.
* modules/dprintf-gnu-tests (Files): Likewise.
* modules/fclose-tests (Files): Likewise.
* modules/getcwd-tests (Files): Likewise.
* modules/lock-tests (Files): Likewise.
* modules/nullptr-c++-tests (Files): Likewise.
* modules/posix_spawn-tests (Files): Likewise.
* modules/posix_spawnp-tests (Files): Likewise.
* modules/readutmp-tests (Files): Likewise.
* modules/sh-quote-tests (Files): Likewise.
* modules/unigbrk/u16-grapheme-breaks-tests (Files): Likewise.
* modules/unigbrk/u16-grapheme-next-tests (Files): Likewise.
* modules/unigbrk/u16-grapheme-prev-tests (Files): Likewise.
* modules/unigbrk/u32-grapheme-breaks-tests (Files): Likewise.
* modules/unigbrk/u32-grapheme-next-tests (Files): Likewise.
* modules/unigbrk/u32-grapheme-prev-tests (Files): Likewise.
* modules/unigbrk/u8-grapheme-breaks-tests (Files): Likewise.
* modules/unigbrk/u8-grapheme-next-tests (Files): Likewise.
* modules/unigbrk/u8-grapheme-prev-tests (Files): Likewise.
* modules/unigbrk/uc-grapheme-breaks-tests (Files): Likewise.
2023-08-13 Bruno Haible <bruno@clisp.org>
nproc, physmem: Use sysctl() as a fallback on GNU/kFreeBSD.
* lib/nproc.c: Do include <sys/sysctl.h> on GNU/kFreeBSD.
(num_processors_ignoring_omp): Call sysctl on GNU/kFreeBSD.
* lib/physmem.c: Do include <sys/sysctl.h> on GNU/kFreeBSD.
(physmem_total, physmem_available): Call sysctl on GNU/kFreeBSD.
2023-08-13 Bruno Haible <bruno@clisp.org>
physmem: Add tests.
* tests/test-physmem.c: New file.
* modules/physmem-tests: New file.
2023-08-13 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix warning on glibc 2.30..2.31 on Linux.
Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00110.html>.
* lib/readutmp.c: Don't include <sys/sysctl.h> on glibc/Linux.
* lib/boot-time.c: Likewise.
2023-08-13 Paul Eggert <eggert@cs.ucla.edu>
fts: improve memory-allocation errno handling
* lib/fts.c (fts_read, fts_build): When enter_dir or setup_dir
fails, report its errno value back to the user.
(internal_function): Preserve errno.
* modules/fts (Depends-on): Add calloc-posix, free-posix,
malloc-posix, and realloc-posix, for better errno handling
on allocation failures.
hash: set errno on failure
* lib/hash.c: Include errno.h.
(compute_bucket_size, hash_initialize, hash_rehash)
(hash_insert_if_absent): Set errno reliably on failure.
(hash_free): Preserve errno, like plain 'free'.
* modules/hash (Depends-on): Depend on calloc-posix,
free-posix, malloc-posix, so that errno is set reliably.
2023-08-13 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix compilation error on old Android.
Reported by Po Lu in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00108.html>.
* lib/readutmp.h (BOOT_TIME): Add fallback.
2023-08-13 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix compilation error on Android API 8.
Reported by Po Lu in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00108.html>.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): Test whether sysinfo is
declared.
* lib/boot-time-aux.h (get_linux_uptime): Invoke sysinfo only if it is
declared.
* doc/glibc-functions/sysinfo.texi: Mention the Android problem.
2023-08-13 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix compilation error on old Android.
Reported by Po Lu in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00108.html>.
* lib/readutmp.c (endutent): New fallback declaration, for Android.
(getutent): Remove Ultrix workaround from 2000-04-05.
* lib/boot-time.c: Likewise.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): Test whether endutent is
declared, not getutent.
* doc/glibc-functions/endutent.texi: Mention the Android bug.
2023-08-12 Paul Eggert <eggert@cs.ucla.edu>
boot-time,readutmp: do not depend on c-strtod
* lib/boot-time-aux.h (get_linux_uptime): Compute struct timespec
using integer arithmetic rather than double.
* lib/boot-time.c, lib/readutmp.c: Don’t include c-strtod.h.
* modules/boot-time, modules/readutmp (Depends-on): Remove c-strtod.
boot-time,readutmp: remove -lrt usage
This code uses clock-relevant functions only on platforms
that do not need -lrt.
* m4/readutmp.m4 (gl_READUTMP): Do not require gl_CLOCK_TIME
or add CLOCK_TIME_LIB to READUTMP_LIB.
* modules/boot-time (Link): No need to link with CLOCK_TIME_LIB.
boot-time,readutmp: do not depend on fopen-gnu
These modules should work well enough even if fopen is not fixed
to conform to fopen-gnu standards. The only gotcha I can see is
older fopen implementations that lack support for "e", and
a potential O_CLOEXEC leak is not worth worrying about.
* modules/boot-time (Depends-on):
* modules/readutmp (Depends-on):
Remove fopen-gnu.
readutmp: do not depend on timespec_get
boot-time code no longer needs it.
* modules/readutmp (Depends-on): Remove timespec_get.
boot-time: do not depend on timespec_get
This is for Emacs, which does not use timespec_get now
and which likes to minimize dependencies.
Also, treat musl libc like recent glibc,
and fix a timespec_get return value typo.
* lib/boot-time-aux.h (get_linux_uptime):
Assume musl libc supports CLOCK_BOOTTIME.
(get_linux_boot_time_final_fallback):
Likewise for musl libc and CLOCK_REALTIME.
Do not rely on the timespec_get module, to break the dependency.
Consider 0 to be a failure return from timespec_get.
Fall back on gettimeofday if timespec_get does not exist.
* modules/boot-time (Depends-on): Remove timespec_get.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Fix parsing of /proc/uptime.
* lib/boot-time-aux.h (get_linux_uptime): Use c_strtod, not strtod.
* lib/readutmp.c: Include c-strtod.h.
* lib/boot-time.c: Likewise.
* modules/readutmp (Depends-on): Add c-strtod.
* modules/boot-time (Depends-on): Likewise.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp: On Linux, don't fail if /var/run/utmp is not accessible.
* lib/boot-time-aux.h (get_linux_boot_time_final_fallback): Don't test
NEED_BOOT_TIME_FINAL_FALLBACK.
* lib/boot-time.c (NEED_BOOT_TIME_FINAL_FALLBACK): Remove macro.
* lib/readutmp.c (NEED_BOOT_TIME_FINAL_FALLBACK): Remove macro.
(read_utmp_from_file): As a fallback on Linux, invoke
get_linux_boot_time_final_fallback.
(get_boot_time_uncached): Don't do it here.
* m4/readutmp.m4 (gl_READUTMP): Add $CLOCK_TIME_LIB to READUTMP_LIB.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: On Haiku, return the boot time.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): Test whether <OS.h> exists.
* lib/boot-time-aux.h (get_haiku_boot_time,
get_haiku_boot_time_final_fallback): New functions.
* lib/readutmp.c: Include <OS.h>.
(read_utmp_from_file): If opening UTMP_FILE fails, continue processing
instead of failing. Invoke get_haiku_boot_time and
get_haiku_boot_time_final_fallback.
* lib/boot-time.c: Include <OS.h>.
(get_boot_time_uncached): Invoke get_haiku_boot_time and
get_haiku_boot_time_final_fallback.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp: Reduce code duplication.
* lib/readutmp.c (have_boot_time): New function.
(read_utmp_from_file): Invoke it, instead of duplicating the same loop.
2023-08-12 Paul Eggert <eggert@cs.ucla.edu>
c-file-type: new module
* lib/c-file-type.c: New file, containing all of the
old file-type except for the gettext call.
* lib/file-type.c (_): Remove; no longer used.
(file_type): Call c_file_type for most of the work.
* modules/c-file-type: New module.
* modules/file-type (Depends-on): Add c-file-type.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp, boot-time: Use the BSD sysctl as fallback.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): Test for <sys/param.h>,
<sys/sysctl.h>, sysctl.
* lib/boot-time-aux.h (get_bsd_boot_time_final_fallback): New function.
* lib/readutmp.c: Include <sys/param.h> and <sys/sysctl.h>.
(read_utmp_from_file): Invoke get_bsd_boot_time_final_fallback as a
fallback.
* lib/boot-time.c: Include <sys/param.h> and <sys/sysctl.h>.
(get_boot_time_uncached): Invoke get_bsd_boot_time_final_fallback as a
fallback.
2023-08-12 Bruno Haible <bruno@clisp.org>
readutmp: Fix compilation error on OpenBSD (regression 2023-08-11).
* lib/readutmp.c (read_utmp_from_file): Remove extraneous 'break'
statement.
2023-08-11 Bruno Haible <bruno@clisp.org>
boot-time: Add comment about multithread-safety.
* lib/boot-time.h (get_boot_time): Add comment, same as in readutmp.h.
2023-08-11 Bruno Haible <bruno@clisp.org>
boot-time: Simplify execution.
* lib/boot-time.c: Include <stdio.h>, <string.h>, <sys/types.h>,
<sys/stat.h>, <sys/sysinfo.h>, <time.h>, stat-time.h, unlocked-io.h,
boot-time-aux.h.
(UT_USER): New macro, from lib/readutmp.c.
(getutent): New declaration.
(get_boot_time_uncached): New function, containing a simplified code
from lib/readutmp.c.
(get_boot_time): Don't invoke read_utmp. Instead, invoke
get_boot_time_uncached and cache the result.
* modules/boot-time (Files): Add lib/boot-time-aux.h, lib/readutmp.h,
m4/readutmp.m4.
(Depends-on): Remove readutmp. Add extensions, fopen-gnu, stat-time,
stdbool, time-h, timespec_get, unlocked-io-internal.
(configure.ac): Invoke gl_PREREQ_READUTMP_H.
(Link): Remove $(READUTMP_LIB). Add $(CLOCK_TIME_LIB).
* modules/boot-time-tests (Makefile.am): Link test-boot-time with
$(CLOCK_TIME_LIB), not with $(READUTMP_LIB).
2023-08-11 Bruno Haible <bruno@clisp.org>
readutmp: Refactor boot time determination code.
* lib/boot-time-aux.h: New file, extracted from lib/readutmp.c.
* lib/readutmp.c: On Linux, include <sys/sysinfo.h> even if
!READUTMP_USE_SYSTEMD.
Include boot-time-aux.h.
(SIZEOF): Remove macro, moved to boot-time-aux.h.
(get_linux_uptime): Remove function, moved to boot-time-aux.h.
(read_utmp_from_file): Invoke get_linux_boot_time_fallback,
get_android_boot_time, get_openbsd_boot_time, get_windows_boot_time.
Code moved to boot-time-aux.h.
(get_boot_time_uncached: Invoke get_linux_boot_time_final_fallback.
Code moved to boot-time-aux.h.
* m4/readutmp.m4 (gl_PREREQ_READUTMP_H): New macro, extracted from
gl_READUTMP.
(gl_READUTMP): Invoke it.
* modules/readutmp (Files): Add lib/boot-time-aux.h.
2023-08-11 Bruno Haible <bruno@clisp.org>
readutmp: Make 'struct utmpx32' usable by other code.
* lib/readutmp.h (struct utmpx32): Moved to here from lib/readutmp.c.
(UTMP_STRUCT_NAME): Define as utmpx32 if needed.
* lib/readutmp.c (read_utmp_from_file): Simply use UTMP_STRUCT_NAME.
2023-08-11 Bruno Haible <bruno@clisp.org>
readutmp tests: Fix link error.
* modules/readutmp-tests (Makefile.am): Link test-readutmp with
$(LIBINTL).
2023-08-11 Bruno Haible <bruno@clisp.org>
readutmp: Fix the boot time returned on Minix.
* lib/readutmp.c (read_utmp_from_file): [__minix] When the time of the
BOOT_TIME entry is very close to the Epoch, replace it with the time
from the "run-level m" entry.
2023-08-11 Bruno Haible <bruno@clisp.org>
readutmp: On Cygwin and Windows, return the boot time.
* lib/readutmp.h (READ_UTMP_SUPPORTED): Define also on native Windows.
* lib/readutmp.c (desirable_utmp_entry): Ignore READ_UTMP_CHECK_PIDS on
Windows.
(read_utmp_from_file): Add a BOOT_TIME entry on Windows.
2023-08-11 Bruno Haible <bruno@clisp.org>
clock-time: On mingw, avoid buggy clock_gettime from libwinpthread.
* m4/clock_time.m4 (gl_CLOCK_TIME): Require AC_CANONICAL_HOST. On
native Windows, avoid using clock_getres clock_gettime clock_settime
from mingw's libwinpthread.
* doc/posix-functions/clock_gettime.texi: Mention the mingw bug.
2023-08-10 Bruno Haible <bruno@clisp.org>
readutmp: Make the header file includable from C++.
* lib/readutmp.h: Add extern "C" block.
2023-08-10 Bruno Haible <bruno@clisp.org>
readutmp: Tweak the Android specific addition.
* lib/readutmp.c (read_utmp_from_file) [__ANDROID__]: Don't fake a
BOOT_TIME entry if the options request to omit it or if a BOOT_TIME
entry is already present.
2023-08-10 Bruno Haible <bruno@clisp.org>
readutmp: Fix the boot time returned on Raspbian.
* lib/readutmp.c (read_utmp_from_file): When the time of the BOOT_TIME
entry is very close to the Epoch, replace it with the time from the
"runlevel"/"~" entry.
2023-08-10 Bruno Haible <bruno@clisp.org>
boot-time: Add tests.
* tests/test-boot-time.c: New file.
* modules/boot-time-tests: New file.
boot-time: New module.
* lib/boot-time.h: New file.
* lib/boot-time.c: New file.
* modules/boot-time: New file.
2023-08-10 Bruno Haible <bruno@clisp.org>
readutmp: Return a boot time also on Android.
* lib/readutmp.c (get_linux_uptime): New function, extracted from
get_boot_time_uncached.
(read_utmp_from_file): Don't look for file time stamps on Android.
Instead, use get_linux_uptime.
(get_boot_time_uncached): Use get_linux_uptime.
2023-08-09 Bruno Haible <bruno@clisp.org>
readutmp: Fix a mistake (regression 2023-08-08).
* lib/readutmp.c (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED): Fix a typo.
readutmp: Return a boot time also on OpenBSD.
* lib/readutmp.h (BOOT_TIME, USER_PROCESS): Provide fallback
definitions.
* lib/readutmp.c (read_utmp_from_file) [__OpenBSD__]: Fake a BOOT_TIME
entry by looking at the time stamp of a specific file.
readutmp: Return a boot time also on Alpine Linux.
* lib/readutmp.c: Include stat-time.h.
(SIZEOF): New macro.
(read_utmp_from_file) [__linux__]: Fake a BOOT_TIME entry by looking
at the time stamp of a specific file.
* modules/readutmp (Depends-on): Add stat-time.
readutmp: Fix boot time in VMs after sleep state and date update.
* lib/readutmp.c (read_utmp_from_file): New function, extracted from
read_utmp.
(get_boot_time_uncached): Before all other approaches, try to find the
boot time in the /var/run/utmp file.
(read_utmp): Invoke read_utmp_from_file.
readutmp: Make it easier to filter for/against the boot-time entry.
* lib/readutmp.h (READ_UTMP_BOOT_TIME, READ_UTMP_NO_BOOT_TIME): New
enum items.
* lib/readutmp.c (desirable_utmp_entry, read_utmp_from_systemd):
Implement them.
(read_utmp): If no entries can match the given options, return
immediately.
2023-08-08 Paul Eggert <eggert@cs.ucla.edu>
readutmp: omit pragma
* lib/readutmp.c: Omit -Wstringop-overread pragma.
It’s no longer needed now that extract_trimmed_name
no longer calls strnlen.
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Use classical implementation for files != /var/run/utmp.
* lib/readutmp.c (read_utmp_from_systemd): Renamed from read_utmp
[READUTMP_USE_SYSTEMD]. Remove file argument.
(read_utmp): Call it when the file argument is "/var/run/utmp".
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Get the boot time with higher precision.
Suggested by Thorsten Kukuk <kukuk@suse.com> in
<https://github.com/thkukuk/utmpx/blob/main/utmp-to-logind.md#determine-boot-time>.
* lib/readutmp.c (get_boot_time_uncached): Try clock_gettime first.
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Add comment about multithread-safety.
* lib/readutmp.h (read_utmp): Add comment.
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Return entries with unbounded strings on all platforms.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00165.html>.
* m4/readutmp.m4 (gl_READUTMP): Test also whether struct utmp has an
ut_tv member, and whether struct utmp and struct utmpx have an
ut_session member.
* lib/readutmp.h (struct gl_utmp): Define always. Add ut_exit field.
(HAVE_GL_UTMP): Remove macro.
(UT_USER, UT_TIME_MEMBER, UT_PID, UT_TYPE_EQ, UT_TYPE_NOT_DEFINED,
UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT, STRUCT_UTMP): Define w.r.t.
struct gl_utmp.
(UT_USER_SIZE, UT_ID_SIZE, UT_LINE_SIZE, UT_HOST_SIZE): Define to -1
always.
(getutent): Remove declaration.
(HAVE_STRUCT_XTMP_UT_EXIT): Remove unused macro.
(HAVE_STRUCT_XTMP_UT_ID, HAVE_STRUCT_XTMP_UT_PID,
HAVE_STRUCT_XTMP_UT_HOST): Change to match the way coreutils uses these
macros.
* lib/readutmp.c (UT_USER, UT_TIME_MEMBER, UT_PID, UT_TYPE_EQ,
UT_TYPE_NOT_DEFINED, IS_USER_PROCESS, UT_EXIT_E_TERMINATION,
UT_EXIT_E_EXIT, UT_USER_SIZE, UT_ID_SIZE, UT_LINE_SIZE, UT_HOST_SIZE):
Define w.r.t. struct utmpx or struct utmp.
(extract_trimmed_name): Don't use UT_USER or UT_USER_SIZE here.
(desirable_utmp_entry): Don't use UT_TIME_MEMBER or UT_USER here.
(struct utmp_alloc): Define always.
(add_utmp): Likewise. Add user_len, id_len, line_len, host_len,
termination, exit arguments. Don't require that user, id, line, host are
NUL-terminated. Assume user and host are non-NULL.
(finish_utmp): New function, extracted from read_utmp.
(read_utmp) [READUTMP_USE_SYSTEMD]: Update add_utmp invocations. Pass a
non-NULL user and a non-NULL host. Call finish_utmp.
(getutent): Move declaration from readutmp.h to here.
(copy_utmp_entry): Remove function.
(read_utmp) [UTMP_NAME_FUNCTION]: Replace variables n_read, n_alloc,
utmp with a 'struct utmp_alloc'. Use 'struct utmpx32' from
copy_utmp_entry here. Invoke add_utmp and finish_utmp.
(read_utmp) [!UTMP_NAME_FUNCTION]: Replace variables n_read, n_alloc,
utmp with a 'struct utmp_alloc'. Invoke add_utmp and finish_utmp.
* NEWS: Mention the API change.
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Fix compilation error on OpenBSD and AIX (regr. 2023-08-03).
* lib/readutmp.h (UT_TIME_MEMBER) [HAVE_UTMP_H]: Revert last change.
2023-08-08 Bruno Haible <bruno@clisp.org>
readutmp: Fix compilation error on OpenBSD (regr. 2023-08-02).
* lib/readutmp.h (UT_ID_SIZE): Define to a dummy if there is no ut_id
field.
2023-08-07 Paul Eggert <eggert@cs.ucla.edu>
quotearg: fix obsolete comment
* lib/quotearg.h: Fix comment to match behavior.
This fixes a commentary bug introduced in
commit 1a43a982c927eaf26bbc2701a872009d9be4b33b
"quotearg: do not use grave accent for left quote"
dated 2011-12-18 15:44:17+01, where the comment
was not updated to match the changed behavior.
2023-08-06 Paul Eggert <eggert@cs.ucla.edu>
readutmp: fix comment bug ID
* lib/readutmp.c: Fix comment (thanks to Bruno Haible).
doc: Document lack of printf "%n" on Android, OpenBSD.
* doc/posix/functions/*printf.texi: Document that the POSIX-specified
printf functions do not support the %n format on Android and OpenBSD.
This lack of support is deliberate, as %n is a common target of attacks
on security.
2023-08-05 Paul Eggert <eggert@cs.ucla.edu>
readutmp: anticipate Y2038 hack for utmp
* lib/readutmp.c (struct utmpx32): Use unsigned int for tv_sec,
not int, as that is more likely to work after 2038.
Suggested by Andreas Schwab in:
https://sourceware.org/pipermail/libc-alpha/2023-August/150661.html
diffseq: simplify lint removal
* lib/diffseq.h (IF_LINT): Remove.
Instead, always ignore the diagnostic, as that’s simpler
now that we have the pragma change installed in May.
This removes the last IF_LINT from diffutils, though not
the last use of GCC_LINT.
2023-08-04 Bruno Haible <bruno@clisp.org>
unistr/{u8-mbtouc,u8-mbsnlen}: Fix test failures (regr. 2023-07-25).
* modules/unistr/u8-mbtouc (configure.ac): Compile this code if the
preinstalled libunistring version is >= 0.9.4, < 1.2.
* modules/unistr/u8-mbsnlen (configure.ac): Likewise.
unistr/*-pcpy: Fix compilation errors (regression 2023-07-21).
* modules/unistr/base (configure.ac): Generate unistr.h if the
preinstalled libunistring version is >= 0.9.11, < 1.2.
2023-08-04 Bruno Haible <bruno@clisp.org>
readutmp: In systemd mode, fix the ut_host contents (regr. yesterday).
* lib/readutmp.c (add_utmp): Fix ut_host contents.
* tests/test-readutmp.c (main): Show also the contents of the ut_host
field.
2023-08-04 Bruno Haible <bruno@clisp.org>
readutmp: Ensure multithread-safety.
* lib/readutmp.c (get_boot_time): Initialize 'cached' after 'boot_time',
not before. Also declare both as volatile.
2023-08-04 Bruno Haible <bruno@clisp.org>
readutmp tests: Fix gcc warning (regression from yesterday).
* tests/test-readutmp.c: Include idx.h.
(main): Use idx_t instead of size_t.
2023-08-03 Paul Eggert <eggert@cs.ucla.edu>
readutmp: systemd supports only UTMP_FILE
* lib/readutmp.c (read_utmp): Fail if not UTMP_FILE.
* m4/systemd.m4 (gl_SYSTEMD_CHOICE): Default to no for now,
since yes means "who /var/log/wtmp" stops working.
readutmp: switch new struct to struct timespec
* lib/readutmp.c (get_boot_time_uncached, get_boot_time)
(add_utmp, read_utmp):
Use struct timespec, not struct timeval.
* lib/readutmp.h: Always include <time.h>, for struct timespec.
Simplify when utmp.h and utmpx.h are included.
(struct gl_utmp): Use the same struct for both the
systemd and the dummy version. Reorder members, and
use proper pid_t type for ut_session. Rename ut_tv to ut_ts
and make it a struct timespec. All uses changed.
(HAVE_GL_UTMP): New macro. Use it where appropriate, instead
of READUTMP_USE_SYSTEMD.
(UT_USER, HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID)
(HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_HOST):
Simplify.
* modules/readutmp (Depends-on): Add time-h, timespec_get.
Remove sys_type. Sort.
readutmp: fix # indentation
* lib/readutmp.h: Change # indentation to standard Gnulib style.
readutmp: pacify -Wstrict-prototypes
* lib/readutmp.c (get_boot_time_uncached, get_boot_time):
Pacify gcc 13 -Wstrict-prototypes.
readutmp: fix idx_t FIXME in API
* lib/readutmp.c (read_utmp): 2nd arg is now idx_t *, not
size_t *.
* lib/readutmp.h: Include idx.h, for idx_t.
* modules/readutmp (Depends-on): Add idx.
readutmp: go back to simple ‘free’
Omit the new free_utmp function. Instead, allocate storage
in one block, so that using code can still just call ‘free’.
* lib/readutmp.c (struct utmp_alloc) [READUTMP_USE_SYSTEMD]: New type.
(add_utmp) [READUTMP_USE_SYSTEMD]: New function.
(read_utmp) [READUTMP_USE_SYSTEMD]: Use it.
Also, use malloc a bit less heavily.
(free_utmp): Remove.
* tests/test-readutmp.c (main): Call free, not free_utmp.
readutmp: simplify extract_trimmed_name via ximemdup0
* lib/readutmp.c (extract_trimmed_name): Simplify.
* modules/readutmp (Depends-on):
Add strnlen, which was a missing dependency.
2023-08-03 Bruno Haible <bruno@clisp.org>
alignasof, stdalign: Avoid some -Wundef warnings from config.h.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-08/msg00012.html>.
* m4/stdalign.m4 (gl_ALIGNASOF): Test whether __cplusplus is defined
before evaluating it. Assume HAVE_STDALIGN_H, _GL_STDALIGN_NEEDS_STDDEF
are never defined to 0.
2023-08-03 Bruno Haible <bruno@clisp.org>
doc: More platform detail.
* doc/posix-functions/fnmatch.texi: Mention Solaris OpenIndiana here,
since it behaves differently than Solaris 11.4.
2023-08-03 Bruno Haible <bruno@clisp.org>
doc: Add references to FreeBSD bugs.
* doc/posix-functions/fnmatch.texi: Add commented reference to FreeBSD
bug.
* doc/posix-functions/wcscmp.texi: Likewise.
* doc/posix-functions/wcsncmp.texi: Likewise.
2023-08-02 Bruno Haible <bruno@clisp.org>
readutmp: In systemd mode, put the X11 display into the ut_host field.
* lib/readutmp.c (read_utmp): In sessions of type "x11", use the X11
display as host.
2023-08-02 Bruno Haible <bruno@clisp.org>
readutmp: Small change to reduce the code size on the coreutils side.
* lib/readutmp.h (UT_ID_SIZE): New constant and macro.
2023-08-01 Bruno Haible <bruno@clisp.org>
readutmp: Small changes to reduce the code size on the coreutils side.
* m4/readutmp.m4 (gl_READUTMP): Test also for the ut_host field in
'struct utmpx' and 'struct utmp'.
* lib/readutmp.h (HAVE_STRUCT_XTMP_UT_HOST): New macro.
(UT_USER_SIZE): Define also as a macro. Set to -1 if
READUTMP_USE_SYSTEMD.
(UT_LINE_SIZE, UT_HOST_SIZE): New constants and macros.
2023-08-01 Bruno Haible <bruno@clisp.org>
readutmp: For year-2038 safety on Linux/{x86,arm}, use systemd APIs.
Suggested by Thorsten Kukuk <kukuk@suse.com> in
<https://www.thkukuk.de/blog/Y2038_glibc_utmp_64bit/> and
<https://github.com/thkukuk/utmpx/blob/main/utmp-to-logind.md>.
* m4/systemd.m4: New file.
* m4/readutmp.m4 (gl_READUTMP): Require gl_SYSTEMD_CHOICE. Set
READUTMP_LIB. Conditionally define READUTMP_USE_SYSTEMD.
* lib/readutmp.h: For READUTMP_USE_SYSTEMD, include <sys/time.h> and
<utmpx.h>.
(struct gl_utmp): New type.
(UTMP_STRUCT_NAME, UT_TIME_MEMBER, UT_EXIT_E_TERMINATION,
UT_EXIT_E_EXIT, UT_USER, HAVE_STRUCT_XTMP_UT_EXIT,
HAVE_STRUCT_XTMP_UT_ID, HAVE_STRUCT_XTMP_UT_PID): Define differently for
READUTMP_USE_SYSTEMD.
(UT_USER_SIZE): Don't define for READUTMP_USE_SYSTEMD.
(UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, READ_UTMP_SUPPORTED): Define also for
READUTMP_USE_SYSTEMD.
(free_utmp): New declaration.
* lib/readutmp.c: Add new includes for READUTMP_USE_SYSTEMD.
(extract_trimmed_name): Adapt to READUTMP_USE_SYSTEMD.
(get_boot_time_uncached, get_boot_time, guess_pty_name): New functions.
(read_utmp): New implementation for READUTMP_USE_SYSTEMD.
(free_utmp): New function.
* tests/test-readutmp.c (main): At the end, invoke free_utmp.
* modules/readutmp (Files): Add m4/systemd.m4.
(Link): New section.
* modules/readutmp-tests (Makefile.am): Link test-readutmp with
READUTMP_LIB.
* NEWS: Mention the free_utmp function and the READUTMP_LIB link
requirement.
2023-08-01 Bruno Haible <bruno@clisp.org>
readutmp: Trivial simplification.
* lib/readutmp.c (extract_trimmed_name): Use constant UT_USER_SIZE.
2023-07-31 Bruno Haible <bruno@clisp.org>
readutmp tests: Show also the ut_line field.
* tests/test-readutmp.c (main): Add a "Device" column to the table.
Adjust the column widths. Flush stdout before possibly calling abort().
2023-07-31 Bruno Haible <bruno@clisp.org>
readutmp: Fix test failure on OpenBSD.
* lib/readutmp.c (desirable_utmp_entry): On OpenBSD, eliminate entirely
empty entries.
2023-07-31 Bruno Haible <bruno@clisp.org>
readutmp: Revisit portability.
* m4/readutmp.m4 (gl_READUTMP): Don't test for struct utmp.ut_exit.ut_*,
since no platform has these.
* lib/readutmp.h (UT_EXIT_E_TERMINATION): Don't test
HAVE_STRUCT_UTMP_UT_EXIT_UT_TERMINATION.
(UT_EXIT_E_EXIT): Don't test HAVE_STRUCT_UTMP_UT_EXIT_UT_EXIT.
* doc/posix-headers/utmpx.texi: Update platforms list. Mention
portability problems of specific 'struct utmpx' fields.
* doc/glibc-headers/utmp.texi: Update platforms list. Mention
portability problems of specific 'struct utmp' fields.
2023-07-31 Bruno Haible <bruno@clisp.org>
readutmp: Make argument names consistent.
* lib/readutmp.h (UT_TIME_MEMBER, UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT,
UT_USER, UT_PID, UT_TYPE_EQ, UT_TYPE_BOOT_TIME, UT_TYPE_USER_PROCESS,
IS_USER_PROCESS): Rename parameter to 'UT'.
* lib/readutmp.c (desirable_utmp_entry, read_utmp): Rename local
variable 'u' to 'ut'.
2023-07-31 Bruno Haible <bruno@clisp.org>
readutmp: Make the header file and function usable on all platforms.
* lib/readutmp.h (struct gl_utmp, UTMP_STRUCT_NAME, UT_TIME_MEMBER,
UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT, UT_USER): Provide fallback
definitions.
(READ_UTMP_SUPPORTED): New macro.
* lib/readutmp.c (read_utmp) [!READ_UTMP_SUPPORTED]: Provide a dummy
definition.
* modules/readutmp (Depends-on): Add sys_time.
(configure.ac): Remove conditional.
(Makefile.am): Compile readutmp.c on all platforms.
(Include): Include readutmp.h on all platforms.
* tests/test-readutmp.c: Include readutmp.h on all platforms.
(main): Invoke read_utmp on all platforms.
2023-07-30 Bruno Haible <bruno@clisp.org>
readutmp: Add tests.
* tests/test-readutmp.c: New file.
* modules/readutmp-tests: New file.
readutmp: Improve comments. Fix module description.
* lib/readutmp.h (extract_trimmed_name): Add specification comment.
(read_utmp): Move specification comment from lib/readutmp.c to here.
Mention also UTMP_FILE and READ_UTMP_USER_PROCESS.
* lib/readutmp.c (extract_trimmed_name): Fix comment.
* modules/readutmp (Include): Only include the .h file if
HAVE_UTMPX_H || HAVE_UTMP_H.
2023-07-29 Paul Eggert <eggert@cs.ucla.edu>
readutmp: work around glibc utmpx bug
When compiled with _TIME_BITS=64, glibc <utmpx.h> does not work,
because the files use 32-bit time_t and the code passes this to
the user unmodified, but <utmpx.h> defines a struct with 64-bit
time_t. Work around this compatibility bug.
* lib/readutmp.c (copy_utmp_entry): New function.
(read_utmp): Use it.
2023-07-29 Bruno Haible <bruno@clisp.org>
wcsrtombs tests: Renumber tests.
* tests/test-wcsrtombs*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5.
* tests/test-wcsrtombs.c: Update.
* modules/wcsrtombs-tests: Update.
wcsnrtombs tests: Renumber tests.
* tests/test-wcsnrtombs*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5.
* tests/test-wcsnrtombs.c: Update.
* modules/wcsnrtombs-tests: Update.
wcrtomb tests: Renumber tests.
* tests/test-wcrtomb.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-wcrtomb.c: Update.
* tests/test-wcrtomb-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-wcrtomb-w32.c: Update.
* modules/wcrtomb-tests: Update.
mbstoc32s tests: Renumber tests.
* tests/test-mbstoc32s-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbstoc32s.c: Update.
mbsrtoc32s tests: Renumber tests.
* tests/test-mbsrtoc32s-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbsrtoc32s.c: Update.
mbsnrtoc32s tests: Renumber tests.
* tests/test-mbsnrtoc32s-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbsnrtoc32s.c: Update.
mbstowcs tests: Renumber tests.
* tests/test-mbstowcs*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbstowcs.c: Update.
* modules/mbstowcs-tests: Update.
mbsrtowcs tests: Renumber tests.
* tests/test-mbsrtowcs*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbsrtowcs.c: Update.
* modules/mbsrtowcs-tests: Update.
mbsnrtowcs tests: Renumber tests.
* tests/test-mbsnrtowcs*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbsnrtowcs.c: Update.
* modules/mbsnrtowcs-tests: Update.
mbrtoc16 tests: Renumber tests.
* tests/test-mbrtoc16-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbrtoc16.c: Update.
* tests/test-mbrtoc16-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-mbrtoc16-w32.c: Update.
* modules/mbrtoc16-tests: Update.
mbrtoc32 tests: Renumber tests.
* tests/test-mbrtoc32-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbrtoc32.c: Update.
* tests/test-mbrtoc32-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-mbrtoc32-w32.c: Update.
* modules/mbrtoc32-tests: Update.
mbrtowc tests: Renumber tests.
* tests/test-mbrtowc*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbrtowc.c: Update.
* tests/test-mbrtowc-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-mbrtowc-w32.c: Update.
* modules/mbrtowc-tests: Update.
mbrlen tests: Renumber tests.
* tests/test-mbrlen*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-mbrlen.c: Update.
* tests/test-mbrlen-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-mbrlen-w32.c: Update.
* modules/mbrlen-tests: Update.
mbmemcasecoll tests: Renumber tests.
* tests/test-mbmemcasecoll*.sh: Renamed 1 -> 2 -> 3 -> 4.
* tests/test-mbmemcasecoll.c: Update.
* modules/mbmemcasecoll-tests: Update.
mbmemcasecmp tests: Renumber tests.
* tests/test-mbmemcasecmp*.sh: Renamed 1 -> 2 -> 3 -> 4.
* tests/test-mbmemcasecmp.c: Update.
* modules/mbmemcasecmp-tests: Update.
fnmatch tests: Renumber tests.
* tests/test-fnmatch-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-fnmatch-w32.c: Update.
* modules/fnmatch-tests: Update.
c32stombs tests: Renumber tests.
* tests/test-c32stombs-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5.
* tests/test-c32stombs.c: Update.
* modules/c32stombs-tests: Update.
c32srtombs tests: Renumber tests.
* tests/test-c32srtombs-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5.
* tests/test-c32srtombs.c: Update.
* modules/c32srtombs-tests: Update.
c32snrtombs tests: Renumber tests.
* tests/test-c32snrtombs-*.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5.
* tests/test-c32snrtombs.c: Update.
* modules/c32snrtombs-tests: Update.
c32rtomb tests: Renumber tests.
* tests/test-c32rtomb.sh: Renamed 1 -> 2 -> 3 -> 4 -> 5 -> 1.
* tests/test-c32rtomb.c: Update.
* tests/test-c32rtomb-w32-*.sh: Renamed 1 -> 2 -> 3 -> 5 -> 7 -> 4 -> 6
-> 8.
* tests/test-c32rtomb-w32.c: Update.
* modules/c32rtomb-tests: Update.
btoc32 tests: Renumber tests.
* tests/test-btoc32-*.sh: Renamed 1 -> 2 -> 3 -> 1.
* tests/test-btoc32.c: Update.
btowc tests: Renumber tests.
* tests/test-btowc*.sh: Renamed 1 -> 2 -> 3 -> 1.
* tests/test-btowc.c: Update.
* modules/btowc-tests: Update.
2023-07-29 Bruno Haible <bruno@clisp.org>
time-h: Simplify after 2017-05-01 change.
* m4/time_h.m4 (gl_TIME_H_DEFAULTS): Don't provide a default value for
GNULIB_GETTIMEOFDAY.
time-h: Obey GNULIB_POSIXCHECK, not GNULIB_PORTCHECK.
* lib/time.in.h (timespec_get, timespec_getres, time, nanosleep, tzset,
mktime, localtime_r, gmtime_r, localtime, strptime, ctime, strftime,
timegm): Add _GL_WARN_ON_USE invocation.
(asctime, ctime): Don't assume that these functions are declared, since
POSIX obsoletes them.
* m4/time_h.m4 (gl_TIME_H): Test for the declarations of asctime, ctime,
gmtime_r, localtime, localtime_r, mktime, nanosleep, strftime, strptime,
time, timegm, timespec_get, timespec_getres, tzset.
(gl_TIME_H_DEFAULTS): Initialize REPLACE_CTIME, REPLACE_LOCALTIME_R,
REPLACE_MKTIME, REPLACE_NANOSLEEP, REPLACE_STRFTIME, REPLACE_TIMEGM,
REPLACE_TIMESPEC_GET, REPLACE_TZSET with 0 instead of GNULIB_PORTCHECK.
* m4/ctime.m4 (gl_FUNC_CTIME): Don't re-initialize REPLACE_CTIME.
* m4/time_r.m4 (gl_TIME_R): Don't re-initialize REPLACE_LOCALTIME_R.
* m4/mktime.m4 (gl_FUNC_MKTIME): Don't re-initialize REPLACE_MKTIME.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Don't re-initialize
REPLACE_NANOSLEEP.
* m4/strftime-fixes.m4 (gl_FUNC_STRFTIME): Don't re-initialize
REPLACE_STRFTIME.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Don't re-initialize REPLACE_TIMEGM.
* m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET): Don't re-initialize
REPLACE_TIMESPEC_GET.
* m4/tzset.m4 (gl_FUNC_TZSET: Don't re-initialize REPLACE_TZSET.
2023-07-28 Bruno Haible <bruno@clisp.org>
fnmatch: Ensure that on Cygwin ≥ 3.5.0, Cygwin's native fnmatch is used.
Tested by Corinna Vinschen in
<https://cygwin.com/pipermail/cygwin/2023-July/254036.html>.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): On Cygwin, don't force
REPLACE_FNMATCH to 1 just because wchar_t is small.
2023-07-28 Bruno Haible <bruno@clisp.org>
posixcheck: Fix dependencies.
* modules/posixcheck (Depends-on): Add malloc-h, pthread-h, sched,
sys_random, threads-h, uchar, utmp.
2023-07-28 Bruno Haible <bruno@clisp.org>
uchar: Include the necessary snippets.
* lib/uchar.in.h: Add insertion points for _GL_ARG_NONNULL and
_GL_WARN_ON_USE.
* modules/uchar (Depends-on): Add snippet/arg-nonnull,
snippet/warn-on-use.
(Makefile.am): In uchar.h, include the ARG_NONNULL_H and WARN_ON_USE_H
snippets.
2023-07-28 Bruno Haible <bruno@clisp.org>
mbmemcasecmp, mbmemcasecoll: Avoid test failure on MSVC.
* tests/test-mbmemcasecmp.h (test_utf_8): Disable two tests on platforms
that don't have the upper/lower mappings for 'ü'/'Ü'.
* tests/test-mbmemcasecmp.c: Include <wchar.h>, <wctype.h>.
* tests/test-mbmemcasecoll.c: Likewise.
* modules/mbmemcasecmp-tests (Depends-on): Add mbrtowc, wctype-h.
* modules/mbmemcasecoll-tests (Depends-on): Likewise.
2023-07-27 Bruno Haible <bruno@clisp.org>
gnulib-tool: Include ftruncate in testdirs.
* gnulib-tool (func_create_testdir): Don't exclude module 'ftruncate'
from testdirs by default.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2023-07-27 Bruno Haible <bruno@clisp.org>
fnmatch-h, glob-h tests: Fix link errors (regression 2023-07-24).
* modules/fnmatch-h-c++-tests (Makefile.am): Link test-fnmatch-h-c++
with $(LIBUNISTRING).
* modules/glob-h-c++-tests (Makefile.am): Link test-glob-h-c++ with
$(LIBUNISTRING).
fnmatch, glob tests: Fix link errors (regression 2023-07-24).
* modules/fnmatch-tests (Makefile.am): Link test-fnmatch-w32 with the
same libraries as test-fnmatch.
* modules/glob (Link): Add $(LIBUNISTRING).
* modules/glob-tests (Makefile.am): Link test-glob with $(LIBUNISTRING).
2023-07-26 Bruno Haible <bruno@clisp.org>
wctrans: Work around bug on NetBSD.
* lib/wctype.in.h (rpl_wctrans_t, wctrans_t, GNULIB_defined_wctrans_t):
Define if REPLACE_WCTRANS is 1.
(wctrans): Consider REPLACE_WCTRANS.
(towctrans): Override if REPLACE_WCTRANS is 1.
* m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize REPLACE_WCTRANS.
* m4/wctrans.m4 (gl_FUNC_WCTRANS): Define through AC_DEFUN_ONCE. Test
whether wctrans supports the "tolower" character mapping. Set
REPLACE_WCTRANS if not.
* m4/towctrans.m4 (gl_FUNC_TOWCTRANS): Require gl_FUNC_WCTRANS.
* modules/wctrans (Depends-on): Add towctrans.
(configure.ac): Consider REPLACE_WCTRANS.
* modules/towctrans (Files): Add m4/wctrans.m4.
(configure.ac): Override also if REPLACE_WCTRANS is 1.
* modules/wctype-h (Makefile.am): Substitute REPLACE_WCTRANS.
* doc/posix-functions/wctrans.texi: Mention the NetBSD bug.
2023-07-26 Bruno Haible <bruno@clisp.org>
towctrans: Add tests.
* tests/test-towctrans.c: New file, based on
tests/test-c32_apply_mapping.c.
* modules/towctrans-tests: New file.
wctrans: Add tests.
* tests/test-wctrans.c: New file, based on tests/test-c32_get_mapping.c.
* modules/wctrans-tests: New file.
2023-07-26 Bruno Haible <bruno@clisp.org>
fnmatch: Update dependencies.
* modules/fnmatch (Depends-on): Add wctype.
2023-07-26 Bruno Haible <bruno@clisp.org>
wctype: Work around wctype+iswctype bug on MSVC.
* m4/wctype.m4 (gl_FUNC_WCTYPE): In the test program, test also for the
MSVC bug. Update cross-compilation guess.
* doc/posix-functions/wctype.texi: Mention the MSVC bug.
2023-07-26 Bruno Haible <bruno@clisp.org>
wctype: Work around wctype bug on mingw.
* lib/wctype.in.h (rpl_wctype_t, wctype_t, GNULIB_defined_wctype_t):
Define if REPLACE_WCTYPE is 1.
(wctype): Consider REPLACE_WCTYPE.
(iswctype): Override also if REPLACE_WCTYPE is 1.
* lib/iswctype.c: If GNULIB_defined_wctype_t is defined, use the
function-pointer based implementation.
* m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize REPLACE_WCTYPE.
* m4/wctype.m4 (gl_FUNC_WCTYPE): Define through AC_DEFUN_ONCE. Test
whether wctype supports the "blank" character class. Set REPLACE_WCTYPE
if not.
* m4/iswctype.m4 (gl_FUNC_ISWCTYPE): Require gl_FUNC_WCTYPE.
* modules/wctype (Status, Notice): Remove.
(Depends-on): Add iswctype. Consider REPLACE_WCTYPE.
(configure.ac): Consider REPLACE_WCTYPE.
* modules/iswctype (Status, Notice): Remove.
(Files): Add m4/wctype.m4.
(configure.ac): Override also if REPLACE_WCTYPE is 1.
* modules/wctype-h (Makefile.am): Substitute REPLACE_WCTYPE.
* doc/posix-functions/wctype.texi: Mention the mingw bug.
2023-07-26 Bruno Haible <bruno@clisp.org>
wctype-h: Work around iswprint bug on mingw.
* lib/wctype.in.h (rpl_iswprint): On mingw, don't use the system's
iswprint function.
* tests/test-wctype-h.c (main): Verify that this character class
contains the ASCII space but not tab and newline.
* tests/test-c32isprint.c (main): For tab, \v, \f, expect the same value
on native Windows as on other platforms.
* doc/posix-functions/iswprint.texi: Mention the mingw bug.
2023-07-26 Bruno Haible <bruno@clisp.org>
iswblank tests: Add more tests.
* tests/test-iswblank.c (main): Verify that this character class
contains the ASCII space and tab, but not newline.
2023-07-26 Bruno Haible <bruno@clisp.org>
wctype, wctrans: Require a non-NULL argument.
* lib/wctype.in.h: Add placeholder for definition of _GL_ARG_NONNULL.
(wctype, wctrans): Mark with _GL_ARG_NONNULL ((1)).
* modules/wctype-h (Depends-on): Add snippet/arg-nonnull.
(Makefile.am): Substitute $(ARG_NONNULL_H) into wctype.h.
2023-07-25 Bruno Haible <bruno@clisp.org>
iswctype: Add tests.
* tests/test-iswctype.c: New file, based on
tests/test-c32_apply_type_test.c.
* tests/test-c32_apply_type_test.c (main): Update accordingly.
* modules/iswctype-tests: New file.
wctype: Add tests.
* tests/test-wctype.c: New file, based on
tests/test-c32_get_type_test.c.
* modules/wctype-tests: New file.
2023-07-25 Bruno Haible <bruno@clisp.org>
Compile benchmark programs without assertions.
* modules/mbiter-bench-tests (Makefile.am): Compile bench-mbiter with
-DNDEBUG.
* modules/mbiterf-bench-tests (Makefile.am): Compile bench-mbiterf with
-DNDEBUG.
* modules/mbuiter-bench-tests (Makefile.am): Compile bench-mbuiter with
-DNDEBUG.
* modules/mbuiterf-bench-tests (Makefile.am): Compile bench-mbuiterf
with -DNDEBUG.
* modules/mbswidth-bench-tests (Makefile.am): Compile bench-mbswidth
with -DNDEBUG.
* modules/crypto/md5-buffer-tests (Makefile.am): Compile bench-md5 with
-DNDEBUG.
* modules/crypto/sha1-buffer-tests (Makefile.am): Compile bench-sha1
with -DNDEBUG.
* modules/crypto/sha256-buffer-tests (Makefile.am): Compile bench-sha224
and bench-sha256 with -DNDEBUG.
* modules/crypto/sha512-buffer-tests (Makefile.am): Compile bench-sha384
and bench-sha512 with -DNDEBUG.
2023-07-25 Bruno Haible <bruno@clisp.org>
unistr/u8-*: Make Unicode decoder more Unicode Standard compliant.
Based on a remark by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00120.html>.
* tests/unistr/test-u8-mbtouc.c (test_safe_function): Change expected
results for "non-shortest form" or out-of-range byte sequences. Add new
test cases of incomplete well-formed byte sequences.
* tests/unistr/test-u8-mbsnlen.c (main): Likewise.
* lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Reject a first byte in the
range 0xF5..0xF7 as invalid. Distinguish incomplete from invalid byte
sequences correctly. For the former, return only the number of bytes in
the maximal well-formed subpart.
* lib/unistr/u8-mbtouc.c (u8_mbtouc): Likewise.
* lib/unistr/u8-check.c (u8_check): Reject a first byte in the range
0xF5..0xF7 as invalid.
* lib/unistr/u8-mblen.c (u8_mblen): Likewise.
* lib/unistr/u8-mbtoucr.c (u8_mbtoucr): Likewise.
* lib/unistr/u8-strmbtouc.c (u8_strmbtouc): Likewise.
* lib/unistr/u8-strmblen.c (u8_strmblen): Likewise.
* lib/unistr/u8-prev.c (u8_prev): Likewise.
2023-07-24 Bruno Haible <bruno@clisp.org>
fnmatch: Overcome wchar_t limitations.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Set REPLACE_FNMATCH to 1 on
AIX in 32-bit mode.
* lib/fnmatch.c: Include <uchar.h>. Conditionally include unistr.h.
(UCHAR_TO_WCHAR): Renamed from BTOWC.
(WCHAR_T, WINT_T, BTOWC, MBSRTOWCS, WCSLEN, WCSCAT, WMEMPCPY, WMEMCHR,
TOWLOWER, WCTYPE_T, WCTYPE, ISWCTYPE): New macros.
(IS_CHAR_CLASS): Use WCTYPE instead of wctype.
(UCHAR_TO_WCHAR): Use BTOWC instead of btowc.
(FOLD): Use TOWLOWER instead of towlower.
(CHAR): Use WCHAR_T instead of wchar_t.
(UCHAR, INT): Use WINT_T instead of wint_t.
(STRLEN): Use WCSLEN instead of wcslen.
(STRCAT): Use WCSCAT instead of wcscat.
(MEMPCPY): Use WMEMPCPY instead of wmempcpy.
(MEMCHR): Use WMEMCHR instead of wmemchr.
(is_char_class): Use WCTYPE_T instead of wctype_t, WCHAR_T instead of
wchar_t, WCTYPE instead of wctype.
(fnmatch): Use WCHAR_T instead of wchar_t, MBSRTOWCS instead of
mbsrtowcs.
* lib/fnmatch_loop.c (FCT): Use WCTYPE_T instead of wctype_t, ISWCTYPE
instead of iswctype. Update for renamed BTOWC.
* modules/fnmatch (Depends-on): Add btoc32, c32tolower,
c32_get_type_test, c32_apply_type_test, mbsrtoc32s, unistr/u32-chr,
unistr/u32-pcpy, unistr/u32-strcat, unistr/u32-strlen.
(Link): Add $(LIBUNISTRING).
* modules/fnmatch-tests (Makefile.am): Link test-fnmatch with
$(LIBUNISTRING).
* doc/posix-functions/fnmatch.texi: Move the Cygwin, mingw, MSVC, AIX
bug descriptions to the "fixed by Gnulib" section.
2023-07-24 Bruno Haible <bruno@clisp.org>
fnmatch: Update doc regarding Solaris 10.
* doc/posix-functions/fnmatch.texi: Move the Solaris 10 bug description
to the "fixed by Gnulib" section.
2023-07-23 Paul Eggert <eggert@cs.ucla.edu>
timespec_get: port to Ubuntu 23.04
* m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET):
Default REPLACE_TIMESPEC_GET to 0, fixing a typo.
2023-07-23 Bruno Haible <bruno@clisp.org>
unistr/u32-strcat: Relicense under LGPLv2+.
* modules/unistr/u32-strcat (License): Change to LGPLv2+.
* lib/unistr/u32-strcat.c: Update license notice.
* lib/unistr/u-strcat.h: Likewise.
2023-07-23 Bruno Haible <bruno@clisp.org>
unistr/u32-strlen: Relicense under LGPLv2+.
* modules/unistr/u32-strlen (License): Change to LGPLv2+.
* lib/unistr/u32-strlen.c: Update license notice.
2023-07-23 Bruno Haible <bruno@clisp.org>
unistr/u32-chr: Relicense under LGPLv2+.
* modules/unistr/u32-chr (License): Change to LGPLv2+.
* lib/unistr/u32-chr.c: Update license notice.
2023-07-23 Paul Eggert <eggert@cs.ucla.edu>
utimecmp: clean up old spare1 cruft
* lib/utimecmp.c: Remove a ‘defined HAVE_STRUCT_STAT_ST_SPARE1’
that has been false since 2007.
2023-07-23 Bruno Haible <bruno@clisp.org>
fnmatch tests: Avoid a test failure on FreeBSD.
* tests/test-fnmatch.c (main): In a GB18030 locale, test the towupper()
mapping of 'ö', not of 'ü'.
2023-07-23 Bruno Haible <bruno@clisp.org>
fnmatch: Work around bugs on FreeBSD, NetBSD, Solaris, Cygwin, Android.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Add three more test cases to
the test program. Reorganize its return values.
* tests/test-fnmatch.c (main): Reflect the changes done in fnmatch.m4.
* doc/posix-functions/fnmatch.texi: Move the corresponding bug
descriptions to the "fixed by Gnulib" section.
2023-07-23 Bruno Haible <bruno@clisp.org>
fnmatch, fnmatch-gnu: Document known bugs.
* doc/posix-headers/fnmatch.texi: Mention the macros FNM_LEADING_DIR,
FNM_CASEFOLD, FNM_EXTMATCH, FNM_FILE_NAME.
* doc/posix-functions/fnmatch.texi: Reference the glibc documentation
and the Linux man page. Document the effects of the two modules and all
the known bugs in detail.
2023-07-22 Bruno Haible <bruno@clisp.org>
fnmatch tests: Add many more test cases.
* lib/fnmatch.in.h (GNULIB_defined_fnmatch_function): New macro.
* tests/test-fnmatch.c: Add many more test cases.
* tests/test-fnmatch-1.sh: New file, based on tests/test-mbrtoc32-5.sh.
* tests/test-fnmatch-2.sh: New file, based on tests/test-mbrtoc32-1.sh.
* tests/test-fnmatch-3.sh: New file, based on tests/test-mbrtoc32-2.sh.
* tests/test-fnmatch-4.sh: New file, based on tests/test-mbrtoc32-3.sh.
* tests/test-fnmatch-5.sh: New file, based on tests/test-mbrtoc32-4.sh.
* tests/test-fnmatch-w32.c: New file, based on tests/test-mbrtoc32-w32.c
and tests/test-fnmatch.c.
* tests/test-fnmatch-w32-1.sh: New file, based on
tests/test-mbrtoc32-w32-1.sh.
* tests/test-fnmatch-w32-2.sh: New file, based on
tests/test-mbrtoc32-w32-2.sh.
* tests/test-fnmatch-w32-3.sh: New file, based on
tests/test-mbrtoc32-w32-3.sh.
* tests/test-fnmatch-w32-4.sh: New file, based on
tests/test-mbrtoc32-w32-4.sh.
* tests/test-fnmatch-w32-5.sh: New file, based on
tests/test-mbrtoc32-w32-5.sh.
* tests/test-fnmatch-w32-6.sh: New file, based on
tests/test-mbrtoc32-w32-6.sh.
* tests/test-fnmatch-w32-7.sh: New file, based on
tests/test-mbrtoc32-w32-7.sh.
* modules/fnmatch-tests: Add the new program and shell scripts.
2023-07-22 Bruno Haible <bruno@clisp.org>
doc: Mention a wctype bug.
* doc/posix-functions/wctype.texi: Mention a bug on mingw.
2023-07-21 Bruno Haible <bruno@clisp.org>
unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: Add tests.
* tests/unistr/test-pcpy.h: New file, based on tests/unistr/test-cpy.h.
* tests/unistr/test-u8-pcpy.c: New file, based on
tests/unistr/test-u8-cpy.c.
* tests/unistr/test-u16-pcpy.c: New file, based on
tests/unistr/test-u16-cpy.c.
* tests/unistr/test-u32-pcpy.c: New file, based on
tests/unistr/test-u32-cpy.c.
* modules/unistr/u8-pcpy-tests: New file, based on
modules/unistr/u8-cpy-tests.
* modules/unistr/u16-pcpy-tests: New file, based on
modules/unistr/u16-cpy-tests.
* modules/unistr/u32-pcpy-tests: New file, based on
modules/unistr/u32-cpy-tests.
unistr/u8-pcpy, unistr/u16-pcpy, unistr/u32-pcpy: New modules.
* lib/unistr.in.h (u8_pcpy, u16_pcpy, u32_pcpy): New declarations.
* lib/unistr/u-pcpy.h: New file, based on lib/wmempcpy.c.
* lib/unistr/u8-pcpy.c: New file, based on lib/unistr/u8-cpy.c.
* lib/unistr/u16-pcpy.c: New file, based on lib/unistr/u16-cpy.c.
* lib/unistr/u32-pcpy.c: New file, based on lib/unistr/u32-cpy.c.
* modules/unistr/u8-pcpy: New file, based on modules/unistr/u8-cpy.
* modules/unistr/u16-pcpy: New file, based on modules/unistr/u16-cpy.
* modules/unistr/u32-pcpy: New file, based on modules/unistr/u32-cpy.
2023-07-20 Bruno Haible <bruno@clisp.org>
error-h: Fix dependencies.
Reported by <cbh34680@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00111.html>.
* modules/error-h (Depends-on): Add include_next.
2023-07-20 Pádraig Brady <P@draigBrady.com>
fts: fix compilation errors with fts_cross_check()
* lib/fts.c: Fix printf format chars.
* lib/fts_.h: Provide a declaration for users.
2023-07-19 Bruno Haible <bruno@clisp.org>
Document migration path for obsolescent functions.
* doc/glibc-functions/timespec_get.texi: Add reference to ISO C.
* doc/posix-functions/_tolower.texi: Recommend use of tolower.
* doc/posix-functions/_toupper.texi: Recommend use of toupper.
* doc/posix-functions/asctime.texi: Recommend use of strftime.
* doc/posix-functions/asctime_r.texi: Likewise.
* doc/posix-functions/ctime.texi: Recommend use of localtime_r and
strftime.
* doc/posix-functions/ctime_r.texi: Likewise.
* doc/posix-functions/ftw.texi: Recommend use of fts.
* doc/posix-functions/getitimer.texi: Recommend use of timer_gettime.
* doc/posix-functions/gets.texi: Recommend use of fgets.
* doc/posix-functions/gettimeofday.texi: Recommend use of gettime or
timespec_get.
* doc/posix-functions/inet_addr.texi: Recommend use of inet_pton.
* doc/posix-functions/inet_ntoa.texi: Recommend use of inet_ntop.
* doc/posix-functions/pthread_getconcurrency.texi: Recommend no-op.
* doc/posix-functions/pthread_setconcurrency.texi: Recommend no-op.
* doc/posix-functions/rand_r.texi: Recommend use of random_r.
* doc/posix-functions/setitimer.texi: Recommend use of timer_create and
timer_settime.
* doc/posix-functions/setpgrp.texi: Recommend use of setpgid or setsid.
* doc/posix-functions/sighold.texi: Recommend use of sigprocmask.
* doc/posix-functions/sigignore.texi: Recommend use of sigaction.
* doc/posix-functions/siginterrupt.texi: Recommend use of sigaction.
* doc/posix-functions/sigpause.texi: Recommend use of sigsuspend.
* doc/posix-functions/sigrelse.texi: Recommend use of sigprocmask.
* doc/posix-functions/sigset.texi: Recommend use of sigaction.
* doc/posix-functions/tempnam.texi: Recommend use of mkstemp.
* doc/posix-functions/ulimit.texi: Recommend use of getrlimit and
setrlimit.
* doc/posix-functions/utime.texi: Recommend use of utimens.
2023-07-19 Paul Eggert <eggert@cs.ucla.edu>
Document POSIX obsolescence
* doc/posix-functions/_longjmp.texi, doc/posix-functions/_setjmp.texi:
* doc/posix-functions/_tolower.texi, doc/posix-functions/_toupper.texi:
* doc/posix-functions/asctime.texi, doc/posix-functions/asctime_r.texi:
* doc/posix-functions/ctime.texi, doc/posix-functions/ctime_r.texi:
* doc/posix-functions/encrypt.texi, doc/posix-functions/ftw.texi:
* doc/posix-functions/getitimer.texi, doc/posix-functions/gets.texi:
* doc/posix-functions/gettimeofday.texi:
* doc/posix-functions/inet_addr.texi:
* doc/posix-functions/inet_ntoa.texi, doc/posix-functions/isascii.texi:
* doc/posix-functions/pthread_getconcurrency.texi:
* doc/posix-functions/pthread_setconcurrency.texi:
* doc/posix-functions/rand_r.texi, doc/posix-functions/setitimer.texi:
* doc/posix-functions/setkey.texi, doc/posix-functions/setpgrp.texi:
* doc/posix-functions/sighold.texi, doc/posix-functions/sigignore.texi:
* doc/posix-functions/siginterrupt.texi:
* doc/posix-functions/sigpause.texi, doc/posix-functions/sigrelse.texi:
* doc/posix-functions/sigset.texi, doc/posix-functions/tempnam.texi:
* doc/posix-functions/toascii.texi, doc/posix-functions/ulimit.texi:
* doc/posix-functions/utime.texi:
Update as per draft 3 of POSIX 10003.1-202x.
2023-07-19 Paul Eggert <eggert@cs.ucla.edu>
Don’t worry about Version 7 tolower
Some code ported back to pre-C89 libraries where tolower (C) had
undefined behavior if C is not an upper case character.
Nowadays that function is _tolower which is itself obsolete,
and much Gnulib code already assumes this part of C89 anyway.
Assume C89 or better tolower, which simplifies the code
and should improve performance slightly.
* lib/mbmemcasecmp.c, lib/mbmemcasecoll.c, lib/mbscasecmp.c:
* lib/mbscasestr.c, lib/mbsncasecmp.c, lib/mbspcasecmp.c:
* lib/strcasecmp.c, lib/strcasestr.c, lib/strncasecmp.c:
(TOLOWER): Remove. All uses replaced by tolower.
2023-07-19 Bruno Haible <bruno@clisp.org>
c32swidth, mbszero: Fix file list.
* modules/c32swidth (Files): Add locale-ja.m4, locale-zh.m4, codeset.m4.
* modules/mbszero (Files): Likewise.
2023-07-19 Bruno Haible <bruno@clisp.org>
wcsnrtombs: Fix file list.
* modules/wcsnrtombs (Files): Add locale-fr.m4.
2023-07-19 Bruno Haible <bruno@clisp.org>
mbsnrtowcs: Fix file list.
* modules/mbsnrtowcs (Files): Add locale-fr.m4, codeset.m4.
2023-07-19 Bruno Haible <bruno@clisp.org>
mbrtoc16: Fix file list.
* modules/mbrtoc16 (Files): Add locale-zh.m4.
2023-07-19 Bruno Haible <bruno@clisp.org>
mbrlen: Fix file list.
* modules/mbrlen (Files): Add locale-fr.m4, locale-ja.m4, locale-zh.m4,
codeset.m4.
2023-07-18 Paul Eggert <eggert@cs.ucla.edu>
mbiterf, mbuiterf: port to strict C17
I ran into this problem on NetBSD 9.3.
* lib/mbiterf.h (mbiterf_next) [!GNULIB_MBRTOC32_REGULAR]:
* lib/mbuiterf.h (mbuiterf_next) [!GNULIB_MBRTOC32_REGULAR]:
Don’t label a declaration.
2023-07-18 Bruno Haible <bruno@clisp.org>
mbiter, mbiterf, mbuiter, mbuiterf: Force inlining with clang.
* lib/mbiter.h (MBITER_INLINE): Use _GL_ATTRIBUTE_ALWAYS_INLINE.
* lib/mbiterf.h (MBITERF_INLINE): Likewise.
* lib/mbuiter.h (MBUITER_INLINE): Likewise.
* lib/mbuiterf.h (MBUITERF_INLINE): Likewise.
2023-07-18 Bruno Haible <bruno@clisp.org>
mbsspn: Optimize.
* lib/mbsspn.c: Include mbuiterf.h instead of mbuiter.h.
(mbsspn): Use mbuif_* macros instead of mbui_* macros.
* modules/mbsspn (Depends-on): Add mbuiterf. Remove mbuiter.
mbscspn: Optimize.
* lib/mbscspn.c: Include mbuiterf.h instead of mbuiter.h.
(mbscspn): Use mbuif_* macros instead of mbui_* macros.
* modules/mbscspn (Depends-on): Add mbuiterf. Remove mbuiter.
mbspbrk: Optimize.
* lib/mbspbrk.c: Include mbuiterf.h instead of mbuiter.h.
(mbspbrk): Use mbuif_* macros instead of mbui_* macros.
* modules/mbspbrk (Depends-on): Add mbuiterf. Remove mbuiter.
mbspcasecmp: Optimize.
* lib/mbspcasecmp.c: Include mbuiterf.h instead of mbuiter.h.
(mbspcasecmp): Use mbuif_* macros instead of mbui_* macros.
* modules/mbspcasecmp (Depends-on): Add mbuiterf. Remove mbuiter.
mbsncasecmp: Optimize.
* lib/mbsncasecmp.c: Include mbuiterf.h instead of mbuiter.h.
(mbsncasecmp): Use mbuif_* macros instead of mbui_* macros.
* modules/mbsncasecmp (Depends-on): Add mbuiterf. Remove mbuiter.
mbscasecmp: Optimize.
* lib/mbscasecmp.c: Include mbuiterf.h instead of mbuiter.h.
(mbscasecmp): Use mbuif_* macros instead of mbui_* macros.
* modules/mbscasecmp (Depends-on): Add mbuiterf. Remove mbuiter.
mbssep: Optimize.
* lib/mbssep.c: Include mbuiterf.h instead of mbuiter.h.
(mbssep): Use mbuif_* macros instead of mbui_* macros.
* modules/mbssep (Depends-on): Add mbuiterf. Remove mbuiter.
mbsrchr: Optimize.
* lib/mbsrchr.c: Include mbuiterf.h instead of mbuiter.h.
(mbsrchr): Use mbuif_* macros instead of mbui_* macros.
* modules/mbsrchr (Depends-on): Add mbuiterf. Remove mbuiter.
mbschr: Optimize.
* lib/mbschr.c: Include mbuiterf.h instead of mbuiter.h.
(mbschr): Use mbuif_* macros instead of mbui_* macros.
* modules/mbschr (Depends-on): Add mbuiterf. Remove mbuiter.
mbslen: Optimize.
* lib/mbslen.c: Include mbuiterf.h instead of mbuiter.h.
(mbslen): Use mbuif_* macros instead of mbui_* macros.
* modules/mbslen (Depends-on): Add mbuiterf. Remove mbuiter.
mbuiterf: Add a benchmark.
* tests/bench-mbuiterf.c: New file, based on tests/bench-mbuiter.c.
* modules/mbuiterf-bench-tests: New file, based on
modules/mbuiter-bench-tests.
mbuiterf: New module.
* lib/mbuiterf.h: New file, based on lib/mbuiter.h.
* lib/mbuiterf.c: New file, based on lib/mbuiter.c.
* modules/mbuiterf: New file, based on modules/mbuiter.
2023-07-18 Bruno Haible <bruno@clisp.org>
mbiterf: Fix compiler warnings.
* lib/mbiterf.h (mbiterf_next): Use C99 designated initializer syntax.
* tests/bench-mbiterf.c (do_test): Use a 'const char *' pointer.
trim: Optimize.
* lib/trim.c: Include mbiterf.h instead of mbiter.h.
(trim2): Use mbif_* macros instead of mbi_* macros.
* modules/trim (Depends-on): Add mbiterf. Remove mbiter.
mbmemcasecmp: Optimize.
* lib/mbmemcasecmp.c: Include mbiterf.h instead of mbiter.h.
(mbmemcasecmp): Use mbif_* macros instead of mbi_* macros.
* modules/mbmemcasecmp (Depends-on): Add mbiterf. Remove mbiter.
mbsnlen: Optimize.
* lib/mbsnlen.c: Include mbiterf.h instead of mbiter.h.
(mbsnlen): Use mbif_* macros instead of mbi_* macros.
* modules/mbsnlen (Depends-on): Add mbiterf. Remove mbiter.
mbiterf: Add a benchmark.
* tests/bench-mbiterf.c: New file, based on tests/bench-mbiter.c.
* modules/mbiterf-bench-tests: New file, based on
modules/mbiter-bench-tests.
mbiterf: New module.
* lib/mbiterf.h: New file, based on lib/mbiter.h.
* lib/mbiterf.c: New file, based on lib/mbiter.c.
* modules/mbiterf: New file, based on modules/mbiter.
2023-07-18 Bruno Haible <bruno@clisp.org>
mbstok_r: Simplify dependencies.
* lib/mbstok_r.c: Include <stdlib.h> instead of mbuiter.h.
* modules/mbstok_r (Depends-on): Remove mbuiter.
2023-07-17 Simon Josefsson <simon@josefsson.org>
announce-gen: Allow using local git user.name.
* build-aux/announce-gen (readable_interval): Remove --global
parameter to 'git config' call.
2023-07-17 Bruno Haible <bruno@clisp.org>
mbuiter: Optimize.
* lib/mbuiter.h (struct mbuiter_multi): Add cur_max field.
(mbui_init): Initialize it.
(mbuiter_multi_next): Use it instead of MB_CUR_MAX.
(mbuiter_multi_copy): Update.
2023-07-17 Bruno Haible <bruno@clisp.org>
mbchar: Reduce size of 'struct mbchar'.
* modules/mbfile (configure.ac): Define GNULIB_MBFILE as an indicator.
* lib/mbchar.h (MBCHAR_BUF_SIZE): Set to 4.
(struct mbchar): Disable member 'buf' if the module 'mbfile' is not in
use.
(mb_setascii): Disable if the module 'mbfile' is not in use.
(mb_copy): Update.
2023-07-17 Bruno Haible <bruno@clisp.org>
mbszero: Fix for Minix.
* lib/wchar.in.h: (_GL_MBSTATE_INIT_SIZE): Don't define on Minix.
(_GL_MBSTATE_ZERO_SIZE): Define to 4 on Minix.
2023-07-17 Bruno Haible <bruno@clisp.org>
mbszero: Source code tweaks.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00084.html>.
* lib/wchar.in.h: Comment changes.
(_GL_MBSTATE_INIT_SIZE): Don't define on NetBSD, Solaris, native
Windows. Use a safe default at the end.
(_GL_MBSTATE_ZERO_SIZE): Don't define on AIX, IRIX, Solaris, native
Windows. Use a safe default at the end.
* lib/mbrtoc16.c: Update comments accordingly.
2023-07-16 Bruno Haible <bruno@clisp.org>
dfa: Optimize clearing an mbstate_t.
* lib/dfa.c (mbszero) [GAWK]: Add fallback definition.
(mbs_to_wchar, lex, addtok_wc, dfaexec_main): Use mbszero.
* modules/dfa (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
uchar-c23: Optimize clearing an mbstate_t.
* lib/lc-charset-unicode.c (locale_encoding_to_unicode,
unicode_to_locale_encoding): Use mbszero.
* modules/uchar-c23 (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
quotearg: Optimize clearing an mbstate_t.
* lib/quotearg.c: Include <wchar.h>.
(quotearg_buffer_restyled): Use mbszero.
* modules/quotearg (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
vasnprintf, vasnwprintf: Optimize clearing an mbstate_t.
* lib/vasnprintf.c (VASNPRINTF): Use mbszero.
* modules/vasnprintf (Depends-on): Add mbszero.
* modules/vasnwprintf (Depends-on): Likewise.
* modules/c-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbmemcasecoll: Optimize clearing an mbstate_t.
* lib/mbmemcasecoll.c (apply_c32tolower): Use mbszero.
* modules/mbmemcasecoll (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbswidth: Optimize clearing an mbstate_t.
* lib/mbswidth.c (mbsnwidth): Use mbszero.
* modules/mbswidth (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbfile: Optimize clearing an mbstate_t.
* lib/mbfile.h (mbfile_multi_getc, mbf_init): Use mbszero.
* modules/mbfile (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbuiter: Optimize clearing an mbstate_t.
* lib/mbuiter.h: Include <wchar.h>.
(mbuiter_multi_next, mbuiter_multi_copy, mbui_init): Use mbszero.
* modules/mbuiter (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbiter: Optimize clearing an mbstate_t.
* lib/mbiter.h: Include <wchar.h>.
(mbiter_multi_next, mbiter_multi_copy, mbi_init): Use mbszero.
* modules/mbiter (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
c32stombs: Optimize clearing an mbstate_t.
* lib/c32stombs.c (c32stombs): Use mbszero.
* lib/uchar.in.h (c32stombs): Likewise.
* modules/c32stombs (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbstoc32s: Optimize clearing an mbstate_t.
* lib/mbstoc32s.c (mbstoc32s): Use mbszero.
* lib/uchar.in.h (mbstoc32s): Likewise.
* modules/mbstoc32s (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbstowcs: Optimize clearing an mbstate_t.
* lib/mbstowcs.c (mbstowcs): Use mbszero.
* modules/mbstowcs (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
c32tob: Optimize clearing an mbstate_t.
* lib/c32tob.c (c32tob): Use mbszero.
* modules/c32tob (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
wctomb: Optimize clearing an mbstate_t.
* lib/wctomb-impl.h (wctomb): Use mbszero.
* modules/wctomb (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
btoc32: Optimize clearing an mbstate_t.
* lib/btoc32.c: Include <wchar.h>.
(btoc32): Use mbszero.
* modules/btoc32 (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
btowc: Optimize clearing an mbstate_t.
* lib/btowc.c (btowc): Use mbszero.
* modules/btowc (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbrtoc32: Optimize clearing an mbstate_t.
* lib/mbrtoc32.c (mbrtoc32): Use mbszero.
* modules/mbrtoc32 (Depends-on): Add mbsinit, mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbtowc: Optimize clearing an mbstate_t.
* lib/mbtowc-impl.h (mbtowc): Use mbszero.
* modules/mbtowc (Depends-on): Add mbszero.
2023-07-16 Bruno Haible <bruno@clisp.org>
mbszero: New module.
* lib/wchar.in.h: Include <string.h>.
(_GL_MBSTATE_INIT_SIZE, _GL_MBSTATE_ZERO_SIZE): New macros.
(mbszero): New declaration.
* lib/mbrtoc16.c: Update comments.
* lib/mbszero.c: New file.
* m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_MBSZERO.
* modules/wchar (Depends-on): Add extern-inline.
(Makefile.am): Substitute GNULIB_MBSZERO.
* modules/mbszero: New file.
2023-07-15 Bruno Haible <bruno@clisp.org>
mbsinit: Fix module description.
* modules/mbsinit (Files): Add m4/mbrtowc.m4.
2023-07-15 Bruno Haible <bruno@clisp.org>
c32_apply_type_test: Fix compilation error with GCC < 9.
* lib/uchar.in.h (c32_apply_type_test) [_GL_WCHAR_T_IS_UCS4]: Remove
_GL_ARG_NONNULL attribute.
2023-07-13 Bruno Haible <bruno@clisp.org>
mbchar: Optimize is_basic.
* lib/mbchar.h (is_basic_table): Remove declaration.
(is_basic) [IS_BASIC_ASCII]: Define through a simple range test.
* lib/mbchar.c (is_basic_table): Remove array.
localcharset: Clean up locale encodings used by glibc.
* lib/localcharset.h: Remove VISCII from the list, since never supported
in glibc/localedata/SUPPORTED. JOHAB is not supported by glibc any more
since 2000-09-25. TCVN5712-1 is not supported by glibc any more since
2012-05-21.
2023-07-13 Bruno Haible <bruno@clisp.org>
doc: Mention c32_get_mapping, c32_apply_mapping.
* doc/posix-functions/wctrans.texi: Mention c32_get_mapping.
* doc/posix-functions/towctrans.texi: Mention c32_apply_mapping.
* doc/strings.texi (Comparison of character APIs): Mention both.
c32_apply_mapping: Add tests.
* tests/test-c32_apply_mapping.c: New file.
* modules/c32_apply_mapping-tests: New file.
c32_apply_mapping: New module.
* lib/uchar.in.h (c32_apply_mapping): New declaration.
* lib/c32_apply_mapping.c: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32_APPLY_MAPPING.
* modules/uchar (Makefile.am): Substitute GNULIB_C32_APPLY_MAPPING.
* modules/c32_apply_mapping: New file.
c32_get_mapping: Add tests.
* tests/test-c32_get_mapping.c: New file.
* modules/c32_get_mapping-tests: New file.
c32_get_mapping: New module.
* lib/uchar.in.h (c32_mapping_t): New type.
(c32_get_mapping): New declaration.
* lib/c32_get_mapping.c: New file, based on lib/wctrans-impl.h.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32_GET_MAPPING.
* modules/uchar (Makefile.am): Substitute GNULIB_C32_GET_MAPPING.
* modules/c32_get_mapping: New file.
towctrans: Relax license.
* modules/towctrans (License): Change to LGPLv2+.
* lib/towctrans.c: Update license notice.
* lib/towctrans-impl.h: Likewise.
wctrans: Relax license.
* modules/wctrans (License): Change to LGPLv2+.
* lib/wctrans.c: Update license notice.
* lib/wctrans-impl.h: Likewise.
2023-07-12 Bruno Haible <bruno@clisp.org>
doc: Mention c32_get_type_test, c32_apply_type_test.
* doc/posix-functions/wctype.texi: Mention c32_get_type_test.
* doc/posix-functions/iswctype.texi: Mention c32_apply_type_test.
* doc/strings.texi (Comparison of character APIs): Mention both.
c32_apply_type_test: Add tests.
* tests/test-c32_apply_type_test.c: New file.
* modules/c32_apply_type_test-tests: New file.
c32_apply_type_test: New module.
* lib/uchar.in.h (c32_apply_type_test): New declaration.
* lib/c32_apply_type_test.c: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32_APPLY_TYPE_TEST.
* modules/uchar (Makefile.am): Substitute GNULIB_C32_APPLY_TYPE_TEST.
* modules/c32_apply_type_test: New file.
c32_get_type_test: Add tests.
* tests/test-c32_get_type_test.c: New file.
* modules/c32_get_type_test-tests: New file.
c32_get_type_test: New module.
* lib/uchar.in.h (c32_type_test_t): New type.
(c32_get_type_test): New declaration.
* lib/c32_get_type_test.c: New file, based on lib/wctype-impl.h.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32_GET_TYPE_TEST.
* modules/uchar (Makefile.am): Substitute GNULIB_C32_GET_TYPE_TEST.
* modules/c32_get_type_test: New file.
iswctype: Relax license.
* modules/iswctype (License): Change to LGPLv2+.
* lib/iswctype.c: Update license notice.
* lib/iswctype-impl.h: Likewise.
wctype: Relax license.
* modules/wctype (License): Change to LGPLv2+.
* lib/wctype.c: Update license notice.
* lib/wctype-impl.h: Likewise.
2023-07-12 Bruno Haible <bruno@clisp.org>
mbiter, mbuiter: Small optimization.
* lib/mbiter.h: Optimize away the in_shift field when the module
'mbrtoc32-regular' is in use.
* lib/mbuiter.h: Likewise.
2023-07-12 Gavin Smith <gavinsmith0123@gmail.com>
gendocs: support chapter- and section-level split
* doc/gendocs_template: Add lines to mark parts of file to output
only when splitting HTML by node.
Remove obsolete comment about ranges of years in copyright notice
(as per Karl).
* build-aux/gendocs.sh
[!texi2html]: Strip out parts of the template depending on --split.
[texi2html] Include all of the template as before.
2023-07-11 Bruno Haible <bruno@clisp.org>
mbsrtoc32s, mbsnrtoc32s: Small optimization.
* lib/mbsrtoc32s.c (USES_C32): Set to 0 when the module
'mbrtoc32-regular' is in use.
* lib/mbsnrtoc32s.c (USES_C32): Likewise.
2023-07-11 Bruno Haible <bruno@clisp.org>
mbswidth: Add a benchmark.
* tests/bench-mbswidth.c: New file, based on tests/bench-mbiter.c.
* modules/mbswidth-bench-tests: New file.
mbuiter: Add a benchmark.
* tests/bench-mbuiter.c: New file, based on tests/bench-mbiter.c.
* modules/mbuiter-bench-tests: New file.
mbiter: Add a benchmark.
* tests/bench-mbiter.c: New file.
* tests/bench-multibyte.h: New file.
* modules/mbiter-bench-tests: New file.
tests: Create new file bench.h.
* tests/bench.h: New file, extracted from tests/bench-digest.h.
* tests/bench-digest.h: Include it.
* modules/crypto/md5-buffer-tests (Files): Add tests/bench.h.
* modules/crypto/sha1-buffer-tests (Files): Likewise.
* modules/crypto/sha256-buffer-tests (Files): Likewise.
* modules/crypto/sha512-buffer-tests (Files): Likewise.
2023-07-11 Bruno Haible <bruno@clisp.org>
Optimize away some mbsinit calls.
* lib/mbiter.h (mbiter_multi_next): When the module 'mbrtoc32-regular'
is in use, don't invoke mbsinit and don't compare the mbrtoc32 result
against (size_t)(-3).
* lib/mbuiter.h (mbuiter_multi_next): Likewise.
* lib/mbfile.h (mbfile_multi_getc): Likewise.
* lib/mbswidth.c (mbsnwidth): Likewise.
* lib/mbmemcasecoll.c (apply_c32tolower): Likewise.
* lib/quotearg.c (quotearg_buffer_restyled): Likewise.
2023-07-11 Bruno Haible <bruno@clisp.org>
Fix build errors on Linux/hppa.
* modules/math (Makefile.am): Split long pipe command into several
smaller commands.
* modules/pthread-h (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/unictype/base (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
2023-07-11 Paul Eggert <eggert@cs.ucla.edu>
quotearg: update Solaris-related comments
* doc/solaris-versions: Modernize.
* lib/quotearg.c: Update comments.
2023-07-10 Bruno Haible <bruno@clisp.org>
dfa: Overcome wchar_t limitations.
* lib/localeinfo.h: Include <uchar.h>. Add special definitions for GAWK.
(case_folded_counterparts): Change array element type to char32_t.
* lib/localeinfo.c: Include <uchar.h>. Add special definitions for GAWK.
(is_using_utf8, init_localeinfo): Use mbrtoc32 instead of mbrtowc.
(lonesome_lower): Change element type to 'unsigned short'.
(case_folded_counterparts): Change array element type to char32_t. Use
c32toupper instead of towupper. Use c32tolower instead of towlower.
* lib/dfa.c: Include <uchar.h>. Add special definitions for GAWK.
(struct mb_char_classes): Change element type of 'chars' to char32_t.
(mbs_to_wchar): Use mbrtoc32 instead of mbrtowc.
(setbit_wc): Change type of first argument to char32_t. Use c32tob
instead of wctob.
(parse_bracket_exp): Update.
(lex): Use c32isprint instead of iswprint. Use c32isspace instead of
iswspace. Use c32rtomb instead of a %lc directive.
(addtok_wc): Use c32rtomb instead of wcrtomb.
(atom): Update.
* modules/dfa (Depends-on): Remove wctype-h. Add uchar,
mbrtoc32-regular, c32rtomb, c32tob, c32tolower, c32toupper, c32isprint,
c32isspace.
(Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/dfa-tests (Makefile.am): Link test-dfa-match-aux with
$(LIBUNISTRING) $(LIBC32CONV).
* NEWS: Mention the change.
2023-07-10 Bruno Haible <bruno@clisp.org>
mbrtoc32-regular: Add tests.
* tests/test-mbrtoc32-regular.c: New file.
* modules/mbrtoc32-regular-tests: New file.
mbrtoc32-regular: New module.
* modules/mbrtoc32-regular: New file.
* lib/mbrtoc32.c (mbrtoc32): If the module 'mbrtoc32-regular' is present
and the system's mbrtoc32 returned a char32_t, clear the mbstate_t.
* doc/posix-functions/mbrtoc32.texi: Mention the new module.
2023-07-10 Bruno Haible <bruno@clisp.org>
Apply the last change to all locale-*.m4 files.
* m4/locale-ar.m4 (gt_LOCALE_AR): Reject locale name that might cause
trouble with sh or make.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
2023-07-09 Paul Eggert <eggert@cs.ucla.edu>
c32width: protect against bad configure args
Avoid ‘test’ misuse with ‘./configure gt_cv_locale_fr=""’.
Possible problem of this sort reported by Angelo Graziosi in:
https://lists.gnu.org/r/emacs-devel/2023-07/msg00329.html
* m4/locale-fr.m4 (gt_LOCALE_FR_UTF8, gt_LOCALE_FR_UTF8):
* m4/locale-ja.m4 (gt_LOCALE_JA):
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN):
Reject locale names that might cause trouble with sh or make.
2023-07-06 Bruno Haible <bruno@clisp.org>
wcscmp: Work around a glibc bug.
Reported by مصعب الزعبي (Mosab Al-Zoubi) <moceap@hotmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-07/msg00029.html>.
* m4/wcscmp.m4 (gl_FUNC_WCSCMP): Test against a glibc/arm* bug.
* doc/posix-functions/wcscmp.texi: Mention the glibc/arm* bug.
2023-07-04 Bruno Haible <bruno@clisp.org>
mbiter, mbfile, mbmemcasecoll: Improve handling of mbrtoc32 result.
* lib/mbiter.h (mbi_avail): If cur.ptr has reached the limit but
in_shift is true, call mbiter_multi_next.
(mbiter_multi_next): Set in_shift to false after an incomplete multibyte
character.
* lib/mbfile.h (mbfile_multi_getc): Pass the input bytes incrementally
into mbrtoc32. When mbf->state is not in the initial state, call
mbrtoc32 again.
* lib/mbmemcasecoll.c (apply_c32tolower): When the state is not in the
initial state, call mbrtoc32 again.
2023-07-04 Bruno Haible <bruno@clisp.org>
mbiter, mbuiter, mbfile: Improve state handling after invalid input.
* lib/mbiter.h (mbiter_multi_next): After an invalid multibyte sequence
was encountered, clear the state.
* lib/mbuiter.h (mbuiter_multi_next): Likewise.
* lib/mbfile.h (mbfile_multi_getc): Likewise.
2023-07-04 Bruno Haible <bruno@clisp.org>
mbchar: Optimize all chars from the POSIX "portable character set".
* lib/mbchar.h (is_basic): Include all the characters from the POSIX
"portable character set".
* lib/mbchar.c (is_basic_table): Likewise.
* lib/mbiter.h (mbiter_multi_next): Update comment.
* lib/mbuiter.h (mbuiter_multi_next): Likewise.
* lib/mbfile.h (mbfile_multi_getc): Likewise.
2023-07-04 Paul Eggert <eggert@cs.ucla.edu>
mbchar: treat @, $, ` as basic
The C standard says that @, $, ` must have a single-byte
representation so they count as basic as far as multibyte
character processing goes.
* lib/mbchar.c (is_basic_table):
* lib/mbchar.h (is_basic):
* lib/mbswidth.c (mbsnwidth):
Treat @, $, ` as basic too.
2023-07-03 Bruno Haible <bruno@clisp.org>
mbrtoc32: Document another glibc bug.
* doc/posix-functions/mbrtoc32.texi: Reference the glibc bug in
BIG5-HKSCS locales.
2023-07-03 Paul Eggert <eggert@cs.ucla.edu>
mbrtoc32: document (size_t) -3 issue
* doc/posix-functions/mbrtoc32.texi (mbrtoc32):
Say (size_t) -3 might not be worth bothering about.
2023-07-02 Bruno Haible <bruno@clisp.org>
mbsrtoc32s: Accommodate a difference between mbrtowc and mbrtoc32.
* lib/mbsrtoc32s.c (USES_C32): New macro.
* lib/mbsrtowcs.c (USES_C32): New macro.
* lib/mbsrtowcs-impl.h (FUNC): If USES_C32 and mbrtoc32 returned
(size_t)(-3), don't increment the pointer.
2023-07-02 Bruno Haible <bruno@clisp.org>
mbsnrtoc32s: Accommodate a difference between mbrtowc and mbrtoc32.
* lib/mbsnrtoc32s.c (USES_C32): New macro.
* lib/mbsnrtowcs.c (USES_C32): New macro.
* lib/mbsnrtowcs-impl.h (FUNC): If USES_C32 and mbrtoc32 returned
(size_t)(-3), don't increment the pointer.
2023-07-02 Bruno Haible <bruno@clisp.org>
mbmemcasecoll: Overcome wchar_t limitations.
* lib/mbmemcasecoll.c: Include <uchar.h> instead of <wctype.h>.
(apply_c32tolower): Renamed from apply_towlower. Use mbrtoc32 instead of
mbrtowc. Use c32tolower instead of towlower. Use c32rtomb instead of
wcrtomb.
* modules/mbmemcasecoll (Depends-on): Remove mbrtowc, wcrtomb. Add
uchar, mbrtoc32, c32rtomb, c32tolower.
(Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/mbmemcasecoll-tests (Makefile.am): Link test-mbmemcasecoll
with $(LIBUNISTRING) $(LIBC32CONV).
2023-07-02 Bruno Haible <bruno@clisp.org>
mbswidth: Overcome wchar_t limitations.
* lib/mbswidth.c: Include <uchar.h> instead of <wctype.h>.
(mbsnwidth): Use mbrtoc32 instead of mbrtowc. Use c32width instead of
wcwidth. Use c32iscntrl instead of iswcntrl.
* modules/mbswidth (Depends-on): Remove wctype-h, mbrtowc, wcwidth. Add
uchar, mbrtoc32, c32width, c32iscntrl.
(Link): Add $(LIBC32CONV).
2023-07-01 Paul Eggert <eggert@cs.ucla.edu>
Fix long bootstrap lines
* top/bootstrap:
* top/bootstrap-funclib.sh: Reformat to fit into 80 columns,
for coreutils ‘make syntax-check’.
2023-07-01 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202307. Mention that stable-202207 is no longer updated.
2023-07-01 Paul Eggert <eggert@cs.ucla.edu>
maint.mk: Modernize stddef.h checks for C23
* top/maint.mk (_stddef_syms_re): Modernize for C23.
2023-07-01 Bruno Haible <bruno@clisp.org>
quotearg: Overcome wchar_t limitations.
* lib/quotearg.c: Include <uchar.h> instead of <wchar.h>, <wctype.h>.
(quotearg_buffer_restyled): Use mbrtoc32, c32isprint instead of mbrtowc,
iswprint.
* modules/quotearg (Files): Remove m4/mbstate_t.m4, m4/mbrtowc.m4
(redundant).
(Depends-on): Add uchar, mbrtoc32, c32isprint. Remove wchar, wctype-h,
mbrtowc.
(Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/quotearg-tests (Makefile.am): Link test-quotearg with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/quotearg-simple (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/quotearg-simple-tests (Makefile.am): Link test-quotearg-simple
with $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/quote (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/acl (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/acl-tests (Makefile.am): Link test-set-mode-acl and
test-copy-acl with $(LIBUNISTRING) $(LIBC32CONV).
* modules/copy-file (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/copy-file-tests (Makefile.am): Link test-copy-file with
$(LIBUNISTRING) $(LIBC32CONV).
--
* modules/argmatch (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/argmatch-tests (Makefile.am): Link test-argmatch with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/backup-rename (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/backupfile (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/human (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/sh-quote (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/sh-quote-tests (Makefile.am): Link test-sh-quote with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/system-quote (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/system-quote-tests (Makefile.am): Link test-system-quote-main
with $(LIBUNISTRING) $(LIBC32CONV).
* modules/csharpcomp (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/csharpexec (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/javacomp (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/javaexec (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/string-desc-quotearg (Link): New section.
* modules/string-desc-quotearg-tests (Makefile.am): Link
test-string-desc-quotearg with $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/xmemcoll (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
--
* modules/closeout (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/readtokens-tests (Makefile.am): Link test-readtokens with
$(LIBUNISTRING) $(LIBC32CONV).
--
* modules/closein (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/closein-tests (Makefile.am): Link test-closein with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/yesno-tests (Makefile.am): Link test-yesno with
$(LIBUNISTRING) $(LIBC32CONV).
2023-06-30 Bruno Haible <bruno@clisp.org>
Accommodate a difference between mbrtowc and mbrtoc32.
* lib/mbiter.h (mbiter_multi_next): Handle the mbrtoc32 return value
(size_t)(-3).
* lib/mbuiter.h (mbuiter_multi_next): Likewise.
* lib/mbfile.h (mbfile_multi_getc): Likewise.
2023-06-30 Bruno Haible <bruno@clisp.org>
doc: Reference some reported bugs (in comments).
* doc/posix-functions/mbrlen.texi: Add references to bug reports.
* doc/posix-functions/mbrtoc16.texi: Likewise.
* doc/posix-functions/mbrtoc32.texi: Likewise.
* doc/posix-functions/mbrtowc.texi: Likewise.
* doc/posix-functions/mbsnrtowcs.texi: Likewise.
* doc/posix-functions/mbsrtowcs.texi: Likewise.
* doc/posix-functions/mbstowcs.texi: Likewise.
2023-06-29 Paul Eggert <eggert@cs.ucla.edu>
assert-tests: pacify gcc -Wunused-function
* tests/test-assert.c (main): Call f, so that the test
works even if NDEBUG is defined.
stddef-tests: pacify gcc -Wshadow
* tests/test-stddef.c (mat): Rename from ‘x’.
nullptr-tests: pacify gcc -Wmissing-declarations
* tests/test-nullptr.c (varargs_callee): Now static.
2023-06-29 Bruno Haible <bruno@clisp.org>
libtextstyle-optional: Update to gettext 0.22.
* lib/textstyle.in.h: Declare all functions that were added in
textstyle.h from gettext-0.22.
libtextstyle-optional: Update to gettext 0.21.
* lib/textstyle.in.h: Declare all functions that exist in textstyle.h
from gettext-0.21, independently of iconv.
2023-06-28 Bruno Haible <bruno@clisp.org>
doc: Mention c8rtomb and mbrtoc8 from ISO C 23.
* doc/posix-functions/c8rtomb.texi: New file.
* doc/posix-functions/mbrtoc8.texi: New file.
* doc/gnulib.texi (Function Substitutes): Include them.
2023-06-28 Bruno Haible <bruno@clisp.org>
mbrtoc16: Add tests.
* tests/test-mbrtoc16.c: New file, based on tests/test-mbrtoc32.c.
* tests/test-mbrtoc16-1.sh: New file, based on tests/test-mbrtoc32-1.sh.
* tests/test-mbrtoc16-2.sh: New file, based on tests/test-mbrtoc32-2.sh.
* tests/test-mbrtoc16-3.sh: New file, based on tests/test-mbrtoc32-3.sh.
* tests/test-mbrtoc16-4.sh: New file, based on tests/test-mbrtoc32-4.sh.
* tests/test-mbrtoc16-5.sh: New file, based on tests/test-mbrtoc32-5.sh.
* tests/test-mbrtoc16-w32.c: New file, based on
tests/test-mbrtoc32-w32.c.
* tests/test-mbrtoc16-w32-1.sh: New file, based on
tests/test-mbrtoc32-w32-1.sh.
* tests/test-mbrtoc16-w32-2.sh: New file, based on
tests/test-mbrtoc32-w32-2.sh.
* tests/test-mbrtoc16-w32-3.sh: New file, based on
tests/test-mbrtoc32-w32-3.sh.
* tests/test-mbrtoc16-w32-4.sh: New file, based on
tests/test-mbrtoc32-w32-4.sh.
* tests/test-mbrtoc16-w32-5.sh: New file, based on
tests/test-mbrtoc32-w32-5.sh.
* tests/test-mbrtoc16-w32-6.sh: New file, based on
tests/test-mbrtoc32-w32-6.sh.
* tests/test-mbrtoc16-w32-7.sh: New file, based on
tests/test-mbrtoc32-w32-7.sh.
* modules/mbrtoc16-tests: New file, based on modules/mbrtoc32-tests.
mbrtoc16: New module.
* lib/uchar.in.h (mbrtoc16): New declaration.
* lib/mbrtoc16.c: New file.
* m4/mbrtoc16.m4: New file, based on m4/mbrtoc32.m4.
* modules/mbrtoc16: New file.
* m4/uchar_h.m4 (gl_UCHAR_H): Test whether mbrtoc16 is declared.
(gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize GNULIB_MBRTOC16.
(gl_UCHAR_H_DEFAULTS): Initialize HAVE_MBRTOC16, REPLACE_MBRTOC16.
* modules/uchar (Makefile.am): Substitute GNULIB_MBRTOC16,
HAVE_MBRTOC16, REPLACE_MBRTOC16.
* doc/posix-functions/mbrtoc16.texi: Mention the mbrtoc16 module and the
mbsinit related limitation.
* doc/posix-functions/mbsinit.texi: Mention the mbrtoc16 related
limitation.
2023-06-28 Bruno Haible <bruno@clisp.org>
c32*: Update comment.
* lib/c32is-impl.h (FUNC): Add comment regarding Android.
* lib/c32to-impl.h (FUNC): Likewise.
* lib/c32width.c (c32width): Likewise.
2023-06-28 Bruno Haible <bruno@clisp.org>
mbrtoc32: Doc tweak.
* doc/posix-functions/mbrtoc32.texi: Mention that mingw and Android have
the empty input bug.
* m4/mbrtoc32.m4 (gl_MBRTOC32_EMPTY_INPUT): Update cross-compilation
guess.
2023-06-28 Bruno Haible <bruno@clisp.org>
mbrtowc: Doc tweak.
* doc/posix-functions/mbrtowc.texi: Mention that MSVC has the empty
input bug and the return value bug. Mention that Android has the empty
input bug.
* m4/mbrtowc.m4 (gl_MBRTOC32_EMPTY_INPUT): Update cross-compilation
guess.
2023-06-28 Bruno Haible <bruno@clisp.org>
mbrtowc, mbrtoc32: Simplify autoconf macros.
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT, gl_MBRTOWC_C_LOCALE): Put
cross-compilation guess at the usual place.
* m4/mbrtoc32.m4 (gl_MBRTOC32_EMPTY_INPUT, gl_MBRTOC32_C_LOCALE):
Likewise.
2023-06-27 Bruno Haible <bruno@clisp.org>
c32*: Optionally enforce ISO C 23 semantics of char32_t.
* lib/lc-charset-unicode.h: New file.
* lib/lc-charset-unicode.c: New file.
* modules/uchar-c23: New file.
* lib/uchar.in.h (char32_t): Add comment.
* lib/mbrtoc32.c: Include lc-charset-unicode.h.
(mbrtoc32): If char32_t is Unicode and wchar_t is not, invoke
locale_encoding_to_unicode.
* lib/btoc32.c: Include lc-charset-unicode.h.
(btoc32): If char32_t is Unicode and wchar_t is not, invoke
locale_encoding_to_unicode.
* lib/c32rtomb.c: Include lc-charset-unicode.h.
(c32rtomb): If char32_t is Unicode and wchar_t is not, invoke
unicode_to_locale_encoding.
* lib/c32tob.c: Include lc-charset-unicode.h.
(c32tob): If char32_t is Unicode and wchar_t is not, invoke
unicode_to_locale_encoding.
* lib/mbsnrtoc32s.c: If char32_t is Unicode and wchar_t is not, don't
use mbsnrtowcs.
* lib/mbsrtoc32s.c: If char32_t is Unicode and wchar_t is not, don't use
mbsrtowcs.
* lib/c32snrtombs.c: If char32_t is Unicode and wchar_t is not, don't
use wcsnrtombs.
* lib/c32srtombs.c: If char32_t is Unicode and wchar_t is not, don't use
wcsrtombs.
* lib/c32is-impl.h: Include lc-charset-unicode.h.
(FUNC): If char32_t is Unicode and wchar_t is not, use UCS_FUNC.
* lib/c32to-impl.h: Include lc-charset-unicode.h.
(FUNC): If char32_t is Unicode and wchar_t is not, use UCS_FUNC.
* lib/c32width.c: Include lc-charset-unicode.h.
(c32width): If char32_t is Unicode and wchar_t is not, use uc_width.
* tests/test-mbrtoc32.c: Include <wchar.h>.
(main): Skip GB18030 tests on NetBSD and Solaris. If
GL_CHAR32_T_IS_UNICODE, expect Unicode encoding for the char32_t values.
* tests/test-mbrtoc32-w32.c: Include <wchar.h>.
(test_one_locale): Simplify.
* tests/test-c32rtomb.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32rtomb.sh: Update.
* tests/test-mbsnrtoc32s.c: Include <wchar.h>.
(main): Skip GB18030 tests on NetBSD and Solaris.
* tests/test-mbsrtoc32s.c: Include <wchar.h>.
(main): Skip GB18030 tests on NetBSD and Solaris.
* tests/test-mbstoc32s.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32snrtombs.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32srtombs.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32stombs.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isalnum.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isalnum.sh: Update.
* tests/test-c32isalpha.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32isalpha.sh: Update.
* tests/test-c32isblank.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isblank.sh: Update.
* tests/test-c32iscntrl.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32iscntrl.sh: Update.
* tests/test-c32isdigit.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isdigit.sh: Update.
* tests/test-c32isgraph.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32isgraph.sh: Update.
* tests/test-c32islower.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32islower.sh: Update.
* tests/test-c32isprint.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32isprint.sh: Update.
* tests/test-c32ispunct.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32ispunct.sh: Update.
* tests/test-c32isspace.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isspace.sh: Update.
* tests/test-c32isupper.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isupper.sh: Update.
* tests/test-c32isxdigit.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32isxdigit.sh: Update.
* tests/test-c32tolower.c (main): Skip GB18030 tests on NetBSD and
Solaris.
* tests/test-c32tolower.sh: Update.
* tests/test-c32toupper.c (main): Skip GB18030 tests on NetBSD and
Solaris. Disable tests that would fail on macOS, FreeBSD, NetBSD,
Solaris.
* tests/test-c32toupper.sh: Update.
* modules/mbrtoc32 (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/mbrtoc32-tests (Makefile.am): Link test-mbrtoc32 with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/btoc32 (Link): New section.
* modules/btoc32-tests (Makefile.am): Link test-btoc32 with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32rtomb (Link): New section.
* modules/c32rtomb-tests (Makefile.am): Link test-c32rtomb with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32tob (Link): New section.
* modules/mbsnrtoc32s (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/mbsnrtoc32s-tests (Makefile.am): Link test-mbsnrtoc32s with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/mbsrtoc32s (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/mbsrtoc32s-tests (Makefile.am): Link test-mbsrtoc32s with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/mbstoc32s (Link): Add $(LIBUNISTRING) $(LIBC32CONV).
* modules/mbstoc32s-tests (Makefile.am): Link test-mbstoc32s with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32snrtombs (Link): New section.
* modules/c32snrtombs-tests (Makefile.am): Link test-c32snrtombs with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32srtombs (Link): New section.
* modules/c32srtombs-tests (Makefile.am): Link test-c32srtombs with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32stombs (Link): New section.
* modules/c32stombs-tests (Makefile.am): Link test-c32stombs with
$(LIBUNISTRING) $(LIBC32CONV).
* modules/c32isalnum (Link): Add $(LIBC32CONV).
* modules/c32isalnum-tests (Makefile.am): Link test-c32isalnum with
$(LIBC32CONV).
* modules/c32isalpha (Link): Add $(LIBC32CONV).
* modules/c32isalpha-tests (Makefile.am): Link test-c32isalpha with
$(LIBC32CONV).
* modules/c32isblank (Link): Add $(LIBC32CONV).
* modules/c32isblank-tests (Makefile.am): Link test-c32isblank with
$(LIBC32CONV).
* modules/c32iscntrl (Link): Add $(LIBC32CONV).
* modules/c32iscntrl-tests (Makefile.am): Link test-c32iscntrl with
$(LIBC32CONV).
* modules/c32isdigit (Link): Add $(LIBC32CONV).
* modules/c32isdigit-tests (Makefile.am): Link test-c32isdigit with
$(LIBC32CONV).
* modules/c32isgraph (Link): Add $(LIBC32CONV).
* modules/c32isgraph-tests (Makefile.am): Link test-c32isgraph with
$(LIBC32CONV).
* modules/c32islower (Link): Add $(LIBC32CONV).
* modules/c32islower-tests (Makefile.am): Link test-c32islower with
$(LIBC32CONV).
* modules/c32isprint (Link): Add $(LIBC32CONV).
* modules/c32isprint-tests (Makefile.am): Link test-c32isprint with
$(LIBC32CONV).
* modules/c32ispunct (Link): Add $(LIBC32CONV).
* modules/c32ispunct-tests (Makefile.am): Link test-c32ispunct with
$(LIBC32CONV).
* modules/c32isspace (Link): Add $(LIBC32CONV).
* modules/c32isspace-tests (Makefile.am): Link test-c32isspace with
$(LIBC32CONV).
* modules/c32isupper (Link): Add $(LIBC32CONV).
* modules/c32isupper-tests (Makefile.am): Link test-c32isupper with
$(LIBC32CONV).
* modules/c32isxdigit (Link): Add $(LIBC32CONV).
* modules/c32isxdigit-tests (Makefile.am): Link test-c32isxdigit with
$(LIBC32CONV).
* modules/c32tolower (Link): Add $(LIBC32CONV).
* modules/c32tolower-tests (Makefile.am): Link test-c32tolower with
$(LIBC32CONV).
* modules/c32toupper (Link): Add $(LIBC32CONV).
* modules/c32toupper-tests (Makefile.am): Link test-c32toupper with
$(LIBC32CONV).
* modules/c32width (Link): Add $(LIBC32CONV).
* modules/c32width-tests (Makefile.am): Link test-c32width with
$(LIBC32CONV).
* modules/c32swidth (Link): Add $(LIBC32CONV).
* modules/c32swidth-tests (Makefile.am): Link test-c32swidth with
$(LIBC32CONV).
* modules/mbchar (Link): Add $(LIBC32CONV).
* modules/mbiter (Link): Add $(LIBC32CONV).
* modules/mbuiter (Link): Add $(LIBC32CONV).
* modules/mbfile (Link): Add $(LIBC32CONV).
* modules/mbmemcasecmp (Link): Add $(LIBC32CONV).
* modules/mbmemcasecmp-tests (Makefile.am): Link test-mbmemcasecmp with
$(LIBC32CONV).
* modules/mbscasecmp (Link): Add $(LIBC32CONV).
* modules/mbscasecmp-tests (Makefile.am): Link test-mbscasecmp with
$(LIBC32CONV).
* modules/mbscasestr (Link): Add $(LIBC32CONV).
* modules/mbscasestr-tests (Makefile.am): Link test-mbscasestr1,
test-mbscasestr2, test-mbscasestr3, test-mbscasestr4 with $(LIBC32CONV).
* modules/mbschr (Link): Add $(LIBC32CONV).
* modules/mbschr-tests (Makefile.am): Link test-mbschr with
$(LIBC32CONV).
* modules/mbscspn (Link): Add $(LIBC32CONV).
* modules/mbscspn-tests (Makefile.am): Link test-mbscspn with
$(LIBC32CONV).
* modules/mbslen (Link): Add $(LIBC32CONV).
* modules/mbsncasecmp (Link): Add $(LIBC32CONV).
* modules/mbsncasecmp-tests (Makefile.am): Link test-mbsncasecmp with
$(LIBC32CONV).
* modules/mbsnlen (Link): Add $(LIBC32CONV).
* modules/mbspbrk (Link): Add $(LIBC32CONV).
* modules/mbspbrk-tests (Makefile.am): Link test-mbspbrk with
$(LIBC32CONV).
* modules/mbspcasecmp (Link): Add $(LIBC32CONV).
* modules/mbspcasecmp-tests (Makefile.am): Link test-mbspcasecmp with
$(LIBC32CONV).
* modules/mbsrchr (Link): Add $(LIBC32CONV).
* modules/mbsrchr-tests (Makefile.am): Link test-mbsrchr with
$(LIBC32CONV).
* modules/mbssep (Link): Add $(LIBC32CONV).
* modules/mbsspn (Link): Add $(LIBC32CONV).
* modules/mbsspn-tests (Makefile.am): Link test-mbsspn with
$(LIBC32CONV).
* modules/mbsstr (Link): Add $(LIBC32CONV).
* modules/mbsstr-tests (Makefile.am): Link test-mbsstr1, test-mbsstr2,
test-mbsstr3 with $(LIBC32CONV).
* modules/mbstok_r (Link): Add $(LIBC32CONV).
* modules/propername (Link): Add $(LIBC32CONV).
* modules/regex-quote (Link): Add $(LIBC32CONV).
* modules/regex-quote-tests (Makefile.am): Link test-regex-quote with
$(LIBC32CONV).
* modules/trim (Link): Add $(LIBC32CONV).
* modules/trim-tests (Makefile.am): Link test-trim with $(LIBC32CONV).
* modules/exclude (Link): Add $(LIBC32CONV).
* modules/exclude-tests (Makefile.am): Link test-exclude with
$(LIBC32CONV).
* doc/posix-headers/uchar.texi: Mention the uchar-c23 module.
* doc/posix-functions/mbrtoc32.texi: Likewise.
* doc/strings.texi (The char32_t type): Likewise.
2023-06-27 Bruno Haible <bruno@clisp.org>
striconveh: Fix module description.
* modules/striconveh (Link): Add $(LIBUNISTRING).
* modules/striconveha (Link): New section.
* modules/xstriconveh (Link): New section.
2023-06-25 Bruno Haible <bruno@clisp.org>
strncat: Update doc regarding Solaris 11.4.
* doc/posix-functions/strncat.texi: Mention that the bug still exists on
Solaris 11.4.
* m4/strncat.m4 (gl_FUNC_STRNCAT): Update comments.
2023-06-25 Bruno Haible <bruno@clisp.org>
thread: Avoid compiler warnings on Solaris.
* lib/glthread/thread.h: Include <stdint.h>.
(gl_thread_self_pointer): Do the cast from pthread_t to 'void *' via
intptr_t.
* modules/thread (Depends-on): Add stdint.
2023-06-25 Bruno Haible <bruno@clisp.org>
strerrorname_np: Add support for Solaris 11.4/sparc.
* lib/strerrorname_np.c (strerrorname_np): Consider ECKSUM, EFRAGS.
Allow ENOANO to be overloaded to another value.
* tests/test-strerrorname_np.c (main): Likewise.
2023-06-25 Jim Meyering <meyering@meta.com>
doc: correct doubled "on on"
* doc/glibc-functions/initstate_r.texi: As above.
* doc/posix-functions/initstate.texi: As above.
2023-06-25 Bruno Haible <bruno@clisp.org>
sigdescr_np tests: Avoid test failure on glibc/sparc.
* tests/test-sigdescr_np.c (main): Accept the glibc result for SIGEMT.
* doc/glibc-functions/sigdescr_np.texi: Mention two glibc deficiencies.
2023-06-25 Bruno Haible <bruno@clisp.org>
strerrorname_np: Work around glibc bug on PowerPC, SPARC systems.
* m4/strerrorname_np.m4 (gl_FUNC_STRERRORNAME_NP): Test also
strerrorname_np (EDEADLOCK).
* doc/glibc-functions/strerrorname_np.texi: Mention that glibc 2.36
still needs a workaround.
2023-06-25 Bruno Haible <bruno@clisp.org>
doc: Mention glibc initstate, initstate_r bug.
* doc/posix-functions/initstate.texi: Mention glibc bug.
* doc/glibc-functions/initstate_r.texi: Likewise.
* tests/test-random_r.c: Add a comment.
2023-06-25 Bruno Haible <bruno@clisp.org>
doc: Update doc regarding 'setstate'.
* doc/posix-functions/setstate.texi: Mention also Solaris 11.4.
2023-06-25 Bruno Haible <bruno@clisp.org>
doc: Update doc regarding <ieee754.h>.
* doc/glibc-headers/ieee754.texi: Mention that it's not present on
glibc/sparc64 in 32-bit mode.
2023-06-25 Bruno Haible <bruno@clisp.org>
exclude: Complete last change.
* lib/exclude.c: Include <uchar.h> instead of <wctype.h>.
2023-06-24 Bruno Haible <bruno@clisp.org>
mbchar, mbiter, mbuiter: Overcome wchar_t limitations.
* lib/mbchar.h: Include <uchar.h> instead of <wchar.h>, <wctype.h>.
(struct mbchar): Use char32_t instead of wchar_t.
(mb_casecmp, mb_caseequal): Use c32tolower instead of towlower.
(mb_isalnum): Use c32isalnum instead of iswalnum.
(mb_isalpha): Use c32isalpha instead of iswalpha.
(mb_isblank): Use c32isblank instead of iswblank.
(mb_iscntrl): Use c32iscntrl instead of iswcntrl.
(mb_isdigit): Use c32isdigit instead of iswdigit.
(mb_isgraph): Use c32isgraph instead of iswgraph.
(mb_islower): Use c32islower instead of iswlower.
(mb_isprint): Use c32isprint instead of iswprint.
(mb_ispunct): Use c32ispunct instead of iswpunct.
(mb_isspace): Use c32isspace instead of iswspace.
(mb_isupper): Use c32isupper instead of iswupper.
(mb_isxdigit): Use c32isxdigit instead of iswxdigit.
(mb_width_aux): Use c32width, c32iscntrl instead of wcwidth, iswcntrl.
* lib/mbiter.h: Include <uchar.h> instead of <wchar.h>.
(mbiter_multi_next): Use mbrtoc32 instead of mbrtowc.
* lib/mbuiter.h: Include <uchar.h> instead of <wchar.h>.
(mbuiter_multi_next): Use mbrtoc32 instead of mbrtowc.
* lib/mbfile.h (mbfile_multi_getc): Use mbrtoc32 instead of mbrtowc.
* lib/mbscasestr.c (knuth_morris_pratt_multibyte, mbscasestr): Use
c32tolower instead of towlower.
* lib/exclude.c (string_hasher_ci): Use char32_t, c32tolower instead of
wchar_t, towlower.
* modules/mbchar (Depends-on): Add uchar, c32isalnum, c32isalpha,
c32isblank, c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint,
c32ispunct, c32isspace, c32isupper, c32isxdigit, c32tolower, c32width.
Remove wchar, wctype-h, iswblank, iswdigit, iswxdigit, wcwidth.
* modules/mbiter (Depends-on): Add mbrtoc32, uchar. Remove mbrtowc,
wchar.
* modules/mbuiter (Depends-on): Likewise.
* modules/mbscasestr (Depends-on): Add c32tolower.
* modules/exclude (Depends-on): Add c32tolower.
* doc/strings.texi (C strings): Fix typo.
2023-06-22 Bruno Haible <bruno@clisp.org>
doc: Use makeinfo option to check menu structure.
Trick revealed by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-texinfo/2023-06/msg00015.html>.
* doc/Makefile (MAKEINFO): Enforce checking of menu structure.
2023-06-22 Bruno Haible <bruno@clisp.org>
doc: Correct info menu structure.
Reported by Elijah Zarezky <elijah@zarezky.spb.ru> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-06/msg00105.html>.
* doc/strings.texi (Strings): Add missing @menu item.
2023-06-20 Paul Eggert <eggert@cs.ucla.edu>
doc: INSTALL uses UTF-8 now
* doc/Makefile (INSTALL.ISO, INSTALL.UTF-8):
Adjust to the fact that INSTALL now uses UTF-8.
INSTALL.UTF-8 is now obsolescent since it is identical.
(INSTALL.ISO): Transliterate all non-ASCII characters,
not just single quotes.
* doc/INSTALL.ISO: Regenerate.
2023-06-19 Paul Eggert <eggert@cs.ucla.edu>
largefile: port to GNU/Linux s390x and alpha
This patch syncs from Autoconf master.
Problem reported by Matoro <https://bugs.gnu.org/64123>.
* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_CODE):
New overridable macro FTYPE, to test types other than off_t.
(_AC_SYS_LARGEFILE_TEST_CODE): Test ino_t for
-D_FILE_OFFSETBITS=64 too, if no flags are needed for off_t.
Needed for GNU/Linux on alpha and s390x.
2023-06-19 Bruno Haible <bruno@clisp.org>
doc: Corrections to the "Strings and Characters" chapter.
Suggested by Paul Eggert.
* doc/strings.texi: Corrections: GB18030 is rarely used nowadays.
<ctype.h> functions can be useful for specific data.
2023-06-19 Bruno Haible <bruno@clisp.org>
doc: Use "spaced en dash" style instead of "spaced em dash" style.
Suggested by Paul Eggert.
* doc/gnulib.texi: At sentence level, use "spaced en dash" style instead
of "spaced em dash" style.
* doc/gnulib-intro.texi: Likewise.
* doc/multithread.texi: Likewise.
* doc/strings.texi: Likewise.
2023-06-19 Bruno Haible <bruno@clisp.org>
setenv: Simplify m4 requires.
* m4/setenv.m4 (gl_PREREQ_SETENV): Don't require AC_FUNC_ALLOCA.
2023-06-18 Bruno Haible <bruno@clisp.org>
configmake: Bypass the unusable 'echo' command of some shells.
Reported by Brian Inglis <Brian.Inglis@Shaw.ca> in
<https://lists.gnu.org/archive/html/bug-gettext/2023-06/msg00054.html>.
* m4/build-to-host.m4 (gl_BUILD_TO_HOST): Use 'printf' instead of
'echo', because the "dash" shell has a SystemV compatible 'echo'
command. Also, be sure to remove trailing CRs.
2023-06-18 Paul Eggert <eggert@cs.ucla.edu>
update-copyright tests: fix to match behavior
* tests/test-update-copyright.sh: Change tests to match new behavior.
2023-06-18 Bruno Haible <bruno@clisp.org>
update-copyright tests: Add tests for man pages.
* tests/test-update-copyright.sh: Add 4 tests that use man page syntax.
2023-06-18 Bruno Haible <bruno@clisp.org>
gettext: Clarify the purpose of this module.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-06/msg00089.html>.
* modules/gettext (Description): Clarify the purpose.
(Makefile.am): Remove outdated comment. "gettextize --intl" is no longer
possible since 2019.
2023-06-18 Paul Eggert <eggert@cs.ucla.edu>
Update \(en in copyright notices
* build-aux/update-copyright (ndash_re): New var, matching \(en too.
(stmt_remainder_re, stmt): Use it.
(stmt): Match year in constructs like "\(en2023".
(ndash): Now \(en in man pages.
2023-06-17 Bruno Haible <bruno@clisp.org>
gettext: Update to gettext 0.22.
* modules/gettext (Files): Add m4/build-to-host.m4.
(configure.ac): Request infrastructure compatible with gettext 0.22.
* m4/gettext.m4: Update from gettext 0.22.
* m4/po.m4: Likewise.
2023-06-15 Bruno Haible <bruno@clisp.org>
aligned-malloc, rmdir-errno: Sanitize configuration test result.
* m4/malloc-align.m4 (gl_MALLOC_ALIGNMENT): Don't put a newline at the
end of the conftest.out file.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Don't put a newline at the
end of the confdir2/errno file.
2023-06-13 Bruno Haible <bruno@clisp.org>
Make internationalization tests stricter on musl systems.
--
* m4/locale-fr.m4 (gt_LOCALE_FR): On musl systems, set LOCALE_FR_UTF8 to
"fr_FR.UTF-8" instead of "none". Set and substitute
LC_COLLATE_IMPLEMENTED, LC_NUMERIC_IMPLEMENTED, LC_TIME_IMPLEMENTED,
LC_MONETARY_IMPLEMENTED.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Skip testing a certain locale if
that locale is "none".
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
--
* tests/test-c32isalpha.c (main): On musl libc, disable tests that fail.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-nl_langinfo1.c (main): Likewise.
* tests/test-nl_langinfo2.c (main): Likewise.
* modules/c32isalpha-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32iscntrl-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32isgraph-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32islower-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32isprint-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/c32toupper-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* modules/nl_langinfo-tests (Files): Add musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
--
* tests/test-strtod1.sh: Skip the test if LC_NUMERIC_IMPLEMENTED is
false.
* tests/test-strtold1.sh: Likewise.
* tests/test-vasnprintf-posix2.sh: Likewise.
* tests/test-vasnwprintf-posix2.sh: Likewise.
* modules/strtod-tests (Makefile.am): Set LC_NUMERIC_IMPLEMENTED in the
tests environment.
* modules/strtold-tests (Makefile.am): Likewise.
* modules/vasnprintf-posix-tests (Makefile.am): Likewise.
* modules/vasnwprintf-posix-tests (Makefile.am): Likewise.
2023-06-12 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Work around another musl libc bug.
* m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LC): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke it, and set
NEED_WPRINTF_DIRECTIVE_LC if the %lc test failed.
* lib/vasnprintf.c (VASNPRINTF): If NEED_WPRINTF_DIRECTIVE_LC is set, do
the processing for %lc and %ls ourselves.
(local_wcslen): Update condition.
* doc/posix-functions/swprintf.texi: Mention the %lc problem.
2023-06-12 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Work around a musl libc bug.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether swprintf
in the C locale is free of encoding errors, and set
NEED_WPRINTF_DIRECTIVE_C if not.
* doc/posix-functions/swprintf.texi: Clarify the list of platforms for
the %c problem.
2023-06-12 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix some cross-compilation results.
* m4/printf.m4 (gl_SWPRINTF_WORKS): Fix cross-compilation result for
musl.
(gl_SWPRINTF_DIRECTIVE_LA): Fix cross-compilation result for Android.
2023-06-12 Bruno Haible <bruno@clisp.org>
warnings: Save memory and CPU time when inhibiting all warnings.
* m4/warnings.m4 (gl_WARN_ADD): Improve comments.
(gl_CC_INHIBIT_WARNINGS): Add also '-fno-analyzer' to
GL_CFLAG_INHIBIT_WARNINGS.
(gl_CXX_INHIBIT_WARNINGS): Add also '-fno-analyzer' to
GL_CXXFLAG_INHIBIT_WARNINGS.
2023-06-11 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Document effects of yesterday's change.
* NEWS: Mention yesterday's change.
2023-06-11 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Silence javac warnings regarding [options].
* m4/javacomp.m4 (gt_JAVACOMP): Use option '-Xlint:-options' by default
and omit it only when it does not work.
* lib/javacomp.c (compile_using_javac): Add nowarn_option parameter.
(is_envjavac_usable): Add nowarn_option_out parameter. Use option
'-Xlint:-options' by default and omit it only when it does not work.
(is_javac_usable): Likewise.
(compile_java_class): Store the nowarn_option returned from
is_envjavac_usable and use it when invoking compile_using_envjavac.
Store the nowarn_option returned from is_javac_usable and use it when
invoking compile_using_javac.
2023-06-10 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Add support for javac versions > 11.
Reported by Adrian Bunk <bunk-gnu@fs.tum.de> in
<https://savannah.gnu.org/bugs/?63385>.
* m4/javacomp.m4 (gt_JAVACOMP): When the java version is > 11, use that
version as target_version, not 11. When the java version is > 17, don't
warn. Remove goodcode, failcode variables. Don't bail out if the
source-version argument or the target-version argument is in the range
12..99. Use a heuristic that works with javac versions 11..20 at least.
Update comments.
* lib/javacomp.h (compile_java_class): State that source-version and
target-version may be larger than 11.
* lib/javacomp.c (default_target_version): Accommodate versions up to
99.
(SOURCE_VERSION_BOUND): Increase to 94.
(source_version_index): Accept versions up to 99.
(get_goodcode_snippet, get_failcode_snippet): Remove functions.
(TARGET_VERSION_BOUND): Increase to 94.
(target_version_index): Accept versions up to 99.
(corresponding_classfile_version): Remove function.
(execute_and_read_line): New function, based on lib/javaversion.c.
(get_compiler_version): New function.
(is_envjavac_usable): Add parameters source_option_out,
target_option_out. Use a heuristic that works with javac versions 11..20
at least. Call cleanup_temp_dir.
(is_javac_usable): Likewise.
(compile_java_class): Update.
2023-06-10 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Remove support for javac versions < 1.6.
* m4/javacomp.m4 (gt_JAVACOMP): State that the minimum source_version
and the minimum target_version are 1.6. Map smaller values to 1.6.
Complain if the java version is < 1.6. Use 1.6 as default, instead of
1.1. Don't bother trying the -target option alone.
* lib/javacomp.h (compile_java_class): State that the minimum
source_version and the minimum target_version are 1.6.
* lib/javacomp.c (default_target_version): Complain if the java version
is < 1.6. Use 1.6 as default, instead of 1.1.
(SOURCE_VERSION_BOUND, source_version_index, get_goodcode_snippet,
get_failcode_snippet): Adjust to the new minimum source_version = 1.6.
(TARGET_VERSION_BOUND, target_version_index,
corresponding_classfile_version): Adjust to the new minimum
target_version = 1.6.
(get_source_version_for_javac): Remove function.
(is_envjavac_usable): Remove source_version_for_javac parameter. Don't
bother trying the -target option alone.
(is_javac_usable): Likewise.
(compile_java_class): Map source_version < 1.6 to 1.6. Map
target_version < 1.6 to 1.6. Use source_version instead of calling
get_source_version_for_javac.
2023-06-10 Bruno Haible <bruno@clisp.org>
javacomp: Simplify after gcj support was removed.
* m4/javacomp.m4 (gt_JAVACOMP): Don't create conftestlib.java.
* lib/javacomp.c (compile_java_class): Remove local variables
no_assert_option, fsource_option, ftarget_option.
2023-06-09 Bruno Haible <bruno@clisp.org>
doc: Document <stdatomic.h>.
* doc/posix-headers/stdatomic.texi: New file.
* doc/gnulib.texi (Header File Substitutes): Include it.
2023-06-09 Jim Meyering <meyering@meta.com>
maint.mk: sc_prohibit_xalloc_without_use: also match alloc_die
* top/maint.mk (sc_prohibit_xalloc_without_use):
Adjust in-comment command's regexp so it also finds alloc_die,
whose declaration has a prefix of "_Noreturn ".
Also delete some now-obsolete commentary.
(_xa1): Regenerate the regexp using that command.
Reported by Pádraig Brady in
<https://lists.gnu.org/r/bug-gnulib/2023-06/msg00062.html>.
2023-06-09 Paul Eggert <eggert@cs.ucla.edu>
xalloc-die: omit /*extern*/
* lib/xalloc.h (xalloc_die): Omit leading "/*extern*/".
It complicates syntax checking; see:
https://lists.gnu.org/r/bug-gnulib/2023-06/msg00062.html
Plus, it’s inconsistent style: the other function declarations in
xalloc.h don’t use ‘extern’. (I’m not a fan of using ‘extern’ when
it’s just noise, as is the case here.)
2023-06-09 Bruno Haible <bruno@clisp.org>
javaversion: Update comments.
* lib/javaversion.h (javaexec_version): Document the possible results up
to OpenJDK 20.
2023-06-09 Bruno Haible <bruno@clisp.org>
javacomp: Remove support for 'jikes'.
* lib/javacomp.c (compile_using_jikes, is_jikes_present): Remove
functions.
(compile_java_class): Remove jikes related code.
javacomp-script: Remove support for 'jikes'.
* build-aux/javacomp.sh.in: Don't test HAVE_JIKES.
* m4/javacomp.m4 (gt_JAVACOMP): Don't set HAVE_JIKES. Don't set
CONF_JAVAC to 'jikes'. Update comment.
(gt_JAVACOMP_DISABLED): Don't set HAVE_JIKES.
2023-06-09 Bruno Haible <bruno@clisp.org>
javacomp: Remove support for 'gcj'.
* lib/javacomp.h: Update comment.
* lib/javacomp.c (compile_using_gcj, is_envjavac_gcj, is_envjavac_gcj43,
is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable,
is_envjavac_oldgcj_14_13_usable, is_gcj_present, is_gcj_43,
is_gcj43_usable, is_oldgcj_14_14_usable, is_oldgcj_14_13_usable): Remove
functions.
(is_envjavac_usable): Renamed from is_envjavac_nongcj_usable.
(compile_java_class): Remove gcj related code.
javacomp-script: Remove support for 'gcj'.
* build-aux/javacomp.sh.in: Don't test HAVE_GCJ_C.
* m4/javacomp.m4 (gt_JAVACOMP): Don't set HAVE_GCJ_C. Don't test whether
$JAVAC is gcj. Don't set CONF_JAVAC to 'gcj -C'. Update comment.
(gt_JAVACOMP_DISABLED): Don't set HAVE_GCJ_C.
javaexec: Remove support for 'gij'.
* lib/javaexec.c (execute_java_class): Don't test for gij.
javaexec-script: Remove support for 'gij'.
* build-aux/javaexec.sh.in: Don't test HAVE_GIJ.
* m4/javaexec.m4 (gt_JAVAEXEC): Don't set HAVE_GIJ. Don't set CONF_JAVA
to 'gij'.
* m4/javacomp.m4: Update comment.
2023-06-09 Bruno Haible <bruno@clisp.org>
javaexec: Remove support for 'jview'.
* lib/javaexec.c (execute_java_class): Don't test for jview.
javaexec-script: Remove support for 'jview'.
* build-aux/javaexec.sh.in: Don't test HAVE_JVIEW.
* m4/javaexec.m4 (gt_JAVAEXEC): Don't set HAVE_JVIEW. Don't set
CONF_JAVA to 'jview'.
(gt_JAVAEXEC_DISABLED): Don't set HAVE_JVIEW.
* m4/javacomp.m4: Update comment.
2023-06-06 Jim Meyering <meyering@meta.com>
maint.mk: regenerate regex to reflect new functions in xalloc.h
* top/maint.mk (sc_prohibit_xalloc_without_use) [_xa1]:
Regenerate using the command listed in the comment.
2023-06-06 Paul Eggert <eggert@cs.ucla.edu>
propername: pacify po_check
Problem reported by Bruno Haible <https://bugs.gnu.org/63933>.
* lib/propername.h: Change comment.
Put "/" at end of .gitignore directory names
* build-aux/bootstrap: Regenerate.
* top/bootstrap-funclib.sh (symlink_to_dir, autogen):
Put slashes after .gitignore entries that name directories.
2023-06-06 Jose E. Marchesi <jemarch@gnu.org>
maintainer-makefile: Enforce the GNU Coding Standards in the README.
* top/maint.mk (sc_readme_link_install): New rule.
(sc_readme_link_copying): Likewise.
2023-06-05 Paul Eggert <eggert@cs.ucla.edu>
copy-file-range: support building for older kernels
* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE):
Remove static check, to support the dubious practice of
building for platforms that predate the build platform.
On working kernels this adds an extra syscall the first time
that copy_file_range is used. Problem reported for Gentoo by
Sam James <https://bugs.gnu.org/63850>.
manywarnings: more nuance about optimization
* doc/manywarnings.texi (manywarnings): Suggest compiling with the
optimization flags commonly used, as opposed to -O2 and -O0
specifically. -ggdb shouldn’t affect warnings so don’t mention it.
2023-06-05 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Fix a warning (regression 2022-11-20).
* lib/spawni.c: Don't use this particular #pragma for gcc < 4.2.
2023-06-05 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix compilation error on Slackware 13 (regr. 2023-05-12).
* lib/file-has-acl.c (XATTR_NAME_POSIX_ACL_ACCESS,
XATTR_NAME_POSIX_ACL_DEFAULT): Add fallback definitions.
2023-06-05 Bruno Haible <bruno@clisp.org>
Fix bugs on mingw when module dirfd is in use (regression 2023-04-26).
* lib/getcwd.c: When GNULIB_defined_DIR, revert to the system's
definitions of opendir, closedir, readdir, rewinddir.
* lib/mountlist.c: When GNULIB_defined_DIR, revert to the system's
definitions of opendir, closedir, readdir.
* lib/scandir.c: Likewise.
* lib/glob.c: Fix comment. When GNULIB_defined_DIR, don't undefine
opendir, closedir.
2023-06-04 Bruno Haible <bruno@clisp.org>
manywarnings: Overhaul documentation.
* doc/manywarnings.texi: In the example, put all unwanted warning
options into 'nw', and use a second gl_MANYWARN_COMPLEMENT invocation to
sort out how these options need to get added to WARN_FLAGS.
Describe the first-time use in more detail: Recommend a new GCC.
Recommend to test builds with -O2 and with -O0. Suggest to sort the
warning by warning option. Add reference to the GCC pragma's
documentation.
2023-06-04 Bruno Haible <bruno@clisp.org>
error: Fix support for library namespacing (regression 2023-05-27).
* lib/error.in.h (error): If error is defined as a macro, define a
static inline function _gl_inline_error that invokes it, and let the
new error macro invoke that function.
(error_at_line): If error_at_line is defined as a macro, define a static
inline function _gl_inline_error_at_line that invokes it, and let the
new error_at_line macro invoke that function.
2023-06-04 Bruno Haible <bruno@clisp.org>
terminfo, termcap: Fix "discards 'const' qualifier" warnings.
* lib/tparm.c (tparm): Change type of 'fmt'. New local variable 'fmtp'.
2023-06-04 Bruno Haible <bruno@clisp.org>
uniname/uniname: Add comments.
* modules/uniname/uniname (Makefile.am): Explain how to work around a
GCC bug.
2023-06-04 Bruno Haible <bruno@clisp.org>
uniname/uniname: Fix -Wformat-signedness warning.
* lib/uniname/uniname.c (unicode_character_name): Use %u instead of %d
in format string.
2023-06-04 Bruno Haible <bruno@clisp.org>
uniname/uniname: Improve comments.
* lib/uniname/uniname.c (unicode_character_name): Fix comments.
2023-06-03 Bruno Haible <bruno@clisp.org>
classpath, csharpexec: Avoid "candidate for attribute 'malloc'" warning.
* lib/classpath.h (set_classpath): Mark with attribute 'malloc'.
2023-06-03 Bruno Haible <bruno@clisp.org>
propername-lite: Improve documentation.
* lib/propername.h: Describe functional differences between
proper_name_lite and proper_name_utf8.
2023-06-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Keep in sync with last change to gnulib-tool.py.
* gnulib-tool (func_emit_po_Makevars): Treat proper_name_lite like
proper_name_utf8.
2023-06-03 Bruno Haible <bruno@clisp.org>
error: Improve comments.
* lib/error.in.h (__gl_error_call): Add more comments.
2023-06-02 Paul Eggert <eggert@cs.ucla.edu>
error: do not evaluate status twice
Do this in a different way, so that the status is evaluated
once even when not optimizing and when using GCC.
* lib/error.in.h (__gl_error_call1) [__GNUC__]: New macro.
(__gl_error_call) [__GNUC__]: Use it.
2023-06-02 Bruno Haible <bruno@clisp.org>
warnings: Add ability to inhibit all warnings.
* m4/warnings.m4 (gl_CC_INHIBIT_WARNINGS, gl_CXX_INHIBIT_WARNINGS): New
macros, based on gl_CC_ALLOW_WARNINGS and gl_CXX_ALLOW_WARNINGS in
m4/gnulib-common.m4.
2023-06-02 Paul Eggert <eggert@cs.ucla.edu>
propername-lite: new module
propername_lite acts like propername_utf8 but needs less
infrastructure, e.g., it does not worry about memory allocation.
* MODULES.html.sh (func_all_modules): Mention it.
* lib/propername.h (proper_name_lite): New decl.
* lib/propername-lite.c, modules/propername-lite: New files.
* pygnulib/GLEmiter.py (GLEmiter.po_Makevars):
Treat proper_name_lite like proper_name_utf8.
2023-06-02 Bruno Haible <bruno@clisp.org>
openmp-init: Silence "no previous prototype for 'openmp_init'" warning.
* lib/omp.in.h: Test _OPENMP.
* lib/omp-init.c: Include <omp.h> always.
* modules/openmp-init (Include): Allow <omp.h> to be included always.
2023-06-02 Bruno Haible <bruno@clisp.org>
term-style-control: Silence -Wshadow warning.
* lib/term-style-control.c (continuing_signal_handler): Rename
parameter.
2023-06-02 Bruno Haible <bruno@clisp.org>
pipe-filter-gi, pipe-filter-ii: Silence -Wunused-macro warning.
* lib/pipe-filter-aux.c: Remove many unnecessary includes.
(_): Remove macro.
2023-06-02 Bruno Haible <bruno@clisp.org>
javacomp: Silence -Wanalyzer-possible-null-argument warning.
* lib/javacomp.c: Include verify.h.
(is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_13_usable,
is_envjavac_nongcj_usable, compile_java_class): Assert that the
xasprintf results are non-NULL. This is possible since all involved
format strings are valid and don't use %ls, and all argument strings
are small compared to INT_MAX.
* modules/javacomp (Depends-on): Add verify.
2023-06-02 Bruno Haible <bruno@clisp.org>
striconveha: Don't crash if malloc() returns NULL.
* lib/striconveha.c (mem_iconveha, str_iconveha): Check malloca() return
value.
2023-06-02 Bruno Haible <bruno@clisp.org>
setenv: Don't crash if malloc() returns NULL.
* lib/setenv.c (rpl_setenv): Check malloca() return value.
2023-06-02 Bruno Haible <bruno@clisp.org>
error: Avoid implicit-fallthrough warnings with -O0 (regr. 2023-05-30).
* lib/error.in.h (__gl_error_call): Parenthesize status. When not
optimizing, expand to code without compound statements.
2023-06-01 Bruno Haible <bruno@clisp.org>
getprogname: Add support for ASCII-compatible environments in z/OS.
Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00198.html>.
* lib/getprogname.c (getprogname): On z/OS, when compiling for an
ASCII-compatible environment, convert the result from EBCDIC to ASCII.
2023-06-01 Mitch Capper <mitch.capper@gmail.com>
gnulib-tool.py: Fix a format string mistake.
* pygnulib/GLImport.py (GLImport.execute): Fix a typo in a format
string.
Copyright-paperwork-exempt: Yes
2023-06-01 Bruno Haible <bruno@clisp.org>
Add info for maintainers and contributors.
* HACKING: New file.
2023-05-30 Nick Bowler <nbowler@draconx.ca>
readline: fix memory leak in replacement readline.
* lib/readline.c (readline): Free memory after getline failure.
Copyright-paperwork-exempt: true
2023-05-30 Paul Eggert <eggert@cs.ucla.edu>
error: don’t call ‘exit’
Let the underlying functions call ‘exit’, instead of having the
Gnulib replacement macros do it. Use ‘unreachable’ to tell the
compiler that those functions exit when the status is nonzero.
This saves a function call.
* lib/error.in.h: Include stddef.h, not stdlib.h.
(__gl_error_call): Rely on the function to exit, using
‘unreachable’ to tell the compiler that the function does not return.
* modules/error (Depends-on): Add stddef.
error: don’t evaluate status arg twice
This avoids potential issues if the first argument has a side effect.
* lib/error.in.h (__gl_error_call): New macro, which evaluates its
status arg only once, by using a statement expression if GNU C -
the only platform we need to worry about pacifying - and by simply
calling ‘error’ otherwise.
(error, error_at_line): Use it.
2023-05-28 Bruno Haible <bruno@clisp.org>
warnings, manywarnings: Assume autoconf >= 2.64.
* m4/warnings.m4 (gl_AS_VAR_APPEND): Remove macro.
(gl_COMPILER_OPTION_IF, gl_WARN_ADD): Use AS_VAR_APPEND instead of
gl_AS_VAR_APPEND.
* m4/manywarnings.m4: Likewise.
2023-05-28 Jim Meyering <meyering@fb.com>
file-has-acl: avoid warning from bleeding-edge GCC
* lib/file-has-acl.c: Include attribute.h.
(have_xattr): Declare with ATTRIBUTE_PURE,
to avoid new warning from GCC14-to-be.
* modules/file-has-acl (Depends-on): Add attribute.
Spotted while building coreutils with this:
gcc version 14.0.0 20230526 (experimental)
2023-05-28 Bruno Haible <bruno@clisp.org>
error: Avoid -Wint-in-bool-context warning.
Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00178.html>.
* lib/error.in.h (error, error_at_line): Use 'status != 0', since status
is expected to be an int, not a bool value.
2023-05-27 Bruno Haible <bruno@clisp.org>
error: Support the compiler's control flow analysis better.
* lib/error.in.h: Remove @PRAGMA_SYSTEM_HEADER@. Include <stdlib.h>.
(error): Define as a macro that explicitly invokes exit().
(error_at_line): Likewise.
* lib/error.c (_GL_NO_INLINE_ERROR): Define before including error.h.
* modules/error-h (configure.ac): Don't invoke gl_CONDITIONAL_HEADER.
(Makefile.am): Generate error.h always. Don't substitute
PRAGMA_SYSTEM_HEADER.
* m4/error_h.m4 (gl_ERROR_H): Set COMPILE_ERROR_C instead of
GL_GENERATE_ERROR_H.
* modules/error (configure.ac, Depends-on): Test COMPILE_ERROR_C instead
of GL_GENERATE_ERROR_H.
* lib/copy-file.c: Revert the last change.
2023-05-26 Bruno Haible <bruno@clisp.org>
flexmember: Make it easier to use.
* lib/flexmember.h (FLEXNSIZEOF): New macro.
* lib/hamt.c (alloc_bucket, alloc_subtrie): Fix FLEXSIZEOF invocation.
Use FLEXNSIZEOF instead of FLEXSIZEOF.
* lib/ssfmalloc.h (init_small_block_page_pool): Use FLEXNSIZEOF instead
of FLEXSIZEOF.
2023-05-26 Bruno Haible <bruno@clisp.org>
diffseq: Silence another gcc warning.
* lib/diffseq.h (compareseq): Move into the scope of the '#pragma GCC
diagnostic'.
2023-05-26 Bruno Haible <bruno@clisp.org>
copy-file: Silence gcc warnings.
* lib/copy-file.c: Add #pragma GCC diagnostic.
2023-05-26 Bruno Haible <bruno@clisp.org>
diffseq: Silence gcc warning.
* lib/diffseq.h: Add #pragma GCC diagnostic.
2023-05-24 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: speed up nomfi test
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Simplify and speed up
on current platforms, by seeing first whether
-Wno-missing-field-initializers is needed (it isn’t), so that
later we don’t need to determine whether it’s supported.
Simplify -Wno-missing-field-initializers checking
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don’t worry about
-Wmissing-field-initializers, as this is no longer needed now that
gl_MANYWARN_ALL_GCC is fixed.
manywarnings: port better to GCC 11.2 and earlier
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-diffutils/2023-05/msg00015.html
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Also test for GCC bug 82283
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283>.
2023-05-24 Bruno Haible <bruno@clisp.org>
asyncsafe-spin, simple-atomic: Don't use -mcpu-v9 on NetBSD/sparc.
Reported by Brandon Applegate in
<https://lists.gnu.org/archive/html/bug-gettext/2023-05/msg00042.html>.
* lib/asyncsafe-spin.c: Limit the SPARC workaround to Solaris.
* lib/simple-atomic.c: Likewise.
* m4/sparcv8+.m4 (gl_SPARC_V8PLUS): Likewise.
2023-05-23 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: wmemmove → __wmemmove in glibc part
https://sourceware.org/pipermail/libc-alpha/2023-May/148435.html
* lib/nstrftime.c (__strftime_internal) [COMPILE_WIDE]:
Use __wmemmove, not wmemmove, to keep in better sync with draft glibc.
2023-05-22 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Code style changes.
* lib/git-merge-changelog.c: Don't make side effects to variables
inside parenthesized expressions. Write (size_t)(-1), for consistency
with gl_list.h.
(compute_mapping): Rename variable in2 to jrev.
2023-05-21 Paul Eggert <eggert@cs.ucla.edu>
strtol: match 'configure' to 'make check'
Inferred from report by Tomasz Kłoczko <https://bugs.gnu.org/63632>.
* m4/strtol.m4 (gl_FUNC_STRTOL):
* m4/strtoll.m4 (gl_FUNC_STRTOLL):
Also test "0b", since the test cases check it.
git-merge-changelog: port to size_t padding
* lib/git-merge-changelog (entry_hashcode):
As a nicety, Prefer SIZE_WIDTH to computing it ourselves.
git-merge-changelog: prefer idx_t
* lib/git-merge-changelog.c: Include idx.h.
(struct entry, entry_create, entry_hashcode)
(struct changelog_file, read_changelog_file)
(entries_mapping_get, entries_mapping_reverse_get)
(compute_mapping, struct edit, struct differences)
(compute_differences, find_paragraph_end)
(try_split_merged_entry, struct conflict, conflict_write, main):
Prefer idx_t to ptrdiff_t and size_t when the value is a
nonnegative index or size. Change a few for-loops so that
the index never goes negative.
* modules/git-merge-changelog (Depends-on): Add idx.
git-merge-changelog: ssize_t → ptrdiff_t
Prefer ptrdiff_t to ssize_t, as per
<https://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00019.html>.
* lib/git-merge-changelog.c (struct entries_mapping)
(entries_mapping_get, entries_mapping_reverse_get)
(compute_mapping, struct edit, struct differences, OFFSET)
(OFFSET_MAX, EXTRA_CONTEXT_FIELDS, compute_differences, main):
Use ptrdiff_t, not ssize_t.
* modules/git-merge-changelog (Depends-on): Add stdint for PTRDIFF_MAX.
git-merge-changelog: port to ssize_t padding
* lib/git-merge-changelog.c (OFFSET_MAX): New macro, as a nicety.
2023-05-21 Bruno Haible <bruno@clisp.org>
limits-h tests: Check the value of SSIZE_MAX.
* tests/test-limits-h.c (limits12): New variable.
Include <sys/types.h> and check the value of SSIZE_MAX.
* modules/limits-h-tests (Depends-on): Add sys_types.
2023-05-21 Bruno Haible <bruno@clisp.org>
ssize_t: Fix replacement on 64-bit Windows.
* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Use prefix 'gl_' instead of 'gt_'.
Define ssize_t to 'long long' or 'long', depending on the width of
'size_t'.
2023-05-20 Paul Eggert <eggert@cs.ucla.edu>
limits-h: other modules can rely on SSIZE_MAX
* lib/areadlink-with-size.c, lib/areadlinkat-with-size.c:
* lib/careadlinkat.c, lib/getdelim.c, lib/getndelim2.c:
* lib/regex_internal.h:
(SSIZE_MAX): Do not define.
* modules/areadlink-with-size, modules/areadlinkat-with-size:
* modules/careadlinkat, modules/getdelim, modules/getndelim2:
* modules/regex:
(Depends-on) Add limits-h.
limits-h: define SSIZE_MAX
* doc/posix-headers/limits.texi (limits.h): Document this.
* lib/limits.in.h (SSIZE_MAX): Define if not already defined.
* m4/limits-h.m4 (gl_LIMITS_H): Also generate limits.h
if <limits.h> does not define SSIZE_MAX.
diffseq: backward compatibility for OFFSET_MAX
* lib/diffseq.h (OFFSET_MAX): Define only if not already defined.
2023-05-19 Bruno Haible <bruno@clisp.org>
careadlinkat: Silence gcc warning for GCC ≥ 12.
* lib/careadlinkat.c: For GCC 12 or newer, use
"#pragma GCC diagnostic ignored" to silence the warning.
2023-05-19 Pádraig Brady <P@draigBrady.com>
modechange: pacify gcc -Wsuggest-attribute=pure
* lib/modechange.h (mode_adjust): Add _GL_ATTRIBUTE_PURE
suggested with GCC 12 with -flto.
2023-05-19 Paul Eggert <eggert@cs.ucla.edu>
diffseq: don’t assume integers lack padding
* NEWS: Mention this.
* lib/diffseq.h (OFFSET_MAX): Don’t define;
this is now the user’s responsibility.
* lib/fstrcmp.c (OFFSET_MAX): Define to PTRDIFF_MAX.
2023-05-18 Bruno Haible <bruno@clisp.org>
getndelim2: Silence gcc warning.
* lib/getndelim2.c: Add #pragma GCC diagnostic.
(IF_LINT): Remove macro.
(getndelim2): Remove use of IF_LINT.
2023-05-18 Bruno Haible <bruno@clisp.org>
canonicalize: Silence gcc warning.
* lib/canonicalize.c: Add #pragma GCC diagnostic.
(IF_LINT): Remove macro.
(canonicalize_filename_mode_stk): Remove use of IF_LINT.
2023-05-18 Bruno Haible <bruno@clisp.org>
vasnprintf, c-vasnprintf: Silence gcc warning.
* lib/vasnprintf.c: Add #pragma GCC diagnostic.
2023-05-18 Bruno Haible <bruno@clisp.org>
nstrftime: Silence gcc warning.
* lib/nstrftime.c: Add #pragma GCC diagnostic.
2023-05-18 Bruno Haible <bruno@clisp.org>
astrxfrm: Silence gcc warning.
* lib/astrxfrm.c: Add #pragma GCC diagnostic.
2023-05-18 Bruno Haible <bruno@clisp.org>
vasnprintf, c-vasnprintf: Silence gcc warnings.
* lib/vasnprintf.c (scale10_round_decimal_decoded): Remove memory==NULL
test.
(scale10_round_decimal_long_double, scale10_round_decimal_double): Test
for memory==NULL here. Remove use of IF_LINT.
2023-05-18 Bruno Haible <bruno@clisp.org>
bitset: Silence gcc warning.
* lib/bitset/list.c (lbitset_copy_): Remove redundant test from the
loop's first iteration.
2023-05-18 Bruno Haible <bruno@clisp.org>
stack: Silence gcc warning in tests.
* lib/stack.h (init, destroy, empty, current_base, push, pop, discard,
top, size): Mark as possibly unused.
2023-05-18 Bruno Haible <bruno@clisp.org>
hamt: Silence gcc warning.
* lib/hamt.c (init_element): Mark as possibly unused.
2023-05-18 Bruno Haible <bruno@clisp.org>
get-rusage-data: Silence gcc warning.
* lib/get-rusage-data.c (get_rusage_data_via_iterator): Mark as possibly
unused.
2023-05-18 Bruno Haible <bruno@clisp.org>
astrxfrm: Fix use-after-free bug.
* lib/astrxfrm.c (astrxfrm): Don't use memcpy after realloc succeeded.
2023-05-18 Bruno Haible <bruno@clisp.org>
gnulib-tool: Ignore .orig and .rej files under modules/.
* gnulib-tool (func_sanitize_modulelist): Exclude also files whose name
ends in .orig or .rej.
* pygnulib/GLModuleSystem.py (GLModuleSystem.file_is_module): Likewise.
2023-05-18 Bruno Haible <bruno@clisp.org>
uchar: Fix error when <uchar.h> is included twice.
* lib/uchar.in.h: Fix double-inclusion guard.
2023-05-17 Paul Eggert <eggert@cs.ucla.edu>
stdckdint: use in more modules
* lib/nstrftime.c (__strftime_internal):
* lib/parse-datetime.y (apply_relative_time, zone, date)
(iso_8601_date, relunit, relunit_snumber, time_zone_hhmm)
(to_tm_year, yylex, parse_datetime_body):
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
* lib/xstrtol.c (bkm_scale):
Prefer ckd_add to INT_ADD_WRAPV etc., and include stdckdint.h.
* modules/nstrftime, modules/parse-datetime:
* modules/timespec-add, modules/timespec-sub, modules/xstrtol:
(Depends-on): Add stdckdint.
nstrftime: suggest to glibc how to avoid alloca
* lib/nstrftime.c (widen) [COMPILE_WIDE]: Remove.
(__strftime_internal) [COMPILE_WIDE): Instead of converting the
multibyte time zone abbreviation into a potentially unbounded
alloca buffer, convert it directly into the output buffer.
Although this code is not used in Gnulib, this can help the glibc
developers avoid the problem on the glibc side.
2023-05-15 Bruno Haible <bruno@clisp.org>
doc: New chapter "Strings and Characters".
* doc/strings.texi: New file.
* doc/gnulib.texi (POSIXURL): New variable.
(posixheader, posixfunc, func): New macros, from GNU libunistring's
documentation.
Include strings.texi.
(Particular Modules): Don't include c-locale.texi here.
* doc/c-locale.texi: Sections become subsections, subsections become
subsubsections.
* doc/posix-functions/isalnum.texi: Mention c32isalnum.
* doc/posix-functions/isalpha.texi: Mention c32isalpha.
* doc/posix-functions/isblank.texi: Mention c32isblank.
* doc/posix-functions/iscntrl.texi: Mention c32iscntrl.
* doc/posix-functions/isdigit.texi: Mention c32isdigit.
* doc/posix-functions/isgraph.texi: Mention c32isgraph.
* doc/posix-functions/islower.texi: Mention c32islower.
* doc/posix-functions/isprint.texi: Mention c32isprint.
* doc/posix-functions/ispunct.texi: Mention c32ispunct.
* doc/posix-functions/isspace.texi: Mention c32isspace.
* doc/posix-functions/isupper.texi: Mention c32isupper.
* doc/posix-functions/isxdigit.texi: Mention c32isxdigit.
* doc/posix-functions/tolower.texi: Mention alternative APIs.
* doc/posix-functions/toupper.texi: Likewise.
* doc/posix-functions/towlower.texi: Mention c32tolower.
* doc/posix-functions/towupper.texi: Mention c32toupper.
* doc/posix-functions/wcswidth.texi: Mention c32swidth.
* doc/posix-functions/wcwidth.texi: Mention c32width.
2023-05-15 Bruno Haible <bruno@clisp.org>
sigsegv: Add tentative support for Hurd/x86_64.
Based on explanations by Sergey Bugaev <bugaevc@gmail.com>.
* lib/sigsegv.c: Update from libsigsegv/src/fault-hurd-i386-old.h.
2023-05-15 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: improve port to Fedora 39
Problem reported by Ondrej Valousek in:
https://lists.gnu.org/r/bug-gnulib/2023-05/msg00078.html
* lib/file-has-acl.c: Include minmax.h.
[USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR]: Include stdckdint.h.
(file_has_acl) [USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR]:
If the file has NFSv4 ACLs, ignore any POSIX ACLs, for Fedora 39.
Return a bit faster when listxattr returns 0.
Don’t loop forever if an attacker is fiddling with ACLs.
* modules/file-has-acl (Depends-on): Add minmax, stdckdint.
2023-05-15 Bruno Haible <bruno@clisp.org>
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283 .
Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00077.html>.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Add
-Wno-missing-field-initializers for GCC < 11.
2023-05-15 Bruno Haible <bruno@clisp.org>
gettimeofday, pthread-*, thread, thrd: Don't omit intended initializers.
* lib/gettimeofday.c (gettimeofday): List the initializers of both
tv_sec and tv_usec.
* lib/glthread/thread.c (gl_thread_self): List the initializers of both
tv_sec and tv_nsec.
* lib/pthread-cond.c (pthread_cond_wait): Likewise.
* lib/thrd.c (rpl_thrd_current): Likewise.
* lib/pthread-rwlock.c (MIN): New macro.
(pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock): List the
initializers of both tv_sec and tv_nsec. Don't modify the duration after
having initialized it.
* lib/pthread_mutex_timedlock.c (MIN): New macro.
(pthread_mutex_timedlock): List the initializers of both tv_sec and
tv_nsec. Don't modify the duration after having initialized it.
select: Fix compilation error (regression from yesterday).
* lib/select.c (rpl_select): Revert last change.
poll: Fix syntax error (regression from yesterday).
* lib/poll.c (poll): Remove semicolon inside braces.
2023-05-14 Paul Eggert <eggert@cs.ucla.edu>
timespec: fill in other members
This problem was found when compiling GNU Emacs with
--enable-gcc-warnings on a platform where tv_sec is 64 bits and
tv_nsec is 32 bits, and struct timespec has padding. GCC
-Wuse-of-uninitialized-value complained when a struct timespec
initialized only via assigning to tv_sec and tv_nsec was copied
via assignment (this was in lib/timespec.h’s make_timespec).
Although behavior is well-defined on this platform, the warning is
annoying and the behavior might not be well-defined on theoretical
platforms where struct timespec has other members. To work around
this, initialize all the struct’s members.
* lib/getsockopt.c (rpl_getsockopt):
* lib/gettime.c (gettime):
* lib/gettimeofday.c (gettimeofday):
* lib/glthread/thread.c (gl_thread_self):
* lib/nanosleep.c (nanosleep):
* lib/parse-datetime.y (digits_to_date_time, set_hhmmss)
(signed_seconds, unsigned_seconds, yylex, parse_datetime_body):
* lib/poll.c (poll):
* lib/pselect.c (pselect):
* lib/pthread-cond.c (endlessly, pthread_cond_timedwait):
* lib/pthread-rwlock.c (pthread_rwlock_timedrdlock)
(pthread_rwlock_timedwrlock):
* lib/pthread_mutex_timedlock.c (pthread_mutex_timedlock):
* lib/select.c (rpl_select):
* lib/settime.c (settime):
* lib/stat-time.h (get_stat_atime, get_stat_ctime)
(get_stat_mtime, get_stat_birthtime):
* lib/thrd.c (rpl_thrd_current):
* lib/timespec.h (make_timespec):
* lib/timespec_getres.c (timespec_getres):
* lib/utimecmp.c (utimecmpat):
* lib/utimens.c (fdutimens):
When filling in a struct timespec or similar time-related structure
that might be copied elsewhere, also assign to any storage other
than tv_sec and tv_nsec, to avoid undefined behavior on (likely
theoretical) platforms where struct timespec has other members,
and also to avoid warnings from GCC and/or valgrind.
year2038-recommended: Improve failure diagnostic.
* m4/largefile.m4 (AC_SYS_YEAR2038_RECOMMENDED): Sync from Autoconf.
2023-05-13 Paul Eggert <eggert@cs.ucla.edu>
stdio: use _GL_ATTRIBUTE_MALLOC
* lib/stdio.in.h (fdopen, fopen, popen, tmpfile): Declare with
_GL_ATTRIBUTE_MALLOC, for consistency with glibc, and so that
building the fopen module with ‘gcc -O2 -Wsuggest-attribute=malloc
-Wsystem-headers -Werror’ does not fail with “stdio.h: In function
‘rpl_fopen’: stdio.h:970:1: error: function might be candidate for
attribute ‘malloc’ [-Werror=suggest-attribute=malloc]”, a problem
I noticed on both Fedora 38 and Ubuntu 23.04.
2023-05-12 Bruno Haible <bruno@clisp.org>
sigsegv: Add tentative support for Hurd/x86_64.
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
* lib/sigsegv.c: Update from libsigsegv/src/fault-hurd-i386.h.
2023-05-12 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: port to Fedora 39
Fedora 39 getxattr with XATTR_NAME_POSIX_ACL_ACCESS either
succeeds or fails with ENODATA, so it is no longer possible to
detect from its failure that the filesystem might support NFSv4 ACLs.
Problem reported by Ondrej Valousek in:
https://lists.gnu.org/r/bug-gnulib/2023-04/msg00228.html
Instead, use listxattr to determine whether NFSv4 ACLs are in play.
This typically saves syscalls anyway.
* lib/file-has-acl.c: In #if, use (HAVE_LINUX_XATTR_H &&
HAVE_LISTXATTR) instead of GETXATTR_WITH_POSIX_ACLS.
The following changes apply when (USE_ACL && HAVE_LINUX_XATTR_H &&
HAVE_LISTXATTR):
Include minmax.h.
(have_xattr): New function.
(file_has_acl): Try listxattr first; typically this means we need
to do no other syscall. Call getxattr only if there are NFSv4
ACLs but not POSIX ACLs.
* m4/acl.m4 (gl_FILE_HAS_ACL): Simplify by merely testing for
linux/xattr.h and listxattr. All uses changed.
2023-05-10 Josh Soref <jsoref@gmail.com>
bootstrap: spelling/grammar fix in comment
* build-aux/bootstrap: As above.
2023-05-07 Paul Eggert <eggert@cs.ucla.edu>
Warn against bogus TZ settings
* doc/parse-datetime.texi (Specifying time zone rules):
Warn against TZ="UTC=5".
2023-05-05 Bruno Haible <bruno@clisp.org>
dirfd: Add tests.
* tests/test-dirfd.c: New file.
* modules/dirfd-tests: New file.
2023-05-05 Bruno Haible <bruno@clisp.org>
dirfd: Fix bogus override (regression 2023-04-26).
Reported by Bjarni Ingi Gislason <bjarniig@simnet.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00040.html>.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Fix mistake in last change.
2023-05-04 Bruno Haible <bruno@clisp.org>
c32swidth: Add tests.
* tests/test-c32swidth.c: New file, based on tests/test-c32width.c.
* modules/c32swidth-tests: New file.
c32swidth: New module.
* lib/uchar.in.h (c32swidth): New declaration.
* lib/wcswidth-impl.h: Use macros FUNC, UNIT, CHARACTER_WIDTH.
* lib/wcswidth.c: Define FUNC, UNIT, CHARACTER_WIDTH before including
wcswidth-impl.h.
* lib/c32swidth.c: New file.
* modules/c32swidth: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32SWIDTH.
* modules/uchar (Makefile.am): Substitute GNULIB_C32SWIDTH.
2023-05-04 Bruno Haible <bruno@clisp.org>
wcswidth: Fix result in case of overflow.
* lib/wcswidth-impl.h (wcswidth): Continue searching for a non-printing
wide character after the total width has become > INT_MAX.
2023-05-04 Bruno Haible <bruno@clisp.org>
wcswidth: Relax license.
* modules/wcswidth (License): Change to LGPLv2+.
* lib/wcswidth.c: Update license notice.
* lib/wcswidth-impl.h: Likewise.
2023-05-04 Bruno Haible <bruno@clisp.org>
c32width: Relax license.
* modules/c32width (License): Change to LGPLv2+.
* lib/c32width.c: Update license notice.
2023-05-04 Bruno Haible <bruno@clisp.org>
c32to*: Relax license.
* modules/c32tolower (License): Change to LGPLv2+.
* modules/c32toupper (License): Likewise.
* lib/c32tolower.c: Update license notice.
* lib/c32toupper.c: Likewise.
* lib/c32to-impl.h: Likewise.
unicase/tolower, unicase/toupper: Relax license.
* lib/gen-uni-tables.c (output_simple_mapping): Bump copyright year. For
unicase/tolower.h and unicase/toupper.h, use the LGPLv2+.
* lib/unicase/tolower.h: Regenerated.
* lib/unicase/toupper.h: Likewise.
* lib/unicase/simple-mapping.h: Update license notice.
* lib/unicase/tolower.c: Likewise.
* lib/unicase/toupper.c: Likewise.
* modules/unicase/tolower (License): Change to LGPLv2+.
* modules/unicase/toupper (License): Likewise.
unicase/base: Relax license.
* modules/unicase/base (License): Change to LGPLv2+.
* lib/unicase.in.h: Update license notice.
2023-05-04 Bruno Haible <bruno@clisp.org>
c32is*: Relax license.
* modules/c32isalnum (License): Change to LGPLv2+.
* modules/c32isalpha (License): Likewise.
* modules/c32isblank (License): Likewise.
* modules/c32iscntrl (License): Likewise.
* modules/c32isdigit (License): Likewise.
* modules/c32isgraph (License): Likewise.
* modules/c32islower (License): Likewise.
* modules/c32isprint (License): Likewise.
* modules/c32ispunct (License): Likewise.
* modules/c32isspace (License): Likewise.
* modules/c32isupper (License): Likewise.
* modules/c32isxdigit (License): Likewise.
* lib/c32isalnum.c: Update license notice.
* lib/c32isalpha.c: Likewise.
* lib/c32isblank.c: Likewise.
* lib/c32iscntrl.c: Likewise.
* lib/c32isdigit.c: Likewise.
* lib/c32isgraph.c: Likewise.
* lib/c32islower.c: Likewise.
* lib/c32isprint.c: Likewise.
* lib/c32ispunct.c: Likewise.
* lib/c32isspace.c: Likewise.
* lib/c32isupper.c: Likewise.
* lib/c32isxdigit.c: Likewise.
* lib/c32is-impl.h: Likewise.
unictype/ctype-*: Relax license.
* lib/gen-uni-tables.c (output_predicate): Bump copyright year. For
unictype/ctype_*, use the LGPLv2+.
* lib/unictype/ctype_*.h: Regenerated.
* lib/unictype/ctype_*.c: Update license notice.
* modules/unictype/ctype-alnum (License): Change to LGPLv2+.
* modules/unictype/ctype-alpha (License): Likewise.
* modules/unictype/ctype-blank (License): Likewise.
* modules/unictype/ctype-cntrl (License): Likewise.
* modules/unictype/ctype-digit (License): Likewise.
* modules/unictype/ctype-graph (License): Likewise.
* modules/unictype/ctype-lower (License): Likewise.
* modules/unictype/ctype-print (License): Likewise.
* modules/unictype/ctype-punct (License): Likewise.
* modules/unictype/ctype-space (License): Likewise.
* modules/unictype/ctype-upper (License): Likewise.
* modules/unictype/ctype-xdigit (License): Likewise.
2023-05-04 Bruno Haible <bruno@clisp.org>
c32width: Add tests.
* tests/test-c32width.c: New file, based on tests/test-wcwidth.c.
* modules/c32width-tests: New file.
c32width: New module.
* lib/uchar.in.h (c32width): New declaration.
* lib/c32width.c: New file, based on lib/c32is-impl.h.
* modules/c32width: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32WIDTH.
* modules/uchar (Makefile.am): Substitute GNULIB_C32WIDTH.
2023-05-04 Bruno Haible <bruno@clisp.org>
doc: Mention macOS wcwidth bug.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Mention macOS bugs.
* doc/posix-functions/wcwidth.texi: Update regarding macOS.
2023-05-03 Bruno Haible <bruno@clisp.org>
vasnprintf, vasnwprintf: Make '0' flag handling more ISO C compliant.
* lib/vasnprintf.c (VASNPRINTF): When doing the padding ourselves,
ignore the '0' flag if a precision is specified and the conversion is
one of d, i, o, u, x, X, b, B.
* tests/test-vasnprintf-posix.c (test_function): Update expected results
accordingly.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
2023-05-02 Paul Eggert <eggert@cs.ucla.edu>
mktime: include <intprops.h>
* lib/mktime.c: Include <intprops.h> again,
fixing a typo noted by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-05/msg00014.html
2023-05-02 Bruno Haible <bruno@clisp.org>
fopen: Silence a gcc warning.
* lib/fopen.c (rpl_fopen): Mark open_direction as used.
2023-05-01 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: port to pcc
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Port to pcc
1.2.0.DEVEL 20220331, which doesn’t support extern inline
even though it claims to be GCC 4.3 and to support C11.
regex: prefer C23 style overflow checking
* lib/regex_internal.h: Include stdckdint.h.
* lib/regexec.c (re_search_2_stub):
* modules/regex (Depends-on): Add stdckdint.
Prefer stdckdint.h to intprops.h macros.
dynarray: prefer C23 style overflow checking
* lib/malloc/dynarray_emplace_enlarge.c, lib/malloc/dynarray_resize.c:
Include stdckdint.h, not intprops.h.
* lib/malloc/dynarray_emplace_enlarge.c:
(__libc_dynarray_emplace_enlarge):
* lib/malloc/dynarray_resize.c (__libc_dynarray_resize):
Prefer stdckdint.h to intprops.h macros.
* modules/glibc-internal/dynarray (Depends-on):
Depend on stdckdint, not intprops.
mktime: prefer C23 style overflow checking
Prefer stdckdint.h macros to intprops.h macros where either will do,
as this is the C23 standard. Also, it ports around a pcc bug.
* config/srclist.txt: Comment out mktime.c.
* lib/mktime.c: Include stdckdint.h, not intprops.h.
(__mktime_internal): Prefer stdckdint.h to intprops.h macros.
* modules/mktime (Depends-on): Add stdckdint.
limits-h: port to pcc
* doc/posix-headers/limits.texi: Document the issue.
* lib/limits.in.h (MB_LEN_MAX): New macro, if not already defined.
* m4/limits-h.m4 (gl_LIMITS_H): Test for MB_LEN_MAX.
* tests/test-limits-h.c: Check that it’s positive.
2023-04-28 Paul Eggert <eggert@cs.ucla.edu>
year2038-recommended: new module
Remove year2038-required and largefile-required, replacing
the former with year2038-recommended and simply removing
the latter. This syncs with Autoconf master.
* MODULES.html.sh, NEWS, doc/largefile.texi:
* all-modules (exclude): Exclude year2038-recommended, not -required.
* doc/posix-headers/sys_types.texi, doc/posix-headers/time.texi:
* doc/year2038.texi: Mention this.
* m4/largefile.m4: Sync from Autoconf. Override existing macros
if AC_SYS_YEAR2038_RECOMMENDED is not defined, rather than if
AC_SYS_LARGEFILE_REQUIRED is not defined.
* modules/largefile-required, modules/year2038-required: Removed.
* modules/year2038: Do not depend on largefile; simply
use m4/largefile.m4, since we shouldn’t need the extra goodies
largefile supplies.
* modules/year2038-recommended: New module.
2023-04-28 Bruno Haible <bruno@clisp.org>
stdio: Avoid different configure results in different testdirs.
* m4/stdio_h.m4 (gl_STDIO_H_EARLY): New macro, extracted from
gl_STDIO_H.
(gl_STDIO_H): Move the code that sets __USE_MINGW_ANSI_STDIO to
gl_STDIO_H_EARLY.
* modules/stdio (configure.ac-early): New section.
2023-04-28 Bruno Haible <bruno@clisp.org>
stdbool tests: Avoid compilation error with Sun C on Solaris 10.
* tests/test-stdbool.c (WORKING_BOOL): Set to 0 on Sun C.
2023-04-28 Bruno Haible <bruno@clisp.org>
hamt tests: Fix test failure with Sun C on Solaris 10/SPARC.
* tests/test-hamt.c (main): Finish with exit code 0.
2023-04-27 Bruno Haible <bruno@clisp.org>
localeconv: Work around a mingw bug.
* m4/localeconv.m4 (gl_FUNC_LOCALECONV): Test whether fields of type
'char' are filled correctly.
(gl_PREREQ_LOCALECONV): Test whether 'struct lconv' has the int_{p,n}_*
members.
* lib/localeconv.c (FIX_CHAR_VALUE): New macro.
(localeconv): Replace negative field values with CHAR_MAX.
* doc/posix-functions/localeconv.texi: Mention the mingw bug.
2023-04-27 Bruno Haible <bruno@clisp.org>
stdlib: Fix error when cross-compiling (regression 2023-04-04).
Reported by Pierre Labastie <pierre.labastie@neuf.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00220.html>.
* m4/stdlib_h.m4 (gl_STDLIB_H): Provide a 4th argument to AC_RUN_IFELSE.
2023-04-26 Paul Eggert <eggert@cs.ucla.edu>
freopen-safer: pacify GCC 13
* lib/freopen-safer.c: Ignore -Wanalyzer-fd-leak.
2023-04-26 Bruno Haible <bruno@clisp.org>
fdopendir: Fix fd leak and test failure on native Windows.
--
* lib/dirent-private.h: On mingw, define 'struct gl_directory' as a
wrapper around the original DIR. On MSVC, add an 'fd_to_close' field to
'struct gl_directory'.
* lib/dirent.in.h (DIR): Define when DIR_HAS_FD_MEMBER is 0, i.e. on
both mingw and MSVC.
(GNULIB_defined_DIR): New macro.
(opendir): Avoid incompatible redeclaration.
(readdir): Consider REPLACE_READDIR.
(rewinddir): Consider REPLACE_REWINDDIR.
* m4/dirent_h.m4 (gl_DIRENT_DIR): New macro.
(gl_DIRENT_H): Invoke it.
(gl_DIRENT_H_DEFAULTS): Initialize REPLACE_READDIR, REPLACE_REWINDDIR.
* modules/dirent (Makefile.am): Substitute DIR_HAS_FD_MEMBER,
REPLACE_READDIR, REPLACE_REWINDDIR.
--
* lib/dirfd.c (dirfd): If GNULIB_defined_DIR, just use the
'fd_to_close' field.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Set HAVE_DIRFD. Don't set REPLACE_DIRFD
to 1 if HAVE_DIRFD is 0. If DIR_HAS_FD_MEMBER is 0, ensure dirfd.c gets
compiled.
* modules/dirfd (Files): Add lib/dirent-private.h.
(Depends-on, configure.ac): Simplify conditions.
--
* lib/closedir.c: Include <stdlib.h> always, for free().
(closedir): If GNULIB_defined_DIR, arrange to call close(dirfd(dirp)) at
the end. On mingw, call free() of dirp. Prefer testing HAVE_DIRENT_H,
for consistency with dirent.h.
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Don't set REPLACE_CLOSEDIR to 1 if
HAVE_CLOSEDIR is 0. If DIR_HAS_FD_MEMBER is 0, ensure closedir.c gets
compiled.
--
* lib/opendir.c: Include <stdlib.h> always. Include <string.h>.
(opendir): On mingw, allocate the 'struct gl_directory' through malloc.
If GNULIB_defined_DIR, set the 'fd_to_close' field to -1. Prefer
testing HAVE_DIRENT_H, for consistency with dirent.h.
* m4/opendir.m4 (gl_FUNC_OPENDIR): Don't set REPLACE_OPENDIR to 1 if
HAVE_OPENDIR is 0. If DIR_HAS_FD_MEMBER is 0, ensure opendir.c gets
compiled.
--
* lib/fdopendir.c (fdopendir): If GNULIB_defined_DIR, use a simple
implementation based on opendir and the fchdir module. If __KLIBC__,
don't define unused auxiliary functions.
* modules/fdopendir (Files): Add lib/dirent-private.h.
--
* lib/readdir.c (readdir): On mingw, redirect to the original readdir
function. Prefer testing HAVE_DIRENT_H, for consistency with dirent.h.
* m4/readdir.m4 (gl_FUNC_READDIR): If DIR_HAS_FD_MEMBER is 0, ensure
readdir.c gets compiled.
* modules/readdir (configure.ac): Consider REPLACE_READDIR.
--
* lib/rewinddir.c (rewinddir): On mingw, redirect to the original
rewinddir function. Prefer testing HAVE_DIRENT_H, for consistency with
dirent.h.
* m4/rewinddir.m4 (gl_FUNC_REWINDDIR): If DIR_HAS_FD_MEMBER is 0, ensure
rewinddir.c gets compiled.
* modules/rewinddir (configure.ac): Consider REPLACE_REWINDDIR.
--
* lib/fchdir.c (dir_info_t): Remove a FIXME.
2023-04-26 Bruno Haible <bruno@clisp.org>
fchdir tests: Fix test failure on native Windows.
* modules/fchdir-tests (Depends-on): Add dup.
2023-04-26 Bruno Haible <bruno@clisp.org>
fclose: Make last change more maintainable.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Define through AC_DEFUN_ONCE. Don't
modify REPLACE_FOPEN.
* modules/fclose (Depends-on): Add comment.
(configure.ac): Don't modify REPLACE_FOPEN. Don't duplicate actions of
module 'fopen'.
* m4/fopen.m4 (gl_FUNC_FOPEN_ITSELF): Renamed from gl_FUNC_FOPEN.
(gl_FUNC_FOPEN): New macro.
* modules/fopen (Files): Add m4/fclose.m4, m4/fflush.m4.
* m4/close.m4 (gl_FUNC_CLOSE): Define through AC_DEFUN_ONCE.
2023-04-26 Po Lu <luangruo@yahoo.com> (tiny change)
Bruno Haible <bruno@clisp.org>
gnulib-tool: For conditional dependencies, generate portable sh code.
* gnulib-tool (func_emit_autoconf_snippets): Avoid sh syntax
'if ! variable', that does not work with Solaris /bin/sh.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Likewise.
2023-04-25 Bruno Haible <bruno@clisp.org>
expm1 tests: Avoid test failure on 32-bit mingw.
* tests/test-expm1.h (test_function): Mark y as 'volatile'.
2023-04-25 Bruno Haible <bruno@clisp.org>
poll tests: Avoid test failure on native Windows.
* tests/test-poll.c (test_pipe): Disable the POLLHUP check also on
native Windows.
* doc/posix-functions/poll.texi: Mention also native Windows w.r.t.
POLLHUP.
2023-04-25 Bruno Haible <bruno@clisp.org>
dfa tests: Fix compilation error (regression 2023-04-22).
* tests/test-dfa-match-aux.c: Include unistd.h.
* modules/dfa-tests (Depends-on): Add unistd.
2023-04-24 Bruno Haible <bruno@clisp.org>
tests: Suppress ‘#pragma GCC diagnostic’ warnings with GCC < 13.
* tests/test-localename.c: Disable #pragma for GCC < 12.
* tests/test-dup2.c: Disable #pragma for GCC < 13.
* tests/test-fcntl.c: Likewise.
* tests/test-getdtablesize.c: Likewise.
* tests/test-listen.c: Likewise.
* tests/test-open.h: Likewise.
* tests/test-perror2.c: Likewise.
* tests/test-select.h: Likewise.
2023-04-24 Bruno Haible <bruno@clisp.org>
select, pselect: Fix test failure on native Windows.
* lib/select.c (rpl_select): Fail if nfds is out-of-range.
* lib/pselect.c (pselect): Likewise.
2023-04-24 Paul Eggert <eggert@cs.ucla.edu>
fclose: pacify gcc -Wanalyzer-file-leak
Without this patch, building coreutils with
--enable-gcc-checking=expensive would fail with a message like
“lib/exclude.c:682:6: error: leak of FILE 'in' [CWE-775]
[-Werror=analyzer-file-leak]”, because Gnulib replaced fclose but
not fopen, and GCC saw a call to fopen followed by a call to
rpl_fclose. The patch causes GCC to instead see a call to
rpl_fopen followed by rpl_fclose.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Replace fopen when replacing
fclose.
* modules/fclose (Depends-on): Add fopen.
(configure.ac): Replace fopen when replacing fclose.
unsetenv-tests: pacify -Wanalyzer-putenv-of-auto-var
* tests/test-unsetenv.c (main): Make entry static. Even with this
change, it’s unclear whether this test is portable POSIX code, but
that’s a different matter.
tests: suppress some unwanted -fanalyzer checking
* tests/test-dup2.c, tests/test-fcntl.c, tests/test-fopen.h:
* tests/test-getdtablesize.c, tests/test-listen.c:
* tests/test-localename.c, tests/test-open.h, tests/test-perror2.c:
* tests/test-select.h:
Add pragmas to disable unwanted -fanalyzer checking.
2023-04-24 Bruno Haible <bruno@clisp.org>
ftell, ftello: Fix recognition of pipes on native Windows.
* m4/lseek.m4 (gl_FUNC_LSEEK): Update comment.
* m4/ftello.m4 (gl_FUNC_FTELLO): On native Windows, set REPLACE_FTELLO=1
always.
* doc/posix-functions/ftello.texi: Mention the behaviour on pipes.
* doc/posix-functions/ftell.texi: Likewise.
* doc/posix-functions/fgetpos.texi: Likewise.
2023-04-24 Bruno Haible <bruno@clisp.org>
lseek: Fix module dependencies (regression 2021-11-15).
* modules/lseek (Depends-on): Re-enable the msvc-nothrow dependency
also when WINDOWS_64_BIT_OFF_T is 0.
2023-04-24 Bruno Haible <bruno@clisp.org>
system-quote: Fix memory overrun bug on native Windows.
* lib/system-quote.c (system_quote): Allocate enough space for the
result.
2023-04-24 Bruno Haible <bruno@clisp.org>
unicodeio tests: Avoid test failures on native Windows.
* tests/test-unicodeio.c: Include localcharset.h.
(main): Handle C locales whose encoding is CP1252 or similar.
* modules/unicodeio-tests (Depends-on): Add localcharset.
2023-04-24 Bruno Haible <bruno@clisp.org>
*sprintf tests: Avoid test failures on mingw 10.
* tests/test-vasnprintf-posix.c (test_function): On newer mingw, expect
the de-facto standard result.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
2023-04-23 Bruno Haible <bruno@clisp.org>
Improve quoting of AS_HELP_STRING's first argument.
* m4/acl.m4 (gl_FUNC_ACL_ARG): Don't underquote AS_HELP_STRING's first
argument.
* m4/assert.m4 (gl_ASSERT): Likewise.
* m4/gc.m4 (gl_GC): Likewise.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Likewise.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise.
* m4/libgmp.m4 (gl_LIBGMP): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Likewise.
* m4/selinux-selinux-h.m4 (gl_LIBSELINUX): Likewise.
* m4/sigsegv.m4 (gl_SIGSEGV): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise.
* m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Likewise.
* m4/version-etc.m4 (gl_VERSION_ETC_FLAG): Likewise.
* m4/xattr.m4 (gl_FUNC_XATTR): Likewise.
* doc/manywarnings.texi (manywarnings): Likewise. This avoids the use of
quadrigraphs.
2023-04-23 Bruno Haible <bruno@clisp.org>
category-none: Fix link errors on MSVC, when libunistring is installed.
* modules/unictype/category-none (configure.ac): Remove
gl_LIBUNISTRING_MODULE invocation.
(Makefile.am): Compile unictype/categ_none.c always.
2023-04-23 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: use AS_IF
* m4/manywarnings.m4 (gl_MANYWARN_COMPLEMENT):
Use AS_IF when the body contains Autoconf macros that could
conceivably require something.
manywarnings: update C warnings for GCC 13
Adjust for C programs compiled by GCC 13.
(A C++ expert still needs to look at manywarnings-c++.m4.)
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 13.
* doc/manywarnings.texi (manywarnings): Document flex arrays.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add
-fstrict-flex-arrays and -Wstrict-flex-arrays as these should be
suitable for Gnulib-using code.
manywarnings: bring doc up to date
* doc/manywarnings.texi: Bring doc up to date for GCC 12.
manywarnings: omit -fno-common in GCC 10+
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Omit -fno-common
in GCC 10 and later, as it is the default there.
Check exit status of ‘gcc --version’.
2023-04-23 Bruno Haible <bruno@clisp.org>
libunistring: Fix build on Windows, when a libunistring is installed.
* lib/unicase.in.h: Include <unistring/woe32dll.h>.
(unicase_empty_prefix_context, unicase_empty_suffix_context): Declare
with GNULIB_UNICASE_..._DLL_VARIABLE.
* lib/unictype.in.h: Include <unistring/woe32dll.h>.
(UC_CATEGORY_*, UC_PROPERTY_*): Declare with
GNULIB_UNICTYPE_..._DLL_VARIABLE.
* lib/uninorm.in.h: Include <unistring/woe32dll.h>.
(unicode_normalization_form uninorm_nf*): Declare with
GNULIB_UNINORM_..._DLL_VARIABLE.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE_WITH_VARIABLE): New
macro.
(gl_LIBUNISTRING_LIB_PREPARE): Set HAVE_UNISTRING_WOE32DLL_H.
* m4/unicase_h.m4: New file.
* m4/unictype_h.m4: New file.
* m4/uninorm_h.m4: New file.
* modules/unicase/base (Files): Add m4/unicase_h.m4.
(configure.ac): Bump version number. Invoke gl_UNICASE_H,
gl_UNICASE_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNICASE_*_DLL_VARIABLE.
* modules/unicase/empty-*-context (configure.ac): Invoke
gl_UNICASE_H_REQUIRE_DEFAULTS. Use gl_LIBUNISTRING_MODULE_WITH_VARIABLE.
* modules/unictype/base (Files): Add m4/unictype_h.m4.
(configure.ac): Bump version number. Invoke gl_UNICTYPE_H,
gl_UNICTYPE_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNICTYPE_*_DLL_VARIABLE.
* modules/unictype/category-* (configure.ac): Invoke
gl_UNICTYPE_H_REQUIRE_DEFAULTS. Use
gl_LIBUNISTRING_MODULE_WITH_VARIABLE.
* modules/unictype/property-* (configure.ac): Likewise.
* modules/uninorm/base (Files): Add m4/uninorm_h.m4.
(configure.ac): Bump version number. Invoke gl_UNINORM_H,
gl_UNINORM_H_REQUIRE_DEFAULTS.
(Makefile.am): Substitute all GNULIB_UNINORM_*_DLL_VARIABLE.
* modules/uninorm/nf* (configure.ac): Invoke
gl_UNINORM_H_REQUIRE_DEFAULTS. Use gl_LIBUNISTRING_MODULE_WITH_VARIABLE.
2023-04-22 Bruno Haible <bruno@clisp.org>
Avoid some Autoconf "was expanded before it was required" warnings.
* m4/locale-ar.m4 (gt_LOCALE_AR): Define through AC_DEFUN_ONCE.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
* m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
2023-04-22 Bruno Haible <bruno@clisp.org>
string-desc tests: Avoid test failure on native Windows.
* tests/test-string-desc.c: Include <fcntl.h>, <unistd.h>.
(main): Expect a file name argument. Write to this file, instead of to
fd 3.
* tests/test-string-desc.sh: Pass a file name as argument, instead of
using '3>'.
* modules/string-desc-tests (Depends-on): Add close.
2023-04-22 Bruno Haible <bruno@clisp.org>
threadlib, pthread-h, threads-h: Avoid mingw's libwinpthread by default.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Set
gl_use_winpthreads_default to 'no' by default.
(gl_AVOID_WINPTHREAD): Update comments.
2023-04-22 Bruno Haible <bruno@clisp.org>
posixtm tests: Avoid test failure on native Windows.
* tests/test-posixtm.c (T): On native Windows, disable test cases that
would fail.
2023-04-22 Bruno Haible <bruno@clisp.org>
dfa tests: Fix test failure on mingw differently.
Suggested by Paul Eggert.
* tests/test-dfa-invalid-char-class.sh: Revert last change.
* tests/test-dfa-match-aux.c: Include binary-io.h.
(main): Put stdout into binary mode.
* modules/dfa-tests (Depends-on): Add binary-io.
2023-04-20 Bruno Haible <bruno@clisp.org>
getumask: Make it work on native Windows.
* lib/getumask.c (getumask): When TMPDIR is unset, try TMP and TEMP.
* tests/test-getumask.c (ASSUME_UMASK_CONSTANT): Define to 1 on native
Windows.
2023-04-20 Bruno Haible <bruno@clisp.org>
posixtm tests: Fix link error.
* modules/posixtm-tests (Depends-on): Add stpcpy.
2023-04-20 Bruno Haible <bruno@clisp.org>
readtokens tests: Fix test failure on mingw.
* tests/test-readtokens.sh: Transform CRLF to LF in the output, before
comparing with the expected output.
parse-duration tests: Fix test failure on mingw.
* tests/test-parse-duration.sh: Transform CRLF to LF in the output,
before analyzing the output.
dfa tests: Fix test failure on mingw.
* tests/test-dfa-invalid-char-class.sh: Transform CRLF to LF in the
output, before comparing with the expected output.
2023-04-20 Bruno Haible <bruno@clisp.org>
Fix uses of libwinpthread on mingw 10.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): On mingw, set the result to
"guessing no".
2023-04-20 Bruno Haible <bruno@clisp.org>
Move remaining call_once tests from mtx-tests to call_once-tests.
* tests/test-call_once1.c: Renamed from tests/test-call_once.c.
* tests/test-call_once2.c: New file, based on tests/test-mtx.c.
* tests/test-mtx.c: Remove the code that was testing call_once.
* modules/call_once-tests (Files): Add test-call_once1.c,
test-call_once2.c. Remove test-call_once.c.
(Depends-on): Add thrd, lock, stdint.
(configure.ac): Check for alarm.
(Makefile.am): Test test-call_once1 instead of test-call_once. Also test
test-call_once2.
2023-04-20 Bruno Haible <bruno@clisp.org>
execute tests: Fix compilation error on mingw (regression 2023-01-17).
* tests/test-execute-main.c (main): Don't use SIGPIPE if it's not
defined.
2023-04-20 Bruno Haible <bruno@clisp.org>
assert-h, verify: Fix compilation error in C++ mode with MSVC 14.30.
* lib/verify.h (_Static_assert): In C++ mode with MSVC 14.1 or newer,
define merely to static_assert.
(static_assert): In C++ mode with MSVC 14.1 or newer, don't define.
2023-04-19 Bruno Haible <bruno@clisp.org>
chown, lchown tests: Fix link error on mingw 10.
* modules/chown-tests (configure.ac): Test whether getgid() exists.
* modules/lchown-tests (configure.ac): Likewise.
* modules/fchownat-tests (configure.ac): Likewise.
* tests/test-chown.h (getgid): Define a fallback.
* tests/test-lchown.h (getgid): Likewise.
2023-04-19 Bruno Haible <bruno@clisp.org>
ctime: Fix compilation errors in C++ mode on mingw 10.
* lib/c++defs.h (_GL_FUNCDECL_RPL): Add a comment.
* lib/time.in.h (ctime): Don't use _GL_ATTRIBUTE_DEPRECATED before
_GL_FUNCDECL_RPL in C++ mode.
2023-04-19 Bruno Haible <bruno@clisp.org>
random: Fix compilation errors in C++ mode on mingw 10.
* lib/stdlib.in.h (random, srandom): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
2023-04-19 Bruno Haible <bruno@clisp.org>
year2038-required: Fix configure failure with MSVC.
* m4/largefile.m4 (_AC_SYS_LARGEFILE_PROBE): Distinguish the results
"support not detected" and "supported through gnulib". If the result is
"supported through gnulib", don't fail.
2023-04-19 Bruno Haible <bruno@clisp.org>
doc: Add references to changes accepted for future POSIX revisions.
* doc/glibc-functions/bind_textdomain_codeset.texi: Add reference to
www.austingroupbugs.net issue.
* doc/glibc-functions/bindtextdomain.texi: Likewise.
* doc/glibc-functions/dcgettext.texi: Likewise.
* doc/glibc-functions/dcngettext.texi: Likewise.
* doc/glibc-functions/dgettext.texi: Likewise.
* doc/glibc-functions/dngettext.texi: Likewise.
* doc/glibc-functions/getentropy.texi: Likewise.
* doc/glibc-functions/getresgid.texi: Likewise.
* doc/glibc-functions/getresuid.texi: Likewise.
* doc/glibc-functions/gettext.texi: Likewise.
* doc/glibc-functions/ngettext.texi: Likewise.
* doc/glibc-functions/posix_spawn_file_actions_addchdir_np.texi:
Likewise.
* doc/glibc-functions/posix_spawn_file_actions_addfchdir_np.texi:
Likewise.
* doc/glibc-functions/setresgid.texi: Likewise.
* doc/glibc-functions/setresuid.texi: Likewise.
* doc/glibc-functions/textdomain.texi: Likewise.
* doc/posix-functions/asctime_r.texi: Likewise.
* doc/posix-functions/ctime_r.texi: Likewise.
2023-04-19 Bruno Haible <bruno@clisp.org>
wcsncmp: Add tests.
* tests/test-wcsncmp.c: New file, based on tests/unistr/test-strncmp.h
and tests/test-wcscmp.c.
* modules/wcsncmp-tests: New file.
wcsncmp: Work around two ISO C compliance bugs on several platforms.
* lib/wchar.in.h (wcsncmp): Consider REPLACE_WCSNCMP.
* lib/wcsncmp-impl.h (wcsncmp): Don't assume that the two wide
characters are in the range 0..INT_MAX.
* m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Test whether wcsncmp works for all
wide characters. Set REPLACE_WCSNCMP.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSNCMP.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSNCMP.
* modules/wcsncmp (Status, Notice): Un-obsolete this module.
(configure.ac): Consider REPLACE_WCSNCMP.
* doc/posix-functions/wcsncmp.texi: Mention the two bugs.
2023-04-18 Bruno Haible <bruno@clisp.org>
wcscmp: Add tests.
* tests/test-wcscmp.c: New file, based on tests/unistr/test-strcmp.h.
* modules/wcscmp-tests: New file.
wcscmp: Work around two ISO C compliance bugs on several platforms.
* lib/wchar.in.h (wcscmp): Consider REPLACE_WCSCMP.
* lib/wcscmp-impl.h (wcscmp): Don't assume that the two wide characters
are in the range 0..INT_MAX.
* m4/wcscmp.m4 (gl_FUNC_WCSCMP): Test whether wcscmp works for all wide
characters. Set REPLACE_WCSCMP.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSCMP.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSCMP.
* modules/wcscmp (Status, Notice): Un-obsolete this module.
(configure.ac): Consider REPLACE_WCSCMP.
* doc/posix-functions/wcscmp.texi: Mention the two bugs.
2023-04-18 Bruno Haible <bruno@clisp.org>
wmemcmp: Add tests.
* tests/test-wmemcmp.c: New file, based on tests/unistr/test-cmp.h.
* modules/wmemcmp-tests: New file.
wmemcmp: Work around ISO C compliance bug on several platforms.
* lib/wchar.in.h (wmemcmp): Consider REPLACE_WMEMCMP.
* lib/wmemcmp-impl.h (wmemcmp): Don't assume that the two wide
characters are in the range 0..INT_MAX.
* m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Test whether wmemcmp works for all
wide characters. Set REPLACE_WMEMCMP.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WMEMCMP.
* modules/wchar (Makefile.am): Substitute REPLACE_WMEMCMP.
* modules/wmemcmp (configure.ac): Consider REPLACE_WMEMCMP.
* doc/posix-functions/wmemcmp.texi: Mention the bug.
2023-04-18 Bruno Haible <bruno@clisp.org>
doc: Update platform list for posix_spawnp.
* doc/posix-functions/posix_spawnp.texi: Update platform list.
2023-04-18 Paul Eggert <eggert@cs.ucla.edu>
Go back to dynamic largefile, year2038 tests
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-04/msg00134.html
* modules/largefile-tests, modules/year2038-tests (Depends-on):
Remove assert-h.
* tests/test-largefile.c, tests/test-year2038.c:
Test dynamically, not via static_assert.
doc: mention when O_* defaults to 0
* doc/posix-headers/fcntl.texi: Document in more detail which O_*
macros default to 0 in Gnulib.
2023-04-18 Bruno Haible <bruno@clisp.org>
doc: Mention a Cygwin 3.4.6 bug.
* doc/posix-functions/readlinkat.texi: Mention a readlinkat bug on
Cygwin < 3.4.7.
2023-04-18 Bruno Haible <bruno@clisp.org>
ilogbl: Work around a Cygwin 3.4.6 bug.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Also test the value of
ilogbl(NaN).
* doc/posix-functions/ilogbl.texi: Mention the new Cygwin bug.
2023-04-18 Bruno Haible <bruno@clisp.org>
file-has-acl tests: Avoid test failures on Cygwin 3.4.6.
* tests/test-file-has-acl.sh: Fix distinction between Linux setfacl and
Cygwin setfacl.
2023-04-18 Bruno Haible <bruno@clisp.org>
c32isgraph tests: Avoid test failure on Cygwin 3.4.6.
* tests/test-c32isgraph.c (main): Skip U+00A0 test on Cygwin.
2023-04-17 Paul Eggert <eggert@cs.ucla.edu>
Slightly nicer largefile, year2038 tests
* modules/largefile-tests, modules/year2038-tests (Depends-on):
Add assert-h, intprops.
* tests/test-largefile.c, tests/test-year2038.c:
Prefer compile-time to run-time tests.
Don’t assume CHAR_BIT == 8.
2023-04-17 Bruno Haible <bruno@clisp.org>
MODULES.html.sh: Ensure hyperlinked files are displayable.
* MODULES.html.sh (repo_url_prefix): Use cgit instead of gitweb.
MODULES.html.sh: Avoid a HTTP redirect.
* MODULES.html.sh (repo_url_prefix): Use the unabbreviated name of the
git repository server.
2023-04-16 Bruno Haible <bruno@clisp.org>
year2038: Add tests.
* tests/test-year2038.c: New file.
* modules/year2038-tests: New file.
2023-04-16 Bruno Haible <bruno@clisp.org>
largefile: Add tests.
* tests/test-largefile.c: New file.
* modules/largefile-tests: New file.
2023-04-16 Bruno Haible <bruno@clisp.org>
year2038: Revert the added module dependencies.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-04/msg00117.html>.
* modules/year2038 (Depends-on): Remove sched, sys_msg, sys_select,
sys_sem, sys_shm, sys_stat, sys_time, sys_types, time-h, utime-h.
2023-04-16 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addclose tests: Avoid test failure on Cygwin.
* tests/test-posix_spawn_file_actions_addclose.c (main): Skip an
unportable test also on Cygwin.
2023-04-15 Bruno Haible <bruno@clisp.org>
Fix compilation errors of list, set, oset, map, omap in C++ mode.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define
_GL_BRACKET_BEFORE_ATTRIBUTE. In _GL_ATTRIBUTE_DEPRECATED,
_GL_ATTRIBUTE_MAYBE_UNUSED, _GL_ATTRIBUTE_NODISCARD, don't use the
bracket syntax if _GL_BRACKET_BEFORE_ATTRIBUTE is defined.
2023-04-15 Bruno Haible <bruno@clisp.org>
Don't include module 'year2038-required' in all-of-gnulib testdirs.
* all-modules (exclude): Add year2038-required.
2023-04-15 Bruno Haible <bruno@clisp.org>
selinux-h: Fix compilation error (regression 2023-04-13).
* m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Instead of
defining the C macro HAVE_SELINUX_SELINUX_H to 0, set the Autoconf
variable HAVE_SELINUX_SELINUX_H to 0.
2023-04-14 Bruno Haible <bruno@clisp.org>
year2038: Fix configure failure on 32-bit mingw.
* m4/largefile.m4 (_AC_SYS_YEAR2038_PROBE): Use the same option
spelling as in _AC_SYS_YEAR2038_OPTIONS.
2023-04-14 Bruno Haible <bruno@clisp.org>
isnan: Fix compilation error in C++ mode on FreeBSD 13.2.
* lib/math.in.h (isnan): On FreeBSD 13.2 or newer, don't declare isnan
through _GL_MATH_CXX_REAL_FLOATING_DECL_2.
2023-04-14 Bruno Haible <bruno@clisp.org>
filemode: Fix double-inclusion guard.
* lib/filemode.h: Make the double-inclusion guard actually work.
2023-04-14 Bruno Haible <bruno@clisp.org>
year2038: Add reminder to include <config.h> before time_t gets defined.
* lib/sched.in.h: Check that config.h was already included before the
#include_next.
* lib/sys_select.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_types.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/utime.in.h: Likewise.
* modules/year2038 (Depends-on): Add sched, sys_msg, sys_select,
sys_sem, sys_shm, sys_stat, sys_time, sys_types, time-h, utime-h.
sys_shm: New module.
* lib/sys_shm.in.h: New file.
* m4/sys_shm_h.m4: New file.
* modules/sys_shm: New file.
* doc/posix-headers/sys_shm.texi: Mention the new module.
sys_sem: New module.
* lib/sys_sem.in.h: New file.
* m4/sys_sem_h.m4: New file.
* modules/sys_sem: New file.
* doc/posix-headers/sys_sem.texi: Mention the new module.
sys_msg: New module.
* lib/sys_msg.in.h: New file.
* m4/sys_msg_h.m4: New file.
* modules/sys_msg: New file.
* doc/posix-headers/sys_msg.texi: Mention the new module.
2023-04-13 Bruno Haible <bruno@clisp.org>
Add more reminders to include <config.h>.
* lib/aligned-malloc.h: Check that config.h was already included.
* lib/careadlinkat.h: Likewise.
* lib/filemode.h: Likewise.
* lib/freadptr.h: Likewise.
* lib/fseterr.h: Likewise.
* lib/glthread/lock.h: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/immutable.h: Likewise.
* lib/isapipe.h: Likewise.
* lib/isnand-nolibm.h: Likewise.
* lib/isnanf-nolibm.h: Likewise.
* lib/isnanl-nolibm.h: Likewise.
* lib/mbswidth.h: Likewise.
* lib/md5.h: Likewise.
* lib/minmax.h: Likewise.
* lib/msvc-inval.h: Likewise.
* lib/msvc-nothrow.h: Likewise.
* lib/pathmax.h: Likewise.
* lib/sha1.h: Likewise.
* lib/sha256.h: Likewise.
* lib/sha512.h: Likewise.
* lib/size_max.h: Likewise.
* lib/sm3.h: Likewise.
* lib/stat-size.h: Likewise.
* lib/termcap.h: Likewise.
* lib/terminfo.h: Likewise.
* lib/thread-optim.h: Likewise.
* lib/unlocked-io.h: Likewise.
* lib/vma-iter.h: Likewise.
2023-04-13 Bruno Haible <bruno@clisp.org>
Adjust comments in <config.h> reminders.
* lib/*.h: In the comments, mention also HAVE_*.
2023-04-13 Bruno Haible <bruno@clisp.org>
Adjust comments in <config.h> reminders.
* lib/*.in.h: In the comments, mention also HAVE_RAW_DECL_*.
* Makefile (sc_check_config_h_reminder): Search also for HAVE_RAW_DECL_.
2023-04-13 Bruno Haible <bruno@clisp.org>
utmp: Avoid using HAVE_* macros in *.in.h files.
* m4/pty_h.m4 (gl_PTY_CHECK_UTIL_H): New macro, extracted from gl_PTY_H.
(gl_PTY_H): Invoke it.
* m4/utmp_h.m4 (gl_UTMP_H): Invoke gl_PTY_CHECK_UTIL_H and set
HAVE_TERMIOS_H.
(gl_UTMP_H_DEFAULTS): Require gl_PTY_H_DEFAULTS, gl_TERMIOS_H_DEFAULTS.
* modules/utmp (Files): Add m4/pty_h.m4, m4/termios_h.m4.
(Makefile.am): Substitute also HAVE_UTIL_H, HAVE_LIBUTIL_H,
HAVE_TERMIOS_H.
* lib/utmp.in.h: Test HAVE_UTIL_H, HAVE_LIBUTIL_H, HAVE_TERMIOS_H as
Autoconf variables.
2023-04-13 Bruno Haible <bruno@clisp.org>
getprogname: Avoid using HAVE_* macros in *.in.h files.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
HAVE_DECL_PROGRAM_INVOCATION_NAME.
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Require gl_STDLIB_H_DEFAULTS
and gl_USE_SYSTEM_EXTENSIONS. Set HAVE_DECL_PROGRAM_INVOCATION_NAME.
* modules/stdlib (Makefile.am): Substitute
HAVE_DECL_PROGRAM_INVOCATION_NAME.
* lib/stdlib.in.h (getprogname): Test HAVE_DECL_PROGRAM_INVOCATION_NAME
as an Autoconf variable.
2023-04-13 Bruno Haible <bruno@clisp.org>
selinux-h: Avoid using HAVE_* macros in *.in.h files.
* m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Initialize
HAVE_SELINUX_SELINUX_H.
* modules/selinux-h (Makefile.am): Substitute HAVE_SELINUX_SELINUX_H.
* lib/se-selinux.in.h: Test HAVE_SELINUX_SELINUX_H as an Autoconf
variable.
2023-04-13 Bruno Haible <bruno@clisp.org>
ialloc, gethrxtime: Restore GCC diagnostics options.
* lib/ialloc.h: Invoke _GL_INLINE_HEADER_END.
* lib/xtime.h: Likewise.
* Makefile (sc_check_GL_INLINE_HEADER_use): New rule.
2023-04-13 Bruno Haible <bruno@clisp.org>
flexmember: Fix module description (regression 2016-09-07).
* modules/flexmember (Include): Add "flexmember.h".
2023-04-12 Paul Eggert <eggert@cs.ucla.edu>
doc: year2038 MIPS o32 nudge
* doc/year2038.texi: Use more-common "o32" name for
32-bit MIPS ABI.
2023-04-12 Bruno Haible <bruno@clisp.org>
Add more reminders to include <config.h>.
* m4/gnulib-common.m4 (gl_COMMON): In config.h, define
_GL_CONFIG_H_INCLUDED.
* lib/acl-internal.h: Test _GL_CONFIG_H_INCLUDED instead of
_GL_INLINE_HEADER_BEGIN.
* lib/alignalloc.h: Likewise.
* lib/argp-fmtstream.h: Likewise.
* lib/argp.h: Likewise.
* lib/binary-io.h: Likewise.
* lib/bitrotate.h: Likewise.
* lib/c-ctype.h: Likewise.
* lib/count-leading-zeros.h: Likewise.
* lib/count-one-bits.h: Likewise.
* lib/count-trailing-zeros.h: Likewise.
* lib/eealloc.h: Likewise.
* lib/execinfo.in.h: Likewise.
* lib/gethrxtime.h: Likewise.
* lib/gl_list.h: Likewise.
* lib/gl_map.h: Likewise.
* lib/gl_omap.h: Likewise.
* lib/gl_openssl.h: Likewise.
* lib/gl_oset.h: Likewise.
* lib/gl_set.h: Likewise.
* lib/gl_xlist.h: Likewise.
* lib/gl_xmap.h: Likewise.
* lib/gl_xomap.h: Likewise.
* lib/gl_xoset.h: Likewise.
* lib/gl_xset.h: Likewise.
* lib/gl_xsublist.h: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/hamt.h: Likewise.
* lib/ialloc.h: Likewise.
* lib/math.in.h: Likewise.
* lib/mbchar.h: Likewise.
* lib/mbfile.h: Likewise.
* lib/mbiter.h: Likewise.
* lib/mbuiter.h: Likewise.
* lib/openat.h: Likewise.
* lib/pipe-filter-aux.h: Likewise.
* lib/priv-set.h: Likewise.
* lib/safe-alloc.h: Likewise.
* lib/savewd.h: Likewise.
* lib/se-context.in.h: Likewise.
* lib/se-label.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/sig-handler.h: Likewise.
* lib/stat-time.h: Likewise.
* lib/string-desc-quotearg.h: Likewise.
* lib/string-desc.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/timespec.h: Likewise.
* lib/u64.h: Likewise.
* lib/uchar.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/utimens.h: Likewise.
* lib/wctype.in.h: Likewise.
* lib/xalloc.h: Likewise.
* lib/xbinary-io.h: Likewise.
* lib/xsize.h: Likewise.
* lib/xstring-desc.h: Likewise.
* lib/xtime.h: Likewise.
* lib/acl.h: Check that config.h was already included.
* lib/alignof.h: Likewise.
* lib/argmatch.h: Likewise.
* lib/argv-iter.h: Likewise.
* lib/arpa_inet.in.h: Likewise.
* lib/attribute.h: Likewise.
* lib/backupfile.h: Likewise.
* lib/base32.h: Likewise.
* lib/base64.h: Likewise.
* lib/basename-lgpl.h: Likewise.
* lib/bitset.h: Likewise.
* lib/bitsetv.h: Likewise.
* lib/c-snprintf.h: Likewise.
* lib/c-stack.h: Likewise.
* lib/c-strcase.h: Likewise.
* lib/c-vasnprintf.h: Likewise.
* lib/c-vasprintf.h: Likewise.
* lib/c-vsnprintf.h: Likewise.
* lib/c-xvasprintf.h: Likewise.
* lib/canon-host.h: Likewise.
* lib/canonicalize.h: Likewise.
* lib/clean-temp.h: Likewise.
* lib/concat-filename.h: Likewise.
* lib/ctype.in.h: Likewise.
* lib/dfa.h: Likewise.
* lib/di-set.h: Likewise.
* lib/dirent-safer.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/dirname.h: Likewise.
* lib/eloop-threshold.h: Likewise.
* lib/error.in.h: Likewise.
* lib/exclude.h: Likewise.
* lib/fatal-signal.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/file-type.h: Likewise.
* lib/filenamecat.h: Likewise.
* lib/filevercmp.h: Likewise.
* lib/flexmember.h: Likewise.
* lib/fnmatch.in.h: Likewise.
* lib/fpending.h: Likewise.
* lib/freadable.h: Likewise.
* lib/freadahead.h: Likewise.
* lib/freading.h: Likewise.
* lib/fts_.h: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwriting.h: Likewise.
* lib/gc.h: Likewise.
* lib/get_progname_of.h: Likewise.
* lib/glob.in.h: Likewise.
* lib/glthread/thread.h: Likewise.
* lib/hash-pjw-bare.h: Likewise.
* lib/hash-pjw.h: Likewise.
* lib/hash-triple.h: Likewise.
* lib/hash.h: Likewise.
* lib/i-ring.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/ino-map.h: Likewise.
* lib/inttostr.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/javaversion.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/localename.h: Likewise.
* lib/malloc.in.h: Likewise.
* lib/malloca.h: Likewise.
* lib/memcasecmp.h: Likewise.
* lib/memchr2.h: Likewise.
* lib/memcmp2.h: Likewise.
* lib/modechange.h: Likewise.
* lib/monetary.in.h: Likewise.
* lib/mountlist.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/obstack.h: Likewise.
* lib/opendirat.h: Likewise.
* lib/pagealign_alloc.h: Likewise.
* lib/pipe-filter.h: Likewise.
* lib/poll.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/quotearg.h: Likewise.
* lib/read-file.h: Likewise.
* lib/readline.h: Likewise.
* lib/readutmp.h: Likewise.
* lib/regex-quote.h: Likewise.
* lib/relocatable.h: Likewise.
* lib/savedir.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/sh-quote.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/sigpipe-die.h: Likewise.
* lib/sockets.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/ssfmalloc.h: Likewise.
* lib/stack.h: Likewise.
* lib/stdalign.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stddef.in.h: Likewise.
* lib/stdio-safer.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/stdnoreturn.in.h: Likewise.
* lib/strerror-override.h: Likewise.
* lib/striconv.h: Likewise.
* lib/striconveh.h: Likewise.
* lib/striconveha.h: Likewise.
* lib/string-buffer.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/strnlen1.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_random.in.h: Likewise.
* lib/sys_resource.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/system-quote.h: Likewise.
* lib/term-style-control.h: Likewise.
* lib/termios.in.h: Likewise.
* lib/textstyle.in.h: Likewise.
* lib/threads.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/trim.h: Likewise.
* lib/utime.in.h: Likewise.
* lib/utmp.in.h: Likewise.
* lib/vasnprintf.h: Likewise.
* lib/verror.h: Likewise.
* lib/version-etc.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/windows-spawn.h: Likewise.
* lib/windows-thread.h: Likewise.
* lib/xgetcwd.h: Likewise.
* lib/xgetdomainname.h: Likewise.
* lib/xgethostname.h: Likewise.
* lib/xmalloca.h: Likewise.
* lib/xmemdup0.h: Likewise.
* lib/xprintf.h: Likewise.
* lib/xreadlink.h: Likewise.
* lib/xstriconv.h: Likewise.
* lib/xstriconveh.h: Likewise.
* lib/xstrndup.h: Likewise.
* lib/xstrtol-error.h: Likewise.
* lib/xvasprintf.h: Likewise.
* Makefile (config_h_MACROS*): New variables.
(sc_check_config_h_reminder): New rule.
2023-04-11 Paul Eggert <eggert@cs.ucla.edu>
doc: update year2038 list further
Prompted by Adhemerval Zanella Netto’s email in:
https://lists.gnu.org/r/bug-gnulib/2023-04/msg00083.html
Also, mention 32-bit Android.
* doc/year2038.texi: Mention Linux/ork1 and Android.
Append "32" to powerpc and sparc names.
2023-04-11 Bruno Haible <bruno@clisp.org>
Fix the "make sc_prohibit_AC_LIBOBJ_in_m4" findings.
* Makefile (allow_AC_LIBOBJ): Update after 2023-03-24 change. Add
termcap, terminfo.
2023-04-11 Bruno Haible <bruno@clisp.org>
Fix some "make sc_prohibit_leading_TABs" findings.
* tests/test-calloc-gnu.c: Expand tabs.
* tests/test-regex.c: Likewise.
2023-04-11 Bruno Haible <bruno@clisp.org>
Makefile: Fix a syntax alert.
* Makefile: Indent commands with tabs, not spaces.
2023-04-10 Bruno Haible <bruno@clisp.org>
alignasof: Ensure a correct _Alignas (regression 2023-01-15).
* m4/stdalign.m4 (gl_ALIGNASOF): Define _Alignas also when <stdalign.h>
exists.
2023-04-10 Paul Eggert <eggert@cs.ucla.edu>
doc: update list of year2038 platforms
* doc/year2038.texi: Update list of platforms
by adding dates and version numbers and fixing some that
appear to have been misfiled. Also, list working systems
and versions first, as that helps shorten the list of
failing systems by saying "older versions".
doc: moved year2038 para up
* doc/year2038.texi: Move a paragraph up,
as it’s lonely at the end.
doc: document year2038 first
* doc/year2038.texi: Document year2038 first, then
year2038-required.
2023-04-10 Bruno Haible <bruno@clisp.org>
doc: Clarify list of platforms for year2038 support.
* doc/year2038.texi (Avoiding the year 2038 problem): List the platforms
on which year2038-required is known to fail vs. known to succeed.
2023-04-10 Bruno Haible <bruno@clisp.org>
doc: Avoid ambiguous wording.
* doc/posix-headers/time.texi: Say "or" not "and".
2023-04-09 Bruno Haible <bruno@clisp.org>
doc: Fix a typo.
* doc/posix-headers/time.texi: Fix typo in module name.
2023-04-09 Paul Eggert <eggert@cs.ucla.edu>
largefile: sync from Autoconf master
* modules/largefile-required, modules/year2038-required: New modules.
* MODULES.html.sh, doc/largefile.texi, doc/posix-headers/time.texi:
* doc/year2038.texi: Document this.
* m4/largefile.m4: Sync from Autoconf master.
Conditionalize the workaround on AC_SYS_LARGEFILE_REQUIRED rather
than on AC_SYS_YEAR2038 so that we replace older but still
unreleased Autoconf.
(AC_SYS_LARGEFILE_REQUIRED, AC_SYS_YEAR2038_REQUIRED): New macros.
year2038: configure earlier
* modules/year2038: Put AC_SYS_YEAR2038 in configure.ac-early
since it can affect later compilations with _TIME_BITS=64.
2023-04-09 Bruno Haible <bruno@clisp.org>
c32toupper: Add tests.
* tests/test-c32toupper.sh: New file.
* tests/test-c32toupper.c: New file, based on tests/test-c32islower.c.
* modules/c32toupper-tests: New file.
c32toupper: New module.
* lib/uchar.in.h (c32toupper): New declaration.
* lib/c32toupper.c: New file.
* modules/c32toupper: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32TOUPPER.
* modules/uchar (Makefile.am): Substitute GNULIB_C32TOUPPER.
2023-04-09 Bruno Haible <bruno@clisp.org>
c32tolower: Add tests.
* tests/test-c32tolower.sh: New file.
* tests/test-c32tolower.c: New file, based on tests/test-c32isupper.c.
* modules/c32tolower-tests: New file.
c32tolower: New module.
* lib/uchar.in.h (c32tolower): New declaration.
* lib/c32tolower.c: New file.
* lib/c32to-impl.h: New file, based on lib/c32is-impl.h.
* modules/c32tolower: New file.
* m4/uchar_h.m4 (gl_UCHAR_H_REQUIRE_DEFAULTS): Initialize
GNULIB_C32TOLOWER.
* modules/uchar (Makefile.am): Substitute GNULIB_C32TOLOWER.
2023-04-09 Bruno Haible <bruno@clisp.org>
c32is*: Ensure GNULIB_defined_mbstate_t is defined on AIX.
* m4/mbrtowc.m4 (gl_MBSTATE_T_BROKEN): Define through AC_DEFUN_ONCE.
* m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32): Require it.
* modules/c32isalnum (Files): Add m4/mbrtowc.m4, m4/locale-ja.m4.
(configure.ac): Require gl_MBSTATE_T_BROKEN.
* modules/c32isalpha: Likewise.
* modules/c32isblank: Likewise.
* modules/c32iscntrl: Likewise.
* modules/c32isdigit: Likewise.
* modules/c32isgraph: Likewise.
* modules/c32islower: Likewise.
* modules/c32isprint: Likewise.
* modules/c32ispunct: Likewise.
* modules/c32isspace: Likewise.
* modules/c32isupper: Likewise.
* modules/c32isxdigit: Likewise.
2023-04-09 Bruno Haible <bruno@clisp.org>
mbrtoc32: Add comments.
* lib/mbrtoc32.c: Add comment regarding AIX.
* m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32): Add comment regarding
GNULIB_defined_mbstate_t.
2023-04-09 Bruno Haible <bruno@clisp.org>
doc: Mention a NetBSD bug.
* doc/posix-functions/towlower.texi: Mention NetBSD bug 57339.
* doc/posix-functions/towupper.texi: Likewise.
2023-04-09 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: More details about the glibc bug.
* doc/posix-functions/swprintf.texi: Add comment.
* m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): Update cross-compilation
guess.
2023-04-08 Bruno Haible <bruno@clisp.org>
doc: Mention another Haiku bug.
* doc/posix-functions/open.texi: Mention a Haiku bug with symlinks.
2023-04-08 Bruno Haible <bruno@clisp.org>
Avoid Autoconf "was expanded before it was required" warning.
* m4/exponentf.m4 (gl_FLOAT_EXPONENT_LOCATION): Define through
AC_DEFUN_ONCE.
* m4/exponentd.m4 (gl_DOUBLE_EXPONENT_LOCATION): Likewise.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Likewise.
2023-04-08 Bruno Haible <bruno@clisp.org>
striconveh tests: Avoid test failure on glibc 2.15.
* tests/test-striconveh.c (main): Skip some of the GB18030 tests on
glibc < 2.16.
2023-04-08 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Really work around %La bug in glibc 2.15 and Haiku.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Fix a copy&paste bug.
2023-04-08 Bruno Haible <bruno@clisp.org>
login_tty: Fix compilation error in C++ mode on Solaris 11.4.
* m4/login_tty.m4 (gl_FUNC_LOGIN_TTY): Test whether <termios.h> exists.
Consider it when testing whether login_tty is declared.
* lib/utmp.in.h: If none of <util.h> and <libutil.h> exists, include
<termios.h> instead.
* doc/glibc-functions/login_tty.texi: Document the Solaris 11.4 problem.
2023-04-08 Bruno Haible <bruno@clisp.org>
time: Fix compilation error in C++ mode on Solaris 11.
* lib/time.in.h (time): Disable _GL_CXXALIASWARN invocation on non-glibc
systems.
2023-04-07 Bruno Haible <bruno@clisp.org>
unistdio/*: Fix test failures (regression 2023-01-28).
* modules/unistdio/*printf (configure.ac): Bump required libunistring
version number.
2023-04-07 Bruno Haible <bruno@clisp.org>
trim tests: Fix link error.
* modules/trim-tests (Makefile.am): Link test-trim also against libintl.
2023-04-07 Bruno Haible <bruno@clisp.org>
stdio: Fix the value of _PRINTF_NAN_LEN_MAX on OpenBSD.
* lib/stdio.in.h (_PRINTF_NAN_LEN_MAX): Define to 4 on OpenBSD.
2023-04-07 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Work around %La bug in glibc 2.15 and Haiku.
* m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke
gl_SWPRINTF_DIRECTIVE_LA and define NEED_WPRINTF_DIRECTIVE_LA
accordingly.
* lib/vasnprintf.c: When compiling vasnwprintf, if
NEED_WPRINTF_DIRECTIVE_LA, handle the %La and %LA directives ourselves.
* doc/posix-functions/swprintf.texi: Mention the %La bug.
2023-04-07 Bruno Haible <bruno@clisp.org>
stdio: Fix compilation error in C++ mode on macOS.
* lib/stdio.in.h (getw, putw): Repeat the declaration even if the
function is already supposed to be declared.
2023-04-07 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix tests: Avoid test failure on mingw.
* tests/test-vasnwprintf-posix.c (test_function): For mingw, change two
expected test results.
2023-04-06 Bruno Haible <bruno@clisp.org>
uchar: Inline functions with C linkage in C++ mode (regr. 2023-04-04).
* m4/gnulib-common.m4 (gl_COMMON_BODY): Put definitions of
_GL_BEGIN_C_LINKAGE, _GL_END_C_LINKAGE into config.h.
* lib/uchar.in.h: Enclose all inline functions in _GL_BEGIN_C_LINKAGE /
_GL_END_C_LINKAGE.
2023-04-06 Bruno Haible <bruno@clisp.org>
alignalloc: Fix link error on glibc 2.15 systems.
* lib/alignalloc.h (ALIGNALLOC_VIA_ALIGNED_ALLOC): Set to 0 on
glibc 2.15 systems.
2023-04-05 Bruno Haible <bruno@clisp.org>
doc: Add references to registered Haiku bugs.
* doc/posix-functions/call_once.texi: Mention Haiku bug.
* doc/posix-functions/duplocale.texi: Likewise.
* doc/posix-functions/freelocale.texi: Likewise.
* doc/posix-functions/getlogin_r.texi: Likewise.
* doc/posix-functions/initstate.texi: Likewise.
* doc/posix-functions/mbrtoc32.texi: Likewise.
* doc/posix-functions/strxfrm.texi: Likewise.
* doc/posix-headers/math.texi: Update.
2023-04-05 Bruno Haible <bruno@clisp.org>
string-desc-quotearg tests: Avoid a test failure on Haiku.
* tests/test-string-desc-quotearg.c (main): For the
clocale_quoting_style, accept also the U+2018 and U+2019 characters in
UTF-8 encoding.
2023-04-05 Bruno Haible <bruno@clisp.org>
random_r: Fix compilation error on Haiku.
* lib/stdlib.in.h: For random_r, include <stdint.h> always.
* modules/random_r (Depends-on): Depend on 'stdint' always.
2023-04-05 Bruno Haible <bruno@clisp.org>
forkpty, openpty, login_tty: Fix link errors of the tests.
* m4/pty.m4 (gl_PTY_LIB): On Haiku, set PTY_LIB to '-lbsd'.
2023-04-05 Bruno Haible <bruno@clisp.org>
strerrorname_np: Fix compilation error on Haiku.
* lib/strerrorname_np.c (strerrorname_np): Avoid conflict between
EDOOFUS and EINVAL.
* tests/test-strerrorname_np.c (main): Likewise.
2023-04-05 Bruno Haible <bruno@clisp.org>
uchar: Fix recent change.
* lib/uchar.in.h: Include <string.h>, <wctype.h>.
2023-04-05 Bruno Haible <bruno@clisp.org>
localename tests: Work around a Haiku bug.
* tests/test-localename.c (freelocale): New macro.
2023-04-05 Bruno Haible <bruno@clisp.org>
localename: Add support for Haiku's per-thread locales.
* lib/localename.c: Include <dlfcn.h>.
(gl_locale_name_thread_unsafe): Add special code for Haiku.
2023-04-05 Bruno Haible <bruno@clisp.org>
uchar: Work around Haiku bug.
* m4/uchar_h.m4 (gl_UCHAR_H, gl_TYPE_CHAR8_T, gl_TYPE_CHAR16_T,
gl_TYPE_CHAR32_T): Before including <uchar.h>, on Haiku, first include
<stdint.h>.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Likewise.
* m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32, gl_CHECK_FUNC_MBRTOC32,
gl_MBRTOC32_EMPTY_INPUT, gl_MBRTOC32_C_LOCALE, gl_MBRTOC32_SANITYCHECK):
Likewise.
* lib/uchar.in.h: On Haiku, include <stdint.h> before the include_next.
* doc/posix-headers/uchar.texi: Mention the Haiku bug.
2023-04-05 Bruno Haible <bruno@clisp.org>
stdlib, btowc: Fix file lists.
* modules/stdlib (Files): Add m4/codeset.m4.
* modules/btowc (Files): Likewise.
* modules/c-dtoastr-tests (Files): Likewise.
* modules/c-ldtoastr-tests (Files): Likewise.
* modules/c-snprintf-tests (Files): Likewise.
* modules/c-vasprintf-tests (Files): Likewise.
* modules/c-vsnprintf-tests (Files): Likewise.
* modules/c-xvasprintf-tests (Files): Likewise.
* modules/nl_langinfo-tests (Files): Likewise.
2023-04-04 Bruno Haible <bruno@clisp.org>
duplocale: Fix compilation error on Haiku (regression 2023-01-22).
* lib/locale.in.h (duplocale): If HAVE_DUPLOCALE = 0, don't declare it,
even if REPLACE_DUPLOCALE = 1.
* modules/duplocale (Depends-on, configure.ac): Don't compile a
replacement if HAVE_DUPLOCALE = 0 and REPLACE_DUPLOCALE = 1.
2023-04-04 Bruno Haible <bruno@clisp.org>
c32tob, c32is*, c32rtomb, mbrtoc32: Fix file lists.
* modules/c32tob (Files): Add m4/locale-fr.m4, m4/locale-zh.m4,
m4/codeset.m4.
* modules/c32isalnum (Files): Likewise.
* modules/c32isalpha (Files): Likewise.
* modules/c32isblank (Files): Likewise.
* modules/c32iscntrl (Files): Likewise.
* modules/c32isdigit (Files): Likewise.
* modules/c32isgraph (Files): Likewise.
* modules/c32islower (Files): Likewise.
* modules/c32isprint (Files): Likewise.
* modules/c32ispunct (Files): Likewise.
* modules/c32isspace (Files): Likewise.
* modules/c32isupper (Files): Likewise.
* modules/c32isxdigit (Files): Likewise.
* modules/c32rtomb (Files): Likewise.
* modules/mbrtoc32 (Files): Likewise.
2023-04-04 Bruno Haible <bruno@clisp.org>
stdlib: Work around MB_CUR_MAX bug on Solaris 10.
* lib/stdlib.in.h (gl_MB_CUR_MAX): New function.
(MB_CUR_MAX, GNULIB_defined_MB_CUR_MAX): New macros.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether MB_CUR_MAX is correct.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MB_CUR_MAX.
* modules/stdlib (Files): Add m4/locale-fr.m4.
(Makefile.am): Substitute REPLACE_MB_CUR_MAX.
* doc/posix-headers/stdlib.texi: Mention the Solaris 10 bug.
2023-04-04 Bruno Haible <bruno@clisp.org>
*c32*: Inline most functions on glibc and musl libc.
* lib/uchar.in.h: Invoke _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(btoc32): Inline if _GL_WCHAR_T_IS_UCS4.
(c32isalnum, c32isalpha, c32isblank, c32iscntrl, c32isdigit, c32isgraph,
c32islower, c32isprint, c32ispunct, c32isspace, c32isupper,
c32isxdigit): Inline if
_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t.
(c32snrtombs, c32srtombs, c32stombs, c32tob, mbsnrtoc32s, mbsrtoc32s,
mbstoc32s): Inline if _GL_WCHAR_T_IS_UCS4.
* lib/btoc32.c: Define compilation unit marker.
(btoc32): Conditionally mark as _GL_EXTERN_INLINE.
* lib/c32isalnum.c: Define compilation unit marker.
* lib/c32isalpha.c: Likewise.
* lib/c32isblank.c: Likewise.
* lib/c32iscntrl.c: Likewise.
* lib/c32isdigit.c: Likewise.
* lib/c32isgraph.c: Likewise.
* lib/c32islower.c: Likewise.
* lib/c32isprint.c: Likewise.
* lib/c32ispunct.c: Likewise.
* lib/c32isspace.c: Likewise.
* lib/c32isupper.c: Likewise.
* lib/c32isxdigit.c: Likewise.
* lib/c32is-impl.h (FUNC): Conditionally mark as _GL_EXTERN_INLINE.
* lib/c32snrtombs.c: Define compilation unit marker.
(c32snrtombs): Conditionally mark as _GL_EXTERN_INLINE.
* lib/c32srtombs.c: Define compilation unit marker.
(c32srtombs): Conditionally mark as _GL_EXTERN_INLINE.
* lib/c32stombs.c: Define compilation unit marker.
(c32stombs): Conditionally mark as _GL_EXTERN_INLINE.
* lib/c32tob.c: Define compilation unit marker.
(c32tob): Conditionally mark as _GL_EXTERN_INLINE.
* lib/mbsnrtoc32s.c: Define compilation unit marker.
(mbsnrtoc32s): Conditionally mark as _GL_EXTERN_INLINE.
* lib/mbsrtoc32s.c: Define compilation unit marker.
(mbsrtoc32s): Conditionally mark as _GL_EXTERN_INLINE.
* lib/mbstoc32s.c: Define compilation unit marker.
(mbstoc32s): Conditionally mark as _GL_EXTERN_INLINE.
* modules/uchar (Depends-on): Add extern-inline.
2023-04-04 Pádraig Brady <P@draigBrady.com>
backupfile: fix bug when renaming from subdirectory
* lib/backupfile.c (backup_internal): Ensure we use the
appropriate offset if operating on a subdirectory,
i.e., on an updated sdir.
Fixes https://bugs.gnu.org/62607
2023-04-04 Bruno Haible <bruno@clisp.org>
*c32*: Optimize on musl libc like on glibc.
* lib/uchar.in.h (_GL_WCHAR_T_IS_UCS4): New macro.
* lib/btoc32.c (btoc32): Test _GL_WCHAR_T_IS_UCS4 instead of __GLIBC__.
* lib/mbsrtoc32s.c: Likewise.
* lib/mbsnrtoc32s.c: Likewise.
* lib/c32tob.c (c32tob): Likewise.
* lib/c32srtombs.c: Likewise.
* lib/c32snrtombs.c: Likewise.
* lib/c32is-impl.h (FUNC): Likewise.
2023-04-04 Bruno Haible <bruno@clisp.org>
uchar: Rename _GL_LARGE_CHAR32_T to _GL_SMALL_WCHAR_T.
* lib/uchar.in.h (_GL_SMALL_WCHAR_T): Renamed from _GL_LARGE_CHAR32_T.
* lib/mbrtoc32.c: Update.
* lib/mbsrtoc32s.c: Update.
* lib/mbsnrtoc32s.c: Update.
* lib/c32tob.c: Update.
* lib/c32rtomb.c: Update.
* lib/c32srtombs.c: Update.
* lib/c32snrtombs.c: Update.
* lib/c32is-impl.h: Update.
* tests/test-uchar.c: Update.
2023-04-04 Bruno Haible <bruno@clisp.org>
c32rtomb: Fix an autoconf test.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): In a test program, include
<stddef.h>, for NULL.
2023-04-03 Bruno Haible <bruno@clisp.org>
tests: Set executable bit on more tests.
* tests/test-c-dtoastr.sh: Make executable.
* tests/test-c-ldtoastr.sh: Likewise.
* tests/test-immutable.sh: Likewise.
* tests/test-vasnwprintf-posix2.sh: Likewise.
2023-04-03 Jim Meyering <meyering@fb.com>
tests: set executable bit in test-trim[1-3].sh
This avoids a test failure for each new file.
* tests/test-trim1.sh: Make this file executable.
* tests/test-trim2.sh: Likewise.
* tests/test-trim3.sh: Likewise.
2023-04-03 Bruno Haible <bruno@clisp.org>
Use the 'extern-inline' module explicitly where needed.
I found the list of affected modules through this command:
for m in $(for f in `grep -Fl _GL_INLINE_HEADER_BEGIN lib/*.h | sort`
do ./gnulib-tool --find $f; done)
do grep '^extern-inline' modules/$m > /dev/null || echo $m
done
* modules/fdutimensat (Depends-on): Add extern-inline.
* modules/file-has-acl (Depends-on): Likewise.
* modules/hamt (Depends-on): Likewise.
* modules/relocatable-prog-wrapper (Depends-on): Likewise.
* modules/safe-alloc (Depends-on): Likewise.
* modules/string-desc (Depends-on): Likewise.
* modules/string-desc-quotearg (Depends-on): Likewise.
* modules/xstring-desc (Depends-on): Likewise.
* modules/xvasprintf (Depends-on): Likewise.
2023-04-03 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Fix harmless mistake (regression 2023-03-24).
Found by Coverity.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): Insert 'break;' statement.
2023-04-03 Bruno Haible <bruno@clisp.org>
mbstoc32s tests: Check behaviour in the C locale.
* tests/test-mbstoc32s.c (main): Test behaviour in the C locale. Based
on tests/test-mbstowcs.c.
* tests/test-mbstoc32s-5.sh: New file, based on tests/test-mbstowcs5.sh.
* modules/mbstoc32s-tests (Files): Add it.
(Depends-on): Add btoc32.
(Makefile.am): Run test-mbstoc32s-5.sh.
2023-04-03 Bruno Haible <bruno@clisp.org>
mbsnrtoc32s tests: Check behaviour in the C locale.
* tests/test-mbsnrtoc32s.c (main): Test behaviour in the C locale. Based
on tests/test-mbsnrtowcs.c.
* tests/test-mbsnrtoc32s-5.sh: New file, based on
tests/test-mbsrtowcs5.sh.
* modules/mbsnrtoc32s-tests (Files): Add it.
(Depends-on): Add btoc32.
(Makefile.am): Run test-mbsnrtoc32s-5.sh.
2023-04-03 Bruno Haible <bruno@clisp.org>
mbsrtoc32s tests: Check behaviour in the C locale.
* tests/test-mbsrtoc32s.c (main): Test behaviour in the C locale. Based
on tests/test-mbsrtowcs.c.
* tests/test-mbsrtoc32s-5.sh: New file, based on
tests/test-mbsrtowcs5.sh.
* modules/mbsrtoc32s-tests (Files): Add it.
(Depends-on): Add btoc32.
(Makefile.am): Run test-mbsrtoc32s-5.sh.
2023-04-03 Bruno Haible <bruno@clisp.org>
btoc32 tests: Check behaviour in the C locale.
* tests/test-btoc32.c (main): Test behaviour in the C locale. Based on
tests/test-btowc.c.
* tests/test-btoc32-3.sh: New file, based on tests/test-btowc3.sh.
* modules/btoc32-tests (Files): Add it.
(Makefile.am): Test it.
2023-04-03 Bruno Haible <bruno@clisp.org>
mbrtoc32 tests: Prefer *c32* functions.
* tests/test-mbrtoc32.c (main): Use btoc32 instead of btowc.
* modules/mbrtoc32-tests (Depends-on): Add btoc32.
2023-04-03 Bruno Haible <bruno@clisp.org>
mbrtoc32 tests: Add comment.
* m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Add comment.
* m4/mbrtoc32.m4 (gl_MBRTOC32_C_LOCALE): Add comment.
* tests/test-mbrtoc32.c: Add comment.
* tests/test-mbrtoc32-5.sh: Use symmetric coding style.
* doc/posix-functions/mbrtoc32.texi: Update.
2023-04-02 Bruno Haible <bruno@clisp.org>
trim: Fix trim_trailing result in multibyte locales.
* lib/trim.c (trim2): Simplify algorithm for trim_trailing in multibyte
locales, to use 2 instead of 3 states.
(IF_LINT): Remove macro.
trim: Add tests.
* tests/test-trim.c: New file.
* tests/test-trim1.sh: New file.
* tests/test-trim2.sh: New file.
* tests/test-trim3.sh: New file.
* modules/trim-tests: New file.
2023-04-02 Bruno Haible <bruno@clisp.org>
unistr/u8-strstr: Simplify code.
* lib/unistr/u8-strstr.c: Inline the contents of lib/unistr/u-strstr.h.
* lib/unistr/u-strstr.h: Remove file.
* modules/unistr/u8-strstr (Files): Remove it.
unistr/u{16,32}-strstr: Use two-way algorithm (no memory allocation).
* lib/wcs-two-way.h: Use UNIT instead of wchar_t. Don't undefine
RETURN_TYPE.
* lib/wcsstr-impl.h: Move the non-linear implementation away. Use UNIT
instead of wchar_t, RETURN_TYPE instead of 'wchar_t *', FUNC instead of
wcsstr.
(AVAILABLE): Use MEMCHR0 instead of wmemchr.
(FUNC): Use STRCHR instead of wcschr.
* lib/wcsstr.c: Moved the non-linear implementation to here.
(FUNC, UNIT, RETURN_TYPE, MEMCHR0, STRCHR): New macros.
* lib/unistr/u16-strstr.c: Don't include malloca.h, str-kmp.h,
u-strstr.h. Instead, include wcsstr-impl.h.
* lib/unistr/u32-strstr.c: Likewise.
* modules/unistr/u16-strstr (Files): Remove u-strstr.h, str-kmp.h. Add
wcsstr-impl.h, wcs-two-way.h.
(Depends-on): Remove u16-strmbtouc, u16-strlen, u16-strnlen, malloca.
Add u16-chr, u16-cmp.
* modules/unistr/u32-strstr (Files): Remove u-strstr.h, str-kmp.h. Add
wcsstr-impl.h, wcs-two-way.h.
(Depends-on): Remove u32-strlen, u32-strnlen, malloca. Add u32-chr,
u32-cmp.
2023-04-02 Bruno Haible <bruno@clisp.org>
unistr/u*strstr tests: Add more tests.
* tests/unistr/test-u-strstr.h (test_u_strstr): Add the two latest tests
from tests/test-strstr.c.
* tests/unistr/test-u8-strstr.c (U_SET): New macro.
* tests/unistr/test-u16-strstr.c (U_SET): New macro.
* tests/unistr/test-u32-strstr.c (U_SET): New macro.
* modules/unistr/u8-strstr-tests (Depends-on): Add unistr/u8-set.
* modules/unistr/u16-strstr-tests (Depends-on): Add unistr/u16-set.
* modules/unistr/u32-strstr-tests (Depends-on): Add unistr/u32-set.
2023-04-01 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Fix behaviour in the C locale.
* lib/vasnprintf.c (VASNPRINTF): If NEED_WPRINTF_DIRECTIVE_C is set,
implement the 'c' directive here.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_MBRTOWC_C_LOCALE.
If mbrtowc is buggy in the C locale, define NEED_WPRINTF_DIRECTIVE_C.
* modules/vasnwprintf (Files): Add m4/mbrtowc.m4.
* tests/test-vasnwprintf-posix.c (test_function): Add tests of %s and %c
in the C locale.
* doc/posix-functions/fwprintf.texi: Mention the C locale behaviour bug.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
2023-04-01 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Fix crash in narrow %lc directive (regr. 2023-03-21).
* lib/vasnprintf.c (VASNPRINTF): Negative results of local_wcrtomb can
now occur; handle them.
* tests/test-vasnprintf-posix.c (test_function): Test %lc directive with
a wint_t argument that is not a valid wide character.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
2023-04-01 Bruno Haible <bruno@clisp.org>
stddef: Fix __need_wint_t handling in case of two stddef.h overrides.
* lib/stddef.in.h: Replace _GL_STDDEF_WINT_T with a symbol that depends
on the @GUARD_PREFIX@.
2023-03-31 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix crash upon conversion failure when processing %s.
* lib/vasnprintf.c (VASNPRINTF): When processing %s with !has_precision
and !has_width, don't call abort() if there is a conversion failure.
2023-03-30 Bruno Haible <bruno@clisp.org>
Avoid test failures on Android.
* tests/test-btowc.c (main): Treat C locale like in
tests/test-mbrtowc.c.
* tests/test-mbsrtowcs.c (main): Likewise.
* tests/test-mbsnrtowcs.c (main): Likewise.
* tests/test-mbstowcs.c (main): Likewise.
2023-03-30 Bruno Haible <bruno@clisp.org>
mbstowcs: Add tests.
* tests/test-mbstowcs1.sh: New file, based on tests/test-mbsrtowcs1.sh.
* tests/test-mbstowcs2.sh: New file, based on tests/test-mbsrtowcs2.sh.
* tests/test-mbstowcs3.sh: New file, based on tests/test-mbsrtowcs3.sh.
* tests/test-mbstowcs4.sh: New file, based on tests/test-mbsrtowcs4.sh.
* tests/test-mbstowcs5.sh: New file, based on tests/test-mbsrtowcs5.sh.
* tests/test-mbstowcs.c: New file, based on tests/test-mbsrtowcs.c.
* modules/mbstowcs-tests: New file, based on modules/mbsrtowcs-tests.
mbstowcs: New module.
* lib/stdlib.in.h (mbstowcs): New declaration.
* lib/mbstowcs.c: New file, based on lib/mbstoc32s.c.
* m4/mbstowcs.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether mbstowcs is declared.
(gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize GNULIB_MBSTOWCS.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MBSTOWCS.
* modules/stdlib (Makefile.am): Substitute GNULIB_MBSTOWCS,
REPLACE_MBSTOWCS.
* modules/mbstowcs: New file.
* tests/test-stdlib-c++.cc (mbstowcs): Check signature.
* doc/posix-functions/mbstowcs.texi: Mention the C locale behaviour bug
and the new module.
2023-03-30 Bruno Haible <bruno@clisp.org>
mbsnrtowcs: Fix behaviour in the C locale.
* m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Invoke gl_MBRTOWC_C_LOCALE. If
mbrtowc is buggy in the C locale, override also mbsnrtowcs.
* modules/mbsnrtowcs (Files): Add m4/mbrtowc.m4.
* tests/test-mbsnrtowcs.c (main): Add a test of the C locale, based on
tests/test-mbsrtowcs.c.
* tests/test-mbsnrtowcs5.sh: New file, based on tests/test-mbrtowc5.sh.
* modules/mbsnrtowcs-tests (Files): Add it.
(Makefile.am): Test it.
* doc/posix-functions/mbsnrtowcs.texi: Mention the C locale behaviour
bug.
2023-03-30 Bruno Haible <bruno@clisp.org>
mbsrtowcs: Fix behaviour in the C locale.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Invoke gl_MBRTOWC_C_LOCALE. If
mbrtowc is buggy in the C locale, override also mbsrtowcs.
* modules/mbsrtowcs (Files): Add m4/mbrtowc.m4.
* tests/test-mbsrtowcs.c (main): Add a test of the C locale, based on
tests/test-mbrtowc.c.
* tests/test-mbsrtowcs5.sh: New file, based on tests/test-mbrtowc5.sh.
* modules/mbsrtowcs-tests (Files): Add it.
(Makefile.am): Test it.
* doc/posix-functions/mbsrtowcs.texi: Mention the C locale behaviour
bug.
2023-03-30 Bruno Haible <bruno@clisp.org>
mbrlen: Add tests.
* tests/test-mbrlen1.sh: New file, based on tests/test-mbrtowc1.sh.
* tests/test-mbrlen2.sh: New file, based on tests/test-mbrtowc2.sh.
* tests/test-mbrlen3.sh: New file, based on tests/test-mbrtowc3.sh.
* tests/test-mbrlen4.sh: New file, based on tests/test-mbrtowc4.sh.
* tests/test-mbrlen5.sh: New file, based on tests/test-mbrtowc5.sh.
* tests/test-mbrlen.c: New file, based on tests/test-mbrtowc.c.
* tests/test-mbrlen-w32-1.sh: New file, based on
tests/test-mbrtowc-w32-1.sh.
* tests/test-mbrlen-w32-2.sh: New file, based on
tests/test-mbrtowc-w32-2.sh.
* tests/test-mbrlen-w32-3.sh: New file, based on
tests/test-mbrtowc-w32-3.sh.
* tests/test-mbrlen-w32-4.sh: New file, based on
tests/test-mbrtowc-w32-4.sh.
* tests/test-mbrlen-w32-5.sh: New file, based on
tests/test-mbrtowc-w32-5.sh.
* tests/test-mbrlen-w32-6.sh: New file, based on
tests/test-mbrtowc-w32-6.sh.
* tests/test-mbrlen-w32-7.sh: New file, based on
tests/test-mbrtowc-w32-7.sh.
* tests/test-mbrlen-w32.c: New file, based on tests/test-mbrtowc-w32.c.
* modules/mbrlen-tests: New file, based on modules/mbrtowc-tests.
* doc/posix-functions/mbrlen.texi: Update.
2023-03-30 Bruno Haible <bruno@clisp.org>
btowc: Fix behaviour in the C locale.
* lib/btowc.c: Include <string.h>
(btowc): Use mbrtowc instead of mbtowc when possible.
* m4/btowc.m4 (gl_FUNC_BTOWC): Test for the mingw bug in the C locale.
Invoke gl_MBRTOWC_C_LOCALE. If mbrtowc is buggy in the C locale,
override also btowc.
(gl_PREREQ_BTOWC): Test whether mbrtowc exists.
* modules/btowc (Files): Add m4/mbrtowc.m4.
(Depends-on): Add mbrtowc.
* tests/test-btowc.c (main): Add a test of the C locale, based on
tests/test-mbrtowc.c.
* tests/test-btowc3.sh: New file, based on tests/test-mbrtowc5.sh.
* modules/btowc-tests (Files): Add it.
(Makefile.am): Test it.
* doc/posix-functions/btowc.texi: Mention the two C locale behaviour
bugs and that they are worked around.
2023-03-30 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Add comment.
* tests/test-mbrtowc.c: Add comment.
* tests/test-mbrtowc5.sh: Use symmetric coding style.
* doc/posix-functions/mbrtowc.texi: Update.
2023-03-30 Bruno Haible <bruno@clisp.org>
stdlib tests: Check behaviour of C locale.
* tests/test-stdlib.c (main): Check MB_CUR_MAX.
2023-03-30 Bruno Haible <bruno@clisp.org>
string-desc tests: Fix "make distcheck" failure.
* tests/test-string-desc.sh: Run the test in a subdir.
2023-03-30 Bruno Haible <bruno@clisp.org>
snprintf: Avoid autoconf warning regarding gl_PRINTF_POSITIONS.
* m4/printf.m4 (gl_PRINTF_POSITIONS): Define through AC_DEFUN_ONCE.
2023-03-28 Bruno Haible <bruno@clisp.org>
doc: Document string-desc and related modules.
* doc/string-desc.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
string-desc-quotearg: Add tests.
* tests/test-string-desc-quotearg.c: New file.
* modules/string-desc-quotearg-tests: New file.
string-desc-quotearg: New module.
* lib/string-desc-quotearg.h: New file.
* lib/string-desc-quotearg.c: New file.
* modules/string-desc-quotearg: New file.
xstring-desc: Add tests.
* tests/test-xstring-desc.c: New file.
* modules/xstring-desc-tests: New file.
xstring-desc: New module.
* lib/xstring-desc.h: New file.
* lib/xstring-desc.c: New file.
* modules/xstring-desc: New file.
string-desc: Add tests.
* tests/test-string-desc.sh: New file.
* tests/test-string-desc.c: New file.
* modules/string-desc-tests: New file.
string-desc: New module.
* lib/string-desc.h: New file.
* lib/string-desc.c: New file.
* lib/string-desc-contains.c: New file.
* modules/string-desc: New file.
2023-03-28 Bruno Haible <bruno@clisp.org>
doc: Fix placement of memset_explicit node.
* doc/posix-functions/memset_explicit.texi: Define a section, not a
subsection.
2023-03-28 Bruno Haible <bruno@clisp.org>
doc: Update regarding linear string search.
* doc/glibc-functions/memmem.texi: Update platforms list.
* doc/posix-functions/strstr.texi: Likewise.
* doc/glibc-functions/strcasestr.texi: Likewise.
2023-03-27 Bruno Haible <bruno@clisp.org>
ialloc: Add comments.
* lib/ialloc.h (imalloc, irealloc, icalloc, ireallocarray): Add
comments.
2023-03-27 Paul Eggert <eggert@cs.ucla.edu>
Support FALLTHROUGH macro better in glibc+clang.
* lib/fnmatch.c (FALLTHROUGH): Use __attribute__ ((__fallthrough__))
also in clang >= 10.
* lib/fts.c (FALLTHROUGH): Likewise.
* lib/regex_internal.h (FALLTHROUGH): Likewise.
2023-03-27 Bruno Haible <bruno@clisp.org>
wcsstr: Ensure worst-case linear execution time.
* lib/wchar.in.h (wcsstr): Consider REPLACE_WCSSTR.
* lib/wcs-two-way.h: New file, based on lib/str-two-way.h.
* lib/wcsstr-impl.h: If requested, use the two-way algorithm. New code
based on lib/strstr.c.
* m4/wcsstr.m4 (gl_FUNC_WCSSTR_SIMPLE): Renamed from gl_FUNC_WCSSTR.
(gl_FUNC_WCSSTR): New macro, based on gl_FUNC_STRSTR in m4/strstr.m4.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSSTR.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSSTR.
* modules/wcsstr-simple: New file, based on modules/wcsstr.
* modules/wcsstr (Description): Document that this module now provides
an efficient implementation.
(Files): Add lib/wcs-two-way.h.
(Depends-on): Depend on wcsstr-simple and the dependencies of the
two-way implementation.
(configure.ac): Use AC_LIBOBJ instead of a conditional. Don't invoke
gl_WCHAR_MODULE_INDICATOR.
(Makefile.am): Don't augment lib_SOURCES.
* tests/test-wcsstr.c: New file, based on tests/test-strstr.c.
* modules/wcsstr-tests: New file, based on modules/strstr-tests.
* doc/posix-functions/wcsstr.texi: Mention the worst-case complexity.
Mention the new 'wcsstr-simple' module.
* doc/posix-functions/strstr.texi: Fix typo.
2023-03-27 Bruno Haible <bruno@clisp.org>
Add test case from a past musl libc bug.
* tests/test-strstr.c (main): Add test of periodic needle.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
2023-03-27 Bruno Haible <bruno@clisp.org>
uchar: ISO C 23: Define char8_t.
* lib/uchar.in.h (char8_t): New type or macro.
* m4/uchar_h.m4 (gl_TYPE_CHAR8_T): New macro.
(gl_UCHAR_H): Invoke it. Set CXX_HAS_CHAR8_TYPE.
* modules/uchar (Makefile.am): Substitute CXX_HAS_CHAR8_TYPE,
GNULIBHEADERS_OVERRIDE_CHAR8_T.
* tests/test-uchar.c: Add tests for char8_t.
2023-03-25 Bruno Haible <bruno@clisp.org>
stdlib: ISO C 23: Document issue with once_flag and call_once.
* doc/posix-headers/stdlib.texi: Document issue and workaround.
2023-03-25 Bruno Haible <bruno@clisp.org>
call_once: New module, separate from mtx.
* lib/threads.in.h (call_once): Declare as part of module 'call_once',
not module 'mtx'.
* lib/call_once.c: New file, extracted from lib/mtx.c.
* lib/mtx.c (call_once): Remove function.
* m4/threads_h.m4 (gl_THREADS_H_REQUIRE_DEFAULTS): Inititalize
GNULIB_CALL_ONCE.
* modules/threads-h (Makefile.am): Substitute GNULIB_CALL_ONCE.
* modules/call_once: New file, based on modules/mtx.
* modules/threads (Depends-on): Add call_once.
* tests/test-threads-c++.cc: Update accordingly.
* modules/call_once-tests: New file, based on modules/mtx-tests.
* modules/mtx-tests (Files): Remove tests/test-call_once.c.
(Makefile.am): Don't compile test-call_once.
* doc/posix-functions/call_once.texi: Document that the relevant module
is now 'call_once'.
* NEWS: Mention the change.
2023-03-25 Bruno Haible <bruno@clisp.org>
stdio: ISO C 23: Define _PRINTF_NAN_LEN_MAX.
* lib/stdio.in.h (_PRINTF_NAN_LEN_MAX): New macro.
* m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MUSL_LIBC.
* modules/stdio (Files): Add m4/musl.m4.
* tests/test-stdio.c: Check that _PRINTF_NAN_LEN_MAX is defined.
Include nan.h, macros.h.
(main): Check the value of _PRINTF_NAN_LEN_MAX.
* modules/stdio-tests (Files): Add tests/nan.h, tests/macros.h,
m4/exponentd.m4.
(configure.ac): Invoke gl_DOUBLE_EXPONENT_LOCATION.
2023-03-25 Bruno Haible <bruno@clisp.org>
Make some header file tests a bit stronger.
* tests/test-float.c: Include fpucw.h and macros.h only after checking
the macros.
* tests/test-glob-h.c: Include macros.h only after checking the types
and macros.
* tests/test-inttypes.c: Don't include <stddef.h>.
* tests/test-math.c: Include <limits.h> and macros.h only after checking
the types and macros.
* tests/test-stddef.c: Include <limits.h> only after checking the types
and macros.
* tests/test-sys_select.c: Include signature.h only after checking the
types.
* tests/test-sys_socket.c: Include <errno.h> only after checking the
types and macros.
* tests/test-wctype-h.c: Include macros.h only after checking the types.
2023-03-25 Bruno Haible <bruno@clisp.org>
is* tests: Ensure needed .m4 files are packaged.
* modules/isfinite-tests (Files): Add m4/exponent*.m4.
* modules/isnan-tests (Files): Likewise.
* modules/isnanf-tests (Files): Add m4/exponentf.m4.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Add m4/exponentd.m4.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Add m4/exponentl.m4.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/isinf-tests (Files): Reorder.
2023-03-24 Bruno Haible <bruno@clisp.org>
*printf-posix: ISO C 23: Support size specifiers 'wN' and 'wfN'.
* lib/printf-args.h: Include <stdint.h>.
(arg_type): Add TYPE_[U]INT8_T, ..., TYPE_[U]INT_FAST64_T and
TYPE_COUNT_INT8_T_POINTER, ..., TYPE_COUNT_INT_FAST64_T_POINTER.
(argument): Add the union members a_[u]int8_t, ..., a_[u]int_fast64_t
and a_count_int8_t_pointer, ..., a_count_int_fast64_t_pointer.
* lib/printf-args.c: Include <limits.h>.
(PRINTF_FETCHARGS): Handle TYPE_[U]INT8_T, ..., TYPE_[U]INT_FAST64_T and
TYPE_COUNT_INT8_T_POINTER, ..., TYPE_COUNT_INT_FAST64_T_POINTER.
* lib/printf-parse.c (PRINTF_PARSE): Accept only one size specifier, not
a sequence of size specifiers. Accept "wN" and "wfN", where N = 8, 16,
32, 64.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Handle the new TYPE_*
values as well.
* m4/printf.m4 (gl_PRINTF_SIZES_C23): New macro.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Require
gl_PRINTF_SIZES_C23. Test gl_cv_func_printf_sizes_c23.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Likewise.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX):
Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Add tests for size
specifiers with %d, %u, %b, %o, %x.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/vasnprintf (Depends-on): Add limits-h.
* modules/vasnwprintf (Depends-on): Add limits-h.
* modules/c-vasnprintf (Depends-on): Add limits-h, stdint.
* modules/unistdio/u-printf-args (Depends-on): Add stdint, limits-h.
* doc/posix-functions/dprintf.texi: Mention the ISO C 23 size
specifiers.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
2023-03-24 Bruno Haible <bruno@clisp.org>
xprintf-gnu: New module.
* modules/xprintf-gnu: New file, based on modules/vasnprintf-gnu and
modules/xprintf-posix.
2023-03-24 Bruno Haible <bruno@clisp.org>
xvasprintf-gnu: New module.
* modules/xvasprintf-gnu: New file, based on modules/xvasprintf-posix.
2023-03-24 Bruno Haible <bruno@clisp.org>
vasnwprintf-gnu: Add tests.
* tests/test-vasnwprintf-gnu.c: New file, based on
tests/test-vasnwprintf-posix.c and tests/test-vasnprintf-gnu.c.
* modules/vasnwprintf-gnu-tests: New file, based on
modules/vasnwprintf-posix-tests.
vasnwprintf-gnu: New module.
* m4/vasnwprintf-posix.m4 (gl_FUNC_VASNWPRINTF_IS_POSIX): New macro.
(gl_FUNC_VASNWPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasnwprintf-gnu.m4: New file, based on m4/vasnprintf-gnu.m4.
* modules/vasnwprintf-gnu: New file, based on modules/vasnprintf-gnu.
2023-03-24 Bruno Haible <bruno@clisp.org>
obstack-printf-gnu: Add tests.
* modules/obstack-printf-gnu-tests: New file, based on
modules/obstack-printf-posix-tests.
obstack-printf-gnu: New module.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX): New
macro, extracted from gl_FUNC_OBSTACK_PRINTF_POSIX.
(gl_FUNC_OBSTACK_PRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/obstack-printf-gnu.m4: New file, based on
m4/obstack-printf-posix.m4.
* modules/obstack-printf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/glibc-functions/obstack_printf.texi: Mention the new module.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2023-03-24 Bruno Haible <bruno@clisp.org>
dprintf-gnu: Add tests.
* tests/test-dprintf-gnu.sh: New file, based on
tests/test-dprintf-posix.sh.
* tests/test-dprintf-gnu.c: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/dprintf-gnu-tests: New file, based on
modules/dprintf-posix-tests.
dprintf-gnu: New module.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_DPRINTF_POSIX.
(gl_FUNC_DPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/dprintf-gnu.m4: New file, based on m4/dprintf-posix.m4.
* modules/dprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/dprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vdprintf-gnu: Add tests.
* tests/test-vdprintf-gnu.sh: New file, based on
tests/test-vdprintf-posix.sh.
* tests/test-vdprintf-gnu.c: New file, based on
tests/test-vdprintf-posix.c.
* modules/vdprintf-gnu-tests: New file, based on
modules/vdprintf-posix-tests.
vdprintf-gnu: New module.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VDPRINTF_POSIX.
(gl_FUNC_VDPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vdprintf-gnu.m4: New file, based on m4/vdprintf-posix.m4.
* modules/vdprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vdprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
printf-gnu: Add tests.
* tests/test-printf-gnu.sh: New file, based on
tests/test-printf-posix.sh.
* tests/test-printf-gnu.c: New file, based on tests/test-printf-posix.c.
* modules/printf-gnu-tests: New file, based on
modules/printf-posix-tests.
printf-gnu: New module.
* m4/printf-posix.m4: Renamed from m4/printf-posix-rpl.m4.
(gl_FUNC_PRINTF_IS_POSIX): New macro.
(gl_FUNC_PRINTF_POSIX): Require it. Don't require
gl_FUNC_VFPRINTF_POSIX. Invoke gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
and gl_REPLACE_VASNPRINTF.
* m4/printf-gnu.m4: New file, based on m4/fprintf-posix.m4.
* modules/printf-posix (Files): Update.
* modules/printf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/printf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vprintf-gnu: Add tests.
* tests/test-vprintf-gnu.sh: New file, based on
tests/test-vprintf-posix.sh.
* tests/test-vprintf-gnu.c: New file, based on
tests/test-vprintf-posix.c.
* tests/test-printf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vprintf-gnu-tests: New file, based on
modules/vprintf-posix-tests.
vprintf-gnu: New module.
* m4/vprintf-posix.m4 (gl_FUNC_VPRINTF_IS_POSIX): New macro.
(gl_FUNC_VPRINTF_POSIX): Require it. Don't require
gl_FUNC_VFPRINTF_POSIX. Invoke gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS
and gl_REPLACE_VASNPRINTF.
* m4/vprintf-gnu.m4: New file, based on m4/vfprintf-posix.m4.
* modules/vprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
fprintf-gnu: Add tests.
* tests/test-fprintf-gnu.sh: New file, based on
tests/test-fprintf-posix.sh.
* tests/test-fprintf-gnu.c: New file, based on
tests/test-fprintf-posix.c.
* modules/fprintf-gnu-tests: New file, based on
modules/fprintf-posix-tests.
fprintf-gnu: New module.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_FPRINTF_POSIX.
(gl_FUNC_FPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/fprintf-gnu.m4: New file, based on m4/fprintf-posix.m4.
* modules/fprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/fprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vfprintf-gnu: Add tests.
* tests/test-vfprintf-gnu.sh: New file, based on
tests/test-vfprintf-posix.sh.
* tests/test-vfprintf-gnu.c: New file, based on
tests/test-vfprintf-posix.c.
* tests/test-fprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* tests/test-printf-gnu.output: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vfprintf-gnu-tests: New file, based on
modules/vfprintf-posix-tests.
vfprintf-gnu: New module.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VFPRINTF_POSIX.
(gl_FUNC_VFPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vfprintf-gnu.m4: New file, based on m4/vfprintf-posix.m4.
* modules/vfprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vfprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vasprintf-gnu: Add tests.
* tests/test-vasprintf-gnu.c: New file, based on
tests/test-vasprintf-posix.c and tests/test-vasnprintf-gnu.c.
* modules/vasprintf-gnu-tests: New file, based on
modules/vasprintf-posix-tests.
vasprintf-gnu: New module.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VASPRINTF_POSIX.
(gl_FUNC_VASPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasprintf-gnu.m4: New file, based on m4/vasprintf-posix.m4.
* modules/vasprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/glibc-functions/vasprintf.texi: Mention the new module.
* doc/glibc-functions/asprintf.texi: Likewise.
2023-03-24 Bruno Haible <bruno@clisp.org>
sprintf-gnu: Add tests.
* tests/test-sprintf-gnu.c: New file, based on
tests/test-sprintf-posix.c.
* modules/sprintf-gnu-tests: New file, based on
modules/sprintf-posix-tests.
sprintf-gnu: New module.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_SPRINTF_POSIX.
(gl_FUNC_SPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/sprintf-gnu.m4: New file, based on m4/sprintf-posix.m4.
* modules/sprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/sprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vsprintf-gnu: Add tests.
* tests/test-vsprintf-gnu.c: New file, based on
tests/test-vsprintf-posix.c.
* tests/test-sprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vsprintf-gnu-tests: New file, based on
modules/vsprintf-posix-tests.
vsprintf-gnu: New module.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VSPRINTF_POSIX.
(gl_FUNC_VSPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vsprintf-gnu.m4: New file, based on m4/vsprintf-posix.m4.
* modules/vsprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vsprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
snprintf-gnu: Add tests.
* tests/test-snprintf-gnu.c: New file, based on
tests/test-snprintf-posix.c.
* modules/snprintf-gnu-tests: New file, based on
modules/snprintf-posix-tests.
snprintf-gnu: New module.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_SNPRINTF_POSIX.
(gl_FUNC_SNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/snprintf-gnu.m4: New file, based on m4/snprintf-posix.m4.
* modules/snprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/snprintf.texi: Mention the new module.
2023-03-24 Bruno Haible <bruno@clisp.org>
vsnprintf-gnu: Add tests.
* tests/test-vsnprintf-gnu.c: New file, based on
tests/test-vsnprintf-posix.c.
* tests/test-snprintf-gnu.h: New file, based on
tests/test-vasnprintf-gnu.c.
* modules/vsnprintf-gnu-tests: New file, based on
modules/vsnprintf-posix-tests.
vsnprintf-gnu: New module.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VSNPRINTF_POSIX.
(gl_FUNC_VSNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vsnprintf-gnu.m4: New file, based on m4/vsnprintf-posix.m4.
* modules/vsnprintf-gnu: New file, based on modules/vasnprintf-gnu.
* doc/posix-functions/vsnprintf.texi: Mention the new module.
2023-03-23 Bruno Haible <bruno@clisp.org>
vasnprintf-gnu: Add tests.
* tests/test-vasnprintf-gnu.c: New file, based on
tests/test-vasnprintf-posix.c.
* modules/vasnprintf-gnu-tests: New file.
vasnprintf-gnu: New module.
Suggested by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00060.html>.
* lib/printf-parse.c (PRINTF_PARSE): Recognize the 'B' conversion.
* lib/printf-parse.h: Update comments.
* lib/wprintf-parse.h: Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): Treat the 'B' conversion like 'b'.
(VASNPRINTF): Implement 'B' conversion if
NEED_PRINTF_DIRECTIVE_UPPERCASE_B is set. Support the 'B' conversion if
requested.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_B): When cross-compiling, guess yes
on glibc >= 2.35.
(gl_PRINTF_DIRECTIVE_UPPERCASE_B): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS): Renamed
from gl_PREREQ_VASNPRINTF_WITH_EXTRAS.
(gl_PREREQ_VASNPRINTF_DIRECTIVE_UPPERCASE_B,
gl_PREREQ_VASNPRINTF_WITH_GNU_EXTRAS): New macros.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): New macro,
extracted from gl_FUNC_VASNPRINTF_POSIX.
(gl_FUNC_VASNPRINTF_POSIX): Require it. Invoke
gl_PREREQ_VASNPRINTF_WITH_POSIX_EXTRAS.
* m4/vasnprintf-gnu.m4: New file.
* modules/vasnprintf-gnu: New file.
* modules/c-vasnprintf (configure.ac): Update.
* modules/unistdio/u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u8-u8-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u16-u16-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/u32-u32-vasnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vasnprintf (configure.ac): Likewise.
2023-03-23 Bruno Haible <bruno@clisp.org>
printf-posix tests: Fix compilation error (regression 2021-08-28).
* modules/printf-posix-tests (Files): Add tests/qemu.h.
2023-03-22 Jim Meyering <meyering@fb.com>
gnu-web-doc-update: don't use host alias, cvs.sv.gnu.org
* build-aux/gnu-web-doc-update: Use hostname cvs.savannah.gnu.org,
not cvs.sv.gnu.org. Using the shorter alias would elicit this:
$ pkg=grep ; cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg
Bad server host key: Invalid key length
2023-03-22 Bruno Haible <bruno@clisp.org>
*printf-posix: Fix implementation of %b directive.
* lib/vasnprintf.c (VASNPRINTF): In the %b directive implementation, fix
the precision handling, and ignore the '0' flag when a width and a
precision are both present.
* tests/test-snprintf-posix.h (test_function): Add test cases for the %x
directive and more test cases for the %b directive.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* modules/vasnwprintf-posix-tests (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether wcsnlen is
declared.
* lib/vasnprintf.c (local_wcsnlen): Together with HAVE_WCSNLEN, test
also HAVE_DECL_WCSNLEN.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix a "warning: unused function local_wcsnlen".
* lib/vasnprintf.c: Adjust #if conditions.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix test failures on FreeBSD, NetBSD, AIX, mingw.
* m4/printf.m4 (gl_SWPRINTF_WORKS): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke it and define
HAVE_WORKING_SWPRINTF accordingly.
* lib/vasnprintf.c: Together with HAVE_SWPRINTF, test also
HAVE_WORKING_SWPRINTF.
(VASNPRINTF): If WIDE_CHAR_VERSION && !DCHAR_IS_TCHAR, don't pass a
wchar_t[] to snprintf. Add a workaround against mingw's snwprintf
function.
* doc/posix-functions/swprintf.texi: Document the null wide character
bug.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix a "warning: unused function 'wmax_room_needed'".
* lib/vasnprintf.c (MAX_ROOM_NEEDED): Adjust #if condition.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf: Simplify last change.
* lib/vasnprintf.c (VASNPRINTF): Remove unused variable 'len'.
2023-03-22 Bruno Haible <bruno@clisp.org>
vasnwprintf tests: Fix link errors on AIX.
* modules/vasnwprintf (Link): New section.
* modules/vasnwprintf-posix (Link): New section.
* modules/vasnwprintf-tests (Makefile.am): Link test-vasnwprintf with
$(MBRTOWC_LIB).
* modules/vasnwprintf-posix-tests (Makefile.am): Link
test-vasnwprintf-posix, test-vasnwprintf-posix2, test-vasnwprintf-posix3
with $(MBRTOWC_LIB).
2023-03-22 Bruno Haible <bruno@clisp.org>
gnu-web-doc-update: Make it work for the first upload of a manual.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00066.html>.
* build-aux/gnu-web-doc-update: Put the 'manual' directory under version
control if it is not yet.
2023-03-21 Bruno Haible <bruno@clisp.org>
unistdio/u*-vasnprintf: Fix conversion of %Id directive result.
* lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's result is
entirely ASCII if the directive contain the glibc 'I' flag.
2023-03-21 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix for older platforms without swprintf.
* lib/vasnprintf.c (VASNPRINTF): In the %lc handling, ignore the
precision. Convert the snprintf result to a wchar_t[] not by mbsrtowcs,
but by a loop that does not stop at NUL characters.
* tests/test-vasnwprintf-posix.c (test_function): Add more tests for the
%c and %lc directives.
* modules/vasnwprintf (Depends-on): Add mbrtowc. Remove mbsrtowcs.
2023-03-21 Bruno Haible <bruno@clisp.org>
*printf-posix: Work around bug with %lc of 0 on many platforms.
* lib/vasnprintf.c (local_wctomb): Define also for
NEED_PRINTF_DIRECTIVE_LC.
(VASNPRINTF): Implement %lc handling ourselves if
NEED_PRINTF_DIRECTIVE_LC.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LC): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_LC): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require
gl_PRINTF_DIRECTIVE_LC and test its result. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_LC.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Add more tests for the
%c and %lc directives.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/glibc-functions/asprintf.texi: Mention the %lc 0 bug.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
2023-03-21 Ar Rakin <rakinar2@onesoftnet.eu.org> (tiny change)
gnupload: correct SFTP connection URL
Approved by Sergey Poznyakoff in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-03/msg00078.html>.
* build-aux/gnupload: fix gnu.org.ua SFTP connection URL:
puszcza.gnu.org.ua -> download.gnu.org.ua
2023-03-20 Bruno Haible <bruno@clisp.org>
memrchr tests: Avoid GCC warning.
* tests/test-memrchr.c: Don't use '#pragma GCC diagnostic' for GCC
versions older than 4.7.
2023-03-20 Bruno Haible <bruno@clisp.org>
unistdio: Simplify code.
* lib/unistdio/u8-vasnprintf.c (DCHAR_T_IS_UINT8_T): Remove unused
macro.
* lib/unistdio/u8-u8-vasnprintf.c: Likewise.
* lib/unistdio/u16-vasnprintf.c (DCHAR_T_IS_UINT16_T): Remove unused
macro.
* lib/unistdio/u16-u32-vasnprintf.c: Likewise.
* lib/unistdio/u32-vasnprintf.c (DCHAR_T_IS_UINT32_T): Remove unused
macro.
* lib/unistdio/u32-u32-vasnprintf.c: Likewise.
2023-03-20 Bruno Haible <bruno@clisp.org>
vasnwprintf: Port to older platforms without swprintf.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test for swprintf.
* lib/vasnprintf.c (TCHAR_T, DCHAR_IS_TCHAR, SNPRINTF): When
WIDE_CHAR_VERSION and swprintf does not exist, use TCHAR_T = char,
SNPRINTF = snprintf, and !DCHAR_IS_TCHAR.
(VASNPRINTF): In this case, implement %ls and %lc directly. Adjust a
couple of #if conditions. For the conversion from TCHAR_T[] to
DCHAR_T[], use mbsrtowcs.
* modules/vasnwprintf (Depends-on): Add mbsrtowcs.
2023-03-20 Bruno Haible <bruno@clisp.org>
wmemset: Relicense under LGPLv2+.
* modules/wmemset (License): Change to LGPLv2+.
* lib/wmemset.c: Update license notice.
* lib/wmemset-impl.h: Likewise.
2023-03-20 Bruno Haible <bruno@clisp.org>
wmemcpy: Relicense under LGPLv2+.
* modules/wmemcpy (License): Change to LGPLv2+.
* lib/wmemcpy.c: Update license notice.
* lib/wmemcpy-impl.h: Likewise.
2023-03-19 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix test failures on musl libc.
* m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_MUSL_LIBC.
* lib/vasnprintf.c (VASNPRINTF): On musl libc, when WIDE_CHAR_VERSION,
- force pad_ourselves to be 1,
- don't use %n.
Fix zero-padding when the result starts with a prefix "0x" or "0b".
* modules/vasnwprintf (Files): Add musl.m4.
* doc/posix-functions/swprintf.texi: Mention two musl libc bugs.
2023-03-19 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix module dependencies.
* modules/vasnwprintf (Depends-on): Add wmemcpy, wmemset.
* modules/vasnwprintf-tests (Depends-on): Add wmemcmp.
* modules/vasnwprintf-posix-tests (Depends-on): Likewise.
2023-03-19 Paul Eggert <eggert@cs.ucla.edu>
test-pselect, test-select: use different ports
I have observed rare and hard-to-reproduce problems with the GNU
grep release candidate with ‘make -j5 check’ on Fedora 37 x86-64.
One possibility is that test-pselect and test-select interfere
with each other somehow when run simultaneously, as they use the
same port. Work around this possibility by using different ports
from each other, and from test-poll (which also uses 12345).
Of course it’d be better if all these tests used system-assigned
ports, but I assume that’d take more work.
* tests/test-pselect.c, tests/test-select.c (TEST_PORT): New macro.
* tests/test-select.h (TEST_PORT): Remove.
2023-03-19 Bruno Haible <bruno@clisp.org>
Update MODULES.html.sh.
* MODULES.html.sh: Move stack, wmempcpy, bison to different sections.
Fix a HTML layout problem.
2023-03-18 Paul Eggert <eggert@cs.ucla.edu>
dfa: pacify Oracle Solaris Studio 12.6
Without this patch, the compiler complains “statement not reached”.
* lib/dfa.c (lex): Refactor to omit unreachable statement.
Update MODULES.html.sh
* MODULES.html.sh: Add some recently-added modules.
This is by no means a complete update. I needed to point
to something about ‘time’ so I added ‘time’, and then added
more modules until I ran out of, errr, time.
Assuming MODULES.html.sh is still useful,
at some point a more-complete update should be done.
2023-03-17 Bruno Haible <bruno@clisp.org>
*printf-posix: ISO C 23: Add %b directive for binary output of integers.
* lib/printf-parse.c (PRINTF_PARSE): Recognize the 'b' directive.
* lib/printf-parse.h: Update comment.
* lib/wprintf-parse.h: Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Add support for the
'b' directive.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_B): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_B): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/vasnwprintf-posix.m4 (gl_FUNC_VASNWPRINTF_POSIX): Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_B.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require
gl_PRINTF_DIRECTIVE_B and test its result. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_B.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Add some tests of the %b
directive.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/glibc-functions/asprintf.texi: Mention the 'b' directive.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Likewise.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnprintf, vasnwprintf: Simplify code.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): Remove dead code: The directives
'o', 'x', 'X' always take an unsigned integer argument.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnwprintf: Fix test failure on OpenBSD.
* lib/vasnprintf.c (VASNPRINTF): Don't use the %n directive on OpenBSD.
2023-03-17 Bruno Haible <bruno@clisp.org>
time: Fix test failure on AIX 7.2.
* m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on AIX.
* doc/posix-functions/time.texi: Mention the bug on AIX.
time: Fix test failure on native Windows.
* m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on native
Windows.
* modules/time (Depends-on): Add gettimeofday.
* doc/posix-functions/time.texi: Mention the bug on Windows.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnprintf, vasnwprintf: Include all necessary workarounds in libintl.
* lib/vasnprintf.c: Remove IN_LIBINTL special-casing.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnwprintf-posix: Add tests.
* tests/test-vasnwprintf-posix.c: New file, based on
tests/test-vasnprintf-posix.c.
* tests/test-vasnwprintf-posix2.sh: New file, based on
tests/test-vasnprintf-posix2.sh.
* tests/test-vasnwprintf-posix2.c: New file, based on
tests/test-vasnprintf-posix2.c.
* tests/test-vasnwprintf-posix3.c: New file, based on
tests/test-vasnprintf-posix3.c.
* modules/vasnwprintf-posix-tests: New file, based on
modules/vasnprintf-posix-tests.
vasnwprintf-posix: New module.
* m4/vasnwprintf-posix.m4: New file.
* modules/vasnwprintf-posix: New file, based on
modules/vasnprintf-posix.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Relicense under LGPLv2+.
* modules/vasnprintf-posix (License): Change to LGPLv2+.
2023-03-17 Bruno Haible <bruno@clisp.org>
vasnwprintf: Add tests.
* tests/test-vasnwprintf.c: New file, based on tests/test-vasnprintf.c.
* modules/vasnwprintf-tests: New file, based on
modules/vasnprintf-tests.
vasnwprintf: New module.
* lib/vasnprintf.c: Enable more code for WIDE_CHAR_VERSION, because
snwprintf()/_snwprintf() (Windows) and swprintf() (Unix) don't return
the needed buffer size, like snprintf does.
* lib/wprintf-parse.h: New file, based on lib/printf-parse.h and
gettext/gettext-runtime/intl/wprintf-parse.h.
* lib/wprintf-parse.c: New file, based on
gettext/gettext-runtime/intl/printf.c.
* lib/vasnwprintf.h: New file, based on lib/vasnprintf.h and
gettext/gettext-runtime/intl/vasnwprintf.h.
* lib/vasnwprintf.c: New file.
* lib/asnwprintf.c: New file, based on lib/asnprintf.c.
* m4/vasnprintf.m4 (gl_FUNC_VASNWPRINTF): New macro.
(gl_PREREQ_VASNXPRINTF): New macro, extracted from gl_PREREQ_VASNPRINTF.
(gl_PREREQ_VASNPRINTF): Invoke it. Don't test for wcsnlen and mbrtowc.
(gl_PREREQ_VASNWPRINTF): New macro.
* modules/vasnwprintf: New file, based on modules/vasnprintf.
2023-03-16 Bruno Haible <bruno@clisp.org>
strtol, strtoll, strtoul, strtoull: Make ISO C 23 compliant.
* lib/strtol.c (INTERNAL (strtol)): Treat 'b' and base 2 like 'x' and
base 16. Based on glibc commit 64924422a99690d147a166b4de3103f3bf3eaf6c
by Joseph Myers.
* m4/strtol.m4 (gl_FUNC_STRTOL): Test also whether parsing binary
integers works. Update cross-compilation guesses.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Likewise.
* m4/strtoul.m4 (gl_FUNC_STRTOUL): Likewise.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Likewise.
* tests/test-strtol.c (main): Add tests of parsing binary integers.
* tests/test-strtoll.c (main): Likewise.
* tests/test-strtoul.c (main): Likewise.
* tests/test-strtoull.c (main): Likewise.
* doc/posix-functions/strtol.texi: Mention the problem with parsing
binary integers.
* doc/posix-functions/strtoll.texi: Likewise.
* doc/posix-functions/strtoul.texi: Likewise.
* doc/posix-functions/strtoull.texi: Likewise.
2023-03-16 Bruno Haible <bruno@clisp.org>
timegm: Document under ISO C and POSIX substitutes.
* doc/posix-functions/timegm.texi: Renamed from doc/glibc-functions/timegm.texi.
* doc/gnulib.texi (Function Substitutes): Include timegm.texi here...
(Glibc time.h): ... not here.
2023-03-16 Bruno Haible <bruno@clisp.org>
stddef: Fix a compilation error on AIX 7.2 with xlclang.
* lib/stddef.in.h (__CLANG_MAX_ALIGN_T_DEFINED): Define whenever we
define GNULIB_defined_max_align_t.
2023-03-16 Bruno Haible <bruno@clisp.org>
stddef: Define 'unreachable', for ISO C 23 compliance.
* lib/verify.h (_GL_HAS_BUILTIN_UNREACHABLE): Don't define if already
defined.
* lib/stddef.in.h (_GL_HAS_BUILTIN_UNREACHABLE, unreachable): New
macros.
(abort): Declare if needed for unreachable.
* m4/stddef_h.m4 (gl_STDDEF_H): Test for unreachable.
* tests/test-stddef.c (test_unreachable_optimization,
test_unreachable_noreturn): New functions, based on tests/test-verify.c.
* doc/posix-headers/stddef.texi: Mention unreachable.
2023-03-10 Paul Eggert <eggert@cs.ucla.edu>
posixtm: work around Glibc time issue
* modules/posixtm (Depends-on): Add time.
2023-03-09 Jim Meyering <meyering@fb.com>
bootstrap: correct last change
* top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: Do always
apply the --no-recursive option.
* build-aux/bootstrap: Regenerate.
bootstrap: remove code that accommodated RHEL5's old autoreconf
* top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: RHEL5 has not
been supported since 2017. It included (and this code worked around)
a version of autoreconf that was so old it did not accept the
--no-recursive option. Drop that workaround.
* build-aux/bootstrap: Regenerate.
2023-03-08 Bruno Haible <bruno@clisp.org>
gettimeofday, timespec_get tests: Avoid test failure on glibc/Linux.
* modules/gettimeofday-tests (Depends-on): Add 'time'.
* modules/timespec_get-tests (Depends-on): Likewise.
* tests/test-gettimeofday.c (test_consistency): Update comment.
* tests/test-timespec_get.c (main): Likewise.
time: Add tests.
* tests/test-time.c: New file.
* modules/time-tests: New file.
time: New module.
* lib/time.in.h (time): New declaration.
* lib/time.c: New file.
* m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS): Initialize GNULIB_TIME.
(gl_TIME_H_DEFAULTS): Initialize REPLACE_TIME.
* m4/time.m4: New file.
* modules/time-h (Makefile.am): Substitute GNULIB_TIME, REPLACE_TIME.
* modules/time: New file.
* tests/test-time-h-c++.cc: Check the signature of
GNULIB_NAMESPACE::time.
* doc/posix-functions/time.texi: Mention the glibc problem and the
'time' module.
2023-03-08 Bruno Haible <bruno@clisp.org>
time-h: Renamed from time.
* modules/time-h: Renamed from modules/time.
* tests/test-time-h.c: Renamed from tests/test-time.c.
* modules/time-h-tests: Renamed from modules/time-tests. Update.
* tests/test-time-h-c++.cc: Renamed from tests/test-time-c++.cc.
* tests/test-time-h-c++2.cc: Renamed from tests/test-time-c++2.cc.
* modules/time-h-c++-tests: Renamed from modules/time-c++-tests. Update.
* modules/cond (Depends-on): Update.
* modules/ctime (Depends-on): Likewise.
* modules/localtime (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/parse-datetime (Depends-on): Likewise.
* modules/posixcheck (Depends-on): Likewise.
* modules/pthread-h (Depends-on): Likewise.
* modules/stat-time (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/strftime-fixes (Depends-on): Likewise.
* modules/strptime (Depends-on): Likewise.
* modules/sys_stat (Depends-on): Likewise.
* modules/tempname (Depends-on): Likewise.
* modules/threads-h (Depends-on): Likewise.
* modules/time_r (Depends-on): Likewise.
* modules/time_rz (Depends-on): Likewise.
* modules/timegm (Depends-on): Likewise.
* modules/timespec (Depends-on): Likewise.
* modules/timespec_get (Depends-on): Likewise.
* modules/timespec_getres (Depends-on): Likewise.
* modules/tzset (Depends-on): Likewise.
* modules/usleep-tests (Depends-on): Likewise.
* modules/utime (Depends-on): Likewise.
* modules/utimecmp (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
* modules/windows-cond (Depends-on): Likewise.
* modules/windows-timedmutex (Depends-on): Likewise.
* modules/windows-timedrecmutex (Depends-on): Likewise.
* modules/windows-timedrwlock (Depends-on): Likewise.
* modules/xnanosleep (Depends-on): Likewise.
* doc/posix-headers/time.texi: Update.
* NEWS: Mention the change.
2023-03-08 Bruno Haible <bruno@clisp.org>
gettimeofday tests: Enhance test.
* tests/test-gettimeofday.c: Include <stdlib.h> and macros.h.
(test_clobber): New function, extracted from main.
(test_consistency): New function, based on tests/test-timespec_get.c.
(main): Invoke both functions.
* modules/gettimeofday-tests (Files): Add macros.h.
2023-03-05 Paul Eggert <eggert@cs.ucla.edu>
stdio: suppress macOS 13 sprintf warnings
* lib/stdio.in.h (_POSIX_C_SOURCE, _GL_DEFINED__POSIX_C_SOURCE):
Suppress deprecation warnings for sprintf and vsprintf
that were introduced in macOS 13. These are not useful
for Gnulib itself, and are more likely than not to be
merely an annoyance for Gnulib-using code.
2023-03-05 Bruno Haible <bruno@clisp.org>
timespec_get tests: Add comment.
* tests/test-timespec_get.c: Add a comment regarding a glibc bug.
2023-03-02 Bruno Haible <bruno@clisp.org>
nl_langinfo tests: Avoid test failure on Solaris 11.
* tests/test-nl_langinfo2.c (main): Skip French T_FMT_AMPM test on
Solaris.
2023-02-28 Benno Schulenberg <bensberg@telfort.nl> (tiny change)
terminfo, termcap: Fix more spellos in a comment.
* lib/tparm.c: Fix misspellings and wording in the main comment.
2023-02-28 Bruno Haible <bruno@clisp.org>
perl: Allow this module to be used with 'gnulib-tool --lgpl'.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00191.html>.
* modules/perl (License): Relax to 'GPLed build tool'.
Approved by Jim Meyering in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00198.html>.
2023-02-28 Bruno Haible <bruno@clisp.org>
dfa: Tweak the last patch.
Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
* lib/dfa.c (FALLTHROUGH): Assume that Apple clang, in C mode, supports
__attribute__ ((__fallthrough__)) starting with version 1200.
References:
https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2
https://github.com/apple/llvm-project/blob/swift-5.3-RELEASE/clang/test/Sema/fallthrough-attr.c
2023-02-27 ChuanGang Jiang <jiangchuanganghw@outlook.com>
fts: fail gracefully when out of memory
* lib/fts.c (fts_read): Set errno==ENOMEM and return NULL
when setup_dir() fails, rather than hitting an assertion later.
2023-02-26 Jim Meyering <meyering@fb.com>
announce-gen: spell OpenBSD with a capital "O"
* build-aux/announce-gen (print_checksums): Capitalize
the "O" in OpenBSD, as suggested by Bruno Haible.
2023-02-26 Bruno Haible <bruno@clisp.org>
dfa: Avoid warnings with some Apple clang versions.
Reported by Werner Lemberg <wl@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00159.html>.
* lib/dfa.c (FALLTHROUGH): When __apple_build_version__ is defined,
ignore __clang_major__.
2023-02-25 Jim Meyering <meyering@fb.com>
announce-gen: add more info the auto-generated announce template
* build-aux/announce-gen (readable_interval, readable_interval0):
New functions.
(digest_file_base64_wrap): New function to add padding to the
base64-encoded SHA256 checksums.
(print_checksums): Use that wrapper. Indent each line by two spaces.
(main): Emit new sections, e.g., these lines from grep-3.8's release:
- There have been 104 commits by 6 people in the 55 weeks since 3.7.
- The following people contributed changes to this release: (and list)
I tested with this, running from a sibling cloned grep directory:
../gnulib/build-aux/announce-gen --release-type=stable \
--package-name=grep --previous-version=3.7 --current-version=3.8 \
--gpg-key-id=0x7FD9FCCB000BEEEE --url-directory=https://testing
Also, reference the cksum programs from coreutils-9.2 and from OpenBSD.
2023-02-25 ChuanGang Jiang <jiangchuanganghw@outlook.com> (tiny change)
terminfo, termcap: Fix typos in comments.
* lib/tparm.c: Fix misspellings in comments.
2023-02-23 Paul Eggert <eggert@cs.ucla.edu>
lseek: avoid SEEK_HOLE bugs in FreeBSD, macOS
This attempts to fix <https://bugs.gnu.org/61386>, a bug in GNU cp
caused by a serious data corruption bug in FreeBSD and macOS.
* doc/posix-functions/lseek.texi: Mention the bug.
* lib/unistd.in.h (SEEK_DATA, SEEK_HOLE): Undef in macOS < 13 and
FreeBSD < 14. FreeBSD fixed the bug sometime during FreeBSD 13
<https://bugs.freebsd.org/256205>, so the "FreeBSD < 14" is
conservative. It’s unknown when Apple will fix macOS so use
macOS "9999" as a placeholder.
* m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek if on one of the
above platforms.
2023-02-18 Bruno Haible <bruno@clisp.org>
configmake: Add support for $build_os != $host_os.
* m4/build-to-host.m4: New file.
* m4/configmake.m4 (gl_CONFIGMAKE_PREP): Provide a configure-time
definition for pkgdatadir, pkgincludedir, pkglibdir.
(gl_CONFIGMAKE): New macro.
* modules/configmake (Files): Add m4/build-to-host.m4.
(configure.ac): Invoke gl_CONFIGMAKE instead of gl_CONFIGMAKE_PREP.
(Makefile.am): For creating configmake.h, use the various *prefix_c_make
and *dir_c_make variables.
2023-02-18 Bruno Haible <bruno@clisp.org>
configmake: Prepare for using directory names with backslashes.
* modules/configmake (Makefile.am): Use printf instead of echo.
2023-02-18 Bruno Haible <bruno@clisp.org>
unilbrk tests: Fix compilation failures (regression 2023-02-11).
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Outside of
libunistring, don't test the backward compatibility function.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u8-width-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u16-width-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-width-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise.
2023-02-17 Bruno Haible <bruno@clisp.org>
Improve cross-compilation for midipix.
Reported by Ørjan Malde <red@foxi.me> at
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00131.html>.
This patch handles the cases where midipix acts like Linux.
* m4/chmod.m4 (gl_FUNC_CHMOD): Treat midipix like Linux with glibc or
musl libc.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
* m4/link.m4 (gl_FUNC_LINK): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
* m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise.
* m4/readlink.m4 (gl_FUNC_READLINK): Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/select.m4 (gl_FUNC_SELECT): Likewise.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/usleep.m4 (gl_FUNC_USLEEP): Likewise.
Improve cross-compilation for midipix.
Reported by Ørjan Malde <red@foxi.me> at
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00131.html>.
Since midipix consists of musl libc based on an emulation of Linux system
calls, for pure libc functionality it can be treated like musl libc.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Treat midipix like systems with
musl libc.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/expm1.m4 (gl_FUNC_EXPM1): Likewise.
* m4/expm1f.m4 (gl_FUNC_EXPM1F): Likewise.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise.
* m4/fclose.m4 (gl_FUNC_FCLOSE_STDIN): Likewise.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise.
* m4/ffsll.m4 (gl_FUNC_FFSLL): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/fmod.m4 (gl_FUNC_FMOD): Likewise.
* m4/fmodf.m4 (gl_FUNC_FMODF): Likewise.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Likewise.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise.
* m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Likewise.
* m4/log.m4 (gl_FUNC_LOG): Likewise.
* m4/log10.m4 (gl_FUNC_LOG10): Likewise.
* m4/log10f.m4 (gl_FUNC_LOG10F): Likewise.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Likewise.
* m4/log1p.m4 (gl_FUNC_LOG1P): Likewise.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise.
* m4/log1pl.m4 (gl_FUNC_LOG1PL, gl_FUNC_LOG1PL_WORKS): Likewise.
* m4/log2.m4 (gl_FUNC_LOG2): Likewise.
* m4/log2f.m4 (gl_FUNC_LOG2F): Likewise.
* m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise.
* m4/logf.m4 (gl_FUNC_LOGF): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
* m4/modf.m4 (gl_FUNC_MODF): Likewise.
* m4/modff.m4 (gl_FUNC_MODFF): Likewise.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
* m4/musl.m4 (gl_MUSL_LIBC): Likewise.
* m4/perror.m4 (gl_FUNC_PERROR): Likewise.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE,
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE,
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2,
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE,
gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A,
gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99,
gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N,
gl_VSNPRINTF_ZEROSIZE_C99): Likewise.
* m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER):
Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL, gl_FUNC_REMAINDERL_WORKS):
Likewise.
* m4/rintl.m4 (gl_FUNC_RINTL): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
* m4/setenv.m4 (gl_FUNC_SETENV): Likewise.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Likewise.
* m4/signbit.m4 (gl_SIGNBIT): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/strerror.m4 (gl_FUNC_STRERROR, gl_FUNC_STRERROR_0): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
2023-02-13 ChuanGang Jiang <jiangchuanganghw@outlook.com> (tiny change)
hamt: Detect GCC version correctly.
* lib/hamt.h:Use __GNUC_MINOR__, not __GNUC_MINOR.
2023-02-11 Bruno Haible <bruno@clisp.org>
terminfo, termcap: Avoid wrong configure result with clang ≥ 15.
clang 15 reports an error for -Wint-conversion by default.
Reported by Sam James <sam@gentoo.org> in
<https://savannah.gnu.org/bugs/?63793>.
* m4/terminfo.m4 (gl_TERMINFO_BODY): Avoid a -Wint-conversion warning
when testing for tparam and tparm.
* m4/termcap.m4 (gl_TERMCAP_BODY): Likewise.
2023-02-11 Bruno Haible <bruno@clisp.org>
error-h: Make less fragile.
* lib/error.in.h: Use #include_next if the system has an <error.h>. Use
a split double-inclusion guard.
* m4/error_h.m4 (gl_ERROR_H): Invoke gl_CHECK_NEXT_HEADERS. Set
HAVE_ERROR_H.
* modules/error-h (Makefile.am): Substitute GUARD_PREFIX, HAVE_ERROR_H,
INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_ERROR_H.
2023-02-11 Bruno Haible <bruno@clisp.org>
unilbrk: Don't compile unused functions outside of libunistring.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't
compile outside of libunistring.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks):
Likewise.
* lib/unilbrk/u8-width-linebreaks.c (u8_width_linebreaks): Likewise.
* lib/unilbrk/u16-width-linebreaks.c (u16_width_linebreaks): Likewise.
* lib/unilbrk/u32-width-linebreaks.c (u32_width_linebreaks): Likewise.
* lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Likewise.
2023-02-11 Bruno Haible <bruno@clisp.org>
sigsegv: Fix a compilation error on OpenBSD with clang ≥ 16.
* lib/sigsegv.c (install_for): Add a cast when assigning to
action.sa_sigaction.
2023-02-10 Bruno Haible <bruno@clisp.org>
Fix code duplication in last commit.
* m4/gnulib-common.m4 (gl_CHECK_FUNCS_DEFAULT_CASE,
gl_CHECK_FUNCS_CASE_FOR_ANDROID, gl_CHECK_FUNCS_CASE_FOR_MACOS,
gl_CHECK_FUNCS_SET_RESULTS): New macros, extracted from
gl_CHECK_FUNCS_ANDROID, gl_CHECK_FUNCS_MACOS,
gl_CHECK_FUNCS_ANDROID_MACOS.
(gl_CHECK_FUNCS_ANDROID, gl_CHECK_FUNCS_MACOS,
gl_CHECK_FUNCS_ANDROID_MACOS): Use them.
mkfifoat: Fix crash on macOS 12.
* m4/gnulib-common.m4 (gl_PREPARE_CHECK_FUNCS_MACOS,
gl_CHECK_FUNCS_MACOS, gl_CHECK_FUNCS_ANDROID_MACOS): New macros.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mknodat and mkfifoat using
gl_CHECK_FUNCS_ANDROID_MACOS instead of gl_CHECK_FUNCS_ANDROID.
2023-02-10 ChuanGang Jiang <jiangchuanganghw@outlook.com> (tiny change)
Fix typos like "the the" and "a a" in comments.
* lib/c32is-impl.h: s/the the/the/
* lib/getopt-pfx-core.h: s/a a/a/
* lib/term-style-control.h: s/the the/the/
* lib/textstyle.in.h: Likewise.
2023-02-10 Bruno Haible <bruno@clisp.org>
chown, lchown, fchownat tests: Avoid test failure on macOS 12.
* tests/test-chown.h (test_chown): Skip some assertions if
getgid() == (gid_t)-1.
* tests/test-lchown.h (test_lchown): Likewise.
2023-02-09 Paul Eggert <eggert@cs.ucla.edu>
nullptr: work around Apple clang 14 issue
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2023-02/msg00098.html
* doc/gnulib.texi (nullptr): Document limitations better.
* m4/nullptr.m4 (gl_NULLPTR): Check for incompatibility of macOS
clang 14.0.0 (clang-1400.0.29.202), where <stddef.h> defines a
non-working nullptr macro.
2023-02-09 Bruno Haible <bruno@clisp.org>
math: Fix compilation error in C++ mode on macOS 12.5.
* lib/math.in.h (isnan): On macOS, treat clang version 14 again like
clang versions < 12.
2023-02-09 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on macOS 12.5.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Don't define
_GL_ATTRIBUTE_MAYBE_UNUSED to [[__maybe_unused__]] if the compiler is
an Apple variant of clang.
2023-02-09 Bruno Haible <bruno@clisp.org>
limits-h: Work around a clang 15 bug.
* m4/limits-h.m4 (gl_LIMITS_H): Test also for BOOL_MAX.
* lib/limits.in.h: Handle the case where BOOL_WIDTH is present and
BOOL_MAX is missing.
* doc/posix-headers/limits.texi: Mention the clang bug.
2023-02-09 Bruno Haible <bruno@clisp.org>
Fix error in C++ mode on glibc systems (regression 2022-04-28).
* lib/malloc.in.h (rpl_free): Add exception specification like
stdlib.in.h does.
* lib/string.in.h (rpl_free): Likewise.
* lib/wchar.in.h (rpl_free): Likewise.
2023-02-09 Bruno Haible <bruno@clisp.org>
getcwd: Fix compilation error in C23 mode.
* lib/getcwd.c: Include <stdio.h>.
2023-02-08 Bruno Haible <bruno@clisp.org>
x-to-1: Accept additional help2man arguments.
Suggested by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00078.html>.
* build-aux/x-to-1.in: Allow additional options after the HELP2MAN
argument, and pass them down to help2man.
2023-02-08 Bruno Haible <bruno@clisp.org>
x-to-1: Document the configure-time prerequisites.
Suggested by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00078.html>.
* build-aux/x-to-1.in: Add more comments.
2023-02-08 Bruno Haible <bruno@clisp.org>
hard-locale: Add comment regarding per-thread locales.
* lib/hard-locale.h (hard_locale): Add comment.
2023-02-08 Bruno Haible <bruno@clisp.org>
nl_langinfo: Add comment regarding per-thread locales.
* lib/nl_langinfo.c (ctype_codeset): Add comment.
nl_langinfo tests: Add another test.
* tests/test-nl_langinfo2.c: New file.
* tests/test-nl_langinfo2.sh: New file.
* modules/nl_langinfo-tests (Files): Add them. Add
intl-thread-locale.m4.
(Depends-on): Add c-strcasestr, stdbool.
(configure.ac): Invoke gt_FUNC_USELOCALE.
(Makefile.am): Arrange to compile test-nl_langinfo2 and test it through
test-nl_langinfo2.sh.
nl_langinfo tests: Prepare for adding more tests.
* tests/test-nl_langinfo1.c: Renamed from tests/test-nl_langinfo.c.
* tests/test-nl_langinfo1.sh: Renamed from tests/test-nl_langinfo.sh.
Update.
* modules/nl_langinfo-tests (Files, Makefile.am): Update.
2023-02-08 Bruno Haible <bruno@clisp.org>
assert-h: Fix test failure on IRIX 6.5.
* m4/assert_h.m4 (gl_ASSERT_H): Ensure that on IRIX, including
<assert.h> after <config.h> actually defines the assert macro.
2023-02-07 Paul Eggert <eggert@cs.ucla.edu>
nullptr: test for compilers at autoconf-time
* m4/nullptr.m4 (gl_NULLPTR): Test for C and C++ compiler usage at
autoconf-time. This should work better than testing at
configure-time. Also, push and pop languages so we check the
proper compiler.
nullptr: test for C++ nullptr at configure-time
* m4/nullptr.m4 (gl_NULLPTR): Test for C++ support for nullptr
at configure-time, as we already do for C support.
This should be more reliable than maintaining #ifdefs by hand.
nullptr: rename from c-nullptr
* NEWS, doc/gnulib.texi: Mention this.
* m4/nullptr.m4: Rename from m4/c-nullptr.m4.
(gl_NULLPTR): Rename from gl_C_NULLPTR.
* modules/nullptr: Rename from modules/nullptr.
* modules/nullptr-c++-tests: Rename from modules/c-nullptr-c++-tests.
* modules/nullptr-tests: Rename from modules/c-nullptr-tests.
All uses changed.
2023-02-07 Bruno Haible <bruno@clisp.org>
Fix a copyright header - module license mismatch.
Reported by Bjarni Ingi Gislason <bjarniig@simnet.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00057.html>.
* lib/gen-uni-tables.c (output_predicate): For uniwidth/width2.h, use an
LGPLv2+ license.
(output_nonspacing_property): Use an LGPLv2+ license.
* lib/uniwidth/width0.h: Regenerated.
* lib/uniwidth/width2.h: Likewise.
2023-02-07 Bruno Haible <bruno@clisp.org>
check-copyright: Don't fail because of the 'glob' module.
Reported by Bjarni Ingi Gislason <bjarniig@simnet.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00057.html>.
* check-copyright: Filter out the files from the 'glob' module.
2023-02-07 Bruno Haible <bruno@clisp.org>
check-copyright: Make output prettier.
* check-copyright: Resize the second column from width 14 to width 17.
2023-02-06 Bruno Haible <bruno@clisp.org>
setlocale-null: Don't use a lock in Cygwin >= 3.4.6.
Road paved by Corinna Vinschen <vinschen@redhat.com>.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Assume that
setlocale (LC_ALL, NULL) is multithread-safe in Cygwin >= 3.4.6.
* lib/setlocale_null.c: Update comments.
* tests/test-setlocale_null-mt-all.c: Likewise.
2023-02-05 Bruno Haible <bruno@clisp.org>
c-nullptr: Fix conflict with libstdc++ in GCC >= 11.
Reported by Bjarni Ingi Gislason <bjarniig@simnet.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00030.html>.
* m4/c-nullptr.m4 (gl_C_NULLPTR): Don't define nullptr if it is already
defined. In C++ mode, ignore the result of the configure test and don't
define it when we know that the C++ compiler already supports it.
2023-02-05 Bruno Haible <bruno@clisp.org>
c-nullptr: Add tests.
* tests/test-nullptr.c: New file.
* modules/c-nullptr-tests: New file.
* tests/test-nullptr-c++.cc: New file.
* modules/c-nullptr-c++-tests: New file.
2023-02-05 Paul Eggert <eggert@cs.ucla.edu>
sh-quote: backport fix from diffutils
* lib/sh-quote.c (init_sh_quoting_options):
Use C89 through C17 style for parameterless static function.
This avoided a warning when compiling diffutils.
This patch is backported from a circa-2009 diffutils patch
and lets us remove diffutils/gl/lib/sh-quote.c.diff; see:
https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=8c3d25a63a2c5912170ef6e13f748f3904e6b5cf
c-nullptr: new module
* doc/gnulib.texi (nullptr): New section.
* doc/posix-headers/stddef.texi: Document lack of nullptr_t.
* m4/c-nullptr.m4, modules/c-nullptr: New files.
2023-02-05 Bruno Haible <bruno@clisp.org>
Update build-aux/po/Makefile.in.in.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00020.html>.
* build-aux/po/Makefile.in.in: Sync from GNU gettext 0.21.1.
Fixes:
- In the .po -> .gmo rules, consider the newest changes to the POT file.
- Emit a warning when creating a tarball without POT file.
2023-02-05 Bruno Haible <bruno@clisp.org>
assert-h, verify: Fix compilation error in C++ mode with MSVC 14.
* lib/verify.h (static_assert): Define _ALLOW_KEYWORD_MACROS.
* tests/test-assert-h-c++.cc: Strengthen test.
* tests/test-assert-h-c++2.cc: Likewise.
2023-02-04 Paul Eggert <eggert@cs.ucla.edu>
fts: pacify GCC 13 -Wuse-after-free
Ordinarily I fix this sort of thing by using well-defined rather
than undefined behavior, but a straightforward patch along those
lines would change the fts_.h API since fts_accpath would change
from a pointer to an integer with a more-complex interpretation.
Instead, attempt to pacify GCC 13 with code that relies on
undefined but portable-in-practice behavior that GCC 13 does not
complain about. GCC problem reported by Peter Frazier in:
https://lists.gnu.org/r/bug-gnulib/2023-02/msg00000.html
* lib/fts.c: Include stdint.h.
(fts_build): Do not access freed pointer directly; instead,
save its bit-pattern into a uintptr_t, and use that to compare.
(ADJUST): Likewise, but more trickily since this hack
actually accesses freed pointers, but does so in a way that
I hope GCC doesn’t notice. Although using ‘*(uintptr_t *) &P’
instead of ‘(uintptr_t) P’ would avoid accessing freed pointers,
it would provoke a -Wstrict-aliasing diagnostic.
* modules/fts (Depends-on): Add stdint.
2023-02-04 Bruno Haible <bruno@clisp.org>
assert-h, verify: Fix conflict with standard C++ header files on macOS.
* lib/verify.h (_Static_assert): Don't redefine with clang ≥ 3.8.0
in C++ mode.
* tests/test-assert-h-c++.cc: Also check against conflict with the
standard C++ header files.
* tests/test-assert-h-c++2.cc: Likewise.
2023-02-04 Bruno Haible <bruno@clisp.org>
Activate all existing C++ tests.
* modules/assert-h-tests (Depends-on): Add assert-h-c++-tests.
* modules/stdarg-tests (Depends-on): Add stdarg-c++-tests.
2023-02-04 Bruno Haible <bruno@clisp.org>
spawn: Fix compilation error on macOS (regression 2023-01-22).
* lib/spawn.in.h: Tweak logic for defining the POSIX_SPAWN_* constants.
2023-02-03 Bruno Haible <bruno@clisp.org>
relocatable-prog: Fix compiler warning.
* lib/progreloc.c (full_read): Use a non-const pointer.
2023-02-03 Bruno Haible <bruno@clisp.org>
doc: Update regarding AIX.
* doc/glibc-headers/getopt.texi: Update.
2023-02-03 Bruno Haible <bruno@clisp.org>
doc: Update regarding NetBSD.
* doc/posix-functions/sigprocmask.texi: Mention a NetBSD 9.0 bug.
* doc/posix-functions/pthread_sigmask.texi: Likewise.
2023-02-03 Paul Eggert <eggert@cs.ucla.edu>
isnan: update comment
* lib/isnan.c: Update comment for C23.
2023-01-30 Bruno Haible <bruno@clisp.org>
at-internal: Fix support for z/OS.
* lib/openat-proc.c (openat_proc_name) [z/OS]: Proper error handling.
Convert only the relevant part of the dir[] buffer.
at-internal: Add support for z/OS.
Reported and draft patch by Igor Todorovski <itodorov@ca.ibm.com>.
* lib/openat-proc.c [z/OS]: Include <termios.h>.
(openat_proc_name): For z/OS, use an approach similar to kLIBC, with
3 lines of z/OS specific code by Igor Todorovski <itodorov@ca.ibm.com>.
2023-01-30 Bruno Haible <bruno@clisp.org>
Update NEWS.
* NEWS: Update for qcopy-acl change on 2023-01-13.
2023-01-29 Bruno Haible <bruno@clisp.org>
maintainer-makefile: Determine gnulib's location on disk correctly.
* top/maint.mk (gnulib_dir): Give priority to $(GNULIB_SRCDIR) over
$(srcdir)/gnulib.
2023-01-29 Bruno Haible <bruno@clisp.org>
Fix compilation errors with CC="clang -D_FORTIFY_SOURCE=2" on Android.
Reported by Alexey Rochev <equeim@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2023-01/msg00019.html>.
* lib/cdefs.h (__bos, __bos0, __glibc_objsize0, __glibc_objsize,
__glibc_safe_len_cond, __glibc_unsigned_or_positive,
__glibc_safe_or_unknown_len, __glibc_unsafe_len, __glibc_fortify,
__glibc_fortify_n): Don't define these macros in Gnulib.
* lib/libc-config.h: Don't undefine these macros in Gnulib.
2023-01-28 Bruno Haible <bruno@clisp.org>
Clarify _GL_ATTRIBUTE_NODISCARD code.
Reported by Paul Eggert.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add comment regarding
_GL_ATTRIBUTE_NODISCARD definition.
2023-01-28 Bruno Haible <bruno@clisp.org>
unistdio/*printf: Fix negative width handling for %U, %lU, %llU.
* lib/vasnprintf.c (VASNPRINTF): In the code for %U, %lU, %llU, test for
the FLAG_LEFT bit in the flags variable.
* tests/unistdio/test-u8-printf1.h (test_xfunction): Add tests for width
given as argument for the directives %U, %lU, %llU, %s, %a, %f, %e, %g.
* tests/unistdio/test-u16-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-u32-printf1.h (test_xfunction): Likewise.
* tests/unistdio/test-ulc-printf1.h (test_xfunction): Likewise.
2023-01-28 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Fix possible bug with negative width handling for %lc.
* lib/vasnprintf.c (VASNPRINTF): In the code for %lc in vasnprintf, test
for the FLAG_LEFT bit in the flags variable.
* tests/test-vasnprintf-posix.c (test_function): Add tests for width
given as argument for the directives %c, %lc.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-snprintf-posix.c: Include <wchar.h>, for wint_t.
* tests/test-sprintf-posix.c: Likewise.
* tests/test-vsnprintf-posix.c: Likewise.
* tests/test-vsprintf-posix.c: Likewise.
2023-01-28 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Fix negative width handling for %ls directive.
Reported by clang via Po Lu <luangruo@yahoo.com>.
* lib/vasnprintf.c (VASNPRINTF): In the code for %ls in vasnprintf and
for %s in vasnwprintf, test for the FLAG_LEFT bit in the flags variable.
* tests/test-vasnprintf-posix.c (test_function): Add tests for width
given as argument for the directives %s, %ls.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
2023-01-28 Bruno Haible <bruno@clisp.org>
vasnprintf-posix: Add more unit tests.
* tests/test-vasnprintf-posix.c (test_function): Add tests for width
given as argument for the directives %a, %f, %e, %g.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
2023-01-28 Bruno Haible <bruno@clisp.org>
Avoid clang warnings regarding [[__nodiscard__]].
* m4/gnulib-common.m4 (gl_COMMON_BODY): For clang, in C++ mode, ignore
the __has_c_attribute value and define _GL_ATTRIBUTE_NODISCARD to
__attribute__ ((__warn_unused_result__)), not [[__nodiscard__]].
2023-01-28 Bruno Haible <bruno@clisp.org>
Avoid clang warnings regarding [[__maybe_unused__]].
* m4/gnulib-common.m4 (gl_COMMON_BODY): For clang versions ≥ 6, < 10,
in C++ mode, ignore the __has_c_attribute value and define
_GL_ATTRIBUTE_MAYBE_UNUSED to __attribute__ ((__unused__)), not
[[__maybe_unused__]].
2023-01-27 Bruno Haible <bruno@clisp.org>
alignasof: Ensure a correct _Alignof (regression 2023-01-15).
* m4/stdalign.m4 (gl_ALIGNASOF): Apply the workaround for wrong _Alignof
in GCC < 4.9 and clang < 8.0.0 also when the system has <stdalign.h>.
2023-01-27 Bruno Haible <bruno@clisp.org>
stdalign: Ensure alignof is defined on FreeBSD (regression 2023-01-15).
* lib/stdalign.in.h: Include the system's <stdalign.h> when it exists.
* m4/stdalign.m4 (gl_ALIGNASOF): Invoke gl_CHECK_NEXT_HEADERS. Set
HAVE_STDALIGN_H.
* modules/stdalign (Makefile.am): Substitute GUARD_PREFIX,
HAVE_STDALIGN_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, PRAGMA_COLUMNS,
NEXT_STDALIGN_H.
2023-01-27 Bruno Haible <bruno@clisp.org>
stddef: Fix test-stddef compilation error on FreeBSD 12/x86.
* m4/stddef_h.m4 (gl_STDDEF_H): When testing for good max_align_t, use
an ISO C compliant definition of _Alignof.
2023-01-25 Bruno Haible <bruno@clisp.org>
Keep config.h idempotent.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add double-inclusion guards to
the definitions of the macros _GL_ATTRIBUTE_ALLOC_SIZE,
_GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL,
_GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEALLOC,
_GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR, _GL_ATTRIBUTE_WARNING,
_GL_ATTRIBUTE_EXTERNALLY_VISIBLE, _GL_ATTRIBUTE_FALLTHROUGH,
_GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MALLOC,
_GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED,
_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL,
_GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED,
_GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL,
_GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNUSED, _GL_UNUSED_LABEL.
2023-01-25 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix compilation error on Android NDK r26b.
Reported by Po Lu <luangruo@yahoo.com>.
* lib/vasnprintf.c: Include <wchar.h>.
2023-01-25 Nick Bowler <nbowler@draconx.ca> (tiny change)
threadlib: Fix support for Solaris 9 and older.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Allow case patterns to survive
m4 processing by using changequote.
2023-01-24 Bruno Haible <bruno@clisp.org>
alignasof, stdalign: Fix a compilation error on FreeBSD 12.0.
* m4/stdalign.m4 (gl_ALIGNASOF): In C mode, prefer __builtin_offsetof
over offsetof when possible, since __builtin_offsetof works also when
<stddef.h> has not been fully included yet.
2023-01-22 Bruno Haible <bruno@clisp.org>
doc: Update list of target platforms.
* doc/gnulib-intro.texi (Supported Platforms): Mark musl libc, Android,
and MSVC as "occasionally tested". Update the version numbers of some
OSes. Combine paragraphs regarding mingw and MSVC.
(Formerly Supported Platforms): Mark AIX 5, 6 as "formerly supported".
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 29.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Conditionally set
REPLACE_REALLOCARRAY.
* lib/stdlib.in.h (reallocarray): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/stdlib.in.h (getloadavg): Consider REPLACE_GETLOADAVG. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_GETLOADAVG.
* modules/stdlib (Makefile.am): Substitute REPLACE_GETLOADAVG.
* m4/getloadavg.m4 (gl_GETLOADAVG): Conditionally set
REPLACE_GETLOADAVG.
* modules/getloadavg (Depends-on, configure.ac): Consider
REPLACE_GETLOADAVG.
* lib/time.in.h (timespec_get): Consider REPLACE_TIMESPEC_GET. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/time_h.m4 (gl_TIME_H_DEFAULTS): Initialize REPLACE_TIMESPEC_GET.
* modules/time (Makefile.am): Substitute REPLACE_TIMESPEC_GET.
* m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Set also
gl_cv_onwards_func_timespec_get.
* m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET): Conditionally set
REPLACE_TIMESPEC_GET.
* modules/timespec_get (Depends-on, configure.ac): Consider
REPLACE_TIMESPEC_GET.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 28.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Conditionally set
REPLACE_ALIGNED_ALLOC.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Conditionally set
REPLACE_GETRANDOM.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Conditionally set
REPLACE_GETLOGIN_R.
* lib/unistd.in.h (getlogin_r): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Conditionally set
REPLACE_POSIX_SPAWN.
* lib/spawn.in.h: Adapt logic for defining the POSIX_SPAWN_* constants.
(posix_spawn, posix_spawnp, posix_spawnattr_init,
posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
posix_spawnattr_setsigmask, posix_spawnattr_getflags,
posix_spawnattr_setflags, posix_spawnattr_getpgroup,
posix_spawnattr_setpgroup, posix_spawn_file_actions_init,
posix_spawn_file_actions_destroy, posix_spawn_file_actions_addchdir,
posix_spawn_file_actions_addfchdir): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
* m4/glob.m4 (gl_GLOB): Conditionally set REPLACE_GLOB.
* lib/glob.in.h (glob): Disable _GL_CXXALIASWARN invocation on non-glibc
systems.
* lib/unistd.in.h (getentropy): Consider REPLACE_GETENTROPY. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETENTROPY.
* modules/unistd (Makefile.am): Substitute REPLACE_GETENTROPY.
* m4/getentropy.m4 (gl_FUNC_GETENTROPY): Conditionally set
REPLACE_GETENTROPY.
* modules/getentropy (Depends-on, configure.ac): Consider
REPLACE_GETENTROPY.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 26.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Test for getdomainname
using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally
set REPLACE_GETSUBOPT.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Conditionally set
REPLACE_NL_LANGINFO.
* lib/langinfo.in.h (nl_langinfo): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
* lib/stdlib.in.h (getsubopt): Consider REPLACE_GETSUBOPT. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_GETSUBOPT.
* modules/stdlib (Makefile.am): Substitute REPLACE_GETSUBOPT.
* m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Conditionally set
REPLACE_GETSUBOPT.
* modules/getsubopt (Depends-on, configure.ac): Consider
REPLACE_GETSUBOPT.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 24.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Conditionally set
REPLACE_STRCHRNUL.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 23.
* m4/login_tty.m4 (gl_FUNC_LOGIN_TTY): Conditionally set
REPLACE_LOGIN_TTY.
* lib/utmp.in.h (login_tty): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Conditionally set REPLACE_MKFIFOAT.
* lib/sys_stat.in.h (mkfifoat): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Conditionally set
REPLACE_STRERROR_R.
* lib/string.in.h (strerror_r): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/error_h.m4 (gl_ERROR_H): Conditionally set REPLACE_ERROR.
* lib/error.in.h (error): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/wchar.in.h (wmempcpy): Consider REPLACE_WMEMPCPY.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WMEMPCPY.
* modules/wchar (Makefile.am): Substitute REPLACE_WMEMPCPY.
* m4/wmempcpy.m4 (gl_FUNC_WMEMPCPY): Conditionally set
REPLACE_WMEMPCPY.
* modules/wmempcpy (configure.ac): Consider REPLACE_WMEMPCPY.
* lib/unistd.in.h (sethostname): Consider REPLACE_SETHOSTNAME. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_SETHOSTNAME.
* modules/unistd (Makefile.am): Substitute REPLACE_SETHOSTNAME.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Conditionally set
REPLACE_SETHOSTNAME.
* modules/sethostname (Depends-on, configure.ac): Consider
REPLACE_SETHOSTNAME.
* lib/string.in.h (mempcpy): Consider REPLACE_MEMPCPY. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize REPLACE_MEMPCPY.
* modules/string (Makefile.am): Substitute REPLACE_MEMPCPY.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Conditionally set REPLACE_MEMPCPY.
* modules/mempcpy (configure.ac): Consider REPLACE_MEMPCPY.
* lib/stdlib.in.h (mkostemp): Consider REPLACE_MKOSTEMP. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
(mkostemps): Consider REPLACE_MKOSTEMPS. Disable _GL_CXXALIASWARN
invocation on non-glibc systems.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MKOSTEMP,
REPLACE_MKOSTEMPS.
* modules/stdlib (Makefile.am): Substitute REPLACE_MKOSTEMP,
REPLACE_MKOSTEMPS.
* m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Conditionally set REPLACE_MKOSTEMP.
* modules/mkostemp (Depends-on, configure.ac): Consider
REPLACE_MKOSTEMP.
* m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Conditionally set
REPLACE_MKOSTEMPS.
* modules/mkostemps (Depends-on, configure.ac): Consider
REPLACE_MKOSTEMPS.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 21.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Use rpl_* symbols also when the system
will have fts_open in a future version.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Conditionally set REPLACE_ISWBLANK.
* m4/mbtowc.m4 (gl_FUNC_MBTOWC): Conditionally set REPLACE_MBTOWC.
* m4/vdprintf.m4 (gl_REPLACE_VDPRINTF): Conditionally set
REPLACE_VDPRINTF.
* m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Conditionally set
REPLACE_WCSNRTOMBS.
* m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Conditionally set
REPLACE_MBSNRTOWCS.
* lib/wchar.in.h (mbsnrtowcs): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/execvpe.m4 (gl_FUNC_EXECVPE): Conditionally set REPLACE_EXECVPE.
* m4/linkat.m4 (gl_FUNC_LINKAT): Conditionally set REPLACE_LINKAT.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Conditionally set
REPLACE_READLINKAT.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Conditionally set
REPLACE_SYMLINKAT.
* m4/truncate.m4 (gl_FUNC_TRUNCATE): Conditionally set REPLACE_TRUNCATE.
* lib/unistd.in.h (execvpe, linkat, readlinkat, symlinkat, truncate):
Disable _GL_CXXALIASWARN invocation on non-glibc systems.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Conditionally set REPLACE_MKNODAT.
* lib/sys_stat.in.h (mknodat): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Conditionally set REPLACE_STPNCPY.
* lib/string.in.h (stpncpy): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/random.m4 (gl_FUNC_RANDOM): Conditionally set REPLACE_INITSTATE,
REPLACE_SETSTATE.
* lib/stdlib.in.h (initstate, setstate): Disable _GL_CXXALIASWARN
invocation on non-glibc systems.
* m4/dprintf.m4 (gl_REPLACE_DPRINTF): Conditionally set REPLACE_DPRINTF.
* lib/stdio.in.h (dprintf): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Conditionally set
REPLACE_DUPLOCALE.
* m4/localename.m4 (gl_LOCALENAME): Conditionally set REPLACE_NEWLOCALE,
REPLACE_DUPLOCALE, REPLACE_FREELOCALE.
* lib/locale.in.h (newlocale, duplocale, freelocale): Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* lib/unistd.in.h (dup3): Consider REPLACE_DUP3. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_DUP3.
* modules/unistd (Makefile.am): Substitute REPLACE_DUP3.
* m4/dup3.m4 (gl_FUNC_DUP3): Conditionally set REPLACE_DUP3.
* lib/string.in.h (stpcpy): Consider REPLACE_STPCPY. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize REPLACE_STPCPY.
* modules/string (Makefile.am): Substitute REPLACE_STPCPY.
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Conditionally set REPLACE_STPCPY.
* modules/stpcpy (configure.ac): Consider REPLACE_STPCPY.
* lib/stdlib.in.h (_Exit): Consider REPLACE__EXIT. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
(getprogname): Consider REPLACE_GETPROGNAME. Disable _GL_CXXALIASWARN
invocation on non-glibc systems.
(posix_openpt): Consider REPLACE_POSIX_OPENPT. Disable _GL_CXXALIASWARN
invocation on non-glibc systems.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE__EXIT,
REPLACE_GETPROGNAME, REPLACE_POSIX_OPENPT.
* modules/stdlib (Makefile.am): Substitute REPLACE__EXIT,
REPLACE_GETPROGNAME, REPLACE_POSIX_OPENPT.
* m4/_Exit.m4 (gl_FUNC__EXIT): Conditionally set REPLACE__EXIT.
* modules/_Exit (configure.ac): Consider REPLACE__EXIT.
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Conditionally set
REPLACE_GETPROGNAME.
* modules/getprogname (configure.ac): Consider REPLACE_GETPROGNAME.
* m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Conditionally set
REPLACE_POSIX_OPENPT.
* modules/posix_openpt (configure.ac): Consider REPLACE_POSIX_OPENPT.
* lib/search.in.h (twalk): Consider REPLACE_TWALK.
* m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize REPLACE_TWALK.
* modules/search (Makefile.am): Substitute REPLACE_TWALK.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Conditionally set REPLACE_TWALK.
* modules/tsearch (configure.ac): Consider REPLACE_TWALK.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 19.
* lib/inttypes.in.h (imaxabs): Consider REPLACE_IMAXABS. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
(imaxdiv): Consider REPLACE_IMAXDIV. Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXABS,
HAVE_IMAXDIV, REPLACE_IMAXABS, REPLACE_IMAXDIV.
* modules/inttypes-incomplete (Makefile.am): Substitute REPLACE_IMAXABS,
REPLACE_IMAXDIV.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Conditionally set HAVE_IMAXABS,
REPLACE_IMAXABS.
* modules/imaxabs (configure.ac): Consider HAVE_IMAXABS, REPLACE_IMAXABS.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Conditionally set HAVE_IMAXDIV,
REPLACE_IMAXDIV.
* modules/imaxdiv (configure.ac): Consider HAVE_IMAXDIV, REPLACE_IMAXDIV.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Conditionally set REPLACE_FUTIMENS.
* lib/sys_stat.in.h (futimens): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 18.
* m4/log2.m4 (gl_FUNC_LOG2): Conditionally set REPLACE_LOG2.
* m4/log2f.m4 (gl_FUNC_LOG2F): Conditionally set REPLACE_LOG2F.
* m4/log2l.m4 (gl_FUNC_LOG2L): Conditionally set REPLACE_LOG2L.
* lib/math.in.h (log2f): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Conditionally set REPLACE_GETDELIM.
* m4/getline.m4 (gl_FUNC_GETLINE): Conditionally set REPLACE_GETLINE.
* lib/stdio.in.h (getdelim, getline): Disable _GL_CXXALIASWARN
invocation on non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 16-17.
* m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN): Conditionally set
REPLACE_POSIX_MEMALIGN.
* lib/stdlib.in.h (posix_memalign): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 16.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Conditionally set REPLACE_TSEARCH.
* lib/search.in.h (tsearch, tfind, tdelete, twalk): Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Conditionally set
REPLACE_FACCESSAT.
* lib/unistd.in.h (faccessat): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 12.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Conditionally set
REPLACE_UTIMENSAT.
* lib/sys_stat.in.h (utimensat): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Conditionally set REPLACE_TIMEGM.
* lib/time.in.h (timegm): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Conditionally set REPLACE_PWRITE.
* lib/unistd.in.h (pwrite): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/pread.m4 (gl_FUNC_PREAD): Conditionally set REPLACE_PREAD.
* lib/unistd.in.h (pread): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Conditionally set
REPLACE_FTRUNCATE.
* lib/unistd.in.h (ftruncate): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 9.
* lib/unistd.in.h (fdatasync): Consider REPLACE_FDATASYNC. Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
(pipe2): Consider REPLACE_PIPE2. Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FDATASYNC,
REPLACE_PIPE2.
* modules/unistd (Makefile.am): Substitute REPLACE_FDATASYNC,
REPLACE_PIPE2.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Test for fdatasync using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally set
REPLACE_FDATASYNC.
* modules/fdatasync (Depends-on, configure.ac): Consider
REPLACE_FDATASYNC.
* m4/pipe2.m4 (gl_FUNC_PIPE2): Conditionally set REPLACE_PIPE2.
2023-01-22 Bruno Haible <bruno@clisp.org>
Resolve conflicts for functions introduced in Android API level 8.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Conditionally set
REPLACE_TTYNAME_R.
* lib/unistd.in.h (ttyname_r): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2023-01-22 Bruno Haible <bruno@clisp.org>
Prepare for resolving conflicts regarding future Android API levels.
* m4/gnulib-common.m4 (gl_CHECK_FUNCS_ANDROID): Don't check for the
function declaration on platforms other than Android. Set a variable
gl_cv_onwards_func_<func>.
2023-01-22 Paul Eggert <eggert@cs.ucla.edu>
sigsegv, vma-iter: port to Solaris 10
On this platform, <sys/types.h> does not define off_t if neither
_LP64 nor _FILE_OFFSET_BITS is defined, which can happen if we
#undef _FILE_OFFSET_BITS. This became a problem with the new way
of doing stdbool, since config.h now includes <stdbool.h>, and
Solaris 10 <stdbool.h> includes <sys/feature_tests.h> which
arranges for _FILE_OFFSET_BITS to always be defined (if only to 32),
which <sys/types.h> assumes.
* lib/stackvma.c, lib/vma-iter.c (_FILE_OFFSET_BITS) [__sun && !_LP64]:
Define to 32 instead of leaving undefined.
2023-01-21 Bruno Haible <bruno@clisp.org>
login_tty: Ensure declaration in <utmp.h>.
* tests/test-utmp-c++.cc: New file.
* modules/utmp-c++-tests: New file.
* tests/test-utmp.c: New file.
* modules/utmp-tests: New file.
* lib/login_tty.c: Include <utmp.h>.
* m4/login_tty.m4: New file.
(gl_FUNC_LOGIN_TTY): Moved here from m4/pty.m4. Set HAVE_LOGIN_TTY.
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Moved to m4/login_tty.m4.
* modules/login_tty (Files): Add m4/login_tty.m4.
(Depends-on): Add utmp. Remove pty. Update condition.
(configure.ac): Update condition. Invoke gl_UTMP_MODULE_INDICATOR
instead of gl_PTY_MODULE_INDICATOR.
(Include): List <utmp.h>.
* doc/glibc-functions/login_tty.texi: Mark the include file diversity as
fixed.
* tests/test-login_tty.c: Include <utmp.h>. Don't declare login_tty
here.
* lib/utmp.in.h: New file.
* m4/utmp_h.m4: New file.
* modules/utmp: New file.
* doc/glibc-headers/utmp.texi: New file.
* doc/gnulib.texi (Glibc Header File Substitutes): Include it.
2023-01-21 Bruno Haible <bruno@clisp.org>
login_tty: Fix detection of declaration (regression 2023-01-19).
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Check for the three possible header
files.
2023-01-21 Bruno Haible <bruno@clisp.org>
alignasof tests: Rename test file.
* tests/test-alignasof.c: Renamed from tests/test-stdalign.c.
* modules/alignasof-tests (Files, Makefile.am): Update accordingly.
2023-01-21 Bruno Haible <bruno@clisp.org>
alignasof tests: Fix GCC warning (regression 2023-01-15).
* tests/test-stdalign.c (alignas): Undefine before redefine.
2023-01-21 Bruno Haible <bruno@clisp.org>
getprogname: Move declaration from "getprogname.h" to <stdlib.h>.
* lib/stdlib.in.h (getprogname): New declaration.
* lib/getprogname.h: Add deprecation warning.
(getprogname): Remove declaration.
* lib/getprogname.c: Include <stdlib.h> instead of getprogname.h.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether getprogname is declared.
(gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETPROGNAME.
(gl_STDLIB_H_DEFAULTS): Initialize HAVE_GETPROGNAME.
* m4/getprogname.m4 (gl_PREREQ_GETPROGNAME): New macro, extracted from
gl_FUNC_GETPROGNAME. Set HAVE_GETPROGNAME.
(gl_FUNC_GETPROGNAME): Remove code that was moved to
gl_PREREQ_GETPROGNAME.
* modules/stdlib (Makefile.am): Substitute GNULIB_GETPROGNAME and
HAVE_GETPROGNAME.
* modules/getprogname (Depends-on): Add stdlib.
(configure.ac): Define a module indicator. Invoke gl_PREREQ_GETPROGNAME.
(Makefile.am): Don't compile getprogname.c if not needed.
(Include): List <stdlib.h> instead of getprogname.h.
* tests/test-getprogname.c: Include <stdlib.h> instead of getprogname.h.
* NEWS: Mention the change.
* lib/argmatch.c: Don't include getprogname.h.
* lib/c-stack.c: Likewise.
* lib/error.c: Likewise.
* lib/git-merge-changelog.c: Likewise.
2023-01-19 Paul Eggert <eggert@cs.ucla.edu>
snippet/_Noreturn: work around Clang _Noreturn bug
This is a bigger-hammer workaround for the clang _Noreturn issue
fix for dfa.c on 2023-01-01. Unfortunately, it causes 270
-Wreturn-type and -Wsometimes-uninitialized warnings when building
bleeding-edge GNU Emacs from Git on Fedora 37 with plain
‘./configure && make’. So the workaround is enabled only if you
compile with -D_GL_WORK_AROUND_LLVM_BUG_59792.
* lib/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
#define _Noreturn to be empty if it is Clang 15 or earlier,
and if _GL_WORK_AROUND_LLVM_BUG_59792 is defined.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 34.
* modules/execute-tests (configure.ac): Test for close_range using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 30.
* m4/threadlib.m4 (gl_STDTHREADLIB_BODY): Test for thrd_create using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 29.
* m4/getloadavg.m4 (gl_GETLOADAVG): Test for getloadavg using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 28.
* m4/glob.m4 (gl_GLOB): Test for glob using gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS_ONCE.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 26.
* m4/mountlist.m4 (gl_MOUNTLIST): Test for hasmntopt using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Test for nl_langinfo using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/strtod.m4 (gl_PREREQ_STRTOD): Test for nl_langinfo using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/strtold.m4 (gl_PREREQ_STRTOLD): Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Likewise.
* m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test for catgets using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/utimens.m4 (gl_UTIMENS): Test for lutimes using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test for nl_langinfo_l using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* modules/duplocale-tests (configure.ac): Likewise.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Update comment.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 24.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Test for strchrnul using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 23.
* m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test for __flbf, __fbufsize using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/filenamecat.m4 (gl_FILE_NAME_CONCAT_LGPL): Test for mempcpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Test for __fpurge using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/freadable.m4 (gl_FUNC_FREADABLE): Test for __freadable using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/fwritable.m4 (gl_FUNC_FWRITABLE): Test for __fwritable using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Test for __fsetlocking using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Test for mempcpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mkfifoat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Test for mkostemp using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Test for mkostemps using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Test for login_tty using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Test for sethostname using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Test for strerror_r using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/wmempcpy.m4 (gl_FUNC_WMEMPCPY): Test for wmempcpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 21.
* m4/_Exit.m4 (gl_FUNC__EXIT): Test for _Exit using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/c-strtod.m4 (gl_C_STRTOLD): Test for strtold_l using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Test for c32rtomb like
gl_CHECK_FUNCS_ANDROID does.
* m4/dprintf.m4 (gl_FUNC_DPRINTF): Test for dprintf using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Likewise.
* m4/dup3.m4 (gl_FUNC_DUP3): Test for dup3 using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test for duplocale using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/execvpe.m4 (gl_FUNC_EXECVPE): Test for execvpe using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Test for fts_open using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC.
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Test for getprogname using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Test for uselocale using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Test for iswblank using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Test for
tcdrain using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/linkat.m4 (gl_FUNC_LINKAT): Test for linkat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/localename.m4 (gl_LOCALENAME): Test for newlocale, duplocale,
freelocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mbrtoc32.m4 (gl_CHECK_FUNC_MBRTOC32): Test for mbrtoc32 like
gl_CHECK_FUNCS_ANDROID does.
* m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Test for mbsnrtowcs using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mbtowc.m4 (gl_FUNC_MBTOWC): Test for mbtowc using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mknodat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/mountlist.m4 (gl_MOUNTLIST): Test for setmntent, endmntent using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Test for posix_openpt using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/pty.m4 (gl_FUNC_OPENPTY): Test for posix_openpt using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/random.m4 (gl_FUNC_RANDOM): Test for initstate, setstate using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Test for stpcpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Test for stpncpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Test for symlinkat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/truncate.m4 (gl_FUNC_TRUNCATE): Test for truncate using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Test for twalk using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/vdprintf.m4 (gl_FUNC_VDPRINTF): Test for vdprintf using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Test for wcsnrtombs using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Test for readlinkat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/fchmodat.m4 (gl_PREREQ_FCHMODAT): Likewise.
* modules/careadlinkat (configure.ac): Likewise.
* modules/ftoastr (configure.ac): Test for strtof using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* modules/duplocale-tests (configure.ac): Test for duplocale using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* modules/hard-locale-tests (configure.ac): Likewise.
* modules/locale-tests (configure.ac): Test for newlocale using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* modules/localename-tests (configure.ac): Likewise.
* modules/tsearch-tests (configure.ac): Test for initstate using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* modules/unistr/u8-stpcpy (configure.ac): Test for stpcpy using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/tcgetattr.m4: New file, extracted from m4/getpass.m4.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Remove code that tests for
tcgetattr. Invoke gl_HAVE_TCGETATTR instead.
* modules/getpass (Files): Add tcgetattr.m4.
* modules/getpass-gnu (Files): Add tcgetattr.m4.
* modules/term-style-control (Files): Add tcgetattr.m4.
(configure.ac): Remove code that tests for tcgetattr. Invoke
gl_HAVE_TCGETATTR instead.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 19.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Test for futimens using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Test for imaxabs using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Test for imaxdiv using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 18.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Test for getdelim using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/getline.m4 (gl_FUNC_GETLINE): Test for getline using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC.
* m4/log2.m4 (gl_FUNC_LOG2): Test for log2 using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/log2f.m4 (gl_FUNC_LOG2F): Test for log2f using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/log2l.m4 (gl_FUNC_LOG2L): Test for log2l using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 16 or 17.
* m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN): Test for posix_memalign
using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/alignalloc.m4 (gl_ALIGNALLOC): Likewise.
* m4/pagealign_alloc.m4 (gl_PREREQ_PAGEALIGN_ALLOC): Likewise.
* modules/aligned-malloc (configure.ac): Likewise.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 16.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Test for faccessat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE,
gl_CANONICALIZE_LGPL_SEPARATE): Likewise.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Test for tsearch using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/setenv.m4 (gl_PREREQ_SETENV): Likewise.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 12.
Reported by Po Lu <luangruo@yahoo.com>.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Test for ftruncate using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/glob.m4 (gl_PREREQ_GLOB): Test for getpwnam_r using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/nproc.m4 (gl_PREREQ_NPROC): Test for sched_getaffinity using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/pread.m4 (gl_FUNC_PREAD): Test for pread using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Test for pwrite using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/thread.m4 (gl_THREAD): Test for pthread_atfork using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Test for timegm using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Test for utimensat using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 9.
* m4/pipe2.m4 (gl_FUNC_PIPE2): Test for pipe2 using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Update comments.
2023-01-19 Bruno Haible <bruno@clisp.org>
Fix warnings for functions introduced in Android API level 8.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test for ttyname_r using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 Bruno Haible <bruno@clisp.org>
fts: Document this module.
* doc/glibc-headers/fts.texi: Mention the 'fts' module.
* doc/glibc-functions/fts_children.texi: Likewise.
* doc/glibc-functions/fts_close.texi: Likewise.
* doc/glibc-functions/fts_open.texi: Likewise.
* doc/glibc-functions/fts_read.texi: Likewise.
* doc/glibc-functions/fts_set.texi: Likewise.
2023-01-18 Bruno Haible <bruno@clisp.org>
getcwd: Speed up on Linux. Add support for Android.
* lib/getcwd.c (__getcwd_generic): On Linux, use a specific readlink
call to speed up the operation.
2023-01-17 Paul Eggert <eggert@cs.ucla.edu>
qcopy-acl: port to Fedora 9
It has libattr-2.4.41, which is too old for our code.
Problem reported by Po Lu <https://bugs.gnu.org/60843>.
* m4/xattr.m4 (gl_FUNC_XATTR): Check that we can use
ATTR_ACTION_PERMISSIONS, too. Refactor so that there’s a single
test program that we compile and link, rather than doing the tests
in dribs and drabs.
2023-01-17 Bruno Haible <bruno@clisp.org>
execute tests: Avoid test failure with GNU make 4.4.
Reported by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00157.html>.
* tests/test-execute-main.c (main): Reset the SIGPIPE handler to
default on all platforms.
2023-01-17 Bruno Haible <bruno@clisp.org>
fflush: Tweak last commit.
* lib/stdio-impl.h (fp_): Make the last change work also with newer
Android NDKs and _FILE_OFFSET_BITS=64.
2023-01-17 Ondrej Valousek <ondrej.valousek.xm@renesas.com>
qset-acl, acl: Improve comments.
* lib/qset-acl.c (qset_acl): Improve comments.
* lib/set-acl.c (set_acl): Likewise.
2023-01-17 Bruno Haible <bruno@clisp.org>
fflush: Fix a buffer overrun on 32-bit Android.
* lib/stdio-impl.h (fp_): On Android, change the type of _offset to
'long'.
* lib/fflush.c (update_fpos_cache): On Android, update a 'long', not an
'fpos_t'.
2023-01-17 Bruno Haible <bruno@clisp.org>
execute tests: Avoid test failure on Android.
* tests/test-execute-main.c (main): Reset the SIGPIPE handler to
default.
2023-01-17 Bruno Haible <bruno@clisp.org>
hard-locale: Port to Android ≥ 5.0.
* lib/hard-locale.c: Include <stdlib.h>.
(hard_locale): On Android, consider also MB_CUR_MAX, even if the
locale's name is "C".
* tests/test-hard-locale.c (test_one, main): Assume that on Android,
even the "C" locale is hard.
2023-01-16 Bruno Haible <bruno@clisp.org>
stddef tests: Fix compilation error (regression 2023-01-15).
* tests/test-stddef.c: Don't include <stdalign.h>.
2023-01-16 Bruno Haible <bruno@clisp.org>
mbrtowc, mbrtoc32 tests: Avoid test failure on Android ≥ 5.0.
* tests/test-mbrtowc.c (main): On Android 5.0 or newer, when testing
the "C" locale, verify that the encoding is UTF-8.
* tests/test-mbrtoc32.c (main): Likewise.
* doc/posix-functions/setlocale.texi: Mention the Android problems.
mbrtowc, mbrtoc32 tests: Refactor.
* tests/test-mbrtowc.c (main): Straighten convoluted code.
* tests/test-mbrtoc32.c (main): Likewise.
2023-01-16 Paul Eggert <eggert@cs.ucla.edu>
sigpipe tests: Modernize use of 'head'.
POSIX no longer requires support for ‘head -1’.
* tests/test-sigpipe.sh: Use ‘head -n1’ rather than ‘head -1’.
* tests/test-sigpipe.c (main): Likewise.
* lib/git-merge-changelog.c (main): Update comment accordingly.
2023-01-15 Paul Eggert <eggert@cs.ucla.edu>
alignasof: new module
This splits off support for the C23 keywords alignas and alignof,
from the now-deprecated stdalign module. The latter now merely
provides C11 support.
* MODULES.html.sh, NEWS, doc/gnulib.texi:
* doc/posix-headers/stdalign.texi: Document the change.
* lib/stdalign.in.h: Remove most of the definitions (which are now
supplied by the alignasof module), leaving only
__alignas_is_defined and __alignof_is_defined.
* modules/alignasof, modules/alignasof-tests: New files.
* m4/stdalign.m4 (gl_ALIGNASOF): New macro, with
most of the contents of the old gl_STDALIGN_H.
Do not define __alignas_is_defined or __alignof_is_defined.
(gl_STDALIGN_H): Rely on gl_ALIGNASOF for most of the work.
* modules/alignalloc, modules/alignof, modules/argp:
* modules/crypto/md4-buffer, modules/crypto/md5-buffer:
* modules/crypto/sha1-buffer, modules/crypto/sha256-buffer:
* modules/crypto/sha512-buffer, modules/crypto/sm3-buffer:
* modules/fts, modules/rawmemchr, modules/relocatable-prog-wrapper:
* modules/stddef-tests, modules/sys_socket:
Depend on alignasof, not stdalign.
* modules/stdalign: Deprecate. Depend on alignasof.
* modules/stdalign-tests: Move most contents to the new module
alignasof-tests, and depend on that.
2023-01-15 Bruno Haible <bruno@clisp.org>
fpending: Fix compilation error with NDK ≥ r14b and Android API < 23.
Report and patch by Po Lu <luangruo@yahoo.com>.
* lib/fpending.c (__fpending) [__ANDROID__]: Use the fp_ macro.
2023-01-14 Paul Eggert <eggert@cs.ucla.edu>
alignof: port to strict C23
Problem reported by Khem Raj in:
https://lists.gnu.org/r/bug-gnulib/2023-01/msg00111.html
* lib/alignof.h (alignof_slot) [!__cplusplus]: Use C23-style alignof.
* modules/alignof (Depends-on): Add stdalign.
test-framework-sh: work around AIX 7.2 diff bugs
* tests/init.sh (compare_dev_null_): Run diff in the C locale.
AIX 7.2 diff messes up in UTF-8 locales; for example,
‘printf '\360\220\200\200\n' | diff - /dev/null’ incorrectly
outputs nothing and exits with status 0 when LC_ALL=en_US.UTF-8.
2023-01-14 Bruno Haible <bruno@clisp.org>
error, verror tests: Fix link error when the package uses libintl.
* modules/error-tests (Makefile.am): Link test-error with $(LIBINTL).
* modules/verror-tests (Makefile.am): Link test-verror with $(LIBINTL).
2023-01-13 Bruno Haible <bruno@clisp.org>
localename: Fix -Wtautological-pointer-compare warning in a better way.
* lib/localename.c (duplocale, freelocale): Revert last patch.
(_GL_ARG_NONNULL): Define to empty.
2023-01-13 Paul Eggert <eggert@cs.ucla.edu>
verify: work around xlclang 16.1 compiler bug
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/grep-devel/2023-01/msg00003.html
* lib/verify.h (_GL_HAS_BUILTIN_TRAP, _GL_HAS_BUILTIN_UNREACHABLE):
Define to 0 if compiler advertises itself as clang before version 5.
xlclang 16.1 advertises itself as 4.0.1 and this patch works
around what appears to be a compiler bug when compiling dfa.c in
bleeding-edge grep.
assert-h: suppress xlclang 16.1 false alarms
* m4/assert_h.m4 (gl_ASSERT_H): Pacify older clangs too,
with regard to single-argument static_assert.
Problem found with xlclang 16.1 on AIX 7.2.
assert-h: fix configure comment-out
* m4/assert_h.m4 (gl_ASSERT_H): Also break apart "#undef
static_assert" with /**/. Problem discovered with xlclang 16.1,
though it does not directly affect xlclang 16.1.
Don’t use alloc_size with xlclang 16.1
* m4/gnulib-common.m4 (_GL_HAS_ATTRIBUTE): Require Clang 5 instead
of 3.5 for this, to pacify xlclang 16.1.0 on AIX 7.2, which
advertises itself as clang 4.0.1, and which otherwise issues
warnings like “./xalloc.h:141:3: warning: 1540-2990 The attribute
"__attribute__((alloc_size(2, 3)))" is not supported. The
attribute is ignored.” when building bleeding-edge GNU grep.
localename: -Wtautological-pointer-compare
Problem found by xlclang 16.1 on AIX 7.2.
* lib/localename.c (duplocale, freelocale):
Omit unnecessary comparison of non-null args to NULL.
2023-01-13 Bruno Haible <bruno@clisp.org>
login_tty tests: Be more verbose when the test fails.
* tests/test-login_tty.c (main): When the test fails, write a message
into a file.
2023-01-13 Bruno Haible <bruno@clisp.org>
qcopy-acl: Make last patch more robust.
* m4/acl.m4 (gl_FUNC_ACL): Define through AC_DEFUN_ONCE.
* modules/qcopy-acl (configure.ac): Require gl_FUNC_ACL.
qcopy-acl: Adjust link dependencies.
* modules/qcopy-acl (Depends-on): Add condition.
(configure.ac): Set QCOPY_ACL_LIB.
(Link): Add $(QCOPY_ACL_LIB). Remove $(LIB_ACL).
* modules/qacl (Link): Add $(LIB_ACL) and $(QCOPY_ACL_LIB).
* modules/acl (Link): Add $(LIB_ACL) and $(QCOPY_ACL_LIB).
* modules/copy-file (Link): Add $(QCOPY_ACL_LIB).
* modules/supersede (Link): Add $(QCOPY_ACL_LIB).
* modules/acl-tests (Makefile.am): Link test-copy-acl with
$(QCOPY_ACL_LIB).
* modules/copy-file-tests (Makefile.am): Link test-copy-file with
$(QCOPY_ACL_LIB).
* modules/supersede-tests (Makefile.am): Link test-supersede with
$(QCOPY_ACL_LIB).
2023-01-13 Bruno Haible <bruno@clisp.org>
qcopy-acl: Avoid autoconf warning.
* m4/xattr.m4 (gl_FUNC_XATTR): Provide a description in AC_DEFINE.
Also, protect against unsafe use of a configure option value.
2023-01-12 Ondrej Valousek <ondrej.valousek.xm@renesas.com>
qcopy-acl: Optimize copying of ACLs by directly copying the attributes.
* lib/qcopy-acl.c (is_attr_permissions): New functions.
(qcopy_acl): If USE_XATTR, copy the ACL related attributes directly.
* m4/xattr.m4: New file.
* modules/qcopy-acl (Files): Add it.
(configure.ac): Invoke gl_FUNC_XATTR.
2023-01-12 Bruno Haible <bruno@clisp.org>
error: Work around an Android problem.
* lib/error.in.h: Renamed from lib/error.h.
(_GL_ATTRIBUTE_SPEC_PRINTF_ERROR): New macro.
(error): Consider HAVE_ERROR and REPLACE_ERROR.
(error_at_line): Consider HAVE_ERROR_AT_LINE and REPLACE_ERROR_AT_LINE.
* m4/error_h.m4: New file, partially based on m4/error.m4.
* m4/error.m4 (gl_ERROR): Remove the test for error_at_line.
* modules/error-h: New file.
* modules/error (Files): Remove lib/error.h.
(Depends-on): Add error-h. Update conditions.
(configure.ac): Require gl_ERROR_H. Update condition.
* doc/glibc-headers/error.texi: Mention the 'error-h' module.
* doc/glibc-functions/error.texi: Mention the Android problem.
* config/srclist.txt: Add comment regarding error.h.
2023-01-12 Bruno Haible <bruno@clisp.org>
error, verror tests: Add clarification.
* tests/test-error.c (main): Clarify why we don't test error_at_line
with a NULL filename.
* tests/test-verror.c (main): Clarify why we don't test verror_at_line
with a NULL filename.
2023-01-12 Bruno Haible <bruno@clisp.org>
verror: Add tests.
* tests/test-verror.sh: New file, based on tests/test-error.sh.
* tests/test-verror.c: New file, based on tests/test-error.c.
* modules/verror-tests: New file.
2023-01-12 Bruno Haible <bruno@clisp.org>
error: Add tests.
* tests/test-error.sh: New file.
* tests/test-error.c: New file.
* modules/error-tests: New file.
2023-01-11 Bruno Haible <bruno@clisp.org>
xstrtol-error: Improve comments.
* lib/xstrtol-error.h (xstrtol_fatal): Add parameter names to
declaration.
2023-01-11 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Fix test failure on Android.
* tests/test-spawn-pipe-child.c (main): Skip the is_open (STDERR_FILENO)
check on Android.
2023-01-11 Bruno Haible <bruno@clisp.org>
perror: Fix "perror clobbers strerror's buffer" problem on Android.
* m4/perror.m4 (gl_FUNC_PERROR): Set REPLACE_PERROR to 1 on Android.
* doc/posix-functions/perror.texi: Mention the Android problem.
2023-01-11 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir tests: Fix test failure on Android.
* tests/test-posix_spawn-fchdir.c: Include xvasprintf.h.
(test): On Android, use "/proc" instead of "/".
(main): Determine the relative location of the 'pwd' program
accordingly.
* modules/posix_spawn_file_actions_addfchdir-tests (Depends-on): Add
xvasprintf.
2023-01-11 Bruno Haible <bruno@clisp.org>
rename, renameat, renameatu: Fix test failures on Android/Termux.
* tests/test-rename.h (test_rename): On Android, treat an EACCES failure
like EPERM.
2023-01-11 Bruno Haible <bruno@clisp.org>
link, linkat tests: Fix test failures on Android/Termux.
* tests/test-link.h (test_link): On Android, treat an EACCES failure
like EPERM.
* tests/test-linkat.c (main): When test_link is marked skipped, skip the
rest of the test as well.
2023-01-11 Bruno Haible <bruno@clisp.org>
link tests: Correct indentation.
* tests/test-link.h (test_link): Correct indentation.
2023-01-11 Bruno Haible <bruno@clisp.org>
Fix link errors on Android 4.3.
* lib/asyncsafe-spin.c: Don't use the GCC >= 4.1 builtins on Android,
when building with GCC.
* lib/pthread-spin.c: Likewise.
* lib/simple-atomic.c: Likewise.
2023-01-10 Jim Meyering <meyering@fb.com>
update-copyright: also work with two or more updatable lines in a file
* build-aux/update-copyright: Replace every occurrence of the copyright
line, not just the first one.
* tests/test-update-copyright.sh: Add a test case for this.
2023-01-10 Bruno Haible <bruno@clisp.org>
immutable: Fix initialization failure on Android.
* lib/immutable.c: Include "pathmax.h".
(do_init_mmap_file): Use $TMPDIR rather than /tmp, if it is safe.
* modules/immutable (Depends-on): Add pathmax.
2023-01-10 Bruno Haible <bruno@clisp.org>
Fix some test failures on Android ≥ 11.
* tests/test-fclose.c (main): On Android, avoid triggering the
file-descriptor sanitizer (fdsan).
* tests/test-fdopen.c (main): Likewise.
* tests/test-fflush.c (main): Likewise.
* tests/test-fgetc.c (main): Likewise.
* tests/test-fputc.c (main): Likewise.
* tests/test-fread.c (main): Likewise.
* tests/test-fseeko4.c (main): Likewise.
* tests/test-ftello4.c (main): Likewise.
* tests/test-fwrite.c (main): Likewise.
2023-01-10 Bruno Haible <bruno@clisp.org>
utimens: Fix warning on Android.
* m4/utimens.m4 (gl_UTIMENS): Test for futimesat and futimes using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
2023-01-10 Bruno Haible <bruno@clisp.org>
secure_getenv: Fix warning on Android.
* m4/secure_getenv.m4 (gl_FUNC_SECURE_GETENV): Test for issetugid using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
* lib/secure_getenv.c: Fix comment regarding issetugid.
2023-01-10 Bruno Haible <bruno@clisp.org>
renameat, renameatu: Fix warning on Android.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Test for renameat2 using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
2023-01-10 Bruno Haible <bruno@clisp.org>
memset_explicit tests: Fix signature check.
* tests/test-memset_explicit.c: Fix return type in signature check.
2023-01-10 Bruno Haible <bruno@clisp.org>
math: Fix compilation errors in C++ mode on Android.
* lib/math.in.h: Declare nothing if this file gets included from
/usr/include/c++/v1/math.h too early.
2023-01-10 Bruno Haible <bruno@clisp.org>
sys_ioctl: Fix compilation error in C++ mode on Android.
* lib/sys_ioctl.in.h (ioctl): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
2023-01-09 Bruno Haible <bruno@clisp.org>
threads-h: Improve portability.
* lib/threads.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible.
* modules/threads-h (Makefile.am): Substitute
INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_THREADS_H.
2023-01-09 Bruno Haible <bruno@clisp.org>
threads-h: Fix compilation errors in C++ mode on Android.
* lib/threads.in.h (_GL_ALREADY_INCLUDING_THREADS_H): New macro.
2023-01-09 Bruno Haible <bruno@clisp.org>
aligned-malloc: Don't disturb the module aligned_alloc.
* modules/aligned-malloc (configure.ac): Test for aligned_alloc in the
same way as module aligned_alloc does.
2023-01-09 Bruno Haible <bruno@clisp.org>
malloc-h: Improve portability.
* lib/malloc.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible.
* modules/malloc-h (Makefile.am): Substitute
INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_MALLOC_H.
2023-01-09 Bruno Haible <bruno@clisp.org>
reallocarray: Fix compilation error in C++ mode on Android.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Use gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS.
2023-01-09 Bruno Haible <bruno@clisp.org>
getsubopt: Fix compilation error in C++ mode on Android.
* m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Use gl_CHECK_FUNCS_ANDROID
instead of AC_CHECK_FUNCS_ONCE.
2023-01-09 Bruno Haible <bruno@clisp.org>
malloc-h: Fix compilation errors in C++ mode on Android.
* lib/malloc.in.h: Don't include <stdlib.h>, except on Solaris and on
HP-UX. Include <stddef.h>. Make _GL_ATTRIBUTE_DEALLOC_FREE work (code
snippet copied from string.in.h and wchar.in.h).
* m4/malloc_h.m4 (gl_MALLOC_H_REQUIRE_DEFAULTS): Invoke
gl_STDLIB_H_REQUIRE_DEFAULTS.
* modules/malloc-h (Depends-on): Add stddef, stdlib.
(Makefile.am): Substitute GNULIB_FREE_POSIX and REPLACE_FREE.
2023-01-09 Bruno Haible <bruno@clisp.org>
gettime: Fix compilation error in C++ mode on Android.
* m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Also test whether
timespec_get is declared.
2023-01-09 Bruno Haible <bruno@clisp.org>
malloc-h: Fix compilation error in C++ mode on Android.
* lib/malloc.in.h (_GL_ALREADY_INCLUDING_MALLOC_H): New macro.
2023-01-07 Bruno Haible <bruno@clisp.org>
timer_time: Rename LIB_TIMER_TIME to TIMER_TIME_LIB.
* m4/timer_time.m4: Rename LIB_TIMER_TIME to TIMER_TIME_LIB.
All uses changed.
* NEWS: Mention the change
2023-01-07 Bruno Haible <bruno@clisp.org>
setlocale-null: Rename LIB_SETLOCALE_NULL to SETLOCALE_NULL_LIB.
* m4/setlocale_null.m4: Rename LIB_SETLOCALE_NULL to SETLOCALE_NULL_LIB.
All uses changed.
* NEWS: Mention the change
2023-01-07 Bruno Haible <bruno@clisp.org>
setlocale: Rename LIB_SETLOCALE to SETLOCALE_LIB.
* m4/setlocale.m4: Rename LIB_SETLOCALE to SETLOCALE_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
select: Rename LIB_SELECT to SELECT_LIB.
* m4/select.m4: Rename LIB_SELECT to SELECT_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
sched_yield: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB.
* m4/threadlib.m4: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Rename LIB_PTHREAD_SIGMASK to PTHREAD_SIGMASK_LIB.
* m4/pthread_sigmask.m4: Rename LIB_PTHREAD_SIGMASK to
PTHREAD_SIGMASK_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
posix_spawn: Rename LIB_POSIX_SPAWN to POSIX_SPAWN_LIB.
* m4/spawn_h.m4: Rename LIB_POSIX_SPAWN to POSIX_SPAWN_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
poll: Rename LIB_POLL to POLL_LIB.
* m4/poll.m4: Rename LIB_POLL to POLL_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
nanosleep: Rename LIB_NANOSLEEP to NANOSLEEP_LIB.
* m4/nanosleep.m4: Rename LIB_NANOSLEEP to NANOSLEEP_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
mbrtowc: Rename LIB_MBRTOWC to MBRTOWC_LIB.
* m4/mbrtowc.m4: Rename LIB_MBRTOWC to MBRTOWC_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
hard-locale: Rename LIB_HARD_LOCALE to HARD_LOCALE_LIB.
* modules/hard-locale (configure.ac): Rename LIB_HARD_LOCALE to
HARD_LOCALE_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
getrandom: Rename LIB_GETRANDOM to GETRANDOM_LIB.
* m4/getrandom.m4: Rename LIB_GETRANDOM to GETRANDOM_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Rename LIB_GETLOGIN to GETLOGIN_LIB.
* m4/getlogin.m4: Rename LIB_GETLOGIN to GETLOGIN_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
gethrxtime: Rename LIB_GETHRXTIME to GETHRXTIME_LIB.
* m4/gethrxtime.m4: Rename LIB_GETHRXTIME to GETHRXTIME_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
fdatasync: Rename LIB_FDATASYNC to FDATASYNC_LIB.
* m4/fdatasync.m4: Rename LIB_FDATASYNC to FDATASYNC_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
euidaccess: Rename LIB_EACCESS to EUIDACCESS_LIBGEN.
* m4/euidaccess.m4: Rename LIB_EACCESS to EUIDACCESS_LIBGEN.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
duplocale: Rename LIB_DUPLOCALE to DUPLOCALE_LIB.
* m4/duplocale.m4: Rename LIB_DUPLOCALE to DUPLOCALE_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 Bruno Haible <bruno@clisp.org>
clock_time: Rename LIB_CLOCK_GETTIME to CLOCK_TIME_LIB.
* m4/clock_time.m4: Rename LIB_CLOCK_GETTIME to CLOCK_TIME_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-06 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: don’t bother setting LIB_HAS_ACL
* m4/acl.m4 (gl_FUNC_ACL, gl_FILE_HAS_ACL): Don’t set LIB_HAS_ACL.
I think only Coreutils and Tar used it, and I’ve updated them.
bootstrap: suppress stray message from --pull
* build-aux/bootstrap: Regenerate.
* top/bootstrap-funclib.sh (autopull): Suggest running autogen.sh
only if it exists (i.e., the package is using autopull.sh/autogen.sh).
Suggest the same name for autogen.sh that is used in the test.
2023-01-05 Bruno Haible <bruno@clisp.org>
string: Fix compilation errors in C++ mode on Android.
* lib/string.in.h (memrchr, strchrnul, strcasestr): Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
2023-01-05 Bruno Haible <bruno@clisp.org>
getpass: Fix compilation error on Android.
* m4/getpass.m4 (gl_FUNC_GETPASS): Define NO_INLINE_GETPASS.
* doc/glibc-functions/getpass.texi: Mention the Android problem.
2023-01-05 Bruno Haible <bruno@clisp.org>
Recognize functions added in future versions of Android.
* m4/gnulib-common.m4 (gl_CHECK_FUNCS_ANDROID): New macro.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Use
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE.
* m4/freading.m4 (gl_FUNC_FREADING): Likewise.
* m4/fseterr.m4 (gl_FUNC_FSETERR): Likewise.
* m4/fwriting.m4 (gl_FUNC_FWRITING): Likewise.
* m4/getentropy.m4 (gl_FUNC_GETENTROPY): Likewise.
* m4/getlogin_r.m4 (gl_CHECK_FUNCS_ANDROID): Likewise.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise.
* m4/glob.m4 (gl_PREREQ_GLOB): Likewise.
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Likewise.
* doc/glibc-functions/getentropy.texi: Mark function as existing in
Android 9.0.
* doc/glibc-functions/getrandom.texi: Likewise.
* doc/posix-functions/pthread_attr_getinheritsched.texi: Likewise.
* doc/posix-functions/pthread_attr_setinheritsched.texi: Likewise.
2023-01-05 Bruno Haible <bruno@clisp.org>
copy-file, supersede: Fix link-time requirements.
* modules/copy-file (Link): Add $(LIB_ACL).
* modules/supersede (Link): Likewise.
2023-01-05 Bruno Haible <bruno@clisp.org>
More systematic naming of LIB variables.
* m4/acl.m4 (gl_FUNC_ACL, gl_FILE_HAS_ACL): Set FILE_HAS_ACL_LIB to the
same value as LIB_HAS_ACL.
* modules/file-has-acl (Link): Use FILE_HAS_ACL_LIB instead of
LIB_HAS_ACL.
* modules/file-has-acl-tests (Makefile.am): Likewise.
2023-01-04 Bruno Haible <bruno@clisp.org>
doc: Update regarding Android.
* doc/glibc-functions/getdtablesize.texi: Update Android information.
* doc/glibc-functions/wait3.texi: Likewise.
* doc/pastposix-functions/ftime.texi: Likewise.
* doc/pastposix-functions/index.texi: Likewise.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi: Likewise.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi: Likewise.
* doc/pastposix-functions/wcswcs.texi: Likewise.
2023-01-03 Bruno Haible <bruno@clisp.org>
ffsl, ffsll: Fix compilation error on Android.
* lib/string.in.h: On Android as well, include <strings.h>.
* m4/ffsl.m4 (gl_FUNC_FFSL): Use a specific link test instead of
AC_CHECK_FUNCS_ONCE.
* m4/ffsll.m4 (gl_FUNC_FFSLL): Likewise.
* doc/glibc-functions/ffsl.texi: Mention Android problems.
* doc/glibc-functions/ffsll.texi: Likewise.
ffs: Document Android problem.
* doc/posix-functions/ffs.texi: Mention Android problem.
* m4/ffs.m4: Update comment.
2023-01-03 Bruno Haible <bruno@clisp.org>
stdio: Fix error in C++ mode on Android, due to putw.
* lib/stdio.in.h (putw): Don't declare in the C++ namespace if putw is
not declared.
* m4/stdio_h.m4 (gl_STDIO_H): Test whether putw is declared.
(gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_PUTW.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_PUTW.
* doc/glibc-functions/putw.texi: Update regarding Android.
2023-01-03 Bruno Haible <bruno@clisp.org>
stdio: Fix error in C++ mode on Android, due to getw.
* lib/stdio.in.h (getw): Don't declare in the C++ namespace if getw is
not declared.
* m4/stdio_h.m4 (gl_STDIO_H): Test whether getw is declared.
(gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_GETW.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_GETW.
2023-01-02 Bruno Haible <bruno@clisp.org>
sigsegv: Fix compilation error on Android 4.3.
* lib/sigsegv.in.h: For Android, don't include <ucontext.h> and don't
reference ucontext_t.
* lib/sigsegv.c (SIGSEGV_FAULT_): For Android, use a plain POSIX fault
handler (cf. libsigsegv/src/fault-posix.h).
2023-01-01 Paul Eggert <eggert@cs.ucla.edu>
dfa: work around Clang 15 bug
Problem reported by Kenton Groombridge in:
https://lists.gnu.org/archive/html/bug-gawk/2022-12/msg00010.html
On x86-64, Clang 15 gets confused by a call (X ? dfaerror :
dfawarn) (Y) and generates the wrong code, presumably because
dfaerror is _Noreturn and dfawarn is not.
* lib/dfa.c (parse_bracket_exp): Reword to have one call for
dfaerror, the other for dfawarn.
2023-01-01 Bruno Haible <bruno@clisp.org>
doc: Update regarding stable branches.
* doc/gnulib-readme.texi (Stable Branches): Mention new branch
stable-202301. Mention that stable-202201 is no longer updated.
2022-12-31 Paul Eggert <eggert@cs.ucla.edu>
maint: use UTC when updating copyright date
Problem reported by Simon Josefsson in:
https://lists.gnu.org/r/bug-gnulib/2022-12/msg00125.html
* Makefile (COPYRIGHT_TZ): New macro.
(update-copyright): Use it.
2022-12-28 Paul Eggert <eggert@cs.ucla.edu>
assert-h: port static_assert to strict C99
* lib/verify.h (_GL_VERIFY): Port MSVC hack back to C99.
Problem found when testing bleeding-edge gzip on IBM XL C for AIX,
V12.1 (5765-J02, 5725-C72), which complained ‘"malloca.c", line
42.56: 1506-041 (E) The invocation of macro _Static_assert
contains fewer arguments than are required by the macro
definition.’ This diagnostic is valid because C99 requires
that if you #define _Static_assert(R, ...) you must call
_Static_assert with at least two arguments. I found a similar
problem with Sun C 5.9 SunOS_sparc Patch 124867-12 2009/11/22.
2022-12-27 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: fix recently-introduced NFSv4 bug
* lib/file-has-acl.c (acl_nfs4_nontrivial): Fix off-by-one
error when rounding WHOLEN up to next multiple of 4.
Pacify GCC 12.2.1 -Wcast-align.
Add --pull, --gen options to build-aux/bootstrap
This supports a single bootstrap script with --pull and --gen
options, as an alternative to separate autogen.sh and autopull.sh
and bootstrap-funclib.sh auxiliary files.
* top/bootstrap: With --version, also output library version.
Support update of package that has only the bootstrap script,
and not the other three files.
Support packages with just 'bootstrap'
* top/bootstrap: With --version, also output library version.
Support update of package that has only the bootstrap script,
and not the other three files.
* top/bootstrap-funclib.sh (scriptlibversion): Rename
from scriptversion. All uses changed. This way we
can distinguish script from script library versions.
(upgrade_bootstrap): If the package currently has only
the bootstrap script, just update that.
Bootstrap with functions, not scripts
* top/bootstrap: Use autopull and autogen functions, not
shell scripts. This lets build-aux/bootstrap become a
standalone script. It does not change the behavior of
top/bootstrap, except for minor rewording of disagnostics.
Make autopull a shell function too
This does not change behavior. It is helpful for future changes.
* top/autopull.sh: Call autopull to do the actual work.
(usage, download_po_files, update_po_files):
Move to top/bootstrap-funclib.sh.
* top/bootstrap-funclib.sh (autopull_usage): Rename from ‘usage’.
(autopull): New function, containing the top level of the
old top/autopull.sh.
Make autogen a shell function too
This does not change behavior. It is helpful for future changes.
* top/autogen.sh: Call autogen to do the actual work.
(usage, version_controlled_file, gitignore_entries, insert_if_absent):
(insert_vc_ignore, symlink_to_dir): Move to top/bootstrap-funclib.sh.
* top/bootstrap-funclib.sh (autogen_usage): Rename from ‘usage’.
(autogen): New function, containing the top level of the
old top/autogen.sh.
2022-12-27 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on Solaris 11 OpenIndiana.
* m4/gnulib-common.m4 (gl_COMMON_BODY): In _GL_ATTRIBUTE_DEALLOC_FREE,
with GNU C++, cast the 'free' function.
* lib/string.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): With GNU C++, cast the
'free' function.
* lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): Likewise.
2022-12-27 Bruno Haible <bruno@clisp.org>
stdnoreturn: Mark as deprecated, not obsolete. (Regression 2022-12-24.)
* modules/stdnoreturn (Status): Remove.
(Notice): Say that it is deprecated, not obsolete.
* doc/noreturn.texi: Fix a typo.
2022-12-26 Paul Eggert <eggert@cs.ucla.edu>
stdbool-c99: fix typo
Reported against Autoconf by Todd C. Miller in:
https://lists.gnu.org/r/autoconf/2022-12/msg00001.html
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Sync from Autoconf master.
2022-12-26 Bruno Haible <bruno@clisp.org>
ctime: Mark as deprecated, not obsolete. (Regression 2022-12-21.)
* modules/ctime (Status): Remove.
(Notice): Say that it is deprecated, not obsolete.
2022-12-25 Paul Eggert <eggert@cs.ucla.edu>
largefile: sync from Autoconf master
* m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): Test whether
AC_SYS_YEAR2038 is defined when this macro is defined, not when it
is used, as we now define AC_SYS_YEAR2038 later.
(_AC_SYS_LARGEFILE_MACRO_VALUE): Remove.
(_AC_SYS_YEAR2038_TEST_CODE, _AC_SYS_YEAR2038_OPTIONS)
(_AC_SYS_YEAR2038_PROBE, _AC_SYS_YEAR2038_ENABLE)
(_AC_SYS_YEAR2038_OPT_IN, AC_SYS_YEAR2038)
(_AC_SYS_LARGEFILE_TEST_CODE, _AC_SYS_LARGEFILE_OPTIONS)
(_AC_SYS_LARGEFILE_PROBE, _AC_SYS_LARGEFILE_ENABLE): New macros.
(AC_SYS_LARGEFILE): Use them.
* m4/year2038.m4: Remove. All mentions removed.
* modules/largefile, modules/year2038 (configure.ac-early):
Do not require gl_YEAR2038_EARLY.
* modules/year2038 (Depends-on): Depend on largefile.
(configure.ac): Require AC_SYS_YEAR2038, not gl_YEAR2038.
2022-12-24 Paul Eggert <eggert@cs.ucla.edu>
extensions: enable some C23 Annex F functions
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
Also define __STDC_WANT_IEC_60559_EXT__, for C23 Annex F
functions like totalorder. This syncs from Autoconf master.
stdnoreturn: deprecate
C23 says <stdnoreturn.h> is obsolescent, so deprecate the
stdnoreturn module. I don't think it was being used anyway
as it had too many problems.
* modules/stdnoreturn: Mark as obsolete.
2022-12-23 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: improve recent NFSv4 support
This fixes a link failure with emacsclient on GNU/Linux. This
program wants file_has_acl but none of the other ACL primitives,
so it doesn’t link acl-internal.o; this way it doesn’t need to
link with -lacl. While I was at it I reviewed the recent changes,
fixed some unlikely overflow bugs, and adjusted to GNU style.
* doc/acl-nfsv4.txt: Remove. Its contents are now in a
comment in lib/file-has-acl.c.
* lib/acl-internal.c, lib/acl-internal.h: Move recent changes
relating to acl_nfs4_nontrivial to lib/file-has-acl.c, so that
there is no trouble linking programs that need only file_has_acl.
* lib/file-has-acl.c (acl_nfs4_nontrivial): Move here from
lib/acl-internal.c, so that we needn't link -lacl in
programs that want only file_has_acl, such as emacsclient.
Do not assume a char buffer is aligned for uint32_t.
Check more carefully for buffer read overrun.
Allow up to 6 ACEs, since other code does; but check
that they’re distinct. Avoid integer overflow.
Use memcmp rather than strncmp to compare memory blocks.
(file_has_acl): Preserve initial errno instead of setting to 0.
Allocate a bit more room for trivial ACL buffer.
Use EINVAL for botchedk NFSv4 ACLs (which shouldn’t happen).
2022-12-22 Paul Eggert <eggert@cs.ucla.edu>
posix_spawnp-tests: fix filename typo
Problem reported for GNU m4 by Mitchell Dorrell in:
https://lists.gnu.org/r/bug-m4/2022-12/msg00000.html
* tests/test-posix_spawnp-script.c (DATA_FILENAME):
Fix typo in file name that caused race with
test-posix_spawn-script.c.
2022-12-22 Ondrej Valousek <ondrej.valousek.xm@renesas.com>
file-has-acl: Basic support for checking NFSv4 ACLs in Linux.
* lib/acl-internal.h (acl_nfs4_nontrivial): New declaration.
* lib/acl-internal.c (acl_nfs4_nontrivial): New function.
* lib/file-has-acl.c: Include <arpa/inet.h>.
(XATTR_NAME_NFSV4_ACL, TRIVIAL_NFS4_ACL_MAX_LENGTH): New macros.
(file_has_acl): Test for NFSv4 ACLs.
* doc/acl-nfsv4.txt: New file.
2022-12-21 Paul Eggert <eggert@cs.ucla.edu>
Port __has_c_attribute to strict C23
* m4/gnulib-common.m4 (_GL_HAS_C_ATTRIBUTE): Remove, as C23 says
behavior is undefined if __has_c_attribute appears anywhere other
than at the top level of an #if or #ifdef. All uses replaced by
wordier invocations of __has_c_attribute.
asctime, ctime: deprecate
C23 deprecates asctime and ctime, so deprecate them in Gnulib too.
* NEWS, doc/posix-functions/asctime.texi:
* doc/posix-functions/ctime.texi: Mention this.
* lib/time.in.h (ctime): Deprecate any ctime replacement.
* modules/ctime: Now obsolete.
2022-12-17 Paul Eggert <eggert@cs.ucla.edu>
memset_explicit: port to older MS-Windows
* lib/memset_explicit.c (memset_explicit):
Remove special case for C==0 and MS-Windows. The code isn’t
needed for correctness and it’s more trouble than it’s worth as it
prevents this module from being used with GNU Emacs, which wants
to port to MS-Windows versions so old that they lack
SecureZeroMemory.
2022-12-09 Bruno Haible <bruno@clisp.org>
Update users.txt.
* users.txt: Add lbzip2.
2022-12-09 Paul Eggert <eggert@cs.ucla.edu>
fts: make debug version compilable again
This fixes things in what I hope is a better way than the
fd-only approach proposed by Kamil Dudka here:
https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00079.html
https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00080.html
* lib/fts.c (GNULIB_FTS_DEBUG): Rename from FTS_DEBUG,
to avoid collision with coreutils symbol.
Do not include <stdint.h> (not needed, since we include <stdint.h>)
or "getcwdat.h" (no longer exists).
(fd_ring_check, fd_ring_print): Add forward decls.
(struct devino): New type.
(PRINT_DEVINO): New macro.
(getdevino): New static function.
(fd_ring_print): Do nothing if not debugging.
(fd_ring_print, fd_ring_check): Use getdevino instead of getcwdat.
The output isn’t as good, but at least it compiles and runs.
2022-12-07 Paul Eggert <eggert@cs.ucla.edu>
verify: update __STDC_VERSION__ as per C23
This shouldn’t affect anything; it’s merely a refactoring.
* lib/verify.h (_GL_HAVE__STATIC_ASSERT1): Require
__STDC_VERSION__ to be at least 202311, instead of at least
202000. The latter number was put in in 2019 because we didn’t
yet know C23’s __STDC_VERSION__ value.
2022-12-06 Paul Eggert <eggert@cs.ucla.edu>
fts: fix race + mishandling of fstatat failure
I hope this fixes a Luke Dashjr coreutils bug report about ext4
ramdisks; see “9.1: du Aborted (corrupt filesystem)”
<https://debbugs.gnu.org/59821>.
* lib/fts.c (fts_build): Fix two bugs. First, fts_stat was being
called without checking its return value, causing a later abort.
Second, there was a race between opening a directory and statting
it, fixed by using fstat on the file descriptor rather than
fstatat on the directory name.
fts: omit goto break_without_closedir
* lib/fts.c (fts_build): Refactor to omit goto.
fts: clarify ISSET
* lib/fts.c (ISSET): Refactor to clarify boolean usage.
2022-12-05 Bruno Haible <bruno@clisp.org>
argp: Correct documentation.
Reported by José E. Marchesi <jemarch@gnu.org>.
* doc/glibc-functions/argp_*.texi: Mention the 'argp' module.
2022-12-02 Pádraig Brady <P@draigBrady.com>
doc: poll: document poll of special files not supported on macOS
* doc/posix-functions/poll.texi: Reinstate (updated) macOS info,
removed in recent cleanup re removal of support for Mac OS X <= 10.4.
* m4/poll.m4: Update macOS to latest tested version.
2022-11-29 Pádraig Brady <P@draigBrady.com>
add new ronna and quetta SI prefixes
As voted for in Nov 2022 by the BIPM:
https://www.bipm.org/en/cgpm-2022/resolution-3
* lib/human.c: Add Ronna (10^27), and Quetta (10^30) to the prefix list.
* lib/xstrtol.c (__xstrtol): Likewise.
2022-11-29 Bruno Haible <bruno@clisp.org>
Update users.txt.
* users.txt: Add 4ti2, ale, amanda, binfmt-support, cgminer, collectd,
complexity, dc3dd, dico, enchant-2, fuse-overlayfs, gsequencer, idutils,
libu2f-host, licenseutils, mmv, pacemaker, trader, ttfautohint.
2022-11-27 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero: implement via memset_explicit
* lib/explicit_bzero.c (explicit_bzero):
Simplify by just calling memset_explicit.
* m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Remove.
All uses removed.
* modules/explicit_bzero (Depends-on): Add memset_explicit.
explicit_bzero: memset_explicit is standard
* doc/glibc-functions/explicit_bzero.texi:
Say that memset_explicit is preferred in new code.
read-file: use memset_explicit
* lib/read-file.c (fread_file, read_file):
Use memset_explicit instead of explicit_bzero.
* modules/read-file (Depends-on): Depend on memset_explicit
instead of on explicit_bzero.
memset_explicit: new module
* doc/posix-functions/memset_explicit.texi, lib/memset_explicit.c:
* m4/memset_explicit.m4, modules/memset_explicit:
* modules/memset_explicit-tests, tests/test-memset_explicit.c:
New files.
* lib/string.in.h (memset_explict): New decl.
* m4/string_h.m4 (gl_STRING_H, gl_STRING_H_REQUIRE_DEFAULTS)
(gl_STRING_H_DEFAULTS):
* modules/string (string.h):
Support memset_explicit.
explicit_bzero: add poison
* m4/string_h.m4 (gl_STRING_H): Poison explicit_bzero.
This was inadvertently omitted when explicit_bzero was added.
2022-11-27 Arsen Arsenović <arsen@aarsen.me>
bootstrap: Fix --help output.
* build-aux/bootstrap (usage): Regenerate.
2022-11-27 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero: work with gcc -std=c99
* lib/explicit_bzero.c (explicit_bzero) [__GNUC__ && !__clang__]:
Use __asm__ instead of asm.
2022-11-26 Paul Eggert <eggert@cs.ucla.edu>
Prefer "kill -INT" to killing with a number
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
* tests/test-login_tty.c (main):
* tests/test-pthread_sigmask1.c (main):
* tests/test-sigprocmask.c (main):
Prefer "kill -INT" to "kill -N" where N is SIGINT’s value.
Don’t assume pid_t fits in int.
2022-11-25 Bruno Haible <bruno@clisp.org>
In 'trap' commands, prefer symbolic to numeric signal names.
Reported by Mike Fulton <fultonm@ca.ibm.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-11/msg00130.html>.
* gnulib-tool: Use symbolic signal names.
* posix-modules: Likewise.
* MODULES.html.sh: Likewise.
* build-aux/bootstrap (prepare_GNULIB_SRCDIR): Likewise.
* build-aux/csharpcomp.sh.in: Likewise.
* build-aux/gnu-web-doc-update: Likewise.
* top/autogen.sh: Likewise.
* top/bootstrap-funclib.sh: Likewise.
* top/gitsub.sh: Likewise.
* lib/t-idcache: Likewise.
* tests/havelib/rpath-1: Likewise.
* tests/havelib/rpath-2_a: Likewise.
* tests/havelib/rpath-2_b: Likewise.
* tests/havelib/rpath-3_a: Likewise.
* tests/havelib/rpath-3_b: Likewise.
* tests/init.sh: Likewise.
* tests/test-binary-io.sh: Likewise.
* tests/test-c-stack.sh: Likewise.
* tests/test-c-stack2.sh: Likewise.
* tests/test-dprintf-posix.sh: Likewise.
* tests/test-fpending.sh: Likewise.
* tests/test-fprintf-posix.sh: Likewise.
* tests/test-lseek.sh: Likewise.
* tests/test-printf-posix.sh: Likewise.
* tests/test-select-in.sh: Likewise.
* tests/test-select-out.sh: Likewise.
* tests/test-sigpipe.sh: Likewise.
* tests/test-tsearch.sh: Likewise.
* tests/test-update-copyright.sh: Likewise.
* tests/test-vdprintf-posix.sh: Likewise.
* tests/test-vfprintf-posix.sh: Likewise.
* tests/test-vprintf-posix.sh: Likewise.
* tests/test-xprintf-posix.sh: Likewise.
* tests/uniwidth/test-uc_width2.sh: Likewise.
2022-11-20 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Avoid warning on macOS.
Suggested by Minsoo Choo in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-11/msg00114.html>.
* lib/spawni.c: Ignore -Wdeprecated-declarations warnings.
2022-11-20 Bruno Haible <bruno@clisp.org>
posix_spawn tests: Fix compilation error (regression 2022-09-14).
* modules/posix_spawn-tests (Makefile.am): Augment DEFS, to define
EXEEXT.
2022-11-14 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: improve doc formatting, timeliness
* doc/parse-datetime.texi: Use @samp and @code in menus
for consistenty with how the Coreutils manual will do
this sort of thing. Update examples to this year.
2022-11-13 Simon Josefsson <simon@josefsson.org>
vc-list-files-tests: Avoid OpenPGP private key operations.
* tests/test-vc-list-files-git.sh (GIT_CONFIG_GLOBAL): Set it to
/dev/null.
2022-11-03 Bruno Haible <bruno@clisp.org>
dynarray: Rename to glibc-internal/dynarray.
* modules/glibc-internal/dynarray: Renamed from modules/dynarray.
* modules/glibc-internal/dynarray-tests: Renamed from
modules/dynarray-tests.
* modules/regex (Depends-on): Update.
* NEWS: Mention this change and the previous one.
2022-11-03 Bruno Haible <bruno@clisp.org>
scratch_buffer: Rename to glibc-internal/scratch_buffer.
* modules/glibc-internal/scratch_buffer: Renamed from
modules/scratch_buffer.
* modules/glibc-internal/scratch_buffer-tests: Renamed from
modules/scratch_buffer-tests.
* modules/canonicalize (Depends-on): Update.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
2022-11-02 Bruno Haible <bruno@clisp.org>
scratch_buffer: Document last change.
* NEWS: Mention last change.
2022-11-02 Paul Eggert <eggert@cs.ucla.edu>
scratch_buffer: adjust to glibc changes
Problem reported by Karl Berry in:
https://lists.gnu.org/r/bug-gnulib/2022-11/msg00004.html
* build-aux/depcomp, doc/make-stds.texi, lib/malloc/scratch_buffer.h:
Autoupdate.
* build-aux/install-reloc (func_create_wrapper):
Omit removed file scratch_buffer_dupfree.c.
* config/srclist.txt: Remove lib/malloc/scratch_buffer_dupfree.c
* lib/canonicalize-lgpl.c: Merge changes from glibc through its
commit ef0700004bf0dccf493a5e8e21f71d9e7972ea9f dated 2022-07-05
11:04:45 +0200.
(__strdup) [!_LIBC]: New macro.
(struct realpath_bufs): New type.
(realpath_stk): Use it as the extra argument. All uses changed.
No longer any need for noinline or GCC_BOGUS_WRETURN_LOCAL_ADDR.
* lib/canonicalize.c (struct realpath_bufs)
(canonicalize_filename_mode_stk): Likewise.
* lib/malloc/scratch_buffer_dupfree.c:
Remove, since it was removed in glibc.
* lib/scratch_buffer.h (scratch_buffer_dupfree) [0]:
(__libc_scratch_buffer_dupfree): Remove decls.
* modules/relocatable-prog-wrapper (Files):
* modules/scratch_buffer (Files, lib_SOURCES):
Remove lib/malloc/scratch_buffer_dupfree.c.
2022-11-01 Bruno Haible <bruno@clisp.org>
relocatable-script: Relax license.
* modules/relocatable-script (License): Change to GPLv2+.
* build-aux/relocatable.sh.in: Change copyright header to GPLv2+.
2022-10-31 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Fix Apple Xcode 'make syntax-check'.
* top/maint.mk (sc_indent): Don't use non-GNU indent.
2022-10-30 Paul Eggert <eggert@cs.ucla.edu>
thread: pacify gcc -Wbad-function-cast
* lib/glthread/thread.h (gl_thread_self_pointer): With POSIX
threads, cast the call to gl_thread_t before casting to void *.
test-getlogin: pacify gcc -Wshadow
* tests/test-getlogin.h (test_getlogin_result): Rename local.
2022-10-25 Simon Josefsson <simon@josefsson.org>
gendocs: Output timestamp in English.
* build-aux/gendocs.sh (SETLANG): Add LC_TIME= for "date".
2022-10-23 Bruno Haible <bruno@clisp.org>
assert-h: Make static_assert work on Solaris 11.4.
* m4/assert_h.m4 (gl_ASSERT_H): After including <assert.h>, on Solaris,
redefine static_assert.
2022-10-16 Bruno Haible <bruno@clisp.org>
getdelim: Work around buggy implementation on macOS 10.13.
* doc/posix-functions/getdelim.texi: Mention the macOS bug.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Let the "checking for working
getdelim function" test answer 'no' on macOS.
2022-10-15 Bruno Haible <bruno@clisp.org>
Update to Unicode 15.0.0.
* lib/gen-uni-tables.c (is_property_default_ignorable_code_point):
Exclude 0x13439..0x1343F.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0ECE, 0x10EFD..0x10EFF, 0x11241, 0x11F00..0x11F01, 0x11F36..0x11F3A,
0x11F40, 0x11F42, 0x13439..0x13440, 0x13447..0x13455, 0x1E08F,
0x1E4EC..0x1E4EF.
* All the affected modules: Bump required libunistring version.
2022-10-15 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Temporarily revert last change.
* lib/gen-uni-tables.c: Include <stdbool.h>, unless the C compiler
advertises compliance to ISO C 23.
2022-10-12 Paul Eggert <eggert@cs.ucla.edu>
doc: improve intprops doc
* doc/intprops.texi: Tighten up wording, by saying that macros
"yield 1 if X, 0 otherwise" rather than the weaker "yield 1 if X".
Say "yield" rather than "return" since the macros are not
functions. Say "1" and "0" rather than "true" and "false" since
the macros yield int. Say that stdckdint.h is the standard
alternative to the _WRAPV macros. Mention another source of
problems with the _OVERFLOW macros.
2022-10-10 Paul Eggert <eggert@cs.ucla.edu>
tests: prefer stdckdint to intprops
* modules/chown-tests, modules/fchownat-tests:
* modules/fdutimensat-tests, modules/futimens-tests:
* modules/lchown-tests, modules/stat-time-tests:
* modules/utime-tests, modules/utimens-tests:
* modules/utimensat-tests:
(Depends on): Depend on stdckint, not intprops.
* tests/nap.h: Include stdckdint.h, not intprops.h.
All macro uses changed.
stat-time: prefer stdckdint to intprops
* lib/stat-time.h: Include stdckdint.h instead of intprops.h.
(stat_time_normalize): Use ckd_add instead of INT_ADD_WRAPV.
* modules/stat-time (Depends-on): Depend on stdckdint, not intprops.
xalloc: remove stray includes + dependencies
These used to be needed, but are not needed now.
* lib/xalloc.h: Do not include stdlib.h.
[GNULIB_XALLOC]: Do not include "intprops.h".
* lib/xmalloc.c: Include stdint.h here instead, for SIZE_MAX.
* modules/xalloc-die, modules/xvasprintf (Depends-on): Remove stdint.
2022-09-30 Paul Eggert <eggert@cs.ucla.edu>
assert-h: suppress Apple clang 13 false alarms
* m4/assert_h.m4 (gl_ASSERT_H): Suppress bogus warnings from Apple
clang 13 (clang-1300.0.29.30). Problem privately reported by
Mattias Engdegård for GNU Emacs.
2022-09-26 Daiki Ueno <ueno@gnu.org>
largefile: fix detection of time_t size on mingw32
* modules/largefile (configure.ac-early): Ensure gl_YEAR2038_EARLY
is invoked before gl_YEAR2038_BODY.
2022-09-25 Paul Eggert <eggert@cs.ucla.edu>
fts: fix errno handling if dirfd fails
* lib/fts.c (fts_build): Use proper errno if dirfd failed.
Although I don’t know of any platform where dirfd can fail here,
we might as well get it right.
2022-09-25 Bruno Haible <bruno@clisp.org>
stdbool: Mostly revert last patch.
* m4/c-bool.m4 (gl_C_BOOL): If stdbool.h does not exist, just err out.
* modules/stdbool (Files): Remove m4/stdbool.m4.
2022-09-24 Bruno Haible <bruno@clisp.org>
stdbool: Don't #include a gnulib-generated stdbool.h from config.h.
* m4/c-bool.m4 (gl_C_BOOL): Check for stdbool.h and for _Bool. If
stdbool.h does not exist, don't #include <stdbool.h> but instead put the
substitute code into config.h.
* modules/stdbool (Files): Add m4/stdbool.m4.
2022-09-24 Bruno Haible <bruno@clisp.org>
stdalign: Don't #include a gnulib-generated stdalign.h from config.h.
* m4/stdalign.m4 (gl_STDALIGN_H): Check for stdalign.h. If it does not
exist, don't #include <stdalign.h> but instead put the substitute code
into config.h.
2022-09-24 Bruno Haible <bruno@clisp.org>
stdalign: Fix compilation error with MSVC in C++ mode.
* lib/stdalign.in.h: Treat MSVC in C++ mode like C++11 compliant
compilers.
* tests/test-stdalign-c++.cc: Include some other header files.
stdalign: Avoid namespace pollution.
* lib/stdalign.in.h (_GL_STDALIGN_NEEDS_STDDEF): New macro.
Include <stddef.h> only when needed.
2022-09-23 Simon Josefsson <simon@josefsson.org>
warnings, manywarnings: Doc fixes.
* doc/manywarnings.texi (manywarnings): Improve usage instruction.
Start list of comments on particular warning flags, based on
comment from Paul Eggert <eggert@cs.ucla.edu>.
* doc/warnings.texi (warnings): Mention that it is often used with manywarnings.
2022-09-21 Paul Eggert <eggert@cs.ucla.edu>
assert-h: suppress clang false alarms
Suppress scads of annoying warnings from clang version 14.0.5
(Fedora 14.0.5-1.fc36) of the form "warning: '_Static_assert' with
no message is a C2x extension [-Wc2x-extensions]",
by refusing to use single-arg static_assert with older clang.
* m4/assert_h.m4 (gl_ASSERT_H): Turn -Wc2x-extensions from a
warning into an error when testing static_assert, so that the
annoying diagnostic causes the test to fail, which causes assert.h
to be replaced in a way that suppresses the diagnostic during
the real build.
2022-09-20 Bruno Haible <bruno@clisp.org>
Add another helper script for creating testdirs.
* all-modules: New file, based on posix-modules.
2022-09-20 Bruno Haible <bruno@clisp.org>
snippet/warn-on-use: Don't cause wrong AC_CHECK_DECL results with clang.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Use the clang command-line
option that disables implicit built-in function declarations in clang.
2022-09-19 Bruno Haible <bruno@clisp.org>
stdbool, stdbool-c99 tests: Fix compilation error with clang/MSVC.
* tests/test-stdbool.c (WORKING_BOOL): Define to 0 on compilers that
define _MSC_VER.
2022-09-18 Paul Eggert <eggert@cs.ucla.edu>
stdbool: omit ‘#undef true’
This is mostly just simplification.
* m4/c-bool.m4 (gl_C_BOOL): Test all preprocessors when
!HAVE_C_BOOL, not merely __SUNPRO_CC. Use the slightly
more-elegant ‘!true’ instead of ‘true == 1’; this shouldn’t matter
in practice and if it does matter we want to know about it anyway.
Remove an unnecessary ‘#undef true’ that is simply commented out
by ‘configure’; again, if true is already #defined to be 0 the
system is so messed up we want to know about it anyway.
2022-09-18 Bruno Haible <bruno@clisp.org>
stdbool: Ensure that 'true' can be used in the preprocessor.
* m4/c-bool.m4 (gl_C_BOOL): With Sun C++, redefine 'true' if it does not
evaluate to 1 in the preprocessor.
stdbool-c99: Ensure that 'true' can be used in the preprocessor.
* lib/stdbool.in.h (true): Redefine if it does not evaluate to 1 in the
preprocessor.
2022-09-18 Bruno Haible <bruno@clisp.org>
uni{case,ctype,gbrk,str}/base: Fix installed .h file (regr. 2022-09-10).
* lib/unicase.in.h: Do include <stdbool.h>.
* lib/unictype.in.h: Likewise.
* lib/unigbrk.in.h: Likewise.
* lib/unistr.in.h: Likewise.
2022-09-18 Bruno Haible <bruno@clisp.org>
signal: Fix a C++ compilation error due to sched_yield on OpenBSD 6.0.
* lib/signal.in.h: On OpenBSD, include <sys/param.h>. Don't include
<pthread.h> on OpenBSD ≥ 5.1.
2022-09-17 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero-tests: robustify a bit
This is mostly to suppress GCC warnings, though I suppose it
might also improve the test.
* tests/test-explicit_bzero.c: Do not ignore -Wmaybe-uninitialized,
as this warning should no longer be generated given the other changes.
(test_heap): ASSERT that malloc succeeds, to suppress any GCC
warning about relying on malloc succeeding. Declare addr to be
volatile, so that GCC does not deduce that it is heapbuf in
disguise and diagnose using it after freeing it.
(do_secret_stuff): Declare more things to be volatile, to avoid
optimizations that might disturb the stack and/or mess up the test
in other ways. Pass last_stackbuf address as a parameter rather
than having last_stackbuf be static, to avoid GCC warning about
assigning address of a local to a static; all callers changed.
2022-09-17 Bruno Haible <bruno@clisp.org>
wchar: Fix compilation errors in C++ mode on Solaris 11.3.
* lib/wchar.in.h (wcsnlen, wcpcpy, wcpncpy, wcscasecmp, wcsncasecmp,
wcsdup): Force declaration in C++ mode on Solaris (which does not
declare these functions in the global namespace).
2022-09-17 Bruno Haible <bruno@clisp.org>
swab: Fix compilation error with Sun C++ on Solaris 11.3.
* lib/unistd.in.h (swab): For the C++ declaration, under Solaris 11 but
not under Solaris 10, test also __XOPEN_OR_POSIX.
2022-09-17 Bruno Haible <bruno@clisp.org>
time C++ tests: Fix link error on CentOS 5.
* modules/time-c++-tests (Makefile.am): Link test-time-c++ against
$(LIB_CLOCK_GETTIME).
2022-09-14 Bruno Haible <bruno@clisp.org>
time: Fix compilation errors with clang/MSVC.
* m4/time_h.m4 (gl_TIME_H): Test whether asctime_r and ctime_r are
declared.
* lib/time.in.h (asctime_r, ctime_r): Skip _GL_WARN_ON_USE invocations
when these functions are not declared.
2022-09-14 Bruno Haible <bruno@clisp.org>
verify: Avoid syntax error due to static_assert with clang in C++ mode.
* lib/verify.h (static_assert): Don't define in clang C++ 6 or newer.
* m4/assert_h.m4 (gl_ASSERT_H): If we don't need to define static_assert
with clang in C++ mode, don't include <assert.h>.
2022-09-14 Paul Eggert <eggert@cs.ucla.edu>
assert-h: work around include confusion
* m4/assert_h.m4 (gl_ASSERT_H): Arrange for <config.h> to not
include <assert.h> if assert is already defined. This works
around bugs in packages that mistakenly include <config.h> after
including <assert.h> (typically due to double-inclusion of
<config.h>). Found in coreutils, which I plan to fix.
stdbool: depend on C99
Record that stdbool depends on C99 these days.
This matters only for ancient compilers that need special
flags to support C99 features.
* modules/stdbool (Depends-on): Add c99.
2022-09-14 Bruno Haible <bruno@clisp.org>
verify: Avoid syntax error due to static_assert with MSVC 14 in C++.
* lib/verify.h (static_assert): For MSVC in C++ mode, use a definition
that supports both the two-arguments and the one-argument syntax.
2022-09-14 Bruno Haible <bruno@clisp.org>
posix_spawn-* tests: Fix test failure on mingw when libtool is in use.
* tests/test-posix_spawn-inherit0.c (CHILD_PROGRAM_FILENAME): Add the
EXEEXT suffix.
* tests/test-posix_spawn-inherit1.c (CHILD_PROGRAM_FILENAME): Likewise.
* tests/test-posix_spawn-open1.c (CHILD_PROGRAM_FILENAME): Likewise.
* tests/test-posix_spawn-open2.c (CHILD_PROGRAM_FILENAME): Likewise.
2022-09-14 Bruno Haible <bruno@clisp.org>
verify: Avoid syntax error due to static_assert with MSVC 14.
* lib/verify.h (_Static_assert): Pass only the first argument to
_GL_VERIFY.
2022-09-13 Paul Eggert <eggert@cs.ucla.edu>
verify: treat GNU C++ 6 like recent C++
* m4/assert_h.m4 (gl_ASSERT_H):
If we check __cpp_static_assert < 201411, also check __GNUG__ < 6,
for consistency with the previous change.
2022-09-13 Bruno Haible <bruno@clisp.org>
verify: Avoid syntax error due to static_assert with GNU C++ 6.x.
* lib/verify.h (static_assert): Don't define in GNU C++ 6 or newer.
2022-09-13 Paul Eggert <eggert@cs.ucla.edu>
stdalign: prefer to not include <stdalign.h>
* lib/alignalloc.c, lib/argp-parse.c, lib/fts.c, lib/md4.c, lib/md5.c:
* lib/rawmemchr.c, lib/sha1.c, lib/sha256.c, lib/sha512.c, lib/sm3.c:
* lib/sys_socket.in.h:
In C23, <stdalign.h> is a no-op, so don’t include it.
stdalign: alignas and alignof are C23 keywords
* m4/stdalign.m4 (gl_STDALIGN_H): Check also whether
alignas and alignof are keywords and so don’t need stdalign.h,
and define HAVE_C_ALIGNASOF if so.
If not, arrange for config.h to #define alignas and alignof
by including <stdalign.h>.
* modules/stdalign: No need to include <stdalign.h>.
* tests/test-stdalign.c: Do not include stdalign.h.
assert-h: prefer to ‘verify’
Where it’s easy, prefer ‘static_assert’ to ‘verify’,
as this simplifies the source by removing the need to
include verify.h. Keep using ‘verify’ if verify.h
is used for other reasons, or if code is shared with glibc.
* lib/alignalloc.c, lib/argmatch.h, lib/c32is-impl.h:
* lib/c32snrtombs.c, lib/c32srtombs.c, lib/exclude.c:
* lib/filevercmp.c, lib/fma.c, lib/i-ring.h, lib/ino-map.c:
* lib/localeinfo.c, lib/malloca.c, lib/mbrtoc32.c, lib/mbrtowc.c:
* lib/mbsinit.c, lib/mbsnrtoc32s.c, lib/mbsrtoc32s.c:
* lib/nanosleep.c, lib/parse-datetime.y, lib/pipe2.c:
* lib/rawmemchr.c, lib/relocwrapper.c, lib/sleep.c:
* lib/stat-w32.c, lib/strerror.c, lib/strtoimax.c:
* lib/utimecmp.c, lib/vasnprintf.c, tests/test-alignof.c:
* tests/test-intprops.c, tests/test-libgmp.c:
* tests/test-limits-h.c, tests/test-locale.c:
* tests/test-pthread.c, tests/test-round2.c:
* tests/test-stdalign.c, tests/test-stddef.c, tests/test-stdio.c:
* tests/test-stdlib.c, tests/test-string.c, tests/test-sys_stat.c:
* tests/test-time.c, tests/test-uchar.c, tests/test-unistd.c:
* tests/test-wchar.c:
Prefer static_assert to verify, and stop including verify.h.
* lib/stat.c: Don’t include verify.h (this include was unnecessary).
* modules/alignalloc, modules/alignof-tests, modules/argmatch:
* modules/c-vasnprintf, modules/c32isalnum, modules/c32isalpha:
* modules/c32isblank, modules/c32iscntrl, modules/c32isdigit:
* modules/c32isgraph, modules/c32islower, modules/c32isprint:
* modules/c32ispunct, modules/c32isspace, modules/c32isupper:
* modules/c32isxdigit, modules/c32snrtombs, modules/c32srtombs:
* modules/exclude, modules/filevercmp, modules/fma, modules/fmaf:
* modules/fmal, modules/fstat, modules/i-ring, modules/ino-map:
* modules/intprops-tests, modules/libgmp-tests:
* modules/limits-h-tests, modules/locale-tests, modules/malloca:
* modules/mbrtoc32, modules/mbrtowc, modules/mbsinit:
* modules/mbsnrtoc32s, modules/mbsrtoc32s, modules/nanosleep:
* modules/parse-datetime, modules/pipe2, modules/pthread-h-tests:
* modules/rawmemchr, modules/relocatable-prog-wrapper:
* modules/round-tests, modules/roundf-tests, modules/sleep:
* modules/stat, modules/stdalign-tests, modules/stdckdint-tests:
* modules/stddef-tests, modules/stdio-tests, modules/stdlib-tests:
* modules/strerror, modules/string-tests, modules/strtoimax:
* modules/strtoumax, modules/sys_stat-tests, modules/time-tests:
* modules/uchar-tests, modules/unistd-tests:
* modules/unistdio/u16-u16-vasnprintf:
* modules/unistdio/u16-vasnprintf:
* modules/unistdio/u32-u32-vasnprintf:
* modules/unistdio/u32-vasnprintf:
* modules/unistdio/u8-u8-vasnprintf:
* modules/unistdio/u8-vasnprintf, modules/unistdio/ulc-vasnprintf:
* modules/utimecmp, modules/vasnprintf, modules/wchar-tests:
Depend on assert-h, not verify.
assert-h: static_assert is a keyword in C23
* m4/assert_h.m4 (gl_ASSERT_H): Also test for static_assert
keyword a la C23, and define HAVE_C_STATIC_ASSERT if so.
If not, arrange for config.h to #define static_assert
by including <assert.h>, and then do "#undef assert"
so that the assert macro still needs an explicit include.
This should be safe even on very old hosts, as assert.h
has been re-includable for decades.
* tests/tests-assert.c: New test.
* modules/assert-h-tests (Files, Makefile.am): Add it.
2022-09-13 Bruno Haible <bruno@clisp.org>
Prefer talking about alignas than _Alignas.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Don't mention _Alignas in a
comment.
* m4/stdalign.m4 (gl_STDALIGN_H): Likewise.
2022-09-13 Paul Eggert <eggert@cs.ucla.edu>
stdalign-tests: port to C23
* tests/test-stdalign.c: Do not test __alignas_is_defined,
_Alignof, or _Alignas as they are obsolescent.
Do not use __alignas_is_defined in C23 or later (or C++11 or later),
as it’s removed in C23.
2022-09-12 Bruno Haible <bruno@clisp.org>
supersede: Avoid a failure when writing to /dev/null in Solaris zones.
* lib/supersede.c (open_supersede): Treat EACCES (seen on Solaris 11.3)
like EINVAL (seen on Illumos).
2022-09-11 Paul Eggert <eggert@cs.ucla.edu>
maint: avoid unportable ERE \}
* top/maint.mk (sc_copyright_check):
Avoid unportable use of \} in ERE.
verify: improve maint check
* top/maint.mk (sc_prohibit_verify_without_use):
Adjust re to match verify.h.
verify: port better to C23
* lib/verify.h (_GL_VERIFY, static_assert):
If C23, use static_assert keyword; no macro.
This should simplify diagnostics and debugging.
2022-09-10 Bruno Haible <bruno@clisp.org>
pipe-filter-gi: Fix test failure on native Windows.
* lib/pipe-filter-aux.h (write): Redefine on native Windows.
2022-09-10 Bruno Haible <bruno@clisp.org>
stdbool C++ tests: Fix compilation error with MSVC14 (regr. from today).
* tests/test-stdbool-c++.cc (s): Choose field names that are not type
names.
Reorganize C++ tests for stdbool and stdbool-c99.
* tests/test-stdbool-c++.cc: Don't include <stdbool.h> if TEST_STDBOOL_H
is not defined. Add a couple of simple tests, from test-stdbool.c.
* tests/test-stdbool-c99-c++.cc: New file.
* modules/stdbool-c99-c++-tests: New file, based on
modules/stdbool-c++-tests.
* modules/stdbool-c99-tests (Depends-on): Add stdbool-c99-c++-tests.
Remove stdbool-c++-tests.
* modules/stdbool-tests (Depends-on): Add stdbool-c++-tests.
2022-09-10 Bruno Haible <bruno@clisp.org>
stdbool C++ tests: Fix for C++20.
* tests/test-stdbool-c++2.cc: Don't include <cstdbool> in C++20 or
newer.
2022-09-10 Bruno Haible <bruno@clisp.org>
uchar: Work around error in C++ mode on AIX 7.2 with xlclang.
* lib/uchar.in.h (char16_t, char32_t): On AIX with xlclang++, define
these as macros.
* doc/posix-headers/uchar.texi: Document the AIX + xlclang++ bug.
2022-09-10 Paul Eggert <eggert@cs.ucla.edu>
Rely on new stdbool behavior
Prefer the C23 style to the C99 style,
since the stdbool module now supports C23.
* lib/acl-internal.h, lib/acl.h, lib/argmatch.c, lib/argmatch.h:
* lib/argp-help.c, lib/argv-iter.h, lib/asyncsafe-spin.c:
* lib/backup-internal.h, lib/backupfile.c, lib/base32.h:
* lib/base64.h, lib/basename-lgpl.c, lib/bitset/base.h:
* lib/c-ctype.h, lib/c-strcasestr.c, lib/canonicalize-lgpl.c:
* lib/canonicalize.c, lib/chdir-long.c, lib/chown.c:
* lib/classpath.h, lib/clean-temp-private.h:
* lib/clean-temp-simple.c, lib/clean-temp-simple.h:
* lib/clean-temp.c, lib/clean-temp.h, lib/cloexec.h:
* lib/close-stream.c, lib/closein.c, lib/closeout.c, lib/closeout.h:
* lib/csharpcomp.h, lib/csharpexec.h, lib/cycle-check.c:
* lib/cycle-check.h, lib/des.h, lib/dfa.h, lib/diffseq.h:
* lib/dirname.h, lib/exclude.c, lib/exclude.h, lib/execute.c:
* lib/execute.h, lib/execvpe.c, lib/fatal-signal.c, lib/fchdir.c:
* lib/file-set.h, lib/filevercmp.c, lib/findprog-in.c:
* lib/findprog.c, lib/findprog.h, lib/fma.c, lib/fnmatch.c:
* lib/fopen.c, lib/freadable.h, lib/freading.h, lib/freopen-safer.c:
* lib/fstrcmp.c, lib/fsusage.h, lib/fts.c, lib/fwritable.h:
* lib/fwriteerror.c, lib/fwriting.h, lib/gen-uni-tables.c:
* lib/getaddrinfo.c, lib/getcwd.c, lib/getloadavg.c:
* lib/getndelim2.c, lib/getpass.c, lib/getrandom.c:
* lib/git-merge-changelog.c, lib/gl_list.h, lib/gl_map.h:
* lib/gl_omap.h, lib/gl_oset.h, lib/gl_set.h, lib/glob.c:
* lib/glthread/cond.h, lib/hamt.h, lib/hard-locale.h:
* lib/hash-triple.h, lib/hash.h, lib/human.h, lib/i-ring.h:
* lib/isapipe.c, lib/javacomp.h, lib/javaexec.h, lib/javaversion.c:
* lib/lchown.c, lib/localeinfo.h, lib/localename.c:
* lib/long-options.h, lib/malloc/dynarray.h, lib/mbchar.h:
* lib/mbfile.h, lib/mbiter.h, lib/mbmemcasecoll.h, lib/mbscasestr.c:
* lib/mbsstr.c, lib/mbuiter.h, lib/mkdir-p.h, lib/modechange.h:
* lib/mountlist.h, lib/nanosleep.c, lib/nonblocking.h:
* lib/nstrftime.c, lib/openat.c, lib/openat.h, lib/os2-spawn.c:
* lib/parse-datetime.h, lib/pipe-filter-aux.c, lib/pipe-filter-gi.c:
* lib/pipe-filter-ii.c, lib/pipe-filter.h, lib/posixtm.h:
* lib/priv-set.c, lib/progreloc.c, lib/propername.c:
* lib/pthread-spin.c, lib/quotearg.c, lib/readtokens.c:
* lib/readtokens0.h, lib/readutmp.c, lib/regex-quote.h:
* lib/regex_internal.h, lib/relocwrapper.c, lib/rename.c:
* lib/renameatu.c, lib/rpmatch.c, lib/same.c, lib/same.h:
* lib/save-cwd.c, lib/savewd.c, lib/savewd.h, lib/spawn-pipe.h:
* lib/spawni.c, lib/stack.h, lib/stat.c, lib/stdckdint.in.h:
* lib/strcasestr.c, lib/strfmon_l.c, lib/striconveh.c:
* lib/striconveha.h, lib/string-buffer.h, lib/strptime.c:
* lib/strstr.c, lib/strtod.c, lib/supersede.h, lib/system-quote.c:
* lib/tempname.c, lib/term-style-control.c:
* lib/term-style-control.h, lib/textstyle.in.h, lib/time_rz.c:
* lib/tmpdir.c, lib/tmpdir.h, lib/tmpfile.c, lib/unicase.in.h:
* lib/unicase/caseprop.h, lib/unicase/invariant.h:
* lib/unicase/u16-casemap.c, lib/unicase/u16-ct-totitle.c:
* lib/unicase/u16-is-invariant.c, lib/unicase/u32-casemap.c:
* lib/unicase/u32-ct-totitle.c, lib/unicase/u32-is-invariant.c:
* lib/unicase/u8-casemap.c, lib/unicase/u8-ct-totitle.c:
* lib/unicase/u8-is-invariant.c, lib/unictype.in.h:
* lib/unigbrk.in.h, lib/unigbrk/u16-grapheme-breaks.c:
* lib/unigbrk/u32-grapheme-breaks.c:
* lib/unigbrk/u8-grapheme-breaks.c:
* lib/unigbrk/uc-grapheme-breaks.c, lib/uniname/uniname.c:
* lib/unistr.in.h, lib/unlinkdir.h, lib/userspec.h, lib/utime.c:
* lib/utimecmp.c, lib/utimens.c, lib/wait-process.h:
* lib/windows-cond.c, lib/windows-spawn.c, lib/windows-spawn.h:
* lib/windows-timedrwlock.c, lib/write-any-file.h, lib/xbinary-io.c:
* lib/xstrtod.h, lib/yesno.h:
* tests/nap.h, tests/qemu.h, tests/test-areadlink-with-size.c:
* tests/test-areadlink.c, tests/test-areadlinkat-with-size.c:
* tests/test-areadlinkat.c, tests/test-base32.c:
* tests/test-base64.c, tests/test-ceil2.c, tests/test-ceilf2.c:
* tests/test-chown.c, tests/test-dirname.c, tests/test-dup-safer.c:
* tests/test-dup3.c, tests/test-exclude.c:
* tests/test-execute-child.c, tests/test-execute-main.c:
* tests/test-execute-script.c, tests/test-explicit_bzero.c:
* tests/test-fchownat.c, tests/test-fcntl-safer.c:
* tests/test-fcntl.c, tests/test-fdutimensat.c:
* tests/test-filenamecat.c, tests/test-floor2.c:
* tests/test-floorf2.c, tests/test-fstatat.c, tests/test-fstrcmp.c:
* tests/test-futimens.c, tests/test-getlogin.h, tests/test-getopt.h:
* tests/test-hard-locale.c, tests/test-hash.c:
* tests/test-idpriv-drop.c, tests/test-idpriv-droptemp.c:
* tests/test-immutable.c, tests/test-intprops.c:
* tests/test-lchown.c, tests/test-link.c, tests/test-linkat.c:
* tests/test-lstat.c, tests/test-mbmemcasecmp.c:
* tests/test-mbmemcasecoll.c, tests/test-mkdir.c:
* tests/test-mkdirat.c, tests/test-mkfifo.c, tests/test-mkfifoat.c:
* tests/test-mknod.c, tests/test-nonblocking-pipe-child.c:
* tests/test-nonblocking-pipe-main.c:
* tests/test-nonblocking-socket-child.c:
* tests/test-nonblocking-socket-main.c, tests/test-open.c:
* tests/test-openat.c, tests/test-pipe.c, tests/test-pipe2.c:
* tests/test-poll.c, tests/test-posix_spawn-chdir.c:
* tests/test-posix_spawn-dup2-stdin.c:
* tests/test-posix_spawn-dup2-stdout.c:
* tests/test-posix_spawn-fchdir.c, tests/test-posix_spawn-open1.c:
* tests/test-posix_spawn-open2.c, tests/test-quotearg-simple.c:
* tests/test-quotearg.c, tests/test-readlink.c:
* tests/test-readlinkat.c, tests/test-readtokens.c:
* tests/test-rename.c, tests/test-renameat.c:
* tests/test-renameatu.c, tests/test-rmdir.c, tests/test-round2.c:
* tests/test-select.h, tests/test-spawn-pipe-child.c:
* tests/test-spawn-pipe-main.c, tests/test-spawn-pipe-script.c:
* tests/test-stack.c, tests/test-stat.c, tests/test-supersede.c:
* tests/test-symlink.c, tests/test-symlinkat.c:
* tests/test-system-quote-main.c:
* tests/test-term-style-control-hello.c:
* tests/test-term-style-control-yes.c, tests/test-timespec.c:
* tests/test-trunc2.c, tests/test-truncf2.c, tests/test-unlink.c:
* tests/test-unlinkat.c, tests/test-userspec.c, tests/test-utime.c:
* tests/test-utimens.c, tests/test-utimensat.c:
* tests/unictype/test-categ_byname.c:
* tests/unigbrk/test-uc-is-grapheme-break.c:
Don’t include stdbool.h.
* modules/acl, modules/xgetcwd:
Don’t depend on stdbool, as these modules don’t use bool.
* modules/argp, modules/bitset, modules/diffseq, modules/file-has-acl:
* modules/gen-uni-tables, modules/getrandom:
* modules/hash-triple-simple, modules/posix_spawn-internal:
* modules/strcasestr, modules/supersede, modules/system-quote:
* modules/uniconv/base, modules/uniname/uniname, modules/utime:
* modules/windows-timedrwlock:
Depend on stdbool, as these modules use bool.
stdbool: upgrade from C99 to C23
Change the stdbool module so that it now emulates C23.
The module now assumes C99. The old module (which assumes
C89 and emulates C99) is still available as stdbool-c99,
but is deprecated.
* tests/test-stdbool.c [TEST_C_BOOL]: Do not include stdbool.h.
* m4/c-bool.m4, modules/c-bool, modules/c-bool-tests:
* tests/test-c-bool.c: New files.
2022-09-10 Bruno Haible <bruno@clisp.org>
string: Fix compilation error in C++ mode on AIX 7.2 with xlclang.
* lib/string.in.h (mbslen): Enable the C++ alias warning only on glibc
systems.
2022-09-10 Bruno Haible <bruno@clisp.org>
math: Fix compilation error in C++ mode on AIX 7.2 with xlclang.
* lib/math.in.h (cbrtl, copysignl, exp2l, expm1l, fmal, ilogbl, log1pl,
log2l, logbl, remainderl, rintl, roundl, truncl): Enable the C++ alias
warning only on glibc systems.
2022-09-10 Bruno Haible <bruno@clisp.org>
doc: Mention the stable branches.
* doc/gnulib-readme.texi (High Quality): Add subsection
'Stable Branches'.
(Writing reliable code): Extracted from 'High Quality'. Mention also
-Wall and valgrind.
2022-09-09 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Optimize DuplicateHandle calls on native Windows.
* lib/windows-spawn.h (DELAYED_DUP2_OLDFD, DELAYED_DUP2_NEWFD): New
macros.
(struct IHANDLE): Add a linked_fd field.
* lib/spawni.c (SPAWN_INTERNAL_OPTIMIZE_DUPLICATEHANDLE): New macro.
(do_delayed_dup2, do_remaining_delayed_dup2): New functions.
(close_inheritable_handles): Don't close handles in DELAYED_DUP2_NEWFD
entries.
(do_close): Add a third parameter. Optimize delayed dup2 calls.
(do_open): Use do_close.
(do_dup2): Likewise. Prepare for optimizing the DuplicateHandle call.
(__spawni): Do the remaining delayed dup2 invocations after the loop
over the actions.
posix_spawn-internal: Refactor.
* lib/windows-spawn.h (struct IHANDLE): New type.
(struct inheritable_handles): Combine handles and flags into a single
array.
* lib/windows-spawn.c (init_inheritable_handles, compose_handles_block,
spawnpvech): Update.
* lib/spawni.c (grow_inheritable_handles, shrink_inheritable_handles,
do_open, do_dup2, do_close): Update.
posix_spawn-internal: Optimize DuplicateHandle calls on native Windows.
* lib/spawni.c (open_handle): Return an inheritable HANDLE.
(do_open): Don't call DuplicateHandle. Remove curr_process parameter.
(__spawni): Update.
posix_spawn-internal: Optimize DuplicateHandle calls on native Windows.
* lib/windows-spawn.h (KEEP_OPEN_IN_PARENT): New macro.
* lib/windows-spawn.c (init_inheritable_handles): When a handle is
already inheritable, don't bother duplicating it; instead, just mark it
as KEEP_OPEN_IN_PARENT.
* lib/spawni.c (shrink_inheritable_handles, close_inheritable_handles,
do_open, do_dup2, do_close): Don't close handles that are marked as
KEEP_OPEN_IN_PARENT.
2022-09-09 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Don't lose flags while duplicating an fd.
* lib/spawni.c (do_dup2): Fix the flags of the new fd.
2022-09-09 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix pipe-filter-* test hangs (regression 2020-12-24).
* lib/windows-spawn.h (struct inheritable_handles): Widen the per-fd
flags from 8 bits to 16 bits.
(KEEP_OPEN_IN_CHILD): New macro.
(init_inheritable_handles): Change description of what it does when
duplicate == true.
* lib/windows-spawn.c (init_inheritable_handles): If duplicate == true,
add all fds to the array, regardless whether they are scheduled to be
preserved in the child process.
(compose_handles_block): Update.
(spawnpvech): Update.
* lib/spawni.c (grow_inheritable_handles): Update.
(shrink_inheritable_handles): Also close the handles not marked with
KEEP_OPEN_IN_CHILD.
(do_open, do_dup2): Mark the new fd with KEEP_OPEN_IN_CHILD.
2022-09-09 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix possible hangs in programs that spawn several children.
* lib/spawn-pipe.c (create_pipe) [Unix]: Create the ifd[] and ofd[] file
descriptors with the close-on-exec flag set.
2022-09-09 Bruno Haible <bruno@clisp.org>
pipe-filter-gi tests: Fix long-standing failure on native Windows.
* tests/test-pipe-filter-gi2-main.c: Include binary-io.h.
(main): Avoid NL to CRLF conversion on standard output.
* tests/test-pipe-filter-gi2-child.c: Include <unistd.h>, binary-io.h.
(main): Avoid NL to CRLF conversion on standard output.
2022-09-09 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addclose tests: Fix mistake from 2022-09-07.
* modules/posix_spawn_file_actions_addclose-tests (Files): Add
m4/musl.m4.
2022-09-08 Paul Eggert <eggert@cs.ucla.edu>
stdbool-tests: match stdbool
* tests/test-stdbool.c: Omit test for
__bool_true_false_are_defined since AC_CHECK_HEADER_STDBOOL no
longer checks for this obsolescent macro.
mktime: back in sync with GNUlib
* config/srclist.txt: glibc has synced mktime from Gnulib.
2022-09-07 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addclose tests: Avoid test failure on musl.
Reported by Valery Ushakov <uwe@stderr.spb.ru> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-09/msg00041.html>.
* modules/posix_spawn_file_actions_addclose-tests (configure.ac): Invoke
gl_MUSL_LIBC.
* tests/test-posix_spawn_file_actions_addclose.c (main): Skip one of the
tests on musl libc.
2022-09-06 Simon Josefsson <simon@josefsson.org>
gnumakefile: Improve tarball reproducibility.
* top/GNUmakefile (TAR_OPTIONS): Add --sort=name. Suggested by
Tzvetelin Katchov <katchov@gnu.org>.
* DEPENDENCIES: Mention tar 1.28 dependency.
2022-09-05 Bruno Haible <bruno@clisp.org>
pthread-h: Fix compilation error on mingw with --enable-threads=windows.
* lib/pthread.in.h: In C++ mode, if mingw's <pthread.h> has not been
used, import many pthread_* symbols from the GNULIB_NAMESPACE into the
global namespace.
2022-09-04 Bruno Haible <bruno@clisp.org>
Fix various test link errors on MSVC.
* modules/crypto/gc-arcfour-tests (Makefile.am): Link test-gc-arcfour
with $(LIB_GETRANDOM).
* modules/crypto/gc-arctwo-tests (Makefile.am): Link test-gc-arctwo with
$(LIB_GETRANDOM).
* modules/crypto/gc-des-tests (Makefile.am): Link test-gc-des with
$(LIB_GETRANDOM).
* modules/crypto/gc-hmac-md5-tests (Makefile.am): Link test-gc-hmac-md5
with $(LIB_GETRANDOM).
* modules/crypto/gc-hmac-sha1-tests (Makefile.am): Link
test-gc-hmac-sha1 with $(LIB_GETRANDOM).
* modules/crypto/gc-hmac-sha256-tests (Makefile.am): Link
test-gc-hmac-sha256 with $(LIB_GETRANDOM).
* modules/crypto/gc-hmac-sha512-tests (Makefile.am): Link
test-gc-hmac-sha512 with $(LIB_GETRANDOM).
* modules/crypto/gc-md2-tests (Makefile.am): Link test-gc-md2 with
$(LIB_GETRANDOM).
* modules/crypto/gc-md4-tests (Makefile.am): Link test-gc-md4 with
$(LIB_GETRANDOM).
* modules/crypto/gc-md5-tests (Makefile.am): Link test-gc-md5 with
$(LIB_GETRANDOM).
* modules/crypto/gc-pbkdf2-tests (Makefile.am): Link test-gc-pbkdf2 with
$(LIB_GETRANDOM).
* modules/crypto/gc-pbkdf2-sha1-tests (Makefile.am): Link
test-gc-pbkdf2-sha1 with $(LIB_GETRANDOM).
* modules/crypto/gc-rijndael-tests (Makefile.am): Link test-gc-rijndael
with $(LIB_GETRANDOM).
* modules/crypto/gc-sha1-tests (Makefile.am): Link test-gc-sha1 with
$(LIB_GETRANDOM).
* modules/crypto/gc-sha256-tests (Makefile.am): Link test-gc-sha256 with
$(LIB_GETRANDOM).
* modules/crypto/gc-sha512-tests (Makefile.am): Link test-gc-sha512 with
$(LIB_GETRANDOM).
* modules/crypto/gc-sm3-tests (Makefile.am): Link test-gc-sm3 with
$(LIB_GETRANDOM).
* modules/sys_stat-c++-tests (Makefile.am): Link test-sys_stat-c++ with
$(LIB_GETRANDOM).
* modules/unistd-c++-tests (Makefile.am): Link test-unistd-c++ with
$(LIB_GETRANDOM).
2022-09-04 Bruno Haible <bruno@clisp.org>
count-leading-zeros: Fix a link error on 32-bit MSVC and a test failure.
* lib/count-leading-zeros.h: Correct syntax for #pragma intrinsic.
(COUNT_LEADING_ZEROS): Fix the return value.
(count_leading_zeros_ll): Use two _BitScanReverse invocations instead
of a _BitScanReverse64 invocation.
2022-09-04 Bruno Haible <bruno@clisp.org>
count-trailing-zeros: Fix a link error on 32-bit MSVC.
* lib/count-trailing-zeros.h: Correct syntax for #pragma intrinsic.
(count_trailing_zeros_ll): Use two _BitScanForward invocations instead
of a _BitScanForward64 invocation.
2022-09-04 Bruno Haible <bruno@clisp.org>
unictype/category-none tests: Fix a link error on MSVC.
* tests/unictype/test-categ_none.c (main): Disable the test on MSVC.
2022-09-04 Bruno Haible <bruno@clisp.org>
oset-c++: Fix compilation error with MSVC 14.
* lib/gl_oset.hh: With MSVC, avoid 'friend'.
2022-09-04 Bruno Haible <bruno@clisp.org>
glob tests: Fix link error on mingw.
* modules/glob-tests (Makefile.am): Link test-glob with $(LIBINTL).
2022-09-04 Bruno Haible <bruno@clisp.org>
timespec_get: Fix compilation error with MSVC 14.
* m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): New macro.
(gl_GETTIME): Use it instead of AC_CHECK_FUNCS_ONCE.
* m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET): Likewise.
2022-09-04 Bruno Haible <bruno@clisp.org>
stdbool: Fix compilation error in C++ mode with MSVC 14.
* lib/stdbool.in.h (_Bool, bool, false, true): In C++ mode with MSVC 14,
don't define these as macros.
2022-09-04 Bruno Haible <bruno@clisp.org>
fts: Fix compilation error with MSVC 14.
* lib/fts.c (S_IFBLK): Add fallback definition.
2022-09-04 Bruno Haible <bruno@clisp.org>
lstat: Fix compilation error in C++ mode on mingw.
* lib/sys_stat.h (lstat): Move declaration after the declaration of
'stat'.
2022-09-04 Bruno Haible <bruno@clisp.org>
pselect: Fix compilation error in C++ mode on mingw.
* lib/sys_select.in.h (pselect): Enable the C++ alias warning only on
glibc systems.
2022-09-04 Bruno Haible <bruno@clisp.org>
nanosleep: Work around bug on newer 32-bit mingw.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Test for 32-bit mingw bug.
* tests/test-nanosleep.c (main): Add another test.
* doc/posix-functions/nanosleep.texi: Mention the mingw bug.
2022-09-03 Bruno Haible <bruno@clisp.org>
fmal: Work around glibc 2.17 bug on x86_64.
* m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Test against bug seen on glibc 2.17
x86_64.
* doc/posix-functions/fmal.texi: Update info.
2022-09-03 Bruno Haible <bruno@clisp.org>
Fix a compilation error in C++ mode on Solaris 11.4.
* lib/uchar.in.h (c32rtomb): Enable the C++ alias warning only on
glibc ≥ 2.16 systems. Fix a GNULIB_POSIXCHECK mistake.
(mbrtoc32): Enable the C++ alias warning only on glibc ≥ 2.16 systems.
2022-09-03 Bruno Haible <bruno@clisp.org>
Fix compilation errors of C++ tests on Solaris 10 with Sun C++.
* modules/string-c++-tests (Makefile.am): Link test-string-c++ with
$(LIBUNISTRING).
* modules/wchar-c++-tests (Makefile.am): Link test-wchar-c++ with
$(LIBUNISTRING).
2022-09-03 Bruno Haible <bruno@clisp.org>
Fix a compilation error in C++ mode on FreeBSD 13.1.
* lib/signal.in.h: Don't include <pthread.h> on FreeBSD ≥ 8.0.
* lib/sys_select.in.h: Don't include <sys/time.h> on FreeBSD.
2022-09-03 Bruno Haible <bruno@clisp.org>
stdnoreturn: Document relation to C++.
* doc/posix-headers/stdnoreturn.texi: Document FreeBSD problem.
2022-09-03 Bruno Haible <bruno@clisp.org>
sysexits: Add C++ tests.
* tests/test-sysexits-c++.cc: New file.
* modules/sysexits-c++-tests: New file.
* modules/sysexits-tests (Depends-on): Add sysexits-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
sys_utsname: Add C++ tests.
* tests/test-sys_utsname-c++.cc: New file.
* modules/sys_utsname-c++-tests: New file.
* modules/sys_utsname-tests (Depends-on): Add sys_utsname-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
sys_uio: Add C++ tests.
* tests/test-sys_uio-c++.cc: New file.
* modules/sys_uio-c++-tests: New file.
* modules/sys_uio-tests (Depends-on): Add sys_uio-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
sys_times: Add C++ tests.
* tests/test-sys_times-c++.cc: New file.
* modules/sys_times-c++-tests: New file.
* modules/sys_times-tests (Depends-on): Add sys_times-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
sys_file: Add C++ tests.
* tests/test-sys_file-c++.cc: New file.
* modules/sys_file-c++-tests: New file.
* modules/sys_file-tests (Depends-on): Add sys_file-c++-tests.
sys_file: Document this module.
* doc/glibc-headers/sys_file.texi: New file.
* doc/gnulib.texi (Glibc Header File Substitutes): Include it.
2022-09-03 Bruno Haible <bruno@clisp.org>
stdckdint: Add C++ tests.
* tests/test-stdckdint-c++.cc: New file.
* modules/stdckdint-c++-tests: New file.
* modules/stdckdint-tests (Depends-on): Add stdckdint-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
stdalign: Add C++ tests.
* tests/test-stdalign-c++.cc: New file.
* modules/stdalign-c++-tests: New file.
* modules/stdalign-tests (Depends-on): Add stdalign-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
sched: Add C++ tests.
* tests/test-sched-c++.cc: New file.
* modules/sched-c++-tests: New file.
* modules/sched-tests (Depends-on): Add sched-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
netinet_in: Add C++ tests.
* tests/test-netinet_in-c++.cc: New file.
* modules/netinet_in-c++-tests: New file.
* modules/netinet_in-tests (Depends-on): Add netinet_in-c++-tests.
2022-09-03 Bruno Haible <bruno@clisp.org>
net_if: Add C++ tests.
* tests/test-net_if-c++.cc: New file.
* modules/net_if-c++-tests: New file.
* modules/net_if-tests (Depends-on): Add net_if-c++-tests.
* doc/posix-headers/net_if.texi: Fix documentation.
2022-09-03 Bruno Haible <bruno@clisp.org>
termcap: Fix link error on AIX 7.
* m4/termcap.m4 (gl_TERMCAP_BODY): Search also for libxcurses and for
libcurses, like gl_TERMINFO_BODY does.
* m4/terminfo.m4 (gl_TERMINFO_BODY): Update platform list in comment.
2022-09-02 Bruno Haible <bruno@clisp.org>
getrandom: Fix compilation error in C++ mode on FreeBSD 12.
* lib/sys_random.in.h (getrandom): Enable the C++ alias warning only on
glibc ≥ 2.25 systems.
2022-09-02 Bruno Haible <bruno@clisp.org>
math C++ tests: Fix compilation error with clang on FreeBSD 13.
* lib/math.in.h (isnan): For clang >= 11 on FreeBSD, declare 'isnan',
not 'rpl_isnan'.
2022-09-02 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fix for Hurd.
* lib/strerror_r.c (strerror_r): Interpret return value of
__xpg_strerror_r correctly. Remove assumption about how strerror_r
behaves.
2022-09-02 Bruno Haible <bruno@clisp.org>
ptsname tests, ptsname_r tests: Fix test failures on Hurd.
* tests/test-ptsname.c (main): On Hurd, test only the BSD ptys that
actually exist on Hurd.
* tests/test-ptsname_r.c (main): Likewise.
2022-09-02 Bruno Haible <bruno@clisp.org>
strtol, strtoul: Fix compilation error in C++ mode on Solaris 11.
* lib/stdlib.in.h (strtol, strtoul): Enable the C++ alias warning only
on glibc systems.
2022-09-02 Bruno Haible <bruno@clisp.org>
aligned_alloc: Fix compilation error in C++ mode on Solaris 11.
* lib/stdlib.in.h (aligned_alloc): Enable the C++ alias warning only on
glibc systems.
2022-09-02 Bruno Haible <bruno@clisp.org>
getdomainname: Fix compilation error in C++ mode on Solaris 11.
* lib/unistd.in.h (getdomainname): Enable the C++ alias warning only on
glibc systems.
2022-09-02 Bruno Haible <bruno@clisp.org>
terminfo: Don't disturb the termcap module.
* m4/terminfo.m4 (gl_TERMINFO_BODY): Save and restore the variables
determined by the gl_TERMCAP_BODY macro.
2022-08-30 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: fix stdckdint typo
* lib/fnmatch_loop.c (NEW_PATTERN): Fix typo in previous patch.
Problem and fix reported by Simon Josefsson in:
https://lists.gnu.org/r/bug-gnulib/2022-08/msg00104.html
2022-08-25 Paul Eggert <eggert@cs.ucla.edu>
tempname: simplify by omitting _LIBC code
* lib/tempname.c [_LIBC]: Simplify.
Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-08/msg00077.html
I plan to propose a corresponding patch to glibc.
2022-08-22 Paul Eggert <eggert@cs.ucla.edu>
tempname: don't lose entropy in seed
* lib/tempname.c (random_bits): Don't lose entropy in S
in the rare case where where the template has more than 10 Xs.
From a suggestion by Bruno Haible in:
https://bugs.gnu.org/57129#149
tempname: fix multithreading, ASLR leak etc.
Fix problems with tempname and multithreading, entropy loss,
and missing clock data (this last on non-GNU platforms).
See analysis by Bruno Haible in:
https://bugs.gnu.org/57129#149
While looking into this, I noticed that tempname can leak
info derived from ASLR into publicly-visible file names,
which is a no-no. Fix that too.
* lib/tempname.c: Don't include stdalign.h.
(HAS_CLOCK_ENTROPY): Remove.
(mix_random_values): New function.
(random_bits): Use it. Args are now new value address and
old value, and this function now returns a success indicator.
Omit old USE_GETRANDOM argument: always try getrandom now, as
there is no good reason not to now that GRND_NONBLOCK is used.
Caller changed. Use CLOCK_REALTIME for for ersatz entropy,
as CLOCK_MONOTONIC doesn't work on some platforms.
Also, mix in ersatz entropy from tv_sec and from clock ().
(try_tempname_len): Do not mix in ASLR-based entropy, as
the result is published to the world and ASLR should be private.
Do not try to use a static var as that has issues if multithreaded.
Instead, simply generate new random bits.
Worry about bias only with high-quality random bits.
* modules/tempname (Depends-on): Do not depend on stdalign.
tempname: merge 64-bit time_t fix from glibc
This merges glibc commit 52a5fe70a2c77935afe807fb6e904e512ddd894e
"Use 64 bit time_t stat internally".
* lib/tempname.c (struct_stat64) [_LIBC]: Use struct __stat64_t64.
(__lstat64_time64) [!_LIBC]: Rename from __lstat64.
All uses changed.
(direxists): Use __stat64_time64 instead of __stat64.
2022-08-16 Bruno Haible <bruno@clisp.org>
tempname: Add more tests.
Based on scenario described by Eli Zaretskii in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-08/msg00043.html>.
* tests/test-tempname.c (main): Add another test.
* modules/tempname-tests (Status): Mark the test as unportable.
2022-08-16 Paul Eggert <eggert@cs.ucla.edu>
tempname: generate better names for MinGW Emacs
On MinGW, GNU Emacs disables clock_gettime, which reliably breaks
some of gen_tempname’s optimistic callers. Work around the
problem by making the generated names less predictable. We don’t
need cryptographic randomness here, just enough unpredictability
to keep Emacs happy most of the time.
* lib/tempname.c (HAS_CLOCK_ENTROPY): New macro.
(random_bits): Use it.
(try_tempname_len): On systems lacking clock entropy, maintain
state so that gen_filename generates less-predictable names on
successive successful calls.
2022-08-16 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Check for incorrect DISTCHECK_CONFIGURE_FLAGS
usage.
* top/maint.mk (sc_makefile_DISTCHECK_CONFIGURE_FLAGS): Add.
2022-08-16 Bruno Haible <bruno@clisp.org>
tempname: Add tests.
* tests/test-tempname.c: New file.
* modules/tempname-tests: New file.
2022-08-16 Simon Josefsson <simon@josefsson.org>
pmccabe2html: Doc fix.
* build-aux/pmccabe2html: Don't use reserved _SOURCES namespace.
Use AM_V_GEN. Use LC_ALL=C.
2022-08-15 Bruno Haible <bruno@clisp.org>
stdbool: Drop old BeOS support that gets in the way of ISO C 23 support.
* lib/stdbool.in.h: Don't include <OS.h>.
2022-08-15 Bruno Haible <bruno@clisp.org>
tempname: Fix a comment.
* lib/tempname.c (try_tempname_len): Use of entropy makes the function
more, not less, secure.
2022-08-15 Paul Eggert <eggert@cs.ucla.edu>
tempname: remove incorrect comment
* lib/tempname.c, lib/tempname.h: Remove incorrect comment,
as the names are not necessarily hard to predict (Bug#57129).
2022-08-14 Simon Josefsson <simon@josefsson.org>
bootstrap.conf: Use proper shell marker for Emacs.
* build-aux/bootstrap.conf: Add it.
2022-08-13 Paul Eggert <eggert@cs.ucla.edu>
stdbool: port to C23
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Copy from bleeding-edge
Autoconf. Define only if Autoconf 2.71 and earlier.
* tests/test-stdbool.c (bool, false, true)
(__bool_true_false_are_defined): Do not require these to be
defined. C23 still requires __bool_true_false_are_defined but
marks it as obsolescent, and it’s no longer worth testing.
(WORKING_BOOL): New macro, which also tests __STDC_VERSION__.
Use it in tests for working bool.
Test for bool instead of for _Bool, which C23 says is obsolescent.
2022-08-13 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix some code generation details.
* pygnulib/GLEmiter.py: Don't produce Windows CR-LFs on Windows.
(GLEmiter.po_Makevars): Emit a definition of top_builddir, not
top_subdir.
(GLEmiter.po_POTFILES_in): Fix result when sourcebase is 'tests' or
something like that.
(GLEmiter.initmacro_start): Add two more newlines (mistake from
2021-04-11).
gnulib-tool.py: Reduce code duplication.
* pygnulib/constants.py (relinverse): New function.
* pygnulib/GLEmiter.py (GLEmiter.po_Makevars,
GLEmiter.tests_Makefile_am): Use it.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
2022-08-12 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
hamt: fix technically undefined behavior
Bug reported by Bruno Haible in
<https://lists.gnu.org/r/bug-gnulib/2022-04/msg00023.html>.
* lib/hamt.c (entry_insert): Remove technically undefined
behavior when shifting an integer of N bits by N or more bits.
2022-08-10 Paul Eggert <eggert@cs.ucla.edu>
stdckdint: fix dependency
* modules/stdckdint (Depends-on): Add stdbool.
Reported by Bruno Haible.
maint: parenthesize macro definiens
* lib/intprops.h (INT_ADD_OK, INT_SUBTRACT_OK, INT_MULTIPLY_OK):
* lib/pipe-filter-ii.c (GetLastError):
* lib/thread-optim.h (gl_multithreaded): Parenthesize
function-like macro definiens beginning with a unary operator;
needed for weird invocations like ‘m (...)[p]’.
2022-08-09 Paul Eggert <eggert@cs.ucla.edu>
stdckdint: prefer to intprops when easy
stdckdint.h is part of draft C23 and therefore is more likely
to be familiar to programmers in the future, so prefer it to
intprops.h in files that don’t need non-_WRAPV intprops.h macros.
* lib/alignalloc.c, lib/backupfile.c, lib/fnmatch.c, lib/fnmatch_loop.c:
* lib/group-member.c, lib/malloca.c, lib/posixtm.c, lib/reallocarray.c:
* lib/xmalloc.c:
For files that can use stdckdint.h just as easily as intprops.h,
include the former instead of the latter, and use the former’s
ckd_* macros instead of the latter’s *_WRAPV macros.
* modules/alignalloc, modules/backup-rename, modules/backupfile:
* modules/fnmatch, modules/group-member, modules/malloca:
* modules/posixtm, modules/reallocarray:
* modules/relocatable-prog-wrapper, modules/xalloc:
Depend on stdckdint instead of intprops.
stdckdint: new module
This supports draft C23 <stdckdint.h>.
* doc/posix-headers/stdckdint.texi:
* lib/stdckdint.in.h, modules/stdckdint:
* modules/stdckdint-tests, tests/test-stdckdint.c:
New files.
* MODULES.html.sh, doc/gnulib.texi: Update for new module.
* lib/intprops-internal.h: Include <stdckdint.h> if C23 and
its macros would help and our substitute has not already
started to be included.
(_GL_INT_ADD_WRAPV, _GL_INT_SUBTRACT_WRAPV)
(_GL_INT_MULTIPLY_WRAPV): Use ckd_add, ckd_sub, ckd_mul
if they are defined and would help.
* lib/intprops-internal.h, lib/intprops.h: Improve comments.
The C23 restrictions on stdckdint macros already mostly applied to
intprops.h, so these are clarifications, not further restrictions.
* tests/test-intprops.c: If TEST_STDCKDINT is defined,
include <stdckdint.h> instead of "intprops.h", and test
it instead.
(VERIFY) [TEST_STDCKDINT]: Ignore the arg in this case.
(main) [TEST_STDCKDINT]: Skip tests irrelevant to stdckdint.h.
intprops: refactor intprops.h into two
* lib/intprops.h: Include new file intprops-internal.h.
(_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT, _GL_INT_MINIMUM)
(_GL_INT_MAXIMUM, _GL_SIGNED_INT_MAXIMUM, LLONG_MAX, LLONG_MIN)
(_GL_HAVE___TYPEOF__, _GL_SIGNED_TYPE_OR_EXPR)
(_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_MUL_OVERFLOW)
(_GL_HAS_BUILTIN_OVERFLOW_P, _GL__GENERIC_BOGUS)
(_GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH, _GL_INT_OP_CALC)
(_GL_INT_OP_WRAPV_VIA_UNSIGNED, _GL_INT_ADD_RANGE_OVERFLOW)
(_GL_INT_SUBTRACT_RANGE_OVERFLOW)
(_GL_INT_MULTIPLY_RANGE_OVERFLOW):
Move to intprops-internal.h.
(TYPE_SIGNED, EXPR_SIGNED, TYPE_WIDTH, INT_NEGATE_RANGE_OVERFLOW)
(INT_NEGATE_OVERFLOW, INT_ADD_WRAPV, INT_SUBTRACT_WRAPV)
(INT_MULTIPLY_WRAPV): Rename to _GL_ prefix, move to
intprops-internal.h, and define here in terms of the _GL_ name.
* lib/intprops-internal.h: New file, containing the above.
* modules/intprops (Files): Add lib/intprops-internal.h.
intprops: refactor _GL_HAS_BUILTIN_OVERFLOW_P
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P)
[_GL_HAS_BUILTIN_OVERFLOW_P]: Use __builtin_sub_overflow_p
directly rather than indirectly via INT_SUBTRACT_OVERFLOW.
This simplifies future changes, and doesn’t change the generated code.
verify: port ‘assume’ to C23 non-GCC
* lib/verify.h (assume): Use C23's unreachable if available
and if GCC and/or MSC primitives are not available.
2022-08-09 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Finish implementing option --conditional-dependencies.
* gnulib-tool.py (main) Accept options --conditional-dependencies,
--no-conditional-dependencies.
* pygnulib/GLModuleSystem.py (GLModuleTable.addConditional): Use
str(module), not module, as key. Fix logic bug.
(GLModuleTable.getCondition): Simplify.
(GLModuleTable.transitive_closure): Show a warning when there are
duplicate dependencies. Fix logic bug.
(GLModuleTable.transitive_closure_separately): Simplify.
(GLModuleTable.add_dummy): Ignore tests modules. Cope with multiple
lib_SOURCES augmentation lines. Cope with comments at the end of a
lib_SOURCES augmentation line. Add the dummy module at the end of the
modules list.
* pygnulib/GLTestDir.py (GLTestDir.execute): Remove the code that forces
the dummy module to the end of the list.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Add code to
terminate the shell functions. Add code for the dependencies from the
unconditional to the conditional modules. Don't emit AM_CONDITIONAL for
unconditional modules.
gnulib-tool.py: Don't do license replacements in the autoconf snippets.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Remove fileassistant
argument. Don't invoke the 'aux' transformer here. Don't produce Windows
CR-LFs on Windows.
(GLEmiter.autoconfSnippets): Remove fileassistant argument.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Update all callers.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
gnulib-tool.py: Fix some code generation details.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): When removing a
lib_LDFLAGS line, remove also the newline. Fix regex that matches
lib_SOMETHING. Add a newline after each '## begin gnulib module' line.
Don't emit 'endif' lines without corresponding 'if'. When emitting a
'+=' augmentation, make sure it does not get emitted a second time.
Don't emit a blank line when there is no AM_CPPFLAGS augmentation.
Update after getLink() changed. In the value of DEFAULT_TEXT_DOMAIN,
backslash-escape the double-quotes. Don't produce Windows CR-LFs on
Windows. Simplify.
(GLEmiter.tests_Makefile_am): When removing a lib_LDFLAGS line, remove
also the newline. Fix regex that matches lib_SOMETHING. Don't remove a
blank line before EXTRA_DIST. Add a newline after each
'## begin gnulib module' line. Set uses_subdirs also when there is a .c
file in a subdir of tests/. When emitting a '+=' augmentation, make sure
it does not get emitted a second time. Don't produce Windows CR-LFs on
Windows. Simplify.
* pygnulib/GLImport.py (GLImport.execute): Update after getLink()
changed.
gnulib-tool.py: Fixes for conditional dependencies.
* pygnulib/GLModuleSystem.py (GLModule.shell_id_chars): New constant.
(GLModule.getShellFunc): Don't use md5 just because of an '_' character.
(GLModule.getShellVar): Likewise.
(GLModule.getConditionalName): Include a newline in the md5 input.
* pygnulib/constants.py (ALPHANUMERIC): Remove constant.
gnulib-tool.py: Refactor.
* pygnulib/GLModuleSystem.py (GLModule.getLicense): Separate the warning
logic from the result logic.
2022-08-09 Paul Eggert <eggert@cs.ucla.edu>
largefile, year2038: simplify if > Autoconf 2.71
* m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE)
(_AC_SYS_LARGEFILE_MACRO_VALUE):
* m4/year2038.m4 (gl_YEAR2038_EARLY, gl_YEAR2038, gl_YEAR2038_BODY):
Adjust to Autoconf versions after 2.71, which should contain the Gnulib
patches in this area and so should not need to be overridden.
2022-08-07 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Finish implementing option --extract-test-module.
* gnulib-tool.py (main): Accept option --extract-tests-module.
gnulib-tool.py: Fix handling of nonexistent module names in --extract-*.
* gnulib-tool.py (main): To test whether a module exists, just call
GLModuleSystem.find and test its return value.
gnulib-tool.py: Fix --extract-dependencies result.
* pygnulib/GLModuleSystem.py (GLModule.getDependencies): Return a
snippet, not a list. Implement dependency of ${module}-tests on
${module}.
(GLModule.getDependenciesWithoutConditions,
GLModule.getDependenciesWithConditions): New methods.
(GLModuleTable.transitive_closure): Call getDependenciesWithConditions.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Call
getDependenciesWithoutConditions.
* gnulib-tool.py (main) [--extract-dependencies]: Update.
gnulib-tool.py: Rename a method.
* pygnulib/GLModuleSystem.py (GLModule.getAutoconfEarlySnippet): Renamed
from GLModule.getAutoconfSnippet_Early.
* pygnulib/GLImport.py: Update.
* pygnulib/GLTestDir.py: Likewise.
gnulib-tool.py: Fix section extraction from module descriptions.
The code with self.content.split(section)[-1]
was broken because it recognizes an indented section label.
Similar code with ('\n' + self.content).split('\n' + section)[-1]
would still be broken because it recognizes an indented section label
in the first line of the file.
The code with section_label_regex
was broken because sometimes it returns the second-to-last section with
the given label, not the last one.
Also, whitespace after the colon was not ignored.
* pygnulib/GLModuleSystem.py (GLModule.__init__): Dissect the module
description's contents immediately, once only, in a reliable way.
(GLModule.getDescription, GLModule.getComment): Simplify.
(GLModule.getStatus): Simplify. Return a string.
(GLModule.getStatuses): New function. Return a list.
(GLModule.getNotice, GLModule.getApplicability, GLModule.getFiles,
GLModule.getDependencies, GLModules.getAutoconfSnippet_Early,
GLModules.getAutoconfSnippet, GLModule.getAutomakeSnippet_Conditional,
GLModule.getInclude, GLModule.getLink, GLModule.getLicense_Raw):
Simplify.
(GLModule.getLicense): Remove whitespace after calling getLicense_Raw.
(GLModule.getMaintainer): Simplify.
(GLModuleTable.transitive_closure): Call getStatuses() instead of
getStatus().
* pygnulib/GLEmiter.py: Likewise.
* gnulib-tool.py (main): For --extract-description, --extract-comment,
--extract-status, --extract-notice, --extract-autoconf-snippet,
--extract-automake-snippet, --extract-include-directive,
--extract-link-directive, --extract-maintainer, don't add an extra
newline after the snippet.
gnulib-tool.py: Improve field naming.
* pygnulib/GLModuleSystem.py (GLModule): Rename field 'module' to
'path'. Fix a typo in a TypeError message.
gnulib-tool.py: Simplify.
* pygnulib/GLModuleSystem.py (GLModule): Convert Windows newlines right
after reading the module description, not in every accessor.
gnulib-tool.py: Reduce code duplication.
* pygnulib/GLModuleSystem.py (GLModule): Declare two regexes are class
variables.
gnulib-tool.py: Implement option --find.
* pygnulib/GLModuleSystem.py (GLModuleSystem.file_is_module): New
method.
(GLModuleSystem.list): Filter the listing in memory; don't use a 'sed'
subprocess.
* gnulib-tool.py (main): Handle mode 'find'.
gnulib-tool: Fix option --find in combination with option --local-dir.
* gnulib-tool (func_prefixed_modules_in_dir): New function.
(find): Use it, and filter the directory names away after the 'grep'
pass.
gnulib-tool.py: Fix some regexes.
* pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Use an equivalent
regex as gnulib-tool.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
gnulib-tool.py: Fix some regex uses.
* pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Match
the regex against all lines of the snippet, not only the first line.
* pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Likewise.
gnulib-tool.py: Make regex uses more straightforward.
* pygnulib/constants.py: Don't use the "minimal matching" *? construct
when it makes no difference (because we're matching a single line only
and flag re.M is not specified).
* pygnulib/GLModuleSystem.py: Likewise.
gnulib-tool.py: Make regex uses more straightforward.
* pygnulib/GLModuleSystem.py: Don't use flag re.S on regular expressions
that are meant to match a single line only, and remove the use of the
"minimal matching" *? construct whose only purpose was to neutralize the
re.S flag.
* pygnulib/GLEmiter.py: Likewise.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLTestDir.py: Likewise.
gnulib-tool.py: Make regex uses more straightforward.
* pygnulib/GLEmiter.py: Don't use flag re.S on regular expressions on
regular expressions with no '.'.
* pygnulib/GLImport.py: Likewise.
2022-08-06 Bruno Haible <bruno@clisp.org>
gnulib-tool: In the VC files messages, omit the destination directory.
This makes these messages consistent with the other "Copying ..." and
"Creating ..." messages.
* gnulib-tool (func_import): Omit $destdir/ from the "Updating"/
"Creating" messages regarding .gitignore files.
* pygnulib/GLImport.py (GLImport._update_ignorelist_): Likewise.
gnulib-tool.py: Fix output in --dry-run mode.
* pygnulib/GLImport.py (GLImport._update_ignorelist_): In dry-run mode,
say "Update", not "Updating".
gnulib-tool.py: Finish implementing options --vc-files, --no-vc-files.
* gnulib-tool.py (main): Accept options --vc-files, --no-vc-files.
* pygnulib/GLImport.py (GLImport.__init__): Correct parsing of
gl_VC_FILES directive.
(GLImport.gnulib_cache): Don't treat the value False like None.
(GLImport.execute): Skip the .gitignore file manipulations if vc_files
is False.
gnulib-tool.py: Finish implementing option --witness-c-macro.
* gnulib-tool.py (main): Accept option --witness-c-macro.
* pygnulib/GLConfig.py (GLConfig.__init__): Remove wrong type check of
witness_c_macro argument.
2022-08-05 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Don't initialize local variables too early.
* gnulib-tool.py (main): Initialize each local variable in one place.
I prefer to have pylint tell me about uninitialized variables than to
get the value None at runtime.
gnulib-tool.py: Finish implementing option --po-domain.
* gnulib-tool.py (main): Accept option --po-domain.
* pygnulib/GLEmiter.py (GLEmiter.po_POTFILES_in): Fix variable
reference.
* pygnulib/GLImport.py (GLImport.execute): Don't delete Makefile.in.in
from the gnulib directory. Don't require a shell when invoking wget.
After invoking wget, restore the current directory.
gnulib-tool.py: Finish implementing option --macro-prefix.
* gnulib-tool.py (main): Accept option --macro-prefix.
gnulib-tool.py: Refactor --makefile-name option.
* gnulib-tool.py (main): Handle option --makefile-name like all other
string-valued options.
gnulib-tool.py: Implement option --no-libtool.
* gnulib-tool.py (main): Accept option --no-libtool.
gnulib-tool.py: Remove redundant type checks.
* pygnulib/GLConfig.py (GLConfig.__init__): Remove redundant type
checks, left over from 2022-08-04.
(GLConfig.getIncludeGuardPrefix): Improve comment.
(GLConfig.resetMacroPrefix): Optimize.
gnulib-tool.py: Refactor --makefile-name option.
* gnulib-tool.py (main): Rename variable 'makefile' to 'makefile_name'.
* pygnulib/GLConfig.py: Rename attribute 'makefile' to 'makefile_name'.
* pygnulib/GLMakefileTable.py: Update.
* pygnulib/GLEmiter.py: Likewise.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLFileSystem.py (GLFileAssistant): Remove unused assignment.
gnulib-tool.py: Fix link_if_changed function.
* pygnulib/constants.py (joinpath): Fix comment.
(as_link_value_at_dest): New function, extracted from link_relative.
(link_relative): Use it.
(link_if_changed): Really don't replace the symbolic link if it does not
need to change.
gnulib-tool.py: Fix 'Unused import' warnings.
* gnulib-tool.py: Remove unused imports.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Fix 'Undefined variable' errors.
* pygnulib/constants.py: Import codecs.
* pygnulib/GLConfig.py (GLConfig.setLibName): Fix local variable
reference.
* pygnulib/GLFileSystem.py (GLFileSystem.lookup,
GLFileAssistant.update): Fix local variable references.
* pygnulib/GLEmiter.py (GLEmiter.po_POTFILES_in): Fix reference.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): Define missing local
variables.
gnulib-tool.py: Make option --version work.
* pygnulib/constants.py (__copyright__): Bump copyright year.
* pygnulib/GLInfo.py (GLInfo.authors): Add a comma after the
second-to-last author.
(GLInfo.copyright): Show only the last modification year.
(GLInfo.date): Check whether git and GNU date are available. Use
'git log ChangeLog', not 'git log'. Run 'git log' in the gnulib
directory, not in the current directory. Search for 'Date:' only at the
beginning of a line. As a fallback, look at the first ChangeLog entry.
(GLInfo.version): Check whether git is available. Run git-version-gen in
the gnulib directory, not in the current directory. Replace '-dirty'
with '-modified'. As a fallback, return the empty string.
* gnulib-tool.py (main) [--version]: Add a space before the version.
gnulib-tool.py: Simplify.
* pygnulib/constants.py (compiler): Remove function.
* gnulib-tool.py: Use re.compile directly instead.
* pygnulib/*.py: Likewise.
2022-08-04 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix typo.
* pygnulib/GLImport.py (GLImport.execute): Actually handle file
removals.
gnulib-tool.py: Coding style: Revisit line breaks.
* gnulib-tool.py: Avoid line breaks at arbitrary points inside
expressions. Use line breaks to clarify [... for ...] iterations.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Simplify boolean setters.
* pygnulib/GLConfig.py (setLibtool): New method, replaces enableLibtool
and disableLibtool.
(setCondDeps): New method, replaces enableCondDeps and disableCondDeps.
(setVCFiles): New method, replaces enableVCFiles and disableVCFiles.
(setSymbolic): New method, replaces enableSymbolic and disableSymbolic.
(setLSymbolic): New method, replaces enableLSymbolic and
disableLSymbolic.
(setLibtests): New method, replaces enableLibtests and disableLibtests.
(setSingleConfigure): New method, replaces enableSingleConfigure and
disableSingleConfigure.
(setDryRun): New method, replaces enableDryRun and disableDryRun.
(setErrors): New method, replaces enableErrors and disableErrors.
(__init__): Update.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLTestDir.py: Likewise.
gnulib-tool.py: Implement options --cache-modules, --no-cache-modules.
* gnulib-tool.py (main): Accept options --cache-modules,
--no-cache-modules.
* pygnulib/GLConfig.py: Remove modcache property and constructor
argument.
* pygnulib/GLInfo.py (GLInfo.usage): Don't document these no-op options.
gnulib-tool.py: Use mainstream/GNU coding style.
* gnulib-tool.py: Break lines before the % operator, not after.
* pygnulib/*.py: Likewise. Avoid line breaks when the resulting lines
are not too long.
gnulib-tool.py: Follow gnulib-tool changes, part 24.
Follow gnulib-tool change
2017-02-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid conflict of havelib-tests with --single-configure.
* pygnulib/GLTestDir.py (GLTestDir.__init__): Don't allocate the
GLModuleTable here.
(GLTestDir.execute): Do it here. Avoid havelib-tests when
--with-tests --single-configure is specified.
gnulib-tool.py: Respect the specified module list.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't remove specific
modules (ftruncate, mountlist, etc.) from the specified module list.
gnulib-tool.py: Implement option --avoid.
* pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Compute the
effective avoids list here.
(GLModuleTable.transitive_closure, GLModuleTable.add_dummy): Consider
the avoids list.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Use the avoids list from
GLConfig directly.
(GLImport.prepare): No need any more to set the avoids list in the
GLModuleTable.
gnulib-tool.py: Make --with/--without-*-tests handling a little safer.
* pygnulib/GLConfig.py (__init__): Fix reset* invocations.
setInclTestCategories, setExclTestCategories): Revert to old value if
the new value is invalid.
2022-08-03 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Implement option --single-configure.
* gnulib-tool.py (main): Accept option --single-configure. Pass its
value to the GLConfig constructor.
* pygnulib/GLTestDir.py (GLTestDir.execute): Remove debugging output.
gnulib-tool.py: Implement options --without-c++-tests etc.
* gnulib-tool.py (main): Accept options --without-c++-tests,
--without-longrunning-tests, --without-privileged-tests,
--without-unportable-tests.
Improve error message for --copy-file with invalid number of arguments.
Check for invalid options given in --import, --add-import,
--remove-import, --update modes.
Pass both sets of test categories to the GLConfig constructor.
* pygnulib/GLConfig.py (GLConfig.__init__): Accept incl_test_categories
and excl_test_categories instead of testflags.
(checkInclTestCategory): Renamed from checkTestFlag.
(enableInclTestCategory): Renamed from enableTestFlag.
(disableInclTestCategory): Renamed from disableTestFlag.
(getInclTestCategories): Renamed from getTestFlags.
(setInclTestCategories): Renamed from setTestFlags.
(resetInclTestCategories): Renamed from resetTestFlags.
(setInclTestCategory, checkExclTestCategory, enableExclTestCategory,
disableExclTestCategory, getExclTestCategories, setExclTestCategories,
resetExclTestCategories): New methods.
* pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Accept two
booleans as second and third constructor arguments.
(transitive_closure): Correct the determination of whether to include
each module, depending on the with-* and without-* options.
(transitive_closure_separately): Update.
* pygnulib/GLMakefileTable.py: Update.
* pygnulib/GLImport.py (__init__, actioncmd, gnulib_cache, execute):
Update.
* pygnulib/GLTestDir.py (GLTestDir.__init__, GLTestDir.execute,
GLMegaTestDir.__init__): Update.
gnulib-tool.py: Implement option --without-tests.
* gnulib-tool.py (main): Accept option --without-tests.
gnulib-tool.py: Fix broken 'for' loop.
* gnulib-tool.py (main): Canonicalize inctests before creating the
GLConfig. Rewrite a broken 'for' loop.
* pygnulib/GLConfig.py (GLConfig.setTestFlags): Remove unused statement.
gnulib-tool.py: Follow gnulib-tool changes, part 23.
Follow gnulib-tool changes
2016-11-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license.
2016-12-02 Nikos Mavrogiannopoulos <nmav@gnutls.org>
gnulib-tool (func_import): Adhere to the license guideline ...
2016-12-02 Daiki Ueno <ueno@gnu.org>
gnulib-tool (func_import): Relax the regex ...
* gnulib-tool.py: For --lgpl, accept value 3orGPLv2.
* pygnulib/GLInfo.py (GLInfo.usage): Update.
* pygnulib/GLConfig.py (GLConfig.setLGPL): Update argument check.
* pygnulib/GLImport.py (GLImport.__init__, GLImport.gnulib_cache):
Update gl_LGPL handling.
(GLImport.prepare): Update license compatibility checks and license
header rewriting.
* pygnulib/GLTestDir.py (GLTestDir.execute): Update license
compatibility checks. Handle also the licenses GPLv3+, GPL, LGPLv3+.
gnulib-tool.py: Fix unjustified "incompatible license" warnings.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't emit a warning when
the dependency module has a license such as "public domain" or
"unlimited".
gnulib-tool.py: Follow gnulib-tool changes, part 22.
Follow gnulib-tool change
2016-10-15 Bruno Haible <bruno@clisp.org>
Avoid gnulib-tool warnings about the dependencies of 'parse-datetime'.
* pygnulib/GLModuleSystem.py (GLModule.getLicense): Special-case the
'parse-datetime' module.
gnulib-tool.py: Follow gnulib-tool changes, part 21.
Follow gnulib-tool change
2016-10-16 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --create-testdir on all modules work again.
* pygnulib/GLTestDir.py (GLTestDir.execute): Don't include the
non-recursive-gnulib-prefix-hack module.
gnulib-tool.py: Follow gnulib-tool changes, part 20.
Follow gnulib-tool changes
2016-01-15 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: don't assume ln -s works
2016-01-24 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: don't give up on ln -s so easily
2017-06-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix bug in func_ln_s, from 2016-01-15.
* pygnulib/constants.py (symlink_relative): New function.
(link_relative): Use it instead of os.symlink.
gnulib-tool.py: Avoid errors when writing to a VFAT file system, part 2.
* pygnulib/constants.py (movefile): New function.
* pygnulib/*.py: Use it instead of shutil.
gnulib-tool.py: Avoid errors when writing to a VFAT file system.
* pygnulib/constants.py (copyfile, copyfile2): New functions.
* gnulib-tool.py: Use them instead of shutil.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Fix typo.
* pygnulib/GLImport.py (GLImport.__init__): Use the relative auxdir as
second, not as first argument of joinpath.
2022-07-31 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix typo.
* pygnulib/GLTestDir.py (GLMegaTestDir.execute): Invoke os.mkdir as
intended.
gnulib-tool.py: Improve some error messages.
* gnulib-tool.py (main): Write "*** Stop." instead of "*** Exit.".
(__main__): Print an error message for GLError 5, 13, 14, 15, 16, 17, 18.
* pygnulib/GLError.py (GLError.__repr__): Compute one error message,
not 19.
gnulib-tool.py: Write errors to stderr, not stdout.
* pygnulib/constants.py: Write error messages to stderr, not stdout.
gnulib-tool.py: Use mainstream coding style.
* pygnulib/GLConfig.py: Use 'raise' to re-throw an exception.
gnulib-tool.py: Implement options --symlink and --local-symlink.
* gnulib-tool.py (main): Handle options --symlink and --local-symlink.
* pygnulib/constants.py (link_if_changed): Ignore FileNotFoundError from
os.remove call.
gnulib-tool.py: Make --copy-file work.
* gnulib-tool.py (main) [copy-file]: Fix reference to uninitialized
variable. Fix error handling of os.makedirs. Pass the destdir to the
GLFileAssistant.
gnulib-tool.py: Allow module arguments to occur at any position.
* gnulib-tool.py (main): Collect the non-option arguments in a single
list, regardless of their position. Use parse_known_args instead of
parse_args, and give an error message about unknown options ourselves.
* gnulib-tool: Fix typo in error message.
gnulib-tool.py: Make --test behaviour more similar to gnulib-tool.
* gnulib-tool.py (main) [test]: Remove space from the testdir name.
gnulib-tool: Clarify that --test allows zero module arguments.
* gnulib-tool (func_usage): Mark the modules for --test as optional.
* pygnulib/GLInfo.py (GLInfo.usage): Likewise.
gnulib-tool.py: Make option processing more similar to gnulib-tool.
* gnulib-tool.py (main): Allow --add-import and --remove-import with 0
modules.
gnulib-tool.py: Improve compliance with GNU standards.
* gnulib-tool.py (main): Handle --help and --version before testing for
conflicting modes.
gnulib-tool.py: Emit error message when conflicting modes are specified.
* gnulib-tool.py (main): Fix test of conflicting modes. (Some options
produce a value of [], and as a condition, [] evaluates to False.)
gnulib-tool.py: Remove most short options.
* gnulib-tool.py (main): Reorder the list of options. Remove most short
options, for consistency with gnulib-tool.
gnulib-tool.py: Follow gnulib-tool changes, part 19.
Follow gnulib-tool changes
2015-12-09 Pavel Raiskup <praiskup@redhat.com>
gnulib-tool: allow multiple --local-dir usage
2019-02-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve handling of multiple --local-dir options.
* gnulib-tool (func_reconstruct_cached_dir): When the argument is
absolute, return it unmodified.
(func_compute_relative_local_gnulib_path): Renamed from
func_count_relative_local_gnulib_path. Add comment.
* gnulib-tool.py: Accept multiple --local-dir options and collect the
values into localpath.
* pygnulib/GLConfig.py: Take a localpath argument instead of a localdir
argument.
(getLocalDir, setLocalDir, resetLocalDir): Remove methods.
(getLocalPath, setLocalPath, resetLocalPath): New methods.
* pygnulib/GLFileSystem.py (CopyAction): New class.
(GLFileSystem.lookup): Consider all dirs in localpath.
(GLFileSystem.shouldLink): New method.
(GLFileAssistant): Use shouldLink.
* pygnulib/GLModuleSystem.py (GLModuleSystem.exists): Iterate over all
dirs in localpath.
(GLModuleSystem.list): Likewise.
* pygnulib/GLEmiter.py: Update.
* pygnulib/GLImport.py (GLImport.__init__): Put the argument of
gl_LOCAL_DIR into localpath, not localdir.
(GLImport.actioncmd): Consider all dirs in localpath.
(GLImport.relative_to_destdir, GLImport.relative_to_currdir): New
methods.
(GLImport.gnulib_cache): Combine all dirs in localpath. Use
self.relative_to_destdir.
* pygnulib/GLTestDir.py (GLTestDir.execute): Use shouldLink.
gnulib-tool.py: Improve the primitives for relative file names.
* pygnulib/constants.py (relativize): Don't attempt to handle absolute
file names. Fix bug with relativize('../foo/bar', '../foo/bla/zut').
(relconcat): New function.
gnulib-tool.py: Follow gnulib-tool changes, part 18.
Follow gnulib-tool change
2005-09-20 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove trailing slashes
* pygnulib/constants.py (remove_trailing_slashes): New function.
* pygnulib/GLConfig.py (GLConfig): Use it in the setters.
2022-07-31 Bruno Haible <bruno@clisp.org>
avltree-omap, avltree-oset, avltreehash-list, rbtree-omap: Pacify GCC.
* lib/gl_avltree_omap.c (gl_avltree_omap_check_invariants): Add extern
decl.
* lib/gl_avltree_oset.c (gl_avltree_oset_check_invariants): Likewise.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_check_invariants):
Likewise.
* lib/gl_rbtree_omap.c (gl_rbtree_omap_check_invariants): Likewise.
2022-07-31 Paul Eggert <eggert@cs.ucla.edu>
rbtree-oset, rbtreehash-list: Pacify GCC
* lib/gl_rbtree_oset.c (gl_rbtree_oset_check_invariants):
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_check_invariants):
Add extern decls, to pacify --enable-gcc-warnings with Bison.
2022-07-31 Akim Demaille <akim@lrde.epita.fr>
gnulib-tool: add support for --automake-subdir-tests
<https://lists.gnu.org/r/bug-gnulib/2022-01/msg00111.html>
* gnulib-tool (main): Handle --automake-subdir-tests.
(func_emit_shellvars_init, func_emit_lib_Makefile_am): Use
$sourcebase when handling tests and --automake-subdir-tests is
given.
(func_append_actionarg): Support --automake-subdir-tests.
(func_create_testdir): Add missing argument for func_emit_initmacro_end.
2022-07-31 Bruno Haible <bruno@clisp.org>
gendocs.sh: Fix error when invoking 'perl' (regression 2022-07-23).
* build-aux/gendocs.sh (PERL): Use double-quotes, not single-quotes.
2022-07-30 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Clean up imports.
* gnulib-tool.py: Remove unused constants.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Assume Python 3.
* gnulib-tool.py: Don't allow 'bytes' as an alternative to 'str'.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Assume Python 3.
* gnulib-tool.py: Don't set PYTHON3, string. Use str instead of string.
* pygnulib/*.py: Likewise.
gnulib-tool.py: Modernize coding style.
* pygnulib/*.py: Remove parentheses around raise value expressions.
2022-07-30 Bruno Haible <bruno@clisp.org>
doc: Update regarding bootstrap split.
Reported by Paul Smith <psmith@gnu.org>.
* doc/gnulib-tool.texi (gettextize and autopoint): Mention autogen.sh
instead of bootstrap.
(VCS Issues): Describe three alternative approaches.
* doc/gnulib.texi (Developer tools): Mention also autopull.sh and
autogen.sh.
* top/bootstrap (usage): Fix copy&paste mistake.
2022-07-29 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Follow gnulib-tool changes, part 17.
Follow gnulib-tool change
2015-10-06 Pavel Raiskup <praiskup@redhat.com>
gnulib-tool: fix tests of 'extensions' module
* pygnulib/GLEmiter.py (GLEmiter.preEarlyMacros): New function.
* pygnulib/GLImport.py (GLImport.gnulib_comp): Invoke it.
* pygnulib/GLTestDir.py (GLTestDir.execute): Likewise.
gnulib-tool.py: Follow gnulib-tool changes, part 16.
Follow gnulib-tool change
2015-09-25 Pavel Raiskup <praiskup@redhat.com>
gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
* pygnulib/GLImport.py (GLImport.gnulib_comp): Put the
gl_USE_SYSTEM_EXTENSIONS right before gl_PROG_AR_RANLIB into
gnulib-comp.m4 (if the 'extensions' module is used).
gnulib-tool.py: Modernize coding style.
* pygnulib/*.py: Remove parentheses around return value expressions.
gnulib-tool.py: Modernize the file headers.
* pygnulib/*.py: Remove '#!/usr/bin/python' (not needed) and
'encoding: UTF-8' lines (default in Python 3). Add copyright notice.
gnulib-tool.py: Use mainstream coding style.
* gnulib-tool.py: Clarify the coding style. Fix some pycodestyle
warnings.
* pygnulib/constants.py: Likewise.
* pygnulib/GLEmiter.py: Likewise.
* pygnulib/GLImport.py: Likewise.
* pygnulib/GLMakefileTable.py: Likewise.
2022-07-29 Bruno Haible <bruno@clisp.org>
gnulib-tool.py: Fix error (regression 2021-04-11).
* pygnulib/GLConfig.py (GLConfig.getModuleIndicatorPrefix): Fix code.
gnulib-tool.py: Fix warning from Python 3.10.4.
* pygnulib/GLModuleSystem.py (getConditionalName): Fix a string
substitution expression.
gnulib-tool.py: Fix error in Ubuntu 22.04.
* gnulib-tool.py: Search for python3 in $PATH.
2022-07-25 Bruno Haible <bruno@clisp.org>
bootstrap: Make the automatic sync more resilient.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00060.html>.
* top/bootstrap (bootstrap_sync): Set to true when bootstrap-funclib.sh
is not present.
* top/gen-bootstrap.sed: Insert a couple of comment lines.
* build-aux/bootstrap: Regenerated using "make build-aux/bootstrap".
2022-07-24 Bruno Haible <bruno@clisp.org>
Fix comment.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00058.html>.
* top/bootstrap-funclib.sh: Fix comment about canonical location.
* top/autopull.sh: Likewise.
* top/autogen.sh: Likewise.
* top/bootstrap: Likewise.
Split bootstrap into autopull.sh and autogen.sh.
* top/bootstrap-funclib.sh: New file, based on build-aux/bootstrap.
* top/autopull.sh: New file, based on build-aux/bootstrap.
* top/autogen.sh: New file, based on build-aux/bootstrap.
* top/bootstrap: New file, based on build-aux/bootstrap.
* top/gen-bootstrap.sed: New file.
* Makefile (build-aux/bootstrap): New rule.
(regen): Depend on it.
* build-aux/bootstrap: Regenerated using "make build-aux/bootstrap".
2022-07-24 Bruno Haible <bruno@clisp.org>
bootstrap: Obey another environment variable GNULIB_REFDIR.
* build-aux/bootstrap (usage): Document option --gnulib-refdir and
environment variable GNULIB_REFDIR.
Accept option --gnulib-refdir.
When GNULIB_SRCDIR is specified, verify that it denotes a directory.
Use $GNULIB_REFDIR, not $GNULIB_SRCDIR, as argument to git's --reference
option.
Improve an error message.
* NEWS: Mention the change.
2022-07-23 Bruno Haible <bruno@clisp.org>
Fix a couple of ShellCheck warnings.
* MODULES.html.sh (sed_escape_slash): Remove unused variable.
* build-aux/bootstrap: Avoid computed printf format strings.
* build-aux/do-release-commit-and-tag: Likewise.
* build-aux/gendocs.sh: Likewise.
* build-aux/declared.sh: Fix "unrecognized option" message.
* gnulib-tool (supplied_opts): Remove unused variable.
(--single-con): Remove redundant option recognition.
* tests/test-parse-duration.sh (nl): Remove unused variable.
* tests/test-update-copyright.sh: Use double-quotes instead of
single-quotes.
2022-07-23 Bruno Haible <bruno@clisp.org>
Avoid DoS vulnerability through unsafe default assignment.
See https://www.shellcheck.net/wiki/SC2223 .
* MODULES.html.sh (func_tmpdir): Surround default assignment with
double-quotes.
* build-aux/bootstrap: Likewise.
* build-aux/csharpcomp.sh.in (func_tmpdir): Likewise.
* build-aux/gendocs.sh: Likewise.
* build-aux/libtool-next-version (func_tmpdir): Likewise.
* config/srclist-update: Likewise.
* gnulib-tool (func_tmpdir): Likewise.
* posix-modules (func_tmpdir): Likewise.
* tests/test-atexit.sh: Likewise.
* tests/test-btoc32-1.sh: Likewise.
* tests/test-btoc32-2.sh: Likewise.
* tests/test-btowc1.sh: Likewise.
* tests/test-btowc2.sh: Likewise.
* tests/test-c-dtoastr.sh: Likewise.
* tests/test-c-ldtoastr.sh: Likewise.
* tests/test-c-snprintf.sh: Likewise.
* tests/test-c-strcase.sh: Likewise.
* tests/test-c-vasprintf.sh: Likewise.
* tests/test-c-vsnprintf.sh: Likewise.
* tests/test-c-xvasprintf.sh: Likewise.
* tests/test-c32isalnum.sh: Likewise.
* tests/test-c32isalpha.sh: Likewise.
* tests/test-c32isblank.sh: Likewise.
* tests/test-c32iscntrl.sh: Likewise.
* tests/test-c32isdigit.sh: Likewise.
* tests/test-c32isgraph.sh: Likewise.
* tests/test-c32islower.sh: Likewise.
* tests/test-c32isprint.sh: Likewise.
* tests/test-c32ispunct.sh: Likewise.
* tests/test-c32isspace.sh: Likewise.
* tests/test-c32isupper.sh: Likewise.
* tests/test-c32isxdigit.sh: Likewise.
* tests/test-c32rtomb.sh: Likewise.
* tests/test-c32snrtombs-1.sh: Likewise.
* tests/test-c32snrtombs-2.sh: Likewise.
* tests/test-c32snrtombs-3.sh: Likewise.
* tests/test-c32snrtombs-4.sh: Likewise.
* tests/test-c32srtombs-1.sh: Likewise.
* tests/test-c32srtombs-2.sh: Likewise.
* tests/test-c32srtombs-3.sh: Likewise.
* tests/test-c32srtombs-4.sh: Likewise.
* tests/test-c32stombs-1.sh: Likewise.
* tests/test-c32stombs-2.sh: Likewise.
* tests/test-c32stombs-3.sh: Likewise.
* tests/test-c32stombs-4.sh: Likewise.
* tests/test-closein.sh: Likewise.
* tests/test-copy-acl.sh (func_tmpdir): Likewise.
* tests/test-copy-file.sh (func_tmpdir): Likewise.
* tests/test-dprintf-posix.sh: Likewise.
* tests/test-execl.sh: Likewise.
* tests/test-execle.sh: Likewise.
* tests/test-execlp.sh: Likewise.
* tests/test-execv.sh: Likewise.
* tests/test-execve.sh: Likewise.
* tests/test-execvp.sh: Likewise.
* tests/test-execvpe.sh: Likewise.
* tests/test-file-has-acl.sh (func_tmpdir): Likewise.
* tests/test-fprintf-posix.sh: Likewise.
* tests/test-init.sh: Likewise.
* tests/test-iswdigit.sh: Likewise.
* tests/test-iswxdigit.sh: Likewise.
* tests/test-mbmemcasecmp1.sh: Likewise.
* tests/test-mbmemcasecmp2.sh: Likewise.
* tests/test-mbmemcasecmp3.sh: Likewise.
* tests/test-mbmemcasecoll1.sh: Likewise.
* tests/test-mbmemcasecoll2.sh: Likewise.
* tests/test-mbmemcasecoll3.sh: Likewise.
* tests/test-mbrtoc32-1.sh: Likewise.
* tests/test-mbrtoc32-2.sh: Likewise.
* tests/test-mbrtoc32-3.sh: Likewise.
* tests/test-mbrtoc32-4.sh: Likewise.
* tests/test-mbrtowc1.sh: Likewise.
* tests/test-mbrtowc2.sh: Likewise.
* tests/test-mbrtowc3.sh: Likewise.
* tests/test-mbrtowc4.sh: Likewise.
* tests/test-mbscasecmp.sh: Likewise.
* tests/test-mbscasestr2.sh: Likewise.
* tests/test-mbscasestr3.sh: Likewise.
* tests/test-mbscasestr4.sh: Likewise.
* tests/test-mbschr.sh: Likewise.
* tests/test-mbscspn.sh: Likewise.
* tests/test-mbsinit.sh: Likewise.
* tests/test-mbsncasecmp.sh: Likewise.
* tests/test-mbsnrtoc32s-1.sh: Likewise.
* tests/test-mbsnrtoc32s-2.sh: Likewise.
* tests/test-mbsnrtoc32s-3.sh: Likewise.
* tests/test-mbsnrtoc32s-4.sh: Likewise.
* tests/test-mbsnrtowcs1.sh: Likewise.
* tests/test-mbsnrtowcs2.sh: Likewise.
* tests/test-mbsnrtowcs3.sh: Likewise.
* tests/test-mbsnrtowcs4.sh: Likewise.
* tests/test-mbspbrk.sh: Likewise.
* tests/test-mbspcasecmp.sh: Likewise.
* tests/test-mbsrchr.sh: Likewise.
* tests/test-mbsrtoc32s-1.sh: Likewise.
* tests/test-mbsrtoc32s-2.sh: Likewise.
* tests/test-mbsrtoc32s-3.sh: Likewise.
* tests/test-mbsrtoc32s-4.sh: Likewise.
* tests/test-mbsrtowcs1.sh: Likewise.
* tests/test-mbsrtowcs2.sh: Likewise.
* tests/test-mbsrtowcs3.sh: Likewise.
* tests/test-mbsrtowcs4.sh: Likewise.
* tests/test-mbsspn.sh: Likewise.
* tests/test-mbsstr2.sh: Likewise.
* tests/test-mbsstr3.sh: Likewise.
* tests/test-mbstoc32s-1.sh: Likewise.
* tests/test-mbstoc32s-2.sh: Likewise.
* tests/test-mbstoc32s-3.sh: Likewise.
* tests/test-mbstoc32s-4.sh: Likewise.
* tests/test-nl_langinfo.sh: Likewise.
* tests/test-parse-duration.sh (func_tmpdir): Likewise.
* tests/test-perror.sh: Likewise.
* tests/test-printf-posix.sh: Likewise.
* tests/test-set-mode-acl.sh (func_tmpdir): Likewise.
* tests/test-setlocale1.sh: Likewise.
* tests/test-strtod1.sh: Likewise.
* tests/test-strtold1.sh: Likewise.
* tests/test-unicodeio2.sh: Likewise.
* tests/test-unicodeio3.sh: Likewise.
* tests/test-vasnprintf-posix2.sh: Likewise.
* tests/test-vc-list-files-cvs.sh: Likewise.
* tests/test-vc-list-files-git.sh: Likewise.
* tests/test-vdprintf-posix.sh: Likewise.
* tests/test-vfprintf-posix.sh: Likewise.
* tests/test-vprintf-posix.sh: Likewise.
* tests/test-wcrtomb.sh: Likewise.
* tests/test-wcsnrtombs1.sh: Likewise.
* tests/test-wcsnrtombs2.sh: Likewise.
* tests/test-wcsnrtombs3.sh: Likewise.
* tests/test-wcsnrtombs4.sh: Likewise.
* tests/test-wcsrtombs1.sh: Likewise.
* tests/test-wcsrtombs2.sh: Likewise.
* tests/test-wcsrtombs3.sh: Likewise.
* tests/test-wcsrtombs4.sh: Likewise.
* tests/test-xprintf-posix.sh: Likewise.
* tests/test-xstrtoimax.sh: Likewise.
* tests/test-xstrtol.sh: Likewise.
* tests/test-xstrtoll.sh: Likewise.
* tests/test-xstrtoumax.sh: Likewise.
* tests/test-yesno.sh: Likewise.
* tests/unicase/test-locale-language.sh: Likewise.
* tests/unicase/test-ulc-casecmp1.sh: Likewise.
* tests/unicase/test-ulc-casecmp2.sh: Likewise.
* tests/unicase/test-ulc-casecoll1.sh: Likewise.
* tests/unicase/test-ulc-casecoll2.sh: Likewise.
* tests/unigbrk/test-ulc-grapheme-breaks.sh: Likewise.
* tests/unistdio/test-u16-vasnprintf2.sh: Likewise.
* tests/unistdio/test-u16-vasnprintf3.sh: Likewise.
* tests/unistdio/test-u32-vasnprintf2.sh: Likewise.
* tests/unistdio/test-u32-vasnprintf3.sh: Likewise.
* tests/unistdio/test-u8-vasnprintf2.sh: Likewise.
* tests/unistdio/test-u8-vasnprintf3.sh: Likewise.
* tests/unistdio/test-ulc-vasnprintf2.sh: Likewise.
* tests/unistdio/test-ulc-vasnprintf3.sh: Likewise.
* tests/uniwbrk/test-ulc-wordbreaks.sh: Likewise.
* tests/uniwidth/test-uc_width2.sh: Likewise.
2022-07-18 Bruno Haible <bruno@clisp.org>
bootstrap: Comments.
* build-aux/bootstrap: Comment about two unused variables.
2022-07-17 Bruno Haible <bruno@clisp.org>
doc: Update README.
* doc/README: Fix stale links (reported by Tzvetelin Katchov). Clarify
the relation to build-aux/gnu-web-doc-update.
2022-07-14 Bruno Haible <bruno@clisp.org>
doc: Fix typo.
Reported by Eric Gallager <egall@gwmail.gwu.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00045.html>.
* doc/posix-functions/mmap.texi: Add parenthesis.
2022-07-12 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: improve doc for TZ="<-07>7" etc.
* doc/parse-datetime.texi (Specifying time zone rules):
Give examples of POSIX TZ strings that specify UTC offsets (Bug#56524).
2022-07-10 Bruno Haible <bruno@clisp.org>
sigsegv: Optimize stackvma implementation for AIX 7.
Reported by Neha Jain <nehajain29@in.ibm.com> in
<https://lists.gnu.org/archive/html/bug-m4/2022-06/msg00005.html>
via Eric Blake.
* lib/stackvma.c: For AIX, add implementation that uses /proc/$pid/map,
based on lib/vma-iter.c.
(sigsegv_get_vma): Use it on AIX 7 or higher.
2022-07-10 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for AIX 7.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on AIX.
* lib/vma-iter.c (vma_iterate): Add code for AIX, known to work on
AIX 7.
* lib/get-rusage-as.c: Update comments.
* lib/get-rusage-data.c: Likewise.
* tests/test-get-rusage-as.c (main): Take into account the special
address space organization on AIX in 32-bit mode.
2022-07-10 Bruno Haible <bruno@clisp.org>
iconv: Define a summary result.
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-07/msg00020.html>.
* m4/iconv.m4 (AM_ICONV): Define also am_cv_func_iconv_summary.
2022-07-10 Bruno Haible <bruno@clisp.org>
iconv: Remove obsolete comment.
* m4/iconv.m4 (AM_ICONV): Remove comment that is obsolete since
2020-08-16.
2022-07-10 Bruno Haible <bruno@clisp.org>
announce-gen: Fix internationalization in verification instructions.
* build-aux/announce-gen: Set LC_ALL, not LANG, to "C", to force English
output from gpg.
2022-07-10 Bruno Haible <bruno@clisp.org>
lib-symbol-visibility: Improve documentation.
* doc/lib-symbol-visibility.texi: Tweak BUILDING_SHARED snippet.
2022-07-10 Bruno Haible <bruno@clisp.org>
doc: Mark Minix as no longer tested.
Rationale: No commits since 2018 at https://git.minix3.org/.
Reported by Paul Eggert and Jim Meyering in
<https://lists.gnu.org/archive/html/grep-devel/2022-07/msg00027.html>.
* doc/gnulib-intro.texi (Supported Platforms): Mark Minix as no longer
tested.
2022-07-09 Jim Meyering <meyering@fb.com>
announce-gen: better diagnose some usage errors
* build-aux/announce-gen (main): Erroneous usage would elicit a
misleading diagnostic. When --gnulib-version=V was specified:
- without --bootstrap_tools, or
- with --bootstrap_tools, but without listing "gnulib" as a tool
we would give an inappropriate diagnostic. Now, each diagnostic
is tailored to the precise erroneous condition.
Reported by Bruno Haible in
https://lists.gnu.org/r/bug-gnulib/2022-01/msg00025.html
2022-07-09 Simon Josefsson <simon@josefsson.org>
git-version-gen: Doc fix.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00012.html>.
* build-aux/git-version-gen (usage): Replace incorrect text with
bug report instructions.
2022-07-09 Simon Josefsson <simon@josefsson.org>
announce-gen: Improve GnuPG verification instructions.
* build-aux/announce-gen: Add GPG fingerprint to output, and a
pointer to GNU keyring.
2022-07-08 Simon Josefsson <simon@josefsson.org>
lib-symbol-visibility: Improve documentation.
* doc/lib-symbol-visibility.texi: Include BUILDING_SHARED snippet
suggested by Bruno Haible.
2022-07-04 Bruno Haible <bruno@clisp.org>
havelib: Fix 'configure --help' output.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Fix m4 quoting bug.
2022-07-03 Bruno Haible <bruno@clisp.org>
lib-symbol-visibility: Improve documentation.
Reported by Vivien Kraus <vivien@planete-kraus.eu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00093.html>.
* doc/lib-symbol-visibility.texi: List the platforms. Extend the
LIBFOO_DLL_EXPORTED to work also with mingw and also with
--disable-shared.
2022-07-03 Bruno Haible <bruno@clisp.org>
supersede: Support the file name "/dev/null" on native Windows.
* lib/supersede.c (open_supersede): On native Windows, map "/dev/null"
to "NUL".
2022-06-23 Jim Meyering <meyering@fb.com>
maint.mk: fix syntax-check for unnecessary hash.h header use
* top/maint.mk (_hash_re): Correct the regexp. It had two problems:
- lacked the "hash_" prefix, so would match non-uses
- failed to detect uses of the hash_x?initialize functions
The former led to an excess/unneeded use of hash.h in coreutils' cut.c.
The latter would have led to a FP "not needed" report for copy.c.
2022-06-22 Bruno Haible <bruno@clisp.org>
fchmodat: Fix test failure on native Windows.
* modules/fchmodat (Depends-on): Add 'chmod'.
2022-06-22 Bruno Haible <bruno@clisp.org>
chmod: Add tests.
* tests/test-chmod.c: New file, based on tests/test-lchmod.c.
* modules/chmod-tests: New file.
chmod: New module.
* lib/sys_stat.in.h (chmod): Declare when GNULIB_CHMOD is 1.
* lib/chmod.c: New file, based on lib/lchmod.c.
* m4/chmod.m4: New file, based on m4/fchmodat.m4.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H): Test whether chmod is declared.
(gl_SYS_STAT_H_REQUIRE_DEFAULTS): Initialize GNULIB_CHMOD.
(gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_CHMOD.
* modules/sys_stat (Makefile.am): Substitute GNULIB_CHMOD,
REPLACE_CHMOD.
* modules/chmod: New file, based on modules/lchmod.
* doc/posix-functions/chmod.texi: Mention the new module and the
problems on IRIX and Windows.
2022-06-21 Bruno Haible <bruno@clisp.org>
lchmod: Simplify.
* lib/lchmod.c: Remove unnecessary include, obsolete since 2020-02-23.
2022-06-20 Bruno Haible <bruno@clisp.org>
javacomp-script, javaexec-script: Add support for disabling Java.
* m4/javacomp.m4 (gt_JAVACOMP_DISABLED): New macro.
* m4/javaexec.m4 (gt_JAVAEXEC_DISABLED): New macro.
2022-06-19 Paul Eggert <eggert@cs.ucla.edu>
lchmod: port back to AIX 7.2
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00075.html
* lib/lchmod.c: Include string.h, for strlen.
(lchmod): Do not depend on HAVE_READLINK since we now depend on
the readlink module. Check for AIX 7.2 bug.
* m4/lchmod.m4 (gl_PREREQ_LCHMOD): Do not check for readlink
since we now depend on the readlink module.
* modules/lchmod (Depends-on): Depend on readlink.
fchmodat: pacify gcc -Wunused-variable
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00075.html
* lib/fchmodat.c (fchmodat): Remove unused local.
2022-06-19 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r tests: Really avoid test failure.
Reported by Letu Ren <fantasquex@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00037.html>.
* tests/test-getlogin.h (test_getlogin_result): Parse the contents of
/proc/self/loginuid as an unsigned integer.
2022-06-12 Paul Eggert <eggert@cs.ucla.edu>
fchmodat: port better to MS-Windows etc.
MS-Windows problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00041.html
Although I don’t use MS-Windows I see some related fstatat etc.
problems and am trying to fix them with this further patch.
* lib/fchmodat.c (fchmodat):
* lib/lchmod.c (lchmod):
* lib/lchown.c (lchown)
[!HAVE_LCHOWN && HAVE_CHOWN && !CHOWN_MODIFIES_SYMLINK]:
* lib/renameatu.c (renameatu)
[HAVE_RENAME && RENAME_TRAILING_SLASH_SOURCE_BUG]:
Use readlinkat/readlink instead of fstatat/lstat to test merely
whether a string names a symlink, as this avoids problems
with EOVERFLOW. Also, I hope it works around the MS-Windows
issues that Bruno noted.
* m4/fchmodat.m4 (gl_PREREQ_FCHMODAT):
Check for readlinkat, not lchmod.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not require AC_CANONICAL_HOST
or check for lstat.
(gl_PREREQ_LCHMOD): Check for readlink.
* modules/lchown (Depends-on): Add readlink. Do not depend on
lstat merely because !HAVE_LCHOWN.
* modules/renameatu (Depends-on): Add fstatat, readlinkat.
2022-06-12 Bruno Haible <bruno@clisp.org>
doc: Update O_PATH platforms list.
* doc/posix-headers/fcntl.texi: Update O_PATH platforms list.
2022-06-11 Paul Eggert <eggert@cs.ucla.edu>
fcntl: document O_PATH
* doc/posix-headers/fcntl.texi: Mention O_PATH.
fchmodat: port to old Linux kernel + newer headers
Problem reported by Lance Fredrickson in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00038.html
* lib/fchmodat.c (fchmodat):
* lib/lchmod.c (lchmod): Do not rely on AT_EMPTY_PATH as to
whether syscalls work on ""; instead, if a call fails with
ENOENT assume that those syscalls do not work.
Do not use fstatat to determine whether a file is a symlink,
as this has problems with EOVERFLOW. Use readlinkat instead,
and if it fails with EINVAL then the file is not a symlink.
Remove #if tests on __linux__ || __ANDROID__ || __CYGWIN__
as this has been a maintenance hassle and it’s unlikely
these days that a new platform would #define O_PATH without also
either supporting /proc or keeping it absent.
* modules/fchmodat (Depends-on): Remove fstatat.
There should be no need for either fchmodat or lchmod to depend on
readlinkat, since they use readlinkat only in contexts where it
should work without Gnulib intervention.
2022-06-06 Bruno Haible <bruno@clisp.org>
fopen-gnu: Make this module work again (regression 2022-01-03).
Reported by Nelson H. F. Beebe <beebe@math.utah.edu> in
<https://lists.gnu.org/archive/html/platform-testers/2022-04/msg00005.html>.
* modules/fopen-gnu (configure.ac): Invoke gl_STDIO_MODULE_INDICATOR.
2022-06-06 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r tests: Avoid test failure in specific environments.
Reported by Letu Ren <fantasquex@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-06/msg00001.html>.
* modules/getlogin-tests (Depends-on): Add stdbool.
* modules/getlogin_r-tests (Depends-on): Likewise.
* tests/test-getlogin.h: Include stdbool.h.
(test_getlogin_result): On Linux, skip the test if /proc/self/loginuid
contains "-1".
2022-06-05 Bruno Haible <bruno@clisp.org>
doc: Add section to attract more people towards the GNU project.
Inspired by a suggestion from José E. Marchesi <jemarch@gnu.org> on
the gnu-prog-discuss mailing list.
* doc/join-gnu.texi: New file.
* doc/gnulib-readme.texi: Include it.
2022-06-05 Bruno Haible <bruno@clisp.org>
doc: Fix warnings about regex chapter structure (regression 2022-05-15).
* doc/regex.texi (GNU Operators): Fix menu.
2022-06-04 Paul Eggert <eggert@cs.ucla.edu>
regex-quote: \} -> } in EREs
* lib/regex-quote.c (ere_special): Don’t use \} in EREs,
as POSIX says the interpretation is undefined.
* tests/test-regex-quote.c (test_bre, test_ere):
Add tests for }.
dfa: do not warn about \] and \}
* lib/dfa.c (lex): Do not warn about \] and \}, since they’re
surely universally supported even though POSIX says their
interpretation is undefined.
2022-06-03 Paul Eggert <eggert@cs.ucla.edu>
regex-quote: \] -> ] in EREs and BREs
* build-aux/bootstrap:
* build-aux/bootstrap.conf (gettext_external):
* check-AC_LIBOBJ:
* lib/regex-quote.c (bre_special, ere_special):
* gnulib-tool (func_modules_transitive_closure)
(func_emit_autoconf_snippet, func_import, func_create_testdir):
* tests/test-regex-quote.c (test_bre, test_ere):
* top/maint.mk (longopt_re, gpg_key_ID):
Don’t use \] in BREs and EREs, as POSIX says the interpretation is
undefined.
filevercmp: don’t treat entire filename as suffix
Problem reported by Artém S. Tashkinóv in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00012.html
* lib/filevercmp.c (file_prefixlen): When stripping
(\.[A-Za-z~][A-Za-z0-9~]*)*$ suffixes, do not strip
the entire file name.
* tests/test-filevercmp.c (examples): Adjust to match new behavior.
2022-06-03 Bruno Haible <bruno@clisp.org>
setlocale: Update after Turkey changed its name.
* lib/setlocale.c: Update comments.
2022-05-25 Karl Berry <karl@freefriends.org>
doc: regex.texi deleted the node GNU Emacs Operators
* doc/gnulib.texi (Regular expression): remove "GNU Emacs Operators"
from the @menu, since the node no longer exists in regex.texi.
2022-05-24 Paul Eggert <eggert@cs.ucla.edu>
dfa: new options DFA_STAR_WARN, DFA_PLUS_WARN
This lets ‘grep -E '(*a|+b)'’ warn about the * and the +.
* lib/dfa.h (DFA_STAR_WARN, DFA_PLUS_WARN): New flags.
* lib/dfa.c (lex): Support them.
2022-05-23 Paul Eggert <eggert@cs.ucla.edu>
dfa: '\n' is not governed by RE_LIMITED_OPS
* lib/dfa.c (lex): Pay no attention to RE_LIMITED_OPS when
deciding how to parse '\n', since regcomp.c doesn’t.
dfa: new option DFA_STRAY_BACKSLASH_WARN
This is for grep, which wants to warn about stray backslashes that
lead to unspecified behavior. For example, "grep -oi '\a'"
surprisingly is not equivalent to "grep -oi 'a'", so the stray
backslash should be warned about.
* lib/dfa.c: Include wctype.h, for iswprint and iswspace.
(lex): Add support for DFA_STRAY_BACKSLASH_WARN.
* lib/dfa.h (DFA_STRAY_BACKSLASH_WARN): New constant.
dfa: new option DFA_CONFUSING_BRACKETS_ERROR
This is for grep, which wants [:alpha:] to be an error
at the top level.
* lib/dfa.c (struct regex_syntax): New member dfaopts,
replacing anchor. All uses changed.
(parse_bracket_exp): Error, not warn, if DFA_CONFUSING_BRACKETS_ERROR.
* lib/dfa.h (DFA_CONFUSING_BRACKETS_ERROR): New constant.
2022-05-21 Paul Eggert <eggert@cs.ucla.edu>
strstr-simple: pacify GCC 12.1
* lib/str-two-way.h (two_way_long_needle): Pacify GCC 12.1
-Wsuggest-attribute=pure (x86-64, -O2).
2022-05-20 Paul Eggert <eggert@cs.ucla.edu>
dfa: steer cleer of POSIX-reserved symbols
* lib/dfa.c (str_eq): Rename from streq. All uses changed.
(c_isdigit): Rename from isasciidigit. The function worked in
EBCDIC so it wasn’t ASCII-specific anyway. All uses changed.
2022-05-17 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: support 'J' military time zone
Requested by Brian Inglis in:
https://savannah.gnu.org/support/?110644
* lib/parse-datetime.y (parser_control): New member J_zones_seen.
(item): New item 'J'.
(military_table): Add 'J'.
(parse_datetime_body): Set and use J_zones_seen.
* tests/test-parse-datetime.c (main): Test "J".
2022-05-15 Reuben Thomas <rrt@sc3d.org>
doc: Update regex documentation to match implementation.
* doc/regex.texi: remove Emacs-specific documentation; match code.
Remove mention of both Emacs and non-Emacs syntax tables, as these
are no longer supported by the code. Document the word character
class (alnum + _). Add documentation for \s and \S. Replace
mentions of #defining emacs with RE_NO_GNU_OPS (which takes effect
in the opposite sense); merge the node “GNU Emacs Operators” into
“GNU Operators”. For \` and \', refer to the “whole string” rather
than the (Emacs) “buffer”.
2022-05-15 Bruno Haible <bruno@clisp.org>
string, wchar: Fix compilation error on MSVC (regression 2021-09-07).
* lib/string.in.h (free): For MSVC, add the dllimport specification if
the MSVC headers have it.
* lib/wchar.in.h (free): Likewise.
2022-05-14 Bruno Haible <bruno@clisp.org>
glob tests: Fix a warning (regression from 2022-03-23).
* tests/test-glob.c: Include <fcntl.h>.
* modules/glob-tests (Depends-on): Add fcntl-h.
2022-05-14 Bruno Haible <bruno@clisp.org>
termcap: Fix link error when no suitable library is found.
* m4/termcap.m4 (gl_TERMCAP_BODY): If no suitable library is found,
set LIBTERMCAP and LTLIBTERMCAP to empty.
2022-05-13 Paul Eggert <eggert@cs.ucla.edu>
dfa: fix bug with ‘.’ and UTF-8 Hangul Syllables
This fixes a bug introduced in 2019-12-18T05:41:27Z!eggert@cs.ucla.edu,
an earlier patch that fixed dfa.c to not match invalid UTF-8.
Unfortunately that patch had a couple of typos when dfa.c is
matching against the regular expression ‘.’ (dot). One typo
caused dfa.c to incorrectly reject the valid UTF-8 sequences
(ED)(90-9F)(80-BF) corresponding to U+D400 through U+D7FF, which
are some Hangul Syllables and Hangul Jamo Extended-B. The other
typo caused dfa.c to incorrectly reject the valid sequences
(F4)(88-8F)(80-BF)(80-BF) which correspond to U+108000 through
U+10FFFF (Supplemental Private Use Area plane B).
* lib/dfa.c (utf8_classes): Fix typos.
* tests/test-dfa-match.sh: Test the fix.
2022-05-12 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update C warnings for GCC 12
Adjust for C programs compiled by GCC 12.
(A C++ expert still needs to look at manywarnings-c++.m4.)
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 12.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbidi-chars=any,ucn
and -Wuse-after-free=3. Although not enabled by -Wall or -Wextra
they seem suitable for Gnulib-using C code.
2022-05-11 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: remove Emacs cruft
* lib/parse-datetime.y: Remove an ‘ifdef emacs’. Emacs has never
used this module. The module is derived from code taken from
Emacs, but that code was removed from Emacs in the 1990s.
2022-05-11 Bruno Haible <bruno@clisp.org>
alloca: Remove old code for Emacs, unused since 2009.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-05/msg00032.html>.
* lib/alloca.c: Remove Emacs specific code.
2022-05-05 Paul Eggert <eggert@cs.ucla.edu>
libc-config: update to match cdefs
* lib/libc-config.h (__attribute_alloc_align__)
(__attribute_maybe_unused, __fortified_attr_access)
(__glibc_fortify, __glibc_fortify_n, __glibc_likely)
(__glibc_safe_len_cond, __glibc_safe_or_unknown_len)
(__glibc_unsafe_len, __glibc_unsigned_or_positive, __wur):
Undef these too, since lib/cdefs.h now defines them
unconditionally.
cdefs: merge from glibc
* lib/cdefs.h (__glibc_safe_or_unknown_len):
Use glibc’s newer version.
2022-05-02 Paul Eggert <eggert@cs.ucla.edu>
gettime-res: help the compiler
* lib/gettime-res.c (gettime_res): Pacify GCC versions that
incorrectly complain about earlier.tv_sec not being initialized.
Let GCC know that gcd args are always positive.
af_alg: port to Ubuntu 22.04
Without this patch, maintainer builds of coreutils fail on Ubuntu
22.04 with diagnostics like "./lib/gl_openssl.h:79:1: error:
'MD5_Init' is deprecated: Since OpenSSL 3.0
[-Werror=deprecated-declarations]". From
<https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes>
it appears that Gnulib needs to either define OPENSSL_API_COMPAT
to a version less than 3.0, or use a compatibility layer, or
assume OpenSSL 1.1.0 or later. The simplest workaround is to
define OPENSSL_API_COMPAT for 1.1.1, the oldest OpenSSL release
still supported. A better fix would be to rewrite the code to
assume OpenSSL 1.1.1 or later, and stop using the older API.
* lib/md5.h, lib/sha1.h, lib/sha256.h, lib/sha512.h, lib/sm3.h:
Define OPENSSL_API_COMPAT to 0x10101000L to suppress
the deprecation warnings on Ubuntu 22.04.
2022-05-01 Paul Eggert <eggert@cs.ucla.edu>
vasnprintf: Simplify. Reduce binary code size.
* lib/vasnprintf.c (VASNPRINTF): Coalesce cleanup code.
vasnprintf: Simplify 'result' variable.
* lib/vasnprintf.c (VASNPRINTF): Simplify initialization and test of
'result' variable.
vasnprintf: Simplify a free() call.
* lib/vasnprintf.c (divide): Just call
free (x) instead of doing ‘if (x != NULL) free (x);’.
2022-04-30 Bruno Haible <bruno@clisp.org>
string: Avoid syntax error on glibc systems with GCC 11.
Reported by Tom Tromey <tromey@adacore.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00075.html>
and by Satadru Pramanik <satadru@umich.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00076.html>.
* lib/string.in.h (strndup): Don't rededeclare strndup if it is defined
as a macro.
2022-04-28 Simon Marchi <simon.marchi@efficios.com> (tiny change)
stdlib: Fix error in C++ mode on glibc systems (regr. 2022-04-13).
* lib/stdlib.in.h (free): Add exception specification like glibc does.
2022-04-28 Paul Eggert <eggert@cs.ucla.edu>
glob: improve config and test cleanup
Config problem reported by Benno Schulenberg in:
https://lists.gnu.org/r/bug-gnulib/2022-04/msg00071.html
* m4/glob.m4 (gl_GLOB): Clean up temporary file.
Also, name it conf$$-file not conf-file, so it’s cleaned
up on interrupt.
* modules/glob-tests (MOSTLYCLEANFILES):
Append test-glob.tglobfile, test-glob.tgloblink[123].
2022-04-26 Paul Eggert <eggert@cs.ucla.edu>
glob: port to NetBSD 9.2
Problem reported by Benno Schulenberg in:
https://lists.gnu.org/r/bug-gnulib/2022-04/msg00052.html
* doc/posix-functions/dirfd.texi: Document NetBSD 9.2 portability
bugs. Remove an old comment about errno that is no longer true
of POSIX 2018.
* lib/glob.c (glob_in_dir): Convert dirfd arg from void *
to DIR * before passing it to dirfd.
2022-04-21 Paul Eggert <eggert@cs.ucla.edu>
regex: match [...---...] like V7 grep
Problem reported by Arnold Robbins in:
https://bugs.gnu.org/20657
https://lists.gnu.org/r/bug-gnulib/2022-04/msg00053.html
* lib/regcomp.c (peek_token_bracket): Let [...---...] match '-'.
This is an extension to POSIX, and matches V7 Unix grep.
2022-04-20 Paul Eggert <eggert@cs.ucla.edu>
backupfile: fix bug when renaming simple backups
* lib/backupfile.c (backupfile_internal): Fix bug when RENAME
and when doing simple backups. Problem reported by Steve Ward in:
https://bugs.gnu.org/55029
gettime-res: more-robust sampling
* lib/gettime-res.c (gettime_res): If adjacent timestamps are
identical search for a differing timestamp. Also, stop collecting
samples thereafter since they surely won’t help.
2022-04-19 Paul Eggert <eggert@cs.ucla.edu>
Port _GL_HAS_C_ATTRIBUTE to pedantic gcc -std=c99
* m4/gnulib-common.m4 (_GL_HAS_C_ATTRIBUTE):
Disable -Wpedantic if using __has_c_attribute and this is not C2x.
verify: port to pedantic gcc -std=c99
* lib/verify.h (_GL_VERIFY): If we lack both _Static_assert and
static_assert, suppress -Wnexted-externs.
gettime-res: add tests
* modules/gettime-res-tests, tests/test-gettime-res.c: New files.
2022-04-16 Paul Eggert <eggert@cs.ucla.edu>
verify: port to Mac OS 10.7.5
Mac OS 10.7.5 clang sets __clang_major__ to 4 even though it was
derived from Clang 3.2. Problem reported by Werner Lemberg in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00779.html
* lib/verify.h (_GL_HAVE__STATIC_ASSERT): Don’t define to 1
when __clang_major__ == 4 && !__cplusplus
&& __STDC_VERSION__ < 201112L && !defined __STRICT_ANSI__.
2022-04-15 Bruno Haible <bruno@clisp.org>
sigsegv: Fix compilation error on arceb CPUs.
Reported by Fabrice Fontaine <fontaine.fabrice@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-04/msg00028.html>.
* m4/stack-direction.m4 (SV_STACK_DIRECTION): Treat the 'arc' variants
like 'arc'.
2022-04-13 Bruno Haible <bruno@clisp.org>
string, wchar: Fix error in C++ mode on glibc systems with clang.
* lib/string.in.h (free): Add exception specification like glibc does.
* lib/wchar.in.h (free): Likewise.
2022-04-13 Bruno Haible <bruno@clisp.org>
string: Fix errors in C++ mode on glibc systems with clang.
* lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk,
strstr, strcasestr): Use _GL_CXXALIASWARN1 also with clang, and add
exception specification.
2022-04-13 Bruno Haible <bruno@clisp.org>
math: Fix errors in C++ mode on glibc systems with clang.
* lib/math.in.h (GNULIB_NAMESPACE_LACKS_ISFINITE,
GNULIB_NAMESPACE_LACKS_ISINF, GNULIB_NAMESPACE_LACKS_ISNAN,
GNULIB_NAMESPACE_LACKS_SIGNBIT): New macros.
* tests/test-math-c++.cc (isfinite): Skip test if
GNULIB_NAMESPACE_LACKS_ISFINITE is 1.
(isinf): Skip test if GNULIB_NAMESPACE_LACKS_ISINF is 1.
(isnan): Skip test if GNULIB_NAMESPACE_LACKS_ISNAN is 1.
(signbit): Skip test if GNULIB_NAMESPACE_LACKS_SIGNBIT is 1.
2022-04-08 Paul Eggert <eggert@cs.ucla.edu>
libgmp: pacify Clang too
* lib/mini-gmp-gnulib.c [NDEBUG]: Also use -Wunused-variable if clang.
Problem reported for Emacs by Mattias Engdegård.
2022-04-04 Paul Eggert <eggert@cs.ucla.edu>
init.sh: don’t assume gzip
* tests/init.sh (rand_bytes_): Don’t assume gzip is installed.
I found this while testing gzip installation on a platform where I
had removed the installed gzip. gzip is executed only on
platforms lacking mktemp and /dev/urandom so this code is rarely
used; however, these platforms might also lack gzip since gzip
is neither specified by POSIX or required by the GNU Coding Standards.
2022-03-30 Paul Eggert <eggert@cs.ucla.edu>
glob: sync better with glibc
* lib/glob.c (dirfd) [_LIBC]: Use #undef instead of #ifdef.
Problem reported by DJ Delorie.
2022-03-23 Paul Eggert <eggert@cs.ucla.edu>
glob: test for glibc bug 25659
https://sourceware.org/bugzilla/show_bug.cgi?id=25659
* m4/glob.m4 (gl_GLOB): Replace glob if it has bug 25659.
* tests/test-glob.c (main): Test for glibc bug 25659.
glob: fix symlink and // issues; improve speed
* lib/glob.c: Include fcntl.h.
(dirfd) [_LIBC]: New macro.
(GLOB_STAT64, GLOB_LSTAT64): Remove. Replace all uses with ...
(GLOB_FSTATAT64): ... this new macro.
(glob_in_dir): Treat DT_LNK like DT_UNKNOWN.
Use directory-relative fstatat unless GLOB_ALTDIRFUNC, or dirfd fails.
Avoid duplicate strlen (directory).
Work even if directory is "/", without turning it into "//".
Use a scratch buffer instead of by-hand alloca stuff.
Use mempcpy and memcpy instead of stpcpy and strcpy.
* modules/glob (Depends-on): Add dirfd, fstatat. Remove stat.
(License): Change from LGPLv2+ to GPL, since it depends on
fstatat.
2022-03-23 DJ Delorie <dj@redhat.com>
glob: resolve DT_UNKNOWN via is_dir
The DT_* values returned by getdents (readdir) are only hints and
not required. In fact, some Linux filesystems return DT_UNKNOWN
for most entries, regardless of actual type. This causes make
to mis-match patterns with a trailing slash (via GLOB_ONLYDIR)
(see make's functions/wildcard test case). Thus, this patch
detects that case and uses is_dir() to make the type known enough
for proper operation.
Performance in non-DT_UNKNOWN cases is not affected.
The lack of DT_* is a well known issue on older XFS installations
(for example, RHEL 7 and 8, Fedora 28) but can be recreated by
creating an XFS filesystem with flags that mimic older behavior:
$ fallocate -l 10G /xfs.fs
$ mkfs.xfs -n ftype=0 -m crc=0 -f /xfs.fs
$ mkdir /xfs
$ mount -o loop /xfs.fs /xfs
2022-03-20 Jim Meyering <meyering@fb.com>
maint: bootstrap: split a too-long line
* build-aux/bootstrap (git_modules_config): Split longer-than-80 line.
2022-03-14 Simon Josefsson <simon@josefsson.org>
announce-gen: Modernize GnuPG key retrieval suggestions. Based on
patch by Darshit Shah in:
https://lists.gnu.org/archive/html/bug-gnulib/2022-03/msg00022.html
* build-aux/announce-gen (usage): Add --gpg-key-email and
--gpg-keyring-url.
(main): Support the new options.
(main): Don't suggest 'gpg --keyserver' since the situation with
public key servers is complicated and GnuPG version dependent.
maintainer-makefile: Improve GnuPG announce-gen options.
* top/maint.mk (gpg_key_emil): New variable.
(gpg_keyring_url): New variable.
(announcement): Pass them as --gpg-key-email and
--gpg-keyring-url.
2022-03-13 Ben Pfaff <blp@cs.stanford.edu>
Document Automake 1.14 requirement in NEWS, too, since it had been
documented there before for the Automake 1.11 requirement.
* NEWS: Mention the change.
2022-03-13 Bruno Haible <bruno@clisp.org>
sigsegv: Add support for Linux/PowerPC (32-bit) with musl libc.
Reported by Khem Raj <raj.khem@gmail.com> in
<https://lists.gnu.org/archive/html/m4-patches/2022-03/msg00000.html>.
* src/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): In the Linux/PowerPC
32-bit case, handle musl libc differently.
* modules/sigsegv (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
2022-03-11 Paul Eggert <eggert@cs.ucla.edu>
regex: fix double-free
* lib/regex_internal.c (re_dfa_add_node): Don’t free storage
twice if an allocation fails.
regex: fix minor over-allocation
* lib/regexec.c (push_fail_stack): Fix off-by-one error that
over-allocated the stack.
regex: fix free_fail_stack undefined behavior
* lib/regexec.c (push_fail_stack): Don’t increment number of
re_fail_stack_t entries until after successful allocation. This
prevents a crash if re_realloc or re_malloc fails here, and a
later free_fail_stack examines regs or a later pop_fail_stack
examines node. Problem discovered by Coverity scan sent
2022-03-11 11:03:52Z.
2022-03-10 Paul Eggert <eggert@cs.ucla.edu>
fts: revert change to use AT_NO_AUTOMOUNT
* NEWS: Don’t mention AT_NO_AUTOMOUNT.
* lib/fts.c (fts_stat): Don’t use AT_NO_AUTOMOUNT, as
it has no effect with fstatat.
2022-03-09 Paul Eggert <eggert@cs.ucla.edu>
statat: now obsolete
* lib/openat.h (statat, lstatat): Now deprecated.
All uses removed, and replaced with fstatat.
* modules/statat: Mark as obsolete, because it’s confusing:
it’s not clear whether it should use AT_NO_AUTOMOUNT,
which is implied by stat and by lstat, but not by fstatat.
* tests/test-statat.c: Disable deprecated-declarations warnings.
fts: be consistent about AT_NO_AUTOMOUNT
* lib/fts.c (fts_stat): Use fstatat with AT_NO_AUTOMOUNT
consistently, instead of sometimes using stat (which implies
AT_NO_AUTOMOUNT) and sometimes using fstatat without AT_NO_AUTOMOUNT.
Remove a goto while we’re at it.
2022-03-07 Pádraig Brady <P@draigBrady.com>
fcntl-h: add AT_NO_AUTOMOUNT
* lib/fcntl.in.h: Define AT_NO_AUTOMOUNT to 0 where not defined.
This is available on Linux since 2.6.38.
2022-03-01 Paul Eggert <eggert@cs.ucla.edu>
Create lib/Makefile.am after gnulib-comp.m4
* gnulib-tool (func_import): Create library makefile after
creating gnulib-comp.m4. With --gnu-make, the latter depends on
the former. See <https://bugs.gnu.org/32452#109>.
2022-02-26 Paul Eggert <eggert@cs.ucla.edu>
gettime-res: fix unlikely overflow bug
* lib/gettime-res.c (gettime_res): Fix bug when hz * tv_sec overflows.
With 64-bit ‘long’ and nanosecond resolution the bug can occur
starting in the year 2262, with probability about 2e-9.
With 32-bit ‘long’ the bug can occur now, with same probability.
The probability goes up on hosts with worse timestamp resolution.
Document clang -fsanitize=undefined glitch
* doc/gnulib-intro.texi (Unsupported Platforms):
Document incompatibility of ‘clang -fsanitize=undefined’
with Gnulib, and how to work around it by also using
‘-fno-sanitize=pointer-overflow’.
2022-02-25 Darshit Shah <darnir@gnu.org>
modules/unicase/special-casing: Fix compilation error
* modules/unicase/special-casing: Don't prepend $(AM_V_at) to the
second part of a compound command. It causes make to try and
execute the command "@sed" which doesn't exist.
2022-02-25 Paul Eggert <eggert@cs.ucla.edu>
Port __has_attribute to Apple’s Clang renumbering
Problem reported by Kirill A. Korinsky in:
https://lists.gnu.org/r/bug-gnulib/2022-02/msg00034.html
* config/srclist.txt: Comment out sys/cdefs.h for now.
* lib/cdefs.h (__glibc_has_attribute):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Port to Apple’s renumbering of Clang versions.
nanosleep: simplify by using pselect
GNU Emacs avoids Gnulib’s ‘select’ module and uses only pselect,
which it implements in a special way on MS-DOS.
Unfortunately, though, nanosleep uses ‘select’;
problem reported by Lars Ingebrigtsen (Bug#32452#74).
As far as I can tell, Gnulib nanosleep's use of
‘select’ with signals is only for ancient platforms
that Gnulib no longer cares about, so remove that use of ‘select’.
I don’t know of any platforms that still need this fallback code,
but just in case, fall back to pselect instead, while removing
signal handling that it shouldn’t be needed nowadays.
* lib/nanosleep.c: Do not include sig-handler.h, sys/time.h.
(SIGCONT, suspended, sighandler, my_usleep): Remove.
(nanosleep) [!HAVE_BUG_BIG_NANOSLEEP && !(_WIN32 && !__CYGWIN__)]:
Just call pselect.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Do not check for sys/time.h
or call gl_FUNC_SELECT. Do not include sys/time.h or worry
about LIBSOCKET.
(gl_PREREQ_NANOSLEEP): Remove as it’s no longer needed.
All uses removed.
* modules/nanosleep (Depends-on): Add pselect.
Remove select, sigaction, sys_time.
2022-02-24 Paul Eggert <eggert@cs.ucla.edu>
userspec: warn about '.' separator
Problem reported by Dan Jacobson (Bug#44770).
* lib/userspec.c: Don’t include stdbool.h since it’s now in our API.
(parse_user_spec_warn): New function, broken out of parse_user_spec
and with a new PWARN arg.
(parse_user_spec): Use it.
* lib/userspec.h: Include stdbool.h and declare new function.
* tests/test-userspec.c (struct test.in): Now a char array
so that it can be modified.
(T): Make the placeholder a valid test, as that simplifies
the code. Omit NULL placeholder at the end, likewise.
(main): Set up T in the new way, and test that the "." separator
acts like the ":" separator except with a warning if it works.
userspec: no need for static vars
* lib/userspec.c (parse_with_separator): Simplify.
2022-02-22 Benno Schulenberg <bensberg@telfort.nl> (tiny change)
doc: add two missing closing parentheses
* doc/regex.texi (Syntax Bits): Add missing closing parenthesis.
* doc/regex.texi (BSD Regular Expression Compiling): Likewise.
2022-02-22 Simon Josefsson <simon@josefsson.org>
gnulib-tool: Bump automake dependency.
* gnulib-tool (func_emit_lib_Makefile_am)
(func_emit_tests_Makefile_am): Demand Automake ≥ 1.14, for
%reldir%.
2022-02-21 Paul Eggert <eggert@cs.ucla.edu>
close-stream: don't depend on fclose
This reverts 2022-01-26T17:33:03Z!eggert@cs.ucla.edu.
Depending on fclose broke Emacs, and since this dependency didn't
help GNU m4 let's remove it for now. Problem reported by
Lars Ingebrigtsen <https://bugs.gnu.org/32452#47>.
* modules/close-stream (Depends-on): Remove fclose.
2022-02-20 Bruno Haible <bruno@clisp.org>
Document that Automake ≥ 1.14 is needed (regression 2021-12-15).
Reported by Simon Josefsson and Mike Frysinger in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-02/msg00010.html>.
* DEPENDENCIES (Automake): Require version 1.14 or newer.
2022-02-19 Paul Eggert <eggert@cs.ucla.edu>
mktime: improve heuristic for ca-1986 Indiana DST
Problem reported by Mark Krenz <https://bugs.gnu.org/48085>.
* lib/mktime.c (__mktime_internal): Be more generous about
accepting arguments with the wrong value of tm_isdst, by falling
back to a one-hour DST difference if we find no nearby DST that is
unusual. This fixes a problem where "1986-04-28 00:00 EDT" was
rejected when TZ="America/Indianapolis" because the nearest DST
timestamp occurred in 1970, a temporal distance too great for the
old heuristic. This also also narrows the search a bit, which
is a minor performance win.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS):
Check for putenv failures and for Bug#48085.
* tests/test-parse-datetime.c (main):
Test for setenv failures and for Bug#48085.
2022-02-12 Paul Eggert <eggert@cs.ucla.edu>
filevercmp: fix several unexpected results
Problems reported by Michael Debertol in <https://bugs.gnu.org/49239>.
While looking into this, I spotted some more areas where the
code and documentation did not agree, or where the documentation
was unclear. The biggest change needed by coreutils is a new
function filenvercmp that can compare byte strings containing NUL.
* lib/filevercmp.c: Do not include sys/types.h, stdlib.h, string.h.
Include idx.h, verify.h.
(match_suffix): Remove, replacing all uses with calls to ...
(file_prefixlen): ... this new function. Simplify it by
avoiding the need for a confusing READ_ALPHA state variable.
Change its API to something more useful, with a *LEN arg.
it with a new *LEN arg.
(file_prefixlen, verrevcmp):
Prefer idx_t to size_t where either will do.
(order): Change args to S, POS, LEN instead of just S[POS].
This lets us handle NUL bytes correctly. Callers changed.
Verify that ints are sufficiently wide for its API.
(verrevcmp): Don't assume that S1[S1_LEN] is a non-digit,
and likewise for S2[S2_LEN]. The byte might not be accessible
if filenvercmp is being called.
(filevercmp): Reimplement by calling filenvercmp.
(filenvercmp): New function, rewritten without the assumption
that the inputs are null-terminated.
Remove "easy comparison to see if strings are identical", as the
use of it later (a) was undocumented, and (b) caused sort -V to be
unstable. When both strings start with ".", do not skip past
the "."s before looking for suffixes, as this disagreed
with the documentation.
* lib/filevercmp.h: Fix comments, which had many mistakes.
(filenvercmp): New decl.
* modules/filevercmp (Depends-on): Add idx, verify. Remove string.
* tests/test-filevercmp.c: Include string.h.
(examples): Reorder examples ".0" and ".9" that matched the code
but not the documentation. The code has been fixed to match the
documentation. Add some examples involving \1 so that they
can be tried with both \1 and \0. Add some other examples
taken from the bug report.
(equals): New set of test cases.
(sign, test_filevercmp): New functions.
(main): Remove test case where the fixed filevercmp disagrees with
strverscmp. Use test_filevercmp instead of filevercmp, so that
we also test filenvercmp. Test the newly-introduced EQUALS cases.
2022-02-09 Bruno Haible <bruno@clisp.org>
string: Fix "mismatched allocation function" warnings regarding strndup.
* lib/string.in.h (strndup): Mark with _GL_ATTRIBUTE_MALLOC and
_GL_ATTRIBUTE_DEALLOC_FREE. For GCC >= 11: Declare also when the
platform already declares the function or when the module 'strndup' is
not in use.
2022-02-09 Bruno Haible <bruno@clisp.org>
unictype/category-byname: Fix test failure.
* modules/unictype/category-byname (configure.ac): Bump required
libunistring version.
2022-02-06 Bruno Haible <bruno@clisp.org>
termcap, termcap-h: Deprecate.
* modules/termcap (Status, Notice): Add deprecation.
* modules/termcap-h (Status, Notice): Likewise.
2022-02-05 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: allow calculations to yield -1
Problem reported by Jeremy Cantrell <https://bugs.gnu.org/50115>.
* lib/parse-datetime.y (parse_datetime_body): When calling mktime,
use an unmodifed and negative tm_wday or tm_yday to detect an error,
as a (time_t) -1 return value is valid on most hosts.
* tests/test-parse-datetime.c (main): Add a test for the bug.
2022-02-04 Paul Eggert <eggert@cs.ucla.edu>
userspec: help fix GNU ‘id’ incompatibility
* lib/userspec.c (parse_with_separator):
Don’t set *username to a numeric string that is not a user name,
and similarly for *groupname. Needed to fix Bug#53631.
2022-01-30 Pádraig Brady <P@draigBrady.com>
argmatch: add variants that only match full argument
* lib/argmatch.h (argmatch_exact, [X]ARGMATCH_EXACT): New interfaces
that don't allow abbreviations.
* lib/argmatch.c (argmatch_exact): Likewise.
(__xargmatch_internal): Add a bool parameter to disable abbreviations.
* tests/test-argmatch.c: Add tests.
2022-01-30 Bruno Haible <bruno@clisp.org>
tests: Fix interpretation of setupterm's return code.
* tests/test-terminfo.c (main): Test the value of err when setupterm
fails, not when it succeeds.
* tests/test-termcap.c (main): Likewise.
2022-01-30 Bruno Haible <bruno@clisp.org>
terminfo: Add tests.
* tests/test-terminfo.c: New file.
* modules/terminfo-tests: New file.
terminfo, terminfo-h: New modules.
* lib/terminfo.h: New file, from GNU gettext.
* m4/terminfo.m4: New file, from GNU gettext.
* modules/terminfo: New file, from GNU gettext.
* modules/terminfo-h: New file, from GNU gettext.
2022-01-30 Bruno Haible <bruno@clisp.org>
termcap: Add tests.
* tests/test-termcap.c: New file.
* modules/termcap-tests: New file.
termcap, termcap-h: New modules.
* lib/termcap.h: New file, from GNU gettext.
* lib/tparm.c: New file, from GNU gettext.
* lib/tputs.c: New file, from GNU gettext.
* m4/termcap.m4: New file, from GNU gettext.
* m4/curses.m4: New file, from GNU gettext.
* modules/termcap: New file, from GNU gettext.
* modules/termcap-h: New file, from GNU gettext.
2022-01-29 Bruno Haible <bruno@clisp.org>
doc: Clarify MSVC support.
* doc/gnulib-intro.texi (Supported Platforms): Document that "debug"
builds are unsupported.
2022-01-28 Pádraig Brady <P@draigBrady.com>
maintainer-makefile: fix sc_error_message_uppercase false failure
* top/maint.mk (sc_error_message_uppercase): Don't trigger for
any of the PRI... defines.
2022-01-27 Paul Eggert <eggert@cs.ucla.edu>
alignalloc: work around AddressSanitizer bug
* doc/posix-functions/aligned_alloc.texi (aligned_alloc):
Mention AddressSanitizer bug.
* lib/alignalloc.h (ALIGNALLOC_VIA_ALIGNED_ALLOC):
Define to 0 if AddressSanitizer is in use.
* tests/test-alignalloc.c (test_alignalloc): New function,
which tests for non-aligned sizes too.
(main): Use it. Don’t bother checking for alignments
greater than 16 MiB, as this flummoxes AddressSanitizer
and there seems little point to testing them.
doc: use UTF-8 encoding
* doc/gnulib.texi: Use ‘@documentencoding UTF-8’.
Partly this is because there are a few UTF-8 characters
in the .texi files and there seems little point nowadays
to @U-ifiying them. And partly it is so that the .info
output uses nicer UTF-8 characters, e.g., it single-quotes
‘like this’ instead of 'like this'.
maint: Update copyright notices
* build-aux/announce-gen, build-aux/declared.sh:
* build-aux/git-version-gen, build-aux/gitlog-to-changelog:
* build-aux/gnu-web-doc-update, build-aux/gnupload:
* build-aux/increment-serial, build-aux/libtool-next-version:
* build-aux/useless-if-before-free:
Update some copyright notices by hand, that were not
updated automatically.
2022-01-26 Paul Eggert <eggert@cs.ucla.edu>
calloc-gnu: fix misspelling in 2022-01-03 patch
Problem reported by Thien-Thi Nguyen in:
https://lists.gnu.org/r/bug-gnulib/2022-01/msg00170.html
* modules/calloc-gnu (Depends-on):
* modules/calloc-posix (Depends-on):
Fix misspelling of REPLACE_CALLOC_FOR_CALLOC_POSIX.
close-stream: avoid crash on MSVC Debug mode
Problem reported by Julien Marrec in:
https://lists.gnu.org/r/bug-m4/2022-01/msg00000.html
* modules/close-stream (Depends-on): Depend on fclose.
2022-01-23 Paul Eggert <eggert@cs.ucla.edu>
xstrtoimax, xstrtoumax: depend on inttypes-incomplete
This fixes a call to strtoimax without declaring it,
and similarly for strtoumax.
* lib/xstrtoimax.c, lib/xstrtoumax.c (XSTRTOL_INCLUDE_INTTYPES_H):
Define, so that strtoimax and strtoumax are declared.
* lib/xstrtol.c [XSTRTOL_INCLUDE_INTTYPES_H]: Include inttypes.h.
* modules/xstrtoimax, modules/xstrtoumax (Depends-on):
Add inttypes-incomplete.
alignalloc, xalignalloc: new modules
* lib/alignalloc.c, lib/alignalloc.h, lib/xalignalloc.c:
* m4/alignalloc.m4, modules/alignalloc, modules/alignalloc-tests:
* modules/xalignalloc, tests/test-alignalloc.c:
New files.
2022-01-17 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: improve macOS port
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Define HAVE___HEADER_INLINE at configure-time, so that config.h
knows the workaround is not needed even though ctype.h has not yet
been included. This lets the compiler use extern inline functions
on newer macOS platforms, instead of static inline.
Problem reported by Reuben Thomas in:
https://lists.gnu.org/r/bug-gnulib/2022-01/msg00130.html
2022-01-17 Bruno Haible <bruno@clisp.org>
xstrtol: Trim dependencies.
* lib/xstrtol.h: Include <stdint.h>, not <inttypes.h>.
* modules/xstrtol (Depends-on): Add stdint. Remove inttypes-incomplete.
2022-01-17 Bruno Haible <bruno@clisp.org>
xstrtol: Fix compilation error (regression 2022-01-16).
* modules/xstrtol (Depends-on): Add intprops.
2022-01-17 Jim Meyering <meyering@fb.com>
xstrtol: remove unnecessary else after return
* lib/xstrtol.c (bkm_scale): Drop "else" after return.
2022-01-16 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: simplify integer overflow checking
* lib/xstrtol.c: Include intprops.h.
(TYPE_SIGNED): Remove, as intprops.h defines that for us now.
(bkm_scale): Use INT_MULTIPLY_WRAPV instead of checking for
overflow by hand.
xstrtoll-tests: use %lld for long long
* tests/test-xstrtoll.c, tests/test-xstrtoull.c (__spec):
Do not assume long long is 64 bits, or that exact-width
64-bit types exist. Although these assumptions are true
on current Gnulib platforms they are not true in general.
Also, GCC warns if PRId64 is "ld" but intmax_t is long long
even when long and long long are both 64 bits.
2022-01-15 Bruno Haible <bruno@clisp.org>
Don't pass unknown warning option to clang.
Reported by Assaf Gordon via Paul Eggert in
<https://lists.gnu.org/archive/html/coreutils/2022-01/msg00018.html>.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don't use
-Wno-unsuffixed-float-constants with clang.
2022-01-15 Bruno Haible <bruno@clisp.org>
log tests: Avoid test failure with nvc 22.1.
* tests/test-log.h (test_function): With nvc, expect up to 4 ulps error.
2022-01-15 Bruno Haible <bruno@clisp.org>
havelib: Recognize ELF platform despite nvc 22.1.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Recognize Linux as an ELF
platform, even with a compiler that does not define __ELF__.
2022-01-15 Bruno Haible <bruno@clisp.org>
oset-c++: Avoid compilation error with nvc++ 22.1.
* lib/gl_oset.hh: With EDG C++ compilers, avoid 'friend'.
2022-01-14 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: pacify nvc 22.1 unreachable statement
* lib/nstrftime.c (__strftime_internal):
Omit unreachable ‘break;’.
tests: pacify nvc 22.1 unreachable statement
* tests/test-sys_wait.h (test_sys_wait_macros):
Widen scope of ‘#if 0’ so that there is not an unreachable ‘break;’.
tests: pacify nvc 22.1 set-but-not-used
* tests/test-fnmatch.c (main): Don’t set a var without using it.
* tests/test-sched.c (f1): Now extern.
intprops: work around nvc 22.1 bug
Problem reported by Olivier Cessenat (Bug#53256).
* lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW) [__EDG__]:
Define to 0, since __builtin_add_overflow doesn’t work
on NVIDIA HPC SDK 22.1.
copy-file-range: work around Linux kernel bug
This workaround is adapted from Coreutils.
* lib/copy-file-range.c [__linux__ && HAVE_COPY_FILE_RANGE]:
Include <sys/utsname.h>.
(copy_file_range): Use a stub to replace the copy_file_range of
Linux kernel versions 4.5 through 5.2.
* lib/unistd.in.h (copy_file_range):
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS):
* modules/copy-file-range (configure.ac):
* modules/unistd (unistd.h):
Support replacement of copy_file_range.
* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE):
Define HAVE_COPY_FILE_RANGE if the system has copy_file_range,
and on Linux check whether the system’s is known to work.
2022-01-14 Bruno Haible <bruno@clisp.org>
Avoid error "conditional LIBUNISTRING_COMPILE_... was never defined"
when option --conditional-dependencies is used (regression 2022-01-09).
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-01/msg00099.html>.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE): Use gl_CONDITIONAL
instead of AM_CONDITIONAL.
2022-01-13 Bruno Haible <bruno@clisp.org>
Avoid warning "_GL_ATTRIBUTE_DEALLOC_FREE redefined" (regr. 2022-01-04).
Reported by Werner Lemberg <wl@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-01/msg00094.html>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Avoid redefining
_GL_ATTRIBUTE_DEALLOC_FREE.
2022-01-10 Paul Eggert <eggert@cs.ucla.edu>
backupfile: fix bug when renaming not from wd
* lib/backupfile.c (backupfile_internal): Fix bug when DIR_FD
does not specify the working directory, and when RENAME.
Without the bug fix, FILE is treated as relative to the working
directory, not relative to DIR_FD, when renaming FILE.
This bug was introduced when DIR_FD and RENAME were introduced,
in 2018-10-24T02:10:21Z!eggert@cs.ucla.edu.
While we’re at it, when SDIR is nonnegative improve performance a
bit by passing an SDIR-relative old name to renameatu.
2022-01-09 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Add support for LoongArch64 CPU.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Define __loongarch64__. (GCC
and clang predefine only __loongarch__, __loongarch64.)
2022-01-09 Bruno Haible <bruno@clisp.org>
stdio: Fix "missing file" errors (regression from today).
* modules/stdio (Files): Add stdio-read.c, stdio-write.c.
* m4/stdio_h.m4 (gl_STDIO_H): Update comments.
2022-01-09 Bruno Haible <bruno@clisp.org>
Use the GL_CFLAG_GNULIB_WARNINGS for most AC_LIBOBJ compilation units.
* modules/_Exit (configure.ac): Define an Automake conditional. Remove
the AC_LIBOBJ invocation.
(Makefile.am): Augment lib_SOURCES, guarded by that Automake
conditional.
* modules/accept: Likewise.
* modules/access: Likewise.
* modules/acosf: Likewise.
* modules/acosl: Likewise.
* modules/aligned_alloc: Likewise.
* modules/alphasort: Likewise.
* modules/argz: Likewise.
* modules/asinf: Likewise.
* modules/asinl: Likewise.
* modules/atan2f: Likewise.
* modules/atanf: Likewise.
* modules/atanl: Likewise.
* modules/atexit: Likewise.
* modules/atoll: Likewise.
* modules/bind: Likewise.
* modules/btowc: Likewise.
* modules/c32rtomb: Likewise.
* modules/canonicalize-lgpl: Likewise.
* modules/cbrt: Likewise.
* modules/cbrtf: Likewise.
* modules/cbrtl: Likewise.
* modules/ceil: Likewise.
* modules/ceilf: Likewise.
* modules/ceill: Likewise.
* modules/chdir-long: Likewise.
* modules/chown: Likewise.
* modules/close: Likewise.
* modules/closedir: Likewise.
* modules/cnd: Likewise.
* modules/connect: Likewise.
* modules/copy-file-range: Likewise.
* modules/copysign: Likewise.
* modules/copysignf: Likewise.
* modules/copysignl: Likewise.
* modules/cosf: Likewise.
* modules/coshf: Likewise.
* modules/cosl: Likewise.
* modules/creat: Likewise.
* modules/crypto/gc: Likewise.
* modules/ctime: Likewise.
* modules/dirfd: Likewise.
* modules/dup: Likewise.
* modules/dup2: Likewise.
* modules/duplocale: Likewise.
* modules/error: Likewise.
* modules/euidaccess: Likewise.
* modules/execinfo: Likewise.
* modules/execl: Likewise.
* modules/execle: Likewise.
* modules/execlp: Likewise.
* modules/execv: Likewise.
* modules/execve: Likewise.
* modules/execvp: Likewise.
* modules/execvpe: Likewise.
* modules/exp2: Likewise.
* modules/exp2f: Likewise.
* modules/exp2l: Likewise.
* modules/expf: Likewise.
* modules/expl: Likewise.
* modules/explicit_bzero: Likewise.
* modules/expm1: Likewise.
* modules/expm1f: Likewise.
* modules/expm1l: Likewise.
* modules/fabsf: Likewise.
* modules/fabsl: Likewise.
* modules/faccessat: Likewise.
* modules/fchdir: Likewise.
* modules/fchmodat: Likewise.
* modules/fchownat: Likewise.
* modules/fclose: Likewise.
* modules/fcntl: Likewise.
* modules/fdatasync: Likewise.
* modules/fdopen: Likewise.
* modules/fdopendir: Likewise.
* modules/fflush: Likewise.
* modules/ffs: Likewise.
* modules/ffsl: Likewise.
* modules/ffsll: Likewise.
* modules/fileblocks: Likewise.
* modules/float: Likewise.
* modules/flock: Likewise.
* modules/floor: Likewise.
* modules/floorf: Likewise.
* modules/floorl: Likewise.
* modules/fma: Likewise.
* modules/fmaf: Likewise.
* modules/fmal: Likewise.
* modules/fmod: Likewise.
* modules/fmodf: Likewise.
* modules/fmodl: Likewise.
* modules/forkpty: Likewise.
* modules/fpending: Likewise.
* modules/fpurge: Likewise.
* modules/freadable: Likewise.
* modules/freadahead: Likewise.
* modules/freadptr: Likewise.
* modules/free-posix: Likewise.
* modules/freopen: Likewise.
* modules/frexpf: Likewise.
* modules/fseek: Likewise.
* modules/fseeko: Likewise.
* modules/fseterr: Likewise.
* modules/fstat: Likewise.
* modules/fstatat: Likewise.
* modules/fsusage: Likewise.
* modules/fsync: Likewise.
* modules/ftell: Likewise.
* modules/ftello: Likewise.
* modules/ftruncate: Likewise.
* modules/fts: Likewise.
* modules/futimens: Likewise.
* modules/fwritable: Likewise.
* modules/fwriting: Likewise.
* modules/getaddrinfo: Likewise.
* modules/getcwd: Likewise.
* modules/getcwd-lgpl: Likewise.
* modules/getdelim: Likewise.
* modules/getdomainname: Likewise.
* modules/getdtablesize: Likewise.
* modules/getentropy: Likewise.
* modules/getgroups: Likewise.
* modules/gethostname: Likewise.
* modules/getline: Likewise.
* modules/getloadavg: Likewise.
* modules/getlogin: Likewise.
* modules/getlogin_r: Likewise.
* modules/getopt-posix: Likewise.
* modules/getpagesize: Likewise.
* modules/getpeername: Likewise.
* modules/getrandom: Likewise.
* modules/getrusage: Likewise.
* modules/getsockname: Likewise.
* modules/getsockopt: Likewise.
* modules/getsubopt: Likewise.
* modules/gettimeofday: Likewise.
* modules/getumask: Likewise.
* modules/getusershell: Likewise.
* modules/glob: Likewise.
* modules/grantpt: Likewise.
* modules/group-member: Likewise.
* modules/hypot: Likewise.
* modules/hypotf: Likewise.
* modules/hypotl: Likewise.
* modules/iconv_open: Likewise.
* modules/ilogb: Likewise.
* modules/ilogbf: Likewise.
* modules/ilogbl: Likewise.
* modules/imaxabs: Likewise.
* modules/imaxdiv: Likewise.
* modules/inet_ntop: Likewise.
* modules/inet_pton: Likewise.
* modules/ioctl: Likewise.
* modules/isapipe: Likewise.
* modules/isatty: Likewise.
* modules/isblank: Likewise.
* modules/isfinite: Likewise.
* modules/isinf: Likewise.
* modules/iswblank: Likewise.
* modules/iswctype: Likewise.
* modules/iswdigit: Likewise.
* modules/iswxdigit: Likewise.
* modules/lchmod: Likewise.
* modules/lchown: Likewise.
* modules/ldexpf: Likewise.
* modules/ldexpl: Likewise.
* modules/libgmp: Likewise.
* modules/link: Likewise.
* modules/linkat: Likewise.
* modules/listen: Likewise.
* modules/localeconv: Likewise.
* modules/localtime: Likewise.
* modules/log: Likewise.
* modules/log10: Likewise.
* modules/log10f: Likewise.
* modules/log10l: Likewise.
* modules/log1p: Likewise.
* modules/log1pf: Likewise.
* modules/log1pl: Likewise.
* modules/log2: Likewise.
* modules/log2f: Likewise.
* modules/log2l: Likewise.
* modules/logb: Likewise.
* modules/logbf: Likewise.
* modules/logbl: Likewise.
* modules/logf: Likewise.
* modules/login_tty: Likewise.
* modules/logl: Likewise.
* modules/lseek: Likewise.
* modules/lstat: Likewise.
* modules/mbrlen: Likewise.
* modules/mbrtoc32: Likewise.
* modules/mbrtowc: Likewise.
* modules/mbsinit: Likewise.
* modules/mbsnrtowcs: Likewise.
* modules/mbsrtowcs: Likewise.
* modules/mbtowc: Likewise.
* modules/memalign: Likewise.
* modules/memchr: Likewise.
* modules/memcmp: Likewise.
* modules/memcpy: Likewise.
* modules/memmove: Likewise.
* modules/mempcpy: Likewise.
* modules/memrchr: Likewise.
* modules/memset: Likewise.
* modules/mkdir: Likewise.
* modules/mkdirat: Likewise.
* modules/mkdtemp: Likewise.
* modules/mkfifo: Likewise.
* modules/mkfifoat: Likewise.
* modules/mknod: Likewise.
* modules/mkostemp: Likewise.
* modules/mkostemps: Likewise.
* modules/mkstemp: Likewise.
* modules/mkstemps: Likewise.
* modules/modf: Likewise.
* modules/modff: Likewise.
* modules/modfl: Likewise.
* modules/mountlist: Likewise.
* modules/msvc-inval: Likewise.
* modules/msvc-nothrow: Likewise.
* modules/mtx: Likewise.
* modules/nanosleep: Likewise.
* modules/nl_langinfo: Likewise.
* modules/obstack: Likewise.
* modules/open: Likewise.
* modules/openat: Likewise.
* modules/opendir: Likewise.
* modules/openpty: Likewise.
* modules/pclose: Likewise.
* modules/perror: Likewise.
* modules/pipe-posix: Likewise.
* modules/poll: Likewise.
* modules/popen: Likewise.
* modules/posix_memalign: Likewise.
* modules/posix_openpt: Likewise.
* modules/posix_spawn: Likewise.
* modules/posix_spawn-internal: Likewise.
* modules/posix_spawn_file_actions_addchdir: Likewise.
* modules/posix_spawn_file_actions_addclose: Likewise.
* modules/posix_spawn_file_actions_adddup2: Likewise.
* modules/posix_spawn_file_actions_addfchdir: Likewise.
* modules/posix_spawn_file_actions_addopen: Likewise.
* modules/posix_spawn_file_actions_destroy: Likewise.
* modules/posix_spawn_file_actions_init: Likewise.
* modules/posix_spawnattr_destroy: Likewise.
* modules/posix_spawnattr_getflags: Likewise.
* modules/posix_spawnattr_getpgroup: Likewise.
* modules/posix_spawnattr_getschedparam: Likewise.
* modules/posix_spawnattr_getschedpolicy: Likewise.
* modules/posix_spawnattr_getsigdefault: Likewise.
* modules/posix_spawnattr_getsigmask: Likewise.
* modules/posix_spawnattr_init: Likewise.
* modules/posix_spawnattr_setflags: Likewise.
* modules/posix_spawnattr_setpgroup: Likewise.
* modules/posix_spawnattr_setschedparam: Likewise.
* modules/posix_spawnattr_setschedpolicy: Likewise.
* modules/posix_spawnattr_setsigdefault: Likewise.
* modules/posix_spawnattr_setsigmask: Likewise.
* modules/posix_spawnp: Likewise.
* modules/powf: Likewise.
* modules/pread: Likewise.
* modules/pselect: Likewise.
* modules/pthread-cond: Likewise.
* modules/pthread-mutex: Likewise.
* modules/pthread-once: Likewise.
* modules/pthread-rwlock: Likewise.
* modules/pthread-spin: Likewise.
* modules/pthread-thread: Likewise.
* modules/pthread-tss: Likewise.
* modules/pthread_mutex_timedlock: Likewise.
* modules/pthread_sigmask: Likewise.
* modules/ptsname: Likewise.
* modules/ptsname_r: Likewise.
* modules/putenv: Likewise.
* modules/pwrite: Likewise.
* modules/qsort_r: Likewise.
* modules/raise: Likewise.
* modules/random: Likewise.
* modules/random_r: Likewise.
* modules/rawmemchr: Likewise.
* modules/read: Likewise.
* modules/readdir: Likewise.
* modules/readline: Likewise.
* modules/readlink: Likewise.
* modules/readlinkat: Likewise.
* modules/readutmp: Likewise.
* modules/reallocarray: Likewise.
* modules/recv: Likewise.
* modules/recvfrom: Likewise.
* modules/regex: Likewise.
* modules/relocatable-prog: Likewise.
* modules/remainder: Likewise.
* modules/remainderf: Likewise.
* modules/remainderl: Likewise.
* modules/remove: Likewise.
* modules/rename: Likewise.
* modules/renameat: Likewise.
* modules/rewinddir: Likewise.
* modules/rint: Likewise.
* modules/rintf: Likewise.
* modules/rintl: Likewise.
* modules/rmdir: Likewise.
* modules/round: Likewise.
* modules/roundf: Likewise.
* modules/roundl: Likewise.
* modules/rpmatch: Likewise.
* modules/scandir: Likewise.
* modules/sched_yield: Likewise.
* modules/secure_getenv: Likewise.
* modules/select: Likewise.
* modules/selinux-h: Likewise.
* modules/send: Likewise.
* modules/sendto: Likewise.
* modules/setenv: Likewise.
* modules/sethostname: Likewise.
* modules/setlocale: Likewise.
* modules/setlocale-null: Likewise.
* modules/setsockopt: Likewise.
* modules/shutdown: Likewise.
* modules/sig2str: Likewise.
* modules/sigabbrev_np: Likewise.
* modules/sigaction: Likewise.
* modules/sigdescr_np: Likewise.
* modules/signbit: Likewise.
* modules/sigprocmask: Likewise.
* modules/sinf: Likewise.
* modules/sinhf: Likewise.
* modules/sinl: Likewise.
* modules/sleep: Likewise.
* modules/socket: Likewise.
* modules/spawn-pipe: Likewise.
* modules/sqrtf: Likewise.
* modules/sqrtl: Likewise.
* modules/stat: Likewise.
* modules/stdio: Likewise.
* modules/stpcpy: Likewise.
* modules/stpncpy: Likewise.
* modules/strcase: Likewise.
* modules/strchrnul: Likewise.
* modules/strcspn: Likewise.
* modules/strdup-posix: Likewise.
* modules/strerror: Likewise.
* modules/strerror-override: Likewise.
* modules/strerrorname_np: Likewise.
* modules/strfmon_l: Likewise.
* modules/strftime-fixes: Likewise.
* modules/strncat: Likewise.
* modules/strndup: Likewise.
* modules/strnlen: Likewise.
* modules/strpbrk: Likewise.
* modules/strptime: Likewise.
* modules/strsep: Likewise.
* modules/strsignal: Likewise.
* modules/strtod: Likewise.
* modules/strtoimax: Likewise.
* modules/strtok_r: Likewise.
* modules/strtol: Likewise.
* modules/strtold: Likewise.
* modules/strtoll: Likewise.
* modules/strtoul: Likewise.
* modules/strtoull: Likewise.
* modules/strtoumax: Likewise.
* modules/strverscmp: Likewise.
* modules/symlink: Likewise.
* modules/symlinkat: Likewise.
* modules/tanf: Likewise.
* modules/tanhf: Likewise.
* modules/tanl: Likewise.
* modules/tcgetsid: Likewise.
* modules/thrd: Likewise.
* modules/time_r: Likewise.
* modules/time_rz: Likewise.
* modules/timegm: Likewise.
* modules/times: Likewise.
* modules/timespec_get: Likewise.
* modules/timespec_getres: Likewise.
* modules/tmpfile: Likewise.
* modules/towctrans: Likewise.
* modules/trunc: Likewise.
* modules/truncate: Likewise.
* modules/truncf: Likewise.
* modules/truncl: Likewise.
* modules/tsearch: Likewise.
* modules/tss: Likewise.
* modules/ttyname_r: Likewise.
* modules/tzset: Likewise.
* modules/uname: Likewise.
* modules/unlink: Likewise.
* modules/unlinkat: Likewise.
* modules/unlockpt: Likewise.
* modules/unsetenv: Likewise.
* modules/usleep: Likewise.
* modules/utime: Likewise.
* modules/utimensat: Likewise.
* modules/waitpid: Likewise.
* modules/wcpcpy: Likewise.
* modules/wcpncpy: Likewise.
* modules/wcrtomb: Likewise.
* modules/wcscasecmp: Likewise.
* modules/wcscat: Likewise.
* modules/wcschr: Likewise.
* modules/wcscmp: Likewise.
* modules/wcscoll: Likewise.
* modules/wcscpy: Likewise.
* modules/wcscspn: Likewise.
* modules/wcsdup: Likewise.
* modules/wcsftime: Likewise.
* modules/wcslen: Likewise.
* modules/wcsncasecmp: Likewise.
* modules/wcsncat: Likewise.
* modules/wcsncmp: Likewise.
* modules/wcsncpy: Likewise.
* modules/wcsnlen: Likewise.
* modules/wcsnrtombs: Likewise.
* modules/wcspbrk: Likewise.
* modules/wcsrchr: Likewise.
* modules/wcsrtombs: Likewise.
* modules/wcsspn: Likewise.
* modules/wcsstr: Likewise.
* modules/wcstok: Likewise.
* modules/wcswidth: Likewise.
* modules/wcsxfrm: Likewise.
* modules/wctob: Likewise.
* modules/wctomb: Likewise.
* modules/wctrans: Likewise.
* modules/wctype: Likewise.
* modules/wcwidth: Likewise.
* modules/windows-cond: Likewise.
* modules/windows-mutex: Likewise.
* modules/windows-once: Likewise.
* modules/windows-recmutex: Likewise.
* modules/windows-rwlock: Likewise.
* modules/windows-spawn: Likewise.
* modules/windows-spin: Likewise.
* modules/windows-thread: Likewise.
* modules/windows-timedmutex: Likewise.
* modules/windows-timedrecmutex: Likewise.
* modules/windows-timedrwlock: Likewise.
* modules/windows-tls: Likewise.
* modules/wmemchr: Likewise.
* modules/wmemcmp: Likewise.
* modules/wmemcpy: Likewise.
* modules/wmemmove: Likewise.
* modules/wmempcpy: Likewise.
* modules/wmemset: Likewise.
* modules/write: Likewise.
2022-01-09 Bruno Haible <bruno@clisp.org>
obstack: Move AC_LIBOBJ invocation to the module description.
* m4/obstack.m4 (gl_FUNC_OBSTACK): Renamed from AC_FUNC_OBSTACK. Don't
invoke AC_LIBSOURCES nor AC_LIBOBJ.
* modules/obstack (configure.ac): Update. Invoke AC_LIBOBJ here.
2022-01-09 Bruno Haible <bruno@clisp.org>
stdio: Move AC_LIBOBJ invocations to the module description.
* m4/stdio_h.m4 (gl_STDIO_H): Don't invoke AC_LIBOBJ.
* modules/stdio (configure.ac): Invoke AC_LIBOBJ here.
2022-01-09 Bruno Haible <bruno@clisp.org>
fchdir: Move AC_LIBOBJ invocation to the module description.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke AC_LIBOBJ and
gl_PREREQ_FCHDIR.
* modules/fchdir (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_FCHDIR.
2022-01-09 Bruno Haible <bruno@clisp.org>
Remove influence of Automake conditionals on conditional dependencies.
* m4/gnulib-common.m4 (gl_CONDITIONAL): New macro.
(gl_CONDITIONAL_HEADER): Use it instead of AM_CONDITIONAL.
* m4/libgmp.m4 (gl_LIBGMP): Likewise.
* modules/posix_spawn_file_actions_addfchdir-tests (configure.ac):
Likewise.
* modules/uchar-c++-tests (configure.ac): Likewise.
* gnulib-tool (func_modules_transitive_closure): Don't inhibit
conditional dependencies processing on a module that uses an Automake
conditional.
2022-01-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix "Don't forget" messages (regression 2021-12-12).
* gnulib-tool (func_import): Fix variable references in "Don't forget"
messages.
2022-01-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove all *.Po files upon distclean (regr. 2022-01-05).
Reported by Mohammad Akhlaghi <mohammad@akhlaghi.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-01/msg00061.html>.
* gnulib-tool (func_emit_initmacro_end): Collect the *.Po or *.Plo files
to remove into an AC_SUBSTed variable gl_LIBOBJDEPS.
(func_emit_lib_Makefile_am): Extend the distclean and maintainer-clean
rules.
2022-01-08 Bruno Haible <bruno@clisp.org>
Add another example.
* examples/hello-c-gnulib-conddeps: New directory.
2022-01-08 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
c-stack: Adapt header file for use in C++ applications.
* lib/c-stack.h: Add extern "C" block.
2022-01-08 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
version-etc: Adapt header file for use in C++ applications.
* lib/version-etc.h: Add extern "C" block.
2022-01-07 Bruno Haible <bruno@clisp.org>
sigsegv: Improve support for Linux/LoongArch64.
* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): Add special case for
Linux/LoongArch.
2022-01-05 Glenn Washburn <development@efficientek.com>
bootstrap: When a commit is specified, do a shallow fetch if possible.
Rationale and explanation:
<https://lists.gnu.org/archive/html/bug-gnulib/2021-10/msg00073.html>.
* bootstrap: When a commit hash is specified, ask for this specific
commit on fetch, and fallback to fetching the entire repository if
fetching by commit hash fails.
2022-01-05 Paul Eggert <eggert@cs.ucla.edu>
stack: pacify gcc -Wsign-compare
* lib/stack.h (_GL_STACK_TYPE): Use idx_t for size too.
Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-01/msg00035.html
(_GL_STACK_PREFIX (size)): Return idx_t, not size_t.
2022-01-05 Bruno Haible <bruno@clisp.org>
Fix last commit.
Based on a patch by José E. Marchesi <jemarch@gnu.org>, reported in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-01/msg00036.html>.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don't enable
-Wimplicit-fallthrough for GCC < 7.
2022-01-05 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid known warnings that reflect Gnulib's coding style.
* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): New macro.
* gnulib-tool (func_emit_lib_Makefile_am): Add the
GL_CFLAG_GNULIB_WARNINGS to the CFLAGS of all the compilation units of
the library.
(func_emit_tests_Makefile_am): Add the GL_CFLAG_GNULIB_WARNINGS to the
CFLAGS.
(func_import): Emit an invocation of gl_CC_GNULIB_WARNINGS.
2022-01-04 Bernhard Voelker <mail@bernhard-voelker.de>
license: fix GPLv3 texts to use a comma instead of semicolon.
See: https://www.gnu.org/licenses/gpl-3.0.html#howto
Run:
$ git grep -l 'Foundation; either version 3' \
| xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/'
* All files using GPLv3: Adjust via the above command.
2022-01-04 Bruno Haible <bruno@clisp.org>
string, wchar: Fix compilation error on MSVC (regression 2021-09-07).
* lib/string.in.h (free): Don't redeclare as rpl_free. Instead, redefine
_GL_ATTRIBUTE_DEALLOC_FREE to reference rpl_free directly.
* lib/wchar.in.h (free): Likewise.
2022-01-03 Bruno Haible <bruno@clisp.org>
getpass-gnu: Allow use as dependency from test modules.
* m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Set
REPLACE_GETPASS_FOR_GETPASS_GNU instead of REPLACE_GETPASS.
* m4/unistd_h.m4 (gl_UNISTD_H_REQUIRE_DEFAULTS): Initialize the
getpass-gnu module indicator.
(gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETPASS_FOR_GETPASS_GNU.
* modules/unistd (Makefile.am): Substitute GNULIB_GETPASS_GNU,
REPLACE_GETPASS_FOR_GETPASS_GNU.
* modules/getpass-gnu (configure.ac): Test
REPLACE_GETPASS_FOR_GETPASS_GNU instead of REPLACE_GETPASS. Set a module
indicator.
* lib/unistd.in.h (getpass): Test REPLACE_GETPASS,
REPLACE_GETPASS_FOR_GETPASS_GNU, and the respective module indicators
instead of just REPLACE_GETPASS.
2022-01-03 Bruno Haible <bruno@clisp.org>
fopen-gnu: Allow use as dependency from test modules.
* m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Set REPLACE_FOPEN_FOR_FOPEN_GNU
instead of REPLACE_FOPEN.
* m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize the fopen-gnu
module indicator.
(gl_STDIO_H_DEFAULTS): Initialize REPLACE_FOPEN_FOR_FOPEN_GNU.
* modules/stdio (Makefile.am): Substitute GNULIB_FOPEN_GNU,
REPLACE_FOPEN_FOR_FOPEN_GNU.
* modules/fopen-gnu (Depends-on): Add more dependencies.
(configure.ac): Test REPLACE_FOPEN_FOR_FOPEN_GNU instead of
REPLACE_FOPEN.
* lib/stdio.in.h (fopen): Test REPLACE_FOPEN,
REPLACE_FOPEN_FOR_FOPEN_GNU, and the respective module indicators
instead of just REPLACE_FOPEN.
2022-01-03 Bruno Haible <bruno@clisp.org>
realloc-gnu: Allow use as dependency from test modules.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Set
REPLACE_REALLOC_FOR_REALLOC_GNU instead of REPLACE_REALLOC.
(gl_FUNC_REALLOC_POSIX): Set REPLACE_REALLOC_FOR_REALLOC_POSIX instead
of REPLACE_REALLOC.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the
realloc-gnu module indicator.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_REALLOC_FOR_REALLOC_GNU,
REPLACE_REALLOC_FOR_REALLOC_POSIX, not REPLACE_REALLOC.
* modules/stdlib (Makefile.am): Substitute GNULIB_REALLOC_GNU,
REPLACE_REALLOC_FOR_REALLOC_GNU, REPLACE_REALLOC_FOR_REALLOC_POSIX, not
REPLACE_REALLOC.
* modules/realloc-posix (Depends-on, configure.ac): Test
REPLACE_REALLOC_FOR_REALLOC_POSIX instead of REPLACE_REALLOC.
* modules/realloc-gnu (Comment): Remove section.
(Depends-on): Add free-posix, malloc-gnu, xalloc-oversized.
(configure.ac): Test REPLACE_REALLOC_FOR_REALLOC_GNU instead of
REPLACE_REALLOC. Set a module indicator.
* lib/stdlib.in.h (realloc): Test REPLACE_REALLOC_FOR_REALLOC_POSIX,
REPLACE_REALLOC_FOR_REALLOC_GNU, and the respective module indicators
instead of just REPLACE_REALLOC.
2022-01-03 Bruno Haible <bruno@clisp.org>
calloc-gnu: Allow use as dependency from test modules.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Set REPLACE_CALLOC_FOR_CALLOC_GNU
instead of REPLACE_CALLOC.
(gl_FUNC_CALLOC_POSIX): Set REPLACE_CALLOC_FOR_CALLOC_POSIX instead of
REPLACE_CALLOC.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the
calloc-gnu module indicator.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_CALLOC_FOR_CALLOC_GNU,
REPLACE_CALLOC_FOR_CALLOC_POSIX, not REPLACE_CALLOC.
* modules/stdlib (Makefile.am): Substitute GNULIB_CALLOC_GNU,
REPLACE_CALLOC_FOR_CALLOC_GNU, REPLACE_CALLOC_FOR_CALLOC_POSIX, not
REPLACE_CALLOC.
* modules/calloc-posix (Depends-on, configure.ac): Test
REPLACE_CALLOC_FOR_CALLOC_POSIX instead of REPLACE_CALLOC.
* modules/calloc-gnu (Depends-on): Add xalloc-oversized.
(configure.ac): Test REPLACE_CALLOC_FOR_CALLOC_GNU instead of
REPLACE_CALLOC. Set a module indicator.
* lib/stdlib.in.h (calloc): Test REPLACE_CALLOC_FOR_CALLOC_POSIX,
REPLACE_CALLOC_FOR_CALLOC_GNU, and the respective module indicators
instead of just REPLACE_CALLOC.
2022-01-03 Bruno Haible <bruno@clisp.org>
malloc-gnu: Allow use as dependency from test modules.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Set REPLACE_MALLOC_FOR_MALLOC_GNU
instead of REPLACE_MALLOC.
(gl_FUNC_MALLOC_PTRDIFF, gl_FUNC_MALLOC_POSIX): Set
REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC.
* m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Test
REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC.
* m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the
malloc-gnu module indicator.
(gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MALLOC_FOR_MALLOC_GNU,
REPLACE_MALLOC_FOR_MALLOC_POSIX, not REPLACE_MALLOC.
* modules/stdlib (Makefile.am): Substitute GNULIB_MALLOC_GNU,
REPLACE_MALLOC_FOR_MALLOC_GNU, REPLACE_MALLOC_FOR_MALLOC_POSIX, not
REPLACE_MALLOC.
* modules/malloc-posix (Depends-on, configure.ac): Test
REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC.
* modules/malloc-gnu (Comment): Remove section.
(Depends-on): Add xalloc-oversized.
(configure.ac): Test REPLACE_MALLOC_FOR_MALLOC_GNU instead of
REPLACE_MALLOC. Set a module indicator.
* lib/stdlib.in.h (malloc): Test REPLACE_MALLOC_FOR_MALLOC_POSIX,
REPLACE_MALLOC_FOR_MALLOC_GNU, and the respective module indicators
instead of just REPLACE_MALLOC.
2022-01-02 Bruno Haible <bruno@clisp.org>
striconveh: Make the last change also work on Solaris 11.
* lib/striconveh.c (mem_cd_iconveh_internal): Tweak last commit.
striconveh: Make the last change also work on musl libc.
* lib/striconveh.c (mem_cd_iconveh_internal): Make the U+FFFD conversion
also work with non-GNU iconv() implementations.
2022-01-01 Paul Eggert <eggert@cs.ucla.edu>
gen-header: port to BusyBox ‘sed’
Problem reported by Tim Rühsen in:
https://lists.gnu.org/r/bug-gnulib/2022-01/msg00004.html
* modules/gen-header (SED_HEADER_NOEDIT): Replace instead of prepend.
(SED_HEADER_STDOUT, SED_HEADER_TO_AT_t): Adjust to that change.
Do not use ‘w foo’ twice in the same script, as BusyBox ‘sed’
mistakenly opens ‘foo’ for output twice, thus losing some output.
2022-01-01 Bruno Haible <bruno@clisp.org>
striconveh: Support an error handler that produces a Unicode U+FFFD.
Suggested by Marc Nieper-Wißkirchen in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00175.html>.
* lib/iconveh.h (iconveh_replacement_character): New enum value.
* lib/striconveh.c (mem_cd_iconveh_internal): When the handler is
iconveh_replacement_character, try to produce U+FFFD when possible,
instead of '?'.
* tests/test-striconveh.c (main): Add GB18030 tests. Test also
iconveh_replacement_character.
2022-01-01 Bruno Haible <bruno@clisp.org>
maint: Update copyright notices.
* build-aux/declared.sh (func_version): Bump year.
2022-01-01 Bruno Haible <bruno@clisp.org>
maint: Update copyright notices in code generating programs.
* lib/gen-uni-tables.c (output_predicate_test, output_predicate,
output_category, output_combclass, output_bidi_category,
output_decimal_digit_test, output_decimal_digit, output_digit_test,
output_digit, output_numeric_test, output_numeric, output_mirror,
output_joining_type_test, output_joining_type,
output_joining_group_test, output_joining_group, output_scripts,
output_scripts_byname, output_blocks, output_ident_category,
output_nonspacing_property, output_lbrk_tables,
output_lbrk_rules_as_tables, output_wbrk_tables, output_gbp_test,
output_gbp_table, output_decomposition_tables,
output_composition_tables, output_simple_mapping_test,
output_simple_mapping, output_casing_rules): Extend copyright year of
generated file to 2022.
* lib/uniname/gen-uninames.lisp (main): Likewise. Produce license notice
that is consistent with the gnulib/etc/license-notices/ files.
* All files regenerated.
2022-01-01 Paul Eggert <eggert@cs.ucla.edu>
maint: fix ‘make update-copyright’ on symlinks
After running ‘make update-copyright’ I noticed that it
incorrectly replaced a couple of symlinks with their contents.
* Makefile (update-copyright): Do not update symlinks.
* etc/license-notices/GPL, etc/license-notices/LGPL:
Change these back to symlinks.
2021-12-31 Bruno Haible <bruno@clisp.org>
unistdio: Prefer newer version to older, buggy one.
* modules/unistdio/ulc-vasnprintf (configure.ac): Bump required
libunistring version. This is needed because of the heap overrun fix
(2018-09-23) and the need to avoid %n on more platforms (2020-10-04).
* modules/unistdio/ulc-asnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-asprintf (configure.ac): Likewise.
* modules/unistdio/ulc-fprintf (configure.ac): Likewise.
* modules/unistdio/ulc-snprintf (configure.ac): Likewise.
* modules/unistdio/ulc-sprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vasprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vfprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vsnprintf (configure.ac): Likewise.
* modules/unistdio/ulc-vsprintf (configure.ac): Likewise.
2021-12-31 Bruno Haible <bruno@clisp.org>
uniwidth: Optimize.
* lib/gen-uni-tables.c (output_nonspacing_property): Add version
parameter. Emit the usual boilerplate header for generated files.
(is_width2): New function, based on lib/uniwidth/width.c.
(output_width2_property): New function.
(main): Create uniwidth/width0.h instead of uniwidth/width.c.part.
Create uniwidth/width2.h.
* lib/uniwidth/width.c: Include width0.h, width2.h, bitmap.h.
(nonspacing_table_data, nonspacing_table_ind): Remove here.
(uc_width): Replace the double-width character with an u_width2 bitmap
lookup.
* modules/uniwidth/width (Files): Add lib/uniwidth/width0.h,
lib/uniwidth/width2.h, lib/unictype/bitmap.h.
2021-12-31 Bruno Haible <bruno@clisp.org>
Update to Unicode 14.0.0.
* lib/gen-uni-tables.c (UC_JOINING_GROUP_THIN_YEH,
UC_JOINING_GROUP_VERTICAL_TAIL): New enum values.
(fill_arabicshaping, joining_group_as_c_identifier): Recognize these
joining groups.
* lib/unictype.in.h (UC_JOINING_GROUP_THIN_YEH,
UC_JOINING_GROUP_VERTICAL_TAIL): New enum values.
* lib/unictype/joininggroup_name.h: Add the THIN_YEH, VERTICAL_TAIL
joining groups.
* lib/unictype/joininggroup_byname.gperf: Likewise.
* lib/gen-uni-tables.c (LBP_ID1, LBP_ID2): New enum values.
(LBP_ID): Assign artificial value.
(get_lbp): Use the extended_pictographic property to assign LBP_ID1,
LBP_ID2 instead of LBP_ID. Update such that unilbrk/lbrkprop.txt comes
out as expected.
(debug_output_lbp): Print either LBP_ID1 or LBP_ID2 as LBP_ID.
(lbp_value_to_string): Handle LBP_ID1, LBP_ID2 instead of LBP_ID.
(output_lbrk_rules_as_tables): Treat LBP_ID as macro that maps to two
table rows/columns. In rule LB30b, use LBP_ID2 in addition to LBP_EB.
Remove redundant part of rule LB27.
* lib/unilbrk/lbrktables.h (LBP_ID1, LBP_ID2): New enum values.
(LBP_ID): Remove enum value.
(unilbrk_table): Update declaration.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Use LBP_ID1 instead of LBP_ID.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Add a
test of potential future emoji.
* tests/unilbrk/test-u16-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (test_function):
Likewise.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Update.
(uc_width): Assign width 2 to the characters 0x1AFF0..0x1AFF3,
0x1AFF5..0x1AFFB, 0x1AFFD..0x1AFFE, 0x1B120..0x1B122, 0x1F6DD..0x1F6DF,
0x1F7F0, 0x1FA7B..0x1FA7C, 0x1FAA9..0x1FAAC, 0x1FAB7..0x1FABA,
0x1FAC3..0x1FAC5, 0x1FAD7..0x1FAD9, 0x1FAE0..0x1FAE7, 0x1FAF0..0x1FAF6.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0890..0x0891, 0x0898..0x089F, 0x08CA..0x0902, 0x0C3C, 0x180F,
0x1AC1..0x1ACE, 0x1DFA, 0x10F82..0x10F85, 0x11070, 0x11073..0x11074,
0x110C2, 0x1CF00..0x1CF2D, 0x1CF30..0x1CF46, 0x1E2AE. Expect ambiguous
width for the character 0x1734. Expect width 2 for the characters
0x1AFF0..0x1AFF3, 0x1AFF5..0x1AFFB, 0x1AFFD..0x1AFFE, 0x1B120..0x1B122,
0x1F6DD..0x1F6DF, 0x1F7F0, 0x1FA7B..0x1FA7C, 0x1FAA9..0x1FAAC,
0x1FAB7..0x1FABA, 0x1FAC3..0x1FAC5, 0x1FAD7..0x1FAD9, 0x1FAE0..0x1FAE7,
0x1FAF0..0x1FAF6.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-31 Bruno Haible <bruno@clisp.org>
Update to Unicode 13.0.0.
* lib/gen-uni-tables.c (is_WBP_MIDLETTER): Add character 0x055F.
(get_wbp): Assign value WBP_ALETTER to the characters 0x02E5..0x02EB,
0x055A, 0x058A, 0xA708..0xA716.
* lib/gen-uni-tables.c (LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2): New enum
values.
(LBP_OP, LBP_CP): Assign artificial values.
(get_lbp): Use the unicode_width[] table to assign LBP_CP1, LBP_CP2
instead of LBP_CP, and LBP_OP1, LBP_OP2 instead of LBP_OP. Update such
that unilbrk/lbrkprop.txt comes out as expected.
(debug_output_lbp): Print either LBP_CP1 or LBP_CP2 as LBP_CP. Print
either LBP_OP1 or LBP_OP2 as LBP_OP.
(lbp_value_to_string): Handle LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2 instead
of LBP_CP, LBP_OP.
(output_lbrk_rules_as_tables): Treat LBP_CP and LBP_OP as macros that
map to two table rows/columns. In rule LB30, use only LBP_OP1 instead of
LBP_OP, and only LBP_CP1 instead of LBP_CP. Simplify rule LB22.
* lib/unilbrk/lbrktables.h (LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2): New
enum values.
(LBP_OP, LBP_CP): Remove enum values.
(unilbrk_table): Update declaration.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Add a
test for East Asian opening parenthesis.
* tests/unilbrk/test-u16-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (test_function):
Likewise.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Update.
(uc_width): Assign width 2 to the characters 0x16FF0..0x16FF1,
0x18AF3..0x18CD5, 0x18D00..0x18D08, 0x1F6D6..0x1F6D7, 0x1F6FB..0x1F6FC,
0x1F90C, 0x1FA74, 0x1FA83..0x1FA86, 0x1FA96..0x1FAA8, 0x1FAB0..0x1FAB6,
0x1FAC0..0x1FAC2, 0x1FAD0..0x1FAD6.
Assign width 1 to the characters 0x1F93B, 0x1F946.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0B55, 0x0D81, 0x1ABF..0x1AC0, 0xA82C, 0x10EAB..0x10EAC, 0x111CF,
0x1193B..0x1193C, 0x1193E, 0x11943, 0x16FE4. Expect width 2 for the
characters 0x16FF0..0x16FF1, 0x18AF3..0x18CD5, 0x18D00..0x18D08,
0x1F6D6..0x1F6D7, 0x1F6FB..0x1F6FC, 0x1F90C, 0x1FA74, 0x1FA83..0x1FA86,
0x1FA96..0x1FAA8, 0x1FAB0..0x1FAB6, 0x1FAC0..0x1FAC2, 0x1FAD0..0x1FAD6.
Expect width 1 for the characters 0x1F93B, 0x1F946.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-30 Bruno Haible <bruno@clisp.org>
uniwbrk: Correction of Unicode 10.0.0 support.
* lib/gen-uni-tables.c (is_WBP_MIDLETTER): Remove character 0x02D7.
The generated files are not affected.
2021-12-30 Bruno Haible <bruno@clisp.org>
Update to Unicode 12.1.0.
* lib/gen-uni-tables.c: Update comments.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-30 Bruno Haible <bruno@clisp.org>
Update to Unicode 12.0.0.
* lib/gen-uni-tables.c (is_property_default_ignorable_code_point):
Exclude 0x13430..0x13438.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.
(get_wbp): Map 0xFF10..0xFF19 to WBP_NUMERIC.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Update.
(uc_width): Assign width 2 to the characters 0x16FE2..0x16FE3,
0x187F2..0x187F7, 0x1B150..0x1B152, 0x1B164..0x1B167, 0x1F6D5, 0x1F6FA,
0x1F7E0..0x1F7EB, 0x1F90D..0x1F90F, 0x1FA70..0x1FA73, 0x1FA78..0x1FA7A,
0x1FA80..0x1FA82, 0x1FA90..0x1FA95.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0EBA, 0xA9BD, 0x119D4..0x119D7, 0x119DA..0x119DB, 0x119E0,
0x13430..0x13438, 0x16F4F, 0x1E130..0x1E136, 0x1E2EC..0x1E2EF. Expect
width 2 for the characters 0x16FE2..0x16FE3, 0x187F2..0x187F7,
0x1B150..0x1B152, 0x1B164..0x1B167, 0x1F6D5, 0x1F6FA, 0x1F7E0..0x1F7EB,
0x1F90D..0x1F90F, 0x1FA70..0x1FA73, 0x1FA78..0x1FA7A, 0x1FA80..0x1FA82,
0x1FA90..0x1FA95.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-30 Paul Eggert <eggert@cs.ucla.edu>
crypto/sm3-buffer: fix C99 conformance bug
* lib/sm3.c (sm3_process_block): Call varargs macro with enough
arguments. Problem found by IBM XL/C 12.1.0.0 for AIX.
2021-12-30 Bruno Haible <bruno@clisp.org>
Update to Unicode 11.0.0.
* lib/gen-uni-tables.c (is_property_default_ignorable_code_point):
Simplify by use of PROP_PREPENDED_CONCATENATION_MARK.
(UC_JOINING_GROUP_HANIFI_ROHINGYA_PA,
UC_JOINING_GROUP_HANIFI_ROHINGYA_KINNA_YA): New enum values.
(fill_arabicshaping, joining_group_as_c_identifier): Recognize these
joining groups.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.
(WBP_EB, WBP_EM, WBP_GAZ, WBP_EBG): Remove enum values.
(WBP_WSS): New enum value.
(get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
(debug_output_wbp, fill_org_wbp, debug_output_org_wbp, output_wbp):
Update for changed enum values.
* lib/unictype.in.h (UC_JOINING_GROUP_HANIFI_ROHINGYA_*): New enum
values.
* lib/unictype/joininggroup_name.h: Add the HANIFI_ROHINGYA_* joining
groups.
* lib/unictype/joininggroup_byname.gperf: Likewise.
* lib/unigbrk.in.h: Mark 4 enum values as obsolete.
* lib/unigbrk/u-grapheme-breaks.h (FUNC): Handle emoji modifier sequence
according to Unicode 11.0.0.
* lib/unigbrk/u8-grapheme-breaks.c: Include <stdbool.h>, unictype.h.
* lib/unigbrk/u16-grapheme-breaks.c: Likewise.
* lib/unigbrk/u32-grapheme-breaks.c: Likewise.
* lib/unigbrk/uc-grapheme-breaks.c: Likewise.
* modules/unigbrk/u8-grapheme-breaks (Depends-on): Add
unictype/property-extended-pictographic, stdbool.
* modules/unigbrk/u16-grapheme-breaks (Depends-on): Likewise.
* modules/unigbrk/u32-grapheme-breaks (Depends-on): Likewise.
* modules/unigbrk/uc-grapheme-breaks (Depends-on): Likewise.
* tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test for emoji
modifier / ZWJ sequence.
* tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-uc-is-grapheme-break.c: Include <stdbool.h>,
unictype.h.
(main): Update workaround logic to match the one in
lib/unigbrk/u-grapheme-breaks.h.
* modules/unigbrk/uc-is-grapheme-break-tests (Depends-on): Add
unictype/property-extended-pictographic, stdbool.
* lib/uniwbrk.in.h: Mark 4 enum values as obsolete.
(WBP_WSS): New enum value.
* lib/uniwbrk/u-wordbreaks.h (FUNC): Handle emoji ZWJ sequences and
horizontal whitespace according to Unicode 11.0.0.
* lib/uniwbrk/u8-wordbreaks.c: Include unictype.h.
* lib/uniwbrk/u16-wordbreaks.c: Likewise.
* lib/uniwbrk/u32-wordbreaks.c: Likewise.
* lib/uniwbrk/wbrktable.c (uniwbrk_prop_index, uniwbrk_table): Add a row
and column for WBP_WSS.
* lib/uniwbrk/wbrktable.h (uniwbrk_prop_index, uniwbrk_table): Update
declarations.
* modules/uniwbrk/u8-wordbreaks (Depends-on): Add
unictype/property-extended-pictographic.
* modules/uniwbrk/u16-wordbreaks (Depends-on): Likewise.
* modules/uniwbrk/u32-wordbreaks (Depends-on): Likewise.
* tests/uniwbrk/test-u8-wordbreaks.c (main): Update expected results.
* tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string):
Update.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop):
Handle ZWJ according to Unicode 11.0.0.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop):
Likewise.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Update.
(uc_width): Assign width 2 to the characters 0x187ED..0x187F1, 0x1F6F9,
0x1F9E7..0x1F9FF.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x07FD, 0x08D3, 0x09FE, 0x0C04, 0xA8FF, 0x10D24..0x10D27,
0x10F46..0x10F50, 0x110CD, 0x111C9, 0x1133B, 0x1145E, 0x1182F..0x11837,
0x11839..0x1183A, 0x11D90..0x11D91, 0x11D95, 0x11D97, 0x11EF3..0x11EF4.
Expect width 2 for the characters 0x187ED..0x187F1, 0x1F6F9,
0x1F9E7..0x1F9FF.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-30 Bruno Haible <bruno@clisp.org>
unictype: Add Emoji properties from Unicode 11.0.0.
* lib/gen-uni-tables.c (PROP_EMOJI*, PROP_EXTENDED_PICTOGRAPHIC): New
enum values.
(fill_properties): Don't require a space between the property name and
the comment. Handle the property names from emoji-data.txt.
(is_property_emoji, is_property_emoji_presentation,
is_property_emoji_modifier, is_property_emoji_modifier_base,
is_property_emoji_component, is_property_extended_pictographic): New
declarations.
(output_properties): Emit the properties emoji, emoji_presentation,
emoji_modifier, emoji_modifier_base, emoji_component,
extended_pictographic.
(get_lbp): Use the emoji_modifier property.
(main): Expect one more argument, for the emoji-data.txt file.
* lib/unictype.in.h (UC_PROPERTY_EMOJI, UC_PROPERTY_EMOJI_PRESENTATION,
UC_PROPERTY_EMOJI_MODIFIER, UC_PROPERTY_EMOJI_MODIFIER_BASE,
UC_PROPERTY_EMOJI_COMPONENT, UC_PROPERTY_EXTENDED_PICTOGRAPHIC,
uc_is_property_emoji, uc_is_property_emoji_presentation,
uc_is_property_emoji_modifier, uc_is_property_emoji_modifier_base,
uc_is_property_emoji_component, uc_is_property_extended_pictographic):
New declarations.
* lib/unictype/pr_emoji.c: New file.
* lib/unictype/pr_emoji_presentation.c: New file.
* lib/unictype/pr_emoji_modifier.c: New file.
* lib/unictype/pr_emoji_modifier_base.c: New file.
* lib/unictype/pr_emoji_component.c: New file.
* lib/unictype/pr_extended_pictographic.c: New file.
* modules/unictype/property-emoji: New file.
* modules/unictype/property-emoji-tests: New file.
* modules/unictype/property-emoji-presentation: New file.
* modules/unictype/property-emoji-presentation-tests: New file.
* modules/unictype/property-emoji-modifier: New file.
* modules/unictype/property-emoji-modifier-tests: New file.
* modules/unictype/property-emoji-modifier-base: New file.
* modules/unictype/property-emoji-modifier-base-tests: New file.
* modules/unictype/property-emoji-component: New file.
* modules/unictype/property-emoji-component-tests: New file.
* modules/unictype/property-extended-pictographic: New file.
* modules/unictype/property-extended-pictographic-tests: New file.
* modules/unictype/property-all (Depends-on): Depend on the new modules.
2021-12-29 Bruno Haible <bruno@clisp.org>
uniwidth: Give width 0 to conjoining Hangul Jamo jungseong, jongseong.
Reported by Luis Javier Merino <ninjalj@gmail.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2021-12/msg00006.html>.
* lib/gen-uni-tables.c (is_nonspacing): Return true for the conjoining
Hangul Jamo jungseong and jongseong characters.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Regenerated.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x1160..0x11FF, 0xD7B0..0xD7C6, 0xD7CB..0xD7FB.
2021-12-29 Bruno Haible <bruno@clisp.org>
uniwidth: Update to Unicode 10.0.0.
* lib/uniwidth/width.c (uc_width): Assign width 2 to the characters
0x231A..0x231B, 0x23E9..0x23EC, 0x23F0, 0x23F3, 0x25FD..0x25FE,
0x2614..0x2615, 0x2648..0x2653, 0x267F, 0x2693, 0x26A1, 0x26AA..0x26AB,
0x26BD..0x26BE, 0x26C4..0x26C5, 0x26CE, 0x26D4, 0x26EA, 0x26F2..0x26F3,
0x26F5, 0x26FA, 0x26FD, 0x2705, 0x270A..0x270B, 0x2728, 0x274C, 0x274E,
0x2753..0x2755, 0x2757, 0x2795..0x2797, 0x27B0, 0x27BF, 0x2B1B..0x2B1C,
0x2B50, 0x2B55, 0xA960..0xA97C, 0x16FE0..0x16FE1, 0x17000..0x187EC,
0x18800..0x18AF2, 0x1B000..0x1B11F, 0x1B170..0x1B2FB, 0x1F004, 0x1F0CF,
0x1F18E, 0x1F191..0x1F19A, 0x1F200..0x1F320, 0x1F32D..0x1F335,
0x1F337..0x1F37C, 0x1F37E..0x1F393, 0x1F3A0..0x1F3CA, 0x1F3CF..0x1F3D3,
0x1F3E0..0x1F3F0, 0x1F3F4, 0x1F3F8..0x1F43E, 0x1F440, 0x1F442..0x1F4FC,
0x1F4FF..0x1F53D, 0x1F54B..0x1F54E, 0x1F550..0x1F567, 0x1F57A,
0x1F595..0x1F596, 0x1F5A4, 0x1F5FB..0x1F64F, 0x1F680..0x1F6C5, 0x1F6CC,
0x1F6D0..0x1F6D2, 0x1F6EB..0x1F6EC, 0x1F6F4..0x1F6F8, 0x1F910..0x1F9E6.
Assign ambiguous width to the characters 0x3248..0x324F.
* tests/uniwidth/test-uc_width2.sh: Expect these changes.
2021-12-29 Bruno Haible <bruno@clisp.org>
unilbrk: Improve support for strings that contain CR-LF sequences.
* lib/gen-uni-tables.c (LBP_CR, LBP_LF): New enum values.
(get_lbp): For '\r' and '\n', return LBP_CR and LBP_LF, respectively,
instead of LBP_BK.
(debug_output_lbp, fill_org_lbp, debug_output_org_lbp,
lbp_value_to_string): Handle LBP_CR, LBP_LF.
* lib/unilbrk/lbrkprop2.h: Regenerated.
* lib/unilbrk/lbrktables.h (LBP_CR, LBP_LF): New enum values.
* lib/unilbrk.in.h (UC_BREAK_CR_BEFORE_LF): New enum value.
(u8_possible_linebreaks, u16_possible_linebreaks,
u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks,
u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks):
Declare also a _v2 variant, and use a C macro to activate it by default.
* lib/unilbrk/internal.h: New file.
* lib/unilbrk/u8-possible-linebreaks.c: Include unilbrk/internal.h.
(u8_possible_linebreaks_loop): Renamed from u8_possible_linebreaks. Add
'cr' parameter.
(u8_possible_linebreaks, u8_possible_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u16-possible-linebreaks.c: Include unilbrk/internal.h.
(u16_possible_linebreaks_loop): Renamed from u16_possible_linebreaks.
Add 'cr' parameter.
(u16_possible_linebreaks, u16_possible_linebreaks_v2): New functions.
* lib/unilbrk/u32-possible-linebreaks.c: Include unilbrk/internal.h.
(u32_possible_linebreaks_loop): Renamed from u32_possible_linebreaks.
Add 'cr' parameter.
(u32_possible_linebreaks, u32_possible_linebreaks_v2): New functions.
* lib/unilbrk/ulc-possible-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(ulc_possible_linebreaks_internal): Renamed from
ulc_possible_linebreaks. Add 'cr' parameter.
(ulc_possible_linebreaks, ulc_possible_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u8-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u8_width_linebreaks_internal): Renamed from u8_width_linebreaks. Add
'cr' parameter.
(u8_width_linebreaks, u8_width_linebreaks_v2): New functions.
(main): Update.
* lib/unilbrk/u16-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u16_width_linebreaks_internal): Renamed from u16_width_linebreaks. Add
'cr' parameter.
(u16_width_linebreaks, u16_width_linebreaks_v2): New functions.
* lib/unilbrk/u32-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(u32_width_linebreaks_internal): Renamed from u32_width_linebreaks. Add
'cr' parameter.
(u32_width_linebreaks, u32_width_linebreaks_v2): New functions.
* lib/unilbrk/ulc-width-linebreaks.c: Include unilbrk/internal.h,
unilbrk/lbrktables.h.
(ulc_width_linebreaks_internal): Renamed from ulc_width_linebreaks. Add
'cr' parameter.
(ulc_width_linebreaks, ulc_width_linebreaks_v2): New functions.
(main): Update.
* modules/unilbrk/u8-possible-linebreaks (Files): Add
lib/unilbrk/internal.h.
* modules/unilbrk/u16-possible-linebreaks (Files): Likewise.
* modules/unilbrk/u32-possible-linebreaks (Files): Likewise.
* modules/unilbrk/u8-width-linebreaks (Files): Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-u16-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-u32-possible-linebreaks.c (test_function): New
function, extracted from main. Add a test of CR-LF handling.
(main): Invoke it twice.
* tests/unilbrk/test-ulc-possible-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u8-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u16-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-u32-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
* tests/unilbrk/test-ulc-width-linebreaks.c (test_function): New
function, extracted from main.
(main): Invoke it twice.
2021-12-29 Bruno Haible <bruno@clisp.org>
uniwbrk: Add unit tests of CR-LF sequences.
* tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of a string with
CR-LF.
* tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise.
2021-12-29 Bruno Haible <bruno@clisp.org>
unigbrk: Add unit tests of CR-LF sequences.
* tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test of a string
with CR-LF.
* tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
2021-12-29 Bruno Haible <bruno@clisp.org>
unilbrk: Update handling of Hebrew letter + hyphen for Unicode 10.0.0.
* lib/unilbrk/lbrktables.h (LBP_HL_BA): New enum value.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Add
code for handling break-after character after Hebrew letter.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test
regarding break-after character after Hebrew letter.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
2021-12-28 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: improve handling of invalid formats
* lib/nstrftime.c (__strftime_internal): Without this change,
‘date +'%0_-+^#1%A'’ would output ‘%A’; with it, it outputs
something like ‘%0_-+^#1Tuesday’ which is easier to debug and to
write wrappers for (such as the nstrftime/fprintftime usage in GNU
‘date’).
2021-12-28 Bruno Haible <bruno@clisp.org>
unilbrk: Update handling of regional indicators for Unicode 10.0.0.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Add
code for handling regional indicators.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test
regarding regional indicators.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
unilbrk: Update handling of zero-width joiner for Unicode 10.0.0.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Update
code for zero-width joiner handling to match UAX #14 for Unicode 10.0.0.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test
regarding zero-width joiner.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
unilbrk: Update handling of combining marks for Unicode 10.0.0.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Update
code for combining characters to match UAX #14 for Unicode 10.0.0.
Remove legacy support for space + combining mark.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test
regarding combining characters.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
unilbrk: Restore deviation for (IS,AL) pair.
* lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Disable rule LB29.
* lib/unilbrk/lbrktables.c: Regenerated.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add test case with
HTML markup.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
unilbrk: Change algorithm to be closer to Unicode Standard Annex #14.
* lib/gen-uni-tables.c (lbp_value_to_string): New function, extracted
from output_lbp.
(output_lbp): Invoke it.
(output_lbrk_rules_as_tables): New function.
(main): Invoke it.
* lib/unilbrk/lbrktables.c: Now automatically generated.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Update expected
result.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
uniwbrk: Add unit tests of regional indicators.
* tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of regional
indicators.
* tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise.
2021-12-28 Bruno Haible <bruno@clisp.org>
unigbrk: Simplify code for regional indicators.
* lib/unigbrk/u-grapheme-breaks.h (FUNC): Make code for regional
indicators more future-proof.
* tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test of regional
indicators.
* tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
2021-12-28 Paul Eggert <eggert@cs.ucla.edu>
clock_getres: document portability issues better
* doc/posix-functions/clock_getres.texi:
* doc/posix-functions/timespec_getres.texi:
Document problems with timestamp resolution.
timespec_getres: new module
* lib/time.in.h (timespec_getres): New decl.
* lib/timespec_getres.c, m4/timespec_getres.m4:
* modules/timespec_getres, modules/timespec_getres-tests:
* tests/test-timespec_getres.c:
New files.
* m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS, gl_TIME_H_DEFAULTS):
* modules/time (time.h):
Support timespec_getres.
gettime-res: new module
* lib/gettime-res.c, modules/gettime-res: New files.
* lib/timespec.h (gettime_res): New decl.
* m4/clock_time.m4 (gl_CLOCK_TIME): Also check for clock_getres.
* m4/gettime.m4 (gl_GETTIME_RES): New macro.
gettime: port better to non-POSIX C2x
C2x requires a function timespec_get; prefer that to
gettimeofday, since it has better resolution.
* lib/gettime.c (gettime): Prefer timespec_get to gettimeofday.
* m4/gettime.m4 (gl_GETTIME): Check for timespec_get.
Omit a check for gettimeofday; not needed because
the gettime module depends on the gettimeofday module.
2021-12-28 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Produce license notices suitable for Gnulib.
* lib/gen-uni-tables.c (output_library_license, output_tests_license):
Produce license notices that are consistent with the
gnulib/etc/license-notices/ files.
* All generated files under lib/uni* and tests/uni*: Regenerate.
2021-12-28 Bruno Haible <bruno@clisp.org>
unigbrk, uniwbrk: No-op tweaks.
* lib/unigbrk/u-grapheme-breaks.h: Comment tweaks.
* lib/uniwbrk/u-wordbreaks.h: Coding style and comment tweaks.
* lib/uniwbrk/wbrktable.c: Comment tweaks.
2021-12-28 Paul Eggert <eggert@cs.ucla.edu>
perl: let caller see whether perl was found
Problem reported for coreutils by Serge Belyshev (Bug#52844).
* m4/perl.m4 (gl_PERL): Use AC_CACHE_CHECK, so that
an invoker of gl_PERL can later inspect gl_cv_prog_perl
to see whether perl was found.
2021-12-28 Bruno Haible <bruno@clisp.org>
Fix --automake-subdir breakage (regression 2021-12-24).
Reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00156.html>.
* build-aux/prefix-gnulib-mk (prefix_assignment): Don't change
SED_HEADER_* variables.
2021-12-26 Bruno Haible <bruno@clisp.org>
Update to Unicode 10.0.0.
* lib/gen-uni-tables.c (PROP_REGIONAL_INDICATOR): New enum value.
(fill_properties): Recognize property "Regional_Indicator".
(is_property_regional_indicator): New function.
(output_properties): Also output the data for regional_indicator.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.
Use is_property_regional_indicator.
(get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected.
Use is_property_regional_indicator.
(UC_JOINING_GROUP_MALAYALAM_*): New enum values.
(fill_arabicshaping, joining_group_as_c_identifier): Recognize these
joining groups.
* lib/uniname/gen-uninames.lisp (main): Ignore empty lines and comment
lines in the aliases file. Needed because since 2015-06-20, we use the
unmodified Unicode NameAliases.txt file. Remove reference to undefined
variable. Correct indentation.
* lib/unictype.in.h (UC_PROPERTY_REGIONAL_INDICATOR,
uc_is_property_regional_indicator): New declarations.
* lib/unictype/pr_regional_indicator.c: New file.
* modules/unictype/property-regional-indicator: New file.
* modules/unictype/property-regional-indicator-tests: New file.
* modules/unictype/property-all (Depends-on): Add
unictype/property-regional-indicator.
* lib/unictype.in.h (UC_JOINING_GROUP_MALAYALAM_*): New enum values.
* lib/unictype/joininggroup_name.h: Add the MALAYALAM_* joining groups.
* lib/unictype/joininggroup_byname.gperf: Likewise.
* lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind):
Update.
* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0AFA..0x0AFF, 0x0D00, 0x0D3B..0x0D3C, 0x1DF6..0x1DF9,
0x11A01..0x11A06, 0x11A09..0x11A0A, 0x11A33..0x11A38, 0x11A3B..0x11A3E,
0x11A47, 0x11A51..0x11A56, 0x11A59..0x11A5B, 0x11A8A..0x11A96,
0x11A98..0x11A99, 0x11D31..0x11D36, 0x11D3A, 0x11D3C..0x11D3D,
0x11D3F..0x11D45, 0x11D47.
* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.
* All the affected modules: Bump required libunistring version.
2021-12-26 Bruno Haible <bruno@clisp.org>
pselect: Fix compilation error in C++ mode on AIX 7.
* lib/sys_select.in.h (pselect): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
* doc/posix-functions/pselect.texi: Mention the AIX problem.
2021-12-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix handling of module libtextstyle-optional.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00152.html>.
* gnulib-tool (func_repeat_module_in_tests): New function.
(func_emit_tests_Makefile_am, func_create_testdir): Use it for the file
list and when creating tests/Makefile.am.
2021-12-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Respect applicability 'all' without --single-configure.
* gnulib-tool (func_verify_tests_module): Treat modules with
applicability 'all' like 'tests' modules, not like 'main' modules.
2021-12-24 Paul Eggert <eggert@cs.ucla.edu>
maint: avoid empty lines in recipes
AIX 7.2 ‘make’ complains about recipe lines that are empty after
macro expansion, and I suppose there’s a good chance some
non-POSIX ‘make’ would prohibit them. Rework macros so
that we can avoid them.
* gnulib-tool (func_emit_lib_Makefile_am)
(func_emit_tests_Makefile_am): Support @!NMD@ too.
* modules/gen-header (@gl_V_at): New macro.
* modules/alloca-opt, modules/argz, modules/assert-h:
* modules/byteswap, modules/configmake, modules/ctype:
* modules/dirent, modules/errno, modules/execinfo, modules/fcntl-h:
* modules/float, modules/fnmatch-h, modules/getopt-posix:
* modules/glob-h, modules/iconv-h, modules/ieee754-h:
* modules/inttypes-incomplete, modules/langinfo:
* modules/libtextstyle-optional, modules/limits-h, modules/locale:
* modules/malloc-h, modules/math, modules/monetary, modules/netdb:
* modules/openmp-init, modules/poll-h, modules/posix-shell:
* modules/pthread-h, modules/pty, modules/sched, modules/search:
* modules/signal-h, modules/sigsegv, modules/snippet/link-warning:
* modules/spawn, modules/stdalign, modules/stdarg, modules/stdbool:
* modules/stddef, modules/stdint, modules/stdio, modules/stdlib:
* modules/stdnoreturn, modules/string, modules/strings:
* modules/sysexits, modules/termios, modules/threads-h:
* modules/time, modules/uchar, modules/unicase/base:
* modules/uniconv/base, modules/unictype/base, modules/unigbrk/base:
* modules/unilbrk/base, modules/uniname/base, modules/uninorm/base:
* modules/unistd, modules/unistdio/base, modules/unistr/base:
* modules/unitypes, modules/uniwbrk/base, modules/uniwidth/base:
* modules/utime-h, modules/wchar, modules/wctype-h:
Use it.
maint: tight-scope.mk need not be read-only
* top/maint.mk (tight-scope.mk): Don’t bother to make
tight-scope.mk read-only either.
maint: break out '&& mv $@-t $@'
* build-aux/git-version-gen, config/argz.mk, modules/configmake:
* modules/posix_spawnp-tests, modules/snippet/link-warning:
* top/maint.mk:
Break out '&& mv $@-t $@' to a separate line in the Make recipe,
as this makes things a bit easier to debug.
gen-header: new module
Simplify header generation by using Makefile variables
defined by a new gen-header module.
* modules/gen-header: New module.
* modules/alloca-opt, modules/argz, modules/arpa_inet:
* modules/assert-h, modules/byteswap:
* modules/ctype, modules/dirent, modules/dynarray, modules/errno:
* modules/execinfo, modules/fcntl-h, modules/float:
* modules/fnmatch-h, modules/getopt-posix, modules/glob-h:
* modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete:
* modules/langinfo, modules/libtextstyle-optional, modules/limits-h:
* modules/locale, modules/malloc-h, modules/math, modules/monetary:
* modules/net_if, modules/netdb, modules/netinet_in:
* modules/openmp-init, modules/poll-h:
* modules/pthread-h, modules/pty, modules/sched:
* modules/scratch_buffer, modules/search, modules/selinux-h:
* modules/signal-h, modules/sigsegv:
* modules/spawn, modules/stdalign, modules/stdarg, modules/stdbool:
* modules/stddef, modules/stdint, modules/stdio, modules/stdlib:
* modules/stdnoreturn, modules/string, modules/strings:
* modules/sys_file, modules/sys_ioctl, modules/sys_random:
* modules/sys_resource, modules/sys_select, modules/sys_socket:
* modules/sys_stat, modules/sys_time, modules/sys_times:
* modules/sys_types, modules/sys_uio, modules/sys_utsname:
* modules/sys_wait, modules/sysexits, modules/termios:
* modules/threads-h, modules/time, modules/uchar:
* modules/unicase/base, modules/unicase/special-casing:
* modules/uniconv/base, modules/unictype/base, modules/unigbrk/base:
* modules/unilbrk/base, modules/uniname/base, modules/uninorm/base:
* modules/unistd, modules/unistdio/base, modules/unistr/base:
* modules/unitypes, modules/uniwbrk/base, modules/uniwidth/base:
* modules/utime-h, modules/wchar, modules/wctype-h:
Depend on gen-header, and use its macros to simplify
header generation.
2021-12-24 Bruno Haible <bruno@clisp.org>
passfd: Fix compilation error on IRIX.
* lib/passfd.c (sendfd): On IRIX, ignore CMSG_FIRSTHDR.
(recvfd): Likewise. Produce a fake error ENOTCONN.
2021-12-24 Bruno Haible <bruno@clisp.org>
tests: Fix link errors on AIX.
* modules/fnmatch-h-c++-tests (Makefile.am): Link test-fnmatch-h-c++
with $(LIB_MBRTOWC).
* modules/glob-h-c++-tests (Makefile.am): Link test-glob-h-c++ with
$(LIB_MBRTOWC).
* modules/stdlib-c++-tests (Makefile.am): Link test-stdlib-c++ with
$(GETLOADAVG_LIBS).
* modules/sys_stat-c++-tests (Makefile.am): Link test-sys_stat-c++ with
$(LIB_MBRTOWC).
* modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with
$(LIBUNISTRING).
2021-12-24 Bruno Haible <bruno@clisp.org>
hamt tests: Fix compilation error with AIX xlc.
* tests/test-hamt.c (test_iterator): Don't use compound initializer.
2021-12-24 Bruno Haible <bruno@clisp.org>
strerrorname_np: Fix compilation error on IRIX.
* lib/strerrorname_np.c (strerrorname_np): Handle conflict between
EDIRCORRUPTED and EFSCORRUPTED.
* tests/test-strerrorname_np.c (main): Likewise.
2021-12-24 Bruno Haible <bruno@clisp.org>
hamt: Fix compilation error on NetBSD 7.
* lib/hamt.h (GL_HAMT_THREAD_SAFE): Define to 0 if the compiler is a
GCC version < 4.9.
2021-12-24 Bruno Haible <bruno@clisp.org>
search: Fix compilation errors with SunPRO C++ on Solaris 10.
* lib/search.in.h (_gl_lsearch_compar_fn): New type.
(lfind, lsearch): Use it.
2021-12-24 Bruno Haible <bruno@clisp.org>
qsort_r: Fix compilation error with SunPRO C++ on Solaris 10.
* lib/stdlib.in.h (_gl_qsort_r_compar_fn): New type.
(qsort_r): Use it.
* tests/test-stdlib-c++.cc (qsort_r): Don't test with SunPRO C++.
2021-12-24 Bruno Haible <bruno@clisp.org>
threads-h tests: Avoid clang warnings.
* tests/test-threads.c (main): Add 'default' to switch statements.
2021-12-24 Bruno Haible <bruno@clisp.org>
doc: Small updates.
* doc/glibc-functions/ptsname_r.texi: Update info regarding Mac OS X.
* doc/posix-functions/getlogin_r.texi: Update info regarding FreeBSD.
2021-12-22 Paul Eggert <eggert@cs.ucla.edu>
libgmp: omit redundant 'mkdir -p .'
* modules/libgmp: Mark $(MKDIR) with @NMD@; this was missed
in a previous pass.
maint: omit unnecessary ‘rm -f $@-t $@’
* modules/alloca-opt, modules/argz, modules/arpa_inet:
* modules/assert-h, modules/byteswap, modules/configmake:
* modules/ctype, modules/dirent, modules/dynarray, modules/errno:
* modules/execinfo, modules/fcntl-h, modules/float:
* modules/fnmatch-h, modules/getopt-posix, modules/glob-h:
* modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete:
* modules/langinfo, modules/libtextstyle-optional:
* modules/limits-h, modules/langinfo, modules/libgmp, modules/limits-h:
* modules/locale, modules/malloc-h, modules/math, modules/monetary:
* modules/net_if, modules/netdb, modules/netinet_in:
* modules/openmp-init, modules/poll-h, modules/posix-shell:
* modules/posix_spawnp-tests, modules/pthread-h, modules/pty:
* modules/sched, modules/scratch_buffer, modules/search:
* modules/selinux-h, modules/signal-h, modules/sigsegv:
* modules/snippet/link-warning, modules/spawn, modules/stdalign:
* modules/stdarg, modules/stdbool, modules/stddef, modules/stdint:
* modules/stdio, modules/stdlib, modules/stdnoreturn:
* modules/string, modules/strings, modules/sys_file:
* modules/sys_ioctl, modules/sys_random, modules/sys_resource:
* modules/sys_select, modules/sys_socket, modules/sys_stat:
* modules/sys_time, modules/sys_times, modules/sys_types:
* modules/sys_uio, modules/sys_utsname, modules/sys_wait:
* modules/sysexits, modules/termios, modules/threads-h:
* modules/time, modules/uchar, modules/unicase/base:
* modules/unicase/special-casing, modules/uniconv/base:
* modules/unictype/base, modules/unigbrk/base, modules/unilbrk/base:
* modules/uniname/base, modules/uninorm/base, modules/unistd:
* modules/unistdio/base, modules/unistr/base, modules/unitypes:
* modules/uniwbrk/base, modules/uniwidth/base, modules/utime-h:
* modules/wchar, modules/wctype-h:
Don’t bother to do a ‘rm -f $@-t $@’ at the start of recipes that
create .h and similar files. This is a revenant of a style in
which the files were created read-only. Also, consistently use
use plain ‘mv $@-t $@’ afterwards, instead of usually using
‘mv -f’ but sometimes plain ‘mv’.
2021-12-21 Paul Eggert <eggert@cs.ucla.edu>
maint: fix __clang_major__ misspellings
The intprops.h typo fix should fix a bug in Emacs on Debian testing
with clang <https://bugs.gnu.org/52711>.
* lib/asyncsafe-spin.c, lib/intprops.h, lib/pthread-spin.c:
Fix some misspellings of ‘__clang_major__’.
I left one misspelling alone, in lib/cdefs.h,
and instead reported that bug upstream here:
https://sourceware.org/pipermail/libc-alpha/2021-December/134512.html
2021-12-21 Bruno Haible <bruno@clisp.org>
get_ppid_of, get_progname_of: Fix runtime error on Mac OS X < 10.5.
Reported by Evan Miller <emmiller@gmail.com>
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00081.html>.
* lib/get_ppid_of.c (proc_pidinfo): Declare with WEAK_IMPORT_ATTRIBUTE.
(get_ppid_of): Test whether the symbol declared weak evaluates to
non-NULL before invoking it.
* lib/get_progname_of (proc_pidinfo): Declare with
WEAK_IMPORT_ATTRIBUTE.
(get_progname_of): Test whether the symbol declared weak evaluates to
non-NULL before invoking it.
2021-12-21 Paul Eggert <eggert@cs.ucla.edu>
Move AM_V_GEN to recipe start
This is especially needed when building Emacs, as it uses
‘AM_V_GEN=@$(info GEN $@)', which means the GEN line is output by
GNU make just before the recipe runs, regardless of where AM_V_GEN
appears in the recipe. And it’s also good practice even if the
default Automake ‘AM_V_GEN=@echo GEN $@;’ is used, as it’s better
to output the GEN line consistently at the start of every recipe,
even if this precedes a preparatory command that almost always
works silently.
* modules/arpa_inet, modules/dynarray, modules/net_if:
* modules/netinet_in, modules/scratch_buffer, modules/selinux-h:
* modules/sys_file, modules/sys_ioctl, modules/sys_random:
* modules/sys_resource, modules/sys_select, modules/sys_socket:
* modules/sys_stat, modules/sys_time, modules/sys_times:
* modules/sys_types, modules/sys_uio, modules/sys_utsname:
* modules/sys_wait, modules/unicase/special-casing, top/maint.mk:
Use AM_V_GEN only at the start of each recipe.
2021-12-21 Bruno Haible <bruno@clisp.org>
c-xvasprintf: Fix declarations (regression 2021-08-07).
* lib/c-xvasprintf.h (c_xasprintf, c_xvasprintf): Remove
_GL_ATTRIBUTE_RETURNS_NONNULL attribute.
2021-12-21 Bruno Haible <bruno@clisp.org>
snippet/warn-on-use: Fix compilation error in C++ mode on OpenBSD 7.0.
* lib/warn-on-use.h (_GL_WARN_ON_USE): In C++ mode, declare function
with "C" linkage.
2021-12-21 Bruno Haible <bruno@clisp.org>
Optimize redundant 'mkdir -p .' invocations.
Reported by Paul Eggert.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Eliminate @NMD@ tokens.
* modules/alloca-opt (Makefile.am): Prefix the "$(MKDIR_P) '%reldir%'"
line with @NMD@.
* modules/argz (Makefile.am): Likewise.
* modules/assert-h (Makefile.am): Likewise.
* modules/byteswap (Makefile.am): Likewise.
* modules/configmake (Makefile.am): Likewise.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/execinfo (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/fnmatch-h (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/glob-h (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/ieee754-h (Makefile.am): Likewise.
* modules/inttypes-incomplete (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/libtextstyle-optional (Makefile.am): Likewise.
* modules/limits-h (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/malloc-h (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/monetary (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/openmp-init (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/posix-shell (Makefile.am): Likewise.
* modules/pthread-h (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/signal-h (Makefile.am): Likewise.
* modules/sigsegv (Makefile.am): Likewise.
* modules/snippet/link-warning (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdalign (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stdbool (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/stdnoreturn (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/threads-h (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/uchar (Makefile.am): Likewise.
* modules/unicase/base (Makefile.am): Likewise.
* modules/uniconv/base (Makefile.am): Likewise.
* modules/unictype/base (Makefile.am): Likewise.
* modules/unigbrk/base (Makefile.am): Likewise.
* modules/unilbrk/base (Makefile.am): Likewise.
* modules/uniname/base (Makefile.am): Likewise.
* modules/uninorm/base (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/unistdio/base (Makefile.am): Likewise.
* modules/unistr/base (Makefile.am): Likewise.
* modules/unitypes (Makefile.am): Likewise.
* modules/uniwbrk/base (Makefile.am): Likewise.
* modules/uniwidth/base (Makefile.am): Likewise.
* modules/utime-h (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
2021-12-19 Bruno Haible <bruno@clisp.org>
non-recursive-gnulib-prefix-hack: Deprecate module.
* modules/non-recursive-gnulib-prefix-hack (Status, Notice): New
sections.
2021-12-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't insist on ACLOCAL_AMFLAGS.
Reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00112.html>.
* gnulib-tool (func_import): Mention an AC_CONFIG_MACRO_DIRS invocation
as an alternative to augmenting ACLOCAL_AMFLAGS.
(--import, --add-import, --remove-import, --update): To find the m4
directories, look also for AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS
invocations in configure.ac.
2021-12-18 Bruno Haible <bruno@clisp.org>
nstrftime: Update meta info.
* config/srclist.txt: Fix typo from 2017-07-23.
2021-12-18 Bruno Haible <bruno@clisp.org>
stdint: Fix handling of limits.h (regression 2021-12-16).
* modules/stdint (configure.ac): Revert last change.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
If --gnu-make is used, assume that AC_SUBSTed variables for conditionals
are constructed by appending the suffix '_CONDITION'.
2021-12-18 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: simplify by using libc-config.h.
* lib/nstrftime.c [!_LIBC]: Include libc-config.h
instead of config.h.
(iso_week_days): Simplify via libc-config.h’s __inline.
(my_strftime): Simplify via libc-config.h’s libc_hidden_def.
* modules/nstrftime (Depends-on): Add libc-config.
2021-12-18 Bruno Haible <bruno@clisp.org>
libtextstyle-optional: Fix generation of textstyle.h (regr. 2021-12-15).
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Invoke
gl_CONDITIONAL_HEADER.
2021-12-18 Bruno Haible <bruno@clisp.org>
Fix support for --gnu-make in tests (regression 2021-12-15).
* gnulib-tool (func_emit_tests_Makefile_am): When producing output for
GNU make, eliminate %reldir% tokens.
2021-12-17 Bruno Haible <bruno@clisp.org>
getopt-posix: Fix build on AIX (regression 2021-12-15).
* modules/getopt-posix (configure.ac): Arrange to generate
getopt-cdefs.h.
(Makefile.am): Separate the rules for getopt.h and getopt-cdefs.h.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix: omit unnessary building of getopt.h
* modules/getopt-posix (getopt.h, getopt-cdefs.h):
Build only if GL_GENERATE_GETOPT_H.
stdint: omit duplicate gl_CONFIGURE_HEADER calls
* modules/stdint (configure.ac): Omit
‘gl_CONDITIONAL_HEADER([limits.h])’, since stdint depends on
limits-h and doing gl_CONDITIONAL_HEADER twice can result in
‘configure’ failing with “*** GL_GENERATE_LIMITS_H is not set
correctly”.
2021-12-15 Bruno Haible <bruno@clisp.org>
automake-subdir support: Support the libunistring modules.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_LIBHEADER): Use the value of
the gl_source_base_prefix variable.
2021-12-15 Bruno Haible <bruno@clisp.org>
automake-subdir support: Support arbitrary --source-base value.
Reported by Marc Nieper-Wißkirchen in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00066.html>.
* build-aux/prefix-gnulib-mk ($canon_prefix): New variable.
(prefix): Initialize it.
(prefix_assignment): Use it.
2021-12-15 Bruno Haible <bruno@clisp.org>
automake-subdir support: Look for 'subdir-objects' also in configure.ac.
* gnulib-tool: Look for the automake options also in the first argument
of the AM_INIT_AUTOMAKE invocation in configure.ac.
2021-12-15 Bruno Haible <bruno@clisp.org>
Add simple examples.
* examples: New directory.
2021-12-15 Bruno Haible <bruno@clisp.org>
Accommodate non-recursive Automake in a less hacky way.
* gnulib-tool: New option --automake-subdir.
(automake_subdir): New variable.
(func_emit_initmacro_end): Add a second argument. Use it to prefix each
object file name in *_LIBOBJS and *_LTLIBOBJS.
(func_emit_shellvars_init): New function.
(func_import): Add support for --automake-subdir. Invoke
prefix-gnulib-mk. Update calls to func_emit_initmacro_end. Call
func_emit_shellvars_init.
(func_create_testdir): Update calls to func_emit_initmacro_end. Call
func_emit_shellvars_init.
* m4/gnulib-tool.m4 (gl_AUTOMAKE_SUBDIR): New macro.
* m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): Use the value of the
gl_source_base_prefix variable.
* build-aux/prefix-gnulib-mk: New options --from-gnulib-tool, --prefix.
(contents_of_file): Renamed from contents.
(contents_of_stdin): New function.
(process): Inline and remove function.
* doc/gnulib-tool.texi (Non-recursive make): New section.
2021-12-15 Bruno Haible <bruno@clisp.org>
Move .h file names out of the *.m4 files.
This is useful because Autoconf macros defined in *.m4 files can be
AC_REQUIREd. In the configure file, they are then expanded before
gl_INIT, i.e. at a place where it is not known whether they are required
for the lib/ or for the tests/ directory (or both).
* m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): New macro.
* m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H instead of
ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/alloca-opt (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/argz.m4 (gl_FUNC_ARGZ): Set GL_GENERATE_ARGZ_H instead of ARGZ_H.
Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/argz (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/assert_h.m4 (gl_ASSERT_H): Set GL_GENERATE_ASSERT_H instead of
ASSERT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/assert-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/byteswap.m4 (gl_BYTESWAP): Set GL_GENERATE_BYTESWAP_H instead of
BYTESWAP_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/byteswap (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Set GL_GENERATE_ERRNO_H instead of
ERRNO_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
(gl_REPLACE_ERRNO_VALUE): Update.
* m4/perror.m4 (gl_FUNC_PERROR): Update.
* m4/strerror.m4 (gl_FUNC_STRERROR): Update.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS):
Update.
* modules/errno (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/execinfo.m4 (gl_EXECINFO_H): Set GL_GENERATE_EXECINFO_H instead of
EXECINFO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Drop AC_LIBOBJ
invocation.
* modules/execinfo (configure.ac): Invoke gl_CONDITIONAL_HEADER and
AC_LIBOBJ.
* m4/float_h.m4 (gl_FLOAT_H): Set GL_GENERATE_FLOAT_H instead of
FLOAT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/float (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/fnmatch_h.m4 (gl_FNMATCH_H, gl_REPLACE_FNMATCH_H): Set
GL_GENERATE_FNMATCH_H instead of FNMATCH_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/fnmatch-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/fnmatch (configure.ac): Likewise.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_GETOPT_SUBSTITUTE_HEADER): Set
GL_GENERATE_GETOPT_H instead of GETOPT_H. Set GL_GENERATE_GETOPT_CDEFS_H
instead of GETOPT_CDEFS_H. Drop AC_SUBST invocations.
* modules/getopt-posix (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/glob_h.m4 (gl_GLOB_H, gl_REPLACE_GLOB_H): Set GL_GENERATE_GLOB_H
instead of GLOB_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/glob-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/glob (configure.ac): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS, gl_REPLACE_ICONV_H): Set
GL_GENERATE_ICONV_H instead of ICONV_H. Drop AC_SUBST and AM_CONDITIONAL
invocations.
(gl_ICONV_H): Update.
* modules/iconv-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/iconv_open (configure.ac): Likewise.
* m4/ieee754-h.m4 (gl_IEEE754_H): Set GL_GENERATE_IEEE754_H instead of
IEEE754_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/ieee754-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/libgmp.m4 (gl_LIBGMP): Set GL_GENERATE_GMP_H instead of GMP_H. Drop
AC_SUBST invocation.
* modules/libgmp (configure.ac): Invoke gl_CONDITIONAL_HEADER.
(Makefile.am): Use GL_GENERATE_GMP_H.
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Set
GL_GENERATE_TEXTSTYLE_H instead of TEXTSTYLE_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/libtextstyle-optional (configure.ac): Invoke
gl_CONDITIONAL_HEADER.
* m4/limits-h.m4 (gl_LIMITS_H, gl_REPLACE_LIMITS_H): Set
GL_GENERATE_LIMITS_H instead of LIMITS_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/limits-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/monetary_h.m4 (gl_MONETARY_H): Set GL_GENERATE_MONETARY_H instead
of MONETARY_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/monetary (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/net_if_h.m4 (gl_HEADER_NET_IF): Set GL_GENERATE_NET_IF_H instead of
NET_IF_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/net_if (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Set
GL_GENERATE_NETINET_IN_H instead of NETINET_IN_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/netinet_in (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Set
GL_GENERATE_SELINUX_CONTEXT_H instead of SELINUX_CONTEXT_H. Drop
AC_SUBST and AM_CONDITIONAL invocations.
* m4/selinux-label-h.m4 (gl_HEADERS_SELINUX_LABEL_H): Set
GL_GENERATE_SELINUX_LABEL_H instead of SELINUX_LABEL_H. Drop AC_SUBST
and AM_CONDITIONAL invocations.
* modules/selinux-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdalign.m4 (gl_STDALIGN_H): Set GL_GENERATE_STDALIGN_H instead of
STDALIGN_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdalign (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdarg.m4 (gl_STDARG_H): Set GL_GENERATE_STDARG_H instead of
STDARG_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdarg (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdbool.m4 (gl_STDBOOL_H): Renamed from AM_STDBOOL_H. Set
GL_GENERATE_STDBOOL_H instead of STDBOOL_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don't require AM_STDBOOL_H.
* modules/stdbool (configure.ac): Invoke gl_STDBOOL_H instead of
AM_STDBOOL_H. Invoke gl_CONDITIONAL_HEADER.
* m4/stddef_h.m4 (gl_STDDEF_H): Set GL_GENERATE_STDDEF_H instead of
STDDEF_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stddef (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdint.m4 (gl_STDINT_H): Set GL_GENERATE_STDINT_H instead of
STDINT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Update.
* modules/stdint (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Set GL_GENERATE_STDNORETURN_H
instead of STDNORETURN_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdnoreturn (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Set GL_GENERATE_SYS_SOCKET_H
instead of SYS_SOCKET_H.
* m4/sysexits.m4 (gl_SYSEXITS): Set GL_GENERATE_SYSEXITS_H instead of
SYSEXITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/sysexits (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/sigsegv (configure.ac): Set GL_GENERATE_SIGSEGV_H instead of
SIGSEGV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Invoke
gl_CONDITIONAL_HEADER.
2021-12-15 Bruno Haible <bruno@clisp.org>
Fix creation of build directories with non-recursive-gnulib-prefix-hack.
This is necessary for executing "make" in a VPATH build of a package
that uses prefix-gnulib-mk and a module such as alloca-opt.
* modules/alloca-opt (Makefile.am): Before generating the .h-t file,
ensure that the directory in which we want to create it exists.
(configure.ac): Invoke AC_PROG_MKDIR_P.
* modules/argz: Likewise.
* modules/arpa_inet: Likewise.
* modules/assert-h: Likewise.
* modules/byteswap: Likewise.
* modules/configmake: Likewise.
* modules/ctype: Likewise.
* modules/dirent: Likewise.
* modules/dynarray: Likewise.
* modules/errno: Likewise.
* modules/execinfo: Likewise.
* modules/fcntl-h: Likewise.
* modules/float: Likewise.
* modules/fnmatch-h: Likewise.
* modules/getopt-posix: Likewise.
* modules/glob-h: Likewise.
* modules/iconv-h: Likewise.
* modules/ieee754-h: Likewise.
* modules/inttypes-incomplete: Likewise.
* modules/langinfo: Likewise.
* modules/libgmp: Likewise.
* modules/libtextstyle-optional: Likewise.
* modules/limits-h: Likewise.
* modules/locale: Likewise.
* modules/malloc-h: Likewise.
* modules/math: Likewise.
* modules/monetary: Likewise.
* modules/net_if: Likewise.
* modules/netdb: Likewise.
* modules/netinet_in: Likewise.
* modules/openmp-init: Likewise.
* modules/poll-h: Likewise.
* modules/posix-shell: Likewise.
* modules/pthread-h: Likewise.
* modules/pty: Likewise.
* modules/sched: Likewise.
* modules/scratch_buffer: Likewise.
* modules/search: Likewise.
* modules/selinux-h: Likewise.
* modules/signal-h: Likewise.
* modules/sigsegv: Likewise.
* modules/snippet/link-warning: Likewise.
* modules/spawn: Likewise.
* modules/stdalign: Likewise.
* modules/stdarg: Likewise.
* modules/stdbool: Likewise.
* modules/stddef: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/stdnoreturn: Likewise.
* modules/string: Likewise.
* modules/strings: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_random: Likewise.
* modules/sys_resource: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_types: Likewise.
* modules/sys_uio: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
* modules/sysexits: Likewise.
* modules/termios: Likewise.
* modules/threads-h: Likewise.
* modules/time: Likewise.
* modules/uchar: Likewise.
* modules/unicase/base: Likewise.
* modules/unicase/special-casing: Likewise.
* modules/uniconv/base: Likewise.
* modules/unictype/base: Likewise.
* modules/unigbrk/base: Likewise.
* modules/unilbrk/base: Likewise.
* modules/uniname/base: Likewise.
* modules/uninorm/base: Likewise.
* modules/unistd: Likewise.
* modules/unistdio/base: Likewise.
* modules/unistr/base: Likewise.
* modules/unitypes: Likewise.
* modules/uniwbrk/base: Likewise.
* modules/uniwidth/base: Likewise.
* modules/utime-h: Likewise.
* modules/wchar: Likewise.
* modules/wctype-h: Likewise.
* gnulib-tool (func_emit_lib_Makefile_am): When producing output for
GNU make, eliminate %reldir% tokens.
2021-12-15 Bruno Haible <bruno@clisp.org>
non-recursive-gnulib-prefix-hack: Remove obsolete code.
* build-aux/prefix-gnulib-mk (prefix): Remove handling of t-$@ pattern.
2021-12-15 Bruno Haible <bruno@clisp.org>
Indentation fix.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Correct indentation.
2021-12-14 Paul Eggert <eggert@cs.ucla.edu>
renameatu: port to macOS tmpfs
Problem reported by Sudhip Nashi (Bug#52193).
* lib/renameatu.c (renameat2ish) [HAVE_RENAMEAT]: New function.
(renameatu): Use the new function, to avoid a bug when
renameatx_np fails with errno == ENOTSUP. Don’t try to support
RENAME_EXCHANGE; the old code didn’t work and nobody using using
RENAME_EXCHANGE anyway.
2021-12-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Try to support non-recursive-gnulib-prefix-hack with tests.
* gnulib-tool (func_import): Synthesize an AC_CONFIG_LIBOBJ_DIR
invocation.
* m4/non-recursive-gnulib-prefix-hack.m4
(gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't invoke
AC_CONFIG_LIBOBJ_DIR.
2021-12-12 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: refactor for GNU tar
* build-aux/bootstrap (gitignore_entries, insert_if_absent)
(insert_vc_ignore, symlink_to_dir): Define these shell functions
before including bootstrap.conf. This is for GNU tar, whose
bootstrap.conf uses symlink_to_dir.
2021-12-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support different basenames for the lib/,tests/ Makefiles.
* gnulib-tool: New option --tests-makefile-name.
(tests_makefile_name): New variable.
(func_import): Add support for --tests-makefile-name. Replace local
variable makefile_am with two local variables source_makefile_am,
tests_makefile_am.
* m4/gnulib-tool.m4 (gl_TESTS_MAKEFILE_NAME): New macro.
2021-12-11 Bruno Haible <bruno@clisp.org>
get_ppid_of, get_progname_of: Fix compilation error on Mac OS X < 10.5.
Reported by Ryan Schmidt <gnulib@ryandesign.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00011.html>.
* lib/get_ppid_of.c: Include AvailabilityMacros.h
(get_ppid_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and
MAC_OS_X_VERSION_MIN_REQUIRED.
* lib/get_progname_of: Include AvailabilityMacros.h
(get_progname_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and
MAC_OS_X_VERSION_MIN_REQUIRED.
2021-12-10 Paul Eggert <eggert@cs.ucla.edu>
backupfile: assume C99 decls
* lib/backupfile.c: Use C99-style decls after statements.
backupfile: prefer signed integers
* lib/backupfile.c: Include ialloc.h instead of idx.h.
Prefer idx_t to size_t where either will do.
Use imalloc and irealloc instead of malloc and realloc.
* modules/backupfile, modules/backup-rename (Depends-on):
Depend on ialloc not idx.
backupfile: fix numbered backups for XXX/
* lib/backupfile.c (check_extension): Return a bool indicating
whether the original extension was OK. Caller changed.
(numbered_backup): Require that FILELEN does not count
trailing slashes after a non-slash, and don’t require
that *BUF be null-terminated. Caller changed.
This fixes a bug where the numbered backup file name for X/ was
incorrectly computed because the slash messed up the code
looking for X.~1~, X.~2~, etc., and this caused numbered_backup
to loop forever. Also, check that check_extension doesn’t
truncate a file name leading to an infloop.
2021-12-07 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify Coverity clean_state_log_if_needed
Problem reported by Robbie Harwood in:
https://lists.gnu.org/r/bug-gnulib/2021-12/msg00005.html
* lib/regexec.c (clean_state_log_if_needed):
Add a DEBUG_ASSERT; this both pacifies Coverity and
will help to debug in case some other change mistakenly
causes the assertion to become false.
2021-12-07 Bruno Haible <bruno@clisp.org>
gettext-h: Optimize also for clang.
* lib/gettext.h (pgettext_aux, npgettext_aux, dcpgettext_expr,
dcnpgettext_expr): Inline also on clang.
2021-12-06 Bruno Haible <bruno@clisp.org>
intprops: Break sync with glibc.
* config/srclist.txt: Comment out intprops.h.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
intprops: streamline and get ready for Clang 14
* lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW):
Rely on __has_builtin first, since GCC didn’t introduce it until
GCC 9 so we don’t need to special-case GCC first.
(_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_OVERFLOW_P):
Look at __EDG__ rather than __ICC, since icc defines __EDG__ too.
(_GL_HAS_BUILTIN_MUL_OVERFLOW): Define to 1 in Clang 14 and later,
as a bug fix is scheduled for Clang 14.
(_GL_HAS_BUILTIN_OVERFLOW_P): Do not bother to special-case
__clang__, since __has_builtin should do the right thing anyway.
2021-12-06 Bruno Haible <bruno@clisp.org>
intprops: Treat EDG-based compilers like Intel compilers.
Reported by Ilya Kurdyukov <ilyakurdyukov@altlinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-12/msg00028.html>.
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P): Define to 0 on EDG-based
compilers.
2021-12-05 Bruno Haible <bruno@clisp.org>
sigsegv: Fix build on some more embedded CPUs.
* m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume the stack grows
negative, when the GCC 11 sources say so.
2021-11-30 Paul Eggert <eggert@cs.ucla.edu>
sys_random: port better to uClibc < 1.0.35
Problem reported by Fabrice Fontaine in:
https://lists.gnu.org/r/bug-gnulib/2021-11/msg00043.html
* lib/sys_random.in.h [HAVE_SYS_RANDOM_H && !__GLIBC__ && __UCLIBC__]:
Include <stddef.h>, in case this file is included before
__UCLIBC__ is defined.
2021-11-27 Paul Eggert <eggert@cs.ucla.edu>
gettext-h: document GNULIB_NO_VLA
* doc/gnulib-readme.texi (C99 features avoided):
Document GNULIB_NO_VLA.
gettext-h: use VLA test similar to regex
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Assuming
GNULIB_NO_VLA, define if (defined __STDC_VERSION__ && 199901L <=
__STDC_VERSION__ \ + && !defined __STDC_NO_VLA___), not if
((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__).
This is more consistent with what the regex module does.
* modules/gettext-h (Depends-on): Depend on vararrays, since
lib/gettext.h uses __STDC_NO_VLA__.
regex: port to tcc
Problem reported by Benno Schulenberg in:
https://lists.gnu.org/r/bug-gnulib/2021-11/msg00038.html
* modules/regex (Depends-on): Depend on vararrays, since
lib/regex.h uses __STDC_NO_VLA__.
* modules/vararrays: Change license from LGPL to LGPLv2+.
2021-11-25 Bernhard Voelker <mail@bernhard-voelker.de>
test-framework-sh: remove unsafe entries from PATH
Running tests with '.' in the PATH may yield unspecified results,
and is deemed unsafe per se. This includes empty entries as well
which are treated like a '.' entry as per POSIX.
* tests/init.sh (setup_): Add snippet to remove relative and non-
accessible entries from the PATH environment variable.
2021-11-24 Paul Eggert <eggert@cs.ucla.edu>
regex: merge from glibc
The main change here, imported from Glibc, is for the regex
code to stop using nested functions when _LIBC is defined.
The intent is for the result to be copied back to Glibc
so that the two implementations can resync.
* lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry)
(lookup_collation_sequence_value, build_range_exp)
(build_collating_symbol):
* lib/regexec.c (acquire_init_state_context):
Declare with __always_inline instead of with
‘inline __attribute__ ((always_inline))’.
* lib/regexec.c (init_word_char):
Move uint64_t comment to regex_internal.h.
(parse_byte): Change multibyte-detecting arg from re_charset_t *
to re_dfa_t const *. All callers changed.
(build_range_exp, build_collating_symbol) [!_LIBC]:
Change signature to match _LIBC well enough so that the caller can
be simplified to assume _LIBC.
(parse_bracket_exp): Pull its nested functions
seek_collating_symbol_entry, lookup_collation_sequence_value,
build_range_exp, build_collating_symbol out to the top level,
adding args to pass the information instead of having them access
nonlocal vars. Use types in local vars that do not assume glibc.
* lib/regex_internal.h: Explain uint64_t etc. here.
2021-11-23 Paul Eggert <eggert@cs.ucla.edu>
regex: assume RE_ENABLE_I18N
These days there is no longer any need to port to platforms
lacking iswctype etc., since Gnulib now has substitutes.
* config/srclist.txt: Comment out regex_internal.c and
regex_internal.h for now, since they no longer match glibc.
The intent is to merge them again soon.
* lib/regex_internal.h (RE_ENABLE_I18N): Remove.
All uses changed to assume that RE_ENABLE_I18N is 1.
* modules/regex (Depends-on): Add iswctype.
2021-11-15 Paul Eggert <eggert@cs.ucla.edu>
lseek: port around macOS SEEK_HOLE glitch
Problem reported by Sudhip Nashi (Bug#51857#47).
* lib/lseek.c (rpl_lseek): Work around macOS lseek+SEEK_HOLE
returning -1 with ENXIO if there are no holes before EOF,
contrary to the macOS documentation.
lseek: port around macOS SEEK_DATA glitch
Problem reported by Sudhip Nashi (Bug#51857).
* doc/posix-functions/lseek.texi (lseek): Mention macOS SEEK_DATA
issue.
* lib/lseek.c (rpl_lseek): Work around macOS portability glitch.
* m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek on Darwin.
* modules/lseek (Depends-on): Depend on msvc-nothrow
and fstat only if needed.
2021-11-11 Fabrice Fontaine <fontaine.fabrice@gmail.com> (tiny change)
sigsegv: fix builds on microblazeel, or1k
* m4/stack-direction.m4 (SV_STACK_DIRECTION):
Assume it grows negative on microblaze* and or1k.
2021-11-09 Paul Eggert <eggert@cs.ucla.edu>
exclude: yield proper errno on failure
* lib/exclude.c (add_exclude_file): Do not assume that fclose
preserves errno on success.
2021-11-07 Paul Eggert <eggert@cs.ucla.edu>
regex: break regcomp.c link with glibc
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-11/msg00005.html
* config/srclist.txt: Comment out regcomp.c for now.
* lib/regcomp.c: Revert previous change.
2021-10-24 Bruno Haible <bruno@clisp.org>
string: Avoid syntax error re strdup in string.in.h (regr. 2021-09-07).
Reported by Jan Engelhardt <jengelh@inai.de>
and by Arash Esbati <arash@gnu.org> via Andy Moreton in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-10/msg00058.html>.
* lib/string.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE,
_GL_ATTRIBUTE_MALLOC): Add fallback declarations, like in
lib/stdlib.in.h.
* lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE,
_GL_ATTRIBUTE_MALLOC): Likewise.
2021-10-19 Paul Eggert <eggert@cs.ucla.edu>
xalloc: new function xinmalloc
* lib/xmalloc.c (xinmalloc): New function, which is like
xnmalloc but for idx_t instead of size_t.
2021-10-18 Paul Eggert <eggert@cs.ucla.edu>
regex: fix buffer read overrrun
* lib/regexec.c (re_search_internal):
Fix buffer read overrun reported by Benno Schulenberg in:
https://lists.gnu.org/r/bug-gnulib/2021-10/msg00035.html
2021-10-15 Paul Eggert <eggert@cs.ucla.edu>
nproc: port better to macOS 10.14
* lib/nproc.c (num_processors_ignoring_omp)
[HAVE_SYSCTL && !defined __GLIBC__ && defined HW_NCPU]:
Do not use a const mib, as macOS 10.14 rejects this.
2021-10-13 Paul Eggert <eggert@cs.ucla.edu>
sigsegv: fix quoting problem
Problem reported for FreeBSD ports by Alexey Dokuchaev in:
https://bugs.gnu.org/51144
* m4/stack-direction.m4 (SV_STACK_DIRECTION): Quote brackets.
2021-10-10 Paul Eggert <eggert@cs.ucla.edu>
nproc: port better to OpenBSD
Problem reported by Omar Polo in:
https://lists.gnu.org/r/emacs-devel/2021-10/msg00692.html
* lib/nproc.c (num_processors_ignoring_omp): Prefer HW_NCPUONLINE
to HW_NCPU, for OpenBSD. Also, make mib const.
2021-10-02 Paul Eggert <eggert@cs.ucla.edu>
timer-time: port better to OpenBSD 6.9
* m4/timer_time.m4 (gl_TIMER_TIME): Also require timer_settime to
be declared, as it exists in OpenBSD but always fails with ENOSYS.
sys_select: port better to OpenBSD 6.9
OpenBSD 6.9’s <sys/time.h> includes <sys/select.h> which then
includes <signal.h>, which caused coreutils/lib/nproc.c compiles
to fail with "/usr/include/signal.h:57: warning: 'struct
sigaction' declared inside parameter list". Fix this.
* lib/sys_select.in.h [__OpenBSD__]: Simply delegate to the system
header if being included from <sys/time.h>.
2021-09-22 Bruno Haible <bruno@clisp.org>
doc: Fix outdated statement about Spanish collation.
Reported by Dietmar Schindler in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00095.html>.
* doc/regex.texi (Collating Elements vs. Characters): Choose another
example of a digraph with special collation.
doc: Don't assume that the output format is TeX-based or info.
Reported by Dietmar Schindler in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00095.html>.
* doc/regex.texi (Collating Elements vs. Characters): Assume a texinfo
version that groks UTF-8 encoded ISO-8859-1 characters.
2021-09-21 Paul Eggert <eggert@cs.ucla.edu>
regex: sync with glibc
* config/srclist.txt: Uncomment-out posix/regex.c and related
files, as the Gnulib versions have now been copied to glibc.
* lib/intprops.h: Remove authorship comment, as per glibc guidelines.
2021-09-20 Simon Josefsson <simon@josefsson.org>
maint: Avoid syntax-check failure for empty gnulib submodule.
* top/maint.mk (gnulib_dir): Fall back to GNULIB_SRCDIR if
submodule is not checked out.
2021-09-19 Bruno Haible <bruno@clisp.org>
Relicense qemu.h under LGPLv2+.
* tests/qemu.h: Change license header.
2021-09-19 Bruno Haible <bruno@clisp.org>
ialloc: Update license headers after license change from 2021-08-29.
* lib/ialloc.h: Update license header.
* lib/ialloc.c: Likewise.
2021-09-19 Bruno Haible <bruno@clisp.org>
Improve 'configure --help' output for crypto modules.
* m4/af_alg.m4 (gl_AF_ALG): List the hash functions for which we use the
Linux crypto. Also mention that we use it on files only.
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Use manual line breaking, not the
line-filling style of AS_HELP_STRING. Show that --with-openssl takes an
optional argument. List the hash functions for which we use the OpenSSL
library. Don't mention --with-linux-crypto if the af_alg module is not
in use. Mention that --with-linux-crypto applies only to the Linux
kernel. Mention that it gets used only when available. Mention that it
takes precedence only for files. In the error or warning, mention the
pre-built package name that people can install.
2021-09-18 Bruno Haible <bruno@clisp.org>
string, wchar: Don't require undefined m4 macros (regr. today).
Reported by Colin Watson <cjwatson@debian.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00078.html>.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Don't use m4_require
directly. Instead, invoke gl_STDLIB_H_REQUIRE_DEFAULTS.
* m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Likewise.
2021-09-18 Bruno Haible <bruno@clisp.org>
sm3-buffer tests: New module.
* tests/test-sm3-buffer.c: Renamed from tests/test-sm3.c.
* modules/crypto/sm3-buffer-tests: Renamed from
modules/crypto/sm3-tests. Test tests/test-sm3-buffer.c instead of
tests/test-sm3.c.
sm3-buffer: New module.
* lib/sm3-stream.c: New file, extracted from lib/sm3.c.
* lib/sm3.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, sm3_stream): Moved to sm3-stream.c.
* lib/sm3.h: Tweak.
* modules/crypto/sm3-buffer: New file, based on modules/crypto/sm3.
* modules/crypto/sm3: Rewritten.
2021-09-18 Bruno Haible <bruno@clisp.org>
sha512-buffer tests: New module.
* tests/test-sha512-stream.c: Renamed from tests/test-sha512.c.
* modules/crypto/sha512-buffer-tests: New file, based on
modules/crypto/sha512-tests.
* modules/crypto/sha512-tests: Remove tests that are now in
modules/crypto/sha512-buffer-tests. Test tests/test-sha512-stream.c
instead of tests/test-sha512.c.
sha512: Clarify module to source relation.
* lib/sha512-stream.c: New file, extracted from lib/sha512.c.
* lib/sha512.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, shaxxx_stream, sha512_stream, sha384_stream): Moved to
sha512-stream.c.
* lib/sha512.h: Tweak.
* modules/crypto/sha512 (Files): Add lib/sha512-stream.c.
(configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM.
(Makefile.am): Arrange to compile sha512-stream.c.
(Link): Mention $(LIB_CRYPTO).
2021-09-18 Bruno Haible <bruno@clisp.org>
sha256-buffer tests: New module.
* tests/test-sha256-stream.c: Renamed from tests/test-sha256.c.
* modules/crypto/sha256-buffer-tests: New file, based on
modules/crypto/sha256-tests.
* modules/crypto/sha256-tests: Remove tests that are now in
modules/crypto/sha256-buffer-tests. Test tests/test-sha256-stream.c
instead of tests/test-sha256.c.
sha256: Clarify module to source relation.
* lib/sha256-stream.c: New file, extracted from lib/sha256.c.
* lib/sha256.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, shaxxx_stream, sha256_stream, sha224_stream): Moved to
sha256-stream.c.
* lib/sha256.h: Tweak.
* modules/crypto/sha256 (Files): Add lib/sha256-stream.c.
(configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM.
(Makefile.am): Arrange to compile sha256-stream.c.
(Link): Mention $(LIB_CRYPTO).
2021-09-18 Bruno Haible <bruno@clisp.org>
sha1-buffer tests: New module.
* tests/test-sha1-buffer.c: New file, based on tests/test-sha1.c.
* tests/test-sha1-stream.c: Renamed from tests/test-sha1.c.
(main): Remove sha1-buffer tests.
* modules/crypto/sha1-buffer-tests: New file, based on
modules/crypto/sha1-tests.
* modules/crypto/sha1-tests: Remove tests that are now in
modules/crypto/sha1-buffer-tests. Test tests/test-sha1-stream.c instead
of tests/test-sha1.c.
sha1: Clarify module to source relation.
* lib/sha1-stream.c: New file, extracted from lib/sha1.c.
* lib/sha1.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, sha1_stream): Moved to sha1-stream.c.
* lib/sha1.h: Correct indentation.
* modules/crypto/sha1 (Files): Add lib/sha1-stream.c.
(configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM.
(Makefile.am): Arrange to compile sha1-stream.c.
(Link): Mention $(LIB_CRYPTO).
2021-09-18 Bruno Haible <bruno@clisp.org>
md5-buffer tests: New module.
* tests/test-md5-buffer.c: New file, based on tests/test-md5.c.
* tests/test-md5-stream.c: Renamed from tests/test-md5.c.
(main): Remove md5-buffer tests.
* modules/crypto/md5-buffer-tests: New file, based on
modules/crypto/md5-tests.
* modules/crypto/md5-tests: Remove tests that are now in
modules/crypto/md5-buffer-tests. Test tests/test-md5-stream.c instead
of tests/test-md5.c.
md5: Clarify module to source relation.
* lib/md5-stream.c: New file, extracted from lib/md5.c.
* lib/md5.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, md5_stream): Moved to md5-stream.c.
* lib/md5.h: Tweak.
* modules/crypto/md5 (Files): Add lib/md5-stream.c.
(configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM.
(Makefile.am): Arrange to compile md5-stream.c.
(Link): Mention $(LIB_CRYPTO).
2021-09-18 Bruno Haible <bruno@clisp.org>
md4-buffer tests: New module.
* tests/test-md4-buffer.c: Renamed from tests/test-md4.c.
* modules/crypto/md4-buffer-tests: Renamed from
modules/crypto/md4-tests. Test tests/test-md4-buffer.c instead of
tests/test-md4.c.
md4-buffer: New module.
* lib/md4-stream.c: New file, extracted from lib/md4.c.
* lib/md4.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, md4_stream): Moved to md4-stream.c.
* lib/md4.h: Reorder declarations.
* modules/crypto/md4-buffer: New file, based on modules/crypto/md4.
* modules/crypto/md4: Rewritten.
2021-09-18 Bruno Haible <bruno@clisp.org>
md2-buffer tests: New module.
* tests/test-md2-buffer.c: Renamed from tests/test-md2.c.
* modules/crypto/md2-buffer-tests: Renamed from
modules/crypto/md2-tests. Test tests/test-md2-buffer.c instead of
tests/test-md2.c.
md2-buffer: New module.
* lib/md2-stream.c: New file, extracted from lib/md2.c.
* lib/md2.c: Don't include stdlib.h, unlocked-io.h.
(BLOCKSIZE, md2_stream): Moved to md2-stream.c.
* lib/md2.h: Reorder declarations.
* modules/crypto/md2-buffer: New file, based on modules/crypto/md2.
* modules/crypto/md2: Rewritten.
2021-09-18 Bruno Haible <bruno@clisp.org>
string, wchar: Don't cause link errors for rpl_free (regr. 2021-09-07).
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00042.html>.
* lib/string.in.h (free, rpl_free): Consider GNULIB_FREE_POSIX variable.
* lib/wchar.in.h (free, rpl_free): Likewise.
* m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Require module
indicator variable initializations from the stdlib module.
* m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Likewise.
* modules/string (Makefile.am): Substitute GNULIB_FREE_POSIX in string.h.
* modules/wchar (Makefile.am): Substitute GNULIB_FREE_POSIX in wchar.h.
2021-09-17 Bruno Haible <bruno@clisp.org>
threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0.
Reported by Brian Inglis via Akim Demaille in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00063.html>.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on
Cygwin.
2021-09-13 Bruno Haible <bruno@clisp.org>
simple-atomic: Port to Oracle Studio 12.6.
* lib/simple-atomic.c (asm) [0x590 <= __SUNPRO_C && __STDC__]:
#define to __asm.
2021-09-13 Paul Eggert <eggert@cs.ucla.edu>
asyncsafe-spin: port to Oracle Studio 12.6 sparc
Problem reported by Dennis Clarke via Eric Blake in:
https://lists.gnu.org/r/bug-gnulib/2021-09/msg00056.html
* lib/asyncsafe-spin.c (asm) [0x590 <= __SUNPRO_C && __STDC__]:
#define to __asm.
2021-09-12 Paul Eggert <eggert@cs.ucla.edu>
stdint-tests: long long preproc on recent Sun C
* tests/test-stdint.c: Test long long preprocessor constants on
Oracle Developer Studio 12.6, where they should work.
2021-09-13 Bruno Haible <bruno@clisp.org>
extern-inline: Fix syntax error on macOS with GCC 11 (regr. 2021-08-22).
Reported by Akim Demaille in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00052.html>.
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Put _GL_UNUSED
before, not after, 'static'.
2021-09-11 Christian Weisgerber <naddy@mips.inka.de> (tiny change)
sigsegv: port to OpenBSD 6.8+ powerpc64
* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER):
Special case for __OpenBSD__ && __powerpc64__, needed due to:
https://github.com/openbsd/src/commit/5e649a8714ba05cf482011b7b7d1e5437b7c17db
which is part of the oldest currently-supported OpenBSD (6.8),
so we needn’t worry about older versions.
2021-09-09 Pádraig Brady <P@draigBrady.com>
maintainer-makefile: add 'can' to sc_prohibit_doubled_word
* top/maint.mk (sc_prohibit_doubled_word): Check for "can can".
2021-09-08 Paul Eggert <eggert@cs.ucla.edu>
strerror_r-posix: port even better to Android
* lib/strerror_r.c: Use STRERROR_R_CHAR_P to decide whether the
system strerror_r returns char *, and HAVE_DECL_STRERROR_R to
decide whether it either does that or returns an integer. In the
former case, use the system strerror_r even on platforms like
Android API level 23 that don’t have __xpg_strerror_r; also
check for strerror_r failure just in case.
* m4/error.m4 (gl_PREREQ_ERROR):
* m4/strerror_r.m4 (gl_PREREQ_STRERROR_R):
Use system extensions on Android, to avoid mishandling strerror_r
on API level 23 and later.
* modules/error, modules/strerror_r-posix (configure.ac):
Surround gl_PREREQ_ERROR with AS_IF instead of plain if, so that
AC_REQUIREs are propagated out.
strerror_r-posix: port better to Android
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move requirement of
gl_USE_SYSTEM_EXTENSIONS from here ...
(gl_FUNC_STRERROR_R_WORKS): ... to here, which is the macro that
actually needs it. This avoids a bug where 'configure' tests
whether strerror_r has the POSIX API before enabling GNU
extensions. On Android, enabling GNU extensions switches from the
POSIX to the GNU API. Problem reported by Lucy Phipps in:
https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html
string, wchar: port rpl_free decl to Android
* lib/string.in.h, lib/wchar.in.h:
(free): When replacing it, declare the unreplaced version too.
Problem reported by Lucy Phipps in:
https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html
2021-09-07 Paul Eggert <eggert@cs.ucla.edu>
string, wchar: avoid some namespace pollution
* lib/string.in.h, lib/wchar.in.h:
(free): Declare by hand instead of including stdlib.h.
This avoids some namespace pollution. It should also avoid some
nested-include problems described by Lucy Phipps in:
https://lists.gnu.org/r/bug-gnulib/2021-09/msg00018.html
* modules/string, modules/wchar:
(Depends-on): Add stdlib, so that REPLACE_FREE has the right value.
(Makefile.am): Replace @REPLACE_FREE@ when creating the include file.
2021-09-04 Paul Eggert <eggert@cs.ucla.edu>
idx: break copying from glibc
* config/srclist.txt: Comment out idx.h, and bring back recent change.
2021-09-04 Sun Haiyong <youbest@sina.com> (tiny change)
sigsegv: Improve cross-compilation support for LoongArch CPU.
* m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume the stack grows
down on LoongArch.
2021-09-04 Simon Josefsson <simon@josefsson.org>
doc: Improve help related to bootstrap script.
* doc/gnulib-tool.texi (VCS Issues): Make title more positive,
s/Issues/Integration/. Some more bootstrap-related hints,
including changing suggested submodule path from .gnulib to gnulib
as this seems to be more wide-spread.
2021-09-04 Paul Eggert <eggert@cs.ucla.edu>
intprops: fix minor doc glitches
* doc/intprops.texi (Integer Properties): Fix doc glitches.
2021-09-04 Simon Josefsson <simon@josefsson.org>
doc: Add suggestions on FDL texinfo usage.
* doc/licenses-texi.texi (License Texinfo sources): Add texinfo
examples.
2021-09-03 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Add indentation syntax-check rule.
* top/maint.mk (indent): Use AM_V_GEN and indent_args.
(sc_indent): New rule.
(indent_args): New variable.
(C_SOURCES): New variable, initialized to reasonable C files.
(exclude_file_name_regexp--indent): New variable.
2021-08-30 Paul Eggert <eggert@cs.ucla.edu>
idx: add commentary
* lib/idx.h: Add comments about ssize_t and strlen, in
response to comments from Simon Josefsson in:
https://lists.gnu.org/r/bug-gnulib/2021-08/msg00196.html
2021-08-29 Paul Eggert <eggert@cs.ucla.edu>
attribute: keep up with gnulib-common.m4
* lib/attribute.h (ATTRIBUTE_DEALLOC, ATTRIBUTE_DEALLOC_FREE):
New macros, aliases for the _GL_-prefixed macros added
to gnulib-common.m4 last month.
2021-08-29 Bruno Haible <bruno@clisp.org>
supersede: Fix test failure under QEMU user-mode for Linux/mips.
* tests/test-supersede-open.h (test_open_supersede): Copy statbuf.st_dev
into a local variable of type dev_t.
* tests/test-supersede-fopen.h (test_fopen_supersede): Likewise.
2021-08-29 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix test failure when running under QEMU user-mode.
* tests/test-spawn-pipe-child.c: Include <stdbool.h>, <string.h>,
qemu.h.
(main): Under QEMU user-mode, allow fd 2 or fd 3 to be open.
* modules/spawn-pipe-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
2021-08-29 Bruno Haible <bruno@clisp.org>
execute: Fix test failure when running under QEMU user-mode.
* tests/test-execute-child.c: Include <stdbool.h>, qemu.h.
(main): Under QEMU user-mode, allow fd 3 to be open.
* modules/execute-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
2021-08-29 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir: Avoid test failure under QEMU.
* tests/test-posix_spawn-fchdir.c: Include qemu.h.
(is_qemu): New variable.
(test): Under QEMU user-mode, don't expect that "pwd" produces the
result "/".
(main): Initialize is_qemu. Under QEMU user-mode, skip the relative file
name test.
* modules/posix_spawn_file_actions_addfchdir-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
2021-08-29 Bruno Haible <bruno@clisp.org>
getcwd tests: Avoid test failure when running under QEMU user-mode.
* modules/getcwd-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
* tests/test-getcwd.c: Include qemu.h.
(test_long_name): Skip this test when running under QEMU user-mode.
(main): Consider return code 77 from test_long_name.
2021-08-29 Paul Eggert <eggert@cs.ucla.edu>
base32, base64: treat negative sizes as overflows
* lib/base64.c (base64_encode_alloc):
* lib/base32.c (base32_encode_alloc):
Treat negative sizes as overflows, for better compatibility
with previous API.
2021-08-29 Bruno Haible <bruno@clisp.org>
explicit_bzero test: Fix test failure due to GCC optimizations.
* tests/test-explicit_bzero.c (do_secret_stuff): Use static variable
'last_stackbuf'.
(main): Use an 'if' to combine the two do_secret_stuff invocations.
2021-08-29 Paul Eggert <eggert@cs.ucla.edu>
dfa: port to non-gnulib
Suggested by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2021-08/msg00181.html
* lib/dfa.h (_GL_ATTRIBUTE_DEALLOC) [!_GL_ATTRIBUTE_MALLOC]:
Add missing definition.
2021-08-29 Paul Eggert <eggert@cs.ucla.edu>
base32, base64: fix broken tests
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-08/msg00170.html
* lib/base32.c, lib/base64.c: Do not include verify.h,
and omit all uses of ‘assume’.
* modules/base32, modules/base64 (Depends-on): Remove verify.
* tests/test-base32.c, tests/test-base64.c:
Don’t pass out-of-range values to allocator,
as converting them to idx_t relies on implementation-defined
behavior that could trap.
ialloc: relicense
* modules/ialloc (License): Change from LGPL to LGPLv2+.
2021-08-28 Bruno Haible <bruno@clisp.org>
fma: Fix compilation error on Linux/sh4.
* lib/fma.c (FUNC): Don't test for FE_DOWNWARD or FE_UPWARD when these
rounding modes are not defined.
2021-08-28 Bruno Haible <bruno@clisp.org>
Skip some tests when running under QEMU user-mode.
* tests/qemu.h: New file.
* tests/test-get-rusage-as.c: Include qemu.h.
(main): Skip the test when running under QEMU.
* tests/test-get-rusage-data.c: Include qemu.h.
(main): Skip the test when running under QEMU.
* tests/test-printf-posix2.c: Include qemu.h.
(main): Return with code 77 when running under QEMU.
* tests/test-fprintf-posix2.c: Include qemu.h.
(main): Return with code 77 when running under QEMU.
* tests/test-fprintf-posix3.c: Include qemu.h.
(main): Return with code 79 when running under QEMU.
* tests/test-fprintf-posix3.sh: Skip the test when the return code was
79.
* tests/test-dprintf-posix2.c: Include qemu.h.
(main): Return with code 79 when running under QEMU. Use return code 80
instead of 78.
* tests/test-dprintf-posix2.sh: Skip the test when the return code was
79. Update for changed return code.
* modules/get-rusage-as-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
* modules/get-rusage-data-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
* modules/fprintf-posix-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
* modules/dprintf-posix-tests (Files): Add qemu.h.
(Depends-on): Add stdbool.
2021-08-28 Bruno Haible <bruno@clisp.org>
sigabbrev_np, sigdescr_np: Fix compilation error on Linux/alpha.
* lib/sigabbrev_np.c (sigabbrev_np): When SIGINFO and SIGPWR have the
same value, give precendence to SIGPWR.
* lib/sigdescr_np.c (sigdescr_np): Likewise.
* tests/test-sigabbrev_np.c (main): Likewise.
* tests/test-sigdescr_np.c (main): Likewise.
2021-08-28 Bruno Haible <bruno@clisp.org>
execle, execve, execvpe tests: Fix test failures under qemu user-mode.
* test-execle-main.c: Include <string.h>.
(get_environ_assignment, create_minimal_env): New functions.
(main): Call create_minimal_env.
* test-execve-main.c: Likewise.
* test-execvpe-main.c: Likewise.
2021-08-27 Paul Eggert <eggert@cs.ucla.edu>
base32, base64: prefer signed to unsigned integers
* lib/base32.c, lib/base64.c: Include ialloc.h instad of stdlib.h.
Include intprops.h, verify.h.
* lib/base32.c (base32_encode, base32_encode_alloc, get_8, decode_8)
(base32_decode_ctx, base32_decode_alloc_ctx):
* lib/base32.h (struct base32_decode_context):
* lib/base64.c (base64_encode_fast, base64_encode)
(base64_encode_alloc, get_4, decode_4, base64_decode_ctx)
(base64_decode_alloc_ctx):
* lib/base64.h (struct base64_decode_context):
* tests/test-base32.c (main):
* tests/test-base64.c (main):
Prefer signed to unsigned integers.
* lib/base32.c (base32_encode_alloc):
* lib/base64.c (base64_encode_alloc):
Use simpler and more-direct check for overflow, removing a TODO.
* lib/base32.h, lib/base64.h: Include idx.h instead of stddef.h.
* modules/base32, modules/base64 (Depends-on): Add ialloc, verify.
2021-08-26 Paul Eggert <eggert@cs.ucla.edu>
regex: use __attr_access and C99-style array arg
This should help with some static checking.
Derived from a suggestion by Martin Sebor in:
https://sourceware.org/pipermail/libc-alpha/2021-August/130336.html
* config/srclist.txt: Remove lib/regex.c for now.
* lib/regex.c: Ignore -Wvla for the whole file.
* lib/regex.h (_REGEX_NELTS, _Attr_access_): New macros.
Ignore -Wvla when declaring regexec.
(re_compile_pattern, re_search, re_search2, re_match, re_match_2)
(regerror): Mark with _Attr_access_, as glibc does.
* lib/regex.h (regexec):
* lib/regexec.c (regexec, __compat_regexec):
Use _REGEX_NELTS for each array parameter whose size is another arg
but with an access pattern that cannot be captured with __attr_access.
2021-08-25 Bruno Haible <bruno@clisp.org>
execute tests: Fix test failure when libtool is in use.
* modules/execute-tests (Makefile.am): Link test-execute-child without
using libtool.
* modules/spawn-pipe-tests (Makefile.am): Link test-spawn-pipe-child
without using libtool.
* modules/system-quote-tests (Makefile.am): Link test-system-quote-child
without using libtool.
2021-08-24 Paul Eggert <eggert@cs.ucla.edu>
dfa: prefer idx_t to ptrdiff_t for nonnegative
* lib/dfa.c (struct dfa, dfaexec_main, dfaexec_mb, dfaexec_sb)
(dfaexec_noop, dfaexec):
* lib/dfa.h (dfaparse, dfacomp, dfaexec):
Prefer idx_t to ptrdiff_t for counts, which should be nonnegative.
* lib/dfa.h: Include idx.h.
2021-08-22 Bruno Haible <bruno@clisp.org>
snippet/unused-parameter: Mark unused module obsolete.
* modules/snippet/unused-parameter (Status, Notice): Mark as obsolete.
2021-08-22 Bruno Haible <bruno@clisp.org>
Make generated .in.h files as standalone as possible.
Reported by Jan Engelhardt <jengelh@inai.de>.
* lib/stdlib.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE,
_GL_ATTRIBUTE_MALLOC): Add fallback definitions.
* lib/dirent.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC): Add
fallback definitions.
* lib/stdio.in.h (_GL_ATTRIBUTE_DEALLOC): Add fallback definition.
* lib/math.in.h (_GL_ATTRIBUTE_CONST): Add fallback definition.
* lib/pthread.in.h (_GL_ATTRIBUTE_PURE): Add fallback definition.
* lib/threads.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/uchar.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_PURE): Move definition, for consistency
with the other *.in.h files.
* lib/se-context.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Add fallback
definition.
* lib/se-label.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Likewise.
* lib/se-selinux.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Likewise.
* lib/textstyle.in.h: Use _GL_ATTRIBUTE_MAYBE_UNUSED instead of
_GL_UNUSED.
(_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_MAYBE_UNUSED): Add
fallback definitions.
2021-08-22 Bruno Haible <bruno@clisp.org>
gnulib-common.m4: Clarify logic behind _GL_UNUSED_LABEL.
Reported by Paul Eggert.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add comment and write the
condition in a way that is close to the comment.
2021-08-22 Paul Eggert <eggert@cs.ucla.edu>
c-stack: depend on inttypes, mempcpy
* modules/c-stack (Depends-on): Add inttypes, mempcpy.
mempcpy problem reported by Evan Miller in:
https://debbugs.gnu.org/50098#31
2021-08-22 Bruno Haible <bruno@clisp.org>
mountlist: Use recommended syntax for _GL_UNUSED_LABEL.
* lib/mountlist.c (read_file_system_list): Add semicolon after
_GL_UNUSED_LABEL.
2021-08-22 Bruno Haible <bruno@clisp.org>
gnulib-common.m4: Make _GL_UNUSED_LABEL effective for clang.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Make _GL_UNUSED_LABEL use
_GL_ATTRIBUTE_UNUSED also for clang.
2021-08-22 Bruno Haible <bruno@clisp.org>
gnulib-common.m4: Use C2x [[maybe_unused]] when possible.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_UNUSED as an alias of
_GL_ATTRIBUTE_MAYBE_UNUSED, not of _GL_ATTRIBUTE_UNUSED.
* lib/binary-io.h (__gl_setmode): Put _GL_UNUSED before, not after, the
declaration.
* lib/c-stack.c (null_action, segv_handler, overflow_handler,
c_stack_action): Likewise.
* lib/chown.c (chown): Likewise.
* lib/clean-temp-simple.c (cleanup_action): Likewise.
* lib/fts.c (dirent_inode_sort_may_be_useful, leaf_optimization,
fts_set): Likewise.
* lib/getgroups.c (getgroups): Likewise.
* lib/getopt.c (_getopt_initialize): Likewise.
* lib/getugroups.c (getugroups): Likewise.
* lib/localename.c (gl_locale_name_thread_unsafe, gl_locale_name_thread,
gl_locale_name_posix, gl_locale_name_environ): Likewise.
* lib/mkdir.c (rpl_mkdir): Likewise.
* lib/mkfifo.c (mkfifo): Likewise.
* lib/mkfifoat.c (mkfifoat): Likewise.
* lib/mknod.c (mknod): Likewise.
* lib/mknodat.c (mknodat): Likewise.
* lib/mountlist.c (me_remote): Likewise.
* lib/openpty.c (openpty): Likewise.
* lib/parse-datetime.y (yyerror): Likewise.
* lib/passfd.c (sendfd, recvfd): Likewise.
* lib/pthread-cond.c (pthread_condattr_destroy, pthread_cond_init,
pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
pthread_cond_broadcast, pthread_cond_destroy): Likewise.
* lib/pthread-mutex.c (pthread_mutexattr_destroy, pthread_mutex_init,
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_timedlock,
pthread_mutex_unlock, pthread_mutex_destroy): Likewise.
* lib/pthread-rwlock.c (pthread_rwlockattr_destroy, pthread_rwlock_init,
pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock): Likewise.
* lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy):
Likewise.
* lib/pthread-thread.c (pthread_attr_destroy): Likewise.
* lib/readlink.c (readlink): Likewise.
* lib/rename.c (rpl_rename): Likewise.
* lib/set-permissions.c (set_permissions): Likewise.
* lib/sockets.c (gl_sockets_startup): Likewise.
* lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime,
stat_time_normalize): Likewise.
* lib/strptime.c (__strptime_internal): Likewise.
* lib/strtod.c (LDEXP): Likewise.
* lib/symlink.c (symlink): Likewise.
* lib/symlinkat.c (symlinkat): Likewise.
* lib/tempname.c (try_dir, try_nocreate): Likewise.
* lib/textstyle.in.h (styled_ostream_begin_use_class,
styled_ostream_end_use_class, styled_ostream_get_hyperlink_ref,
styled_ostream_get_hyperlink_id, styled_ostream_set_hyperlink,
styled_ostream_flush_to_current_style, fd_ostream_create,
term_ostream_get_color, term_ostream_set_color,
term_ostream_get_bgcolor, term_ostream_set_bgcolor,
term_ostream_get_weight, term_ostream_set_weight,
term_ostream_get_posture, term_ostream_set_posture,
term_ostream_get_underline, term_ostream_set_underline,
term_ostream_get_hyperlink_ref, term_ostream_get_hyperlink_id,
term_ostream_set_hyperlink, term_ostream_create,
term_styled_ostream_create, html_styled_ostream_create,
handle_color_option, handle_style_option, style_file_prepare,
styled_ostream_create, libtextstyle_set_failure_exit_code): Likewise.
* lib/unicodeio.c (exit_failure_callback, fallback_failure_callback):
Likewise.
* lib/wait-process.c (cleanup_slaves_action): Likewise.
* tests/signature.h (SIGNATURE_CHECK2): Likewise.
* tests/test-areadlink.c (do_areadlink): Likewise.
* tests/test-areadlinkat.c (do_areadlinkat): Likewise.
* tests/test-ceilf-ieee.c (main): Likewise.
* tests/test-ceilf1.c (main): Likewise.
* tests/test-dirent.c (dir): Likewise.
* tests/test-fchownat.c (main): Likewise.
* tests/test-fdopendir.c (main): Likewise.
* tests/test-filenamecat.c (main): Likewise.
* tests/test-floor1.c (main): Likewise.
* tests/test-floorf-ieee.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-fseeko.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-getdomainname.c (main): Likewise.
* tests/test-getgroups.c (main): Likewise.
* tests/test-gethostname.c (main): Likewise.
* tests/test-math-c++.cc (OVERLOADED_CHECK): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-parse-datetime.c (main): Likewise.
* tests/test-quotearg-simple.c (main): Likewise.
* tests/test-quotearg.c (main): Likewise.
* tests/test-sethostname2.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-version-etc.c (main): Likewise.
* tests/test-xalloc-die.c (main): Likewise.
* tests/test-xfprintf-posix.c (main): Likewise.
* tests/test-xprintf-posix.c (main): Likewise.
* tests/test-xvasprintf.c (main): Likewise.
2021-08-22 Bruno Haible <bruno@clisp.org>
gnulib-common.m4: Document the gnulib-internal _GL_ATTRIBUTE_* macros.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add comments to the
_GL_ATTRIBUTE_* macros, based on lib/attribute.h.
2021-08-22 Bernhard Voelker <mail@bernhard-voelker.de>
doc: fix order of stdlib functions
* doc/gnulib.texi (node Glibc stdlib.h): Move mrand48_r after mkstemps.
Reported by Benno Schulenberg.
2021-08-21 Bruno Haible <bruno@clisp.org>
c-stack: Test for libsigsegv once, not twice.
* m4/sigsegv.m4: New file, based on modules/sigsegv.
* modules/sigsegv (Files): Add it.
(configure.ac): Require gl_SIGSEGV. Test gl_sigsegv_uses_libsigsegv
instead of with_libsigsegv and gl_cv_lib_sigsegv.
* m4/c-stack.m4 (gl_C_STACK): Likewise.
2021-08-21 Bruno Haible <bruno@clisp.org>
rawmemchr: Fix use in relocatable-prog-wrapper (regression 2021-08-20).
* lib/rawmemchr.c: Restore test of HAVE_RAWMEMCHR.
* modules/relocatable-prog-wrapper (Depends-on): Add stdalign.
2021-08-20 Paul Eggert <eggert@cs.ucla.edu>
rawmemchr: modernize and simplify
* lib/rawmemchr.c (HAVE_RAWMEMCHR): Assume it’s not defined;
otherwise this file would not be compiled. Include limits.h,
stdalign.h, stdint.h, verify.h.
(rawmemchr): Prefer uintptr_t to unsigned long and to size_t when
it’s the better type. Verify that longword lacks padding. Use
alignof rather than sizeof when checking alignment. Simplify by
assuming C99 decl-after-statement, and by using multiplication
rather than repeated shifting and OR (modern compilers can
optimize the multiplication if needed). Avoid unnecessary casts.
Don’t assume CHAR_WIDTH is 8. Convert back and forth between void *
to suppress bogus GCC warnings about alignment. Omit a
duplicate assignment to char_ptr.
* modules/rawmemchr (Depends-on): Add stdalign, stdint, verify.
2021-08-17 Paul Eggert <eggert@cs.ucla.edu>
c-stack: fix libsigsegv dependency (regression 2021-05-18)
Problem reported for GNU grep by Evan Miller (Bug#50098).
* m4/c-stack.m4 (gl_C_STACK): Call gl_LIBSIGSEGV before
testing gl_cv_lib_sigsegv.
2021-08-14 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.34.
* doc/posix-functions/timespec_getres.texi: New file.
* doc/glibc-functions/_Fork.texi: New file.
* doc/glibc-functions/closefrom.texi: New file.
* doc/glibc-functions/dn_comp.texi: New file.
* doc/glibc-functions/dn_skipname.texi: New file.
* doc/glibc-functions/execveat.texi: New file.
* doc/glibc-functions/posix_spawn_file_actions_addclosefrom_np.texi: New
file.
* doc/glibc-functions/res_dnok.texi: New file.
* doc/glibc-functions/res_hnok.texi: New file.
* doc/glibc-functions/res_mailok.texi: New file.
* doc/glibc-functions/res_nmkquery.texi: New file.
* doc/glibc-functions/res_nquery.texi: New file.
* doc/glibc-functions/res_nquerydomain.texi: New file.
* doc/glibc-functions/res_nsearch.texi: New file.
* doc/glibc-functions/res_nsend.texi: New file.
* doc/glibc-functions/res_ownok.texi: New file.
* doc/glibc-functions/res_send.texi: New file.
* doc/gnulib.texi: Include them.
* doc/glibc-functions/inet_neta.texi: Remove file.
* doc/glibc-functions/malloc_get_state.texi: Remove file.
* doc/glibc-functions/malloc_set_state.texi: Remove file.
* doc/glibc-functions/pthread_mutex_consistent_np.texi: Remove file.
* doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: Remove file.
* doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: Remove file.
* doc/glibc-functions/pthread_yield.texi: Remove file.
* doc/gnulib.texi: Don't include them.
* doc/glibc-headers/resolv.texi: Update.
* doc/pastposix-functions/h_errno.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2021-08-12 Paul Eggert <eggert@cs.ucla.edu>
memrchr-tests: port to GCC 12
* tests/test-memrchr.c: Bug#101494 is fixed in GCC 12.
2021-08-12 Akim Demaille <akim@lrde.epita.fr>
snippet/_Noreturn: Fix typo
* lib/_Noreturn.h: Fix spelling of 4.
2021-08-11 Paul Eggert <eggert@cs.ucla.edu>
dynarray: merge from glibc
This also helps document glibc’s direction in using GCC’s
memory-allocation checking.
* lib/cdefs.h: Omit comments that glibc rejected.
(__returns_nonnull, __attr_access_none, __attr_dealloc)
(__attr_dealloc_free): New macros.
* lib/libc-config.h: Undef the new macros that are defined
unconditionally.
* lib/malloc/dynarray_at_failure.c [_LIBC]: Do not include stdlib.h.
(__libc_dynarray_at_failure) [_LIBC]: Call __libc_fatal,
fixing a bad merge previously.
2021-08-08 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Fix conflict with z/OS <sys/stat.h>.
Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
<https://lists.gnu.org/archive/html/m4-discuss/2021-08/msg00000.html>
via Eric Blake.
* lib/canonicalize-lgpl.c (__stat): Remove macro.
(file_accessible): Use 'stat' instead.
2021-08-08 Bruno Haible <bruno@clisp.org>
ptsname_r: Drop sync with glibc.
* lib/ptsname_r.c: Drop _LIBC code.
(__set_errno, __isatty, __stat, __ttyname_r, __ptsname_r): Remove
macros.
(ptsname_r): Rename local variable 'save_errno'.
2021-08-08 Bruno Haible <bruno@clisp.org>
config: Update after glibc changed.
* config/srclist.txt: Remove two files that glibc dropped on 2013-12-17.
2021-08-08 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Fix a memory leak related to a Windows DLL.
Reported by Jonathan Boeing <jonathan@claws-mail.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-08/msg00048.html>.
* lib/relocatable.c (DllMain): Avoid memory leak in a special case
of repeated attach/detach.
2021-08-08 Bruno Haible <bruno@clisp.org>
fopen: Fix link error on native Windows.
* modules/fopen (Depends-on): Add close.
2021-08-08 Bruno Haible <bruno@clisp.org>
fopen: Fix compilation error on AIX (regression from 2020-05-28).
* modules/fopen (Depends-on): Add fcntl-h.
2021-08-08 Bruno Haible <bruno@clisp.org>
stdio: Improve GCC 11 allocation-deallocation checking.
* lib/stdio.in.h (fdopen, fopen, tmpfile): For GCC >= 11: Declare nearly
always.
(popen): For GCC >= 11: Declare also when the platform already declares
the function or when the module 'popen' is not in use.
2021-08-08 Bruno Haible <bruno@clisp.org>
dirent: Improve GCC 11 allocation-deallocation checking.
* lib/dirent.in.h (opendir): For GCC >= 11: Declare also when the
platform already declares the function or when the module 'opendir' is
not in use.
(fdopendir): For GCC >= 11: Declare also when the platform already
declares the function or when the module 'fdopendir' is not in use.
2021-08-08 Bruno Haible <bruno@clisp.org>
stdlib, string, wchar: Improve GCC 11 allocation-deallocation checking.
* lib/stdlib.in.h (aligned_alloc): For GCC >= 11: Declare also when the
platform already declares the function or when the module
'aligned_alloc' is not in use.
(calloc): For GCC >= 11: Declare nearly always.
(canonicalize_file_name): For GCC >= 11: Declare also when the platform
already declares the function or when the module 'canonicalize-lgpl' is
not in use.
(malloc, realloc): For GCC >= 11: Declare nearly always.
* lib/malloc.in.h: Remove redundant include.
(memalign): For GCC >= 11: Declare also when the platform already
declares the function or when the module 'memalign' is not in use.
* lib/string.in.h: Include <stdlib.h> always.
(strdup): For GCC >= 11: Declare also when the platform already declares
the function or when the module 'strdup' or 'strdup-posix' is not in
use.
* lib/wchar.in.h: Include <stdlib.h> always.
(wcsdup): For GCC >= 11: Declare also when the platform already declares
the function or when the module 'wcsdup' is not in use.
* modules/free-posix (Depends-on): Add string, wchar.
2021-08-07 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add support for Automake 1.16.4.
Reported by <shoober420@gmail.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2021-08/msg00000.html>.
* build-aux/test-driver-1.16.3.diff: Renamed from
build-aux/test-driver.diff.
* build-aux/test-driver.diff: Update to match Automake 1.16.4.
* gnulib-tool (func_create_testdir, func_create_megatestdir): Try both
.diff files.
2021-08-07 Bruno Haible <bruno@clisp.org>
gnulib-common.m4: Minor style fix.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Keep list of attributes sorted
alphabetically.
2021-08-07 Bruno Haible <bruno@clisp.org>
uninorm, unistr: Improve GCC 11 allocation-deallocation checking.
* lib/uninorm.in.h (uninorm_filter_free): Move declaration up.
(uninorm_filter_create): Declare that deallocation must happen through
'uninorm_filter_free'.
* lib/unistr.in.h: Include <stdlib.h>.
(u8_strdup, u16_strdup, u32_strdup): Declare that deallocation must
happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
ialloc: Prepare for allocation-deallocation checking.
* lib/ialloc.h (imalloc, irealloc, icalloc): Add comment that
deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
aligned-malloc: Prepare for allocation-deallocation checking.
* lib/aligned-malloc.h (aligned_free): Move declaration up.
(aligned_malloc): Add comment that deallocation must happen through
'aligned_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
list, set, oset, map, omap: Prepare allocation-deallocation checking.
* lib/gl_list.h (gl_list_create_empty, gl_list_nx_create_empty,
gl_list_create, gl_list_nx_create): Add comment that deallocation must
happen through 'gl_list_free'.
* lib/gl_xlist.h (gl_list_create_empty, gl_list_create): Likewise.
* lib/gl_sublist.h (gl_sublist_create, gl_sublist_nx_create): Likewise.
* lib/gl_xsublist.h (gl_sublist_create): Likewise.
* lib/gl_set.h (gl_set_create_empty, gl_set_nx_create_empty): Add
comment that deallocation must happen through 'gl_set_free'.
* lib/gl_xset.h (gl_set_create_empty): Likewise.
* lib/gl_oset.h (gl_oset_create_empty, gl_oset_nx_create_empty): Add
comment that deallocation must happen through 'gl_oset_free'.
* lib/gl_xoset.h (gl_oset_create_empty): Likewise.
* lib/gl_map.h (gl_map_create_empty, gl_map_nx_create_empty): Add
comment that deallocation must happen through 'gl_map_free'.
* lib/gl_xmap.h (gl_map_create_empty): Likewise.
* lib/gl_omap.h (gl_omap_create_empty, gl_omap_nx_create_empty): Add
comment that deallocation must happen through 'gl_omap_free'.
* lib/gl_xomap.h (gl_omap_create_empty): Likewise.
2021-08-07 Bruno Haible <bruno@clisp.org>
xgetdomainname: Improve GCC 11 allocation-deallocation checking.
* lib/xgetdomainname.h: Include <stdlib.h>.
(xgetdomainname): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
xgetdomainname: Ensure .c file starts with '#include <config.h>'.
* lib/xgetaname-impl.h: New file, based on lib/xgethostname.c.
* lib/xgethostname.c: Move implementation to lib/xgetaname-impl.h.
* lib/xgetdomainname.c: Include <config.h>. Include xgetaname-impl.h
instead of xgethostname.c.
* modules/xgethostname (Files): Add lib/xgetaname-impl.h.
* modules/xgetdomainname (Files): Likewise.
(Depends-on): Remove xgethostname. Add free-posix, xalloc.
2021-08-07 Bruno Haible <bruno@clisp.org>
xstrndup: Improve GCC 11 allocation-deallocation checking.
* lib/xstrndup.h: Include <stdlib.h> instead of <stddef.h>.
(xstrndup): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
xstriconveh: Improve GCC 11 allocation-deallocation checking.
* lib/xstriconveh.h: Include <stdlib.h> instead of <stddef.h>.
(xstr_cd_iconveh, xstr_iconveh): Declare that deallocation must happen
through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
xmemdup0: Improve GCC 11 allocation-deallocation checking.
* lib/xmemdup0.h: Include <stdlib.h> instead of <stddef.h>.
(xmemdup0): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
windows-spawn: Improve GCC 11 allocation-deallocation checking.
* lib/windows-spawn.h: Include <stdlib.h>.
(compose_command, compose_envblock): Declare that deallocation must
happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
string-buffer: Improve GCC 11 allocation-deallocation checking.
* lib/string-buffer.h: Include <stdlib.h> instead of <stddef.h>.
(sb_dupfree): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
striconveha: Improve GCC 11 allocation-deallocation checking.
* lib/striconveha.h: Include <stdlib.h> instead of <stddef.h>.
(str_iconveha): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
striconveh: Improve GCC 11 allocation-deallocation checking.
* lib/striconveh.h: Include <stdlib.h> instead of <stddef.h>.
(str_cd_iconveh, str_iconveh): Declare that deallocation must happen
through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
striconv: Improve GCC 11 allocation-deallocation checking.
* lib/striconv.h: Include <stdlib.h> instead of <stddef.h>.
(str_cd_iconv, str_iconv): Declare that deallocation must happen through
'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Improve GCC 11 allocation-deallocation checking.
* lib/relocatable.h: Include <stdlib.h>.
(compute_curr_prefix): Declare that deallocation must happen through
'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
regex-quote: Improve GCC 11 allocation-deallocation checking.
* lib/regex-quote.h: Include <stdlib.h> instead of <stddef.h>.
(regex_quote): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
readline: Improve GCC 11 allocation-deallocation checking.
* lib/readline.h: Include <stdlib.h>.
(readline): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
read-file: Improve GCC 11 allocation-deallocation checking.
* lib/read-file.h: Include <stdlib.h> instead of <stddef.h>.
(fread_file, read_file): Declare that deallocation must happen through
'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
pipe-filter-gi: Improve GCC 11 allocation-deallocation checking.
* lib/pipe-filter.h (pipe_filter_gi_close): Move declaration up.
(pipe_filter_gi_create): Declare that deallocation must happen through
'pipe_filter_gi_close'.
2021-08-07 Bruno Haible <bruno@clisp.org>
javaversion: Improve GCC 11 allocation-deallocation checking.
* lib/javaversion.h: Include <stdlib.h>.
(javaexec_version): Declare that deallocation must happen through
'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
ino-map: Improve GCC 11 allocation-deallocation checking.
* lib/ino-map.h (ino_map_free): Move declaration up.
(ino_map_alloc): Declare that deallocation must happen through
'ino_map_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
hash: Improve GCC 11 allocation-deallocation checking.
* lib/hash.h (hash_free): Move declaration up.
(hash_initialize, hash_xinitialize): Declare that deallocation must
happen through 'hash_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
hamt: Improve GCC 11 allocation-deallocation checking.
* lib/hamt.h (hamt_free): Move declaration up.
(hamt_create, hamt_copy): Declare that deallocation must happen through
'hamt_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
get_progname_of: Improve GCC 11 allocation-deallocation checking.
* lib/get_progname_of.h: Include <stdlib.h>.
(get_progname_of): Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
fts: Improve GCC 11 allocation-deallocation checking.
* lib/fts_.h (fts_open): Declare that deallocation must happen through
'fts_close'.
2021-08-07 Bruno Haible <bruno@clisp.org>
eealloc: Improve GCC 11 allocation-deallocation checking.
* lib/eealloc.h (eemalloc): Declare that deallocation must happen
through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
di-set: Improve GCC 11 allocation-deallocation checking.
* lib/di-set.h (di_set_free): Move declaration up.
(di_set_alloc): Declare that deallocation must happen through
'di_set_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
[x]concat-filename: Improve GCC 11 allocation-deallocation checking.
* lib/concat-filename.h: Include <stdlib.h>.
(concatenated_filename, xconcatenated_filename): Declare that
deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
clean-temp: Improve GCC 11 allocation-deallocation checking.
* lib/clean-temp.h (cleanup_temp_dir): Move declaration up.
(create_temp_dir): Declare that deallocation must happen through
'cleanup_temp_dir'.
2021-08-07 Bruno Haible <bruno@clisp.org>
canon-host: Improve GCC 11 allocation-deallocation checking.
* lib/canon-host.h: Include <stdlib.h>.
(canon_host, canon_host_r): Declare that deallocation must happen
through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
c-xvasprintf: Improve GCC 11 allocation-deallocation checking.
* lib/c-xvasprintf.h: Include <stdlib.h>.
(c_xasprintf, c_xvasprintf): Declare that deallocation must happen
through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
bitsetv: Improve GCC 11 allocation-deallocation checking.
* lib/bitsetv.h (bitsetv_free): Move declaration up.
(bitsetv_alloc, bitsetv_create): Declare that deallocation must happen
through 'bitsetv_free'.
bitset: Improve GCC 11 allocation-deallocation checking.
* lib/bitset.h (bitset_free): Move declaration up.
(bitset_alloc, bitset_create): Declare that deallocation must happen
through 'bitset_free'.
(bitset_obstack_free): Move declaration up.
(bitset_obstack_alloc): Declare that deallocation must happen through
'bitset_obstack_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
argv-iter: Improve GCC 11 allocation-deallocation checking.
* lib/argv-iter.h (argv_iter_free): Move declaration up.
(argv_iter_init_argv, argv_iter_init_stream): Declare that deallocation
must happen through 'argv_iter_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
argp: Improve GCC 11 allocation-deallocation checking.
* lib/argp-fmtstream.h (__argp_fmtstream_free, argp_fmtstream_free):
Move declarations up.
(__argp_make_fmtstream): Declare that deallocation must happen through
'__argp_fmtstream_free'.
(argp_make_fmtstream): Declare that deallocation must happen through
'argp_fmtstream_free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
areadlink, areadlinkat: Improve GCC 11 allocation-deallocation checking.
* lib/areadlink.h: Include <stdlib.h> instead of <stddef.h>.
(areadlink, areadlink_with_size, areadlinkat, areadlinkat_with_size):
Declare that deallocation must happen through 'free'.
2021-08-07 Bruno Haible <bruno@clisp.org>
stdio: Improve GCC 11 allocation-deallocation checking.
* lib/stdio.in.h (fdopen, fopen, tmpfile): Declare that deallocation
must happen through 'fclose'.
(popen): Declare that deallocation must happen through 'pclose'.
* lib/stdio-safer.h (fopen_safer, tmpfile_safer): Declare that
deallocation must happen through 'fclose'.
(popen_safer): Declare that deallocation must happen through 'pclose'.
(freopen_safer): Declare that arguments must be non-NULL.
2021-08-07 Bruno Haible <bruno@clisp.org>
dirent: Improve GCC 11 allocation-deallocation checking.
* lib/dirent.in.h (closedir): Move declaration up.
(opendir, fdopendir): Declare that deallocation must happen through
'closedir'.
* lib/dirent-safer.h (opendir_safer): Likewise.
* lib/opendirat.h (opendirat): Likewise.
2021-08-07 Bruno Haible <bruno@clisp.org>
stdlib, string, wchar: Improve GCC 11 allocation-deallocation checking.
* lib/stdlib.in.h (free): Move declaration up.
(aligned_alloc, calloc, canonicalize_file_name, malloc, realloc):
Declare that deallocation must happen through 'free' (which may actually
be 'rpl_free').
* lib/string.in.h: Include <stdlib.h>.
(strdup): Declare deallocation.
* lib/wchar.in.h: Include <stdlib.h>.
(wcsdup): Declare deallocation.
* lib/malloc.in.h: Include <stdlib.h>.
(memalign): Declare deallocation.
2021-08-07 Bruno Haible <bruno@clisp.org>
year2038: Fix recommendation regarding -m64 flag.
* m4/year2038.m4 (gl_YEAR2038_BODY): Recommend to put option --m64 in
CC, not in CPPFLAGS and LDFLAGS.
2021-08-07 Bruno Haible <bruno@clisp.org>
quotearg: Tweak last commit.
* lib/quotearg.h: Don't include <stddef.h>. Remove stray semicolon.
2021-08-07 Bruno Haible <bruno@clisp.org>
malloca: Tweak last commit.
* lib/malloca.h: Keep use and declaration of mmalloca close together.
2021-08-07 Bruno Haible <bruno@clisp.org>
dirname-lgpl, sh-quote, system-quote, xstriconv: Clean up includes.
* lib/dirname.h: Don't include <stddef.h>.
* lib/sh-quote.h: Likewise.
* lib/system-quote.h: Likewise.
* lib/xstriconv.h: Likewise.
2021-08-07 Bruno Haible <bruno@clisp.org>
dfa: Improve GCC 11 allocation-deallocation checking.
* lib/dfa.h (dfamust): Declare that deallocation must happen through
dfamustfree.
2021-08-06 Paul Eggert <eggert@cs.ucla.edu>
glob: merge from glibc
* lib/glob-libc.h, lib/glob.c: Merge changes from glibc 2.34.
The result should be copyable directly into glibc.
* modules/glob-h (glob-libc.gl.h): Also omit __THROWNL.
2021-08-03 Simon Josefsson <simon@josefsson.org>
announce-gen: Print SHA1/B64(SHA256) instead of MD5/SHA1.
* build-aux/announce-gen (%digest_classes): Removed.
(usage): Doc fix.
(print_checksums): Instead of MD5/SHA1, print SHA1 and
B64(SHA256), inspired by OpenSSH announcements.
maintainer-makefile: Print checksums by default.
* top/maint.mk (announcement): Drop --no-print-checksums.
2021-08-02 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: enable some malloc warnings
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Stop adding
-Wno-analyzer-double-free, -Wno-analyzer-null-dereference, and
-Wno-analyzer-use-after-free, as these false alarms don’t seem
to be as much of an issue now that we’ve pacified a couple
of individual modules and GCC has some bug fixes.
dfa: omit unneeded malloc+free
Problem indirectly found by Coverity.
* lib/dfa.c (enlistnew): New function, with most of the body of
the old ‘enlist’. It assumes its arg NEW has been malloced and
can be freed eventually.
(enlist, addlists, dfamust): Use it.
(dfamust): Omit an unnecessary malloc+free.
year2038: port to unusual time_t platforms
* m4/year2038.m4 (gl_YEAR2038_TEST_INCLUDES): Check that time_t
can go to 2**32 - 1, not to 2**63 - 1, as the former is enough to
be year 2038 safe. Unsigned 32-bit time_t (AmigaOS) and signed
40-bit time_t (Unisys ClearPath) have occurred in the wild, and
even if Gnulib code is rarely or never ported to them there’s no
need to exclude them merely because of year 2038 issues.
(gl_YEAR2038_BODY): Adjust messages to match. Use 2**32 - 1,
not 2**32, as the test timestamp, to allow unsigned 32-bit time_t.
2021-08-01 Paul Eggert <eggert@cs.ucla.edu>
xalloc: no attribute (malloc (free)) on inline
The GCC manual says you can’t use __attribute__ ((__malloc__
(free, 1))) on inline functions. Problem discovered when
compiling diffutils 3.8 on RHEL 8.4 using a GCC 11.2.0 that I
built myself. Perhaps the problem was not discovered earlier
because the attribute works with ‘free’ (which is what I was
seeing before on Fedora 34) but not with ‘rpl_free’ (seen on RHEL
8.4). Anyway, the GCC manual says it shouldn’t work at all, so
don’t use it.
* lib/xalloc.h (xnmalloc, xcharalloc): No longer inline.
* lib/xmalloc.c (xcharalloc, xnmalloc): Move function bodies here.
* m4/gnulib-common.m4 (_GL_ATTRIBUTE_DEALLOC)
(_GL_ATTRIBUTE_DEALLOC_FREE): Document that these cannot be
used on inline functions, as per the GCC 11.2.1 manual.
sigsegv-tests: make more things static
* tests/test-sigsegv-catch-segv1.c:
* tests/test-sigsegv-catch-stackoverflow1.c:
* tests/test-sigsegv-catch-stackoverflow2.c:
Declare some functions and variables static, to pacify GCC when
warning about external functions missing declarations.
maint: improve -fanalyzer malloc checking
* lib/backup-internal.h, lib/backupfile.h:
* lib/canonicalize.h, lib/dfa.h, lib/dirname.h, lib/exclude.h:
* lib/filenamecat.h, lib/malloca.h, lib/modechange.h:
* lib/mountlist.h, lib/pagealign_alloc.h, lib/quotearg.h:
* lib/readutmp.h, lib/savedir.h, lib/sh-quote.h, lib/system-quote.h:
* lib/trim.h, lib/xgetcwd.h, lib/xgethostname.h, lib/xmalloca.h:
* lib/xreadlink.h, lib/xstriconv.h, lib/xvasprintf.h:
Add malloc-related attributes and include stdlib.h as needed.
* lib/dfa.c: Include verify.h.
(assume_nonnull): New macro.
(dfamust): Use it to pacify GCC.
* lib/malloca.c (mmalloca): Redo to pacify GCC, to cut down on the
number of casts, and to avoid signed integer overflow on
theoretical platforms.
* lib/vasnprintf.c, tests/test-argmatch.c:
Disable -Wanalyzer-null-argument here.
* m4/manywarnings.m4: Update GCC bug report number in comment.
2021-08-01 Jim Meyering <meyering@fb.com>
regex: pacify GCC 11.2.1's -fanalyzer
* lib/regex_internal.c (re_node_set_merge):
Add a debug assertion to pacify GCC 11.2.1's -fanalyzer.
2021-08-01 Bruno Haible <bruno@clisp.org>
limits-h tests: Add tests for BOOL_MAX and BOOL_WIDTH.
* tests/test-limits-h.c (bool_attrs): New variable.
Check value of BOOL_MAX.
2021-07-31 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify GCC 11.2 -fanalyzer
* lib/regex_internal.c (re_node_set_insert):
Add a debug assertion to pacify GCC 11.2 -fanalyzer.
maint: pacify GCC 11.2 -fanalyzer in crypto tests
* tests/bench-digest.h (main): Report an error after memory
exhaustion, instead of using a null pointer.
2021-07-30 Paul Eggert <eggert@cs.ucla.edu>
xalloc: add malloc-related function attributes
* lib/quotearg.h, lib/xalloc.h: Include stdlib.h, for
the benefit of _GL_ATTRIBUTE_RETURNS_NONNULL.
* lib/quotearg.h (clone_quoting_options):
* lib/xalloc.h (xmalloc, ximalloc, xzalloc, xizalloc, xcalloc)
(xicalloc, xrealloc, xirealloc, xireallocarray, x2realloc)
(x2nrealloc, xmemdup, ximemdup, xstrdup, xnmalloc, xcharalloc):
Add _GL_ATTRIBUTE_DALLOC_FREE and _GL_ATTRIBUTE_RETURNS_NONNULL
attributes as appropriate.
gnulib-common: update for gcc -Wmismatched-dealloc
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macros
_GL_ATTRIBUTE_DEALLOC and _GL_ATTRIBUTE_DEALLOC_FREE. These can
be useful with gcc -Wmismatched-dealloc.
gnulib-common: update for C2x 2020-12-11 draft
Use blessed-by-draft-standard way to test for [[__deprecated__]]
etc.; this is supported by GCC 11 and the fallback code should
work fine with GCC 10 and earlier.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macro
_GL_HAS_C_ATTRIBUTE, and use it instead of __STDC_VERSION__ in
deciding whether to use C2x attributes like [[__deprecated__]].
manywarnings: document GCC 11 warnings
* build-aux/gcc-warning.spec: Add warnings introduced in GCC 11.
None of them require Gnulib code changes, so this is just
a documentation change.
limits-h: add BOOL_MAX, BOOL_WIDTH
* doc/posix-headers/limits.texi (limits.h): Document them.
* lib/limits.in.h: Also define CHAR_WIDTH etc. if C2x.
(BOOL_MAX, BOOL_WIDTH): New macros, from C2x.
* m4/limits-h.m4 (gl_LIMITS_H): Also check BOOL_WIDTH.
2021-07-28 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Respect cfg.mk setting announcement_Cc_,
reverting most of the previous patch.
* top/maint.mk (announcement_mail_Cc_stable): Rename back to
announcement_Cc_stable.
(announcement_Cc_alpha): Rename back to
announcement_mail_Cc_alpha.
(announcement_Cc_): Renamed from announcement_mail_Cc_.
(announcement_mail_headers_stable)
(announcement_mail_headers_alpha): Use announcement_Cc_ again.
2021-07-28 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Fix announcement mail CC's.
* top/maint.mk (announcement_Cc_stable): Rename to
announcement_mail_Cc_stable.
(announcement_Cc_alpha): Rename to announcement_mail_Cc_alpha.
(announcement_mail_headers_stable)
(announcement_mail_headers_alpha): Use announcement_mail_Cc_
instead of announcement_Cc_.
2021-07-25 Bruno Haible <bruno@clisp.org>
Assume GNU gettext >= 0.17.
* modules/vasprintf (Notice): Remove.
* modules/xvasprintf (Notice): Remove.
* modules/xprintf (Notice): Remove.
* modules/error (Notice): Remove.
* modules/verror (Notice): Remove.
* modules/argp (Notice): Remove.
* modules/propername (Notice): Remove.
* lib/propername.h: Remove outdated comment.
2021-07-19 Simon Josefsson <simon@josefsson.org>
gendocs.sh: Fix local rendering of HTML manuals.
* build-aux/gendocs.sh (htmlarg): Don't use relative URLs.
2021-07-18 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero-tests: pacify GCC better
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-07/msg00039.html
* tests/test-explicit_bzero.c: Ignore -Wmaybe-uninitialized.
(stackbuf): Remove this static pointer, reverting recent change.
(do_secret_stuff, test_stack): Revert these related changes too.
2021-07-17 Paul Eggert <eggert@cs.ucla.edu>
memrchr-tests: pacify GCC
Pacify GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64.
* tests/test-memrchr.c: Disable -Wmaybe-uninitialized.
explicit_bzero-tests: pacify GCC
Redo to pacify -Wmaybe-uninitialized with
GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64.
* tests/test-explicit_bzero.c (stackbuf): New static pointer.
(do_secret_stuff): Use it.
(test_stack): Set it to a local buffer.
posixtm: pacify latest GCC
Also, modernize while I’m at it.
* lib/posixtm.c: Include c-ctype.h, idx.h, intprops.h, verify.h
instead of stdlib.h.
(ISDIGIT): Remove. All uses replaced by c_isdigit.
(year, posix_time_parse): Prefer idx_t to size_t. Use assume
instead of abort.
(posixtime): Do not parse twice; once is enough. That way, we
needn’t worry about a bogus warning about strcpy overrunning a
buffer from GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64
when coreutils is configured with --enable-gcc-warnings.
* modules/posixtm (Depends-on): Add c-ctype, intprops, verify.
Remove stpcpy.
2021-07-17 Bruno Haible <bruno@clisp.org>
Don't use '#pragma weak' for thread functions in Linux/glibc>=2.34.
Suggested by Florian Weimer <fweimer@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00211.html>.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Set gl_pthread_in_glibc and set
LIBPMULTITHREAD accordingly.
(gl_STDTHREADLIB_BODY): Update comments.
(gl_THREADLIB_BODY): Define USE_POSIX_THREADS_FROM_LIBC.
* lib/glthread/thread.h (c11_threads_in_use): Define to 1 if all POSIX
thread functions are in libc.
* lib/glthread/lock.h (c11_threads_in_use): Likewise.
* lib/glthread/cond.h (c11_threads_in_use): Likewise.
* lib/glthread/tls.h (c11_threads_in_use): Likewise.
2021-07-17 Bruno Haible <bruno@clisp.org>
Fix cross-compilation test results.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, include
<string.h> before testing __GNU_LIBRARY__.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise.
2021-07-14 Paul Eggert <eggert@cs.ucla.edu>
regex: modernize to newer regex bugset
Problem reported by Hiroo Hayashi in:
https://lists.gnu.org/r/bug-gnulib/2021-07/msg00024.html
* m4/regex.m4 (gl_REGEX): Allow newer glibc behavior for ()0|\1,
behavior where the regex compiles but does not match.
Test for glibc bug 11053.
* tests/test-regex.c (bug_regex11, main): Add casts needed
for printf portability.
(main): Allow newer glibc behavior for ()0|\1.
regex: fix shell quoting problem in configuration
* m4/regex.m4 (gl_REGEX): Fix quoting problems.
These C programs are put into unquoted here-documents,
so $ and \ need to be quoted.
2021-07-08 Paul Eggert <eggert@cs.ucla.edu>
select: port better to MinGW
Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/bug-gnulib/2021-07/msg00017.html
* lib/select.c (rpl_select) [_WIN32 && !__CYGWIN__]:
Pass a SOCKET, not a HANDLE, to FD_ISSET.
2021-07-06 Paul Eggert <eggert@cs.ucla.edu>
year2038: Add --disable-year2038 option
Also, document this stuff better. Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-07/msg00011.html
* doc/year2038.texi: Document --disable-year2038.
* m4/year2038.m4 (gl_YEAR2038_BODY): Support ‘./configure
--disable-year2038’ to disable 64-bit time_t when that is not the
default. Arg is now either empty or nonempty (not a shell
command) and is evaluated at m4 expansion time instead of at
runtime; all callers changed.
doc: clarify which module fixes 32-bit time_t
* doc/posix-headers/time.texi: Make it clear that the 32-bit
time_t problem is addressed by the year2038 module, not
by the time module.
2021-07-01 Paul Eggert <eggert@cs.ucla.edu>
year2038: support glibc 2.34 _TIME_BITS=64
In glibc 2.34 on Linux kernels where time_t is traditionally 32-bit,
defining _FILE_OFFSET_BITS=64 and _TIME_BITS=64 makes time_t 64-bit.
Apps must define both macros. Gnulib applications that use either
the largefile or the year2038 modules will want this behavior;
largefile because it deals with the off_t and ino_t components of
struct stat already, and so should also deal with time_t.
* NEWS, doc/largefile.texi, doc/posix-headers/time.texi:
Mention this.
* m4/largefile.m4: Override two macros even in Autoconf 2.70 and later.
(_AC_SYS_LARGEFILE_MACRO_VALUE): #undef $1 before #defining it, in
case some other Gnulib macro has #defined it.
(AC_SYS_LARGEFILE): Use AS_IF and AS_CASE to propagate AC_REQUIREs.
Invoke gl_YEAR2038_BODY if we need to set _FILE_OFFSET_BITS=64.
* m4/year2038.m4 (gl_YEAR2038_TEST_INCLUDES): New macro.
(gl_YEAR2038_BODY): New macro, with gl_YEAR2038’s old body; this
macro is designed to be used directly instead of being
AC_REQUIREd. It takes an argument specifying whether 64-bit is
required. Set _TIME_BITS=64 if this makes a difference in time_t
width when setting _FILE_OFFSET_BITS=64. Do not warn about
32-bit time_t more than once.
* modules/largefile (Files): Add year2038.m4.
(Depends-on): Require gl_YEAR2038_EARLY.
relocatable-prog-wrapper: add m4 files
Add .m4 files needed for standalone relocatable-prog-wrapper, so
that ‘./gnulib-tool --test relocatable-prog-wrapper’ does not fail
with diagnostics like ‘configure.ac:63: error: possibly undefined
macro: gl_FUNC_MALLOC_POSIX’.
* modules/relocatable-prog-wrapper (Files): Add m4/free.m4,
m4/malloc.m4, m4/mempcpy.m4, m4/rawmemchr.m4, m4/realloc.m4.
2021-06-28 Bruno Haible <bruno@clisp.org>
strerror-override: Fix possible compilation error.
Reported by Thomas Klausner <wiz@netbsd.org>.
* lib/strerror-override.h (GNULIB_defined_strerror_override_macro): New
macro.
* lib/strerror-override.c (strerror_override): Don't define if
GNULIB_defined_strerror_override_macro is set.
2021-06-27 Bruno Haible <bruno@clisp.org>
environ: Fix wrong autoconf test result in C++ mode.
* m4/environ.m4 (gt_CHECK_VAR_DECL): Use a typedef'ed type, not an
anonymous type.
2021-06-22 Egor Ignatov <egori@altlinux.org> (tiny change)
regex: fix undefined behavior
Problem reported by Paul Eggert in:
https://lists.gnu.org/r/bug-gnulib/2021-06/msg00115.html
* lib/regexec.c (proceed_next_node):
Don’t insert already-inserted node.
2021-06-21 Eric Blake <eblake@redhat.com>
sigsegv, sigsegv-tests: Assign my contributions to the FSF.
* m4/sigaltstack.m4: Change copyright notice: Write "Copyright (C) FSF"
instead of "Copyright (C) Eric Blake".
* tests/altstack-util.h: Likewise.
* tests/test-sigsegv-catch-stackoverflow1.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow2.c: Likewise.
2021-06-20 Bruno Haible <bruno@clisp.org>
unistd: Avoid compilation error in C++ mode on Solaris, HP-UX, mingw.
Reported by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00135.html>.
* lib/unistd.in.h (swab): Consider different declarations on Solaris,
HP-UX, and old mingw.
2021-06-20 Bruno Haible <bruno@clisp.org>
Sync with GNU gettext.
* lib/printf-parse.c: Ignore IN_LIBINTL and IN_LIBASPRINTF.
* lib/vasnprintf.c: Ignore IN_LIBINTL.
2021-06-19 Bruno Haible <bruno@clisp.org>
Sync with GNU gettext.
* lib/tsearch.c: Ignore IN_LIBINTL.
* lib/localename-table.h: Likewise.
* lib/localename.c: Ignore IN_LIBINTL in some places.
2021-06-19 Bruno Haible <bruno@clisp.org>
unistd: Improve conflict resolution between gnulib and textstyle.h.
* lib/unistd.in.h (GNULIB_overrides_isatty): New macro.
2021-06-19 Bruno Haible <bruno@clisp.org>
stdio: Improve conflict resolution between gnulib and libintl.h.
* lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf,
GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf,
GNULIB_overrides_vsnprintf, GNULIB_overrides_vsprintf): New macros.
2021-06-19 Bruno Haible <bruno@clisp.org>
declared.sh: Allow parsing 'extern "C"' lines.
* build-aux/declared.sh: Don't concatenate lines to an 'extern "C" {'
line.
2021-06-19 Bruno Haible <bruno@clisp.org>
unitypes: Fix trouble caused by installed older versions of unitypes.h.
* modules/unitypes (configure.ac): Define _UC_RESTRICT through config.h.
2021-06-19 Bruno Haible <bruno@clisp.org>
sigsegv, sigsegv-tests: Assign my contributions to the FSF.
* lib/sigsegv.in.h: Change copyright notice: Write "Copyright (C) FSF"
instead of "Copyright (C) Bruno Haible".
* lib/sigsegv.c: Likewise.
* lib/stackvma.h: Likewise.
* lib/stackvma.c: Likewise.
* m4/sigaltstack.m4: Likewise.
* m4/stack-direction.m4: Likewise.
* tests/altstack-util.h: Likewise.
* tests/mmap-anon-util.h: Likewise.
* tests/test-sigsegv-catch-segv1.c: Likewise.
* tests/test-sigsegv-catch-segv2.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow1.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow2.c: Likewise.
2021-06-18 Darren Kenny <darren.kenny@oracle.com> (tiny change)
argp: Avoid possible NULL access in argp_help.
Reported by Coverity. The invocation chain is:
argp_help -> _help -> fill_in_uparams -> validate_uparams.
* lib/argp-help.c (validate_uparams): Don't crash if state == NULL.
2021-06-16 Bruno Haible <bruno@clisp.org>
tsearch: Relicense under LGPLv2+.
* modules/tsearch (License): Change to LGPLv2+.
* lib/tsearch.c: Update license notice.
2021-06-15 Bruno Haible <bruno@clisp.org>
pipe-filter-ii tests: Fix long-standing failure on native Windows.
* tests/test-pipe-filter-ii2-main.c: Include binary-io.h.
(main): Avoid NL to CRLF conversion on standard output.
* tests/test-pipe-filter-ii2-child.c: Include <unistd.h>, binary-io.h.
(main): Avoid NL to CRLF conversion on standard output.
2021-06-15 Bruno Haible <bruno@clisp.org>
xnanosleep: Improve module description.
* modules/xnanosleep (Description): Improve.
* lib/xnanosleep.h: Add comment. Make includable from C++.
* lib/xnanosleep.c: Update comment.
2021-06-15 Bruno Haible <bruno@clisp.org>
xfreopen: Improve module description.
* modules/xfreopen (Description): Improve.
* lib/xfreopen.h: Add comments. Make includable from C++.
* lib/xfreopen.c: Update comment.
2021-06-14 Paul Eggert <eggert@cs.ucla.edu>
idx: new printf/scanf length modifier macro
* lib/idx.h (pIDX): New macro.
2021-06-13 Bruno Haible <bruno@clisp.org>
Align 2011-11-26 patch to 2021-04-11 patch (regression from 2021-04-11).
Reported by Paul Eggert.
* m4/unistd_h.m4 (gl_UNISTD_H_REQUIRE_DEFAULTS): Also initialize
GNULIB_UNISTD_H_GETOPT variable.
* modules/getopt-posix (configure.ac): Set GNULIB_UNISTD_H_GETOPT
variable.
* modules/unistd (Makefile.am): Rely on ${gl_include_guard_prefix}
processing done by gnulib-tool since 2021-04-11.
* gnulib-tool: Revert last change.
* pygnulib/GLEmiter.py: Likewise.
2021-06-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/stack.h (_GL_STACK_PREFIX): Omit stray semicolon.
getopt-gnu: port back to Solaris 10
* gnulib-tool (func_emit_lib_Makefile_am)
(func_emit_tests_Makefile_am): Don’t substitute things like
$(GNULIB_${gl_include_guard_prefix}_UNISTD_H_GETOPT),
as this mishandles unistd and getopt-gnu, which breaks
‘make check’ on Solaris 10 with getopt-gnu.
* pygnulib/GLEmiter.py (lib_Makefile_am, tests_Makefile_am):
Likewise, albeit hackier since I did not test this and
so went with a trivial hack instead.
2021-06-13 Bruno Haible <bruno@clisp.org>
ialloc: Put appropriate license notice in source files.
* lib/ialloc.h: Use LGPLv3+ notice.
* lib/ialloc.c: Likewise.
2021-06-11 Paul Eggert <eggert@cs.ucla.edu>
xalloc: new idx_t-based allocators
This is for code that prefers to use idx_t for sizes.
* lib/basename.c (base_name):
* lib/dfa.c (mbs_to_wchar, state_index, dfaoptimize, dfaanalyze)
(icatalloc, enlist, allocmust, dfamust):
* lib/exclude.c (struct exclude_pattern, free_exclude_segment)
(file_pattern_matches, add_exclude, add_exclude_fp):
* lib/getusershell.c (line_size, readname):
* lib/linebuffer.c (readlinebuffer_delim):
* lib/linebuffer.h (struct linebuffer):
* lib/readtokens.c (readtoken, readtokens):
* lib/readutmp.c (read_utmp):
* lib/savedir.c (streamsavedir):
* lib/stack.h (_GL_STACK_TYPE, _GL_STACK_PREFIX):
* lib/userspec.c (parse_with_separator):
* lib/xgethostname.c (XGETANAME):
Prefer idx_t to size_t for indexes, and use idx_t-related allocators.
* lib/basename.c: Do not include xstrndup.h.
(basename): Simplify by always using memcpy.
* lib/xalloc.h (ximalloc, xizalloc, xicalloc, xirealloc)
(xireallocarray, ximemdup, ximemdup0) [GNULIB_XALLOC]:
New decls.
(x2nrealloc): Now just a decl, as the body is moved into xmalloc.c.
* lib/xmalloc.c: Include ialloc.h.
Rename some local parameters to be consistent with the .h files.
(nonnull): New static function.
(xmalloc, xcalloc): Simplify by using nonnull.
(ximalloc, xirealloc, xireallocarray, xizalloc, xicalloc)
(ximemdup, ximemdup0): New functions.
(x2nrealloc): Moved here from xalloc.h.
* modules/xalloc (Depends-on): Add ialloc.
* modules/dirname (Depends-on): Removbe xstrndup.
* modules/linebuffer (Depends-on): Add idx.
ialloc: new module
* lib/ialloc.c, lib/ialloc.h, modules/ialloc: New files.
exclude: improve wide-character hashing
* lib/exclude.c (string_hasher_ci): Take the modulo at the end
rather than each time a wide character is retrieved; this should
be more efficient and should hash better.
2021-06-11 Bruno Haible <bruno@clisp.org>
Make message in last commit more precise.
Suggested by Eric Blake.
* gnulib-tool (func_emit_tests_Makefile_am): Add more precision to
'check-notice' message.
2021-06-10 Bruno Haible <bruno@clisp.org>
Clarify where to report test failures from Gnulib tests.
* gnulib-tool (func_emit_tests_Makefile_am): Emit a dependency of
'check-am' on 'check-notice' that prints a notice.
2021-06-10 Bruno Haible <bruno@clisp.org>
Clarify that compiler warnings in the Gnulib tests can be ignored.
* gnulib-tool (func_emit_tests_Makefile_am): Emit overrides for CFLAGS
and CXXFLAGS. Emit a dependency of 'all' on 'all-notice' that prints a
notice.
(func_emit_initmacro_start): Add a second argument. If it is true, emit
code to require gl_CC_ALLOW_WARNINGS and gl_CXX_ALLOW_WARNINGS.
(func_import, func_create_testdir): All callers updated.
* m4/gnulib-common.m4 (gl_CC_ALLOW_WARNINGS, gl_CXX_ALLOW_WARNINGS): New
macros.
2021-06-09 Bruno Haible <bruno@clisp.org>
sigsegv tests: Hide a null pointer from the compiler's optimizations.
Patch by Paul Eggert.
* tests/test-sigsegv-catch-stackoverflow2.c
(null_pointer_to_volatile_int): New variable.
(main): Use it.
2021-06-07 Bruno Haible <bruno@clisp.org>
get_ppid_of: Add support for DragonFly BSD.
* lib/get_ppid_of.c: Treat DragonFly BSD like FreeBSD.
2021-06-07 Bruno Haible <bruno@clisp.org>
sigsegv: Document context type for DragonFly BSD.
* lib/sigsegv.in.h (stackoverflow_context_t): On DragonFly BSD, it is a
pointer to 'struct sigcontext'.
2021-06-07 Bruno Haible <bruno@clisp.org>
dynarray, scratch_buffer: Fix VPATH builds (regression from yesterday).
* modules/dynarray (configure.ac): Invoke AC_PROG_MKDIR_P.
(Makefile.am): Create malloc/ directory before creating
malloc/dynarray.gl.h and malloc/dynarray-skeleton.gl.h.
* modules/scratch_buffer (configure.ac): Invoke AC_PROG_MKDIR_P.
(Makefile.am): Create malloc/ directory before creating
malloc/scratch_buffer.gl.h.
2021-06-07 Bruno Haible <bruno@clisp.org>
ptsname_r: Add support for DragonFly BSD 6.0.
* lib/ptsname_r.c (__ptsname_r): Add implementation for DragonFly BSD.
* tests/test-ptsname_r.c (main): Treat Dragonfly BSD like Solaris.
2021-06-07 Bruno Haible <bruno@clisp.org>
Avoid some test failures on DragonFly BSD 6.0.
* tests/test-c32isalnum.c (main): On Dragonfly BSD, disable tests that
fail.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-ptsname.c (main): Treat Dragonfly BSD like Solaris.
2021-06-07 Kamil Dudka <kdudka@redhat.com>
mountlist: recognize fuse.portal as dummy file system
* lib/mountlist.c [ME_DUMMY_0]: Add "fuse.portal" as
a dummy file system (used in flatpak implementations).
2021-06-07 Bruno Haible <bruno@clisp.org>
host-os: Add support for DragonFly BSD.
* m4/host-os.m4 (gl_HOST_OS): On DragonFly BSD, set
HOST_OPERATING_SYSTEM to "DragonFly BSD", not "Dragonfly".
2021-06-07 Bruno Haible <bruno@clisp.org>
thread: Fix test link error on DragonFly BSD 6.0.
* lib/glthread/thread.c (gl_thread_create): Moved to here...
* lib/glthread/thread.h (gl_thread_create): ...from here.
(_GLTHREAD_THREAD_INLINE): Remove macro.
Remove _GL_INLINE_HEADER_BEGIN/END invocations.
2021-06-06 Bruno Haible <bruno@clisp.org>
sigsegv: Avoid a gcc warning "declaration of 'sig' shadows a parameter".
Reported by Dmitry V. Levin <ldv@altlinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-06/msg00018.html>.
* lib/sigsegv.c (sigsegv_handler): Use a different local variable name
than 'sig'.
2021-06-06 Bruno Haible <bruno@clisp.org>
scratch_buffer: Avoid conflict with prepr. macros owned by the system.
* lib/scratch_buffer.h: Don't include <libc-config.h>. Define
_GL_LIKELY, _GL_UNLIKELY. Include malloc/scratch_buffer.gl.h instead of
malloc/scratch_buffer.h.
* modules/scratch_buffer (Depends-on): Add builtin-expect.
(Makefile.am): Arrange to create malloc/scratch_buffer.gl.h from
malloc/scratch_buffer.h.
2021-06-06 Bruno Haible <bruno@clisp.org>
dynarray: Avoid conflict with preprocessor macros owned by the system.
* lib/dynarray.h: Don't include <libc-config.h>. Define _GL_LIKELY,
_GL_UNLIKELY. Include malloc/dynarray.gl.h instead of malloc/dynarray.h.
Include malloc/dynarray-skeleton.gl.h instead of
malloc/dynarray-skeleton.c.
* modules/dynarray (Depends-on): Add builtin-expect.
(Makefile.am): Arrange to create malloc/dynarray.gl.h from
malloc/dynarray.h and malloc/dynarray-skeleton.gl.h from
malloc/dynarray-skeleton.c.
2021-06-06 Bruno Haible <bruno@clisp.org>
glob-h: Avoid conflict with preprocessor macros owned by the system.
This fixes a compilation error on DragonFly BSD 6.0.
* lib/glob.in.h: Don't include <libc-config.h>. Don't define __USE_GNU.
Include glob-libc.gl.h instead of glob-libc.h.
* modules/glob-h (Makefile.am): Arrange to create glob-libc.gl.h from
glob-libc.h.
* lib/libc-config.h: Add comment.
2021-06-06 Dmitry V. Levin <ldv@altlinux.org>
* tests/test-regex.c (tests): Add test cases for *+ and ** regressions
fixed by the previous commit.
* tests/test-regex.c (tests): Remove the comment saying that some tests
are not used. That comment was copied along with tests from glibc
where some of these tests are commented out.
2021-06-06 Egor Ignatov <egori@altlinux.org> (tiny change)
* lib/regexec.c (set_regs): Pop if CUR_NODE has already been checked
only when we have a fail stack.
2021-06-05 Bruno Haible <bruno@clisp.org>
lib-symbol-visibility: Make configure check work for newer GCC.
Reported by Ozkan Sezer <sezeroz@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00117.html>.
* m4/visibility.m4 (gl_VISIBILITY): Add a function definition for each
declaration in the test program.
2021-06-05 Bruno Haible <bruno@clisp.org>
vasnprintf: Don't leak memory when memory allocation fails.
Found by Coverity. Reported by Mike Fabian <mfabian@redhat.com> in
<https://lists.gnu.org/archive/html/bug-libunistring/2021-06/msg00000.html>.
* lib/vasnprintf.c (VASNPRINTF): In places where a local variable points
to heap-allocated storage, free that storage before doing
'goto out_of_memory;'.
2021-06-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Stop doing license notice replacements.
* gnulib-tool: Don't document --more-symlinks and --more-hardlinks any
more.
(do_copyrights): Remove variable.
(func_import): Don't perform license updates on imported files any more.
* pygnulib/GLInfo.py: Don't document --more-symlinks any more.
* doc/gnulib-intro.texi (Copyright): Document the new situation.
* doc/gnulib.texi (Module description): Likewise.
* NEWS: Mention the change.
2021-06-04 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Fix license.
* modules/git-merge-changelog (License): Change back to GPL.
* lib/git-merge-changelog.c: Use a GPLv3+ notice.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put GPLv3+ notices in source files where appropriate.
* lib/*.{h,c}: Use GPLv3+ notice whenever the module description says
so.
* build-aux/pmccabe.css: Likewise.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put LGPLv3+ notices in source files where appropriate.
* lib/*.{h,c}: Use LGPLv3+ notice whenever the module description says
so.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put "LGPLv3+ or GPLv2+" notices in source files where appropriate.
* lib/**.{h,c,gperf}: Use "LGPLv3+ or GPLv2+" notice whenever the module
description says so.
2021-06-04 Bruno Haible <bruno@clisp.org>
Generate correct license notices in libunistring files.
* lib/gen-uni-tables.c (output_library_license, output_tests_license):
New functions.
(output_predicate, output_category, output_combclass,
output_bidi_category, output_decimal_digit, output_digit,
output_numeric, output_mirror, output_joining_type,
output_joining_group, output_scripts, output_scripts_byname,
output_blocks, output_ident_category, output_lbrk_tables,
output_wbrk_tables, output_gbp_table, output_decomposition_tables,
output_composition_tables, output_simple_mapping, output_casing_rules):
Invoke output_library_license.
(output_predicate_test, output_decimal_digit_test, output_digit_test,
output_numeric_test, output_joining_type_test,
output_joining_group_test, output_gbp_test, output_simple_mapping_test):
Invoke output_tests_license.
* lib/uni*/*.h, lib/uni*/*.gperf: Regenerated.
* tests/uni*/*.h: Likewise.
2021-06-04 Bruno Haible <bruno@clisp.org>
Generate correct license notices in libunistring files.
* lib/uniname/gen-uninames.lisp (main): Emit a copyright and license
notice.
* lib/uniname/uninames.h: Regenerated.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put LGPLv2+ notices in source files where appropriate.
* lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description
says so.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put "unlimited" notices in source files where appropriate.
* build-aux/prefix-gnulib-mk: Use "unlimited" notice, since the module
description says so.
2021-06-04 Bruno Haible <bruno@clisp.org>
Put public domain notices in source files where appropriate.
* lib/{alloca.c,atexit.c,memmove.c}: Use public domain notice.
2021-06-04 Bruno Haible <bruno@clisp.org>
Revamp check-copyright script.
* check-copyright: Search only the first 50 lines of each file.
Recognize 'LGPLv3+ or GPLv2+', 'unlimited', and 'public domain' license
notices. For files that are part of several modules, consider the
weakest among the licenses. Allocate more room for the first output
column.
2021-06-04 Bruno Haible <bruno@clisp.org>
gnupload, git-merge-changelog: Fix module description.
* gnulib-tool (func_import, func_create_testdir): Treat
'GPLv2+ build tool' like 'GPLed build tool'.
* pygnulib/GLImport.py (prepare): Likewise.
* modules/gnupload (License): Change to 'GPLv2+ build tool'.
* modules/git-merge-changelog (License): Change to GPLv2+.
2021-06-04 Bruno Haible <bruno@clisp.org>
New directory with license notices.
* etc/license-notices/*: New files.
2021-05-30 Paul Eggert <eggert@cs.ucla.edu>
reallocarray-tests: port to weird platforms
* tests/test-reallocarray.c (main): Don’t assume that
PTRDIFF_MAX / 2 + 1 <= SIZE_MAX. POSIX allows platforms
where this isn’t true, though I don’t know of any examples.
dfa, etc.: prefer xreallocarray to older name
* lib/dfa.c (addtok_mb, realloc_trans_if_necessary, enlist):
* lib/readtokens.c (readtokens):
* tests/uninorm/test-u32-normalize-big.c:
(read_normalization_test_file):
Prefer xreallocarray to the equivalent xnrealloc.
The newer name follows the glibc lead of ‘reallocarray’.
2021-05-30 Bruno Haible <bruno@clisp.org>
Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'.
* modules/* (License): Change.
* gnulib-tool (func_import, func_create_testdir): Likewise.
2021-05-29 Paul Eggert <eggert@cs.ucla.edu>
sigsegv: Port to Solaris 11
Problem reported by Kiyoshi KANAZAWA in:
https://lists.gnu.org/r/bug-m4/2021-05/msg00020.html
* lib/stackvma.c (_FILE_OFFSET_BITS): #undef on Solaris and Android.
2021-05-24 Bruno Haible <bruno@clisp.org>
c-stack: Document another restriction.
Triggered by a discussion with Paul Eggert.
* lib/c-stack.h: Mention that ACTION should not use nested functions.
2021-05-22 Bruno Haible <bruno@clisp.org>
stdio: Fix compilation error on DragonFly BSD.
* lib/stdio.in.h (fcloseall): Treat DragonFly BSD like FreeBSD.
2021-05-22 Larkin Nickle <me@larbob.org> (tiny change)
getprogname: port to Tru64
* lib/getprogname.c: Treat __osf__ like __sgi, except
with /proc/123 instead of /proc/pinfo/123.
2021-05-21 Paul Eggert <eggert@cs.ucla.edu>
sigsegv: don’t assume SIGSTKSZ is a constant
* m4/sigaltstack.m4 (SV_SIGALTSTACK): Don’t attempt to override
SIGSTKSZ. Instead, use an array that is plenty large, while
checking that it’s large enough. Also, be consistent about
putting that array in static storage rather than on the stack.
* tests/altstack-util.h (SIGSTKSZ): Don’t define.
(MYSTACK_SIZE): New macro, used instead of SIGSTKSZ.
(mystack_storage, mystack): Now static.
(prepare_alternate_stack) [SIGSTKSZ]:
Check that MYSTACK_SIZE is large enough.
2021-05-20 Paul Eggert <eggert@cs.ucla.edu>
fstatat: doc improvement
* doc/posix-functions/fstatat.texi (fstatat):
Mention AT_EMPTY_PATH when talking about empty strings.
2021-05-18 Bruno Haible <bruno@clisp.org>
c-stack: Support catching stack overflow on most platforms without libsigsegv.
* lib/c-stack.c: Remove all Solaris-specific code. Include <sigsegv.h>
always.
* m4/c-stack.m4: Remove all Solaris-specific code.
(gl_C_STACK): Test $with_libsigsegv from module 'sigsegv'.
* modules/c-stack (Files): Remove m4/libsigsegv.m4.
(Depends-on): Add sigsegv. Remove havelib, intprops, inttypes, mempcpy,
sigaction, stdbool.
2021-05-16 Bruno Haible <bruno@clisp.org>
sigsegv, c-stack: Avoid compilation error with glibc >= 2.34.
* lib/sigsegv.in.h (SIGSTKSZ): On glibc systems, redefine to a suitable
constant.
* m4/sigaltstack.m4 (SV_SIGALTSTACK): Likewise.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Likewise.
2021-05-16 Bruno Haible <bruno@clisp.org>
sigsegv: Add tests.
* tests/test-sigsegv-catch-segv1.c: New file, from GNU libsigsegv with
modifications.
* tests/test-sigsegv-catch-segv2.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow1.c: Likewise.
* tests/test-sigsegv-catch-stackoverflow2.c: Likewise.
* tests/altstack-util.h: Likewise.
* tests/mmap-anon-util.h: Likewise.
* modules/sigsegv-tests: New file.
sigsegv: New module.
* lib/sigsegv.in.h: New file, from GNU libsigsegv with modifications.
* lib/sigsegv.c: Likewise.
* lib/stackvma.h: Likewise.
* lib/stackvma.c: Likewise.
* m4/sigaltstack.m4: Likewise.
* m4/stack-direction.m4: Likewise.
* modules/sigsegv: New file.
2021-05-15 Pádraig Brady <P@draigBrady.com>
realloc-gnu: avoid glibc MALLOC_CHECK_ issue
* tests/test-realloc-gnu.c (main): if MALLOC_CHECK_ env var
is set then don't check ENOMEM is returned from realloc().
See https://sourceware.org/bugzilla/show_bug.cgi?id=27870
Note it doesn't suffice to unsetenv() this var within the program,
as the hooks have already been set up at that stage.
2021-05-14 Paul Eggert <eggert@cs.ucla.edu>
c-stack: work around Solaris 11 bugs
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-05/msg00062.html
* lib/c-stack.c: Always include sigsegv.h if HAVE_LIBSIGSEGV.
(USE_LIBSIGSEGV): Do not use libsigsegv if the kernel
has the si_addr bug and libsigsegv is too old to work
around it.
(segv_handler) [!USE_LIBSIGSEGV]: Do not trust si_addr
if BOGUS_SI_ADDR_UPON_STACK_OVERFLOW.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC):
Define BOGUS_SI_ADDR_UPON_STACK_OVERFLOW on Solaris 2.11 SPARC.
And do not define HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
2021-05-14 Bruno Haible <bruno@clisp.org>
fcntl tests: Avoid failure in MacPorts.
Reported by Nicholas Gaya <nicholasgaya@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00014.html>.
* tests/test-fcntl.c (main): Close fd 10 before assuming that it is
closed.
* tests/test-execute-main.c: Update comment.
2021-05-14 Bruno Haible <bruno@clisp.org>
linked-list-unportable-test: New module.
* modules/linked-list-unportable-tests: New file, based on
modules/linked-list-tests.
* modules/linked-list-tests: Remove the unportable tests from here.
Depend on linked-list-unportable-tests.
2021-05-14 Simon Josefsson <simon@josefsson.org>
valgrind-tests: Doc fix and introduce AM_VALGRINDFLAGS.
* doc/valgrind-tests.texi (Using valgrind automatically): Clarify
when the parallel vs serial test harness is used, suggested by
Bruno Haible <bruno@clisp.org>.
* m4/valgrind-tests.m4: Add VALGRIND_PROGRAM and AM_VALGRINDFLAGS.
2021-05-14 Bruno Haible <bruno@clisp.org>
malloc-gnu, realloc-gnu, calloc-gnu: Ensure errno gets set to ENOMEM.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Set gl_cv_func_malloc_posix to
'no' also on Solaris.
2021-05-14 Bruno Haible <bruno@clisp.org>
DEPENDENCIES: Mention the requirement for 'join'.
Reported by Simon Josefsson <simon@josefsson.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00047.html>.
* DEPENDENCIES: Mention 'join' among the core POSIX utilities.
2021-05-14 Bruno Haible <bruno@clisp.org>
*alloc-gnu tests: Use ASSERT macro.
* tests/test-malloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-calloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-realloc-gnu.c: Include "macros.h".
(main): Use ASSERT.
* tests/test-reallocarray.c: Include "macros.h".
(main): Use ASSERT.
* modules/malloc-gnu-tests (Files): Add tests/macros.h.
* modules/calloc-gnu-tests (Files): Likewise.
* modules/realloc-gnu-tests (Files): Likewise.
* modules/reallocarray-tests (Files): Likewise.
2021-05-14 Simon Josefsson <simon@josefsson.org>
valgrind-tests: Fix 'sh: yes: unknown operand' error.
* m4/valgrind-tests.m4: Protect variable usage.
2021-05-14 Simon Josefsson <simon@josefsson.org>
valgrind-tests: Fix LOG_VALGRIND when valgrind is missing.
* m4/valgrind-tests.m4: Clear all variables when missing.
2021-05-14 Simon Josefsson <simon@josefsson.org>
valgrind-tests: Better option handling.
* m4/valgrind-tests.m4: Support new variables VALGRINDFLAGS and
DEFAULT_VALGRINDFLAGS.
* doc/valgrind-tests.texi (Running self-tests under valgrind):
Improve.
2021-05-14 Markus Mützel <markus.muetzel@gmx.de> (tiny change)
windows-spawn: Don't assume that UNICODE is not defined.
* lib/windows-spawn.h (compose_handles_block): Use type STARTUPINFOA.
2021-05-13 Bruno Haible <bruno@clisp.org>
getrandom: Produce a better error code.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00025.html>.
* lib/getrandom.c (getrandom): When open() fails with an error that does
not indicate the absence of the file, fail with that error code, not
with ENOSYS.
2021-05-13 Bruno Haible <bruno@clisp.org>
fstatat: Document a glibc 2.7 bug.
* doc/posix-functions/fstatat.texi: Document an old glibc 2.7 bug.
2021-05-13 Bruno Haible <bruno@clisp.org>
posix_spawn, posix_spawnp: Fix build error on Minix 3.3.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): If posix_spawn does not exist
but is declared, set REPLACE_POSIX_SPAWN.
* doc/posix-functions/posix_spawn.texi: Update platforms list.
* doc/posix-functions/posix_spawnp.texi: Likewise.
2021-05-13 Bruno Haible <bruno@clisp.org>
reallocarray tests: Avoid test failure on NetBSD.
* tests/test-reallocarray.c (main): Accept EOVERFLOW error code.
2021-05-12 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fail properly if the 'join' program is not found.
Reported by Simon Josefsson <simon@josefsson.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-05/msg00029.html>.
* gnulib-tool: Bail out early of the 'join' program is not found.
2021-05-09 Bruno Haible <bruno@clisp.org>
{realloc,calloc}-gnu: Fix autoconf macro (regression 2021-04-18).
* m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Don't reset REPLACE_REALLOC
to 0 if it is already 1 after gl_FUNC_REALLOC_GNU was executed.
* m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Don't reset REPLACE_CALLOC
to 0 if it is already 1 after gl_FUNC_CALLOC_GNU was executed.
{malloc,realloc,calloc}-gnu: Fix autoconf macro (regression 2021-04-18).
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Don't assume that
_AC_FUNC_MALLOC_IF expands to a single shell statement.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Don't assume that
_AC_FUNC_REALLOC_IF expands to a single shell statement.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Don't assume that
_AC_FUNC_CALLOC_IF expands to a single shell statement.
2021-05-09 Bruno Haible <bruno@clisp.org>
malloc-gnu, realloc-gnu, calloc-gnu: Ensure errno gets set on IRIX.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Require AC_CANONICAL_HOST. Set
gl_cv_func_malloc_posix to 'no' also on IRIX.
malloc-gnu, realloc-gnu, calloc-gnu tests: Verify errno is set.
* tests/test-malloc-gnu.c: Include <errno.h>.
(main): Verify that, when an allocation larger than PTRDIFF_MAX failed,
errno is ENOMEM.
* tests/test-realloc-gnu.c: Likewise.
* tests/test-calloc-gnu.c: Likewise.
2021-05-09 Bruno Haible <bruno@clisp.org>
getrandom: Fail with ENOSYS when the system has no randomness source.
* lib/getrandom.c (getrandom): When open() fails, set errno to ENOSYS.
2021-05-09 Bruno Haible <bruno@clisp.org>
free tests: Avoid test failure on glibc < 2.15.
* tests/test-free.c (main): Skip the hairy test on glibc < 2.15.
2021-05-08 Bruno Haible <bruno@clisp.org>
Fix build error when libintl is installed.
* modules/posix_spawn_file_actions_addchdir-tests (Makefile.am): Link
test-posix_spawn-chdir with libintl.
* modules/posix_spawn_file_actions_addfchdir-tests (Makefile.am): Link
test-posix_spawn-fchdir with libintl.
2021-05-07 Bruno Haible <bruno@clisp.org>
Fix build when an older libunistring is installed (regr. 2020-02-23).
* modules/unitypes (configure.ac): Arrange to generate the .h file if
the installed one is from a version < 0.9.11.
* modules/unicase/base (configure.ac): Likewise.
* 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.
* modules/unictype/base (configure.ac): Arrange to generate the .h file
if the installed one is from a version < 0.9.8.
* modules/unigbrk/base (configure.ac): Likewise.
2021-04-30 Bruno Haible <bruno@clisp.org>
immutable: Fix crash when immmalloc() fails.
Found by GCC 11 '-fanalyzer'.
* lib/immutable.c (immstrdup): Don't crash when immmalloc() fails.
2021-04-30 Bruno Haible <bruno@clisp.org>
supersede: Fix crash when malloc() fails.
Found by GCC 11 '-fanalyzer'.
* lib/supersede.c (create_temp_file): Don't crash when malloc() fails.
2021-04-27 Paul Eggert <eggert@cs.ucla.edu>
libc-config: fix include problem on older Debian
https://lists.gnu.org/r/bug-gnulib/2021-04/msg00198.html
* lib/cdefs.h: Use __GNULIB_CDEFS, not __GLIBC__,
to determine whether to include the bits/* files.
* lib/libc-config.h (__WORDSIZE): Remove.
(__GNULIB_CDEFS): New macro.
2021-04-26 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: port better to current Autoconf
* doc/gnulib-tool.texi (Initial import): Don’t mention
AC_PROG_CC_STDC as it’s deprecated in current Autoconf.
* gnulib-tool (func_done_dir): Suggest replacing
AC_PROG_CC_STDC and AC_PROG_CC_C99, as per current Autoconf.
2021-04-25 Paul Eggert <eggert@cs.ucla.edu>
reallocarray: a bit more tuning
* lib/reallocarray.c: Include intprops.h.
(reallocarray): Use INT_MULTIPLY_WRAPV instead of
xalloc_oversized, as it now suffices and is likely a bit more
efficient (five fewer machine insns on Ubuntu 20.10 x86-64).
* modules/reallocarray (Depends-on): Depend on intprops, not
xalloc-oversized. Use conditional dependencies to avoid building
realloc-gnu when not needed.
reallocarray: don’t crash if item size is 0
This problem affects only platforms where xalloc_oversized
divides a number by the size arg. Fix this by defining
xalloc_oversized (n, s) to work even if s == 0.
* lib/malloca.h, lib/xalloc-oversized.h: Document new behavior.
* lib/xalloc-oversized.h (__xalloc_oversized): Do not crash if S==0.
* tests/test-reallocarray.c (main): Test for the bug.
2021-04-24 Paul Eggert <eggert@cs.ucla.edu>
xmalloca, etc.: avoid unlikely trap
* lib/malloca.h (nmalloca):
* lib/xmalloca.h (xnmalloca):
Use size_t, not ptrdiff_t, to avoid implementation-defined
behavior (which could include a trap) if N is 0 and S exceeds
PTRDIFF_MAX.
* lib/xalloc-oversized.h: Adjust comment to match.
xmalloca, etc.: fix some xalloc-oversized issues
* lib/malloca.h (nmalloca):
* lib/xmalloca.h (xnmalloca): Convert S to ptrdiff_t to avoid
arithmetic overflow if N and S are both narrower than ptrdiff_t.
* lib/xalloc-oversized.h (xalloc_oversized):
Don’t say that args must be ptrdiff_t or size_t or wider.
The macro returns the correct answer even when that is not
the case, and it’s the caller’s responsibility to avoid
howlers like (xalloc_oversized (n, s) ? NULL : malloc (n * s))
when N and S are both narrower than ptrdiff_t and size_t.
Add a comment to that effect.
* lib/xmalloca.h: Include xalloc-oversized.h, since this file uses
xalloc_oversized. Add comments about side effects and avoid
unnecessary parens.
* modules/xmalloca (Depends-on): Add xalloc-oversized.
reallocarray: check for ptrdiff_t overflow
* doc/glibc-functions/reallocarray.texi (reallocarray):
Mention ptrdiff_t overflow.
* lib/reallocarray.c (reallocarray): Reindent as per usual GNU.
* lib/stdlib.in.h (reallocarray): Allow reallocarray to be replaced.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY):
Check for ptrdiff_t overflow.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Set up REPLACE_REALLOCARRAY.
* modules/reallocarray (Files): Add malloc.m4.
(configure.ac): Also test REPLACE_REALLOCARRAY.
* modules/reallocarray-tests (Depends-on): Add stdint.
* modules/stdlib (stdlib.h): Substitute REPLACE_REALLOCARRAY.
* tests/test-reallocarray.c: Include stdint.h.
(main): Check for ptrdiff_t overflow.
calloc-gnu-tests: add overflow tests
* tests/test-calloc-gnu.c (identity): New function, replacing ‘eight’.
(main): Do 2 * log2(SIZE_MAX) tests instead of just two tests.
Don’t bother to free on failure.
2021-04-22 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port better to Fedora Rawhide
Problem reported by Eric Blake in:
https://lists.gnu.org/r/bug-gnulib/2021-04/msg00181.html
* lib/cdefs.h: Make this closer to glibc, so that we can
merge Gnulib into glibc here.
(__attribute_maybe_unused__): Make identical to glibc’s
definition, though with an additional comment.
(__attribute_nonnull__): Add clarifying comment.
Make inclusion of bits/wordsize.h, bits/long-double.h
dependent on __GLIBC__, not on !__WORDSIZE.
* lib/libc-config.h: Use __attribute_nonnull__,
not __attribute_maybe_unused__, to detect whether
to include sys/cdefs.h.
2021-04-21 Paul Eggert <eggert@cs.ucla.edu>
realloc: port to AIX 7.1
* lib/realloc.c (_GL_USE_STDLIB_ALLOC): Do not define. This
module relies on GNU malloc. This fixes a test failure on AIX 7.1.
malloc: simplify
* lib/malloc.c: Omit unnecessary "#undef malloc".
I recently introduced it by mistake. This module defines
_GL_USE_STDLIB_ALLOC and so malloc isn’t redefined to rpl_malloc.
malloca: avoid ptrdiff_t overflow
* lib/malloca.c: Include idx.h, intprops.h.
(mmalloca): Check for ptrdiff_t overflow. Since this module uses
_GL_USE_STDLIB_ALLOC, it cannot assume GNU malloc semantics.
* modules/malloca (Depends-on): Add idx, intprops.
careadlinkat: avoid ptrdiff_t overflow
* lib/careadlinkat.c: Include idx.h, minmax.h.
(readlink_stk): Avoid ptrdiff_t overflow in object allocation.
Since this module uses arbitrary allocators (including
stdlib_allocator), it cannot assume GNU malloc semantics.
* modules/careadlinkat (Depends-on): Add idx, minmax.
execute-tests: pacify compiler
* tests/test-execute-main.c (main): Use 0x7DEADBEE rather than
0xDEADBEEF for nonces, to avoid provoking AIX XLC compiler warning
that the latter is out of int range.
2021-04-20 Paul Eggert <eggert@cs.ucla.edu>
malloc-gnu-tests, etc.: use volatile for clang
In some more test locations, store the result of malloc etc. into
a volatile pointer so that clang doesn’t optimize away the malloc
and thus bypass the test. This fixes a malloc-gnu test failure on
macOS 11.2.3 with clang 12.0.0 on ARM.
* tests/test-alloca-opt.c (do_allocation):
* tests/test-malloc-gnu.c (main):
* tests/test-malloca.c (do_allocation):
* tests/test-realloc-gnu.c (main):
* tests/test-reallocarray.c (main):
* tests/test-aligned-malloc.c (main):
* tests/test-aligned_alloc.c (main):
Store malloc etc. results into a volatile pointer.
2021-04-18 Paul Eggert <eggert@cs.ucla.edu>
malloc-gnu-tests: pacify -Walloc-size-larger-than
* tests/test-malloc-gnu.c (main):
* tests/test-realloc-gnu.c (main): Hide true intentions from GCC,
to prevent diagnostics like “warning: argument 1 value
‘9223372036854775808’ exceeds maximum object size
9223372036854775807 [-Walloc-size-larger-than=]”.
safe-alloc: fix pointer implementation
The old implementation assumed that all pointers use the same
internal representation, but the C standard doesn’t guarantee
this. Use void * (pointer) not void ** (pointer-to-pointer) for
the internal functions’ API. The internal functions now return
NULL if and only if they failed, and the macros translate that
into -1 or 0 to satisfy the existing API.
* doc/safe-alloc.texi (Safe Allocation Macros): Mention overflow.
* lib/safe-alloc.c: Major rewrite. Now this simply
defines SAFE_ALLOC_INLINE and includes safe-alloc.h.
* lib/safe-alloc.h: Include stddef.h, not stdlib.h.
(SAFE_ALLOC_INLINE): New macro; use Gnulib inline function style.
(safe_alloc_realloc_n): New API, which passes and returns
the pointer, and which returns NULL if and only if failure occurs.
(safe_alloc_check): New function.
(ALLOC, ALLOC_N, ALLOC_N_UNINITIALIZED, REALLOC_N):
Redo using the new API for internal functions, and using calloc
which is good enough since it’s GNU-compatible now.
(FREE): Expand to an expression rather than merely to something
that needs a following ‘;’ to become a statement.
* modules/safe-alloc (Depends-on): Add calloc-gnu.
calloc-gnu: now LGPLv2+
* modules/calloc-gnu (License): Change from GPL to LGPLv2+.
The old value was evidently a longstanding typo, and calloc
will be needed by LGPLv2+ modules that will want to rely
on GNU behavior.
safe-alloc: simplify via reallocarray
* lib/safe-alloc.c: Do not include xalloc-oversized.h.
(safe_alloc_alloc_n, safe_alloc_realloc_n):
Use reallocarray to check for size or ptrdiff_t overflow.
* modules/reallocarray (License): Switch from LGPL to LGPLv2+, as
this is needed for safe-alloc and anyway is more appropriate for
this library function common with BSD.
* modules/safe-alloc (Depends-on): Depend on reallocarray
rather than xalloc-oversized.
xalloc-oversized: fix SIZE_MAX optimization bug
* lib/xalloc-oversized.h (xalloc_count_t): Remove; no longer
needed and was evidently error-prone anyway.
(xalloc_oversized): Omit some over-optimization that caused
SIZE_MAX to not be treated as too large (the Gnulib convention) on
unusual platforms where PTRDIFF_MAX == SIZE_MAX. This change
should not affect typical platforms where PTRDIFF_MAX < SIZE_MAX.
When optimizing, simply use ptrdiff_t instead of xalloc_count_t.
xalloc: new function xreallocarray
This is the same as xnrealloc, which perhaps should be deprecated.
The name xreallocarray should be easier to remember now that
reallocarray is a standard GNU function.
* lib/xalloc.h [GNULIB_XALLOC]: Do not include xalloc-oversized.h.
(xnmalloc, xnrealloc, x2nrealloc): Simplify by using xreallocarray.
* lib/xmalloc.c (xreallocarray): New function.
* modules/xalloc (Depends-on): Add reallocarray;
remove xalloc-oversized.
group-member: simplify via realloc-gnu
* lib/group-member.c, modules/group-member:
Simplify similarly to backupfile.
backupfile: simplify via realloc-gnu
* lib/backupfile.c: Do not include xalloc-oversized.h.
(numbered_backup): Simplify now that realloc will do the right
thing about ptrdiff_t overflow.
* modules/backupfile (Depends-on): Add realloc-gnu;
remove xalloc-oversized.
safe-alloc: improve doc
* doc/safe-alloc.texi: Clarify that reallocating an array appends
uninitialized storage. Say ‘sizeof *p’ rather than ‘sizeof(*p)’
which would need a space before the paren to follow GNU style.
malloc-gnu-tests, etc.: test ptrdiff_t overflow
* modules/calloc-gnu-tests (Depends-on):
* modules/malloc-gnu-tests (Depends-on):
* modules/realloc-gnu-tests (Depends-on): Add stdint.
* tests/test-calloc-gnu.c (main):
* tests/test-malloc-gnu.c (main):,
* tests/test-realloc-gnu.c (main): Test for ptrdiff_t overflow.
malloc-gnu, etc.: prefer AS_CASE to woolly AS_IF
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF):
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Use AS_CASE.
malloc-gnu, etc.: sync better with Autoconf
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF):
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
Avoid some unnecessary differences from Autoconf’s versions.
Separate our platforms into a different line so that it’s easier
to diff. Use AS_IF in case the args use AC_REQUIRE.
However, don’t bother with omitting the first newline, as
omitting the newline is not Gnulib style and the difference
doesn’t seem to matter here.
2021-04-18 Bruno Haible <bruno@clisp.org>
malloc-posix, realloc-posix, calloc-posix: Document affected platforms.
* doc/posix-functions/malloc.texi: Re-add platforms list.
* doc/posix-functions/realloc.texi: Likewise.
* doc/posix-functions/calloc.texi: Likewise.
2021-04-18 Bruno Haible <bruno@clisp.org>
More systematic file naming.
* m4/ctype_h.m4: Renamed from m4/ctype.m4.
* m4/threads_h.m4: Renamed from m4/threads.m4.
* m4/uchar_h.m4: Renamed from m4/uchar.m4.
2021-04-18 Bruno Haible <bruno@clisp.org>
Add comments after 2021-04-11 change.
* m4/*_h.m4: Add comments regarding *_REQUIRE_DEFAULTS and
*_MODULE_INDICATOR macros.
2021-04-18 Bruno Haible <bruno@clisp.org>
doc: Update for FreeBSD 13.0/arm64.
* doc/posix-headers/stdint.texi: Mention FreeBSD 13 bug.
* m4/stdint.m4: Update comment.
2021-04-17 Paul Eggert <eggert@cs.ucla.edu>
xalloc: adjust to malloc ptrdiff_t change
* lib/xmalloc.c (HAVE_GNU_CALLOC, HAVE_GNU_MALLOC, HAVE_GNU_REALLOC):
Remove.
(xmalloc, xrealloc, xcalloc): Simplify by assuming GNU behavior.
* modules/xalloc (Depends-on): Add calloc-gnu, malloc-gnu,
realloc-gnu.
malloc, etc.: check for ptrdiff_t overflow
In glibc 2.30 and later, malloc, realloc and calloc reject
attempts to create objects larger than PTRDIFF_MAX bytes.
This patch changes malloc-gnu etc. to support this behavior
on non-GNU hosts. It also makes this change for malloc-posix etc.
since it’s a safety measure that ought to be in POSIX (perhaps
we can talk them into that...).
In writing this patch I found a complicated set of code that had
accumulated over the years, some written by yours truly. I got
rid of the code I couldn’t see the need for nowadays. Among other
things, the GNU realloc behavior is no longer incompatible with
the C standard, because in C17 the latter was relaxed to allow the
former. If I went too far in cleaning up, the old stuff can be
resurrected.
This change is mostly for 32-bit platforms, since practical 64-bit
platforms cannot create objects larger than PTRDIFF_MAX bytes anyway.
* doc/posix-functions/calloc.texi:
* doc/posix-functions/malloc.texi:
* doc/posix-functions/realloc.texi:
Mention ptrdiff_t issues, and go into more detail about what
the gnu extension module does.
* doc/posix-functions/realloc.texi: Fix now-obsolete commentary
about C99 vs glibc, as C17 allows the glibc behavior and POSIX
will follow suit when it gets around to it.
* lib/calloc.c, lib/malloc.c, lib/realloc.c:
Simplify by always supplying a GNU-compatible version,
as that suffices for correctness and is good enough for performance.
Include xalloc-oversized.h, and use xalloc_oversized to
check for ptrdiff_t overflow.
(NEED_CALLOC_GNU, NEED_MALLOC_GNU, NEED_REALLOC_GNU): Remove.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF):
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
Don’t start with a newline. Fix message to match behavior.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don’t test for size_t overflow,
as the ptrdiff_t test is good enough.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU):
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU):
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU):
Do not define HAVE_CALLOC_GNU, HAVE_MALLOC_GNU, HAVE_REALLOC_GNU.
It’s not worth the aggravation of maintaining these, as they
are confusing (they don’t really mean GNU-compatible anyway).
Don’t bother testing for GNU behavior if we have already decided
to replace the function, since the replacement is always GNUish.
* m4/calloc.m4 (gl_FUNC_CALLOC_POSIX):
* m4/realloc.m4 (gl_FUNC_REALLOC_POSIX):
Defer to gl_FUNC_MALLOC_POSIX.
* m4/malloc.m4 (gl_FUNC_MALLOC_PTRDIFF, gl_CHECK_MALLOC_PTRDIFF):
New macros.
(gl_FUNC_MALLOC_POSIX): Use them to check for ptrdiff_t overflow.
* modules/calloc-gnu, modules/malloc-gnu, modules/realloc-gnu:
Remove no-longer-needed module indicators.
* modules/calloc-posix, modules/malloc-posix, modules/realloc-posix:
Depend on xalloc-oversized.
* modules/malloc-posix: Require gl_FUNC_MALLOC_POSIX instead of
calling it directly, so that other code can require it.
* modules/realloc-posix: Depend on free-posix and malloc-posix.
2021-04-17 Bruno Haible <bruno@clisp.org>
stdio: Fix build error in some configurations (regression 2021-04-11).
* m4/stdio_h.m4 (gl_STDIO_H): Move gl_STDIO_MODULE_INDICATOR and
gl_MODULE_INDICATOR invocations from here...
* modules/stdio (configure.ac): ... to here.
2021-04-17 Bruno Haible <bruno@clisp.org>
doc: Update for FreeBSD 11.0, 12.0, 13.0.
* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Update cross-compilation guess.
2021-04-16 Paul Eggert <eggert@cs.ucla.edu>
malloc, realloc: fix recently-introduced #undef typos
* lib/malloc.c (malloc):
* lib/realloc.c (malloc, realloc): #undef before using.
2021-04-14 Bruno Haible <bruno@clisp.org>
hamt tests: Fix link error.
* modules/hamt-tests (Makefile.am): Link test-hamt against @LIBINTL@.
2021-04-14 Bruno Haible <bruno@clisp.org>
c-stack: Don't use an undefined C macro (regression from 2020-10-04).
* lib/c-stack.c: Test GNU C version directly, without __GNUC_PREREQ.
2021-04-12 Bruno Haible <bruno@clisp.org>
doc: Fix confusion between LIBADD and LDADD.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00102.html>.
* doc/gnulib-tool.texi (Multiple instances): For programs, use LDADD,
not LIBADD.
2021-04-11 Bruno Haible <bruno@clisp.org>
malloc, realloc, calloc: Support restricted library symbols on AIX.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00119.html>.
* lib/malloc.c: Drop the code that intends to collaborate with
AC_FUNC_MALLOC.
* lib/realloc.c: Drop the code that intends to collaborate with
AC_FUNC_REALLOC.
* lib/calloc.c: Drop the code that intends to collaborate with the
nonexistent macro AC_FUNC_CALLOC.
2021-04-11 Bruno Haible <bruno@clisp.org>
Support several gnulib-tool invocations under the same configure.ac.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00104.html>.
This is done by defining the Gnulib module indicator variables per
gnulib-tool invocation. So that a generated .h file is no longer
influenced by the set of modules used in other gnulib-tool invocations.
* gnulib-tool (func_compute_include_guard_prefix): Set
module_indicator_prefix.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Use it to
modify $(GNULIB_*) variable references in the Automake snippets.
(func_emit_initmacro_start): Push macro definitions for GL_MACRO_PREFIX
and GL_MODULE_INDICATOR_PREFIX.
(func_emit_initmacro_end): Pop these macro definitions.
* pygnulib/GLConfig.py (GLConfig.getIncludeGuardPrefix): New method.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_start): Push macro
definitions for GL_MACRO_PREFIX and GL_MODULE_INDICATOR_PREFIX.
(GLEmiter.initmacro_end): Pop these macro definitions.
(GLEmiter.lib_Makefile_am, GLEmiter.tests_Makefile_am): Use the module
indicator prefix to modify $(GNULIB_*) variable references in the
Automake snippets.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_INIT_VARIABLE,
gl_MODULE_INDICATOR_SET_VARIABLE): Use the value of
GL_MODULE_INDICATOR_PREFIX.
* m4/arpa_inet_h.m4: Use new idiom for header files that contain
references to Gnulib module indicator variables:
- Define the main macro through AC_DEFUN_ONCE.
- Define a macro gl_*_H_REQUIRE_DEFAULTS that initializes the Gnulib
module indicator variables (each prefixed with
GL_MODULE_INDICATOR_PREFIX).
- Invoke this macro in the gl_*_MODULE_INDICATOR macro.
* m4/ctype.m4: Likewise.
* m4/dirent_h.m4: Likewise.
* m4/fcntl_h.m4: Likewise.
* m4/fnmatch_h.m4: Likewise.
* m4/glob_h.m4: Likewise.
* m4/iconv_h.m4: Likewise.
* m4/inttypes.m4: Likewise.
* m4/langinfo_h.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/malloc_h.m4: Likewise.
* m4/math_h.m4: Likewise.
* m4/monetary_h.m4: Likewise.
* m4/netdb_h.m4: Likewise.
* m4/poll_h.m4: Likewise.
* m4/pthread_h.m4: Likewise.
* m4/pty_h.m4: Likewise.
* m4/sched_h.m4: Likewise.
* m4/search_h.m4: Likewise.
* m4/signal_h.m4: Likewise.
* m4/spawn_h.m4: Likewise.
* m4/stddef_h.m4: Likewise.
* m4/stdio_h.m4: Likewise.
* m4/stdlib_h.m4: Likewise.
* m4/string_h.m4: Likewise.
* m4/strings_h.m4: Likewise.
* m4/sys_file_h.m4: Likewise.
* m4/sys_ioctl_h.m4: Likewise.
* m4/sys_random_h.m4: Likewise.
* m4/sys_resource_h.m4: Likewise.
* m4/sys_select_h.m4: Likewise.
* m4/sys_socket_h.m4: Likewise.
* m4/sys_stat_h.m4: Likewise.
* m4/sys_time_h.m4: Likewise.
* m4/sys_times_h.m4: Likewise.
* m4/sys_types_h.m4: Likewise.
* m4/sys_uio_h.m4: Likewise.
* m4/sys_utsname_h.m4: Likewise.
* m4/sys_wait_h.m4: Likewise.
* m4/termios_h.m4: Likewise.
* m4/threads.m4: Likewise.
* m4/time_h.m4: Likewise.
* m4/uchar.m4: Likewise.
* m4/unistd_h.m4: Likewise.
* m4/utime_h.m4: Likewise.
* m4/wchar_h.m4: Likewise.
* m4/wctype_h.m4: Likewise.
* modules/arpa_inet (configure.ac): Invoke the macro
gl_*_H_REQUIRE_DEFAULTS explicitly.
* modules/ctype (configure.ac): Likewise.
* modules/dirent (configure.ac): Likewise.
* modules/fcntl-h (configure.ac): Likewise.
* modules/fnmatch-h (configure.ac): Likewise.
* modules/glob-h (configure.ac): Likewise.
* modules/iconv-h (configure.ac): Likewise.
* modules/inttypes-incomplete (configure.ac): Likewise.
* modules/langinfo (configure.ac): Likewise.
* modules/locale (configure.ac): Likewise.
* modules/malloc-h (configure.ac): Likewise.
* modules/math (configure.ac): Likewise.
* modules/monetary (configure.ac): Likewise.
* modules/netdb (configure.ac): Likewise.
* modules/poll-h (configure.ac): Likewise.
* modules/pthread-h (configure.ac): Likewise.
* modules/pty (configure.ac): Likewise.
* modules/sched (configure.ac): Likewise.
* modules/search (configure.ac): Likewise.
* modules/signal-h (configure.ac): Likewise.
* modules/spawn (configure.ac): Likewise.
* modules/stddef (configure.ac): Likewise.
* modules/stdio (configure.ac): Likewise.
* modules/stdlib (configure.ac): Likewise.
* modules/string (configure.ac): Likewise.
* modules/strings (configure.ac): Likewise.
* modules/sys_file (configure.ac): Likewise.
* modules/sys_ioctl (configure.ac): Likewise.
* modules/sys_random (configure.ac): Likewise.
* modules/sys_resource (configure.ac): Likewise.
* modules/sys_select (configure.ac): Likewise.
* modules/sys_socket (configure.ac): Likewise.
* modules/sys_stat (configure.ac): Likewise.
* modules/sys_time (configure.ac): Likewise.
* modules/sys_times (configure.ac): Likewise.
* modules/sys_types (configure.ac): Likewise.
* modules/sys_uio (configure.ac): Likewise.
* modules/sys_utsname (configure.ac): Likewise.
* modules/sys_wait (configure.ac): Likewise.
* modules/termios (configure.ac): Likewise.
* modules/threads-h (configure.ac): Likewise.
* modules/time (configure.ac): Likewise.
* modules/uchar (configure.ac): Likewise.
* modules/unistd (configure.ac): Likewise.
* modules/utime-h (configure.ac): Likewise.
* modules/wchar (configure.ac): Likewise.
* modules/wctype-h (configure.ac): Likewise.
* m4/af_alg.m4: Update after a macro name changed.
* m4/ctime.m4: Likewise.
* m4/explicit_bzero.m4: Likewise.
* m4/ffs.m4: Likewise.
* m4/ffsl.m4: Likewise.
* m4/ffsll.m4: Likewise.
* m4/flock.m4: Likewise.
* m4/fstat.m4: Likewise.
* m4/getaddrinfo.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/gettimeofday.m4: Likewise.
* m4/hostent.m4: Likewise.
* m4/ioctl.m4: Likewise.
* m4/localtime.m4: Likewise.
* m4/mbslen.m4: Likewise.
* m4/memchr.m4: Likewise.
* m4/memmem.m4: Likewise.
* m4/mempcpy.m4: Likewise.
* m4/memrchr.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/passfd.m4: Likewise.
* m4/pselect.m4: Likewise.
* m4/rawmemchr.m4: Likewise.
* m4/select.m4: Likewise.
* m4/servent.m4: Likewise.
* m4/sigabbrev_np.m4: Likewise.
* m4/sigdescr_np.m4: Likewise.
* m4/sockpfaf.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/stpcpy.m4: Likewise.
* m4/stpncpy.m4: Likewise.
* m4/strcase.m4: Likewise.
* m4/strcasestr.m4: Likewise.
* m4/strchrnul.m4: Likewise.
* m4/strdup.m4: Likewise.
* m4/strerror.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/strerrorname_np.m4: Likewise.
* m4/strftime-fixes.m4: Likewise.
* m4/strncat.m4: Likewise.
* m4/strndup.m4: Likewise.
* m4/strnlen.m4: Likewise.
* m4/strpbrk.m4: Likewise.
* m4/strptime.m4: Likewise.
* m4/strsep.m4: Likewise.
* m4/strsignal.m4: Likewise.
* m4/strstr.m4: Likewise.
* m4/strtok_r.m4: Likewise.
* m4/strverscmp.m4: Likewise.
* m4/time_r.m4: Likewise.
* m4/time_rz.m4: Likewise.
* m4/timegm.m4: Likewise.
* m4/timespec_get.m4: Likewise.
* m4/tzset.m4: Likewise.
* modules/accept (configure.ac): Likewise.
* modules/bind (configure.ac): Likewise.
* modules/connect (configure.ac): Likewise.
* modules/flock (configure.ac): Likewise.
* modules/getpeername (configure.ac): Likewise.
* modules/getsockname (configure.ac): Likewise.
* modules/getsockopt (configure.ac): Likewise.
* modules/listen (configure.ac): Likewise.
* modules/recv (configure.ac): Likewise.
* modules/recvfrom (configure.ac): Likewise.
* modules/send (configure.ac): Likewise.
* modules/sendto (configure.ac): Likewise.
* modules/setsockopt (configure.ac): Likewise.
* modules/shutdown (configure.ac): Likewise.
* modules/socket (configure.ac): Likewise. Use the
gl_*_H_REQUIRE_DEFAULTS macros.
* modules/nonblocking (configure.ac): Use the gl_*_H_REQUIRE_DEFAULTS
and gl_MODULE_INDICATOR_INIT_VARIABLE macros.
* modules/sigpipe (configure.ac): Likewise.
* modules/windows-stat-override (configure.ac): Likewise.
* m4/nonblocking.m4: Update a comment.
* m4/sigpipe.m4: Likewise.
2021-04-11 Bruno Haible <bruno@clisp.org>
Rename GNULIB_OVERRIDES_CHAR16_T, GNULIB_OVERRIDES_CHAR32_T.
* GNULIBHEADERS_OVERRIDE_CHAR16_T: Renamed from
GNULIB_OVERRIDES_CHAR16_T.
* GNULIBHEADERS_OVERRIDE_CHAR32_T: Renamed from
GNULIB_OVERRIDES_CHAR32_T.
Rename GNULIB_OVERRIDES_WINT_T.
* GNULIBHEADERS_OVERRIDE_WINT_T: Renamed from GNULIB_OVERRIDES_WINT_T.
2021-04-11 Bruno Haible <bruno@clisp.org>
increment-serial: New program.
* build-aux/increment-serial: New file.
2021-04-11 Bruno Haible <bruno@clisp.org>
useless-if-before-free: Implement --version option according to GCS.
* build-aux/useless-if-before-free (copyright_year): New variable.
(GetOptions): Print also a short copyright and license notice and
author statement.
libtool-next-version: Implement --version option according to GCS.
* build-aux/libtool-next-version (scriptversion): New variable.
(func_version): Deduce the copyright year from it. Terminate sentences
with '.'.
gnupload: Implement --version option according to GCS.
* build-aux/gnupload (copyright_year, copyright): New variables.
(--version): Print also a short copyright and license notice.
git-version-gen: Implement --version option according to GCS.
* build-aux/git-version-gen (version): State the license. Use wording
from GCS.
bootstrap: Implement --version option according to GCS.
* build-aux/bootstrap (copyright_year, copyright): New variables.
(--version): New option processing.
announce-gen: Implement --version option according to GCS.
* build-aux/announce-gen (copyright_year): New variable.
(GetOptions): Print also a short copyright and license notice and
author statement.
2021-04-10 Bruno Haible <bruno@clisp.org>
Simplify GNULIB_* variable initializations.
* modules/gnulib-common.m4 (gl_MODULE_INDICATOR_INIT_VARIABLE): New
macro.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Use it.
* m4/ctype.m4 (gl_CTYPE_H_DEFAULTS): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Likewise.
* m4/fnmatch_h.m4 (gl_FNMATCH_H_DEFAULTS): Likewise.
* m4/glob_h.m4 (gl_GLOB_H_DEFAULTS): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H_DEFAULTS): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Likewise.
* m4/malloc_h.m4 (gl_MALLOC_H_DEFAULTS): Likewise.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Likewise.
* m4/monetary_h.m4 (gl_MONETARY_H_DEFAULTS): Likewise.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Likewise.
* m4/poll_h.m4 (gl_POLL_H_DEFAULTS): Likewise.
* m4/pthread_h.m4 (gl_PTHREAD_H_DEFAULTS): Likewise.
* m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Likewise.
* m4/sched_h.m4 (gl_SCHED_H_DEFAULTS): Likewise.
* m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Likewise.
* m4/sys_random_h.m4 (gl_SYS_RANDOM_H_DEFAULTS): Likewise.
* m4/sys_resource_h.m4 (gl_SYS_RESOURCE_H_DEFAULTS): Likewise.
* m4/sys_select_h.m4 (gl_SYS_SELECT_H_DEFAULTS): Likewise.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H_DEFAULTS): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H_DEFAULTS): Likewise.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H_DEFAULTS): Likewise.
* m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Likewise.
* m4/threads.m4 (gl_THREADS_H_DEFAULTS): Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Likewise.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
* m4/utime_h.m4 (gl_UTIME_H_DEFAULTS): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Likewise.
* m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Likewise.
2021-04-10 Paul Eggert <eggert@cs.ucla.edu>
realloc: fix undef typo
* lib/realloc.c: #undef realloc if config.h defines it.
This fixes a typo that I introduced in
2011-04-08T18:39:01Z!eggert@cs.ucla.edu.
Apparently nobody uses Gnulib realloc in that way?
2021-04-07 Bruno Haible <bruno@clisp.org>
execute tests: Avoid test failure in certain environments.
Reported by Dmitry V. Levin <ldv@altlinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00082.html>.
* tests/test-execute-main.c (main): Close file descriptors 3..19.
* tests/test-execute-child.c (main): Remove NetBSD workaround.
* modules/execute-tests (configure.ac): Test for close_range function.
2021-04-07 Paul Eggert <eggert@cs.ucla.edu>
utimens: fix confusing arg type in internal func
Although the old code was technically correct, this was accidental
and it confused a GCC 11 prerelease. Reported by Ondrej Dubaj in:
https://lists.gnu.org/r/bug-tar/2021-04/msg00000.html
* lib/utimens.c (update_timespec): Change arg type from ‘struct
timespec *[2]’ (pointer to array of 2 pointers to timespecs) to
‘struct timespec **’ (pointer to pointer to the first timespec in
an array of 2 timespecs). Although the old code happened to be
technically correct, it was misleading and confused Coverity.
And though the type ‘struct timespec (**)[2]’ (pointer to pointer
to array of 2 timespecs) would perhaps be more technically
correct, it would be almost as confusing and would require changes
elsewhere in this file; let’s quit while we’re ahead.
xalloc: simplify integer overflow test
* lib/xalloc.h (x2nrealloc): Simplify integer overflow detection.
This is easier to maintain, and (unlike the old code) exact.
2021-04-06 Paul Eggert <eggert@cs.ucla.edu>
group-member: minor tweak to omit a *
* lib/group-member.c: Include intprops.h.
(get_group_info): Use INT_MULTIPLY_WRAPV instead of
xalloc_oversized (which does a multiplication) followed by the
same multiplication. The code was OK as-is; this is just
conceptual simplification, possible now that we have xalloc_count_t.
* modules/group-member: Depend on intprops.
backupfile: less-aggressive buffer growth
* lib/backupfile.c: Include intprops.h.
(numbered_backup): Grow buffer by the usual 50%, not 100%.
This is easier to do now that we have xalloc_count_t.
* modules/backup-rename, modules/backupfile: Depend on intprops.
xalloc-oversized: export xalloc_count_t
* lib/xalloc-oversized.h (__xalloc_oversized, xalloc_oversized):
* lib/xmalloca.h (nmalloca):
Comment re restrictions on arg types.
* lib/xalloc-oversized.h (xalloc_count_t): Rename from
__xalloc_count_type; all uses changed. This publicizes the type.
2021-04-05 Paul Eggert <eggert@cs.ucla.edu>
xalloc: try to pacify gcc -Wsign-compare
Problem reported by Marc Nieper-Wißkirchen in:
https://lists.gnu.org/r/bug-gnulib/2021-04/msg00034.html
* lib/xmalloc.c (xpalloc): For odd platforms where SIZE_MAX < IDX_MAX,
use a tricky destination for INT_MULTIPLY_WRAPV instead of an
explicit comparison to SIZE_MAX. This should be more likely to
pacify gcc -Wsign-compare.
2021-04-05 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
hamt: Fix coding errors.
Reported by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00047.html>
after a Coverity run.
* lib/hamt.c (bucket_do_while, hamt_iterator): Add missing
derefencing operator and silence a bogus warning on uninitialized
variables.
* tests/test-hamt.c (test_general): Replace two errorneous
assignment operators with comparison operators.
2021-04-05 Fabrice Fontaine <fontaine.fabrice@gmail.com>
pthread-cond: Fix compilation error.
* lib/pthread-cond.c (pthread_cond_wait): Use tv.nsec instead of
tv.usec.
2021-04-04 Fabrice Fontaine <fontaine.fabrice@gmail.com>
pthread-cond: Fix wrong configure results when <pthread.h> is absent.
* m4/pthread-cond.m4 (gl_PTHREAD_COND): When <pthread.h> does not exist,
set HAVE_PTHREAD_COND_* to 0, not to 1.
2021-04-04 Bruno Haible <bruno@clisp.org>
backupfile, backup-rename: Trim dependencies.
* lib/backupfile.h: Add comment.
* lib/backupfile.c: Include <dirent.h>, for readdir() declaration.
* modules/backup-rename (Depends-on): Remove dirent-safer, fcntl. Add
fcntl-h.
* modules/backupfile (Depends-on): Likewise. Remove xalloc. Add
xalloc-die.
2021-04-04 Bruno Haible <bruno@clisp.org>
doc: Fix syntax error (regression from 2021-04-02).
* doc/posix-functions/strtol.texi: Put @item inside @itemize block.
2021-04-04 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
hamt: Document the module in the Gnulib manual.
Suggested by Bruno Haible in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00026.html>.
* doc/containers.texi: Add a subsection to section 15.11 Container
data types.
* lib/hamt.h: Improve documentation on how Hamt_entry is supposed
to be used.
2021-04-03 Paul Eggert <eggert@cs.ucla.edu>
savedir: avoid unlikely undefined behavior
* lib/savedir.c (streamsavedir): Prefer idx_to size_t where
either will do. Simplify reallocation of entries.
Use xpalloc to reallocate name_space, to avoid some unlikely
integer overflows.
quotearg: avoid undefined and/or O(N**2)
Avoid undefined and O(N**2) behavior in some very unlikely cases.
* lib/quotearg.c (quotearg_n_options): Document that N must
be less than MIN (INT_MAX, IDX_MAX), and add this to the
abort test; this also avoids a conditional branch.
Use xpalloc instead of xrealloc, to avoid O(N**2) behavior in
very-unlikely cases.
xgethostname: reorganize / simplify
xgethostname and xgetdomainname were essentially copies long
ago, but they’ve diverged. Bring them back together again
by implementing the (rarely used) latter in terms of the former.
And avoid some unnecessary realloc calls while we’re at it.
* lib/xgetdomainname.c: Rewrite from scratch so that it merely
includes xgethostname.c with a few preliminaries.
* lib/xgethostname.c: Generalize so that it can be included
from xgetdomainname.c.
(GETANAME, XGETANAME): New macros.
(INITIAL_HOSTNAME_LENGTH): Remove. No need for this parameter.
Use 100 instead, as few hostnames are longer than that.
(XGETANAME): Try getting the hostname into the stack first,
as that avoids a malloc call in the usual case.
Check for both POSIX-style truncation and SunOS 5.5 bug
in a cleaner way, by simply checking string length.
Don’t use x2realloc, which wastes time preserving buffer garbage;
use xpalloc with NULL instead. Don’t bother shrinking buffer
in the very rare case where the hostname is longer than sizeof
buf; it’s not worth the aggravation.
* modules/xgetdomainname (Depends-on): Remove free-posix, xalloc.
Add xgethostname.
2021-04-03 Bruno Haible <bruno@clisp.org>
*-list tests: Add more tests.
* tests/test-array_list.c (check_equals_by_forward_iteration,
check_equals_by_backward_iteration): New functions.
(main): Invoke them.
* tests/test-carray_list.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
list: Add operations first_node, last_node.
Reported by Marc Nieper-Wißkirchen in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00005.html>.
* lib/gl_list.h (gl_list_first_node, gl_list_last_node): New functions.
(struct gl_list_implementation): Add members first_node, last_node.
* lib/gl_array_list.c (gl_array_first_node, gl_array_last_node): New
functions.
(gl_array_list_implementation): Add the new operations.
* lib/gl_carray_list.c (gl_carray_first_node, gl_carray_last_node): New
functions.
(gl_carray_list_implementation): Add the new operations.
* lib/gl_anylinked_list2.h (gl_linked_first_node, gl_linked_last_node):
New functions.
* lib/gl_linked_list.c (gl_linked_list_implementation): Add the new
operations.
* lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation):
Likewise.
* lib/gl_anytree_list2.h (gl_tree_first_node, gl_tree_last_node): New
functions.
* lib/gl_avltree_list.c (gl_avltree_list_implementation): Add the new
operations.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation):
Likewise.
* lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Likewise.
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation):
Likewise.
* lib/gl_sublist.c (gl_sublist_first_node, gl_sublist_last_node): New
functions.
(gl_sublist_list_implementation): Add the new operations.
* lib/gl_list.hh (class gl_List): Add member functions first_node,
last_node.
* doc/containers.texi: Update table.
2021-04-03 Bruno Haible <bruno@clisp.org>
xalloc-die: Fix compilation error (regression from 2021-03-28).
* lib/xalloc.h: Don't include idx.h and xalloc-oversized.h if the module
'xalloc' is not in use.
* modules/xalloc-die (Depends-on): Remove xalloc-oversized.
2020-04-03 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
hamt: New module.
This module provides (persistent) hash array mapped tries.
* MODULES.html.sh: Add hamt.
* lib/hamt.c: New file.
* lib/hamt.h: New file.
* modules/hamt: New file.
* modules/hamt-tests: New file.
* tests/test-hamt.c: New file.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtoul, strtoll, strtoull: Fix compilation warning.
* lib/strtol.c (strtol): Undefine before defining as a macro.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtoll: Work around a bug on native Windows and Minix.
* lib/stdlib.in.h (strtoll): Override if REPLACE_STRTOLL is 1.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOLL.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Test whether strtoll works. Set
REPLACE_STRTOLL.
* modules/stdlib (Makefile.am): Substitute REPLACE_STRTOLL.
* modules/strtoll (configure.ac): Test REPLACE_STRTOLL.
* tests/test-strtoll.c (main): Add tests of hexadecimal integer syntax.
* doc/posix-functions/strtoll.texi: Mention the bug.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtol: Work around a bug on native Windows and Minix.
* lib/stdlib.in.h (strtol): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtol is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOL, HAVE_STRTOL,
REPLACE_STRTOL.
* m4/strtol.m4 (gl_FUNC_STRTOL): Require gl_STDLIB_H_DEFAULTS. Test
whether strtol works. Set REPLACE_STRTOL.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOL, HAVE_STRTOL,
REPLACE_STRTOL.
* modules/strtol (Status, Notice): Remove.
(Depends-on): Add stdlib.
(configure.ac): Test HAVE_STRTOL and REPLACE_STRTOL. Invoke
gl_STDLIB_MODULE_INDICATOR.
* tests/test-strtol.c (main): Add tests of hexadecimal integer syntax.
* doc/posix-functions/strtol.texi: Mention the bug.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtoull: Work around a bug on native Windows and Minix.
* lib/stdlib.in.h (strtoull): Override if REPLACE_STRTOULL is 1.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOULL.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Test whether strtoull works. Set
REPLACE_STRTOULL.
* modules/stdlib (Makefile.am): Substitute REPLACE_STRTOULL.
* modules/strtoull (configure.ac): Test REPLACE_STRTOULL.
* tests/test-strtoull.c (main): Add tests of hexadecimal integer syntax.
* doc/posix-functions/strtoull.texi: Mention the bug.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtoul: Work around a bug on native Windows and Minix.
Reported by Eric Blake <eblake@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00082.html>.
* lib/stdlib.in.h (strtoul): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtoul is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOUL, HAVE_STRTOUL,
REPLACE_STRTOUL.
* m4/strtoul.m4 (gl_FUNC_STRTOUL): Require gl_STDLIB_H_DEFAULTS. Test
whether strtoul works. Set REPLACE_STRTOUL.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOUL, HAVE_STRTOUL,
REPLACE_STRTOUL.
* modules/strtoul (Status, Notice): Remove.
(Depends-on): Add stdlib.
(configure.ac): Test HAVE_STRTOUL and REPLACE_STRTOUL. Invoke
gl_STDLIB_MODULE_INDICATOR.
* tests/test-strtoul.c (main): Add tests of hexadecimal integer syntax.
* doc/posix-functions/strtoul.texi: Mention the bug.
2021-04-02 Bruno Haible <bruno@clisp.org>
strtol, strtoul, strtoll, strtoull: Optimize.
* lib/strtol.c (GROUP_PARAM_PROTO): New macro.
(INTERNAL): Define differently if !USE_NUMBER_GROUPING.
(INTERNAL (strtol)): Define without 'int group' parameter if
!USE_NUMBER_GROUPING.
(strtol): Don't define if !USE_NUMBER_GROUPING.
2021-04-02 Bruno Haible <bruno@clisp.org>
strto*l: Don't pass invalid arguments to isspace, isalnum, toupper.
* lib/strtol.c (ISSPACE, ISALPHA, TOUPPER): Cast argument to
'unsigned char' before passing it to the functions isspace(), isalpha(),
toupper().
2021-04-02 Bruno Haible <bruno@clisp.org>
glob: Reject ~user syntax, when flag GLOB_TILDE_CHECK is given.
Reported and patch suggested by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00136.html>.
* lib/glob.c (__glob) [WINDOWS32]: If flag GLOB_TILDE_CHECK is given, do
error handling like when ~user is allowed by the user is unknown.
2021-03-31 Paul Eggert <eggert@cs.ucla.edu>
xalloc: delay setting size until success
* lib/xalloc.h (x2nrealloc): Don’t change *PN until after xrealloc
succeeds, in case xalloc_die or one of its callees or longjmp
targets uses *PN. Similar code in xpalloc already does this.
2021-03-28 Paul Eggert <eggert@cs.ucla.edu>
xalloc: new function xpalloc, from dfa
Move xpalloc from dfa.c to xmalloc.c and change it from static to
extern. The function is useful in other contexts; I’m about to
use it in coreutils.
* lib/dfa.c: Include idx.h, instead of rolling our own idx_t and
IDX_MAX. Do not include intprops.h; no longer needed.
(xpalloc): Move from here ...
* lib/xmalloc.c (xpalloc): ... to here, and make it extern.
Include intprops.h and minmax.h, needed by xpalloc.
* lib/xalloc.h: Include idx.h, for idx_t.
* modules/dfa (Depends-on): Add idx; remove intprops.
* modules/xalloc (Depends-on): Add idx, intprops, minmax.
2021-03-28 Bruno Haible <bruno@clisp.org>
linked-list tests: Add another test for SIGNAL_SAFE_LIST.
* tests/test-asyncsafe-linked_list-strong.c: Renamed from
tests/test-asyncsafe-linked_list.c.
* tests/test-asyncsafe-linked_list-strong.sh: Renamed from
tests/test-asyncsafe-linked_list.sh.
* tests/test-asyncsafe-linked_list-weak.c: New file, based on
tests/test-asyncsafe-linked_list.c.
* tests/test-asyncsafe-linked_list-weak.sh: New file, based on
tests/test-asyncsafe-linked_list.sh.
* modules/linked-list-tests (Files): Add
tests/test-asyncsafe-linked_list-weak.*,
tests/test-asyncsafe-linked_list-strong.*.
(Makefile.am): Arrange to test also
tests/test-asyncsafe-linked_list-weak.sh. Mark
test-asyncsafe-linked_list-weak.sh and
test-asyncsafe-linked_list-strong.sh as expected failures.
2021-03-27 Bruno Haible <bruno@clisp.org>
renameatu tests: Add unit test for bug found on macOS.
* tests/test-renameatu.c (main): Add test for identical rename with
RENAME_NOREPLACE.
2021-03-26 Bruno Haible <bruno@clisp.org>
unistdio/*-vasnprintf: Fix errno value (regression from yesterday).
* modules/unistdio/u8-vasnprintf (Depends-on): Add free-posix.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2021-03-26 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix memory leak (regression from yesterday).
* lib/vasnprintf.c (VASNPRINTF): Restore omitted CLEANUP invocation.
Some more simplifications of errno around free().
2021-03-26 Akim Demaille <akim@lrde.epita.fr>
fprintf-posix: fix typo
* modules/fprintf-posix (Depends-on): Fix typo.
2021-03-25 Paul Eggert <eggert@cs.ucla.edu>
free-posix: use more often in other modules
This lets us simplify cleanup code that calls ‘free’.
* lib/amemxfrm.c (amemxfrm):
* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
* lib/astrxfrm.c (astrxfrm):
* lib/dprintf.c (dprintf):
* lib/execute.c (execute):
* lib/execvpe.c (execvpe):
* lib/fchdir.c (get_name):
* lib/file-has-acl.c (file_has_acl):
* lib/fprintf.c (fprintf):
* lib/getcwd-lgpl.c (rpl_getcwd):
* lib/getgroups.c (rpl_getgroups):
* lib/link.c (link, rpl_link):
* lib/linkat.c (link_immediate, link_follow, linkat_follow):
* lib/localename.c (newlocale, duplocale):
* lib/mgetgroups.c (mgetgroups):
* lib/mountlist.c (read_file_system_list):
* lib/pipe-filter-gi.c (pipe_filter_gi_close):
* lib/putenv.c (_unsetenv, putenv):
* lib/read-file.c (read_file):
* lib/rename.c (rpl_rename):
* lib/savedir.c (streamsavedir, savedir):
* lib/spawni.c (do_open, __spawni):
* lib/spawn-pipe.c (create_pipe):
* lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv):
* lib/striconveh.c (mem_cd_iconveh_internal, str_cd_iconveh)
(mem_iconveh, str_iconveh):
* lib/supersede.c (open_supersede, close_supersede):
* lib/vasnprintf.c (VASNPRINTF):
* lib/vdprintf.c (vdprintf):
* lib/vfprintf.c (vfprintf):
* lib/wcscoll-impl.h (wcscoll):
* lib/wcsxfrm-impl.h (wcsxfrm):
* lib/xgetdomainname.c (xgetdomainname):
* lib/xgethostname.c (xgethostname):
Simplify by assuming that ‘free’ preserves errno.
* lib/localename.c: Do not include errno.h.
* modules/amemxfrm, modules/areadlink-with-size:
* modules/areadlinkat-with-size, modules/astrxfrm:
* modules/c-vasnprintf, modules/dprintf, modules/execute:
* modules/execvpe, modules/fchdir, modules/file-has-acl:
* modules/fprintf-posix, modules/getcwd-lgpl, modules/getgroups:
* modules/link, modules/linkat, modules/localename:
* modules/mgetgroups, modules/mountlist, modules/pipe-filter-gi:
* modules/posix_spawn-internal, modules/putenv, modules/read-file:
* modules/rename, modules/savedir, modules/spawn-pipe:
* modules/striconv, modules/striconveh, modules/supersede:
* modules/vasnprintf, modules/vdprintf, modules/vfprintf-posix:
* modules/wcscoll, modules/wcsxfrm, modules/xgetdomainname:
* modules/xgethostname:
Depend on free-posix.
2021-03-24 Paul Eggert <eggert@cs.ucla.edu>
renameatu: work around macOS 11.2 renameatx_np bug
* lib/renameatu.c (renameatu) [RENAME_EXCL]: Use lstatat test here too.
2021-03-22 Bruno Haible <bruno@clisp.org>
clean-temp-simple: Fix a rare memory leak.
* lib/clean-temp-simple.c (register_temporary_file): Fix cleanup code.
2021-03-22 Bruno Haible <bruno@clisp.org>
clean-temp-simple: Relicense under LGPLv2+.
* modules/clean-temp-simple (License): Change to LGPLv2+.
2021-03-22 Bruno Haible <bruno@clisp.org>
clean-temp-simple: Remove dependency upon xalloc, xalloc-die, xlist.
* lib/clean-temp-private.h (clean_temp_init): Change return type to
'int'.
* lib/clean-temp-simple.h (register_temporary_file): Change return type
to 'int'.
* lib/clean-temp-simple.c: Don't include xalloc.h, gl_xlist.h. Include
gl_list.h instead.
(init_failed): New variable.
(do_clean_temp_init): Set it.
(clean_temp_init): Return an error indicator.
(register_temporary_file): Invoke gl_list_nx_create_empty instead of
gl_list_create_empty. Invoke strdup instead of xstrdup. Invoke
gl_list_nx_add_first instead of gl_list_add_first. Return an error
indicator.
* lib/clean-temp.c (create_temp_dir, gen_register_open_temp): Call
xalloc_die() if clean_temp_init or register_temporary_file failed.
* modules/clean-temp-simple (Depends-on): Remove xalloc, xalloc-die,
xlist.
2021-03-22 Bruno Haible <bruno@clisp.org>
clean-temp-simple: New module.
* lib/clean-temp-simple.h: New file, based on lib/clean-temp.h.
* lib/clean-temp-private.h: New file, based on lib/clean-temp.c.
* lib/clean-temp-simple.c: New file, based on lib/clean-temp.c.
* lib/clean-temp.h: Include clean-temp-simple.h.
(register_temporary_file, unregister_temporary_file,
cleanup_temporary_file): Remove declarations.
* lib/clean-temp.c: Don't include <limits.h>, <stdint.h>. Include
<signal.h>, <stdio.h>, clean-temp-simple.h, clean-temp-private.h.
(file_cleanup_list_lock, file_cleanup_list): Moved to
clean-temp-simple.c.
(struct tempdir, dir_cleanup_list, struct closeable_fd, descriptors):
Moved to clean-temp-private.h.
(string_equals, SIZE_BITS, string_hash, fatal_signal_set,
init_fatal_signal_set, asyncsafe_close): Moved to clean-temp-simple.c.
(asyncsafe_fclose_variant): Use get_fatal_signal_set() here.
(cleanup_action, do_init_clean_temp, clean_temp_once, init_clean_temp,
register_temporary_file, unregister_temporary_file, do_unlink,
cleanup_temporary_file): Moved to clean-temp-simple.c.
(create_temp_dir, cleanup_temp_file, cleanup_temp_dir_contents,
gen_register_open_temp, close_temp): Update for changed function names.
(fclose_variant_temp): Don't call init_fatal_signal_set().
* modules/clean-temp-simple: New file, based on modules/clean-temp.
* modules/clean-temp (Depends-on): Add clean-temp-simple, list. Remove
stdint.
(configure.ac): Don't define SIGNAL_SAFE_LIST here.
2021-03-22 Bruno Haible <bruno@clisp.org>
error: Relicense under LGPLv2+.
Pino Toscano's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00109.html>.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00110.html>.
* modules/error (License): Change to LGPLv2+.
2021-03-22 Bruno Haible <bruno@clisp.org>
getprogname: Relicense under LGPLv2+.
Pino Toscano's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00109.html>.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00110.html>.
Jim Meyering's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00107.html>.
Gisle Vanem's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00115.html>.
Daniel Richard G's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00112.html>.
John David Anglin's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00108.html>.
Benji Wiebe's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00114.html>.
* modules/getprogname (License): Change to LGPLv2+.
2021-03-22 Bruno Haible <bruno@clisp.org>
fatal-signal: Relicense under LGPLv2+.
Eric Blake's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00111.html>.
* modules/fatal-signal (License): Change to LGPLv2+.
2021-03-22 Bruno Haible <bruno@clisp.org>
doc: Mention an open glibc bug.
* doc/posix-functions/mbrtowc.texi: Mention the possible out-of-range
wchar_t values returned by this function on glibc.
* doc/posix-functions/mbtowc.texi: Likewise.
2021-03-22 Benno Schulenberg <bensberg@telfort.nl> (tiny change)
mbrtowc: Remove a redundant condition.
* lib/mbrtowc-impl-utf8.h: There is no need to check for c == 0xf4
when !(c < 0xf4), as ten lines earlier c <= 0xf4 was established.
2021-03-22 Bruno Haible <bruno@clisp.org>
linkedhash-list: Relicense under LGPLv2+.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00102.html>.
* modules/linkedhash-list (License): Change to LGPLv2+.
2021-03-21 Bruno Haible <bruno@clisp.org>
fatal-signal: Remove dependency upon xalloc.
* lib/fatal-signal.h (at_fatal_signal): Change return type to 'int'.
* lib/fatal-signal.c: Don't include xalloc.h.
(at_fatal_signal): Return an error indicator.
* modules/fatal-signal (Depends-on): Remove xalloc.
* NEWS: Mention the change.
* lib/term-style-control.c: Include xalloc.h.
(ensure_other_signal_handlers): Test return value of at_fatal_signal.
* lib/clean-temp.c (do_init_clean_temp): Likewise.
* lib/wait-process.c (register_slave_subprocess): Likewise.
* modules/term-style-control (Depends-on): Add xalloc-die.
* modules/clean-temp (Depends-on): Likewise.
* modules/wait-process (Depends-on): Likewise.
2021-03-21 Paul Eggert <eggert@cs.ucla.edu>
diacrit: remove
* MODULES.html.sh (func_all_modules), NEWS: Remove diacrit.
* lib/diacrit.c, lib/diacrit.h, modules/diacrit: Remove.
tests: fix signed overflow issues
* tests/test-dynarray.c (value_at): Avoid undefined behavior
in signed integer multiplication.
* tests/test-scratch-buffer.c (byte_at): Likewise, for the
theoretically-possible case where size_t is narrower than int.
2021-03-21 Bruno Haible <bruno@clisp.org>
doc: More updates.
* doc/glibc-functions/sethostname.texi: Update regarding macOS.
* doc/glibc-functions/sethostname.texi: List the affected platforms.
doc: Update for macOS 11.1.
* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Update cross-compilation
guess.
2021-03-21 Bruno Haible <bruno@clisp.org>
ftell: Document bug in macOS >= 10.15.
* doc/posix-functions/ftell.texi: Mention the macOS bug.
2021-03-20 Bruno Haible <bruno@clisp.org>
ftello: Work around bug in macOS >= 10.15.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00002.html>.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): On macOS, don't define
FUNC_UNGETC_BROKEN. Instead, set gl_ftello_broken_after_ungetc to yes.
* m4/ftello.m4 (gl_FUNC_FTELLO): Invoke gl_FUNC_UNGETC_WORKS, and
arrange to provide the workaround if ftello is broken after ungetc.
* lib/ftello.c: Include <errno.h>, intprops.h.
(ftello) [FTELLO_BROKEN_AFTER_UNGETC]: Implement from scratch.
* modules/ftello (Files): Add m4/ungetc.m4.
(Depends-on): Add intprops.
* doc/posix-functions/ftello.texi: Mention the macOS bug.
2021-03-20 Bruno Haible <bruno@clisp.org>
math C++ tests: Fix compilation error on macOS 11.2.
* lib/math.in.h (isnan): For clang >= 12 on macOS, declare 'rpl_isnan',
not 'isnan'.
2021-03-18 Bruno Haible <bruno@clisp.org>
simple-atomic tests: Fix compilation error on Solaris 10.
Reported by Tom G. Christensen <tgc@jupiterrise.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00085.html>.
* tests/test-simple-atomic.c (yield): Define only after all #includes.
2021-03-18 Bruno Haible <bruno@clisp.org>
simple-atomic: Fix compilation error on Solaris 10/x86_64 with cc.
* lib/simple-atomic.c (atomic_compare_and_swap_ptr): Correct asm
instruction.
2021-03-18 Paul Eggert <eggert@cs.ucla.edu>
argmatch: fix testing typo
Problem and fix reported by Gisle Vanem in:
https://lists.gnu.org/r/bug-gnulib/2021-03/msg00083.html
* lib/argmatch.c (main) [TEST]: Fix address-of typo.
2021-03-14 Paul Eggert <eggert@cs.ucla.edu>
intprops: improve commentary
* lib/intprops.h: Improve comments about promotion etc.
2021-03-14 Bruno Haible <bruno@clisp.org>
time_rz: Put reference documentation into the .h file.
* lib/time.in.h (timezone_t, tzalloc, tzfree, localtime_rz, mktime_z):
Add comments, based on modules/time_rz.
* modules/time_rz (Comment): Remove section.
2021-03-14 Bruno Haible <bruno@clisp.org>
parse-datetime tests: Avoid a test failure on NetBSD.
Reported by Thomas Klausner <tk@giga.or.at> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00069.html>.
* tests/test-parse-datetime.c (main): Skip two tests on NetBSD.
2021-03-10 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port to DragonFlyBSD 5.9
DragonFlyBSD defines __nonnull incompatibly with glibc,
so avoid the use of __nonnull in Gnulib code.
Problem reported by Gavin Smith in:
https://lists.gnu.org/r/bug-gnulib/2021-03/msg00066.html
* lib/cdefs.h (__attribute_nonnull__): Rename from __nonnull.
All uses in Gnulib changed. There should be no need to change
glibc code that is not shared with Gnulib.
(__nonnull): New macro, defined in terms of __attribute_nonnull__,
and which can be used in glibc code that is not shared with Gnulib.
2021-03-07 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: modernize documentation
Problem reported by Reuben Thomas in:
https://lists.gnu.org/r/bug-gnulib/2021-03/msg00046.html
* doc/manywarnings.texi (manywarnings): Update in
the light of recent changes to the manywarnings module.
2021-03-07 Bruno Haible <bruno@clisp.org>
sysexits: Fix for Haiku.
* lib/sysexits.in.h: Don't assume that <sysexits.h>, when it exists,
defines anything.
* doc/glibc-headers/sysexits.texi: Mention the Haiku bug.
2021-03-07 Bruno Haible <bruno@clisp.org>
Rename GNULIB_WCHAR_SINGLE to GNULIB_WCHAR_SINGLE_LOCALE.
* lib/lc-charset-dispatch.c: Test GNULIB_WCHAR_SINGLE_LOCALE instead of
GNULIB_WCHAR_SINGLE.
* lib/wcwidth.c: Likewise.
* tests/test-wcwidth.c: Likewise.
* doc/multithread.texi: Document GNULIB_WCHAR_SINGLE_LOCALE instead of
GNULIB_WCHAR_SINGLE.
* NEWS: Document the change.
2021-03-06 Bruno Haible <bruno@clisp.org>
mbrtowc: Allow locking optimization independently of 'unlocked-io'.
* lib/mbtowc-lock.h: Test GNULIB_MBRTOWC_SINGLE_THREAD instead of
USE_UNLOCKED_IO.
* doc/multithread.texi: Document GNULIB_MBRTOWC_SINGLE_THREAD.
2021-03-06 Bruno Haible <bruno@clisp.org>
regex: Allow locking optimization independently of 'unlocked-io'.
* lib/regex_internal.h: Test GNULIB_REGEX_SINGLE_THREAD instead of
USE_UNLOCKED_IO.
* doc/multithread.texi: Document GNULIB_REGEX_SINGLE_THREAD.
2021-03-06 Bruno Haible <bruno@clisp.org>
exclude: Allow stdio optimization independently of 'unlocked-io'.
* lib/exclude.c: Test GNULIB_EXCLUDE_SINGLE_THREAD instead of
USE_UNLOCKED_IO.
* modules/exclude (Depends-on): Add unlocked-io-internal.
* doc/multithread.texi: Document GNULIB_EXCLUDE_SINGLE_THREAD.
2021-03-06 Bruno Haible <bruno@clisp.org>
readutmp: Optimize stdio accesses.
* lib/readutmp.c: Include unlocked-io.h unconditionally.
* modules/readutmp (Depends-on): Add unlocked-io-internal.
2021-03-06 Bruno Haible <bruno@clisp.org>
mountlist: Optimize stdio accesses.
* lib/mountlist.c: Include unlocked-io.h unconditionally.
* modules/mountlist (Depends-on): Add unlocked-io-internal.
2021-03-06 Bruno Haible <bruno@clisp.org>
getusershell: Optimize stdio accesses when possible.
* lib/getusershell.c: Test GNULIB_GETUSERSHELL_SINGLE_THREAD instead of
USE_UNLOCKED_IO.
* modules/getusershell (Depends-on): Add unlocked-io-internal.
* doc/multithread.texi: Document GNULIB_GETUSERSHELL_SINGLE_THREAD.
2021-03-06 Bruno Haible <bruno@clisp.org>
unlocked-io-internal: New module.
* m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO): Don't define
USE_UNLOCKED_IO here.
* modules/unlocked-io-internal: New file, based on modules/unlocked-io.
* modules/unlocked-io (Description): Clarify.
(Files, Depends-on): Just use the unlocked-io-internal module.
(configure.ac): Define GNULIB_STDIO_SINGLE_THREAD and USE_UNLOCKED_IO
here.
* doc/multithread.texi: Clarify when the 'unlocked-io' module can be
used.
2021-03-06 Bruno Haible <bruno@clisp.org>
posixtm: Remove unused includes.
* lib/posixtm.c: Don't include <stdio.h>, <sys/types.h>, unlocked-io.h.
2021-03-06 Bruno Haible <bruno@clisp.org>
dynarray: Add tests.
* tests/test-dynarray.c: New file.
* modules/dynarray-tests: New file.
dynarray: Make the module usable on its own.
* lib/dynarray.h: Document the exported API. Comments taken from
lib/malloc/dynarray-skeleton.c and lib/malloc/dynarray.h.
Distinguish an internal include from an include for instantiation.
In the latter case, include <libc-config.h> and
<malloc/dynarray-skeleton.c>.
* modules/dynarray (Depends-on): Add intprops.
(Include): Reduce to just "dynarray.h".
2021-03-06 Bruno Haible <bruno@clisp.org>
scratch_buffer: Add comment.
* lib/scratch_buffer.h: Add comment.
2021-03-06 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime2: fix licensing
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2021-03/msg00017.html
* gnulib-tool (func_get_license): Treat parse-datetime2
(actually, anything starting with "parse-datetime")
like parse-datetime, as far as licenses go.
2021-03-06 Bruno Haible <bruno@clisp.org>
free-posix: Update documentation.
* doc/posix-functions/free.texi: Add platform details.
2021-03-06 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.33.
* doc/glibc-functions/mallinfo2.texi: New file.
* doc/gnulib.texi: Include it.
(Glibc sys/vtimes.h): Remove section.
* doc/glibc-functions/vtimes.texi: Remove file.
* doc/pastposix-functions/h_errno.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2021-03-04 Bruno Haible <bruno@clisp.org>
stddef: Generalize tcc workaround to other compilers.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00027.html>.
* lib/stddef.in.h: Undefine the __need_* macros with all compilers.
* doc/posix-headers/stddef.texi: Mention that the TinyCC bug also exists
on macOS.
2021-03-04 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to tcc + glibc
* lib/stdalign.in.h (_Alignas): Do not define using __attribute__
if __attribute__ is defined as a macro, as __attribute__ surely a
no-op in that case and this is an area where __attribute__ cannot
simply be ignored.
* m4/stdalign.m4 (gl_STDALIGN_H): Include <stdint.h> so that
it #defines __attribute__(x) to nothing on glibc-based systems
when non-GNU-C-compatible compilers are used.
This exposes a bug in Tiny C Compiler 0.9.27’s implementation
of _Alignas on glibc platforms.
2021-03-03 Bruno Haible <bruno@clisp.org>
asyncsafe-spin, simple-atomic: Add support for tcc/x86.
* lib/asyncsafe-spin.c (memory_barrier): With tcc/x86, don't use the
'mfence' instruction.
* lib/simple-atomic.c (memory_barrier): Likewise.
asyncsafe-spin, simple-atomic: Add support for tcc.
* lib/asyncsafe-spin.c (memory_barrier, atomic_compare_and_swap): On
i386 and x86_64, treat tcc like older GCC or clang.
* lib/simple-atomic.c (memory_barrier, atomic_compare_and_swap,
atomic_compare_and_swap_ptr): Likewise.
2021-03-02 Bruno Haible <bruno@clisp.org>
stddef: Work around an interoperability problem of tcc with glibc.
Reported by Luca Saiu <positron@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00011.html>.
* lib/stddef.in.h [__TINYC__]: In case of the special invocation
convention, undefine the macros that TinyCC's <stddef.h> should undefine
but doesn't.
* doc/posix-headers/stddef.texi: Mention the TinyCC bug.
2021-03-02 Paul Eggert <eggert@cs.ucla.edu>
mbrtowc: port to AIX 7.1 with xlc 12.1
Fix a problem with locks when building GNU Tar (Savannah commit
55f2a0772e08b9febac3ac0de5cb048d4c60d2f5) on AIX 7.1 with IBM XL
C/C++ V12.1 using ‘./configure CC=xlc’. The link fails due to
missing definitions of pthread_mutex_lock and
pthread_mutex_unlock. GNU Tar uses unlocked-io and so
should not need to worry about multithreading or locks.
* lib/mbtowc-lock.h (mbtowc_with_lock) [USE_UNLOCKED_IO]:
Don’t bother with locks, since this app is single-threaded.
There may be similar linking problems with lib/nl_langinfo.c and
lib/setlocale_null.c but my GNU Tar build didn’t run into them, so
I left them alone for now.
2021-03-01 Paul Eggert <eggert@cs.ucla.edu>
unlocked-io: do not redefine getc_unlocked etc.
I ran into this problem on AIX 7.1 with GNU Tar, which
enables visibility of getc_unlocked etc. after testing
whether they’re declared, causing argp-namefrob.h and
unlocked-io.h to redefine the macros.
* lib/argp-namefrob.h, lib/unlocked-io.h:
(clearerr_unlocked, feof_unlocked ferror_unlocked)
(fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked)
(fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked)
(putc_unlocked, putchar_unlocked): Do not define if already defined.
parse-datetime2: new module
This splits the old parse-datetime into two parts; the
first is parse-datetime2 which supports all the new bells
and whistles, the second is parse-datetime, which reverts to
its original intent. This avoids some bogus diagnostics
when build GNU Tar with gcc -flto -fanalyze and
with --enable-gcc-warnings. And it slims down the
executable a bit.
* NEWS: Mention this.
* lib/parse-datetime.y (parser_control) [!GNULIB_PARSE_DATETIME2]:
Omit parse_datetime_debug member.
(debugging): New function. Use it everywhere the old code
would load parse_datetime_debug.
(parse_datetime_body): New static function, with the body
of the old parse_datetime2. Set pc.parse_datetime_debug
only if GNULIB_PARSE_DATETIME2.
(parse_datetime2, parse_datetime): Use this new function.
(parse_datetime2) [!GNULIB_PARSE_DATETIME2]: Remove.
* modules/parse-datetime2: New file.
2021-02-27 Bruno Haible <bruno@clisp.org>
string-buffer: Fixes.
* modules/string-buffer (License): Change to LGPL.
* tests/test-string-buffer.c (main): Add another sb_appendf call, that
is more likely to fail.
2021-02-25 Bernhard Voelker <mail@bernhard-voelker.de>
gitlog-to-changelog: output SHA in "empty commit message" warning
* build-aux/gitlog-to-changelog: Add $sha to above warning diagnostic.
2021-02-24 Paul Eggert <eggert@cs.ucla.edu>
glob: include libc-config.h in a more-standard way
Inspired by Tom Tromey’s report for RHEL 6 in:
https://lists.gnu.org/r/bug-gnulib/2021-02/msg00088.html
* lib/glob.c [!_LIBC]: Include libc-config.h, not just config.h
* lib/glob.in.h: Include libc-config.h only if needed.
2021-02-21 Bruno Haible <bruno@clisp.org>
string-buffer: Add tests.
* tests/test-string-buffer.c: New file.
* modules/string-buffer-tests: New file.
string-buffer: New module.
* lib/string-buffer.h: New file.
* lib/string-buffer.c: New file.
* modules/string-buffer: New file.
* doc/posix-functions/open_memstream.texi: Mention the new module.
2021-02-21 Bruno Haible <bruno@clisp.org>
scratch_buffer: Document the exported API.
* lib/scratch_buffer.h: Add comments, taken from
lib/malloc/scratch_buffer.h.
2021-02-21 Bruno Haible <bruno@clisp.org>
DEPENDENCIES: Update.
* DEPENDENCIES: Require GCC >= 3.1. Tell where to find working GNU m4
tarballs. Mention awk. Point to pre-built packages for gettext, bison,
gperf, texinfo.
2021-02-20 Bruno Haible <bruno@clisp.org>
parse-datetime: Fix comment.
* modules/parse-datetime (Makefile.am): Fix comment.
2021-02-16 Bruno Haible <bruno@clisp.org>
passfd: Fix test failure on FreeBSD >= 12 and NetBSD in 64-bit mode.
* lib/passfd.c (recvfd): Use the CMSG_SPACE macro to compute the value
for msg_controllen.
2021-02-16 Paul Eggert <eggert@cs.ucla.edu>
Port better to macOS Mojave
Problem reported by Tom Shields in:
https://lists.gnu.org/r/bug-gnulib/2021-02/msg00064.html
* config/srclist.txt: Comment out dynarray_finalize.c.
* lib/dynarray.h (__libc_dynarray_at_failure): Don’t include
libc-config.h here, as that’s the includer’s responsibility.
* lib/malloc/dynarray_at_failure.c:
* lib/malloc/dynarray_emplace_enlarge.c:
* lib/malloc/dynarray_finalize.c:
* lib/malloc/dynarray_resize.c:
* lib/malloc/dynarray_resize_clear.c:
If _LIBC is not defined, include libc-config.h.
2021-02-15 Bruno Haible <bruno@clisp.org>
linked-list test: Add test for SIGNAL_SAFE_LIST. (It currently fails.)
* tests/test-asyncsafe-linked_list.sh: New file.
* tests/test-asyncsafe-linked_list.c: New file.
* modules/linked-list-tests (Files): Add them.
(Depends-on): Add thread, yield, nanosleep, sigaction, sigprocmask.
(Makefile.am): Arrange to compile test-asyncsafe-linked_list.c and run
test-asyncsafe-linked_list.sh.
2021-02-14 Bruno Haible <bruno@clisp.org>
simple-atomic: Add tests.
* tests/test-simple-atomic.c: New file.
* modules/simple-atomic-tests: New file.
simple-atomic: New module.
* lib/simple-atomic.h: New file.
* lib/simple-atomic.c: New file, based on lib/asyncsafe-spin.c.
* modules/simple-atomic: New file.
2021-02-14 Bruno Haible <bruno@clisp.org>
Fix distinction of 32-bit/64-bit mode with xlc 13.1.3 on AIX.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI, gl_HOST_CPU_C_ABI_32BIT):
Test __LP64__ instead of _ARCH_PPC64.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise.
* lib/stddef.in.h: Likewise.
2021-02-13 Ozkan Sezer <sezeroz@gmail.com>
lib-symbol-visibility: Make it work with -Wmissing-prototypes.
* m4/visibility.m4 (gl_VISIBILITY): Avoid error from simultaneous use of
-Wmissing-prototypes and -Werror.
2021-02-08 Bruno Haible <bruno@clisp.org>
stddef: Fix test-stddef compilation error on MidnightBSD/x86.
* lib/stddef.in.h (_GL_STDDEF_ALIGNAS, rpl_max_align_t, max_align_t):
Don't ignore HAVE_MAX_ALIGN_T if the compiler is clang.
2021-02-08 Bruno Haible <bruno@clisp.org>
Document non-standard prototypes on MidnightBSD.
* doc/posix-functions/initstate.texi: Mention different prototype on
MidnightBSD 2.0.
* doc/posix-functions/srandom.texi: Likewise.
* doc/posix-functions/getlogin_r.texi: Likewise.
* doc/glibc-functions/sethostname.texi: Likewise.
2021-02-08 Bruno Haible <bruno@clisp.org>
posixtm tests: Fix warnings seen on MidnightBSD/x86.
* tests/test-posixtm.c (main): Convert two 'time_t' values to 'long' for
printing.
2021-02-07 Bruno Haible <bruno@clisp.org>
Add cross-compilation guesses for MidnightBSD.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): When cross-compiling, use the
result from native compilation.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
* m4/mprotect.m4 (gl_FUNC_MPROTECT_WORKS): Likewise.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE): Likewise.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE,
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): Likewise.
* m4/strfmon_l.m4 (gl_FUNC_STRFMON_L): Likewise.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Use predetermined
result on MidnightBSD.
2021-02-07 Bruno Haible <bruno@clisp.org>
threadlib: Add support for MidnightBSD.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS, gl_THREADLIB_BODY): On MidnightBSD,
use the same test as on FreeBSD.
2021-02-07 Bruno Haible <bruno@clisp.org>
host-os: Add support for MidnightBSD.
* m4/host-os.m4 (gl_HOST_OS): On MidnightBSD, set HOST_OPERATING_SYSTEM
to "MidnightBSD", not "Midnightbsd".
2021-02-07 Bruno Haible <bruno@clisp.org>
c-stack: Adjust for MidnightBSD.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): On MidnightBSD,
set FAULT_YIELDS_SIGBUS.
2021-02-07 Bruno Haible <bruno@clisp.org>
relocatable-prog: Add support for MidnightBSD.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use the ELF $ORIGIN trick
also on MidnightBSD >= 1.1.
* build-aux/config.libpath: Treat MidnightBSD like FreeBSD.
* build-aux/reloc-ldflags: Likewise.
2021-02-07 Bruno Haible <bruno@clisp.org>
havelib: Add support for MidnightBSD.
* build-aux/config.rpath: Treat MidnightBSD like FreeBSD >= 4.
2021-02-07 Bruno Haible <bruno@clisp.org>
wcwidth: Document MidnightBSD bug.
* doc/posix-functions/wcwidth.texi: Mention MidnightBSD as an affected
platform.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Update comments.
2021-02-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Document MidnightBSD bug.
* doc/posix-functions/pthread_sigmask.texi: Mention MidnightBSD as an
affected platform.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update
cross-compilation guess accordingly.
2021-02-07 Bruno Haible <bruno@clisp.org>
immutable: Avoid test failures on MidnightBSD.
* tests/test-immutable.c (install_segv_handler): On FreeBSD, install the
handler also for SIGBUS.
2021-02-07 Bruno Haible <bruno@clisp.org>
c32is*: Avoid test failures on MidnightBSD.
* tests/test-c32isalnum.c (main): On FreeBSD, disable tests that fail on
MidnightBSD 1.1.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isblank.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
2021-02-05 Paul Eggert <eggert@cs.ucla.edu>
regex: fix comment location
* lib/regexec.c (update_regs): Move comment.
regex-tests: add bug 11053 test
* tests/test-regex.c (main): New test case for glibc bug 11053.
regex: debug check for set member duplicates
* lib/regex_internal.c (re_node_set_insert): Add a DEBUG_ASSERT
that would have caught some recently-fixed performance bugs
that caused sets to contain duplicate members.
regex: fix longstanding backref match bug
This fixes a longstanding glibc bug concerning backreferences
<https://sourceware.org/11053> (2009-12-04).
* lib/regexec.c (proceed_next_node, push_fail_stack)
(pop_fail_stack): Push and pop the previous registers
as well as the current ones. All callers changed.
(set_regs): Also pop if CUR_NODE has already been checked,
so that it does not get added as a duplicate set entry.
(update_regs): Fix comment location.
* tests/test-regex.c (tests): New constant.
(bug_regex11): New test function.
(main): Bump alarm value. Call new test function.
regex: avoid duplicate in espilon closure
* lib/regcomp.c (calc_eclosure_iter): Insert NODE into epsilon
closure first rather than last. Otherwise, the epsilon closure
might contain a duplicate of NODE.
regex-tests: fix typo
* tests/test-regex.c (main): Fix typo that would have caused an
old test case to report incorrect values on failure.
regex: make it easier to merge into glibc
* lib/regex_internal.h [_LIBC]: Do not include Gnulib’s dynarray.h.
regex: minor refactoring
* lib/regexec.c (proceed_next_node): Use more-local decls.
regex: avoid undefined behavior
* lib/regexec.c (pop_fail_stack): If the stack is empty, return -1
instead of indulging in undefined behavior. This simplifies
callers, and avoids undefined behavior in some cases (see glibc
bug 11053, though this change does not fix that overall bug).
regex: improve comments
* lib/regexec.c: Add and correct comments about return values.
2021-01-31 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Tweak today's patch.
* build-aux/install-reloc (func_create_wrapper): Clean up free.o.
2021-01-31 Bruno Haible <bruno@clisp.org>
fmaf: Document QEMU bug.
* doc/posix-functions/fmaf.texi: Add note about QEMU bug.
2021-01-31 Bruno Haible <bruno@clisp.org>
remainderl: Work around musl libc bug.
* doc/posix-functions/remainderl.texi: Document musl libc bug.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): Add more tests. Update
cross compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
log2l: Work around musl libc bugs.
* doc/posix-functions/log2l.texi: Document musl libc bugs.
* m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Add more tests. Update cross
compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
log1pl: Work around musl libc bug.
* doc/posix-functions/log1pl.texi: Document musl libc bug.
* m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): New macro.
(gl_FUNC_LOG1PL): Invoke it.
2021-01-31 Bruno Haible <bruno@clisp.org>
log10l: Document musl libc bug.
* doc/posix-functions/log10l.texi: Document musl libc bug.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Update comment and cross
compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
logl: Document musl libc bug.
* doc/posix-functions/logl.texi: Document musl libc bug.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Update comment and cross
compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
expm1l: Document musl libc bug.
* doc/posix-functions/expm1l.texi: Document musl libc bug.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Update comment and cross
compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
expl: Document musl libc bug.
* doc/posix-functions/expl.texi: Document musl libc bug.
* m4/expl.m4 (gl_FUNC_EXPL): Update comment and cross
compilation guess.
2021-01-31 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Update after recent changes.
* lib/relocwrapper.c: Update comments.
* modules/relocatable-prog-wrapper (Files): Add lib/scratch_buffer.h,
lib/malloc/scratch_buffer*, lib/malloc.c, lib/realloc.c, lib/free.c,
lib/mempcpy.c, lib/rawmemchr.c, m4/lstat.m4. Remove lib/lstat.c.
(Depends-on): Add c99, eloop-threshold, fcntl-h, idx, intprops,
libc-config, stddef, sys_stat. Remove alloca-opt.
(configure.ac): Invoke gl_FUNC_MALLOC_POSIX, gl_FUNC_REALLOC_POSIX,
gl_FUNC_FREE, gl_FUNC_MEMPCPY, gl_FUNC_RAWMEMCHR.
* lib/canonicalize-lgpl.c (memmove): Undefine in the relocwrapper.
* build-aux/install-reloc (func_create_wrapper): Compile also
malloc/scratch_buffer_*.c, malloc.c, realloc.c, free.c, mempcpy.c,
rawmemchr.c. Don't compile lstat.c.
Make it possible to compile rawmemchr.c separately, unconditionally.
* lib/rawmemchr.c: Don't define rawmemchr if not needed.
Make it possible to compile mempcpy.c separately, unconditionally.
* lib/mempcpy.c: Don't define mempcpy if not needed.
Make it possible to compile free.c separately, unconditionally.
* m4/free.m4 (gl_FUNC_FREE): Define HAVE_FREE_POSIX.
* lib/free.c: Don't define rpl_free if not needed.
Make it possible to compile realloc.c separately, unconditionally.
* modules/realloc-posix (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/realloc.c: Don't define rpl_realloc if not needed.
Make it possible to compile malloc.c separately, unconditionally.
* modules/malloc-posix (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/malloc.c: Don't define rpl_malloc if not needed.
2021-01-31 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Simplify.
* lib/canonicalize-lgpl.c (_GL_USE_STDLIB_ALLOC): Remove macro.
2021-01-30 Bruno Haible <bruno@clisp.org>
canonicalize, canonicalize-lgpl: Straighten dependencies.
* modules/canonicalize-lgpl (Depends-on): Remove free-posix,
malloc-posix. Add unistd.
* modules/canonicalize (Depends-on): Remove free-posix, xalloc.
Add unistd.
2021-01-30 Bruno Haible <bruno@clisp.org>
scratch_buffer: Fix dependencies.
* modules/scratch_buffer (Depends-on): Add malloc-posix, realloc-posix,
free-posix.
2021-01-26 Bruno Haible <bruno@clisp.org>
doc: More precise wording.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00300.html>.
* doc/relocatable.texi (Enabling Relocatability): Talk about package
management systems in general.
doc: Remove obsolete text.
Suggested by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00299.html>.
* doc/relocatable.texi (Enabling Relocatability): Stop mentioning an
issue of libtool 1.5.x.
2021-01-26 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Mimic bootstrap's gnulib-srcdir guessing.
* top/maint.mk (gnulib_dir): If $(srcdir)/gnulib doesn't exist,
fall back to $GNULIB_SRCDIR.
2021-01-25 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_* tests: Fix module dependencies.
* modules/posix_spawn_file_actions_addclose-tests (Depends-on): Add
posix_spawn_file_actions_destroy.
* modules/posix_spawn_file_actions_addopen-tests (Depends-on): Likewise.
* modules/posix_spawn_file_actions_adddup2-tests (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addchdir-tests (Depends-on):
Likewise.
* modules/posix_spawn_file_actions_addfchdir-tests (Depends-on):
Likewise.
2021-01-25 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addclose: Relax configure test.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): Test a
negative file descriptor, not an out-of-range file descriptor.
* tests/test-posix_spawn_file_actions_addclose.c (main): Add comment.
* doc/posix-functions/posix_spawn_file_actions_addclose.texi: Update.
2021-01-25 Simon Josefsson <simon@josefsson.org>
getaddrinfo: Doc fix.
* doc/posix-functions/getaddrinfo.texi (getaddrinfo): Gnulib does
not support IDN.
2021-01-24 Bruno Haible <bruno@clisp.org>
getcwd: Fix cross-compilation guess for musl libc.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Guess no also on
musl libc.
* doc/posix-functions/getcwd.texi: Update platform info.
2021-01-24 Bruno Haible <bruno@clisp.org>
expm1l: Fix configure test result with GCC 10 on powerpc64le.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Change test to avoid GCC optimization.
2021-01-23 Bruno Haible <bruno@clisp.org>
utime: Fix configure test (regression 2020-12-04).
Reported by Ryan Schmidt <wget@ryandesign.com> via Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00282.html>.
* m4/utime.m4 (gl_FUNC_UTIME): In the test program, include <utime.h>,
not <time.h>.
2021-01-23 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port to Xcode 7
Problem reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2021-01/msg01089.html
* lib/cdefs.h (__nonnull): If already defined but glibc is not in
use, override the definition with Gnulib’s _GL_ATTRIBUTE_NONNULL.
This is needed for Xcode 7, which has a ‘#define __nonnull
_Nonnull’ builtin for backwards-compatibility with an older Xcode
syntax that GNUish code never uses.
2021-01-23 Bastien Roucariès <rouca@debian.org>
explicit_bzero: Add fallback for other compilers.
* lib/explicit_bzero.c (explicit_bzero): For other compilers, invoke
memset through a volatile function pointer.
explicit_bzero: Add support for clang.
* lib/explicit_bzero.c (explicit_bzero): Add a compiler barrier for
clang.
2021-01-21 Paul Eggert <eggert@cs.ucla.edu>
Port FALLTHROUGH to clang 3.4 and earlier
Problem reported by Akim Demaille in:
https://lists.gnu.org/r/bug-gnulib/2021-01/msg00241.html
* lib/cdefs.h (__glibc_has_attribute):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Do not trust __has_attribute in clang 3.4 and earlier, as
<https://releases.llvm.org/3.5.0/tools/clang/docs/ReleaseNotes.html>
says that __has_attribute is unreliable in these old versions.
2021-01-20 Bruno Haible <bruno@clisp.org>
gc-random: Fix link error in tests.
* modules/crypto/gc-random (Link): New section.
* modules/crypto/gc-tests (Makefile.am): Link test-gc with
$(LIB_GETRANDOM).
2021-01-20 Simon Josefsson <simon@josefsson.org>
gc-random: Replace implementation with call to getrandom.
* lib/gc-gnulib.c [GNULIB_GC_RANDOM]: Replace #include's with
those needed for getrandom.
(gc_init): Remove old randomness code.
(gc_done): Likewise.
(randomize): Rewrite using getrandom, inspired by getentropy.
* m4/gc-random.m4: Remove file.
* modules/crypto/gc-random: Drop gc-random.m4, gl_GC_RANDOM, and
LIB_GC_RANDOM. Add conditional dependency on getrandom.
* modules/crypto/gc-tests (test_gc_LDADD): Drop LIB_GC_RANDOM.
2021-01-20 Bruno Haible <bruno@clisp.org>
exec*e tests: Avoid test failures on Cygwin.
* tests/test-execle-main.c (main): On Cygwin, add /bin to the new PATH.
* tests/test-execve-main.c (main): Likewise.
* tests/test-execvpe-main.c (main): Likewise.
2021-01-20 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Work around a Cygwin bug.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Test for lstat. Add a
test case that involves a symbolic link to an existing file.
* doc/posix-functions/realpath.texi: Mention the Cygwin bug.
2021-01-20 Bruno Haible <bruno@clisp.org>
doc: Document ptsname_r bug on Cygwin.
* doc/glibc-functions/ptsname_r.texi: Mention Cygwin bug.
2021-01-20 Bruno Haible <bruno@clisp.org>
sethostname tests: Avoid test failure on Cygwin.
* tests/test-sethostname2.c (main): Treat errno EACCESS like EPERM.
2021-01-19 Paul Eggert <eggert@cs.ucla.edu>
fnmatch, regex, fts: FALLTHROUGH consistency
Be more consistent about how FALLTHROUGH is defined.
For Gnulib, use attribute.h. For glibc, use __GNUC__ >= 7.
Problem for glibc reported by Vaseeharan Vinayagamoorthy in:
https://sourceware.org/pipermail/libc-alpha/2021-January/121778.html
* lib/fnmatch.c (FALLTHROUGH) [_LIBC]:
* lib/regex_internal.h (FALLTHROUGH) [_LIBC]:
Don’t worry about Clang, as it’s not needed and provokes GCC.
* lib/fts.c (FALLTHROUGH) [!_LIBC]:
* lib/regex_internal.h (FALLTHROUGH) [!_LIBC]:
Rely on attribute.h for FALLTHROUGH
* modules/regex: Depend on attribute module.
2021-01-19 KO Myung-Hun <komh78@gmail.com>
spawn-pipe: Fix SIGSEGV on OS/2 kLIBC.
* lib/spawn-pipe.c [OS/2 kLIBC]: Check directory correctly if it means
a current directory.
2021-01-19 KO Myung-Hun <komh78@gmail.com>
dirent: Fix compilation error in C++ mode on OS/2 kLIBC.
* lib/dirent.in.h (dirfd): Redefine dirfd macro as a rpl function
always.
2021-01-19 KO Myung-Hun <komh78@gmail.com>
zerosize-ptr: Fix compilation on OS/2 kLIBC.
* tests/zerosize-ptr.h [OS/2 kLIBC]: Don't use mmap().
2021-01-19 KO Myung-Hun <komh78@gmail.com>
stddef: Fix compilation for max_align_t on OS/2 kLIBC.
* lib/stddef.in.h [OS/2 kLIBC]: Include <cstddef> in C++ mode.
2021-01-19 KO Myung-Hun <komh78@gmail.com>
yield: Implement for OS/2 kLIBC.
* modules/yield (Depends-on): Add sched_yield.
sched_yield: Implement for OS/2 kLIBC.
* lib/sched_yield.c (sched_yield) [OS/2 kLIBC]: New implementation.
2021-01-19 KO Myung-Hun <komh78@gmail.com>
spawn: Use special invocation for <spawn.h> on OS/2 kLIBC.
* lib/spawn.in.h: Use special invocation to include <spawn.h> properly
on OS/2 kLIBC.
2021-01-18 Bruno Haible <bruno@clisp.org>
noreturn tests: Avoid test failure on Solaris 10/x86 with cc.
* tests/test-noreturn.c (main): Return 0.
2021-01-18 Bruno Haible <bruno@clisp.org>
uninorm tests: Fix compilation error on Cygwin.
* tests/uninorm/test-nfc.c (n): Don't define when using a preinstalled
libunistring on Windows.
* tests/uninorm/test-nfd.c (n): Likewise.
* tests/uninorm/test-nfkc.c (n): Likewise.
* tests/uninorm/test-nfkd.c (n): Likewise.
2021-01-17 Bruno Haible <bruno@clisp.org>
immutable: Implement on native Windows.
* lib/immutable.h (IMMUTABLE_EFFECTIVE): Set to 1 on native Windows.
* lib/immutable.c: Include <windows.h>.
(CreateFileMapping): New macro.
(init_pagesize, init_mmap_file, alloc_pages, free_pages): Add
implementation for native Windows.
2021-01-17 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl tests: Fix link error.
* modules/canonicalize-lgpl-tests (Makefile.am): Link
test-canonicalize-lgpl with $(LIBINTL).
2021-01-17 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Work around // handling in realpath() of musl 1.2.2.
Reported by Natanael Copa <ncopa@alpinelinux.org> in
<https://lists.gnu.org/archive/html/bug-gettext/2021-01/msg00021.html>.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add a test whether // is
the same as /, on Linux only.
* lib/canonicalize-lgpl.c: Correct indentation of preprocessor
directives.
* doc/posix-functions/realpath.texi: Mention the musl 1.2.2 bug.
2021-01-17 Bruno Haible <bruno@clisp.org>
canonicalize[-lgpl] tests: Add more tests.
* tests/test-canonicalize.c (main): Add detailed tests for // handling.
* tests/test-canonicalize-lgpl.c (main): Likewise.
2021-01-17 Bruno Haible <bruno@clisp.org>
argp tests: Avoid test failures on Alpine Linux.
* tests/test-argp-2.sh: Use the test framework (init.sh). Use the
'compare' function instead of 'diff -c'.
* tests/test-argp-version-etc-1.sh: Likewise.
2021-01-17 Bruno Haible <bruno@clisp.org>
get-rusage-data tests: Avoid test failure on musl libc.
* modules/get-rusage-data-tests (Files): Add m4/musl.m4.
(configure.ac): Invoke gl_MUSL_LIBC.
* tests/test-get-rusage-data.c (main): Treat musl libc like glibc.
2021-01-17 Bruno Haible <bruno@clisp.org>
immutable, get-rusage-data: Fix autoconf warning.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Define through AC_DEFUN_ONCE.
2021-01-16 Bruno Haible <bruno@clisp.org>
vma-iter: Port to 64-bit Haiku.
* lib/vma-iter.c (vma_iterate): Adapt to changed signature of
get_next_area_info.
2021-01-15 Bruno Haible <bruno@clisp.org>
doc: Update doc about realpath.
* doc/posix-functions/realpath.texi: Update info about macOS.
2021-01-13 Paul Eggert <eggert@cs.ucla.edu>
verify: simplify static_assert configuration
* lib/verify.h (_GL_HAVE__STATIC_ASSERT, _GL_HAVE__STATIC_ASSERT1):
Do not define for C++. This should be good enough nowadays,
since recent-enough C++ compilers have static_assert.
(_GL_HAVE_STATIC_ASSERT_CXX11, _GL_HAVE_STATIC_ASSERT_CXX17):
Remove. All uses replaced by simply checking __cpp_static_assert.
2021-01-13 Simon Josefsson <simon@josefsson.org>
lib-msvc-compat: Update libtool usage recommendation.
* doc/ld-output-def.texi (Visual Studio Compatibility): Install
.def files into libdir, not bindir. Have libfoo-*.def file depend
on libfoo.la to fix parallell builds.
2021-01-12 Bruno Haible <bruno@clisp.org>
verify: Use C++11 static_assert when available.
Reported by Alexandre Duret-Lutz <adl@lrde.epita.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00177.html>.
* lib/verify.h (_GL_HAVE_STATIC_ASSERT_CXX11): New macro.
(_GL_HAVE_STATIC_ASSERT_CXX17): Renamed from _GL_HAVE_STATIC_ASSERT1.
(_GL_VERIFY): Use static_assert when available with C++11 syntax.
2021-01-11 Paul Eggert <eggert@cs.ucla.edu>
tempname: consume less entropy
Derived from a glibc patch proposed by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2021-January/121302.html
* lib/tempname.c: Include stdbool.h.
(random_bits): New arg use_getrandom.
(try_tempname_len): Skip getrandom on the first try,
unless __GT_NOCREATE.
* modules/tempname (Depends-on): Add stdbool.
2021-01-10 Bruno Haible <bruno@clisp.org>
lchmod-tests: Fix link error.
* modules/lchmod-tests (Makefile.am): Don't assume that LIBINTL is set.
2021-01-10 Simon Josefsson <simon@josefsson.org>
Correct preceeding change.
* top/gitsub.sh: Update link.
2021-01-09 Bruno Haible <bruno@clisp.org>
immutable: Add tests.
* tests/test-immutable.sh: New file.
* tests/test-immutable.c: New file.
* modules/immutable-tests: New file.
immutable: New module.
* lib/immutable.h: New file.
* lib/immutable.c: New file.
* m4/immutable.m4: New file.
* m4/mprotect.m4: New file, based on libffcall/m4/codeexec.m4.
* modules/immutable: New file.
2021-01-10 Simon Josefsson <simon@josefsson.org>
Use https:// instead of git://.
* build-aux/bootstrap (default_gnulib_url): Ditto.
* config/srclistvars.sh: Ditto.
* doc/gnulib-readme.texi (Git Checkout): Ditto.
* doc/gnulib-tool.texi (VCS Issues): Ditto.
* top/gitsub.sh: Update link.
2021-01-09 Paul Eggert <eggert@cs.ucla.edu>
snippet/_Noreturn: port to pedantic clang
Problem reported by Joe Nelson in:
https://lists.gnu.org/r/bug-gnulib/2021-01/msg00152.html
* doc/noreturn.texi: Improve.
* lib/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Do not assume _Noreturn works as-is when __STRICT_ANSI__ is
defined, unless __STDC_VERSION__ indicates C11 or later.
* lib/_Noreturn.h (_Noreturn): Fall back on __attribute__
((__noreturn__)) if Clang; this merges the
2020-08-10T23:53:13Zbruno@clisp.org patch to m4/gnulib-common.m4.
2021-01-09 Darshit Shah <darnir@gnu.org>
Allow setting CVS username for gnu-web-doc-update.
* build-aux/gnu-web-doc-update: Introduce new option --user to set the
name of the user on Savannah, when it doesn't match $USER.
2021-01-09 Bruno Haible <bruno@clisp.org>
exp* tests: Work around clang 6.0.1 optimization bugs on x86.
* tests/test-exp-ieee.h (test_function): Mark some variable as
'volatile'.
* tests/test-exp2-ieee.h (test_function): Likewise.
2021-01-09 Bruno Haible <bruno@clisp.org>
fchmodat: Work around trailing slash bug in fchmodat() on AIX 7.2.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): In the test whether fchmodat works,
also test for the trailing slashes behaviour. Define
HAVE_NEARLY_WORKING_FCHMODAT if this is the only missing feature.
* lib/fchmodat.c (fchmodat): If HAVE_NEARLY_WORKING_FCHMODAT, handle
trailing slashes here.
* modules/fchmodat (Depends-on): Sort by condition, not alphabetically.
* doc/posix-functions/fchmodat.texi: Document the AIX bug.
2021-01-09 Bruno Haible <bruno@clisp.org>
fchmod-tests, fchmodat tests, lchmod tests: Add more tests.
* tests/test-fchmod.c: Include <fcntl.h>.
(BASE): New macro.
(main): Add more tests.
* tests/test-fchmodat.c (main): Add more tests.
* tests/test-lchmod.c (main): Likewise.
2021-01-09 Bruno Haible <bruno@clisp.org>
utimensat: Fix typo in last commit.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Fix typo in macro explanation.
2021-01-09 Bruno Haible <bruno@clisp.org>
truncate: Document last workaround.
* doc/posix-functions/truncate.texi: Document the AIX bug.
2021-01-08 Paul Eggert <eggert@cs.ucla.edu>
dynarray: work even if ‘free’ is replaced
Problem reported by Darshit Shah in:
https://lists.gnu.org/r/bug-gnulib/2021-01/msg00140.html
* lib/malloc/dynarray-skeleton.c (DYNARRAY_FREE): New macro.
Use it everywhere instead of DYNARRAY_NAME (free).
tempname: don’t block for minutes
Derived from a patch proposed by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2021-January/121302.html
* lib/tempname.c (random_bits): Use GRND_NONBLOCK.
tempname: sync with proposed glibc patch
This is from Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2021-January/121301.html
* lib/tempname.c (__lxstat64): Remove.
(__lstat64, __stat64): New replacement macros. All uses changed.
regex: stop using alloca
* lib/regex_internal.h: Do not include <alloca.h> or define
__libc_use_alloca or alloca. Patch written by Adhemerval Zanella:
https://sourceware.org/pipermail/libc-alpha/2021-January/121374.html
* modules/regex (Depends-on): Remove alloca-opt.
regexec: remove alloca usage in build_trtable
Prompted by this different change proposed by Adhemerval Zanella:
https://sourceware.org/pipermail/libc-alpha/2021-January/121373.html
* lib/regexec.c (build_trtable): Prevent inlining,
so that it doesn’t bloat the caller’s stack.
Use auto variables instead of alloca/malloc.
After these changes, build_trtable’s total stack allocation is
only 20 KiB on a 64-bit machine, and this is less than glibc’s 64
KiB cutoff so there’s little point to using alloca to shrink it.
Although Gnulib traditionally has used a 4 KiB cutoff, going to 20
KiB here should not be a significant problem in practice;
Gnulib-using packages concerned about overflow of tiny stacks can
compile with something like gcc -fstack-clash-protection.
scratch_buffer: add scratch_buffer_dupfree macro
* lib/scratch_buffer.h (__libc_scratch_buffer_dupfree):
New macro, needed to support recent changes in this module.
regex: remove alloca usage on regex set_regs
Derived from this patch by Adhemerval Zanella:
https://sourceware.org/pipermail/libc-alpha/2021-January/121372.html
* lib/regex_internal.h: Include dynarray.h, for Gnulib.
* lib/regexec.c (DYNARRAY_STRUCT, DYNARRAY_ELEMENT)
(DYNARRAY_PREFIX): New macros.
Include malloc/dynarray-skeleton.c.
(set_regs): Use dynarray rather than alloca.
* modules/regex (Depends-on): Add dynarray.
dynarray: new module
* config/srclist.txt: Mention the new files.
* lib/cdefs.h (__attribute_maybe_unused__): New macro,
like Gnulib’s _GL_ATTRIBUTE_MAYBE_UNUSED but with glibc
naming conventions.
* lib/libc-config.h: Use it instead of __glibc_likely.
* lib/dynarray.h, modules/dynarray: New files.
* lib/malloc/dynarray-skeleton.c, lib/malloc/dynarray.h:
* lib/malloc/dynarray_at_failure.c:
* lib/malloc/dynarray_emplace_enlarge.c:
* lib/malloc/dynarray_finalize.c, lib/malloc/dynarray_resize.c:
* lib/malloc/dynarray_resize_clear.c, modules/dynarray:
New files, from glibc with the following changes needed for
portability to compilers that are not recent-enough GCC.
* lib/malloc/dynarray_at_failure.c: Include stdlib.h, for abort.
(__libc_dynarray_at_failure) [!_LIBC]: Simply abort.
* lib/malloc/dynarray_emplace_enlarge.c:
* lib/malloc/dynarray_resize.c:
Include intprops.h, and use INT_MULTIPLY_WRAPV instead
of __builtin_mul_overflow.
* lib/malloc/dynarray.h (__libc_dynarray_at_failure):
Use _Noreturn instead of __attribute__ ((noreturn)).
* lib/malloc/dynarray_resize_clear.c: Do not include stdlib.h;
it’s not needed.
(__libc_dynarray_resize_clear): Do not do arithmetic on void *.
* lib/malloc/dynarray-skeleton.c (struct DYNARRAY_STRUCT):
Do not use anonymous unions, as they are not in C99. All uses changed.
Use __nonnull (X) instead of __attribute__ ((nonnull X)),
and __attribute_maybe_unused__ instead of __attribute__ ((unused)).
2021-01-06 Simon Josefsson <simon@josefsson.org>
bootstrap: Fix parsing of package name.
* build-aux/bootstrap (package): Attempt to use autoconf --trace
to parse AC_INIT before falling back to sed expression.
2021-01-07 Bruno Haible <bruno@clisp.org>
localename: Fix link error with duplocale on AIX 7.2 (regr. 2019-12-18).
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize
LOCALENAME_ENHANCE_LOCALE_FUNCS.
* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE):
Set gt_working_uselocale.
(gt_INTL_THREAD_LOCALE_NAME): Set gt_fake_locales, gt_good_uselocale,
gt_localename_enhances_locale_funcs, LOCALENAME_ENHANCE_LOCALE_FUNCS.
Define HAVE_GOOD_USELOCALE, LOCALENAME_ENHANCE_LOCALE_FUNCS.
* m4/localename.m4 (gl_LOCALENAME): Test
gt_localename_enhances_locale_funcs instead of gt_nameless_locales.
* modules/locale (Makefile.am): Substitute
LOCALENAME_ENHANCE_LOCALE_FUNCS.
* lib/locale.in.h (newlocale, duplocale, freelocale): Don't override if
module 'localename' is in use but LOCALENAME_ENHANCE_LOCALE_FUNCS is 0.
* lib/localename.c (HAVE_GOOD_USELOCALE): Don't define here.
(get_locale_t_name, newlocale, duplocale, freelocale): Define if
LOCALENAME_ENHANCE_LOCALE_FUNCS.
2021-01-06 Bruno Haible <bruno@clisp.org>
logb: Fix test failure on glibc/powerpc.
* doc/posix-functions/logb.texi: Update platform info.
* m4/logb.m4 (gl_FUNC_LOGB_WORKS): Test against bug with negative
subnormal numbers.
2021-01-06 Paul Eggert <eggert@cs.ucla.edu>
libc-config: simplify clang __has_* macros
cdefs.h sometimes used names like __glibc_clang_has_attribute and
sometimes __glibc_has_attribute. There is no need in glibc or
Gnulib to distinguish clang from other compilers here, so be
consistent and use the simpler names.
* lib/cdefs.h (__glibc_has_builtin, __glibc_has_extension):
Rename from __glibc_clang_has_builtin, __glibc_clang_has_extension.
All uses changed.
(__glibc_clang_has_attribute): Remove. All uses replaced
by __glibc_has_attribute.
* lib/libc-config.h [!__glibc_likely]: Undef them here too.
This fixes a problem where __glibc_has_attribute was not undeffed.
2021-01-06 Bruno Haible <bruno@clisp.org>
flock: Update documentation.
* doc/glibc-functions/flock.texi: Document what to expect on AIX and
Solaris.
2021-01-06 Bruno Haible <bruno@clisp.org>
ilogbl: Fix compilation error with xlclang on AIX 7.2.
* lib/math.in.h (ilogbl): Undefine macro before declaration.
2021-01-06 Bruno Haible <bruno@clisp.org>
ilogbl: Fix test failures on AIX 7.1 in 64-bit mode.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test also some denormalized
argument.
* doc/posix-functions/ilogbl.texi: Mention the AIX bug.
2021-01-06 Bruno Haible <bruno@clisp.org>
ilogb: Fix test failures on AIX 7.1 in 64-bit mode.
* m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Test also some denormalized
argument.
* doc/posix-functions/ilogb.texi: Mention the AIX bug.
2021-01-05 Bruno Haible <bruno@clisp.org>
fclose: Fix test failure on AIX 7.2.
* m4/fclose.m4 (gl_FUNC_FCLOSE_STDIN): New macro.
(gl_FUNC_FCLOSE): Invoke it. Set REPLACE_FCLOSE accordingly.
* doc/posix-functions/fclose.texi: Update platform information.
* doc/posix-functions/fflush.texi: Likewise.
2021-01-05 Bruno Haible <bruno@clisp.org>
pipe-filter-gi: Fix test failure on AIX 7.2.
* lib/pipe-filter-aux.h (SSIZE_MAX) [AIX]: Set to 4096.
2021-01-05 Bruno Haible <bruno@clisp.org>
utimens, utimensat, fdutimensat: Avoid test failures on AIX 7.2.
* lib/utimecmp.c (utimecmpat): On AIX, declare equality when the two
times differ by less than 0.01 seconds.
* tests/test-futimens.h (test_futimens): Pass UTIMECMP_TRUNCATE_SOURCE
flag.
2021-01-05 Bruno Haible <bruno@clisp.org>
utimensat: Work around trailing slash bug in utimensat() on AIX 7.2.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Require AC_CANONICAL_HOST. Add a
test for trailing slash handling. Improve cross-compilation guesses.
Conditionally define HAVE_NEARLY_WORKING_UTIMENSAT.
* lib/utimensat.c (rpl_utimensat): Add alternative implementation when
HAVE_NEARLY_WORKING_UTIMENSAT is defined.
* lib/utimens.c: Use the overridden utimensat when
HAVE_NEARLY_WORKING_UTIMENSAT is defined.
* doc/posix-functions/utimensat.texi: Mention the AIX bug.
2021-01-05 Bruno Haible <bruno@clisp.org>
ptsname_r, ptsname: Avoid test failures on AIX 7.2.
* tests/test-ptsname_r.c (main): On AIX, set a 20-seconds timer.
* tests/test-ptsname.c (main): Likewise. On AIX, open a pty through
/dev/ptc and don't test the BSD ptys.
2021-01-05 Paul Eggert <eggert@cs.ucla.edu>
libc-config: merge from glibc
Use a better way of keeping glibc <sys/cdefs.h> and gnulib
lib/cdefs.h mostly in sync, by using lib/cdefs.h only on platforms
where <sys/cdefs.h> does not work well enough for Gnulib.
* lib/cdefs.h: Go back to using _SYS_CDEFS_H rather than
_GL_DEFS_H as an include guard.
(__THROW, __THROWNL, __NTH, __NTHNL):
Define to noexcept for C++11 and later.
(__glibc_objsize, __glibc_objsize0): New, for _FORTIFY_SOURCE=3.
(__warndecl): Remove.
(__attribute_copy__): New macro, for GCC 9 support.
(__LDBL_REDIR, __LDBL_REDIR_DECL, __LDBL_REDIR1)
(__LDBL_REDIR1_DECL, __LDBL_REDIR1_NTH, __REDIRECT_NTH_LDBL)
(__REDIRECT_LDBL, __LDBL_REDIR_NTH):
Redirections for IEEE long double on powerpc64le.
(__LDBL_REDIR2_DECL): New macro.
(__attr_access): New macro, for GCC 10 bounds checking.
(__attribute_returns_twice__): New macro, for setjmp etc.
* lib/libc-config.h: Include <cdefs.h> only if __glibc_likely is
undefined. The following changes apply only if __glibc_likely
is not defined.
(__LDBL_REDIR2_DECL, __attr_access, __attribute_returns_twice__)
(__glibc_clang_has_attribute, __glibc_clang_has_extension)
(__glibc_objsize, __glibc_objsize0):
Undef these new (or newer) <cdefs.h> macros.
(__P, __PMT, __always_inline): Do not undef, since cdefs.h does that.
(__glibc_likely): Do not undef, since this is inside
ifndef __glibc_likely.
(__warndecl): Do not undef; no longer defined.
2021-01-05 Jim Meyering <meyering@fb.com>
maintainer-makefile: correct preceding change
* top/maint.mk (syntax-check-rules): Use LC_ALL=C, not LANG=C.
2021-01-05 Paul Eggert <eggert@cs.ucla.edu>
maint: note syncs to glibc
* config/srclist.txt: filename.h, idx.h, scratch_buffer.h and
scratch_buffer_dupfree.c are now identical to glibc. Add
commentary about some other syncs we’d like.
* modules/filename, modules/idx (Maintainer): Add glibc.
2021-01-05 Bruno Haible <bruno@clisp.org>
truncate: Work around trailing slash bug in truncate() on AIX 7.2.
* m4/truncate.m4 (gl_FUNC_TRUNCATE): Add a test whether truncate
rejects trailing slashes. Set REPLACE_TRUNCATE and define
TRUNCATE_TRAILING_SLASH_BUG if not.
* lib/truncate.c (orig_truncate): New function.
(truncate): Add alternative implementation when
TRUNCATE_TRAILING_SLASH_BUG is defined.
* modules/truncate (Depends-on): Add sys_stat, stat.
2021-01-05 Bruno Haible <bruno@clisp.org>
mkfifoat: Fix cross-compilation guess (regression from 2021-01-04).
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Fix copy-and-paste mistake.
2021-01-05 Bruno Haible <bruno@clisp.org>
ffsll: Override completely broken implementation on AIX in 32-bit mode.
* m4/ffsll.m4 (gl_FUNC_FFSLL): Test whether ffsll minimally works. If
not, set REPLACE_FFSLL.
* lib/string.in.h (ffsll): Consider REPLACE_FFSLL.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_FFSLL.
* modules/string (Makefile.am): Substitute REPLACE_FFSLL.
* modules/ffsll (Depends-on, configure.ac): Consider REPLACE_FFSLL.
* doc/glibc-functions/ffsll.texi: Mention the AIX 7.2 bug.
2021-01-04 Bruno Haible <bruno@clisp.org>
symlinkat: Fix trailing slash handling.
* lib/symlinkat.c (rpl_symlinkat): Don't follow symlinks during the
trailing slash handling.
* modules/symlinkat (Depends-on): Update conditions.
2021-01-04 Bruno Haible <bruno@clisp.org>
mkfifoat: Update module description.
* modules/mkfifoat (Depends-on): Update conditions after last commits.
2021-01-04 Bruno Haible <bruno@clisp.org>
link: Improve trailing slash handling on native Windows.
* lib/link.c (link): If stat() fails, provide a better errno.
2021-01-04 Bruno Haible <bruno@clisp.org>
mkfifoat: Work around trailing slash bug in mknodat() on AIX 7.2.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Set also REPLACE_MKNODAT.
* lib/sys_stat.in.h (mknodat): Consider REPLACE_MKNODAT.
* lib/mknodat.c: Add an overriding implementation of mknodat().
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_MKNODAT.
* modules/sys_stat (Makefile.am): Substitute REPLACE_MKNODAT.
* modules/mkfifoat (Depends-on, configure.ac): Consider REPLACE_MKNODAT.
* doc/posix-functions/mknodat.texi: Mention the AIX bug.
mkfifoat: Work around trailing slash bug in mkfifoat() on AIX 7.2.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Add a test whether mkfifoat rejects
trailing slashes. Set REPLACE_MKFIFOAT if not.
* lib/sys_stat.in.h (mkfifoat): Consider REPLACE_MKFIFOAT.
* lib/mkfifoat.c: Add an overriding implementation of mkfifoat().
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize
REPLACE_MKFIFOAT.
* modules/sys_stat (Makefile.am): Substitute REPLACE_MKFIFOAT.
* modules/mkfifoat (Depends-on): Add fstatat.
(configure.ac): Consider REPLACE_MKFIFOAT.
* doc/posix-functions/mkfifoat.texi: Mention the AIX bug.
2021-01-04 Bruno Haible <bruno@clisp.org>
libc-config: Avoid overriding the headers from an installed newer glibc.
Reported by Paul E Murphy <murphyp@linux.ibm.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00106.html>.
* lib/cdefs.h: Use a different include guard than glibc's <sys/cdefs.h>.
* lib/libc-config.h: Update accordingly.
2021-01-04 Simon Josefsson <simon@josefsson.org>
maintainer-makefile: Invoke syntax-checks regardless of locale.
* top/maint.mk (syntax-check-rules): Invoke sed with LANG=C
environment because [a-z] may not include 'w' in all locales.
2021-01-04 Bruno Haible <bruno@clisp.org>
nstrftime, time_rz: Avoid using an obsolete Autoconf macro.
Reported by Mike Gran <spk121@yahoo.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-01/msg00067.html>.
* lib/time-internal.h: Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE.
* lib/time_rz.c: Likewise.
* lib/nstrftime.c: Set and test HAVE_STRUCT_TM_TM_ZONE, not
HAVE_TM_ZONE.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Update comments.
2021-01-04 Bruno Haible <bruno@clisp.org>
expm1f-ieee: Work around AIX 7.2 bug.
* m4/expm1f.m4 (gl_FUNC_EXPM1F): Initialize gl_expm1f_required. If
module 'expm1f-ieee' is in use, check whether expm1f works according to
IEEE.
* m4/expm1f-ieee.m4: New file.
* modules/expm1f-ieee (Files): Add it.
(Depends-on): Update conditions.
(configure.ac): Invoke gl_FUNC_EXPM1F_IEEE.
* doc/posix-functions/expm1f.texi: Mention the AIX bug.
2021-01-04 Bruno Haible <bruno@clisp.org>
ffsl, ffsll: Work around AIX 7.2 problem.
* lib/string.in.h: On AIX, include <strings.h> for the declarations of
ffsl and ffsll.
* doc/glibc-functions/ffsl.texi: Document the AIX 7.2 problem.
* doc/glibc-functions/ffsll.texi: Likewise.
2021-01-04 Bruno Haible <bruno@clisp.org>
ssfmalloc: Fix includes.
* lib/ssfmalloc.h: Include <strings.h>, for ffs().
* tests/test-ssfmalloc.c: Include <string.h>, for memset().
2021-01-03 Bruno Haible <bruno@clisp.org>
quotearg tests: Avoid test failures on Solaris 11.3.
* tests/test-quotearg.sh: Copy the fr/ directory using 'cp -R', not
'cp -a'.
2021-01-03 Bruno Haible <bruno@clisp.org>
tests: Fix link errors on Solaris, when libunistring-optional is in use.
* modules/wcwidth (Link): New section.
* modules/wcswidth (Link): New section.
* modules/mbchar (Link): New section.
* modules/mbfile (Link): Link against libunistring.
* modules/mbiter (Link): Likewise.
* modules/mbuiter (Link): Likewise.
* modules/mbmemcasecmp (Link): Likewise.
* modules/mbscasecmp (Link): Likewise.
* modules/mbscasestr (Link): Likewise.
* modules/mbschr (Link): Likewise.
* modules/mbscspn (Link): Likewise.
* modules/mbslen (Link): Likewise.
* modules/mbsncasecmp (Link): Likewise.
* modules/mbsnlen (Link): Likewise.
* modules/mbspbrk (Link): Likewise.
* modules/mbspcasecmp (Link): Likewise.
* modules/mbsrchr (Link): Likewise.
* modules/mbssep (Link): Likewise.
* modules/mbsspn (Link): Likewise.
* modules/mbsstr (Link): Likewise.
* modules/mbstok_r (Link): Likewise.
* modules/mbswidth (Link): Likewise.
* modules/exclude (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/regex-quote (Link): Likewise.
* modules/trim (Link): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Link the test program
against libunistring.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/exclude-tests (Makefile.am): Likewise.
* modules/regex-quote-tests (Makefile.am): Likewise.
2021-01-03 Bruno Haible <bruno@clisp.org>
c32ispunct tests: Avoid test failures on FreeBSD.
* tests/test-c32ispunct.c (main): On FreeBSD, disable tests that fail on
FreeBSD 12.1.1.
2021-01-04 Simon Josefsson <simon@josefsson.org>
doc: Repeat warning that --with-tests cannot be used twice.
* doc/gnulib-tool.texi (Multiple instances): Remind reader of
--with-tests limitation.
2021-01-03 Bruno Haible <bruno@clisp.org>
iconv, iconv_open: Improve documentation.
Reported by Noah Misch <noah@leadboat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00172.html>.
* doc/posix-functions/iconv_open.texi: Add new paragraph "Portability
problems handled by Gnulib".
* doc/posix-functions/iconv.texi: Likewise. Update info about AIX.
* m4/iconv.m4 (AM_ICONV_LINK): Improve comments.
2021-01-03 Bruno Haible <bruno@clisp.org>
iconv-h: Fix module description.
* modules/iconv-h (Include): Check HAVE_ICONV_H.
2021-01-03 Noah Misch <noah@leadboat.com>
iconv_open: Fix module description.
* modules/iconv_open (Include): Check HAVE_ICONV, like modules/iconv.
2021-01-03 Bruno Haible <bruno@clisp.org>
stddef: Override wrong max_align_t on AIX 7 with xlc in 64-bit mode.
* m4/stddef_h.m4 (gl_STDDEF_H): Make check for good max_align_t
stricter: Add tests for offsetof-based alignof.
* lib/stddef.in.h (max_align_t): Override on AIX in 64-bit mode.
* doc/posix-headers/stddef.texi: Document the AIX max_align_t bug.
2021-01-03 Bruno Haible <bruno@clisp.org>
free-posix: Work around GCC mis-optimization bug.
Code by Bernhard Voelker <mail@bernhard-voelker.de>.
* lib/free.c (rpl_free): Add alternative complicated code for GCC.
2021-01-02 Bruno Haible <bruno@clisp.org>
valgrind-tests: Disable valgrind if it would cause all tests to fail.
Suggested by Simon Josefsson <simon@josefsson.org> in
<https://lists.gnu.org/archive/html/help-gsasl/2021-01/msg00004.html>.
* m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Test $VALGRIND on an
executable produced by the current compiler. Set VALGRIND to empty if it
does not work. Don't set VALGRIND to empty if it merely does not accept
the --error-exitcode=1 --leak-check=full options.
2021-01-02 Bruno Haible <bruno@clisp.org>
valgrind-tests: Really enable the valgrind options test.
* m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Don't assume that the
valgrind options --error-exitcode=1 --leak-check=full always work.
2021-01-02 Bruno Haible <bruno@clisp.org>
utimensat: Fix test failures on macOS 10.13.
* lib/utimensat.c: Include <string.h>, <sys/stat.h>.
(rpl_utimensat): Check against invalid tv_nsec values. Before calling
utimensat, recognize a filename ending in a slash that does not point
to a directory.
2021-01-02 Bruno Haible <bruno@clisp.org>
utimens: Fix test failure on macOS 10.13.
* lib/utimens.c: Include <string.h>.
utimens: Fix test failure on macOS 10.13.
* lib/utimens.c (fdutimens): Before calling utimensat, recognize a
filename ending in a slash that does not point to a directory.
2021-01-02 Bruno Haible <bruno@clisp.org>
utimens: Avoid test failures on macOS 10.13.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* tests/test-utimens-common.h (check_ctime): Define to -1 on macOS.
* tests/test-utimens.h (test_utimens): Don't expect a ctime change when
only the atime is requested to change.
* tests/test-futimens.h (test_futimens): Likewise.
* tests/test-lutimens.h (test_lutimens): Likewise.
2021-01-02 Bruno Haible <bruno@clisp.org>
renameatu: Fix test failures on macOS.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* lib/renameatu.c (renameatu): Don't call renameatx_np right away.
Instead, treat it as a variant of renameat, with all possible bugs that
renameat might have.
2021-01-02 Bruno Haible <bruno@clisp.org>
getgroups test: Avoid warning with glibc >= 2.32 and gcc >= 10.
Reported by Bernhard Voelker <mail@bernhard-voelker.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00090.html>.
* tests/test-getgroups.c: Silence gcc warnings of type
-Wstringop-overflow.
2021-01-02 Bruno Haible <bruno@clisp.org>
timespec_get: Add tests.
* tests/test-timespec_get.c: New file.
* modules/timespec_get-tests: New file.
timespec_get: New module.
* lib/time.in.h (timespec_get): New declaration.
* lib/timespec_get.c: New file.
* m4/timespec_get.m4: New file.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize
GNULIB_TIMESPEC_GET, HAVE_TIMESPEC_GET.
* modules/time (Makefile.am): Substitute GNULIB_TIMESPEC_GET,
HAVE_TIMESPEC_GET.
* modules/timespec_get: New file.
* tests/test-time-c++.cc (timespec_get): Check signature.
* doc/glibc-functions/timespec_get.texi: Mention the new module.
2021-01-01 Bruno Haible <bruno@clisp.org>
time: Define TIME_UTC.
* lib/time.in.h (TIME_UTC, GNULIB_defined_TIME_UTC): New macros.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Set TIME_H_DEFINES_TIME_UTC.
* modules/time (Makefile.am): Substitute TIME_H_DEFINES_TIME_UTC.
* tests/test-time.c: Check that TIME_UTC is defined and a positive
integer.
* doc/posix-headers/time.texi: Mention TIME_UTC.
2021-01-01 Bruno Haible <bruno@clisp.org>
stddef: Try harder to get max_align_t defined on OpenBSD, part 2.
* modules/stddef (Depends-on): Add extensions.
2021-01-01 Paul Eggert <eggert@cs.ucla.edu>
canonicalize: remove NARROW_ADDRESSES optimization
* lib/canonicalize-lgpl.c, lib/canonicalize.c (NARROW_ADDRESSES):
Remove, and remove all uses, as the optimization is arguably not
worth the extra complexity. Suggested by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121203.html
2021-01-01 Bruno Haible <bruno@clisp.org>
stddef: Try harder to get max_align_t defined on OpenBSD.
* m4/stddef_h.m4 (gl_STDDEF_H): Require gl_USE_SYSTEM_EXTENSIONS.
2021-01-01 Bruno Haible <bruno@clisp.org>
aligned_alloc: Fix test failure on OpenBSD 6.8.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): On OpenBSD, define
_ISOC11_SOURCE.
* m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Require it. Update
comment.
2021-01-01 Bruno Haible <bruno@clisp.org>
posixtm tests: Disable part of the test on plaforms where it fails.
* tests/test-posixtm.c (T): Disable two tests on macOS as well.
2021-01-01 Bruno Haible <bruno@clisp.org>
c32isgraph/c32isprint/c32ispunct tests: Avoid test failures on OmniOS.
* tests/test-c32isgraph.c (main): On Solaris, disable tests that fail on
Solaris 11 OmniOS.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
2021-01-01 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port to Sun C 5.9
* lib/libc-config.h (libc_hidden_proto): Omit ", ..." in macro
definition. It’s not needed for Gnulib and elicits a diagnostic
from Sun C 5.9 Patch 124867-12 2009/11/22.
2021-01-01 Bruno Haible <bruno@clisp.org>
quotearg tests: Avoid test failures on Solaris 11.
* modules/quotearg-tests (Makefile.am): Set host_os in
TESTS_ENVIRONMENT.
* tests/test-quotearg.sh: On Solaris 11 systems, make a copy of the fr/
directory that contains the .mo file.
2021-01-01 Bruno Haible <bruno@clisp.org>
maint: Update copyright notices in --version output.
List the most recent year in which changes were made, per
<https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html>.
* build-aux/declared.sh (func_version): Say 2019.
* build-aux/libtool-next-version (func_version): Likewise.
* build-aux/run-test (func_version): Likewise.
* check-module (COPYRIGHT_NOTICE): Say 2012.
* lib/git-merge-changelog.c (main): Say 2020.
2020-12-31 Paul Eggert <eggert@cs.ucla.edu>
filename: change filename.h comment to LGPLv2.1+
* lib/filename.h: Change license notice to match what should be in
glibc, and what modules/filename specifies. This is to simplify
syncing with glibc.
doc: mention year-0 bugs in Solaris etc.
* doc/posix-functions/gmtime.texi, doc/posix-functions/gmtime_r.texi:
* doc/posix-functions/localtime.texi:
* doc/posix-functions/localtime_r.texi:
* doc/posix-functions/mktime.texi:
Mention year-0 bugs in localtime etc.
2020-12-31 Bruno Haible <bruno@clisp.org>
ptsname_r: Fix test failure on Solaris.
* lib/ptsname_r.c (__ptsname_r) [__sun]: Don't test the major number of
the device.
2020-12-31 Bruno Haible <bruno@clisp.org>
posixtm tests: Disable part of the test on plaforms where it fails.
* tests/test-posixtm.c (T): Disable two tests on Solaris.
2020-12-31 Bruno Haible <bruno@clisp.org>
poll tests: Avoid test failure on AIX.
* tests/test-poll.c (test_pipe): Disable the "expecting POLLHUP after
shutdown" test on AIX.
* doc/posix-functions/poll.texi: Mention the AIX bug.
2020-12-31 Bruno Haible <bruno@clisp.org>
poll tests: Avoid test failure on BSD and Solaris systems.
* tests/test-poll.c (test_accept_first, test_socket_pair): Disable the
"expecting POLLHUP after shutdown" test on all platforms except Linux.
2020-12-31 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: merge from glibc + proposal
This merges the change proposed by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121212.html
which fixes a Gnulib bug that led to a failed assert.
* lib/fnmatch_loop.c (EXT): Use signed level, not unsigned, and
check that it stays nonnegative. Use __flexarr instead of
FLEXIBLE_ARRAY_MEMBER, to port better to glibc.
* tests/test-fnmatch.c (main): New test cases, taken from glibc.
glob: merge proposed glibc changes
This merges the change proposed by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121211.html
* lib/glob.c (__lstat64, __stat64) [_LIBC]: Remove.
2020-12-31 Bruno Haible <bruno@clisp.org>
memalign: Work around Solaris bug.
* lib/memalign.c: New file.
* m4/memalign.m4: New file.
* modules/memalign (Files): Add them.
(Depends-on): Add malloc-h.
(configure.ac): Invoke gl_FUNC_MEMALIGN. Conditionally compile
memalign.c. Set module indicator.
(Include): Include <malloc.h> unconditionally.
* doc/glibc-functions/memalign.texi: Mention the Solaris issues.
malloc-h: Add tests.
* tests/test-malloc-h.c: New file.
* modules/malloc-h-tests: New file.
* tests/test-malloc-h-c++.cc: New file.
* modules/malloc-h-c++-tests: New file.
malloc-h: New module.
* lib/malloc.in.h: New file.
* m4/malloc_h.m4: New file.
* modules/malloc-h: New file.
* doc/glibc-headers/malloc.texi: New file.
* doc/gnulib.texi (Glibc Header File Substitutes): Include it.
2020-12-31 Bruno Haible <bruno@clisp.org>
unistd: Fix portability warnings.
* lib/unistd.in.h (fchownat, unlinkat): Fix module name in warning.
2020-12-31 Bruno Haible <bruno@clisp.org>
utime: Fix compilation error on macOS and Solaris 9 (regr. 2020-12-24).
Reported by Tom G. Christensen <tgc@jupiterrise.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00295.html>.
* lib/utime.c: Include <errno.h>.
2020-12-30 Karl Berry <karl@freefriends.org>
config: srclistvars doc.
* config/srclistvars.sh: doc a couple of unusual source repo urls.
2020-12-30 Bruno Haible <bruno@clisp.org>
getlogin tests, getlogin_r tests: Avoid failure on Solaris OpenIndiana.
* tests/test-getlogin.c (main): Don't fail if getlogin() returns NULL
with no errno.
* tests/test-getlogin_r.c (main): Don't fail if getlogin_r() returns
EINVAL.
2020-12-29 Jim Meyering <meyering@fb.com>
regex-tests: tweak to avoid a clang-10 warning
* tests/test-regex.c: Compare with explicit zero, rather than
as boolean to avoid this from clang-10:
test-regex.c:315:9: error: converting the result of '<<' to a \
boolean always evaluates to true \
[-Werror,-Wtautological-constant-compare]
if (! REG_STARTEND)
hash: add casts-to-float to avoid clang-10 warnings
* lib/hash.c (compute_bucket_size): Cast SIZE_MAX to float
to avoid this warning from clang-10 (for use in grep):
hash.c:501:11: error: implicit conversion from 'unsigned long' \
to 'float' changes value from 18446744073709551615 to \
18446744073709551616 [-Werror,-Wimplicit-int-float-conversion]
if (SIZE_MAX <= new_candidate)
(hash_insert_if_absent): Likewise.
2020-12-29 Paul Eggert <eggert@cs.ucla.edu>
canonicalize: fix size overflow treatment
This also has some minor cleanups.
* lib/canonicalize-lgpl.c, lib/canonicalize.c: No need to include
stddef.h, since the code no longer refers directly to ptrdiff_t.
* lib/canonicalize-lgpl.c (realpath_stk):
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Treat size overflow like other out-of-memory.
* lib/canonicalize.c: No need to include stdlib.h, since
the code no longer refers to stdlib.h functions (other
than those that canonicalize.h must declare).
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Do not bother terminating the string result on error.
2020-12-29 Bruno Haible <bruno@clisp.org>
list-c++, [o]map-c++, [o]set-c++: Fix conflict with 'free-posix' module.
* lib/gl_list.hh: Include <stdlib.h>.
* lib/gl_map.hh: Likewise.
* lib/gl_omap.hh: Likewise.
* lib/gl_set.hh: Likewise.
* lib/gl_oset.hh: Likewise.
2020-12-29 Paul Eggert <eggert@cs.ucla.edu>
canonicalize: fix ptrdiff_t overflow bug
Problem reported by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121182.html
* lib/canonicalize-lgpl.c, lib/canonicalize.c:
Include intprops.h.
(NARROW_ADDRESSES): New constant.
* lib/canonicalize-lgpl.c (realpath_stk):m
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Work even if strlen (END) does not fit in idx_t, or if adding
N to it overflows.
* modules/canonicalize, modules/canonicalize-lgpl (Depends-on):
Add intprops.
2020-12-28 Bruno Haible <bruno@clisp.org>
havelib: Fix for Solaris 11 OpenIndiana and Solaris 11 OmniOS.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): In
acl_is_expected_elfclass, use 'expr', not 'test'.
2020-12-28 Bruno Haible <bruno@clisp.org>
ptsname_r: Fix a compiler warning on Solaris.
* lib/ptsname_r.c (__ptsname_r): Reduce the scope of variable 'err'.
2020-12-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix logic whether to add a dummy.c.
* gnulib-tool (func_remove_if_blocks): New function.
(func_modules_add_dummy): Use it to eliminate all conditional statements
from the automake snippet.
2020-12-28 Paul Eggert <eggert@cs.ucla.edu>
faccessat: revert recent EOVERFLOW change
I misunderstood the glibc source code. Deduced from
Adhemerval Zanella’s proposed glibc patch in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121131.html
* doc/posix-functions/faccessat.texi: It is not a problem.
* lib/canonicalize-lgpl.c, lib/canonicalize.c, lib/faccessat.c:
(FACCESSAT_NEVER_OVERFLOWS): Remove. All uses removed.
* lib/faccessat.c: Revert to simpler version now that
LSTAT_FOLLOWS_SLASHED_SYMLINK must be false.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT_EOVERFLOW):
Remove. All uses removed.
* modules/canonicalize, modules/canonicalize-lgpl (Files):
Remove m4/faccessat.m4.
canonicalize-lgpl: accommodate picky cpp
* lib/canonicalize-lgpl.c: Use "defined FUNC_REALPATH_WORKS" in
case preprocessor is picky. Reported by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121130.html
canonicalize: simplify via scratch_buffer_dupfree
* config/srclist.txt: Adjust accordingly.
* lib/canonicalize-lgpl.c (realpath_stk):
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Simplify by using scratch_buffer_dupfree.
* lib/malloc/scratch_buffer.h (scratch_buffer_dupfree): New function.
* lib/malloc/scratch_buffer_dupfree.c: New file.
* modules/scratch_buffer (Files, Depends-on):
Add malloc/scratch_buffer_dupfree.c.
2020-12-27 Paul Eggert <eggert@cs.ucla.edu>
regex: remove glibc21.m4
It doesn’t seem to be needed any more; at least, I couldn’t
reproduce the circa-2013 problem. Perhaps the recent
--conditional-dependencies fixes have removed the need for it.
* m4/glibc21.m4: Remove. All uses removed.
2020-12-26 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --conditional-dependencies work with --with-tests.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00236.html>.
* gnulib-tool (func_emit_tests_Makefile_am): Handle conditional
dependencies like func_emit_lib_Makefile_am.
2020-12-26 Bruno Haible <bruno@clisp.org>
execvpe: Make dependency to stdbool explicit.
* lib/execvpe.c: Include <stdbool.h>.
* modules/execvpe (Depends-on): Add stdbool.
execlp: Add tests.
* tests/test-execlp-main.c: New file.
* tests/test-execlp.sh: New file.
* modules/execlp-tests: New file.
execlp: New module.
* lib/execlp.c: New file.
* m4/execlp.m4: New file.
* modules/execlp: New file.
* doc/posix-functions/execlp.texi: Mention more Windows problems and the
new module.
execle: Add tests.
* tests/test-execle-main.c: New file.
* tests/test-execle.sh: New file.
* modules/execle-tests: New file.
execle: New module.
* lib/execle.c: New file.
* m4/execle.m4: New file.
* modules/execle: New file.
* doc/posix-functions/execle.texi: Mention more Windows problems and the
new module.
execl: Add tests.
* tests/test-execl-main.c: New file.
* tests/test-execl.sh: New file.
* modules/execl-tests: New file.
execl: New module.
* lib/execl.c: New file.
* m4/execl.m4: New file.
* modules/execl: New file.
* doc/posix-functions/execl.texi: Mention more Windows problems and the
new module.
execv: Add tests.
* tests/test-execv-main.c: New file.
* tests/test-execv.sh: New file.
* modules/execv-tests: New file.
execv: New module.
* lib/execv.c: New file.
* m4/execv.m4: New file.
* modules/execv: New file.
* doc/posix-functions/execv.texi: Mention more Windows problems and the
new module.
execvp: Add tests.
* tests/test-execvp-main.c: New file.
* tests/test-execvp.sh: New file.
* modules/execvp-tests: New file.
execvp: New module.
* lib/execvp.c: New file.
* m4/execvp.m4: New file.
* modules/execvp: New file.
* doc/posix-functions/execvp.texi: Mention more Windows problems and the
new module.
execvpe: Add tests.
* tests/test-execvpe-main.c: New file.
* tests/test-execvpe.sh: New file.
* modules/execvpe-tests: New file.
execvpe: New module.
* lib/execvpe.c: New file.
* m4/execvpe.m4: New file.
* modules/execvpe: New file.
* doc/glibc-functions/execvpe.texi: Mention the Windows problems and the
new module.
execve: Add tests.
* tests/test-exec-child.c: New file.
* tests/test-execve-main.c: New file.
* tests/test-execve.sh: New file.
* modules/execve-tests: New file.
execve: New module.
* lib/execve.c: New file.
* m4/execve.m4: New file.
* modules/execve: New file.
* doc/posix-functions/execve.texi: Mention more Windows problems and the
new module.
execve, execvpe, execvp, execv, execl, execle, execlp: Prepare modules.
* lib/unistd.in.h (execl, execle, execlp, execv, execve, execvp,
execvpe): Add declarations for the new modules.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether execl, execle, execlp,
execv, execve, execvp, execvpe are declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_EXEC*, HAVE_EXECVPE,
REPLACE_EXEC*.
* modules/unistd (Makefile.am): Substitute GNULIB_EXEC*, HAVE_EXECVPE,
REPLACE_EXEC*.
* tests/test-unistd-c++.cc: Check the signature of execl, execle,
execlp, execv, execve, execvp, execvpe.
2020-12-26 Bruno Haible <bruno@clisp.org>
stack: Fix typo in comments.
* lib/stack.h: Fix typo in comments.
2020-12-26 Bruno Haible <bruno@clisp.org>
bitset: Fix conflict with 'free-posix' module.
* lib/bitset/base.h: Include <stdlib.h>.
2020-12-25 Paul Eggert <eggert@cs.ucla.edu>
idx: change idx.h comment to LGPLv2.1+
* lib/idx.h: Change license notice to match what should be in glibc.
gnulib-tool will change it as appropriate anyway, so this is just
to simplify syncing with glibc.
2020-12-25 Thien-Thi Nguyen <ttn@gnu.org>
MODULES.html.sh: Update after 2020-12-19 change.
* MODULES.html.sh (func_all_modules): Do s/free/free-posix/.
2020-12-25 Bruno Haible <bruno@clisp.org>
Make it possible to turn off the mkdir override on Windows.
* lib/sys_stat.in.h (mkdir): Conditionalize through GNULIB_MKDIR and
GNULIB_MDA_MKDIR. Also support GNULIB_POSIXCHECK.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_MKDIR,
GNULIB_MDA_MKDIR.
* modules/sys_stat (Makefile.am): Substitute GNULIB_MKDIR,
GNULIB_MDA_MKDIR.
* modules/mkdir (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR.
* doc/posix-functions/mkdir.texi: Mention also the 'sys_stat' module.
Make it possible to turn off each of the Windows oldnames workarounds.
* lib/fcntl.in.h (creat, open): Conditionalize each of the Windows
oldnames workarounds through a GNULIB_MDA_<func> symbol.
* lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise.
* lib/search.in.h (lfind, lsearch): Likewise.
* lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam):
Likewise.
* lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise.
* lib/string.in.h (memccpy, strdup): Likewise.
* lib/sys_stat.in.h (chmod, umask): Likewise.
* lib/time.in.h (tzset): Likewise.
* lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle,
execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek,
read, rmdir, swab, unlink, write): Likewise.
* lib/utime.in.h (utime): Likewise.
* lib/wchar.in.h (wcsdup): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize these
GNULIB_MDA_<func> symbols.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Likewise.
* m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
* m4/utime_h.m4 (gl_UTIME_H_DEFAULTS): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Likewise.
* modules/fcntl-h (Makefile.am): Substitute these GNULIB_MDA_<func>
symbols.
* modules/math (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/utime-h (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
2020-12-24 Paul Eggert <eggert@cs.ucla.edu>
canonicalize, canonicalize-lgpl: remove lint
Pacify GCC. Some of these problems were reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00217.html
* lib/canonicalize-lgpl.c, lib/canonicalize.c:
Sort shared include directives, for consistency.
(IF_LINT): New macro.
(suffix_requires_dir_check): Mark with _GL_ATTRIBUTE_PURE.
* lib/canonicalize-lgpl.c (GCC_LINT, _GL_ATTRIBUTE_PURE) [_LIBC]:
New macros.
(realpath_stk): Suppress bogus -Wmaybe-uninitialized warning.
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Omit unused local. Suppress bogus -Wmaybe-uninitialized warning.
2020-12-24 Bruno Haible <bruno@clisp.org>
spawn-pipe: Use posix_spawn by default on native Windows.
* lib/spawn-pipe.c (SPAWN_PIPE_IMPL_AVOID_POSIX_SPAWN): New macro.
(create_pipe): Use it to decide among the two possible implementations.
* modules/spawn-pipe (Depends-on): Add posix_spawnattr_setpgroup.
2020-12-24 Bruno Haible <bruno@clisp.org>
unistd-safer: Implement pipe_safer on native Windows.
* lib/pipe-safer.c (pipe_safer): Don't test HAVE_PIPE.
* modules/unistd-safer (Depends-on): Add pipe-posix.
2020-12-24 Bruno Haible <bruno@clisp.org>
execute: Use posix_spawn by default on native Windows.
* lib/execute.c (EXECUTE_IMPL_AVOID_POSIX_SPAWN): New macro.
(execute): Use it to decide among the two possible implementations.
2020-12-24 Paul Eggert <eggert@cs.ucla.edu>
canonicalize-lgpl: merge proposed libc changes
This merges the changes proposed for glibc in:
https://sourceware.org/pipermail/libc-alpha/2020-December/121085.html
https://sourceware.org/pipermail/libc-alpha/2020-December/121086.html
* lib/canonicalize-lgpl.c: Include idx.h and filename.h
unconditionally.
(idx_t, IDX_MAX, FILE_SYSTEM_PREFIX_LEN, IS_ABSOLUTE_FILE_NAME)
(ISSLASH) [_LIBC]: Remove.
2020-12-24 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Implement for native Windows.
* lib/spawni.c (grow_inheritable_handles, shrink_inheritable_handles,
close_inheritable_handles, memiszero, sigisempty, open_handle, do_open,
do_dup2, do_close): New functions.
(__spawni): Implement on native Windows.
* modules/posix_spawn-internal (Depends-on): Add filename,
concat-filename, findprog-in, malloca, windows-spawn.
* doc/posix-functions/posix_spawn.texi: Update.
* doc/posix-functions/posix_spawnp.texi: Likewise.
2020-12-24 Bruno Haible <bruno@clisp.org>
windows-spawn: Export another auxiliary function.
* lib/windows-spawn.h (convert_CreateProcess_error): New declaration.
* lib/windows-spawn.c (convert_CreateProcess_error): New function,
extracted from spawnpvech.
(spawnpvech): Use it.
2020-12-24 Bruno Haible <bruno@clisp.org>
windows-spawn: Export some more auxiliary functions.
* lib/windows-spawn.h: Include <stdbool.h>.
(struct inheritable_handles): New type.
(init_inheritable_handles, compose_handles_block,
free_inheritable_handles): New declarations.
* lib/windows-spawn.c (init_inheritable_handles, compose_handles_block):
New functions, based on spawnvech.
(free_inheritable_handles): New function.
(spawnpvech): Use them.
2020-12-24 Bruno Haible <bruno@clisp.org>
windows-spawn: Export another auxiliary function.
* lib/windows-spawn.h (compose_envblock): New declaration.
* lib/windows-spawn.c (compose_envblock): New function, extracted from
spawnpvech.
(spawnpvech): Use it.
2020-12-24 Bruno Haible <bruno@clisp.org>
windows-spawn: Export an auxiliary function.
* lib/windows-spawn.h (compose_command): New declaration.
* lib/windows-spawn.c (compose_command): New function, extracted from
spawnpvech.
(spawnpvech): Use it.
2020-12-24 Bruno Haible <bruno@clisp.org>
posix_spawn* tests: Add support for native Windows.
* tests/test-posix_spawn-open1.c (DATA_FILENAME): Treat native Windows
like Cygwin.
* tests/test-posix_spawn-dup2-stdin.c (main): Don't assume the signals
SIGHUP and SIGPIPE. On native Windows, don't call
posix_spawnattr_setsigmask.
* tests/test-posix_spawn-dup2-stdout.c (main): Likewise.
* tests/test-posix_spawn-fchdir.c (main): Likewise.
* tests/test-posix_spawn-chdir.c (test): Likewise. Accept the child
output from Cygwin's 'pwd' program.
* tests/test-posix_spawn-script.c (main): On native Windows, skip the
executable-shell-script part of the test.
* tests/test-posix_spawnp-script.c (main): Likewise.
* modules/posix_spawn-tests (Depends-on): Add freopen, waitpid.
(configure.ac): Don't define the POSIX_SPAWN_PORTED conditional.
(Makefile.am): Don't test the POSIX_SPAWN_PORTED conditional.
* modules/posix_spawnp-tests (Depends-on): Add waitpid.
(configure.ac): Don't define the POSIX_SPAWN_PORTED conditional.
(Makefile.am): Don't test the POSIX_SPAWN_PORTED conditional.
* modules/posix_spawn_file_actions_addchdir-tests (Makefile.am): Don't
test the POSIX_SPAWN_PORTED conditional.
* modules/posix_spawn_file_actions_addfchdir-tests (configure.ac):
Define the POSIX_SPAWN_PORTED conditional here.
2020-12-24 Bruno Haible <bruno@clisp.org>
sh-filename: Add support for native Windows.
* m4/sh-filename.m4 (gl_SH_FILENAME): Treat native Windows like Cygwin.
2020-12-24 Paul Eggert <eggert@cs.ucla.edu>
careadlinkat: improve warning line number
This propagates an idea first used in canonicalize-lgpl.
* lib/careadlinkat.c (GCC_BOGUS_WRETURN_LOCAL_ADDR):
New macro.
(careadlinkat): Use it.
linkat: use eloop-threshold
* lib/linkat.c: Include eloop-threshold.h.
Do not include sys/param.h.
(MAXSYMLINKS): Remove.
(link_follow, linkat_follow): Use __eloop_threshold instead
of MAXSYMLINKS.
* m4/linkat.m4 (gl_FUNC_LINKAT): Omit sys/param.h check.
* modules/linkat (Depends-on): Add eloop-threshold. Sort.
canonicalize-lgpl: use eloop-threshold
* lib/canonicalize-lgpl.c [!_LIBC]: Include eloop-threshold.h.
(MAXSYMLINKS, __eloop_threshold): Remove.
* modules/canonicalize-lgpl (Depends-on): Add eloop-threshold.
eloop-threshold: new module
* config/srclist.txt: Add a comment about it.
* lib/eloop-threshold.h, modules/eloop-threshold: New files.
canonicalize: prefer faccessat to stat
A proper faccessat doesn't have the EOVERFLOW problem, and can be
more efficient as it needn't gather data from the filesystem to
fill in struct stat. So use stat only if faccessat is absent,
or when checking for symlink loops in canonicalize.c.
* lib/canonicalize-lgpl.c, lib/canonicalize.c:
Include fcntl.h, for AT_EACCESS.
(FACCESSAT_NEVER_EOVERFLOWS): Default to false.
(file_accessible): New function, based on faccessat but with
a fallback to stat and with an EOVERFLOW workaround.
(dir_check): Use it.
(dir_suffix): New static constant.
* lib/canonicalize-lgpl.c (FACCESSAT_NEVER_EOVERFLOWS) [_LIBC]:
Use __ASSUME_FACCESSAT2 to set FACCESSAT_NEVER_EOVERFLOWS
(__faccessat) [!_LIBC]: Define.
(realpath_stk): Use dir_suffix now.
* lib/canonicalize.c (canonicalize_filename_mode_stk):
If logical, don't check each component's existence; just check
at the end, as that's enough.
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE)
(gl_CANONICALIZE_LGPL_SEPARATE):
Require gl_FUNC_FACCESSAT_EOVERFLOW,
gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, and check for faccessat.
(gl_CANONICALIZE_LGPL_SEPARATE): Do not check for readlink,
as the code does not use HAVE_READLINK.
* modules/canonicalize, modules/canonicalize-lgpl (Files):
Add m4/faccessat.m4, m4/lstat.m4.
(Depends-on): Add fcntl-lh.
faccessat: work around F_OK EOVERFLOW bug
* doc/posix-functions/faccessat.texi: Mention the problem.
* lib/faccessat.c (FACCESSAT_NEVER_EOVERFLOWS): Default to 0.
(rpl_faccessat): If !FACCESSAT_NEVER_EOVERFLOWS, check
for F_OK and EOVERFLOW, which means we can return 0.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT_EOVERFLOW): New macro.
(gl_FUNC_FACCESSAT): Use it.
stat failing with EOVERFLOW implies existence
* lib/euidaccess.c (euidaccess):
* lib/file-has-acl.c (file_has_acl):
* lib/link.c (link, rpl_link):
* lib/mkdir.c (rpl_mkdir):
* lib/mkfifo.c (rpl_mkfifo):
* lib/mknod.c (rpl_mknod):
* lib/ptsname_r.c (__ptsname_r):
* lib/symlink.c (rpl_symlink):
* lib/symlinkat.c (rpl_symlinkat):
* lib/unlink.c (rpl_unlink):
* lib/unlinkat.c (rpl_unlinkat):
* lib/utime.c (utime):
If stat fails with EOVERFLOW the file exists, so treat it that way
in file-existence tests that do not need struct stat values.
canonicalize-lgpl: remove freea macro
* lib/canonicalize-lgpl.c (freea) [_LIBC]: Remove; not needed.
canonicalize, canonicalize-lgpl: fix symlink bug
Problem reported by Adhemerval Zanella in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00155.html
* lib/canonicalize-lgpl.c, lib/canonicalize.c:
(suffix_requires_dir_check, dir_check): New functions.
(GCC_BOGUS_WRETURN_LOCAL_ADDR): New macro, to put the diagnostic
closer to the related GCC diagnostics.
* lib/canonicalize-lgpl.c (realpath_stk):
* lib/canonicalize.c (canonicalize_file_mode_stk):
Use them to fix a bug with .../symlink-to-regular-file/ etc.
* lib/canonicalize-lgpl.c (__stat) [!_LIBC]: New macro.
(realpath_stk): New function,
with the contents of the old __realpath and a new scratch buffer arg.
This is needed to pacify GCC 10.1, as canonicalize.c is already doing.
(__realpath): Use it.
* tests/test-canonicalize-lgpl.c, tests/test-canonicalize.c:
Add test cases for the bugs.
2020-12-24 Bruno Haible <bruno@clisp.org>
execute: Treat signalled processes like wait-process does.
* lib/execute.c: Include <sys/types.h>, <sys/wait.h>.
(execute): Recognize the case where the exit code indicates a signalled
child process.
* tests/test-execute-main.c (main): Update expected test result.
* modules/execute (Depends-on): Add sys_wait.
2020-12-24 Bruno Haible <bruno@clisp.org>
windows-spawn: Improve errno upon failure on native Windows.
* lib/windows-spawn.c (spawnpvech): Map the CreateProcess errors
ERROR_BAD_FORMAT and ERROR_BAD_EXE_FORMAT to ENOEXEC.
* tests/executable-script.sh: New file.
* tests/test-posix_spawn-script.c (main): Also try executing
executable-script.sh.
* tests/test-posix_spawnp-script.c (main): Likewise.
* tests/test-execute-script.c (main): Likewise.
* tests/test-spawn-pipe-script.c (main): Likewise.
* modules/posix_spawn-tests (Files): Add tests/executable-script.sh.
* modules/posix_spawnp-tests (Files): Likewise.
* modules/execute-tests (Files): Likewise.
* modules/spawn-pipe-tests (Files): Likewise.
2020-12-24 Bruno Haible <bruno@clisp.org>
findprog-in: Improve errno upon failure on native Windows.
* lib/findprog-in.c (find_in_given_path): If the file basename has no
dot and the search with a suffix returned no result, do also a search
without a suffix, and set errno = ENOEXEC if we find a file in this way.
* tests/test-spawn-pipe-script.c (main): Update expected errno.
2020-12-23 Bruno Haible <bruno@clisp.org>
posix_spawn, posix_spawnp: Fix execution of scripts.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE): New macro.
(gl_POSIX_SPAWN_BODY): Invoke it. Set REPLACE_POSIX_SPAWN if posix_spawn
or posix_spawnp allows unsecure execution of scripts.
* doc/posix-functions/posix_spawn.texi: Document the script execution
problem.
* doc/posix-functions/posix_spawnp.texi: Likewise.
2020-12-23 Bruno Haible <bruno@clisp.org>
Add unit tests regarding execution of scripts.
* tests/executable-script: New file.
* tests/executable-shell-script: New file.
* tests/test-posix_spawn-script.c: New file.
* tests/test-posix_spawnp-script.c: New file.
* tests/test-execute-script.c: New file.
* tests/test-spawn-pipe-script.c: New file.
* modules/posix_spawn-tests (Files): Add
tests/test-posix_spawn-script.c, tests/executable-script,
tests/executable-shell-script.
(Makefile.am): Compile and run test-posix_spawn-script.
* modules/posix_spawnp-tests (Files): Add
tests/test-posix_spawnp-script.c, tests/executable-script,
tests/executable-shell-script.
(Makefile.am): Compile and run test-posix_spawnp-script.
* modules/execute-tests (Files): Add tests/test-execute-script.c,
tests/executable-script, tests/executable-shell-script.
(Makefile.am): Compile and run test-execute-script.
* modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-script.c,
tests/executable-script, tests/executable-shell-script.
(Makefile.am): Compile and run test-spawn-pipe-script.
2020-12-23 Bruno Haible <bruno@clisp.org>
Don't execute scripts without '#!' marker through /bin/sh.
This reflects the change done in glibc through
<https://sourceware.org/bugzilla/show_bug.cgi?id=13134> and
<https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d96de9634a334af16c0ac711074c15ac1762b23c>.
* lib/spawni.c (internal_function): Remove macro.
(script_execute): Remove function.
(__spawni): Don't invoke script_execute.
* lib/execute.c (execute): Disable the ENOEXEC handling.
* lib/spawn-pipe.c (create_pipe): Likewise.
* NEWS: Mention the change.
2020-12-23 Bruno Haible <bruno@clisp.org>
posix_spawn[p]: Fix compilation error on Windows (regr. 2020-12-14).
Reported by Adrian Ebeling <devl@adrian-ebeling.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00189.html>.
* lib/spawni.c (__spawni): Update function parameters.
2020-12-23 Bruno Haible <bruno@clisp.org>
posix_spawn tests: Add two more tests.
* tests/test-posix_spawn-inherit0.c: New file, based on
tests/test-posix_spawn-open2.c.
* tests/test-posix_spawn-inherit1.c: New file, based on
tests/test-posix_spawn-open2.c.
* modules/posix_spawn-tests (Files): Add them.
(Depends-on): Add fflush.
(Makefile.am): Compile and run test-posix_spawn-inherit0 and
test-posix_spawn-inherit1.
2020-12-23 Bruno Haible <bruno@clisp.org>
posix_spawn tests: Add another test.
* tests/test-posix_spawn-open2.c: New file, based on
tests/test-posix_spawn-open1.c.
* modules/posix_spawn-tests (Files): Add it.
(Makefile.am): Compile and run test-posix_spawn-open1.
2020-12-20 Bruno Haible <bruno@clisp.org>
Remove support for broken <wchar.h> in AIX 3.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Simplify test programs.
2020-12-20 Bruno Haible <bruno@clisp.org>
Remove support for broken <wchar.h> in BSD/OS and OSF/1.
* lib/wchar.in.h: Don't include <stdio.h>, <time.h>.
* lib/mbchar.h: Likewise.
* lib/mbiter.h: Likewise.
* lib/mbuiter.h: Likewise.
* m4/stdint.m4 (gl_STDINT_INCLUDES): Likewise.
* lib/mbfile.h: Don't include <time.h>.
* lib/mbswidth.h: Update comment.
* lib/stdint.in.h: Don't include <stddef.h>, <stdio.h>, <time.h> before
<wchar.h>.
* lib/wctype.in.h: Likewise.
* m4/btowc.m4 (gl_FUNC_BTOWC): Simplify test programs.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Likewise.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise.
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/mbrlen.m4 (gl_FUNC_MBRLEN, gl_MBRLEN_INCOMPLETE_STATE,
gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL): Likewise.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC, gl_MBRTOWC_INCOMPLETE_STATE,
gl_MBRTOWC_SANITYCHECK, gl_MBRTOWC_NULL_ARG1, gl_MBRTOWC_NULL_ARG2,
gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL, gl_MBRTOWC_STORES_INCOMPLETE,
AC_FUNC_MBRTOWC): Likewise.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Likewise.
* m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE):
Likewise.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS, gl_MBSRTOWCS_WORKS): Likewise.
* m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise.
* m4/mbswidth.m4 (gl_MBSWIDTH): Likewise.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H, gl_WCHAR_H_INLINE_OK): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/wcsdup.m4 (gl_FUNC_WCSDUP): Likewise.
* m4/wcsnrtombs.m4 (gl_WCSNRTOMBS_WORKS_IN_TRADITIONAL_LOCALE):
Likewise.
* m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS, gl_WCSRTOMBS_TERMINATION,
gl_WCSRTOMBS_NULL): Likewise.
* m4/wcstok.m4 (gl_FUNC_WCSTOK): Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/wctype_h.m4 (gl_WCTYPE_H): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise.
* m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Likewise.
* m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Likewise.
* m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Likewise.
* m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Likewise.
* m4/wmemset.m4 (gl_FUNC_WMEMSET): Likewise.
2020-12-20 Bruno Haible <bruno@clisp.org>
isnanf: Fix autoconf test.
* m4/isnanf.m4 (gl_ISNANF_WORKS): Fix one of the NaN tests.
2020-12-20 Bruno Haible <bruno@clisp.org>
Remove some of the support for obsolete IRIX 4 and 5.
* m4/mountlist.m4 (AC_FUNC_GETMNTENT): Don't test for getmntent in
libsun.
* tests/init.sh (setup_): Don't talk about IRIX 5.
2020-12-20 Bruno Haible <bruno@clisp.org>
filemode: Remove Cray support.
* lib/filemode.c (IS_MIGRATED_FILE): Remove macro.
(filemodestring): Don't produce an 'M' type.
* m4/filemode.m4 (gl_FILEMODE): Don't invoke AC_STRUCT_ST_DM_MODE.
* m4/st_dm_mode.m4: Remove file.
* modules/filemode (Files): Remove it.
2020-12-20 Paul Eggert <eggert@cs.ucla.edu>
free-posix: assume glibc 2.33 fixes this.
* m4/free.m4 (gl_FUNC_FREE): Assume glibc 2.33+ is fixed.
Use compile-time test rather than guessing for cross-builds.
2020-12-20 Bruno Haible <bruno@clisp.org>
backupfile: Fix compilation error on native Windows (regr. 2018-10-23).
Reported by Adrian Ebeling <adrianebeling@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00156.html>.
* lib/backupfile.c (fpathconf): Define fallback, like for pathconf.
2020-12-20 Bruno Haible <bruno@clisp.org>
float: Fix compilation error when gnulib's float.h exists twice.
Reported by Santiago Vila <sanvila@unex.es>.
* lib/float.in.h (GNULIB_defined_long_double_union): New macro.
2020-12-19 Bruno Haible <bruno@clisp.org>
free-posix: Assume future POSIX compliance only on OpenBSD and Solaris.
* m4/free.m4 (gl_FUNC_FREE): Guess yes only on OpenBSD and Solaris.
Don't trust _POSIX_VERSION for this test.
2020-12-19 Paul Eggert <eggert@cs.ucla.edu>
free-posix: port to GNU/Linux
* m4/free.m4 (gl_FUNC_FREE): Don’t assume GNU hosts are free of
the bug, as it occurs on Ubuntu 20.10 x86-64 and, I assume, on
other GNU/Linux hosts.
2020-12-19 Bruno Haible <bruno@clisp.org>
free-posix: Add tests.
* tests/test-free.c: New file.
* tests/macros.h (ASSERT_NO_STDIO,
WRITE_MACROEXPANDED_INTEGER_TO_STDERR, WRITE_INTEGER_TO_STDERR,
WRITE_TO_STDERR): New macros.
* modules/free-posix-tests: New file.
2020-12-18 Bruno Haible <bruno@clisp.org>
free-posix: Add C++ declaration test.
* tests/test-stdlib-c++.cc (free): New declaration.
2020-12-18 Bruno Haible <bruno@clisp.org>
free-posix: New module, renamed from 'free'.
* modules/free-posix: Renamed from modules/free.
(configure.ac): Update gl_STDLIB_MODULE_INDICATOR invocation.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_FREE_POSIX,
not GNULIB_FREE.
* modules/stdlib (Makefile.am): Substitute GNULIB_FREE_POSIX, not
GNULIB_FREE.
* lib/stdlib.in.h (free): Test GNULIB_FREE_POSIX, not GNULIB_FREE.
* doc/posix-functions/free.texi: Mention the module 'free-posix' and
what it does.
* NEWS: Mention that module 'free' no longer exists.
* modules/canonicalize (Depends-on): Add free-posix. Remove free.
* modules/canonicalize-lgpl (Depends-on): Likewise.
2020-12-18 Bruno Haible <bruno@clisp.org>
free: Remove support for obsolete platforms.
* m4/free.m4 (gl_FUNC_FREE): Assume free(NULL) works. Don't define
CANNOT_FREE_NULL.
* lib/free.c (rpl_free): Don't test CANNOT_FREE_NULL.
* modules/free (Description): Update.
* doc/posix-functions/free.texi: Don't mention SunOS 4 any more.
2020-12-18 Paul Eggert <eggert@cs.ucla.edu>
intprops: port to ICC 2021.1 Beta 20201112
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P):
Port to ICC 2021.1, which has a non-working __builtin_mul_overflow_p.
Add a clause for other compilers that claim to support
__builtin_mul_overflow_p, since we might as well find out about
slackers other than Clang and ICC.
(INT_MULTIPLY_WRAPV): ICC 2021 has GCC bug 91450, so treat it
like older GCCs even when it claims to be a newer one.
2020-12-18 Bruno Haible <bruno@clisp.org>
intprops: Avoid potentially buggy __builtin_add_overflow in GCC 5, 6.
Reported by Stefan Liebler <stli@linux.ibm.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00152.html>.
* lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW): Don't define for
GCC 5.x and 6.x.
* lib/glob.c (size_add_wrapv): Don't use __builtin_add_overflow for
GCC 5.x and 6.x.
2020-12-17 Bruno Haible <bruno@clisp.org>
free: Fix warning.
Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00148.html>.
* lib/stdlib.in.h (free): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether 'free' is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_FREE, REPLACE_FREE.
* modules/stdlib (Makefile.am): Substitute GNULIB_FREE, REPLACE_FREE.
* m4/free.m4 (gl_FUNC_FREE): Set REPLACE_FREE, instead of defining
'free' as a macro here.
* modules/free (Depends-on): Add stdlib.
(configure.ac): Test REPLACE_FREE. Invoke gl_STDLIB_MODULE_INDICATOR.
2020-12-17 Paul Eggert <eggert@cs.ucla.edu>
canonicalize-lgpl: fix AIX test failures
This merges the recent canonicalize.c fix into canonicalize-lgpl.c.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00138.html
* lib/canonicalize-lgpl.c: Include sys/stat.h.
(__realpath): When testing a file name ending in '/', use stat
rather than readlink, so that it does the right thing on AIX.
* modules/canonicalize-lgpl (Depends-on): Add stat, sys_stat.
canonicalize: omit second readlink when not needed
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Omit second readlink when (can_exist != CAN_MISSING
&& startlen != 0 && !logical). Simplify.
canonicalize: remove arbitrary 8192-byte limit
Remove canonicalize.c’s arbitrary 8192-byte limit on platforms
like GNU Hurd that do not define the PATH_MAX macro, and similarly
for canonicalize-lgpl.c’s arbitrary 1024-byte limit. Do this by
using scratch buffers. Lessen the number of differences between
the two source files, to simplify this and future maintenance.
* lib/canonicalize-lgpl.c (__realpath):
* lib/canonicalize.c (canonicalize_filename_mode_stk):
Use scratch buffers instead of malloc and malloca. This avoids
the need for alloca, and avoids the need for malloc in most cases.
* lib/canonicalize-lgpl.c, lib/canonicalize.c: Make these files
easier to compare, e.g., by sorting include files and by switching
to the GNU convention of calling file names "file names", not
"path names". Include stdbool.h, scratch_buffer.h.
* lib/canonicalize-lgpl.c (IDX_MAX) [_LIBC]: New macro.
(malloca) [_LIBC]: Remove.
[!_LIBC]: Do not include malloca.h.
(get_path_max): New function, so that pathconf is called only in
the rare and dubious case when when RESOLVED is not null and
PATH_MAX is not defined. Invoke pathconf on "/" not the input
file name, as we care about the longest file name starting from
"/" (not from the input file name), and POSIX does not specify
what pathconf does on a non-directory file anyway. If PATH_MAX is
not defined, do not worry about overriding a path_max of 0, and do
not let path_max exceed IDX_MAX.
(__realpath): Remove an assumption that file name components
cannot exceed 1024 bytes when PATH_MAX is not defined (wrong for
the Hurd, presumably).
When allocating the result, allocate it to just the right size;
this costs nothing when the result is smaller than 1023 bytes,
and for larger results it's probably worth the CPU to call realloc,
as canonicalize.c already does.
* lib/canonicalize.c: Include attribute.h.
Do not include pathmax.h or xgetcwd.h.
(PATH_MAX): Do not define, so file names longer than 8192 bytes
work on platforms with no fixed limit.
(canonicalize_filename_mode_stk): New function, with
the content of the old canonicalize_filename_mode.
Use getcwd instead of xgetcwd, and readlink instead of areadlink,
since the scratch buffers now do memory management for us.
Use rawmemchr instead of adding strlen.
Use mempcpy instead of mempcpy + size.
Assume free preserves errno.
(canonicalize_filename_mode): Use it.
* modules/canonicalize (Depends-on): Remove areadlink, pathmax,
xgetcwd. Add attribute, free, getcwd, mempcpy, rawmemchr,
scratch_buffer, stdbool, xalloc-die.
* modules/canonicalize-lgpl (Depends-on): Remove alloca-opt,
malloca, realloc-posix. Add scratch_buffer, stdbool.
canonicalize-lgpl: simplify merge to glibc
This patch lessens the differences between git glibc
stdlib/canonicalize.c and lib/canonicalize-lgpl.c.
The (perhaps wishful) goal is to make them identical.
* lib/canonicalize-lgpl.c [!_LIBC]:
Include <libc-config.h>, not config.h.
Omit an unnecessary (!HAVE_CANONICALIZE_FILE_NAME ||
!FUNC_REALPATH_WORKS || defined _LIBC) #if.
Do not include alloca.h, since we use malloca now.
[_LIBC]: Include <eloop-threshold.h>, and define dummy macros
FILE_SYSTEM_PREFIX_LEN, IS_ABSOLUTE_FILE_NAME, ISSLASH, malloca,
freea so that the mainline code can be kept #ifdef free.
[!_LIBC]: Remove dummy macros for SHLIB_COMPAT, versioned_symbol,
compat_symbol, weak_alias, __set_errno since libc-config.h does that.
Add redirecting macros __mempcpy, __pathconf, __rawmemchr,
__eloop_threshold. All uses of their definiens changed.
(SIZE_MAX): Remove; no longer needed.
(alloc_failed): Remove, and remove all instances.
No need for alloc_failed now that free preserves errno.
(__realpath): Default path_max to 1024 instead of 8192, as that’s
the glibc tradition and is safer when the 2nd argument is null.
Use __rawmemchr instead of strchr.
Use __mempcpy where appropriate.
Simplify test for overflow so that it does not need SIZE_MAX.
Do not preserve errno around free or freea calls; no longer needed.
Mark __realpath with libc_hidden_def.
* modules/canonicalize-lgpl (Depends-on): Add free, libc-config,
malloc-posix, mempcpy, realloc-posix, rawmemchr.
* modules/free: Now LGPLv2+, for canonicalize-lgpl.
free: preserve errno
* lib/free.c (rpl_free): Preserve errno. Check for null only if
CANNOT_FREE_NULL is defined, as an optimization for POSIX 2008
platforms that do not preserve errno.
* m4/free.m4 (gl_FUNC_FREE): Check whether free preserves errno.
Also, define CANNOT_FREE_NULL if free cannot free NULL.
* modules/free (configure.ac): Also replace 'free' if
it does not preserve errno.
idx: simplify IDX_MAX, remove IDX_WIDTH
* lib/idx.h (IDX_MAX): Simplify by removing obsolete reference
to UNSIGNED_IDX_T.
(IDX_WIDTH): Remove, since it’s not used and its value
arguably should be PTRDIFF_WIDTH anyway.
2020-12-16 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir-tests: Rename test.
* tests/test-posix_spawn-fchdir.c: Renamed from
tests/test-posix_spawn5.c.
* modules/posix_spawn_file_actions_addfchdir-tests (Files, Makefile.am):
Update.
posix_spawn_file_actions_addchdir-tests: Rename test.
* tests/test-posix_spawn-chdir.c: Renamed from
tests/test-posix_spawn4.c.
* modules/posix_spawn_file_actions_addchdir-tests (Files, Makefile.am):
Update.
posix_spawn-tests: Rename test.
* tests/test-posix_spawn-open1.c: Renamed from
tests/test-posix_spawn3.c.
* modules/posix_spawn-tests (Files, Makefile.am): Update.
posix_spawnp-tests: Rename test.
* tests/test-posix_spawn-dup2-stdin.c: Renamed from
tests/test-posix_spawn2.c.
* tests/test-posix_spawn-dup2-stdin.in.sh: Renamed from
tests/test-posix_spawn2.in.sh.
* modules/posix_spawnp-tests (Files, Makefile.am): Update.
posix_spawnp-tests: Rename test.
* tests/test-posix_spawn-dup2-stdout.c: Renamed from
tests/test-posix_spawn1.c.
* tests/test-posix_spawn-dup2-stdout.in.sh: Renamed from
tests/test-posix_spawn1.in.sh.
* modules/posix_spawnp-tests (Files, Makefile.am): Update.
2020-12-14 Bruno Haible <bruno@clisp.org>
findprog-in: Allow overriding the current directory.
* lib/findprog.h (find_in_given_path): Add directory argument.
* lib/findprog-in.c (find_in_given_path): Likewise.
* lib/execute.c (execute): Update caller.
* lib/spawn-pipe.c (create_pipe): Likewise.
* lib/windows-spawn.c (spawnpvech): Likewise.
* NEWS: Mention the change.
2020-12-14 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Make better use of 'const'.
* lib/spawn_int.h (__spawni): Does not need write access to the elements
of argv and envp.
* lib/spawni.c (__spawni, script_execute): Likewise.
* lib/spawn.c (posix_spawn): Update caller.
* lib/spawnp.c (posix_spawnp): Likewise.
2020-12-14 Bruno Haible <bruno@clisp.org>
spawn: Make it compile on native Windows.
* modules/spawn (Depends-on): Add signal-h.
2020-12-14 Bruno Haible <bruno@clisp.org>
windows-spawn: Avoid shadowing a variable.
* lib/windows-spawn.c (spawnpvech): Rename local variable 'flags'.
2020-12-13 Paul Eggert <eggert@cs.ucla.edu>
string: port memchr macro to AIX 7.2 XLC
Its <string.h> defines a memchr macro to help inlining.
* lib/string.in.h (memchr): #undef before #defining.
canonicalize: fix AIX test failures
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00109.html
* lib/canonicalize.c (canonicalize_filename_mode):
When testing a file name ending in '/', use stat rather than
readlink, so that it does the right thing on AIX.
* modules/canonicalize (Depends-on): Add readlink, to pull in the
recent changes in the Gnulib readlink module.
Assume readlink/readlinkat ERANGE fix
* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
* lib/careadlinkat.c (readlink_stk):
Do not worry about readlink or readlinkat failing with errno == ERANGE,
since the Gnulib readlink and readlinkat modules now fix that.
getcwd: port to AIX
* lib/getcwd.c [!_LIBC]: Undef stat64 before #defining it,
in case our sys/stat.h #defined a function macro with the same name.
readlink, readlinkat: add ERANGE portability
Fix some portability issues with Gnulib's readlink and readlinkat,
notably mostly working around the ERANGE problem in AIX and HP-UX.
* doc/posix-functions/readlink.texi:
* doc/posix-functions/readlinkat.texi:
ERANGE problem is mostly fixed now. Mention AIX problem with
trailing / and EINVAL. Lessen differences between these two files.
* lib/readlink.c (rpl_readlink):
* lib/readlinkat.c (rpl_readlinkat):
If stat ("FILE/", ...) reports EOVERFLOW, treat FILE/ as an
existing directory. Mostly work around READLINK_TRUNCATE BUG.
Lessen spurious differences between the readlink and readlinkat code.
* lib/readlinkat.c (rpl_readlinkat):
Fix bug where stat was used where fstatat was intended.
* m4/readlink.m4 (gl_FUNC_READLINK):
Rename gl_cv_func_readlink_works to gl_cv_func_readlink_trailing_slash
to identify readlink problems more precisely. All uses changed.
Guess no on AIX or HP-UX for this variable.
Add check for whether readlink truncates results,
and define new macro READLINK_TRUCATE_BUG accordingly.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT):
Also check gl_cv_func_readlink_trailing_slash when deciding
whether to replace readlinkat.
* modules/readlinkat (Depends-on): Most dependencies are also
needed if replacing readlinkat. fstatat is different, as it
is needed only if replacing an existing readlinkat.
2020-12-13 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix hanging processes on Windows (regression 2020-11-30).
* lib/spawn-pipe.c (create_pipe): After spawning the subprocess, close
the stdin_handle and/or stdout_handle.
2020-12-12 Bruno Haible <bruno@clisp.org>
Fix gnulib-tool error when some modules occur in tests/.
* doc/gnulib.texi (Specification): Update statistics.
(Autoconf macros): Don't suggest to use AC_LIBOBJ in a .m4 file.
(Using AC_LIBOBJ): New section.
* check-AC_LIBOBJ: New file.
* modules/fnmatch-gnu (Files): Add lib/fnmatch.c.
* modules/fopen-gnu (Files): Add lib/fopen.c.
* modules/memmem (Files): Add lib/memmem.c.
* modules/renameat (Files): Add lib/at-func2.c.
* modules/strcasestr (Files): Add lib/strcasestr.c.
* modules/strstr (Files): Add lib/strstr.c.
2020-12-11 Bruno Haible <bruno@clisp.org>
sh-quote, execute, spawn-pipe, etc.: Make better use of 'const'.
* lib/sh-quote.h (shell_quote_argv): Does not need write access to the
elements of argv.
* lib/sh-quote.c (shell_quote_argv): Likewise.
* lib/windows-spawn.h (prepare_spawn): Add 'const' the argument type and
the return type.
* lib/windows-spawn.c (prepare_spawn): Likewise.
* lib/os2-spawn.h (prepare_spawn): Likewise.
* lib/os2-spawn.c (prepare_spawn): Likewise.
* lib/execute.h (execute): Does not need write access to the elements of
prog_argv.
* lib/execute.c (execute): Likewise.
* lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi):
Likewise.
* lib/spawn-pipe.c (create_pipe, create_pipe_bidi, create_pipe_in,
create_pipe_out): Likewise.
* lib/pipe-filter.h (pipe_filter_ii_execute, pipe_filter_gi_create):
Likewise.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Likewise.
* lib/pipe-filter-gi.c (pipe_filter_gi_create): Likewise.
* lib/javaexec.h (execute_fn): Does not need write access to the
elements of prog_argv.
* lib/javaexec.c (execute_java_class): Update variable types and remove
casts to 'char *'.
* lib/csharpexec.h (execute_fn): Does not need write access to the
elements of prog_argv.
* lib/csharpexec.c (execute_csharp_using_mono,
execute_csharp_using_sscli): Update variable types and remove casts to
'char *'.
* lib/javacomp.c (compile_using_envjavac, compile_using_gcj,
compile_using_javac, compile_using_jikes, is_envjavac_gcj,
is_envjavac_gcj43, is_gcj_present, is_gcj_43, is_javac_present,
is_jikes_present): Update variable types and remove casts to 'char *'.
* lib/javaversion.c (execute_and_read_line): Does not need write access
to the elements of prog_argv.
* lib/csharpcomp.c (compile_csharp_using_mono,
compile_csharp_using_sscli): Update variable types and remove casts to
'char *'.
* tests/test-sh-quote.c (main): Update variable types and remove casts
to 'char *'.
* tests/test-execute-main.c (main): Update variable types and remove
casts to 'char *'.
* tests/test-spawn-pipe-main.c (test_pipe): Update variable types and
remove casts to 'char *'.
* NEWS: Mention the changes.
2020-12-11 Bruno Haible <bruno@clisp.org>
execute-tests: Fix compilation error with MSVC.
* tests/test-execute-child.c (is_device): With _fstat, use
'struct _stat', not 'struct stat'.
2020-12-11 Paul Eggert <eggert@cs.ucla.edu>
vararrays: just use 2.70
* m4/vararrays.m4 (AC_C_VARARRAYS): Do not override Autoconf 2.70
and later, since Autoconf 2.70 matches Gnulib now.
sys_types: just use 2.70
* m4/sys_types_h.m4 (AC_HEADER_MAJOR):
Reindent to match Autoconf sources.
Use Autoconf 2.70 as a prerequisite, not 2.69c.
stdint: port to Autoconf 2.70
* m4/stdint.m4 (gl_STDINT_H): Check for inttypes.h and sys/types.h
instead of assuming that AC_INCLUDES_DEFAULT does it.
The old code relied on AC_INCLUDES_DEFAULT being called
and setting ac_cv_header_inttypes_h and ac_cv_header_sys_types_h,
but this does not occur in Autoconf 2.70.
pid_t.m4: just use 2.70
* m4/pid_t.m4 (AC_TYPE_PID_T):
Use Autoconf 2.70 as a prerequisite, not 2.69c.
largefile: just use 2.70
* m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES):
Use Autoconf 2.70 as a prerequisite, not 2.69c.
AC_C_RESTRICT: update from Autoconf
* m4/gnulib-common.m4 (gl_PROG_CC_C99): Use Autoconf 2.70
as a prerequisite, not 2.69c, since 2.70 is now out.
(AC_C_RESTRICT): Define only for 2.70 or earlier.
Try __restrict__ before __restrict.
extensions: update from Autoconf
* m4/extensions.m4 (AC_CHECK_INCLUDES_DEFAULT):
Provide a default implementation for Autoconf 2.69 or earlier.
(AC_USE_SYSTEM_EXTENSIONS): Copy from Autoconf git. Define only
if Autoconf 2.70 or earlier, since 2.70.1 or later should be OK.
alloca: update from Autoconf
* m4/alloca.m4 (gl_PREREQ_ALLOCA):
Trivial update to match Autoconf 2.70.
2020-12-11 Bruno Haible <bruno@clisp.org>
memchr: Work around memory overrun bug on AIX 7.2.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Test against AIX 7.2 bug.
* doc/posix-functions/memchr.texi: Mention the AIX bug.
2020-12-11 Bruno Haible <bruno@clisp.org>
execute-tests: Fix compilation error on AIX in 32-bit mode.
* tests/test-execute-child.c: In order to get the original definition of
fstat, don't use '#undef fstat' and '#undef stat'. Instead, arrange to
include the system's <sys/stat.h> and use it before including other
header files.
2020-12-10 Bruno Haible <bruno@clisp.org>
windows-spawn: Relicense under LGPLv2+.
* modules/windows-spawn (License): Change to LGPLv2+.
2020-12-10 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Fix memory leak on native Windows.
* lib/windows-spawn.h (prepare_spawn): Add a second parameter.
* lib/windows-spawn.c: Don't include xalloc.h.
(quoted_arg_length, quoted_arg_string): New functions, extracted from
prepare_spawn.
(prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all
elements of *new_argv together.
* modules/windows-spawn (Depends-on): Remove xalloc. Add malloc-posix.
* lib/os2-spawn.h (prepare_spawn): Add a second parameter.
* lib/os2-spawn.c: Don't include xalloc.h.
(prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all
elements of *new_argv together.
* lib/execute.c: Include xalloc.h.
(execute): Check return value of prepare_spawn. Free the memory
allocated by prepare_spawn.
* modules/execute (Depends-on): Add xalloc-die.
* lib/spawn-pipe.c: Include xalloc.h.
(create_pipe): Check return value of prepare_spawn. Free the memory
allocated by prepare_spawn.
* modules/spawn-pipe (Depends-on): Add xalloc-die.
2020-12-10 Bruno Haible <bruno@clisp.org>
findprog-in: Relicense under LGPLv2+.
Paul Smith's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00072.html>.
* modules/findprog-in (License): Change to LGPLv2+.
2020-12-10 Bruno Haible <bruno@clisp.org>
findprog-in: Don't exit upon out-of-memory.
* lib/findprog.h (find_in_given_path): Document ENOMEM as possible error
code.
* lib/findprog-in.c: Don't include xalloc.h.
(find_in_given_path): Call concatenated_filename, not
xconcatenated_filename. Call strdup, not xstrdup. Upon out-of-memory,
return NULL with errno set.
* modules/findprog-in (Depends-on): Remove xconcat-filename, xalloc. Add
concat-filename, strdup-posix, malloc-posix.
2020-12-09 Bruno Haible <bruno@clisp.org>
fmaf: Work around a bug on FreeBSD 12.2/arm.
* m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Add one more test.
* doc/posix-functions/fmaf.texi: Mention the FreeBSD bug.
2020-12-09 Bruno Haible <bruno@clisp.org>
threadlib: Fix test-fstrcmp failure on FreeBSD 11.
* m4/threadlib.m4 (gl_THREADLIB_BODY): When weak symbols are not present
on FreeBSD, define PTHREAD_IN_USE_DETECTION_HARD.
* lib/glthread/threadlib.c: Include <errno.h>.
(glthread_in_use): For FreeBSD, provide an alternative implementation
that uses pthread_key_create.
2020-12-09 Bruno Haible <bruno@clisp.org>
math C++ tests: Fix compilation error in with clang >= 7 on FreeBSD.
* lib/math.in.h (isnan): For clang >= 7 on FreeBSD, declare 'rpl_isnan',
not 'isnan'.
2020-12-08 Bruno Haible <bruno@clisp.org>
std-gnu11: Make compatible with Autoconf 2.70.
* m4/std-gnu11.m4: Disable the entire file if Autoconf >= 2.70 is in
use.
2020-12-08 Bruno Haible <bruno@clisp.org>
argp: Avoid undefined behaviour when invoking qsort().
This fixes a test-argp-2.sh test failure on macOS and FreeBSD.
Reported by Jeffrey Walton <noloader@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00085.html>.
* lib/argp-help.c (group_cmp): Remove third argument.
(hol_sibling_cluster_cmp, hol_cousin_cluster_cmp): New functions, based
upon hol_cluster_cmp.
(hol_cluster_cmp): Use hol_cousin_cluster_cmp.
(hol_entry_cmp): Rewritten to implement a total order.
2020-12-08 Bruno Haible <bruno@clisp.org>
argp: Improve comments.
* lib/argp-help.c: Add sectioning comments. Write NULL to designate a
null pointer.
(struct hol_entry): Fix comment regarding sort order of group.
(hol_entry_short_iterate, hol_entry_long_iterate): Add comment.
(until_short, canon_doc_option, hol_entry_qcmp): Improve comment.
(hol_cluster_is_child, argp_hol): Move functions.
(HOL_ENTRY_PTRCMP): Remove unused macro.
2020-12-08 Bruno Haible <bruno@clisp.org>
argp: Don't pass invalid arguments to isspace() and isalnum().
* lib/argp-help.c (canon_doc_option): Cast character to 'unsigned int'
before passing it to isspace() or isalnum().
2020-12-08 Bruno Haible <bruno@clisp.org>
argp: Don't rely on undefined behaviour of _tolower().
Patch by Eric Blake
<https://lists.gnu.org/archive/html/bug-gnulib/2009-09/msg00287.html>.
* lib/argp-help.c (hol_entry_cmp): Don't use _tolower on values that are
not upper-case. Pass correct range to tolower.
2020-12-07 Bruno Haible <bruno@clisp.org>
unicodeio: Fix wrong result on FreeBSD.
* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
characters on all platforms.
2020-12-07 Bruno Haible <bruno@clisp.org>
get-rusage-data tests: Avoid test failure on FreeBSD/x86_64.
* tests/test-get-rusage-data.c (main): Don't expect a strict increase on
FreeBSD systems.
2020-12-07 Bruno Haible <bruno@clisp.org>
get-rusage-data: Fix link error on FreeBSD 12.2/arm64.
* modules/get-rusage-data (configure.ac): Test whether sbrk exists.
* lib/get-rusage-data.c (get_rusage_data_via_setrlimit): Define
trivially of sbrk is not available.
* doc/glibc-functions/sbrk.texi: Mention that the function does not
exist in FreeBSD 12.2/arm64.
* doc/glibc-functions/brk.texi: Likewise.
2020-12-07 Bruno Haible <bruno@clisp.org>
Correct interaction between gl_ANSI_CXX and AC_PROG_CXX.
Suggested by Zack Weinberg in
<https://savannah.gnu.org/support/?110294>.
* m4/ansi-c++.m4 (gl_ANSI_CXX): Mark AC_PROG_CXX as provided.
* modules/uchar-c++-tests: Revert the workaround from 2020-08-18.
2020-12-07 Bruno Haible <bruno@clisp.org>
Tweak the Windows oldnames workaround.
Reported by Daniel R. Hurtmans <Daniel.Hurtmans@ulb.ac.be> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00073.html>.
* lib/unistd.in.h: On native Windows, include <io.h> and <direct.h>
always.
(getcwd): Use _GL_CXXALIAS_MDA_CAST.
* lib/stdlib.in.h (putenv): Likewise.
2020-12-06 Paul Eggert <eggert@cs.ucla.edu>
doc: fix flat address space discussion
* doc/gnulib-readme.texi (Other portability assumptions):
Move the all-bits-zero assumption outside the flat address space
section, since the two issues are independent.
doc: document -static-libubsan more
* doc/gnulib-readme.texi (High Quality): Document pros and cons of
-static-libubsan a bit more. Mostly cons.
2020-12-06 Bruno Haible <bruno@clisp.org>
doc: Add more details regarding the undefined behaviour sanitizer.
* doc/gnulib-readme.texi (High Quality): Describe
-fsanitize-undefined-trap-on-error better.
2020-12-06 Bruno Haible <bruno@clisp.org>
Do the Windows oldnames workaround through the C++ GNULIB_NAMESPACE.
Reported by Daniel R. Hurtmans <Daniel.Hurtmans@ulb.ac.be> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00029.html>.
* lib/c++defs.h (_GL_CXXALIAS_MDA_CAST): New macro.
* lib/fcntl.in.h (creat, open): In C++ mode, when GNULIB_NAMESPACE is
defined: 1. Define a symbol in this namespace. 2. Don't redirect using
a preprocessor #define.
* lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise.
* lib/search.in.h (lfind, lsearch): Likewise.
* lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam):
Likewise.
* lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise.
* lib/string.in.h (memccpy, strdup): Likewise.
* lib/sys_stat.in.h (chmod, umask): Likewise.
* lib/time.in.h (tzset): Likewise.
* lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle,
execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek,
read, rmdir, swab, unlink, write): Likewise.
* lib/utime.in.h (utime): Likewise.
* lib/wchar.in.h (wcsdup): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FCLOSEALL.
(gl_STDIO_H): Set HAVE_DECL_FCLOSEALL.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_FCLOSEALL.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_ECVT,
HAVE_DECL_FCVT, HAVE_DECL_GCVT.
(gl_STDLIB_H): Set HAVE_DECL_ECVT, HAVE_DECL_FCVT, HAVE_DECL_GCVT.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_ECVT,
HAVE_DECL_FCVT, HAVE_DECL_GCVT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_EXECVPE.
(gl_UNISTD_H): Set HAVE_DECL_EXECVPE.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_EXECVPE.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_DECL_WCSDUP.
(gl_WCHAR_H): Set HAVE_DECL_WCSDUP.
* modules/wchar (Makefile.am): Substitute HAVE_DECL_WCSDUP.
2020-12-06 Bruno Haible <bruno@clisp.org>
doc: Mention some missing function declarations.
* doc/glibc-functions/execvpe.texi: Mention the missing declaration on
AIX.
* doc/glibc-functions/fcloseall.texi: Mention the missing declaration on
FreeBSD.
* doc/pastposix-functions/ecvt.texi: Mention the missing declaration on
Cygwin.
* doc/pastposix-functions/fcvt.texi: Likewise.
* doc/pastposix-functions/gcvt.texi: Likewise.
2020-12-06 Bruno Haible <bruno@clisp.org>
doc: Tweak example.
* doc/intprops.texi (Checking Integer Overflow): Use 'printf', not
'print'.
2020-12-06 Bruno Haible <bruno@clisp.org>
filenamecat-tests: Use idx_t for nonnegative ptrdiff_t variables.
* tests/test-filenamecat.c: Include idx.h.
(main): Mark prefixlen as nonnegative.
* modules/filenamecat-tests (Depends-on): Add idx.
2020-12-06 Bruno Haible <bruno@clisp.org>
time_rz: Use idx_t for nonnegative ptrdiff_t variables.
* lib/time_rz.c: Include idx.h.
(save_abbr): Mark zone_size as nonnegative.
* modules/time_rz (Depends-on): Add idx.
2020-12-06 Bruno Haible <bruno@clisp.org>
parse-datetime: Use idx_t for nonnegative ptrdiff_t variables.
* lib/parse-datetime.y: Include idx.h.
(textint): Mark digits as nonnegative.
(parser_control): Mark dates_seen, days_seen, local_zones_seen,
dsts_seen, times_seen, zones_seen as nonnegative.
(lookup_word): Mark wordlen as nonnegative.
(yylex): Mark count as nonnegative.
(parse_datetime2): Mark tzsize as nonnegative.
* modules/parse-datetime (Depends-on): Add idx.
2020-12-06 Bruno Haible <bruno@clisp.org>
fnmatch: Use idx_t for nonnegative ptrdiff_t variables.
* lib/fnmatch.c: Include idx.h. In glibc, define idx_t directly.
* lib/fnmatch_loop.c (EXT): Mark slen, new_used, plensize as
nonnegative.
* modules/fnmatch (Depends-on): Add idx.
2020-12-06 Bruno Haible <bruno@clisp.org>
c-stack: Use idx_t for nonnegative ptrdiff_t variables.
* lib/c-stack.c: Include idx.h.
(die): Mark buflen as nonnegative.
* modules/c-stack (Depends-on): Add idx.
2020-12-06 Bruno Haible <bruno@clisp.org>
backupfile: Use idx_t for nonnegative ptrdiff_t variables.
* lib/backupfile.c: Include idx.h.
(numbered_backup): Mark base_offset as nonnegative.
(backupfile_internal): Likewise.
* modules/backup-rename (Depends-on): Add idx.
* modules/backupfile (Depends-on): Likewise.
2020-12-05 Paul Eggert <eggert@cs.ucla.edu>
doc: fix curved quotes issue
* doc/gnulib.texi: Set txicodequoteundirected and
txicodequotebacktick so that ` and ' in examples do not generate
curved single quotes that do the wrong thing when cut and pasted.
doc: mention static and dynamic checking
* doc/gnulib-readme.texi (High Quality): Add a bit of advice
for static and dynamic checking.
intprops: Add INT_ADD_OK etc.
* doc/intprops.texi (Checking Integer Overflow): New section.
* lib/intprops.h: From a suggestion by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00051.html
(SAFE_INT_ADD, SAFE_INT_SUBTRACT, SAFE_INT_MULTIPLY): New macros.
doc: move exotic platfroms to Target Platforms
* doc/gnulib-intro.texi (Supported Platforms)
(Formerly Supported Platforms, Unsupported Platforms):
New subsections, split off from Target Platforms.
(Unsupported Platforms): Move the exotic-platform stuff here ...
* doc/gnulib-readme.texi (Exotic platforms): ... from this removed
section.
doc: mention intptr_t etc. and IBM i
* doc/gnulib-readme.texi (Other portability assumptions):
Mention intptr_t and uintptr_t, and that arithmetic on them
works in the usual way.
(Exotic platforms): New section, containing material from
the old 'Integer Portability' section. Also mention IBM i.
* doc/intprops.texi (Wraparound Arithmetic):
Say that the macros work on unsigned integers too.
(Integer Portability): Remove.
2020-12-04 Bruno Haible <bruno@clisp.org>
utime: Fix a test failure on macOS 10.13.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* m4/utime.m4 (gl_FUNC_UTIME): Test whether utime handles trailing
slashes on files.
* lib/utime.c (utime): Add alternative implementation for Unix
platforms.
* modules/utime (Depends-on): Add stat.
* doc/posix-functions/utime.texi: Mention the macOS 10.13 bug.
* doc/posix-functions/lstat.texi: Mention that macOS 10.13 also has the
trailing-slash bug.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/stat.texi: Likewise.
* doc/posix-functions/symlink.texi: Likewise.
2020-12-04 Paul Eggert <eggert@cs.ucla.edu>
intprops: update doc and mention Unisys
* doc/gnulib-readme.texi (Other portability assumptions):
Also mention ptrdiff_t when talking about widths and overflow.
* doc/intprops.texi (Integer Properties): Summarize new section.
(Arithmetic Type Properties): Document that EXPR_SIGNED no longer
evaluates its argument.
(Integer Bounds): Fix typo.
(Wraparound Arithmetic): Remove obsolete comment about efficiency.
Document that the _WRAPV macros now support pointers to unsigned
integers.
(Integer Range Overflow): Update SEI CERT citation.
(Integer Portability): New subsection, which mentions
the oddball Unisys platforms as non-Gnulib targets.
2020-12-03 Bruno Haible <bruno@clisp.org>
idx: Clarify that idx_t always behaves like a signed type.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00034.html>.
* lib/idx.h: Clarify that idx_t always behaves like a signed type.
Don't test UNSIGNED_IDX_T.
2020-12-03 Bruno Haible <bruno@clisp.org>
idx: New module.
* lib/idx.h: New file.
* modules/idx: New file.
* lib/canonicalize-lgpl.c: Include idx.h. Use idx_t instead of
ptrdiff_t.
* lib/canonicalize.c: Likewise.
* modules/canonicalize-lgpl (Depends-on): Add idx.
* modules/canonicalize (Depends-on): Likewise.
2020-12-03 Bruno Haible <bruno@clisp.org>
fprintf-posix-tests: Avoid a test failure on macOS 10.13.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* tests/test-fprintf-posix3.c: Skip the test on macOS.
(main): Return a different exit code at each point. Allow 100 KB extra
memory consumption.
* tests/test-fprintf-posix3.sh: Update. Remove the "get_rusage_as()
doesn't work" diagnostic.
2020-12-02 Paul Eggert <eggert@cs.ucla.edu>
canonicalize: refactor can_mode flag
* lib/canonicalize.c (MULTIPLE_BITS_SET): Remove, replacing with ...
(multiple_bits_set): ... this new static function. Uses changed.
(canonicalize_filename_mode): Refactor for clarity to avoid
modifying the CAN_MODE argument.
canonicalize: prefer signed integer types
* lib/canonicalize.c: Include stddef.h, for ptrdiff_t.
(seen_triple, canonicalize_filename_mode): Prefer signed to
unsigned types where either will do, as they avoid some glitches
in comparisons and can trap on overflow when debugging.
canonicalize: fix most of another EOVERFLOW issue
* lib/canonicalize.c (canonicalize_filename_mode):
Do not call stat if fewer than 20 symlinks have been traversed.
This avoids EOVERFLOW failure in the common case where there
are not that many symlinks, while continuing to catch loops
(or fail due to EOVERFLOW) in the unusual case when there
are many symlinks to traverse.
canonicalize: do not assume symlinks have st_ino
* lib/canonicalize.c (canonicalize_filename_mode):
When checking for loops, use st_dev and st_ino from the parent
directory not from the symlink, as pre-2017 POSIX says these
members are not reliable for symlinks. Couple this with START
(the remaining file name to be resolved), not NAME (the whole file
name with START as its suffix).
* modules/canonicalize (Depends-on): Depend on stat, not lstat.
canonicalize: fix EOVERFLOW bug
* lib/canonicalize.c (canonicalize_filename_mode):
When testing whether a directory entry is a symbolic link, or a
directory or other, do not use lstat or stat or
areadlink_with_size. Just use areadlink, as this suffices and it
avoids the EOVERFLOW problem that lstat and stat have.
* modules/canonicalize (Depends-on): Depend on areadlink instead
of areadlink-with-size and stat.
canonicalize-lgpl: fix EOVERFLOW bug
* lib/canonicalize-lgpl.c: Do not include <sys/stat.h>.
(__realpath): Do not use lstat. Just use readlink, as this
suffices and it avoids the EOVERFLOW problem that lstat has.
* modules/canonicalize-lgpl (Depends-on): Remove lstat, sys_stat.
2020-12-02 Bruno Haible <bruno@clisp.org>
strsignal-tests: Fix test failure on macOS 10.13.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* tests/test-strsignal.c (ASSERT_DESCRIPTION): Allow the actual result
to be longer than the expected result.
2020-12-02 Bruno Haible <bruno@clisp.org>
Fix compilation errors in test-math-c++.cc on FreeBSD 12.2/arm64.
* lib/math.in.h (_GL_INCLUDING_MATH_H): New macro, to work around
recursive self-include problem on FreeBSD 12.2 in C++ mode.
2020-12-02 Bruno Haible <bruno@clisp.org>
spawn-pipe: Allow caller to specify directory for the subprocess.
* lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi):
Add directory argument.
* lib/spawn-pipe.c: Include canonicalize.h, filename.h, findprog.h.
(create_pipe): Add directory argument. If specified, resolve the program
file name and make it absolute, first. Pass the directory to spawnpvech
and posix_spawn_file_actions_addchdir.
(create_pipe_bidi, create_pipe_in, create_pipe_out): Add directory
argument.
* modules/spawn-pipe (Depends-on): Add canonicalize, filename,
findprog-in, posix_spawn, posix_spawn_file_actions_addchdir.
* tests/test-spawn-pipe-main.c (test_pipe): Update.
* NEWS: Mention the change.
* lib/csharpcomp.c (compile_csharp_using_mono,
compile_csharp_using_sscli): Update.
* lib/javacomp.c (is_envjavac_gcj, is_envjavac_gcj43, is_gcj_present,
is_gcj_43): Update.
* lib/javaversion.c (execute_and_read_line): Update.
* lib/pipe-filter-gi.c (pipe_filter_gi_create): Update.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Update.
2020-12-02 Bruno Haible <bruno@clisp.org>
execute: Allow caller to specify directory for the subprocess.
* lib/execute.h (execute): Add directory argument.
* lib/execute.c: Include canonicalize.h, filename.h, findprog.h.
(execute): Add directory argument. If specified, resolve the program
file name and make it absolute, first. Pass the directory to spawnpvech
and posix_spawn_file_actions_addchdir.
* modules/execute (Depends-on): Add canonicalize, filename, findprog-in,
posix_spawn, posix_spawn_file_actions_addchdir.
* tests/test-execute-main.c: Add test for passing a directory.
* tests/test-execute-child.c: Likewise.
* tests/test-execute.sh: Update.
* modules/execute-tests (Depends-on): Add mkdir.
* NEWS: Mention the change.
* lib/csharpcomp.c (compile_csharp_using_sscli): Update.
* lib/csharpexec.c (execute_csharp_using_mono,
execute_csharp_using_sscli): Update.
* lib/javacomp.c (compile_using_envjavac, compile_using_gcj,
compile_using_javac, compile_using_jikes, is_javac_present,
is_jikes_present): Update.
* lib/javaexec.c (execute_java_class): Update.
2020-12-01 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for macOS11/arm64.
Patch suggested by Hill Ma <maahiuzeon@gmail.com> in
<https://gitlab.com/gnu-clisp/clisp/-/issues/27>
and by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.
* lib/vma-iter.c (vma_iterate): On arm64, use 64-bit type definitions.
2020-12-01 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix handling of OS/2 kLIBC.
Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00005.html>.
* modules/spawn-pipe (configure.ac): Use the common idiom for
recognizing the OS/2 operating system.
2020-11-30 Bruno Haible <bruno@clisp.org>
execute: Fix uninitialized use of errno.
* lib/execute.c (execute): Preserve errno across several system calls.
2020-11-30 Bruno Haible <bruno@clisp.org>
access tests: Fix test failure on native Windows.
* tests/test-access.c (main): Change permissions of f2 file before
attempting to remove it.
2020-11-30 Paul Eggert <eggert@cs.ucla.edu>
faccessat: link with $(LIB_EACCESS)
* modules/faccessat (Link:): Add $(LIB_EACCESS), since this
module depends on euidaccess.
2020-11-30 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Make multithread-safe on native Windows.
* lib/windows-spawn.h: Include <stdint.h>, <windows.h>.
(dup_safer_noinherit, undup_safer_noinherit): Remove declarations.
(spawnpvech): New declaration.
* lib/windows-spawn.c: Include <stdio.h>, <process.h>, findprog.h.
Don't include <unistd.h>, cloexec.h, error.h, gettext.h.
(_): Remove macro.
(dup_noinherit, fd_safer_noinherit, dup_safer_noinherit,
undup_safer_noinherit): Remove functions.
(spawnpvech): New function.
* modules/windows-spawn (Depends-on): Add findprog-in, stdint. Remove
cloexec, dup2, error, gettext-h.
* lib/execute.c: Include msvc-nothrow.h.
(execute) [WIN32]: Use _get_osfhandle, spawnpvech instead of _spawnvpe.
* lib/spawn-pipe.c: Include msvc-nothrow.h.
(create_pipe) [WIN32]: Use _get_osfhandle, DuplicateHandle, spawnpvech
instead of _spawnvpe.
* modules/execute (Depends-on): Add msvc-nothrow.
* modules/spawn-pipe (Depends-on): Likewise.
2020-11-30 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Improve documentation.
* lib/execute.h: Describe progname, prog_path, prog_argv.
* lib/spawn-pipe.h: Likewise.
2020-11-30 Bruno Haible <bruno@clisp.org>
execute tests: Add more tests.
* tests/test-execute-main.c: Add tests for reading, writing, isatty on
inherited file descriptors >= 3.
* tests/test-execute-child.c: Likewise.
* tests/test-execute.sh: Update.
2020-11-30 Bruno Haible <bruno@clisp.org>
havelib: Fix for non-ELF platforms (regression 2019-11-17).
Reported by comex <comexk@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00188.html>.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On non-ELF platforms,
don't expect an ELF header.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: use integer_length in table implementation
* lib/bitset/table.c (tbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: use integer_length in list implementation
* lib/bitset/list.c (lbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: use integer_length in vector implementation
* lib/bitset/array.c (vbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: use integer_length in array implementation
* modules/bitset (Depends-on): Add integer_length_l.
* lib/bitset/base.h (bitset_fls_, BITSET_FOR_EACH_BIT_REVERSE): New.
* lib/bitset/array.c (abitset_list_reverse): Use it.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: style: use consistent names
* bitset/list.c (lbitset_list_reverse): Rename 'bcount' as 'bitcnt',
and 'boffset' as 'bitoff', for consistency with the other
implementations.
* bitset/table.c (tbitset_list_reverse): Likewise.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: style: sort header
* lib/bitset/base.h (bitset_ffs): Rename as...
(bitset_ffs_): this.
(bitset_ffs_, BITSET_FOR_EACH_BIT): Move to better places.
2020-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: tests: check BITSET_FOR_EACH_REVERSE
* tests/test-bitset.c (compare, check_zero, check_one_bit, check_ones):
Check BITSET_FOR_EACH_REVERSE.
2020-11-29 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Fix test failure with MSVC.
* tests/test-spawn-pipe-child.c: Include <stdint.h>.
(gl_msvc_invalid_parameter_handler): New function.
(main): Set a global invalid-parameter handler.
* modules/spawn-pipe-tests (Depends-on): Add msvc-inval, stdint.
2020-11-29 Bruno Haible <bruno@clisp.org>
execute: Add tests.
* tests/test-execute.sh: New file.
* tests/test-execute-main.c: New file.
* tests/test-execute-child.c: New file.
* modules/execute-tests: New file.
2020-11-29 Bruno Haible <bruno@clisp.org>
fcntl: Work around NetBSD bug with F_DUPFD_CLOEXEC.
* m4/fcntl.m4 (gl_FUNC_FCNTL): Test whether F_DUPFD_CLOEXEC actually
works.
* lib/fcntl.c (rpl_fcntl_DUPFD_CLOEXEC): On NetBSD, use the same
fallback implementation as on Haiku.
* tests/test-fcntl.c (main): Add a test whether F_DUPFD_CLOEXEC is
effective.
* doc/posix-functions/fcntl.texi: Mention the NetBSD bug.
2020-11-29 Bruno Haible <bruno@clisp.org>
spawn-pipe: Fix build on OS/2 kLIBC (regression 2020-11-28).
* lib/os2-spawn.h: New file, based on lib/windows-spawn.h.
* lib/os2-spawn.c: New file, based on lib/windows-spawn.c.
* lib/spawn-pipe.c: On OS/2 kLIBC, include "os2-spawn.h".
* lib/windows-spawn.c: Remove modifications for kLIBC.
* modules/spawn-pipe (Files): Add the new files.
(configure.ac): Arrange to compile os2-spawn.c on OS/2.
2020-11-28 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Fix compilation error with GCC on 32-bit SPARC.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00066.html>.
* m4/sparcv8+.m4: New file.
* modules/sparcv8+: New file.
* modules/asyncsafe-spin (Depends-on): Add sparcv8+.
2020-11-28 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Fix build error with GCC on 32-bit SPARC.
* lib/asyncsafe-spin.c: Don't use GCC >= 4.1 primitives on SPARC.
2020-11-28 Bruno Haible <bruno@clisp.org>
windows-spawn: New module.
* lib/windows-spawn.h: Renamed from lib/w32spawn.h. Remove
implementations.
* lib/windows-spawn.c: Renamed from lib/w32spawn.h.
* modules/windows-spawn: New file.
* lib/execute.c: Include "windows-spawn.h" instead of "w32spawn.h".
* lib/spawn-pipe.c: Likewise.
* modules/execute (Files): Remove lib/w32spawn.h.
(Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk,
xalloc.
(Makefile.am): Remove w32spawn.h from lib_SOURCES.
* modules/spawn-pipe (Files): Remove lib/w32spawn.h.
(Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk,
xalloc.
(Makefile.am): Remove w32spawn.h from lib_SOURCES.
2020-11-27 Bruno Haible <bruno@clisp.org>
ssfmalloc tests: Port to macOS 11.
* tests/test-ssfmalloc.c (PAGESIZE_MAX): Set to 16384, not 8192.
2020-11-26 Bruno Haible <bruno@clisp.org>
Fix dependencies of modules that use '_exit' on native Windows.
Reported by Jim Meyering in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00159.html>.
* modules/_Exit (Depends-on): Add unistd.
* modules/closein (Depends-on): Likewise.
* modules/closeout (Depends-on): Likewise.
* modules/forkpty (Depends-on): Likewise.
* modules/posix_spawn-internal (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
2020-11-26 Bruno Haible <bruno@clisp.org>
raise-tests: Fix compilation error on MSVC (regression 2020-11-25).
* modules/raise-tests (Depends-on): Add unistd.
* doc/posix-functions/_exit.texi: Mention the 'unistd' module.
2020-11-25 Jim Meyering <meyering@fb.com>
setlocale-tests: do not trigger gcc's -Wanalyzer-possible-null-argument
* tests/test-setlocale1.c (main): Assert that each strcmp argument is
non-NULL, since we don't bother handing strdup failure.
raise-tests: avoid GCC 11's new exit-from-signal-handler warning
gcc's -Wanalyzer-unsafe-call-within-signal-handler exposed this.
* tests/test-raise.c: Include unistd.h.
(handler): Use _exit, not exit.
2020-11-23 Bruno Haible <bruno@clisp.org>
Use the correct printf format attribute for mingw.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00133.html>.
* modules/vfprintf-posix (configure.ac): Define GNULIB_VFPRINTF_POSIX.
* modules/vprintf-posix (configure.ac): Define GNULIB_VPRINTF_POSIX.
* lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD,
_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM): New macros.
(_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from
_GL_ATTRIBUTE_FORMAT_PRINTF. Use _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD.
(_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): Use
_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM.
* modules/vasnprintf (Depends-on): Add stdio.
* lib/vasnprintf.h: Include <stdio.h>.
(asnprintf, vasnprintf): Use the standard printf format attribute.
* modules/xvasprintf (Depends-on): Add stdio.
* lib/xvasprintf.h: Include <stdio.h>.
(xasprintf, xvasprintf): Use the standard printf format attribute.
* modules/xprintf (Depends-on): List stdio first.
* lib/xprintf.h (xprintf, xvprintf): Use a printf format attribute that
depends on GNULIB_VPRINTF_POSIX.
(xfprintf, xvfprintf): Use a printf format attribute that depends on
GNULIB_VFPRINTF_POSIX.
* modules/c-vasnprintf (Depends-on): Add stdio.
* lib/c-vasnprintf.h: Include <stdio.h>.
(c_vasnprintf): Use the standard printf format attribute.
* modules/c-vasprintf (Depends-on): Add stdio.
* lib/c-vasprintf.h: Include <stdio.h>.
(c_asprintf, c_vasprintf): Use the standard printf format attribute.
* modules/c-vsnprintf (Depends-on): Add stdio.
* lib/c-vsnprintf.h: Include <stdio.h>.
(c_vsnprintf): Use the standard printf format attribute.
* modules/c-snprintf (Depends-on): Add stdio.
* lib/c-snprintf.h: Include <stdio.h>.
(c_snprintf): Use the standard printf format attribute.
* modules/c-xvasprintf (Depends-on): Add stdio.
* lib/c-xvasprintf.h: Include <stdio.h>.
(c_xasprintf, c_xvasprintf): Use the standard printf format attribute.
* modules/error (Depends-on): Depend on stdio always.
* lib/error.h: Include <stdio.h>.
(_GL_ATTRIBUTE_SPEC_PRINTF): Remove macro.
(error, error_at_line): Use a printf format attribute that depends on
GNULIB_VFPRINTF_POSIX.
* lib/error.c (_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from
_GL_ATTRIBUTE_FORMAT_PRINTF.
* modules/verror (Depends-on): Add stdio.
* lib/verror.h: Include <stdio.h>. Don't include "error.h".
(verror, verror_at_line): Use the standard printf format attribute.
* lib/verror.c: Include "error.h".
* modules/argp (Depends-on): Add stdio.
* lib/argp.h (argp_error, __argp_error, argp_failure, __argp_failure):
Use a printf format attribute that depends on GNULIB_VFPRINTF_POSIX.
* modules/libtextstyle-optional (Depends-on): Add stdio.
* lib/textstyle.in.h (ostream_printf, ostream_vprintf): Use the standard
printf format attribute.
* tests/test-nonblocking-misc.h (dbgfprintf): Use the standard printf
format attribute.
2020-11-23 Pádraig Brady <P@draigBrady.com>
selinux-at, selinux-h: use const correct declarations
* lib/se-selinux.in.h: Use const for "set" functions,
to match current selinux, and support cleaner user code.
* lib/selinux-at.c: Likewise.
* lib/selinux-at.h: Likewise.
2020-11-22 Paul Eggert <eggert@cs.ucla.edu>
canonicalize-lgpl: fix memory leak
* lib/canonicalize-lgpl.c (__realpath): Fix unlikely memory leak,
which could have occurred if BUF was so large that malloc was
called. Do this by allocating EXTRA_BUF and BUF at the same time;
this eliminates the need to free BUF separately.
2020-11-22 Bruno Haible <bruno@clisp.org>
Fix missing module dependencies to 'xalloc' (regression 2020-10-19).
* modules/xvasprintf (Depends-on): Add xalloc.
* modules/pipe-filter-gi (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise, for w32spawn.h.
* modules/spawn-pipe (Depends-on): Likewise.
2020-11-22 Jose E. Marchesi <jemarch@gnu.org>
bootstrap: add option hooks
* build-aux/bootstrap (bootstrap_print_option_usage_hook): Define.
(bootstrap_option_hook): Likewise.
(usage): Call bootstrap_print_option_usage_hook.
2020-11-22 Bruno Haible <bruno@clisp.org>
argp: Don't break getprogname on non-glibc systems.
* m4/argp.m4 (gl_ARGP): Don't expect <argp.h> to exist when testing for
program_invocation_name and program_invocation_short_name.
2020-11-22 Bruno Haible <bruno@clisp.org>
doc: Document <link.h>.
* doc/glibc-headers/link.texi: New file.
* doc/gnulib.texi: Include it.
2020-11-22 Bruno Haible <bruno@clisp.org>
doc: Add references to the LSB.
* doc/glibc-functions/*.texi: Add references to LSB 5.0.
* doc/posix-functions/*.texi: Likewise.
2020-11-22 Bruno Haible <bruno@clisp.org>
doc: Fix a makeinfo warning (regression 2020-11-03).
* doc/posix-functions/aligned_alloc.texi: Add missing @item.
2020-11-21 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: fix printf format typo
* lib/parse-datetime.y (parse_datetime2): Fix format typo in
previous patch to this file. Problem reported by Chris Elvidge in
<https://bugs.gnu.org/44763#32>.
setlocale-null-tests: work around GCC bug 44511
* tests/test-setlocale_null-mt-all.c:
* tests/test-setlocale_null-mt-one.c:
Ignore -Wreturn-type, to work around GCC bug 44511.
nl_langinfo-tests: work around GCC bug 44511
* tests/test-nl_langinfo-mt.c: Ignore -Wreturn-type, to work
around a GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44511>.
Problem reported for GNU grep by Andreas Schwab
<https://bugs.gnu.org/44535>.
selinux-h: add stubs for selabel_open etc.
Coreutils with --enable-gcc-warnings does not build on Ubuntu 20.10
because matchpathcon is deprecated in favor of selabel_open etc.,
so this patch adds stubs for these functions.
* lib/se-label.c, lib/se-label.in.h, m4/selinux-label-h.m4: New files.
* lib/se-selinux.in.h (struct selinux_opt): Add incomplete decl,
as it is needed for selabel_open and selinux/selinux.h declares
this type here.
* modules/selinux-h (Files): Add the new files.
(configure.ac): Add gl_HEADERS_SELINUX_LABEL_H.
(lib_SOURCES): Add se-label.in.h, se-label.c.
(BUILT_SOURCES): Add $(SELINUX_LABEL_H).
(selinux/label.h): New rule, mimicking selinux/context.h.
(MOSTLYCLEANFILES): Add selinux/label.h, selinux/label.h-t.
(Include): Add selinux/label.h.
2020-11-21 Bruno Haible <bruno@clisp.org>
Update after 'test-driver' in Automake changed.
* build-aux/test-driver.diff: Rebase.
2020-11-21 Daiki Ueno <ueno@gnu.org>
read-file: remove dead assignment
* lib/read-file.c (fread_file): Remove dead assignment when
RF_SENSITIVE is set, flagged by clang-analyzer.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: tests: exercise the stats too
* tests/test-bitset.c: Display the stats at the end of the test.
* lib/bitset/stats.c (bitset_log_histogram_print): When diplaying the
last bin, display "256-..." rather that "256-511", since the last bin
does count item greater than or equal to 256.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: tests: try harder to break it
* tests/test-bitset.c (compare): Be ready to use bitsets larger than
BITSET_LIST_SIZE.
(main): Likewise.
While at it, also exercise super small bitsets.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: use ffs where possible in the vector implementation
* lib/bitset/vector.c (vbitset_list): Use BITSET_FOR_EACH_BIT.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: use ffs where possible in the table implementation
* lib/bitset/table.c (tbitset_list): Use BITSET_FOR_EACH_BIT.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: check empty and full bitsets
* tests/test-bitset.c (check_zero, check_ones): New.
(check_attributes): Use them.
2020-11-19 Akim Demaille <akim@lrde.epita.fr>
bitset: be sure to always return a value
* lib/bitset/array.c (abitset_small_list): Always update *next and
return a value.
2020-11-19 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Expect spaces in file names
Reported by Thierry Bothorel <thierry.bothorel@zaclys.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00040.html>,
* build-aux/vcstocl/vcs_git.py (exec_git_cmd): Do not transform
tabs to spaces.
(list_changes): Use tabs to identify file names.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: strengthen tests
* tests/test-bitset.c (compare): Also check count.
Deal only with random values, move the one-bit tests to...
(check_one_bit): this new function.
(check_attributes): Call it.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: fix iteration over table bitsets
* lib/bitset/table.c (tbitset_list): Update bitno when windex is.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: rename internal details for consistency
* lib/bitset/table.c: Rename all the EBITSET_ symbols as TBITSET_.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: test: run deterministic tests on several bitset sizes
* tests/test-bitset.c (check_attributes): Run it with small and large
sizes.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: use ffs where possible in the list implementation
* lib/bitset/list.c (lbitset_list): Use BITSET_FOR_EACH_BIT.
2020-11-17 Akim Demaille <akim@lrde.epita.fr>
bitset: use ffs where possible in array implementation
* lib/bitset/array.c (abitset_small_list): Use BITSET_FOR_EACH_BIT.
2020-11-17 Bruno Haible <bruno@clisp.org>
posixcheck: Don't enable GNULIB_POSIXCHECK in C++ mode.
Reported by Tom G. Christensen <tgc@jupiterrise.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00062.html>.
* m4/posixcheck.m4 (gl_POSIXCHECK): Don't define GNULIB_POSIXCHECK in
C++ mode.
2020-11-17 Bruno Haible <bruno@clisp.org>
Fix error when GNULIB_POSIXCHECK is enabled (regression 2019-06-04).
* lib/unistd.in.h (copy_file_range): Don't assume that copy_file_range
is always declared.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether copy_file_range is
declared.
2020-11-17 Bruno Haible <bruno@clisp.org>
Fix link errors on AIX.
* modules/clean-temp (Link): Link with $(LIBTHREAD).
* modules/getumask (Link): Link with $(LIBTHREAD).
* modules/getumask-tests (Makefile.am): Link test-getumask with
$(LIBTHREAD).
* modules/supersede (Link): Link with $(LIBTHREAD).
* modules/supersede-tests (Makefile.am): Link test-supersede with
$(LIBTHREAD).
* modules/fatal-signal (Link): New section.
* modules/execute (Link): New section.
* modules/csharpexec (Link): Link with $(LIBTHREAD).
* modules/javaexec (Link): Link with $(LIBTHREAD).
* modules/spawn-pipe (Link): New section.
* modules/spawn-pipe-tests (Makefile.am): Link test-spawn-pipe-main with
$(LIBTHREAD).
* modules/csharpcomp (Link): Link with $(LIBTHREAD).
* modules/javacomp (Link): Link with $(LIBTHREAD).
* modules/javaversion (Link): Link with $(LIBTHREAD).
* modules/pipe-filter-gi (Link): New section.
* modules/pipe-filter-gi-tests (Makefile.am): Link test-pipe-filter-gi1,
test-pipe-filter-gi2-main with $(LIBTHREAD).
* modules/pipe-filter-ii (Link): New section.
* modules/pipe-filter-ii-tests (Makefile.am): Link test-pipe-filter-ii1,
test-pipe-filter-ii2-main with $(LIBTHREAD).
* modules/term-style-control (Link): New section.
* modules/term-style-control-tests (Makefile.am): Link
test-term-style-control-hello, test-term-style-control-yes with
$(LIBTHREAD).
* modules/wait-process (Link): New section.
* modules/nonblocking-pipe-tests (Makefile.am): Link
test-nonblocking-pipe-main with $(LIBTHREAD).
* modules/nonblocking-socket-tests (Makefile.am): Link
test-nonblocking-socket-main with $(LIBTHREAD).
2020-11-16 Bruno Haible <bruno@clisp.org>
Fix link errors on platforms with libunistring.
* modules/c32isalnum (Link): New section.
* modules/c32isalnum-tests (Makefile.am): Link test-c32isalnum with
$(LIBUNISTRING).
* modules/c32isalpha (Link): New section.
* modules/c32isalpha-tests (Makefile.am): Link test-c32isalpha with
$(LIBUNISTRING).
* modules/c32isblank (Link): New section.
* modules/c32isblank-tests (Makefile.am): Link test-c32isblank with
$(LIBUNISTRING).
* modules/c32iscntrl (Link): New section.
* modules/c32iscntrl-tests (Makefile.am): Link test-c32iscntrl with
$(LIBUNISTRING).
* modules/c32isdigit (Link): New section.
* modules/c32isdigit-tests (Makefile.am): Link test-c32isdigit with
$(LIBUNISTRING).
* modules/c32isgraph (Link): New section.
* modules/c32isgraph-tests (Makefile.am): Link test-c32isgraph with
$(LIBUNISTRING).
* modules/c32islower (Link): New section.
* modules/c32islower-tests (Makefile.am): Link test-c32islower with
$(LIBUNISTRING).
* modules/c32isprint (Link): New section.
* modules/c32isprint-tests (Makefile.am): Link test-c32isprint with
$(LIBUNISTRING).
* modules/c32ispunct (Link): New section.
* modules/c32ispunct-tests (Makefile.am): Link test-c32ispunct with
$(LIBUNISTRING).
* modules/c32isspace (Link): New section.
* modules/c32isspace-tests (Makefile.am): Link test-c32isspace with
$(LIBUNISTRING).
* modules/c32isupper (Link): New section.
* modules/c32isupper-tests (Makefile.am): Link test-c32isupper with
$(LIBUNISTRING).
* modules/c32isxdigit (Link): New section.
* modules/c32isxdigit-tests (Makefile.am): Link test-c32isxdigit with
$(LIBUNISTRING).
* modules/unicodeio (Link): Mention $(LIBUNISTRING).
* modules/unicodeio-tests (Makefile.am): Link test-unicodeio with
$(LIBUNISTRING).
2020-11-16 Bruno Haible <bruno@clisp.org>
Fix link errors on platforms with libintl (e.g. Solaris and AIX).
Reported by Tom G. Christensen <tgc@jupiterrise.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00062.html>.
* modules/getumask-tests (Makefile.am): Link test-getumask with
$(LIBINTL).
* modules/stack-tests (Makefile.am): Link test-stack with $(LIBINTL).
* modules/supersede-tests (Makefile.am): Link test-supersede with
$(LIBINTL).
* modules/unicodeio-tests (Makefile.am): Link test-unicodeio with
$(LIBINTL).
2020-11-16 Bruno Haible <bruno@clisp.org>
getumask: Document link dependencies.
* modules/getumask (Link): New section.
2020-11-16 Bruno Haible <bruno@clisp.org>
Update link dependencies in modules after 2020-09-09 change.
* modules/tempname (Link): Add $(LIB_CLOCK_GETTIME).
* modules/mkdtemp (Link): Likewise.
* modules/mkostemp (Link): Likewise.
* modules/mkostemps (Link): Likewise.
* modules/mkstemp (Link): Likewise.
* modules/mkstemps (Link): Likewise.
* modules/supersede (Link): Likewise.
* modules/tmpfile (Link): Likewise.
* modules/tmpfile-safer (Link): Likewise.
2020-11-15 Paul Eggert <eggert@cs.ucla.edu>
getumask-tests: port to Solaris 10 etc.
Problem reported by Tom Christensen in:
https://lists.gnu.org/r/bug-gnulib/2020-11/msg00062.html
* modules/getumask-tests (test_getumask_LDADD):
Add $(LIB_CLOCK_GETTIME).
2020-11-15 Akim Demaille <akim@lrde.epita.fr>
bitset: use ffsl to accelerate iterations over set bits
Suggested by Bruno Haible.
* modules/bitset: Depend upon ffsl.
* lib/bitset/base.h (bitset_ffs, BITSET_FOR_EACH_BIT): New.
* lib/bitset/array.c (abitset_list): Use BITSET_FOR_EACH_BIT.
2020-11-15 Akim Demaille <akim@lrde.epita.fr>
bitset: more tests
* tests/test-bitset.c (compare): Make it clear that the random values
should not be modified.
Check bitset_first, bitset_last and BITSET_FOR_EACH.
2020-11-15 Akim Demaille <akim@lrde.epita.fr>
bitset: fix the copy from lbitset to other types
* lib/bitset/list.c (lbitset_copy): Rename as...
(lbitset_copy_): this.
(lbitset_copy): New.
Dispatch to heterogeneous/homogeneous copy.
2020-11-15 Akim Demaille <akim@lrde.epita.fr>
bitset: making debug traces more useful
* lib/bitset.c (bitset_print): Print the bitset type in verbose mode.
bitset: comment changes
* lib/bitset.c: Move some documenting comments to...
* lib/bitset.h: here.
* lib/bitset/array.c: Fix some comments.
2020-11-14 Paul Eggert <eggert@cs.ucla.edu>
careadlinkat: warn better about GCC bug 93644
* lib/careadlinkat.c (readlink_stk): When --enable-gcc-warnings is
not in effect, use "#warning" to let builders know more clearly
about GCC bug 93644, because the bug triggers even if no -W option
is given to GCC.
2020-11-13 Jim Meyering <meyering@fb.com>
hard-locale-tests: avoid a -Wstrict-prototypes warning
* tests/locale.c (main): Placate gcc's -Wstrict-prototypes by
changing "main ()" to "main (void)". This was the only case that
triggered a warning when building grep with --enable-gcc-warnings.
2020-11-11 Paul Eggert <eggert@cs.ucla.edu>
time_rz: simplify CVE-2017-7476 fix
* lib/time_rz.c: Do not include limits.h; I think it was included
under the mistaken impression that limits.h defines SIZE_MAX.
(SIZE_MAX): Remove.
(save_abbr): Put string length into a ptrdiff_t variable,
so that the size comparison works naturally. This
fixes CVE-2017-7476 in a cleaner way.
parse-datetime: streamline overflow checking
When parse-datetime.y’s overflow code was written, INT_ADD_WRAPV
did not work for unsigned destinations, and since time_t might
be unsigned that meant it did not work for time_t destinations.
This limitation of INT_ADD_WRAPV has been fixed, so we can
now streamline parse-datetime.y a bit.
* lib/parse-datetime.y: Do not include limits.h, as LONG_MAX
has not been used for a while.
(yylex, parse_datetime2): Assume C99 declarations after statements.
(yyles): Use INT_SUBTRACT_WRAPV instead of an explicit comparison
to TYPE_MINIMUM.
(parse_datetime2): No need for time_overflow now that
INT_ADD_WRAPV works for unsigned results.
parse-datetime-tests: port to Alpine Linux 3.12.1
* tests/test-parse-datetime.c: Include errno.h for errno,
and unistd.h for _SC_TZNAME_MAX and sysconf.
(main): In the outlandishly-long time zone abbreviation test,
do not exceed TZNAME_MAX as this has undefined behavior,
and on Alpine Linux 3.12.1 it makes the test fail.
2020-11-09 Pádraig Brady <P@draigBrady.com>
mgetgroups: avoid warning with clang
* lib/mgetgroups.c: Xcode-12.1 identifies as GCC 4.2.1,
so disable -Wpointer-sign for all clang versions.
2020-11-07 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix link error with 'version-etc' (regression 2020-05-29).
Reported by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00032.html>.
* gnulib-tool (func_emit_tests_Makefile_am): Add libtests.a to
LDADD a third time, after the second occurrence of ../lib/libgnu.a.
* pygnulib/GLEmiter.py (tests_Makefile_am): Likewise.
2020-11-04 Paul Eggert <eggert@cs.ucla.edu>
tests: pacify Sun C 5.9
Without these changes, Sun C 5.9 (2009/11/22) issues complaints like
“"test-nl_langinfo-mt.c", line 75: warning: statement not reached”.
* tests/test-nl_langinfo-mt.c (thread1_func, thread2_func)
(thread3_func, thread4_func, thread5_func, thread6_func, threadN_func):
* tests/test-setlocale_null-mt-all.c (thread1_func, thread2_func):
* tests/test-setlocale_null-mt-one.c (thread1_func, thread2_func):
Remove unreachable ‘return NULL;’s.
tests: port better to XLC 12.01
* tests/test-argmatch.c (CHECK): Do not use -1 as a subscript,
even in code that is not executed, as IBM XLC 12.01 complains "The
subscript -1 is less than zero."
* tests/test-stdint.c (verify_width): Pass an (unused) 3rd
argument to _GL_VERIFY, as ISO C requires. Otherwise, IBM XLC
12.01 complains "The invocation of macro _GL_VERIFY contains fewer
arguments than are required by the macro definition."
2020-11-03 Bruno Haible <bruno@clisp.org>
aligned-malloc: Use fixes from the new modules.
* modules/aligned-malloc (Depends-on): Add posix_memalign,
aligned_alloc, memalign.
(configure.ac): Use AC_CHECK_FUNCS_ONCE.
2020-11-03 Bruno Haible <bruno@clisp.org>
aligned_alloc: Add tests.
* tests/test-aligned_alloc.c: New file.
* modules/aligned_alloc-tests: New file.
aligned_alloc: New module.
* lib/stdlib.in.h (aligned_alloc): New declaration.
* lib/aligned_alloc.c: New file.
* m4/aligned_alloc.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether aligned_alloc is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_ALIGNED_ALLOC,
HAVE_ALIGNED_ALLOC, REPLACE_ALIGNED_ALLOC.
* modules/stdlib (Makefile.am): Substitute GNULIB_ALIGNED_ALLOC,
HAVE_ALIGNED_ALLOC, REPLACE_ALIGNED_ALLOC.
* modules/aligned_alloc: New file.
* tests/test-stdlib-c++.cc (aligned_alloc): Check signature.
* doc/posix-functions/aligned_alloc.texi: Mention the new module and the
AIX bug.
2020-11-03 Bruno Haible <bruno@clisp.org>
posix_memalign: Add tests.
* tests/test-posix_memalign.c: New file.
* modules/posix_memalign-tests: New file.
posix_memalign: New module.
* lib/stdlib.in.h (posix_memalign): New declaration.
* lib/posix_memalign.c: New file.
* m4/posix_memalign.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether posix_memalign is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_POSIX_MEMALIGN,
HAVE_POSIX_MEMALIGN, REPLACE_POSIX_MEMALIGN.
* modules/stdlib (Makefile.am): Substitute GNULIB_POSIX_MEMALIGN,
HAVE_POSIX_MEMALIGN, REPLACE_POSIX_MEMALIGN.
* modules/posix_memalign: New file.
* tests/test-stdlib-c++.cc (posix_memalign): Check signature.
* doc/posix-functions/posix_memalign.texi: Mention the new module and
the OpenBSD bug.
2020-11-03 Bruno Haible <bruno@clisp.org>
memalign: Add tests.
* tests/test-memalign.c: New file.
* modules/memalign-tests: New file.
memalign: New module.
* modules/memalign: New file.
* doc/glibc-functions/memalign.texi: Mention the new module.
2020-11-03 Bruno Haible <bruno@clisp.org>
verify tests: Fix crash with GCC (regression 2020-11-02).
* tests/test-verify.c (main): Fix initializer of s.
2020-11-03 Pádraig Brady <P@draigBrady.com>
mountlist: recognize more file system types as remote
* lib/mountlist.c (ME_REMOTE): Sync previously unconsidered
"remote" file systems from stat.c in coreutils.
2020-11-02 Bernhard Voelker <mail@bernhard-voelker.de>
verify tests: Fix -Wuninitialized warning (regression 2020-10-30).
* tests/test-verify.c (main): Initialize state variable.
Reported by Bruno Haible for GCC 5.4.0.
2020-11-02 Paul Eggert <eggert@cs.ucla.edu>
dfa.h: support inclusion from C++
* lib/dfa.h: Allow multiple inclusion, and inclusion from
C++ code. The latter was suggested by Arnold Robbins.
2020-11-01 Bruno Haible <bruno@clisp.org>
ssfmalloc tests: Portability to Linux/PowerPC and Linux/SPARC.
* tests/test-ssfmalloc.c: Include <limits.h>.
(PAGESIZE_MAX): Set to 65536 on Linux/PowerPC.
2020-11-01 Bruno Haible <bruno@clisp.org>
verify tests: Fix compilation error with MSVC (regression 2020-10-30).
* tests/test-verify.c (test_assume_noreturn): Fix declaration.
2020-11-01 Jim Meyering <meyering@fb.com>
dfa-tests: test for today's invalid-merge fix
* tests/test-dfa-invalid-merge.sh: New file.
* modules/dfa-tests (Files): Add it.
(TESTS): Add it.
2020-11-01 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: retain sequences of similar nodes in optimization
DFA was merging similar nodes when it should not. For example,
it would convert a+a+a to a+a. Now, a sequence of similar nodes
is not merged. Problem reported by Gonzalo Padrino in
https://bugs.gnu.org/44351
* lib/dfa.c (merge_nfa_state): Skip the follow for repetition in
optimization.
2020-11-01 Jim Meyering <meyering@fb.com>
test-dfa-match-aux.c: accept EREs, not BREs
* tests/test-dfa-match-aux.c (main): Specify RE_SYNTAX_EGREP, not
RE_SYNTAX_GREP, so tests can use ERE syntax rather than BRE.
2020-10-30 Bernhard Voelker <mail@bernhard-voelker.de>
verify tests: avoid -Wmissing-declarations warnings
* tests/test-verify.c (test_assume_expressions): Add declaration.
(test_assume_optimization): Likewise.
(test_assume_noreturn): Likewise.
(main): Move down after all other definitions. While at it, also
call test_assume_expressions and test_assume_optimization as a
runtime check.
2020-10-26 Paul Eggert <eggert@cs.ucla.edu>
sys_stat: update comments for S_IRWXUGO, S_IXUGO
* lib/sys_stat.in.h (S_IXUGO, S_IRWXUGO): Update comments.
Perhaps these macros should be removed, as they’re not in either
POSIX or GNU. They could be moved to stat-macros.h, which would
be cleaner in some sense.
2020-10-25 Bruno Haible <bruno@clisp.org>
ssfmalloc tests: Small tweaks.
* tests/test-ssfmalloc.c: Add comments.
(alloc_pages): Don't require PROT_EXEC bits.
(block_sizes): Add more small sizes, for better coverage of
ssfmalloc-bitmap.h.
ssfmalloc tests: Portability to Minix.
* modules/ssfmalloc-tests (Files): Add m4/mmap-anon.m4.
(configure.ac): Invoke gl_FUNC_MMAP_ANON.
* m4/mmap-anon.m4: Update comment.
ssfmalloc: Portability to AIX.
* modules/ssfmalloc (Include): Add ssfmalloc.h.
(Link): New section.
* modules/ssfmalloc-tests (Makefile.am): Link test-ssfmalloc with
$(LIBTHREAD).
ssfmalloc: Portability to Cygwin.
* lib/ssfmalloc.h: Add parameter PAGESIZE_MAX.
(pg_offset_t): Define depending on PAGESIZE_MAX.
* tests/test-ssfmalloc.c: Undefine PAGESIZE.
(PAGESIZE_MAX): New macro.
ssfmalloc: Fix buffer overrun in bitmap search.
* lib/ssfmalloc-bitmap.h (find_first_packet_set): Don't access the
word *words_end.
2020-10-24 Paul Eggert <eggert@cs.ucla.edu>
doc: mention ‘restrict’ and C++
* doc/gnulib-readme.texi (C99 features assumed): Document
that ‘restrict’ should be avoided in C++ code.
2020-10-20 Bernhard Voelker <mail@bernhard-voelker.de>
selinux-at, selinux-h: port to SELinux 3.1
The new release finally deprecated the typedef 'security_context_t',
see <https://github.com/SELinuxProject/selinux/commit/7a124ca275>.
Use the simpler 'char *' instead.
* lib/getfilecon.c (getfilecon): Adjust type of context parameter.
(lgetfilecon): Likewise.
(fgetfilecon): Likewise.
(map_to_failure): Likewise.
(rpl_getfilecon): Likewise.
(rpl_lgetfilecon): Likewise.
(rpl_fgetfilecon): Likewise.
* lib/se-selinux.in.h (security_context_t): Remove typedef.
(getcon): Adjust type of context parameter.
(freecon): Likewise.
(getfscreatecon): Likewise.
(setfscreatecon): Likewise.
(matchpathcon): Likewise.
(getfilecon): Likewise.
(lgetfilecon): Likewise.
(fgetfilecon): Likewise.
(setfilecon): Likewise.
(lsetfilecon): Likewise.
(fsetfilecon): Likewise.
(security_check_context): Likewise.
(security_check_context_raw): Likewise.
(setexeccon): Likewise.
(security_compute_create): Likewise.
* lib/selinux-at.c (getfileconat): Likewise.
(lgetfileconat): Likewise.
(setfileconat): Likewise.
(lsetfileconat): Likewise.
* lib/selinux-at.h: Likewise.
2020-10-19 Bruno Haible <bruno@clisp.org>
xalloc-die: Fix link error with Solaris cc (regression 2020-07-27).
* lib/xalloc.h (xalloc_die): Don't declare if GNULIB_XALLOC_DIE is 0.
(xmalloc, xzalloc, xcalloc, xrealloc, x2realloc, xmemdup, xstrdup,
XMALLOC, XNMALLOC, XZALLOC, XCALLOC, xnmalloc, xnrealloc, x2nrealloc,
xcharalloc): Don't declare/define if GNULIB_XALLOC is 0.
* modules/xalloc (configure.ac): Define GNULIB_XALLOC.
* modules/xalloc-die (configure.ac): Define GNULIB_XALLOC_DIE.
2020-10-18 Bruno Haible <bruno@clisp.org>
ssfmalloc: Add tests.
* tests/test-ssfmalloc.c: New file.
* modules/ssfmalloc-tests: New file.
ssfmalloc: New module.
* lib/ssfmalloc.h: New file.
* lib/ssfmalloc-bitmap.h: New file.
* modules/ssfmalloc: New file.
2020-10-18 Bruno Haible <bruno@clisp.org>
wchar: Fix configure test result on some versions of AIX.
Reported by Clément Chigot <clement.chigot@atos.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00115.html>.
* m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Execute the test only on glibc
systems.
2020-10-18 Bruno Haible <bruno@clisp.org>
time: Fix warning about asctime when asctime is not used.
* lib/time.in.h (asctime_r, ctime, ctime_r): Fix _GL_WARN_ON_USE
invocation.
2020-10-18 Bruno Haible <bruno@clisp.org>
*-list, *-oset, *-omap: Avoid a GCC warning (regression 2020-10-10).
* lib/gl_anylinked_list2.h (gl_linked_iterator_free): Remove
'_GL_ATTRIBUTE_CONST'.
* lib/gl_anytree_list2.h (gl_tree_iterator_free): Likewise.
* lib/gl_anytree_omap.h (gl_tree_iterator_free): Likewise.
* lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise.
* lib/gl_array_list.c (gl_array_iterator_free): Likewise.
* lib/gl_array_omap.c (gl_array_iterator_free): Likewise.
* lib/gl_array_oset.c (gl_array_iterator_free): Likewise.
* lib/gl_carray_list.c (gl_carray_iterator_free): Likewise.
2020-10-18 Bruno Haible <bruno@clisp.org>
obstack: Fix a clang warning.
* lib/obstack.c (print_and_abort): Mark as __attribute_noreturn__.
2020-10-16 Bruno Haible <bruno@clisp.org>
hash: Rename hash_delete to hash_remove.
* lib/hash.h (hash_remove): Renamed from hash_delete.
(hash_delete): New declaration.
* lib/hash.c (hash_remove): Renamed from hash_delete.
(hash_delete): New function.
* tests/test-hash.c (main): Update.
* lib/fts-cycle.c (leave_dir): Likewise.
* NEWS: Mention the change.
2020-10-16 Bruno Haible <bruno@clisp.org>
hash, xhash: Make usable from C++.
* lib/hash.h: Add extern "C".
2020-10-16 Bruno Haible <bruno@clisp.org>
hash, xhash: Move comments to the .h file.
* lib/hash.c: Move comments meant for the user from here...
* lib/xhash.c: ... and here...
* lib/hash.h: ... to here.
2020-10-13 Philipp Klaus Krause <pkk@spth.de> (tiny change)
Don't declare an intention to modify the return value of strerror.
* tests/test-perror2.c (main): Assign the return value of strerror to a
'const char *' variable.
2020-10-11 Bruno Haible <bruno@clisp.org>
*printf: Avoid "expanded before it was required" warning.
* m4/printf.m4 (gl_SNPRINTF_TRUNCATION_C99): Define through
AC_DEFUN_ONCE.
2020-10-11 Benji Wiebe <benjiwiebe14@gmail.com>
getprogname: Add support for OpenServer 6 and UnixWare 7.
* lib/getprogname.c: Include <fcntl.h>, <stdlib.h>, <string.h>.
(getprogname): On OpenServer6 and UnixWare, read /proc/<pid>/cmdline.
2020-10-11 Bruno Haible <bruno@clisp.org>
tests: Avoid a name clash on UnixWare.
Reported by Tim Rice <tim@multitalents.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00025.html>.
* tests/nap.h (nap): Define as gl_nap on OpenServer and UnixWare.
2020-10-11 Bruno Haible <bruno@clisp.org>
stdioext: Update comments regarding UnixWare.
Reported by Tim Rice <tim@multitalents.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00005.html>.
* lib/fbufmode.c: Update comments.
* lib/fflush.c: Likewise.
* lib/fpending.c: Likewise.
* lib/fpurge.c: Likewise.
* lib/freadable.h: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freading.h: Likewise.
* lib/freading.c: Likewise.
* lib/freadptr.c: Likewise.
* lib/freadseek.c: Likewise.
* lib/fseeko.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.h: Likewise.
* lib/fwriting.c: Likewise.
2020-10-11 Bruno Haible <bruno@clisp.org>
stdioext: Treat OpenServer 6 and UnixWare 7 like OpenServer 5.
Reported by Tim Rice <tim@multitalents.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00005.html>.
Uses the info from
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00028.html>.
* lib/stdio-impl.h: Test also __SCO_VERSION__ and __sysv5__.
2020-10-11 Bruno Haible <bruno@clisp.org>
stdioext: Avoid compilation errors on UnixWare 7.
Reported by Tim Rice <tim@multitalents.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00127.html>.
* lib/fbufmode.c: Don't include <stdio_ext.h> if it does not exist.
* lib/fpurge.c: Likewise.
* lib/freadable.h: Likewise.
* lib/freading.h: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwriting.h: Likewise.
* m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test whether <stdio_ext.h> exists.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
* m4/freadable.m4 (gl_FUNC_FREADABLE): Likewise.
* m4/freading.m4 (gl_FUNC_FREADING): Likewise.
* m4/fwritable.m4 (gl_FUNC_FWRITABLE): Likewise.
* m4/fwriting.m4 (gl_FUNC_FWRITING): Likewise.
2020-10-11 Bruno Haible <bruno@clisp.org>
stdioext: Update comments regarding Cygwin.
* lib/fpending.c: Update comments.
* lib/fpurge.c: Likewise.
* lib/freadable.h: Likewise.
* lib/freadable.c: Likewise.
* lib/freading.h: Likewise.
* lib/freading.c: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.h: Likewise.
* lib/fwriting.c: Likewise.
2020-10-11 KO Myung-Hun <komh78@gmail.com>
Fix "warning: implicit declaration of function 'pthread_sigmask'".
* lib/signal.in.h [__KLIBC__]: Include <pthread.h>.
* lib/sys_select.in.h [__KLIBC__]: Do not include <signal.h>.
2020-10-10 Bruno Haible <bruno@clisp.org>
*-list, *-oset, *-omap: Avoid possible compiler warnings.
Reported by Marc Nieper-Wißkirchen in
<https://lists.gnu.org/r/bug-gnulib/2020-10/msg00025.html>.
* lib/gl_anylinked_list2.h (gl_linked_iterator,
gl_linked_iterator_from_to): Mark as 'pure'.
(gl_linked_iterator_free): Mark as 'const'.
* lib/gl_anytree_list2.h (gl_tree_size, gl_tree_node_value,
gl_tree_search_from_to, gl_tree_indexof_from_to, gl_tree_iterator,
gl_tree_iterator_from_to, gl_tree_sortedlist_search,
gl_tree_sortedlist_search_from_to, gl_tree_sortedlist_indexof,
gl_tree_sortedlist_indexof_from_to): Mark as 'pure'.
(gl_tree_iterator_free): Mark as 'const'.
* lib/gl_anytree_omap.h (gl_tree_size, gl_tree_iterator): Mark as
'pure'.
(gl_tree_iterator_free): Mark as 'const'.
* lib/gl_anytree_oset.h (gl_tree_size, gl_tree_next_node,
gl_tree_prev_node, gl_tree_iterator): Mark as 'pure'.
(gl_tree_iterator_free): Mark as 'const'.
* lib/gl_anytreehash_list1.h (node_position, compare_by_position,
compare_position_threshold): Mark as 'pure'.
* lib/gl_array_list.c (gl_array_size, gl_array_indexof_from_to,
gl_array_search_from_to, gl_array_iterator, gl_array_iterator_from_to,
gl_array_sortedlist_indexof_from_to, gl_array_sortedlist_indexof,
gl_array_sortedlist_search_from_to, gl_array_sortedlist_search): Mark as
'pure'.
(gl_array_iterator_free): Mark as 'const'.
* lib/gl_array_omap.c (gl_array_size, gl_array_indexof, gl_array_search,
gl_array_search_atleast, gl_array_iterator): Mark as 'pure'.
(gl_array_iterator_free): Mark as 'const'.
* lib/gl_array_oset.c (gl_array_size, gl_array_indexof, gl_array_search,
gl_array_indexof_atleast, gl_array_search_atleast, gl_array_iterator,
gl_array_iterator_atleast): Mark as 'pure'.
(gl_array_iterator_free): Mark as 'const'.
* lib/gl_carray_list.c (gl_carray_size, gl_carray_node_value,
gl_carray_next_node, gl_carray_previous_node, gl_carray_get_at,
gl_carray_indexof_from_to, gl_carray_search_from_to, gl_carray_iterator,
gl_carray_iterator_from_to, gl_carray_sortedlist_indexof_from_to,
gl_carray_sortedlist_indexof, gl_carray_sortedlist_search_from_to,
gl_carray_sortedlist_search): Mark as 'pure'.
(gl_carray_iterator_free): Mark as 'const'.
2020-10-10 Bruno Haible <bruno@clisp.org>
rbtree-list: Avoid possible compiler warnings.
This mirrors the change of avltree-list on 2014-09-16.
* lib/gl_rbtree_list.c (gl_rbtree_list_check_invariants): Add extern
declaration. Add cast to void for ignored value of check_invariants.
2020-10-10 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
stack: New module.
* MODULES.html.sh: Add entry for the stack module.
* modules/stack: New file.
* modules/stack-tests: New file.
* lib/stack.h: New file.
* tests/test-stack.c: New file.
2020-10-10 Paul Eggert <eggert@cs.ucla.edu>
attribute: improve const, pure doc
Problem reported by Marc Nieper-Wißkirchen in:
https://lists.gnu.org/r/bug-gnulib/2020-10/msg00035.html
* lib/attribute.h (ATTRIBUTE_CONST, ATTRIBUTE_PURE): Improv doc. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51971#c1
2020-10-05 Paul Eggert <eggert@cs.ucla.edu>
thread: pacify GCC on Solaris 10
Problem reported by Kiyoshi KANAZAWA for grep (Bug#43666#29).
* lib/glthread/thread.h (gl_thread_self): Use ‘(pthread_t) 0’
instead of ‘(pthread_t) NULL’, to pacify GCC on Solaris 10
where pthread_t is unsigned int.
2020-10-04 Paul Eggert <eggert@cs.ucla.edu>
c-stack: avoid AS_IF
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-10/msg00018.html
* m4/c-stack.m4 (gl_PREREQ_C_STACK): No need for AS_IF.
c-stack: pacify GCC 9.3.1 when using libsigsegv
* lib/c-stack.c [USE_LIBSIGSEGV]: Disable --suggest-attribute=pure.
2020-10-04 Bruno Haible <bruno@clisp.org>
localename: Fix a couple of "unused parameter" warnings.
Reported by Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00014.html>.
* lib/localename.c (gl_locale_name_thread_unsafe, gl_locale_name_thread,
gl_locale_name_posix, gl_locale_name_environ): Add _GL_UNUSED in
parameter list.
2020-10-04 Bruno Haible <bruno@clisp.org>
vasnprintf: Don't use %n on modern, ISO C 99 compliant platforms.
Suggested by Jeremie Courreges-Anglas <jca@wxcvbn.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-10/msg00010.html>.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Define
HAVE_SNPRINTF_TRUNCATION_C99.
* lib/vasnprintf.c (VASNPRINTF): Don't use %n if
HAVE_SNPRINTF_RETVAL_C99 && HAVE_SNPRINTF_TRUNCATION_C99.
2020-10-03 Paul Eggert <eggert@cs.ucla.edu>
c-stack: streamline Solaris configuration
* lib/c-stack.c: Omit mention of HAVE_SIGALTSTACK, since
the code is used only if a test for sigaltstack worked
in some other way.
* m4/c-stack.m4 (gl_PREREQ_C_STACK): Do not require gl_LIBSIGSEGV;
instead, execute gl_LIBSIGSEGV only if needed (because the XSI
heuristic does not work).
* modules/c-stack (Files): Add m4/libsigsegv.m4, since
we no longer require the libsigsegv module.
(Depends-on): Depend on havelib, not libsigsegv.
c-stack: stop using SIGSTKSZ
It’s been proposed to stop making SIGSTKSZ an integer constant:
https://sourceware.org/pipermail/libc-alpha/2020-September/118028.html
Also, using SIGSTKSZ in #if did not conform to current POSIX.
Also, avoiding SIGSTKSZ makes the code simpler and easier to grok.
* lib/c-stack.c (SIGSTKSZ): Remove.
(alternate_signal_stack): Now a 64 KiB array, for simplicity.
All uses changed.
c-stack: fix libsigsegv typo
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-09/msg00175.html
* lib/c-stack.c (USE_LIBSIGSEGV): Fix typo that caused libsigsegv
to be used only on Solaris (exactly where it is not needed!).
2020-10-03 Thien-Thi Nguyen <ttn@gnuvola.org>
MODULES.html.sh: Fix typo.
* MODULES.html.sh (Numeric conversion functions <stdlib.h>): Fix typo.
2020-09-28 Paul Eggert <eggert@cs.ucla.edu>
version-etc: pacify Oracle Studio 12.6
Without this patch, it complains: "version-etc.h", line 64:
warning: token-less macro argument (E_TOKENLESS_MACRO)" when in
pedantic mode.
* lib/version-etc.h (version_etc): Port to C89 macro rules.
2020-09-27 Bruno Haible <bruno@clisp.org>
Avoid "warning: The macro `AC_DECL_SYS_SIGLIST' is obsolete".
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00154.html>.
* m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Check for sys_siglist
ourselves; don't use AC_DECL_SYS_SIGLIST.
2020-09-27 Bruno Haible <bruno@clisp.org>
Avoid "warning: The macro `_AC_COMPUTE_INT' is obsolete".
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00154.html>.
* m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Use AC_COMPUTE_INT
instead of _AC_COMPUTE_INT.
2020-09-27 Bruno Haible <bruno@clisp.org>
Avoid "warning: The macro `AC_HEADER_STDC' is obsolete".
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00154.html>.
Based on a patch by Paul Eggert.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Don't require AC_HEADER_STDC. Don't
test STDC_HEADERS. Assume <stdlib.h> exists.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
2020-09-27 Bruno Haible <bruno@clisp.org>
Enable testing of prereleases of Autoconf 2.70.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00160.html>.
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Test for Autoconf >= 2.69c, not
>= 2.70.
* m4/largefile.m4 (AC_SYS_LARGEFILE): Likewise.
* m4/pid_t.m4 (AC_TYPE_PID_T): Likewise.
* m4/sys_types_h.m4 (AC_HEADER_MAJOR): Likewise.
2020-09-27 Bruno Haible <bruno@clisp.org>
Avoid "warning: The macro `AC_PROG_CC_STDC' is obsolete".
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00151.html>.
* m4/gnulib-common.m4 (gl_PROG_CC_C99): Use AC_PROG_CC_C99 or
AC_PROG_CC, depending on the Autoconf version.
2020-09-27 Gavin Smith <gavinsmith0123@gmail.com>
Avoid "warning: The macro `AC_HELP_STRING' is obsolete".
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Use AS_HELP_STRING instead
of AC_HELP_STRING.
* m4/libgcrypt.m4 (AM_PATH_LIBGCRYPT): Likewise.
2020-09-27 Bruno Haible <bruno@clisp.org>
Avoid "warning: $as_echo_n is obsolete" from autoconf 2.69c.
Reported by Gavin Smith <gavinsmith0123@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00151.html>.
* m4/gnulib-common.m4 (gl_CACHE_VAL_SILENT): Use gl_SILENT.
2020-09-27 Bruno Haible <bruno@clisp.org>
extensions: Simplify last commit.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Don't require
AC_GNU_SOURCE ever.
2020-09-26 Paul Eggert <eggert@cs.ucla.edu>
extensions: require AC_GNU_SOURCE only for <=2.63
Problem reported by Gavin Smith in:
https://lists.gnu.org/r/autoconf/2020-09/msg00012.html
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS):
Require AC_GNU_SOURCE only for Autoconf 2.63 and earlier, since it
shouldn’t be needed after that, and Autoconf 2.70 complains about
it being obsolete.
2020-09-26 Bruno Haible <bruno@clisp.org>
regex-tests: Make test more robust.
* tests/test-regex.c (main): Make sure to revert the locale to "C" after
the test in "tr_TR.UTF-8" locale. Exit if we can't revert it.
2020-09-25 Paul Eggert <eggert@cs.ucla.edu>
regex-tests: fix possible Turkish false-alarm
* modules/regex-tests (Depends-on): Add wctype-h.
* tests/test-regex.c: Include wctype.h.
(main): Check that ‘i’ uppercases to ‘İ’ in Turkish,
as the Turkish regex test assumes this.
regex-tests: fix test and add debug output
Perhaps this will fix the recent grep test failure reported at:
https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/199
At least, the debug output should help narrow down the failure.
* tests/test-regex.c: Include stdarg.h, stdio.h.
(exit_status): New var.
(report_error): New function.
(main): Use it to report failures to stdout instead of merely
exiting with some nonzero status. The status info alone isn’t
enough to do remote debugging. In the new tr_TR.UTF-8 test, clear
regex before calling re_compile_pattern, fixing a portability bug.
regex: no longer match glibc
* config/srclist.txt: Comment out regex_internal.c for now.
2020-09-23 Paul Eggert <eggert@cs.ucla.edu>
regex: fix ignore-case Turkish bug
* lib/regex_internal.c (build_wcs_upper_buffer):
Do not assume that converting single-byte character to upper
yields a single-byte character. This is not true for Turkish,
where towupper (L'i') yields L'İ', which is not single-byte.
* tests/test-regex.c (main): Test for this bug.
regex: port to weird isascii platforms
* lib/regex_internal.h (isascii) [!_LIBC]: Supply glibc version.
2020-09-20 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: make dfasupported a global function
* lib/dfa.c (dfasupported): Rename, and make it global.
Update caller.
* lib/dfa.h (dfasupported): Add prototype.
2020-09-20 Bruno Haible <bruno@clisp.org>
canonicalize: Add support for UNC file names on native Windows.
Reported and initial patch by Vaclav Slavik <vaclav@slavik.io> in
<https://savannah.gnu.org/bugs/?59079>.
* lib/canonicalize.c (canonicalize_filename_mode): For UNC file names,
extend the prefix to include the server.
2020-09-20 Bruno Haible <bruno@clisp.org>
supersede: Fix test failures on native Windows.
* lib/supersede.c (open_supersede): Handle non-regular files on native
Windows like on Solaris.
* tests/test-supersede-open.h (test_open_supersede): Use O_BINARY flag.
2020-09-20 Paul Eggert <eggert@cs.ucla.edu>
test-stdalign: test Oracle Studio better
* doc/posix-headers/stdalign.texi (stdalign.h):
* tests/test-stdalign.c (main):
Sun Studio Bug #2125432 seems to be fixed.
c-stack: output diagnostic in single 'write'
* lib/c-stack.c (die): In the typical case, use just one 'write'
syscall to output the diagnostic, as this lessens interleaving.
(die, c_stack_action): Assume C99.
* modules/c-stack (Depends-on): Add c99, mempcpy.
c-stack: improve checking if !libsigsegv
If SIGINFO_WORKS, do not treat a null pointer dereference as if it
were a stack overflow. Use uintptr_t and INT_ADD_WRAPV to avoid
unlikely pointer overflow. Also, fix some obsolete code and typos.
I found these problems while looking into this bug report:
https://lists.gnu.org/r/grep-devel/2020-09/msg00053.html
* lib/c-stack.c: Include c-stack.h first, to test interface.
Include inttypes.h for UINTPTR_MAX, stdbool.h, stddef.h for
max_align_t, intprops.h for INT_ADD_WRAPV.
(USE_LIBSIGSEGV): New macro; use it to simplify later code.
(SIGSTKSZ): Simplify setup. Work around libsigsegv bug only
for libsigsegv 2.8 and earlier since the bug should be fixed
after that.
(alternate_signal_stack): Use max_align_t instead of doing it by hand.
(segv_handler, overflow_handler, segv_handler) [DEBUG]:
Assume sprintf returns byte count; this assumption is safe now.
(page_size): New static volatile variable, since sysconf isn’t
documented to be async-signal-safe on Solaris. This variable is
present and used if (!USE_LIBSIGSEGV && HAVE_SIGALTSTACK &&
HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING &&
SIGINFO_WORKS).
(segv_handler): Use it if present. Never report null pointer
dereference as a stack overflow. Check for (unlikely) unsigned
and/or pointer overflow.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC):
Rename cache variables to gl_cv_sys_stack_overflow_works
and gl_cv_sys_xsi_stack_overflow_heuristic.
All uses changed.
(gl_PREREQ_C_STACK): Do not require AC_FUNC_ALLOCA, since
c-stack no longer uses STACK_DIRECTION.
Do not check for unistd.h, since we depend on unistd.
Fix shell typo ‘$"ac_cv_sys_xsi_stack_overflow_heuristic"’.
* modules/c-stack (Depends-on): Sort. Add intprops, inttypes,
stdbool, stddef.
2020-09-20 Bruno Haible <bruno@clisp.org>
Revert now-unnecessary override of config.guess on Alpine Linux 3.10.
* m4/musl.m4: Revert 2020-09-19 patch.
* m4/setlocale_null.m4: Likewise.
* modules/setlocale-null: Likewise.
2020-09-19 Ben Pfaff <blp@cs.stanford.edu>
Bruno Haible <bruno@clisp.org>
relocatable-prog: Fix for multiple relocatable library directories.
* build-aux/reloc-ldflags: Fix handling of multiple relocatable library
directories. Each one needs its own -Wl,-rpath,$dir option, instead of
being attached to a single one.
2020-09-19 Jim Meyering <meyering@fb.com>
test-verify.c: avoid -Wshadow warnings
* tests/test-verify.c (gx): Rename global from "x". Adjust use.
(enum): Capitalize member names. Adjust uses.
2020-09-19 Bruno Haible <bruno@clisp.org>
havelib: Avoid linking with libc.a on GNU systems.
Reported by Bruce Dubbs <bruce.dubbs@gmail.com> in
<https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): When processing the
dependency_libs value of a .la file, ignore '-lc' options on GNU
systems.
2020-09-19 Bruno Haible <bruno@clisp.org>
Fix recognition of musl libc on Alpine Linux 3.10.
Reported by Jeffrey Walton <noloader@gmail.com> in
<https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00020.html>.
* m4/musl.m4 (gl_MUSL_CANONICAL_HOST): New macro.
(gl_MUSL_LIBC): Require it.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Likewise.
* modules/setlocale-null (Files): Add m4/musl.m4.
2020-09-19 Bruno Haible <bruno@clisp.org>
nl_langinfo: Make multithread-safe on Solaris 10 and Solaris 11.3.
Reported for Solaris 10 by Dagobert Michelsen via Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00023.html>
and for Solaris 11.3 by Jeffrey Walton <noloader@gmail.com> in
<https://lists.gnu.org/archive/html/bug-grep/2020-06/msg00013.html>.
* lib/nl_langinfo-lock.c: New file, based on lib/setlocale_null-lock.c.
* lib/nl_langinfo.c: Include <stdlib.h> and <windows.h> or <pthread.h>
or <threads.h>.
(ITEMS, MAX_RESULT_LEN): New macros.
(nl_langinfo_unlocked): New function.
(gl_get_nl_langinfo_lock): New declaration.
(nl_langinfo_with_lock): New function, based on lib/setlocale_null.c.
(rpl_nl_langinfo): Use nl_langinfo_with_lock instead of nl_langinfo.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Require gl_PTHREADLIB. Define
HAVE_THREADS_H. Set NL_LANGINFO_MTSAFE. If setting it to 0, also set
REPLACE_NL_LANGINFO.
(gl_PREREQ_NL_LANGINFO_LOCK): New macro.
* modules/nl_langinfo (Files): Add lib/nl_langinfo-lock.c,
lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4.
(configure.ac): Compile nl_langinfo-lock.c when NL_LANGINFO_MTSAFE is 0.
* doc/posix-functions/nl_langinfo.texi: Mention the Solaris bug.
2020-09-18 Bruno Haible <bruno@clisp.org>
fsusage, getaddrinfo: Produce more regular configure output.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Remove AC_MSG_CHECKING without
corresponding AC_MSG_RESULT.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise.
2020-09-18 Bruno Haible <bruno@clisp.org>
Add back gl_SILENT.
* m4/gnulib-common.m4 (GL_TMP_FD, gl_SILENT): New macros.
2020-09-18 Paul Eggert <eggert@cs.ucla.edu>
c-stack-tests: fix -fsanitize=undefined false alarm
* tests/test-c-stack2.sh: Skip the test-harness self-test
if ‘gcc -fsanitize=undefined’ is in use.
2020-09-17 Paul Eggert <eggert@cs.ucla.edu>
signalblocking: simplify and remove gl_SILENT
gl_SILENT was problematic because if a trap was sprung, stderr
generated during the trap was lost. Avoid the problem by
removing the need for gl_SILENT.
* m4/gnulib-common.m4 (GL_TMP_FD, gl_SILENT): Remove.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING):
Simplify, avoiding the need for gl_SILENT while preserving the
ability of the user to override the value of the cache variable,
now ac_cv_func_sigprocmask.
2020-09-17 Bruno Haible <bruno@clisp.org>
sigprocmask: Fix configuration failure on Solaris 10 (regr. 2020-07-25).
* m4/gnulib-common.m4 (GL_TMP_FD): New macro.
(gl_SILENT): Use 'exec', not a compound statement, to redirect
AS_MESSAGE_FD.
2020-09-17 Paul Eggert <eggert@cs.ucla.edu>
intprops, xalloc: avoid __builtin_mul_overflow_p with Clang
Problem reported by Nelson H. F. Beebe for clang 9.0.1 in:
https://lists.gnu.org/r/grep-devel/2020-09/msg00028.html
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P) [__clang__]:
Define to 0.
* lib/xalloc-oversized.h (xalloc_oversized) [__clang__]:
Do not use __builtin_mul_overflow_p.
libc-config: port __THROW to Ubuntu 4
* lib/cdefs.h (__THROW): Do not use __attribute__ ((__nothrow__))
for GCC 3.3. Problem reported by Jeffrey Walton in:
https://lists.gnu.org/r/bug-gnulib/2019-07/msg00058.html
The GCC 3.3.4 documentation says the attribute should work, but
apparently it does not work on Ubuntu 4’s GCC 3.3. There seems
little point or desire to research this circa-2004 platform further,
so just avoid the attribute there.
2020-09-17 Jim Meyering <meyering@fb.com>
test-dfa-match.sh: port timeout work-around to newer Busybox
* tests/test-dfa-match.sh: Update timeout -t portability test to
accommodate Busybox 1.30.0 and newer.
2020-09-16 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: adjust to match glibc fix
This fixes handling of collating symbols in fnmatch (glibc bug 26620).
This does not affect Gnulib; it merely keeps Gnulib and glibc
closer together, to help with any eventual merge, by incorporating
a recent glibc patch. The patch and the following commentary is
by Andreas Schwab.
* lib/fnmatch_loop.c (FCT) [WIDE_CHAR_VERSION]: The variable idx
contains the index into the extra array, whereas wextra points
into the extra array at this index, containing the length of the
following collating sequence in the wide character representation.
2020-09-16 Bruno Haible <bruno@clisp.org>
stat, fstat: Fix compilation error with old mingw headers.
Reported by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00027.html>.
* lib/stat-w32.c (VOLUME_NAME_NONE): Define if the Windows headers don't
define it.
2020-09-16 Bruno Haible <bruno@clisp.org>
stat, fstat: Fix when compiling for versions older than Windows Vista.
Reported by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00027.html>.
* lib/stat-w32.c: Include <sdkddkver.h>. Test the value of _WIN32_WINNT
that was originally set before we redefined it.
* m4/stat.m4 (gl_PREREQ_STAT_W32): New macro.
(gl_PREREQ_STAT): Require it.
* m4/fstat.m4 (gl_PREREQ_FSTAT): Likewise.
2020-09-15 Paul Eggert <eggert@cs.ucla.edu>
dfa: remove dfa-heap-overrun workaround
* lib/dfa.c (reorder_tokens): Go back to a single pass that
both sets map[*] and does other things. This reverts
2020-09-14T01:20:01Z!eggert@cs.ucla.edu, which is no longer
neeeded now that 2020-09-14T13:21:05Z!noritnk@kcn.ne.jp
fixed the underlying problem.
2020-09-13 Paul Eggert <eggert@cs.ucla.edu>
dfa: avoid use of uninitialized constraint
* lib/dfa.c (merge_nfa_state): Do not initialize the constraint
to zero here.
(dfaoptimize): Do it here instead, via xcalloc. This prevents the
use of an uninitialized constraint by later code when ! (flags[i]
& OPT_QUEUED) means merge_nfa_state was not called to initialize
the constraint. Problem found by running 'valgrind src/grep -E
'(^| )*(a|b)*(c|d)*( |$)' < /dev/null' on Ubuntu 18.04.5 x86-64.
dfa: assume C99 in reorder_tokens
* lib/dfa.c (reorder_tokens): Assume C99 and simplify.
dfa: fix dfa-heap-overrun failure
* lib/dfa.c (reorder_tokens): When setting
map[d->follows[i].elems[j].index], instead of incorrectly assuming
that (i < d->follows[i].elems[j].index), use two loops, one to set
the map array and the other to use it. The incorrect assumption
caused some elements to be missed, and this in turn caused grep's
dfa-heap-overrun test to fail on Solaris 10 sparc when compiled
with GCC. I found this bug while investigating
https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/183
and I think the bug also occurs on GNU/Linux but with more-subtle
symptoms. The bug predates the recent dfa.c changes; perhaps the
recent changes make the bug more likely.
2020-09-13 Bruno Haible <bruno@clisp.org>
parse-datetime: Make the build rule work with parallel 'make'.
Reported by Daiki Ueno <ueno@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00036.html>.
* modules/parse-datetime (Makefile.am): Use a phony target and the
general idiom for rules that produce multiple files.
2020-09-13 Ben Pfaff <blp@cs.stanford.edu>
getpass: Check for nonnull prompt argument while avoiding warnings.
* lib/getpass.c (_GL_ARG_NONNULL): Define to empty.
(getpass) [!_WIN32]: Print prompt only if nonnull.
2020-09-12 Paul Eggert <eggert@cs.ucla.edu>
dfa: epsilon-closure tweaks (Bug#40634)
Rename BACKWORD to BACKWARD consistently.
* lib/dfa.c (struct dfa): Reorder members to reduce fragmentation.
(addtok_mb): Redo slightly to make it act more like a state machine.
Check depth only when it increases.
(epsclosure): Let the switch test the tokens.
(dfaanalyze): Cache tindex. Simplify position loops.
Prefer xcalloc to xnmalloc + explicit zeroing. Free BACKWARD
only if it is not null, since we're testing that anyway.
(dfaanalyze, build_state): Use merge2 instead of doing it by hand.
2020-09-12 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: use backward set in removal of epsilon closure
When removing in epsilon closure, the code searched all nodes
sequentially, and this was slow for some cases. Build a backward
set before search, and only check previous position with the set.
Problem reported in <https://bugs.gnu.org/40634>.
* lib/dfa.c (struct dfa): New member 'epsilon'.
(addtok_mb): Check whether a pattern has epsilon node or not.
(epsclosure): New arg BACKWORD; caller changed. When removing
epsilon node and reconnecting, check only previous positions.
Treat BEG as if it were character.
(dfaanalyze): Build backward set.
2020-09-10 Paul Eggert <eggert@cs.ucla.edu>
canonicalize: fix pointer indexing bugs
Problem reported by Florian Weimer in:
https://lists.gnu.org/r/bug-gnulib/2020-09/msg00025.html
* lib/canonicalize-lgpl.c (__realpath):
* lib/canonicalize.c (canonicalize_filename_mode):
Do not generate a pointer past the end of the array.
* lib/canonicalize.c (canonicalize_filename_mode):
Do not use a pointer after passing it to realloc.
2020-09-09 Paul Eggert <eggert@cs.ucla.edu>
tempname: help merge with glibc
Inspired by draft patches by Adhemerval Zanella in:
https://sourceware.org/pipermail/libc-alpha/2020-September/117501.html
https://sourceware.org/pipermail/libc-alpha/2020-September/117502.html
* lib/tempname.c: Include stdalign.h, time.h.
If _LIBC, do not include random-bits.h.
(__getrandom, __clock_gettime64, __timespec64) [!_LIBC]: New macros.
(RANDOM_BITS): Remove, replacing with ...
(random_bits): ... this new static function. All uses changed.
Add entropy each time if getrandom is not supported.
(RANDOM_VALUE, BASE_62_DIGITS, BASE_62_POWER):
Assume 64-bit support a la C99.
(try_tempname_len): Take advantage of ASLR when initializing
random value.
* modules/tempname (Depends-on): Add clock-time, stdalign, time.
getcwd: merge recent glibc changes
* lib/getcwd.c (GETCWD_RETURN_TYPE) [!_LIBC]: New macro.
(__getcwd, getcwd) [_LIBC && !GETCWD_RETURN_TYPE]: Add aliases.
2020-09-06 Bruno Haible <bruno@clisp.org>
attribute: Clarify which file to include.
* modules/attribute (Include): Add "attribute.h".
2020-09-06 Bruno Haible <bruno@clisp.org>
pipe-filter-ii, pipe-filter-gi: Fix warnings on native Windows.
* lib/pipe-filter-ii.c: Include <process.h>.
* lib/pipe-filter-gi.c: Likewise.
2020-09-05 Paul Eggert <eggert@cs.ucla.edu>
verify: avoid __builtin_assume
Our latest attempt to use Clang’s __builtin_assume caused a crash
in GNU Emacs that we spent quite some time tracking down as being
caused by the switch to __builtin_assume. It’s not known whether
the crash is due is a Clang bug or a portability bug in GNU Emacs.
For now, play it safe and avoid __builtin_assume.
* lib/verify.h (_GL_HAS_BUILTIN_ASSUME): Remove.
(assume): Simplify by not trying to use Clang’s __builtin_assume.
2020-09-05 Bruno Haible <bruno@clisp.org>
Fix several "warning: no previous prototype for function".
* modules/unicase/locale-language (Makefile.am): Add a 'static' keyword
in front of the declaration of the lookup function in
unicase/locale-languages.h.
* modules/unictype/bidiclass-byname (Makefile.am): Likewise in
unictype/bidi_byname.h.
* modules/unictype/category-byname (Makefile.am): Likewise in
unictype/categ_byname.h.
* modules/unictype/combining-class-byname (Makefile.am): Likewise in
unictype/combiningclass_byname.h.
* modules/unictype/joininggroup-byname (Makefile.am): Likewise in
unictype/joininggroup_byname.h.
* modules/unictype/joiningtype-byname (Makefile.am): Likewise in
unictype/joiningtype_byname.h.
* modules/unictype/property-byname (Makefile.am): Likewise in
unictype/pr_byname.h.
* modules/unictype/scripts (Makefile.am): Likewise in
unictype/scripts_byname.h.
* modules/uninorm/composition (Makefile.am): Likewise in
uninorm/composition-table.h.
2020-09-05 Bruno Haible <bruno@clisp.org>
select: Fix "warning: no previous prototype for function".
* lib/select.c: Include <sys/select.h>.
2020-09-05 Bruno Haible <bruno@clisp.org>
Use module 'c99' when needed for variadic macros with '...' syntax.
* modules/crypto/sm3 (Depends-on): Add c99.
2020-09-05 Bruno Haible <bruno@clisp.org>
Use module 'c99' when needed for subobject initializer syntax.
* modules/tempname (Depends-on): Add c99.
* modules/nstrftime-tests (Depends-on): Likewise.
2020-09-05 Bruno Haible <bruno@clisp.org>
Use module 'c99' when needed for declaration-after-statement syntax.
* modules/backup-rename (Depends-on): Add c99.
* modules/backupfile (Depends-on): Likewise.
* modules/bitset-tests (Depends-on): Likewise.
* modules/bitsetv (Depends-on): Likewise.
* modules/c-strtod (Depends-on): Likewise.
* modules/c-strtold (Depends-on): Likewise.
* modules/clean-temp (Depends-on): Likewise.
* modules/copy-file (Depends-on): Likewise.
* modules/crypto/hmac-md5-tests (Depends-on): Likewise.
* modules/crypto/hmac-sha1-tests (Depends-on): Likewise.
* modules/crypto/hmac-sha256-tests (Depends-on): Likewise.
* modules/crypto/hmac-sha512-tests (Depends-on): Likewise.
* modules/crypto/md5-buffer (Depends-on): Likewise.
* modules/crypto/md5-tests (Depends-on): Likewise.
* modules/crypto/sha1-buffer (Depends-on): Likewise.
* modules/crypto/sha1-tests (Depends-on): Likewise.
* modules/crypto/sha256-buffer (Depends-on): Likewise.
* modules/crypto/sha256-tests (Depends-on): Likewise.
* modules/crypto/sha512-buffer (Depends-on): Likewise.
* modules/crypto/sha512-tests (Depends-on): Likewise.
* modules/diffseq (Depends-on): Likewise.
* modules/fatal-signal (Depends-on): Likewise.
* modules/fchmodat (Depends-on): Likewise.
* modules/fstrcmp (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/fts-tests (Depends-on): Likewise.
* modules/getumask (Depends-on): Likewise.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/hash-map (Depends-on): Likewise.
* modules/hash-set (Depends-on): Likewise.
* modules/lchmod (Depends-on): Likewise.
* modules/libgmp-tests (Depends-on): Likewise.
* modules/libtextstyle-optional-tests (Depends-on): Likewise.
* modules/linkedhash-map (Depends-on): Likewise.
* modules/linkedhash-set (Depends-on): Likewise.
* modules/long-options (Depends-on): Likewise.
* modules/mbrtoc32 (Depends-on): Likewise.
* modules/memchr2-tests (Depends-on): Likewise.
* modules/memmem-tests (Depends-on): Likewise.
* modules/memrchr-tests (Depends-on): Likewise.
* modules/mktime-internal (Depends-on): Likewise.
* modules/nstrftime (Depends-on): Likewise.
* modules/opendirat (Depends-on): Likewise.
* modules/parse-datetime (Depends-on): Likewise.
* modules/quotearg-simple-tests (Depends-on): Likewise.
* modules/same (Depends-on): Likewise.
* modules/supersede (Depends-on): Likewise.
* modules/supersede-tests (Depends-on): Likewise.
* modules/time_rz (Depends-on): Likewise.
* modules/unistr/u16-chr-tests (Depends-on): Likewise.
* modules/unistr/u32-chr-tests (Depends-on): Likewise.
* modules/unistr/u8-chr-tests (Depends-on): Likewise.
* modules/xalloc (Depends-on): Likewise.
* modules/xnanosleep (Depends-on): Likewise.
2020-09-05 Bruno Haible <bruno@clisp.org>
Fix "warning: array initialized from parenthesized string constant".
* tests/test-memmem.c (main): Remove parentheses around string constant.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
2020-09-05 Bruno Haible <bruno@clisp.org>
argmatch tests: Fix ISO C compliance warning.
* tests/test-argmatch.c: Omit semicolon after ARGMATCH_DEFINE_GROUP
invocation.
2020-09-05 Bruno Haible <bruno@clisp.org>
uniname/uniname: Fix -Wshadow warning.
* lib/uniname/uniname.c (unicode_name_word): Don't declare i upfront.
* modules/uniname/uniname (Depends-on): Add c99.
2020-09-05 Bruno Haible <bruno@clisp.org>
uniname/uniname: Fix -Wshorten-64-to-32 warnings.
* lib/uniname/uniname.c (unicode_name_word_lookup): Change type of last
argument to size_t.
(unicode_name_character): Change type of len, n1, n2, n3, words_length,
n to size_t.
2020-09-05 Bruno Haible <bruno@clisp.org>
unistr/u{8,16,32}-uctomb: Avoid possible trouble with huge strings.
* lib/unistr.in.h (u8_uctomb_aux, u8_uctomb, u16_uctomb_aux, u16_uctomb,
u32_uctomb): Change type of last argument to ptrdiff_t.
* lib/unistr/u8-uctomb.c (u8_uctomb): Likewise.
* lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise.
* lib/unistr/u16-uctomb.c (u16_uctomb): Likewise.
* lib/unistr/u16-uctomb-aux.c (u16_uctomb_aux): Likewise.
* lib/unistr/u32-uctomb.c (u32_uctomb): Likewise.
2020-09-01 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: remove -Wchkp and -Wabi from C++ too
Suggested by Reuben Thomas in:
https://lists.gnu.org/r/bug-gnulib/2020-09/msg00001.html
At some point somebody should merge the many other manywarnings-c.m4
changes into manywarnings-c++.m4 too, e.g.,
2020-07-02T00:00:51Z!eggert@cs.ucla.edu.
* m4/manywarnings-c++.m4 (gl_MANYWARN_ALL_GCC_CXX_IMPL):
Remove -Wchkp, -Wabi.
2020-08-30 Bruno Haible <bruno@clisp.org>
strerrorname_np: Add tests.
* tests/test-strerrorname_np.c: New file.
* modules/strerrorname_np-tests: New file.
strerrorname_np: New module.
* lib/string.in.h (strerrorname_np): New declaration.
* lib/strerrorname_np.c: New file.
* m4/strerrorname_np.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether strerrorname_np
is declared.
(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERRORNAME_NP,
HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP.
* modules/string (Makefile.am): Substitute GNULIB_STRERRORNAME_NP,
HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP.
* modules/strerrorname_np: New file.
* tests/test-string-c++.cc: Verify the signature of strerrorname_np.
* doc/glibc-functions/strerrorname_np.texi: Mention the new module and
the glibc 2.32 bug.
2020-08-27 Paul Eggert <eggert@cs.ucla.edu>
perror, strerror_r: remove unportable tests
Problem reported by Florian Weimer in:
https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html
* tests/test-perror2.c (main):
* tests/test-strerror_r.c (main): Omit unportable tests.
2020-08-26 Bruno Haible <bruno@clisp.org>
stdint, wchar, wctype-h: Change configure message.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Say "checking whether wint_t is large
enough..." instead of "checking whether wint_t is too small...".
2020-08-26 Bruno Haible <bruno@clisp.org>
time_rz: Change configure message.
* m4/time_rz.m4 (gl_TIME_RZ): Say "checking whether localtime works even
near extrema..." instead of "checking whether localtime loops forever
near extrema...".
2020-08-26 Bruno Haible <bruno@clisp.org>
stdint: Change configure message.
* m4/stdint.m4 (gl_STDINT_H): Say "checking whether stdint.h works
without ISO C predefines..." instead of "checking whether stdint.h
predates C++11...".
2020-08-26 Bruno Haible <bruno@clisp.org>
socketlib: Change configure message.
* m4/socketlib.m4 (gl_SOCKETLIB): Say "checking for WSAStartup..."
instead of "checking if we need to call WSAStartup in winsock2.h and
-lws2_32...".
2020-08-26 Bruno Haible <bruno@clisp.org>
include_next: Change configure message.
* m4/include_next.m4 (gl_INCLUDE_NEXT): Say "checking whether source
code line length is unlimited..." instead of "checking whether system
header files limit the line length...".
2020-08-26 Bruno Haible <bruno@clisp.org>
getcwd: Change configure message.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Say "checking
whether getcwd succeeds when 4k < cwd_length < 16k..." instead of
"checking whether getcwd aborts when 4k < cwd_length < 16k...".
2020-08-26 Bruno Haible <bruno@clisp.org>
chdir-long: Change configure message.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Say "checking whether this
system supports file names of any length..." instead of "checking
whether this system has an arbitrary file name length limit...".
Set gl_cv_have_unlimited_file_name_length instead of
gl_cv_have_arbitrary_file_name_length_limit.
* modules/chdir-long (Depends-on, configure.ac): Update accordingly.
2020-08-26 Bruno Haible <bruno@clisp.org>
ceill: Change configure message.
* m4/ceill.m4 (gl_FUNC_CEILL): Say "checking whether ceill() works..."
instead of "checking whether ceill() breaks with small values...".
2020-08-26 Bruno Haible <bruno@clisp.org>
iconv: Change configure message.
* m4/iconv.m4 (AM_ICONV): Say "checking whether iconv is compatible
with its POSIX signature..." instead of "checking for iconv
declaration...". Remove K&R C support.
2020-08-26 Paul Eggert <eggert@cs.ucla.edu>
getcwd: help the merge back into glibc
This patch was inspired by Adhemerval Zanella’s proposed glibc patches:
https://sourceware.org/pipermail/libc-alpha/2020-August/117294.html
The idea is to make it easier for Gnulib lib/getcwd.c to match
glibc io/getcwd-generic.c.
* lib/getcwd.c [_LIBC]: Do not include pathmax.h.
Include not-cancel.h.
(HAVE_OPENAT, D_INO_IN_DIRENT, HAVE_MSVC_INVALID_PARAMETER_HANDLER)
(HAVE_MINIMALLY_WORKING_GETCWD): Define for the _LIBC case.
(__getcwd, __lstat, __readdir) [!_LIBC]: Remove these macros.
(__close_nocancel_nostatus, __getcwd_generic, stat64, __fstat64)
(__fstatat64, __lstat64, __readdir64, __fdopendir, __openat)
(__rewinddir, __openat64, dirent64) [_LIBC]: New macros.
(__getcwd_generic): Rename from __getcwd.
Use the abovementioned macros for consistency with glibc.
(weak_alias): Remove.
2020-08-25 Bruno Haible <bruno@clisp.org>
verify: Avoid warnings when assume(0) is used.
Reported by Mattias Engdegård <mattiase@acm.org> via Paul Eggert in
<https://lists.gnu.org/archive/html/emacs-devel/2020-08/msg00838.html>.
* lib/verify.h (assume): Use __builtin_unreachable if the argument is
the constant 0.
* tests/test-verify.c (f): New function.
(state): New type.
(test_assume_expressions, test_assume_optimization,
test_assume_noreturn): New functions.
2020-08-25 Bruno Haible <bruno@clisp.org>
fstrcmp: Clarification regarding NOTE_ORDERED.
* lib/fstrcmp.c (NOTE_ORDERED): Define to false.
2020-08-24 Paul Eggert <eggert@cs.ucla.edu>
diffseq: new option NOTE_ORDERED
Problem reported by Phil Sainty <https://bugs.gnu.org/42931>.
* NEWS: Mention this.
* lib/diffseq.h (NOTE_ORDERED): New macro.
(IF_LINT2): Remove; no longer needed.
(compareseq): If (!NOTE_ORDERED), recurse on the smaller
subproblem and iterate to do the larger.
2020-08-23 Paul Eggert <eggert@cs.ucla.edu>
sys_types: let Autoconf 2.70 do pid_t
* m4/pid_t.m4 (AC_TYPE_PID_T): Redefine this Autoconf macro
only for Autoconf versions 2.69 and earlier, since 2.70
will be fixed.
2020-08-23 Bruno Haible <bruno@clisp.org>
tests: Don't assume that pid_t fits in an 'int'.
* tests/test-nonblocking-pipe-main.c (main): Use type 'pid_t' instead
of 'int'.
* tests/test-nonblocking-socket-main.c (main): Likewise.
sys_types: Fix definition of pid_t on 64-bit MSVC.
* m4/pid_t.m4: New file.
* modules/sys_types (Files): Add it.
* modules/dirent (Files): Likewise.
* modules/fcntl-h (Files): Likewise.
* modules/sched (Files): Likewise.
* modules/signal-h (Files): Likewise.
* modules/spawn (Files): Likewise.
* modules/sys_stat (Files): Likewise.
* modules/sys_wait (Files): Likewise.
* modules/termios (Files): Likewise.
* modules/unistd (Files): Likewise.
2020-08-23 Bruno Haible <bruno@clisp.org>
inttypes: Fix {PRI,SCN}*PTR on 32-bit native Windows (regr. 2020-07-21).
* m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Fix syntax error in test
program.
2020-08-23 Paul Eggert <eggert@cs.ucla.edu>
intprops: be consistent about +X vs X+0
* lib/intprops.h (_GL_SIGNED_INT_MAXIMUM): Simplify.
intprops: fix INT_MULTIPLY_WRAPV bit-field bug
The bug occurs when using INT_MULTIPLY_WRAPV (a, b, c) where B
is a bit-field, on older GCC or non-GCC compilers where we do
things ourselves instead of using __builtin_mul_overflow.
Without this fix, INT_MULTIPLY_WRAPV would not compile, due
to applying sizeof to a bit-field.
* lib/intprops.h (_GL_INT_MULTIPLY_RANGE_OVERFLOW):
Promote B before giving it to TYPE_WIDTH, in case B is a bit-field.
2020-08-23 Bruno Haible <bruno@clisp.org>
supersede: Avoid a failure when writing to /dev/null in Solaris zones.
Reported by Jörg Sonnenberger <joerg@netbsd.org>
via Thomas Klausner <tk@giga.or.at> in
<https://pkgsrc.se/files.php?messageId=20200812233110.30230FB28@cvs.NetBSD.org>.
* lib/supersede.c (open_supersede): When opening an existing non-regular
file on Solaris, use O_CREAT although it should not be necessary.
2020-08-23 Bruno Haible <bruno@clisp.org>
verify: Make assume work on bit field expressions (regr. 2020-08-22).
Reported by Benno Schulenberg <bensberg@telfort.nl> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00202.html>.
* lib/verify.h (assume): Use '_Bool' or 'bool' as type of the temporary
variable.
2020-08-23 Bruno Haible <bruno@clisp.org>
libc-config: Improve comments.
* lib/cdefs.h (__warndecl, __warnattr, __errordecl): Explain why we
cannot use clang's __diagnose_if__ here.
2020-08-22 Bruno Haible <bruno@clisp.org>
verify: Do use __builtin_assume on clang.
* lib/verify.h (assume): Use clang’s __builtin_assume, with a temporary
variable in a statement expression.
2020-08-22 Bruno Haible <bruno@clisp.org>
sig2str: Add more signals.
* lib/sig2str.c (numname_table): Add SIGCPUFAIL, SIGTHR, SIGBREAK.
2020-08-22 Bruno Haible <bruno@clisp.org>
doc: Update for OpenBSD 6.0, 6.7.
* doc/*/*.texi: Update.
* m4/printf.m4: Update comments and cross-compilation guesses.
* m4/ceill.m4: Update comments.
* m4/getcwd-abort-bug.m4: Likewise.
* m4/ilogb.m4: Likewise.
* m4/ilogbf.m4: Likewise.
* m4/langinfo_h.m4: Likewise.
* m4/modf.m4: Likewise.
* m4/modff.m4: Likewise.
2020-08-22 Bruno Haible <bruno@clisp.org>
doc: Mention sig2str module.
* doc/glibc-functions/sigabbrev_np.texi: Mention the sig2str module.
2020-08-21 Bruno Haible <bruno@clisp.org>
sigdescr_np: Add tests.
* tests/test-sigdescr_np.c: New file.
* modules/sigdescr_np-tests: New file.
sigdescr_np: New module.
* lib/string.in.h (sigdescr_np): New declaration.
* lib/sigdescr_np.c: New file.
* m4/sigdescr_np.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether sigdescr_np is
declared.
(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_SIGDESCR_NP,
HAVE_SIGDESCR_NP.
* modules/string (Makefile.am): Substitute GNULIB_SIGDESCR_NP,
HAVE_SIGDESCR_NP.
* modules/sigdescr_np: New file.
* tests/test-string-c++.cc: Verify the signature of sigdescr_np.
* doc/glibc-functions/sigdescr_np.texi: Mention the new module.
2020-08-20 Bruno Haible <bruno@clisp.org>
sigabbrev_np: Add tests.
* tests/test-sigabbrev_np.c: New file.
* modules/sigabbrev_np-tests: New file.
sigabbrev_np: New module.
* lib/string.in.h (sigabbrev_np): New declaration.
* lib/sigabbrev_np.c: New file.
* m4/sigabbrev_np.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether sigabbrev_np is
declared.
(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_SIGABBREV_NP,
HAVE_SIGABBREV_NP.
* modules/string (Makefile.am): Substitute GNULIB_SIGABBREV_NP,
HAVE_SIGABBREV_NP.
* modules/sigabbrev_np: New file.
* tests/test-string-c++.cc: Verify the signature of sigabbrev_np.
* doc/glibc-functions/sigabbrev_np.texi: Mention the new module.
2020-08-20 Bruno Haible <bruno@clisp.org>
stdalign tests: Skip test with AIX xlclang.
* tests/test-stdalign.c (main): Skip alignas tests with AIX xlclang.
2020-08-20 Bruno Haible <bruno@clisp.org>
stdalign: Fix test failures on 32-bit platforms with clang versions < 8.
* lib/stdalign.in.h (_Alignof): For clang versions < 8, use the same
workaround as for GCC versions < 4.9.
2020-08-20 Siddhesh Poyarekar <siddhesh@gotplt.org>
Sync up ProjectQuirks comments and documentation
Transform the ProjectQuirks comments into a docstring so that it can
be accessed from python as ProjectQuirks.__doc__ and harmonize
descriptions with the documentation.
* build-aux/vcstocl/projectquirks.py (ProjectQuirks):
Transform comments into a docstring.
* doc/vcs-to-changelog.texi: Sync up description with comments.
Split ProjectQuirks out into its own file
ProjectQuirks is used by external quirks files and importing it from
vcs-to-changelog.py is broken since it was renamed to use hyphens. It
is cleaner to put it in its own file anyway.
* build-aux/vcstocl/projectquirks.py: A new file...
* build-aux/vcs-to-changelog.py (ProjectQuirks): ...to which
we move ProjectQuirks and import the file.
2020-08-19 Bruno Haible <bruno@clisp.org>
uchar: Fix compilation errors in C++ mode on macOS.
* m4/uchar.m4 (gl_UCHAR_H): Require gl_ANSI_CXX if present. Include some
system header file before attempting to use 'char16_t' and 'char32_t'.
2020-08-19 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Work around an autoconf macro reordering problem.
* modules/ansi-c++-opt: Require gl_ANSI_CXX already in the early
section.
2020-08-19 Bruno Haible <bruno@clisp.org>
math C++ tests: Fix compilation error in with GCC 10.
* lib/math.in.h (cbrt, ceil, copysign, exp2, expm1, floor, fma, fmod,
hypot, ilogb, log, log10, log1p, log2, logb, modf, remainder, rint,
round, trunc): Use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN.
2020-08-19 Bruno Haible <bruno@clisp.org>
uchar: Fix compilation errors in C++ mode on OpenBSD.
* lib/uchar.in.h (char16_t, char32_t): Don't define in C++ mode if
CXX_HAS_UCHAR_TYPES is 1.
* m4/uchar.m4 (gl_UCHAR_H): Determine whether the C++ compiler
predefines char16_t and char32_t. Substitute CXX_HAS_UCHAR_TYPES.
* modules/uchar (Makefile.am): Substitute CXX_HAS_UCHAR_TYPES.
2020-08-19 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on OpenBSD.
* lib/math.in.h (isfinite, isinf, isnan, signbit): In C++ mode on
OpenBSD with clang, use the approach without C preprocessor macro.
2020-08-18 Bruno Haible <bruno@clisp.org>
uchar C++ tests: Fix side effect on math modules (regr. 2020-08-17).
* modules/uchar-c++-tests (configure.ac): Don't use AC_LANG_PUSH and
AC_LANG_POP.
2020-08-17 Paul Eggert <eggert@cs.ucla.edu>
verify: avoid __built_assume on Clang
* lib/verify.h (assume): Do not use Clang’s __builtin_assume, as
Clang 9 incorrectly diagnoses arguments as having side effects
even when they do not. I guess Clang 9 considers any function
call as if it had a side effect here.
libc-config: avoid Clang’s __diagnose_if__
* lib/cdefs.h (__warndecl, __warnattr, __errordecl):
For now, do not use __diagnose_if__ here, as this fails
on Fedora 31 with Clang 9.0.1, with diagnostic
"/usr/include/bits/stdio2.h:263:9: error: fgets called with bigger
size than length of destination buffer
[-Werror,-Wuser-defined-warnings]". I guess Clang 9 warns even
for functions that are not called?
careadlinkat: speedup for GCC 10 with GCC_LINT
Inspired by a suggestion by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-08/msg00155.html
* lib/careadlinkat.c (STACK_BUF_SIZE): New constant.
(readlink_stk): New function, with most of the old careadlinkat
contents and with a new STACK_BUF arg. Inline it in GCC 10
if GCC_LINT.
(careadlinkat): Use the new function for everything but the
stack buffer.
* build-aux/gcc-warning.spec: Update comments.
2020-08-17 Bruno Haible <bruno@clisp.org>
Assume autoconf >= 2.64.
* m4/std-gnu11.m4 (AC_PROG_CC, AC_PROG_CXX): Use _AC_DO_LIMIT always.
2020-08-17 Bruno Haible <bruno@clisp.org>
Revert autoupdate's revert.
* config/srclist.txt: Mark regcomp.c as needing sync with glibc.
2020-08-17 Bruno Haible <bruno@clisp.org>
uchar C++ tests: Fix build error on FreeBSD 12.
* modules/uchar-c++-tests (configure.ac): Test whether <cuchar> exists.
(Makefile.am): Don't include test-uchar-c++2.cc in the compilation if
<cuchar> does not exist.
2020-08-16 Paul Eggert <eggert@cs.ucla.edu>
time_rz: remove unused functions
* lib/time_rz.c (isdst_differ, equal_tm): Remove; no longer used.
time_rz: fix issues with mktime_z failures
* lib/time_rz.c (mktime_z): Do not update *TM if revert_tz fails.
Use a cheaper tm_yday test for failed mktime.
2020-08-16 Bruno Haible <bruno@clisp.org>
intprops test: Strengthen on clang.
* tests/test-intprops.c (VERIFY): Use verify_stmt.
2020-08-16 Bruno Haible <bruno@clisp.org>
nstrftime: Guide inlining also on clang.
* lib/nstrftime.c (iso_week_days): Inline also on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
intprops: Avoid bogus "warning: division by zero is undefined" on clang.
* lib/intprops.h (_GL__GENERIC_BOGUS): Define to 1 on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
log2l: Disable MSVC workaround on clang.
* lib/log2l.c (log2l): On clang, use the expression 0.0L/0.0L.
2020-08-16 Bruno Haible <bruno@clisp.org>
argp: Emit a warning also with clang.
* lib/argp-help.c (__argp_short_program_name): Use #warning also on
clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
libc-config: Enable __REDIRECT macro also on clang.
* lib/cdefs.h (__REDIRECT, __REDIRECT_NTH, __REDIRECT_NTHNL, __ASMNAME,
__ASMNAME2): Define on clang like on GCC.
2020-08-16 Bruno Haible <bruno@clisp.org>
regex: Use initializer shorthand syntax also with clang.
* lib/regcomp.c (utf8_sb_map): Use the initializer shorthand syntax also
with clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
regex: Use space optimization also with clang.
* lib/regex_internal.h (re_token_t): Use a single byte for the type also
with clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
Use _Static_assert and static_assert primitives when present on clang.
* lib/cdefs.h (_Static_assert): Don't define as a macro on clang.
* lib/verify.h (_GL_HAVE__STATIC_ASSERT, _GL_HAVE__STATIC_ASSERT1,
_GL_HAVE_STATIC_ASSERT1): Define as appropriate on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
Use 'throw ()' for optimization in C++ mode also on clang.
* lib/cdefs.h (__THROW): Define to 'throw ()' also on clang.
* lib/getopt-cdefs.in.h (__THROW): Likewise.
* lib/md5.h (__THROW): Likewise.
2020-08-16 Bruno Haible <bruno@clisp.org>
absolute-header: Add support for clang.
* modules/absolute-header (Makefile.am): Include '__clang__' in the
HAVE_INCLUDE_NEXT expression.
2020-08-16 Bruno Haible <bruno@clisp.org>
Fix "warning: implicitly declaring library function 'strcasecmp'".
* lib/argp-help.c: Include <strings.h>.
2020-08-16 Bruno Haible <bruno@clisp.org>
stdio: Don't break attribute 'scanf' on clang.
* lib/stdio.in.h (scanf): Treat clang like GCC.
2020-08-16 Bruno Haible <bruno@clisp.org>
Use __restrict also on clang.
* lib/argp.h (__restrict): Don't define as a macro on clang >= 3.
* lib/glob.in.h (_Restrict_): Use __restrict on clang >= 3.
* lib/unitypes.in.h (_UC_RESTRICT): Likewise.
2020-08-16 Bruno Haible <bruno@clisp.org>
pthread-spin: Use GCC built-ins also on clang.
* lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): Use the newer GCC built-ins
also on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
asyncsafe-spin tests: Update.
* tests/test-asyncsafe-spin2.c: Update to match the change in
lib/asyncsafe-spin.c from 2020-08-11.
2020-08-16 Bruno Haible <bruno@clisp.org>
setenv: Use tree code also with clang.
* lib/setenv.c (USE_TSEARCH): Treat clang like GCC.
2020-08-16 Bruno Haible <bruno@clisp.org>
math: Optimize signbit also on clang.
* lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Optimize also
on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
avltreehash-list, rbtreehash-list: Optimize also on clang.
* lib/gl_anytreehash_list1.h (add_nodes_to_buckets): Use
__builtin_expect also on clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
Fix "warning: 'WSASocketA' is deprecated: Use WSASocketW() instead".
* lib/socket.c: Use WSASocketW, not WSASocketA.
Fix "warning: format specifies type 'unsigned long'".
* tests/test-nonblocking-writer.h (main_writer_loop): Cast dbgfprintf
argument to match the format directive.
Fix "warning: no case matching constant switch condition '0'".
* tests/test-fcntl.c (check_flags): Add a 'default' case.
Fix "warning: integer overflow in expression".
* tests/test-strtol.c (main): Use an 'unsigned long' expression to
remove a 'long' overflow.
Fix "warning: "getpagesize" redefined".
* tests/test-getcwd.c (getpagesize): Don't redefine if defined as a
macro.
Fix "warning: implicitly declaring library function 'strncasecmp'".
* lib/strptime.c: Include <strings.h>.
Fix "warning: 'snprintf' macro redefined".
* lib/strerror_r.c (snprintf): Undefine before redefining.
Fix "warning: address of array 'locale' will always evaluate to 'true'".
* lib/nl_langinfo.c (ctype_codeset): Remove redundant NULL test.
Fix "warning: '__stat64' macro redefined".
* lib/glob.c (__stat64): Undefine also on MSVC/clang.
Fix "warning: 'format' attribute argument not supported: rpl_printf".
* lib/stdio.in.h (printf): Treat clang like GCC.
Fix "warning: attribute declaration must precede definition" with clang.
* lib/math.in.h (acosl, asinl, atanl, ceill, cosl, expl, fabsf, fabsl,
floorl, fmodl, frexpf, frexpl, hypotf, hypotl, ldexpf, ldexpl, logl,
log10l, modfl, sinl, sqrtl, tanl): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.
* lib/netdb.in.h (gai_strerror): Likewise.
* lib/stdio.in.h (snprintf, vfscanf, vscanf, vsnprintf): Likewise.
* lib/sys_stat.in.h (fstat): Likewise.
* lib/utime.in.h (utime): Likewise.
Fix undesired warnings.
* lib/sys_select.in.h: Disable all _GL_WARN_ON_USE invocations with
clang.
2020-08-16 Bruno Haible <bruno@clisp.org>
C++ tests: Fix link errors on MSVC (regression from 2020-05-31).
* modules/stdio-c++-tests (Makefile.am): Link test-stdio-c++ with
$(LIB_GETRANDOM), needed for the rpl_tmpfile symbol.
* modules/stdlib-c++-tests (Makefile.am): Link test-stdlib-c++ with
$(LIB_GETRANDOM), needed for the mkdtemp and mkstemp symbols.
2020-08-16 Bruno Haible <bruno@clisp.org>
Don't use Autoconf quadrigraphs.
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Use '#' instead of the corresponding
Autoconf quadrigraph.
* m4/free.m4 (gl_FUNC_FREE): Likewise.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Likewise.
* m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES,
_AC_SYS_LARGEFILE_MACRO_VALUE): Likewise.
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise.
2020-08-16 Bruno Haible <bruno@clisp.org>
Fix quoting of AC_LANG_PROGRAM arguments.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Quote the AC_LANG_PROGRAM
arguments through [[...]].
* m4/fpending.m4 (gl_FUNC_FPENDING): Likewise.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Likewise.
* m4/ld-output-def.m4 (gl_LD_OUTPUT_DEF): Likewise.
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* m4/mountlist.m4 (gl_MOUNTLIST): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise.
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): Likewise.
* m4/wcstok.m4 (gl_FUNC_WCSTOK): Likewise.
* m4/wctype_h.m4 (gl_WCTYPE_H): Likewise.
2020-08-16 Bruno Haible <bruno@clisp.org>
Assume autoconf >= 2.64.
* gnulib-tool (DEFAULT_AUTOCONF_MINVERSION): Set to 2.64.
* DEPENDENCIES: Require Autoconf 2.64 or newer.
* NEWS: Mention the changed requirement.
* m4/00gnulib.m4 (_m4_divert_diversion, AC_DEFUN_ONCE): Remove macros.
* m4/gnulib-common.m4 (AS_VAR_IF, AS_VAR_COPY): Remove macros.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Quote pushdef'ed
variables.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise.
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): Likewise.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C), gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++),
gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)): Define through AC_DEFUN.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C), gl_MANYWARN_ALL_GCC(C++)):
Likewise.
* m4/iconv.m4 (AM_ICONV): Define through AC_DEFUN_ONCE directly.
* m4/libunistring.m4 (gl_LIBUNISTRING): Likewise.
* m4/configmake.m4: Update comment.
2020-08-16 Bruno Haible <bruno@clisp.org>
sys_ioctl: Simplify.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Remove confusing use of
AC_INCLUDES_DEFAULT.
2020-08-16 Bruno Haible <bruno@clisp.org>
Fix quoting of AC_LANG_SOURCE arguments.
* m4/printf.m4 (gl_PRINTF_ENOMEM): Fix an m4 quoting bug in the
GL_NOCRASH expansion.
* m4/locale-ar.m4 (gt_LOCALE_AR): Simplify m4 quoting.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
* m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
2020-08-15 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: be more predictable about errno
This aligns nstrftime better with draft POSIX 202x strftime.
* lib/nstrftime.c: Include errno.h.
(width_add, __strftime_internal): Set errno on failure,
and preserve it on success. Check for mktime_z failure.
* modules/nstrftime (Depends-on): Add errno.
* modules/nstrftime-tests (Depends-on): Add atoll, intprops.
* tests/test-nstrftime.c: Include intprops.h, limits.h.
(errno_test): New test function.
(main): Call it.
2020-08-15 Bruno Haible <bruno@clisp.org>
canonicalize: Fix a problem of the autoconf test on MSVC/clang.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Remove undesired file
from dependency analysis first.
2020-08-15 Bruno Haible <bruno@clisp.org>
Determine asm output option and filename suffix for MSVC/clang.
* m4/asm-underscore.m4 (gl_C_ASM): Distinguish clang from cl and
clang-cl.
2020-08-15 Bruno Haible <bruno@clisp.org>
doc: Update for MSVC/clang.
* doc/*-functions/*printf.texi: Mention that MSVC/clang has two bugs
that MSVC 14 does not have.
2020-08-15 Bruno Haible <bruno@clisp.org>
Revert autoupdate's revert.
* config/srclist.txt: Mark mktime.c as needing sync with glibc.
2020-08-15 Bruno Haible <bruno@clisp.org>
frexpl: Fix configuration test result on MSVC.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Avoid a division by a constant
zero.
2020-08-15 Bruno Haible <bruno@clisp.org>
Support compiling without -loldnames on native Windows.
* m4/gnulib-common.m4 (GL_MDA_DEFINES, _GL_MDA_DEFINES): New macros.
* m4/chown.m4 (AC_FUNC_CHOWN): In the test programs, use GL_MDA_DEFINES.
(gl_FUNC_CHOWN, gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise.
* m4/dup.m4 (gl_FUNC_DUP): Likewise.
* m4/dup2.m4 (gl_FUNC_DUP2): Likewise.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Likewise.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise.
* m4/fcntl.m4 (gl_FUNC_FCNTL): Likewise.
* m4/fdopen.m4 (gl_FUNC_FDOPEN): Likewise.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Likewise.
* m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Likewise.
* m4/freopen.m4 (gl_FUNC_FREOPEN): Likewise.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Likewise.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL, gl_FUNC_GETCWD_SIGNATURE):
Likewise.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* m4/lseek.m4 (gl_FUNC_LSEEK): Likewise.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Likewise.
* m4/open-slash.m4 (gl_OPEN_TRAILING_SLASH_BUG): Likewise.
* m4/poll.m4 (gl_FUNC_POLL): Likewise.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise.
* m4/pread.m4 (gl_FUNC_PREAD): Likewise.
* m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Likewise.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/select.m4 (gl_FUNC_SELECT): Likewise.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise.
* m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): On native Windows, don't
test for getcwd.
* m4/utime.m4 (gl_FUNC_UTIME): On native Windows, don't test for utime.
* m4/wcsdup.m4 (gl_FUNC_WCSDUP): To test for wcsdup, use a test program
with GL_MDA_DEFINES.
* lib/c++defs.h (_GL_CXXALIAS_MDA): New macro.
* lib/fcntl.in.h (creat, open): On native Windows, use the underscore-
prefixed symbol.
* lib/search.in.h (lfind, lsearch): Likewise.
* lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam):
Likewise.
* lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise.
* lib/string.in.h (memccpy, strdup): Likewise.
* lib/sys_stat.in.h (chmod, umask): Likewise.
* lib/time.in.h (tzset): Likewise.
* lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle,
execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek,
read, rmdir, swab, unlink, write): Likewise.
* lib/utime.in.h (utime): Likewise.
* lib/wchar.in.h (wcsdup): Likewise.
* lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise.
(isfinite, isinf, isnan, signbit): On native Windows, don't define as an
rpl_-prefixed macro.
* lib/canonicalize-lgpl.c (__getcwd): On native Windows, use _getcwd.
* lib/close.c (close_nothrow): On native Windows, use _close.
* lib/creat.c (orig_creat): On native Windows, use _creat.
* lib/dup.c (dup_nothrow): On native Windows, use _dup.
* lib/dup2.c (dup2_nothrow): Use _dup2.
* lib/fdopen.c (fdopen_nothrow): On native Windows, use _fdopen.
* lib/getcwd-lgpl.c: On native Windows, use _getcwd.
* lib/getcwd.c (getcwd_nothrow): Use _getcwd also on mingw.
* lib/open.c (orig_open): On native Windows, use _open.
* lib/read.c (read_nothrow): Use _read.
* lib/rmdir.c: On native Windows, use _rmdir.
* lib/unlink.c: On native Windows, use _unlink.
* lib/write.c (write_nothrow): Use _write.
* lib/sys_select.in.h (close): With clang, don't attach a warning on an
undefined symbol.
* lib/sys_socket.in.h (close): Likewise.
* lib/sys_time.in.h (close): Likewise.
* tests/test-spawn-pipe-child.c: On native Windows, use _fdopen.
2020-08-15 Bruno Haible <bruno@clisp.org>
Fix "unknown pragma ignored" warnings with clang on native Windows.
* lib/cbrt.c: Don't use '#pragma fenv_access (off)' with clang.
* lib/cbrtf.c: Likewise.
* lib/ceil.c: Likewise.
* lib/floor.c: Likewise.
* lib/fma.c: Likewise.
* lib/fmod.c: Likewise.
* lib/rint.c: Likewise.
* lib/round.c: Likewise.
* lib/trunc.c: Likewise.
* tests/test-ceil2.c: Likewise.
* tests/test-ceilf2.c: Likewise.
* tests/test-floor2.c: Likewise.
* tests/test-floorf2.c: Likewise.
* tests/test-trunc2.c: Likewise.
* tests/test-truncf2.c: Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
2020-08-15 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode with clang on native Windows.
* lib/pthread.in.h (pthread_*): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/sched.in.h (sched_yield): Likewise.
2020-08-14 Bruno Haible <bruno@clisp.org>
stdnoreturn: Work around problem with MSVC/clang.
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): On native Windows, include some
system header after <stdnoreturn.h>.
* doc/posix-headers/stdnoreturn.texi: Mention the issue.
2020-08-14 Bruno Haible <bruno@clisp.org>
utime-h: Generate an utime.h file always.
* modules/utime-h (Makefile.am): Generate utime.h always.
* m4/utime_h.m4 (gl_UTIME_H): Don't set UTIME_H. Don't define
GL_GENERATE_UTIME_H.
2020-08-14 Bruno Haible <bruno@clisp.org>
mktime, mktime-internal: Remove obsolete code.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Don't #undef putenv.
2020-08-14 Bruno Haible <bruno@clisp.org>
getcwd: Remove obsolete code.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Don't #undef mkdir.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
2020-08-14 Bruno Haible <bruno@clisp.org>
tzset: Assume the function exists.
* lib/time.in.h (tzset): Assume HAVE_TZSET is 1.
* lib/tzset.c: Define rpl_tzset, not tzset. Assume HAVE_TZSET is 1.
* modules/tzset (configure.ac): Don't test HAVE_TZSET.
* m4/tzset.m4 (gl_FUNC_TZSET): Don't test for tzset. Don't set
HAVE_TZSET.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Don't initialize HAVE_TZSET.
* modules/time (Makefile.am): Don't substitute HAVE_TZSET.
nstrftime: Assume tzset exists.
* lib/nstrftime.c (HAVE_TZSET): Remove macro.
(__strftime_internal): Test my_strftime, not HAVE_TZSET.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't test for tzset.
mktime, mktime-internal: Assume tzset exists.
* lib/mktime.c (my_tzset): Assume HAVE_TZSET is 1.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Don't test for tzset.
2020-08-14 Bruno Haible <bruno@clisp.org>
strdup: Assume the function exists.
* m4/strdup.m4 (gl_FUNC_STRDUP, gl_FUNC_STRDUP_POSIX): Don't test
whether strdup exists.
* modules/strdup (Files): Remove lib/strdup.c.
(configure.ac): Don't compile strdup.c.
* modules/strdup-posix (Depends-on, configure.ac): Don't test
ac_cv_func_strdup.
* doc/posix-functions/strdup.texi: Update.
* lib/unistr/u8-strdup.c: Assume HAVE_STRDUP is 1.
* modules/unistr/u8-strdup (Files): Remove lib/unistr/u-strdup.h.
(Depends-on): Remove unistr/u8-strlen.
2020-08-13 Bruno Haible <bruno@clisp.org>
sys_random: Work around an uClibc bug.
Reported by akater <nuclearspace@gmail.com>
via Stefan Kangas <stefan@marxist.se>
in <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42236>.
* lib/sys_random.in.h: On uClibc, include <stddef.h> first.
* m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Update comment.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise.
* doc/glibc-headers/sys_random.texi: Mention the uClibc bug.
2020-08-12 Bruno Haible <bruno@clisp.org>
Avoid implicit conversion from 'unsigned int' to 'int' in initializers.
Reported by Florian Weimer in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00086.html>.
* lib/gen-uni-tables.c (output_predicate): Change the element type of
the level3 array to 'unsigned int'.
* lib/unictype/bitmap.h (bitmap_lookup): Access an 'unsigned int'.
* lib/unictype/categ_*.h: Regenerated.
* lib/unictype/ctype_*.h: Regenerated.
* lib/unictype/pr_*.h: Regenerated.
* lib/unictype/sy_*.h: Regenerated.
* lib/unicase/cased.h: Regenerated.
* lib/unicase/ignorable.h: Regenerated.
2020-08-12 Paul Eggert <eggert@cs.ucla.edu>
stdint: port intptr_t to more-recent MinGW
Problem reported by Eli Zaretskii in <https://bugs.gnu.org/36597#106>.
* lib/stdint.in.h (intptr_t, uintptr_t): Do not define on MinGW,
even if _INTPTR_T_DEFINED and _UINTPTR_T_DEFINED are not defined.
Apparently those two macros were removed in mingwrt-3.22
dated 2016-07-14.
2020-08-12 Bruno Haible <bruno@clisp.org>
thread-optim: Export function-like macros only.
Suggested by Paul Eggert.
* lib/thread-optim.h (gl_multithreaded): New macro.
(IF_MT_DECL, IF_MT): Remove macros.
* doc/multithread.texi (Multithreading Optimizations): Add a small
example.
* lib/fatal-signal.c: Update all uses.
* lib/clean-temp.c: Likewise.
* lib/localename.c: Likewise.
* modules/localename (Depends-on): Add stdbool.
2020-08-12 Bruno Haible <bruno@clisp.org>
Revert autoupdate's revert.
* config/srclist.txt: Mark regex.h as needing sync with glibc.
2020-08-11 Bruno Haible <bruno@clisp.org>
thread-optim: Fix a compiler warning.
* lib/thread-optim.h (IF_MT_DECL): Define differently.
2020-08-11 Bruno Haible <bruno@clisp.org>
Use __restrict also on clang.
* lib/cdefs.h (__restrict): Don't define as a macro on clang.
(__restrict_arr): On clang, define like on GCC.
* lib/regex.h (_Restrict_): Use '__restrict' also on clang.
(_Restrict_arr_): Use _Restrict_ also on clang.
* lib/spawn.in.h (_Restrict_): Use '__restrict' also on clang.
(_Restrict_arr_): Use _Restrict_ also on clang.
2020-08-11 Bruno Haible <bruno@clisp.org>
Use flexible array syntax also on clang.
* lib/cdefs.h (__flexarr, __glibc_c99_flexarr_available): For clang,
define like for GCC 3.
2020-08-11 Bruno Haible <bruno@clisp.org>
fcntl: On native Windows, use _setmode, not setmode.
* lib/fcntl.c (dupfd): Use _setmode, not setmode.
* lib/binary-io.h: Update comment.
* tests/test-cloexec.c: Call set_binary_mode, not setmode.
* tests/test-dup2.c: Likewise.
* tests/test-dup-safer.c: Likewise.
* tests/test-fcntl.c: Likewise.
2020-08-11 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Use _spawnvpe, not spawnvpe.
* lib/execute.c (execute): Use _spawnvpe, not spawnvpe.
* lib/spawn-pipe.c (create_pipe): Likewise.
* tests/test-nonblocking-pipe-main.c (main): Likewise.
* tests/test-nonblocking-socket-main.c (main): Likewise.
* lib/wait-process.c: Update comment.
* doc/posix-functions/fork.texi: Update.
2020-08-11 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Use GCC built-ins also on clang.
* lib/asyncsafe-spin.c (asyncsafe_spin_init, do_lock, do_unlock): Use
the newer GCC built-ins also on clang.
2020-08-11 Bruno Haible <bruno@clisp.org>
Use expression statements also on clang.
* lib/cdefs.h (__extension__): Don't define to empty on clang.
* lib/obstack.h (__extension__): Likewise.
(obstack_object_size, obstack_room, obstack_make_room, obstack_empty_p,
obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
obstack_int_grow, obstack_ptr_grow_fast, obstack_int_grow_fast,
obstack_blank, obstack_alloc, obstack_copy, obstack_copy0,
obstack_finish, obstack_free): Enable as optimized macros also on clang.
* lib/fpucw.h (fpucw_t etc.): Enable the definitions also on clang.
2020-08-10 Bruno Haible <bruno@clisp.org>
Use many __attribute__s with clang.
* m4/gnulib-common.m4 (_Noreturn): Use __attribute__ __noreturn__ also
on clang.
* lib/cdefs.h (__glibc_clang_has_attribute, __glibc_clang_has_builtin):
New macros.
(__THROW, __THROWNL, __NTH, __NTHNL): Use __attribute__ __nothrow__ also
on clang.
(__warndecl, __warnattr, __errordecl): Use __attribute__ __diagnose_if__
also on older clang versions.
(__attribute__): Don't define to empty on clang.
(__attribute_malloc__): Use __attribute__ __malloc__ also on clang.
(__attribute_pure__): Use __attribute__ __pure__ also on clang.
(__attribute_const__): Use __attribute__ __const__ also on clang.
(__attribute_used__): Use __attribute__ __used__ also on clang.
(__attribute_noinline__): Use __attribute__ __noinline__ also on clang.
(__attribute_deprecated__): Use __attribute__ __deprecated__ also on
clang.
(__attribute_format_arg__): Use __attribute__ __format_arg__ also on
clang.
(__attribute_format_strfmon__): Use __attribute__ __format__ __strfmon__
also on clang.
(__nonnull): Use __attribute__ __nonnull__ also on clang.
(__attribute_warn_unused_result__): Use __attribute__
__warn_unused_result__ also on clang.
(__always_inline): Use __attribute__ __always_inline__ also on clang.
(__attribute_artificial__): Use __attribute__ __artificial__ also on
clang >= 7.
(__glibc_unlikely, __glibc_likely): Use __builtin_expect also on older
clang versions.
(_Noreturn): Don't redefine on clang >= 3.5.
* lib/arg-nonnull.h (_GL_ARG_NONNULL): Use __attribute__ __nonnull__
also on clang.
* lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Use __attribute__ __pure__ also
on clang.
* lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT): Use __attribute__ __format__
also on clang.
* lib/monetary.in.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/textstyle.in.h (ostream_printf, ostream_vprintf): Likewise.
* lib/unitypes.in.h (_UC_ATTRIBUTE_CONST): Use __attribute__ __const__
also on clang.
(_UC_ATTRIBUTE_PURE): Use __attribute__ __pure__ also on clang.
* lib/noreturn.h (_GL_NORETURN_FUNC, _GL_NORETURN_FUNCPTR): Use
__attribute__ __noreturn__ also on clang.
* lib/obstack.h (__attribute_noreturn__): Likewise.
* lib/file-set.h (record_file): Use __attribute__ __nonnull__ also on
clang.
* lib/argp-help.c (hol_entry_long_iterate): Use __attribute__
always_inline also on clang.
* tests/test-printf-posix.c (func1, func2, func3, func4): Test also on
clang.
2020-08-10 Bruno Haible <bruno@clisp.org>
c-ldtoastr tests: Fix test failure.
* tests/test-c-ldtoastr.c (main): Support platforms where 'long double'
is longer than 'double'.
2020-08-10 Bruno Haible <bruno@clisp.org>
Revert autoupdate's revert.
* config/srclist.txt: Mark intprops.h as needing sync with glibc.
2020-08-09 Bruno Haible <bruno@clisp.org>
string: Fix build error in C++ mode with clang (regression from today).
* lib/warn-on-use.h (_GL_WARN_ON_USE_CXX): Expect two rettype
parameters, one for GCC, one for clang.
* lib/c++defs.h (_GL_CXXALIASWARN1_2): Update.
* lib/string.in.h (strchr, strpbrk, strrchr): For clang, pass 'char *'
as return type.
2020-08-09 Bruno Haible <bruno@clisp.org>
ftruncate: Use _chsize, not chsize.
* m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): Test for _chsize, not chsize.
* lib/ftruncate.c: Test HAVE__CHSIZE.
(chsize_nothrow): Use _chsize, not chsize.
2020-08-09 Bruno Haible <bruno@clisp.org>
Silence warnings from clang 10 with -Wimplicit-fallthrough.
* lib/dfa.c (FALLTHROUGH): Use __attribute__ __fallthrough__ also on
clang >= 10.
* lib/fnmatch.c (FALLTHROUGH): Likewise.
* lib/fts.c (FALLTHROUGH): Likewise.
* tests/macros.h (FALLTHROUGH): Likewise.
* lib/regex_internal.h (FALLTHROUGH): Likewise.
* config/srclist.txt: Mark it as needing sync with glibc.
2020-08-09 Bruno Haible <bruno@clisp.org>
stdbool tests: Enable the stricter tests also on clang.
* tests/test-stdbool.c (ADDRESS_CHECK_OKAY): Define also on clang.
(e): Enable the address-to-bool conversion test also on clang.
2020-08-09 Bruno Haible <bruno@clisp.org>
count-one-bits: Use __builtin_popcount{,l,ll} on clang.
* lib/count-one-bits.h (COUNT_ONE_BITS): Use the GCC built-in.
2020-08-09 Bruno Haible <bruno@clisp.org>
Use attribute __aligned__ with clang.
* lib/stdalign.in.h (_Alignas): Treat clang like GCC.
* lib/stddef.in.h (_GL_STDDEF_ALIGNAS): Likewise.
2020-08-09 Bruno Haible <bruno@clisp.org>
Use __alignof__ with clang.
* m4/stddef_h.m4 (gl_STDDEF_H): Test the alignment of max_align_t also
on clang.
* lib/alignof.h (alignof_type): Use __alignof__ also on clang.
* lib/stdalign.in.h (_Alignof): Don't activate the GCC workaround on
clang.
* lib/malloca.h (sa_alignof): Use __alignof__ also on clang.
* lib/bitset/list.c (lbitset_elt_alloc): Use __alignof__ also on clang.
* lib/bitset/table.c (tbitset_elt_alloc): Likewise.
* tests/test-stddef.c: Very the behaviour of __alignof__ also on clang.
2020-08-09 Bruno Haible <bruno@clisp.org>
ignore-value: Simplify on clang.
* lib/ignore-value.h (ignore_value): With clang, no need to use the GCC
workaround.
2020-08-09 Bruno Haible <bruno@clisp.org>
Use __typeof__ with clang.
* m4/stdint.m4 (gl_STDINT_H): Check for SIZE_MAX also on
"clang -std=gnu99".
* lib/intprops.h (_GL_HAVE___TYPEOF__): Define to 1 also on clang.
* tests/test-stdint.c (verify_same_types): Enable the check also on
clang.
2020-08-09 Bruno Haible <bruno@clisp.org>
Add ability to emit user-defined warnings and errors with clang.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTRIBUTE_ERROR,
_GL_ATTRIBUTE_WARNING using an attribute for clang.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_ATTRIBUTE,
_GL_WARN_ON_USE_CXX): Define using an attribute for clang.
* lib/cdefs.h (__warndecl, __warnattr, __errordecl): Define using an
attribute for clang.
2020-08-09 Bruno Haible <bruno@clisp.org>
intprops: Fix typo in comment.
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P): Fix typo in comment.
2020-08-09 Bruno Haible <bruno@clisp.org>
Use __builtin_signbit* with clang.
* lib/math.in.h (signbit): Use __builtin_signbit{,f,l} also on clang.
* m4/signbit.m4 (gl_SIGNBIT): Use __builtin_signbit{,f,l} also on clang.
Set REPLACE_SIGNBIT_USING_BUILTINS, not REPLACE_SIGNBIT_USING_GCC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize
REPLACE_SIGNBIT_USING_BUILTINS, not REPLACE_SIGNBIT_USING_GCC.
* modules/math (Makefile.am): Substitute REPLACE_SIGNBIT_USING_BUILTINS,
not REPLACE_SIGNBIT_USING_GCC.
2020-08-09 Bruno Haible <bruno@clisp.org>
Use __builtin_isnan with clang.
* lib/isnanf-nolibm.h (isnanf): Use the GCC built-in __builtin_isnan,
not __builtin_isnanf. Also on clang.
* m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_ISNANF_WORKS): Use the GCC
built-in __builtin_isnan, not __builtin_isnanf. Also on clang.
* lib/isnand-nolibm.h (isnand): With clang, use the GCC built-in.
* m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM): With clang, use the GCC
built-in.
* lib/isnanl-nolibm.h (isnanf): Use the GCC built-in __builtin_isnan,
not __builtin_isnanl. Also on clang.
* m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_FUNC_ISNANL_WORKS): Use the
GCC built-in __builtin_isnan, not __builtin_isnanl. Also on clang.
* lib/math.in.h (__has_builtin): Remove macro.
(isnanf, gl_isnan_f): Use the GCC built-in __builtin_isnan, not
__builtin_isnanf. Also on clang.
(isnand, gl_isnan_d): With clang, use the GCC built-in.
(isnanl, gl_isnan_l): Use the GCC built-in __builtin_isnan, not
__builtin_isnanl. Also on clang.
(isnan): Use the GCC built-in __builtin_isnan in all three cases. Also
on clang.
2020-08-09 Bruno Haible <bruno@clisp.org>
thread-optim: Fix logic error.
Reported by Paul Eggert.
* lib/thread-optim.h (IF_MT): Fix logic error.
2020-08-08 Bruno Haible <bruno@clisp.org>
localename: Use module 'thread-optim'.
* lib/localename.c: Include thread-optim.h.
(struniq): Use IF_MT macro.
* modules/localename (Depends-on): Add thread-optim.
clean-temp: Use module 'thread-optim'.
* lib/clean-temp.c: Include thread-optim.h.
(register_temporary_file, unregister_temporary_file, create_temp_dir,
register_temp_file, unregister_temp_file, register_temp_subdir,
unregister_temp_subdir, cleanup_temp_dir_contents, register_fd,
close_temp, fclose_variant_temp): Use IF_MT macro.
* modules/clean-temp (Depends-on): Add thread-optim.
fatal-signal: Use module 'thread-optim'.
* lib/fatal-signal.c: Include thread-optim.h.
(at_fatal_signal, block_fatal_signals, unblock_fatal_signals): Use IF_MT
macro.
* modules/fatal-signal (Depends-on): Add thread-optim.
2020-08-08 Bruno Haible <bruno@clisp.org>
New module 'thread-optim'.
* lib/thread-optim.h: New file.
* modules/thread-optim: New file.
* doc/multithread.texi (Multithreading Optimizations): New section.
2020-08-07 Paul Eggert <eggert@cs.ucla.edu>
doc: more updates for glibc 2.32
* doc/glibc-functions/lchmod.texi, doc/posix-functions/faccessat.texi:
* doc/posix-functions/fchmodat.texi: Update.
2020-08-07 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.32.
* doc/glibc-functions/__libc_single_threaded.texi: New file.
* doc/glibc-functions/pthread_attr_getsigmask_np.texi: New file.
* doc/glibc-functions/pthread_attr_setsigmask_np.texi: New file.
* doc/glibc-functions/sigabbrev_np.texi: New file.
* doc/glibc-functions/sigdescr_np.texi: New file.
* doc/glibc-functions/strerrordesc_np.texi: New file.
* doc/glibc-functions/strerrorname_np.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc sys/single_threaded.h): New section.
* doc/pastposix-functions/h_errno.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2020-08-07 Bruno Haible <bruno@clisp.org>
alloca: No need to compile alloca.c with clang.
* lib/alloca.c: Skip all code with clang.
Use __builtin_alloca with clang.
* lib/alloca.in.h (alloca): Define as __builtin_alloca on clang.
2020-08-06 Bruno Haible <bruno@clisp.org>
Use __builtin_assume with clang.
* lib/verify.h (_GL_HAS_BUILTIN_ASSUME): New macro.
(assume): Use __builtin_assume when available.
2020-08-06 Paul Eggert <eggert@cs.ucla.edu>
libgmp: add <gmp/gmp.h> support
* m4/libgmp.m4 (gl_LIBGMP):
* modules/libgmp (configure.ac, Makefile.am):
Support platforms requiring ‘#include <gmp/gmp.h>’ instead of
‘#include <gmp.h>’.
2020-08-06 Bruno Haible <bruno@clisp.org>
Consider that clang defines __OPTIMIZE__ like GCC does.
* lib/streq.h: Define the inline functions also on clang.
* lib/c-strcaseeq.h: Likewise.
* lib/c++defs.h (_GL_CXXALIASWARN_2, _GL_CXXALIASWARN1_2): Don't enable
the GCC workaround to clang.
2020-08-06 Bruno Haible <bruno@clisp.org>
safe-alloc: Remove unused code.
* lib/safe-alloc.h (__GNUC_PREREQ): Remove macro.
2020-08-06 Bruno Haible <bruno@clisp.org>
Use __builtin_expect with clang everywhere.
* lib/cdefs.h (__glibc_unlikely, __glibc_likely): Use the GCC built-in
also on clang.
2020-08-05 Bruno Haible <bruno@clisp.org>
Use __builtin_ctz{,l,ll} and __builtin_ffs{,l,ll} with clang everywhere.
* lib/count-trailing-zeros.h (COUNT_TRAILING_ZEROS): Use the GCC
built-in also on clang.
* lib/ffs.c: With clang, use the GCC built-in, not <intrin.h>.
* lib/ffsl.h: Likewise. Assume GCC_BUILTIN is defined.
2020-08-05 Bruno Haible <bruno@clisp.org>
Use __builtin_clz{,l,ll} with clang, also on Windows.
* lib/integer_length.c: With clang, use the GCC built-in, not
<intrin.h>.
* lib/integer_length_l.c: Likewise.
* lib/count-leading-zeros.h (COUNT_LEADING_ZEROS): Use the GCC built-in
also on clang.
* lib/vasnprintf.c (divide): Likewise.
2020-08-04 Paul Eggert <eggert@cs.ucla.edu>
Update srclist.txt as per recent glibc changes
* config/srclist.txt: Uncomment lines to reflect recent merges
from Gnulib to glibc.
2020-08-03 Bruno Haible <bruno@clisp.org>
Prefer documented autoconf macro 'm4_if' over 'ifelse'.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Use m4_if instead of ifelse.
2020-08-03 Bruno Haible <bruno@clisp.org>
integer_length_ll: Optimize for MSVC in 64-bit mode.
* lib/integer_length_l.c (MSVC_BUILTIN): Define for MSVC in 64-bit mode.
(FUNC): On MSVC, use MSVC_BUILTIN if defined.
2020-08-03 Bruno Haible <bruno@clisp.org>
integer_length_ll: Optimize for MSVC in 32-bit mode.
* lib/integer_length_l.c: Include <intrin.h>.
(integer_length): Define as inline function, like in
lib/integer_length.c.
2020-08-03 Bruno Haible <bruno@clisp.org>
integer_length: Optimize for MSVC.
* lib/integer_length.c: Include <intrin.h>.
(integer_length): With MSVC, use the _BitScanReverse built-in.
2020-08-03 Bruno Haible <bruno@clisp.org>
ffsll: Optimize for MSVC in 64-bit mode.
* lib/ffsl.h (FUNC): On MSVC, use MSVC_BUILTIN if defined.
* lib/ffsll.c (MSVC_BUILTIN): Define for MSVC in 64-bit mode.
* lib/ffsl.c (MSVC_BUILTIN): Define for MSVC.
2020-08-03 Bruno Haible <bruno@clisp.org>
ffsll: Optimize for MSVC in 32-bit mode.
* lib/ffsl.h: Include <intrin.h>.
(ffs): Define as inline function, like in lib/ffs.c.
2020-08-03 Bruno Haible <bruno@clisp.org>
ffs: Optimize for MSVC.
* lib/ffs.c: Include <intrin.h>.
(ffs): With MSVC, use the _BitScanForward built-in.
2020-08-03 Bruno Haible <bruno@clisp.org>
sigprocmask: Try to avoid breakage for people who use an Autoconf cache.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Change the name of the cache
variable.
2020-08-03 Harald van Dijk <harald@gigawatt.nl> (tiny change)
fopen: Avoid undesired interactions with glibc headers.
* lib/fopen.c (_GL_ALREADY_INCLUDING_STDIO_H): Define this instead of
__need_FILE, as the latter does not work with glibc.
2020-08-02 Paul Eggert <eggert@cs.ucla.edu>
fcntl: document some F_SETLK errno variations
* doc/posix-functions/fcntl.texi (fcntl): Document
OpenIndiana, GNU/Linux, FreeBSD on NFS files.
2020-08-02 Bruno Haible <bruno@clisp.org>
oset: Add an 'iterator_atleast' operation.
* lib/gl_array_oset.c (gl_array_indexof_atleast): New function,
extracted from gl_array_search_atleast.
(gl_array_search_atleast): Use it.
(gl_array_iterator_atleast): New function.
(gl_array_oset_implementation): Use it.
* lib/gl_anytree_oset.h (gl_tree_iterator_atleast): New function.
* lib/gl_avltree_oset.c (gl_avltree_oset_implementation): Use it.
* lib/gl_rbtree_oset.c (gl_rbtree_oset_implementation): Likewise.
* lib/gl_oset.h (struct gl_oset_implementation): Add 'iterator_atleast'
member.
(gl_oset_iterator_atleast): New function.
* lib/gl_oset.hh (gl_OSet): Add 'begin_atleast' member.
(gl_OSet::iterator): Add another auxiliary constructor.
* tests/test-array_oset.c (is_at_least, gl_sortedlist_indexof_atleast):
New functions.
(main): Test also gl_oset_iterator_atleast.
* tests/test-avltree_oset.c (is_at_least): New function.
(main): Test also gl_oset_iterator_atleast.
* tests/test-rbtree_oset.c (is_at_least): New function.
(main): Test also gl_oset_iterator_atleast.
* tests/test-oset-c++.cc (is_at_most): New function.
(main): Test also gl_OSet::begin_atleast.
2020-08-02 Bruno Haible <bruno@clisp.org>
oset-c++, omap-c++: Remove restriction for search_atleast method.
* lib/gl_oset.hh (gl_OSet::search_atleast): Allow the threshold to be of
a different type than the element.
* lib/gl_omap.hh (gl_OMap::search_atleast): Allow the threshold to be of
a different type than the key.
2020-08-01 Paul Eggert <eggert@cs.ucla.edu>
gnumakefile: say ‘$(MAKE)’ not ‘make’
* top/GNUmakefile (abort-due-to-no-makefile):
Prefer ‘$(MAKE)’ to ‘make’ in a diagnostic.
This change is backported from Autoconf.
2020-08-01 Bruno Haible <bruno@clisp.org>
Prefer documented autoconf macro 'm4_if' over 'ifelse'.
* m4/autobuild.m4 (AB_INIT): Use m4_if instead of ifelse.
* m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise.
* m4/javacomp.m4 (gt_JAVACOMP): Likewise.
* m4/javaexec.m4 (gt_JAVAEXEC): Likewise.
* m4/libtextstyle.m4 (gl_LIBTEXTSTYLE): Likewise.
2020-08-01 Bruno Haible <bruno@clisp.org>
libtextstyle-optional: Update tests.
* modules/libtextstyle-optional-tests (configure.ac): Invoke
gl_LIBTEXTSTYLE_OPTIONAL.
2020-08-01 Bruno Haible <bruno@clisp.org>
parse-datetime: Fix wrong #line statements.
* modules/parse-datetime (Makefile.am): Correct #line statements also in
parse-datetime-gen.h.
2020-08-01 Bruno Haible <bruno@clisp.org>
libtextstyle[-optional]: Allow requesting a minimum version.
* m4/libtextstyle.m4 (gl_LIBTEXTSTYLE): Allow an optional argument.
(gl_LIBTEXTSTYLE_NEWEST_VERSION, gl_LIBTEXTSTYLE_INITIALIZE,
gl_LIBTEXTSTYLE_SEARCH): New macros.
* modules/libtextstyle (configure.ac): Don't invoke gl_LIBTEXTSTYLE.
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Allow an
optional argument. Invoke, not require, gl_LIBTEXTSTYLE.
* modules/libtextstyle-optional (configure.ac): Don't invoke
gl_LIBTEXTSTYLE_OPTIONAL.
* NEWS: Mention the changes.
2020-07-31 Bruno Haible <bruno@clisp.org>
_GL_CMP: Improve documentation.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-07/msg00188.html>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Clarify what arguments can be
passed.
2020-07-30 Paul Eggert <eggert@cs.ucla.edu>
largefile: sync with Autoconf master
* m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES):
Avoid undefined behavior on platforms where off_t is 32 bits.
See: https://bugs.debian.org/742780
alloca: sync with Autoconf master
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA):
Do not define if Autoconf 2.70 or later, since Autoconf master
now matches us.
2020-07-30 Bruno Haible <bruno@clisp.org>
unicodeio: Add comment.
* lib/unicodeio.c (unicode_to_mb): Clarify why the code distinguishes
different iconv behaviours.
2020-07-30 Paul Eggert <eggert@cs.ucla.edu>
Work around some Oracle Studio attribute bugs
These were discovered when building bleeding-edge Emacs with
Oracle Studio.
* m4/gnulib-common.m4 (_GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_MAY_ALIAS):
Port to Oracle Studio 12.6, which mishandles __attribute__
((__cold__)) and __attribute__ ((__may_alias__)) even though
__has_attribute says they work.
2020-07-29 Bruno Haible <bruno@clisp.org>
unicodeio: Fix wrong result on musl libc.
Reported by A. Wilcox <awilfox@adelielinux.org> in
<https://www.openwall.com/lists/musl/2020/07/29/2>.
* lib/unicodeio.c (unicode_to_mb): Handle asterisk fallback characters
on musl libc.
* m4/unicodeio.m4 (gl_UNICODEIO): Invoke gl_MUSL_LIBC.
* modules/unicodeio (Files): Add m4/musl.m4.
2020-07-29 Paul Eggert <eggert@cs.ucla.edu>
fsusage, regex, stat-size: remove Cray support
As near as I can make out this is actually support for UNICOS/mp,
last released 2005, and Cray hasn’t supported that for years.
* config/srclist.txt: Comment out regex.h for now.
* lib/fsusage.c (get_fs_usage):
* lib/regex.h (re_comp, re_exec):
* lib/stat-size.h (ST_NBLOCKSIZE):
Don’t worry about _CRAY.
2020-07-29 Bruno Haible <bruno@clisp.org>
parse-datetime: Fix compilation error with bison 3.7.
* modules/parse-datetime (Makefile.am): Create a generated header file
parse-datetime-gen.h in the source directory. Correct #include and
#line statements during preprocessing.
2020-07-28 Bruno Haible <bruno@clisp.org>
fopen-gnu: Create files correctly (regression from 2020-05-24).
* lib/fopen.c (rpl_open): Pass a third argument to open().
2020-07-27 Paul Eggert <eggert@cs.ucla.edu>
xalloc-die: don’t depend on xalloc
This removes a circular dependency, as xalloc depends on xalloc-die.
* modules/xalloc-die (Files): Add lib/xalloc.h.
(Depends-on): Remove xalloc.
Add extern-inline, stdint, xalloc-oversized (this is for xalloc.h).
dfa-tests: port to MSVC
Problem reported by Gisle Vanem in:
https://lists.gnu.org/r/bug-gnulib/2020-07/msg00159.html
Also, remove an unnecessary dependency on getprogname.
* modules/dfa-tests (Depends-on): Remove getprogname.
* tests/test-dfa-match-aux.c: Do not include getprogname.h.
(exit_status): New static var.
(dfawarn): Set it instead of exiting.
Do not declare as _Noreturn, to pacify MSVC.
(main): Return exit_status.
2020-07-26 Paul Eggert <eggert@cs.ucla.edu>
argz: pacify MSVC
* lib/argz.in.h: Avoid "*/*" to pacify MSVC.
Problem reported by Gisle Vanem.
libgmp: remove dependency on havelib
* m4/libgmp.m4 (gl_LIBGMP): If gl_HAVE_MODULE_HAVELIB is not defined,
use the more-traditional AC_SEARCH_LIBS approach.
This should work better with GNU Emacs configuration,
which uses pkg-config instead of a havelib-style approach.
* modules/havelib (gl_HAVE_MODULE_HAVELIB): New witness macro.
* modules/libgmp (Depends-on): Remove havelib.
libgmp: remove HAVE_GMP, LIB_GMP
* m4/libgmp.m4 (gl_LIBGMP): Do not define HAVE_GMP and LIB_GMP, as
they’re redundant. I’ll adjust GNU Coreutils accordingly.
2020-07-26 Bruno Haible <bruno@clisp.org>
inttypes: Remove support for AIX 4.
* lib/inttypes.in.h: Assume that PRI_MACROS_BROKEN is 0.
* m4/inttypes-pri.m4: Remove file.
* m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Don't require gt_INTTYPES_PRI.
(gl_INTTYPES_H_DEFAULTS): Don't initialize PRI_MACROS_BROKEN.
* modules/inttypes-incomplete (Makefile.am): Don't substitute
PRI_MACROS_BROKEN.
* modules/inttypes (Files): Remove m4/inttypes-pri.m4.
2020-07-26 Bruno Haible <bruno@clisp.org>
gettimeofday: Remove workaround for Mac OS X 10.0.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Remove macro.
(gl_FUNC_GETTIMEOFDAY): Don't invoke it.
* lib/gettimeofday.c: Don't include localtime-buffer.h.
(gettimeofday): Don't test GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* lib/localtime.c: Don't test GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* modules/gettimeofday (Depends-on): Remove localtime-buffer.
* modules/localtime-buffer: Remove file.
* lib/localtime-buffer.h: Remove file.
* lib/localtime-buffer.c: Remove file.
* m4/localtime-buffer.m4: Remove file.
* MODULES.html.sh (Date and time <time.h>): Remove localtime-buffer.
2020-07-26 Bruno Haible <bruno@clisp.org>
tzset: Remove workaround for Solaris 2.6.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Remove macro.
(gl_FUNC_TZSET): Don't invoke it. Don't define TZSET_CLOBBERS_LOCALTIME.
Don't require gl_LOCALTIME_BUFFER_DEFAULTS.
* lib/localtime-buffer.h: Don't test TZSET_CLOBBERS_LOCALTIME.
* lib/localtime-buffer.c: Likewise.
* lib/localtime.c: Likewise.
* lib/tzset.c: Don't include localtime-buffer.h.
(tzset): Don't test TZSET_CLOBBERS_LOCALTIME.
* lib/nstrftime.c (__strftime_internal): Assume HAVE_RUN_TZSET_TEST
is 1.
* modules/tzset (Depends-on): Remove localtime-buffer.
2020-07-26 Bruno Haible <bruno@clisp.org>
expl: Simplify autoconf test.
* m4/expl.m4 (gl_FUNC_EXPL): Merge the "checking whether expl() breaks
with small values..." test into the "checking whether expl works..."
test.
2020-07-26 Bruno Haible <bruno@clisp.org>
alloca: Remove Cray-2 and Cray Y-MP support.
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Don't define CRAY_STACKSEG_END.
Enable also on Autoconf >= 2.69.
* lib/alloca.c (ADDRESS_FUNCTION, struct stack_control_header,
struct stack_segment_linkage, struct stk_stat, struct stk_trailer,
i00afunc): Remove.
2020-07-25 Bruno Haible <bruno@clisp.org>
multiarch: Prepare for x86_64+arm64 universal binaries in macOS 11.
* m4/multiarch.m4 (gl_MULTIARCH): Recognize also the ARM architectures.
2020-07-25 Bruno Haible <bruno@clisp.org>
sigprocmask: Small autoconf macro improvement.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Make it possible for the
user to override the value of gl_cv_func_sigprocmask.
* m4/gnulib-common.m4 (gl_SILENT): New macro.
2020-07-25 Bruno Haible <bruno@clisp.org>
Small autoconf macro improvements.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Make it possible for the user to
override the value of gl_cv_func_working_mktime.
* m4/multiarch.m4 (gl_MULTIARCH): Show a line "checking whether the
compiler produces multi-arch binaries..." in the configure output.
* m4/size_max.m4 (gl_SIZE_MAX): When not found, say "no".
* m4/parse-datetime.m4 (gl_C_COMPOUND_LITERALS): Improve indentation.
2020-07-25 Bruno Haible <bruno@clisp.org>
doc: Update for NetBSD 7.1, 8.0, 9.0.
* doc/*/*.texi: Update.
* m4/exp2l.m4: Update comments.
* m4/expl.m4: Likewise.
* m4/ilogb.m4: Likewise.
* m4/ilogbf.m4: Likewise.
* m4/log10l.m4: Likewise.
* m4/logl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/rintl.m4: Likewise.
* m4/wcwidth.m4: Likewise.
2020-07-24 Bruno Haible <bruno@clisp.org>
doc: Update for Mac OS X 10.13.
* doc/*/*.texi: Update.
* m4/expm1l.m4: Update comments.
* m4/getgroups.m4: Likewise.
* m4/getlogin_r.m4: Likewise.
* m4/linkat.m4: Likewise.
* m4/printf.m4: Likewise.
2020-07-24 Bruno Haible <bruno@clisp.org>
doc: Update for Cygwin 2.9.0.
* doc/*/*.texi: Update.
2020-07-24 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: modernize doc
* doc/parse-datetime.texi: Use more-current examples.
Don’t lead with 32-bit time_t, as it’s on its way out.
Capitalize “Epoch” to be consistent with POSIX.
timespec: remove dependence on ‘verify’
* lib/timespec.h: Do not include verify.h; no longer needed.
* modules/timespec (Depends-on): Remove ‘verify’.
Optimize a few more three-valued comparisons
* lib/timespec.h (timespec_cmp, timespec_sign):
* lib/utimecmp.c (utimecmpat):
Avoid conditional branches by using _GL_CMP.
Fix _GL_CMP parenthesization typo
* m4/gnulib-common.m4 (_GL_CMP): Properly parenthesize.
2020-07-24 Bruno Haible <bruno@clisp.org>
dfa: Revert breaking gawk.
Reported by Arnold Robbins <arnold@skeeve.com>.
* lib/dfa.c (compare): Don't reference the _GL_CMP macro.
2020-07-23 Bruno Haible <bruno@clisp.org>
Optimize three-valued comparison between integers.
(a > b ? 1 : a < b ? -1 : 0) is the same as (a > b) - (a < b).
* m4/gnulib-common.m4 (gl_COMMON): Define _GL_CMP.
* lib/c-strcasecmp.c (c_strcasecmp): Use _GL_CMP.
* lib/c-strncasecmp.c (c_strncasecmp): Likewise.
* lib/dfa.c (compare): Likewise.
* lib/fts.c (fts_compare_ino): Likewise.
* lib/mbmemcasecmp.c (mbmemcasecmp): Likewise.
* lib/mbscasecmp.c (mbscasecmp): Likewise.
* lib/mbsncasecmp.c (mbsncasecmp): Likewise.
* lib/memcasecmp.c (memcasecmp): Likewise.
* lib/memcmp2.c (memcmp2): Likewise.
* lib/savedir.c (direntry_cmp_inode): Likewise.
* lib/strcasecmp.c (strcasecmp): Likewise.
* lib/strncasecmp.c (strncasecmp): Likewise.
* lib/unistr/u-cmp2.h (FUNC): Likewise.
2020-07-23 Bruno Haible <bruno@clisp.org>
lchmod: Use /proc on Cygwin.
* lib/lchmod.c (lchmod): Use /proc on Cygwin.
2020-07-23 Ken Brown <kbrown@cornell.edu>
fchmodat: Use /proc on Cygwin
* lib/fchmodat.c (fchmodat): Use /proc on Cygwin.
2020-07-21 Bruno Haible <bruno@clisp.org>
aligned-malloc: Optionally use aligned_alloc.
* lib/aligned-malloc.h: Verify the alignment.
(aligned_malloc): Use aligned_alloc as an alternative.
* modules/aligned-malloc (configure.ac): Test for aligned_alloc.
* doc/posix-functions/aligned_alloc.texi: Mention the modules
'aligned-malloc' and 'pagealign_alloc'.
2020-07-21 Bruno Haible <bruno@clisp.org>
aligned-malloc: Add tests.
* tests/test-aligned-malloc.c: New file.
* modules/aligned-malloc-tests: New file.
aligned-malloc: New module.
* lib/aligned-malloc.h: New file.
* m4/malloc-align.m4: New file.
* modules/aligned-malloc: New file.
* doc/posix-functions/posix_memalign.texi: Mention the new module.
* doc/glibc-functions/memalign.texi: Likewise.
2020-07-21 Bruno Haible <bruno@clisp.org>
inttypes: Fix PRI*PTR and SCN*PTR on 64-bit native Windows.
* m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): On 64-bit native Windows, make
sure PRIPTR_PREFIX is defined to "ll", not "l".
2020-07-21 Bruno Haible <bruno@clisp.org>
printf-posix: Make an autoconf test more future-proof.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): Include <inttypes.h> before
using uintptr_t.
2020-07-20 Bruno Haible <bruno@clisp.org>
list, oset, omap: Relicense some of the container modules under LGPLv2+.
* modules/list (License): Change to LGPLv2+.
* modules/array-list (License): Likewise.
* modules/carray-list (License): Likewise.
* modules/linked-list (License): Likewise.
* modules/avltree-list (License): Likewise.
* modules/rbtree-list (License): Likewise.
* modules/oset (License): Likewise.
* modules/array-oset (License): Likewise.
* modules/avltree-oset (License): Likewise.
* modules/rbtree-oset (License): Likewise.
* modules/omap (License): Likewise.
* modules/array-omap (License): Likewise.
* modules/avltree-omap (License): Likewise.
* modules/rbtree-omap (License): Likewise.
2020-07-20 Bruno Haible <bruno@clisp.org>
oset: Add an 'update' operation.
* lib/gl_array_oset.c (gl_array_update): New function.
(gl_array_oset_implementation): Use it.
* lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters.
* lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters.
* lib/gl_avltree_ordered.h (gl_tree_add_node_before): New function,
extracted from gl_tree_nx_add_before.
(gl_tree_nx_add_before): Invoke it.
(gl_tree_add_node_after): New function, extracted from
gl_tree_nx_add_after.
(gl_tree_nx_add_after): Invoke it.
(gl_tree_remove_node_no_free): New function, extracted from
gl_tree_remove_node.
(gl_tree_remove_node): Invoke it.
* lib/gl_rbtree_ordered.h (gl_tree_add_node_before): New function,
extracted from gl_tree_nx_add_before.
(gl_tree_nx_add_before): Invoke it.
(gl_tree_add_node_after): New function, extracted from
gl_tree_nx_add_after.
(gl_tree_nx_add_after): Invoke it.
(gl_tree_remove_node_no_free): New function, extracted from
gl_tree_remove_node.
(gl_tree_remove_node): Invoke it.
* lib/gl_anytree_oset.h (gl_tree_next_node): New function, extracted
from gl_tree_iterator_next.
(gl_tree_iterator_next): Invoke it.
(gl_tree_prev_node, gl_tree_update): New functions.
* lib/gl_avltree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters.
(gl_avltree_oset_implementation): Use gl_tree_update.
* lib/gl_rbtree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters.
(gl_rbtree_oset_implementation): Use gl_tree_update.
* lib/gl_oset.h (struct gl_oset_implementation): Add 'update' member.
(gl_oset_update): New function.
* lib/gl_oset.hh (gl_OSet): Add 'update' member.
* modules/avltree-oset (configure.ac): Require AC_C_INLINE.
* modules/rbtree-oset (configure.ac): Likewise.
* tests/test-oset-update.h: New file.
* tests/test-array_oset.c: Include test-oset-update.h.
(main): Invoke test_update.
* tests/test-avltree_oset.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* modules/array-oset-tests (Files): Add tests/test-oset-update.h.
* modules/avltree-oset-tests (Files): Likewise.
* modules/rbtree-oset-tests (Files): Likewise.
* tests/test-oset-c++.cc (action): New function.
(main): Test the 'update' member function.
2020-07-15 Paul Eggert <eggert@cs.ucla.edu>
md5, sha1, sha256, sha512: pacify Autoconf 2.70
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Use m4_if rather than a
shell if, so that the argument to AC_CHECK_HEADERS is
a simple string that does not require shell evaluation.
This fixes a warning generated by Autoconf 2.69b.
2020-07-12 Bruno Haible <bruno@clisp.org>
libgmp: Avoid warning when --without-libgmp is used.
* lib/mini-gmp-gnulib.c: Ignore -Wsuggest-attribute=malloc only for
GCC >= 8, not for GCC >= 4.6.
2020-07-12 Bruno Haible <bruno@clisp.org>
libgmp: Link to the correct shared library.
* m4/libgmp.m4 (gl_LIBGMP): Invoke AC_LIB_HAVE_LINKFLAGS.
* modules/libgmp (Depends-on): Add havelib.
(Link): Mention $(LIBGMP) and $(LTLIBGMP).
* modules/libgmp-tests (Makefile.am): Link test-libgmp with $(LIBGMP).
2020-07-12 Bruno Haible <bruno@clisp.org>
libgmp tests: Add some safety checks.
* modules/libgmp-tests (Depends-on): Add verify.
* tests/test-libgmp.c: Verify GMP_NUMB_BITS value.
(main): Verify that gmp.h and libgmp versions match.
2020-07-10 Bruno Haible <bruno@clisp.org>
unicodeio: Fix wrong result on NetBSD.
* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
characters also on NetBSD.
2020-07-09 Bruno Haible <bruno@clisp.org>
unicodeio: Fix wrong result on Solaris 11.
Reported by Kiyoshi Kanazawa <yoi_no_myoujou@yahoo.co.jp>
via Akim Demaille <akim.demaille@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-07/msg00036.html>.
* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
characters on Solaris.
* tests/test-unicodeio.c (main): In the "C" locale, expect either the
UTF-8 output or the specified fallback.
2020-07-08 Bruno Haible <bruno@clisp.org>
unicodeio: Add tests.
* tests/test-unicodeio.c: New file.
* tests/test-unicodeio1.sh: New file.
* tests/test-unicodeio2.sh: New file.
* tests/test-unicodeio3.sh: New file.
* modules/unicodeio-tests: New file.
2020-07-08 Bruno Haible <bruno@clisp.org>
unicodeio: Document link requirements.
* modules/unicodeio (Link): New section.
2020-07-07 Bruno Haible <bruno@clisp.org>
doc: Remove support for some very old platforms.
* doc/posix-functions/memcmp.texi: Don't mention "older platforms".
* doc/posix-functions/memcpy.texi: Likewise.
* doc/posix-functions/memmove.texi: Likewise.
* doc/posix-functions/memset.texi: Likewise.
* doc/posix-functions/getcwd.texi: Likewise.
memchr: Remove support for some very old platforms.
* m4/memchr-obsolete.m4: Remove file.
* modules/memchr-obsolete: Remove file.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Assume module 'memchr-obsolete' is
absent. Don't define HAVE_MEMCHR.
* lib/string.in.h (memchr): Assume HAVE_MEMCHR is 1.
* modules/memchr (Depends-on): Remove memchr-obsolete.
(configure.ac): Assume HAVE_MEMCHR is 1.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize
HAVE_MEMCHR.
* modules/string (Makefile.am): Don't substitute HAVE_MEMCHR.
* doc/posix-functions/memchr.texi: Don't mention module
'memchr-obsolete'.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Assume HAVE_MEMCHR is 1.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Assume HAVE_MEMCHR is 1.
* modules/strnlen (Depends-on): Remove memchr-obsolete.
dup2: Remove support for some very old platforms.
* m4/dup2-obsolete.m4: Remove file.
* modules/dup2-obsolete: Remove file.
* m4/dup2.m4 (gl_FUNC_DUP2): Assume module 'dup2-obsolete' is absent.
Don't define HAVE_DUP2.
* lib/unistd.in.h (dup2): Assume HAVE_DUP2 is 1.
* lib/dup2.c: Likewise.
* modules/dup2 (Depends-on, configure.ac): Likewise.
(Depends-on): Remove dup2-obsolete.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Don't initialize HAVE_DUP2.
* modules/unistd (Makefile.am): Don't substitute HAVE_DUP2.
* doc/posix-functions/dup2.texi: Don't mention module 'dup2-obsolete'.
2020-07-07 Bruno Haible <bruno@clisp.org>
canonicalize: Trim module dependencies.
* lib/hash-triple.h: Group declarations.
* lib/hash-triple-simple.c: New file, extracted from lib/hash-triple.c.
* lib/hash-triple.c: Don't include <stdlib.h>, <string.h>, hash-pjw.h.
(STREQ): Remove macro.
(triple_hash, triple_compare_ino_str, triple_free): Remove functions.
* modules/hash-triple-simple: New file, based on modules/hash-triple.
* modules/hash-triple (Files): Remove lib/hash-triple.h.
(Depends-on): Add hash-triple-simple. Remove hash-pjw.
* modules/canonicalize (Depends-on): Remove hash-triple. Add
hash-triple-simple.
* modules/file-set (Depends-on): Likewise.
2020-07-07 Bruno Haible <bruno@clisp.org>
Clarify dependencies to double-slash-root.
* modules/canonicalize (Files): Remove m4/double-slash-root.m4.
(Depends-on): Add double-slash-root.
* modules/canonicalize-lgpl (Depends-on): Add double-slash-root.
* modules/dirname-lgpl (Depends-on): Add double-slash-root.
2020-07-06 Paul Eggert <eggert@cs.ucla.edu>
libgmp: new module
The idea is to let programs simply include <gmp.h>, and
so long as they live within the mini-gmp subset they need
not worry about whether the GMP libraries are installed.
* MODULES.html.sh: Mention it.
* config/srclist.txt: Mention files copied from GMP source.
* config/srclistvars.sh (GMP): New var.
* lib/mini-gmp-gnulib.c, m4/libgmp.m4, modules/libgmp:
* modules/libgmp-tests, tests/test-libgmp.c: New files.
* lib/mini-gmp.c, lib/mini-gmp.h: New files, copied from GMP.
2020-07-05 Bruno Haible <bruno@clisp.org>
mkancesdirs: Trim module dependencies.
* lib/mkancesdirs.c: Include filename.h instead of dirname.h.
* modules/mkancesdirs (Depends-on): Remove dirname-lgpl. Add filename.
2020-07-05 Bruno Haible <bruno@clisp.org>
getprogname: Trim module dependencies.
* lib/getprogname.c: Include basename-lgpl.h instead of dirname.h.
* modules/getprogname (Depends-on): Remove dirname-lgpl. Add
basename-lgpl.
2020-07-05 Bruno Haible <bruno@clisp.org>
filenamecat-lgpl: Trim module dependencies.
* lib/filenamecat-lgpl.c: Include basename-lgpl.h, filename.h instead of
dirname.h.
* modules/filenamecat-lgpl (Depends-on): Remove dirname-lgpl. Add
basename-lgpl, filename.
2020-07-05 Bruno Haible <bruno@clisp.org>
backupfile, backup-rename: Trim module dependencies.
* lib/backupfile.c: Include basename-lgpl.h instead of dirname.h.
* modules/backupfile (Depends-on): Remove dirname-lgpl. Add
basename-lgpl.
* modules/backup-rename (Depends-on): Likewise.
2020-07-05 Bruno Haible <bruno@clisp.org>
argp: Trim module dependencies.
* lib/argp-namefrob.h: Include basename-lgpl.h instead of dirname.h.
* modules/argp (Depends-on): Remove dirname-lgpl. Add basename-lgpl.
2020-07-05 Bruno Haible <bruno@clisp.org>
basename-lgpl: New module.
* lib/basename-lgpl.h: New file, based on lib/dirname.h and
lib/basename-lgpl.c.
* lib/basename-lgpl.c: Include basename-lgpl.h, not dirname.h. Include
<stdbool.h>, filename.h.
(last_component): Rename a local variable.
* lib/dirname.h: Include basename-lgpl.h.
(DOUBLE_SLASH_IS_DISTINCT_ROOT): Remove macro.
(last_component, base_len): Remove declarations.
* modules/basename-lgpl: New file.
* modules/dirname-lgpl (Files): Remove lib/basename-lgpl.c.
(Depends-on): Add basename-lgpl. Remove double-slash-root.
(Makefile.am): Don't compile basename-lgpl.c.
* doc/posix-functions/basename.texi: Mention the module 'basename-lgpl',
not 'dirname'.
2020-07-05 Bruno Haible <bruno@clisp.org>
dirname, dirname-lgpl: Simplify.
* m4/dirname.m4: Remove file.
* modules/dirname (configure.ac): Don't invoke gl_DIRNAME.
* modules/dirname-lgpl (Files): Remove m4/dirname.m4.
(configure.ac): Don't invoke gl_DIRNAME_LGPL.
2020-07-05 Bernhard Voelker <mail@bernhard-voelker.de>
tests: avoid shadowing warning
* tests/test-memchr.c (main): Give page_boundary variable a tight scope.
2020-07-05 Bruno Haible <bruno@clisp.org>
supersede: Add tests.
* tests/test-supersede.c: New file.
* tests/test-supersede-open.h: New file.
* tests/test-supersede-fopen.h: New file.
* modules/supersede-tests: New file.
supersede: New module.
* lib/supersede.h: New file.
* lib/supersede.c: New file.
* m4/supersede.m4: New file.
* modules/supersede: New file.
2020-07-05 Bruno Haible <bruno@clisp.org>
Add some copyright headers.
* lib/dev-ino.h: Add copyright header.
* lib/di-set.h: Likewise.
* lib/fchown-stub.c: Likewise.
* lib/file-set.h: Likewise.
* lib/hash-triple.h: Likewise.
* lib/idcache.h: Likewise.
* lib/ino-map.h: Likewise.
* lib/mkancesdirs.h: Likewise.
* lib/scratch_buffer.h: Likewise.
* lib/se-context.in.h: Likewise.
* lib/stdopen.h: Likewise.
* lib/userspec.h: Likewise.
2020-07-04 Bruno Haible <bruno@clisp.org>
getrandom: Relicense under LGPLv2+.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-07/msg00023.html>.
* modules/getrandom (License): Change to LGPLv2+.
2020-07-04 Bruno Haible <bruno@clisp.org>
getumask: Add tests.
* tests/test-getumask.c: New file.
* modules/getumask-tests: New file.
getumask: New module.
* lib/sys_stat.in.h (getumask): New declaration.
* lib/getumask.c: New file.
* m4/getumask.m4: New file.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Test whether getumask is
declared.
(gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_GETUMASK, HAVE_GETUMASK.
* modules/sys_stat (Makefile.am): Substitute GNULIB_GETUMASK,
HAVE_GETUMASK.
* modules/getumask: New file.
* tests/test-sys_stat-c++.cc (getumask): Check signature.
* doc/glibc-functions/getumask.texi: New file.
* doc/gnulib.texi (Glibc sys/stat.h): Include it.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Add support for temporary files with given mode.
* lib/clean-temp.h (gen_register_open_temp): Add mode argument.
* lib/clean-temp.c (struct try_create_file_params): New type.
(try_create_file): New function.
(gen_register_open_temp): Add mode argument. Use try_tempname instead of
gen_tempname.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Document limitations.
* lib/clean-temp.h: Document limitations.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Add support for temporary files with unpredictable names.
* lib/clean-temp.h (gen_register_open_temp): New declaration.
* lib/clean-temp.c: Include tempname.h.
(gen_register_open_temp): New function.
* modules/tempname (configure.ac): Define a module indicator.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Add support for temporary files anywhere in the file system.
* lib/clean-temp.h (register_temporary_file, unregister_temporary_file,
cleanup_temporary_file): New declarations.
* lib/clean-temp.c (file_cleanup_list_lock, file_cleanup_list): New
variables.
(dir_cleanup_list_lock): Renamed from cleanup_list_lock.
(dir_cleanup_list): Renamed from cleanup_list.
(cleanup_action): Process the file_cleanup_list as well.
(do_init_clean_temp): New function.
(clean_temp_once): New variable.
(init_clean_temp): New function.
(create_temp_dir): Invoke it.
(register_temporary_file, unregister_temporary_file,
cleanup_temporary_file): New functions.
(do_unlink, do_rmdir): Remove 'dir' argument. Add 'cleanup_verbose'
argument.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Improve comments.
* lib/clean-temp.h (open_temp, fopen_temp, close_temp, fclose_temp,
fwriteerror_temp, close_stream_temp): Clarify intended use.
* lib/clean-temp.c: Likewise.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Make multithread-safe, part 2.
* lib/fatal-signal.h: Include <signal.h>.
(get_fatal_signal_set): New declaration.
* lib/fatal-signal.c (get_fatal_signal_set): New function.
* lib/clean-temp.c: Include asyncsafe-spin.h, gl_linked_list.h.
(struct closeable_fd): New type.
(fatal_signal_set): New variable.
(init_fatal_signal_set): New function.
(asyncsafe_close, asyncsafe_fclose_variant): New functions.
(cleanup_action): Invoke asyncsafe_close instead of close.
(create_temp_dir): Invoke init_fatal_signal_set.
(register_fd): Use a plain linked list. Add a 'struct closeable_fd *'
element.
(unregister_fd): Remove function.
(close_temp): Cleanup descriptors list on the fly. Invoke
init_fatal_signal_set. Invoke asyncsafe_close instead of close.
(fclose_variant_temp): New function.
(fclose_temp, fwriteerror_temp, close_stream_temp): Use it.
* modules/clean-temp (Depends-on): Add asyncsafe-spin, linked-list.
2020-07-04 Bruno Haible <bruno@clisp.org>
clean-temp: Make multithread-safe, part 1.
* lib/clean-temp.c: Include glthread/lock.h.
(cleanup_list_lock): New variable.
(register_temp_file, unregister_temp_file, register_temp_subdir,
unregister_temp_subdir, cleanup_temp_dir_contents): Use it.
(create_temp_dir): Likewise. Don't free the old array.
(descriptors_lock): New variable.
(register_fd, unregister_fd): Use it.
* modules/clean-temp (Depends-on): Add lock.
2020-07-04 Bruno Haible <bruno@clisp.org>
fatal-signal: Make multithread-safe.
* lib/fatal-signal.c (init_fatal_signals): Add comment.
(do_init_fatal_signal_set): New function, extracted from
init_fatal_signal_set.
(fatal_signal_set_once): New variable.
(init_fatal_signal_set): Use gl_once.
2020-07-03 Bruno Haible <bruno@clisp.org>
getrandom: Fix compilation error on native Windows (regr. 2020-06-28).
* lib/getrandom.c: Don't include <ntdef.h>. Instead, define NTSTATUS.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Include <windows.h> before
<bcrypt.h>.
2020-07-03 Bruno Haible <bruno@clisp.org>
dfa tests: Follow common file naming conventions.
* tests/test-dfa-match-aux.c: Renamed from tests/dfa-match-aux.c.
* tests/test-dfa-match.sh: Renamed from tests/dfa-match.sh. Update.
* tests/test-dfa-invalid-char-class.sh: Renamed from
tests/dfa-invalid-char-class.sh. Update.
* modules/dfa-tests (Files, Makefile.am): Update.
2020-07-03 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Use GCC extended asm syntax for SunStudio 12 compiler.
* lib/asyncsafe-spin.c (memory_barrier, atomic_compare_and_swap): Use
the GCC extended asm syntax also for the Sun Studio 12 compilers.
2020-07-03 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Reduce code duplication.
* lib/asyncsafe-spin.c (do_lock, do_unlock): New functions.
(asyncsafe_spin_lock, asyncsafe_spin_unlock): Use them.
* modules/asyncsafe-spin (configure.ac): Require AC_C_INLINE.
2020-07-03 Bruno Haible <bruno@clisp.org>
lchmod: Simplify after 2020-02-22 change.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Don't require AC_C_INLINE.
2020-07-03 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Make sure the compiler does not barf on 'inline'.
* modules/gen-uni-tables (configure.ac): Require AC_C_INLINE.
2020-07-03 Bruno Haible <bruno@clisp.org>
dfa: Make sure the compiler does not barf on 'inline'.
* modules/dfa (configure.ac): Require AC_C_INLINE.
2020-07-03 Bruno Haible <bruno@clisp.org>
bitset: Make sure the compiler does not barf on 'inline'.
* modules/bitset (configure.ac): New section.
2020-07-01 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: improve port to GCC 10.1
* build-aux/gcc-warning.spec: Also list warnings that are default
or are enabled by already-given flags. This lets us speed up
checking for attributes, and makes the generated compilation
commands shorter. Add -Wanalyzer-too-complex (too much noise).
* m4/manywarnings.m4 (gl_MANYWARN_COMPLEMENT)
(gl_MANYWARN_ALL_GCC): Use gl_AS_VAR_APPEND to append
to shell variables that may have long values.
(gl_MANYWARN_ALL_GCC): Omit flags that are default or are
consequences of other flags, to speed up checking and
shorten commands.
tests: pacify gcc -fanalyzer on zerosize_ptr
* tests/test-memcasecmp.c (main):
* tests/test-memchr.c (main):
* tests/test-memchr2.c (main):
* tests/test-memcmp.c (main):
* tests/test-memmem.c (main):
* tests/test-memrchr.c (main):
* tests/unistr/test-chr.h (main):
* tests/unistr/test-cmp.h (test_cmp):
Check whether zerosize_ptr returns NULL before using it.
This pacifies GCC 10.1’s new fanalyzer option, and matches
other uses of zerosize_ptr.
2020-07-01 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: Add tests.
* tests/test-asyncsafe-spin1.c: New file.
* tests/test-asyncsafe-spin2.c: New file, based on tests/test-lock.c and
tests/test-pthread-spin.c.
* modules/asyncsafe-spin-tests: New file.
2020-07-01 Bruno Haible <bruno@clisp.org>
asyncsafe-spin: New module.
* lib/asyncsafe-spin.h: New file.
* lib/asyncsafe-spin.c: New file, based on lib/pthread-spin.c.
* modules/asyncsafe-spin: New file.
2020-07-01 Bruno Haible <bruno@clisp.org>
windows-spin: Fix race condition on multiprocessor systems.
* lib/windows-spin.c (glwthread_spin_init): Add a memory barrier.
2020-07-01 Bruno Haible <bruno@clisp.org>
pthread-spin: Add optimized fallback for GCC versions >= 4.1, < 4.7.
* lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): For GCC >= 4.1, < 4.7, use
an implementation based on other GCC built-ins.
2020-07-01 Bruno Haible <bruno@clisp.org>
pthread-spin: Optimize fallback for GCC versions >= 4.7.
* lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): Use a lock word instead of a
lock byte.
2020-07-01 Bruno Haible <bruno@clisp.org>
pthread-spin: Add error checking.
* lib/pthread-spin.c: Include <stdbool.h>.
(pthread_spin_init, pthread_spin_lock, pthread_spin_trylock,
pthread_spin_unlock) [GCC>=4.7]: Prefer an implementation that verifies
the unlocks.
* modules/pthread-spin (Depends-on): Add stdbool.
2020-07-01 Bruno Haible <bruno@clisp.org>
pthread-spin: Add tests.
* tests/test-pthread-spin.c: New file, based on tests/test-lock.c.
* modules/pthread-spin-tests: New file.
2020-07-01 Bruno Haible <bruno@clisp.org>
tests: Reduce code duplication.
* tests/atomic-int-posix.h: New file, extracted from
tests/test-pthread-mutex.c.
* tests/test-pthread-mutex.c: Include it. Remove the corresponding code.
* tests/test-pthread-rwlock.c: Likewise.
* modules/pthread-mutex-tests (Files): Add tests/atomic-int-posix.h.
* modules/pthread-rwlock-tests (Files): Likewise.
2020-07-01 Bruno Haible <bruno@clisp.org>
tests: Refactor.
* tests/atomic-int-isoc.h: New file, extracted from tests/test-mtx.c.
* tests/test-mtx.c: Include it. Remove the corresponding code.
* modules/mtx-tests (Files): Add tests/atomic-int-isoc.h.
2020-07-01 Bruno Haible <bruno@clisp.org>
tests: Refactor.
* tests/atomic-int-gnulib.h: New file, extracted from tests/test-lock.c.
* tests/test-lock.c: Include it. Remove the corresponding code.
* modules/lock-tests (Files): Add tests/atomic-int-gnulib.h.
2020-06-29 Bruno Haible <bruno@clisp.org>
sys_socket: Don't define socklen_t if it is already defined on mingw.
Reported by Keith Marshall <keith.d.marshall@ntlworld.com> in
<https://savannah.gnu.org/bugs/?57725>,
by Rahul Das <bokul_4u@yahoo.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-04/msg00081.html>,
and by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-06/msg00068.html>.
* lib/sys_socket.in.h (socklen_t): Remove definition.
2020-06-29 Bruno Haible <bruno@clisp.org>
alloca-opt: Fix warning on mingw.
Reported and solution by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-06/msg00069.html>.
* lib/alloca.in.h: On mingw, include <alloca.h> and then test again
whether alloca is defined.
2020-06-28 Paul Eggert <eggert@cs.ucla.edu>
getrandom: do not depend on ‘open’ on mingw
Similarly for at-internal, getloadavg. These modules do not call
the ‘open’ function when they are compiled on mingw. On mingw,
this avoids having to compile open.c when building Emacs, which
does its own thing with ‘open’.
* modules/at-internal, modules/getloadavg, modules/getrandom:
(Depends-on): Don’t depend on ‘open’ on mingw.
(Depends-on): Require AC_CANONICAL_HOST, for host_os.
* modules/getloadavg (Depends-on):
Depend on intprops, open, stdbool, stdlib only if compiling
getloadavg.c.
2020-06-28 Bruno Haible <bruno@clisp.org>
doc: Add a note about sigprocmask vs. pthread_sigmask.
* doc/posix-functions/sigprocmask.texi: Add note.
2020-06-28 Bruno Haible <bruno@clisp.org>
getrandom: Fix compilation errors on older versions of mingw.
Reported by Eli Zaretskii <eliz@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-06/msg00059.html>.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Test whether <bcrypt.h> exists.
* lib/getrandom.c: If <bcrypt.h> is not available, include <ntdef.h> and
define/declare BCRYPT_ALG_HANDLE, BCRYPT_USE_SYSTEM_PREFERRED_RNG,
BCryptGenRandom ourselves.
2020-06-28 Bruno Haible <bruno@clisp.org>
clean-temp: Fix wrong errno in error message.
* lib/clean-temp.c (create_temp_dir): Save errno around
unblock_fatal_signals call.
2020-06-27 Bruno Haible <bruno@clisp.org>
fatal-signal: Make multithread-safe.
* lib/fatal-signal.c (at_fatal_signal): Don't free the old actions array.
2020-06-27 Bruno Haible <bruno@clisp.org>
clean-temp: Don't force deletion of temporary files on native Windows.
* lib/clean-temp.h (open_temp, fopen_temp): Add delete_on_close
argument.
* lib/clean-temp.c (open_temp, fopen_temp): Likewise.
* NEWS: Mention the change.
* lib/javacomp.c (write_temp_file): Update.
2020-06-27 Bruno Haible <bruno@clisp.org>
fatal-signal: Make multithread-safe.
* lib/fatal-signal.c: Include glthread/lock.h.
(at_fatal_signal_lock): New variable.
(at_fatal_signal): Use it.
(fatal_signals_block_lock, fatal_signals_block_counter): New variables.
(block_fatal_signals, unblock_fatal_signals): Use them.
* modules/fatal-signal (Depends-on): Add lock.
2020-06-27 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: don’t depend on fopen-gnu
This is for Emacs, which does not need fopen-gnu for anything else,
and which would need it only on a NetBSD platform where getloadavg
does not work (does that even happen?).
* lib/getloadavg.c (getloadavg) [__NetBSD__]: Use open, not fopen.
* modules/getloadavg (Depends-on): Remove fopen-gnu.
* tests/test-getloadavg.c (main): Fix typo.
2020-06-27 Bruno Haible <bruno@clisp.org>
tempname et al.: Fix link errors on MSVC (regression from 2020-05-31).
* modules/tempname (Link): New section.
* modules/mkdtemp (Link): Likewise.
* modules/clean-temp (Link): Likewise.
* modules/mkstemp (Link): Likewise.
* modules/stdlib-safer (Link): Likewise.
* modules/mkstemps (Link): Likewise.
* modules/mkostemp (Link): Likewise.
* modules/mkostemps (Link): Likewise.
* modules/tmpfile (Link): Likewise.
* modules/tmpfile-safer (Link): Likewise.
* modules/javacomp (Link): Add $(LIB_GETRANDOM).
* modules/argv-iter-tests (Makefile.am): Link test-argv-iter with
$(LIB_GETRANDOM).
* NEWS: Mention the changes.
2020-06-27 Bruno Haible <bruno@clisp.org>
fopen-gnu: Simplify code.
* lib/fopen.c: Include <stdbool.h>.
(rpl_fopen): Use a single variable open_flags instead of
open_flags_standard and open_flags_gnu. Make open_flags_gnu a bool.
* modules/fopen (Depends-on): Add stdbool.
2020-06-26 Bruno Haible <bruno@clisp.org>
canonicalize: Improve documentation.
* lib/canonicalize.h (canonicalize_filename_mode): Document the failure
return convention.
2020-06-26 Bruno Haible <bruno@clisp.org>
xgetcwd: Improve documentation.
* lib/xgetcwd.c (xgetcwd): Document the failure return convention.
2020-06-26 Bruno Haible <bruno@clisp.org>
getcwd: Improve documentation.
* lib/getcwd.c (__getcwd): Document the failure return convention.
2020-06-26 Bruno Haible <bruno@clisp.org>
fchdir: Improve documentation.
* lib/fchdir.c (get_name, _gl_register_fd): Document the failure return
convention.
2020-06-26 Bruno Haible <bruno@clisp.org>
filenamecat-lgpl: Set errno upon failure.
* lib/filenamecat-lgpl.c (mfile_name_concat): Document the failure
return convention.
* modules/filenamecat-lgpl (Depends-on): Add malloc-posix.
2020-06-26 Bruno Haible <bruno@clisp.org>
areadlink-with-size: Set errno upon failure.
* lib/areadlink-with-size.c (areadlink_with_size): Set errno when malloc
fails.
* lib/areadlinkat-with-size.c (areadlinkat_with_size): Add comment.
2020-06-26 Bruno Haible <bruno@clisp.org>
copy-file: Shrink dependencies.
* modules/copy-file (Depends-on): Remove acl. Add acl-permissions,
qcopy-acl.
2020-06-26 Bruno Haible <bruno@clisp.org>
doc: Mention declaration fixes implemented by some modules.
* doc/posix-functions/chdir.texi: Mention the module 'chdir'.
* doc/posix-functions/close.texi: Mention that Gnulib makes the function
declaration appear in <unistd.h>.
* doc/posix-functions/dup.texi: Likewise.
* doc/posix-functions/dup2.texi: Likewise.
* doc/posix-functions/gethostname.texi: Likewise.
* doc/posix-functions/isatty.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/unlink.texi: Likewise.
* doc/posix-functions/read.texi: Mention the module 'read'.
* doc/posix-functions/write.texi: Mention the effects of the module
'write'.
2020-06-25 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
c-dtoastr, c-ldtoastr: new modules
These modules provide the same functionality as the modules
dtoastr and ldtoastr except for the formatting taking place in the
C locale.
* MODULES.html.sh: Add c-dtoastr and c-ldtoastr.
* lib/c-dtoastr.c, lib/c-ldtoastr.c: New files.
* lib/ftoastr.c: Prefix exported functions when the macro C_LOCALE is
defined. Use c_snprintf and c_strtod/c_strtold instead of
snprintf and strtod/strtold whhen the macro C_LOCALE is defined.
* lib/ftoastr.h: Add prototypes for c_dtoastr and c_ldtoastr.
* modules/c-dtoastr, modules/c-dtoastr-tests, modules/c-ldtoastr,
modules/c-ldtoastr-tests: New files.
* tests/test-c-dtoastr.c, tests/test-c-dtoastr.sh,
tests-c-ldtoastr.c tests-c-ldtoastr.sh: New files.
2020-06-21 Bruno Haible <bruno@clisp.org>
tzset: Fix compilation warnings on mingw (regression from 2017-05-01).
* lib/tzset.c: Include <stdlib.h>, <string.h>.
2020-06-16 Bruno Haible <bruno@clisp.org>
thread: Avoid possible compiler warnings in uses of gl_thread_exit.
* lib/glthread/thread.h (gl_thread_exit): Add a cast to void.
2020-06-16 Bruno Haible <bruno@clisp.org>
thread, thrd: Avoid a compiler warning.
* lib/windows-thread.h (glwthread_thread_exit): Mark as non-returning.
2020-06-16 Biswapriyo Nath <nathbappai@gmail.com> (tiny change)
windows-thread: Avoid a compiler warning.
* lib/windows-thread.h (glwthread_thread_exit): Change return type to
void.
* lib/windows-thread.c (glwthread_thread_exit): Likewise.
2020-06-15 Bruno Haible <bruno@clisp.org>
unictype/joininggroup-name: Fix warning on 64-bit mingw.
Reported by Biswapriyo Nath <nathbappai@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-06/msg00036.html>.
* lib/unictype/joininggroup_name.c (ELEM): Cast struct offset to size_t
first.
2020-06-06 Bruno Haible <bruno@clisp.org>
calloc-gnu tests: Avoid a test failure with clang.
* tests/test-calloc-gnu.c (main): Mark the pointer variable as
'volatile', to defeat compiler optimizations.
2020-06-01 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: fix double-increment bug
* lib/getloadavg.c (getloadavg): Fix double-increment typo on
Linux without glibc, Android, Cygwin. This fixes a bug I
introduced in 2011-02-08T20:23:29Z!eggert@cs.ucla.edu.
Problem and fix reported by Semen Verchenko in:
https://lists.gnu.org/r/bug-gnulib/2020-06/msg00007.html
tempname: use getrandom, not getentropy
This removes a dependency, as getentropy depends on getrandom.
* lib/tempname.c: Include sys/random.h instead of unistd.h.
(RANDOM_BITS) [!_LIBC]: Use getrandom, not getentropy.
* modules/tempname (Depends-on): Depend on getrandom, not getentropy.
2020-06-01 Bruno Haible <bruno@clisp.org>
doc: New chapter 'Multithreading'.
* doc/multithread.texi: New file.
* doc/gnulib.texi: Include it.
2020-06-01 Bruno Haible <bruno@clisp.org>
doc: Move 'Running self-tests under valgrind' section.
* doc/gnulib.texi (Build Infrastructure Modules): Include
valgrind-tests.texi here...
(Miscellaneous Notes): ... not here.
2020-06-01 Bruno Haible <bruno@clisp.org>
doc: Move 'Visual Studio Compatibility' section.
* doc/gnulib.texi (Native Windows Support): Include ld-output-def.texi
here...
(Build Infrastructure Modules): ... not here.
2020-06-01 Paul Eggert <eggert@cs.ucla.edu>
doc: improve randomness discussion
Inspired by comments from Jeffrey Walton in:
https://lists.gnu.org/r/bug-gnulib/2020-06/msg00002.html
* doc/glibc-functions/getentropy.texi (getentropy):
* doc/glibc-functions/getrandom.texi (getrandom):
Improve discussion of problems with "random" data,
and cite Ristenpart & Yilek. Also, mention GRND_INSECURE.
2020-06-01 Bruno Haible <bruno@clisp.org>
doc: Fix Texinfo syntax error.
* doc/glibc-functions/getrandom.texi: Add missing '@item'.
2020-06-01 Asher Gordon <AsDaGo@posteo.net>
doc: Change '.' to '@.' where appropriate.
* doc/c-ctype.texi: Change '.' to '@.' where appropriate.
* doc/glibc-functions/fstatfs.texi: Likewise.
* doc/glibc-functions/fts_children.texi: Likewise.
* doc/glibc-functions/fts_read.texi: Likewise.
* doc/glibc-functions/getdirentries.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/preadv.texi: Likewise.
* doc/glibc-functions/pwritev.texi: Likewise.
* doc/glibc-functions/sendfile.texi: Likewise.
* doc/glibc-functions/statfs.texi: Likewise.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib-tool.texi: Likewise.
* doc/intprops.texi: Likewise.
* doc/lib-symbol-visibility.texi: Likewise.
* doc/licenses-texi.texi: Likewise.
* doc/pastposix-functions/bcmp.texi: Likewise.
* doc/pastposix-functions/bcopy.texi: Likewise.
* doc/pastposix-functions/bzero.texi: Likewise.
* doc/pastposix-functions/ecvt.texi: Likewise.
* doc/pastposix-functions/fcvt.texi: Likewise.
* doc/pastposix-functions/ftime.texi: Likewise.
* doc/pastposix-functions/gcvt.texi: Likewise.
* doc/pastposix-functions/getwd.texi: Likewise.
* doc/pastposix-functions/index.texi: Likewise.
* doc/pastposix-functions/mktemp.texi: Likewise.
* doc/pastposix-functions/rindex.texi: Likewise.
* doc/pastposix-functions/wcswcs.texi: Likewise.
* doc/posix-functions/aio_cancel.texi: Likewise.
* doc/posix-functions/aio_error.texi: Likewise.
* doc/posix-functions/aio_fsync.texi: Likewise.
* doc/posix-functions/aio_read.texi: Likewise.
* doc/posix-functions/aio_return.texi: Likewise.
* doc/posix-functions/aio_suspend.texi: Likewise.
* doc/posix-functions/aio_write.texi: Likewise.
* doc/posix-functions/creat.texi: Likewise.
* doc/posix-functions/ctime.texi: Likewise.
* doc/posix-functions/daylight.texi: Likewise.
* doc/posix-functions/fgetpos.texi: Likewise.
* doc/posix-functions/fopen.texi: Likewise.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fseeko.texi: Likewise.
* doc/posix-functions/fsetpos.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/fstatvfs.texi: Likewise.
* doc/posix-functions/ftello.texi: Likewise.
* doc/posix-functions/ftruncate.texi: Likewise.
* doc/posix-functions/getrlimit.texi: Likewise.
* doc/posix-functions/lio_listio.texi: Likewise.
* doc/posix-functions/localtime.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/mktime.texi: Likewise.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/opendir.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/readdir.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/seekdir.texi: Likewise.
* doc/posix-functions/setrlimit.texi: Likewise.
* doc/posix-functions/statvfs.texi: Likewise.
* doc/posix-functions/strftime.texi: Likewise.
* doc/posix-functions/telldir.texi: Likewise.
* doc/posix-functions/timezone.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/posix-functions/truncate.texi: Likewise.
* doc/posix-functions/tzname.texi: Likewise.
* doc/posix-functions/wcsftime.texi: Likewise.
* doc/windows-sockets.texi: Likewise.
2020-05-31 Paul Eggert <eggert@cs.ucla.edu>
getrandom-tests: do not assume GRND_RANDOM yields short read
* tests/test-getrandom.c (main): Omit assertion that
getrandom (b, sizeof b, GRND_RANDOM | GRND_NONBLOCK) < sizeof b
when b’s size is 100000. This assertion fails with Linux kernel
5.6.13, as that kernel ignores the GRND_RANDOM flag.
The separate blocking pool is going away in the Linux kernel, and
they’ve added a flag GRND_INSECURE instead; see:
https://lore.kernel.org/linux-api/705c5a091b63cc5da70c99304bb97e0109be0a26.1577088521.git.luto@kernel.org/
The assertion was iffy anyway; what’s to prevent a kernel from
lazily filling a large buffer with random bytes?
read-file-test: pacify --enable-gcc-warnings
* tests/test-read-file.c (test_read_file): Now static.
tempname: merge from glibc and coreutils
Also, merge in Gnulib’s more-recent methods of making it easier
to share between Gnulib and glibc, and fix a few randomness
glitches.
* lib/tempname.c: Include libc-config.h, not config.h, if !_LIBC.
(__set_errno): Remove; libc-config.h does that for us.
Do not include <sys/time.h>.
(__secure_getenv) [_LIBC]: New macro.
(__try_tempname, __getpid, __gettimeofday) [!_LIBC]: Remove macros.
(RANDOM_BITS): Rewrite.
(RANDOM_VALUE_MAX, BASE_62_DIGITS, BASE_62_POWER): New macros.
(random_value): New typedef.
(try_file, try_dir, try_nocreate): Move up.
(gen_tempname_len, try_tempname_len): New functions.
(gen_tempname_len): Use a constant array rather than a switch.
(try_tempname_len): Don’t assume string length fits in int.
Generalize use of RANDOM_BITS. If _LIBC, don’t assume RANDOM_BITS
has enough entropy (it’s a bit short).
(__gen_tempname): Rewrite in terms of gen_tempname_len.
(__try_tempname): Rewrite in terms of try_tempname_len.
* lib/tempname.h (gen_tempname_len, try_tempname_len): New decls.
* modules/tempname (Depends-on): Remove gettimeofday, sys_time.
Add getentropy, libc-config.
2020-05-31 Bruno Haible <bruno@clisp.org>
getrandom, getentropy: Mention the crypto/gc-random module.
Suggested by Simon Josefsson in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00400.html>.
* doc/glibc-functions/getrandom.texi: Mention the quality issues and the
crypto/gc-random module.
* doc/glibc-functions/getentropy.texi: Likewise.
2020-05-31 Bruno Haible <bruno@clisp.org>
getentropy: Enhance tests.
* tests/test-getentropy.c (main): Add one more test.
* tests/test-unistd-c++.cc: Check the signature of getentropy.
2020-05-31 Bruno Haible <bruno@clisp.org>
getentropy: Work around a macOS and Solaris problem.
* lib/unistd.in.h: Include <sys/random.h>, when needed for the
'getentropy' module.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
UNISTD_H_HAVE_SYS_RANDOM_H.
* m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Set
UNISTD_H_HAVE_SYS_RANDOM_H.
* modules/unistd (Makefile.am): Substitute UNISTD_H_HAVE_SYS_RANDOM_H.
* doc/glibc-functions/getentropy.texi: Document the macOS and Solaris
problem. List more platforms.
2020-05-31 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: merge from glibc
Also, merge in Gnulib’s more-recent methods of making it easier
to share between Gnulib and glibc.
* lib/fnmatch.c: Reorder includes to match glibc better.
Include libc-config.h instead of config.h.
Include alloca.h only if _LIBC || HAVE_ALLOCA.
Do not include "../locale/elem-hash.h" if _LIBC.
Define macros for btowc, etc. if _LIBC. All uses simplified.
Define FALLTHROUGH if _LIBC, instead of including attribute.h.
Include intprops.h, since glibc has it now.
(SIZE_MAX): Remove; use (size_t) -1 instead.
Omit the "Comment out all this code" ifdef, since Gnulib
has never really needed it.
(STREQ): Remove; no longer used.
(__libc_use_alloca, alloca, alloca_account): Define as
needed if !_LIBC.
(ISWCTYPE): Remove; all uses replaced by iswctype.
(HANDLE_MULTIBYTE): Remove. All uses removed by assuming true.
(internal_function): Remove. All uses removed.
(STRUCT): New macro.
(WIDE_CHAR_VERSION): Define to 0 instead of leaving undefined.
(WMEMCMP): New macro.
(FINDIDX): Define if _LIBC, and include <locale/weight.h>
and <locale/weightwc.h>.
(fnmatch): Prefer __glibc_likely and __glibc_unlikely to
__builtin_expect. Check for integer overflow more
systematically. Account for alloca storage better when
recursive. Use strnlen instead of strlen for efficiency.
* lib/fnmatch_loop.c: Include stdint.h if _LIBC, for int32_t etc.
(struct STRUCT): New type.
(FCT, EXT): New ENDS and ALLOCA_USED args.
All callers changed.
(FCT): Prefer __glibc_unlikely to __builtin_expect.
Simplify by assuming WIDE_CHAR_SUPPORT.
Copy _LIBC code from glibc without worrying Gnulib compatibility.
Cast cold to UCHAR to avoid signedness warning.
(END): Check for invalid pattern.
(EXT): Improve alloca/malloc checking (taken from glibc),
and improve it some more by using intprops.h and checking
for integer overflow and using bool for booleans.
* lib/libc-config.h (compat_symbol): New macro.
(versioned_symbol): Make it ‘extern int dummy’ so that it’s
acceptable to non-GCC when a trailing semicolon is added.
* modules/fnmatch (Depends-on): Add alloca-opt, intprops,
libc-config, strnlen. Remove alloca.
2020-05-31 Bruno Haible <bruno@clisp.org>
getrandom: Doc and test tweaks.
* lib/getrandom.c (getrandom): Mention that it never returns 0, and that
it sets errno when failing.
* tests/test-getrandom.c (main): Disable the high-quality check on those
platforms on which it fails.
* doc/glibc-functions/getrandom.texi: Add Minix, AIX, HP-UX, IRIX,
Cygwin to the list of platforms that don't have the function. Add a note
about the quality of the result.
* doc/glibc-headers/sys_random.texi: Don't mention the 'getrandom'
declaration; this is fixed by module 'getrandom'.
2020-05-31 Bruno Haible <bruno@clisp.org>
getrandom: Add support for native Windows.
* lib/getrandom.c: Include <errno.h>, <windows.h>, <bcrypt.h>,
<wincrypt.h>.
(CRYPT_VERIFY_CONTEXT): New macro.
(LoadLibrary, CryptAcquireContext): Redirect to the variant with suffix
'A'.
(GetProcAddress): New macro.
(BCryptGenRandomFuncType): New type.
(BCryptGenRandomFunc, initialized): New variables.
(initialize): New function.
(getrandom): On native Windows, use <bcrypt.h> API when available, and
<wincrypt.h> API as fallback.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Set LIB_GETRANDOM.
* modules/getrandom (Link): New section.
* modules/getentropy (Link): Likewise.
* modules/getrandom-tests (Makefile.am): Link test-getrandom against
$(LIB_GETRANDOM).
* modules/getentropy-tests (Makefile.am): Link test-getentropy against
$(LIB_GETRANDOM).
* modules/sys_random-c++-tests (Makefile.am): Link test-sys_random-c++
against $(LIB_GETRANDOM).
* doc/glibc-functions/getrandom.texi: Mention the native Windows
support.
2020-05-31 Bruno Haible <bruno@clisp.org>
getrandom: Simplify the determination of the random number devices.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00383.html>.
* lib/getrandom.c (NAME_OF_RANDOM_DEVICE, NAME_OF_NONCE_DEVICE): New
macros.
* modules/getrandom (Depends-on): Remove crypto/gc-random.
2020-05-31 Bruno Haible <bruno@clisp.org>
crypto/gc-random: Fix list of crypto devices for Solaris.
* m4/gc-random.m4 (gl_GC_RANDOM): Don't special-case Solaris.
2020-05-31 Akim Demaille <akim@lrde.epita.fr>
list: fix GCC warnings
* lib/gl_anytree_list2.h (gl_tree_iterator_free)
(gl_tree_next_node, gl_tree_node_nx_set_value)
(gl_tree_previous_node, gl_tree_next_node):
Mark unused arguments.
* lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise.
* lib/gl_anylinked_list2.h (gl_linked_node_value)
(gl_linked_node_nx_set_value, gl_linked_iterator_free): Likewise.
* lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Avoid using
the same variable name in nested scopes.
2020-05-31 Bruno Haible <bruno@clisp.org>
list-c++, set-c++, oset-c++, map-c++, omap-c++: Don't fool the compiler.
Reported by Akim Demaille in
<https://lists.gnu.org/archive/html/bug-bison/2020-05/msg00102.html>.
* lib/gl_list.hh (gl_List::iterator::next): Avoid a reinterpret_cast.
* lib/gl_set.hh (gl_Set::iterator::next): Likewise.
* lib/gl_oset.hh (gl_OSet::iterator::next): Likewise.
* lib/gl_map.hh (gl_Map::iterator::next): Likewise.
* lib/gl_omap.hh (gl_OMap::iterator::next): Likewise.
2020-05-30 Bruno Haible <bruno@clisp.org>
wmemchr: Relicense under LGPLv2+.
* modules/wmemchr (License): Set to LGPLv2+.
2020-05-30 Bruno Haible <bruno@clisp.org>
wmempcpy: New module.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00387.html>.
* lib/wchar.in.h (wmempcpy): New declaration.
* lib/wmempcpy.c: New file.
* m4/wmempcpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmempcpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMPCPY, HAVE_WMEMPCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMPCPY,
HAVE_WMEMPCPY.
* modules/wmempcpy: New file.
* tests/test-wchar-c++.cc: Check the signature of wmempcpy.
* doc/glibc-functions/wmempcpy.texi: Mention the new module.
* modules/mempcpy (Description): Fix typo.
2020-05-30 Bruno Haible <bruno@clisp.org>
crypto/gc-random: Fix list of crypto devices for NetBSD, OpenBSD.
* m4/gc-random.m4 (gl_GC_RANDOM): Don't special-case NetBSD and OpenBSD.
2020-05-30 Bruno Haible <bruno@clisp.org>
sys_random: Work around macOS bug.
* m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Include <sys/types.h> and
<stdlib.h> before <sys/random.h>.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise.
* lib/sys_random.in.h: On macOS, include <sys/types.h> and <stdlib.h>
first.
* doc/glibc-headers/sys_random.texi: Mention the macOS problem.
2020-05-30 Bruno Haible <bruno@clisp.org>
getrandom: Override incompatible system function on Solaris 11.
* lib/sys_random.in.h (getrandom): Override if REPLACE_GETRANDOM is 1.
* lib/getrandom.c (getrandom): When the system has getrandom, just
invoke it.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Set REPLACE_GETRANDOM if the
system's getrandom function's prototype is not the expected one.
* m4/sys_random_h.m4 (gl_SYS_RANDOM_H_DEFAULTS): Initialize
REPLACE_GETRANDOM.
* modules/sys_random (Makefile.am): Substitute REPLACE_GETRANDOM.
* modules/getrandom (modules/getrandom): Consider REPLACE_GETRANDOM.
* tests/test-getrandom.c (main): Allow error EINVAL as an alternative to
EAGAIN.
* doc/glibc-functions/getrandom.texi: Mention the new module and the
Solaris problem.
2020-05-30 Bruno Haible <bruno@clisp.org>
sys_random: Add C++ tests.
* tests/test-sys_random-c++.cc: New file.
* modules/sys_random-c++-tests: New file.
* modules/sys_random-tests (Depends-on): Depend on it.
sys_random: Add tests.
* tests/test-sys_random.c: New file.
* modules/sys_random-tests: New file.
sys_random: New module.
* lib/sys_random.in.h: Use the common idioms for overridable header
files.
* m4/sys_random_h.m4: New file.
* m4/getrandom.m4 (gl_FUNC_GETRANDOM): Require gl_SYS_RANDOM_H_DEFAULTS.
* modules/sys_random: New file.
* modules/getrandom (Files): Remove lib/sys_random.in.h.
(Depends-on): Add sys_random.
(configure.ac): Use gl_SYS_RANDOM_MODULE_INDICATOR, not
gl_UNISTD_MODULE_INDICATOR.
(Makefile.am): Don't generate sys/random.h here.
* doc/glibc-headers/sys_random.texi: New file.
* doc/gnulib.texi: Include it.
2020-05-30 Bruno Haible <bruno@clisp.org>
unistd: Remove conflicting declaration of getrandom().
* lib/unistd.in.h (getrandom): Remove declaration.
* m4/unistd_h.m4 (gl_UNISTD_H): Don't test whether getrandom is
declared.
(gl_UNISTD_H_DEFAULTS): Don't initialize GNULIB_GETRANDOM,
HAVE_GETRANDOM.
* modules/unistd (Makefile.am): Don't substitute GNULIB_GETRANDOM,
HAVE_GETRANDOM.
2020-05-30 Bruno Haible <bruno@clisp.org>
getrandom: Add tests.
* tests/test-getrandom.c: New file.
* modules/getrandom-tests: New file.
2020-05-30 Bruno Haible <bruno@clisp.org>
crypto/gc-random: Fix link error on MSVC.
* m4/gc-random.m4 (gl_GC_RANDOM): Set LIB_GC_RANDOM.
* modules/crypto/gc-random (Link): New section.
* modules/crypto/gc-tests (Makefile.am): Link test-gc against
$(LIB_GC_RANDOM).
2020-05-30 Bruno Haible <bruno@clisp.org>
Don't assume that UNICODE is not defined.
Many Windows API functions are defined differently (redirecting to a
function with suffix 'W') if the application defines the macro UNICODE
than by default (redirecting to a function with suffix 'A').
* lib/clean-temp.c (OSVERSIONINFO, GetVersionEx): Redirect to the
variant with suffix 'A'.
* lib/dirent-private.h (WIN32_FIND_DATA): Likewise.
* lib/gc-gnulib.c (CryptAcquireContext): Likewise.
* lib/getaddrinfo.c (GetModuleHandle): Likewise.
* lib/getlogin.c (GetUserName): Likewise.
* lib/getlogin_r.c (GetUserName): Likewise.
* lib/gettimeofday.c (LoadLibrary): Likewise.
* lib/isatty.c (LoadLibrary, QueryFullProcessImageName): Likewise.
* lib/link.c (GetModuleHandle, CreateHardLink): Likewise.
* lib/localename.c (GetLocaleInfo, EnumSystemLocales): Likewise.
* lib/mountlist.c (GetDriveType): Likewise.
* lib/nonblocking.c (GetNamedPipeHandleState): Likewise.
* lib/opendir.c (WIN32_FIND_DATA, GetFullPathName, FindFirstFile):
Likewise.
* lib/physmem.c (GetModuleHandle): Likewise.
* lib/poll.c (GetModuleHandle, PeekConsoleInput, CreateEvent,
PeekMessage, DispatchMessage): Likewise.
* lib/progreloc.c (GetModuleFileName): Likewise.
* lib/putenv.c (SetEnvironmentVariable): Likewise.
* lib/read.c (GetNamedPipeHandleState): Likewise.
* lib/readdir.c (FindNextFile): Likewise.
* lib/relocatable.c (GetModuleFileName): Likewise.
* lib/rename.c (MoveFileEx): Likewise.
* lib/rewinddir.c (FindFirstFile): Likewise.
* lib/select.c (GetModuleHandle, PeekConsoleInput, CreateEvent,
PeekMessage, DispatchMessage): Likewise.
* lib/sethostname.c (GetComputerNameEx, SetComputerNameEx): Likewise.
* lib/socket.c (WSASocket): Likewise.
* lib/stat-w32.c (LoadLibrary, GetFinalPathNameByHandle): Likewise.
* lib/stat.c (WIN32_FIND_DATA, CreateFile, FindFirstFile): Likewise.
* lib/stdio-read.c (GetNamedPipeHandleState): Likewise.
* lib/stdio-write.c (GetNamedPipeHandleState): Likewise.
* lib/tmpdir.c (GetTempPath): Likewise.
* lib/tmpfile.c (OSVERSIONINFO, GetVersionEx, GetTempPath): Likewise.
* lib/uname.c (OSVERSIONINFO, GetVersionEx): Likewise.
* lib/utime.c (CreateFile, GetFileAttributes): Likewise.
* lib/windows-cond.c (CreateEvent): Likewise.
* lib/windows-rwlock.c (CreateEvent): Likewise.
* lib/windows-timedmutex.c (CreateEvent): Likewise.
* lib/windows-timedrecmutex.c (CreateEvent): Likewise.
* lib/windows-timedrwlock.c (CreateEvent): Likewise.
* lib/write.c (GetNamedPipeHandleState): Likewise.
2020-05-30 Bruno Haible <bruno@clisp.org>
physmem: Fix compilation errors on MSVC.
* lib/physmem.c (PFN_MS_EX): Use BOOL, not WINBOOL.
* modules/physmem (Depends-on): Add unistd.
2020-05-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix link errors with a particular set of modules on mingw.
* gnulib-tool (func_emit_tests_Makefile_am): Add ../lib/libgnu.a to
LDADD a second time, after the second occurrence of libtests.a.
* pygnulib/GLEmiter.py (tests_Makefile_am): Likewise.
2020-05-29 Bruno Haible <bruno@clisp.org>
fnmatch: Rely on more gnulib modules.
* modules/fnmatch (Depends-on): Add btowc, isblank, iswctype, wmemchr,
wmempcpy, mempcpy.
* lib/fnmatch.c: Assume that HAVE_WCTYPE_H, HAVE_BTOWC, HAVE_ISWCTYPE,
HAVE_WMEMCHR, HAVE_WMEMPCPY, HAVE_ISBLANK, HAVE_DECL_ISBLANK,
HAVE_MEMPCPY are all 1.
* m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Don't test for btowc, isblank,
iswctype, mempcpy, wmemchr, wmemcpy, wmempcpy, <wctype.h>.
2020-05-29 Bruno Haible <bruno@clisp.org>
Avoid dynamic lookup of Windows API functions when possible.
* lib/getaddrinfo.c (GetProcAddress, getaddrinfo_func,
freeaddrinfo_func, getnameinfo_func, getaddrinfo_ptr, freeaddrinfo_ptr,
getnameinfo_ptr): Don't define in a build for Windows XP or higher.
(use_win32_p): Define differently.
* lib/link.c (GetProcAddress, CreateHardLinkFuncType,
CreateHardLinkFunc, initialized, initialize): Don't define in a build
for Windows XP or higher.
2020-05-29 Daiki Ueno <ueno@gnu.org>
read-file: disable buffering if RF_SENSITIVE is set
* lib/read-file.c (read_file): Call setvbuf if RF_SENSITIVE.
Suggested by Glenn Strauss.
(fread_file): Suggest calling setvbuf before calling this
function. Suggested by Bruno Haible.
2020-05-29 Bruno Haible <bruno@clisp.org>
wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset: Fix autoconf test.
* m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Link, not only compile, the test
program.
* m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Likewise.
* m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Likewise.
* m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Likewise.
* m4/wmemset.m4 (gl_FUNC_WMEMSET): Likewise.
2020-05-29 Bruno Haible <bruno@clisp.org>
Fix compilation error on native Windows (regression from 2020-05-28).
Reported by Daiki Ueno.
* lib/gettimeofday.c (GetSystemTimePreciseAsFileTimeFunc): Define as
macro when not using dynamic loading.
* lib/isatty.c (GetNamedPipeClientProcessIdFunc,
QueryFullProcessImageNameFunc): Likewise.
* lib/stat-w32.c (GetFileInformationByHandleExFunc,
GetFinalPathNameByHandleFunc): Likewise.
2020-05-29 Daiki Ueno <ueno@gnu.org>
fopen-gnu-tests: fix "\x" escape usage
* tests/test-fopen-gnu.c (DATA): Use safer escape sequence.
2020-05-28 Bruno Haible <bruno@clisp.org>
Avoid dynamic loading of Windows API functions when possible.
Reported by Steve Lhomme <robux4@ycbcr.xyz> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00182.html>.
* lib/gettimeofday.c (GetProcAddress,
GetSystemTimePreciseAsFileTimeFuncType,
GetSystemTimePreciseAsFileTimeFunc, initialized, initialize): Don't
define in a build for Windows 8 or higher.
* lib/isatty.c (GetProcAddress, GetNamedPipeClientProcessIdFuncType,
GetNamedPipeClientProcessIdFunc, QueryFullProcessImageNameFuncType,
QueryFullProcessImageNameFunc, initialized, initialize): Don't define
in a build for Windows Vista or higher.
* lib/stat-w32.c (GetProcAddress, GetFileInformationByHandleExFuncType,
GetFileInformationByHandleExFunc, GetFinalPathNameByHandleFuncType,
GetFinalPathNameByHandleFunc, initialized, initialize): Likewise.
2020-05-28 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero-tests: improve -Wmissing-declarations pacification
* tests/test-explicit_bzero.c: Now noinline.
Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00300.html
2020-05-28 Bruno Haible <bruno@clisp.org>
Fix build errors due to read-file changes (regression from 2020-05-27).
* lib/git-merge-changelog.c (read_changelog_file): Update read_file
invocation.
* tests/test-sameacls.c (main): Likewise.
* tests/test-pipe-filter-gi1.c (main): Call read_file instead of
read_binary_file.
* tests/test-pipe-filter-ii1.c (main): Likewise.
2020-05-28 Bruno Haible <bruno@clisp.org>
fts: Make more robust in multithreaded applications.
* lib/fts.c (fts_open): Pass an O_CLOEXEC flag to open().
* modules/fts (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
relocatable-prog: Make more robust in multithreaded applications.
* lib/progreloc.c (O_CLOEXEC): Define fallback to 0 when use from module
relocatable-prog-wrapper.
(find_executable): Pass an O_CLOEXEC flag to open().
* modules/relocatable-prog (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
getloadavg: Make more robust in multithreaded applications.
* lib/getloadavg.c (getloadavg): Pass an O_CLOEXEC flag to open().
Simplify use of O_CLOEXEC.
* modules/getloadavg (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
vma-iter: Make more robust in multithreaded applications.
* lib/vma-iter.c (rof_open, vma_iterate): Pass an O_CLOEXEC flag to
open().
* modules/vma-iter (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
truncate: Make more robust in multithreaded applications.
* lib/truncate.c (truncate): Pass an O_CLOEXEC flag to open().
2020-05-28 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Make more robust in multithreaded applications.
* lib/pagealign_alloc.c (pagealign_alloc): Pass an O_CLOEXEC flag to
open().
* modules/pagealign_alloc (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
openat: Make more robust in multithreaded applications.
* lib/openat.c (openat_needs_fchdir): Pass an O_CLOEXEC flag to open().
2020-05-28 Bruno Haible <bruno@clisp.org>
at-internal: Make more robust in multithreaded applications.
* lib/openat-proc.c (openat_proc_name): Pass an O_CLOEXEC flag to
open().
2020-05-28 Bruno Haible <bruno@clisp.org>
mountlist: Make more robust in multithreaded applications.
* lib/mountlist.c (read_file_system_list): Pass an O_CLOEXEC flag to
open().
* modules/mountlist (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
login_tty: Make more robust in multithreaded applications.
* lib/login_tty.c (login_tty): Pass an O_CLOEXEC flag to open().
* modules/login_tty (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
javacomp: Make more robust in multithreaded applications.
* lib/javacomp.c (get_classfile_version): Pass an O_CLOEXEC flag to
open().
* modules/javacomp (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
getprogname: Make more robust in multithreaded applications.
* lib/getprogname.c (getprogname): Pass an O_CLOEXEC flag to open().
* modules/getprogname (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
get_progname_of: Make more robust in multithreaded applications.
* lib/get_progname_of.c (get_progname_of): Pass an O_CLOEXEC flag to
open().
* modules/get_progname_of (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
get_ppid_of: Make more robust in multithreaded applications.
* lib/get_ppid_of.c (get_ppid_of): Pass an O_CLOEXEC flag to open().
* modules/get_ppid_of (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
get-rusage-as: Make more robust in multithreaded applications.
* lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Pass an O_CLOEXEC
flag to open().
* modules/get-rusage-as (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
crypto/gc: Make more robust in multithreaded applications.
* lib/gc-gnulib.c (randomize): Pass an O_CLOEXEC flag to open().
* modules/crypto/gc (Depends-on): Add 'open'.
2020-05-28 Bruno Haible <bruno@clisp.org>
copy-file: Make more robust in multithreaded applications.
* lib/copy-file.c (qcopy_file_preserving): Pass an O_CLOEXEC flag to
open().
2020-05-28 Bruno Haible <bruno@clisp.org>
chown: Make more robust in multithreaded applications.
* lib/chown.c (rpl_chown): Pass an O_CLOEXEC flag to open().
2020-05-28 Bruno Haible <bruno@clisp.org>
doc: Fix statement about O_CLOEXEC (wrong since 2017-08-14).
* doc/posix-headers/fcntl.texi: Gnulib no longer defines O_CLOEXEC to 0.
2020-05-28 Daiki Ueno <ueno@gnu.org>
fopen-gnu: make 'b' flag can be used with 'e' on Windows
* lib/fopen.c (rpl_fopen): Pass O_BINARY to open, if a 'b' flag is
specified on Windows.
* tests/test-fopen-gnu.c (DATA): New define.
(main): Add test for reading binary files with an 'e' flag.
2020-05-27 Bruno Haible <bruno@clisp.org>
Don't assume that UNICODE is not defined.
Some Windows types, such as TCHAR, LPTSTR, LPCTSTR, are defined
differently if the application defines the macro UNICODE.
Reported by Steve Lhomme <robux4@ycbcr.xyz> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00184.html>.
* lib/link.c (CreateHardLinkFuncType): Use LPCSTR, not LPCTSTR.
* lib/localename.c (enum_locales_fn): Use LPSTR, not LPTSTR.
* lib/stat-w32.c (GetFinalPathNameByHandleFuncType): Likewise.
2020-05-27 Bruno Haible <bruno@clisp.org>
Improve pattern for defining _WIN32_WINNT.
Newer versions of the Windows API may not only add, but also remove API
functions. Therefore, when the user is e.g. building for Windows 10, we
should not set _WIN32_WINNT to e.g. Windows 8, as this may enable the
use of APIs that were present in Windows 8 but removed in Windows 10.
Suggested by Steve Lhomme <robux4@ycbcr.xyz> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00318.html>.
* lib/ftruncate.c (_WIN32_WINNT): Don't set to a smaller value.
* lib/sethostname.c (_WIN32_WINNT): Likewise.
* lib/stat-w32.c (_WIN32_WINNT): Likewise.
2020-05-27 Bruno Haible <bruno@clisp.org>
javacomp: Make more robust in multithreaded applications.
* lib/javacomp.c (write_temp_file): Pass an 'e' flag to fopen_temp.
* modules/javacomp (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
mountlist: Make more robust in multithreaded applications.
* lib/mountlist.c (setmntent, read_file_system_list): Pass an 'e' flag
to fopen.
* modules/mountlist (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
sethostname: Make more robust in multithreaded applications.
* lib/sethostname.c (sethostname): Pass an 'e' flag to fopen.
* modules/sethostname (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
readutmp: Make more robust in multithreaded applications.
* lib/readutmp.c (read_utmp): Pass an 'e' flag to fopen.
* modules/readutmp (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
getpass: Make more robust in multithreaded applications.
* lib/getpass.c (getpass): Pass an 'e' flag to fopen.
* modules/getpass (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
getloadavg: Make more robust in multithreaded applications.
* lib/getloadavg.c (getloadavg): Pass an 'e' flag to fopen.
* modules/getloadavg (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
exclude: Make more robust in multithreaded applications.
* lib/exclude.c (add_exclude_file): Pass an 'e' flag to fopen.
* modules/exclude (Depends-on): Add fopen-gnu.
2020-05-27 Bruno Haible <bruno@clisp.org>
bitset: Make more robust in multithreaded applications.
* lib/bitset/stats.c (bitset_stats_read, bitset_stats_write): Pass an
'e' flag to fopen.
* modules/bitset (Depends-on): Add fopen-gnu.
2020-05-27 Daiki Ueno <ueno@gnu.org>
read-file: add RF_SENSITIVE flag
* lib/read-file.h (RF_SENSITIVE): New define.
* lib/read-file.c (fread_file, read_file): Take into account of
RF_SENSITIVE flag.
* modules/read-file (Depends-on): Add explicit_bzero.
This adds an alternative behavior of those functions to explicitly
clear the internal memory block when it becomes unused. This is
useful for reading sensitive information from a file.
2020-05-27 Daiki Ueno <ueno@gnu.org>
read-file: add flags to modify reading behavior
* lib/read-file.h (RF_BINARY): New define.
(fread_file, read_file): Take FLAGS argument.
(read_binary_file): Remove.
* lib/read-file.c (internal_read_file): Merge into ...
(read_file): ... here.
* modules/read-file-tests (Files): Add "tests/macros.h".
* tests/test-read-file.c (main): Refactor using ASSERT macro.
* NEWS: Mention this change.
2020-05-26 Bernhard Voelker <mail@bernhard-voelker.de>
doc/gnulib-intro.texi: add missing "to" in sentence
Reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00316.html>.
* doc/gnulib-intro.texi (Collaborative Development): Add "to".
2020-05-26 Bruno Haible <bruno@clisp.org>
count-one-bits: Fix MSVC specific code.
Reported by Gisle Vanem <gisle.vanem@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00309.html>.
* lib/count-one-bits.h (COUNT_ONE_BITS_GENERIC): Don't define if we're
using GCC.
[_MSC_VER]: Use correct syntax for #pragma intrinsic.
(__popcnt64): In 32-bit mode, define as an inline function.
(COUNT_ONE_BITS): Rename first argument to GCC_BUILTIN.
2020-05-26 Bruno Haible <bruno@clisp.org>
argz: Avoid name clashes through argz.h.
Reported by Gisle Vanem <gisle.vanem@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00308.html>.
* lib/argz.h: Don't use __ prefixed identifiers.
(const): Remove definition.
(argz_next): Remove inline definitions.
2020-05-26 Daiki Ueno <ueno@gnu.org>
read-file: make use of fopen-gnu
* lib/read-file.c (read_file): Pass an 'e' flag to fopen.
(read_binary_file): Likewise.
* modules/read-file (Depends-on): Add fopen-gnu.
2020-05-25 Paul Eggert <eggert@cs.ucla.edu>
getentropy, getrandom: new modules
* MODULES.html.sh (func_all_modules):
* lib/unistd.in.h (getentropy, getrandom):
* m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS):
* modules/unistd (unistd.h):
Add support for getentropy, getrandom.
* doc/glibc-functions/getentropy.texi (getentropy):
* doc/glibc-functions/getrandom.texi (getrandom):
These are now fixed on some platforms.
* lib/getentropy.c, lib/getrandom.c, lib/sys_random.in.h:
* m4/getentropy.m4, m4/getrandom.m4:
* modules/getentropy, modules/getentropy-tests:
* modules/getrandom, modules/getrandom-tests:
* tests/test-getentropy.c, tests/test-getrandom.c:
New files.
2020-05-25 Bruno Haible <bruno@clisp.org>
Add missing C99 dependencies.
Reported by Paul Smith <psmith@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00290.html>.
* modules/assert (Depends-on): Add c99.
* modules/filenamecat-lgpl (Depends-on): Likewise.
* modules/libc-config (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/random_r (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/scratch_buffer (Depends-on): Likewise.
* modules/timespec-add (Depends-on): Likewise.
* modules/timespec-sub (Depends-on): Likewise.
* modules/verify (Depends-on): Likewise.
2020-05-24 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero-tests: pacify -Wmissing-declarations
* tests/test-explicit_bzero.c (do_secret_stuff, test_stack):
Now static.
2020-05-24 Bruno Haible <bruno@clisp.org>
fopen-gnu: Add tests.
* tests/test-fopen-gnu.c: New file.
* modules/fopen-gnu-tests: New file.
fopen-gnu: New module.
Suggested by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00119.html>.
* lib/fopen.c (rpl_fopen): When the fopen-gnu module is enabled and the
mode contains an 'x' or 'e' flag, use open() followed by fdopen().
* m4/fopen.m4 (gl_FUNC_FOPEN_GNU): New macro.
* modules/fopen-gnu: New file.
* doc/posix-functions/fopen.texi: Document the 'fopen-gnu' module.
2020-05-24 Bruno Haible <bruno@clisp.org>
open, openat: Really support O_CLOEXEC.
* lib/open.c (open): When have_cloexec is still undecided, do pass a
O_CLOEXEC flag to orig_open.
* lib/openat.c (rpl_openat): When have_cloexec is still undecided, do
pass a O_CLOEXEC flag to orig_openat.
* tests/test-open.h (test_open): Verify that O_CLOEXEC is honoured.
* modules/open-tests (Depends-on): Add fcntl.
* modules/openat-tests (Depends-on): Likewise.
* modules/fcntl-safer-tests (Depends-on): Likewise.
2020-05-24 Bruno Haible <bruno@clisp.org>
fopen: Fix the trailing slash workaround.
* lib/fopen.c (rpl_fopen): Parse the mode string. Recognize "r+" as a
write access. Pass the right flags to open().
* tests/test-fopen.h (test_fopen): Add a few more tests on directories.
2020-05-23 Paul Eggert <eggert@cs.ucla.edu>
assure: new macro ‘affirm’
* lib/assure.h: Include verify.h.
(affirm): New macro, after a suggestion by Marc Nieper-Wißkirchen in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00263.html
and commentary by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00278.html
* modules/assure (Depends-on:): Add verify.
2020-05-23 Bruno Haible <bruno@clisp.org>
calloc-gnu: Make test work in non-flat address spaces.
Uses code by Paul Eggert.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Allow a calloc() implementation
to return more than SIZE_MAX bytes, but only without wrap-around bugs.
2020-05-23 Bruno Haible <bruno@clisp.org>
calloc-gnu: Avoid wrong configure results with GCC's AddressSanitizer.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Split the AC_RUN_IFELSE into two
AC_RUN_IFELSE invocations.
2020-05-23 Bruno Haible <bruno@clisp.org>
isnanf, isnanl, isnan: Don't use nonexistent builtins with clang.
* m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_HAVE_ISNANF_IN_LIBM,
gl_ISNANF_WORKS): Don't use __builtin_isnanf on clang versions that
don't have it.
* m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM,
gl_FUNC_ISNANL_WORKS): Don't use __builtin_isnanl on clang versions that
don't have it.
* lib/isnanf-nolibm.h (__has_builtin): New macro.
(isnanf): Don't use __builtin_isnanf on clang versions that don't have
it.
* lib/isnanl-nolibm.h (__has_builtin): New macro.
(isnanl): Don't use __builtin_isnanl on clang versions that don't have
it.
* lib/math.in.h (__has_builtin): New macro.
(isnanf): Don't use __builtin_isnanf on clang versions that don't have
it.
(isnanl): Don't use __builtin_isnanl on clang versions that don't have
it.
(isnan): Don't use the builtins on clang versions that don't have
__builtin_isnanf and __builtin_isnanl.
2020-05-23 Bruno Haible <bruno@clisp.org>
calloc-gnu: Avoid wrong configure results with clang.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Mark the pointer variable as
'volatile', to defeat compiler optimizations.
2020-05-23 Bruno Haible <bruno@clisp.org>
isnanl, isnanl-nolibm: Make a test work better with "gcc -O2" on x86_64.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Pass the
'long double' values by reference, with values taken from a statically
allocated array.
2020-05-23 Bruno Haible <bruno@clisp.org>
findprog-in: Ignore directories.
Reported by Frederick Eaton via Dmitry Goncharov in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00003.html>.
* lib/findprog-in.c (find_in_given_path): When the file found is a
directory, set errno to EACCES and, during a PATH search, continue
searching.
* modules/findprog-in (Depends-on): Add sys_stat, stat.
2020-05-23 Paul Eggert <eggert@cs.ucla.edu>
verify: document ‘assume’ better
* lib/verify.h (assume): Say it’s for static analysis, not dynamic.
2020-05-22 Asher Gordon <AsDaGo@posteo.net>
gendocs: Clarify licenses for templates.
* doc/gendocs_template: Add a GNU All-Permissive license notice
and bump Parent-Version.
* doc/gendocs_template_min: Add a GNU All-Permissive license
notice and copy the explanatory comment about the license notice
at the bottom from gendocs_template.
2020-05-21 Bruno Haible <bruno@clisp.org>
group-member: Relicense under LGPLv2+.
Jim Meyering's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00218.html>.
Paul Eggert's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00225.html>.
Eric Blake's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00217.html>.
* modules/group-member (License): Change to LGPLv2+.
2020-05-21 Bruno Haible <bruno@clisp.org>
memmem: Avoid wrong configure results with "clang -fsanitize=undefined".
Reported by Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00207.html>.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Use NULL + 1, not NULL.
2020-05-21 Bruno Haible <bruno@clisp.org>
regex: Avoid wrong configure results with "clang -fsanitize=leak".
Reported by Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00207.html>.
* m4/regex.m4 (gl_REGEX): Free compiled regexes and allocated registers
before returning with status 0.
2020-05-21 Bruno Haible <bruno@clisp.org>
glob: Avoid wrong configure results with "clang -fsanitize=leak".
Reported by Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00207.html>.
* m4/glob.m4 (gl_GLOB): Free allocated memory before returning.
2020-05-21 Bruno Haible <bruno@clisp.org>
fchownat: Support clang -fsanitize=implicit-integer-sign-change better.
Reported by Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00207.html>.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG,
gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Cast -1 to uid_t or git_t,
respectively.
2020-05-18 Tim Rühsen <tim.ruehsenqgmx.de>
getdelim: Avoid wrong configure results with gcc -fsanitize=address.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Fix memleak.
2020-05-19 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: fix ifndef typo
* lib/ftoastr.h (_GL_FTOASTR_H): Define.
2020-05-19 Bruno Haible <bruno@clisp.org>
havelib: Tweak documentation.
* doc/havelib.texi (Searching for Libraries): Fix typo.
2020-05-18 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Rename vcs_to_changelog.py to use hyphens.
This was needed earlier because modules had to import the main script,
but that is no longer true. Rename the script so that it is
consistent with all other scripts in gnulib and uses hyphens.
* build-aux/vcs_to_changelog.py: Rename to...
* build-aux/vcs-to-changelog.py: ... this.
* doc/vcs-to-changelog.texi (VCS To ChangeLog): Update reference.
* modules/vcs-to-changelog: Likewise.
2020-05-17 Bruno Haible <bruno@clisp.org>
Clarify intended usage of the license file modules.
Reported by Asher Gordon <AsDaGo@posteo.net> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00126.html>.
* doc/licenses-texi.texi (License Texinfo sources): Mention the
GNU AGPL. Explain the intended usage of the modules.
* modules/fdl (Notice): Discourage use as a module.
* modules/fdl-1.3 (Notice): Likewise.
2020-05-17 Akim Demaille <akim@lrde.epita.fr>
hash: add hash_xinsert
* lib/hash.h, lib/xhash.c (hash_xinsert): New.
2020-05-16 Bruno Haible <bruno@clisp.org>
findprog-lgpl: Fix link error (existing since 2008-09-02).
* modules/findprog-lgpl (Makefile.am): Arrange to compile
findprog-lgpl.c, not findprog.c.
* lib/findprog.c (find_in_path): Add LGPLed replacement code for
XNMALLOC.
2020-05-15 Paul Eggert <eggert@cs.ucla.edu>
c-stack: pacify -Wunused-result when DEBUG
Problem reported by Marc Nieper-Wißkirchen in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00132.html
* lib/c-stack.c (segv_handler, overflow_handler, segv_handler) [DEBUG]:
Explicitly ignore write failures.
2020-05-13 Jim Meyering <meyering@fb.com>
announce-gen: improve a comment
* build-aux/announce-gen: Improve comment.
2020-05-12 Paul Eggert <eggert@cs.ucla.edu>
xalloc: pacify -Wanalyzer-possible-null-argument
Problem reported for GCC 10.1.0 by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00118.html
* lib/xmalloc.c (HAVE_GNU_MALLOC, HAVE_GNU_REALLOC): New constants.
(xmalloc): Suppress unnecessary check if HAVE_GNU_MALLOC.
(xrealloc): Suppress unnecssary check if HAVE_GNU_REALLOC.
2020-05-11 Paul Eggert <eggert@cs.ucla.edu>
careadlinkat: fix GCC 10 workaround
* lib/careadlinkat.c (careadlinkat) [GCC_LINT]:
Massage the code so that it’s closer to what it was before
the GCC 10.1.0 workaround was introduced. This fixes
a loop when !buffer and the bug workaround is in effect.
Remove unnecessary casts. Defend in a different way
against (buffer && !buffer_size), by adding at least 1
to buf_size each time through the loop.
2020-05-10 Bruno Haible <bruno@clisp.org>
doc: Mark HP-UX as unsupported.
* doc/gnulib-intro.texi (Target Platforms): List HP-UX as unsupported.
2020-05-10 Paul Eggert <eggert@cs.ucla.edu>
careadlinkat: limit GCC workaround
* lib/careadlinkat.c (careadlinkat): Limit workaround to GCC
10.1.0 and later, since the workaround is pretty bad and the GCC
bug should get fixed.
2020-05-10 Bruno Haible <bruno@clisp.org>
havelib: Enhance documentation.
* doc/havelib.texi (Searching for Libraries): Mention the bad
consequences of using LIBxxx instead of LTLIBxxx and vice versa.
2020-05-10 Bruno Haible <bruno@clisp.org>
attribute: Clarify list of attributes.
* lib/attribute.h: Reorder the list of attributes, and group them by
purpose.
2020-05-10 Bruno Haible <bruno@clisp.org>
string: Fix compilation error in C++ mode.
* lib/warn-on-use.h (_GL_WARN_ON_USE_CXX): In C mode, use plain
_GL_WARN_ON_USE.
* lib/string.in.h (strchr, strpbrk, strrchr): Use _GL_WARN_ON_USE_CXX
instead of _GL_WARN_ON_USE.
2020-05-10 Akim Demaille <akim@lrde.epita.fr>
announce-gen: add support for dist-lzip
* build-aux/announce-gen (@archive_suffixes): Add tar.lz.
2020-05-09 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: port to GCC 10.1
* build-aux/gcc-warning.spec:
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)):
Add GCC 10.1.0 warnings.
careadlinkat: pacify -Wreturn-local-addr
* lib/careadlinkat.c (careadlinkat) [GCC_LINT]:
Pacify gcc 10’s -Wreturn-local-addr option.
Simplify some of the later code.
2020-05-09 Paul Eggert <eggert@cs.ucla.edu>
attribute: remove ATTRIBUTE_DEPRECATED
* lib/attribute.h: Improve recently-added comments, mostly
by shortening them (use active voice, etc.).
(ATTRIBUTE_DEPRECATED): Remove, as it duplicates DEPRECATED.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00089.html
2020-05-09 Bruno Haible <bruno@clisp.org>
attribute: Add comments.
* lib/attribute.h: Document each macro.
2020-05-09 Akim Demaille <akim@lrde.epita.fr>
bitset: use the attribute module
* modules/bitset: Depend on 'attribute'.
* lib/bitset/base.h (ATTRIBUTE_UNUSED): Remove.
* lib/bitset.c, lib/bitset/array.c, lib/bitset/list.c,
* lib/bitset/stats.c, lib/bitset/table.c, lib/bitset/vector.c:
Use MAYBE_UNUSED instead of ATTRIBUTE_UNUSED.
2020-05-09 Bruno Haible <bruno@clisp.org>
c-stack: Fix warning when DEBUG is enabled.
Patch suggested by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00081.html>.
* lib/c-stack.c: Include <stdio.h>.
2020-05-09 Bruno Haible <bruno@clisp.org>
Remove redundant definitions of _GL_ATTRIBUTE_FORMAT.
* lib/argp.h (_GL_ATTRIBUTE_FORMAT): Remove macro.
* lib/argp-fmtstream.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/c-snprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/c-vasnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/c-vasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/c-vsnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/c-xvasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/error.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/parse-datetime.y (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/vasnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/xprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
* lib/xvasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise.
2020-05-09 Bruno Haible <bruno@clisp.org>
Remove redundant definitions of _GL_ATTRIBUTE_ALLOC_SIZE.
Reported by Akim Demaille in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00077.html>.
* lib/eealloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Remove macro.
* lib/pagealign_alloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Likewise.
* lib/xalloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Likewise.
2020-05-09 Bruno Haible <bruno@clisp.org>
stdio, monetary: Don't redefine _GL_ATTRIBUTE_FORMAT.
* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT): Don't override the definition
that usually comes from m4/gnulib-common.m4.
* lib/monetary.in.h (_GL_ATTRIBUTE_FORMAT): Likewise.
2020-05-09 Bruno Haible <bruno@clisp.org>
dirent, stdlib, wchar, string: Don't redefine _GL_ATTRIBUTE_PURE.
* lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Don't override the definition
that usually comes from m4/gnulib-common.m4.
* lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_PURE): Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Likewise.
2020-05-09 Bruno Haible <bruno@clisp.org>
uchar: Work around incorrect char16_t, char32_t types on Haiku 2020.
* lib/uchar.in.h (char16_t): Define as macro if
GNULIB_OVERRIDES_CHAR16_T.
(char32_t): Define as macro if GNULIB_OVERRIDES_CHAR32_T.
* m4/uchar.m4 (gl_TYPE_CHAR16_T, gl_TYPE_CHAR32_T): New macros.
(gl_UCHAR_H): Invoke them.
(gl_UCHAR_H_DEFAULTS): Initialize GNULIB_OVERRIDES_CHAR16_T,
GNULIB_OVERRIDES_CHAR32_T.
* m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32, gl_MBRTOC32_SANITYCHECK): Require
gl_TYPE_CHAR32_T and test GNULIB_OVERRIDES_CHAR32_T.
* modules/uchar (Makefile.am): Substitute GNULIB_OVERRIDES_CHAR16_T,
GNULIB_OVERRIDES_CHAR32_T.
2020-05-09 Bruno Haible <bruno@clisp.org>
Macro tweaks.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Correct config.h comment.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Correct indentation.
2020-05-08 Bruno Haible <bruno@clisp.org>
c32rtomb: Avoid compilation failure on Haiku.
* m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Test for c32rtomb without excluding
inline definitions.
* doc/posix-functions/c32rtomb.texi: Mention the Haiku problem.
2020-05-08 Bruno Haible <bruno@clisp.org>
mbrtoc32: Avoid compilation failure on Haiku.
* m4/mbrtoc32.m4 (gl_CHECK_FUNC_MBRTOC32): New macro.
(gl_FUNC_MBRTOC32, gl_MBRTOC32_SANITYCHECK): Use it instead of
AC_CHECK_FUNCS_ONCE.
* doc/posix-functions/mbrtoc32.texi: Mention the Haiku problem.
2020-05-08 Bruno Haible <bruno@clisp.org>
limits-h: Define LONG_BIT correctly on Haiku/x86_64.
* lib/limits.in.h: Define and test _GL_ALREADY_INCLUDING_LIMITS_H.
2020-05-08 Bruno Haible <bruno@clisp.org>
list: Update documentation.
Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00062.html>.
* doc/containers.texi (Container data types): Document the new list
operations and their complexity.
2020-05-08 Bruno Haible <bruno@clisp.org>
ignore-value tests: Use module 'attribute'.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Fix a typo.
* tests/test-ignore-value.c: Include attribute.h.
(_GL_ATTRIBUTE_RETURN_CHECK): Remove macro. Use NODISCARD instead.
* modules/ignore-value-tests (Depends-on): Add attribute.
2020-05-08 Bruno Haible <bruno@clisp.org>
uniname/uniname: Use module 'attribute'.
* lib/uniname/gen-uninames.lisp: Emit a reference to ATTRIBUTE_PACKED.
* lib/uniname/uninames.h: Regenerated.
* lib/uniname/uniname.c: Include attribute.h.
* modules/uniname/uniname (Depends-on): Add attribute.
2020-05-08 Bruno Haible <bruno@clisp.org>
c32rtomb: Use module 'attribute'.
* lib/c32rtomb.c: Include attribute.h.
(FALLTHROUGH): Remove macro.
* modules/c32rtomb (Depends-on): Add attribute.
2020-05-08 Bruno Haible <bruno@clisp.org>
xsize: Use module 'attribute'.
* lib/xsize.h: Include attribute.h. Use ATTRIBUTE_PURE.
* modules/xsize (Depends-on): Add attribute.
2020-05-06 Paul Eggert <eggert@cs.ucla.edu>
* m4/gnulib-common.m4 (gl_COMMON_BODY): Minor style fixes.
* lib/attribute.h: Minor style fixes.
Fix version-etc glitch on OpenIndiana
Problem reported by Mats Erik Andersson in:
https://lists.gnu.org/r/bug-gnulib/2020-05/msg00067.html
* lib/version-etc.h (_GL_ATTRIBUTE_SENTINEL): Remove defn
that now clashes with gnulib-common.h. All uses changed.
2020-05-03 Paul Eggert <eggert@cs.ucla.edu>
attribute: new module
This simplifies use of GCC and C2x attributes like ‘deprecated’.
* MODULES.html.sh: Add attribute.
* doc/attribute.texi, lib/attribute.h, modules/attribute: New files.
* doc/gnulib.texi (Particular Modules): Add Attributes.
* lib/backupfile.c, lib/fnmatch.c, lib/freopen-safer.c:
* lib/mbrtoc32.c, lib/mbrtowc.c, lib/nstrftime.c, lib/quotearg.c:
* lib/savewd.c, lib/unistr/u8-uctomb-aux.c, lib/unistr/u8-uctomb.c:
* lib/vasnprintf.c:
Include attribute.h, and let it define FALLTHROUGH.
* lib/bitset/base.h, lib/c-stack.c (__attribute__): Remove macro.
* lib/bitset/base.h (ATTRIBUTE_UNUSED): Define in terms of
_GL_ATTRIBUTE_MAYBE_UNUSED, for forwards compatibility to C2x.
* lib/dfa.c (FALLTHROUGH): Define consistently with gl_COMMON_BODY.
This is a copy since Gawk doesn’t use Gnulib.
* lib/di-set.h (_GL_ATTRIBUTE_NONNULL): Remove definition that
is incompatible with gl_COMMON_BODY’s. All uses changed.
* lib/fts.c: Include attribte.h, for FALLTHROUGH.
Keep the existing FALLTHROUGH definition since Glibc might use it,
and it does no harm to Gnulib’s FALLTHROUGH.
* lib/fts_.h, lib/inttostr.h:
(__GNUC_PREREQ): Remove; no longer needed.
(__attribute_warn_unused_result__): Remove. All uses
replaced by _GL_ATTRIBUTE_NODISCARD.
* lib/gl_list.h, lib/gl_map.h, lib/gl_omap.h, lib/gl_oset.h:
* lib/gl_set.h: Prefer _GL_ATTRIBUTE_NODISCARD to an ifdeffed
__attribute__ ((__warn_unused_result__)), for forward
compatibility to C2x.
* lib/hash.h (_GL_ATTRIBUTE_WUR): Remove. All uses replaced by
_GL_ATTRIBUTE_NODISCARD.
(_GL_ATTRIBUTE_DEPRECATED): Remove, since gl_COMMON_BODY defines it.
* lib/ino-map.h (_GL_ATTRIBUTE_NONNULL): Remove. All uses
replaced by gl_COMMON_BODY’s implementation, which has a
slightly different signature.
* lib/safe-alloc.h (_GL_ATTRIBUTE_RETURN_CHECK):
Remove. All uses replaced by _GL_ATTRIBUTE_NODISCARD.
* lib/unused-parameter.h (_GL_UNUSED_PARAMETER):
Define in terms of _GL_ATTRIBUTE_MAYBE_UNUSED.
No doubt all uses should be replaced, at some point.
* m4/gnulib-common.m4 (_GL_GNUC_PREREQ): New macro.
(_Noreturn): Use it.
(_GL_HAS_ATTRIBUTE, _GL_ATTRIBUTE_ALLOC_SIZE)
(_GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL)
(_GL_ATTRIBUTE_COLD)
(_GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR)
(_GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE)
(_GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT)
(_GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MAY_ALIAS)
(_GL_ATTRIBUTE_MAYBE_UNUSED)
(_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE)
(_GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_NONSTRING)
(_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE)
(_GL_ATTRIBUTE_RETURNS_NONNULL)
(_GL_ATTRIBUTE_SENTINEL): New macros.
* modules/backup-rename, modules/backupfile, modules/c-vasnprintf:
* modules/fnmatch, modules/freopen-safer, modules/fts:
* modules/mbrtoc32, modules/mbrtowc, modules/nstrftime:
* modules/quotearg, modules/savewd:
* modules/unistdio/u16-u16-vasnprintf:
* modules/unistdio/u16-vasnprintf:
* modules/unistdio/u32-u32-vasnprintf:
* modules/unistdio/u32-vasnprintf:
* modules/unistdio/u8-u8-vasnprintf:
* modules/unistdio/u8-vasnprintf:
* modules/unistdio/ulc-vasnprintf:
* modules/unistr/u8-uctomb, modules/vasnprintf:
(Depends-on:): Add attribute module.
2020-05-03 Bruno Haible <bruno@clisp.org>
bison: Fix today's commit.
* m4/bison.m4 (gl_PROG_BISON): Set ac_verc_fail to 'yes', not 'true'.
2020-05-03 Bruno Haible <bruno@clisp.org>
list-c++: Add get_first, get_last, set_first, set_last operations.
* lib/gl_list.hh (class gl_List): Add methods get_first, get_last,
set_first, set_last.
* lib/gl_list.h: Tweak comments.
2020-05-03 Akim Demaille <akim@lrde.epita.fr>
bison: rely on bison's %require to check a version requirement
See https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00021.html.
* m4/bison.m4 (gl_PROG_BISON): Let bison itself decide if it it recent
enough of not.
So far it is the only know Yacc tool that supports '%require'.
Other yaccs will actually even choke on seeing the -o option after the
input file name.
* m4/parse-datetime.m4: Simplify gl_PROG_BISON invocation.
2020-05-02 Bruno Haible <bruno@clisp.org>
list: Add get_first, get_last, set_first, set_last operations.
* lib/gl_list.h (gl_list_get_first, gl_list_get_last,
gl_list_nx_set_first, gl_list_nx_set_last): New functions.
* lib/gl_xlist.h (gl_list_set_first, gl_list_set_last): New functions.
2020-05-02 Bruno Haible <bruno@clisp.org>
list: Remove redundant code for remove_first and remove_last operations.
* lib/gl_list.h (struct gl_list_implementation): Remove fields
remove_first, remove_last.
(gl_list_remove_first, gl_list_remove_last): Implement in a generic way.
* lib/gl_array_list.c: Revert last change.
* lib/gl_carray_list.c: Likewise.
* lib/gl_anylinked_list2.h: Likewise.
* lib/gl_linked_list.c: Likewise.
* lib/gl_linkedhash_list.c: Likewise.
* lib/gl_anytree_list2.h: Likewise.
* lib/gl_avltree_list.c: Likewise.
* lib/gl_avltreehash_list.c: Likewise.
* lib/gl_rbtree_list.c: Likewise.
* lib/gl_rbtreehash_list.c: Likewise.
* lib/gl_sublist.c: Likewise.
2020-05-02 Bruno Haible <bruno@clisp.org>
bison-i18n: Add support for cross-compilation.
Reported by Hongxu Jia <hongxu.jia@windriver.com> in
<https://lists.gnu.org/archive/html/bison-patches/2016-02/msg00000.html>
via Akim Demaille <akim@lrde.epita.fr>.
* m4/bison-i18n.m4 (BISON_I18N): Accept a configure option
--with-bison-prefix=PREFIX and use it to determine BISON_LOCALEDIR.
Don't use bison's --print-localedir option when cross-compiling.
Also, fix an error message and a comment.
2020-05-01 Bruno Haible <bruno@clisp.org>
list: Add remove_first and remove_last operations.
Suggested by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-04/msg00092.html>.
* lib/gl_list.h (struct gl_list_implementation): Add fields
remove_first, remove_last.
(gl_list_remove_first, gl_list_remove_last): New functions.
* lib/gl_array_list.c (gl_array_remove_first, gl_array_remove_last): New
functions, based on gl_array_remove_at.
(gl_array_list_implementation): Implement the new operations.
* lib/gl_carray_list.c (gl_carray_remove_first, gl_carray_remove_last):
New functions, based on gl_carray_remove_at.
(gl_carray_list_implementation): Implement the new operations.
* lib/gl_anylinked_list2.h (gl_linked_remove_first,
gl_linked_remove_last): New functions, based on gl_linked_remove_at.
* lib/gl_linked_list.c (gl_linked_list_implementation): Implement the
new operations.
* lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation):
Likewise.
* lib/gl_anytree_list2.h (gl_tree_remove_first, gl_tree_remove_last):
New functions, based on gl_tree_remove_at.
* lib/gl_avltree_list.c (gl_avltree_list_implementation): Implement the
new operations.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation):
Likewise.
* lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Likewise.
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation):
Likewise.
* lib/gl_sublist.c (gl_sublist_remove_first, gl_sublist_remove_last):
New functions, based on gl_sublist_remove_at.
(gl_sublist_list_implementation): Implement the new operations.
* lib/gl_list.hh (class gl_List): Add methods remove_first,
remove_last.
* tests/test-array_list.c (main): Test also gl_list_remove_first and
gl_list_remove_last.
* tests/test-avltree_list.c (main): Likewise.
* tests/test-avltreehash_list.c (main): Likewise.
* tests/test-carray_list.c (main): Likewise.
* tests/test-linked_list.c (main): Likewise.
* tests/test-linkedhash_list.c (main): Likewise.
* tests/test-rbtree_list.c (main): Likewise.
* tests/test-rbtreehash_list.c (main): Likewise.
2020-05-01 Bruno Haible <bruno@clisp.org>
parse-datetime: Fix a build failure with an older bison version.
* modules/parse-datetime (Makefile.am): Don't do the post-processing of
parse-datetime.tab.c if a suitable version of bison was not found.
2020-05-01 Bruno Haible <bruno@clisp.org>
bison: New module.
* m4/bison.m4 (gl_PROG_BISON): New macro, extracted from
m4/parse-datetime.m4.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Invoke gl_PROG_BISON.
* modules/bison: New file.
* modules/parse-datetime (Files): Remove m4/bison.m4.
(Depends-on): Add bison.
2020-05-01 Jose E. Marchesi <jemarch@gnu.org>
Update users.txt.
* users.txt: Add poke.
2020-04-28 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir tests: Enhance test.
* tests/test-posix_spawn5.c: Include findprog.h.
(test): New function, extracted from main.
(main): Invoke it. Also, invoke it with a program name such as
"bin/pwd".
* modules/posix_spawn_file_actions_addfchdir-tests (Depends-on): Add
findprog.
2020-04-28 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addchdir tests: Enhance test.
* tests/test-posix_spawn4.c: Include findprog.h.
(test): New function, extracted from main.
(main): Invoke it. Also, invoke it with a program name such as
"bin/pwd".
* modules/posix_spawn_file_actions_addchdir-tests (Depends-on): Add
findprog.
2020-04-28 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_destroy: Fix a crash (bug from 2019-06-10).
* lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Don't
access elements of the wrong union member.
2020-04-27 Bruno Haible <bruno@clisp.org>
getdate: Remove deprecated module.
* modules/getdate: Remove file.
* doc/getdate.texi: Remove file.
* lib/getdate.h: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
realloc: Remove deprecated module.
* modules/realloc: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
calloc: Remove deprecated module.
* modules/calloc: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
malloc: Remove deprecated module.
* modules/malloc: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
fnmatch-posix: Remove deprecated module.
* modules/fnmatch-posix: Remove file.
* MODULES.html.sh (Enhancements for POSIX:2008 functions): Update.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
pipe: Remove deprecated module.
* modules/pipe: Remove file.
* lib/pipe.h: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
getopt: Remove deprecated module.
* modules/getopt: Remove file.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
remove-dest-slash: Remove deprecated module.
* modules/rename-dest-slash: Remove file.
* MODULES.html.sh (Compatibility checks for POSIX:2008 functions):
Update.
* NEWS: Mention the removal.
2020-04-27 Bruno Haible <bruno@clisp.org>
unictype/bidicategory-*: Remove deprecated modules.
* modules/unictype/bidicategory-all: Remove file.
* modules/unictype/bidicategory-byname: Remove file.
* modules/unictype/bidicategory-name: Remove file.
* modules/unictype/bidicategory-of: Remove file.
* modules/unictype/bidicategory-test: Remove file.
* MODULES.html.sh (Unicode string functions): Update.
* NEWS: Mention the removals.
2020-04-25 Paul Eggert <eggert@cs.ucla.edu>
Tune fts for FTS_LOGICAL+FTS_NOSTAT
From a suggestion by Askar Safin in:
https://lists.gnu.org/r/bug-gnulib/2020-04/msg00074.html
* lib/fts.c (fts_build): If file types are known, optimize
FTS_LOGICAL+FTS_NOSTAT for non-symlinks and non-directories the
same way that we already optimize FTS_PHYSICAL+FTS_NOSTAT for
non-directories.
2020-04-19 Bruno Haible <bruno@clisp.org>
vasnprintf: Add support for printing wide characters using escapes.
* lib/vasnprintf.c (ENABLE_WCHAR_FALLBACK): Document optional macro.
(wctomb_fallback): New function.
(local_wctomb): New function.
(local_wcrtomb): New function or macro.
(MAX_ROOM_NEEDED): Adjust estimate for %lc.
(VASNPRINTF): Simplify %ls code by use of local_wcrtomb. Add code for
%lc.
2020-04-15 Paul Eggert <eggert@cs.ucla.edu>
fts: remove NOSTAT_LEAF_OPTIMIZATION
It caused ‘find’ and ‘du’ to dump core, and it was useful
only for obsolescent Linux filesystems anyway. Problem reported in:
https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html
Quite possibly there is still a serious underlying fts bug with
tight-loop-check and mutating file systems, but if so this patch
should cause the bug to be triggered less often.
* lib/fts.c (enum leaf_optimization): Remove
NOSTAT_LEAF_OPTIMIZATION, as it’s problematic.
(S_MAGIC_REISERFS, S_MAGIC_XFS): Remove; no longer needed.
(leaf_optimization): Remove special cases for ReiserFS and XFS.
(fts_read): Remove NOSTAT_LEAF_OPTIMIZATION code.
* lib/fts_.h (struct _ftsent.fts_n_dirs_remaining):
Remove. All uses removed.
2020-04-13 Bastien Roucariès <rouca@debian.org>
explicit_bzero: Improve code style.
* lib/explicit_bzero.c (explicit_bzero): Use '\0' instead of 0.
2020-04-13 Bastien Roucariès <rouca@debian.org>
explicit_bzero: On native Windows, use SecureZeroMemory().
* lib/explicit_bzero.c: Include <windows.h>.
(explicit_bzero): On native Windows, use SecureZeroMemory.
2020-04-13 Bastien Roucariès <rouca@debian.org>
explicit_bzero: Use memset_s() when available.
* lib/explicit_bzero.c (__STDC_WANT_LIB_EXT1__): Define.
(explicit_bzero): Use memset_s when available.
* m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Test for memset_s.
2020-04-13 Bastien Roucariès <rouca@debian.org>
explicit_bzero tests: Fix test failure on OpenBSD 6.5.
* tests/test-explicit_bzero.c (test_heap): Handle implementations of
free() that overwrite the memory with canaries.
2020-04-13 Akim Demaille <akim@lrde.epita.fr>
bootstrap: recommend git submodule update --init
Reported by Bruno Haible.
<https://lists.gnu.org/r/bug-gnulib/2020-03/msg00101.html>
* build-aux/bootstrap: recommand "git submodule update --init"
rather than "git submodule init".
2020-04-12 Bruno Haible <bruno@clisp.org>
explicit_bzero: Add tests.
* tests/test-explicit_bzero.c: New file.
* modules/explicit_bzero-tests: New file.
2020-04-11 Bruno Haible <bruno@clisp.org>
explicit_bzero: Relicense under LGPLv2+.
Approved by Paul Eggert.
* modules/explicit_bzero (License): Change to LGPLv2+.
2020-04-10 Bruno Haible <bruno@clisp.org>
findprog, relocatable-prog: Ignore directories during PATH search.
Reported by Frederick Eaton via Dmitry Goncharov in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00003.html>.
* lib/findprog.c (find_in_path): When the file found in a PATH element
is a directory, continue searching.
* modules/findprog (Depends-on): Add sys_stat, stat.
* modules/findprog-lgpl (Depends-on): Likewise.
* lib/progreloc.c (maybe_executable): When the file found in a PATH
element is a directory, continue searching.
* lib/relocwrapper.c: Update comments.
* modules/relocatable-prog-wrapper (Files): Add m4/largefile.m4.
(configure.ac-early): New section.
2020-04-10 Bruno Haible <bruno@clisp.org>
MODULES.html.sh: Support for reproducible builds from git-less tarballs.
Reported by Bernhard M. Wiedemann <bwiedemann@suse.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00061.html>.
* MODULES.html.sh: In a git-less tarball, use the date of the first
ChangeLog entry.
2020-04-04 Bruno Haible <bruno@clisp.org>
Fix comments: The gettext library is under LGPL 2.1, not LGPL 2.0.
* m4/gettext.m4: Fix comments regarding the gettext library.
* m4/intl-thread-locale.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/lcmessage.m4: Likewise.
* m4/nls.m4: Likewise.
* m4/po.m4: Likewise.
* m4/progtest.m4: Likewise.
2020-04-04 Jim Meyering <meyering@fb.com>
maint: remove a stray inter-word space in a 6x-repeated comment
Induce the changes by running this:
re='by perl'; git grep -l "$re"|xargs perl -pi -e "s/$re/by perl/"
* build-aux/announce-gen: Change "by perl" to "by perl".
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/prefix-gnulib-mk: Likewise.
* build-aux/update-copyright: Likewise.
* build-aux/useless-if-before-free: Likewise.
* tests/test-update-copyright.sh: Likewise.
2020-03-28 Bruno Haible <bruno@clisp.org>
Use module 'filename' instead of module 'dosname'.
* lib/at-func.c: Include filename.h instead of dosname.h.
* lib/unlinkat.c: Likewise.
* modules/areadlinkat (Depends-on): Add filename. Remove dosname.
* modules/areadlinkat-with-size (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchmodat (Depends-on): Likewise.
* modules/fchownat (Depends-on): Likewise.
* modules/fstatat (Depends-on): Likewise.
* modules/mkdirat (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/selinux-at (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/unlinkat (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* lib/at-func2.c: Include filename.h instead of dosname.h.
* modules/linkat (Depends-on): Add filename. Remove dosname.
* modules/renameatu (Depends-on): Likewise.
* lib/canonicalize.c: Include filename.h instead of dosname.h.
* lib/canonicalize-lgpl.c: Likewise.
* modules/canonicalize (Depends-on): Add filename.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* lib/dirname.h: Include filename.h instead of dosname.h.
* modules/dirname-lgpl (Depends-on): Add filename. Remove dosname.
* lib/fchdir.c: Include filename.h instead of dosname.h.
* modules/fchdir (Depends-on): Add filename. Remove dosname.
* lib/openat.c: Include filename.h instead of dosname.h.
* modules/openat (Depends-on): Add filename. Remove dosname.
* lib/rmdir.c: Include filename.h instead of dosname.h.
* modules/rmdir (Depends-on): Add filename. Remove dosname.
* lib/savewd.c: Include filename.h instead of dosname.h.
* modules/savewd (Depends-on): Add filename. Remove dosname.
* lib/unlink.c: Include filename.h instead of dosname.h.
* modules/unlink (Depends-on): Add filename. Remove dosname.
* modules/relocatable-prog-wrapper (Depends-on): Add filename.
* lib/relocwrapper.c: Update comments.
* modules/lstat (Depends-on): Remove dosname.
2020-03-28 Bruno Haible <bruno@clisp.org>
dosname: Redirect to 'filename'.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00042.html>.
* lib/dosname.h: Remove all definitions. Just include filename.h.
* modules/dosname (Status, Notice): Mark as deprecated.
(Depends-on): Add 'filename'.
2020-03-28 Bruno Haible <bruno@clisp.org>
dosname: Change IS_RELATIVE_FILE_NAME.
* lib/dosname.h (IS_RELATIVE_FILE_NAME): On native Windows, OS/2, DOS,
change the definition so that IS_RELATIVE_FILE_NAME("c:") is false.
* NEWS: Mention the change.
2020-03-28 Bruno Haible <bruno@clisp.org>
filename: Copy some definitions from module 'dosname'.
* lib/filename.h: Include <string.h>, for IS_FILE_NAME_WITH_DIR.
(HAS_DEVICE): Document macro.
(FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): New macro.
(IS_ABSOLUTE_FILE_NAME): Consider
FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE.
(IS_RELATIVE_FILE_NAME, IS_FILE_NAME_WITH_DIR): New macros.
(IS_ABSOLUTE_PATH, IS_PATH_WITH_DIR): Define as deprecated aliases.
* lib/relocatable.c (IS_FILE_NAME_WITH_DIR): Renamed from
IS_PATH_WITH_DIR.
(DllMain): Update.
* lib/progreloc.c (IS_FILE_NAME_WITH_DIR): Renamed from
IS_PATH_WITH_DIR.
(find_executable): Update.
* NEWS: Document the deprecations.
2020-03-25 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix: port __GETOPT_PREFIX to macOS
* lib/getopt-pfx-core.h (_GETOPT) [__APPLE__ && __GETOPT_PREFIX]:
Define to work around a problem with asm on macOS (Bug#40205).
2020-03-22 Bruno Haible <bruno@clisp.org>
MODULES.html.sh: Add support for reproducible builds.
Reported by Bernhard M. Wiedemann <bwiedemann@suse.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00024.html>.
* MODULES.html.sh: Print the date of the last gnulib commit, not the
current date.
2020-03-22 Bruno Haible <bruno@clisp.org>
Several modules: Depend on stat.
* modules/acl-permissions (Depends-on): Add stat.
* modules/canonicalize (Depends-on): Likewise.
* modules/file-has-acl (Depends-on): Likewise.
* modules/fstat (Depends-on): Likewise.
* modules/fstatat (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/javacomp (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/pt_chown (Depends-on): Likewise.
* modules/ptsname_r (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/renameatu (Depends-on): Likewise.
* modules/tmpdir (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
* modules/relocatable-prog-wrapper (Depends-on): Add largefile.
* modules/same (Depends-on): Remove stat.
2020-03-22 Bruno Haible <bruno@clisp.org>
acl-permissions: Improve autoconf macro.
* m4/acl.m4 (gl_FUNC_ACL): Test the value of gl_need_lib_has_acl
more reliably.
2020-03-22 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix module description.
* modules/file-has-acl (Files): Add lib/acl-internal.h, m4/acl.m4.
(Depends-on): Depend on acl-permissions unconditionally.
2020-03-21 Bruno Haible <bruno@clisp.org>
unlink: Ensure errno also on native Windows.
* modules/unlink (Depends-on): Add malloc-posix.
2020-03-21 Paul Eggert <eggert@cs.ucla.edu>
unlink: fix malloc errno typo
Problem reported by Tim Rühsen in:
https://lists.gnu.org/r/bug-gnulib/2020-03/msg00044.html
* lib/unlink.c (rpl_unlink): Don’t mask malloc errno.
2020-03-16 Bruno Haible <bruno@clisp.org>
*printf-posix: Fix m4 error (regression from 2020-03-08).
* m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): Enable interpretation of
brackets in AC_COMPILE_IFELSE invocation.
2020-03-08 Bruno Haible <bruno@clisp.org>
crypto/af_alg, renameatu, same, term-style-control: Depend on fstat.
* modules/crypto/af_alg (Depends-on): Add fstat.
* modules/renameatu (Depends-on): Likewise.
* modules/same (Depends-on): Likewise.
* modules/term-style-control (Depends-on): Likewise.
2020-03-08 Bruno Haible <bruno@clisp.org>
*printf-posix: Document why it's overridden on some glibc systems.
Reported by Adrian Bunk <bunk@stusta.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00011.html>.
* doc/posix-functions/*printf.texi: Document the problem with the %n
directive on some glibc systems.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N): Adjust
the cross-compilation guesses accordingly.
2020-03-07 Paul Eggert <eggert@cs.ucla.edu>
open, openat: port to (O_RDWR | O_RDONLY) != 0
Potential portability problem reported by Dan Gohman in:
https://lists.gnu.org/r/bug-gnulib/2020-03/msg00000.html
* lib/open.c (open):
* lib/openat.c (rpl_openat):
Don’t assume O_RDONLY is disjoint from O_RDWR.
2020-03-07 Bruno Haible <bruno@clisp.org>
openat: Fix theoretically possible issue on GNU/Hurd.
Reported by Dan Gohman <sunfish@mozilla.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00000.html>.
* lib/openat.c (rpl_openat): When testing whether flags contains O_RDWR,
ignore the bits that are also set in O_RDONLY.
2020-02-24 Bruno Haible <bruno@clisp.org>
getloadavg: Don't use /usr/local when cross-compiling on AIX.
Reported by Jens Rehsack <sno@netbsd.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00136.html>.
* m4/getloadavg.m4 (gl_GETLOADAVG): Don't look in /usr/local/lib when
cross-compiling.
2020-02-24 Bruno Haible <bruno@clisp.org>
fcntl: Add witness of gnulib override.
Reported by Jens Rehsack <sno@netbsd.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00137.html>.
* lib/fcntl.in.h (GNULIB_defined_rpl_fcntl, GNULIB_defined_fcntl): New
macros.
2020-02-23 Assaf Gordon <assafgordon@gmail.com>
Update users.txt.
* users.txt: Add datamash, time.
2020-02-23 Bruno Haible <bruno@clisp.org>
uni*/base: Use 'restrict'.
* lib/unitypes.in.h (_UC_RESTRICT): New macro, based on '_Restrict_'
from lib/regex.h.
* lib/unistr.in.h (u8_cpy, u16_cpy, u32_cpy, u8_strcpy, u16_strcpy,
u32_strcpy, u8_stpcpy, u16_stpcpy, u32_stpcpy, u8_strncpy, u16_strncpy,
u32_strncpy, u8_stpncpy, u16_stpncpy, u32_stpncpy, u8_strcat,
u16_strcat, u32_strcat, u8_strncat, u16_strncat, u32_strncat, u8_strtok,
u16_strtok, u32_strtok): Use '_UC_RESTRICT'.
* lib/uninorm.in.h (u8_normalize, u16_normalize, u32_normalize): Use
'_UC_RESTRICT'.
* lib/uniconv.in.h (u8_conv_to_encoding, u16_conv_to_encoding,
u32_conv_to_encoding): Use '_UC_RESTRICT'.
* lib/unicase.in.h (u8_toupper, u16_toupper, u32_toupper, u8_tolower,
u16_tolower, u32_tolower, u8_totitle, u16_totitle, u32_totitle,
u8_ct_toupper, u16_ct_toupper, u32_ct_toupper, u8_ct_tolower,
u16_ct_tolower, u32_ct_tolower, u8_ct_totitle, u16_ct_totitle,
u32_ct_totitle, u8_casefold, u16_casefold, u32_casefold, u8_ct_casefold,
u16_ct_casefold, u32_ct_casefold, u8_casexfrm, u16_casexfrm,
u32_casexfrm, ulc_casexfrm): Use '_UC_RESTRICT'.
* lib/unilbrk.in.h (u8_possible_linebreaks, u16_possible_linebreaks,
u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks,
u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks): Use
'_UC_RESTRICT'.
* lib/uniwbrk.in.h (ulc_wordbreaks): Use '_UC_RESTRICT'.
* lib/unistdio.in.h (ulc_sprintf, ulc_snprintf, ulc_asnprintf,
ulc_vsprintf, ulc_vsnprintf, ulc_vasnprintf, u8_u8_sprintf,
u8_u8_snprintf, u8_u8_asnprintf, u8_u8_vsprintf, u8_u8_vsnprintf,
u8_u8_vasnprintf, u16_u16_sprintf, u16_u16_snprintf, u16_u16_asnprintf,
u16_u16_vsprintf, u16_u16_vsnprintf, u16_u16_vasnprintf,
u32_u32_sprintf, u32_u32_snprintf, u32_u32_asnprintf, u32_u32_vsprintf,
u32_u32_vsnprintf, u32_u32_vasnprintf): Use '_UC_RESTRICT'.
2020-02-23 Bruno Haible <bruno@clisp.org>
glob, spawn: Use improved '_Restrict_' definition.
* lib/glob.in.h (_Restrict_): Use same definition as in lib/regex.h.
* lib/spawn.in.h (_Restrict_, _Restrict_arr_): Likewise.
2020-02-23 Bruno Haible <bruno@clisp.org>
crypto/gc: Use 'restrict'.
* lib/gc.h (gc_pbkdf2_hmac, gc_pbkdf2_sha1): Use 'restrict'.
* m4/gc.m4 (gl_GC): Require AC_C_RESTRICT.
crypto/hmac-*: Use 'restrict'.
* lib/hmac.h (hmac_md5, hmac_sha1, hmac_sha256, hmac_sha512): Use
'restrict'.
* modules/crypto/hmac-md5 (configure.ac): Require AC_C_RESTRICT.
* modules/crypto/hmac-sha1 (configure.ac): Likewise.
* modules/crypto/hmac-sha256 (configure.ac): Likewise.
* modules/crypto/hmac-sha512 (configure.ac): Likewise.
crypto/sm3: Use 'restrict'.
* lib/sm3.h (sm3_finish_ctx, sm3_read_ctx, sm3_buffer): Use 'restrict'.
* m4/sm3.m4 (gl_SM3): Require AC_C_RESTRICT.
crypto/*-buffer: Use 'restrict'.
* lib/gl_openssl.h (GL_CRYPTO_FN (_finish_ctx), GL_CRYPTO_FN (_buffer),
GL_CRYPTO_FN (_read_ctx)): Use 'restrict'.
crypto/sha512-buffer: Use 'restrict'.
* lib/sha512.h (sha512_finish_ctx, sha384_finish_ctx, sha512_read_ctx,
sha384_read_ctx, sha512_buffer, sha384_buffer): Use 'restrict'.
* modules/crypto/sha512-buffer (configure.ac): Require AC_C_RESTRICT.
crypto/sha256-buffer: Use 'restrict'.
* lib/sha256.h (sha256_finish_ctx, sha224_finish_ctx, sha256_read_ctx,
sha224_read_ctx, sha256_buffer, sha224_buffer): Use 'restrict'.
* modules/crypto/sha256-buffer (configure.ac): Require AC_C_RESTRICT.
crypto/sha1-buffer: Use 'restrict'.
* lib/sha1.h (sha1_finish_ctx, sha1_read_ctx, sha1_buffer): Use
'restrict'.
* modules/crypto/sha1-buffer (configure.ac): Require AC_C_RESTRICT.
crypto/md5-buffer: Use 'restrict'.
* lib/md5.h (__md5_finish_ctx, __md5_read_ctx, __md5_buffer): Use
'restrict'.
* modules/crypto/md5-buffer (configure.ac): Require AC_C_RESTRICT.
crypto/md4: Use 'restrict'.
* lib/md4.h (md4_finish_ctx, md4_read_ctx, md4_buffer): Use 'restrict'.
* modules/crypto/md4 (configure.ac): Require AC_C_RESTRICT.
crypto/md2: Use 'restrict'.
* lib/md2.h (md2_finish_ctx, md2_read_ctx, md2_buffer): Use 'restrict'.
* modules/crypto/md2 (configure.ac): Require AC_C_RESTRICT.
crypto/rijndael: Use 'restrict'.
* lib/rijndael-api-fst.h (rijndaelBlockEncrypt, rijndaelPadEncrypt,
rijndaelBlockDecrypt, rijndaelPadDecrypt): Use 'restrict'.
* modules/crypto/rijndael (configure.ac): Require AC_C_RESTRICT.
crypto/arctwo: Use 'restrict'.
* lib/arctwo.h (arctwo_encrypt, arctwo_decrypt): Use 'restrict'.
* modules/crypto/arctwo (configure.ac): Require AC_C_RESTRICT.
crypto/arcfour: Use 'restrict'.
* lib/arcfour.h (arcfour_stream): Use 'restrict'.
* modules/crypto/arcfour (configure.ac): Require AC_C_RESTRICT.
careadlinkat: Use 'restrict'.
* lib/careadlinkat.h (careadlinkat): Use 'restrict'.
* modules/careadlinkat (configure.ac): Require AC_C_RESTRICT.
* modules/relocatable-prog-wrapper (configure.ac): Likewise.
regex-quote: Use 'restrict'.
* lib/regex-quote.h (regex_quote_copy): Use 'restrict'.
* modules/regex-quote (configure.ac): Require AC_C_RESTRICT.
system-quote: Use 'restrict'.
* lib/system-quote.h (system_quote_copy): Use 'restrict'.
* modules/system-quote (configure.ac): Require AC_C_RESTRICT.
sh-quote: Use 'restrict'.
* lib/sh-quote.h (shell_quote_copy): Use 'restrict'.
* modules/sh-quote (configure.ac): Require AC_C_RESTRICT.
quotearg: Use 'restrict'.
* lib/quotearg.h (quotearg_buffer): Use 'restrict'.
* m4/quotearg.m4 (gl_QUOTEARG): Require AC_C_RESTRICT.
parse-datetime: Use 'restrict'.
* lib/parse-datetime.h (parse_datetime, parse_datetime2): Use
'restrict'.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Require AC_C_RESTRICT.
nstrftime: Use 'restrict'.
* lib/strftime.h (nstrftime): Use 'restrict'.
* m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Require AC_C_RESTRICT.
mbstok_r: Use 'restrict'.
* lib/string.in.h (mbstok_r): Use 'restrict'.
xmemcoll: Use 'restrict'.
* lib/xmemcoll.h (xmemcoll): Use 'restrict'.
* modules/xmemcoll (configure.ac): Require AC_C_RESTRICT.
memcoll: Use 'restrict'.
* lib/memcoll.h (memcoll): Use 'restrict'.
* m4/memcoll.m4 (gl_MEMCOLL): Require AC_C_RESTRICT.
vasnprintf: Use 'restrict'.
* lib/vasnprintf.h (asnprintf, vasnprintf): Use 'restrict'.
* modules/vasnprintf (configure.ac): Require AC_C_RESTRICT.
c-vasnprintf: Use 'restrict'.
* lib/c-vasnprintf.h (c_vasnprintf): Use 'restrict'.
* modules/c-vasnprintf (configure.ac): Require AC_C_RESTRICT.
c-vsnprintf: Use 'restrict'.
* lib/c-vsnprintf.h (c_vsnprintf): Use 'restrict'.
* modules/c-vsnprintf (configure.ac): Require AC_C_RESTRICT.
c-snprintf: Use 'restrict'.
* lib/c-snprintf.h (c_snprintf): Use 'restrict'.
* modules/c-snprintf (configure.ac): Require AC_C_RESTRICT.
astrxfrm: Use 'restrict'.
* lib/astrxfrm.h (astrxfrm): Use 'restrict'.
* modules/astrxfrm (configure.ac): Require AC_C_RESTRICT.
amemxfrm: Use 'restrict'.
* lib/amemxfrm.h (amemxfrm): Use 'restrict'.
* modules/amemxfrm (configure.ac): Require AC_C_RESTRICT.
2020-02-22 Paul Eggert <eggert@cs.ucla.edu>
fchmodat, lchmod: simplify
It appears that we may have overengineered lchmod and fchmodat,
in that the code was prepared for some hypothetical platforms but
was so complicated that it was hard to understand. I attempted to
improve the situation by simplifying the code when this
simplification should not hurt on real platforms; we can re-add
complexity later to port to platforms I didn’t know about.
* lib/fchmodat.c (fchmodat):
* lib/lchmod.c (lchmod):
Put the ‘defined __linux__ || defined __ANDROID__’ #ifdef only
around the /proc code that needs it.
* lib/fchmodat.c (fchmodat): Coalese calls to orig_fchmodat.
* lib/lchmod.c (__need_system_sys_stat_h): Omit; no longer needed.
Do not include <config.h> twice.
(orig_lchmod) [HAVE_LCHMOD]: Remove, since we need not wrap
lchmod on any known hosts.
(lchmod): Do not defer to fchmodat, so that the lchmod module
need not depend on the fchmodat module (which is a circular
dependency). Do not use openat, since ‘open’ suffices.
Coalesce calls to lchmod/chmod.
* lib/lchmod.c, lib/sys_stat.in.h (lchmod):
* m4/sys_stat_h.m4 (REPLACE_FSTAT):
* modules/lchmod (Depends-on, configure.ac):
* modules/sys_stat (Depends-on):
Do not worry about replacing lchmod, since that shouldn’t happen.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not check for fchmodat.
Do not worry about whether lchmod works on non-symlinks,
since every known lchmod works on non-symlinks.
* modules/lchmod (Depends-on):
Remove circular dependency on fchmodat.
2020-02-22 Bruno Haible <bruno@clisp.org>
lchmod: Fix link error on Solaris 10 (regression from 2020-02-16).
* lib/lchmod.c (lchmod): Use the code with lstat and chmod also when
NEED_LCHMOD_NONSYMLINK_FIX is not defined.
2020-02-22 Bruno Haible <bruno@clisp.org>
Use 'restrict' in all POSIX function declarations.
* lib/iconv.in.h (iconv): Use 'restrict'.
* lib/inttypes.in.h (strtoimax, strtoumax): Likewise.
* lib/monetary.in.h (strfmon_l): Likewise.
* lib/pthread.in.h (pthread_create, pthread_mutex_init,
pthread_mutexattr_gettype, pthread_mutexattr_getrobust,
pthread_mutex_timedlock, pthread_rwlock_init,
pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock,
pthread_cond_init, pthread_cond_wait, pthread_cond_timedwait): Likewise.
* lib/search.in.h (tdelete): Likewise.
* lib/signal.in.h (pthread_sigmask, sigprocmask): Likewise.
* lib/stdio.in.h (dprintf, fgets, fopen, fprintf, fputs, fread, freopen,
fscanf, fwrite, getdelim, getline, printf, scanf, snprintf, sprintf,
vdprintf, vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf):
Likewise.
* lib/stdlib.in.h (mbtowc, realpath, strtod, strtold, strtoll,
strtoull): Likewise.
* lib/string.in.h (strncat): Likewise.
* lib/sys_socket.in.h (accept, getpeername, getsockname, getsockopt,
recvfrom): Likewise.
* lib/sys_stat.in.h (fstatat, lstat, stat): Likewise.
* lib/time.in.h (strftime): Likewise.
* lib/unistd.in.h (readlink, readlinkat): Likewise.
* lib/wchar.in.h (mbrtowc, mbrlen, mbsrtowcs, mbsnrtowcs, wcrtomb,
wcsrtombs, wcsnrtombs, wmemcpy, wcscpy, wcpcpy, wcsncpy, wcpncpy,
wcscat, wcsncat, wcsxfrm, wcsstr, wcstok, wcsftime): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H): Require AC_C_RESTRICT.
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Likewise.
* m4/monetary_h.m4 (gl_MONETARY_H): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Make consistent with the
other *_h.m4 files.
* m4/time_h.m4 (gl_HEADER_TIME_H): Likewise.
2020-02-22 Bruno Haible <bruno@clisp.org>
Update NEWS.
* NEWS: Mention the last change.
2020-02-22 Paul Eggert <eggert@cs.ucla.edu>
chmodat, chownat: new modules
These are split from fchmodat, fchownat. GNU Emacs needs the
POSIX-specified fchmodat, but not the gnulib-specified chmodat and
lchmodat. Split the latter two into a new module chmodat.
Similarly for fchownat. This the same basic idea for why statat
was split from fstatat on 2013-01-23.
* lib/chmodat.c, lib/openat.h (CHMODAT_INLINE):
Rename from FCHMODAT_INLINE. All uses changed.
* lib/chownat.c, lib/openat.h (CHOWNAT_INLINE):
Rename from FCHOWNAT_INLINE. All uses changed.
* lib/openat.h:
(chownat, lchownat): Define if GNULIB_CHOWNAT, not GNULIB_FCHOWNAT.
(chmodat, lchmodat): Define if GNULIB_CHMODAT, not GNULIB_FCHMODAT.
* modules/chmodat, modules/chownat, tests/test-chownat.c: New files.
* modules/fchmodat (Files:): Remove lib/fchmodat.c.
(configure.ac): Remove fchmodat module indicator.
(Makefile.am): Omit chmodat.c.
(Maintainer): Add self.
* modules/fchownat: Similarly, but for chown.
* tests/test-fchownat.c (BASE): Don't define if already defined.
(do_chown, do_lchown) [!TEST_CHOWNAT]: Test fchownat instead.
2020-02-22 Bruno Haible <bruno@clisp.org>
users.txt: Add groff.
Reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
* users.txt: Add groff.
2020-02-22 Bruno Haible <bruno@clisp.org>
gnulib-tool: Ensure copied files are writable.
Reported by Benno Fünfstück <benno.fuenfstueck@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00101.html>.
* gnulib-tool (func_ensure_writable): New function.
(func_ln_s, func_hardlink, func_lookup_file, func_import,
func_create_testdir, copy-file): Invoke it after copying a file.
2020-02-22 Bruno Haible <bruno@clisp.org>
users.txt: Update.
* users.txt: Update URLs to projects that have moved or switched to git.
Use canonical host names. Prefer gitweb over cgit. Prefer the tree view
over the summary view. Add gawk.
2020-02-21 Paul Eggert <eggert@cs.ucla.edu>
largefile: remove _DARWIN_USE_64_BIT_INODE
It’s not needed in currently-supported macOS versions, and was
problematic anyway in MacOS X 10.5 which was the only version that
could use it. Problem reported by Peter Eisentraut in:
https://lists.gnu.org/r/bug-autoconf/2020-02/msg00004.html
* m4/largefile.m4 (AC_SYS_LARGEFILE):
Don’t define _DARWIN_USE_64_BIT_INODE.
This syncs with Autoconf master.
Add ‘extern "C"’ to count-one-bits.h etc.
This ports these .h files to C++.
Problem reported by Simon Marchi in:
https://lists.gnu.org/r/bug-gnulib/2020-02/msg00110.html
* lib/count-leading-zeros.h, lib/count-one-bits.h:
* lib/count-trailing-zeros.h: Add ‘extern "C"’.
2020-02-19 Bruno Haible <bruno@clisp.org>
uninorm/decompose-internal: Avoid "no previous prototype" warning.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00105.html>.
* lib/array-mergesort.h: Accept an optional macro definition
STATIC_FROMTO.
* lib/uninorm/decompose-internal.c (STATIC_FROMTO): New macro.
2020-02-16 Bruno Haible <bruno@clisp.org>
fchmodat: Make more future-proof.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Define
NEED_FCHMODAT_NONSYMLINK_FIX.
(gl_PREREQ_FCHMODAT): New macro.
* lib/fchmodat.c (fchmodat): Test NEED_FCHMODAT_NONSYMLINK_FIX. Access
/proc only on Linux. Return EOPNOTSUPP only on Linux and on platforms
without lchmod function.
* modules/fchmodat (configure.ac): Invoke gl_PREREQ_FCHMODAT.
2020-02-16 Bruno Haible <bruno@clisp.org>
lchmod: Make more future-proof.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Define NEED_LCHMOD_NONSYMLINK_FIX.
(gl_PREREQ_LCHMOD): New macro.
* lib/lchmod.c (orig_lchmod): New function.
(lchmod): Test NEED_LCHMOD_NONSYMLINK_FIX. Access /proc only on Linux.
Return EOPNOTSUPP only on Linux and on platforms without lchmod
function.
* modules/lchmod (configure.ac): Invoke gl_PREREQ_LCHMOD.
lchmod: Fix buggy override on macOS, HP-UX (regression from 2020-02-08).
* modules/lchmod (Makefile.am): Don't add lchmod.c to lib_SOURCES.
2020-02-16 Paul Eggert <eggert@cs.ucla.edu>
xnanosleep: prefer pause, and get remaining time
Problem reported by Vladimir Panteleev in:
https://lists.gnu.org/r/bug-gnulib/2020-02/msg00052.html
* lib/xnanosleep.c: Include intprops.h, unistd.h.
(xnanosleep) [HAVE_PAUSE]: Prefer pause when sleeping infinitely.
(xnanosleep): Obtain remaining time when nanosleep is interrupted.
* m4/xnanosleep.m4 (gl_XNANOSLEEP): Check for 'pause'.
* modules/xnanosleep (Depends-on): Add intprops, unistd.
2020-02-16 Bruno Haible <bruno@clisp.org>
lchmod: Improve cross-compilation guess.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Require AC_CANONICAL_HOST. When
cross-compiling, guess depending on the platform.
2020-02-16 Bruno Haible <bruno@clisp.org>
fstrcmp: Add API to clean up resources.
Reported by Akim Demaille <akim@lrde.epita.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00080.html>.
* lib/fstrcmp.h (fstrcmp_free_resources): New declaration.
* lib/fstrcmp.c (fstrcmp_free_resources): New function.
2020-02-14 Bruno Haible <bruno@clisp.org>
wctype-h: Fix compilation errors in C++ (regression from 2020-01-25).
Reported by Christian Biesinger in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-02/msg00064.html>.
* lib/wctype.in.h (iswdigit, iswxdigit): Don't declare if the
corresponding module is not enabled.
* tests/test-wctype-h-c++.cc (iswdigit, iswxdigit): Don't check the
prototype if the corresponding module is not enabled.
2020-02-13 Paul Eggert <eggert@cs.ucla.edu>
fchmodat, lchmod: port to buggy Linux filesystems
Problem reported by Florian Weimer in:
https://www.sourceware.org/ml/libc-alpha/2020-02/msg00534.html
* lib/fchmodat.c (fchmodat):
* lib/lchmod.c (lchmod):
Don’t assume that chmod on the O_PATH-opened fd will do
the right thing on a symbolic link.
* lib/fchmodat.c (fchmodat):
Don’t attempt to special-case
any flag value other than AT_SYMLINK_NOFOLLOW.
2020-02-11 Paul Eggert <eggert@cs.ucla.edu>
lchmod: pacify Coverity CID 1491216
* lib/lchmod.c (lchmod): Redo #if nesting so that Coverity does
not complain about unreachable code at the ‘struct stat st;’
declaration.
2020-02-10 Bruno Haible <bruno@clisp.org>
copysignf: Fix link error on HP-UX with cc.
* m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Require AC_CANONICAL_HOST. On
HP-UX, set COPYSIGNF_LIBM to -lm.
2020-02-10 Bruno Haible <bruno@clisp.org>
pthread-mutex-tests, pthread-rwlock-tests: Fix link errors on HP-UX.
* modules/pthread-mutex-tests (Makefile.am): Link test-pthread-mutex
with $(LIB_SEMAPHORE).
* modules/pthread-rwlock-tests (Makefile.am): Link test-pthread-rwlock
with $(LIB_SEMAPHORE).
2020-02-10 Bruno Haible <bruno@clisp.org>
ptsname_r-tests: Avoid unused function warning.
* tests/test-ptsname_r.c: Don't include null-ptr.h if we don't need it.
2020-02-08 Bruno Haible <bruno@clisp.org>
lchmod: Add tests.
* tests/test-lchmod.c: New file.
* modules/lchmod-tests: New file.
2020-02-08 Bruno Haible <bruno@clisp.org>
lchmod: Ensure declaration on HP-UX.
* lib/sys_stat.in.h (lchown): Declare also on HP-UX.
* doc/glibc-functions/lchmod.texi: Mention the HP-UX problem.
2020-02-08 Bruno Haible <bruno@clisp.org>
fchmodat: Strengthen tests.
* tests/test-fchmodat.c (BASE): New macro.
(main): Use it, to avoid conflicts with other unit tests. Verify that
fchmodat changed the file permission bits.
2020-02-08 Bruno Haible <bruno@clisp.org>
fchmodat: Fix endless recursion on Cygwin (regression from 2020-02-07).
* lib/fchmodat.c (orig_fchmodat): Move definition to immediately after
'#undef __need_system_sys_stat_h'.
2020-02-08 Bruno Haible <bruno@clisp.org>
fchmodat: Improve cross-compilation guesses.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Require AC_CANONICAL_HOST. When
cross-compiling, guess depending on the platform.
* doc/posix-functions/fchmodat.texi: Clarify.
2020-02-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors in a testdir created with --with-c++-tests.
* lib/c++defs.h (_GL_CXXALIASWARN1_2): Do not use __typeof__ (func),
since it does not work any more with g++ >= 4.4.
2020-02-08 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.31.
* doc/glibc-functions/pthread_clockjoin_np.texi: New file.
* doc/gnulib.texi: Include it.
* doc/pastposix-functions/h_errno.texi: Update.
* doc/posix-functions/*.texi: Likewise.
2020-02-08 Kenneth D'souza <kdsouza@redhat.com>
mountlist: consider smb3 file systems as remote
* lib/mountlist.c (ME_REMOTE): Recognize file systems of type
"smb3" as remote.
2020-02-07 Paul Eggert <eggert@cs.ucla.edu>
fchmodat: AT_SYMLINK_NOFOLLOW fix for non-symlinks
Fix lchmod, and fchmodat with AT_SYMLINK_NOFOLLOW, so that
they act like chmod on non-symlinks.
* NEWS:
* doc/glibc-functions/lchmod.texi (lchmod):
* doc/posix-functions/fchmodat.texi (fchmodat):
Mention this.
* lib/fchmodat.c: Define __need_system_sys_stat_h before including
config.h, and undef it after including sys/stat.h the first time.
Include fcntl.h, stdio.h, unistd.h, intprops.h, and include
sys/stat.h a second time after defining orig_fchmodat.
(orig_fchmodat) [HAVE_FCHMODAT]: New function.
(fchmodat) [HAVE_FCHMODAT]: Work around the AT_SYMLINK_NOFOLLOW bug.
* lib/lchmod.c: New file.
* lib/sys_stat.in.h (fchmodat, lchmod):
Support replacing these functions.
* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): If fchmodat exists,
test that AT_SYMLINK_NOFOLLOW works on non-symlinks.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Check for lstat.
Test that lchmod works on non-symlinks.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS):
Default REPLACE_FCHMODAT and REPLACE_LCHMOD to 0.
* modules/fchmodat (Depends-on): Add fstatat, intprops, lchmod, unistd.
(Depends-on, configure.ac): Check REPLACE_FCHMODAT too.
* modules/lchmod (Files): Add lib/lchmod.c.
(Depends-on): Add errno, fcntl-h, fchmodat, intprops, lstat, unistd.
(configure.ac): Compile lchmod.c if needed.
(lib_SOURCES): Add lchmod.c.
* modules/sys_stat (sys/stat.h): Substitute REPLACE_FCHMODAT
and REPLACE_LCHMOD.
* tests/test-fchmodat.c: Include fcntl.h, sys/stat.h.
(main): Test fchmodat with AT_SYMLINK_NOFOLLOW on non-symlinks.
2020-02-05 Marc Dionne <marc.dionne@auristor.com> (tiny change)
mountlist: Consider AFS filesystems as remote
df --local relies on the ME_REMOTE macro to determine if a given
mount entry should be considered "local". There is special logic
for nfs and smb/cifs mounts, but /afs as mounted by OpenAFS, the
kernel's kafs module or AuriStorFS is treated as a local mount.
* lib/mountlist.c (ME_REMOTE): Treat mounts of type 'afs'
(OpenAFS, kernel kafs) and 'auristorfs' (AuriStorFS) as remote.
2020-02-04 Paul Eggert <eggert@cs.ucla.edu>
Port _Noreturn to older Clang
Problem reported by Jeffery Walton in:
https://lists.gnu.org/r/bug-gnulib/2020-02/msg00013.html
* lib/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Assume _Noreturn works in Clang 3.5 and later.
It is documented to work in Clang 3.5:
http://releases.llvm.org/3.5.0/tools/clang/docs/AttributeReference.html
and is not documented in Clang 3.4:
https://releases.llvm.org/3.4/tools/clang/docs/LanguageExtensions.html
Apple sets __clang_version__ to a different value, so use
__apple_build_version__ there. See:
https://lists.gnu.org/r/bug-gnulib/2020-02/msg00017.html
2020-02-04 Pádraig Brady <P@draigBrady.com>
test-canonicalize: avoid unused function warning
* tests/test-canonicalize.c: Protect the inclusion of null-ptr.h
with the same guard as that used to protect usage of the null_ptr
function, so that one doesn't get a -Wunused warning.
* tests/test-canonicalize-lgpl.c: Likewise.
2020-02-03 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port to Apple’s Clang variant
* lib/libc-config.h (__glibc_clang_prereq):
Port to Apple’s Clang variant, which uses a different
numbering scheme for __clang_major__.
2020-02-02 Bruno Haible <bruno@clisp.org>
Document the new modules list-c++, set-c++, oset-c++, map-c++, omap-c++.
* doc/containers.texi: Document these new modules.
2020-02-02 Bruno Haible <bruno@clisp.org>
omap-c++: Add tests.
* tests/test-omap-c++.cc: New file.
* modules/omap-c++-tests: New file.
omap-c++: New module.
* lib/gl_omap.hh: New file, based on lib/gl_omap.h.
* modules/omap-c++: New file.
2020-02-02 Bruno Haible <bruno@clisp.org>
map-c++: Add tests.
* tests/test-map-c++.cc: New file.
* modules/map-c++-tests: New file.
map-c++: New module.
* lib/gl_map.hh: New file, based on lib/gl_map.h.
* modules/map-c++: New file.
2020-02-02 Bruno Haible <bruno@clisp.org>
oset-c++: Add tests.
* tests/test-oset-c++.cc: New file.
* modules/oset-c++-tests: New file.
oset-c++: New module.
* lib/gl_oset.hh: New file, based on lib/gl_oset.h.
* modules/oset-c++: New file.
2020-02-02 Bruno Haible <bruno@clisp.org>
set-c++: Add tests.
* tests/test-set-c++.cc: New file.
* modules/set-c++-tests: New file.
set-c++: New module.
* lib/gl_set.hh: New file, based on lib/gl_set.h.
* modules/set-c++: New file.
2020-02-02 Bruno Haible <bruno@clisp.org>
list-c++: Add tests.
* tests/test-list-c++.cc: New file.
* modules/list-c++-tests: New file.
list-c++: New module.
* lib/gl_list.hh: New file, based on lib/gl_list.h.
* modules/list-c++: New file.
2020-02-02 Bruno Haible <bruno@clisp.org>
xalloc: Fix compilation error in C++ mode on FreeBSD 12.
* lib/xalloc.h (xalloc_die): Comment out 'extern' keyword before
'_Noreturn'.
* lib/sigpipe-die.h (sigpipe_die): Likewise.
2020-02-02 Pádraig Brady <P@draigBrady.com>
read-file: reduce max size from SIZE_MAX to PTRDIFF_MAX
On x86_64 with glibc-2.30, gcc 9.2 is giving:
error: argument 2 value '18446744073709551615'
exceeds maximum object size 9223372036854775807
[-Werror=alloc-size-larger-than=]
The details of this restriction are discussed at:
https://stackoverflow.com/q/42574890/4421
* lib/read-file.c: s/SIZE_MAX/PTRDIFF_MAX/
2020-02-02 Pádraig Brady <P@draigBrady.com>
sysctl.h: avoid including on glibc
* lib/nproc.c: Avoid including deprecated and unneeded header on GLIBC.
* lib/physmem.c: Likewise.
2020-02-02 Bruno Haible <bruno@clisp.org>
list, set, oset, map, omap: Avoid imperative voice in documentation.
* lib/gl_list.h: Use descriptive sentences instead of imperative voice
in the specification of functions.
* lib/gl_set.h: Likewise.
* lib/gl_oset.h: Likewise.
* lib/gl_map.h: Likewise.
* lib/gl_omap.h: Likewise.
* lib/gl_*.h: Likewise.
2020-02-01 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Set CXXFLAGS to "-g -O2" by default.
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Determine CXXFLAGS like AC_PROG_CXX
does.
2020-01-29 Bruno Haible <bruno@clisp.org>
array-map, hash-map, linkedhash-map: Fix module description.
* modules/array-map (Description): Fix description.
* modules/hash-map (Description): Likewise.
* modules/linkedhash-map (Description): Likewise.
2020-01-29 Paul Eggert <eggert@cs.ucla.edu>
dfa: do not depend on isblank
This removes a difference between Gawk dfa.c and Gnulib dfa.c.
* lib/dfa.c (isblank): Define if neither system nor Gnulib does.
* modules/dfa (Depends-on): Remove isblank.
* modules/isblank: Add a module indicator, for lib/dfa.c.
dfa: do not assume 64-bit int
Problem reported for VAX/VMS C (!) by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2020-01/msg00173.html
* lib/dfa.c (CHARCLASS_PAIR): Bring back this macro.
(CHARCLASS_WORD_BITS, charclass_word) [!UINT_LEAST64_MAX]:
Fall back to 32-bit words.
(CHARCLASS_INIT): Go back to having 8 32-bit args instead
of 4 64-bit args. All uses changed.
2020-01-27 Paul Eggert <eggert@cs.ucla.edu>
regex: remove limits-h dependency
* modules/regex (Depends-on): Remove limits-h, since the
code no longer depends on ULONG_WIDTH already being defined.
regex: port to non-GCC pre-IEC-60559
Problem reported by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2020-01/msg00154.html
* lib/regex_internal.h (ULONG_WIDTH): Make this usable in #if.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isxdigit: Add tests.
* tests/test-c32isxdigit.c: New file, based on tests/test-iswxdigit.c.
* tests/test-c32isxdigit.sh: New file.
* modules/c32isxdigit-tests: New file.
c32isxdigit: New module.
* lib/c32isxdigit.c: New file.
* modules/c32isxdigit: New file.
* doc/posix-functions/iswxdigit.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isupper: Add tests.
* tests/test-c32isupper.c: New file.
* tests/test-c32isupper.sh: New file.
* modules/c32isupper-tests: New file.
c32isupper: New module.
* lib/c32isupper.c: New file.
* modules/c32isupper: New file.
* doc/posix-functions/iswupper.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isspace: Add tests.
* tests/test-c32isspace.c: New file.
* tests/test-c32isspace.sh: New file.
* modules/c32isspace-tests: New file.
c32isspace: New module.
* lib/c32isspace.c: New file.
* modules/c32isspace: New file.
* doc/posix-functions/iswspace.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32ispunct: Add tests.
* tests/test-c32ispunct.c: New file.
* tests/test-c32ispunct.sh: New file.
* modules/c32ispunct-tests: New file.
c32ispunct: New module.
* lib/c32ispunct.c: New file.
* modules/c32ispunct: New file.
* doc/posix-functions/iswpunct.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isprint: Add tests.
* tests/test-c32isprint.c: New file.
* tests/test-c32isprint.sh: New file.
* modules/c32isprint-tests: New file.
c32isprint: New module.
* lib/c32isprint.c: New file.
* modules/c32isprint: New file.
* doc/posix-functions/iswprint.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32islower: Add tests.
* tests/test-c32islower.c: New file.
* tests/test-c32islower.sh: New file.
* modules/c32islower-tests: New file.
c32islower: New module.
* lib/c32islower.c: New file.
* modules/c32islower: New file.
* doc/posix-functions/iswlower.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isgraph: Add tests.
* tests/test-c32isgraph.c: New file.
* tests/test-c32isgraph.sh: New file.
* modules/c32isgraph-tests: New file.
c32isgraph: New module.
* lib/c32isgraph.c: New file.
* modules/c32isgraph: New file.
* doc/posix-functions/iswgraph.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isdigit: Add tests.
* tests/test-c32isdigit.c: New file, based on tests/test-iswdigit.c.
* tests/test-c32isdigit.sh: New file.
* modules/c32isdigit-tests: New file.
c32isdigit: New module.
* lib/c32isdigit.c: New file.
* modules/c32isdigit: New file.
* doc/posix-functions/iswdigit.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32iscntrl: Add tests.
* tests/test-c32iscntrl.c: New file.
* tests/test-c32iscntrl.sh: New file.
* modules/c32iscntrl-tests: New file.
c32iscntrl: New module.
* lib/c32iscntrl.c: New file.
* modules/c32iscntrl: New file.
* doc/posix-functions/iswcntrl.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isblank: Add tests.
* tests/test-c32isblank.c: New file.
* tests/test-c32isblank.sh: New file.
* modules/c32isblank-tests: New file.
c32isblank: New module.
* lib/c32isblank.c: New file.
* modules/c32isblank: New file.
* doc/posix-functions/iswblank.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isalpha: Add tests.
* tests/test-c32isalpha.c: New file.
* tests/test-c32isalpha.sh: New file.
* modules/c32isalpha-tests: New file.
c32isalpha: New module.
* lib/c32isalpha.c: New file.
* modules/c32isalpha: New file.
* doc/posix-functions/iswalpha.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
c32isalnum: Add tests.
* tests/test-c32isalnum.c: New file.
* tests/test-c32isalnum.sh: New file.
* modules/c32isalnum-tests: New file.
c32isalnum: New module.
* lib/c32isalnum.c: New file.
* lib/c32is-impl.h: New file.
* modules/c32isalnum: New file.
* doc/posix-functions/iswalnum.texi: Mention the new module.
2020-01-25 Bruno Haible <bruno@clisp.org>
uchar: Preparations for modules c32isalnum, ..., c32isxdigit.
* lib/uchar.in.h (c32isalnum, c32isalpha, c32isblank, c32iscntrl,
c32isdigit, c32isgraph, c32islower, c32isprint, c32ispunct, c32isspace,
c32isupper, c32isxdigit): New declarations.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32ISALNUM,
GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL,
GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER,
GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE,
GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT.
* modules/uchar (Makefile.am): Substitute GNULIB_C32ISALNUM,
GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL,
GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER,
GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE,
GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT.
* tests/test-uchar-c++.cc: Test the signature of c32isalnum, c32isalpha,
c32isblank, c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint,
c32ispunct, c32isspace, c32isupper, c32isxdigit.
2020-01-25 Bruno Haible <bruno@clisp.org>
mbchar, wctype: Use the corrected iswxdigit function.
* modules/mbchar (Depends-on): Add iswxdigit.
* modules/wctype (Depends-on): Likewise.
iswxdigit: Add tests.
* tests/test-iswxdigit.c: New file.
* tests/test-iswxdigit.sh: New file.
* modules/iswxdigit-tests: New file.
iswxdigit: New module.
* m4/iswxdigit.m4: New file.
* lib/wctype.in.h (iswxdigit): Potentially override.
(iswxdigit, rpl_iswxdigit): Test REPLACE_ISWXDIGIT, not
REPLACE_ISWCNTRL. Rely on ISO C compliant definition.
* lib/iswxdigit.c: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWXDIGIT,
REPLACE_ISWXDIGIT.
* modules/wctype-h (Makefile.am): Substitute GNULIB_ISWXDIGIT,
REPLACE_ISWXDIGIT.
* modules/iswxdigit: New file.
* doc/posix-functions/iswxdigit.texi: Mention the portability problem.
2020-01-25 Bruno Haible <bruno@clisp.org>
lseek: Fix the override to not undo the effects of AC_SYS_LARGEFILE.
Reported by John Donoghue <john.david.donoghue@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00146.html>.
* lib/lseek.c (rpl_lseek): When AC_SYS_LARGEFILE has enabled a 64-bit
off_t on mingw, invoke _lseeki64 instead of lseek.
2020-01-25 Bruno Haible <bruno@clisp.org>
iswdigit tests: Avoid test failure on Cygwin.
* tests/test-iswdigit.c (for_character): If mbrtowc cannot convert the
byte sequence, return 0.
iswdigit: Fix test failure on native Windows.
* lib/wctype.in.h (rpl_iswdigit): Rely on ISO C compliant definition.
mbchar, wctype: Use the corrected iswdigit function.
* modules/mbchar (Depends-on): Add iswdigit.
* modules/wctype (Depends-on): Likewise.
iswdigit: Add tests.
* tests/test-iswdigit.c: New file.
* tests/test-iswdigit.sh: New file.
* modules/iswdigit-tests: New file.
iswdigit: New module.
* m4/iswdigit.m4: New file.
* lib/wctype.in.h (iswdigit): Potentially override.
(iswdigit, rpl_iswdigit): Test REPLACE_ISWDIGIT, not REPLACE_ISWCNTRL.
* lib/iswdigit.c: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWDIGIT,
REPLACE_ISWDIGIT.
* modules/wctype-h (Makefile.am): Substitute GNULIB_ISWDIGIT,
REPLACE_ISWDIGIT.
* modules/iswdigit: New file.
* doc/posix-functions/iswdigit.texi: Mention the portability problem.
2020-01-25 Bruno Haible <bruno@clisp.org>
hard-locale tests: Make it easy to reuse the musl test.
* m4/musl.m4: New file, extracted from modules/hard-locale-tests.
* modules/hard-locale-tests (Files): Add it.
(configure.ac): Invoke gl_MUSL_LIBC.
2020-01-24 Paul Eggert <eggert@cs.ucla.edu>
regex: port to Gawk on nonstandard platforms
* lib/regex_internal.h (ULONG_WIDTH): Define if not already defined.
This is useful for Gawk, which does not use the Gnulib stdlib-h
module. Problem reported by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2020-01/msg00138.html
2020-01-21 Paul Eggert <eggert@cs.ucla.edu>
regex: fix bug with >=16 subexpressions
* lib/regex_internal.h (struct re_backref_cache_entry):
Use bitset_word_t as the type of eps_reachable_subexps_map,
instead of unsigned short int. This fixes a bug I introduced
to glibc in 2005-09-28T17:33:18Z!drepper@redhat.com (glibc commit
2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302).
Remove unused member 'unused'.
regex: simplify definition of BITSET_WORD_BITS
* config/srclist.txt: Remove regex.c, regex_internal.h temporarily.
* lib/regex.c (__STDC_WANT_IEC_60559_BFP_EXT__): Define.
* lib/regex_internal.h (BITSET_WORD_BITS):
* modules/regex (Depends-on): Add limits-h.
Simplify now that we can use ULONG_WIDTH.
2020-01-20 Bruno Haible <bruno@clisp.org>
mbrtoc32: Add note about FreeBSD 12.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Guess no also on FreeBSD.
* doc/posix-functions/mbrtoc32.texi: Mention that FreeBSD 12 is also
affected.
2020-01-20 Bruno Haible <bruno@clisp.org>
unistr/u8-uctomb: Fix warning.
Reported by Andreas Schwab <schwab@suse.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00127.html>.
* lib/unistr/u8-uctomb.c (FALLTHROUGH): New macro.
(u8_uctomb): Add FALLTHROUGH markers.
2020-01-20 Bruno Haible <bruno@clisp.org>
lock: Fix test-once1 failure on FreeBSD 11 (regression from 2020-01-19).
* lib/glthread/lock.c (glthread_once_multithreaded): New function.
* lib/glthread/lock.h (glthread_once_multithreaded): New declaration.
(glthread_once): Use it.
2020-01-19 Bruno Haible <bruno@clisp.org>
threadlib: Disable use of weak symbols on FreeBSD 11.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00061.html>.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Require AC_CANONICAL_HOST. Test
against a bug in FreeBSD 11.
2020-01-19 Bruno Haible <bruno@clisp.org>
iconv_open: Improve z/OS support.
* lib/iconv_open-zos.gperf: Choose better aliases. Add mapping for
ISO-8859-3, KOI8-R, KOI8-U, CP775, CP857, CP865, CP1129, CP1131, CP1257.
Remove mapping for EUC-TW.
2020-01-18 Bruno Haible <bruno@clisp.org>
Rename ~~gnulib.m4 to zzgnulib.m4.
Suggested by Paul Eggert.
* m4/zzgnulib.m4: Renamed from m4/~~gnulib.m4.
* gnulib-tool (func_get_filelist): Update.
* pygnulib/GLModuleSystem.py (getFiles): Likewise.
2020-01-18 Bruno Haible <bruno@clisp.org>
doc: Update license notices.
* doc/*.texi: Reference the GFDL 1.3 through a URL, rather than by
reference to a section or to a "file as part of this distribution".
2020-01-18 Bruno Haible <bruno@clisp.org>
Avoid error "m4_require: circular dependency of AC_LANG_COMPILER(C)".
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00109.html>.
* m4/00gnulib.m4 (gl_COMPILER_CLANG): Use _AC_COMPILE_IFELSE, not
AC_EGREP_CPP.
2020-01-18 Bruno Haible <bruno@clisp.org>
Ensure Automake does not drop ~~gnulib.m4.
* m4/~~gnulib.m4 (gl_ZZGNULIB): New macro.
* m4/gnulib-common.m4 (gl_COMMON): Require it.
2020-01-18 Bruno Haible <bruno@clisp.org>
Fix major regression from 2020-01-10.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00079.html>.
* m4/00gnulib.m4 (gl_COMPILER_CLANG, gl_COMPILER_PREPARE_CHECK_DECL):
Don't AC_REQUIRE anything.
(gl_COMPILER_PREPARE_CHECK_DECL): Define through AC_DEFUN, not
AC_DEFUN_ONCE. Use _AC_COMPILE_IFELSE, not AC_COMPILE_IFELSE.
(_AC_CHECK_DECL_BODY): If ac_compile_for_check_decl has not been set,
use ac_compile instead.
(AC_CHECK_DECL): Remove override.
* m4/~~gnulib.m4: New file.
* gnulib-tool (func_get_filelist): Add also ~~gnulib.m4.
* pygnulib/GLModuleSystem.py (getFiles): Likewise.
2020-01-17 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
glob: Fix use-after-free bug.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00102.html>.
* lib/glob.c (__glob): Delay freeing dirname until after the use of
end_name.
2020-01-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Fix parsing of fndecl without args.
* build-aux/vcstocl/frontend_c.py (FNDECL_RE): Fix regular expression
for empty arguments.
2020-01-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Add documentation.
* doc/vcs-to-changelog.texi: New file.
* doc/gnulib.texi (Build Infrastructure Modules): Add vcs-to-changelog
section.
2020-01-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Allow loading of custom quirks file.
* build-aux/vcs_to_changelog.py: New commandline option -q.
2020-01-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Fix formatting of ChangeLog output.
* build-aux/vcstocl/vcs_git.py (list_changes): Add newline in print
output.
2020-01-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: Drop python3 shebang from frontend_c.py.
Reported in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00050.html>.
* build-aux/vcstocl/frontend_c.py: Remove shebang.
2020-01-15 Simon Josefsson <simon@josefsson.org>
crypto/gc-pbkdf2: New module.
* MODULES.html.sh (func_all_modules): Add gc-pbkdf2.
* NEWS: Deprecated gc-pbkdf2-sha1 in favor of gc-pbkdf2.
* lib/gc-pbkdf2.c: New file.
* lib/gc-pbkdf2-sha1.c: Use new interface.
* lib/gc.h (GC_MAX_DIGEST_SIZE, gc_pbkdf2_hmac): Add.
* modules/crypto/gc-pbkdf2: New file.
* modules/crypto/gc-pbkdf2-tests: New file.
* tests/test-gc-pbkdf2.c: New file.
2020-01-12 Bruno Haible <bruno@clisp.org>
c32stombs: Add tests.
* tests/test-c32stombs.c: New file, based on tests/test-c32srtombs.c.
* tests/test-c32stombs-1.sh: New file, based on
tests/test-c32srtombs-1.sh.
* tests/test-c32stombs-2.sh: New file, based on
tests/test-c32srtombs-2.sh.
* tests/test-c32stombs-3.sh: New file, based on
tests/test-c32srtombs-3.sh.
* tests/test-c32stombs-4.sh: New file, based on
tests/test-c32srtombs-4.sh.
* modules/c32stombs-tests: New file, based on modules/c32srtombs-tests.
c32stombs: New module.
* lib/uchar.in.h (c32stombs): New declaration.
* lib/c32stombs.c: New file.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32STOMBS.
* modules/uchar (Makefile.am): Substitute GNULIB_C32STOMBS.
* modules/c32stombs: New file.
* tests/test-uchar-c++.cc: Test the signature of c32stombs.
* doc/posix-functions/wcstombs.texi: Mention the new module.
2020-01-11 Jim Meyering <meyering@fb.com>
perl: require the "warnings" module
* m4/perl.m4: Also "use warnings", so we reject the perl found
on at least one IRIX 6.5 system. Reported by Bruno Haible in
https://lists.gnu.org/r/sed-devel/2020-01/msg00004.html
2020-01-10 Bruno Haible <bruno@clisp.org>
Fix major regression from 2020-01-04.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00072.html>.
* m4/00gnulib.m4 (gl_COMPILER_PREPARE_CHECK_DECL): Define through
AC_DEFUN_ONCE.
(AC_CHECK_DECL): Invoke, not require, it.
2020-01-10 Bruno Haible <bruno@clisp.org>
c32snrtombs: Add tests.
* tests/test-c32snrtombs.c: New file, based on tests/test-wcsnrtombs.c.
* tests/test-c32snrtombs-1.sh: New file, based on
tests/test-wcsnrtombs1.sh.
* tests/test-c32snrtombs-2.sh: New file, based on
tests/test-wcsnrtombs2.sh.
* tests/test-c32snrtombs-3.sh: New file, based on
tests/test-wcsnrtombs3.sh.
* tests/test-c32snrtombs-4.sh: New file, based on
tests/test-wcsnrtombs4.sh.
* modules/c32snrtombs-tests: New file, based on
modules/wcsnrtombs-tests.
c32snrtombs: New module.
* lib/uchar.in.h (c32snrtombs): New declaration.
* lib/wcsnrtombs-impl.h: Parameterize: Use macros FUNC, SCHAR_T,
INTERNAL_STATE, WCRTOMB.
* lib/wcsnrtombs.c (FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB): New macros.
* lib/c32snrtombs.c: New file.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32SNRTOMBS.
* modules/uchar (Makefile.am): Substitute GNULIB_C32SNRTOMBS.
* modules/c32snrtombs: New file.
* tests/test-uchar-c++.cc: Test the signature of c32snrtombs.
* doc/posix-functions/wcsnrtombs.texi: Mention the new module.
2020-01-09 Bruno Haible <bruno@clisp.org>
c32srtombs: Add tests.
* tests/test-c32srtombs.c: New file, based on tests/test-wcsrtombs.c.
* tests/test-c32srtombs-1.sh: New file, based on
tests/test-wcsrtombs1.sh.
* tests/test-c32srtombs-2.sh: New file, based on
tests/test-wcsrtombs2.sh.
* tests/test-c32srtombs-3.sh: New file, based on
tests/test-wcsrtombs3.sh.
* tests/test-c32srtombs-4.sh: New file, based on
tests/test-wcsrtombs4.sh.
* modules/c32srtombs-tests: New file, based on modules/wcsrtombs-tests.
c32srtombs: New module.
* lib/uchar.in.h (c32srtombs): New declaration.
* lib/wcsrtombs-impl.h: Parameterize: Use macros FUNC, SCHAR_T,
INTERNAL_STATE, WCRTOMB.
* lib/wcsrtombs.c (FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB): New macros.
* lib/c32srtombs.c: New file.
* lib/c32srtombs-state.c: New file, based on lib/wcsrtombs-state.c.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32SRTOMBS.
* modules/uchar (Makefile.am): Substitute GNULIB_C32SRTOMBS.
* modules/c32srtombs: New file.
* tests/test-uchar-c++.cc: Test the signature of c32srtombs.
* doc/posix-functions/wcsrtombs.texi: Mention the new module.
2020-01-08 Bruno Haible <bruno@clisp.org>
c32tob: Make consistent with mbrtoc32.
* lib/c32tob.c: Include <stdio.h>, <string.h>, <wchar.h>.
(c32tob): If the char32_t encoding and the wchar_t encoding may differ,
use c32rtomb, not wctob.
* modules/c32tob (Files): Add m4/mbrtoc32.m4.
(Depends-on): Add c32rtomb.
(configure.ac): Require gl_MBRTOC32_SANITYCHECK.
2020-01-08 Bruno Haible <bruno@clisp.org>
c32rtomb: Add tests.
* tests/test-c32rtomb.c: New file, based on tests/test-wcrtomb.c.
* tests/test-c32rtomb.sh: New file, based on tests/test-wcrtomb.sh.
* tests/test-c32rtomb-w32.c: New file, based on
tests/test-wcrtomb-w32.c.
* tests/test-c32rtomb-w32-1.sh: New file, based on
tests/test-wcrtomb-w32-1.sh.
* tests/test-c32rtomb-w32-2.sh: New file, based on
tests/test-wcrtomb-w32-2.sh.
* tests/test-c32rtomb-w32-3.sh: New file, based on
tests/test-wcrtomb-w32-3.sh.
* tests/test-c32rtomb-w32-4.sh: New file, based on
tests/test-wcrtomb-w32-4.sh.
* tests/test-c32rtomb-w32-5.sh: New file, based on
tests/test-wcrtomb-w32-5.sh.
* tests/test-c32rtomb-w32-6.sh: New file, based on
tests/test-wcrtomb-w32-6.sh.
* tests/test-c32rtomb-w32-7.sh: New file, based on
tests/test-wcrtomb-w32-7.sh.
* modules/c32rtomb-tests: New file.
c32rtomb: New module.
* lib/uchar.in.h (c32rtomb): New declaration.
* lib/c32rtomb.c: New file, based on lib/unistr/u8-uctomb-aux.c.
* m4/c32rtomb.m4: New file.
* m4/uchar.m4 (gl_UCHAR_H): Test whether c32rtomb is declared.
(gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32RTOMB, HAVE_C32RTOMB,
REPLACE_C32RTOMB.
* modules/uchar (Makefile.am): Substitute GNULIB_C32RTOMB,
HAVE_C32RTOMB, REPLACE_C32RTOMB.
* modules/c32rtomb: New file.
* tests/test-uchar-c++.cc: Test the signature of c32rtomb.
* doc/posix-functions/c32rtomb.texi: Document the new module.
* doc/posix-functions/wcrtomb.texi: Mention the new module.
2020-01-08 Bruno Haible <bruno@clisp.org>
mbrtoc32: Use the system's mbrtoc32 if it exists and basically works.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): New macro.
(gl_FUNC_MBRTOC32): Require it. Set REPLACE_MBRTOC32 if mbrtoc32 exists
but is not working.
* lib/mbrtoc32.c: Include hard-locale.h, <locale.h>.
(mbrtoc32): If the char32_t encoding and the wchar_t encoding may
differ, use the system's mbrtoc32, adding workarounds.
* modules/mbrtoc32 (Depends-on): Add hard-locale.
* doc/posix-functions/mbrtoc32.texi: Mention the Solaris and native
Windows problem.
* lib/btoc32.c: Include <stdio.h>, <string.h>.
(btoc32): If the char32_t encoding and the wchar_t encoding may differ,
use mbrtoc32, not btowc.
* modules/btoc32 (Depends-on): Add mbrtoc32.
* lib/mbsrtoc32s.c (mbsrtoc32s): If the char32_t encoding and the
wchar_t encoding may differ, use mbrtoc32, not mbsrtowcs.
* modules/mbsrtoc32s (Depends-on): Update conditions.
(configure.ac): Compile mbsrtoc32s-state.c unconditionally.
* lib/mbsnrtoc32s.c (mbsnrtoc32s): If the char32_t encoding and the
wchar_t encoding may differ, use mbrtoc32, not mbsnrtowcs.
* modules/mbsnrtoc32s (Depends-on): Update conditions.
(configure.ac): Compile mbsrtoc32s-state.c unconditionally.
2020-01-07 Bruno Haible <bruno@clisp.org>
wcrtomb: Make multithread-safe, except possibly on IRIX.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Don't set REPLACE_WCRTOMB to 1 when
REPLACE_MBSTATE_T is set. Define WCRTOMB_C_LOCALE_BUG and
WCRTOMB_RETVAL_BUG.
* lib/wcrtomb.c (wcrtomb): Use original wcrtomb whenever available. Use
wctomb only on IRIX.
2020-01-05 Jim Meyering <meyering@fb.com>
tests: skip thread-using tests when threading is disabled
sed's configure.ac specifies gl_DISABLE_THREADS, and that caused three
thread-using gnulib tests to fail. Add an #if-guarded exit (77) to each
of those, so they are skipped in this case.
* tests/test-nl_langinfo-mt.c (main): Exit 77 when threading is disabled.
* tests/test-setlocale_null-mt-all.c (main): Likewise.
* tests/test-setlocale_null-mt-one.c (main): Likewise.
2020-01-05 Bruno Haible <bruno@clisp.org>
tests: Avoid GCC over-optimization caused by _GL_ARG_NONNULL attributes.
Reported by Jim Meyering in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00040.html>.
* lib/stdlib.in.h (GNULIB_defined_canonicalize_file_name): New macro.
(GNULIB_defined_ptsname_r): New macro.
* tests/test-canonicalize.c (_GL_ARG_NONNULL): Define to empty.
(main): Disable the NULL argument test if canonicalize_file_name does
not come from gnulib.
* tests/test-canonicalize-lgpl.c (_GL_ARG_NONNULL): Define to empty.
(main): Disable the NULL argument test if canonicalize_file_name does
not come from gnulib.
* tests/test-ptsname_r.c (_GL_ARG_NONNULL): Define to empty.
(test_errors): Disable the NULL argument test if ptsname_r does not come
from gnulib.
2020-01-04 Jim Meyering <meyering@fb.com>
update-copyright: reenable its always-skipped test
* tests/test-update-copyright.sh: Restore the "-pi" options removed
on 2019-06-15. Without those, an internal preliminary test would
fail, causing this test always to be skipped.
Verify that the test is now run and passes via this:
./gnulib-tool --test --dir /tmp/x --with-tests update-copyright
2020-01-05 Bruno Haible <bruno@clisp.org>
mbstoc32s: Add tests.
* tests/test-mbstoc32s.c: New file, based on tests/test-mbsrtoc32s.c.
* tests/test-mbstoc32s-1.sh: New file, based on
tests/test-mbsrtoc32s-1.sh.
* tests/test-mbstoc32s-2.sh: New file, based on
tests/test-mbsrtoc32s-2.sh.
* tests/test-mbstoc32s-3.sh: New file, based on
tests/test-mbsrtoc32s-3.sh.
* tests/test-mbstoc32s-4.sh: New file, based on
tests/test-mbsrtoc32s-4.sh.
* modules/mbstoc32s-tests: New file, based on modules/mbsrtoc32s-tests.
mbstoc32s: New module.
* lib/uchar.in.h (mbstoc32s): New declaration.
* lib/mbstoc32s.c: New file.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSTOC32S.
* modules/uchar (Makefile.am): Substitute GNULIB_MBSTOC32S.
* modules/mbstoc32s: New file.
* tests/test-uchar-c++.cc: Test the signature of mbstoc32s.
* doc/posix-functions/mbstowcs.texi: Mention the new module.
2020-01-05 Bruno Haible <bruno@clisp.org>
Tweak recently added tests.
* tests/test-mbrtoc32.c: Make signature consistent with uchar.in.h.
* tests/test-mbsrtoc32s.c: Likewise.
* tests/test-mbsnrtoc32s.c: Likewise.
2020-01-04 Bruno Haible <bruno@clisp.org>
mbsnrtoc32s: Add tests.
* tests/test-mbsnrtoc32s.c: New file, based on tests/test-mbsnrtowcs.c.
* tests/test-mbsnrtoc32s-1.sh: New file, based on
tests/test-mbsnrtowcs1.sh.
* tests/test-mbsnrtoc32s-2.sh: New file, based on
tests/test-mbsnrtowcs2.sh.
* tests/test-mbsnrtoc32s-3.sh: New file, based on
tests/test-mbsnrtowcs3.sh.
* tests/test-mbsnrtoc32s-4.sh: New file, based on
tests/test-mbsnrtowcs4.sh.
* modules/mbsnrtoc32s-tests: New file, based on
modules/mbsnrtowcs-tests.
mbsnrtoc32s: New module.
* lib/uchar.in.h (mbsnrtoc32s): New declaration.
* lib/mbsnrtowcs-impl.h: Parameterize: Use macros FUNC, DCHAR_T,
INTERNAL_STATE, MBRTOWC.
* lib/mbsnrtowcs.c (FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC): New macros.
* lib/mbsnrtoc32s.c: New file.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSNRTOC32S.
* modules/uchar (Makefile.am): Substitute GNULIB_MBSNRTOC32S.
* modules/mbsnrtoc32s: New file.
* tests/test-uchar-c++.cc: Test the signature of mbsnrtoc32s.
* doc/posix-functions/mbsnrtowcs.texi: Mention the new module.
2020-01-04 Bruno Haible <bruno@clisp.org>
mbsrtoc32s tests: Enhance test.
* tests/test-mbsrtoc32s.c (main): Include a non-BMP character in the
test strings for UTF-8 and GB18030.
2020-01-04 Bruno Haible <bruno@clisp.org>
mbsrtoc32s: Fix bug.
* modules/mbsrtoc32s (configure.ac): Require gl_UCHAR_H, to make sure
that SMALL_WCHAR_T is defined.
2020-01-04 Bruno Haible <bruno@clisp.org>
mbsrtoc32s: Add tests.
* tests/test-mbsrtoc32s.c: New file, based on tests/test-mbsrtowcs.c.
* tests/test-mbsrtoc32s-1.sh: New file, based on
tests/test-mbsrtowcs1.sh.
* tests/test-mbsrtoc32s-2.sh: New file, based on
tests/test-mbsrtowcs2.sh.
* tests/test-mbsrtoc32s-3.sh: New file, based on
tests/test-mbsrtowcs3.sh.
* tests/test-mbsrtoc32s-4.sh: New file, based on
tests/test-mbsrtowcs4.sh.
* modules/mbsrtoc32s-tests: New file, based on modules/mbsrtowcs-tests.
mbsrtoc32s: New module.
* lib/uchar.in.h (mbsrtoc32s): New declaration.
* lib/mbsrtowcs-impl.h: Parameterize: Use macros FUNC, DCHAR_T,
INTERNAL_STATE, MBRTOWC.
* lib/mbsrtowcs.c (FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC): New macros.
* lib/mbsrtoc32s.c: New file.
* lib/mbsrtoc32s-state.c: New file, based on lib/mbsrtowcs-state.c.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSRTOC32S.
* modules/uchar (Makefile.am): Substitute GNULIB_MBSRTOC32S.
* modules/mbsrtoc32s: New file.
* tests/test-uchar-c++.cc: Test the signature of mbsrtoc32s.
* doc/posix-functions/mbsrtowcs.texi: Mention the new module.
2020-01-04 Bruno Haible <bruno@clisp.org>
mbrtowc, mbrtoc32: Tighten dependendies.
* modules/mbrtowc (Depends-on): Disable hard-locale, mbsinit if
REPLACE_MBSTATE_T is 1.
(configure.ac): Don't compile lc-charset-dispatch.c and mbtowc-lock.c if
REPLACE_MBSTATE_T is 0.
* modules/mbrtoc32 (Depends-on): Remove hard-locale, mbsinit. Disable
mbrtowc dependency if REPLACE_MBSTATE_T is 1.
(configure.ac): Don't compile lc-charset-dispatch.c and mbtowc-lock.c if
REPLACE_MBSTATE_T is 0.
2020-01-04 Bruno Haible <bruno@clisp.org>
uchar: Decide about _GL_LARGE_CHAR32_T at configure time.
* m4/uchar.m4 (gl_UCHAR_H): Set SMALL_WCHAR_T.
* modules/uchar (Files): Add stdint.m4.
(Makefile.am): Substitute SMALL_WCHAR_T.
* lib/uchar.in.h (_GL_LARGE_CHAR32_T): Rely on SMALL_WCHAR_T.
2020-01-04 Bruno Haible <bruno@clisp.org>
Fix AC_CHECK_DECL so that it deactivates clang's built-in declarations.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00016.html>.
* m4/00gnulib.m4 (gl_COMPILER_CLANG, gl_COMPILER_PREPARE_CHECK_DECL):
New macros.
(_AC_CHECK_DECL_BODY, AC_CHECK_DECL): Augment.
2020-01-04 Bruno Haible <bruno@clisp.org>
btoc32: Add tests.
* tests/test-btoc32.c: New file, based on tests/test-btowc.c.
* tests/test-btoc32-1.sh: New file, based on tests/test-btowc1.sh.
* tests/test-btoc32-2.sh: New file, based on tests/test-btowc2.sh.
* modules/btoc32-tests: New file, based on modules/btowc-tests.
btoc32: New module.
* lib/uchar.in.h (btoc32): New declaration.
* lib/btoc32.c: New file.
* m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_BTOC32.
* modules/uchar (Makefile.am): Substitute GNULIB_BTOC32.
* modules/btoc32: New file.
* tests/test-uchar-c++.cc: Test the signature of btoc32.
* doc/posix-functions/btowc.texi: Mention the new module.
2020-01-03 Bruno Haible <bruno@clisp.org>
uchar tests: Avoid compilation error with HP cc.
* tests/test-uchar.c: Disable a test when HP cc is in use.
2020-01-03 Bruno Haible <bruno@clisp.org>
mbrtoc32: Add tests.
* tests/test-mbrtoc32.c: New file, based on tests/test-mbrtowc.c.
* tests/test-mbrtoc32-1.sh: New file, based on tests/test-mbrtowc1.sh.
* tests/test-mbrtoc32-2.sh: New file, based on tests/test-mbrtowc2.sh.
* tests/test-mbrtoc32-3.sh: New file, based on tests/test-mbrtowc3.sh.
* tests/test-mbrtoc32-4.sh: New file, based on tests/test-mbrtowc4.sh.
* tests/test-mbrtoc32-5.sh: New file, based on tests/test-mbrtowc5.sh.
* tests/test-mbrtoc32-w32.c: New file, based on tests/test-mbrtowc-w32.c.
* tests/test-mbrtoc32-w32-1.sh: New file, based on
tests/test-mbrtowc-w32-1.sh.
* tests/test-mbrtoc32-w32-2.sh: New file, based on
tests/test-mbrtowc-w32-2.sh.
* tests/test-mbrtoc32-w32-3.sh: New file, based on
tests/test-mbrtowc-w32-3.sh.
* tests/test-mbrtoc32-w32-4.sh: New file, based on
tests/test-mbrtowc-w32-4.sh.
* tests/test-mbrtoc32-w32-5.sh: New file, based on
tests/test-mbrtowc-w32-5.sh.
* tests/test-mbrtoc32-w32-6.sh: New file, based on
tests/test-mbrtowc-w32-6.sh.
* tests/test-mbrtoc32-w32-7.sh: New file, based on
tests/test-mbrtowc-w32-7.sh.
* modules/mbrtoc32-tests: New file, based on modules/mbrtowc-tests.
mbrtoc32: New module.
* lib/uchar.in.h (mbrtoc32): New declaration.
* lib/mbrtoc32.c: New file, based on lib/mbrtowc.c.
* m4/mbrtoc32.m4: New file, based on m4/mbrtowc.m4.
* m4/uchar.m4 (gl_UCHAR_H): Test whether mbrtoc32 is declared.
(gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBRTOC32, HAVE_MBRTOC32,
REPLACE_MBRTOC32.
* modules/uchar (Makefile.am): Substitute GNULIB_MBRTOC32,
HAVE_MBRTOC32, REPLACE_MBRTOC32.
* modules/mbrtoc32: New file, based on modules/mbrtowc.
* tests/test-uchar-c++.cc (mbrtoc32): Verify the signature.
* modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with
$(LIB_MBRTOWC).
* doc/posix-functions/mbrtoc32.texi: Document the new module.
* doc/posix-functions/mbrtowc.texi: Mention the new module.
2020-01-03 Bruno Haible <bruno@clisp.org>
mbrtowc: Refactor to share code with mbrtoc32.
* lib/mbrtowc-impl.h: New file, extracted from lib/mbrtowc.c.
* lib/mbrtowc-impl-utf8.h: Likewise.
* lib/mbrtowc.c (mbrtowc): Define macro FITS_IN_CHAR_TYPE. Include
mbrtowc-impl.h.
* modules/mbrtowc (Files): Add the new files.
2020-01-03 Jim Meyering <meyering@fb.com>
doc: fix time.texi wording
* doc/posix-headers/time.texi (time.h): Typo.
2020-01-03 Bruno Haible <bruno@clisp.org>
mbrtowc: Refactor locale charset dispatching.
* lib/lc-charset-dispatch.h: New file, extracted from lib/mbrtowc.c.
* lib/lc-charset-dispatch.c: New file, extracted from lib/mbrtowc.c.
* lib/mbrtowc.c: Include lc-charset-dispatch.h. Don't include
localcharset.h, streq.h.
(enc_t): Remove type.
(locale_enc): Remove function.
(cached_locale_enc): Remove variable.
(locale_enc_cached): Remove function.
(mbrtowc): Invoke locale_encoding_classification.
* m4/mbrtowc.m4 (gl_PREREQ_MBRTOWC): Update comment.
* modules/mbrtowc (Files): Add lc-charset-dispatch.h,
lc-charset-dispatch.c.
(configure.ac): Arrange to compile lc-charset-dispatch.c.
2020-01-03 Paul Eggert <eggert@cs.ucla.edu>
doc: mention 32-bit time_t issue
* doc/posix-headers/sys_stat.texi (sys/stat.h):
* doc/posix-headers/time.texi (time.h): Mention 2038.
2020-01-03 Bruno Haible <bruno@clisp.org>
mbrtowc: Ensure the mbtowc_lock is unique.
* lib/mbtowc-lock.c: New file, based on lib/setlocale-lock.c.
* lib/mbtowc-lock.h: New file, extracted from lib/mbrtowc.c and
lib/setlocale_null.c.
* lib/mbrtowc.c: Include headers needed for mbtowc-lock.h. Don't include
glthread/lock.h. Include mbtowc-lock.h.
(mbtowc_lock): Remove declaration.
(mbrtowc): Use mbtowc_with_lock.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Require gl_PTHREADLIB. Check for
threads.h. Set LIB_MBRTOWC.
(gl_PREREQ_MBTOWC_LOCK): New macro.
* modules/mbrtowc (Files): Add lib/mbtowc-lock.h, lib/mbtowc-lock.c,
lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4.
(Depends-on): Remove lock.
(configure.ac): Arrange to compile mbtowc-lock.c.
(Link): Mention $(LIB_MBRTOWC) instead of $(LIBTHREAD).
* modules/acl (Link): Likewise.
* modules/argmatch (Link): Likewise.
* modules/backup-rename (Link): Likewise.
* modules/backupfile (Link): Likewise.
* modules/closein (Link): Likewise.
* modules/closeout (Link): Likewise.
* modules/copy-file (Link): Likewise.
* modules/csharpcomp (Link): Likewise.
* modules/csharpexec (Link): Likewise.
* modules/dfa (Link): Likewise.
* modules/exclude (Link): Likewise.
* modules/fnmatch (Link): Likewise.
* modules/fnmatch-gnu (Link): Likewise.
* modules/fnmatch-posix (Link): Likewise.
* modules/glob (Link): Likewise.
* modules/human (Link): Likewise.
* modules/javacomp (Link): Likewise.
* modules/javaexec (Link): Likewise.
* modules/javaversion (Link): Likewise.
* modules/mbfile (Link): Likewise.
* modules/mbiter (Link): Likewise.
* modules/mbmemcasecmp (Link): Likewise.
* modules/mbmemcasecoll (Link): Likewise.
* modules/mbrlen (Link): Likewise.
* modules/mbscasecmp (Link): Likewise.
* modules/mbscasestr (Link): Likewise.
* modules/mbschr (Link): Likewise.
* modules/mbscspn (Link): Likewise.
* modules/mbsinit (Link): Likewise.
* modules/mbslen (Link): Likewise.
* modules/mbsncasecmp (Link): Likewise.
* modules/mbsnlen (Link): Likewise.
* modules/mbsnrtowcs (Link): Likewise.
* modules/mbspbrk (Link): Likewise.
* modules/mbspcasecmp (Link): Likewise.
* modules/mbsrchr (Link): Likewise.
* modules/mbsrtowcs (Link): Likewise.
* modules/mbssep (Link): Likewise.
* modules/mbsspn (Link): Likewise.
* modules/mbsstr (Link): Likewise.
* modules/mbstok_r (Link): Likewise.
* modules/mbswidth (Link): Likewise.
* modules/mbuiter (Link): Likewise.
* modules/mkdir-p (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/quote (Link): Likewise.
* modules/quotearg (Link): Likewise.
* modules/quotearg-simple (Link): Likewise.
* modules/regex-quote (Link): Likewise.
* modules/rpmatch (Link): Likewise.
* modules/sh-quote (Link): Likewise.
* modules/system-quote (Link): Likewise.
* modules/trim (Link): Likewise.
* modules/unistdio/ulc-asnprintf (Link): Likewise.
* modules/unistdio/ulc-fprintf (Link): Likewise.
* modules/unistdio/ulc-vasnprintf (Link): Likewise.
* modules/unistdio/ulc-vasprintf (Link): Likewise.
* modules/unistdio/ulc-vfprintf (Link): Likewise.
* modules/unistdio/ulc-vsnprintf (Link): Likewise.
* modules/unistdio/ulc-vsprintf (Link): Likewise.
* modules/xfreopen (Link): Likewise.
* modules/xmemcoll (Link): Likewise.
* modules/yesno (Link): Likewise.
* modules/regex (Link): Add $(LIB_MBRTOWC).
* modules/acl-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC)
instead of $(LIBTHREAD).
* modules/argmatch-tests (Makefile.am): Likewise.
* modules/closein-tests (Makefile.am): Likewise.
* modules/copy-file-tests (Makefile.am): Likewise.
* modules/dfa-tests (Makefile.am): Likewise.
* modules/fnmatch-tests (Makefile.am): Likewise.
* modules/glob-tests (Makefile.am): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Likewise.
* modules/mbmemcasecoll-tests (Makefile.am): Likewise.
* modules/mbrtowc-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsinit-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbsnrtowcs-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsrtowcs-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/quotearg-simple-tests (Makefile.am): Likewise.
* modules/quotearg-tests (Makefile.am): Likewise.
* modules/readtokens-tests (Makefile.am): Likewise.
* modules/sh-quote-tests (Makefile.am): Likewise.
* modules/system-quote-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise.
* modules/yesno-tests (Makefile.am): Likewise.
* modules/exclude-tests (Makefile.am): Link the programs with
$(LIB_MBRTOWC).
* modules/regex-tests (Makefile.am): Likewise.
* modules/regex-quote-tests (Makefile.am): Likewise.
2020-01-03 Bruno Haible <bruno@clisp.org>
getopt-posix: Fix compilation failure in testdirs.
* lib/unistd.in.h: Include <getopt-cdefs.h> and <getopt-pfx-core.h> only
when the gnulib module 'getopt-posix' is enabled.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETOPT_POSIX.
* modules/getopt-posix (configure.ac): Set GNULIB_GETOPT_POSIX as a
module indicator.
* modules/unistd (Makefile.am): Substitute GNULIB_GETOPT_POSIX.
2020-01-03 Bruno Haible <bruno@clisp.org>
doc: Mention the 64-bit inode number problem.
* m4/largefile.m4 (AC_SYS_LARGEFILE): Mention that this macro fixes the
64-bit inode number problem.
* doc/posix-functions/stat.texi: Mention that this module fixes the
64-bit inode number problem.
* doc/posix-functions/lstat.texi: Likewise.
* doc/posix-functions/fstat.texi: Likewise.
* doc/posix-functions/readdir.texi: Add more details.
* doc/posix-functions/readdir_r.texi: Likewise.
2020-01-02 Bruno Haible <bruno@clisp.org>
wcrtomb: Add more tests.
* tests/test-wcrtomb-w32.c: Include localcharset.h.
(test_one_locale): For the GB18030 and UTF-8 tests, verify that
locale_charset() returns the expected value; otherwise, skip the test.
* tests/test-wcrtomb-w32-6.sh: Remove old comment.
* tests/test-wcrtomb-w32-7.sh: Likewise.
* modules/wcrtomb-tests (Files): Add these files.
(Depends-on): Add localcharset.
(TESTS): Add test-wcrtomb-w32-6.sh, test-wcrtomb-w32-7.sh.
2020-01-02 Bruno Haible <bruno@clisp.org>
mbrtowc: Add more tests.
* tests/test-mbrtowc-w32.c: Include localcharset.h.
(test_one_locale): For the GB18030 and UTF-8 tests, verify that
locale_charset() returns the expected value; otherwise, skip the test.
* tests/test-mbrtowc-w32-6.sh: Remove old comment.
* tests/test-mbrtowc-w32-7.sh: Likewise.
* modules/mbrtowc-tests (Files): Add these files.
(Depends-on): Add localcharset.
(TESTS): Add test-mbrtowc-w32-6.sh, test-mbrtowc-w32-7.sh.
2020-01-02 Bruno Haible <bruno@clisp.org>
mbrtowc: Fix test failures on MSVC (regression by previous commit).
* m4/mbrtowc.m4 (gl_MBRTOWC_STORES_INCOMPLETE): New macro.
(gl_FUNC_MBRTOWC): Invoke it. Define MBRTOWC_STORES_INCOMPLETE_BUG.
* lib/mbrtowc.c (rpl_mbrtowc): Add workaround for
MBRTOWC_STORES_INCOMPLETE_BUG.
* doc/posix-functions/mbrtowc.texi: Mention the MSVC bug.
2020-01-02 Paul Eggert <eggert@cs.ucla.edu>
doc: mention glibc bug 24269
* doc/regex.texi (Back-reference Operator): Add glibc bug 24269.
Reformat slightly so that it looks nicer in the Grep manual.
2020-01-02 Bruno Haible <bruno@clisp.org>
mbrtowc: Don't replace mbstate_t on MSVC.
* m4/mbrtowc.m4 (gl_MBSTATE_T_BROKEN): Require AC_CANONICAL_HOST. Ignore
a missing mbsinit function on native Windows.
* lib/wchar.in.h (GNULIB_defined_mbstate_t): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Strengthen the test, to detect an
MSVC bug.
* doc/posix-functions/wcrtomb.texi: Mention the MSVC bug.
2020-01-02 Bruno Haible <bruno@clisp.org>
setlocale-null: Avoid crashing the MSVC linker.
* lib/setlocale-lock.c: Don't define IMP(gl_get_setlocale_null_lock) on
MSVC.
2020-01-02 Bruno Haible <bruno@clisp.org>
wchar: Make the HP-UX workaround work on HP-UX 11.31.
* modules/wchar (Depends-on): Add inttypes-incomplete.
* lib/inttypes.in.h: Define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H.
* lib/wchar.in.h: Test _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H instead
of strtoimax.
2020-01-02 Bruno Haible <bruno@clisp.org>
mbrtowc: Fix compilation error on IRIX (regression from 2019-12-26).
* lib/mbrtowc.c: Include <stdint.h>.
* modules/mbrtowc (Depends-on): Add stdint.
2020-01-01 Pádraig Brady <P@draigBrady.com>
md5, sha1, sha256, sha512: support --with-openssl=auto-gpl-compat
* m4/gl-openssl.m4: Add a new "auto-gpl-compat" mode,
which will auto enable use of openssl, only for >= version 3,
which is newly licensed under the Apache Software License.
2020-01-01 Bruno Haible <bruno@clisp.org>
mbrtowc: Include function name in macro names.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Define
MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ, not C_LOCALE_MAYBE_EILSEQ.
(gl_MBRTOWC_C_LOCALE): Change cache variable name to
gl_cv_func_mbrtowc_C_locale_sans_EILSEQ.
* lib/mbrtowc.c: Test MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ, not
C_LOCALE_MAYBE_EILSEQ.
2020-01-01 Bruno Haible <bruno@clisp.org>
c32tob: New module.
* lib/uchar.in.h (_GL_LARGE_CHAR32_T): New macro.
(c32tob): New declaration.
* lib/c32tob.c: New file.
* m4/uchar.m4 (gl_UCHAR_MODULE_INDICATOR, gl_UCHAR_H_DEFAULTS): New
macros.
(gl_UCHAR_H): Require gl_UCHAR_H_DEFAULTS.
* modules/uchar (Depends-on): Add snippet/c++defs.
(Makefile.am): Include c++defs.h and substitute GNULIB_C32TOB in
uchar.h.
* modules/c32tob: New file.
* tests/test-uchar.c: Verify that _GL_LARGE_CHAR32_T is correctly
defined.
* tests/test-uchar-c++.cc: Include signature.h. Test the signature of
c32tob.
* modules/uchar-c++-tests (Files): Add tests/signature.h.
* doc/posix-functions/wctob.texi: Mention the new module.
2020-01-01 Bruno Haible <bruno@clisp.org>
locale C++ tests: Fix link error on AIX (regression from 2019-12-18).
* modules/locale-c++-tests (Makefile.am): Link test-locale-c++ with
$(LIB_SETLOCALE).
2020-01-01 Bruno Haible <bruno@clisp.org>
hard-locale tests: Fix a conflict with the C++ tests.
* modules/hard-locale-tests (Makefile.am): Build a program named
'current-locale', not 'locale'.
2020-01-01 Bruno Haible <bruno@clisp.org>
doc: Update documentation about wchar_t.
* doc/*/*wc*.texi: Clarify that 64-bit AIX does not have a too small
wchar_t type.
2020-01-01 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Fix typos.
* tests/test-mbrtowc.c (main): Fix typo.
* tests/test-mbrtowc-w32.c (test_one_locale): Likewise.
2019-12-31 Paul Eggert <eggert@cs.ucla.edu>
maint: update copyright notices
Before doing the following changes done by hand, I also ran ‘make
update-copyright’ and ‘config/srclist-update <config/srclist.txt’
to do most of the copyright years automatically. A few upstream
sources are still in 2019 but these should eventually be changed
automatically too.
* build-aux/declared.sh (func_version):
* build-aux/libtool-next-version (func_version):
* build-aux/run-test (func_version):
Update these notices by hand. Put just the last year
in output of programs, as per GNU coding standards.
2019-12-31 Bruno Haible <bruno@clisp.org>
uchar: Add C++ tests.
* tests/test-uchar-c++.cc: New file.
* tests/test-uchar-c++2.cc: New file.
* modules/uchar-c++-tests: New file.
uchar: Add tests.
* tests/test-uchar.c: New file.
* modules/uchar-tests: New file.
uchar: New module.
* lib/uchar.in.h: New file.
* m4/uchar.m4: New file.
* modules/uchar: New file.
* doc/posix-headers/uchar.texi: Mention the new module.
2019-12-30 Jim Meyering <meyering@fb.com>
localeinfo: ->simple would be wrong for LC_ALL=C
That would lead to using unnecessary and expensive code paths in dfa.c.
* lib/localeinfo.c (using_simple_locale): Fix recently-introduced logic
error that would have made grep many times slower in the C locale.
With this change, and a file created like this:
yes 00 | head -10000000 > in
Running grep as follows becomes more than 40 times faster:
LC_ALL=C grep -Fw 0 in
2019-12-30 Paul Eggert <eggert@cs.ucla.edu>
doc: document trouble with back-references
* doc/regex.texi (Back-reference Operator): Mention bugs etc.
2019-12-29 Paul Eggert <eggert@cs.ucla.edu>
doc: use “back-reference” for \1 etc.
* doc/regex.texi: Consistently spell “back-reference” with
a hyphen, since that’s how POSIX does it.
2019-12-26 Jim Meyering <meyering@fb.com>
test-framework-sh: tighten an internal grep regexp
* tests/init.sh (gl_shell_test_script_): Tighten the grep regexp
that helps test for a working printf.
2019-12-26 Bruno Haible <bruno@clisp.org>
test-framework-sh: Avoid /bin/sh on AIX 7.2 due to its printf built-in.
Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/grep-devel/2019-12/msg00020.html>.
Simplification by Jim Meyering.
* tests/init.sh (gl_shell_test_script_): Add a test of printf of an
octal escape sequence in a UTF-8 locale.
2019-12-26 Paul Eggert <eggert@cs.ucla.edu>
mbrtowc: port better to narrow-wchar_t platforms
* lib/mbrtowc.c (mbrtowc): On platforms like AIX 7.2, where
wchar_t is too narrow to represent all the Unicode characters,
consider a byte sequence for an out-of-wchar_t-range character to
be an encoding error. This fixes grep’s surrogate-pair test
failure on AIX 7.2.
2019-12-24 Bruno Haible <bruno@clisp.org>
localcharset: Avoid referencing rpl_setlocale on native Windows.
* lib/localcharset.c (setlocale): Undefine.
2019-12-24 Bruno Haible <bruno@clisp.org>
lock tests: Fix link error on HP-UX/hppa (regression from 2019-12-21).
* m4/semaphore.m4: New file.
* modules/lock-tests (Files): Add it.
(configure.ac): Require gl_SEMAPHORE.
(Makefile.am): Link test-lock with $(LIB_SEMAPHORE).
2019-12-24 Paul Eggert <eggert@cs.ucla.edu>
strptime: fix typo in previous patch
Problem and fix reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00202.html
* lib/strptime.c (day_of_the_week): Fix paren bug.
2019-12-24 Bruno Haible <bruno@clisp.org>
setlocale-null: Make it easy to rely on the lock in another library.
* lib/setlocale-lock.c: Do not define anything if OMIT_SETLOCALE_LOCK is
defined.
2019-12-23 Paul Eggert <eggert@cs.ucla.edu>
gethrxtime, mktime, nstrftime, strptime: tweak division performance
Performanced analyzed by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00200.html
* config/srclist.txt: Do not sync mktime.c for now.
* lib/mktime.c (shr, ydhms_diff):
* lib/nstrftime.c (SHR, tm_diff, __strftime_internal):
* lib/strptime.c (day_of_the_week):
* lib/xtime.h (xtime_sec):
Redo with neither ‘%’ nor conditional branches.
2019-12-23 Bruno Haible <bruno@clisp.org>
setlocale-null: Export the lock function also on non-Windows platforms.
* lib/setlocale-lock.c (DLL_EXPORTED): New macro.
(gl_get_setlocale_null_lock): Declare as DLL_EXPORTED.
* m4/setlocale_null.m4 (gl_PREREQ_SETLOCALE_LOCK): New macro.
* modules/setlocale-null (configure.ac): Invoke it.
(Files): Add m4/visibility.m4.
2019-12-22 Paul Eggert <eggert@cs.ucla.edu>
gethrxtime: fix rounding bug with negative args
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00192.html
* lib/xtime.h (xtime_sec): Simplify calculation and correct bug
with negative rounding. Common platforms can compute / and % with
a single instruction, so the simplified code should be shorter and
faster on these platforms anyway.
2019-12-22 Bruno Haible <bruno@clisp.org>
gethrxtime: remove incorrect overflow detection
* lib/xtime.h (xtime_make): Remove attempt to prevent internal
integer overflow, as it didn’t suffice. This reverts the xtime.h
part of 2018-10-12T04:46:09Z!akim.demaille@gmail.com, which I
cannot now see the need for anyway (even in cases where it works),
as the patch is helpful only when the signs of S and NS disagree,
and all callers pass nonnegative values for S and NS.
2019-12-22 Bruno Haible <bruno@clisp.org>
setlocale-null: Add standalone include file.
* lib/setlocale_null.h: New file, extracted from lib/locale.in.h.
* lib/locale.in.h: Include setlocale_null.h.
(SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX, setlocale_null_r,
setlocale_null): Remove declarations.
* lib/setlocale_null.c: Include setlocale_null.h.
* lib/localename.c: Likewise.
* modules/setlocale-null (Files): Add lib/setlocale_null.h.
(Depends-on): Add snippet/arg-nonnull.
(Include): Allow either "setlocale_null.h" or <locale.h>.
2019-12-22 Bruno Haible <bruno@clisp.org>
strfmon_l: Fix test failures on FreeBSD and Cygwin.
* m4/strfmon_l.m4 (gl_FUNC_STRFMON_L): Require gt_LOCALE_FR_UTF8. Add an
AC_RUN_IFELSE test.
* modules/strfmon_l (Files): Add locale-fr.m4, codeset.m4.
* doc/posix-functions/strfmon_l.texi: Mention the FreeBSD and Cygwin
problem.
2019-12-22 Bruno Haible <bruno@clisp.org>
Prefer lib_SOURCES to unconditional AC_LIBOBJ.
* modules/at-internal: Prefer a lib_SOURCES augmentation to an
unconditional AC_LIBOBJ.
* modules/selinux-at: Likewise.
* modules/xmemdup0: Likewise.
* modules/xstrtoll: Likewise.
2019-12-22 Bruno Haible <bruno@clisp.org>
longlong: Mark module obsolete.
* modules/longlong (Status, Notice): New sections.
stdint: Assume that the compiler supports 'long long'.
* lib/stdint.in.h (int64_t, uint64_t, intmax_t, uintmax_t, INT64_C,
UINT64_C, INTMAX_C, UINTMAX_C): Assume HAVE_LONG_LONG_INT and
HAVE_UNSIGNED_LONG_LONG_INT to be 1.
* m4/stdint.m4 (gl_STDINT_H): Don't require AC_TYPE_LONG_LONG_INT,
AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/stdint (Files): Remove longlong.m4.
(Makefile.am): Don't substitute HAVE_LONG_LONG_INT,
HAVE_UNSIGNED_LONG_LONG_INT.
inttypes-incomplete: Assume that the compiler supports 'long long'.
* lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX,
_SCNu64_PREFIX): Assume HAVE_LONG_LONG_INT and
HAVE_UNSIGNED_LONG_LONG_INT to be 1.
* m4/inttypes.m4 (gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION): Assume
HAVE_LONG_LONG_INT to be 1.
* modules/inttypes-incomplete (Makefile.am): Don't substitute
HAVE_LONG_LONG_INT, HAVE_UNSIGNED_LONG_LONG_INT.
malloca: Assume that the compiler supports 'long long'.
* lib/malloca.h: Assume HAVE_LONG_LONG_INT to be 1.
* m4/malloca.m4 (gl_MALLOCA): Don't require AC_TYPE_LONG_LONG_INT.
* modules/malloca (Files): Remove longlong.m4.
* modules/relocatable-prog-wrapper (Files): Likewise.
atoll: Assume that the compiler supports 'long long'.
* m4/atoll.m4 (gl_FUNC_ATOLL): Don't require AC_TYPE_LONG_LONG_INT.
* modules/atoll (Files): Remove longlong.m4.
strtoll: Assume that the compiler supports 'long long'.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Don't require AC_TYPE_LONG_LONG_INT.
* modules/strtoll (Files): Remove longlong.m4.
strtoull: Assume that the compiler supports 'long long'.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Don't require
AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/strtoull (Files): Remove longlong.m4.
strtoimax, strtoumax: Assume that the compiler supports 'long long'.
* lib/strtoimax.c: Assume HAVE_LONG_LONG_INT and
HAVE_UNSIGNED_LONG_LONG_INT to be 1.
* m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Don't require
AC_TYPE_LONG_LONG_INT.
* m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't require
AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/strtoimax (Files): Remove longlong.m4.
* modules/strtoumax (Files): Likewise.
xstrtoll: Assume that the compiler supports 'long long'.
* lib/xstrtol.h (xstrtoll, xstrtoull): Declare unconditionally.
* modules/xstrtoll (configure.ac): Don't invoke AC_TYPE_LONG_LONG_INT.
vasnprintf: Assume that the compiler supports 'long long'.
* lib/printf-args.h: Assume HAVE_LONG_LONG_INT to be 1.
* lib/printf-args.c (PRINTF_FETCHARGS): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Likewise.
* m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Don't
require AC_TYPE_LONG_LONG_INT.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE,
gl_PREREQ_VASNPRINTF): Likewise.
* modules/vasnprintf (Files): Remove longlong.m4.
* modules/c-vasnprintf (Files): Likewise.
* modules/unistdio/u8-vasnprintf (Files): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
* modules/unistdio/u16-vasnprintf (Files): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
* modules/unistdio/u32-vasnprintf (Files): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
* modules/unistdio/ulc-vasnprintf (Files): Likewise.
gethrxtime: Assume that the compiler supports 'long long'.
* lib/xtime.h (xtime_t): Define to 'long long int' always.
(XTIME_PRECISION): Define to 1000000000 always.
(xtime_make, xtime_sec): Optimize accordingly.
* m4/gethrxtime.m4 (gl_XTIME): Don't require AC_TYPE_LONG_LONG_INT.
* modules/gethrxtime (Files): Remove longlong.m4.
integer_length*: Assume that the compiler supports 'long long'.
* lib/integer_length.h (integer_length_ll): Declare unconditionally.
* modules/integer_length (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/integer_length_l (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/integer_length_ll (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.
count-one-bits: Assume that the compiler supports 'long long'.
* lib/count-one-bits.h (count_one_bits_ll): Define unconditionally.
* m4/count-one-bits.m4: Remove file.
* modules/count-one-bits (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_ONE_BITS.
* tests/test-count-one-bits.c (main): Test count_one_bits_ll
unconditionally.
count-trailing-zeros: Assume that the compiler supports 'long long'.
* lib/count-trailing-zeros.h (count_trailing_zeros_ll): Define
unconditionally.
* m4/count-trailing-zeros.m4: Remove file.
* modules/count-trailing-zeros (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_TRAILING_ZEROS.
* tests/test-count-trailing-zeros.c (main): Test count_trailing_zeros_ll
unconditionally.
count-leading-zeros: Assume that the compiler supports 'long long'.
* lib/count-leading-zeros.h (count_leading_zeros_ll): Define
unconditionally.
* m4/count-leading-zeros.m4: Remove file.
* modules/count-leading-zeros (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_LEADING_ZEROS.
* tests/test-count-leading-zeros.c (main): Test count_leading_zeros_ll
unconditionally.
2019-12-22 Bruno Haible <bruno@clisp.org>
localcharset: Update support for OpenBSD.
* lib/localcharset.c (alias_table): Map "US-ASCII" to "ASCII".
2019-12-21 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Avoid test failure on NetBSD 8.0.
* tests/test-pthread_sigmask2.c (main): Skip the error handling test on
NetBSD.
* doc/posix-functions/pthread_sigmask.texi: Mention the NetBSD problem.
2019-12-21 Bruno Haible <bruno@clisp.org>
threadlib: Improve code structure.
* m4/threadlib.m4: Reorder macros. Add comments.
2019-12-21 Bruno Haible <bruno@clisp.org>
threadlib: Fix LIBMULTITHREAD on FreeBSD with --enable-threads=isoc.
* m4/threadlib.m4 (gl_STDTHREADLIB_BODY): New macro (some code moved
here from m4/threads.m4).
(gl_THREADLIB_BODY): Don't test whether mtx_lock and cnd_timedwait exist
in libc. Instead, rely on gl_STDTHREADLIB_BODY.
(gl_STDTHREADLIB): New macro.
* m4/threads.m4 (gl_THREADS_H): Require gl_STDTHREADLIB instead of
gl_THREADLIB_BODY and gl_YIELD. Don't set LIBSTDTHREAD here.
2019-12-21 Bruno Haible <bruno@clisp.org>
sched_yield: Don't depend on threadlib and yield.
* m4/threadlib.m4 (gl_PTHREADLIB): Document that it sets
LIB_SCHED_YIELD.
(gl_PTHREADLIB_BODY): Set LIB_SCHED_YIELD (code moved here from
m4/yield.m4).
* m4/sched_yield.m4 (gl_FUNC_SCHED_YIELD): Require gl_PTHREADLIB, not
gl_THREADLIB and gl_YIELD.
* m4/yield.m4 (gl_YIELD): Require gl_PTHREADLIB. Determine YIELD_LIB
based on $(LIB_SCHED_YIELD).
* m4/threads.m4 (gl_THREADS_H): Don't require gl_YIELD. Use
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/sched_yield (Files): Remove yield.m4. Add threadlib.m4.
(Depends-on): Remove threadlib.
(Link): Mention $(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/threads-h (Files): Remove m4/yield.m4.
* modules/pthread-cond-tests (Makefile.am): Link the programs against
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/pthread-mutex-tests (Makefile.am): Likewise.
* modules/pthread-once-tests (Makefile.am): Likewise.
* modules/pthread-rwlock-tests (Makefile.am): Likewise.
* modules/pthread-tss-tests (Makefile.am): Likewise.
2019-12-21 Bruno Haible <bruno@clisp.org>
threads-h: Don't depend on threadlib.
* modules/threads-h (configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY,
not gl_THREADLIB_EARLY.
2019-12-21 Bruno Haible <bruno@clisp.org>
nl_langinfo tests: Fix link error (regression from 2019-12-18).
* modules/nl_langinfo-tests (Makefile.am): Link also test-nl_langinfo
with $(LIB_SETLOCALE).
2019-12-21 Bruno Haible <bruno@clisp.org>
threadlib: Remove unused dependency (left over from 2019-07-06).
* modules/threadlib (Depends-on): Remove havelib.
2019-12-21 Bruno Haible <bruno@clisp.org>
New convention for multithread-safety tests.
* tests/test-setlocale_null-mt-one.c: Renamed from
tests/test-setlocale_null-one.c.
* tests/test-setlocale_null-mt-all.c: Renamed from
tests/test-setlocale_null-all.c.
* modules/setlocale-null-tests (Files, Makefile.am): Update.
2019-12-21 Bruno Haible <bruno@clisp.org>
quotearg tests: Fix conflict with hard-locale tests.
* tests/testlocale: Renamed from tests/locale.
* modules/quotearg-tests (Files): Update.
* tests/test-quotearg.sh (LOCALEDIR): Likewise.
2019-12-21 Bruno Haible <bruno@clisp.org>
pthread-thread, lock: On z/OS, use PTHREAD_RWLOCK_INITIALIZER_NP.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00001.html>
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00167.html>
* lib/pthread.in.h (PTHREAD_RWLOCK_INITIALIZER): Define to
PTHREAD_RWLOCK_INITIALIZER_NP when possible.
* lib/glthread/lock.h: Allow PTHREAD_RWLOCK_INITIALIZER_NP as an
alternative to PTHREAD_RWLOCK_INITIALIZER.
* lib/glthread/lock.c: Likewise.
2019-12-21 Bruno Haible <bruno@clisp.org>
memcmp tests: Work around the clang bug.
* tests/test-memcmp.c (main): Use a volatile function pointer to disable
the clang optimization.
2019-12-20 Bruno Haible <bruno@clisp.org>
localcharset: Add support for z/OS encoding names.
* lib/localcharset.h: Mention which encodings are used as locale
encodings on z/OS.
2019-12-20 Bruno Haible <bruno@clisp.org>
iconv_open: Add support for z/OS encoding names.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00172.html>.
* lib/iconv_open-zos.gperf: New file.
* modules/iconv_open (Files): Add iconv_open-zos.gperf.
(Makefile.am): Add rules for generating iconv_open-zos.h from it.
* lib/iconv_open.c (ICONV_FLAVOR_ZOS): New macro.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): On z/OS, use ICONV_FLAVOR_ZOS.
* doc/posix-functions/iconv_open.texi: Mention z/OS.
2019-12-20 Bruno Haible <bruno@clisp.org>
doc: Document the problem of the per-thread locale functions on z/OS.
* doc/posix-functions/uselocale.texi: Document the z/OS problem.
* doc/posix-functions/newlocale.texi: Likewise.
* doc/posix-functions/duplocale.texi: Likewise.
* doc/posix-functions/freelocale.texi: Likewise.
2019-12-20 Bruno Haible <bruno@clisp.org>
localename, gettext: Fix host_os value for z/OS.
* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Fix host_os value in
cross-configuration code.
2019-12-19 Jim Meyering <meyering@fb.com>
nstrftime: avoid a shadowing warning
* lib/nstrftime.c (libc_hidden_def): Rename inner "i" to "j",
to avoid shadowing an "i" declared hundreds of lines above.
2019-12-19 Paul Eggert <eggert@cs.ucla.edu>
dfa: struct dfamust now uses flexible array
* lib/dfa.c: Include flexmember.h.
(dfamust, dfamustfree): Adjust to struct dfamust change.
This saves a call to malloc+free.
* lib/dfa.h (struct dfamust): Make the final member a
flexible array member.
* modules/dfa (Depends-on): Add flexmember.
dfa: fast->small for array elements
* lib/dfa.c (charclass_word): Use uint_least64_t not uint_fast64_t,
since this type is used in arrays. This change is more for
documentation than for any practical effect, since the two types
are the same on all known platforms.
2019-12-19 Bruno Haible <bruno@clisp.org>
iconv tests: Test canonicalized, not system-dependent, encoding names.
* tests/test-iconv.c (main): Revert part of the 2016-08-17 patch.
* modules/iconv-tests (Depends-on): Add iconv_open.
2019-12-18 Bruno Haible <bruno@clisp.org>
localename: Fix test failure on AIX 7.2.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Enable nameless
locales on AIX.
* lib/localename.c (gl_locale_name_thread_unsafe): Handle nameless
locales on AIX.
2019-12-18 Paul Eggert <eggert@cs.ucla.edu>
Improve port of AC_C_RESTRICT to Oracle C++
Problem reported by Christian Biesinger in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00159.html
* m4/gnulib-common.m4 (AC_C_RESTRICT): Port better to
Oracle Developer Studio C++ 12.5 or later.
2019-12-18 Bruno Haible <bruno@clisp.org>
wchar: Fix test failures on AIX and MSVC (regression from 2019-12-07).
* lib/wchar.in.h (GNULIB_defined_mbstate_t): Do define on AIX and MSVC.
2019-12-18 Bruno Haible <bruno@clisp.org>
localename: Ensure multithread-safety in future changes.
* lib/localename.c (setlocale): Reference the system's setlocale().
(get_locale_t_name): Invoke setlocale_null instead of setlocale.
(gl_locale_name_posix): Likewise.
* modules/localename (Depends-on): Add setlocale-null.
2019-12-18 Bruno Haible <bruno@clisp.org>
setlocale-null: Make API more useful.
* lib/locale.in.h (setlocale_null_r): Renamed from setlocale_null. All
callers changed.
(setlocale_null): New declaration.
* lib/setlocale_null.c (setlocale_null_androidfix): New function,
extracted from setlocale_null_unlocked.
(setlocale_null_unlocked): Invoke it.
(setlocale_null_r): Renamed from setlocale_null.
(setlocale_null): New function, extracted from setlocale_mtsafe in
setlocale.c.
* lib/setlocale.c: Don't include <errno.h>.
(setlocale_mtsafe): Invoke setlocale_null.
* lib/setlocale-lock.c: Update comments.
* doc/posix-functions/setlocale.texi: Mention both functions.
2019-12-18 Bruno Haible <bruno@clisp.org>
localename: Optimize code for native Windows.
* lib/localename.c (gl_locale_name_posix): Remove handling of LC_ALL
category (not allowed here).
2019-12-18 Bruno Haible <bruno@clisp.org>
setlocale: Make calls with NULL argument multithread-safe.
* lib/setlocale.c: Include <errno.h>.
(setlocale_mtsafe): New function.
(setlocale_unixlike): Invoke setlocale_mtsafe instead of setlocale.
(setlocale_improved): Renamed from rpl_setlocale.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Require gl_FUNC_SETLOCALE_NULL.
Set and define NEED_SETLOCALE_IMPROVED and NEED_SETLOCALE_MTSAFE. Set
LIB_SETLOCALE.
* modules/setlocale (Depends-on): Add setlocale-null. Update conditions.
(Link): New section.
* tests/locale.c: Undefine setlocale.
* tests/test-setlocale_null-one.c: Likewise.
* tests/test-setlocale_null-all.c: Likewise.
* modules/setlocale-tests (Makefile.am): Link the test programs with
$(LIB_SETLOCALE).
* modules/astrxfrm-tests (Makefile.am): Likewise.
* modules/btowc-tests (Makefile.am): Likewise.
* modules/c-ctype-tests (Makefile.am): Likewise.
* modules/c-snprintf-tests (Makefile.am): Likewise.
* modules/c-strcase-tests (Makefile.am): Likewise.
* modules/c-vasprintf-tests (Makefile.am): Likewise.
* modules/c-vsnprintf-tests (Makefile.am): Likewise.
* modules/c-xvasprintf-tests (Makefile.am): Likewise.
* modules/dfa-tests (Makefile.am): Likewise.
* modules/duplocale-tests (Makefile.am): Likewise.
* modules/hard-locale-tests (Makefile.am): Likewise.
* modules/localcharset-tests (Makefile.am): Likewise.
* modules/localename-tests (Makefile.am): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Likewise.
* modules/mbmemcasecoll-tests (Makefile.am): Likewise.
* modules/mbrtowc-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsinit-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbsnrtowcs-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsrtowcs-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/nl_langinfo-tests (Makefile.am): Likewise.
* modules/quotearg-tests (Makefile.am): Likewise.
* modules/regex-tests (Makefile.am): Likewise.
* modules/strfmon_l-tests (Makefile.am): Likewise.
* modules/strtod-tests (Makefile.am): Likewise.
* modules/strtold-tests (Makefile.am): Likewise.
* modules/unicase/locale-language-tests (Makefile.am): Likewise.
* modules/unicase/ulc-casecmp-tests (Makefile.am): Likewise.
* modules/unicase/ulc-casecoll-tests (Makefile.am): Likewise.
* modules/unigbrk/ulc-grapheme-breaks-tests (Makefile.am): Likewise.
* modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/uniwbrk/ulc-wordbreaks-tests (Makefile.am): Likewise.
* modules/vasnprintf-posix-tests (Makefile.am): Likewise.
* modules/wcrtomb-tests (Makefile.am): Likewise.
* modules/wcsnrtombs-tests (Makefile.am): Likewise.
* modules/wcsrtombs-tests (Makefile.am): Likewise.
* modules/wcwidth-tests (Makefile.am): Likewise.
* doc/posix-functions/setlocale.texi: Mention that the multithread-
safety fix is also available in module 'setlocale'.
2019-12-18 Bruno Haible <bruno@clisp.org>
hard-locale: Make multithread-safe.
* lib/hard-locale.h (hard_locale): Move documentation to here.
* lib/hard-locale.c: Don't include <stdlib.h>.
(GLIBC_VERSION): Remove macro.
(hard_locale): Assume that all systems name the "C" and "POSIX" locales
"C" or "POSIX". Invoke setlocale_null instead of setlocale.
* modules/hard-locale (Depends-on): Remove strdup. Add setlocale-null.
(configure.ac): Require gl_FUNC_SETLOCALE_NULL. Set LIB_HARD_LOCALE.
(Link): New section.
* modules/hard-locale-tests (Makefile.am): Link test-hard-locale against
$(LIB_HARD_LOCALE).
2019-12-18 Bruno Haible <bruno@clisp.org>
hard-locale: Avoid test failure on Haiku.
* tests/test-hard-locale.c (test_one): Treat Haiku like recent OpenBSD.
2019-12-18 Bruno Haible <bruno@clisp.org>
setlocale-null: Handle NULL result from setlocale.
* lib/locale.in.h (setlocale_null): Document EINVAL return value.
* lib/setlocale_null.c (setlocale_null_unlocked): Handle NULL result
from setlocale or _wsetlocale.
2019-12-18 Bruno Haible <bruno@clisp.org>
hard-locale: Add test.
* tests/test-hard-locale.c: New file.
* tests/locale.c: New file.
* modules/hard-locale-tests: New file.
2019-12-17 Paul Eggert <eggert@cs.ucla.edu>
dfa: do not match invalid UTF-8
* lib/dfa.c (struct dfa): Grow utf8_anychar_classes member array
from 5 to 9 tokens; this is needed due to the changes to
add_utf8_anychar.
(charclass_index): 2nd arg is now pointer-to-const.
(add_utf8_anychar): Match only valid UTF-8 byte sequences
instead of allowing overlong encodings or surrogate halves.
dfa: simplify charclass by assuming C99
* lib/dfa.c (CHARCLASS_WORD_BITS): Now always 64.
(charclass_word): Now always uint_fast64_t.
(CHARCLASS_PAIR): Remove.
(CHARCLASS_INIT): Take 4 arguments instead of 8. All uses changed.
fts: tune via calloc
* lib/fts.c (fts_open): Prefer calloc to malloc + memset.
dfa: tune via xzalloc
* lib/dfa.c (dfaoptimize): Prefer xzalloc to xmalloc + memset.
2019-12-17 Bruno Haible <bruno@clisp.org>
localcharset: Fix multithread-safety bug on Windows and OS/2.
* lib/localcharset.h (locale_charset): Clarify when the result becomes
invalid.
* lib/localcharset.c (locale_charset): Use a stack-allocated buffer to
assemble the result.
2019-12-17 Bruno Haible <bruno@clisp.org>
localcharset: Optimize code for native Windows.
* lib/localcharset.c (locale_charset): Don't bother calling
setlocale (LC_ALL, NULL) since we're not interested in its result.
2019-12-17 Bruno Haible <bruno@clisp.org>
nl_langinfo: Fix multithread-safety bug on OpenBSD 3.8.
* lib/nl_langinfo.c (ctype_codeset): Invoke setlocale_null instead of
setlocale.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Require
gl_FUNC_SETLOCALE_NULL. Set LIB_NL_LANGINFO.
* modules/nl_langinfo (Depends-on): Add setlocale-null.
2019-12-17 Bruno Haible <bruno@clisp.org>
nl_langinfo: Fix multithread-safety bug on mingw and MSVC.
* lib/nl_langinfo.c (ctype_codeset, rpl_nl_langinfo): Use a
stack-allocated buffer to assemble each result and different static
buffers to return it.
* tests/test-nl_langinfo-mt.c: New file.
* modules/nl_langinfo-tests (Files): Add it.
(Depends-on): Add thread, nanosleep.
(Makefile.am): Build test-nl_langinfo-mt test.
2019-12-17 Bruno Haible <bruno@clisp.org>
langinfo: Document more details.
* doc/posix-headers/langinfo.texi: List platform details.
* doc/posix-functions/nl_langinfo.texi: Likewise.
2019-12-17 Bruno Haible <bruno@clisp.org>
mbsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined.
Reported by Tom Kacvinsky <tom.kacvinsky@vector.com>
and Martin Storsjö <martin@martin.st>
in <https://savannah.gnu.org/bugs/?57406>.
* lib/mbsinit.c: Accommodate an MSVC-like mbstate_t definition with
mingw.
2019-12-17 Bruno Haible <bruno@clisp.org>
glob: Avoid warning on mingw.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00122.html>.
* lib/glob.c (__stat64): Undefine first.
2019-12-17 Paul Eggert <eggert@cs.ucla.edu>
xalloc: tune xzalloc for fresh allocations
* lib/xmalloc.c (xzalloc): Use xcalloc rather than xmalloc+memset,
because when the memory is freshly allocated from the OS via sbrk
or mmap, calloc can avoid doing the memset.
dfa: new function dfacopysyntax
* lib/dfa.c (struct dfa): Move syntax member later so
that dfacopysyntax can easily clear earlier members.
(dfacopysyntax): New function, used by Gawk.
2019-12-16 Paul Eggert <eggert@cs.ucla.edu>
dfa: port _GL_ATTRIBUTE_MALLOC to Gawk
Gawk does not use Gnulib, and does not define _GL_ATTRIBUTE_MALLOC.
* lib/dfa.h (_GL_ATTRIBUTE_MALLOC): Define to empty
if not already defined.
dfa: remove one dependency on MB_CUR_MAX
* lib/dfa.c (dfamust): No need to refer to MB_CUR_MAX here.
dfa: remove struct lexer_state.cur_mb_len
* lib/dfa.c (struct lexer_state): Remove cur_mb_len member,
as it’s not needed and the code is simpler without it.
All uses removed.
2019-12-16 Bruno Haible <bruno@clisp.org>
setlocale-null: Remove need for -lpthread on musl libc, *BSD, Haiku.
Reported by Arnold Robbins <arnold@skeeve.com>.
* lib/setlocale_null.c (c11_threads_in_use, pthread_in_use): New macros,
copied from lib/glthread/lock.h.
(pthread_mutex_lock, pthread_mutex_unlock): Mark as weak.
(setlocale_null_with_lock): If pthread_in_use() is false, use
setlocale_null_unlocked directly.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): New macro, extracted from
gl_THREADLIB_BODY. Define HAVE_WEAK_SYMBOLS.
(gl_THREADLIB_BODY): Invoke gl_WEAK_SYMBOLS.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Invoke gl_WEAK_SYMBOLS.
Set LIB_SETLOCALE_NULL to empty if weak symbols are supported.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Add comment.
2019-12-16 Paul Eggert <eggert@cs.ucla.edu>
dfa: make dfasyntax thread-safe
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00099.html
* lib/dfa.c: Do not include locale.h.
(struct dfa): Remove simple_locale member.
All uses replaced by localeinfo.simple.
(using_simple_locale): Remove; now present (with some
changes) in localeinfo.c.
(dfasyntax): No need to initialize removed member.
localeinfo: record whether locale is simple
* lib/localeinfo.c (using_simple_locale): New function,
copied here from lib/dfa.c but with a change: it uses
strcoll for its heuristic, instead of using setlocale.
This lets it be thread-safe.
* lib/localeinfo.h (struct localeinfo): New member ‘simple’.
2019-12-15 Bruno Haible <bruno@clisp.org>
duplocale: Fix multithread-safety bug on AIX.
* lib/duplocale.c: Don't include <stdlib.h>.
(rpl_duplocale): Invoke setlocale_null instead of setlocale.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Require gl_FUNC_SETLOCALE_NULL.
Set LIB_DUPLOCALE.
* modules/duplocale (Depends-on): Add setlocale-null.
(Link): New section.
* modules/duplocale-tests (Makefile.am): Link test-duplocale with
$(LIB_DUPLOCALE).
2019-12-15 Bruno Haible <bruno@clisp.org>
setlocale-null: Add tests.
* tests/test-setlocale_null.c: New file.
* tests/test-setlocale_null-one.c: New file.
* tests/test-setlocale_null-all.c: New file.
* modules/setlocale-null-tests: New file.
setlocale-null: New module.
* lib/locale.in.h (SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX,
setlocale_null): New declarations.
* lib/setlocale_null.c: New file.
* lib/setlocale-lock.c: New file.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Define C macro HAVE_PTHREAD_API.
* m4/setlocale_null.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize
GNULIB_SETLOCALE_NULL.
* modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE_NULL.
* modules/setlocale-null: New file.
* doc/posix-functions/setlocale.texi: Mention the new module.
2019-12-15 Bruno Haible <bruno@clisp.org>
lock tests: Skip test when no multithreading is enabled.
* tests/test-rwlock1.c: Skip the test when no multithreading is enabled.
2019-12-14 Bruno Haible <bruno@clisp.org>
locale, duplocale, localename: Fix last patch.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00093.html>.
* lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE):
Don't define if locale_t does not exist.
2019-12-13 Bruno Haible <bruno@clisp.org>
locale, duplocale, localename: Fix errors if locale_t does not exist.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00078.html>.
* lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New
macros.
* tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of
HAVE_NEWLOCALE.
* tests/test-localename.c: Likewise.
* tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of
HAVE_DUPLOCALE.
* tests/test-locale-c++.cc: Likewise.
2019-12-13 Bruno Haible <bruno@clisp.org>
wcstok: Fix test failure on HP-UX.
* m4/wcstok.m4 (gl_FUNC_WCSTOK): Set REPLACE_WCSTOK to 1 on HP-UX.
* doc/posix-functions/wcstok.texi: Mention the HP-UX bug.
2019-12-12 Bruno Haible <bruno@clisp.org>
strtod, strtold tests: Avoid test failure on AIX 7.2.
* tests/test-strtod1.c (main): Allow implementations in which ',' and
'.' both are radix characters.
* tests/test-strtold1.c (main): Likewise.
2019-12-12 Paul Eggert <eggert@cs.ucla.edu>
dfa: prefer ptrdiff_t for API, too
Also, use ‘idx_t’ for ptrdiff_t values that must be nonnegative,
but do this only for internal use for now.
* NEWS: Mention the API change.
* lib/dfa.c (idx_t, IDX_MAX): New type and max value, for internal
use for now. Use them instead of ptrdiff_t and PTRDIFF_MAX for
values known to be nonnegative.
(dfaparse, dfaexec_mb, dfaexec_sb, dfaexec_noop, dfaexec):
Prefer idx_t or ptrdiff_t to size_t for API.
* lib/dfa.h (dfaparse, dfacomp, dfaexec):
Prefer ptrdiff_t to size_t for API.
stdalign: port to xlclang 16.01
Problem reportd by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00064.html
* lib/stdalign.in.h (_Alignas): Do not use __attribute__
((__aligned__ (...))) with xlclang, as a top-level
‘char __attribute__ ((__aligned__ (8))) c;’ does not work with
xlclang version 16.01.0000.0001; the alignment directive is ignored.
2019-12-12 Bruno Haible <bruno@clisp.org>
duplocale: Fix test failure on AIX 7.2 with xlclang.
* lib/duplocale.c: Include <stdlib.h>.
(rpl_duplocale): Use a heap-allocated copy of the first setlocale return
value.
2019-12-12 Bruno Haible <bruno@clisp.org>
stddef: Document the AIX xlc issue.
* doc/posix-headers/stddef.texi: Document the NULL issue with AIX xlc.
2019-12-12 Bruno Haible <bruno@clisp.org>
duplocale: Don't attempt to override if locale_t does not exist.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00039.html>.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): If locale_t does not exist, set
HAVE_DUPLOCALE to 0.
2019-12-12 Bruno Haible <bruno@clisp.org>
wcwidth: Avoid test failure on AIX 7.2.
* tests/test-wcwidth.c (main): Don't fail if wcwidth(0x200B) is
negative.
* doc/posix-functions/wcwidth.texi: Mention the AIX issue.
2019-12-12 Bruno Haible <bruno@clisp.org>
ilogbl: Work around Cygwin bug.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test whether ilogbl(0.0L) is
correct.
* doc/posix-functions/ilogbl.texi: Mention the Cygwin bug.
2019-12-12 Bruno Haible <bruno@clisp.org>
strtold: Work around Cygwin bug.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Add test for the underflow problem.
If it is present, define STRTOLD_HAS_UNDERFLOW_BUG.
* lib/strtod.c (HAVE_UNDERLYING_STRTOD): Set to 0 if
STRTOLD_HAS_UNDERFLOW_BUG is defined.
* doc/posix-functions/strtold.texi: Mention the Cygwin bug.
2019-12-12 Bruno Haible <bruno@clisp.org>
strtold: Fix autoconf test.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Test strtold, not strtod.
2019-12-11 Bruno Haible <bruno@clisp.org>
fsync tests: Skip test that is known to fail.
* doc/posix-functions/fsync.texi: Update list of platforms.
* tests/test-fsync.c (main): Skip test with read-only file descriptors
that is known to fail on AIX and Cygwin.
2019-12-11 Bruno Haible <bruno@clisp.org>
getaddrinfo: Fix calling convention in 32-bit mode on native Windows.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Test whether getaddrinfo has a
non-POSIX signature. If so, set REPLACE_GETADDRINFO. Define
HAVE_GETADDRINFO as a C macro.
* lib/netdb.in.h (getaddrinfo, freeaddrinfo): If REPLACE_GETADDRINFO,
declare as replacement functions.
* lib/getaddrinfo.c (getaddrinfo, freeaddrinfo): If HAVE_GETADDRINFO,
define as no-op overrides.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Initialize REPLACE_GETADDRINFO.
* modules/netdb (Makefile.am): Substitute REPLACE_GETADDRINFO.
* modules/getaddrinfo (Depends-on, configure.ac): Test
REPLACE_GETADDRINFO.
* doc/posix-functions/getaddrinfo.texi: Mention calling convention
problem.
* doc/posix-functions/freeaddrinfo.texi: Mention header file and calling
convention problems.
2019-12-11 Paul Eggert <eggert@cs.ucla.edu>
dfa: prefer signed integers for internals
Signed integers can be checked more easily for integer overflow.
* lib/dfa.c (position, struct lexer_state, struct parser_state)
(struct dfa, mbs_to_wchar, fetch_wc, parse_bracket_exp)
(struct lexptr, lex, addtok_mb, add_utf8_anychar, atom)
(nsubtoks, copytoks, closure, alloc_position_set, delete)
(replace, state_index, epsclosure, charclass_context)
(state_separate_contexts, merge_nfa_state, dfaoptimize)
(dfaanalyze, build_state, dfaexec_main, dfa_supported)
(maybe_disable_superset_dfa, dfassbuild, dfafree, enlist)
(comsubs, inboth, allocmust):
Prefer a signed to an unsigned integer when calculating indexes,
unless the integer is part of the external API (a bigger deal,
and to be done later).
dfa: fix index overflow
* lib/dfa.c (compare): Avoid integer overflow when analyzing
very large regular expressions.
dfa: update commentary for previous change
* NEWS: Mention the change.
* lib/dfa.c, lib/dfa.h (dfaparse, dfamust, dfacomp): Update comments.
2019-12-11 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: separate parse and compile phase
‘dfamust’ must be called after parsing and before tokens are
reordered, but both are executed in the compilation phase.
Token reordering was introduced in Gnulib commit
2018-10-22T15:01:08Z!noritnk@kcn.ne.jp
(5c7a0371823876cca7a1347fa09ca26bbbff0c98).
* lib/dfa.c (dfaparse): Change it to global function.
(dfacomp): If first argument is NULL, skip parse.
* lib/dfa.h: (dfaparse): Add a prototype.
2019-12-11 Bruno Haible <bruno@clisp.org>
unistd tests: Fix link error on MSVC.
* modules/unistd-c++-tests (Makefile.am): Link test-unistd-c++ against
$(LIB_GETLOGIN).
2019-12-11 Bruno Haible <bruno@clisp.org>
doc: Document that ISO C or POSIX substitutes are supported in C++ mode.
* doc/gnulib-intro.texi (Various Kinds of Modules): Document that ISO C
and POSIX substitutes are supported in C++ mode.
* NEWS: Likewise.
2019-12-11 Bruno Haible <bruno@clisp.org>
stddef: Fix compilation error in C++ mode on MSVC.
* lib/stddef.in.h (max_align_t): With MSVC in C++ mode, don't define it;
instead, include <cstddef>.
2019-12-11 Bruno Haible <bruno@clisp.org>
unistd: Fix compilation error in C++ mode on MSVC.
* lib/unistd.in.h: Don't do include[_next] <unistd.h> if the platform
does not have <unistd.h>.
2019-12-11 Bruno Haible <bruno@clisp.org>
locale: Fix compilation error in C++ mode on MSVC.
* m4/locale_h.m4 (gl_LOCALE_H): Don't set REPLACE_STRUCT_LCONV on MSVC.
* lib/locale.in.h (int_p_cs_precedes, int_p_sign_posn,
int_p_sep_by_space, int_n_cs_precedes, int_n_sign_posn,
int_n_sep_by_space): Define as macros on MSVC.
2019-12-11 Bruno Haible <bruno@clisp.org>
wchar: Fix compilation error in C++ mode on MSVC.
* lib/wchar.in.h (mbstate_t): Don't override on MSVC.
2019-12-11 Bruno Haible <bruno@clisp.org>
pthread-thread: Fix compilation error in C++ mode on MSVC.
* lib/pthread.in.h (pthread_exit): Don't use _Noreturn in the
_GL_CXXALIAS_RPL invocation.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on Haiku.
* lib/stdio.in.h (vdprintf): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/spawn.in.h (posix_spawnattr_getschedpolicy,
posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam,
posix_spawnattr_setschedparam): Likewise.
* lib/stdlib.in.h (random, initstate_r, setstate_r): Use
_GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS.
* lib/unistd.in.h (usleep): Likewise.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors in 32-bit C++ mode on HP-UX 11/ia64.
* m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): New macro.
* modules/fseeko (configure.ac-early): Require it instead of
AC_FUNC_FSEEKO.
* modules/ftello (configure.ac-early): Likewise.
* modules/fflush (configure.ac-early): Likewise.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation error in C++ mode on HP-UX 11.
* lib/unistd.in.h (getpagesize): Declare on HP-UX.
* doc/glibc-functions/getpagesize.texi: Mention the HP-UX problem.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors on HP-UX 11/ia64.
* lib/math.in.h (copysignf, fmaf, fma): Undefine before
_GL_FUNCDECL_SYS.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation error in C++ mode on OpenBSD.
* lib/signal.in.h (signal): Declare on OpenBSD.
2019-12-08 Bruno Haible <bruno@clisp.org>
math tests: Don't fail if isfinite, isinf, isnan, signbit is a macro.
* tests/test-math-c++.cc (isfinite, isinf, isnan, signbit): Use #warning
instead of #error.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on FreeBSD.
* lib/pthread.in.h (pthread_exit): Remove _Noreturn from prototype.
* tests/test-pthread-c++.cc (GNULIB_NAMESPACE::pthread_exit): Likewise.
* lib/threads.in.h (thrd_exit): Likewise.
* tests/test-threads-c++.cc (GNULIB_NAMESPACE::thrd_exit): Likewise.
2019-12-08 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on macOS and FreeBSD.
* lib/math.in.h (isfinite, isinf, isnan, signbit): In C++ mode on macOS
or FreeBSD with clang, use the approach without C preprocessor macro.
2019-12-07 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on AIX with xlclang++.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00009.html>.
* lib/wchar.in.h (mbstate_t): Don't override on AIX.
2019-12-07 Bruno Haible <bruno@clisp.org>
Document compilation error in C++ mode on NetBSD 8.0.
* doc/posix-headers/monetary.texi: Mention the NetBSD bug.
2019-12-07 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on Solaris 10.
* m4/stdbool.m4 (AM_STDBOOL_H): Require AC_CANONICAL_HOST. Set STDBOOL_H
to non-empty on Solaris with a non-GCC compiler.
* doc/posix-headers/stdbool.texi: Mention the Solaris issue.
2019-12-07 Bruno Haible <bruno@clisp.org>
Reword NEWS entry.
* NEWS: Reword the latest NEWS entry.
2019-12-05 Pino Toscano <ptoscano@redhat.com>
Move xstrtol_fatal to a new xstrtol-error module.
* lib/xstrtol.h: Stop including <getopt.h>.
(xstrtol_fatal): Move ...
* lib/xstrtol-error.h: ... here. New file.
* lib/xstrtol-error.c: Include xstrtol-error.h instead of xstrtol.h.
* tests/test-xstrtol.c: Likewise.
* modules/xstrtol (Files): Remove lib/xstrtol-error.c.
(Depends-on): Remove exitfail, error, getopt-gnu, and gettext-h.
(Makefile.am): Remove xstrtol-error.c from lib_SOURCES.
* modules/xstrtol-error: New file.
* modules/xstrtol-tests (Depends-on): Add xstrtol-error.
* MODULES.html.sh: Add xstrtol-error.
* NEWS: Document the change.
2019-12-06 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: better width support for %N, %z
* lib/nstrftime.c (width_add, width_add1, width_cpy):
New macros, which generalize ‘add’, ‘add1’, ‘cpy’ by adding
a new WIDTH parameter.
(add, add1, cpy): Use these macros.
(width_add): Do not treat digits == 0 as a special case,
do not pad if padding is ‘-’, and do not use a negative width.
(__strftime_internal): Redo formatting of nanoseconds and numeric
timezones to avoid buffer misuse in unusual cases, and so that
widths make more sense. Add support for widths greater than 9 to
the %N format; they are zero filled on the right.
* tests/test-nstrftime.c (posixtm_test): Add a %12N test.
2019-12-05 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode on Solaris 10 and Solaris 11.
* m4/isfinite.m4 (gl_ISFINITE): Require AC_CANONICAL_HOST. On Solaris,
set REPLACE_ISFINITE to 1.
* m4/isinf.m4 (gl_ISINF): Require AC_CANONICAL_HOST. On Solaris, set
REPLACE_ISINF to 1.
* m4/signbit.m4 (gl_SIGNBIT): On Solaris, set REPLACE_SIGNBIT to 1.
* lib/pthread.in.h (pthread_create, pthread_once, pthread_key_create):
Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS.
* lib/threads.in.h (call_once): Likewise.
* lib/iconv.in.h (iconv): Likewise.
2019-12-05 Bruno Haible <bruno@clisp.org>
wchar: Add more C++ tests.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00009.html>.
* tests/test-wchar-c++3.cc: New file.
* modules/wchar-c++-tests (Files): Add it.
(Makefile.am): Compile it.
2019-12-05 Bruno Haible <bruno@clisp.org>
Add more C++ tests.
assert-h: Add C++ tests.
* tests/test-assert-h-c++.cc: New file.
* tests/test-assert-h-c++2.cc: New file.
* modules/assert-h-c++-tests: New file.
* modules/assert-h-tests: New file.
ctype: Add C++ tests.
* tests/test-ctype-c++.cc: New file.
* tests/test-ctype-c++2.cc: New file.
* modules/ctype-c++-tests: New file.
* modules/ctype-tests (Depends-on): Add ctype-c++-tests.
errno: Add C++ tests.
* tests/test-errno-c++.cc: New file.
* tests/test-errno-c++2.cc: New file.
* modules/errno-c++-tests: New file.
* modules/errno-tests (Depends-on): Add errno-c++-tests.
float: Add C++ tests.
* tests/test-float-c++.cc: New file.
* tests/test-float-c++2.cc: New file.
* modules/float-c++-tests: New file.
* modules/float-tests (Depends-on): Add float-c++-tests.
inttypes: Add more C++ tests.
* tests/test-inttypes-c++2.cc: New file.
* modules/inttypes-c++-tests (Files): Add it.
(Makefile.am): Compile it.
limits-h: Add C++ tests.
* tests/test-limits-h-c++.cc: New file.
* tests/test-limits-h-c++2.cc: New file.
* modules/limits-h-c++-tests: New file.
* modules/limits-h-tests (Depends-on): Add limits-h-c++-tests.
stdarg: Add C++ tests.
* tests/test-stdarg-c++.cc: New file.
* tests/test-stdarg-c++2.cc: New file.
* modules/stdarg-c++-tests: New file.
* modules/stdarg-tests: New file.
stdbool: Add C++ tests.
* tests/test-stdbool-c++.cc: New file.
* tests/test-stdbool-c++2.cc: New file.
* modules/stdbool-c++-tests: New file.
* modules/stdbool-tests (Depends-on): Add stdbool-c++-tests.
stddef: Add C++ tests.
* tests/test-stddef-c++.cc: New file.
* tests/test-stddef-c++2.cc: New file.
* modules/stddef-c++-tests: New file.
* modules/stddef-tests (Depends-on): Add stddef-c++-tests.
stdint: Add C++ tests.
* tests/test-stdint-c++.cc: New file.
* tests/test-stdint-c++2.cc: New file.
* modules/stdint-c++-tests: New file.
* modules/stdint-tests (Depends-on): Add stdint-c++-tests.
wchar: Add more C++ tests.
* tests/test-wchar-c++2.cc: New file.
* modules/wchar-c++-tests (Files): Add it.
(Makefile.am): Compile it.
wctype-h: Add more C++ tests.
* tests/test-wctype-h-c++2.cc: New file.
* modules/wctype-h-c++-tests (Files): Add it.
(Makefile.am): Compile it.
2019-12-04 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode with xlclang++ on AIX.
* lib/math.in.h (expm1l, fmal, remainderl, roundl): Don't redeclare in
C++ mode on AIX.
(isfinite, signbit): In C++ mode on AIX with clang, use the approach
without C preprocessor macro.
* lib/pthread.in.h (pthread_exit): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
* lib/threads.in.h (thrd_exit): Likewise.
2019-12-04 Bruno Haible <bruno@clisp.org>
Fix compilation error in C++ mode on Solaris 11 OpenIndiana.
* lib/wchar.in.h (wcsnrtombs): Force declaration in C++ mode on Solaris.
* doc/posix-functions/wcsnrtombs.texi: Mention the issue.
2019-12-04 Bruno Haible <bruno@clisp.org>
Disable more _GL_CXXALIASWARN on all platforms other than glibc systems.
* lib/wchar.in.h (wcsnrtombs, wcwidth, wcswidth): Disable
_GL_CXXALIASWARN invocation on non-glibc systems.
* lib/wctype.in.h (iswalnum, iswalpha, iswcntrl, iswdigit, iswgraph,
iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit, wctype,
iswctype, towlower, towupper): Likewise.
2019-12-03 Bruno Haible <bruno@clisp.org>
Avoid hassles caused by [[noreturn]] in C++.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00010.html>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Disable the use of [[noreturn]].
* lib/_Noreturn.h: Likewise.
2019-12-02 Bruno Haible <bruno@clisp.org>
Fix mistakes in --enable-threads=isoc fixes from 2019-12-01.
* m4/pthread-mutex.m4 (gl_PTHREAD_MUTEX): Use LIBPMULTITHREAD, not
LIBMULTITHREAD.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Likewise.
* m4/pthread-thread.m4 (gl_PTHREAD_THREAD): Likewise.
* m4/timer_time.m4 (gl_TIMER_TIME): Likewise. Require gl_PTHREADLIB, not
gl_THREADLIB.
* modules/timer-time (Depends-on): Add pthread-h. Remove threadlib.
2019-12-02 Bruno Haible <bruno@clisp.org>
Fix some more link errors with --enable-threads=isoc.
* modules/pthread-mutex (Depends-on): Test $gl_threads_api differently.
* modules/pthread-rwlock (Depends-on): Likewise.
2019-12-02 Bruno Haible <bruno@clisp.org>
Fix link errors with --enable-threads=posix on AIX.
* modules/string-c++-tests (Makefile.am): Link the test-string-c++
program with $(LIBTHREAD).
* modules/wchar-c++-tests (Makefile.am): Link the test-wchar-c++
program with $(LIBTHREAD).
2019-12-02 Bruno Haible <bruno@clisp.org>
Fix link errors with --enable-threads=posix on AIX.
* modules/mbrtowc (Link): New section.
* modules/acl (Link): Likewise.
* modules/argmatch (Link): Likewise.
* modules/backup-rename (Link): Likewise.
* modules/backupfile (Link): Likewise.
* modules/closein (Link): Likewise.
* modules/closeout (Link): Likewise.
* modules/copy-file (Link): Likewise.
* modules/csharpcomp (Link): Likewise.
* modules/csharpexec (Link): Likewise.
* modules/dfa (Link): Likewise.
* modules/exclude (Link): Likewise.
* modules/fnmatch (Link): Likewise.
* modules/fnmatch-gnu (Link): Likewise.
* modules/fnmatch-posix (Link): Likewise.
* modules/glob (Link): Likewise.
* modules/human (Link): Likewise.
* modules/javacomp (Link): Likewise.
* modules/javaexec (Link): Likewise.
* modules/javaversion (Link): Likewise.
* modules/mbfile (Link): Likewise.
* modules/mbiter (Link): Likewise.
* modules/mbmemcasecmp (Link): Likewise.
* modules/mbmemcasecoll (Link): Likewise.
* modules/mbrlen (Link): Likewise.
* modules/mbscasecmp (Link): Likewise.
* modules/mbscasestr (Link): Likewise.
* modules/mbschr (Link): Likewise.
* modules/mbscspn (Link): Likewise.
* modules/mbsinit (Link): Likewise.
* modules/mbslen (Link): Likewise.
* modules/mbsncasecmp (Link): Likewise.
* modules/mbsnlen (Link): Likewise.
* modules/mbsnrtowcs (Link): Likewise.
* modules/mbspbrk (Link): Likewise.
* modules/mbspcasecmp (Link): Likewise.
* modules/mbsrchr (Link): Likewise.
* modules/mbsrtowcs (Link): Likewise.
* modules/mbssep (Link): Likewise.
* modules/mbsspn (Link): Likewise.
* modules/mbsstr (Link): Likewise.
* modules/mbstok_r (Link): Likewise.
* modules/mbswidth (Link): Likewise.
* modules/mbuiter (Link): Likewise.
* modules/mkdir-p (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/quote (Link): Likewise.
* modules/quotearg (Link): Likewise.
* modules/quotearg-simple (Link): Likewise.
* modules/regex-quote (Link): Likewise.
* modules/rpmatch (Link): Likewise.
* modules/sh-quote (Link): Likewise.
* modules/system-quote (Link): Likewise.
* modules/trim (Link): Likewise.
* modules/unistdio/ulc-asnprintf (Link): Likewise.
* modules/unistdio/ulc-fprintf (Link): Likewise.
* modules/unistdio/ulc-vasnprintf (Link): Likewise.
* modules/unistdio/ulc-vasprintf (Link): Likewise.
* modules/unistdio/ulc-vfprintf (Link): Likewise.
* modules/unistdio/ulc-vsnprintf (Link): Likewise.
* modules/unistdio/ulc-vsprintf (Link): Likewise.
* modules/xfreopen (Link): Likewise.
* modules/xmemcoll (Link): Likewise.
* modules/yesno (Link): Likewise.
* modules/acl-tests (Makefile.am): Link the programs with $(LIBTHREAD).
* modules/argmatch-tests (Makefile.am): Likewise.
* modules/closein-tests (Makefile.am): Likewise.
* modules/copy-file-tests (Makefile.am): Likewise.
* modules/dfa-tests (Makefile.am): Likewise.
* modules/fnmatch-tests (Makefile.am): Likewise.
* modules/glob-tests (Makefile.am): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Likewise.
* modules/mbmemcasecoll-tests (Makefile.am): Likewise.
* modules/mbrtowc-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsinit-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbsnrtowcs-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsrtowcs-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/quotearg-tests (Makefile.am): Likewise.
* modules/quotearg-simple-tests (Makefile.am): Likewise.
* modules/readtokens-tests (Makefile.am): Likewise.
* modules/regex-quote-tests (Makefile.am): Likewise.
* modules/sh-quote-tests (Makefile.am): Likewise.
* modules/system-quote-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise.
* modules/yesno-tests (Makefile.am): Likewise.
2019-12-02 Bruno Haible <bruno@clisp.org>
Simplify link sections.
* modules/threadlib (Link): Stop mentioning LTLIBTHREAD.
* modules/lock (Link): Likewise.
* modules/cond (Link): Likewise.
* modules/tls (Link): Likewise.
* modules/yield (Link): Likewise.
* modules/regex (Link): Likewise.
* modules/localename (Link): Likewise.
* modules/unicase/locale-language (Link): Likewise.
* modules/thread (Link): Stop mentioning LTLIBMULTITHREAD.
2019-12-02 Bruno Haible <bruno@clisp.org>
thread tests: Avoid link error with --enable-threads=isoc+posix on AIX.
* tests/test-thread_self.c (main): Disable test on AIX.
2019-12-01 Bruno Haible <bruno@clisp.org>
pthread-h: Fix link errors with --enable-threads=isoc on AIX.
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): New macro, extracted from
gl_THREADLIB_EARLY_BODY.
(gl_THREADLIB_EARLY_BODY): Invoke it.
(gl_PTHREADLIB_BODY): New macro, extracted from gl_THREADLIB_BODY.
(gl_THREADLIB_BODY): Invoke it.
(gl_PTHREADLIB): New macro.
* m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_PTHREADLIB. Require
gl_THREADLIB and test $gl_threads_api only if module 'threadlib' is
present. Define LIB_PTHREAD using LIBPMULTITHREAD, not LIBMULTITHREAD.
* modules/pthread-h (Files): Add threadlib.m4.
(Depends-on): Remove threadlib.
(configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY. Don't set _REENTRANT
and _THREAD_SAFE here.
(Link): Use LIBPTHREAD, not LIBTHREAD.
* modules/pthread-thread (Link): Use LIBPMULTITHREAD, not
LIBMULTITHREAD.
* modules/pthread-once (Link): Likewise.
* modules/pthread-mutex (Link): Likewise.
* modules/pthread-rwlock (Link): Likewise.
* modules/pthread-cond (Link): Likewise.
* modules/pthread-tss (Link): Likewise.
* modules/pthread-spin (Link): Likewise.
* modules/pthread (Link): Likewise.
* modules/pthread-h-c++-tests (test_pthread_c___LDADD): Likewise.
* modules/pthread-thread-tests (test_pthread_thread_LDADD): Likewise.
* modules/pthread-once-tests (test_pthread_once1_LDADD,
test_pthread_once2_LDADD): Likewise.
* modules/pthread-mutex-tests (test_pthread_mutex_LDADD): Likewise.
* modules/pthread-rwlock-tests (test_pthread_rwlock_LDADD): Likewise.
* modules/pthread-cond-tests (test_pthread_cond_LDADD): Likewise.
* modules/pthread-tss-tests (test_pthread_tss_LDADD): Likewise.
2019-12-01 Bruno Haible <bruno@clisp.org>
cond: State linking requirements.
* modules/cond (Link): New section.
2019-12-01 Bruno Haible <bruno@clisp.org>
threadlib: Remove unnecessary file (left over from 2019-07-06).
* modules/threadlib (Files): Remove config.rpath.
2019-11-29 Tim Rühsen <tim.ruehsen@gmx.de>
gnulib-tool.py: Fix libgnu_la_LDFLAGS section in generated Makefile.am.
Reported by Dagobert Michelsen <dam@opencsw.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00086.html>.
* pygnulib/GLModuleSystem.py (getLink): Don't join the parts. Return a
list of strings instead of one string.
* pygnulib/GLEmiter.py (lib_Makefile_am): Adapt accordingly.
* pygnulib/GLImport.py (execute): Likewise.
2019-11-27 Bruno Haible <bruno@clisp.org>
openpty, forkpty: Fix build error on Solaris 11.4.
* m4/pty_h.m4 (gl_PTY_H): Test for termios.h. Look for the declarations
also in <termios.h>.
* m4/pty.m4 (gl_FUNC_FORKPTY, gl_FUNC_OPENPTY): Look for the declaration
of the function also in <termios.h>.
* doc/glibc-functions/openpty.texi: Mention the Solaris 11.4 problems.
* doc/glibc-functions/forkpty.texi: Likewise.
2019-11-27 Bruno Haible <bruno@clisp.org>
New options --enable-threads=isoc and --enable-threads=isoc+posix.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Accept the options
--enable-threads=isoc and --enable-threads=isoc+posix.
(gl_THREADLIB_BODY): Test whether the ISO C threads API is available.
When both the ISO C and the POSIX threads API are available, choose
USE_ISOC_AND_POSIX_THREADS instead of USE_POSIX_THREADS if
--enable-threads=isoc+posix was specified. When only the ISO C threads
API is available and --enable-threads=iso was specified, choose
USE_ISOC_THREADS.
* lib/glthread/lock.h: Add new code for USE_ISOC_THREADS ||
USE_ISOC_AND_POSIX_THREADS.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/glthread/thread.h: Add new code for USE_ISOC_THREADS. Treat
USE_ISOC_AND_POSIX_THREADS like USE_POSIX_THREADS.
* lib/glthread/thread.c: Likewise.
* lib/glthread/threadlib.c: Likewise.
* tests/test-lock.c: Save and restore the values of USE_ISOC_THREADS and
USE_ISOC_AND_POSIX_THREADS.
* tests/test-cond.c: Consider USE_ISOC_THREADS and
USE_ISOC_AND_POSIX_THREADS.
* tests/test-tls.c: Likewise.
* tests/test-thread_create.c (main): Likewise.
* tests/test-pthread-cond.c: Likewise.
* tests/test-pthread-mutex.c: Likewise.
* tests/test-pthread-once2.c: Likewise.
* tests/test-pthread-rwlock.c: Likewise.
* tests/test-pthread-tss.c: Likewise.
* tests/test-pthread_sigmask2.c: Treat USE_ISOC_AND_POSIX_THREADS like
USE_POSIX_THREADS.
2019-11-24 Bruno Haible <bruno@clisp.org>
mbrtowc: Modernize autoconf test.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Require
gt_LOCALE_FR_UTF8. If a traditional Japanese locale is not available,
try a UTF-8 locale.
* doc/posix-functions/mbrtowc.texi: Update info about AIX.
2019-11-24 Bruno Haible <bruno@clisp.org>
Fix errors in C++ mode on mingw.
* lib/arpa_inet.in.h (inet_ntop, inet_pton): Use _GL_CXXALIAS_SYS_CAST
instead of _GL_CXXALIAS_SYS.
* lib/signal.in.h (pthread_sigmask): Likewise.
* lib/spawn.in.h (posix_spawn_file_actions_addopen,
posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2):
Likewise.
* lib/wchar.in.h (btowc): Likewise.
2019-11-24 Bruno Haible <bruno@clisp.org>
sys_time: Fix errors in C++ mode on mingw.
* lib/sys_time.in.h (timeval): Restore the redirection
'#define timeval rpl_timeval', for when the symbol timeval is being used
outside the 'gnulib' namespace.
* lib/sys_select.in.h (select): In C++, write 'timeval', not
'struct timeval'.
2019-11-24 Bruno Haible <bruno@clisp.org>
iswctype: Fix errors in C++ mode on mingw.
* lib/wctype.in.h (rpl_iswctype): Override if GNULIB_OVERRIDES_WINT_T
is 1.
* lib/iswctype.c (iswctype): Add another implementation, for the
GNULIB_defined_wint_t case.
* modules/iswctype (configure.ac): Compile iswctype.c also if
GNULIB_OVERRIDES_WINT_T is 1.
2019-11-24 Bruno Haible <bruno@clisp.org>
windows-timedmutex: Fix errors in C++ mode on mingw.
* lib/windows-timedmutex.h: Add closing brace.
2019-11-24 Bruno Haible <bruno@clisp.org>
Fix errors in C++ mode on Cygwin.
* lib/sys_wait.in.h (waitpid): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
2019-11-24 Bruno Haible <bruno@clisp.org>
time_r: Fix for mingw (regression from 2019-11-16).
* m4/time_r.m4 (gl_TIME_R): Revert to using AC_CHECK_FUNCS_ONCE. Use the
AC_LINK_IFELSE test only if the function does not appear to exist.
2019-11-24 Bruno Haible <bruno@clisp.org>
wcstok: Add tests.
* tests/test-wcstok.c: New file.
* modules/wcstok-tests: New file.
2019-11-24 Bruno Haible <bruno@clisp.org>
wcstok: Work around wrong signature on native Windows.
* lib/wchar.in.h (wcstok): Override when REPLACE_WCSTOK is 1.
* m4/wcstok.m4 (gl_FUNC_WCSTOK): Check for signature of wcstok. Set
REPLACE_WCSTOK.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSTOK.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSTOK.
* modules/wcstok (Depends-on, configure.ac): Consider REPLACE_WCSTOK.
* doc/posix-functions/wcstok.texi: Mention the problem.
2019-11-22 Paul Eggert <eggert@cs.ucla.edu>
intprops: INT_MULTIPLY_WRAPV speedup for GCC 8.4+
* lib/intprops.h (INT_MULTIPLY_WRAPV): If GCC 8.x where 4 <= x,
remove workaround for GCC bug 91450 as the bug should be fixed
there too.
2019-11-21 Bruno Haible <bruno@clisp.org>
Disable many _GL_CXXALIASWARN on all platforms other than glibc systems.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00066.html>.
* lib/fnmatch.in.h (fnmatch): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/locale.in.h (localeconv, setlocale): Likewise.
* lib/math.in.h (cbrt, ceil, copysign, exp2, expm1, floor, fma, fmod,
frexp, hypot, ilogb, log, log10, log1p, log2, logb, modf, remainder,
rint, round, trunc): Likewise.
* lib/monetary.in.h (strfmon_l): Likewise.
* lib/pthread.in.h (pthread_mutexattr_getrobust,
pthread_mutexattr_setrobust, pthread_mutex_lock, pthread_spin_init,
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock,
pthread_spin_destroy): Likewise.
* lib/signal.in.h (raise, signal): Likewise.
* lib/stdio.in.h (fclose, fflush, fgetc, fgets, fopen, fprintf, fputc,
fputs, fread, freopen, fscanf, fseek, ftell, fwrite, getc, getchar,
perror, printf, putc, putchar, puts, remove, rename, scanf, sprintf,
tmpfile, vfprintf, vprintf, vsprintf): Likewise.
* lib/stdlib.in.h (calloc, malloc, mbtowc, realloc, strtod, wctomb):
Likewise.
* lib/string.in.h (memchr, strncat, strpbrk, strstr, strerror):
Likewise.
* lib/time.in.h (mktime, localtime, ctime, strftime): Likewise.
* lib/wchar.in.h (btowc, wctob, mbsinit, mbrtowc, mbrlen, mbsrtowcs,
wcrtomb, wcsrtombs, wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset,
wcslen, wcscpy, wcsncpy, wcscat, wcsncat, wcscmp, wcsncmp, wcscoll,
wcsxfrm, wcschr, wcsrchr, wcscspn, wcsspn, wcspbrk, wcsstr, wcstok,
wcsftime): Likewise.
* lib/wctype.in.h (iswblank, wctrans, towctrans): Likewise.
2019-11-21 Bruno Haible <bruno@clisp.org>
Fix various errors in _GL_CXXALIAS_SYS invocations.
* lib/locale.in.h (freelocale): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
* lib/pthread.in.h (pthread_mutexattr_gettype,
pthread_mutexattr_getrobust): Likewise.
* lib/stdlib.in.h (srandom, initstate, setstate): Likewise.
* lib/sys_socket.in.h (recv, send): Likewise.
* lib/unistd.in.h (getdtablesize): Likewise.
* lib/sys_select.in.h (select): In C++, write 'timeval' instead of
'struct timeval'.
2019-11-21 Bruno Haible <bruno@clisp.org>
math tests: Update after 2019-08-28 change.
* tests/test-math-c++.cc (isfinite, isinf, isnan, signbit): Expect a
return type of 'bool', not 'int'.
2019-11-21 Bruno Haible <bruno@clisp.org>
pthread-spin: Fix errors in C++ mode.
* m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Mark the pthread_spin_*
functions as nonexistent when <pthread.h> exists but does not define
the pthread_spinlock_t type.
2019-11-21 Bruno Haible <bruno@clisp.org>
pthread-mutex: Fix errors in C++ mode.
* m4/pthread-mutex.m4 (gl_PTHREAD_MUTEX): Test whether
pthread_mutexattr_getrobust exists. If not, define
PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED.
* lib/pthread-mutex.c (pthread_mutexattr_getrobust,
pthread_mutexattr_setrobust): Define also if <pthread.h> exists but
PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED.
* modules/pthread-mutex (configure.ac): Compile pthread-mutex.c also
when <pthread.h> exists but pthread_mutexattr_getrobust needs a gnulib
definition.
2019-11-19 Bruno Haible <bruno@clisp.org>
threads-h tests: Fix typo.
* tests/test-threads-c++.cc: Fix references to undefined type 'mtx'.
2019-11-19 Bruno Haible <bruno@clisp.org>
pthread-thread: Fix prototype of pthread_attr_getdetachstate.
* lib/pthread.in.h (pthread_attr_getdetachstate): Change first parameter
to 'const pthread_attr_t *'.
* lib/pthread-thread.c (pthread_attr_getdetachstate): Likewise.
* tests/test-pthread-c++.cc (pthread_attr_getdetachstate): Likewise.
2019-11-19 Paul Eggert <eggert@cs.ucla.edu>
intprops: speed up INT_MULTIPLY_WRAPV in GCC 9.3
* lib/intprops.h (INT_MULTIPLY_WRAPV): If GCC 9.3 or later, do not
work around GCC bug 91450 as the bug should be fixed there.
2019-11-18 Paul Eggert <eggert@cs.ucla.edu>
glob: get closer to glibc glob.c
Omit differences from glibc when the differences don’t matter.
* lib/glob.c [_LIBC]: Include shlib-compat.h.
(__glob) [!_LIBC]: New macro. All uses of glob changed to __glob.
(glob_lstat): New function.
(glob_in_dir): Use it.
(GLOB_ATTRIBUTE): Define to empty if not already defined.
Use changed.
2019-11-18 Bruno Haible <bruno@clisp.org>
stdint: Define [u]intptr_t correctly on 64-bit native Windows.
* lib/stdint.in.h (gl_intptr_t, gl_uintptr_t, INTPTR_MIN, INTPTR_MAX,
UINTPTR_MAX): Consider _WIN64.
* tests/test-stdint.c: Verify that [u]intptr_t is large enough to hold
a pointer.
2019-11-18 Bruno Haible <bruno@clisp.org>
stdint: Fix value of WINT_MAX when we override wint_t.
* lib/stdint.in.h (WINT_MIN, WINT_MAX): Don't override a second time
when GNULIB_OVERRIDES_WINT_T is 1.
2019-11-18 Bruno Haible <bruno@clisp.org>
vcs-to-changelog: New module.
* modules/vcs-to-changelog: New file.
* MODULES.html.sh (func_all_modules): Add it.
2019-11-01 Siddhesh Poyarekar <siddhesh@gotplt.org>
vcs-to-changelog: New script to generate ChangeLog-like output.
Discussion:
<https://lists.gnu.org/archive/html/bug-gnulib/2019-10/msg00062.html>
* build-aux/vcs_to_changelog.py: New file.
* build-aux/vcstocl/frontend_c.py: New file.
* build-aux/vcstocl/misc_util.py: New file.
* build-aux/vcstocl/vcs_git.py: New file.
2019-11-18 Bruno Haible <bruno@clisp.org>
stdint: Avoid triggering a "conflicting types" error on mingw 5.22.
Reported by Keith Marshall <keith@users.osdn.me> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-10/msg00044.html>
and <https://osdn.net/projects/mingw/ticket/39677>.
* lib/stdint.in.h (intptr_t, uintptr_t): Don't define if the types have
already been defined by mingw's <crtdefs.h>.
2019-11-18 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix build error on macOS with --conditional-dependencies.
* gnulib-tool (func_modules_add_dummy): Ignore modules that are
conditionally enabled.
2019-11-18 Bruno Haible <bruno@clisp.org>
gc: Mirror libgcrypt.m4 from libgcrypt.
* config/srclistvars.sh (LIBGCRYPT): New variable.
* config/srclist.txt: Use it to fetch m4/libgcrypt.m4.
2019-11-17 Bruno Haible <bruno@clisp.org>
locale, localename: Improve z/OS support.
Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00001.html>.
* m4/locale_h.m4 (gl_LOCALE_T): New macro, partially extracted from
gl_LOCALE_H.
(gl_LOCALE_H): Require it.
* m4/localename.m4 (gl_LOCALENAME): Likewise. If locale_t is not
defined, don't even check for newlocale, duplocale, freelocale.
* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Make the test fail when
locale_t is not defined.
2019-11-17 Bruno Haible <bruno@clisp.org>
havelib: Make libdirstems processing more flexible.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Set 3 libdirstem
variables: Consider 'lib' always, also on Solaris. Look for lib32 in
addition to lib64. Don't invoke /usr/bin/gcc (reverting the second
patch from 2017-02-19).
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Consider up to 3 additional
libdirs, even when the first one exists as a directory.
2019-11-17 Bruno Haible <bruno@clisp.org>
havelib: Match the bitness when searching for libraries.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Define a function
acl_is_expected_elfclass.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): When testing whether a library
file exists, in ELF, also test whether it has the ELF class that
corresponds to the host's bitness.
2019-11-17 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Add support for unknown CPUs.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): Set
gl_cv_host_cpu_c_abi_32bit to 'unknown' if we don't know whether it's
32-bit or 64-bit.
2019-11-17 Bruno Haible <bruno@clisp.org>
havelib: Remove redundant code.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Remove Solaris specific
test for 64-bit host. Use gl_HOST_CPU_C_ABI_32BIT result instead.
2019-11-17 Bruno Haible <bruno@clisp.org>
havelib: Fix a bug in dependency processing.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): During dependency processing
of .la files, don't overwrite the value of additional_libdir for the
next rounds.
2019-11-16 Bruno Haible <bruno@clisp.org>
wctype-h: When overriding wint_t, override also the related functions.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00027.html>.
* m4/wctype_h.m4 (gl_WCTYPE_H): When GNULIB_OVERRIDES_WINT_T is 1, set
REPLACE_ISWCNTRL to 1.
* lib/wctype.in.h (rpl_iswalnum, rpl_iswalpha, rpl_iswblank,
rpl_iswcntrl, rpl_iswdigit, rpl_iswgraph, rpl_iswlower, rpl_iswprint,
rpl_iswpunct, rpl_iswspace, rpl_iswupper, rpl_iswxdigit, rpl_towlower,
rpl_towupper): New definitions when GNULIB_OVERRIDES_WINT_T is 1.
* doc/posix-headers/wchar.texi: Mention that wint_t is also overridden
on mingw.
* doc/posix-headers/wctype.texi: Likewise.
2019-11-16 Bruno Haible <bruno@clisp.org>
time_r: Fix for mingw.
Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00014.html>.
* lib/time.in.h: On mingw, include <unistd.h>.
* m4/time_r.m4 (gl_TIME_R): On mingw, include <unistd.h> before
<time.h>. Test for localtime_r in a way that works when it is defined
as an inline function.
2019-11-13 Bruno Haible <bruno@clisp.org>
havelib: Revert last change.
* build-aux/config.rpath: Revert last change. We can add msys2 support
when it has been added to libtool.m4 upstream.
2019-11-09 Paul Eggert <eggert@cs.ucla.edu>
config: add msys support
Requested by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2019-11/msg00008.html
He also requested a change to config.guess, which I’ll forward
upstream.
* build-aux/ar-lib (func_file_conv):
* build-aux/compile (func_file_conv):
* build-aux/config.rpath (wl, with_gnu_ld)
(hardcode_libdir_flag_spec, libext, shrext, library_names_spec):
Treat msys like cygwin.
2019-11-06 Paul Eggert <eggert@cs.ucla.edu>
regex: now back in sync with glibc
* config/srclist.txt: regcomp.c, regex_internal.c, regex_internal.h,
regexec.c got merged into glibc and are now copies again.
2019-10-27 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Recognize i386 and a couple of other CPUs as 32-bit.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Include i386 in the case
statement.
(gl_HOST_CPU_C_ABI_32BIT): Likewise. Also recognize a couple of other
32-bit CPUs.
2019-10-24 Paul Eggert <eggert@cs.ucla.edu>
timespec-add, timespec-sub: simplify
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
Simplify, now that INT_ADD_WRAPV and INT_SUBTRACT_WRAPV
work on unsigned integers.
2019-10-23 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: speed up integer overflow checking
* lib/nstrftime.c: Include intprops.h.
(INT_STRLEN_BOUND): Remove, as we can use intprops.h’s defn.
(__strftime_internal): Use INT_MULTIPLY_WRAPV and INT_ADD_WRAPV
instead of doing it by hand.
* modules/nstrftime (Depends-on): Add intprops.
Port better to GCC under macOS
Work around macOS header that has ‘#define __has_builtin(x) 0’
when compiled by GCC. Apple really, really doesn’t want you to
use GCC, apparently. Rroblem reported by Akim Demaille in:
https://lists.gnu.org/r/bug-bison/2019-10/msg00071.html
The fix is to not trust __has_builtin when being compiled by
recent-enough GCC.
* lib/intprops.h (__has_builtin)
(_GL_HAS___builtin_add_overflow, _GL_TEMPDEF___has_builtin):
* lib/verify.h (__has_builtin, _GL_HAS___builtin_unreachable)
(_GL_HAS___builtin_trap, _GL_TEMPDEF___has_builtin):
Remove. All uses removed.
* lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW): Use __has_builtin
directly, if defined and if not newer GCC.
* lib/verify.h (_GL_HAS_BUILTIN_TRAP, _GL_HAS_BUILTIN_UNREACHABLE):
New macro, that use __has_builtin directly, if defined and if
not newer GCC.
(assume): Use them.
2019-10-22 Akim Demaille <akim@lrde.epita.fr>
maintainer-makefile: update rule for argmatch.
* top/maint.mk (sc_prohibit_argmatch_without_use): Add ARGMATCH_DEFINE_GROUP.
2019-10-21 Akim Demaille <akim@lrde.epita.fr>
bitset: let freeing functions accept NULL.
* lib/bitset.c (bitset_free, bitset_obstack_free): Do nothing if
given NULL.
* lib/bitset.h: Document that.
* doc/bitset.texi: Fix the example, and demonstrate bitset_free.
2019-10-15 Paul Eggert <eggert@cs.ucla.edu>
inttypes: use more-robust test for int range
This fixes Bison 3.4.2 when built with Oracle Solaris Studio 12.3.
Problem reported by Dagobert Michelsen in:
https://lists.gnu.org/r/bug-gnulib/2019-10/msg00042.html
* lib/inttypes.in.h: Rely only on limits.h when checking
int range.
2019-10-15 Bruno Haible <bruno@clisp.org>
libtextstyle-optional: Sync with current not-yet-released libtextstyle.
* libtextstyle-optional (styled_ostream_get_hyperlink_ref,
styled_ostream_get_hyperlink_id, styled_ostream_set_hyperlink,
term_ostream_get_hyperlink_ref, term_ostream_get_hyperlink_id,
term_ostream_set_hyperlink): New functions.
(term_styled_ostream_get_hyperlink_ref,
term_styled_ostream_get_hyperlink_id,
term_styled_ostream_set_hyperlink): New function aliases.
2019-10-14 Paul Eggert <eggert@cs.ucla.edu>
update-copyright: use en dashes in .texi ranges
* build-aux/update-copyright: Match year ranges like "1998--2019",
which are used in the Autoconf manual. Also, update ranges in
.tex, .texi, and .texinfo files to use en dashes instead of
hyphens.
2019-10-13 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove posix/regex_internal.c for now.
2019-10-13 Bruno Haible <bruno@clisp.org>
git-version-gen: Allow 'snapshot' as .tarball-version contents.
* build-aux/git-version-gen: Don't map non-numeric .tarball-version
contents to the empty string.
2019-10-12 Bruno Haible <bruno@clisp.org>
intprops tests: Fix compilation errors on HP-UX/ia64 with cc.
* tests/test-intprops.c (main): Disable two more tests when using
HP-UX cc.
2019-10-11 Paul Eggert <eggert@cs.ucla.edu>
Simplify and regularize regex use of ‘assert’
Also, tell GCC about the asserts even when compiling without
debugging, to give it further optimization opportunities.
* lib/regex_internal.h (DEBUG_ASSERT): New macro.
* lib/regcomp.c (link_nfa_nodes, calc_eclosure)
(parse_expression, parse_bracket_exp):
* lib/regex_internal.c (build_wcs_buffer)
(build_wcs_upper_buffer, re_string_reconstruct)
(re_string_context_at):
* lib/regexec.c (re_search_stub, re_copy_regs)
(re_search_internal, prune_impossible_nodes, check_matching)
(check_halt_state_context, set_regs, sift_states_backward)
(build_sifted_states, transit_state_mb, transit_state_bkref)
(check_arrival_add_next_nodes, check_arrival_expand_ecl)
(match_ctx_add_subtop):
Use it instead of plain ‘assert’.
2019-10-09 Paul Eggert <eggert@cs.ucla.edu>
regex: omit debug assignment when not debugging
* lib/regexec.c (re_search_internal) [!DEBUG]:
Remove unnecessary assignment.
regex: tell compiler there’s at most 256 arcs out
Partly this is to help the reader (and maybe help GCC);
partly this is to pacify Coverity.
* lib/regex_internal.h: Include verify.h.
* lib/regexec.c (group_nodes_into_DFAstates):
Tell the compiler that ndests cannot exceed SBC_MAX.
* modules/regex (Depends-on): Add ‘verify’.
regex: simplify by assuming C99
* config/srclist.txt: Comment out regex_internal.h and regexec.c
temporarily.
* lib/regex_internal.h (lock_define, re_match_context_t):
Simplify by assuming C99 macros and const.
* lib/regexec.c (re_search_internal): Simplify by assuming C99
initializers. Remove unnecessary assignment, as mctx is now
safely initialized earlier.
regex: avoid copying of uninitialized storage
* config/srclist.txt: Comment out regcomp.c temporarily.
* lib/regcomp.c (build_charclass_op, create_tree) [! (GCC_LINT||lint)]:
Initialize even when not checking for lint, as the behavior is
arguably undefined otherwise and Coverity warns about it.
2019-10-06 Bruno Haible <bruno@clisp.org>
access tests: Fix test failure when run as root.
* tests/test-access.c: Include root-uid.h.
(geteuid): Define fallback.
(main): Don't expect that writing to a read-only file would fail when
running as root. Also, remove the created files at the end.
* modules/access-tests (Depends-on): Add root-uid.
(configure.ac): Test whether geteuid exists.
2019-10-06 Benno Schulenberg <bensberg@telfort.nl> (tiny change)
users.txt: add GNU nano
Nano has been making use of gnulib since March 2017, version 2.8.0.
2019-10-05 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: simplify debugging of wget failures
Problem reported by Tim Rühsen in:
https://lists.gnu.org/r/bug-gnulib/2019-10/msg00000.html
* build-aux/bootstrap (po_download_command_format):
Invoke wget with -nv instead of -q, to make debugging easier.
2019-09-29 Bruno Haible <bruno@clisp.org>
avltree-list: Fix compilation warning (introduced on 2014-09-16).
* lib/gl_avltree_list.c (gl_avltree_list_check_invariants): Remove
'const' attribute.
2019-09-29 Bruno Haible <bruno@clisp.org>
fbufmode: Fix compilation error on glibc >= 2.28 systems.
* lib/stdio-impl.h (_IO_UNBUFFERED): Define fallback on glibc >= 2.28.
2019-09-28 Bruno Haible <bruno@clisp.org>
Update comments that refer to POSIX.
* lib/creat.c, lib/fopen.c, lib/open.c, lib/openat.c: Cite the relevant
sentence about trailing slashes.
* lib/fflush.c: Clarify the reasoning.
* tests/test-fflush2.c: Cite the relevant sentence.
2019-09-28 Bruno Haible <bruno@clisp.org>
access: Document limitations on Windows.
Suggested by Zaretskii <eliz@gnu.org>.
* doc/posix-functions/access.texi: Mention two limitations on Windows.
2019-09-28 Bruno Haible <bruno@clisp.org>
findprog-in: Fix comment.
Reported by Eli Zaretskii <eliz@gnu.org>.
* lib/findprog.h (find_in_given_path): Extend description of EACCES
condition.
* lib/stat.c (rpl_stat): Fix typo in comment.
* lib/utime.c (_gl_utimens_windows): Likewise.
2019-09-23 Paul Eggert <eggert@cs.ucla.edu>
Update URLs and associated text
(Thanks to Bruno Haible for proofreading this patch.)
Prefer https: to http: in URLs where either will do, for the usual
security reasons. I also updated broken and/or moved URLs
discovered during the process. In a few places I had to resort to
archive.org, since I didn't find the originals elsewhere.
2019-09-15 Paul Smith <psmith@gnu.org>
Bruno Haible <bruno@clisp.org>
findprog-in: Set errno when the search fails.
* lib/findprog-in.c: Include <errno.h>.
(find_in_given_path): Set errno before returning NULL.
* lib/findprog.h (find_in_given_path): Update comment accordingly.
Define the term "slash".
2019-09-15 Bruno Haible <bruno@clisp.org>
findprog, findprog-lgpl, findprog-in: Fix crash on MSVC.
* modules/findprog (Depends-on): Add access.
* modules/findprog-lgpl (Depends-on): Likewise.
* modules/findprog-in (Depends-on): Likewise.
2019-09-15 Bruno Haible <bruno@clisp.org>
access: Add tests.
* tests/test-access.c: New file.
* modules/access-tests: New file.
access: New module.
* lib/unistd.in.h (access): New declaration.
* lib/access.c: New file.
* m4/access.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether access is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ACCESS, REPLACE_ACCESS.
* modules/unistd (Makefile.am): Substitute GNULIB_ACCESS,
REPLACE_ACCESS.
* modules/access: New file.
* tests/test-unistd-c++.cc (access): Check signature.
* doc/posix-functions/access.texi: Mention the new module.
2019-09-15 Bruno Haible <bruno@clisp.org>
fcntl-h: Fix compilation error of creat.c on MSVC.
* lib/fcntl.in.h: Include <io.h> also when __need_system_fcntl_h is
defined.
2019-09-15 Bruno Haible <bruno@clisp.org>
creat: Add tests.
* tests/test-creat.c: New file, based on tests/test-open.h.
* modules/creat-tests: New file.
creat: New module.
* lib/fcntl.in.h (creat): New declaration.
* lib/creat.c: New file, based on lib/open.c.
* m4/creat.m4: New file.
* m4/open-slash.m4: New file, extracted from m4/open.m4.
* m4/open.m4 (gl_FUNC_OPEN): Move trailing-slash test to open-slash.m4.
Invoke gl_OPEN_TRAILING_SLASH_BUG.
* modules/open (Files): Add m4/open-slash.m4.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_CREAT,
REPLACE_CREAT.
* modules/fcntl-h (Makefile.am): Substitute GNULIB_CREAT, REPLACE_CREAT.
* modules/creat: New file.
* tests/test-fcntl-h-c++.cc (creat): Check signature.
* doc/posix-functions/creat.texi: Mention the new module.
2019-09-15 Bruno Haible <bruno@clisp.org>
open tests: Enhance test.
* tests/test-open.h (test_open): Test the creation of an executable
regular file. Also improve initial cleanup.
2019-09-15 Bruno Haible <bruno@clisp.org>
intprops tests: Avoid build failure with HP-UX cc.
* tests/test-intprops.c: Disable a check that makes HP cc choke with
"error 4018: Macro param too large after substitution - use -H option.".
2019-09-14 Bruno Haible <bruno@clisp.org>
Make autoconf tests work with -Werror=implicit-function-declaration.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Include <wctype.h>, for
towupper() declaration.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Include <stdlib.h>, for ptsname()
declaration.
2019-09-14 Bruno Haible <bruno@clisp.org>
findprog-in: Better mimic the system on native Windows.
Reported by Paul Smith <psmith@gnu.org>.
* lib/findprog-in.c (find_in_given_path): On native Windows, don't try
non-empty suffixes when the file name already contains a '.'.
2019-09-10 Bruno Haible <bruno@clisp.org>
wctob: Fix autoconf test.
Based on patch by Florian Weimer <fweimer@redhat.com>.
* m4/wctob.m4 (gl_FUNC_WCTOB): Include <stdlib.h> before using mbtowc.
2019-09-09 Akim Demaille <akim@lrde.epita.fr>
xhash: provide hash_xinitialize.
Suggested by Egor Pugin <egor.pugin@gmail.com>
https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00026.html
* modules/xhash, lib/xhash.c: New.
* lib/hash.h (hash_xinitialize): New.
2019-09-09 Bruno Haible <bruno@clisp.org>
findprog-in: Make exec optimization optional.
* lib/findprog.h: Add double-inclusion guard. Include <stdbool.h>.
(find_in_given_path): Add optimize_for_exec parameter.
* lib/findprog-in.c (find_in_given_path): Likewise.
2019-09-08 Bruno Haible <bruno@clisp.org>
Add option to assume the best, not the worst, when cross-compiling.
Suggested by Jonas Termansen <sortie@maxsi.org>.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add --enable-cross-guesses=...
option. Set gl_cross_guess_normal and gl_cross_guess_inverted.
* m4/argz.m4 (gl_FUNC_ARGZ): Obey --enable-cross-guesses for
lt_cv_sys_argz_works.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Obey --enable-cross-guesses for
ac_cv_func_calloc_0_nonnull.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Obey
--enable-cross-guesses for gl_cv_func_realpath_works.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Obey --enable-cross-guesses for
gl_cv_func_cbrtl_ieee.
* m4/ceil.m4 (gl_FUNC_CEIL): Obey --enable-cross-guesses for
gl_cv_func_ceil_ieee.
* m4/ceilf.m4 (gl_FUNC_CEILF): Obey --enable-cross-guesses for
gl_cv_func_ceilf_ieee.
* m4/ceill.m4 (gl_FUNC_CEILL): Obey --enable-cross-guesses for
gl_cv_func_ceill_ieee.
* m4/chown.m4 (AC_FUNC_CHOWN): Obey --enable-cross-guesses for
ac_cv_func_chown_works.
(gl_FUNC_CHOWN): Obey --enable-cross-guesses for
gl_cv_func_chown_slash_works, gl_cv_func_chown_ctime_works.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Obey
--enable-cross-guesses for gl_cv_struct_dirent_d_ino.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Obey --enable-cross-guesses for
gl_cv_func_exp2l_works, gl_cv_func_exp2l_ieee.
* m4/expl.m4 (gl_FUNC_EXPL): Obey --enable-cross-guesses for
gl_cv_func_expl_works.
* m4/expm1.m4 (gl_FUNC_EXPM1): Obey --enable-cross-guesses for
gl_cv_func_expm1_ieee.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Obey --enable-cross-guesses for
gl_cv_func_expm1l_works.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Obey --enable-cross-guesses for
gl_cv_func_open_directory_works.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Obey
--enable-cross-guesses for gl_cv_func_fchownat_nofollow_works.
(gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Obey --enable-cross-guesses for
gl_cv_func_fchownat_empty_filename_works.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Obey --enable-cross-guesses for
gl_cv_func_fdopendir_works.
* m4/floor.m4 (gl_FUNC_FLOOR): Obey --enable-cross-guesses for
gl_cv_func_floor_ieee.
* m4/floorf.m4 (gl_FUNC_FLOORF): Obey --enable-cross-guesses for
gl_cv_func_floorf_ieee.
* m4/fma.m4 (gl_FUNC_FMA_WORKS): Obey --enable-cross-guesses for
gl_cv_func_fma_works.
* m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Obey --enable-cross-guesses for
gl_cv_func_fmaf_works.
* m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Obey --enable-cross-guesses for
gl_cv_func_fmal_works.
* m4/fmod.m4 (gl_FUNC_FMOD): Obey --enable-cross-guesses for
gl_cv_func_fmod_ieee.
* m4/fmodf.m4 (gl_FUNC_FMODF): Obey --enable-cross-guesses for
gl_cv_func_fmodf_ieee.
* m4/fmodl.m4 (gl_FUNC_FMODL): Obey --enable-cross-guesses for
gl_cv_func_fmodl_ieee.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Obey --enable-cross-guesses for
gl_cv_func_fpurge_works.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Obey
--enable-cross-guesses for gl_cv_func_getcwd_path_max.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Obey --enable-cross-guesses for
gl_cv_func_getcwd_null.
(gl_FUNC_GETCWD): Update for getcwd-path-max.m4 change.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Obey --enable-cross-guesses for
gl_cv_func_working_getdelim.
* m4/getgroups.m4 (AC_FUNC_GETGROUPS): Obey --enable-cross-guesses for
ac_cv_func_getgroups_works. Keep this macro also in Autoconf >= 2.70.
(gl_FUNC_GETGROUPS): Obey --enable-cross-guesses for
gl_cv_func_getgroups_works.
* m4/getline.m4 (gl_FUNC_GETLINE): Obey --enable-cross-guesses for
am_cv_func_working_getline.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Obey --enable-cross-guesses
for gl_cv_func_getopt_gnu.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Obey
--enable-cross-guesses for gl_cv_func_gettimeofday_clobber.
* m4/hypot.m4 (gl_FUNC_HYPOT): Obey --enable-cross-guesses for
gl_cv_func_hypot_ieee.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Obey --enable-cross-guesses for
gl_cv_func_hypotf_ieee.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Obey --enable-cross-guesses for
gl_cv_func_hypotl_ieee.
* m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Obey
--enable-cross-guesses for gl_cv_func_iconv_supports_utf.
* m4/link.m4 (gl_FUNC_LINK): Obey --enable-cross-guesses for
gl_cv_func_link_works.
* m4/linkat.m4 (gl_FUNC_LINKAT): Obey --enable-cross-guesses for
gl_cv_func_linkat_slash.
* m4/log.m4 (gl_FUNC_LOG): Obey --enable-cross-guesses for
gl_cv_func_log_ieee.
* m4/logf.m4 (gl_FUNC_LOGF): Obey --enable-cross-guesses for
gl_cv_func_logf_ieee.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Obey --enable-cross-guesses for
gl_cv_func_logl_works.
* m4/log10.m4 (gl_FUNC_LOG10): Obey --enable-cross-guesses for
gl_cv_func_log10_ieee.
* m4/log10f.m4 (gl_FUNC_LOG10F): Obey --enable-cross-guesses for
gl_cv_func_log10f_ieee.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Obey --enable-cross-guesses for
gl_cv_func_log10l_works.
* m4/log1p.m4 (gl_FUNC_LOG1P): Obey --enable-cross-guesses for
gl_cv_func_log1p_ieee.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): Obey --enable-cross-guesses for
gl_cv_func_log1pf_ieee.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): Obey --enable-cross-guesses for
gl_cv_func_log1pl_ieee.
* m4/log2.m4 (gl_FUNC_LOG2): Obey --enable-cross-guesses for
gl_cv_func_log2_ieee.
* m4/log2f.m4 (gl_FUNC_LOG2F): Obey --enable-cross-guesses for
gl_cv_func_log2f_ieee.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Obey
--enable-cross-guesses for
gl_cv_func_lstat_dereferences_slashed_symlink.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Obey --enable-cross-guesses for
ac_cv_func_malloc_0_nonnull. Keep this macro also in Autoconf >= 2.70.
* m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Obey --enable-cross-guesses for
gl_cv_C_locale_sans_EILSEQ.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Obey --enable-cross-guesses for
gl_cv_func_memchr_works.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Obey --enable-cross-guesses for
gl_cv_func_memmem_works_always.
(gl_FUNC_MEMMEM): Obey --enable-cross-guesses for
gl_cv_func_memmem_works_fast.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Obey --enable-cross-guesses for
gl_cv_func_mkdir_trailing_slash_works,
gl_cv_func_mkdir_trailing_dot_works.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Obey --enable-cross-guesses for
gl_cv_func_mkfifo_works.
* m4/mknod.m4 (gl_FUNC_MKNOD): Obey --enable-cross-guesses for
gl_cv_func_mknod_works.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Obey --enable-cross-guesses for
gl_cv_func_working_mkstemp.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Obey --enable-cross-guesses for
gl_cv_func_working_mktime.
* m4/modf.m4 (gl_FUNC_MODF): Obey --enable-cross-guesses for
gl_cv_func_modf_ieee.
* m4/modff.m4 (gl_FUNC_MODFF): Obey --enable-cross-guesses for
gl_cv_func_modff_ieee.
* m4/modfl.m4 (gl_FUNC_MODFL): Obey --enable-cross-guesses for
gl_cv_func_modfl_ieee.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Obey --enable-cross-guesses for
gl_cv_func_nanosleep.
* m4/perror.m4 (gl_FUNC_PERROR): Obey --enable-cross-guesses for
gl_cv_func_perror_works.
* m4/printf.m4 (gl_PRINTF_SIZES_C99): Obey --enable-cross-guesses for
gl_cv_func_printf_sizes_c99.
(gl_PRINTF_INFINITE): Obey --enable-cross-guesses for
gl_cv_func_printf_infinite.
(gl_PRINTF_INFINITE_LONG_DOUBLE): Obey --enable-cross-guesses for
gl_cv_func_printf_infinite_long_double.
(gl_PRINTF_DIRECTIVE_A): Obey --enable-cross-guesses for
gl_cv_func_printf_directive_a.
(gl_PRINTF_DIRECTIVE_F): Obey --enable-cross-guesses for
gl_cv_func_printf_directive_f.
(gl_PRINTF_FLAG_ZERO): Obey --enable-cross-guesses for
gl_cv_func_printf_flag_zero.
(gl_PRINTF_ENOMEM): Obey --enable-cross-guesses for
gl_cv_func_printf_enomem.
(gl_SNPRINTF_TRUNCATION_C99): Obey --enable-cross-guesses for
gl_cv_func_snprintf_truncation_c99.
(gl_SNPRINTF_RETVAL_C99): Obey --enable-cross-guesses for
gl_cv_func_snprintf_retval_c99.
(gl_SNPRINTF_DIRECTIVE_N): Obey --enable-cross-guesses for
gl_cv_func_snprintf_directive_n.
(gl_VSNPRINTF_ZEROSIZE_C99): Obey --enable-cross-guesses for
gl_cv_func_vsnprintf_zerosize_c99.
* m4/pselect.m4 (gl_FUNC_PSELECT): Obey --enable-cross-guesses for
gl_cv_func_pselect_detects_ebadf.
* m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER):
Obey --enable-cross-guesses for
gl_cv_pthread_rwlock_rdlock_prefer_writer.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Obey --enable-cross-guesses for
gl_cv_func_ptsname_sets_errno.
* m4/putenv.m4 (gl_FUNC_PUTENV): Obey --enable-cross-guesses for
gl_cv_func_svid_putenv.
* m4/readlink.m4 (gl_FUNC_READLINK): Obey --enable-cross-guesses for
gl_cv_func_readlink_works.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Obey --enable-cross-guesses for
ac_cv_func_realloc_0_nonnull. Keep this macro also in Autoconf >= 2.70.
* m4/regex.m4 (gl_REGEX): Obey --enable-cross-guesses for
gl_cv_func_re_compile_pattern_working.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Obey --enable-cross-guesses for
gl_cv_func_remainder_ieee.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Obey --enable-cross-guesses for
gl_cv_func_remainderf_ieee.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Obey --enable-cross-guesses for
gl_cv_func_remainderl_ieee.
* m4/rintl.m4 (gl_FUNC_RINTL): Obey --enable-cross-guesses for
gl_cv_func_rintl_works.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Obey --enable-cross-guesses for
gl_cv_func_rmdir_works.
* m4/round.m4 (gl_FUNC_ROUND): Obey --enable-cross-guesses for
gl_cv_func_round_ieee.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Obey --enable-cross-guesses for
gl_cv_func_roundf_ieee.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Obey --enable-cross-guesses for
gl_cv_func_roundl_ieee.
* m4/select.m4 (gl_FUNC_SELECT): Obey --enable-cross-guesses for
gl_cv_func_select_detects_ebadf.
* m4/setenv.m4 (gl_FUNC_SETENV): Obey --enable-cross-guesses for
gl_cv_func_setenv_works.
(gl_FUNC_UNSETENV): Obey --enable-cross-guesses for
gl_cv_func_unsetenv_works.
* m4/signbit.m4 (gl_SIGNBIT): Obey --enable-cross-guesses for
gl_cv_func_signbit, gl_cv_func_signbit_gcc.
* m4/sleep.m4 (gl_FUNC_SLEEP): Obey --enable-cross-guesses for
gl_cv_func_sleep_works.
* m4/stat.m4 (gl_FUNC_STAT): Obey --enable-cross-guesses for
gl_cv_func_stat_file_slash.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Obey --enable-cross-guesses for
gl_cv_func_stpncpy.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Obey
--enable-cross-guesses for gl_cv_func_strcasestr_works_always.
(gl_FUNC_STRCASESTR): Obey --enable-cross-guesses for
gl_cv_func_strcasestr_linear.
* m4/strerror.m4 (gl_FUNC_STRERROR): Obey --enable-cross-guesses for
gl_cv_func_working_strerror.
(gl_FUNC_STRERROR_0): Obey --enable-cross-guesses for
gl_cv_func_strerror_0_works.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Obey
--enable-cross-guesses for gl_cv_func_strerror_r_works.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Obey --enable-cross-guesses for
gl_cv_func_strstr_works_always.
(gl_FUNC_STRSTR): Obey --enable-cross-guesses for
gl_cv_func_strstr_linear.
* m4/strtod.m4 (gl_FUNC_STRTOD): Obey --enable-cross-guesses for
gl_cv_func_strtod_works.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Obey --enable-cross-guesses for
gl_cv_func_strtold_works.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Obey --enable-cross-guesses for
gl_cv_func_symlink_works.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Obey --enable-cross-guesses for
gl_cv_func_symlinkat_works.
* m4/trunc.m4 (gl_FUNC_TRUNC): Obey --enable-cross-guesses for
gl_cv_func_trunc_ieee.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Obey --enable-cross-guesses for
gl_cv_func_truncf_ieee.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Obey --enable-cross-guesses for
gl_cv_func_truncl_ieee.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Obey --enable-cross-guesses for
gl_cv_func_tzset_clobber.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Obey --enable-cross-guesses for
gl_cv_func_ungetc_works.
* m4/unlink.m4 (gl_FUNC_UNLINK): Obey --enable-cross-guesses for
gl_cv_func_unlink_honors_slashes, gl_cv_func_unlink_parent_fails.
* m4/usleep.m4 (gl_FUNC_USLEEP): Obey --enable-cross-guesses for
gl_cv_func_usleep_works.
* m4/utimens.m4 (gl_UTIMENS): Obey --enable-cross-guesses for
gl_cv_func_futimesat_works.
* m4/utimes.m4 (gl_FUNC_UTIMES): Obey --enable-cross-guesses for
gl_cv_func_working_utimes.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Obey --enable-cross-guesses for
gl_cv_func_wcwidth_works.
* m4/glob.m4 (gl_GLOB): When cross-compiling, don't create symlinks for
testing. Obey --enable-cross-guesses for gl_cv_glob_lists_symlinks.
* m4/rename.m4 (gl_FUNC_RENAME): When cross-compiling, don't create
links for testing. Obey --enable-cross-guesses for
gl_cv_func_rename_slash_dst_works, gl_cv_func_rename_slash_src_works,
gl_cv_func_rename_link_works, gl_cv_func_rename_dest_works.
2019-09-08 Bruno Haible <bruno@clisp.org>
Clarify that cross-compilation guesses are guesses.
* m4/threads.m4 (gl_THREADS_H): Say "guessing yes" or "guessing no" when
cross-compiling.
2019-09-08 Bruno Haible <bruno@clisp.org>
chown: Fix configure output (regression from 2019-03-23).
* m4/chown.m4 (gl_FUNC_CHOWN): Fix reference to
gl_cv_func_chown_follows_symlink variable.
2019-09-08 Bruno Haible <bruno@clisp.org>
findprog-in: New module.
Suggested by Paul Smith <psmith@gnu.org>.
* lib/findprog.h (find_in_given_path): New declaration.
* lib/findprog-in.c: New file, based on lib/findprog.c.
* m4/findprog-in.m4: New file, based on m4/findprog.m4.
* modules/findprog-in: New file.
2019-09-08 Bruno Haible <bruno@clisp.org>
findprog: Remove unused dependency.
* modules/findprog (Depends-on): Remove strdup.
2019-09-08 Bruno Haible <bruno@clisp.org>
findprog: Remove test that is obsolete since 2006-04-24.
* m4/findprog.m4 (gl_FINDPROG): Don't test for unistd.h.
2019-09-06 Akim Demaille <akim@lrde.epita.fr>
bitset: style changes
* lib/bitset/vector.c (vbitset_resize): Factor computation.
* lib/bitset.c, lib/bitset/stats.c, lib/bitsetv.c: Prefer
xzalloc to xcalloc.
Suggested by Paul Eggert.
2019-09-06 Akim Demaille <akim@lrde.epita.fr>
bitset: check memory allocation
Reported by 江 祖铭 (Zu-Ming Jiang).
With help from Paul Eggert.
https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html
* lib/bitset/table.c (tbitset_resize): When growing, use xrealloc
instead of realloc.
When shrinking, accept failures.
* lib/bitset/vector.c (vbitset_resize): Likewise.
2019-09-07 Paul Eggert <eggert@cs.ucla.edu>
scratch_buffer: sync from glibc
* config/srclist.txt: Add the scratch_buffer source
code from glibc, since these should be in sync.
Autoupdate.
2019-09-07 Bruno Haible <bruno@clisp.org>
doc: Update for glibc 2.30.
* doc/glibc-functions/gettid.texi: New file.
* doc/glibc-functions/pthread_cond_clockwait.texi: New file.
* doc/glibc-functions/pthread_mutex_clocklock.texi: New file.
* doc/glibc-functions/pthread_rwlock_clockrdlock.texi: New file.
* doc/glibc-functions/pthread_rwlock_clockwrlock.texi: New file.
* doc/glibc-functions/sem_clockwait.texi: New file.
* doc/glibc-functions/tgkill.texi: New file.
* doc/glibc-functions/twalk_r.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc semaphore.h): New section.
* doc/pastposix-functions/h_errno.texi: Update.
* doc/posix-functions/*.texi: Likewise.
2019-09-06 Bruno Haible <bruno@clisp.org>
symlink tests: Avoid test failure on Linux with Lustre file system.
Reported by Thomas C Oppe <Thomas.C.Oppe@erdc.dren.mil>
at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=37312>.
* tests/test-symlink.h (test_symlink): Accept errno value ENOENT.
2019-09-01 Bruno Haible <bruno@clisp.org>
gitsub.sh: Add support for shallow-cloning of subdirectories.
* top/gitsub.sh (func_usage): Document allowed git options with
'git pull'.
(func_pull): Accept GIT_OPTIONS argument.
(pull): Parse git options before complaining about too many arguments.
Pass the git options to func_pull.
2019-08-29 Bruno Haible <bruno@clisp.org>
lock: Fix cross-compilation guesses.
* m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER):
Require AC_CANONICAL_HOST. When cross-compiling, guess no on most
platforms.
2019-08-28 Bruno Haible <bruno@clisp.org>
isfinite, isinf, isnan, signbit: Fix error in C++ mode on mingw.
Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00075.html>.
* lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Add more arguments.
(isfinite, isinf, isnan, signbit): On platforms that use C++ include
files from GCC 6 or newer, use an override through '#define', because
the inline definitions in the platform's <cmath> cannot be overridden
in another way.
2019-08-27 Paul Eggert <eggert@cs.ucla.edu>
Revert macOS INT_MULTIPLY_WRAPV patch
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00076.html
* lib/intprops.h (_GL_HAS___builtin_mul_overflow): Remove.
(_GL_HAS_BUILTIN_MUL_OVERFLOW):
Go back to working around the Clang bug on macOS.
2019-08-27 Bruno Haible <bruno@clisp.org>
libtool-next-version: Fix error output.
* build-aux/libtool-next-version (func_fatal_error): Fix the program
name.
2019-08-27 Paul Eggert <eggert@cs.ucla.edu>
Speed up INT_MULTIPLY_WRAPV on macOS
Assume that __builtin_mul_overflow works OK with Clang on macOS.
Mattias Engdegård says it’s safe to assume the relevant library
is always available there.
* lib/intprops.h (_GL_HAS___builtin_mul_overflow):
New temporary internal macro.
(_GL_HAS_BUILTIN_MUL_OVERFLOW):
No need to work around the Clang bug on macOS.
2019-08-25 Paul Eggert <eggert@cs.ucla.edu>
intprops.h, verify.h: port better to clang
Improve code generated by INT_ADD_WRAPV and INT_SUBTRACT_WRAPV
with Clang. Problem reported privately by Mattias Engdegård.
Also, insulate intprops.h and verify.h better against each other’s
definitions of __has_builtin on non-Clang hosts.
* lib/intprops.h (__has_builtin): Define a temporary substitute
if __has_builtin is not already defined.
(_GL_HAS___builtin_add_overflow, _GL_TEMPDEF___has_builtin):
New temporary internal macros.
(_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_MUL_OVERFLOW):
Now two separate macros, replacing the old
_GL_HAS_BUILTIN_OVERFLOW, since we no longer assume that
__builtin_mul_overflow is like the rest. All uses changed.
(INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, INT_MULTIPLY_WRAPV):
Adjust to above changes.
(_GL_INT_OP_WRAPV): Remove ‘builtin’ arg, since it’s no
longer relevant. All uses changed.
* lib/verify.h (__has_builtin): Treat like intprops.h,
so that the two .h files do not collide with each other.
(_GL_HAS___builtin_unreachable, _GL_HAS___builtin_trap)
(_GL_TEMPDEF___has_builtin): New temporary internal macros.
2019-08-24 Paul Eggert <eggert@cs.ucla.edu>
intprops: say why not Clang __builtin_add_overflow
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW):
Mention Clang in comment, responding to a query from
Mattias Engdegård.
2019-08-24 Bruno Haible <bruno@clisp.org>
doc: Document most of the files outside of modules.
* doc/gnulib.texi (Build Infrastructure Files,
Release Management Files): New chapters.
2019-08-24 Bruno Haible <bruno@clisp.org>
bootstrap: Keep in sync with the 'gettext' module.
Reported by Assaf Gordon in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00045.html>.
* build-aux/po/Makefile.in.in: Update to gettext 0.20.
* build-aux/po/remove-potcdate.sin: Likewise.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-sha512: Add tests.
* tests/test-gc-sha512.c: New file, based on tests/test-gc-sha1.c.
* modules/crypto/gc-sha512-tests: New file.
crypto/gc-sha256: Add tests.
* tests/test-gc-sha256.c: New file, based on tests/test-gc-sha1.c.
* modules/crypto/gc-sha256-tests: New file.
crypto/gc-sha256, crypto/gc-sha512: New modules.
* lib/gc.h (gc_sha256, gc_sha512): New declarations.
* lib/gc-gnulib.c: Include sha256.h, sha512.h.
(MAX_DIGEST_SIZE): Set to 64.
(_gc_hash_ctx, gc_hash_open, gc_hash_digest_length, gc_hash_write,
gc_hash_read, gc_hash_buffer): Add support for sha256 and sha512.
(gc_sha256, gc_sha512): New functions.
* lib/gc-libgcrypt.c (gc_sha256, gc_sha512): New functions.
* modules/crypto/gc-sha256: New file, based on modules/crypto/gc-sha1.
* modules/crypto/gc-sha512: New file, based on modules/crypto/gc-sha1.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-sha1 tests: Improve output when the test fails.
* tests/test-gc-sha1.c (main): In case of mismatch, print the entire
output.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-sm3: Fix compilation error with --with-libgcrypt.
* m4/gc-sm3.m4 (gl_GC_SM3): Test whether libgcrypt supports SM3. Define
LIBGCRYPT_HAS_MD_SM3.
* lib/gc-libgcrypt.c: Include sm3.h.
(_gc_hash_ctx, gc_hash_open, gc_hash_hmac_setkey, gc_hash_write,
gc_hash_read, gc_hash_close, gc_hash_buffer, gc_sm3): Use the gnulib
implementation if libgcrypt does not support SM3.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-md2: Optimize and clarify code.
* lib/gc-gnulib.c (gc_hash_open): Comment out md2_init_ctx invocation.
* lib/gc-libgcrypt.c (gc_hash_open): Clarify why md2_init_ctx invocation
is not needed.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-md2: Add comment.
* lib/gc-libgcrypt.c: Add comment.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc-{md[24],rijndael} tests: Fix link error with --with-libgcrypt.
* modules/crypto/gc-md2-tests (test_gc_md2_LDADD): New variable.
* modules/crypto/gc-md4-tests (test_gc_md4_LDADD): New variable.
* modules/crypto/gc-rijndael-tests (test_gc_rijndael_LDADD): New
variable.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc: Fix link error with --with-libgcrypt.
* m4/gc.m4 (gl_GC): Set LIB_CRYPTO to the value found by the
AC_LIB_HAVE_LINKFLAGS invocation.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc: Access the module indicators correctly.
* lib/gc-gnulib.c: Use '#if GNULIB_GC_*', not '#ifdef GNULIB_GC_*'.
* lib/gc-libgcrypt.c: Likewise.
2019-08-24 Bruno Haible <bruno@clisp.org>
crypto/gc: Fix configuration with --with-libgcrypt.
* m4/libgcrypt.m4: New file, copied from libgcrypt/src/libgcrypt.m4.
* modules/crypto/gc (Files): Add it.
* m4/gc.m4 (gl_GC): Assume AM_PATH_LIBGCRYPT is defined.
2019-08-24 Bruno Haible <bruno@clisp.org>
Remove unused file.
* m4/stat-macros.m4: Remove file.
2019-08-21 Paul Eggert <eggert@cs.ucla.edu>
New strip-trailing-space option for srclist-update
* config/srclist-update (fixfile): Support new option.
* config/srclist.txt (texinfo.tex, maintain.texi, standards.texi):
Use it.
2019-08-20 Eric Blake <eblake@redhat.com>
accept4: Support SOCK_NONBLOCK, if defined
* lib/accept4.c (accept4): If SOCK_NONBLOCK is defined, honor it.
accept4: Fix compilation when native accept4() exists.
Reported by Richard W.M. Jones <rjones@redhat.com> in
https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00029.html
* lib/accept4.c (accept4): Match witness symbol to m4 file update.
2019-08-18 Bruno Haible <bruno@clisp.org>
Defeat -flto GCC optimization in math autoconf tests.
Reported by Tomasz Kłoczko <kloczko.tomasz@gmail.com>
at <https://savannah.gnu.org/bugs/?56109>.
* m4/mathfunc.m4 (gl_MATHFUNC): Mark function pointer as 'volatile'.
* m4/acosl.m4 (gl_FUNC_ACOSL): Likewise.
* m4/asinl.m4 (gl_FUNC_ASINL): Likewise.
* m4/atanl.m4 (gl_FUNC_ATANL): Likewise.
* m4/cosl.m4 (gl_FUNC_COSL): Likewise.
* m4/exp2.m4 (gl_FUNC_EXP2): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/expm1.m4 (gl_FUNC_EXPM1): Likewise.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise.
* m4/sinl.m4 (gl_FUNC_SINL): Likewise.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise.
* m4/tanl.m4 (gl_FUNC_TANL): Likewise.
2019-08-17 Bruno Haible <bruno@clisp.org>
windows-spin: Implement declared functions.
Reported by Gisle Vanem <gisle.vanem@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00024.html>.
* lib/windows-spin.c (glwthread_spin_trylock): Fix typo in function
name.
2019-08-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: port to Oracle Developer Studio 12.6
* lib/intprops.h (_GL_INT_OP_WRAPV): Fix recently-introduced
typos that were in a section not compiled by GCC.
2019-08-14 Paul Eggert <eggert@cs.ucla.edu>
intprops: support uchar, ushort _WRAPV dests
* lib/intprops.h (_GL_INT_OP_WRAPV_SMALLISH): New macro, defined
when __builtin_add_overflow etc. and _Generic are not used.
(_GL_INT_OP_WRAPV): Use it to support destinations that
are unsigned char or unsigned short, even in compilers
that lack __typeof__ and are not C11-compatible.
intprops: pacify picky GCC
* lib/intprops.h (_GL_BUILTIN_MUL_OVERFLOW):
Pacify GCC’s complaints about ignoring __builtin_mul_overflow’s
possibly-incorrect result.
(_GL_INT_MULTIPLY_RANGE_OVERFLOW): Pacify GCC’s complaints
about (A) used as a boolean, when A is an expression like 3 * 4.
intprops: support unsigned *_WRAPV results
Add support for unsigned, unsigned long, and unsigned long long
results to INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, and
INT_MULTIPLY_WRAPV. Also, work around GCC bug 91450, and fix a
bug with unsigned inputs reported by Eli Zaretskii in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00012.html
* config/srclist.txt: Break the glibc connection for intprops.h
temporarily, while more testing is done in Gnulib-using apps.
* lib/intprops.h (INT_ADD_WRAPV, INT_SUBTRACT_WRAPV)
(INT_MULTIPLY_WRAPV, _GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH):
Support unsigned results no narrower than unsigned int. Report
overflow correctly if some arguments are unsigned.
(_GL_BUILTIN_MUL_OVERFLOW): New macro, to work around GCC bug 91450.
(_GL_INT_OP_CALC): Simplify now that the OVERFLOW argument does
the right thing with narrow args.
(_GL_INT_OP_CALC1): Remove. All callers removed.
(_GL_INT_ADD_RANGE_OVERFLOW, _GL_INT_SUBTRACT_RANGE_OVERFLOW)
(_GL_INT_MULTIPLY_RANGE_OVERFLOW): New macros.
* tests/test-intprops.c: Check for bugs and test new behavior.
2019-08-14 Bruno Haible <bruno@clisp.org>
get_progname_of: New module.
* lib/get_progname_of.h: New file.
* lib/get_progname_of.c: New file, based on lib/getprogname.c.
* lib/getprogname.c (getprogname): Tweak coding style.
* lib/vma-iter.c (vma_iterate_bsd): Update comment.
* modules/get_progname_of: New file.
2019-08-14 Bruno Haible <bruno@clisp.org>
get_ppid_of: New module.
* lib/get_ppid_of.h: New file.
* lib/get_ppid_of.c: New file.
* modules/get_ppid_of: New file.
2019-08-13 Bruno Haible <bruno@clisp.org>
libtextstyle-optional tests: Support the NO_COLOR environment variable.
* tests/test-libtextstyle.c (main): Do not emit styling when the
environment variable NO_COLOR is set.
2019-08-12 Paul Eggert <eggert@cs.ucla.edu>
verify: improve diagnostic quality in recent GCC
If ‘verify’ fails in a deeply-nested macro, GCC does not output a
useful line number containing the top-level caller of the macro.
So, bring back the older way of issuing a diagnostic containing
the top-level call’s arg, so that it is easier to diagnose
‘verify’ failures with recent GCC.
* lib/verify.h (_GL_VERIFY_TRUE, _GL_VERIFY_TYPE):
Bring back DIAGNOSTIC arg. All callers changed.
(verify): Just use _GL_VERIFY.
2019-08-11 Bruno Haible <bruno@clisp.org>
localcharset: Add more aliases for OS/2.
Based on patch by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnu-libiconv/2019-08/msg00004.html>.
* lib/localcharset.c (alias_table) [OS2]: Add more aliases.
2019-08-10 Eric Blake <eblake@redhat.com>
configmake: Update advice on usage.
* modules/configmake (Include): No longer necessary to include
last, since configmake.h itself worries about collision avoidance.
2019-08-10 Assaf Gordon <assafgordon@gmail.com>
parse-datetime: fix 'T' military timezone handling
* lib/parse-datetime.y (zone):
follow-up to the previous commit: the 'T' case is handled outside the
conversion table (used as either military timezone UTC-7 or ISO8601
separator). Change it from "HOUR(7)" to "-HOUR(7)" to match other
timezone letters.
2019-08-09 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: fix military timezone letters
Problem and trivial fix reported by Neil Hoggarth in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00005.html
* lib/parse-datetime.y (military_table):
Do it the right way, not the RFC 822 way.
2019-08-08 Eric Blake <eblake@redhat.com>
configmake: Avoid namespace pollution issue on mingw.
* modules/configmake (Makefile.am): If the project uses
<winsock2.h>, include that header before defining DATADIR.
2019-07-28 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Fix regression on mingw (regression from 2018-02-24).
* tests/test-mbrtowc.c (main): Fix expected value of wc.
2019-07-24 Bruno Haible <bruno@clisp.org>
pthread-h: Fix definitions of types and macros on mingw.
* lib/pthread.in.h (pthread_t, pthread_attr_t, PTHREAD_CREATE_JOINABLE,
PTHREAD_CREATE_DETACHED): Define also when module 'pthread-thread' is
not in use.
(pthread_once_t, PTHREAD_ONCE_INIT): Define also when module
'pthread-once' is not in use.
(pthread_mutex_t, pthread_mutexattr_t, PTHREAD_MUTEX_INITIALIZER,
PTHREAD_MUTEX_DEFAULT, PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_ERRORCHECK,
PTHREAD_MUTEX_RECURSIVE): Define also when module 'pthread-mutex' is not
in use.
(pthread_rwlock_t, pthread_rwlockattr_t, PTHREAD_RWLOCK_INITIALIZER):
Define also when module 'pthread-rwlock' is not in use.
(pthread_cond_t, pthread_condattr_t, PTHREAD_COND_INITIALIZER): Define
also when module 'pthread-cond' is not in use.
(pthread_key_t, PTHREAD_DESTRUCTOR_ITERATIONS): Define also when module
'pthread-tss' is not in use.
(pthread_spinlock_t): Define also when module 'pthread-spin' is not in
use.
2019-07-24 Simon Josefsson <simon@josefsson.org>
crypto/gc: Cope with libgcrypt without SM3.
* lib/gc-libgcrypt.c (gc_hash_open): Guard SM3 usage.
2019-07-23 Paul Eggert <eggert@cs.ucla.edu>
backupfile: fix resource leak on memory failure
Problem found by Coverity (CID 1484214).
* lib/backupfile.c (backupfile_internal): Don’t leak dirp.
2019-07-22 Bruno Haible <bruno@clisp.org>
Avoid missing-declarations warning in various tests.
* tests/test-argp.c (fail, test1, test2, test_file, test3, test4, test5,
test6, test_optional, test7, test8, test9, test10, test11, test12,
test13, test14, test15, test_fun): Declare static.
* tests/test-cnd.c (test_cnd_wait): Likewise.
* tests/test-cond.c (test_cond): Likewise.
2019-07-22 Bernhard Voelker <mail@bernhard-voelker.de>
pthread tests: Avoid missing-declarations warning.
* tests/test-pthread-cond.c (test_pthread_cond_wait): Declare static.
2019-07-19 Bruno Haible <bruno@clisp.org>
parse-datetime: Avoid warnings from bison versions >= 3.3.
Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
* modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.
2019-07-19 Bruno Haible <bruno@clisp.org>
parse-datetime: Require Bison 2.4 or newer.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON.
Code taken from gettext's intl.m4.
* modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead
of YACC.
2019-07-19 Bruno Haible <bruno@clisp.org>
areadlink-with-size, xgethostname, xgetdomainname: Fix GCC warning.
* lib/areadlink-with-size.c: Include <string.h>.
* lib/areadlinkat-with-size.c: Likewise.
* lib/xgethostname.c: Likewise.
* lib/xgetdomainname.c: Likewise.
2019-07-19 Bernhard Voelker <mail@bernhard-voelker.de>
parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4
* lib/parse-datetime.y: Use "%define api.pure" rather than obsolescent
"%pure-parser". The former is available since Bison 2.3b (2008),
while the latter is marked as obsolete since version 3.4 (May 2019).
2019-07-16 Bruno Haible <bruno@clisp.org>
update-copyright: Make it work again (regression from 2019-06-15).
Reported by Brian C. Lane <bcl@redhat.com>.
* build-aux/update-copyright: Add back the -0777, -p, -i options.
2019-07-14 Bruno Haible <bruno@clisp.org>
doc: Update info about <pthread.h>.
* doc/posix-headers/pthread.texi: Mention the module 'pthread-h' instead
of 'pthread'.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread_sigmask tests: Use new multithread modules.
* tests/test-pthread_sigmask2.c: Include <pthread.h> instead of
glthread/thread.h.
(main_thread, killer_thread): Change type to pthread_t.
(main): Update accordingly.
* modules/pthread_sigmask-tests (Depends-on): Add pthread-thread. Remove
thread.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-tss: Add tests.
* tests/test-pthread-tss.c: New file, based on tests/test-tls.c and
tests/test-tss.c.
* modules/pthread-tss-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-cond: Add tests.
* tests/test-pthread-cond.c: New file, based on tests/test-cond.c and
tests/test-cnd.c.
* modules/pthread-cond-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-rwlock: Add tests.
* tests/test-pthread-rwlock.c: New file, based on tests/test-lock.c.
* modules/pthread-rwlock-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-mutex: Add tests.
* tests/test-pthread-mutex.c: New file, based on tests/test-lock.c and
tests/test-mtx.c.
* modules/pthread-mutex-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-once: Add tests.
* tests/test-pthread-once1.c: New file, based on tests/test-once.c and
tests/test-call_once.c.
* tests/test-pthread-once2.c: New file, based on tests/test-lock.c and
tests/test-mtx.c.
* modules/pthread-once-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-thread: Add tests.
* tests/test-pthread-thread.c: New file, based on
tests/test-thread_create.c and tests/test-thrd_create.c.
* modules/pthread-thread-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread: Turn into a convenience module.
* lib/pthread.in.h: Remove declarations for extern inline functions.
* lib/pthread.c: Remove file.
* modules/pthread (Files): Remove it.
(Depends-on): Add pthread-thread, pthread-once, pthread-mutex,
pthread-rwlock, pthread-cond, pthread-tss, pthread-spin.
(configure.ac): Don't compile lib/pthread.c. Don't set GNULIB_PTHREAD.
* m4/pthread_h.m4 (gl_PTHREAD_H_DEFAULTS): Don't initialize
GNULIB_PTHREAD.
* modules/pthread-h (Makefile.am): Don't substitute GNULIB_PTHREAD.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-spin: New module.
* lib/pthread.in.h (pthread_spin_init, pthread_spin_destroy,
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Remove
inline definitions.
* lib/pthread-spin.c: New file.
* m4/pthread-spin.m4: New file.
* modules/pthread-spin: New file.
* doc/posix-functions/pthread_spin_init.texi: Mention the new module.
* doc/posix-functions/pthread_spin_lock.texi: Likewise.
* doc/posix-functions/pthread_spin_trylock.texi: Likewise.
* doc/posix-functions/pthread_spin_unlock.texi: Likewise.
* doc/posix-functions/pthread_spin_destroy.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-tss: New module.
* lib/pthread-tss.c: New file.
* m4/pthread-tss.m4: New file.
* modules/pthread-tss: New file.
* doc/posix-functions/pthread_key_create.texi: Mention the new module.
* doc/posix-functions/pthread_setspecific.texi: Likewise.
* doc/posix-functions/pthread_getspecific.texi: Likewise.
* doc/posix-functions/pthread_key_delete.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-cond: New module.
* lib/pthread.in.h (pthread_cond_destroy, pthread_cond_init,
pthread_cond_signal, pthread_cond_wait): Remove inline definitions.
* lib/pthread-cond.c: New file.
* m4/pthread-cond.m4: New file.
* modules/pthread-cond: New file.
* doc/posix-functions/pthread_cond_init.texi: Mention the new module.
* doc/posix-functions/pthread_condattr_init.texi: Likewise.
* doc/posix-functions/pthread_condattr_destroy.texi: Likewise.
* doc/posix-functions/pthread_cond_wait.texi: Likewise.
* doc/posix-functions/pthread_cond_timedwait.texi: Likewise.
* doc/posix-functions/pthread_cond_signal.texi: Likewise.
* doc/posix-functions/pthread_cond_broadcast.texi: Likewise.
* doc/posix-functions/pthread_cond_destroy.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-rwlock: New module.
* lib/pthread-rwlock.c: New file, based on lib/glthread/lock.c.
* m4/pthread-rwlock.m4: New file.
* modules/pthread-rwlock: New file.
* doc/posix-functions/pthread_rwlock_init.texi: Mention the new module
and the Android problem.
* doc/posix-functions/pthread_rwlockattr_init.texi: Likewise.
* doc/posix-functions/pthread_rwlockattr_destroy.texi: Likewise.
* doc/posix-functions/pthread_rwlock_rdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_wrlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_trywrlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_timedwrlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_unlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_destroy.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-mutex: New module.
* lib/pthread.in.h (pthread_mutexattr_destroy, pthread_mutexattr_init,
pthread_mutexattr_settype, pthread_mutex_destroy, pthread_mutex_init,
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_timedlock,
pthread_mutex_unlock): Remove inline definitions.
* lib/pthread-mutex.c: New file.
* m4/pthread-mutex.m4: New file.
* modules/pthread-mutex: New file.
* doc/posix-functions/pthread_mutex_init.texi: Mention the new module.
* doc/posix-functions/pthread_mutexattr_init.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_gettype.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_settype.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_getrobust.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_setrobust.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_destroy.texi: Likewise.
* doc/posix-functions/pthread_mutex_lock.texi: Likewise.
* doc/posix-functions/pthread_mutex_trylock.texi: Likewise.
* doc/posix-functions/pthread_mutex_timedlock.texi: Likewise.
* doc/posix-functions/pthread_mutex_unlock.texi: Likewise.
* doc/posix-functions/pthread_mutex_destroy.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-once: New module.
* lib/pthread-once.c: New file.
* m4/pthread-once.m4: New file.
* modules/pthread-once: New file.
* doc/posix-functions/pthread_once.texi: Mention the new module.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-thread: New module.
* lib/pthread.in.h (pthread_create, pthread_exit, pthread_join): Remove
inline definitions.
* lib/pthread-thread.c: New file.
* m4/pthread-thread.m4: New file.
* modules/pthread-thread: New file.
* doc/posix-functions/pthread_create.texi: Mention the new module.
* doc/posix-functions/pthread_attr_init.texi: Likewise.
* doc/posix-functions/pthread_attr_getdetachstate.texi: Likewise.
* doc/posix-functions/pthread_attr_setdetachstate.texi: Likewise.
* doc/posix-functions/pthread_attr_destroy.texi: Likewise.
* doc/posix-functions/pthread_self.texi: Likewise.
* doc/posix-functions/pthread_equal.texi: Likewise.
* doc/posix-functions/pthread_detach.texi: Likewise.
* doc/posix-functions/pthread_join.texi: Likewise.
* doc/posix-functions/pthread_exit.texi: Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Prepare for adding new modules.
* lib/pthread.in.h: Define the types and macros for each of the
facilities separately.
* m4/pthread_h.m4 (gl_PTHREAD_H): Set HAVE_PTHREAD_CREATE_DETACHED,
HAVE_PTHREAD_MUTEX_RECURSIVE, HAVE_PTHREAD_MUTEX_ROBUST,
HAVE_PTHREAD_PROCESS_SHARED.
(gl_PTHREAD_H_DEFAULTS): Initialize HAVE_PTHREAD_CREATE_DETACHED,
HAVE_PTHREAD_MUTEX_RECURSIVE, HAVE_PTHREAD_MUTEX_ROBUST,
HAVE_PTHREAD_PROCESS_SHARED.
* modules/pthread-h (Makefile.am): Substitute
HAVE_PTHREAD_CREATE_DETACHED, HAVE_PTHREAD_MUTEX_RECURSIVE,
HAVE_PTHREAD_MUTEX_ROBUST, HAVE_PTHREAD_PROCESS_SHARED.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Add declarations of essential pthread functions.
* lib/pthread.in.h: Include snippets.
(pthread_create, pthread_attr_init, pthread_attr_getdetachstate,
pthread_attr_setdetachstate, pthread_attr_destroy, pthread_self,
pthread_equal, pthread_detach, pthread_join, pthread_exit, pthread_once,
pthread_mutex_init, pthread_mutexattr_init, pthread_mutexattr_gettype,
pthread_mutexattr_settype, pthread_mutexattr_getrobust,
pthread_mutexattr_setrobust, pthread_mutexattr_destroy,
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock,
pthread_mutex_destroy, pthread_rwlock_init, pthread_rwlockattr_init,
pthread_rwlockattr_destroy, pthread_rwlock_rdlock,
pthread_rwlock_wrlock, pthread_rwlock_tryrdlock,
pthread_rwlock_trywrlock, pthread_rwlock_timedrdlock,
pthread_rwlock_timedwrlock, pthread_rwlock_unlock,
pthread_rwlock_destroy, pthread_cond_init, pthread_condattr_init,
pthread_condattr_destroy, pthread_cond_wait, pthread_cond_timedwait,
pthread_cond_signal, pthread_cond_broadcast, pthread_cond_destroy,
pthread_key_create, pthread_setspecific, pthread_getspecific,
pthread_key_delete, pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy): New
declarations.
(pthread_mutex_timedlock): Move declaration.
* m4/pthread_h.m4 (gl_PTHREAD_H): Check whether the new functions are
declared.
(gl_PTHREAD_H_DEFAULTS): Initialize GNULIB_PTHREAD_THREAD,
GNULIB_PTHREAD_ONCE, GNULIB_PTHREAD_MUTEX, GNULIB_PTHREAD_RWLOCK,
GNULIB_PTHREAD_COND, GNULIB_PTHREAD_TSS, GNULIB_PTHREAD_SPIN and the
HAVE_* and REPLACE_* variables for the new functions.
* modules/pthread-h (Depends-on): Add snippet/c++defs,
snippet/_Noreturn, snippet/arg-nonnull, snippet/warn-on-use.
(Makefile.am): Substitute GNULIB_PTHREAD_THREAD, GNULIB_PTHREAD_ONCE,
GNULIB_PTHREAD_MUTEX, GNULIB_PTHREAD_RWLOCK, GNULIB_PTHREAD_COND,
GNULIB_PTHREAD_TSS, GNULIB_PTHREAD_SPIN and the HAVE_* and REPLACE_*
variables for the new functions. Split the sed script, to avoid the
limit of 99 commands of HP-UX sed.
* tests/test-pthread-c++.cc: Check the signature of the new functions.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Respect --enable-threads={posix|windows} option on mingw.
* m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_THREADLIB. Set
HAVE_PTHREAD_H if gl_threads_api is 'windows'.
(LIB_PTHREAD): Rely on $LIBMULTITHREAD from threadlib.m4.
* modules/pthread (Link): Change to $(LIBMULTITHREAD).
* modules/pthread-h (Depends-on): Add threadlib.
(Link): Change to $(LIBTHREAD).
* modules/pthread-h-c++-tests (test_pthread_c___LDADD): Use
$(LIBMULTITHREAD) instead of $(LIB_PTHREAD).
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Add C++ tests.
* tests/test-pthread-c++.cc: New file.
* modules/pthread-h-c++-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Add tests.
* tests/test-pthread.c: New file.
* modules/pthread-h-tests: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: New module.
* lib/pthread.in.h: Define replacement functions only if GNULIB_PTHREAD
is 1.
* m4/pthread_h.m4: Renamed from m4/pthread.m4.
(gl_PTHREAD_H): Renamed from gl_PTHREAD_CHECK. Don't test whether
<pthread.h> pollutes the namespace; instead, prepare for generating a
pthread.h always. Substitute HAVE_PTHREAD_H here.
(gl_PTHREAD_H_DEFAULTS): Renamed from gl_PTHREAD_DEFAULTS. Initialize
GNULIB_PTHREAD. Don't initialize HAVE_PTHREAD_H here.
* modules/pthread-h: New file, based on modules/pthread.
* modules/pthread: Rely on 'pthread-h'.
* m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK):
Update.
* modules/pthread_mutex_timedlock (Depends-on): Add pthread-h. Remove
pthread.
2019-07-14 Bruno Haible <bruno@clisp.org>
sched_yield: New module.
* lib/sched.in.h: Add _GL_FUNCDECL_RPL, _GL_WARN_ON_USE placeholders.
(sched_yield): New declaration.
* lib/sched_yield.c: New file.
* m4/sched_yield.m4: New file.
* m4/sched_h.m4 (gl_SCHED_H): Require gl_SCHED_H_DEFAULTS. Arrange to
provide a replacement sched.h always. Test whether sched_yield is
declared.
(gl_SCHED_MODULE_INDICATOR, gl_SCHED_H_DEFAULTS): New macros.
* modules/sched (Depends-on): Add snippet/c++defs, snippet/warn-on-use.
(Makefile.am): Provide a replacement sched.h always. Substitute
GNULIB_SCHED_YIELD, HAVE_SCHED_YIELD, REPLACE_SCHED_YIELD,
_GL_FUNCDECL_RPL, _GL_WARN_ON_USE.
* modules/sched_yield: New file.
* doc/posix-functions/sched_yield.texi: Mention the new module.
2019-07-14 Bruno Haible <bruno@clisp.org>
windows-spin: New module.
* lib/windows-spin.h: New file.
* lib/windows-spin.c: New file.
* modules/windows-spin: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
windows-timedrwlock: New module.
* lib/windows-timedrwlock.h: New file, based on windows-rwlock.h.
* lib/windows-timedrwlock.c: New file, based on windows-rwlock.c and
windows-cond.c.
* lib/windows-cond.h (struct glwthread_waitqueue_link): Protect against
redefinition conflict with windows-timedrwlock.h.
* modules/windows-timedrwlock: New file.
2019-07-14 Bruno Haible <bruno@clisp.org>
windows-rwlock: New module.
* lib/windows-rwlock.h: New file, extracted from lib/glthread/lock.h.
* lib/windows-rwlock.c: New file, extracted from lib/glthread/lock.c.
* lib/glthread/lock.h: Include windows-rwlock.h. Don't include
windows-initguard.h.
(gl_rwlock_t): Define using glwthread_rwlock_t.
(gl_rwlock_initializer): Define using GLWTHREAD_RWLOCK_INIT.
(glthread_rwlock_init): Define using glwthread_rwlock_init.
(glthread_rwlock_rdlock): Define using glwthread_rwlock_rdlock.
(glthread_rwlock_wrlock): Define using glwthread_rwlock_wrlock.
(glthread_rwlock_unlock): Define using glwthread_rwlock_unlock.
(glthread_rwlock_destroy): Define using glwthread_rwlock_destroy.
(glthread_rwlock_init_func, glthread_rwlock_rdlock_func,
glthread_rwlock_wrlock_func, glthread_rwlock_unlock_func,
glthread_rwlock_destroy_func): Remove declarations.
* lib/glthread/lock.c (gl_waitqueue_t): Remove type.
(gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_notify_first,
gl_waitqueue_notify_all, glthread_rwlock_init_func,
glthread_rwlock_rdlock_func, glthread_rwlock_wrlock_func,
glthread_rwlock_unlock_func, glthread_rwlock_destroy_func): Remove
functions.
* modules/windows-rwlock: New file.
* modules/lock (Depends-on): Add windows-rwlock.
2019-07-14 Bruno Haible <bruno@clisp.org>
windows-thread: Add support for creating a thread in detached state.
* lib/windows-thread.h (GLWTHREAD_ATTR_DETACHED): New macro.
(glwthread_thread_create): Add attr argument.
* lib/windows-thread.c (glwthread_thread_create): Likewise.
* lib/glthread/thread.h (glthread_create): Update.
* lib/thrd.c (thrd_create): Update.
2019-07-14 Bruno Haible <bruno@clisp.org>
windows-*: Rename glwthread_spinlock_t to glwthread_initguard_t.
* lib/windows-initguard.h: Renamed from lib/windows-spinlock.h.
(glwthread_initguard_t): Renamed from glwthread_spinlock_t.
(GLWTHREAD_INITGUARD_INIT): Renamed from GLWTHREAD_SPINLOCK_INIT.
* lib/windows-mutex.h: Update.
* lib/windows-recmutex.h: Likewise.
* lib/windows-timedmutex.h: Likewise.
* lib/windows-timedrecmutex.h: Likewise.
* lib/windows-cond.h: Likewise.
* lib/glthread/lock.h: Likewise.
* modules/windows-mutex (Files): Add lib/windows-initguard.h. Remove
lib/windows-spinlock.h.
* modules/windows-recmutex (Files): Likewise.
* modules/windows-timedmutex (Files): Likewise.
* modules/windows-timedrecmutex (Files): Likewise.
* modules/windows-cond (Files): Likewise.
* modules/threads-h (Files): Likewise.
2019-07-14 Bruno Haible <bruno@clisp.org>
doc: Fix info about pthread API in HP-UX.
* doc/posix-functions/pthread_*.texi: Fix info about HP-UX 11.
2019-07-14 Bruno Haible <bruno@clisp.org>
threads-h: Fix generation of threads.h.
* modules/threads-h (Makefile.am): Insert the required header file
snippets.
2019-07-09 Bruno Haible <bruno@clisp.org>
striconveh test: Fix a compilation failure when iconv is not available.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
* tests/test-striconveh.c (main): Move iconv_close invocations inside
HAVE_ICONV.
2019-07-07 Akim Demaille <akim@lrde.epita.fr>
argmatch: adjust columns for help2man.
* lib/argmatch.h (argmatch_##Name##_doc_col): If some argument
requires column 20 or more, return 20.
2019-07-06 Paul Eggert <eggert@cs.ucla.edu>
areadlink-with-size: avoid realloc when size==0
* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
Reallocate at the end to the actual size, to avoid memory waste,
as suggested by Bruno Haible. But when the guessed size is zero -
useful when the size is unknown - do the initial small readlink
into the stack, to avoid that realloc in the usual case.
2019-07-06 Pádraig Brady <P@draigBrady.com>
areadlink-with-size: guess a buffer size with 0 size
The size is usually taken from st_size, which can be zero,
resulting in inefficient operation.
Instead let zero select an initial memory allocation
of 128 bytes, which most symlinks fit within.
* lib/areadlink-with-size.c (areadlink_with_size):
Start with a 128 byte buffer, for SIZE == 0.
* lib/areadlinkat-with-size.c (areadlinkat_with_size): Likewise.
2019-07-06 Konstantin Kharlamov <Hi-Angel@yandex.ru>
Replace manually crafted hex regexes with [:xdigit:]
* build-aux/gitlog-to-changelog (parse_amend_file)
(git_dir_option):
Replace various combinations of [0-9a-fA-F] with [[:xdigit:]].
This patch is backported from Emacs (Bug#36167).
2019-07-06 Bruno Haible <bruno@clisp.org>
error: Fix documentation.
* doc/glibc-functions/error_at_line.texi: Document what the 'error'
module provides.
* doc/glibc-functions/error_message_count.texi: Likewise.
* doc/glibc-functions/error_one_per_line.texi: Likewise.
* doc/glibc-functions/error_print_progname.texi: Likewise.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of glibc <= 2.1.x as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that glibc 2.1.x
and older is unsupported.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Linux libc5 as a supported platform.
* doc/posix-functions/iswalnum.texi: Don't mention workarounds specific
to Linux libc5.
* doc/posix-functions/iswalpha.texi: Likewise.
* doc/posix-functions/iswblank.texi: Likewise.
* doc/posix-functions/iswcntrl.texi: Likewise.
* doc/posix-functions/iswdigit.texi: Likewise.
* doc/posix-functions/iswgraph.texi: Likewise.
* doc/posix-functions/iswlower.texi: Likewise.
* doc/posix-functions/iswprint.texi: Likewise.
* doc/posix-functions/iswpunct.texi: Likewise.
* doc/posix-functions/iswspace.texi: Likewise.
* doc/posix-functions/iswupper.texi: Likewise.
* doc/posix-functions/iswxdigit.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Tandem/NSK as a supported platform.
* doc/posix-headers/stdlib.texi: Don't mention workarounds specific to
Tandem/NSK.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Mac OS X <= 10.4 as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that Mac OS X 10.4
and older is unsupported.
* doc/posix-functions/acosl.texi: Don't mention workarounds specific to
Mac OS X 10.4 and older.
* doc/posix-functions/asinl.texi: Likewise.
* doc/posix-functions/atanl.texi: Likewise.
* doc/posix-functions/cosl.texi: Likewise.
* doc/posix-functions/expl.texi: Likewise.
* doc/posix-functions/frexpl.texi: Likewise.
* doc/posix-functions/gettimeofday.texi: Likewise.
* doc/posix-functions/logl.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/sinl.texi: Likewise.
* doc/posix-functions/sqrtl.texi: Likewise.
* doc/posix-functions/tanl.texi: Likewise.
* doc/posix-functions/wcswidth.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of AIX 4 as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that AIX 4 is
unsupported.
* doc/posix-functions/nanosleep.texi: Don't mention AIX 4 specific
workarounds.
* doc/posix-functions/strnlen.texi: Likewise.
* doc/posix-headers/inttypes.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of HP-UX 10 as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that HP-UX 10 is
unsupported.
* doc/*-functions/*printf.texi: Don't mention HP-UX 10 specific
workarounds.
* doc/posix-functions/gmtime_r.texi: Likewise.
* doc/posix-functions/localtime_r.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Interix 3.5 as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that Interix is
unsupported.
* doc/posix-functions/select.texi: Don't mention Interix specific
workarounds.
* doc/posix-headers/signal.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-06 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of IRIX 6.4 and older as supported platforms.
* doc/gnulib-intro.texi (Target Platforms): Mention that IRIX <= 6.4 is
unsupported.
* doc/pastposix-functions/usleep.texi: Don't mention IRIX specific
workarounds.
* doc/posix-functions/nl_langinfo.texi: Likewise.
* doc/posix-functions/remainder.texi: Likewise.
* doc/posix-functions/towlower.texi: Likewise.
* doc/posix-functions/towupper.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/wcscat.texi: Likewise.
* doc/posix-functions/wcschr.texi: Likewise.
* doc/posix-functions/wcscmp.texi: Likewise.
* doc/posix-functions/wcscpy.texi: Likewise.
* doc/posix-functions/wcscspn.texi: Likewise.
* doc/posix-functions/wcslen.texi: Likewise.
* doc/posix-functions/wcsncat.texi: Likewise.
* doc/posix-functions/wcsncmp.texi: Likewise.
* doc/posix-functions/wcsncpy.texi: Likewise.
* doc/posix-functions/wcspbrk.texi: Likewise.
* doc/posix-functions/wcsrchr.texi: Likewise.
* doc/posix-functions/wcsspn.texi: Likewise.
* doc/posix-headers/langinfo.texi: Likewise.
* doc/posix-headers/signal.texi: Likewise.
* doc/posix-headers/wchar.texi: Likewise.
* doc/posix-headers/wctype.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of OSF/1 as supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that OSF/1 is
unsupported.
* doc/glibc-functions/getdomainname.texi: Don't mention OSF/1 specific
workarounds.
* doc/glibc-functions/pthread_setname_np.texi: Likewise.
* doc/glibc-functions/ptsname_r.texi: Likewise.
* doc/posix-functions/ceil.texi: Likewise.
* doc/posix-functions/ceilf.texi: Likewise.
* doc/posix-functions/ceill.texi: Likewise.
* doc/posix-functions/fchdir.texi: Likewise.
* doc/posix-functions/floor.texi: Likewise.
* doc/posix-functions/floorf.texi: Likewise.
* doc/posix-functions/fmod.texi: Likewise.
* doc/posix-functions/fmodf.texi: Likewise.
* doc/posix-functions/fmodl.texi: Likewise.
* doc/posix-functions/log.texi: Likewise.
* doc/posix-functions/logf.texi: Likewise.
* doc/posix-functions/logl.texi: Likewise.
* doc/posix-functions/log10.texi: Likewise.
* doc/posix-functions/log10f.texi: Likewise.
* doc/posix-functions/log10l.texi: Likewise.
* doc/posix-functions/log2.texi: Likewise.
* doc/posix-functions/log2f.texi: Likewise.
* doc/posix-functions/log2l.texi: Likewise.
* doc/posix-functions/mbrtowc.texi: Likewise.
* doc/posix-functions/recv.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
* doc/posix-functions/remainder.texi: Likewise.
* doc/posix-functions/remainderf.texi: Likewise.
* doc/posix-functions/remainderl.texi: Likewise.
* doc/posix-functions/round.texi: Likewise.
* doc/posix-functions/roundf.texi: Likewise.
* doc/posix-functions/roundl.texi: Likewise.
* doc/posix-functions/send.texi: Likewise.
* doc/posix-functions/sendto.texi: Likewise.
* doc/posix-functions/setenv.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/tcgetsid.texi: Likewise.
* doc/posix-functions/trunc.texi: Likewise.
* doc/posix-functions/truncf.texi: Likewise.
* doc/posix-functions/truncl.texi: Likewise.
* doc/posix-functions/ttyname_r.texi: Likewise.
* doc/posix-functions/unsetenv.texi: Likewise.
* doc/posix-functions/wcsrtombs.texi: Likewise.
* doc/posix-headers/sys_select.texi: Likewise.
* doc/posix-headers/wchar.texi: Likewise.
* doc/posix-headers/wctype.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of BSDI and BSD/OS as supported platforms.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Solaris 8 and older as supported platforms.
* doc/gnulib-intro.texi (Target Platforms): Mention that Solaris <= 8 is
unsupported.
* doc/posix-functions/mbrtowc.texi: Don't mention Solaris specific
workarounds.
* doc/posix-functions/memcmp.texi: Likewise.
* doc/posix-functions/rename.texi: Likewise.
* doc/posix-functions/tzset.texi: Likewise.
* doc/posix-headers/wctype.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of Interix 3.5 as a supported platform.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
doc: Remove documentation of BeOS as a supported platform.
* doc/gnulib-intro.texi (Target Platforms): Mention that BeOS is
unsupported.
* doc/*-functions/*printf.texi: Don't mention BeOS specific workarounds.
* doc/posix-functions/getdelim.texi: Likewise.
* doc/**/*.texi: Update.
2019-07-05 Bruno Haible <bruno@clisp.org>
thread, lock, cond, tls: Remove support for Pth threads.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document
--enable-threads=pth any more.
(gl_THREADLIB_BODY): Don't set USE_PTH_THREADS any more.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update comment.
* m4/threads.m4 (gl_THREADS_H): Remove test for conflict between Pth
threads and ISO C11 threads.
* lib/glthread/thread.h: Remove code for USE_PTH_THREADS.
* lib/glthread/lock.h: Likewise.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/regex_internal.h: Likewise.
* tests/test-thread_create.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-cond.c: Likewise.
* tests/test-tls.c: Likewise.
* tests/test-rwlock1.c: Don't include glthread/yield.h.
(main): Sleep without calling gl_thread_yield.
2019-07-05 Bruno Haible <bruno@clisp.org>
thread, lock, cond, tls: Remove support for old Solaris threads.
Solaris >= 2.5.1 has POSIX threads.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document
--enable-threads=solaris any more.
(gl_THREADLIB_BODY): Don't set USE_SOLARIS_THREADS any more.
* lib/glthread/thread.c: Update comment.
* lib/glthread/thread.h: Remove code for USE_SOLARIS_THREADS.
* lib/glthread/lock.h: Likewise.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/regex_internal.h: Likewise.
* tests/test-thread_create.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-cond.c: Likewise.
* tests/test-tls.c: Likewise.
2019-07-05 Bruno Haible <bruno@clisp.org>
getcwd-lgpl, getcwd: Don't call realloc when it is pointless.
* lib/getcwd-lgpl.c (rpl_getcwd): Don't call realloc if the result's
needed size is equal to the allocated size.
* lib/getcwd.c (__getcwd): Likewise.
2019-07-05 Bruno Haible <bruno@clisp.org>
xgetdomainname: Don't return an excessive memory allocation.
* lib/xgetdomainname.c (xgetdomainname): Shrink the domainname buffer
before returning it.
2019-07-05 Bruno Haible <bruno@clisp.org>
xgethostname: Don't return an excessive memory allocation.
* lib/xgethostname.c (xgethostname): Shrink the hostname buffer before
returning it.
2019-07-05 Bruno Haible <bruno@clisp.org>
areadlinkat-with-size: Don't return an excessive memory allocation.
* lib/areadlinkat-with-size.c (areadlinkat_with_size): Shrink the buffer
before returning it.
2019-07-05 Bruno Haible <bruno@clisp.org>
areadlink-with-size: Don't return an excessive memory allocation.
Reported by Andreas Dilger <adilger@whamcloud.com>.
* lib/areadlink-with-size.c (areadlink_with_size): Shrink the buffer
before returning it.
2019-07-03 Bruno Haible <bruno@clisp.org>
renameatu: Fix test failure on MSVC.
* lib/at-func2.c (at_func2): Fail with ENOENT if file1 or file2 is the
empty string.
2019-07-03 Bruno Haible <bruno@clisp.org>
mbrtowc: Fix invalid use of mbtowc() on MSVC.
* lib/mbrtowc.c: Include glthread/lock.h.
(mbtowc_lock): New variable.
(mbrtowc): Treat UTF-8 encoding without locking. For the other
encodings, explicitly reset the internal state of mbtowc, and protect
this through a lock.
* modules/mbrtowc (Depends-on): Add lock.
2019-07-03 Akim Demaille <akim@lrde.epita.fr>
argmatch: don't define _ in the header.
Reported by Jim Meyering.
* lib/argmatch.h (N_, _): Don't define.
Use gettext instead.
* lib/argmatch.h (_): Define.
* tests/test-argmatch.c (N_): Define.
2019-07-02 Paul Eggert <eggert@cs.ucla.edu>
verify: document ‘assume’ better
* lib/verify.h: Reword doc (Bug#36370).
2019-07-02 Bruno Haible <bruno@clisp.org>
localcharset, nl_langinfo: Fix return value for UTF-8 locales on MSVC.
* lib/localcharset.c (locale_charset): Return "UTF-8" instead of
"CPutf8".
* lib/nl_langinfo.c (ctype_codeset): Likewise.
2019-07-02 Bruno Haible <bruno@clisp.org>
getcwd: Fix crash when invoked with size = 0 on MSVC.
* lib/getcwd.c: Include msvc-inval.h.
(getcwd_nothrow): New function/macro.
(getcwd_system): New macro.
(__getcwd): Use it instead of getcwd.
* modules/getcwd (Depends-on): Add msvc-inval.
* doc/posix-functions/getcwd.texi: Mention the MSVC issue.
2019-07-02 Bruno Haible <bruno@clisp.org>
nonblocking-pipe tests: Fix test failure on MSVC.
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE): Set to 10000 on
native Windows.
2019-07-02 Bruno Haible <bruno@clisp.org>
usleep: Implement with millisecond resolution on native Windows.
* lib/usleep.c (usleep): On native Windows, implement using Sleep().
* doc/pastposix-functions/usleep.texi: Update accordingly.
2019-07-02 Bruno Haible <bruno@clisp.org>
lstat tests: Fix test failure on MSVC.
* tests/test-lstat.h (test_lstat_func): Don't test SAME_INODE values on
native Windows, unless _GL_WINDOWS_STAT_INODES is defined.
2019-07-02 Bruno Haible <bruno@clisp.org>
stat tests: Fix test failure on MSVC.
* tests/test-stat.h (test_stat_func): Don't test SAME_INODE values on
native Windows, unless _GL_WINDOWS_STAT_INODES is defined.
2019-07-02 Bruno Haible <bruno@clisp.org>
getaddrinfo tests: Fix test failure on MSVC.
* tests/test-getaddrinfo.c: Include sockets.h.
(main): Invoke gl_sockets_startup.
* modules/getaddrinfo-tests (Depends-on): Add sockets.
2019-07-01 Hannes Müller <h.c.f.mueller@gmx.de>
poll: Fix type of timeout pointer passed to select() on mingw x86_64.
* lib/poll.c: Call Windows native select() with Windows native timeval.
2019-06-30 Bruno Haible <bruno@clisp.org>
argmatch: Fix compilation errors.
* lib/argmatch.h: Include <limits.h>, for INT_MAX.
* tests/test-argmatch.c (main): Update after last-minute function names
change.
2019-06-30 Bruno Haible <bruno@clisp.org>
Include <stdlib.h> when needed.
* lib/cnd.c: Include <stdlib.h>, needed for abort().
* lib/fcntl.c: Likewise.
* lib/mbscasestr.c: Likewise.
* lib/mbssep.c: Likewise.
* lib/mbsstr.c: Likewise.
* lib/openat.c: Include <stdlib.h>, needed for free().
* lib/windows-tls.c: Include <stdlib.h>, needed for malloc(), free(),
abort().
2019-06-30 Bruno Haible <bruno@clisp.org>
Include <stdlib.h> when needed.
* lib/areadlinkat.c: Include <stdlib.h>, needed for free() in at-func.c.
* lib/faccessat.c: Likewise.
* lib/fchmodat.c: Likewise.
* lib/fchownat.c: Likewise.
* lib/fstatat.c: Likewise.
* lib/mkfifoat.c: Likewise.
* lib/mknodat.c: Likewise.
* lib/readlinkat.c: Likewise.
* lib/symlinkat.c: Likewise.
* lib/utimensat.c: Likewise.
* lib/mkdirat.c: Likewise. Include also the specification header.
2019-06-30 Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Avoid conflict with native Windows functions.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WS2TCPIP): New macro, extracted
from gl_PREREQ_SYS_H_SOCKET.
(gl_PREREQ_SYS_H_SOCKET): Invoke it.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Invoke
gl_PREREQ_SYS_H_WS2TCPIP.
* modules/arpa_inet (Files): Add m4/sys_socket_h.m4, m4/socklen.m4.
(Makefile.am): Substitute HAVE_WS2TCPIP_H.
* lib/arpa_inet.in.h: Include <ws2tcpip.h>.
2019-06-30 Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Forward-compatibility with newer Windows versions.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): On native Windows, set
REPLACE_INET_NTOP to 1 always.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): On native Windows, set
REPLACE_INET_PTON to 1 always.
2019-06-30 Bruno Haible <bruno@clisp.org>
inet_pton: Fix link error on mingw with _WIN32_WINNT >= 0x0600.
* modules/inet_pton (Depends-on, configure.ac): Test REPLACE_INET_PTON,
not REPLACE_INET_NTOP.
2019-06-30 Bruno Haible <bruno@clisp.org>
poll: Add comment.
* lib/poll.c: Add comment about WSAPoll.
2019-06-30 Bruno Haible <bruno@clisp.org>
poll-h: Fix compilation error on mingw with _WIN32_WINNT >= 0x0600.
Reported by Hannes Müller <h.c.f.mueller@gmx.de>.
* lib/poll.in.h: Include <winsock2.h>.
(POLL*, pollfd): Override on native Windows.
* m4/poll_h.m4 (gl_POLL_H): Invoke gl_PREREQ_SYS_H_WINSOCK2.
* modules/poll-h (Files): Add m4/sys_socket_h.m4.
(Makefile.am): Substitute HAVE_WINSOCK2_H.
2019-06-28 Bruno Haible <bruno@clisp.org>
accept4: Fix compilation error on OpenIndiana.
Reported by Michal Nowak <mnowak@startmail.com>
via Mark H Weaver <mhw@netris.org>.
* m4/accept.m4 (gl_FUNC_ACCEPT4): Test whether accept4 is declared, not
whether it exists as a function.
2019-06-26 Paul Eggert <eggert@cs.ucla.edu>
strverscmp: sync from glibc
* lib/strverscmp.c: Sync from glibc, except use UTF-8 encoding in
comments, include libc-config.h, define __strverscmp to be
strverscmp, and don’t assume types line uint8_t and int8_t that
that C99 doesn’t guarantee.
[!_LIBC]: Include libc-config.h; define __strverscmp.
Include stdint.h.
(__strverscmp): Assume C99. Use uint_least8_t
and int_least8_t instead of unsigned char and signed char.
* modules/strverscmp (Depends-on): Add libc-config, stdint.
2019-06-25 Bruno Haible <bruno@clisp.org>
tss tests: Add tests for destructors and races.
* tests/test-tss.c (worker_thread): Fix typo in debug message.
(test_tss_dtorcheck1, test_tss_dtorcheck2, test_tss_racecheck): New
functions.
(main): Invoke them.
* modules/tls-tests (Depends-on): Add mtx.
2019-06-25 Bruno Haible <bruno@clisp.org>
tls tests: Add tests for destructors and races.
* tests/test-tls.c: Include glthread/lock.h.
(test_tls_dtorcheck1, test_tls_dtorcheck2, test_tls_racecheck): New
functions.
(main): Invoke them.
* modules/tls-tests (Depends-on): Add lock.
2019-06-25 Bruno Haible <bruno@clisp.org>
windows-tls: Implement TLS key destructors for native Windows.
* lib/windows-tls.h (glwthread_tls_process_destructors): New
declaration.
(GLWTHREAD_DESTRUCTOR_ITERATIONS): New macro.
* lib/windows-tls.c: Include <limits.h>, windows-once.h.
(dtor_table_init_once, dtor_table_lock: New variables.
(struct dtor): New type.
(dtor_table, dtors_count, dtors_used, dtors_allocated,
dtor_processing_threads): New variables.
(dtor_table_initialize, dtor_table_ensure_initialized,
dtor_table_shrink_used, glwthread_tls_process_destructors): New
functions.
(glwthread_tls_key_create, glwthread_tls_key_delete): Rewritten to
handle non-NULL destructors.
* modules/windows-tls (Depends-on): Add windows-once.
* lib/glthread/tls.h (glthread_tls_key_init, glthread_tls_key_destroy):
Use the functions declared in windows-tls.h.
* lib/threads.in.h (TSS_DTOR_ITERATIONS): Define using
GLWTHREAD_DESTRUCTOR_ITERATIONS.
* lib/windows-thread.c: Include windows-tls.h.
(wrapper_func, glwthread_thread_exit): Invoke
glwthread_tls_process_destructors.
* modules/windows-thread (Depends-on): Add windows-tls.
2019-06-25 Bruno Haible <bruno@clisp.org>
threadlib: Avoid autoconf warning "was expanded before it was required".
* modules/threadlib (configure.ac): Require gl_THREADLIB.
2019-06-25 Akim Demaille <akim@lrde.epita.fr>
argmatch: remove duplicate const qualifier
* lib/argmatch.h (ARGMATCH_DEFINE_GROUP): Here.
2019-06-24 Paul Eggert <eggert@cs.ucla.edu>
unistd: stddef.h and sys/types.h namespace cleanup
* lib/unistd.in.h [__GLIBC__]:
Do not include stddef.h or sys/types.h.
[!__GLIBC__]: Always include sys/types.h, since unistd.h is
supposed to declare off_t and ssize_t. Problem found when looking
at why @GNULIB_PWRITE@ was different from the newly-added
@GNULIB_COPY_FILE_RANGE@ with respect to ssize_t.
2019-06-22 Akim Demaille <akim@lrde.epita.fr>
maintainer-makefile: restore portability to non-GNU awks
Reported by Tim Rühsen.
* top/maint.mk (AWK): New variable. Use it.
(sc_prohibit_gnu_make_extensions): Skip if $(AWK) is not gawk.
2019-06-23 Paul Eggert <eggert@cs.ucla.edu>
Document setvbuf _IOLBF problem
* doc/posix-functions/setvbuf.texi (setvbuf):
Document MS-Windows portability problem with _IOLBF.
Document lseek SEEK_DATA/SEEK_HOLE
* doc/posix-functions/lseek.texi (lseek):
Document some systems that do not support SEEK_DATA and SEEK_HOLE.
2019-06-22 Akim Demaille <akim@lrde.epita.fr>
argmatch: put all the docs member last.
Reported by Bruno Haible.
* lib/argmatch.h (argmatch_##Name##_group_type): Put the args
member before the docs done.
* doc/argmatch.texi, tests/test-argmatch.c: Adjust.
2019-06-21 Akim Demaille <akim@lrde.epita.fr>
argmatch: add support to generate the usage message.
* lib/argmatch.c: Move some #includes and gettext support to...
* lib/argmatch.h: here.
(ARGMATCH_DEFINE_GROUP): New macro.
* tests/test-argmatch.c (argmatch_backup_docs, argmatch_backup_args)
(argmatch_backup_group): New.
(CHECK): New.
(main): Check argmatch_backup_value, argmatch_backup_xvalue,
argmatch_backup_argument and argmatch_backup_usage.
* modules/argmatch: We depend on c99.
* doc/argmatch.texi (Recognizing Option Arguments): New.
* doc/gnulib.texi: Use it.
2019-06-21 Bruno Haible <bruno@clisp.org>
thrd: Add comment.
* lib/thrd.c (pthread_main_func): Add comment.
2019-06-21 Bruno Haible <bruno@clisp.org>
threads-h: Define 'thread_local' if and only if it actually works.
* m4/threads.m4 (gl_THREAD_LOCAL_DEFINITION): New macro.
(gl_THREADS_H): Define _Thread_local to __thread also for ARM C, IBM C,
Oracle Solaris Studio C. Compile a simple program, to see whether
_Thread_local basically works. Set HAVE_THREAD_LOCAL and LIBTHREADLOCAL.
(gl_THREADS_H_DEFAULTS): Initialize HAVE_THREAD_LOCAL.
* lib/threads.in.h (thread_local): Undefine if it does not work.
* modules/threads-h (Makefile.am): Substitute HAVE_THREAD_LOCAL.
(Link): Mention LIBTHREADLOCAL.
* tests/test-threads.c: Don't check that thread_local is defined.
* tests/test-thread_local.c: New file.
* modules/threads-h-tests (Files): Add it and macros.h.
(Depends-on): Add thrd and stdint.
(configure.ac): Test whether 'alarm' is declared.
(Makefile.am): Arrange to build and link test-thread_local.
* doc/posix-headers/threads.texi: Mention the platforms that don't
support 'thread_local'.
2019-06-20 Bruno Haible <bruno@clisp.org>
threads-h: Simplify link dependencies.
* m4/threads.m4 (gl_THREADS_H): Bail out if Pth threading is requested.
Don't set LTLIBSTDTHREAD.
* modules/thrd (Link): Simplify accordingly.
* modules/mtx (Link): Likewise.
* modules/cnd (Link): Likewise.
* modules/tss (Link): Likewise.
* modules/threads (Link): Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
threads-h: Fix link error on FreeBSD 11.
* m4/threads.m4 (gl_THREADS_H): When linking with -lstdthreads, link
also with -lpthread.
2019-06-20 Bruno Haible <bruno@clisp.org>
threadlib: Fix typo (regression from today).
* m4/threadlib.m4 (gl_THREADLIB_BODY): Fix typo in comment marker.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-thread, windows-tls: Fix compilation error on 32-bit mingw.
* lib/windows-thread.c: Include <errno.h>.
* lib/windows-tls.c: Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
tss tests: Small improvement.
* tests/test-tss.c (test_tss): Pass a different id to each thread.
2019-06-20 Bruno Haible <bruno@clisp.org>
threads: New module.
* modules/threads: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
tss: Add tests.
* tests/test-tss.c: New file, based on tests/test-tls.c.
* modules/tss-tests: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
cnd: Add tests.
* tests/test-cnd.c: New file, based on tests/test-cond.c.
* modules/cnd-tests: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
mtx: Add tests.
* tests/test-mtx.c: New file, based on tests/test-lock.c.
* tests/test-call_once.c: New file, based on tests/test-once.c.
* modules/mtx-tests: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
thrd: Add tests.
* tests/test-thrd_create.c: New file, based on
tests/test-thread_create.c.
* tests/test-thrd_current.c: New file, based on
tests/test-thread_self.c.
* modules/thrd-tests: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
tss: New module.
* lib/tss.c: New file.
* modules/tss: New file.
* doc/posix-functions/tss_create.texi: Mention the new module.
* doc/posix-functions/tss_set.texi: Likewise.
* doc/posix-functions/tss_get.texi: Likewise.
* doc/posix-functions/tss_delete.texi: Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
cnd: New module.
* lib/cnd.c: New file.
* modules/cnd: New file.
* doc/posix-functions/cnd_init.texi: Mention the new module.
* doc/posix-functions/cnd_wait.texi: Likewise.
* doc/posix-functions/cnd_timedwait.texi: Likewise.
* doc/posix-functions/cnd_signal.texi: Likewise.
* doc/posix-functions/cnd_broadcast.texi: Likewise.
* doc/posix-functions/cnd_destroy.texi: Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
mtx: New module.
* lib/mtx.c: New file.
* modules/mtx: New file.
* doc/posix-functions/call_once.texi: Mention the new module.
* doc/posix-functions/mtx_init.texi: Likewise.
* doc/posix-functions/mtx_lock.texi: Likewise.
* doc/posix-functions/mtx_trylock.texi: Likewise.
* doc/posix-functions/mtx_timedlock.texi: Likewise.
* doc/posix-functions/mtx_unlock.texi: Likewise.
* doc/posix-functions/mtx_destroy.texi: Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
thrd: New module.
* lib/thrd.c: New file.
* m4/thrd.m4: New file.
* modules/thrd: New file.
* doc/posix-functions/thrd_current.texi: Mention the new module.
* doc/posix-functions/thrd_detach.texi: Likewise.
* doc/posix-functions/thrd_equal.texi: Likewise.
* doc/posix-functions/thrd_exit.texi: Likewise.
* doc/posix-functions/thrd_sleep.texi: Likewise.
* doc/posix-functions/thrd_yield.texi: Likewise.
* doc/posix-functions/thrd_create.texi: Mention the new module and the
AIX bug.
* doc/posix-functions/thrd_join.texi: Mention the new module and the
AIX and Solaris bugs.
2019-06-20 Bruno Haible <bruno@clisp.org>
threads-h: Add tests.
* tests/test-threads.c: New file.
* modules/threads-h-tests: New file.
* tests/test-threads-c++.cc: New file.
* modules/threads-h-c++-tests: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
threads-h: New module.
* lib/threads.in.h: New file.
* m4/threads.m4: New file.
* m4/yield.m4 (gl_YIELD): Update comment.
* modules/threads-h: New file.
* modules/yields (configure.ac): Use AC_REQUIRE.
* doc/posix-headers/threads.texi: Mention the new module and the AIX
bugs.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-thread: New module.
* lib/windows-thread.h: New file, based on lib/glthread/thread.h.
* lib/windows-thread.c: New file, based on lib/glthread/thread.c.
* lib/glthread/thread.h: Include windows-thread.h.
(gl_thread_t): Define using glwthread_thread_t.
(glthread_create): Define using glwthread_thread_create.
(glthread_join): Define using glwthread_thread_join.
(gl_thread_self): Define using glwthread_thread_self.
(gl_thread_exit): Define using glwthread_thread_exit.
(glthread_create_func, glthread_join_func, gl_thread_self_func,
gl_thread_exit_func): Remove declarations.
* lib/glthread/thread.c (self_key): Remove variable.
(do_init_self_key, init_self_key): Remove functions.
(struct gl_thread_struct): Remove type.
(get_current_thread_handle, gl_thread_self_func, wrapper_func,
glthread_create_func, glthread_join_func, gl_thread_exit_func): Remove
functions.
* modules/windows-thread: New file.
* modules/thread (Depends-on): Add windows-thread.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-tls: New module.
* lib/windows-tls.h: New file, based on lib/glthread/tls.h.
* lib/windows-tls.c: New file, based on lib/glthread/tls.h.
* lib/glthread/tls.h: Include windows-tls.h.
(gl_tls_key_t): Define using glwthread_tls_key_t.
* modules/windows-tls: New file.
* modules/tls (Depends-on): Add windows-tls.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-cond: New module.
* lib/windows-cond.h: New file, based on lib/glthread/cond.h.
* lib/windows-cond.c: New file, based on lib/glthread/cond.c.
* lib/glthread/cond.h: Include windows-cond.h.
(struct gl_waitqueue_link, gl_linked_waitqueue_t): Remove types.
(gl_cond_t): Define using glwthread_cond_t.
(gl_cond_initializer): Define using GLWTHREAD_COND_INIT.
(glthread_cond_init): Define using glwthread_cond_init.
(glthread_cond_wait): Define using glwthread_cond_wait.
(glthread_cond_timedwait): Define using glwthread_cond_timedwait.
(glthread_cond_signal): Define using glwthread_cond_signal.
(glthread_cond_broadcast): Define using glwthread_cond_broadcast.
(glthread_cond_destroy): Define using glwthread_cond_destroy.
(glthread_cond_init_func, glthread_cond_wait_func,
glthread_cond_timedwait_func, glthread_cond_signal_func,
glthread_cond_broadcast_func, glthread_cond_destroy_func): Remove
declarations.
* lib/glthread/cond.c (gl_waitqueue_t, gl_waitqueue_element): Remove
types.
(gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_remove,
gl_waitqueue_notify_first, gl_waitqueue_notify_all,
glthread_cond_init_func, glthread_cond_wait_func,
glthread_cond_timedwait_func, glthread_cond_signal_func,
glthread_cond_broadcast_func, glthread_cond_destroy_func): Remove
functions.
* modules/windows-cond: New file.
* modules/cond (Depends-on): Add windows-cond. Remove gettimeofday.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-timedrecmutex: New module.
* lib/windows-timedrecmutex.h: New file, based on windows-recmutex.h.
* lib/windows-timedrecmutex.c: New file, based on windows-recmutex.c.
* modules/windows-timedrecmutex: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-timedmutex: New module.
* lib/windows-timedmutex.h: New file, based on windows-mutex.h.
* lib/windows-timedmutex.c: New file, based on windows-mutex.c.
* modules/windows-timedmutex: New file.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-recmutex: New module.
* lib/windows-recmutex.h: New file, extracted from lib/glthread/lock.h.
* lib/windows-recmutex.c: New file, extracted from lib/glthread/lock.c.
* lib/glthread/lock.h: Include windows-recmutex.h.
(gl_recursive_lock_t): Define using glwthread_recmutex_t.
(gl_recursive_lock_initializer): Define using GLWTHREAD_RECMUTEX_INIT.
(glthread_recursive_lock_init): Define using glwthread_recmutex_init.
(glthread_recursive_lock_lock): Define using glwthread_recmutex_lock.
(glthread_recursive_lock_unlock): Define using
glwthread_recmutex_unlock.
(glthread_recursive_lock_destroy): Define using
glwthread_recmutex_destroy.
(glthread_recursive_lock_init_func, glthread_recursive_lock_lock_func,
glthread_recursive_lock_unlock_func,
glthread_recursive_lock_destroy_func): Remove declarations.
* lib/glthread/lock.c (glthread_recursive_lock_init_func,
glthread_recursive_lock_lock_func, glthread_recursive_lock_unlock_func,
glthread_recursive_lock_destroy_func): Remove functions.
* modules/windows-recmutex: New file.
* modules/lock (Depends-on): Add windows-recmutex.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-mutex: New module.
* lib/windows-mutex.h: New file, extracted from lib/glthread/lock.h.
* lib/windows-mutex.c: New file, extracted from lib/glthread/lock.c.
* lib/windows-spinlock.h: New file, extracted from lib/glthread/lock.h.
* lib/glthread/lock.h: Include windows-spinlock.h, windows-mutex.h.
(gl_spinlock_t): Remove type.
(gl_lock_t): Define using glwthread_mutex_t.
(gl_lock_initializer): Define using GLWTHREAD_MUTEX_INIT.
(glthread_lock_init): Define using glwthread_mutex_init.
(glthread_lock_lock): Define using glwthread_mutex_lock.
(glthread_lock_unlock): Define using glwthread_mutex_unlock.
(glthread_lock_destroy): Define using glwthread_mutex_destroy.
(glthread_lock_init_func, glthread_lock_lock_func,
glthread_lock_unlock_func, glthread_lock_destroy_func): Remove
declarations.
Use glwthread_spinlock_t instead of gl_spinlock_t.
(gl_rwlock_initializer, gl_recursive_lock_initializer): Define using
GLWTHREAD_SPINLOCK_INIT.
* lib/glthread/lock.c (glthread_lock_init_func, glthread_lock_lock_func,
glthread_lock_unlock_func, glthread_lock_destroy_func): Remove
functions.
* lib/glthread/cond.h: Use glwthread_spinlock_t instead of
gl_spinlock_t.
* modules/windows-mutex: New file.
* modules/lock (Depends-on): Add windows-mutex.
2019-06-20 Bruno Haible <bruno@clisp.org>
windows-once: New module.
* lib/windows-once.h: New file, extracted from lib/glthread/lock.h.
* lib/windows-once.c: New file, extracted from lib/glthread/lock.c.
* lib/glthread/lock.h: Include windows-once.h.
(gl_once_t): Define using glwthread_once_t.
(gl_once_define): Define using GLWTHREAD_ONCE_INIT.
(glthread_once): Define using glwthread_once.
(glthread_once_func): Remove declaration.
* lib/glthread/lock.c (glthread_once_func): Remove function.
* modules/windows-once: New file.
* modules/lock (Depends-on): Add windows-once.
2019-06-20 Bruno Haible <bruno@clisp.org>
lock, cond: Avoid possible counter wraparound on Windows.
* lib/glthread/lock.c (glthread_lock_lock_func): Leave the 'started'
field of the guard unchanged if it was already positive.
(glthread_rwlock_rdlock_func): Likewise.
(glthread_rwlock_wrlock_func): Likewise.
(glthread_recursive_lock_lock_func): Likewise.
* lib/glthread/cond.c (glthread_cond_wait_func): Likewise.
(glthread_cond_timedwait_func): Likewise.
2019-06-20 Bruno Haible <bruno@clisp.org>
cond: Make glthread_cond_timedwait more reliable on Windows.
* lib/glthread/cond.c (glthread_cond_timedwait_func): Initialize the
condition variable before looking at the current time.
2019-06-20 Bruno Haible <bruno@clisp.org>
pthread_mutex_timedlock: New module.
* lib/pthread.in.h (pthread_mutex_timedlock): New dummy function and
new declaration.
* lib/pthread_mutex_timedlock.c: New file.
* m4/pthread_mutex_timedlock.m4: New file.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Don't call AC_LIBOBJ here. Test
whether pthread_mutex_timedlock is declared.
(gl_PTHREAD_MODULE_INDICATOR): New macro.
(gl_PTHREAD_DEFAULTS): Initialize GNULIB_PTHREAD_MUTEX_TIMEDLOCK,
HAVE_PTHREAD_MUTEX_TIMEDLOCK.
* modules/pthread (configure.ac): Call AC_LIBOBJ here.
(Makefile.am): Substitute GNULIB_PTHREAD_MUTEX_TIMEDLOCK,
HAVE_PTHREAD_MUTEX_TIMEDLOCK.
* modules/pthread_mutex_timedlock: New file.
* doc/posix-functions/pthread_mutex_timedlock.texi: Mention the new
module.
2019-06-20 Bruno Haible <bruno@clisp.org>
thread, lock, cond, tls: Recognize C11 multithreaded applications.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Test for <threads.h>.
* lib/glthread/thread.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/lock.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/cond.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/tls.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
2019-06-20 Bruno Haible <bruno@clisp.org>
tls tests: Small improvements.
* tests/test-tls.c: Include <stdint.h>.
(worker_thread): Avoid gcc warning on 64-bit mingw.
(test_tls): Pass a different id to each thread.
* modules/tls-tests (Depends-on): Add stdint.
2019-06-20 Bruno Haible <bruno@clisp.org>
cond tests: Simplify.
* tests/test-cond.c (test_timedcond): Remove redundant assignment.
2019-06-20 Bruno Haible <bruno@clisp.org>
lock tests: Avoid reference to undefined variable if !ENABLE_LOCKING.
* tests/test-lock.c (test_once): Don't reference fire_signal if
!ENABLE_LOCKING.
2019-06-19 Bruno Haible <bruno@clisp.org>
nanosleep: Relicense under LGPLv2+.
Approved by Jim Meyering, Paul Eggert, Eric Blake, Pádraig Brady.
* modules/nanosleep (License): Change to LGPLv2+.
2019-06-19 Bruno Haible <bruno@clisp.org>
Reorder pieces of header in perl scripts.
The desired order is
- Prologue part 1 (2 lines with #!)
- Program short description
- Copyright and license notice
- Written-by notice
- Program short description (optional)
- Program long description (optional)
- Prologue part 2
- Time stamp
- Code
Reported by Paul Eggert.
* build-aux/announce-gen: Reorder header.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/useless-if-before-free: Likewise.
* build-aux/prefix-gnulib-mk: Add copyright notice and short
description.
* build-aux/update-copyright: Likewise. Add short description. Bump
time-stamp-line-limit to 200.
2019-06-18 Paul Eggert <eggert@cs.ucla.edu>
verify-tests: work around xlc bug
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-06/msg00049.html
* tests/test-verify.c (item): Move the arithmetic inside the
verify_expr, to avoid tickling a bug in IBM AIX xlc V12.1.
2019-06-16 Bruno Haible <bruno@clisp.org>
Restore Emacs time-stamp hook applicability.
Reported by Darshit Shah <darnir@gnu.org>.
* build-aux/useless-if-before-free: Bump time-stamp-line-limit to 50.
* build-aux/announce-gen: Likewise.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/prefix-gnulib-mk: Likewise.
* build-aux/update-copyright: Likewise.
2019-06-15 Bruno Haible <bruno@clisp.org>
Fix scripts to have valid executable format on Alpine Linux.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
Idea by Paul Eggert.
* build-aux/useless-if-before-free: Use a prologue that starts with
'#!/bin/sh'.
* build-aux/announce-gen: Likewise.
* build-aux/gitlog-to-changelog: Likewise.
* build-aux/prefix-gnulib-mk: Likewise.
* build-aux/update-copyright: Likewise.
* tests/test-update-copyright.sh: Update test program accordingly.
2019-06-10 Bruno Haible <bruno@clisp.org>
nproc: Ensure nproc(NPROC_ALL) ≥ nproc(NPROC_CURRENT) with glibc ≥ 2.26.
Reported by Nikita Ermakov <arei@altlinux.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-06/msg00003.html>.
* lib/nproc.c (num_processors_ignoring_omp): Treat a return value of
sysconf (_SC_NPROCESSORS_CONF) == 2 like a return value == 1.
2019-06-10 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addchdir: Fix possible use-after-free bug.
* lib/spawn_int.h (struct __spawn_action): Remove 'const' from path.
* lib/spawn_faction_addchdir.c (posix_spawn_file_actions_addchdir): Make
a copy of the path argument.
* lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Free
it.
2019-06-10 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addopen: Fix possible use-after-free bug.
Reported at <https://sourceware.org/bugzilla/show_bug.cgi?id=17048>.
* lib/spawn_int.h (struct __spawn_action): Remove 'const' from path.
* lib/spawn_faction_addopen.c (posix_spawn_file_actions_addopen): Make
a copy of the path argument.
* lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Free
it.
2019-06-10 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir: Add tests.
* tests/test-posix_spawn_file_actions_addfchdir.c: New file.
* tests/test-posix_spawn5.c: New file.
* modules/posix_spawn_file_actions_addfchdir-tests: New file.
2019-06-10 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addfchdir: New module.
* lib/spawn.in.h (posix_spawn_file_actions_addfchdir): New declaration.
* lib/spawn_int.h (struct __spawn_action): Add tag 'spawn_do_fchdir' and
union member 'fchdir_action'.
* lib/spawn_faction_addfchdir.c: New file.
* lib/spawni.c (__spawni): Implement the spawn_do_fchdir action.
* m4/posix_spawn_faction_addfchdir.m4: New file.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether module
'posix_spawn_file_actions_addfchdir' is present and whether
posix_spawn_file_actions_addfchdir_np exists. Set REPLACE_POSIX_SPAWN.
* m4/spawn_h.m4 (gl_SPAWN_H): Test whether
posix_spawn_file_actions_addfchdir is declared.
(gl_SPAWN_H_DEFAULTS): Initialize
GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR,
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR,
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR.
* modules/spawn (Makefile.am): Substitute
GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR,
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR,
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR.
* modules/posix_spawn_file_actions_addfchdir: New file.
* tests/test-spawn-c++.cc (posix_spawn_file_actions_addfchdir): Check
signature.
* doc/posix-functions/posix_spawn.texi: Mention the new module.
* doc/posix-functions/posix_spawnp.texi: Likewise.
* doc/glibc-functions/posix_spawn_file_actions_addfchdir_np.texi:
Likewise.
2019-06-10 Bruno Haible <bruno@clisp.org>
doc: Document existence of posix_spawn_file_actions_addchdir module.
* doc/glibc-functions/posix_spawn_file_actions_addchdir_np.texi: Mention
the posix_spawn_file_actions_addchdir module.
2019-06-10 Bruno Haible <bruno@clisp.org>
posix_spawn-internal: Fix module description.
* modules/posix_spawn (configure.ac): Move request to compile spawni.c
from here...
* modules/posix_spawnp (configure.ac): ... and here...
* modules/posix_spawn-internal (configure.ac): ... to here.
2019-06-10 Bruno Haible <bruno@clisp.org>
doc: Update and improve documentation of glibc functions.
This is a series of commits that
- updates the documentation to the state of glibc 2.29,
- adds references to Linux man pages and glibc documentation,
- marks Linux specific functions as such.
These are the commits:
doc: Update after removal of crypt functions from glibc 2.28.
doc: Remove mention of function vm86 (does not exist on x86_64).
doc: Remove mention of functions that are gone from glibc.
doc: Mention that glibc no longer provides h_errno.
doc: Mention the availability of specific functions in glibc versions.
doc: Mention eaccess.
doc: Add references to Linux man pages.
doc: Add references to glibc documentation.
doc: Mention inotify_* functions.
doc: Mention ppoll.
doc: Mention sched_getcpu.
doc: Mention sync_file_range.
doc: Mention epoll_pwait.
doc: Mention eventfd, eventfd_read, eventfd_write.
doc: Mention signalfd.
doc: Mention timerfd_create, timerfd_gettime, timerfd_settime.
doc: Mention epoll_create1.
doc: Mention getauxval.
doc: Mention pthread_getattr_default_np, pthread_setattr_default_np.
doc: Mention nextdown, nextup.
doc: Mention more ISO TS 18661-1 <math.h> functions.
doc: Mention ISO TS 18661-1 <fenv.h> functions.
doc: Mention getrandom, getentropy.
doc: Mention strfromf, strfromd, strfroml.
doc: Mention preadv2, pwritev2.
doc: Mention copy_file_range.
doc: Mention memfd_create.
doc: Mention mlock2.
doc: Mention pkey_alloc, pkey_set, pkey_get, pkey_free, pkey_mprotect.
doc: Mention more ISO TS 18661-1 <math.h> functions.
doc: Mention renameat2.
doc: Mention statx.
doc: Mention the ISO C11 multithreading header and functions.
doc: Mention getcpu.
doc: Mention posix_spawn_file_actions_add[f]chdir_np.
doc: Some glibc functions also exist on IRIX 6.5 in 32-bit mode.
doc: Some glibc functions also exist on FreeBSD, AIX, HP-UX, Solaris 11.
doc: Some glibc functions also exist on FreeBSD, Solaris 11.
doc: Some glibc functions also exist on Solaris 11.
doc: Some glibc functions also exist on Solaris 11.4.
doc: Some glibc functions also exist on FreeBSD.
doc: Some glibc functions also exist on BeOS.
doc: Some glibc functions also exist on Haiku.
doc: Mark functions which exist only on Linux.
doc: Mark functions which exist only on Linux and illumos.
2019-06-06 Paul Eggert <eggert@cs.ucla.edu>
copy-file: fix typo
* lib/copy-file.c (qcopy_file_preserving): Remove unused label.
copy-file-range: simplify into a stub
Based on a comment by Florian Weimer in:
https://lists.gnu.org/r/bug-gnulib/2019-06/msg00007.html
It turns out that Emacs (which will use this module) won’t need an
emulation and I suspect other programs won’t either, because these
programs will need to fall back on read+write anyway. Perhaps I
am wrong and other programs will be able to use an emulation; if
so, this patch can be reverted.
* lib/copy-file-range.c (COPY_FILE_RANGE): Replace with a stub.
Just call it copy_file_range.
* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE):
Check via AC_LINK_IFELSE.
* modules/copy-file-range (Depends-on): Remove modules no longer used.
2019-06-04 Paul Eggert <eggert@cs.ucla.edu>
copy-file: prefer copy_file_range
* lib/copy-file.c: Do not include xalloc.h.
(qcopy_file_preserving): Allocate a buffer only if
copy_file_range does not suffice. If the allocation fails
don't give up; just use a small stack-based buffer.
Prefer copy_file_range if it works.
* modules/copy-file (Depends-on): Add copy-file-range.
Remove xalloc.
copy-file-range: new module
* MODULES.html.sh: Add copy-file-range.
* lib/copy-file-range.c, m4/copy-file-range.m4:
* modules/copy-file-range: New files.
* lib/unistd.in.h (copy_file_range): Declare.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS):
Set up GNULIB_COPY_FILE_RANGE and HAVE_COPY_FILE_RANGE.
* modules/unistd (unistd.h): Substitute them.
2019-05-28 Bruno Haible <bruno@clisp.org>
binary-io: Attempted use of O_BINARY on consoles no longer fails.
Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00124.html>.
* lib/binary-io.h (__gl_setmode_check): Remove function.
(set_binary_mode): Declare as notinline on DJGPP and EMX.
* lib/binary-io.c (__gl_setmode_check): Remove function.
(set_binary_mode): Define here on DJGPP and EMX. Inline
__gl_setmode_check. In case of a tty, don't return an error code.
2019-05-28 James Youngman <jay@gnu.org>
dirent-safer: Make opendir_safer usable from C++.
* lib/dirent-safer.h: use extern "C".
2019-05-28 James Youngman <jay@gnu.org>
canonicalize: Make canonicalize_filename_mode usable from C++.
* lib/canonicalize.h: use extern "C".
2019-05-26 Akim Demaille <akim@lrde.epita.fr>
prefix-gnulib-mk: Fix CPPFLAGS migration.
* build-aux/prefix-gnulib-mk (prefix_assignment): Don't forget the
_a part of the library name.
2019-05-24 Paul Eggert <eggert@cs.ucla.edu>
flexmember: update comments again
* lib/flexmember.h, m4/flexmember.m4: Improve comments further.
flexmember: update comment
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Improve comment.
2019-05-20 Bruno Haible <bruno@clisp.org>
setlocale: Improve fallback on macOS.
* lib/setlocale.c (search): Optimize away a redundant strcmp()
invocation.
(locales_with_principal_territory): New array.
(langcmp, get_main_locale_with_same_language): New functions.
(locales_with_principal_language): New array.
(terrcmp, get_main_locale_with_same_territory): New functions.
(rpl_setlocale): When setlocale_single failed, try again with a locale
that is more likely to exist. Don't warn if the environment variable
SETLOCALE_VERBOSE is not set.
2019-05-19 Bruno Haible <bruno@clisp.org>
localename: Fix default on macOS.
* m4/intlmacosx.m4 (gt_INTL_MACOSX): Don't test for CFLocaleCopyCurrent.
* lib/localename.c: Remove includes for HAVE_CFLOCALECOPYCURRENT.
(gl_locale_name_environ, gl_locale_name_default): Remove code for
HAVE_CFLOCALECOPYCURRENT.
* lib/localename.h (gl_locale_name_default): Update.
2019-05-19 Karl Berry <karl@freefriends.org>
* config/srclistvars.sh (TEXINFOTEX): make ftp.gnu.org be the
source for texinfo.tex, replacing TEXINFOSRC, per Texinfo maintainer.
* config/srclist.txt (texinfo.tex): use it. (Also doc changes.)
2019-05-18 Akim Demaille <akim@lrde.epita.fr>
maintainer-makefile: catch uses of $< in non-implicit rules
* top/maint.mk (sc_prohibit_magic_number_exit): New.
2019-05-18 Bruno Haible <bruno@clisp.org>
threadlib: Provide an easy way to avoid mingw's winpthreads library.
* m4/threadlib.m4 (gl_AVOID_WINPTHREAD): New macro.
(gl_THREADLIB_EARLY_BODY): Recognize when it was invoked, and set
gl_use_threads accordingly.
2019-05-18 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Fix compilation error with --enable-threads=windows.
Reported by Tim Rühsen in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-01/msg00018.html>
and Michele Locati in
<https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00057.html>.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Revert change from
2015-06-01. Test whether pthread_sigmask is a macro, regardless of
$LIBMULTITHREAD. Consider it regardless whether module 'threadlib' is
in use and regardless which threads API is chosen.
2019-05-14 Paul Eggert <eggert@cs.ucla.edu>
close-stream, closein, closeout: simplify
I noticed this opportunity for simplification while drafting a
new, related module that I haven’t had time to finish yet.
* m4/close-stream.m4, m4/closein.m4, m4/closeout.m4: Remove.
* modules/close-stream (Files): Remove m4/close-stream.m4.
(configure.ac): Omit gl_CLOSE_STREAM.
* modules/closein (Files): Remove m4/closein.m4
(configure.ac): Omit gl_CLOSEIN.
* modules/closeout (Files): Remove m4/closeout.m4.
(configure.ac): Omit gl_CLOSEOUT.
2019-05-12 Bruno Haible <bruno@clisp.org>
libtool-next-version: New program.
* build-aux/libtool-next-version: New file.
2019-05-11 John Darrington <john@darrington.wattle.id.au>
Bruno Haible <bruno@clisp.org>
version-etc: Ease translation.
* lib/version-etc.c (version_etc_arn, emit_bug_reporting_address): Move
URLs and formatting newlines out of translatable string.
2019-05-11 Bruno Haible <bruno@clisp.org>
gnupload: Explain how to create symlinks.
* build-aux/gnupload (usage): Add an example that creates symlinks.
2019-05-11 Paul Eggert <eggert@cs.ucla.edu>
fpucw: port to gcc -pedantic
* lib/fpucw.h (GET_FPUCW, SET_FPUCW):
Use __extension__ if using ({ ... }).
crypto/af_alg: port to strict C compilers
* lib/af_alg.c: Include af_alg.h regardless, so that the
compilation unit is nonempty.
2019-05-10 Bruno Haible <bruno@clisp.org>
base64: Avoid false positive warning from Coverity.
Reported by Kamil Dudka <kdudka@redhat.com>.
Idea by Paul Eggert.
* lib/base64.c (base64_encode_fast, base64_encode): Add a no-op
'& 0x3f' to the array index expressions. This convinces Coverity that
there is no out-of-bounds array reference, regardless of the input.
2019-05-09 Bruno Haible <bruno@clisp.org>
gettext: Update to gettext 0.20.
* modules/gettext (Files): Remove m4/codeset.m4, m4/fcntl-o.m4,
m4/glibc2.m4, m4/glibc21.m4, m4/intdiv0.m4, m4/intl.m4, m4/intldir.m4,
m4/intmax.m4, m4/inttypes_h.m4, m4/inttypes-pri.m4, m4/lcmessage.m4,
m4/lock.m4, m4/longlong.m4, m4/printf-posix.m4, m4/size_max.m4,
m4/stdint_h.m4, m4/threadlib.m4, m4/uintmax_t.m4, m4/visibility.m4,
m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4. Add m4/host-cpu-c-abi.m4.
(configure.ac): Request infrastructure compatible with gettext 0.20.
* m4/glibc2.m4: Remove file.
* m4/intdiv0.m4: Remove file.
* m4/intl.m4: Remove file.
* m4/intldir.m4: Remove file.
* m4/intmax.m4: Remove file.
* m4/printf-posix.m4: Remove file.
* m4/uintmax_t.m4: Remove file.
* m4/gettext.m4: Update from gettext 0.20.
* m4/po.m4: Likewise.
2019-05-09 Paul Eggert <eggert@cs.ucla.edu>
verify: remove verify_true
* NEWS: Mention this.
* lib/verify.h (verify_true): Remove.
* tests/test-verify.c (item): Test verify_expr, not verify_true.
Support C2x and C++17 static_assert
C2x and C++17 finally added support for a simple, single-argument
‘static_assert’ that implements what the Gnulib ‘verify’ macro was
doing back in 2005. Implement static_assert on older platforms.
The only remaining advantage of ‘verify’ is a shorter name.
* doc/posix-headers/assert.texi (assert.h):
* doc/verify.texi (Compile-time Assertions):
Modernize for C2x and C++17.
* lib/verify.h (_GL_HAVE__STATIC_ASSERT1, _GL_HAVE_STATIC_ASSERT1):
New macros.
(_GL_HAVE__STATIC_ASSERT): Remove.
(_GL_HAVE__STATIC_ASSERT): Rely more heavily on __STDC_VERSION__.
(_GL_VERIFY_TRUE, _GL_VERIFY_TYPE): Remove 2nd arg, the diagnostic
string. All callers changed.
(_GL_VERIFY): Require 3 or more args, of which only the first 2
are used. All callers changed.
(_Static_assert): Allow either 1 or 2 args, and define if
!_GL_HAVE__STATIC_ASSERT1 instead of defining if
!_GL_HAVE__STATIC_ASSERT.
(static_assert): Define if !_GL_HAVE_STATIC_ASSERT1 instead
of defining if !_GL_HAVE_STATIC_ASSERT.
(verify_expr, verify): Don’t bother trying to copy the expression
into the diagnostic, since 1-argument static_assert doesn’t.
(verify): Prefer 1-argument _Static_assert if it works.
* m4/assert_h.m4 (gl_ASSERT_H): Check for 1-argument static_assert.
2019-05-08 Paul Eggert <eggert@cs.ucla.edu>
Fix _GL_HAVE__STATIC_ASSERT typo
* lib/verify.h (_Static_assert): For the FreeBSD workaround,
use _GL_HAVE__STATIC_ASSERT, not _GL_HAVE_STATIC_ASSERT.
2019-05-05 Bruno Haible <bruno@clisp.org>
wcwidth: Ensure width 1, not 2, for ambiguous characters.
Reported by Kiyoshi KANAZAWA <yoi_no_myoujou@yahoo.co.jp>
via Akim Demaille <akim.demaille@gmail.com>.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check the width of U+2202. Use an
en_US.UTF-8 locale, since that is more likely to be present than an
fr_FR.UTF-8 locale.
* tests/test-wcwidth.c (main): Check the width of U+2202.
* doc/posix-functions/wcwidth.texi: Mention the issue.
2019-05-03 Paul Eggert <eggert@cs.ucla.edu>
Port manywarnings to GCC 9
* build-aux/gcc-warning.spec: Sort. Add -Wattribute-alias,
-Wc11-c2x-compat, -Wcast-result (for the D programming language),
-Wclass-conversion, -Wdeprecated-copy, -Wdeprecated-copy-dtor,
-Winit-list-lifetime, -Wpessimizing-move, -Wprio-ctor-dtor,
-Wredundant-move. Adjust to minor wording changes in GCC 9’s
--help=warnings output.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wabsolute-value,
-Waddress-of-packed-member, -Wattribute-warning, -Wcannot-profile,
-Wmissing-profile. Change -Wattribute-alias to -Wattribute-alias=2.
2019-04-30 Paul Eggert <eggert@cs.ucla.edu>
Sync lib/mktime-internal.h from glibc
* config/srclist.txt: Add entry for lib/mktime-internal.h.
* lib/mktime-internal.h: Autoupdate.
2019-04-28 Bruno Haible <bruno@clisp.org>
tls tests: Prevent that the test takes too long.
* tests/test-tls.c: Include <signal.h>, <unistd.h>.
(main): Let the test fail if it takes more than 10 minutes.
* modules/tls-tests (configure.ac): Test whether 'alarm' is declared.
2019-04-27 Bruno Haible <bruno@clisp.org>
lock tests: Prevent that the test takes too long.
* tests/test-lock.c: Include <signal.h>, <unistd.h>.
(main): Let the test fail if it takes more than 10 minutes.
* modules/lock-tests (configure.ac): Test whether 'alarm' is declared.
2019-04-27 Bruno Haible <bruno@clisp.org>
localename: Fix crash on mingw (regression from 2018-11-23).
* lib/localename.c (gl_locale_name_posix): Don't attempt to convert a
locale name that is null.
2019-04-27 Bruno Haible <bruno@clisp.org>
Fix gcc warnings on 64-bit mode mingw.
* lib/clean-temp.c: Include <stdint.h> instead of defining uintptr_t.
* lib/gl_array_list.c: Likewise.
* lib/gl_array_map.c: Likewise.
* lib/gl_array_set.c: Likewise.
* lib/gl_carray_list.c: Likewise.
* lib/gl_sublist.c: Likewise.
* lib/gl_avltreehash_list.c (uintptr_t): Remove definition.
* lib/gl_rbtreehash_list.c (uintptr_t): Likewise.
* lib/gl_hash_map.c (uintptr_t): Likewise.
* lib/gl_hash_set.c (uintptr_t): Likewise.
* lib/gl_linkedhash_list.c (uintptr_t): Likewise.
* lib/gl_linkedhash_map.c (uintptr_t): Likewise.
* lib/gl_linkedhash_set.c (uintptr_t): Likewise.
* lib/iconv.c (uintptr_t): Likewise.
* lib/iconv_close.c (uintptr_t): Likewise.
* tests/test-lock.c: Include <stdint.h>.
(once_contender_thread, test_once): Cast through 'intptr_t' instead of
'long'.
* modules/clean-temp (Depends-on): Add stdint.
* modules/array-list (Depends-on): Likewise.
* modules/array-map (Depends-on): Likewise.
* modules/array-set (Depends-on): Likewise.
* modules/carray-list (Depends-on): Likewise.
* modules/sublist (Depends-on): Likewise.
* modules/lock-tests (Depends-on): Likewise.
2019-04-27 Bruno Haible <bruno@clisp.org>
error: Tweak indentation.
* lib/error.c: Correct indentation.
2019-04-27 Bruno Haible <bruno@clisp.org>
term-style-control: Fix gcc warning on mingw.
* lib/term-style-control.c (ensure_other_signal_handlers): Reduce scope
of i.
2019-04-26 Bruno Haible <bruno@clisp.org>
pipe-filter-gi, pipe-filter-ii: Fix gcc warning.
* lib/pipe-filter-aux.h (read): Undefine before redefinition.
2019-04-26 Bruno Haible <bruno@clisp.org>
relocatable-prog: Fix gcc warning on mingw.
* lib/progreloc.c (maybe_executable): Don't define on native Windows and
on EMX.
2019-04-02 Bruno Haible <bruno@clisp.org>
gitsub.sh: New file.
* top/gitsub.sh: New file.
2019-04-18 Akim Demaille <akim@lrde.epita.fr>
argmatch: use void* for raw memory pointers
* lib/argmatch.h, lib/argmatch.c (argmatch, argmatch_valid)
(__xargmatch_internal, argmatch_to_argument): Use void* for pointers
to "values", keep char* for strings.
2019-04-21 Akim Demaille <akim@lrde.epita.fr>
prefix-gnulib-mk: fix the support for gnulib-po
* build-aux/prefix-gnulib-mk (prefix_assignment): Remove useless $res.
Don't touch HAVE_* variables.
Map AM_CPPFLAGS and AM_CPPFLAGS to the library's corresponding variables.
2019-04-18 Bernhard Voelker <mail@bernhard-voelker.de>
di-set: allow free with 'ino_map' being NULL.
* lib/di-set.c (di_set_free): Avoid ino_map_free() when dis->ino_map
is NULL. Bug introduced in commit 3703dbbe88dd.
* tests/test-di-set.c: Add di_set_free() right after di_set_alloc()
as a test.
2019-04-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/str-two-way.h: Fix comment typo.
2019-04-13 Bruno Haible <bruno@clisp.org>
x-to-1: Restore ability to use original calling convention.
* build-aux/x-to-1.in: Add comments. Accept the original form of
HELP2MAN argument as well as the form expected since 2012-12-12.
2019-04-13 Bruno Haible <bruno@clisp.org>
x-to-1: Avoid failure due to missing perl modules.
* build-aux/x-to-1.in: Test whether all the perl modules that help2man
needs are installed.
2019-04-13 Bruno Haible <bruno@clisp.org>
openmp-init: New module.
* modules/openmp-init: New file.
* modules/openmp: (Files, Depends-on, configure.ac, Makefile.am): Revert
the changes from 2019-04-09.
2019-04-12 Bruno Haible <bruno@clisp.org>
signbit: Fix compilation error when gnulib's math.h exists twice.
* lib/math.in.h (GNULIB_defined_signbit): New macro.
2019-04-12 Bruno Haible <bruno@clisp.org>
openmp: Fix compilation error on platforms without OpenMP.
* lib/omp-init.c: Include <omp.h> only if _OPENMP.
2019-04-09 Bernhard Voelker <mail@bernhard-voelker.de>
mountlist: make parsing /proc/self/mountinfo more robust
Cater for the following issues with mountinfo parsing (the first
one was reported by Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
in <https://bugs.gnu.org/35137>).
1. The fields source, target, mntroot and fstype may contain characters
like '\r'; sscanf(3) fails to read such values with the %s format
specifier because it would stop at such characters.
Example: "mount -t tmpfs tmpfs /foo^Mbar".
The only true separator in that file is the ' ' character.
2. The source field may be an empty string, which happens e.g. with
"mount -t tmpfs '' /target".
3. The fstype field may contain mangled characters as well which need
unescaping.
* lib/mountlist.c (terminate_at_blank): Add utility function.
(read_file_system_list): In the block trying to read the mountinfo file,
avoid using sscanf(3) with %s format; instead, parse the above fields
separated by spaces one by one.
This also handles the case when the source field is an empty string.
Unescape the fstype field.
2019-04-09 Bruno Haible <bruno@clisp.org>
openmp: Add workaround for 32-bit programs on AIX.
* lib/omp.in.h: New file.
* lib/omp-init.c: New file, based on lib/nproc.c.
* m4/omp_h.m4: New file.
* modules/openmp (Files): Add them.
(Depends-on): Add include_next, c-ctype, setenv.
(configure.ac): Invoke gl_OMP_H.
(Makefile.am): Add rules to create omp.h and compile omp-init.c.
(Include): Mention <omp.h>.
2019-04-09 Bruno Haible <bruno@clisp.org>
nproc: Fix return value for privileged processes.
* lib/nproc.c (num_processors_ignoring_omp): Test getuid(), not
getpid().
2019-04-07 Bruno Haible <bruno@clisp.org>
Add copyright notices in several files.
Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
* lib/_Noreturn.h: Add LGPLv2+ copyright notice.
* lib/libunistring.valgrind: Likewise.
* lib/iconv_open-*.gperf: Add GPLv2+ copyright notice.
* lib/uniname/gen-uninames.lisp: Add GPLv3+ copyright notice.
* lib/memchr.valgrind: Likewise.
* lib/memchr2.valgrind: Likewise.
* lib/rawmemchr.valgrind: Likewise.
* lib/relocatable.valgrind: Likewise.
* lib/strchrnul.valgrind: Likewise.
2019-03-25 Bruno Haible <bruno@clisp.org>
term-style-control tests: Fix link error.
Reported by Tom G. Christensen in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-03/msg00108.html>.
* modules/term-style-control-tests (Makefile.am): Link
test-term-style-control-hello and test-term-style-control-yes against
LIBINTL.
2019-03-24 Bruno Haible <bruno@clisp.org>
term-style-control: Add tests.
* tests/test-term-style-control-hello.c: New file.
* tests/test-term-style-control-yes.c: New file.
* modules/term-style-control-tests: New file.
term-style-control: New module.
* lib/term-style-control.h: New file, based on libtextstyle's
term-ostream.oo.h and term-ostream.oo.c.
* lib/term-style-control.c: New file, based on libtextstyle's
term-ostream.oo.c.
* modules/term-style-control: New file.
2019-03-22 Akim Demaille <akim@lrde.epita.fr>
_Noreturn: beware of C's _Noreturn in C++ pre C++11.
* lib/_Noreturn.h, m4/gnulib-common.m4: Using C's _Noreturn in
C++98 appears to be supported by Clang, but not by GCC nor ICC.
2019-03-23 Bruno Haible <bruno@clisp.org>
Support cross-compilation to musl libc.
Reported by Necktwi Ozfguah <necktwi@ferryfair.com>.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Add cross-compilation guesses for
musl libc.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/chown.m4 (gl_FUNC_CHOWN): Likewise.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/expm1.m4 (gl_FUNC_EXPM1): Likewise.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/fmod.m4 (gl_FUNC_FMOD): Likewise.
* m4/fmodf.m4 (gl_FUNC_FMODF): Likewise.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
* m4/getgroups.m4 (AC_FUNC_GETGROUPS, gl_FUNC_GETGROUPS): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Likewise.
* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise.
* m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Likewise.
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise.
* m4/log.m4 (gl_FUNC_LOG): Likewise.
* m4/logf.m4 (gl_FUNC_LOGF): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise.
* m4/log10.m4 (gl_FUNC_LOG10): Likewise.
* m4/log10f.m4 (gl_FUNC_LOG10F): Likewise.
* m4/log10l.m4 (gl_FUNC_LOG10L): Likewise.
* m4/log1p.m4 (gl_FUNC_LOG1P): Likewise.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise.
* m4/log2.m4 (gl_FUNC_LOG2): Likewise.
* m4/log2f.m4 (gl_FUNC_LOG2F): Likewise.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
* m4/modf.m4 (gl_FUNC_MODF): Likewise.
* m4/modff.m4 (gl_FUNC_MODFF): Likewise.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
* m4/perror.m4 (gl_FUNC_PERROR): Likewise.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE,
gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A,
gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99,
gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N,
gl_VSNPRINTF_ZEROSIZE_C99): Likewise.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise.
* m4/rintl.m4 (gl_FUNC_RINTL): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
* m4/setenv.m4 (gl_FUNC_SETENV): Likewise.
* m4/signbit.m4 (gl_SIGNBIT): Likewise.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/strerror.m4 (gl_FUNC_STRERROR, gl_FUNC_STRERROR_0): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
* m4/usleep.m4 (gl_FUNC_USLEEP): Likewise.
* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
2019-03-23 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_*: Document musl libc bugs.
* doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention
the bug.
* doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Likewise.
* doc/posix-functions/posix_spawn_file_actions_addopen.texi: Likewise.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): When
cross-compiling to a musl system, guess no.
(gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): Likewise.
(gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise.
2019-03-23 Bruno Haible <bruno@clisp.org>
futimens: Document musl libc bug.
* doc/posix-functions/futimens.texi: Mention the bug.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Require AC_CANONICAL_HOST. When
cross-compiling, guess no on glibc and musl systems.
2019-03-23 Bruno Haible <bruno@clisp.org>
Clarify that cross-compilation guesses are guesses.
* m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): When cross-compiling, add
prefix 'guessing ' to gl_cv_func_chown_follows_symlink.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): When cross-compiling, add
prefix 'guessing ' to gl_cv_func_fchownat_nofollow_works.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): When
cross-compiling, add prefix 'guessing ' to gl_cv_func_getcwd_abort_bug.
* m4/glob.m4 (gl_GLOB): When cross-compiling, add prefix 'guessing ' to
gl_cv_glob_lists_symlinks.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): When cross-compiling, add prefix
'guessing ' to ac_cv_func_malloc_0_nonnull.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): When cross-compiling, add prefix
'guessing ' to ac_cv_func_realloc_0_nonnull.
* m4/poll.m4 (gl_FUNC_POLL): When cross-compiling, add prefix
'guessing ' to gl_cv_func_poll.
* m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): When cross-
compiling, add prefix 'guessing ' to gl_cv_func_iconv_supports_utf.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Update accordingly.
2019-03-23 Bruno Haible <bruno@clisp.org>
strtold: Fix typo.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Fix typo in variable name.
2019-03-23 Bruno Haible <bruno@clisp.org>
noreturn: In C++ mode with clang, use _Noreturn as fallback.
Reported by Akim Demaille.
* lib/noreturn.h (_GL_NORETURN_FUNC): In C++ mode with clang, when
[[noreturn]] would not work, use _Noreturn instead.
2019-03-22 Akim Demaille <akim@lrde.epita.fr>
libtextstyle-optional: Fix compiler warnings.
* lib/textstyle.in.h (html_styled_ostream_create): Flag arguments
as unused.
2019-03-19 Akim Demaille <akim@lrde.epita.fr>
bitset: fix memory leaks
Reported by Bruno Haible.
https://lists.gnu.org/archive/html/bug-gnulib/2019-03/msg00027.html
* lib/bitset/vector.c (vbitset_free): New.
(vbitset_vtable): Use it.
2019-03-19 Akim Demaille <akim@lrde.epita.fr>
bitset: minor changes
* lib/bitset/base.h (bitset_alloc_type): Remove, unused.
* lib/bitset/table.c: Formatting changes.
Remove useless braces.
Prefer using else in cascades of if/else-if with returns.
* lib/bitset/vector.c: Reduce scopes.
2019-03-19 Akim Demaille <akim@lrde.epita.fr>
bitset: expose bitset_resize
* lib/bitset.h (bitset_resize): Bounce on the polymorphic implementation.
* tests/test-bitset.c (check_attributes): Check bitset_resize.
(main): Use a variable bitset as reference, since fixed does not support resize.
2019-03-19 Bruno Haible <bruno@clisp.org>
doc: Document the 'stdnoreturn' and 'noreturn' modules.
Reported by Akim Demaille.
* doc/noreturn.texi: New file.
* doc/gnulib.texi: Include it.
2019-03-19 Bruno Haible <bruno@clisp.org>
doc: Document how to use 'static inline'.
* doc/static-inline.texi: New file.
* doc/gnulib.texi: Include it.
2019-03-19 Bruno Haible <bruno@clisp.org>
libtextstyle-optional: Add tests.
* tests/test-libtextstyle.c: New file, based on libtextstyle's
adhoc-tests/hello.c.
* tests/test-libtextstyle-default.css: New file, copied from
libtextstyle's adhoc-tests/hello-default.css.
* modules/libtextstyle-optional-tests: New file.
libtextstyle-optional: New module.
* lib/textstyle.in.h: New file, based on libtextstyle's textstyle.h.
* m4/libtextstyle-optional.m4: New file, based on m4/libtextstyle.m4.
* modules/libtextstyle-optional: New file.
2019-03-19 Bruno Haible <bruno@clisp.org>
c-stack: Make signal handlers more reliable.
* lib/c-stack.c (progname): New variable.
(die): Use it.
(c_stack_action): Initialize it.
(segv_handler): Save and restore errno.
2019-03-19 Bruno Haible <bruno@clisp.org>
Help making signal handlers more reliable.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Emit definition of
_GL_ASYNC_SAFE into config.h.
* lib/nanosleep.c (sighandler): Mark as _GL_ASYNC_SAFE.
* lib/fatal-signal.h (at_fatal_signal): Add _GL_ASYNC_SAFE marker to
argument.
* lib/fatal-signal.c (action_t, uninstall_handlers,
fatal_signal_handler): Mark as _GL_ASYNC_SAFE.
* lib/clean-temp.c (cleanup_action): Mark as _GL_ASYNC_SAFE.
* lib/wait-process.c (cleanup_slaves, cleanup_slaves_action): Mark as
_GL_ASYNC_SAFE.
* lib/c-stack.h (c_stack_action): Add _GL_ASYNC_SAFE marker to argument.
* lib/c-stack.c: Add _GL_ASYNC_SAFE markers.
2019-03-18 Bruno Haible <bruno@clisp.org>
_Noreturn: clang and MSVC do support [[noreturn]] in C++11 mode.
* lib/_Noreturn.h: Use [[noreturn]] if __GNUC__ and __GNUC_MINOR__
indicate clang, or if _MSC_VER indicates MSVC++ 14.0 or newer.
2019-03-17 Akim Demaille <akim@lrde.epita.fr>
_Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
* lib/_Noreturn.h, m4/gnulib-common.m4: Don't use [[noreturn]] before
GCC 4.8.
2019-03-17 Paul Eggert <eggert@cs.ucla.edu>
fts: minor simplification
* lib/fts.c (fts_safe_changedir): Remove redundant assignment.
2019-03-17 Akim Demaille <akim@lrde.epita.fr>
bitset, timevar: Depend on c99.
Reported by Bruno Haible.
* modules/bitset, modules/timevar (Depends-on): Add c99.
2019-03-16 Akim Demaille <akim@lrde.epita.fr>
bitset: a bit (...) more tests
* tests/test-bitset.c (check_attributes): Check zero and ones.
2019-03-16 Akim Demaille <akim@lrde.epita.fr>
bitset: fix overflows.
Reported by Bruno Haible.
https://lists.gnu.org/archive/html/bug-gnulib/2019-03/msg00017.html
* lib/bitset/table.c (tbitset_test): last_bit is the position of
the bit in the array of bitset_word, so be sure to take its modulo
number-of-bits-in-bitset-word (i.e., EBITSET_ELT_WORDS).
* lib/bitset/list.c (lbitset_unused_clear): Likewise.
2019-03-14 Akim Demaille <akim@lrde.epita.fr>
bitset: style changes.
* lib/bitset/table.c: Use NULL, not 0, for pointers.
Formatting changes.
(tbitset_list): Reduce scopes.
2019-03-16 Bruno Haible <bruno@clisp.org>
fatal-signal: Pass the signal number to the action.
* lib/fatal-signal.h (at_fatal_signal): Change the signature.
* lib/fatal-signal.c (action_t): Take the signal number as parameter.
(fatal_signal_handler): Pass the signal number to the action.
* lib/clean-temp.c (cleanup_action): Renamed from cleanup. Take the
signal number as parameter.
(create_temp_dir): Update.
* lib/wait-process.c (cleanup_slaves_action): New function.
(register_slave_subprocess): Update at_fatal_signal invocation.
* NEWS: Mention the change.
2019-03-16 Bruno Haible <bruno@clisp.org>
fatal-signal: Add function that lists the fatal signals.
* lib/fatal-signal.h (get_fatal_signals): New declaration.
* lib/fatal-signal.c (get_fatal_signals): New function.
2019-03-14 Bruno Haible <bruno@clisp.org>
isatty: Make it return true in Cygwin consoles on native Windows.
* lib/isatty.c: Include <string.h>.
(GetProcAddress): New macro.
(GetNamedPipeClientProcessIdFuncType): New type.
(GetNamedPipeClientProcessIdFunc): New variable.
(QueryFullProcessImageNameFuncType): New type.
(QueryFullProcessImageNameFunc): New variable.
(initialized): New variable.
(initialize): New function.
(IsCygwinConsoleHandle): New function.
(isatty): Invoke it.
* doc/posix-functions/isatty.texi: Mention the issue.
2019-03-14 Bruno Haible <bruno@clisp.org>
all: Update URLs to msdn.microsoft.com.
* lib/stat-w32.c et al.: Update URLs after most of msdn.microsoft.com
was moved to docs.microsoft.com.
2019-03-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Clarify the coding style.
Suggested by Pavel Raiskup <praiskup@redhat.com>.
* gnulib-tool: Add comment about coding style.
2019-03-11 Paul Eggert <eggert@cs.ucla.edu>
strtod: fix clash with strtold
Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
* lib/strtod.c (compute_minus_zero, minus_zero):
Simplify by remving the macro / external variable,
and having just a function. User changed. This avoids
the need for an external variable that might clash.
2019-03-10 Bruno Haible <bruno@clisp.org>
alloca-opt: Fix conflict mingw's new <alloca.h> file.
Reported by Eli Zaretskii <eliz@gnu.org>.
* lib/alloca.in.h: On mingw systems that have <alloca.h>, include that.
* m4/alloca.m4 (gl_FUNC_ALLOCA): Set HAVE_ALLOCA_H.
* modules/alloca-opt (Makefile.am): Substitute HAVE_ALLOCA_H.
2019-03-10 Bruno Haible <bruno@clisp.org>
tests: Avoid havoc with "gcc -fcheck-pointer-bounds".
* tests/test-fprintf-posix2.c: Skip the test when -fcheck-pointer-bounds
is in use.
* tests/test-printf-posix2.c: Likewise.
2019-03-10 Bruno Haible <bruno@clisp.org>
uninorm tests: Free allocated memory.
* tests/uninorm/test-u32-normalize-big.h
(struct normalization_test_file): Remove 'const' from allocated member.
(free_normalization_test_file): New declaration.
* tests/uninorm/test-u32-normalize-big.c (test_other): Free allocated
memory.
(free_normalization_test_file): New function.
* tests/uninorm/test-u32-nfc-big.c (main): Free allocated
'struct normalization_test_file' contents.
* tests/uninorm/test-u32-nfd-big.c (main): Likewise.
* tests/uninorm/test-u32-nfkc-big.c (main): Likewise.
* tests/uninorm/test-u32-nfkd-big.c (main): Likewise.
2019-03-10 Bruno Haible <bruno@clisp.org>
di-set: Fix memory leak.
* lib/di-set.c (di_set_free): Free the ino_map through ino_map_free(),
not free().
2019-03-10 Bruno Haible <bruno@clisp.org>
tests: Free allocated memory.
Reported by <deltatau@protonmail.com> via Assaf Gordon.
* tests/test-astrxfrm.c (main): Free allocated memory.
* tests/test-bitset.c (compare, check_attributes): Free allocated
bitsets.
* tests/test-filenamecat.c (main): Free allocated memory.
* tests/test-freadahead.c (main): Free allocated memory and close stdin.
* tests/test-freadptr.c (main): Likewise.
* tests/test-freadptr2.c (main): Free allocated memory.
* tests/test-freadseek.c (main): Likewise.
* tests/test-gc-arcfour.c (main): Close allocated context.
* tests/test-gc-arctwo.c (main): Likewise.
* tests/test-gc-des.c (main): Close all allocated contexts.
* tests/test-pipe-filter-gi1.c (main): Free allocated memory.
* tests/test-pipe-filter-ii1.c (main): Likewise.
* tests/test-posix_spawn_file_actions_addchdir.c (main): Destroy the
allocated file actions.
* tests/test-posix_spawn_file_actions_addclose.c (main): Likewise.
* tests/test-posix_spawn_file_actions_adddup2.c (main): Likewise.
* tests/test-posix_spawn_file_actions_addopen.c (main): Likewise.
* tests/test-sameacls.c (main): Free allocated memory and ACLs.
* tests/test-strfmon_l.c (main): Free allocated locales.
* tests/test-striconveh.c (main): Free allocated iconv_t objects.
* tests/uniconv/test-u8-conv-to-enc.c (main): Free allocated memory.
* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-to-enc.c (main): Likewise.
* tests/unistr/test-chr.h (main): Free input32.
* tests/unistr/test-strchr.h (test_strchr): Likewise.
2019-03-10 Bruno Haible <bruno@clisp.org>
tests: Prepare for using valgrind.
* tests/*.sh: Invoke all test programs through ${CHECKER}.
* tests/*/*.sh: Likewise.
* tests/test-freadptr.c (main): Update accordingly.
* tests/test-freadseek.c (main): Likewise.
2019-03-09 Bruno Haible <bruno@clisp.org>
get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread findings.
* lib/get-rusage-as.c (get_rusage_as): When compiled by
"gcc -fsanitize=thread", don't try get_rusage_as_via_setrlimit.
* tests/test-pthread_sigmask2.c (main): Clean up the killer_thread
before exiting.
2019-03-09 Jim Meyering <meyering@fb.com>
test-userspec.c: don't print NULL
* tests/test-userspec.c (main): A test release of gcc,
9.0.1 20190310, warned that this test would attempt to
print a NULL pointer via a %s printf format. Fix that
and remove the unnecessary preceding "!diag" conjunct.
Also add a comment.
2019-03-03 Bruno Haible <bruno@clisp.org>
getloadavg: Write NULL for the null pointer.
Reported by Michal Privoznik <mprivozn@redhat.com>.
* lib/getloadavg.c (getloadavg): Write NULL instead of 0.
2019-02-28 Michal Privoznik <mprivozn@redhat.com>
alloca, tsearch-tests: Write NULL for the null pointer.
* lib/alloca.c (i00afunc): Write NULL instead of 0.
* tests/test-tsearch.c (mangle_tree): Likewise.
2019-03-09 Bruno Haible <bruno@clisp.org>
strfmon_l: Fix -fsanitize=address finding.
* lib/strfmon_l.c: Include <errno.h>, <stdbool.h>, <stdlib.h>,
<string.h>.
(MAX_ARGS): Renamed from MAX_ARG_WORDS.
(directive_t, directives_t): New types.
(fmon_parse): New function.
(rpl_strfmon_l): Don't call va_arg more often than needed for the
format string. Consume 'long double' arguments in places where the
format string indicates so.
* modules/strfmon_l (Depends-on): Add 'stdbool'.
2019-03-09 Bruno Haible <bruno@clisp.org>
crypto/des: Fix undefined behaviour.
* lib/des.c (READ_64BIT_DATA): Cast bytes to 'unsigned int', to avoid
shift operations on 'int'.
2019-03-09 Bruno Haible <bruno@clisp.org>
Fix undefined behaviour.
* lib/bitrotate.h (rotl16, rotr16, rotl8, rotr8): Cast x to
'unsigned int', to avoid shift operations on 'int'.
* lib/xmemdup0.c (xmemdup0): Don't invoke memcpy with a zero size.
* tests/test-count-leading-zeros.c (main): Use a random number that has
as many bits as TYPE, not only 2*15 or 2*31 bits.
* tests/test-count-trailing-zeros.c (main): Likewise.
* tests/test-count-one-bits.c (main): Likewise.
* tests/test-memmem.c: Don't include "null-ptr.h".
(main): Use zerosize_ptr() instead of null_ptr().
* modules/memmem-tests (Files): Remove tests/null-ptr.h.
2019-03-08 Bruno Haible <bruno@clisp.org>
unilbrk/u*-possible-linebreaks: Fix undefined behaviour.
Reported by Jeffrey Walton <noloader@gmail.com>.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't
invoke memset with a zero size.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Adjust accordingly.
2019-03-08 Bruno Haible <bruno@clisp.org>
unistr/*, uniconv/*: Fix undefined behaviour.
Reported by Jeffrey Walton <noloader@gmail.com>.
* lib/unistr/u-cpy.h (FUNC): Don't invoke memcpy with a zero size.
* lib/unistr/u-cpy-alloc.h (FUNC): Likewise.
* lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Likewise.
* lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise.
2019-03-08 Bruno Haible <bruno@clisp.org>
unistr/u8-cmp: Fix undefined behaviour.
Reported by Jeffrey Walton <noloader@gmail.com>.
* lib/unistr/u8-cmp.c (u8_cmp): Don't invoke memcmp if n is zero.
2019-03-08 Bruno Haible <bruno@clisp.org>
unictype/numeric: Fix undefined behaviour.
Reported by Jeffrey Walton <noloader@gmail.com>.
* lib/unictype/numeric.c (uc_numeric_value): Avoid undefined behaviour
on shift overflow, caught by "gcc -fsanitize=undefined".
* lib/unictype/bidi_of.c (uc_bidi_class): Add cast, for clarity.
* lib/unictype/categ_of.c (lookup_withtable): Likewise.
* lib/unictype/joininggroup_of.c (uc_joining_group): Likewise.
2019-03-05 Paul Eggert <eggert@cs.ucla.edu>
git-version-gen: fix --version copyright year
* build-aux/git-version-gen, build-aux/move-if-change (version):
--version output copyright year is now taken from script year,
so that it no longer needs to be updated by hand.
2019-03-04 Bruno Haible <bruno@clisp.org>
relocatable-prog: Use wrapper-free installation on Mac OS X, take 2.
This approach supports relocatable installation of shared libraries
which depend on other shared libraries from the same package.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Determine use_macos_tools.
If use_macos_tools is true, use reloc-ldflags and set LIBTOOL to be a
wrapper around the original LIBTOOL.
* build-aux/reloc-ldflags: Add support for Mac OS X, which uses the
token '@loader_path' instead of '$ORIGIN'.
* build-aux/libtool-reloc: New file.
* modules/relocatable-prog (Files): Add it.
* doc/relocatable-maint.texi (Supporting Relocation): Update to match
the recent changes. Document the need to set the *_LDFLAGS of libraries.
RELOCATABLE_LIBRARY_PATH and RELOCATABLE_CONFIG_H_DIR should be set in
Makefile.am, not in configure.ac.
2019-03-04 Bruno Haible <bruno@clisp.org>
relocatable-prog: Revert "Use wrapper-free installation on Mac OS X."
* build-aux/install-reloc: Revert change.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Likewise.
2019-02-24 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: support the ‘+’ flag
* lib/nstrftime.c (add, __strftime_internal):
Add support for the ‘+’ flag introduced in POSIX.1-2017.
(__strftime_internal): New arg ‘width’. All uses changed.
(DO_YEARISH, DO_MAYBE_SIGNED_NUMBER): New macros.
2019-02-24 Bruno Haible <bruno@clisp.org>
relocatable-prog: Improve verbose output.
* build-aux/install-reloc (func_verbose): Escape characters that would
be interpreted by the shell.
2019-02-24 Bruno Haible <bruno@clisp.org>
stat, lstat: Fix conflict with relocatable-prog-wrapper module.
* lib/stat.c: On platforms other than OSF/1, include <sys/stat.h>, not
"sys/stat.h".
* lib/lstat.c: Likewise.
* lib/fstat.c: Likewise.
* lib/fstatat.c: Likewise.
2019-02-23 Bernhard Voelker <mail@bernhard-voelker.de>
long-options: add parse_gnu_standard_options_only
Discussed in https://bugs.gnu.org/33468 .
* lib/long-options.c (parse_long_options): Use EXIT_SUCCESS instead of 0
(parse_gnu_standard_options_only): Add function to process
the GNU default options --help and --version and fail for
any other unknown long or short option. See
https://gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html
* lib/long-options.h (parse_gnu_standard_options_only): Declare it.
* modules/long-options (depends-on): Add stdbool, exitfail.
* top/maint.mk (sc_prohibit_long_options_without_use): Update
syntax-check rule, add new function name.
2019-02-23 Bruno Haible <bruno@clisp.org>
relocatable-prog: Update documentation.
* doc/relocatable-maint.texi (Supporting Relocation): Update to match
the recent changes.
2019-02-23 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: tweak arg order
* lib/nstrftime.c (__strftime_internal): Interchange arg order.
All callers changed. Suggested by TAMUKI Shoichi in:
https://lists.gnu.org/r/bug-gnulib/2019-02/msg00052.html
2019-02-23 Bruno Haible <bruno@clisp.org>
relocatable-prog: Use wrapper-free installation also on Mac OS X.
Reported by Paul Smith <psmith@gnu.org>.
* build-aux/install-reloc: Accept a 'mode' argument as first argument.
(func_relativize): New function, from gnulib-tool.
Handle mode 'macosx' through invocations of 'otool' and
'install_name_tool'.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Determine use_macos_tools.
If use_macos_tools is true, set INSTALL_PROGRAM_ENV to an
'install-reloc' invocation with mode 'macosx'.
2019-02-23 Bruno Haible <bruno@clisp.org>
relocatable-prog: Use $ORIGIN trick also on GNU/Hurd.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use $ORIGIN trick also on
Hurd with glibc >= 2.27.
2019-02-21 Paul Eggert <eggert@cs.ucla.edu>
nstrftime: merge glibc strftime changes
This incorporates:
2019-02-11 Fix a few whitespace arrangement inconsistencies
2019-01-24 strftime: Pass flags from "%EY" to "%Ey" [BZ #24096]
2019-01-24 Set the default width of "%Ey" to 2 [BZ #23758]
2019-01-11 strftime: use the "L_" macro with character literals
* lib/nstrftime.c (__strftime_internal): New arg yr_spec. All
callers changed. Default width of %Ey is now 2. This is needed
for proper handling of Japanese dates starting on 2019-05-01.
2019-02-19 Bruno Haible <bruno@clisp.org>
relocatable-prog: Use $ORIGIN trick on more platforms.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use $ORIGIN trick also on
FreeBSD >= 7.3, DragonFly >= 3.0, NetBSD >= 8.0, OpenBSD >= 5.4,
Solaris >= 10, Haiku. But don't use it on Android.
* build-aux/reloc-ldflags: Allow the use of the $ORIGIN trick also on
Hurd, FreeBSD, DragonFly, NetBSD, OpenBSD, Solaris, Haiku.
2019-02-19 Bruno Haible <bruno@clisp.org>
progreloc: Speed up executable lookup on various platforms.
* lib/progreloc.c: Include <errno.h>.
(safe_read, full_read): New functions.
(find_executable): On GNU/kFreeBSD, FreeBSD, DragonFly, NetBSD, Solaris,
prefer the information from the /proc file system to a PATH search.
2019-02-19 Bruno Haible <bruno@clisp.org>
progreloc: Simplify code for Android.
* lib/progreloc.c (executable_fd): Don't define on Android.
(maybe_executable, find_executable): Don't use executable_fd on Android.
2019-02-15 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support --import with just a few tests, not --with-tests.
* gnulib-tool (func_import): New variable 'gentests'. Use it instead of
'inctests' when generating files; use 'inctests' only for computing the
transitive closure.
2019-02-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve handling of multiple --local-dir options.
* doc/gnulib.texi (Extending Gnulib): Explain how multiple --local-dir
options work.
* gnulib-tool (func_path_prepend): Remove function.
(func_path_foreach): Make IFS handling more robust.
(local_gnulib_path): Collect --local-dir values using func_path_append,
not func_path_prepend.
(func_determine_path_separator): Make IFS handling more robust.
(func_lookup_file_cb): New function.
(func_lookup_file): Rewritten to use func_lookup_file_cb instead of
func_lookup_local_file. Apply the patches in the reverse order of their
origin in $local_gnulib_path.
(func_count_relative_local_gnulib_path): Make IFS handling more robust.
* NEWS: Mention that the first --local-dir option is the one with
highest priority.
2019-02-10 Bruno Haible <bruno@clisp.org>
libtextstyle: New module.
* m4/libtextstyle.m4: New file.
* modules/libtextstyle: New file.
2019-02-05 Bruno Haible <bruno@clisp.org>
declared.sh: Fix bug with variables of pointer type.
* build-aux/declared.sh (sed_extract_extern_declared): Allow the space
before the symbol to be omitted if the preceding character is a '*'.
2019-02-04 Bruno Haible <bruno@clisp.org>
Add script for running tests under valgrind.
* build-aux/run-test: New file, from GNU libunistring.
* doc/valgrind-tests.texi: Rewritten to mention alternative approaches
as well.
2019-02-04 Bruno Haible <bruno@clisp.org>
declared.sh: Fix --version output.
* build-aux/declared.sh (func_version): Update package name.
2019-02-03 Bruno Haible <bruno@clisp.org>
Add script for determining the set of symbols to export from a library.
* build-aux/declared.sh: New file, from GNU libunistring.
* doc/lib-symbol-visibility.texi (Exported Symbols of Shared Libraries):
Mention it.
2019-02-02 Paul Eggert <eggert@cs.ucla.edu>
vla: add commentary about VLA_ELEMS
* lib/vla.h (VLA_ELEMS): Add commentary,
some inspired by Bruno Haible’s proposal in:
https://lists.gnu.org/r/bug-gnulib/2019-01/msg00109.html
dtoastr,ftoastr,ldtoastr: port to c-strtod changes
Decouple these modules from c-strtod. Nowadays it’s reasonable to
assume the C99 signatures for strtod and strtold. Programs that
require stricter adherence to C99 should also use the strtod and
strtold modules as needed, and we no longer need the
HAVE_C99_STRTOLD macro.
* NEWS: Mention this.
* lib/ftoastr.c (STRTOF) [LENGTH == 3]: Assume strtold.
* m4/c-strtod.m4 (gl_C_STRTOLD): Do not define HAVE_C99_STRTOLD.
* modules/dtoastr, modules/ftoastr, modules/ldtoastr:
(Files): Remove m4/c-strtod.m4.
(configure.ac): Do not require gl_C99_STRTOLD, which no longer
exists.
2019-02-02 Bruno Haible <bruno@clisp.org>
fma: Improve code style.
* lib/fma.c: Include <limits.h>, for CHAR_BIT.
2019-02-02 Colin Watson <cjwatson@debian.org>
*-map tests: Fix compilation error.
* tests/test-array_map.c: Include <limits.h>, for CHAR_BIT.
* tests/test-hash_map.c: Likewise.
* tests/test-linkedhash_map.c: Likewise.
2019-01-31 Bruno Haible <bruno@clisp.org>
c-strtod, c-strtold: Use the bug fixes for strtod, strtold.
* lib/stdlib.in.h (GNULIB_defined_strtod_function,
GNULIB_defined_strtold_function): New macros.
* lib/c-strtod.c (HAVE_GOOD_STRTOD_L): New macro.
(STRTOD): Ignore HAVE_C99_STRTOLD.
(c_locale): Don't define it on platforms where strtod_l/strtold_l is
deemed buggy. But do use it on platforms where uselocale exists and is
usable.
(C_STRTOD): Don't use STRTOD_L on platforms where strtod_l/strtold_l is
deemed buggy. On platforms where uselocale exists and is usable, use
uselocale and strtod/strtold.
* m4/c-strtod.m4 (gl_C99_STRTOLD): Remove macro.
(gl_C_STRTOD): Require gt_FUNC_USELOCALE.
(gl_C_STRTOLD): Likewise. Define HAVE_C99_STRTOLD unconditionally.
* modules/c-strtod (Files): Add m4/intl-thread-locale.m4.
(Depends-on): Add strtod.
* modules/c-strtold (Files): Add m4/intl-thread-locale.m4.
(Depends-on): Add strtold.
2019-01-31 Bruno Haible <bruno@clisp.org>
strtod, strtold: Use the locale's decimal point.
* lib/strtod.c: Include <locale.h>, <stdio.h>, <langinfo.h>.
(decimal_point_char): New function, copied from lib/vasnprintf.c.
(parse_number): Add a radixchar argument. Use it instead of '.'.
(STRTOD): Invoke decimal_point_char and pass the result to parse_number.
* m4/strtod.m4 (gl_PREREQ_STRTOD): Test whether nl_langinfo exists.
* m4/strtold.m4 (gl_PREREQ_STRTOLD): Likewise.
* tests/test-strtod1.c: New file.
* tests/test-strtod1.sh: New file.
* modules/strtod-tests (Files): Add test-strtod1.{sh,c}. Add
locale-fr.m4 and its dependencies.
(configure.ac): Invoke gt_LOCALE_FR, gt_LOCALE_FR_UTF8.
(Makefile.am): Arrange to compile test-strtod1.c and run
test-strtod1.sh.
* tests/test-strtold1.c: New file.
* tests/test-strtold1.sh: New file.
* modules/strtold-tests (Files): Add test-strtold1.{sh,c}. Add
locale-fr.m4 and its dependencies.
(configure.ac): Invoke gt_LOCALE_FR, gt_LOCALE_FR_UTF8.
(Makefile.am): Arrange to compile test-strtold1.c and run
test-strtold1.sh.
2019-01-31 Bruno Haible <bruno@clisp.org>
strtod, strtold tests: Simplify tests.
* tests/test-strtod.c (main): Assume no rounding errors for 0.5.
* tests/test-strtold.c (main): Likewise.
2019-01-31 Bruno Haible <bruno@clisp.org>
strtod, strtold: Avoid unnecessary rounding errors.
* lib/strtod.c (parse_number): Drop trailing zeroes before doing the
decimal to DOUBLE conversion.
2019-01-31 Bruno Haible <bruno@clisp.org>
strtod, strtold: Work around HP-UX 11.31/ia64 bug.
* lib/strtod.c (STRTOD): When there is an extra character after the
exponent marker 'p', reparse the number.
* doc/posix-functions/strtod.texi: Document the HP-UX 11.31 bug.
* doc/posix-functions/strtold.texi: Likewise.
2019-01-29 Bruno Haible <bruno@clisp.org>
strtold: Add tests.
* tests/test-strtold.c: New file, based on tests/test-strtod.c.
* modules/strtold-tests: New file.
2019-01-29 Bruno Haible <bruno@clisp.org>
strtold: New module.
* lib/stdlib.in.h (strtold): New declaration.
* lib/strtold.c: New file.
* lib/strtod.c: Consider USE_LONG_DOUBLE.
(STRTOD, LDEXP, HAVE_UNDERLYING_STRTOD, DOUBLE, MIN, MAX, L_,
USE_LDEXP): New macros.
(LDEXP, scale_radix_exp, parse_number, STRTOD): Adapt for
USE_LONG_DOUBLE.
(underlying_strtod): Remove function. Replace with some macros.
Re-add the code for a missing underlying function that was removed on
2013-02-19.
* m4/strtold.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtold is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOLD, HAVE_STRTOLD,
REPLACE_STRTOLD.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOLD, HAVE_STRTOLD,
REPLACE_STRTOLD.
* modules/strtold: New file.
* doc/posix-functions/strtold.texi: Document the new module.
2019-01-29 Bruno Haible <bruno@clisp.org>
strtod: Fix compilation error on IRIX 6.5.
* modules/strtod (Depends-on): Add 'math'.
2019-01-28 Bruno Haible <bruno@clisp.org>
Fix build error when building a shared libunistring on Android.
* tests/uninorm/test-nfc.c (n): Don't define on Android.
(main): Add 'volatile', to defeat a GCC optimization that would
eliminate the reference.
* tests/uninorm/test-nfd.c (n): Don't define on Android.
(main): Add 'volatile', to defeat a GCC optimization that would
eliminate the reference.
* tests/uninorm/test-nfkc.c (n): Don't define on Android.
(main): Add 'volatile', to defeat a GCC optimization that would
eliminate the reference.
* tests/uninorm/test-nfkd.c (n): Don't define on Android.
(main): Add 'volatile', to defeat a GCC optimization that would
eliminate the reference.
2019-01-27 Bruno Haible <bruno@clisp.org>
Avoid build errors due to wrong references between modules.
* lib/uninorm/canonical-decomposition.c: Include
"uninorm/decomposition-table.h", not "decomposition-table.h".
* lib/uninorm/decomposition.c: Likewise.
* lib/uninorm/u8-normalize.c: Include "uninorm/decompose-internal.h",
not "decompose-internal.h".
* lib/uninorm/u16-normalize.c: Likewise.
* lib/uninorm/u32-normalize.c: Likewise.
* lib/uninorm/uninorm-filter.c: Likewise.
* lib/uninorm/nfkc.c: Likewise.
* lib/uninorm/nfkd.c: Likewise.
* lib/unicase/u8-casemap.c: Include "unicase/caseprop.h", not
"caseprop.h".
* lib/unicase/u8-ct-totitle.c: Likewise.
* lib/unicase/u8-prefix-context.c: Likewise.
* lib/unicase/u8-suffix-context.c: Likewise.
* lib/unicase/u16-casemap.c: Likewise.
* lib/unicase/u16-ct-totitle.c: Likewise.
* lib/unicase/u16-prefix-context.c: Likewise.
* lib/unicase/u16-suffix-context.c: Likewise.
* lib/unicase/u32-casemap.c: Likewise.
* lib/unicase/u32-ct-totitle.c: Likewise.
* lib/unicase/u32-prefix-context.c: Likewise.
* lib/unicase/u32-suffix-context.c: Likewise.
* lib/unicase/u8-tolower.c: Include "unicase/unicasemap.h", not
"unicasemap.h".
* lib/unicase/u8-toupper.c: Likewise.
* lib/unicase/u8-ct-tolower.c: Likewise.
* lib/unicase/u8-ct-toupper.c: Likewise.
* lib/unicase/u16-tolower.c: Likewise.
* lib/unicase/u16-toupper.c: Likewise.
* lib/unicase/u16-ct-tolower.c: Likewise.
* lib/unicase/u16-ct-toupper.c: Likewise.
* lib/unicase/u32-tolower.c: Likewise.
* lib/unicase/u32-toupper.c: Likewise.
* lib/unicase/u32-ct-tolower.c: Likewise.
* lib/unicase/u32-ct-toupper.c: Likewise.
* lib/unicase/u8-ct-casefold.c: Include "unicase/unicasemap.h", not
"unicasemap.h", and "unicase/casefold.h", not "casefold.h".
* lib/unicase/u16-ct-casefold.c: Likewise.
* lib/unicase/u32-ct-casefold.c: Likewise.
2019-01-27 Bruno Haible <bruno@clisp.org>
gperf: Fix error when this module is required by some test module.
* modules/gperf (Applicability): Set to 'all'.
2019-01-27 Bruno Haible <bruno@clisp.org>
tmpfile: Add support for Android.
* m4/tmpfile.m4 (gl_FUNC_TMPFILE): Add a runtime test whether tmpfile()
works.
* lib/tmpfile.c (tmpfile): Add an alternative implementation for
Android.
* modules/tmpfile (Depends-on): Add 'stdbool'.
* doc/posix-functions/tmpfile.texi: Mention the Android bug.
* modules/argv-iter-tests (Depends-on): Add 'tmpfile'.
2019-01-27 Akim Demaille <akim@lrde.epita.fr>
bitsetv: allow free on NULL.
* lib/bitsetv.c (bitsetv_free): Do nothing when the bitsetv is NULL.
2019-01-27 Bruno Haible <bruno@clisp.org>
test-framework-sh: Improve maintainability.
* tests/init.sh: Clarify what belongs together. Reorder definitions.
2019-01-27 Bruno Haible <bruno@clisp.org>
tests: Don't assume that /tmp exists.
* tests/test-set-mode-acl-1.sh: Skip the test if /tmp does not exist.
* tests/test-copy-acl-1.sh: Likewise.
* tests/test-file-has-acl-1.sh: Likewise.
* tests/test-copy-file-1.sh: Likewise.
2019-01-27 Bruno Haible <bruno@clisp.org>
tests: Accommodate a shell that is not in /bin/sh.
* tests/init.sh (setup_): Set srcdir and builddir.
(BOURNE_SHELL): New variable.
* modules/acl-tests (Depends-on): Add 'test-framework-sh'.
* modules/file-has-acl-tests (Depends-on): Likewise.
* modules/copy-file-tests (Depends-on): Likewise.
* tests/test-set-mode-acl-1.sh: Use the test framework. Invoke shell
scripts through $BOURNE_SHELL.
* tests/test-set-mode-acl-2.sh: Likewise.
* tests/test-copy-acl-1.sh: Likewise.
* tests/test-copy-acl-2.sh: Likewise.
* tests/test-file-has-acl-1.sh: Likewise.
* tests/test-file-has-acl-2.sh: Likewise.
* tests/test-copy-file-1.sh: Likewise.
* tests/test-copy-file-2.sh: Likewise.
* tests/test-set-mode-acl.sh (builddir): Consider value set by the
invoker.
* tests/test-copy-acl.sh (builddir): Likewise.
* tests/test-file-has-acl.sh (builddir): Likewise.
* tests/test-copy-file.sh (builddir): Likewise.
* tests/test-vc-list-files-cvs.sh: Don't create shims for executables in
build-aux/. Instead, invoke shell scripts through $BOURNE_SHELL.
* tests/test-vc-list-files-git.sh: Likewise.
2019-01-27 Bruno Haible <bruno@clisp.org>
tests: Fix some "unused variable" warnings.
* tests/test-fts.c (fts_dealloc): Remove unused variable.
* tests/unigbrk/test-uc-grapheme-breaks.c (main): Likewise.
* tests/test-striconveh.c (main): Move some variable into the
'#if HAVE_ICONV'.
* tests/test-striconveha.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c (main): Likewise.
* tests/test-tsearch.c (main): Move some variable into the
'#if HAVE_INITSTATE'.
2019-01-27 Bruno Haible <bruno@clisp.org>
unigbrk/uc-grapheme-breaks: Fix build failure.
* lib/unigbrk/uc-grapheme-breaks.c: Don't include unistr.h.
* modules/unigbrk/uc-grapheme-breaks (Makefile.am): Fix typo.
2019-01-27 Bruno Haible <bruno@clisp.org>
mountlist: Merge two .m4 files.
* m4/mountlist.m4 (gl_MOUNTLIST): Inline gl_LIST_MOUNTED_FILE_SYSTEMS.
(AC_FUNC_GETMNTENT): Move to here, from m4/ls-mntd-fs.m4.
* m4/ls-mntd-fs.m4: Remove file.
* modules/mountlist (Files): Remove m4/ls-mntd-fs.m4.
2019-01-27 Bruno Haible <bruno@clisp.org>
tests: Enable Linux specific tests on Android.
* tests/test-flock.c (main): Treat Android like Linux.
* tests/test-openat-safer.c (main): Likewise.
2019-01-27 Bruno Haible <bruno@clisp.org>
relocatable-prog: Use Linux code on Android.
* lib/progreloc.c: Treat Android like Linux.
2019-01-26 Bruno Haible <bruno@clisp.org>
getloadavg: Add support for Android.
* lib/getloadavg.c: Treat Android like Linux.
2019-01-26 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for Android.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Android as well.
* lib/vma-iter.c: Treat Android like Linux.
* lib/get-rusage-data.c (get_rusage_data): Likewise.
2019-01-26 Bruno Haible <bruno@clisp.org>
fts: Optimize on Android.
* lib/fts.c: Treat Android like Linux.
2019-01-26 Bruno Haible <bruno@clisp.org>
fts: Add support for Android.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Avoid conflicts between the symbols
defined by this module and the ones in libc.
* tests/test-fts.c (main): Treat mkdir error EMLINK like EMFILE.
2019-01-26 Bruno Haible <bruno@clisp.org>
mountlist: Use Linux code on Android.
* lib/mountlist.c (setmntent, endmntent): Define fallbacks.
(unescape_tab, read_file_system_list): Enable Linux code on Android
as well.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Test for setmntent
and endmntent.
* modules/mountlist (Depends-on): Add 'getline'.
2019-01-26 Bruno Haible <bruno@clisp.org>
localename tests: Fix test failure on Android.
* modules/localename-tests (Depends-on): Add 'setlocale'.
2019-01-26 Bruno Haible <bruno@clisp.org>
mountlist: Port better to Android.
* lib/mountlist.c (MOUNTED): Redefine on Android.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Redefine MOUNTED on
Android.
2019-01-26 Bruno Haible <bruno@clisp.org>
striconveh: Fix use of uninitialized iconv_t.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/archive/html/bug-libunistring/2019-01/msg00000.html>.
* lib/striconveh.c (iconveh_open): Correct the iconv_close argument.
2019-01-26 Bruno Haible <bruno@clisp.org>
nonblocking-socket-tests: Fix test failure on Android 4.3.
* tests/test-nonblocking-socket.h (SOCKET_HAS_LARGE_BUFFER): Define to 1
also on Android.
2019-01-26 Bruno Haible <bruno@clisp.org>
sh-filename: Add support for Android 4.3.
* m4/sh-filename.m4 (gl_SH_FILENAME): Set to "sh" on Android.
2019-01-26 Bruno Haible <bruno@clisp.org>
ptsname_r: Work around bug on Android 4.3.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Define
HAVE_ESSENTIALLY_WORKING_PTSNAME_R. Test whether the return value is
correct.
* lib/ptsname_r.c (__ptsname_r): If HAVE_ESSENTIALLY_WORKING_PTSNAME_R
is defined, just fix the return value.
* doc/glibc-functions/ptsname_r.texi: Mention the Android bug. Reword:
The behaviour of musl libc is nothing to be "fixed", since it is
compliant with the next POSIX standard.
2019-01-26 Bruno Haible <bruno@clisp.org>
ttyname_r: Work around bug on Android 4.3.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether ttyname_r is a stub.
* lib/ttyname_r.c (ttyname_r): Implement for Android.
* doc/posix-functions/ttyname_r.texi: Mention the Android bug.
* doc/posix-functions/ttyname.texi: Likewise.
2019-01-25 Bruno Haible <bruno@clisp.org>
getprogname: Port to Android 4.3.
* lib/getprogname.c (getprogname): On Android, take only the last
component of __progname.
2019-01-25 Bruno Haible <bruno@clisp.org>
wcrtomb: Work around bug on Android 4.3.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Test also whether wcrtomb works in
the C locale.
* lib/wcrtomb.c (wcrtomb): Provide alternate implementation for Android,
which does not have the 'wctomb' function.
* doc/posix-functions/wcrtomb.texi: Mention the Android bug.
* tests/test-wcrtomb.c (main): Accept argument '5'.
* tests/test-wcrtomb.sh: Add tests in the POSIX locale.
2019-01-25 Bruno Haible <bruno@clisp.org>
setlocale: Work around bug on Android 4.3.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Test whether setlocale supports
the "C" locale.
* lib/setlocale.c (setlocale_unixlike): New wrapper for Android.
* doc/posix-functions/setlocale.texi: Mention the Android bug.
2019-01-24 Bruno Haible <bruno@clisp.org>
memchr: Work around bug on Android <= 5.0.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Add test against the Android bug.
* doc/posix-functions/memchr.texi: Mention the Android bug.
2019-01-24 Bruno Haible <bruno@clisp.org>
random: Fix compilation error on Android 4.3.
* lib/stdlib.in.h (random, srandom): Test also REPLACE_RANDOM.
(initstate): Test REPLACE_INITSTATE and HAVE_INITSTATE, not HAVE_RANDOM.
(setstate): Test REPLACE_SETSTATE and HAVE_SETSTATE, not HAVE_RANDOM.
* m4/random.m4 (gl_FUNC_RANDOM): Set HAVE_INITSTATE, HAVE_SETSTATE,
REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_INITSTATE,
HAVE_SETSTATE, REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE.
* modules/stdlib (Makefile.am): Substitute HAVE_INITSTATE, HAVE_SETSTATE,
REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE.
* modules/random (Depends-on, configure.ac): Test also REPLACE_RANDOM,
REPLACE_INITSTATE, REPLACE_SETSTATE.
* doc/posix-functions/random.texi: Correct the description of the
situation on Android.
* doc/posix-functions/srandom.texi: Likewise.
* doc/posix-functions/rand.texi: Likewise.
* doc/posix-functions/srand.texi: Likewise.
2019-01-24 Bruno Haible <bruno@clisp.org>
mbtowc: Fix compilation error on Android 4.3.
* lib/stdlib.in.h (mbtowc): Test also HAVE_MBTOWC.
* m4/mbtowc.m4 (gl_FUNC_MBTOWC): Test whether mbtowc exists. Set
HAVE_MBTOWC.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether mbtowc is declared.
(gl_STDLIB_H_DEFAULTS): Initialize HAVE_MBTOWC.
* modules/stdlib (Makefile.am): Substitute HAVE_MBTOWC.
* modules/mbtowc (Depends-on, configure.ac): Test also HAVE_MBTOWC.
* doc/posix-functions/mbtowc.texi: Mention the change.
2019-01-24 Bruno Haible <bruno@clisp.org>
fdatasync: Fix compilation error on Android 4.3.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): On platforms other than Solaris,
test whether fdatasync() exists.
2019-01-24 Bruno Haible <bruno@clisp.org>
unlinkat: Fix compilation error on Android 4.3.
* lib/unistd.in.h: Include <fcntl.h> when module 'unlinkat' is in use
also on Android.
* doc/posix-functions/unlinkat.texi: Mention the issue.
2019-01-24 Bruno Haible <bruno@clisp.org>
renameat: Fix compilation error on Android 4.3.
* lib/stdio.in.h: Include <sys/stat.h> when module 'renameat' is in use.
* doc/posix-functions/renameat.texi: Mention the issue.
2019-01-24 Bruno Haible <bruno@clisp.org>
fchownat: Fix compilation error on Android 4.3.
* lib/unistd.in.h: Include <sys/stat.h> when module 'fchownat' is in
use.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG,
gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Include also <sys/stat.h>.
* doc/posix-functions/fchownat.texi: Mention the issue.
2019-01-23 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support running testdirs on Android.
* build-aux/test-driver.diff: New file.
* gnulib-tool (func_create_testdir, func_create_megatestdir): Patch
build-aux/test-driver after running automake.
2019-01-23 Akim Demaille <akim@lrde.epita.fr>
relocatable-prog: avoid warnings from Automake
* modules/relocatable-prog: Don't declare PHONY dependencies in
Automake conditionals.
2019-01-23 Akim Demaille <akim@lrde.epita.fr>
array-list: Pacify warnings about unused arguments (-Wunused-parameter).
* lib/gl_array_list.c (gl_array_iterator_free): "Use" the argument.
2019-01-23 Bruno Haible <bruno@clisp.org>
threadlib: Revert commit from 2018-06-25. We now have a better fix.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Don't attempt to defeat a
preceding -Wl,--as-needed option. Don't check whether the linker
supports --as-needed/--no-as-needed and --push-state/--pop-state.
2019-01-23 Bruno Haible <bruno@clisp.org>
thread: Force linking with -lpthread, even when --as-needed is in use.
Reported by Richard W.M. Jones <rjones@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-01/msg00123.html>.
* lib/glthread/thread.h (pthread_create): Don't declare weak.
2019-01-23 Akim Demaille <akim.demaille@gmail.com>
Bruno Haible <bruno@clisp.org>
relocatable: avoid compiler warnings (-Wshadow)
* lib/relocatable.c (compute_curr_prefix): Rename local variables
to avoid name collisions with global variables.
2019-01-22 Bruno Haible <bruno@clisp.org>
vasnprintf: Don't use %n on Android.
Reported and fix suggested by Hugo Beauzée-Luyssen <hugo@beauzee.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-12/msg00123.html>.
* lib/vasnprintf.c (VASNPRINTF): Don’t use %n on Android.
2019-01-22 Bruno Haible <bruno@clisp.org>
*printf: Support cross-compilation to Android.
* m4/printf.m4: Add cross-compilation guesses for Android.
2019-01-21 Bruno Haible <bruno@clisp.org>
diacrit: Mark deprecated.
* modules/diacrit (Status, Notice): Mark as deprecated.
* NEWS: Mention it.
2019-01-20 Bruno Haible <bruno@clisp.org>
rintl: Override broken implementation on NetBSD.
* lib/math.in.h (rintl): Test also REPLACE_RINTL.
* m4/rintl.m4 (gl_FUNC_RINTL): Add test for negative arguments. Set
REPLACE_RINTL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_RINTL.
* modules/math (Makefile.in): Substitute REPLACE_RINTL.
* modules/rintl (Depends-on, configure.ac): Test REPLACE_RINTL.
* doc/posix-functions/rintl.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
log10l: Work around inaccurate implementation on NetBSD.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Add test for a certain accuracy.
* lib/log10l.c: Comment out too simplistic override.
* doc/posix-functions/log10l.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
logl: Work around inaccurate implementation on NetBSD.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Add test for a certain accuracy.
* lib/logl.c: Comment out unused code.
* doc/posix-functions/logl.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
expm1l: Work around inaccurate implementation on NetBSD.
* lib/math.in.h (expm1l): Test also REPLACE_EXPM1L.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Add test for a certain accuracy. Set
REPLACE_EXPM1L.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1L.
* modules/math (Makefile.in): Substitute REPLACE_EXPM1L.
* modules/expm1l (Depends-on, configure.ac): Test REPLACE_EXPM1L.
* doc/posix-functions/expm1l.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
expl: Work around inaccurate implementation on NetBSD.
* lib/math.in.h (expl): Test also REPLACE_EXPL.
* m4/expl.m4 (gl_FUNC_EXPL): Add test for a certain accuracy. Set
REPLACE_EXPL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPL.
* modules/math (Makefile.in): Substitute REPLACE_EXPL.
* modules/expl (Depends-on, configure.ac): Test REPLACE_EXPL.
* doc/posix-functions/expl.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
exp2l: Work around inaccurate implementation on NetBSD.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Add test for a certain accuracy.
* doc/posix-functions/exp2l.texi: Mention the NetBSD bug.
2019-01-20 Bruno Haible <bruno@clisp.org>
floor, floorl: Avoid autoconf warnings.
* modules/floor (configure.ac): Use AC_REQUIRE.
* modules/floorl (configure.ac): Likewise.
2019-01-20 Bruno Haible <bruno@clisp.org>
Defeat current GCC optimizations in math autoconf tests.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Mark function pointer as 'volatile'.
* m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise.
* m4/expm1.m4 (gl_FUNC_EXPM1): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/fmod.m4 (gl_FUNC_FMOD): Likewise.
* m4/fmodf.m4 (gl_FUNC_FMODF): Likewise.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise.
* m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Likewise.
* m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Likewise.
* m4/log.m4 (gl_FUNC_LOG): Likewise.
* m4/logf.m4 (gl_FUNC_LOGF): Likewise.
* m4/log10.m4 (gl_FUNC_LOG10): Likewise.
* m4/log10f.m4 (gl_FUNC_LOG10F): Likewise.
* m4/log1p.m4 (gl_FUNC_LOG1P): Likewise.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise.
* m4/log2.m4 (gl_FUNC_LOG2): Likewise.
* m4/log2f.m4 (gl_FUNC_LOG2F): Likewise.
* m4/modf.m4 (gl_FUNC_MODF): Likewise.
* m4/modff.m4 (gl_FUNC_MODFF): Likewise.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
2019-01-19 Pádraig Brady <P@draigBrady.com>
gettext: support disabling use of VLAs
* lib/gettext.h: Disable use of VLAs if GNULIB_NO_VLA is defined
2019-01-17 KO Myung-Hun <komh78@gmail.com>
sys_stat: Fix 'implicit declaration of function' warning on OS/2 kLIBC.
* lib/sys_stat.in.h [kLIBC]: Include <unistd.h>.
2019-01-17 KO Myung-Hun <komh78@gmail.com>
fcntl: Fix syntax error (regression from 2018-10-05).
* lib/fcntl.c (klibc_fcntl): Remove mis-placed ';'.
2019-01-13 Akim Demaille <akim@lrde.epita.fr>
relocatable: improve documentation.
* doc/relocatable-maint.texi (Supporting Relocation): For
substitutions performed by config.status, we need more variables
(for instance datarootdir defaults to '${prefix}/share' so we need
prefix).
2019-01-13 Akim Demaille <akim@lrde.epita.fr>
backup: update dependencies
* modules/backup-rename (Depends-on): It now depends on opendirat
instead of opendir. It also uses stdint, and xalloc-oversized.
But no longer dirfd.
* modules/backupfile (Depends-on): Add xalloc-oversized.
2019-01-13 Bruno Haible <bruno@clisp.org>
getcwd: Fix test failure when building on a Linux 9p file system.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): On Linux, treat error
EINVAL from mkdir like ENAMETOOLONG.
* tests/test-getcwd.c (test_long_name): Likewise.
2019-01-12 Tim Rühsen <tim.ruehsen@gmx.de>
Fix typos found by codespell.
* lib/*.[hc]: Fix typos in comments.
* pygnulib/*.py: Fix typos in error messages and comments.
2019-01-12 Bruno Haible <bruno@clisp.org>
doc: Fix documentation about container data types.
Reported by Werner Lemberg <wl@gnu.org>.
* doc/containers.texi (Container data types): Fix typo.
2019-01-10 Bruno Haible <bruno@clisp.org>
verify: Enable _GL_HAVE_STATIC_ASSERT for recent G++ versions.
Reported by Reuben Thomas <rrt@sc3d.org>.
* lib/verify.h (_GL_HAVE_STATIC_ASSERT): Define for g++ versions >= 6.
2019-01-06 Bruno Haible <bruno@clisp.org>
maintainer-makefile: Make the configure.ac section optional.
* top/maint.mk (GREP, SED): Define if not defined.
2019-01-06 Bruno Haible <bruno@clisp.org>
localename: Assume setlocale function.
* lib/localename.c (gl_locale_name_posix): Assume setlocale exists.
* m4/localename.m4 (gl_LOCALENAME): Don't test whether setlocale exists.
2019-01-06 Bruno Haible <bruno@clisp.org>
doc: Add documentation about container data types.
* doc/containers.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2019-01-06 Bruno Haible <bruno@clisp.org>
doc: Update documentation about 'progname' module.
* doc/progname.texi: Rename from doc/error.texi. Change node name and
title. Rewrite.
* doc/gnulib.texi (Particular Modules): Update.
2019-01-06 Bruno Haible <bruno@clisp.org>
doc: Document the xstdopen and *-safer modules.
* doc/xstdopen.texi: New file.
* doc/gnulib.texi (Particular Modules): Include it.
2019-01-06 Bruno Haible <bruno@clisp.org>
xstdopen: Add tests.
* tests/test-xstdopen.c: New file.
* tests/test-xstdopen.sh: New file.
* modules/xstdopen-tests: New file.
xstdopen: New module.
* lib/xstdopen.h: New file.
* lib/xstdopen.c: New file.
* modules/xstdopen: New file.
2019-01-06 Bruno Haible <bruno@clisp.org>
stdopen: Fix compilation error with IRIX cc.
* lib/stdopen.c (stdopen): Do not use C99-style decl in loop.
2019-01-05 Paul Eggert <eggert@cs.ucla.edu>
xfreopen need not include stdio--.h
* lib/xfreopen.c: Do not include stdio--.h.
xfreopen need not depend on freopen-safer
* modules/xfreopen (Depends-on):
Depend on freopen, not freopen-safer.
stdopen: modernize and simplify
* lib/stdopen.c: Update copyright date
Do not include sys/types.h; no longer needed these days.
(stdopen): Use C99-style decl in loop. Return int errno
value, rather than just a bool. Do not worry about fd mismatches,
since the caller cares only if 0, 1, 2 are occupied.
* lib/stdopen.h: No need to include <stdbool.h>.
* m4/stdopen.m4: Remove.
* modules/stdopen: New file.
stdopen: copy from last use in coreutils
* lib/stdopen.c, lib/stdopen.h, m4/stdopen.m4:
New files, taken from their last commit in coreutils
2007-07-23T12:35:58Z!jim@meyering.net
71aa3ea88084d17bcb4fc1031ad7b66f8647115e.
2019-01-05 Bruno Haible <bruno@clisp.org>
argp: Don't pass an invalid argument to dgettext().
Reported by He X <xw897002528@gmail.com>.
* lib/argp-help.c (print_header, argp_doc): Don't pass a NULL doc to
dgettext().
2019-01-05 Bruno Haible <bruno@clisp.org>
argp: Don't pass an invalid argument to dgettext().
Reported by He X <xw897002528@gmail.com>.
* lib/argp.h (struct argp): Clarify that the args_doc field may be NULL.
* lib/argp-help.c (argp_args_usage): Don't pass a NULL args_doc to
dgettext().
2018-12-22 Paul Eggert <eggert@cs.ucla.edu>
stdioext: port to newer 32-bit Android
Problem reported by Tom Yan in:
https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00014.html
* lib/stdio-impl.h (_gl_FILE_flags_t) [__ANDROID__]: New macro.
(fp_) [__ANDROID__]: Use it.
2019-01-04 Bruno Haible <bruno@clisp.org>
lock: Fix link error with --enable-threads=pth.
* lib/glthread/lock.h (pth_cond_init, pth_cond_await, pth_cond_notify):
Mark as weak.
2019-01-04 Bruno Haible <bruno@clisp.org>
Fix link errors in unit tests.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
* modules/bitset-tests (Makefile.am): Link test-bitset against libintl.
* modules/array-map-tests (Makefile.am): Link test-array_map against
libintl.
* modules/array-set-tests (Makefile.am): Link test-array_set against
libintl.
* modules/hash-map-tests (Makefile.am): Link test-hash_map against
libintl.
* modules/hash-set-tests (Makefile.am): Link test-hash_set against
libintl.
* modules/linkedhash-map-tests (Makefile.am): Link test-linkedhash_map
against libintl.
* modules/linkedhash-set-tests (Makefile.am): Link test-linkedhash_set
against libintl.
2019-01-04 Bruno Haible <bruno@clisp.org>
Fix incorrect 'Link' sections.
* modules/regex (Link): Mention the link requirement of module 'lock'.
* modules/regex-tests (Makefile.am): Don't use LIB_PTHREAD.
2019-01-04 Bruno Haible <bruno@clisp.org>
Fix some 'Link' sections.
* modules/c-stack (Link): Add link directive from the 'gettext-h'
dependency.
* modules/getaddrinfo (Link): Likewise.
2019-01-04 Bruno Haible <bruno@clisp.org>
Remove redundant 'Link' sections.
* modules/canon-host (Link): Remove section.
* modules/timevar (Link): Likewise.
2019-01-04 Bruno Haible <bruno@clisp.org>
Remove incorrect 'Link' sections.
* modules/acl (Link): Remove section. Use combined 'Link' sections from
the dependencies instead.
* modules/crypto/md5 (Link): Likewise.
* modules/crypto/sha1 (Link): Likewise.
* modules/crypto/sha256 (Link): Likewise.
* modules/crypto/sha512 (Link): Likewise.
* modules/faccessat (Link): Likewise.
* modules/fdutimensat (Link): Likewise.
* modules/iconv_open-utf (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/qacl (Link): Likewise.
* modules/unicodeio (Link): Likewise.
* modules/utimecmp (Link): Likewise.
* modules/utimensat (Link): Likewise.
* modules/xstriconv (Link): Likewise.
* modules/xstriconveh (Link): Likewise.
2019-01-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: New option --extract-recursive-link-directive.
* gnulib-tool (func_usage): Document the new options
--extract-recursive-dependencies, --extract-recursive-link-directive.
(func_verify_module): Document output variables.
(func_get_dependencies_recursively): New function.
(func_get_link_directive_recursively): New function.
Use them to implement the new options
--extract-recursive-dependencies, --extract-recursive-link-directive.
* doc/gnulib-tool.texi (Link-time requirements): New section.
2019-01-04 Bruno Haible <bruno@clisp.org>
Clarify meaning of 'Link' section in module description.
* doc/gnulib.texi (Module description): Clarify the meaning of the
'Link' section versus the one of the dependencies.
* NEWS: Mention the change.
2019-01-04 Bruno Haible <bruno@clisp.org>
pselect: Fix module description.
* modules/pselect (Link): Put one link option per line.
2019-01-04 Bruno Haible <bruno@clisp.org>
cosl: Fix module description.
* modules/cosl (Link): Fix typo.
* modules/mathl (configure.ac): Likewise.
2019-01-04 Bruno Haible <bruno@clisp.org>
c-xvasprintf: Fix module dependencies.
* modules/c-xvasprintf (Depends-on): Add 'xalloc-die'.
2019-01-04 Akim Demaille <akim@lrde.epita.fr>
bootstrap: die when some submodules are not initialized
* build-aux/bootstrap: Make sure all submodules are initialized.
2019-01-04 Bruno Haible <bruno@clisp.org>
bitsetv: Fix module dependencies.
* lib/bitsetv.c: Include xalloc.h.
* modules/bitsetv (Depends-on): Add 'xalloc'.
2019-01-04 Bruno Haible <bruno@clisp.org>
xmemdup0: Remove redundant code.
* lib/xmemdup0.h (xalloc_die): Remove declaration.
2019-01-04 Bruno Haible <bruno@clisp.org>
backupfile: Fix module dependencies.
* modules/backupfile (Depends-on): Add 'xalloc'.
2019-01-03 Paul Eggert <eggert@cs.ucla.edu>
bitset, crypto/gc: fix conflicts with Solaris 11
* lib/bitset.h (_GL_BITSET_H): Rename from _BITSET_H, to
avoid clash with Solaris 11 <sys/bitset.h>.
* lib/gc.h (_GL_GC_H): Rename from GC_H, to avoid clash
with Solaris 11 <xorg/gc.h>.
2019-01-04 Bruno Haible <bruno@clisp.org>
safe-read, safe-write: Fix conflict with Illumos-Joyent <sys/limits.h>.
Reported by Andy Fiddaman <andy@omniosce.org>.
* lib/sys-limits.h: Add a '_GL' prefix to the guard symbol.
2019-01-03 Eric Blake <eblake@redhat.com>
maintainer-makefile: fix typo in previous patch
* top/maint.mk (_sc_search_regexp): Fix my accidental corruption
of Roman's work.
2019-01-02 Roman Bolshakov <r.bolshakov@yadro.com> (tiny change)
maintainer-makefile: prefer $(GREP) over grep
* modules/maintainer-makefile (configure.ac): Ensure $(GREP) is
defined.
* top/maint.mk: Use it everywhere.
maintainer-makefile: split long argument lines
* top/maint.mk: Use xargs to split $(VC_LIST_EXCEPT) usage where
it would be too long for exec limits on BSD.
2018-12-27 Paul Eggert <eggert@cs.ucla.edu>
mkfifo: bring back HAVE_MKFIFO macro
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): #define HAVE_MKFIFO as needed.
Problem reported by Andrew Janke in:
https://lists.gnu.org/r/bug-gnulib/2018-12/msg00147.html
2018-12-21 Bruno Haible <bruno@clisp.org>
Assume Autoconf >= 2.63.
* modules/stdarg (configure.ac-early): Remove comment about Autoconf
versions < 2.60.
2018-12-21 Bruno Haible <bruno@clisp.org>
memcmp: Mention the clang bug.
* tests/test-memcmp.c: Add comment about a known test failure.
* doc/posix-functions/memcmp.texi: Mention the clang bug.
2018-12-20 Jim Meyering <meyering@fb.com>
revert v0.1-2213-gae4b73e28 and part of v0.1-2281-g95cd86dd7
v0.1-2213-gae4b73e28 caused a regression in grep-3.2 (no match):
echo '123-x'|LC_ALL=C grep -E '.\bx'
The goal is to revert the first, but reverting it requires to restore
the function deleted in the second. I ran this to restore the deleted
function:
git show v0.1-2281-g95cd86dd7 lib/dfa.c \
| perl -0777 -pe 's/^@@[^\n]*dfaan.*//ms' \
| patch -R -p1
* lib/dfa.c (charclass_context): Restore deleted function.
Reverting the primary commit removes this change:
dfa: Simplify a building state
* lib/dfa.c (build_state): Simplify a building state.
2018-12-20 Paul Eggert <eggert@cs.ucla.edu>
version-etc: allow zero authors
* lib/version-etc.c (version_etc_arn): If no authors are given,
omit authorship info instead of dumping core.
2018-12-19 Bruno Haible <bruno@clisp.org>
lchown tests: Be more permissive regarding errno values.
Reported by Ivan Zakharyaschev <imz@altlinux.org>.
* tests/test-lchown.h (test_lchown): Recognize EOPNOTSUPP as an
alternative to ENOSYS.
* modules/lchown-tests (Depends-on): Add 'errno'.
* modules/fchownat-tests (Depends-on): Likewise.
2018-12-18 Bruno Haible <bruno@clisp.org>
duplocale: Avoid test failure on AIX 7.
* modules/duplocale-tests (Files): Add m4/intl-thread-locale.m4.
(configure.ac): Invoke gt_FUNC_USELOCALE.
* tests/test-duplocale.c: Test HAVE_WORKING_USELOCALE instead of
HAVE_USELOCALE. Assume that nl_langinfo_l only works when uselocale
works.
2018-12-18 Bruno Haible <bruno@clisp.org>
localename: Fix test failure on AIX 7.
Reported by Assaf Gordon in
<https://lists.gnu.org/archive/html/sed-devel/2018-12/msg00019.html>.
* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): New macro.
(gt_INTL_THREAD_LOCALE_NAME): Invoke it. Test gt_cv_func_uselocale_works
instead of ac_cv_func_uselocale.
* lib/localename.c: Test HAVE_WORKING_USELOCALE instead of
HAVE_USELOCALE.
* lib/localename-table.h: Likewise.
* lib/localename-table.c: Likewise.
* tests/test-localename.c: Likewise.
* doc/posix-functions/uselocale.texi: Mention the AIX problem.
2018-12-18 Bruno Haible <bruno@clisp.org>
localename: Update comments regarding Cygwin.
* lib/localename.c: Update comment.
* doc/posix-functions/uselocale.texi: Update platforms list.
* doc/posix-functions/newlocale.texi: Likewise.
* doc/posix-functions/duplocale.texi: Likewise.
* doc/posix-functions/freelocale.texi: Likewise.
2018-12-16 Bruno Haible <bruno@clisp.org>
c-stack: Fix for Linux/sparc.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Set
ac_cv_sys_xsi_stack_overflow_heuristic to 'no' on Linux/sparc.
2018-12-16 Bruno Haible <bruno@clisp.org>
localename: Avoid test failure on some glibc systems.
* tests/test-localename.c (test_locale_name, test_locale_name_posix):
Unset environment variables that might disturb the first setlocale call,
and verify that this setlocale call succeeds.
2018-12-16 Assaf Gordon <assafgordon@gmail.com>
random: Fix build error on native Windows (regression from 2018-06-21).
* lib/random.c (__srandom, __initstate, __setstate, __random,
__srandom_r, __initstate_r, __setstate_r, __random_r) [!_LIBC]: Redirect
to the symbols without '__' prefix.
2018-12-16 Bruno Haible <bruno@clisp.org>
obstack, libc-config: Support HP-UX cc in C99 mode.
* lib/obstack.h (__FLEXIBLE_ARRAY_MEMBER): Treat HP-UX cc as a pre-C99
compiler, even when in C99 mode.
* lib/cdefs.h (__flexarr): Likewise.
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Update comment.
2018-12-16 Bruno Haible <bruno@clisp.org>
localename: Fix test failure on OpenBSD >= 6.2.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Test for fake
locale system. Define HAVE_FAKE_LOCALES in this case.
* lib/localename.c (HAVE_GOOD_USELOCALE): New macro. Use it instead of
HAVE_USELOCALE.
* tests/test-localename.c (HAVE_GOOD_USELOCALE): New macro. Use it
instead of HAVE_NEWLOCALE && HAVE_USELOCALE.
* doc/posix-functions/uselocale.texi: Mention OpenBSD problem. Update
platforms list.
* doc/posix-functions/newlocale.texi: Likewise.
* doc/posix-functions/duplocale.texi: Update platforms list.
* doc/posix-functions/freelocale.texi: Likewise.
2018-12-16 Bruno Haible <bruno@clisp.org>
duplocale tests: Re-enable the test on platforms without <monetary.h>.
* tests/test-duplocale.c: Use more fine-grained #ifs to re-enable most
of the test, on platforms without <monetary.h>.
2018-12-16 Bruno Haible <bruno@clisp.org>
localename: Update comments.
* lib/localename.c (HAVE_USELOCALE): Update list of platforms.
2018-12-15 Jim Meyering <meyering@fb.com>
regex: fix indentation
* m4/regex.m4 (gl_REGEX): Indent with spaces, not TABs.
2018-12-15 Bruno Haible <bruno@clisp.org>
openat-safer tests: Avoid test failure on NetBSD 8.
* tests/test-openat-safer.c (main): Execute a Linux specific test only
on Linux.
2018-12-15 Jim Meyering <meyering@fb.com>
regex: work around a bug in glibc-2.27 and prior
* m4/regex.m4 (gl_REGEX): Reject any system regexp that gets a failed
assertion for /0|()0|\1|0/.
* tests/test-regex.c (main): Add the same test here.
2018-12-15 Bruno Haible <bruno@clisp.org>
localename: Fix use of uninitialized shell variable.
* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Initialize
gt_cv_locale_solaris114 always before use. Remove assignment without
effect.
2018-12-15 Bruno Haible <bruno@clisp.org>
dfa tests: Avoid test failure on Alpine Linux.
* tests/dfa-match.sh (timeout_10): Accommodate the BusyBox 'timeout'
command found on Alpine Linux.
2018-12-15 Jim Meyering <meyering@fb.com>
dfa: avoid new warnings from gcc
These would prevent building with -Werror and a Dec snapshot of gcc.
* lib/dfa.c (dfaanalyze): Avoid shadowing warnings for "pos".
Rename each inner instance to "p".
(charclass_context): Remove unused static function.
2018-12-14 Paul Eggert <eggert@cs.ucla.edu>
mkdir-p: improve diagnostic for FUSE mounts
Problem reported by Niklas Hambüchen in:
https://lists.gnu.org/r/bug-gnulib/2018-12/msg00074.html
* lib/mkdir-p.c (make_dir_parents): In diagnostic, prefer stat
errno to mkdir errno if the stat errno is likely more interesting.
2018-12-14 Bruno Haible <bruno@clisp.org>
hash-map: Add tests.
* tests/test-hash_map.c: New file.
* modules/hash-map-tests: New file.
linkedhash-map: Add tests.
* tests/test-linkedhash_map.c: New file.
* modules/linkedhash-map-tests: New file.
array-map: Add tests.
* tests/test-array_map.c: New file.
* modules/array-map-tests: New file.
xmap: New module.
* lib/gl_xmap.h: New file.
* lib/gl_xmap.c: New file.
* modules/xmap: New file.
hash-map: New module.
* lib/gl_hash_map.h: New file.
* lib/gl_hash_map.c: New file.
* modules/hash-map: New file.
linkedhash-map: New module.
* lib/gl_linkedhash_map.h: New file.
* lib/gl_linkedhash_map.c: New file.
* lib/gl_anyhash1.h: Update comments.
* lib/gl_anyhash2.h: Likewise.
* modules/linkedhash-map: New file.
array-map: New module.
* lib/gl_array_map.h: New file.
* lib/gl_array_map.c: New file.
* modules/array-map: New file.
map: New module.
* lib/gl_map.h: New file.
* lib/gl_map.c: New file.
* lib/gl_omap.h (gl_mapkey_dispose_fn, gl_mapvalue_dispose_fn): Avoid
conflict with gl_map.h.
* modules/map: New file.
2018-12-13 Bruno Haible <bruno@clisp.org>
select tests: Avoid test failure on Cygwin.
* tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE.
2018-12-13 Bruno Haible <bruno@clisp.org>
localtime-buffer: Avoid endless recursion in localtime and gmtime.
* lib/localtime-buffer.c: Undefine localtime and gmtime before use.
2018-12-13 Bruno Haible <bruno@clisp.org>
localeconv tests: Avoid test failure on Cygwin.
* tests/test-localeconv.c (main): On Cygwin, skip the 'grouping' and
'mon_grouping' tests.
2018-12-11 Bruno Haible <bruno@clisp.org>
omap: Don't dispose the old value when the function returns it.
* lib/gl_array_omap.c (gl_array_remove_at): Don't invoke the vdispose_fn
here.
* lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Likewise.
* lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Likewise.
* lib/gl_omap.h (gl_omap_nx_put, gl_omap_remove): Invoke the vdispose_fn
here.
array-omap, avltree-omap, rbtree-omap: Tweak style.
* lib/gl_anytree_omap.h (gl_tree_nx_getput): Return 1 or 0, not true or
false.
* lib/gl_array_omap.c (gl_array_nx_getput): Likewise.
rbtree-omap: Add tests.
* tests/test-rbtree_omap.c: New file.
* modules/rbtree-omap-tests: New file.
avltree-omap: Add tests.
* tests/test-avltree_omap.c: New file.
* modules/avltree-omap-tests: New file.
array-omap: Add tests.
* tests/test-array_omap.c: New file.
* modules/array-omap-tests: New file.
xomap: New module.
* lib/gl_xomap.h: New file.
* lib/gl_xomap.c: New file.
* modules/xomap: New file.
rbtree-omap: New module.
* lib/gl_rbtree_omap.h: New file.
* lib/gl_rbtree_omap.c: New file.
* lib/gl_rbtree_ordered.h: Code moved to here from lib/gl_rbtree_oset.c.
Parameterize.
* lib/gl_rbtree_oset.c: Include gl_rbtree_ordered.h.
* modules/rbtree-omap: New file.
* modules/rbtree-oset (Files): Add lib/gl_rbtree_ordered.h.
(Makefile.am): Add gl_rbtree_ordered.h to lib_SOURCES.
avltree-omap: New module.
* lib/gl_avltree_omap.h: New file.
* lib/gl_avltree_omap.c: New file.
* lib/gl_avltree_ordered.h: Code moved to here from
lib/gl_avltree_oset.c. Parameterize.
* lib/gl_avltree_oset.c: Include gl_avltree_ordered.h.
* lib/gl_anytree_omap.h: New file.
* modules/avltree-omap: New file.
* modules/avltree-oset (Files): Add lib/gl_avltree_ordered.h.
(Makefile.am): Add gl_avltree_ordered.h to lib_SOURCES.
array-omap: New module.
* lib/gl_array_omap.h: New file.
* lib/gl_array_omap.c: New file.
* modules/array-omap: New file.
omap: New module.
* lib/gl_omap.h: New file.
* lib/gl_omap.c: New file.
* modules/omap: New file.
2018-12-11 Bruno Haible <bruno@clisp.org>
hash-set, linkedhash-set: Reduce code duplication.
* lib/gl_anyhash1.h: Rename from lib/gl_anyhash_list1.h and
lib/gl_anyhash_set1.h.
* lib/gl_anyhash2.h: Rename from lib/gl_anyhash_list2.h and
lib/gl_anyhash_set2.h. Parameterize.
(hash_resize_after_add): New function, from lib/gl_anyhash_set2.h.
* lib/gl_anytreehash_list1.h (hash_resize_after_add): Remove function.
* lib/gl_avltreehash_list.c: Include gl_anyhash1.h instead of
gl_anyhash_list1.h. Include gl_anyhash2.h instead of gl_anyhash_list2.h.
* lib/gl_rbtreehash_list.c: Likewise.
* lib/gl_linkedhash_list.c: Likewise.
(hash_resize_after_add): Remove function.
* lib/gl_linkedhash_set.c: Include gl_anyhash1.h instead of
gl_anyhash_set1.h. Include gl_anyhash2.h instead of gl_anyhash_set2.h.
* gl_hash_set.c: Likewise.
* modules/avltreehash-list (Files, Makefile.am): Update file list.
* modules/rbtreehash-list (Files, Makefile.am): Likewise.
* modules/linkedhash-list (Files, Makefile.am): Likewise.
* modules/linkedhash-set (Files, Makefile.am): Likewise.
* modules/hash-set (Files, Makefile.am): Likewise.
2018-12-11 Bruno Haible <bruno@clisp.org>
array-set: Optimize.
* lib/gl_array_set.c (gl_array_search, gl_array_remove): Test equals_fn
outside the loop, not inside the loop.
2018-12-11 Bruno Haible <bruno@clisp.org>
times: Fix tests.
* tests/test-times.c (doublecmp): Implement a total order.
2018-12-11 Bruno Haible <bruno@clisp.org>
array-set, linkedhash-set, hash-set: Fix tests.
* tests/test-array_set.c (cmp_objects_in_array): New function.
(check_equals): Use it.
* tests/test-hash_set.c: Likewise.
* tests/test-linkedhash_set.c: Likewise.
2018-12-08 Bruno Haible <bruno@clisp.org>
Fix comments.
* lib/gl_list.h (gl_list_free): Clarify what it does.
* lib/gl_oset.h (gl_oset_free): Likewise.
* lib/gl_set.h (gl_set_free): Likewise.
* lib/gl_anytree_oset.h (gl_tree_search_atleast): Fix typo in comment.
* lib/gl_array_oset.c (gl_array_search_atleast): Likewise.
* lib/gl_anyavltree_list1.h (MAXHEIGHT): Likewise.
* lib/gl_avltree_oset.c (MAXHEIGHT): Likewise.
2018-12-03 Bruno Haible <bruno@clisp.org>
hash-set: Add tests.
* tests/test-hash_set.c: New file.
* modules/hash-set-tests: New file.
linkedhash-set: Add tests.
* tests/test-linkedhash_set.c: New file.
* modules/linkedhash-set-tests: New file.
array-set: Add tests.
* tests/test-array_set.c: New file.
* modules/array-set-tests: New file.
xset: New module.
* lib/gl_xset.h: New file.
* lib/gl_xset.c: New file.
* modules/xset: New file.
hash-set: New module.
* lib/gl_hash_set.h: New file.
* lib/gl_hash_set.c: New file.
* modules/hash-set: New file.
linkedhash-set: New module.
* lib/gl_linkedhash_set.h: New file.
* lib/gl_linkedhash_set.c: New file.
* lib/gl_anyhash_set1.h: New file, based on lib/gl_anyhash_list1.h.
* lib/gl_anyhash_set2.h: New file, based on lib/gl_anyhash_list2.h.
* lib/gl_anyhash_primes.h: New file, extracted from
lib/gl_anyhash_list2.h.
* lib/gl_anyhash_list2.h: Include it.
(primes, next_prime): Remove definitions.
* modules/linkedhash-set: New file.
* modules/avltreehash-list (Files): Add lib/gl_anyhash_primes.h.
(Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES.
* modules/linkedhash-list (Files): Add lib/gl_anyhash_primes.h.
(Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES.
* modules/rbtreehash-list (Files): Add lib/gl_anyhash_primes.h.
(Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES.
array-set: New module.
* lib/gl_array_set.h: New file.
* lib/gl_array_set.c: New file.
* modules/array-set: New file.
set: New module.
* lib/gl_set.h: New file.
* lib/gl_set.c: New file.
* lib/gl_oset.h (gl_setelement_dispose_fn): Avoid conflict with
gl_set.h.
* modules/set: New file.
2018-12-07 Akim Demaille <akim@lrde.epita.fr>
bison: don't force the Yacc mode
Passing -y forces Bison into POSIX YACC mode. This includes reporting
errors when Bison features are used in the grammar file. Some of
these features (such as %expect) were flagged non-yacc recently. Most
of the time, -y is actually used to please Automake's ylwrap which
expects the output to be y.tab.c.
* m4/bison.m4 (gl_BISON): Use `-o y.tab.c` rather than `-y`.
2018-12-01 Bruno Haible <bruno@clisp.org>
gnupload: Document short options.
* build-aux/gnupload (usage): Document the short options.
2018-11-28 Ben Elliston <bje@gnu.org>
gnupload: Support option -h as alias of --help.
* build-aux/gnupload: Support -h.
2018-11-30 Paul Eggert <eggert@cs.ucla.edu>
memrchr: port better to clang
* lib/memrchr.c (__memrchr): Cast to void * instead of to
longword *, to pacify clang -Wcast-align (Bug#33544).
2018-11-29 Eric Blake <eblake@redhat.com>
docs: mention printf %m considerations
* doc/glibc-functions/asprintf.texi (asprintf): Document that %m
is not portable, and is easy enough to work around.
* doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise.
* doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise.
* doc/glibc-functions/vasprintf.texi (vasprintf): Likewise.
* doc/posix-functions/dprintf.texi (dprintf): Likewise.
* doc/posix-functions/fprintf.texi (fprintf): Likewise.
* doc/posix-functions/fwprintf.texi (fwprintf): Likewise.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/snprintf.texi (snprintf): Likewise.
* doc/posix-functions/sprintf.texi (sprintf): Likewise.
* doc/posix-functions/swprintf.texi (swprintf): Likewise.
* doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* doc/posix-functions/vsprintf.texi (vsprintf): Likewise.
* doc/posix-functions/vswprintf.texi (vswprintf): Likewise.
* doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
* doc/posix-functions/wprintf.texi (wprintf): Likewise.
2018-11-29 Akim Demaille <akim@lrde.epita.fr>
bitset: rename ebitset/expandable.* as tbitset/table.*
See
https://lists.gnu.org/archive/html/bug-gnulib/2018-11/msg00096.html.
* lib/bitset/expandable.h, lib/bitset/expandable.c: Rename as...
* lib/bitset/table.h, lib/bitset/table.c: these.
Rename all the ebitset* symbols as tbitset*.
Adjust dependencies.
2018-11-28 Akim Demaille <akim@lrde.epita.fr>
bitset: check the operations
* tests/test-bitset.c (bitset_random): New.
Use it.
* lib/bitset/expandable.c (ebitset_not): Fix typo.
2018-11-28 Akim Demaille <akim@lrde.epita.fr>
bitset: properly use false/true instead of 0/1 for Booleans
* lib/bitset/expandable.c, lib/bitset/vector.c: Use false/true, not
0/1, as Booleans.
2018-11-28 Akim Demaille <akim@lrde.epita.fr>
bitset: rename BITSET_VARRAY as BITSET_VECTOR
For consistency with the name of the file.
* doc/bitset.texi, lib/bitset.c, lib/bitset/base.h,
* lib/bitset/stats.c, lib/bitset/vector.c
(BITSET_VARRAY): Rename as...
(BITSET_VECTOR): this.
2018-11-28 Paul Eggert <eggert@cs.ucla.edu>
strerror_r-posix: memmove, not memcpy
* lib/strerror_r.c (safe_copy): Use memmove, not memcpy,
since the source and destination might overlap in the call
‘safe_copy (buf, buflen, strerror_r (errnum, buf, buflen))’.
Simplify.
2018-11-25 Akim Demaille <akim@lrde.epita.fr>
bitsetv: new module
* lib/bitsetv.c, lib/bitsetv.h, modules/bitsetv: New.
2018-11-25 Akim Demaille <akim@lrde.epita.fr>
bitset: add tests and doc
First stabs at providing a documentation and test for the bitset
module.
* doc/bitset.texi, modules/test-bitset, tests/bitset-tests.c: New.
2018-11-25 Akim Demaille <akim@lrde.epita.fr>
bitset: new module
* lib/bitset.c, lib/bitset.h, lib/bitset/array.c,
* lib/bitset/array.h, lib/bitset/base.h, lib/bitset/expandable.c,
* lib/bitset/expandable.h, lib/bitset/list.c, lib/bitset/list.h,
* lib/bitset/stats.c, lib/bitset/stats.h, lib/bitset/vector.c,
* lib/bitset/vector.h, modules/bitset:
New.
2018-11-23 Bruno Haible <bruno@clisp.org>
localename: Fix gettext test failures on mingw.
* lib/localename.c (gl_locale_name_posix): Convert the result of
gl_locale_name_environ to XPG syntax.
2018-11-23 Karl Berry <karl@freefriends.org>
* config/srclistvars.txt,
* config/srclist.txt: remove all gettext references;
the gettext maintainers will sync as needed.
2018-11-21 Paul Eggert <eggert@cs.ucla.edu>
mktime: add libc-config dependency
I missed this when we synced from glibc.
* modules/mktime (Depends-on): Add libc-config.
2018-11-13 Paul Eggert <eggert@cs.ucla.edu>
longlong: fix comment typo
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Fix typo.
2018-11-11 Bruno Haible <bruno@clisp.org>
havelib: Remove the need to include asm-underscore.m4.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): New macro.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Use it instead of
gl_HOST_CPU_C_ABI.
* modules/havelib (Files): Add host-cpu-c-abi.m4.
(Depends-on): Remove host-cpu-c-abi.
2018-11-03 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: simplify test for mktime failure
* lib/parse-datetime.y (mktime_ok): Simplify.
Remove args TZ and T; no longer needed. Callers changed.
posixtm: simplify test for mktime failure
* lib/posixtm.c (posixtime): Simplify.
nstrftime: simplify test for mktime failure
* lib/nstrftime.c (__strftime_internal): Simplify.
2018-11-02 Paul Eggert <eggert@cs.ucla.edu>
gnulib-common.m4: port _Noreturn to C++
Problem reported by Akim Demaille in:
https://lists.gnu.org/r/bug-bison/2018-10/msg00067.html
* m4/gnulib-common.m4 (gl_COMMON_BODY): If C++, use [[noreturn]].
Merge adjustments from _Noreturn.h and from glibc into the non-C++
version.
* lib/_Noreturn.h: Match gnulib-common.
2018-10-30 Bruno Haible <bruno@clisp.org>
gnu-make: Fix for NetBSD 8 'make'.
Reported by Reuben Thomas in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00135.html>.
* m4/gnu-make.m4 (gl_GNU_MAKE): Use a heuristic based on the --version
output, ignoring exit codes.
2018-10-28 Bernhard Voelker <mail@bernhard-voelker.de>
maintainer-makefile: fix syntax-check rule for "same.h"
* top/maint.mk (sc_prohibit_same_without_use): Adjust regex to check
for 'same_nameat', too.
2018-10-25 Paul Eggert <eggert@cs.ucla.edu>
havelib: fix nested ‘configure’ chatter
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Don’t nest
AC_CACHE_CHECK calls, which resulted in confusing output like
“checking for the common suffixes of directories in the library
search path... checking for 64-bit host... no lib,lib”.
backupfile: tweak for better code
* lib/backupfile.c: Sort include directives, and remove
unnecessary <limits.h> include.
(FALLTHROUGH): New macro, copied from other modules.
(backupfile_internal): Use it to avoid code duplication.
This lets GCC 8.2.1 generate better code by inlining the
call to check_extension.
2018-10-23 Paul Eggert <eggert@cs.ucla.edu>
backupfile: new dir_fd args
New module opendirat with code taken from fts.
Use this module to let backupfile use a directory file descriptor.
* NEWS: Document the incompatible change.
* lib/backup-find.c (find_backup_file_name):
* lib/backup-rename.c (backup_file_rename):
New arg DIR_FD.
* lib/backupfile.c: Include stdint.h, for SIZE_MAX.
(SIZE_MAX): Remove.
Include opendirat.h rather than dirent--.h.
(check_extension): New args DIR_FD and BASE_MAX. All callers changed.
(numbered_backup): New args DIR_FD and PNEW_FD. All callers changed.
(backupfile_internal): New arg DIR_FD. All callers changed.
* lib/fts.c: Include opendirat.h.
(opendirat): Move to opendirat.c.
* lib/opendirat.c, lib/opendirat.h, modules/opendirat: New files.
* modules/backupfile (Depends-on): Remove dirfd, opendir.
Add opendirat.
* modules/fts (Depends-on): Remove fdopendir, openat-safer.
Add opendirat.
2018-10-23 Bruno Haible <bruno@clisp.org>
localename: Simplify support for per-thread locales on Solaris 11.4.
* m4/intl-thread-locale.m4: Renamed from m4/intlsolaris.m4.
(gt_INTL_THREAD_LOCALE_NAME): Renamed from gt_INTL_SOLARIS. Define
HAVE_SOLARIS114_LOCALES instead of HAVE_NAMELESS_LOCALES.
* lib/localename.c: Handle HAVE_SOLARIS114_LOCALES through Solaris
specific code.
* lib/localename-table.h: Update comments.
* lib/localename-table.c: Update comments.
* m4/localename.m4 (gl_LOCALENAME): Require gt_INTL_THREAD_LOCALE_NAME.
Test for 'uselocale'. Don't invoke gt_INTL_SOLARIS.
* m4/intl.m4 (AM_INTL_SUBDIR): Require gt_INTL_THREAD_LOCALE_NAME. Test
for 'uselocale'. Set HAVE_NAMELESS_LOCALES.
(gt_INTL_SUBDIR_CORE): Don't invoke gt_INTL_SOLARIS. Don't set
HAVE_NAMELESS_LOCALES here.
* modules/localename (Files): Add m4/intl-thread-locale.m4. Remove
m4/intlsolaris.m4.
* modules/gettext (Files): Likewise.
2018-10-22 Bruno Haible <bruno@clisp.org>
std-gnu11: Support Autoconf versions < 2.64.
* m4/std-gnu11.m4 (AC_PROG_CC, AC_PROG_CXX): Use _AC_DO as fallback
when _AC_DO_LIMIT does not exist.
2018-10-22 Bruno Haible <bruno@clisp.org>
Assume Autoconf >= 2.63.
* DEPENDENCIES: Mention the requirement.
* gnulib-tool (DEFAULT_AUTOCONF_MINVERSION): Bump to 2.63.
(func_get_filelist): Don't list m4/onceonly.m4 any more.
* pygnulib/GLModuleSystem.py (getFiles): Likewise.
* m4/onceonly.m4: Remove file.
* m4/openmp.m4: Remove file.
* modules/openmp (Files): Remove m4/openmp.m4.
* m4/configmake.m4 (gl_CONFIGMAKE_PREP): Don't set datarootdir, docdir,
htmldir, dvidir, pdfdir, psdir, localedir.
* m4/po.m4 (AM_PO_SUBDIRS): Don't set localedir.
* m4/gnulib-common.m4 (m4_foreach_w): Remove fallback for
Autoconf < 2.60.
(AC_PROG_MKDIR_P): Remove definition for Autoconf < 2.62.
(AC_PROG_SED): Remove fallback for Autoconf < 2.60.
* m4/errno_h.m4 (AC_COMPUTE_INT): Remove fallback for Autoconf < 2.61.
* m4/size_max.m4 (AC_COMPUTE_INT): Likewise.
* m4/stdint.m4 (AC_COMPUTE_INT): Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Assume AC_USE_SYSTEM_EXTENSIONS
exists.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise,
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Remove workaround for
Autoconf < 2.61.
* m4/lib-prefix.m4 (AC_LIB_ARG_WITH): Remove macro.
(AC_LIB_PREFIX): Use AC_ARG_WITH, assuming semantics of
Autoconf >= 2.52.
* m4/longlong.m4: Require Autoconf >= 2.62. Update comments.
* m4/ls-mntd-fs.m4: Require Autoconf >= 2.60. Update comments.
* m4/gettext.m4 (AM_GNU_GETTEXT): Update comment.
2018-10-22 Bruno Haible <bruno@clisp.org>
Assume Automake >= 1.11.
* m4/configmake.m4: Update comments.
* m4/lib-link.m4 (AC_LIB_RPATH): Assume AC_REQUIRE_AUX_FILE exists.
* m4/po.m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Eliminate uses
of 'eval'.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am,
func_create_testdir, func_create_megatestdir): Emit a Makefile.am that
requires Automake >= 1.11.
2018-10-22 Bruno Haible <bruno@clisp.org>
localename: Fix typo in comment.
* tests/test-locale-c++.cc (newlocale): Fix typo in comment.
2018-10-22 Bruno Haible <bruno@clisp.org>
Fix failure of 'gnulib-tool --create-testdir' with all modules.
* gnulib-tool (func_create_testdir): Exclude 'timevar' module.
2018-10-21 Bruno Haible <bruno@clisp.org>
locale: Ease integration with GNU libintl.
* lib/locale.in.h (GNULIB_defined_newlocale, GNULIB_defined_duplocale,
GNULIB_defined_freelocale): New macros.
2018-10-21 Bruno Haible <bruno@clisp.org>
localename: Fine-tune support for per-thread locales on Solaris 11.4.
* lib/localename-table.h: New file, extracted from lib/localename.c.
* lib/localename-table.c: Likewise.
* lib/localename.c: Include localename-table.h.
(get_locale_t_name, newlocale, duplocale, freelocale): Invoke
locale_hash_function instead of pointer_hash.
* modules/localename (Files): Add lib/localename-table.h,
lib/localename-table.c.
(lib_SOURCES): Add localename-table.c.
* m4/intlsolaris.m4 (gt_INTL_SOLARIS): Require AC_CANONICAL_HOST. Test
for Solaris 11.4 locale system only on Solaris. Test for it
independently whether getlocalename_l exists.
* m4/intl.m4 (gt_INTL_SUBDIR_CORE): Don't test for 'uselocale' and
'getlocalename_l'. Instead, invoke gt_INTL_SOLARIS. Set
HAVE_NAMELESS_LOCALES.
* modules/gettext (Files): Add m4/intlsolaris.m4.
2018-10-21 Bruno Haible <bruno@clisp.org>
Small update from gettext.
* m4/intl.m4: Update from gettext:
- 2018-01-02: Fix 'ar' invocation when cross-compiling and in 64-bit
mode on AIX.
- 2018-01-02: Don't use -lc explicitly when linking with libtool.
- 2017-05-19: (AM_INTL_SUBDIR): Require AC_C_FLEXIBLE_ARRAY_MEMBER.
2018-10-16 Bruno Haible <bruno@clisp.org>
mountlist: Remove support for Cray with UNICOS 9.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define
MOUNTED_LISTMNTENT.
* lib/mountlist.c: Remove MOUNTED_LISTMNTENT case.
2018-10-16 Bruno Haible <bruno@clisp.org>
fsusage, mountlist, getloadavg, getgroups: Remove support for Ultrix.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't define
STAT_STATFS2_FS_DATA.
* lib/fsusage.c: Remove STAT_STATFS2_FS_DATA case.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define
MOUNTED_GETMNT.
* lib/mountlist.c: Remove MOUNTED_GETMNT case.
* lib/getloadavg.c (decstation): Remove definition and case.
* m4/getgroups.m4 (AC_FUNC_GETGROUPS): Mention NeXTstep, not Ultrix.
* lib/getgroups.c: Likewise.
* doc/posix-functions/getgroups.texi: Likewise.
* lib/time.in.h: Update comments.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for ConvexOS.
* lib/getloadavg.c: Remove convex case.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for Sony NEWS.
* lib/getloadavg.c: Remove sony_news case.
2018-10-16 Bruno Haible <bruno@clisp.org>
fsusage, mountlist, getloadavg: Remove support for Dynix/ptx.
* lib/fsusage.c: Remove _SEQUENT_ case.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Update comments.
* lib/mountlist.c: Don't test for MNTTABNAME.
* m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Don't test for libseq.
(gl_LIST_MOUNTED_FILE_SYSTEMS): Don't test for MNTTABNAME.
* lib/getloadavg.c: Remove _SEQUENT_ and sequent cases.
* lib/stat-size.h: Don't mention the Sequent bug.
* doc/posix-functions/utime.texi: Don't mention the Dynix bug.
2018-10-16 Bruno Haible <bruno@clisp.org>
fsusage: Remove support for AIX 3.
* lib/fsusage.c: Remove code for AIX 3.
* m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Update comments.
2018-10-16 Bruno Haible <bruno@clisp.org>
fsusage, stat-size, getloadavg: Remove support for AIX PS/2.
* m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Don't check for dustat.h.
* lib/fsusage.c: Remove code for AIX PS/2.
* lib/stat-size.h (ST_NBLOCKSIZE): Likewise.
* lib/getloadavg.c: Likewise.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for HP-UX on m68k.
* lib/getloadavg.c: Remove hp9000s300 case.
2018-10-16 Bruno Haible <bruno@clisp.org>
fsusage, mountlist: Remove support for DolphinOS (an SVR3 variant).
* lib/fsusage.c: Remove DOLPHIN case.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Update comments.
* lib/mountlist.c: Remove MOUNTED_GETMNTTBL case.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for Alliant FX/2800.
* lib/getloadavg.c: Remove alliant case.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for tek4300.
* lib/getloadavg.c: Remove tek4300 case.
2018-10-16 Bruno Haible <bruno@clisp.org>
getloadavg: Remove support for Ardent.
* lib/getloadavg.c: Remove ardent case.
2018-10-16 Bruno Haible <bruno@clisp.org>
mountlist: Remove support for SVR2.
Reported by Andrew Borodin <aborodin@vmail.ru> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00101.html>.
* lib/mountlist.c: Remove MOUNTED_FREAD case.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define
MOUNTED_FREAD.
2018-10-15 Paul Eggert <eggert@cs.ucla.edu>
libc-config: merge from glibc
* lib/cdefs.h (__glibc_has_attribute): New macro.
regex: depend on libc-config
* modules/regex (Depends-on): Add libc-config.
This is needed after the recent autoupdate from glibc.
2018-10-14 Bruno Haible <bruno@clisp.org>
localename: Add support for per-thread locales on Solaris 11.4.
* lib/locale.in.h (newlocale, freelocale): New declarations.
(duplocale): Declare also when the 'localename' module requests it.
* lib/localename.c (struniq_hash_node): Renamed from hash_node.
(STRUNIQ_HASH_TABLE_SIZE): Renamed from HASH_TABLE_SIZE.
(struniq): Update.
(struct locale_categories_names, struct locale_hash_node): New types.
(LOCALE_HASH_TABLE_SIZE): New constant.
(locale_hash_table, locale_lock): New variables.
(pointer_hash, get_locale_t_name): New functions.
(newlocale, duplocale, freelocale): New overridden functions.
(gl_locale_name_thread_unsafe): Use get_locale_t_name.
* m4/intlsolaris.m4: New file.
* m4/localename.m4 (gl_LOCALENAME): Require gl_LOCALE_H_DEFAULTS. Invoke
gt_INTL_SOLARIS. Set HAVE_NEWLOCALE, HAVE_DUPLOCALE, HAVE_FREELOCALE,
REPLACE_NEWLOCALE, REPLACE_DUPLOCALE, REPLACE_FREELOCALE.
* m4/locale_h.m4 (gl_LOCALE_H): Test whether newlocale, freelocale are
declared.
(gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALENAME, HAVE_NEWLOCALE,
HAVE_FREELOCALE, REPLACE_NEWLOCALE, REPLACE_FREELOCALE.
* modules/locale (Makefile.am): Substitute GNULIB_LOCALENAME,
HAVE_NEWLOCALE, HAVE_FREELOCALE, REPLACE_NEWLOCALE, REPLACE_FREELOCALE.
* modules/localename (Files): Add intlsolaris.m4.
(Depends-on): Add 'locale'.
(configure.ac): Invoke gl_LOCALE_MODULE_INDICATOR.
* tests/test-locale-c++.cc (newlocale, freelocale): Prepare for checking
the signatures.
2018-10-14 Akim Demaille <akim@lrde.epita.fr>
timevar: use gethrxtime to get wall clock time
clock_gettime is not portable. gethrxtime takes the best available
option to get the wall clock time, including clock_gettime (monotonic
clock), and gettime (non monotonic).
Also, using xtime_t instead of float preserves the precision.
Suggested by Bruno Haible.
* lib/xtime.h (xtime_make): Handle overflows of nanoseconds.
* modules/timevar (Depends-on): We need gethrxtime.
We no longer use times().
(Link): Update.
* lib/timevar.h (timevar_time_def): Use xtime_t.
* lib/timevar.c (set_to_current_time): Use gethrxtime.
(timevar_print): Instead of checking whether the timings themselves
are large enough for the timevar to be printed, check the percentages.
2018-10-14 Bruno Haible <bruno@clisp.org>
wcsnrtombs: Work around Solaris 11.4 bug.
* m4/wcsnrtombs.m4 (gl_WCSNRTOMBS_WORKS_IN_TRADITIONAL_LOCALE): New
macro.
(gl_FUNC_WCSNRTOMBS): Invoke it.
* doc/posix-functions/wcsnrtombs.texi: Mention the Solaris bug.
2018-10-14 Bruno Haible <bruno@clisp.org>
mbsnrtowcs: Work around Solaris 11.4 bug.
* m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE): New
macro.
(gl_FUNC_MBSNRTOWCS): Invoke it.
* doc/posix-functions/mbsnrtowcs.texi: Mention the Solaris bug.
2018-10-14 Bruno Haible <bruno@clisp.org>
doc: Update for Solaris 11.4.
* doc/**/*.texi: For bugs that exist in both Solaris 11.3 and 11.4,
mention Solaris 11.4.
* m4/printf.m4: Update comments about Solaris.
* m4/log.m4: Likewise.
* m4/log10.m4: Likewise.
* m4/logb.m4: Likewise.
* m4/logbf.m4: Likewise.
* m4/logbl.m4: Likewise.
* m4/rename.m4: Likewise.
* m4/wcrtomb.m4: Likewise.
* m4/hostent.m4: Likewise.
* m4/servent.m4: Likewise.
2018-10-14 Bruno Haible <bruno@clisp.org>
floor, ceil, trunc, truncf, truncl: Defeat GCC optimizations.
* m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Use 'floor' also through a function
pointer.
* m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Use 'ceil' also through a function
pointer.
* m4/trunc.m4 (gl_FUNC_TRUNC): Use 'trunc' also through a function
pointer.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Use 'truncf' also through a function
pointer.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Use 'truncl' also through a function
pointer.
2018-10-13 Akim Demaille <akim@lrde.epita.fr>
bootstrap: fix wget command for po files.
* build-aux/bootstrap (po_download_command_format): Fix comment,
and adjust callers.
2018-10-13 Akim Demaille <akim@lrde.epita.fr>
timevar: improve the output format
Suggested by Bruno Haible.
See https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00040.html.
* lib/timevar.c (timevar_print): Use %7.3f for usr/sys and %11.6f for
wall, since its resolution is much higher.
2018-10-13 Akim Demaille <akim@lrde.epita.fr>
timevar: expect that getrusage is available.
Don't keep both times and getrusage as backend: both are guaranteed by
gnulib, a single one suffices. Using getrusage is open to possibly
tracking other types of resources in the future.
* modules/timevar (Depends-on): Add getrusage.
(configure.ac): Remove gl_TIMEVAR.
(Files): Remove m4/timevar.m4.
* m4/timevar.m4: Remove, rely on gnulib for getrusage.
* lib/timevar.h (timevar_enabled): Clarify documentation.
* lib/timevar.c: Remove all the code about times.
Remove all the CPP guards about getrusage: expect it to be present
(courtesy of gnulib).
2018-10-12 Bruno Haible <bruno@clisp.org>
mountlist: Improve support for Solaris in 64-bit mode.
Reported by David Wood <David.Wood@deshaw.com> in
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=6816>.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): On Solaris 8 or
newer, define MOUNTED_GETEXTMNTENT instead of MOUNTED_GETMNTENT2.
* lib/mountlist.c: Add code for MOUNTED_GETEXTMNTENT case.
2018-10-12 Bruno Haible <bruno@clisp.org>
mountlist: Add support for Minix.
Reported by Assaf Gordon in
<https://lists.gnu.org/archive/html/bug-gnulib/2014-09/msg00074.html>.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't use
AC_CHECK_FUNCS to check for 'getmntinfo'.
* lib/mountlist.c: Update comments.
2018-10-12 Bruno Haible <bruno@clisp.org>
Make better use of Autoconf.
* m4/environ.m4: Use AC_CACHE_CHECK where possible.
* m4/manywarnings.m4: Likewise.
* m4/manywarnings-c++.m4: Likewise.
* m4/socklen.m4: Likewise.
* m4/sockpfaf.m4: Likewise.
* m4/stdarg.m4: Likewise.
* m4/visibility.m4: Likewise.
* m4/fsusage.m4: Use AC_CACHE_CHECK where possible. Modernize
indentation.
* m4/ls-mntd-fs.m4: Likewise.
2018-10-11 Bruno Haible <bruno@clisp.org>
mountlist: Modernize platform lists.
* m4/ls-mntd-fs.m4: Clarify which MOUNTED_* symbol applies to which
platforms, deemphasizing the obsolete ones.
* lib/mountlist.c: Likewise.
2018-10-11 Bruno Haible <bruno@clisp.org>
getprogname: Add support for 32-bit programs on HP-UX.
* lib/getprogname.c (getprogname) [HP-UX]: If pstat_getproc fails,
try the similar functions 32-bit programs on 64-bit HP-UX.
2018-10-11 Bruno Haible <bruno@clisp.org>
getprogname: Work around program name truncation when possible.
* lib/getprogname.c (getprogname) [HP-UX]: When pst_ucomm is truncated,
possibly use pst_cmd instead.
2018-10-08 Paul Eggert <eggert@cs.ucla.edu>
fts: cleanup after FTS_NOATIME removal
* lib/fts_.h (FTS_VERBATIM, FTS_OPTIONMASK, FTS_NAMEONLY)
(FTS_STOP): Shrink to minimal values. We don’t need to
worry about binary compatibility in Gnulib, and the old way
of doing things had a hole in the user options that caused
FTS_OPTIONMASK to not work as desired.
2018-10-08 Bernhard Voelker <mail@bernhard-voelker.de>
fts: remove FTS_NOATIME
This reverts commit da4d6974013c822af1498941e32db774b2031765.
We cannot guarantee that O_NOATIME works: e.g. openat fails
with EPERM if the effective user ID of the caller does not match
the owner of the file and the caller is not privileged.
Downstream findutils has never picked up FTS_NOATIME. Discussed at
<https://lists.gnu.org/r/bug-gnulib/2018-09/msg00122.html>.
* lib/fts_.h (FTS_NOATIME): Remove bit flag.
(FTS_OPTIONMASK): Adjust.
* lib/fts.c (diropen, fts_open, fts_build): Likewise.
(fd_ring_check): Likewise.
2018-10-08 Bruno Haible <bruno@clisp.org>
csharpcomp*, csharpexec*: Remove support for pnet.
* m4/csharpcomp.m4 (gt_CSHARPCOMP): Don't test for cscc. Don't set
HAVE_CSCC.
* build-aux/csharpcomp.sh.in (options_cscc): Remove variable.
Don't test HAVE_CSCC.
* lib/csharpcomp.c (compile_csharp_using_pnet): Remove function.
(compile_csharp_class): Don't invoke it.
* m4/csharpexec.m4 (gt_CSHARPEXEC): Don't test for ilrun. Don't set
HAVE_ILRUN.
* build-aux/csharpexec.sh.in (options_ilrun): Remove variable.
Don't test HAVE_ILRUN.
* lib/csharpexec.c (execute_csharp_using_pnet): Remove function.
(execute_csharp_program): Don't invoke it.
* m4/csharp.m4 (gt_CSHARP_CHOICE): Don't recognize --enable-csharp=pnet
any more.
2018-10-07 Andreas Henriksson <andreas@fatal.se> (tiny change)
renameatu: prefer renameat2 to syscall
* lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]:
Use renameat2 instead of syscall (Bug#32796).
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2.
2018-10-07 Benno Schulenberg <bensberg@telfort.nl>
bootstrap, gnulib-tool: use https instead of insecure rsync
* build-aux/bootstrap (download_po_files, po_download_command_format):
Don't try using rsync; always use wget over https to fetch PO files.
* gnulib-tool (func_import): Likewise.
* pygnulib/GLImport.py (GLImport.execute): Likewise.
2018-10-07 Benno Schulenberg <bensberg@telfort.nl>
bootstrap, gnulib-tool: correct the translations wget command
* build-aux/bootstrap (po_download_command_format2): Restrict
recursion to a single level.
* gnulib-tool (func_import): Likewise.
* pygnulib/GLImport.py (GLImport.execute): Likewise.
2018-10-07 Akim Demaille <akim@lrde.epita.fr>
doc: the gnulib snapshots are not maintained
* doc/gnulib-intro.texi (Steady Development): Don't mention them.
2018-10-07 Akim Demaille <akim@lrde.epita.fr>
timevar: add to lib_SOURCES
* modules/timevar (lib_SOURCES): Add timevar.c and timevar.def.
2018-10-07 Bruno Haible <bruno@clisp.org>
dirent: Update documentation.
* doc/posix-headers/dirent.texi: The MSVC issue is fixed by Gnulib.
2018-10-05 Bruno Haible <bruno@clisp.org>
strpbrk: Make it possible to namespace the defined symbol.
* lib/strpbrk.c (strpbrk): Don't undefine outside of glibc.
2018-10-05 Bruno Haible <bruno@clisp.org>
strcspn: Make it possible to namespace the defined symbol.
* lib/strcspn.c (strcspn): Don't undefine outside of glibc.
2018-10-05 Bruno Haible <bruno@clisp.org>
raise: Make it possible to namespace the defined symbol.
* lib/raise.c (raise): Undefine only after the replacement function has
been defined.
(raise): Renamed from rpl_raise.
(raise_nothrow): Move to the end of the compilation unit.
2018-10-05 Bruno Haible <bruno@clisp.org>
memcmp: Make it possible to namespace the defined symbol.
* lib/memcmp.c (memcmp): Don't undefine outside of glibc.
2018-10-05 Bruno Haible <bruno@clisp.org>
explicit_bzero: Make it possible to namespace the defined symbol.
* lib/explicit_bzero.c (explicit_bzero): Don't undefine outside of
glibc.
2018-10-05 Bruno Haible <bruno@clisp.org>
mkdir-p: Depend on 'mkdir'.
* modules/mkdir-p (Depends-on): Add 'mkdir'.
2018-10-05 Bruno Haible <bruno@clisp.org>
tempname: Depend on 'mkdir'.
Reported by Maarten Bosmans <mkbosmans@gmail.com>
at <https://savannah.gnu.org/bugs/?33379>.
* modules/tempname (Depends-on): Add 'mkdir'.
2018-10-05 Akim Demaille <akim@lrde.epita.fr>
timevar: rely on gnulib modules for time portability.
* modules/timevar (Depends-on): Add sys_time, sys_times, and times.
* m4/timevar.m4: Don't check for clock_t and struct tms,
guaranteed by gnulib.
* lib/timevar.h: Use extern "C" protection.
Include <stdio.h> for FILE.
* lib/timevar.c: Include sys/time.h, sys/times.h unconditionally,
they are guaranteed by gnulib.
Remove uses of clock as (now useless) fallback.
2018-10-04 Bruno Haible <bruno@clisp.org>
sh-filename: New module.
* m4/sh-filename.m4: New file.
* modules/sh-filename: New file.
* lib/spawni.c (_PATH_BSHELL): Use BOURNE_SHELL instead of hardcoding
"/bin/sh".
* tests/test-posix_spawn1.c (main): Likewise.
* tests/test-posix_spawn2.c (main): Likewise.
* lib/javacomp.c (compile_using_envjavac, is_envjavac_gcj,
is_envjavac_gcj43): Likewise.
* lib/javaexec.c (execute_java_class): Likewise.
* modules/posix_spawn-internal (Depends-on): Add sh-filename.
* modules/posix_spawnp-tests (Depends-on): Likewise.
* modules/javacomp (Depends-on): Likewise.
* modules/javaexec (Depends-on): Likewise.
2018-10-04 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Avoid test failure on native Windows.
* tests/test-spawn-pipe-child.c (main): On native Windows, don't expect
that fd 2 is closed.
2018-10-04 Bruno Haible <bruno@clisp.org>
fcntl: Make it possible to namespace the defined symbol.
* lib/fcntl.c (fcntl): Undefine only after the replacement function has
been defined.
(fcntl): Renamed from rpl_fcntl.
(rpl_fcntl_DUPFD, rpl_fcntl_DUPFD_CLOEXEC): New functions, extracted
from fcntl.
(klibc_fcntl): Move to the end of the compilation unit.
2018-10-02 Bruno Haible <bruno@clisp.org>
vasnprintf tests: Avoid test failure on HP-UX/hppa and IRIX.
* tests/test-vasnprintf.c (test_function): Change the test added on
2018-09-23 to check only the 18 most significant digits.
vasnprintf tests: Avoid test failure on Cygwin.
* tests/test-vasnprintf.c (test_function): Change the test added on
2018-09-23 to check only the 42 most significant digits.
2018-10-01 Bruno Haible <bruno@clisp.org>
mkostemp, mkostemps: Update documentation.
* doc/glibc-functions/mkostemp.texi: Mention the Mac OS X issue.
* doc/glibc-functions/mkostemps.texi: Likewise.
2018-10-01 Tom Tromey <tom@tromey.com>
mkostemp, mkostemps: Fix compilation error in C++ mode on Mac OS X.
* lib/stdlib.in.h: Include <unistd.h> for mkostemp and mkostemps
on OS X.
2018-09-30 Pádraig Brady <P@draigBrady.com>
hmac-*: refactor to remove repetitive code
* lib/hmac.c: A new parameterized single implementation.
* lib/hmac-md5.c: Define parameters and include implementation.
* lib/hmac-sha1.c: Likewise.
* lib/hmac-sha256.c: Likewise.
* lib/hmac-sha512.c: Likewise.
* modules/crypto/hmac-md5: Reference the new implementation file.
* modules/crypto/hmac-sha1: Likewise.
* modules/crypto/hmac-sha256: Likewise.
* modules/crypto/hmac-sha512: Likewise.
* tests/test-hmac-md5.c: Refactor common code to a single function.
* tests/test-hmac-sha1.c: Likewise.
* tests/test-hmac-sha256.c: Likewise.
* tests/test-hmac-sha512.c: Likewise.
2018-09-30 Zhang Qing <zhangqingl@126.com>
hmac-sha512: fix hash for keys > blocksize (128 bytes)
* lib/hmac-sha512.c (hmac_sha512): Set the computed/shortened
key length to that output by sha512, not the blocksize.
Otherwise uninitialized data from the stack
is used when computing the hash.
* tests/test-hmac-sha512.c: Add a shortened key test case.
Reported at https://github.com/coreutils/gnulib/pull/5
2018-09-30 Bruno Haible <bruno@clisp.org>
vasnprintf: Avoid warnings from GCC's -Wsign-compare.
Reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00105.html>.
* lib/vasnprintf.c (VASNPRINTF): Cast 'count' from 'int' to
'unsigned int' before comparison with an unsigned value.
2018-09-30 Bruno Haible <bruno@clisp.org>
grantpt: Remove unnecessary dependency.
* modules/grantpt (Depends-on): Remove 'builtin-expect'.
2018-09-30 Bruno Haible <bruno@clisp.org>
timevar: Small tweaks.
* lib/timevar.h: Fix comments. Add parameter names to function
declarations.
* lib/timevar.c: Include timevar.h immediately after config.h.
* lib/timevar.def: Fix comments.
* modules/timevar (Maintainer): List Akim Demaille.
2018-09-30 Bruno Haible <bruno@clisp.org>
timevar: Include documentation in gnulib manual.
* doc/timevar.texi: Change node and section name to 'Profiling of
program phases'.
In the code snippets, tweak the #includes and use GNU coding style.
* doc/gnulib.texi: Include timevar.texi.
2018-09-27 Akim Demaille <akim@lrde.epita.fr>
timevar: import from Bison.
* m4/timevar.m4, modules/timevar, lib/timevar.h, lib/timevar.c:
New files.
* lib/timevar.def: New file.
* doc/timevar.texi: New file.
2018-09-26 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Add preliminary support for Java 12..17.
* m4/javacomp.m4 (gt_JAVACOMP): Treat Java versions 12..17 like 11.
* lib/javacomp.c (default_target_version): Likewise.
2018-09-26 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Add support for Java 11.
* m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 11 and
target-version 11.
* lib/javaversion.h: Update comments.
* lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND,
source_version_index, get_goodcode_snippet, get_failcode_snippet,
TARGET_VERSION_BOUND, target_version_index,
corresponding_classfile_version): Accept source_version 11 and
target_version 11.
* lib/javacomp.h: Update comments accordingly.
2018-09-23 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix heap memory overrun bug.
Reported by Ben Pfaff <blp@cs.stanford.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>.
* lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of
memory.
* tests/test-vasnprintf.c (test_function): Add another test.
2018-09-19 Paul Eggert <eggert@cs.ucla.edu>
maint: mktime.c now shared with glibc
* config/srclist.txt: intprops.h, timegm.c and mktime.c
are now the same in Gnulib and glibc.
mktime: fix _LIBC typo
* lib/mktime.c (mktime): Fix typo (misspelled "_LIBC").
2018-09-19 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: optimization for state merge
* lib/dfa.c (merge2): New function.
(merge_nfa_state): Use it.
2018-09-18 Jim Meyering <meyering@fb.com>
dfa: trivial comment fix: s/is/if/
* lib/dfa.c (maybe_disable_superset_dfa): Fix comment typo.
2018-09-18 Paul Eggert <eggert@cs.ucla.edu>
dfa: use more-informative function name
* lib/dfa.c (maybe_disable_superset_dfa):
Rename from dfautf8noss. Use change.
dfa: tweak allocation performance
* lib/dfa.c (merge_nfa_state, dfaoptimize):
Prefer ptrdiff_t for indexes some more.
Use char for flags, as it’s wide enough.
Allocate queue and flags together, with one malloc call.
No need to use xnmalloc since the multiplication and
addition cannot overflow (it’s already been checked by
earlier allocation). Prefer memset to open-coding.
dfa: prune states as we go
* lib/dfa.c (prune): Remove.
dfa: reorder enum for efficiency
(merge_nfa_state): Prune as we go instead of at the end.
Prefer ptrdiff_t for indexes, as this helps the compiler a bit.
* lib/dfa.c (END): Now -1 again. Reorder other elements
of the enumeration to make it easier for GCC to generate
efficient code by using fewer comparisons to check for
ranges of values.
(atom): Take advantage of the reordering.
2018-09-18 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: optimize alternation in NFA
Even when similar states exist in alternation, the DFA treats them
as separate items, which may complicate the transition in NFA and
cause slowdown. This change assembles the states into one. For
example, ab|ac is changed into a(b|c). This change speeds-up
matching for many branched patterns. For example, grep speeds up
more than 30× in:
seq 10000 | sed 's/$/ abcdefghijklmnopqrstuvwxyz/; s/$/./' >in
time -p env LC_ALL=C grep -vf in in
* lib/dfa.c (prune): New function.
(merge_nfa_state): New function. It merges similar NFA states.
(dfaoptimize): New function. It seeks merged and removed nodes.
(dfaanalyze): Call new function.
(dfautf8noss): Change name from dfaoptimize because of addition of new
function.
(dfacomp): Update caller.
dfa: simplify initial state
Simplifying the initial state enables easier optimization of the NFA.
* lib/dfa.c (enum token): Add new element BEG.
(prtok): Adjust due to adding element BEG.
(dfaparse): Put BEG at a head of tokens.
(state_index): Adjust due to adding element BEG.
(dfaanalyze): Concatenate BEG to other tokens, and simplify to
build initial state.
(dfamust): Adjust due to adding element BEG. DFAMUST ignores it.
2018-09-18 Bruno Haible <bruno@clisp.org>
file-has-acl: Fix test failure on Cygwin 2.9.
* m4/acl.m4 (gl_FUNC_ACL): Update comments regarding Cygwin.
* lib/acl-internal.h: Likewise.
(HAVE_ACL_EXTENDED_FILE): Undefine on Cygwin.
* lib/acl-internal.c: Update comments regarding Cygwin.
* lib/acl_entries.c: Likewise.
* lib/file-has-acl.c: Likewise.
(file_has_acl): For Cygwin, use a different way to determine whether
the "default" ACL of a directory is nontrivial.
* lib/get-permissions.c: Update comments regarding Cygwin.
* lib/set-permissions.c: Likewise.
2018-09-18 Bruno Haible <bruno@clisp.org>
stat-time tests: Fix test failure on Cygwin.
* tests/nap.h (nap_get_stat): Treat Cygwin like native Windows.
2018-09-18 Paul Eggert <eggert@cs.ucla.edu>
doc: OS X 10.11 lacked ns time functions
According to <https://github.com/zeromq/libzmq/issues/2175>,
nanosecond-resolution timestamp functions were introduced
in macOS 10.12, so document the last version (OS X 10.11)
where they were absent.
gettime: nanotime never existed
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2018-09/msg00082.html
* lib/gettime.c (gettime) [HAVE_NANOTIME]: Remove unused code.
* m4/gettime.m4 (gl_GETTIME): Don’t check for nanotime.
2018-09-18 Bruno Haible <bruno@clisp.org>
doc: Update statement about target platforms.
Reported by Simon Sobisch.
* doc/gnulib-intro.texi (Target Platforms): Update. Mention
restrictions on MSVC versions.
2018-09-18 Bruno Haible <bruno@clisp.org>
posix_spawn tests: Fix link error on 64-bit Cygwin.
* tests/test-posix_spawn1.c (environ): Remove declaration.
* tests/test-posix_spawn2.c (environ): Likewise.
* tests/test-posix_spawn3.c (environ): Likewise.
* tests/test-posix_spawn4.c (environ): Likewise.
* modules/posix_spawn-tests (Depends-on): Add 'environ'.
* modules/posix_spawnp-tests (Depends-on): Likewise.
2018-09-16 Paul Eggert <eggert@cs.ucla.edu>
timespec: new function current_timespec
* lib/gettime.c (gettime): Prefer clock_gettime to nanotime,
and don’t worry about it failing on a CLOCK_REALTIME arg.
POSIX requires it to succeed and I don’t know of any
counterexamples where the fallbacks would work.
(current_timespec): New function, taken from Emacs. It is more
convenient than gettime, and can help register allocation.
* lib/timespec.h: Include arg-nonnull.h.
(current_timespec): New declaration.
(gettime, settime): Declare args to be nonnull.
* modules/timespec (Depends-on): Add snippet/arg-nonnull.
2018-09-16 Bruno Haible <bruno@clisp.org>
setlocale: Improve locale handling on macOS 10.12 or newer.
* lib/setlocale.c: Include header files for CoreFoundation. Declare
gl_locale_name_canonicalize.
(libintl_setlocale): Try harder to set a locale for categories LC_CTYPE
and LC_MESSAGES.
* m4/setlocale.m4 (gl_PREREQ_SETLOCALE): Add comment.
2018-09-16 Bruno Haible <bruno@clisp.org>
Update list of locale names with scripts on macOS.
* lib/localename.c (gl_locale_name_canonicalize): Update tables to
match Mac OS X 10.13 and recent glibc.
2018-09-16 Bruno Haible <bruno@clisp.org>
gettext: Use newer macOS APIs when possible.
* m4/intlmacosx.m4 (gt_INTL_MACOSX): Check for
CFLocaleCopyPreferredLanguages.
2018-09-16 Bruno Haible <bruno@clisp.org>
localename: Revisit macOS specific code.
* lib/localename.c (gl_locale_name_default): Reduce code duplication.
Fix comments about Mac OS X versions.
2018-09-15 Bruno Haible <bruno@clisp.org>
setlocale: Improve support for locales not supported by libc.
Reported by Dapeng Gao <peter@dpgao.cc> at
<https://savannah.gnu.org/bugs/?54479>.
* gettext-runtime/intl/setlocale.c: Include <stdio.h>.
(libintl_setlocale): Use a more error-tolerant strategy when the locale
to be set is not supported by libc: Emit warnings instead of failing.
2018-09-15 Bruno Haible <bruno@clisp.org>
strstr, strcasestr: Add workaround against glibc-2.28 bug.
Reported by Michael Brunnbauer via Siddhesh Poyarekar and Eric Blake.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Set
gl_cv_func_strstr_works_always to 'no' on glibc 2.28.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Set
gl_cv_func_strcasestr_works_always to 'no' on glibc 2.28.
* doc/posix-functions/strstr.texi: Document the glibc 2.28 bug.
* doc/glibc-functions/strcasestr.texi: Likewise.
2018-09-14 Bruno Haible <bruno@clisp.org>
doc: Fix bottom of top-level page.
Reported by Akim Demaille <akim.demaille@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00072.html>.
* doc/pastposix-functions/index.texi: Rename node to '_index' in HTML
mode.
* doc/gnulib.texi (Legacy Function Substitutes): Update menu
accordingly.
2018-09-12 Bruno Haible <bruno@clisp.org>
Add test case from a recent glibc bug.
* tests/test-strstr.c (main): Add test of long needle.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
2018-09-12 Bruno Haible <bruno@clisp.org>
Apply Eric Blake's improvements from 2011-02-25 to more tests.
* tests/test-c-strstr.c (main): Add the same tests here as well.
2018-09-12 Bruno Haible <bruno@clisp.org>
Apply Jim Meyering's fix from 2015-01-11 to more tests.
* tests/test-memmem.c (main): Free haystack.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
2018-09-11 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: fix missing-TYPE_SIGNED typo
* lib/xstrtol.c (TYPE_SIGNED): New macro, duplicating intprops.h.
2018-09-10 Paul Eggert <eggert@cs.ucla.edu>
timespec: fix resolution confusion
In normal usage, clock resolution is given in seconds, but the
code was mistakenly using inverse seconds and calling it
“resolution”. Fix this, partly by renaming two identifiers.
The old names will be kept for a bit, to ease transition.
* lib/timespec.h (TIMESPEC_HZ, LOG10_TIMESPEC_HZ):
New constants, replacing TIMESPEC_RESOLUTION and
LOG10_TIMESPEC_RESOLUTION, which are now obsolescent.
All uses changed.
2018-09-09 Paul Eggert <eggert@cs.ucla.edu>
mktime: simplify in prep for glibc merge
* lib/mktime.c, lib/timegm.c [_LIBC]:
Include mktime-internal.h (a small file just for glibc)
instead of using a typedef.
2018-09-07 Paul Eggert <eggert@cs.ucla.edu>
intprops: minor clarification of code
* lib/intprops.h (_GL_BINARY_OP_OVERFLOW):
Use _GL_INT_CONVERT rather than reinventing it.
2018-09-07 Bruno Haible <bruno@clisp.org>
Fix a comment.
* tests/test-posix_spawn3.c (parent_main): Fix typo in comment.
2018-09-07 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addchdir: Add tests.
* tests/test-posix_spawn_file_actions_addchdir.c: New file.
* tests/test-posix_spawn4.c: New file.
* modules/posix_spawn_file_actions_addchdir-tests: New file.
2018-09-07 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addchdir: New module.
Suggested by Eric Blake in
<https://lists.gnu.org/archive/html/bug-findutils/2018-09/msg00007.html>.
* lib/spawn.in.h (posix_spawn_file_actions_addchdir): New declaration.
* lib/spawn_int.h (struct __spawn_action): Add tag 'spawn_do_chdir' and
union member 'chdir_action'.
* lib/spawn_faction_addchdir.c: New file.
* lib/spawni.c (__spawni): Implement the spawn_do_chdir action.
* lib/spawn_faction_addclose.c: Test REPLACE_POSIX_SPAWN instead of
HAVE_WORKING_POSIX_SPAWN.
* lib/spawn_faction_adddup2.c: Likewise.
* lib/spawn_faction_addopen.c: Likewise.
* m4/posix_spawn_faction_addchdir.m4: New file.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether module
'posix_spawn_file_actions_addchdir' is present and whether
posix_spawn_file_actions_addchdir_np exists. Define REPLACE_POSIX_SPAWN
instead of HAVE_WORKING_POSIX_SPAWN.
* m4/spawn_h.m4 (gl_SPAWN_H): Test whether
posix_spawn_file_actions_addchdir is declared.
(gl_SPAWN_H_DEFAULTS): Initialize
GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR,
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR,
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR.
* modules/spawn (Makefile.am): Substitute
GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR,
HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR,
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR.
* modules/posix_spawn_file_actions_addchdir: New file.
* modules/posix_spawn_file_actions_addclose (Depends-on,
configure.ac): Test also REPLACE_POSIX_SPAWN.
* modules/posix_spawn_file_actions_adddup2 (Depends-on,
configure.ac): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on,
configure.ac): Likewise.
* tests/test-spawn-c++.cc (posix_spawn_file_actions_addchdir): Check
signature.
* doc/posix-functions/posix_spawn.texi: Mention the new module.
* doc/posix-functions/posix_spawnp.texi: Likewise.
2018-09-06 Bruno Haible <bruno@clisp.org>
stddef: Override max_align_t on NetBSD 8.0/x86.
* m4/stddef_h.m4 (gl_STDDEF_H): When testing for max_align_t, test also
the value of __alignof__ (max_align_t).
* doc/posix-headers/stddef.texi: Mention the issue.
2018-09-06 Bruno Haible <bruno@clisp.org>
fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku.
* lib/fcntl.c (rpl_fcntl): For F_DUPFD_CLOEXEC, don't even try the
system fcntl.
* doc/posix-functions/fcntl.texi: Document the issue.
2018-09-06 Bruno Haible <bruno@clisp.org>
count-trailing-zeros tests: Rely on limits-h module.
* tests/test-count-trailing-zeros.c (ULLONG_MAX): Remove fallback
definition.
* modules/count-trailing-zeros-tests (Depends-on): Add 'limits-h'.
2018-09-06 Bruno Haible <bruno@clisp.org>
count-leading-zeros tests: Rely on limits-h module.
* tests/test-count-leading-zeros.c (ULLONG_MAX): Remove fallback
definition.
* modules/count-leading-zeros-tests (Depends-on): Add 'limits-h'.
2018-09-06 Bruno Haible <bruno@clisp.org>
count-one-bits tests: Rely on limits-h module.
* tests/test-count-one-bits.c (ULLONG_MAX): Remove fallback definition.
* modules/count-one-bits-tests (Depends-on): Add 'limits-h'.
2018-09-06 Bruno Haible <bruno@clisp.org>
xstrtoll: Rely on limits-h module.
* lib/xstrtol.c: Don't include intprops.h.
(ULLONG_MAX, LLONG_MAX, LLONG_MIN): Remove fallback definitions.
* modules/xstrtol (Depends-on): Remove 'intprops'.
* modules/xstrtoll (Depends-on): Add 'limits-h'.
2018-09-06 Bruno Haible <bruno@clisp.org>
strtoll, strtoull: Rely on limits-h module.
* lib/strtol.c (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove macros.
(ULLONG_MAX, LLONG_MAX, LLONG_MIN): Remove fallback definitions.
* modules/strtoll (Depends-on): Add limits-h.
* modules/strtoull (Depends-on): Likewise.
2018-09-06 Bruno Haible <bruno@clisp.org>
intprops tests: Fix compilation error with pre-C99 compiler.
* tests/test-intprops.c (verify_stmt): New macro.
(VERIFY, main): Use it.
2018-09-06 Bruno Haible <bruno@clisp.org>
limits-h: Provide numerical limits macros.
* lib/limits.in.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define also for
IRIX and for GCC.
(WORD_BIT, LONG_BIT): Define.
* m4/limits-h.m4 (gl_LIMITS_H): Set LIMITS_H to non-empty also when
<limits.h> does not define LLONG_MAX or WORD_BIT.
* tests/test-limits-h.c (TYPE_SIGNED, TYPE_WIDTH, TYPE_MINIMUM,
TYPE_MAXIMUM): New macros, from intprops.h.
Add tests for CHAR_BIT, WORD_BIT, LONG_BIT, <type>_MIN, and <type>_MAX.
* doc/posix-headers/limits.texi: Document what the 'limits-h' module
provides.
2018-09-05 Bruno Haible <bruno@clisp.org>
fcntl: Don't access nonexistent optional argument.
Reported by Frank Busse <f.busse@imperial.ac.uk> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00018.html>.
* lib/fcntl.c (rpl_fcntl): For actions that don't take an argument,
don't consume an argument. For actions that take an 'int' argument,
consume an 'int' argument.
2018-09-05 Eric Blake <eblake@redhat.com>
doc: mention environ pitfall
* doc/posix-functions/environ.texi (environ): Assigning NULL to
environ is a glibc extension.
2018-09-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix build order when $testsbase is a subdir of $sourcebase.
Reported by Antoine Luong <antoine.luong@c-s.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00008.html>.
* gnulib-tool (func_import): For the tests, set a dotfirst flag.
(func_emit_lib_Makefile_am): Consider the dotfirst flag.
(func_emit_tests_Makefile_am): Don't consider the dotfirst flag.
2018-09-02 Paul Eggert <eggert@cs.ucla.edu>
mktime: fix unlikely race+overflow bug
Problem reported by Alexandre Oliva in:
https://sourceware.org/bugzilla/show_bug.cgi?id=16346
* lib/mktime.c (__mktime_internal): Access *OFFSET only once,
to avoid an unlikely race if the compiler delays a load and
if this cascades into a signed integer overflow.
2018-08-31 Paul Eggert <eggert@cs.ucla.edu>
mktime, timegm: simplify glibc time64_t
* lib/mktime.c, lib/timegm.c (mktime_offset_t) [_LIBC]:
Now long int, not time_t, since long int is the longstanding type
for this in glibc and there is no need to change it even if time_t
becomes 64 bits - even int would do, though this would be a change
to the glibc generated code. When this change is merged into
glibc, it should simplify the time_t vs time64_t situation.
mktime, timegm: simplify merge to glibc
Move code around to make a merge to glibc easier to audit.
This should not change behavior.
* lib/mktime.c (NEED_MKTIME_INTERNAL, NEED_MKTIME_WINDOWS)
(NEED_MKTIME_WORKING): Give default values to pacify -Wundef,
which glibc uses. Default NEED_MKTIME_WORKING to DEBUG_MKTIME, to
simplify later conditionals; default the others to zero. In uses
of these conditionals, explicitly spell out how _LIBC affects
things, so it’s easier to review from a glibc viewpoint.
(my_tzset, __tzset) [!_LIBC]: New function and macro, to better
compartmentalize tzset issues. Move system-dependent tzsettish
code here from mktime.
(mktime): Move tzsettish code to my_tzset, and move
localtime_offset to within mktime so that it doesn’t
need a separate ifdef.
2018-08-27 Paul Eggert <eggert@cs.ucla.edu>
intprops: avoid evaluation of some expressions
This makes EXPR_SIGNED (e) easier to use, as it no longer
evaluates the expression E. Formerly, E was required to be free
of side effects.
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT)
(EXPR_SIGNED, TYPE_WIDTH, _GL_INT_MINIMUM, _GL_INT_MAXIMUM)
(_GL_SIGNED_INT_MAXIMUM): Do not evaluate the expression arg.
2018-08-23 Bruno Haible <bruno@clisp.org>
getcwd: Add cross-compilation guesses.
Reported by Sergio Durigan Junior <sergiodj@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00130.html>.
Based on a patch by Paul Eggert.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Add cross-compilation
guesses for all GNU systems.
2018-08-19 Bruno Haible <bruno@clisp.org>
glob-h: Formalize side effects from other modules.
* m4/glob_h.m4 (gl_REPLACE_GLOB_H): New macro.
* m4/glob.m4 (gl_GLOB): Invoke it.
fnmatch-h: Formalize side effects from other modules.
* m4/fnmatch_h.m4 (gl_REPLACE_FNMATCH_H): New macro.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Invoke it.
limits-h: Formalize side effects from other modules.
* m4/limits-h.m4 (gl_REPLACE_LIMITS_H): New macro.
* m4/stdint.m4 (gl_STDINT_H): Invoke it.
2018-08-19 Bruno Haible <bruno@clisp.org>
getpass: Move declaration to <unistd.h>.
* lib/unistd.in.h (getpass): New declaration.
* lib/getpass.h: Replace with a stub that just includes <unistd.h>.
* m4/getpass.m4 (gl_FUNC_GETPASS): Declare through AC_DEFUN_ONCE.
Require gl_UNISTD_H_DEFAULTS. Don't test whether getpass is declared.
(gl_FUNC_GETPASS_GNU): Require gl_UNISTD_H_DEFAULTS and gl_FUNC_GETPASS.
On glibc systems, don't set REPLACE_GETPASS to 1.
* modules/getpass (Depends-on): Add 'unistd'.
(configure.ac): Test also REPLACE_GETPASS. Define a module indicator.
(Include): Specify <unistd.h> instead of "getpass.h".
* modules/getpass-gnu (Depends-on): Merely depend on 'getpass'.
(configure.ac): Sync with the configure.ac section of modules/getpass.
(Include): Specify <unistd.h> instead of "getpass.h".
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether getpass is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETPASS, HAVE_GETPASS,
REPLACE_GETPASS.
* modules/unistd (Makefile.am): Substitute GNULIB_GETPASS, HAVE_GETPASS,
REPLACE_GETPASS.
* tests/test-unistd-c++.cc: Test also the declaration of 'getpass'.
* doc/glibc-functions/getpass.texi: A length limit exists also on uClibc
and musl.
* NEWS: Mention the change.
2018-08-19 Bruno Haible <bruno@clisp.org>
glob: Fix over-optimization due to attribute __nonnull__.
* lib/glob.c (_GL_ARG_NONNULL): Define to empty.
2018-08-19 Bruno Haible <bruno@clisp.org>
glob: Fix another compilation error when glob.h is not replaced.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00112.html>.
* m4/glob.m4 (gl_GLOB): Set GLOB_H to non-empty when needed.
* m4/glob_h.m4 (gl_GLOB_H): Define through AC_DEFUN_ONCE.
2018-08-18 Bruno Haible <bruno@clisp.org>
fnmatch: Avoid conflicting macro definitions of 'fnmatch'.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00108.html>.
* m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Don't define 'fnmatch' as a macro
in config.h.
2018-08-18 Bruno Haible <bruno@clisp.org>
Avoid -Wcast-function-type warnings from casts after GetProcAddress.
Reported by Andy Moreton <andrewjmoreton@gmail.com> in
<https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00468.html>.
Solution proposed by Eli Zaretskii.
* lib/getaddrinfo.c (GetProcAddress): Cast result to 'void *' first.
* lib/gettimeofday.c (GetProcAddress): Likewise.
* lib/link.c (GetProcAddress): Likewise.
* lib/physmem.c (GetProcAddress): Likewise.
* lib/poll.c (GetProcAddress): Likewise.
* lib/select.c (GetProcAddress): Likewise.
* lib/stat-w32.c (GetProcAddress): Likewise.
2018-08-18 Bruno Haible <bruno@clisp.org>
glob: Fix another compilation error when glob.h is not replaced.
Reported and fix proposed by Reuben Thomas <rrt@sc3d.org> again.
* lib/globfree.c: Include <libc-config.h>.
2018-08-18 Bruno Haible <bruno@clisp.org>
glob: Fix compilation error when glob.h is not replaced.
Reported and fix proposed by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00096.html>.
* lib/glob_pattern_p.c: Include <libc-config.h>.
* modules/glob (Depends-on): Add libc-config.
2018-08-18 Bruno Haible <bruno@clisp.org>
scratch_buffer: Add tests.
* tests/test-scratch-buffer.c: New file.
* modules/scratch_buffer-tests: New file.
2018-08-18 Bruno Haible <bruno@clisp.org>
scratch_buffer: Fix include file.
Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00082.html>.
* lib/scratch_buffer.h: Include <libc-config.h> first. Add
double-inclusion guard.
2018-08-18 Bruno Haible <bruno@clisp.org>
glob-h: Revert Paul Eggert's revert.
* m4/glob_h.m4: Revert to previous state.
* modules/glob-h: Likewise.
2018-08-18 Paul Eggert <eggert@cs.ucla.edu>
glob-h: always build glob.h
This works around a problem reported by Reuben Thomas in:
http://lists.gnu.org/r/bug-gnulib/2018-08/msg00079.html
This workaround always builds glob.h, even on platforms that
do not need it; perhaps this could be improved someday.
* m4/glob_h.m4 (gl_GLOB_H): Do not set or use GLOB_H, since glob.h
is always created now.
* modules/glob-h (BUILT_SOURCES, glob.h): Always build glob.h.
2018-08-13 Bruno Haible <bruno@clisp.org>
monetary: Simplify m4 code.
* m4/monetary_h.m4 (gl_MONETARY_H): Define through AC_DEFUN_ONCE.
(gl_MONETARY_H_BODY): Inline into gl_MONETARY_H. Remove macro.
2018-08-13 Bruno Haible <bruno@clisp.org>
fnmatch, fnmatch-gnu: Fix compilation error on Mac OS X.
Reported by Jeroen Meijer <jjgmeijer@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00046.html>
and by Paul J. Lucas <paul@lucasmail.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00069.html>.
* m4/fnmatch_h.m4 (gl_FNMATCH_H): Define through AC_DEFUN_ONCE.
2018-08-11 Bruno Haible <bruno@clisp.org>
setlocale: Trivial simplification.
* lib/setlocale.c (setlocale_unixlike): Remove redundant #if.
2018-08-11 Paul Eggert <eggert@cs.ucla.edu>
verify: port 'assume' to traditional tools
* lib/verify.h (assume): Port better to Oracle Studio 12.6
and other tools that use /*NOTREACHED*/ comments.
2018-08-10 Bruno Haible <bruno@clisp.org>
fnmatch-gnu: Fix compilation error in C++ namespace mode on Mac OS X.
* modules/fnmatch-gnu (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/fnmatch.in.h (fnmatch): Skip _GL_CXXALIASWARN if module
'fnmatch-gnu' is in use.
2018-08-07 Bruno Haible <bruno@clisp.org>
glob-h: Add tests.
* tests/test-glob-h.c: New file, partially based on tests/test-glob.c.
* tests/test-glob.c: Reorder #includes. Remove tests that are moved to
tests/test-glob-h.c.
* modules/glob-h-tests: New file.
* tests/test-glob-h-c++.cc: Renamed from tests/test-glob-c++.cc. Add
conditions.
* modules/glob-h-c++-tests: Renamed from modules/glob-c++-tests.
* modules/glob-tests (Depends-on): Remove glob-c++-tests.
2018-08-07 Bruno Haible <bruno@clisp.org>
glob-h: New module.
* lib/glob.in.h: Use nearly the usual gnulib idioms for header file
replacements.
* lib/glob.c: Include <config.h>.
* m4/glob_h.m4: New file.
* m4/glob.m4 (gl_GLOB): Require gl_GLOB_H. Remove code that is moved to
glob_h.m4. Set HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P,
REPLACE_GLOB_PATTERN_P as appropriate.
(gl_PREREQ_GLOB): Don't require AC_C_RESTRICT and
AC_USE_SYSTEM_EXTENSIONS, now done through module 'glob-h'.
* modules/glob-h: New file.
* modules/glob (Files): Remove lib/glob.in.h, lib/glob-libc.h.
(Dependencies): Add glob-h. Remove extensions, snippet/*, libc-config,
lstat, sys_stat. Change conditions.
(configure.ac): Test HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P,
REPLACE_GLOB_PATTERN_P. Set module indicator.
(Makefile.am): Remove code that is moved to glob-h.
* doc/posix-headers/glob.texi: Mention the 'glob-h' module.
* modules/posixcheck (Depends-on): Add glob-h.
2018-08-06 Bruno Haible <bruno@clisp.org>
Force generation of substitute .h file when C++ support is enabled.
* m4/ansi-c++.m4 (gl_ANSI_CXX): New macro.
* modules/ansi-c++-opt (configure.ac): Just require gl_ANSI_CXX.
* m4/fnmatch_h.m4 (gl_FNMATCH_H): If C++ support is enabled, set
FNMATCH_H to non-empty.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): If C++ support is enabled, set
ICONV_H to non-empty.
* m4/monetary_h.m4 (gl_MONETARY_H_BODY): If C++ support is enabled, set
MONETARY_H to non-empty.
* m4/utime_h.m4 (gl_UTIME_H): If C++ support is enabled, set UTIME_H to
non-empty.
2018-08-06 Bruno Haible <bruno@clisp.org>
fnmatch-h: Fix test compilation error on mingw (regression from today).
* lib/fnmatch.in.h: Fix conditions.
2018-08-06 Bruno Haible <bruno@clisp.org>
sys_resource: Relicense under LGPLv2+.
John Malmberg's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00031.html>.
* modules/sys_resource (License): Change to LGPLv2+.
2018-08-06 Bruno Haible <bruno@clisp.org>
fnmatch-h: Add tests.
* tests/test-fnmatch-h.c: New file.
* modules/fnmatch-h-tests: New file.
* tests/test-fnmatch-h-c++.cc: New file.
* modules/fnmatch-h-c++-tests: New file.
2018-08-06 Bruno Haible <bruno@clisp.org>
fnmatch-h: New module.
* lib/fnmatch.in.h: Use the usual gnulib idioms for header file
replacements.
(FNM_*): Don't redefine if fnmatch exists and we are not overriding it.
(fnmatch): Use the usual gnulib idiom for function declarations. Enable
'posixcheck' warning.
* m4/fnmatch_h.m4: New file.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Require gl_FNMATCH_H. Remove
code that is moved to fnmatch_h.m4. When fnmatch does not exist, don't
bother testing whether it is working. Set HAVE_FNMATCH, REPLACE_FNMATCH
as appropriate.
* modules/fnmatch-h: New file.
* modules/fnmatch (Files): Remove lib/fnmatch.in.h.
(Dependencies): Add fnmatch-h. Remove extensions, snippet/*. Change
conditions.
(configure.ac): Test HAVE_FNMATCH and REPLACE_FNMATCH. Set module
indicator.
(Makefile.am): Remove code that is moved to fnmatch-h.
* modules/fnmatch-gnu (configure.ac): Test HAVE_FNMATCH and
REPLACE_FNMATCH.
* doc/posix-headers/fnmatch.texi: Mention the 'fnmatch-h' module.
* modules/posixcheck (Depends-on): Add fnmatch-h.
2018-08-06 Bruno Haible <bruno@clisp.org>
Enable more C++ tests.
* modules/inttypes-tests (Depends-on): Add inttypes-c++-tests.
* modules/monetary-tests (Depends-on): Add monetary-c++-tests.
* modules/strings-tests (Depends-on): Add strings-c++-tests.
* modules/sys_resource-tests (Depends-on): Add sys_resource-c++-tests.
* modules/utime-h-tests (Depends-on): Add utime-h-c++-tests.
2018-08-06 Bruno Haible <bruno@clisp.org>
getopt-posix, utime-h: Ensure the .h file gets regenerated when needed.
* modules/getopt-posix (Makefile.am): Add Makefile dependency for
getopt.h.
* modules/utime-h (Makefile.am): Add Makefile dependency for utime.h.
2018-08-05 Bruno Haible <bruno@clisp.org>
utime-h: Generate header file when module 'posixcheck' is in use.
* m4/utime_h.m4 (gl_UTIME_H): If module 'posixcheck' is in use, set
UTIME_H to non-empty.
2018-08-05 Bruno Haible <bruno@clisp.org>
monetary: Generate header file when module 'posixcheck' is in use.
* m4/monetary_h.m4 (gl_MONETARY_H_BODY): If module 'posixcheck' is in
use, set MONETARY_H to non-empty.
2018-08-05 Bruno Haible <bruno@clisp.org>
iconv-h: Generate header file when module 'posixcheck' is in use.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): If module 'posixcheck' is in use,
set ICONV_H to non-empty.
2018-08-05 Bruno Haible <bruno@clisp.org>
Optimize the "checking whether ... is declared without a macro" checks.
Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00339.html>.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Expand to nothing if the
Gnulib module 'posixcheck' is not in use.
2018-08-05 Bruno Haible <bruno@clisp.org>
iconv-h: Enable 'posixcheck' warnings.
* m4/iconv_h.m4 (gl_ICONV_H): Check for declarations of iconv and
iconv_open.
* lib/iconv.in.h (iconv_open, iconv): Use _GL_WARN_ON_USE.
2018-08-05 Bruno Haible <bruno@clisp.org>
Fix link error regarding 'rpl_environ' (regression from 2012-11-21).
* m4/extern-inline.m4: Add more comments.
* lib/warn-on-use.h (_GL_WARN_ON_USE_ATTRIBUTE): New macro.
* lib/unistd.in.h (rpl_environ): Use it instead of _GL_WARN_ON_USE.
* lib/math.in.h (_GL_WARN_REAL_FLOATING_DECL): Likewise.
2018-08-04 Bruno Haible <bruno@clisp.org>
New module 'posixcheck'.
* modules/posixcheck: New file.
* m4/posixcheck.m4: New file.
* doc/gnulib-tool.texi (Finding POSIX substitutes): New section.
(Which modules?): Reference it.
2018-08-01 Assaf Gordon <assafgordon@gmail.com>
dfa: fix memory leak
* lib/dfa.c (dfafree): Add missing free() on dfa->superset.
2018-08-01 Paul Eggert <eggert@cs.ucla.edu>
ieee754-h: new module
It looks like Emacs can use this for some NaN processing.
Emacs uses it only on double NaNs so it should be safe.
* MODULES.html.sh (func_all_modules): Add ieee754-h.
* config/srclist.txt: Mention ieee754.h in a comment.
* doc/glibc-headers/ieee754.texi (ieee754.h):
Gnulib now has a substitute that should work
except for long double and for non-IEEE platforms.
* lib/ieee754.in.h, m4/ieee754-h.m4, modules/ieee754-h:
* modules/ieee754-h-tests, tests/test-ieee754-h.c: New files.
2018-07-27 Bruno Haible <bruno@clisp.org>
iswcntrl: Mention minor problem on macOS.
* doc/posix-functions/iswcntrl.texi: Mention oddity on macOS.
2018-07-26 Colin Watson <cjwatson@debian.org>
bootstrap, gnulib-tool: fix translations rsync
Previously, we created files such as $pobase/Makefile.in.in and then the
subsequent rsync would immediately delete them.
* build-aux/bootstrap (po_download_command_format): Avoid deleting
non-.po files in target directory when rsyncing translations.
* gnulib-tool (func_import): Likewise.
* pygnulib/GLImport.py (GLImport.execute): Likewise.
2018-07-25 Jim Meyering <meyering@fb.com>
bootstrap: reinstate definition fo gnulib_mk.
That variable is used at least by cppi.
* build-aux/bootstrap (gnulib_mk): Restore definition.
This reverts the deletion from v0.1-1844-gc66dba9ba.
2018-07-23 Bruno Haible <bruno@clisp.org>
doc: For module names, use texinfo markup @code{} or @samp{}.
* doc/alloca.texi: Mark gnulib module names with @code.
* doc/alloca-opt.texi: Likewise.
* doc/quote.texi: Likewise.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/readlink.texi: Likewise.
* doc/posix-functions/readlinkat.texi: Likewise.
* doc/posix-functions/stdout.texi: Likewise.
* doc/posix-functions/stderr.texi: Likewise.
* doc/posix-functions/unlink.texi: Likewise.
* doc/posix-functions/unlinkat.texi: Likewise.
* doc/posix-functions/utime.texi: Likewise.
* doc/posix-functions/utimensat.texi: Likewise.
* doc/posix-functions/utimes.texi: Likewise.
* doc/posix-headers/stdint.texi: Likewise.
* doc/glibc-functions/futimesat.texi: Likewise.
* doc/glibc-functions/lutimes.texi: Likewise.
* doc/glibc-functions/memmem.texi: Likewise.
2018-07-23 Werner LEMBERG <wl@gnu.org>
doc: Avoid some overfull lines in the TeX output.
* doc/glibc-functions/futimesat.texi: Replace a long @code with a
@example.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi: Insert a
newline before the long URL.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi: Likewise.
* doc/relocatable-maint.texi: Use @smallexample instead of @example.
Add line breaks in code snippets.
2018-07-17 Paul Eggert <eggert@cs.ucla.edu>
hard-locale: simplify by removing hard-locale.m4
* m4/hard-locale.m4: Remove.
* modules/hard-locale (Files): Remove m4/hard-locale.m4.
(configure.ac): Do not call gl_HARD_LOCALE.
gnulib-tool: limit line length for git send-email
* gnulib-tool (func_import): Break actioncmd log line
into multiple lines.
2018-07-16 Bruno Haible <bruno@clisp.org>
ffs: Ensure declaration on mingw.
Reported by Daniel P. Berrangé <berrange@redhat.com>
in https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00061.html.
* m4/ffs.m4 (gl_FUNC_FFS): Check whether ffs() not only exists but is
also declared.
2018-07-13 Paul Eggert <eggert@cs.ucla.edu>
regex-tests: add dependency
* modules/regex-tests (Depends-on): Add gettext-h.
This is needed given the recent changes to regex,
which no longer depends on gettext-h.
2018-07-06 Paul Eggert <eggert@cs.ucla.edu>
regex: now in sync with glibc
* config/srclist.txt: Gnulib and glibc regex code
are synchronized again.
2018-07-05 Paul Eggert <eggert@cs.ucla.edu>
renameatu: rename from renameat2
It's looking like Glibc will add a renameat2 function
that is incompatible with Gnulib renameat2; see:
https://sourceware.org/ml/libc-alpha/2018-07/msg00064.html
To help avoid future confusion, rename renameat2 to something else.
Use the name 'renameatu', as the Gnulib function is close to the
Glibc function. Perhaps someday there will also be a renameat2
Gnulib module, which mimicks the future glibc renameat2, but that
can wait as nobody seems to need such a module now.
* NEWS: Mention this.
* lib/renameatu.c: Rename from lib/renameat2.c.
* lib/renameatu.h: Rename from lib/renameat2.h.
* modules/renameatu: Rename from modules/renameat2.
* modules/renameatu-tests: Rename from modules/renameat2-tests.
All uses of "renameat2" in identifiers or file name
changed to "renameatu", except for two instances in
lib/renameatu.c that deal with the Linux kernel's
renameat2 syscall.
2018-07-04 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: minor tweaks for --gnu-make
* gnulib-tool: Do not allow --gnu-make in test modes,
since they all require automake.
(func_emit_lib_Makefile_am): Don’t emit automake comment
if --gnu-make.
regex: work around conditional-dependencies glitch
* modules/regex (Depends-on): Add langinfo.
Without this change, I had problems building an experimental
version of GNU Emacs. The symptom of the bug was a message
‘./configure: line 12726: test: =: unary operator expected’.
This was due to a line in gl_FUNC_NL_LANGINFO that invokes
‘test $HAVE_LANGINFO_CODESET = 1’ even though HAVE_LANGINFO_CODESET
was unset. Although gl_FUNC_NL_LANGINFO has
‘AC_REQUIRE([gl_LANGINFO_H])’ and gl_LANGINFO_H always sets
HAVE_LANGINFO_CODESET to 0 or 1, gnulib-tool with
--conditional-dependencies sometimes arranges for the
gl_FUNC_NL_LANGINFO code to be executed before the gl_LANGINFO_H
code. Since the regex code includes <langinfo.h> it should be
depending on the langinfo module anyway, and this happens to work
around the bug, so install that as a workaround for now. To
reproduce the original problem, run the following shell script on
the version of Gnulib just before this patch was installed.
rm -fr foo
mkdir foo
cat >foo/configure.ac <<'EOF'
AC_INIT(GNU Emacs, 27.0.50, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/)
gl_EARLY
gl_INIT
AC_OUTPUT
EOF
./gnulib-tool --import --conditional-dependencies --gnu-make --dir foo regex
./gnulib-tool --copy build-aux/install-sh foo/install-sh
./gnulib-tool --copy build-aux/config.sub foo/config.sub
./gnulib-tool --copy build-aux/config.guess foo/config.guess
cd foo
aclocal -I m4
autoconf
./configure --with-included-regex
2018-07-01 Paul Eggert <eggert@cs.ucla.edu>
wchar: fix bug when checking for ‘inline’
I discovered this when looking into using the regex module
with Emacs.
* m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Fix bug introduced in
2016-08-17T23:09:38Z!skunk@iSKUNK.ORG; the code compiled
conftest1.c and conftest2.c but these files were not created.
As far as I can see, this check never worked and nobody reported
it until now, which is a bit worrisome.
2018-06-30 Jim Meyering <meyering@fb.com>
bootstrap: s/--option val/--option=val/
* build-aux/bootstrap (gnulib_tool_options): Change the
spelling of "--option val" pairs to "--option=val", for
aesthetics, and also so that this file no longer triggers
a common help2man syntax-check warning when copied into
projects like grep, gzip, etc.
2018-07-01 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: omit -Wswitch-default
This should make things more consistent, as we already ignore
-Wswitch-enum. Problem reported by Reuben Thomas; see:
https://lists.gnu.org/r/bug-gnulib/2018-05/msg00179.html
* build-aux/g++-warning.spec, build-aux/gcc-warning.spec:
Add -Wswitch-default.
* m4/manywarnings-c++.m4 (gl_MANYWARN_ALL_GCC_CXX_IMPL):
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Remove -Wswitch-default.
regex: revert most trimming
Problems reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2018-07/msg00001.html
* modules/regex (Depends-on): Add lock, memcmp, memmove,
and wctype back in. lock because regex users shouldn’t
need to know that regex needs locking, and the rest because
gnulib-tool should ordinarily ignore them anyway.
2018-06-30 Paul Eggert <eggert@cs.ucla.edu>
regex: trim module dependencies
* modules/regex (Depends-on): Remove gettext-h and lock,
since the regex code should work OK without these modules,
and Emacs uses it that way. Also remove memcmp, memmove,
and wctype, as these modules are obsolete and should not be
needed any more.
2018-06-29 Paul Eggert <eggert@cs.ucla.edu>
regex: glibc does not use intprops.h
Maybe we can talk glibc into using intprops.h someday, but
now doesn’t seem to be a good time.
* lib/regcomp.c (TYPE_SIGNED): Remove; regex_internal.h now defines.
* lib/regex_internal.h [_LIBC]: Do not include intprops.h.
(TYPE_SIGNED, INT_ADD_WRAPV): New macros.
2018-06-28 Paul Eggert <eggert@cs.ucla.edu>
regex: port to recently proposed glibc regex merge
This patch is inspired by Adhemerval Zanella's recent proposal
https://www.sourceware.org/ml/libc-alpha/2018-06/msg00905.html
to merge glibc and Gnulib regex. It aims to simplify the merge on
the glibc side, without keeping Gnulib portable.
* lib/regex.h: Fix a problem with glibc installed-header checking,
as follows:
(_Restrict_): Prefer __restrict if defined or if GCC 2.95 or later.
(_Restrict_arr_): Prefer __restrict_arr if defined,
otherwise prefer _Restrict_ if C99 or GCC 3.1 or later (but not C++).
* lib/regex_internal.c (re_string_realloc_buffers, build_wcs_buffer)
(build_wcs_upper_buffer, build_upper_buffer)
(re_string_translate_buffer, re_string_context_at):
Move decls here from lib/regex_internal.h, for glibc internal tests.
(build_wcs_upper_buffer): Use __wcrtomb, not wcrtomb, fixing
glibc BZ #18496.
* lib/regex_internal.h (lock_fini) [_LIBC]: Cast to 0 to pacify
-Wunused-value.
(bitset_set, bitset_clear, bitset_contain, bitset_empty)
(bitset_set_all, bitset_copy, bitset_not, bitset_merge)
(bitset_mask): Now static inline, and without any __attribute__
((unused)) decoration, for glibc internal tests.
2018-06-25 Bruno Haible <bruno@clisp.org>
threadlib: Fix LIBMULTITHREAD on platforms where --as-needed is enabled.
Reported by Erik Auerswald <auerswal@unix-ag.uni-kl.de>
in <https://lists.gnu.org/archive/html/coreutils/2018-06/msg00063.html>.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Check whether the linker supports
--as-needed/--no-as-needed and --push-state/--pop-state. When defining
USE_POSIX_THREADS_WEAK or USE_SOLARIS_THREADS_WEAK or
USE_PTH_THREADS_WEAK, define LIBMULTITHREAD in such a way that -lpthread
/ -lthread / -lpth does not get optimized away by a preceding
--as-needed option.
2018-06-25 Bruno Haible <bruno@clisp.org>
Continue to use spaces for indentation, not tabs.
* MODULES.html.sh: Untabify.
* doc/regex.texi: Likewise.
* lib/acl-internal.c: Likewise.
* lib/dfa.c: Likewise.
* lib/exclude.c: Likewise.
* lib/exclude.h: Likewise.
* lib/get-permissions.c: Likewise.
* lib/gettimeofday.c: Likewise.
* lib/parse-datetime.y: Likewise.
* lib/pselect.c: Likewise.
* lib/set-permissions.c: Likewise.
* lib/time.in.h: Likewise.
* m4/canonicalize.m4: Likewise.
* m4/gc.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/pthread_sigmask.m4: Likewise.
* m4/vararrays.m4: Likewise.
* tests/test-digest.h: Likewise.
* tests/test-fcntl-h.c: Likewise.
* tests/test-timespec.c: Likewise.
* tests/uniwbrk/test-uc-wordbreaks.c: Likewise.
2018-06-25 Bruno Haible <bruno@clisp.org>
manywarnings: Don't enable -Wjump-misses-init warnings by default.
* build-aux/gcc-warning.spec: Add -Wjump-misses-init.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): Remove
-Wjump-misses-init.
2018-06-25 Jim Meyering <meyering@fb.com>
acl-internal.h: remove _GL_ATTRIBUTE_CONST on void function
* lib/acl-internal.h (free_permission_context): Remove that
attribute directive. Otherwise, it would provoke this from GCC 9:
lib/acl-internal.h:300:3: error: 'const' attribute on function \
returning 'void' [-Werror=attributes]
2018-06-24 Jim Meyering <meyering@fb.com>
parse-datetime: accommodate gcc-4.8.5
Bruno Haible reported the build failure in
https://lists.gnu.org/r/bug-gnulib/2018-06/msg00066.html
* lib/parse-datetime.y (parse_datetime2): Remove leading "static"
on declaration of new local.
2018-06-24 Bruno Haible <bruno@clisp.org>
af_alg: Fail in continuable manner on Linux/powerpc64le.
Reported by Assaf Gordon <assafgordon@gmail.com>
in <https://lists.gnu.org/archive/html/coreutils/2018-06/msg00034.html>.
* lib/af_alg.c (afalg_stream): On non-seekable streams, try a single-
byte send() as the first round.
2018-06-24 Bruno Haible <bruno@clisp.org>
af_alg: Fix state of stream after sendfile() succeeds.
* lib/af_alg.c (afalg_stream): Invoke fflush and lseek, to ensure that
the stream is correctly positioned afterwards.
* modules/crypto/af_alg (Depends-on): Add fflush.
* tests/test-digest.h (test_digest_on_files): Verify that after the
operation the stream is positioned at end of file.
2018-06-24 Jim Meyering <meyering@fb.com>
canon-host: take GCC9's advice rather than ignoring warning
Pádraig Brady suggested not to ignore this GCC9 advice.
* lib/canon-host.c: Undo preceding change.
* lib/canon-host.h: Instead, declare with _GL_ATTRIBUTE_MALLOC.
parse-datetime.y: avoid spurious GCC 9 warning
* lib/parse-datetime.y (parse_datetime2): Save RELATIVE_TIME_0 into
a function local prior to the first "goto fail". The prior use would
evoke this:
parse-datetime.y: In function 'parse_datetime2':
parse-datetime.y:1791:19: error: jump skips variable initialization \
[-Werror=jump-misses-init]
parse-datetime.y:2385:2: note: label 'fail' defined here
parse-datetime.y:188:43: note: '({anonymous})' declared here
parse-datetime.y:1841:12: note: in expansion of macro 'RELATIVE_TIME_0'
canon-host.c: avoid spurious GCC 9 warning
* lib/canon-host.c: Suppress GCC9's -Wsuggest-attribute=malloc.
manywarnings: accommodate GCC 9.0-pre: remove -Wchkp and -Wabi
* build-aux/gcc-warning.spec: Add them here, each with an explanation.
* m4/manywarnings.m4: Remove them.
Otherwise, building coreutils, I would see this:
cc1: error: deprecated command line option '-Wchkp' [-Werror]
cc1: error: -Wabi won't warn about anything [-Werror=abi]
cc1: note: -Wabi warns about differences from the most up-to-date ABI,\
which is also used by default
cc1: note: use e.g. -Wabi=11 to warn about changes from GCC 7
2018-06-24 Bruno Haible <bruno@clisp.org>
af_alg tests: Add another test.
* tests/test-digest.h (test_digest_on_files): Also check a large file
with a skipped header.
* tests/test-md5.c: Include macros.h.
* tests/test-sha1.c: Likewise.
* tests/test-sha256.c: Likewise.
* tests/test-sha512.c: Likewise.
* modules/crypto/md5-tests (Files): Add tests/macros.h.
* modules/crypto/sha1-tests (Files): Likewise.
* modules/crypto/sha256-tests (Files): Likewise.
* modules/crypto/sha512-tests (Files): Likewise.
2018-06-24 Pádraig Brady <P@draigBrady.com>
maint: clarify comments about sticky EOF
* lib/af_alg.c: Be more direct that we can't
assume stickiness of EOF for portability reasons.
* lib/md5.c: Clarify that this isn't just a glibc issue.
* lib/sha1.c: Likewise.
* lib/sha256.c: Likewise.
* lib/sha512.c: Likewise.
2018-06-24 Bruno Haible <bruno@clisp.org>
af_alg: Comment and style improvements.
* lib/af_alg.c (alg_socket): Use 'size_t' as index into a string.
(afalg_buffer, afalg_stream): Improve comments.
2018-06-24 Pádraig Brady <P@draigBrady.com>
af_alg: disable kernel hash functions by default
All the kernel routines were seen to be significantly slower
with these relatively recent components on an i3-2310M system:
kernel-4.10.6-200.fc25.x86_64
openssl-1.0.2m-1.fc25.x86_64
sha1 was nearly twice as slow in the kernel for example.
Further considerations why this should not be the default, at:
https://lists.gnu.org/r/coreutils/2018-06/msg00034.html
* m4/af_alg.m4: Require --with-linux-crypto to enable.
* m4/gl-openssl.m4: Tweak accordingly.
2018-06-24 Pádraig Brady <P@draigBrady.com>
af_alg: avoid hangs when reading from streams
* lib/af_alg.c (afalg_stream): Don't assume EOF is sticky,
and thus avoid doing a fread() when feof() is set.
* lib/md5.c: Ensure feof() is called before fread().
* lib/sha1.c: Likewise.
* lib/sha256.c: Likewise.
* lib/sha512.c: Likewise.
2018-06-24 Pádraig Brady <P@draigBrady.com>
af_alg: fix error handling when hash not returned
* lib/af_alg.c (afalg_stream): Handle the case where we've
successfully written data to the kernel in the read/write loop,
but the kernel doesn't respond with the hash.
2018-06-24 Paul Eggert <eggert@cs.ucla.edu>
libc-config: merge from glibc
* lib/cdefs.h (__inline, __restrict):
Copy from current glibc. This fixes glibc bug 17721,
which Gnulib had already fixed in a different way.
(__nonnull): Lessen the distance from glibc by using the
glibc definition inside an ‘#ifndef __nonnull’.
(__attribute_nonstring__): New macro, copied from
current glibc.
* lib/libc-config.h (__attribute_nonstring__): New undef.
(__restrict): Remove; workaround no longer needed.
Keep the __inline workaround, though, as it uses HAVE___INLINE to
support more compilers than the glibc __inline can.
2018-06-24 Bruno Haible <bruno@clisp.org>
mbrtowc, wcwidth: Fix MT-safety bug (regression from 2018-06-23).
* lib/mbrtowc.c (enc_t): New enum type.
(locale_enc, locale_enc_cached): New functions.
(mbrtowc): Eliminate static variables. Use locale_enc_cached instead.
* lib/wcwidth.c (is_locale_utf8, is_locale_utf8_cached): New functions.
(wcwidth): Eliminate static variables. Use is_locale_utf8_cached
instead.
* m4/mbrtowc.m4 (gl_PREREQ_MBRTOWC): Require AC_C_INLINE.
* m4/wcwidth.m4 (gl_PREREQ_WCWIDTH): New macro.
* modules/wcwidth (configure.ac): Invoke it.
2018-06-24 Bruno Haible <bruno@clisp.org>
wchar-single: Fix test failure in wcwidth tests.
* tests/test-wcwidth.c (main): If the wchar-single module is present,
skip the tests in the C locale.
2018-06-23 Pádraig Brady <P@draigBrady.com>
crypto: mention --without-linux-crypto in --with-openssl --help
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Mention that linux crypto
routines take precedence in --with-openssl help output.
2018-06-23 Pádraig Brady <P@draigBrady.com>
wchar-single: a new module to enable optimizations in wchar replacements
* lib/mbrtowc.c (mbrtowc): Only check locale_charset() once if
GNULIB_WCHAR_SINGLE is enabled.
* lib/wcwidth.c (wcwidth): Likewise.
2018-06-23 Bruno Haible <bruno@clisp.org>
libc-config: Fix conflict with FreeBSD include files.
* lib/cdefs.h (__nonnull): Remove definition.
* lib/libc-config.h (__nonnull): Remove undefinition.
2018-06-21 Paul Eggert <eggert@cs.ucla.edu>
random_r: do not crash if state is unaligned
Problem reported by Bruce Korb in:
https://lists.gnu.org/r/bug-gnulib/2018-06/msg00030.html
I reproduced the crash on 32-bit sparc with Oracle Studio 12.6
with 'cc -O2 -xmemalign=8s'.
* lib/random_r.c: Include string.h, for memcpy.
(get_int32, set_int32): New functions.
(__srandom_r, __initstate_r, __setstate_r, __random_r):
Use them to avoid assumption that state pointer is aligned.
(__random_r): Avoid integer overflow if INT_MAX == UINT32_MAX.
* tests/test-random_r.c (test_failed): New function.
(main): Use it, to test for alignment bugs.
random_r: omit unnecessary include
* lib/random_r.c: Do not include limits.h.
random, random_r: merge from glibc
* lib/random.c, lib/random_r.c:
Include libc-config.h if !_LIBC, not config.h unilaterally.
* lib/random.c:
Do not include stdint.h or time.h; not needed.
Include libc-lock.h if _LIBC, and define substitute macros otherwise.
(unsafe_state): Rename from generator. All uses changed.
Use C99-style initializers.
(__random, __srandom, __initstate, __setstate): Rename from
non-underscored version, but define it to non-underscored version
on Gnulib. Add a lock.
* lib/random_r.c (__srandom_r, __initstate_r, __setstate_r, __random_r):
Likewise.
Do not include <stdint.h>; not needed since stdlib.h defines int32_t.
(weak_alias, __set_errno) [!_LIBC]: Remove; now done by libc-config.
(__srandom_r): Use int32_t instead of long int where int32_t will do.
(__random_r): Use uint32 to fix glibc bug 17343.
* modules/random, modules/random_r (Depends-on): Add libc-config.
Depend on stdint only if $HAVE_RANDOM = 0.
2018-06-19 Jim Meyering <meyering@fb.com>
README-release: also run any check-very-expensive tests
* top/README-release: Adjust instructions so they run the
check-very-expensive tests when there is such a target.
2018-06-18 Bruno Haible <bruno@clisp.org>
pthread_rwlock_rdlock: Add comments regarding glibc behaviour.
* m4/pthread_rwlock_rdlock.m4: Add comment.
* doc/posix-functions/pthread_rwlock_rdlock.texi: Mention that rwlocks
are reader-preferring in glibc.
* doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likwise.
* doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise.
2018-06-17 Paul Eggert <eggert@cs.ucla.edu>
crypto: use byteswap
* lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
* lib/sm3.c: Include <byteswap.h>.
(SWAP): Use its macros rather than reinventing the wheel.
* modules/crypto/md4, modules/crypto/md5-buffer:
* modules/crypto/sha1-buffer, modules/crypto/sha256-buffer:
* modules/crypto/sha512-buffer, modules/crypto/sm3:
(Depends-on): Add byteswap.
2018-06-17 Pádraig Brady <P@draigBrady.com>
gendocs.sh: fix support for legacy --texi2html
* build-aux/gendocs.sh: Restrict use of TOP_NODE_UP_URL
to the default makeinfo invocation.
Reported by Bruce Korb
2018-06-17 Bruno Haible <bruno@clisp.org>
gettext po infrastructure: Update from current gettext git.
Reported by Akim Demaille <akim@lrde.epita.fr>.
* build-aux/po/Makefile.in.in: Update from current gettext git.
* build-aux/po/remove-potcdate.sin: Likewise.
* config/srclist.txt: Temporarily disable sync for these files.
2018-06-17 Bruno Haible <bruno@clisp.org>
getloadavg: Return 0 on Windows without Cygwin.
* lib/getloadavg.c: Don't assume that the symbol WINDOWS32 is defined.
2018-06-17 Paul Smith <psmith@gnu.org>
getloadavg: Allow building on Windows without Cygwin
* lib/getloadavg.c: Reinstate ifdef for HAVE_UNISTD_H.
* m4/getloadavg.m4: Check for unistd.h.
2018-06-03 Paul Eggert <eggert@cs.ucla.edu>
Port crypto/af_alg to GCC 4.8.4
Problem reported by Peter Simons in:
https://lists.gnu.org/r/bug-gnulib/2018-06/msg00002.html
* modules/crypto/af_alg (Depends-on): Add c99 if USE_AF_ALG.
2018-05-27 Colin Watson <cjwatson@debian.org>
bootstrap: document source fetching in --help
* build-aux/bootstrap (usage): Document how Gnulib sources are fetched.
2018-04-09 Colin Watson <cjwatson@debian.org>
bootstrap: allow non-submodule control of gnulib
* build-aux/bootstrap: Honour GNULIB_URL and GNULIB_REVISION in
bootstrap.conf when fetching gnulib using "git clone" or via
GNULIB_SRCDIR.
2018-05-21 Paul Eggert <eggert@cs.ucla.edu>
crypto: omit stream ops Emacs doesn’t need
* lib/md5.c (md5_stream):
* lib/sha1.c (sha1_stream):
* lib/sha256.c (shaxxx_stream, sha256_stream, sha224_stream):
* lib/sha512.c (shaxxx_stream, sha512_stream, sha384_stream):
Compile stream functions only if GL_COMPILE_CRYPTO_STREAM is
defined. Emacs needs this, as it does not use the stream
operations and doesn’t need all the af_alg stuff we’ve recently
added. Perhaps a similar change is needed to the other crypto
modules, but this patch changes only those needed for Emacs.
* modules/crypto/md5-buffer, modules/crypto/sha1-buffer:
* modules/crypto/sha256-buffer, modules/crypto/sha512-buffer:
New modules, used by Emacs.
* modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256:
* modules/crypto/sha512: Rewrite to depend on the new modules.
2018-05-20 Pádraig Brady <P@draigBrady.com>
fts: avoid a memory leak edge case
* lib/fts.c (fts_open): Set an appropriate fts_level
so that an immediate fts_close() will free the allocation.
* tests/test-fts.c (fts_dealloc): Add a test case which
will trigger under valgrind or address sanitizer.
Fixes https://bugs.gnu.org/31439
2018-05-20 Bruno Haible <bruno@clisp.org>
wcwidth tests: Fix link error.
* modules/wcwidth-tests (Makefile.am): Link test-wcwidth against
$(LIBUNISTRING).
2018-05-20 Bruno Haible <bruno@clisp.org>
regex: Fix "error: possibly undefined macro: gl_GLIBC21".
* modules/regex (Files): Add m4/glibc21.m4.
2018-05-20 Bruno Haible <bruno@clisp.org>
localcharset: Optimize.
* lib/localcharset.c (alias_table): Comment out no-op mappings for
platforms where these don't matter. This reduces the table size,
which in turn reduces the lookup time.
2018-05-19 Bruno Haible <bruno@clisp.org>
localcharset: Map the locale encodings found in newer OSes.
* lib/localcharset.c (alias_table): Add mapping for locale encodings
found in FreeBSD 11, NetBSD 7, Solaris 10, Openindiana, HP-UX 11.31,
IRIX 6.5, Minix 3.3.
* lib/localcharset.h: Update comments accordingly. Also for Cygwin 2.9.
2018-05-19 Bruno Haible <bruno@clisp.org>
localcharset: Move mapping tables into the code. Use a binary search.
* lib/localcharset.h: Document the GNU canonical names for character
encodings here.
* lib/localcharset.c: Don't include <fcntl.h>, <unistd.h>,
relocatable.h, configmake.h.
(O_NOFOLLOW, ISSLASH, DIRECTORY_SEPARATOR, getc, volatile): Remove
macros.
(charset_aliases): Remove variable.
(get_charset_aliases): Remove function.
(struct table_entry): New type.
(alias_table, locale_table): New constants.
(locale_charset): Use the alias_table or locale_table to get the
canonicalized encoding name.
* lib/config.charset: Remove file.
* lib/ref-add.sin: Remove file.
* lib/ref-del.sin: Remove file.
* m4/localcharset.m4 (gl_LOCALCHARSET): Don't require gl_FCNTL_O_FLAGS,
AC_CANONICAL_HOST, gl_GLIBC21. Don't check for getc_unlocked.
* modules/localcharset (Notice): Remove.
(Files): Remove config.charset, ref-add.sin, ref-del.sin, fcntl-o.m4,
glibc21.m4.
(Depends-on): Remove configmake.
(configure.ac): Define LOCALCHARSET_TESTS_ENVIRONMENT to empty.
(Makefile.am): Simplify.
* build-aux/prefix-gnulib-mk: Remove special code for the removed files.
2018-05-19 Bruno Haible <bruno@clisp.org>
localcharset: Add a manual test.
* tests/test-localcharset.c: New file.
* modules/localcharset-tests: New file.
2018-05-19 Bruno Haible <bruno@clisp.org>
localcharset: Remove support for obsolete platforms.
* lib/config.charset: Remove support for Linux/libc5, glibc-2.0.x, and
Mac OS X 10.2. Comment out dubious entry for Solaris.
2018-05-19 Jim Meyering <meyering@fb.com>
gnupload: adjust comment
* build-aux/gnupload: Add FIXME-2020 comment, to make it slightly
more likely we'll remove the just-added code in a year or two.
2018-05-19 Bruno Haible <bruno@clisp.org>
gnupload: Fix "gpg-agent is not available in this session" error.
* build-aux/gnupload (GPG): Pick the right GNUPG executable to use.
2018-05-16 Paul Eggert <eggert@cs.ucla.edu>
crypto/af_alg: fix --help
* m4/af_alg.m4: Avoid spurious newline in --help output.
2018-05-13 Bruno Haible <bruno@clisp.org>
nl_langinfo: Fix compilation error on Android.
* lib/nl_langinfo.c (nl_langinfo): Define values for the items GROUPING,
INT_CURR_SYMBOL, etc. only if these items are defined.
2018-05-13 Bruno Haible <bruno@clisp.org>
truncate: Fix compilation error on Android.
* m4/truncate.m4 (gl_FUNC_TRUNCATE): Test also whether 'truncate' is
declared. Set HAVE_DECL_TRUNCATE, not HAVE_TRUNCATE.
* lib/unistd.in.h (truncate): Test HAVE_DECL_TRUNCATE, not
HAVE_TRUNCATE.
* modules/truncate: Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_TRUNCATE,
not HAVE_TRUNCATE.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_TRUNCATE, not
HAVE_TRUNCATE.
* doc/posix-functions/truncate.texi: Mention the issue.
2018-05-13 Bruno Haible <bruno@clisp.org>
pthread: Fix compilation error on Android.
* lib/pthread.in.h: Use _GL_ALREADY_INCLUDING_PTHREAD_H to shortcut
recursive inclusion of this file.
2018-05-13 Bruno Haible <bruno@clisp.org>
posix_spawn: Fix compilation error on Android.
* lib/spawn.in.h (posix_spawnattr_t): Consider also the case
HAVE_POSIX_SPAWNATTR_T = 1 && HAVE_POSIX_SPAWN = 0.
(posix_spawn_file_actions_t): Consider also the case
HAVE_POSIX_SPAWN_FILE_ACTIONS_T = 1 && HAVE_POSIX_SPAWN = 0.
2018-05-13 Bruno Haible <bruno@clisp.org>
tsearch: Move from K&R C to ANSI C.
* lib/tsearch.c (tfind): Convert definition to ANSI C.
2018-05-13 Bruno Haible <bruno@clisp.org>
tsearch: Fix compilation error on Android.
* lib/search.in.h (twalk): Declare when HAVE_TWALK, not HAVE_TSEARCH,
is 0.
(GNULIB_defined_tsearch, GNULIB_defined_twalk): New macros.
* lib/tsearch.c (tsearch, tfind, tdelete): Define only if
GNULIB_defined_tsearch is true.
(twalk): Define only if GNULIB_defined_twalk is true.
* modules/tsearch (configure.ac): Compile tsearch.c also if HAVE_TWALK
is 0.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Set HAVE_TWALK.
* m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize HAVE_TWALK.
* modules/search (Makefile.am): Substitute HAVE_TWALK.
2018-05-13 Bruno Haible <bruno@clisp.org>
imaxdiv: Fix compilation error on Android.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Set HAVE_IMAXDIV_T to 0 if imaxdiv_t
is not defined.
* lib/inttypes.in.h (imaxdiv_t): Define if HAVE_IMAXDIV_T, not
HAVE_DECL_IMAXDIV, is 0.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXDIV_T.
* modules/inttypes-incomplete (Makefile.am): Substitute HAVE_IMAXDIV_T.
2018-05-13 Bruno Haible <bruno@clisp.org>
Support selective inclusion mechanism of recent mingw.org header files.
Reported by Eli Zaretskii <eliz@gnu.org>.
* lib/sys_types.in.h: On mingw, when __need_off_t, __need___off64_t,
__need_ssize_t, or __need_time_t is defined, just include the system's
<sys/types.h>.
* lib/locale.in.h: On mingw, when __need_locale_t is defined, just
include the system's <locale.h>.
2018-05-13 Bruno Haible <bruno@clisp.org>
Avoid compilation error due to 'mmap' on Android.
* lib/vma-iter.c (_FILE_OFFSET_BITS): Undefine on Android.
* lib/get-rusage-as.c (_FILE_OFFSET_BITS): Likewise.
* tests/zerosize-ptr.h (_FILE_OFFSET_BITS, __USE_FILE_OFFSET64):
Undefine on Android.
2018-05-13 Bruno Haible <bruno@clisp.org>
Add cross-compilation guesses for Linux systems without glibc.
* m4/chown.m4 (AC_FUNC_CHOWN): Add cross-compilation guess for Linux.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/link.m4 (gl_FUNC_LINK): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
* m4/mknod.m4 (gl_FUNC_MKNOD): Likewise.
* m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
* m4/readlink.m4 (gl_FUNC_READLINK): Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/select.m4 (gl_FUNC_SELECT): Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
2018-05-13 Bruno Haible <bruno@clisp.org>
getpagesize: Fix compilation error on Android.
* m4/getpagesize.m4 (gl_CHECK_FUNC_GETPAGESIZE): New macro.
(gl_FUNC_GETPAGESIZE): Invoke it instead of AC_CHECK_FUNC.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Don't invoke
AC_CHECK_FUNC. Instead, invoke gl_CHECK_FUNC_GETPAGESIZE and define
HAVE_GETPAGESIZE accordingly.
* modules/getcwd (Files): Add m4/getpagesize.m4.
2018-05-13 Bruno Haible <bruno@clisp.org>
tcgetsid: Fix compilation error on Android.
* m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
getpass: Fix configure test for Android.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
ffs: Fix compilation error on Android.
* m4/ffs.m4 (gl_FUNC_FFS): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
mkfifo: Fix compilation error on Android.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
c-strtod: Fix configure test for Android.
* m4/c-strtod.m4 (gl_C_STRTOD): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
random: Fix compilation error on Android.
* m4/random.m4 (gl_FUNC_RANDOM): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
grantpt: Fix compilation error on Android.
* m4/grantpt.m4 (gl_FUNC_GRANTPT): Use AC_LINK_IFELSE instead of
AC_CHECK_FUNC.
2018-05-13 Bruno Haible <bruno@clisp.org>
stdioext: Fix compilation errors with newer Android headers.
* lib/stdio-impl.h (fp_, fp_ub): Define differently for Android.
(__SLBF, __SNBF, __SRD, __SWR, __SRW, __SEOF, __SERR, __SOFF): Define
fallbacks for Android.
* lib/fpending.c: Update comments.
* lib/fpurge.c: Likewise.
* lib/freadable.h: Likewise.
* lib/freadable.c: Likewise.
* lib/freadahead.c: Likewise.
* lib/freading.h: Likewise.
* lib/freadptr.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.h: Likewise.
* lib/fwriting.c: Likewise.
2018-05-13 Bruno Haible <bruno@clisp.org>
doc: Add info about Android versions 2.0 to 8.1.
* doc/**/*.texi: Add info about functions in all released versions of
Bionic.
2018-05-12 Bruno Haible <bruno@clisp.org>
fseeko: On mingw, don't use the hidden function _fseeki64.
Reported by Eli Zaretskii <eliz@gnu.org>.
* m4/fseeko.m4 (gl_PREREQ_FSEEKO): Test whether _fseeki64 is declared.
* lib/fseeko.c (fseeko): Use _fseeki64 only if it is declared.
2018-05-12 Bruno Haible <bruno@clisp.org>
glob: Choose 'dirent_type' in a way that works better on mingw.
Reported and suggested by Eli Zaretskii <eliz@gnu.org>.
* lib/glob.c (dirent_type): Define as uint_fast32_t.
2018-05-12 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Avoid warning about redefining 'close'.
Reported by Eli Zaretskii <eliz@gnu.org>.
* lib/execute.c: Undefine 'close' before redefining it.
* lib/spawn-pipe.c: Likewise.
2018-05-12 Bruno Haible <bruno@clisp.org>
nanosleep: Avoid test failure on mingw when it has nanosleep.
Reported by Eli Zaretskii <eliz@gnu.org>.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check whether alarm() exists.
If it does not exist, use a simpler test program that does not call
alarm().
2018-05-10 Bruno Haible <bruno@clisp.org>
lock, cond, thread, tls: Use a different symbol as libpthread witness.
Reported by Devin Hussey <husseydevin@gmail.com>.
Based on a patch by Paul Eggert.
* lib/glthread/lock.h (pthread_in_use): Use 'pthread_mutexattr_gettype'
as witness of libpthread.
* lib/glthread/cond.h (pthread_in_use): Likewise.
* lib/glthread/thread.h (pthread_in_use): Likewise.
* lib/glthread/tls.h (pthread_in_use): Likewise.
2018-05-10 Bruno Haible <bruno@clisp.org>
cond tests: Fix compilation error on Solaris.
* tests/test-cond.c: Include <unistd.h> before defining 'yield' as a
macro.
2018-05-10 Bruno Haible <bruno@clisp.org>
doc: Add partial info about Android 4.3.
* doc/*-functions/*.texi: Add info about functions that were added
to Bionic between Android 4.3 and Android 9.0.
2018-05-10 Bruno Haible <bruno@clisp.org>
doc: Add info about Android 9.0.
* doc/**/*.texi: Add info about functions and headers in Bionic from
Android 9.0.
2018-05-09 Paul Eggert <eggert@cs.ucla.edu>
af_alg: fix my typo in afalg_buffer
* lib/af_alg.c (afalg_buffer): Fix typo I recently introduced.
(afalg_stream): Simplify and avoid the need for a runtime test
at the end.
af_alg: recover better from crypto failures
* lib/af_alg.c (afalg_stream): Recover from crypto failures if the
input stream is seekable, by repositioning the stream back to
where it was, possibly by just calling sendfile with an offset
arg. This lets us return -EAFNOSUPPORT instead of -EIO in some
cases, which lets our callers try again with user-mode code.
* modules/crypto/af_alg (Depends-on): Depend on fseeko and ftello
instead of on fflush and lseek.
af_alg: distiguish I/O errors better
* lib/af_alg.c (afalg_buffer, afalg_stream): Return -EAFNOSUPPORT,
not -EIO, if it’s OK for the caller to try again with user-mode code.
(afalg_stream) [!_WIN32 || __CYGWIN__]: Return -EIO (not possibly
some other error number) if fflush fails, as the caller should not
try again that case.
af_alg: avoid gotos
* lib/af_alg.c (afalg_buffer, afalg_stream): Rewrite to avoid
gotos, as they were a source of unreliability and made the code a
bit harder to follow.
af_alg: don’t leak file descriptors into children
* lib/af_alg.c (alg_socket): Use SOCK_CLOEXEC when creating sockets.
This code should be compiled only on recent GNU/Linux platforms
so we shouldn’t have to also depend on the accept4 module.
af_alg: coalesce socket creation
* lib/af_alg.c (alg_socket): New function.
(afalg_buffer, afalg_stream): Use it. This avoids some
code duplication and gotos.
af_alg: fix file descriptor leak
* lib/af_alg.c (afalg_stream): Close leak.
af_alg: Pacify --enable-gcc-warnings on GCC 8
* lib/af_alg.c (afalg_buffer, afalg_stream): Reorder local decls
and checking to pacify gcc -Wjump-misses-init on GCC 8.
2018-05-07 Paul Eggert <eggert@cs.ucla.edu>
af_alg: Pacify --enable-gcc-warnings
Problem reported by Assaf Gordon in:
https://lists.gnu.org/r/bug-gnulib/2018-05/msg00041.html
* lib/af_alg.c (afalg_buffer): Move local decls to pacify
gcc -Wjump-misses-init.
* lib/sha512.c (shaxxx_stream): Now static.
2018-05-06 Bruno Haible <bruno@clisp.org>
af_alg: Add ability to use Linux kernel crypto API on data in memory.
* lib/af_alg.h (afalg_buffer): New declaration.
* lib/af_alg.c (afalg_buffer): New function.
2018-05-06 Bruno Haible <bruno@clisp.org>
af_alg: Avoid warnings.
* lib/af_alg.h (afalg_stream): Mark fallback declaration as inline.
* m4/af_alg.m4 (gl_AF_ALG): Require AC_C_INLINE.
2018-05-06 Bruno Haible <bruno@clisp.org>
crypto/{md5,sha1,sha256,sha512} tests: Add benchmarks.
* tests/bench-digest.h: New file.
* tests/bench-md5.c: New file.
* tests/bench-sha1.c: New file.
* tests/bench-sha224.c: New file.
* tests/bench-sha256.c: New file.
* tests/bench-sha384.c: New file.
* tests/bench-sha512.c: New file.
* modules/crypto/md5-tests (Files): Add tests/bench-md5.c,
tests/bench-digest.h.
(Depends-on): Add getrusage, gettimeofday.
(Makefile.am): Add variables to build bench-md5.
* modules/crypto/sha1-tests (Files): Add tests/bench-sha1.c,
tests/bench-digest.h.
(Depends-on): Add getrusage, gettimeofday.
(Makefile.am): Add variables to build bench-sha1.
* modules/crypto/sha256-tests (Files): Add tests/bench-sha224.c,
tests/bench-sha256.c, tests/bench-digest.h.
(Depends-on): Add getrusage, gettimeofday.
(Makefile.am): Add variables to build bench-sha224, bench-sha256.
* modules/crypto/sha512-tests (Files): Add tests/bench-sha384.c,
tests/bench-sha512.c, tests/bench-digest.h.
(Depends-on): Add getrusage, gettimeofday.
(Makefile.am): Add variables to build bench-sha384, bench-sha512.
2018-05-06 Bruno Haible <bruno@clisp.org>
af_alg: Fix a resource leak.
* lib/af_alg.c (afalg_stream): Close socket before returning -EINVAL.
New local variable 'result'.
2018-05-06 Bruno Haible <bruno@clisp.org>
af_alg: Fix bug with streams that are not at position 0.
* lib/af_alg.c (afalg_stream): Before sendfile, invoke fflush. Don't
assume that the stream is positioned at position 0.
* lib/af_alg.h (afalg_stream): Mention restriction regarding the state
of the stream.
* lib/md5.h (md5_stream): Likewise.
* lib/sha1.h (sha1_stream): Likewise.
* lib/sha256.h (sha256_stream, sha224_stream): Likewise.
* lib/sha512.h (sha512_stream, sha384_stream): Likewise.
* modules/crypto/af_alg (Depends-on): Add fflush, lseek.
crypto/{md5,sha1,sha256,sha512} tests: Enhance test.
* tests/test-digest.h (test_digest_on_files): Add a test with a FILE
stream that is not positioned at the beginning.
2018-05-06 Bruno Haible <bruno@clisp.org>
af_alg: Add configure option to enable/disable use of Linux crypto API.
Suggested by Assaf Gordon <assafgordon@gmail.com>.
* m4/af_alg.m4 (gl_AF_ALG): Add AC_ARG_WITH invocation. Define C macro
USE_LINUX_CRYPTO_API.
* lib/af_alg.h: Test USE_LINUX_CRYPTO_API, not HAVE_LINUX_IF_ALG_H.
* lib/af_alg.c: Likewise.
2018-05-06 Bruno Haible <bruno@clisp.org>
Followup to 'af_alg: New module.'.
* modules/crypto/md5 (Depends-on): Remove sys_socket, sys_stat.
* modules/crypto/sha1 (Depends-on): Likewise.
* modules/crypto/sha256 (Depends-on): Likewise.
* modules/crypto/sha512 (Depends-on): Likewise.
2018-05-05 Paul Eggert <eggert@cs.ucla.edu>
crypto/{md5,sha1,sha256,sha512}: simplify
* lib/md5.c (md5_stream):
* lib/sha1.c (sha1_stream):
* lib/sha256.c (shaxxx_stream):
Simplify, partly by assuming C99.
* lib/sha256.c (shaxxx_stream):
New function, which implements both sha256 and sha224.
Simplify, partly by assuming C99.
(sha256_stream, sha224_stream):
Use it to avoid code duplication, removing a FIXME.
* lib/sha512.c (shaxxx_stream, sha512_stream, sha384_stream):
Likewise.
af_alg: Improve comments.
* lib/af_alg.h: Use imperatives and tighten up wording.
2018-05-05 Bruno Haible <bruno@clisp.org>
af_alg: Improve comments.
* lib/af_alg.c (afalg_stream): Improve comment about kernel bug.
2018-05-05 Bruno Haible <bruno@clisp.org>
af_alg: New module.
* lib/af_alg.h: Test HAVE_* macro through '#if', not '#ifdef'.
* lib/af_alg.c: Include "af_alg.h" before the other header files.
* lib/md5.c: Include "af_alg.h" unconditionally.
(md5_stream): Invoke afalg_stream unconditionally.
* lib/sha1.c: Include "af_alg.h" unconditionally.
(sha1_stream): Invoke afalg_stream unconditionally.
* lib/sha256.c: Include "af_alg.h" unconditionally.
(sha256_stream, sha224_stream): Invoke afalg_stream unconditionally.
* lib/sha512.c: Include "af_alg.h" unconditionally.
(sha512_stream, sha384_stream): Invoke afalg_stream unconditionally.
* m4/af_alg.m4: Renamed from m4/linux-if-alg.m4.
(gl_AF_ALG): Renamed from gl_LINUX_IF_ALG_H.
* modules/crypto/af_alg: New file.
* modules/crypto/md5 (Files): Remove files that are now in the
'crypto/af_alg' module.
(Depends-on): Add crypto/af_alg.
(configure.ac): Remove gl_LINUX_IF_ALG_H invocation.
(Makefile.am): Don't mention af_alg.c here.
* modules/crypto/sha1 (Files): Remove files that are now in the
'crypto/af_alg' module.
(Depends-on): Add crypto/af_alg.
(configure.ac): Remove gl_LINUX_IF_ALG_H invocation.
(Makefile.am): Don't mention af_alg.c here.
* modules/crypto/sha256 (Files): Remove files that are now in the
'crypto/af_alg' module.
(Depends-on): Add crypto/af_alg.
(configure.ac): Remove gl_LINUX_IF_ALG_H invocation.
(Makefile.am): Don't mention af_alg.c here.
* modules/crypto/sha512 (Files): Remove files that are now in the
'crypto/af_alg' module.
(Depends-on): Add crypto/af_alg.
(configure.ac): Remove gl_LINUX_IF_ALG_H invocation.
(Makefile.am): Don't mention af_alg.c here.
2018-05-05 Paul Eggert <eggert@cs.ucla.edu>
crypto tests: pacify GCC
* tests/test-digest.h (test_digest_on_files):
Don’t assume digest size fits in int (!).
af_alg: minor style improvements
* lib/af_alg.c (afalg_stream): Prefer C99 style
decl-after-statement, since we’re already assuming C99. Clarify
by strengthening the bind test and omit unnecessary assignment.
2018-05-05 Bruno Haible <bruno@clisp.org>
af_alg: Fix bug on empty files.
* lib/af_alg.c (afalg_stream): Ignore the kernel's result if the input
stream is empty.
2018-05-05 Paul Eggert <eggert@cs.ucla.edu>
sys-limits.h: new file for crypto and safe I/O
* lib/af_alg.c: Include sys-limits.h.
(MAX_RW_COUNT): Remove. Use replaced by SYS_BUFSIZE_MAX.
(afalg_stream): Also reject negative sizes for sendfile; they
should not happen and the code is a bit cleaner and faster this way.
* lib/safe-read.c: Include sys-limits.h.
(BUGGY_READ_MAXIMUM): Remove. All uses replaced by SYS_BUFSIZE_MAX.
* lib/sys-limits.h: New file, with values and commentary derived
from the old safe-read.c and from GNU Emacs sysdep.c.
* modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256:
* modules/crypto/sha512, modules/safe-read, modules/safe-write:
Add lib/sys-limits.h to Files section.
2018-05-05 Bruno Haible <bruno@clisp.org>
af_alg: Improve function signature.
* lib/af_alg.h (afalg_stream): Swap second and third argument.
* lib/af_alg.c (afalg_stream): Likewise.
* lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: Callers changed.
2018-05-05 Bruno Haible <bruno@clisp.org>
crypto/{md5,sha1,sha256,sha512}: Fix compilation error (S_TYPEISTMO).
* modules/crypto/md5 (Depends-on): Add 'sys_stat'.
* modules/crypto/sha1 (Depends-on): Likewise.
* modules/crypto/sha256 (Depends-on): Likewise.
* modules/crypto/sha512 (Depends-on): Likewise.
2018-05-05 Bruno Haible <bruno@clisp.org>
crypto/{md5,sha1,sha256,sha512}: Fix module description.
* modules/crypto/md5 (Depends-on): Add 'sys_socket'.
* modules/crypto/sha1 (Depends-on): Likewise.
* modules/crypto/sha256 (Depends-on): Likewise.
* modules/crypto/sha512 (Depends-on): Likewise.
2018-05-05 Bruno Haible <bruno@clisp.org>
af_alg: Add documentation.
* lib/af_alg.h: Add comments.
2018-05-05 Bruno Haible <bruno@clisp.org>
sha512: Add tests.
* tests/test-sha512.c: New file.
* modules/crypto/sha512-tests: New file.
2018-05-05 Bruno Haible <bruno@clisp.org>
sha256: Add tests.
* tests/test-sha256.c: New file.
* modules/crypto/sha256-tests: New file.
2018-05-05 Bruno Haible <bruno@clisp.org>
sha1 tests: Add test for sha1_stream.
* tests/test-sha1.c: Include test-digest.h.
(main): Invoke test_digest_on_files on 'sha1_stream'.
* modules/crypto/sha1-tests (Files): Add tests/test-digest.h.
2018-05-05 Bruno Haible <bruno@clisp.org>
md5 tests: Add test for md5_stream.
* tests/test-digest.h: New file.
* tests/test-md5.c: Include test-digest.h.
(main): Invoke test_digest_on_files on 'md5_stream'.
* modules/crypto/md5-tests (Files): Add tests/test-digest.h.
2018-04-28 Matteo Croce <mcroce@redhat.com>
md5sum: Use AF_ALG when available.
* lib/md5.c: Include af_alg.h.
(md5_stream): Use afalg_stream when available.
* modules/crypto/md5 (Files): Add the af_alg files.
(configure.ac): Invoke gl_LINUX_IF_ALG_H.
(Makefile.am): Add af_alg.c.
2018-04-28 Matteo Croce <mcroce@redhat.com>
sha512sum: Use AF_ALG when available.
* lib/sha512.c: Include af_alg.h.
(sha512_stream, sha384_stream): Use afalg_stream when available.
* modules/crypto/sha512 (Files): Add the af_alg files.
(configure.ac): Invoke gl_LINUX_IF_ALG_H.
(Makefile.am): Add af_alg.c.
2018-04-28 Matteo Croce <mcroce@redhat.com>
sha256sum: Use AF_ALG when available.
* lib/sha256.c: Include af_alg.h.
(sha256_stream, sha224_stream): Use afalg_stream when available.
* modules/crypto/sha256 (Files): Add the af_alg files.
(configure.ac): Invoke gl_LINUX_IF_ALG_H.
(Makefile.am): Add af_alg.c.
2018-04-28 Matteo Croce <mcroce@redhat.com>
sha1sum: Use AF_ALG when available.
* lib/af_alg.h: New file.
* lib/af_alg.c: New file.
* lib/sha1.c: Include af_alg.h.
(sha1_stream): Use afalg_stream when available.
* m4/linux-if-alg.m4: New file.
* modules/crypto/sha1 (Files): Add the new files.
(configure.ac): Invoke gl_LINUX_IF_ALG_H.
(Makefile.am): Add af_alg.c.
2018-05-05 Bruno Haible <bruno@clisp.org>
all: Replace more http URLs by https URLs.
* lib/localename.c: Use https: URL.
* lib/timespec.h: Likewise.
2018-05-03 Paul Eggert <eggert@cs.ucla.edu>
maint: port more modules to GCC 8
* lib/dirname.h (base_name):
* lib/exclude.h (new_exclude):
* lib/xstrndup.h (xstrndup):
Add malloc attribute.
* lib/readutmp.c: Pacify GCC 8 about safe use of strncpy.
* lib/sig-handler.h (get_handler) [SA_SIGINFO]: Simplify.
This pacifies GCC 8.
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Define _GL_ATTRIBUTE_MALLOC here. All other definitions removed.
2018-05-03 Bruno Haible <bruno@clisp.org>
Simplify code. Drop support for Borland C++ on Windows.
Reported by Gisle Vanem <gisle.vanem@gmail.com>.
* lib/accept4.c: Simplify 'defined _WIN32 || defined __WIN32__' to just
'defined _WIN32'.
* lib/canonicalize-lgpl.c: Likewise.
* lib/classpath.c: Likewise.
* lib/clean-temp.c: Likewise.
* lib/csharpexec.c: Likewise.
* lib/ctime.c: Likewise.
* lib/dosname.h: Likewise.
* lib/dup2.c: Likewise.
* lib/errno.in.h: Likewise.
* lib/error.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/execute.c: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/fcntl.c: Likewise.
* lib/filename.h: Likewise.
* lib/findprog.c: Likewise.
* lib/flock.c: Likewise.
* lib/fopen.c: Likewise.
* lib/freopen.c: Likewise.
* lib/fstat.c: Likewise.
* lib/fsync.c: Likewise.
* lib/gc-gnulib.c: Likewise.
* lib/get-rusage-data.c: Likewise.
* lib/getaddrinfo.c: Likewise.
* lib/getdelim.c: Likewise.
* lib/getdtablesize.c: Likewise.
* lib/gethostname.c: Likewise.
* lib/getlogin.c: Likewise.
* lib/getlogin_r.c: Likewise.
* lib/getopt.c: Likewise.
* lib/getpagesize.c: Likewise.
* lib/getpass.c: Likewise.
* lib/getrusage.c: Likewise.
* lib/gettimeofday.c: Likewise.
* lib/glob.c: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/isapipe.c: Likewise.
* lib/javaexec.c: Likewise.
* lib/link.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/localename.h: Likewise.
* lib/localename.c: Likewise.
* lib/localtime.c: Likewise.
* lib/lseek.c: Likewise.
* lib/mbsinit.c: Likewise.
* lib/mkdir.c: Likewise.
* lib/msvc-nothrow.h: Likewise.
* lib/nanosleep.c: Likewise.
* lib/nl_langinfo.c: Likewise.
* lib/nonblocking.c: Likewise.
* lib/nproc.c: Likewise.
* lib/open.c: Likewise.
* lib/openpty.c: Likewise.
* lib/pathmax.h: Likewise.
* lib/pipe-filter-aux.c: Likewise.
* lib/pipe-filter-gi.c: Likewise.
* lib/pipe-filter-ii.c: Likewise.
* lib/pipe.c: Likewise.
* lib/pipe2.c: Likewise.
* lib/poll.c: Likewise.
* lib/popen.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/putenv.c: Likewise.
* lib/read.c: Likewise.
* lib/relocatable.c: Likewise.
* lib/rename.c: Likewise.
* lib/same-inode.h: Likewise.
* lib/secure_getenv.c: Likewise.
* lib/select.c: Likewise.
* lib/sethostname.c: Likewise.
* lib/setlocale.c: Likewise.
* lib/sigaction.c: Likewise.
* lib/sigprocmask.c: Likewise.
* lib/sleep.c: Likewise.
* lib/spawn-pipe.h: Likewise.
* lib/spawn-pipe.c: Likewise.
* lib/spawni.c: Likewise.
* lib/stat-time.h: Likewise.
* lib/stat-w32.c: Likewise.
* lib/stat.c: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdio-read.c: Likewise.
* lib/stdio-write.c: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/strerror_r.c: Likewise.
* lib/strftime-fixes.c: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_types.in.h: Likewise.
* lib/sys_wait.in.h : Likewise.
* lib/system-quote.h: Likewise.
* lib/system-quote.c: Likewise.
* lib/tmpdir.c: Likewise.
* lib/tzset.c: Likewise.
* lib/uname.c: Likewise.
* lib/unistd.in.h: Likewise.
* lib/utime.in.h: Likewise.
* lib/utime.c: Likewise.
* lib/utimecmp.c: Likewise.
* lib/utimens.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/vma-iter.h: Likewise.
* lib/vma-iter.c: Likewise.
* lib/wait-process.c: Likewise.
* lib/wcsftime.c: Likewise.
* lib/wctype.in.h: Likewise.
* lib/write.c: Likewise.
* tests/nap.h: Likewise.
* tests/test-cloexec.c: Likewise.
* tests/test-dup-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-get-rusage-data.c: Likewise.
* tests/test-getaddrinfo.c: Likewise.
* tests/test-getlogin.h: Likewise.
* tests/test-isatty.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-mbrtowc-w32.c: Likewise.
* tests/test-nonblocking.c: Likewise.
* tests/test-nonblocking-pipe-main.c: Likewise.
* tests/test-nonblocking-socket-main.c: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-pipe2.c: Likewise.
* tests/test-poll.c: Likewise.
* tests/test-pthread_sigmask1.c: Likewise.
* tests/test-select.h: Likewise.
* tests/test-sethostname2.c: Likewise.
* tests/test-sigprocmask.c: Likewise.
* tests/test-spawn-pipe-child.c: Likewise.
* tests/test-stat-time.c: Likewise.
* tests/test-system-quote-main.c: Likewise.
* tests/test-utimens-common.h: Likewise.
* tests/test-wcrtomb-w32.c: Likewise.
* m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
* m4/javacomp.m4 (gt_JAVACOMP): Likewise.
* m4/javaexec.m4 (gt_JAVAEXEC): Likewise.
* m4/locale-ar.m4 (gt_LOCALE_AR): Likewise.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
* m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Likewise.
* m4/nocrash.m4 (GL_NOCRASH): Likewise.
* m4/pathmax.m4 (gl_PATHMAX_SNIPPET): Likewise.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/tmpfile.m4 (gl_FUNC_TMPFILE): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
2018-05-02 Bruno Haible <bruno@clisp.org>
localename: Fix test failures on mingw.
* lib/localename.c (gl_locale_name_thread): Remove code specific to
native Windows.
(gl_locale_name_posix): Move code specific to native Windows here.
* tests/test-localename.c (test_locale_name, test_locale_name_posix):
Accept result without charset suffix, as it appears on mingw.
2018-04-28 Paul Smith <psmith@gnu.org>
bootstrap: Avoid gnulib operations if not needed
* build-aux/bootstrap: Remove unused variable gnulib_mk.
Set $gnulib_extra_files early so it can be overridden in .conf.
Remove redundant --import flag from $gnulib_tool_options.
Set $use_gnulib to false if no gnulib modules or files are needed.
If $use_gnulib is false, don't do anything related to gnulib.
A lot of this is just whitespace (indentation) changes.
2018-04-27 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: port to GCC 8.0
* build-aux/gcc-warning.spec: Add -Wcatch-value,
-Wclass-memaccess, -Wdo-subscript, -Wextra-semi. Adjust to the
fact that the GCC help message now mentions operands for
-Warray-bounds, -Wformat, -Wformat-overflow, -Wformat-truncation,
-Wimplicit-fallthrough, -Wplacement-new, -Wshift-overflow,
-Wstrict-aliasing, -Wstrict-overflow, -Wstringop-overflow,
and -Wunused-const-variable.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wattribute-alias,
-Wcast-align=strict, -Wcast-function-type, -Wif-not-aligned,
-Wmissing-attributes, -Wmultistatement-macros,
-Wpacked-not-aligned, -Wsizeof-pointer-div, -Wstringop-truncation,
-Wsuggest-attribute=cold, -Wsuggest-attribute=malloc.
2018-04-24 Bruno Haible <bruno@clisp.org>
sys_socket: Make SO_REUSEPORT available across platforms.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
* lib/sys_socket.in.h (SO_REUSEPORT): New macro.
* doc/posix-headers/sys_socket.texi: Mention the issue.
* tests/test-poll.c (SO_REUSEPORT): Remove.
* tests/test-select.h: Include <sys/socket.h>.
(SO_REUSEPORT): Remove.
* modules/select-tests (Depends-on): Add 'sys_socket'.
2018-04-21 Benno Schulenberg <bensberg@telfort.nl> (tiny change)
localcharset: short-circuit the search for an alias on a Mac
* lib/localcharset.c (get_charset_aliases): Add a tautological
UTF-8 entry to speed up the search for this case.
Most machines default to a UTF-8 locale nowadays, so begin the
list of aliases with a dummy UTF-8 entry so it will be found
immediately and a time-consuming search through the rest of
the list is avoided.
2018-04-11 Paul Eggert <eggert@cs.ucla.edu>
fts: add comment
* lib/fts.c (fts_build): Explain why ==, not >.
See remark by Bernhard Voelker in:
https://lists.gnu.org/r/bug-gnulib/2018-04/msg00041.html
fts: fix bug in find across filesystems
This fixes a bug I introduced last summer.
Problem reported by Kamil Dudka in:
https://lists.gnu.org/r/bug-gnulib/2018-04/msg00033.html
* lib/fts.c (filesystem_type, dirent_inode_sort_may_be_useful)
(leaf_optimization):
New arg for file descriptor. All callers changed.
(fts_build): Check for whether inodes should be sorted
before closing the directory.
2018-04-07 Bruno Haible <bruno@clisp.org>
unicase/u*-context: Fix link errors with libunistring <= 0.9.9.
Reported by Genki Sky <sky@genki.is>.
* modules/unicase/u8-prefix-context (configure.ac): Require libunistring
version 0.9.10 or newer.
* modules/unicase/u8-suffix-context (configure.ac): Likewise.
* modules/unicase/u16-prefix-context (configure.ac): Likewise.
* modules/unicase/u16-suffix-context (configure.ac): Likewise.
* modules/unicase/u32-prefix-context (configure.ac): Likewise.
* modules/unicase/u32-suffix-context (configure.ac): Likewise.
2018-04-07 Bruno Haible <bruno@clisp.org>
execute: Update comment.
* lib/execute.h (execute): Refer to spawn-pipe.h, not pipe.h.
2018-04-05 Paul Eggert <eggert@cs.ucla.edu>
fts: treat CIFS like NFS
Problem reported by Kamil Dudka in:
https://lists.gnu.org/r/bug-gnulib/2018-04/msg00015.html
* lib/fts.c (S_MAGIC_CIFS): New macro.
(dirent_inode_sort_may_be_useful, leaf_optimization):
Treat CIFS like NFS.
2018-03-28 Bruno Haible <bruno@clisp.org>
c-stack: Fix possible build failure on some platforms.
* lib/c-stack.c (die): Define whenever this function is referenced.
2018-03-28 Paul Eggert <eggert@cs.ucla.edu>
time_rz: fix workaround for Mac OS X 10.6 infloop
Problems reported by Charles A. Roelli (Bug#27736#117).
* m4/time_rz.m4 (gl_TIME_RZ): Use a slightly different timestamp.
Also, discard output, which clutters the 'configure' log.
2018-03-27 Paul Eggert <eggert@cs.ucla.edu>
havelib: port to Solaris 10 /bin/sh
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Use 'test ! EXPR'
instead of '! test EXPR'.
2018-03-26 Paul Eggert <eggert@cs.ucla.edu>
time_rz: work around Mac OS X 10.6 infloop
* doc/posix-functions/localtime.texi:
* doc/posix-functions/localtime_r.texi: Mention the bug.
* lib/time_rz.c (localtime_rz): Work around the bug. It’d be
better to fix localtime and localtime_r instead, but that would be
more work and is not needed to fix the Emacs problem.
* m4/time_rz.m4 (gl_TIME_RZ): Detect the bug.
2018-03-24 Jim Meyering <meyering@fb.com>
test-version-etc.sh: don't use diff directly: use init.sh's compare
We'd rather not sacrifice readable "diff -u" output even for
"diff -c" output (not supported by busybox) or for even less
readable ed-style "diff" output. So use init.sh's compare function
* tests/test-version-etc.sh: Source init.sh and add "." to path.
Remove "./" from invocation of test-version-etc, so we use path.
And s/diff/compare/.
* modules/version-etc-tests (Depends-on): Add test-framework-sh,
to get init.sh.
Prompted by Eric Blake's comments in
https://lists.gnu.org/r/sed-devel/2018-03/msg00015.html
2018-03-24 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Add support for Java 10.
* m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 10 and
target-version 10.
* lib/javaversion.h: Update comments.
* lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND,
source_version_index, get_goodcode_snippet, get_failcode_snippet,
TARGET_VERSION_BOUND, target_version_index,
corresponding_classfile_version): Accept source_version 10 and
target_version 10.
* lib/javacomp.h: Update comments accordingly.
2018-03-24 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Update comments.
* m4/javacomp.m4: Update comments regarding gcj.
* lib/javacomp.h: Likewise.
2018-03-24 Bruno Haible <bruno@clisp.org>
javacomp-script, javacomp: Fix support for Java 7, 8, 9.
* lib/javaversion.h: Update comments.
* lib/javacomp.h: Likewise.
* lib/javacomp.c (default_target_version, source_version_index,
get_goodcode_snippet, get_failcode_snippet): Recognize "9" instead of
"1.9".
(TARGET_VERSION_BOUND): Bump to 9.
(target_version_index, corresponding_classfile_version): Recognize "9"
instead of "1.9".
(get_source_version_for_javac): New function.
(is_envjavac_nongcj_usable, is_javac_usable): Add
source_version_for_javac argument.
(compile_java_class): Determine and pass source_version_for_javac.
* m4/javacomp.m4: Recognize version '9' instead of '1.9'. When invoking
$JAVAC or javac, pass '-source 1.6' instead of '-source 1.5' when
appropriate.
2018-03-23 Jim Meyering <meyering@fb.com>
test-version-etc.sh: port to diff without -c
* tests/test-version-etc.sh: Don't use diff's -c option.
This caused spurious test failure on Alpine Linux, which
uses busybox's diff. Reported by Assaf Gordon in
https://lists.gnu.org/r/sed-devel/2018-03/msg00013.html
2018-03-23 Paul Eggert <eggert@cs.ucla.edu>
c-stack: port to recent GCC build
Problem reported by The Fireplace (Bug#30913).
* lib/c-stack.c (die): Define only if used.
2018-03-20 Bruno Haible <bruno@clisp.org>
euidaccess: Port to native Windows.
* lib/euidaccess.c (euidaccess): On native Windows, just use _access().
* posix-modules (exclude_for_mingw): Remove 'euidaccess'.
2018-03-19 Bruno Haible <bruno@clisp.org>
javacomp: Add support for Java 7, 8, 9.
* lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND,
source_version_index, get_goodcode_snippet, get_failcode_snippet,
corresponding_classfile_version): Accept source_version 1,7, 1.8, 1.9
and target_version 1,7, 1.8, 1.9.
* lib/javacomp.h: Update comments accordingly.
2018-03-19 Bruno Haible <bruno@clisp.org>
javacomp-script: Add support for Java 9.
* m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 1.9 and
target-version 1.9.
2018-03-16 Bruno Haible <bruno@clisp.org>
glob: Don't compile replacements on recent glibc systems.
* lib/glob.in.h: Use the usual idiom for the double-inclusion guard. If
REPLACE_GLOB is 0, include the system's <glob.h> and use
_GL_CXXALIAS_SYS.
* m4/glob.m4 (gl_GLOB): Set REPLACE_GLOB instead of GLOB_H. Accept
_GNU_GLOB_INTERFACE_VERSION 2 as well. Delete the file conf$$-globtest
inside the AC_RUN_IFELSE block. Remove GL_GENERATE_GLOB_H conditional.
* modules/glob (Dependencies): Test REPLACE_GLOB instead of GLOB_H.
Remove snippet/warn-on-use.
(configure.ac): Test REPLACE_GLOB instead of GLOB_H.
(Makefile.am): Create glob.h always. Update list of substitutions in
glob.h. Don't depend on $(WARN_ON_USE_H).
2018-03-16 Bruno Haible <bruno@clisp.org>
glob: Fix link error on native Windows.
* modules/glob (Depends-on): Add 'lstat'.
2018-03-15 Bruno Haible <bruno@clisp.org>
glob: Fix compilation error in C++ mode.
* lib/glob.in.h (_Restrict_): Define, like in regex.h and spawn.in.h.
2018-03-15 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Support for RISC-V CPU.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Recognize the various
riscv32 and riscv64 ABIs.
References:
https://github.com/riscv/riscv-toolchain-conventions
https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/RISC-V-Options.html
https://gnu-mcu-eclipse.github.io/toolchain/riscv/
2018-03-08 Paul Eggert <eggert@cs.ucla.edu>
fflush: be more paranoid about libio.h change
Suggested by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-03/msg00270.html
* lib/fbufmode.c (fbufmode):
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(disable_seek_optimization, rpl_fflush):
* lib/fpending.c (__fpending):
* lib/fpurge.c (fpurge):
* lib/freadable.c (freadable):
* lib/freadahead.c (freadahead):
* lib/freading.c (freading):
* lib/freadptr.c (freadptr):
* lib/freadseek.c (freadptrinc):
* lib/fseeko.c (fseeko):
* lib/fseterr.c (fseterr):
* lib/fwritable.c (fwritable):
* lib/fwriting.c (fwriting):
Look at _IO_ftrylockfile as well as at _IO_EOF_SEEN.
2018-03-07 Paul Eggert <eggert@cs.ucla.edu>
maint: write-file-hooks -> before-save-hook
write-file-hooks is obsolete since Emacs 22.1 (released June 2007) and
it's time to use the recommended replacement.
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html
* build-aux/announce-gen, build-aux/bootstrap:
* build-aux/do-release-commit-and-tag, build-aux/gendocs.sh:
* build-aux/git-version-gen, build-aux/gitlog-to-changelog:
* build-aux/gnu-web-doc-update, build-aux/gnupload:
* build-aux/move-if-change, build-aux/prefix-gnulib-mk:
* build-aux/update-copyright, build-aux/useless-if-before-free:
* build-aux/vc-list-files:
Update hook usage for files where Gnulib is the canonical source.
2018-03-05 Paul Eggert <eggert@cs.ucla.edu>
binary-io: pacify gcc -Wunused-parameter
Problem reported by Reuben Thomas in:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00005.html
* lib/binary-io.h (__gl_setmode, __gl_setmode_check):
Use _GL_UNUSED where appropriate.
fflush: adjust to glibc 2.28 libio.h removal
Problem reported by Daniel P. Berrangé in:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
* lib/fbufmode.c (fbufmode):
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(disable_seek_optimization, rpl_fflush):
* lib/fpending.c (__fpending):
* lib/fpurge.c (fpurge):
* lib/freadable.c (freadable):
* lib/freadahead.c (freadahead):
* lib/freading.c (freading):
* lib/freadptr.c (freadptr):
* lib/freadseek.c (freadptrinc):
* lib/fseeko.c (fseeko):
* lib/fseterr.c (fseterr):
* lib/fwritable.c (fwritable):
* lib/fwriting.c (fwriting):
Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
Define if not already defined.
2018-02-27 Paul Eggert <eggert@cs.ucla.edu>
environ: fix link error on 32-bit Cygwin
Problem reported for GNU Emacs by Ken Brown in:
https://lists.gnu.org/r/emacs-devel/2018-02/msg00765.html
* lib/unistd.in.h (environ) [__i386__]: Do not redeclare.
2018-02-24 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Fix regression on glibc.
Reported by Bernhard Voelker.
* tests/test-mbrtowc.c (main): Fix expected value of wc.
2018-02-24 Bruno Haible <bruno@clisp.org>
striconveha, uniconv/*: Avoid test failures on musl libc.
* tests/iconvsupport.c: New file.
* tests/test-striconveha.c (main): Skip autodetect_jp tests if iconv()
does not support the ISO-2022-JP-2 encoding.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* modules/striconveha-tests (Files): Add tests/iconvsupport.c.
(Makefile.am): Link test-striconveha with iconvsupport.o.
* modules/uniconv/u8-conv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u8-conv-from-enc with iconvsupport.o.
* modules/uniconv/u8-strconv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u8-strconv-from-enc with iconvsupport.o.
* modules/uniconv/u16-conv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u16-conv-from-enc with iconvsupport.o.
* modules/uniconv/u16-strconv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u16-strconv-from-enc with iconvsupport.o.
* modules/uniconv/u32-conv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u32-conv-from-enc with iconvsupport.o.
* modules/uniconv/u32-strconv-from-enc-tests (Files): Add
tests/iconvsupport.c.
(Makefile.am): Link test-u32-strconv-from-enc with iconvsupport.o.
2018-02-24 Bruno Haible <bruno@clisp.org>
localename: Add support for musl libc.
* m4/localename.m4 (gl_LOCALENAME): Check for <langinfo.h>.
* lib/localename.c (gl_locale_name_thread_unsafe): Use NL_LOCALE_NAME
on Linux platforms which define NL_LOCALE_NAME.
2018-02-24 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Don't make assumptions about the charset the C locale.
* tests/test-mbrtowc.c (main): For bytes >= 0x80, don't assume a
particular mapping in the C locale.
2018-02-24 Bruno Haible <bruno@clisp.org>
ptsname_r: Don't expect that this function sets errno.
* tests/test-ptsname_r.c (test_errors): Don't test errno after return
from ptsname_r().
* doc/glibc-functions/ptsname_r.texi: Mention the issue.
2018-02-23 Bruno Haible <bruno@clisp.org>
xmalloca: pacify gcc -Wbad-function-cast
* lib/xmalloca.h (xmalloca): Insert intermediate cast here as well.
2018-02-23 Paul Eggert <eggert@cs.ucla.edu>
nl_langinfo: pacify gcc -Wunused-function
* lib/nl_langinfo.c (ctype_codeset): Do not define if
REPLACE_NL_LANGINFO && !GNULIB_defined_CODESET, as it is unused in
this case. Without this change, I got a diagnostic when building
coreutils on Fedora 27 with gcc 7.3.1 20180130.
same: pacify gcc -Wunused-variable
* lib/same.c (same_nameat) [!CHECK_TRUNCATION]:
Omit unused variable.
malloca: pacify gcc -Wbad-function-cast
* lib/malloca.h (malloca): Pacify gcc -Wbad-function-cast
diagnostic that I got on Fedora 27 with gcc 7.3.1 20180130.
To pacify GCC, I had to cast alloca’s result to some type other
than void * before casting that to uintptr_t.
2018-02-20 Paul Eggert <eggert@cs.ucla.edu>
utimecmp: new function utimecmpat
* lib/utimecmp.c: Include fcntl.h, sys/stat.h and dirname.h.
Do not include utimens.h.
(utimecmpat): New function, generalizing utimecmp.
(utimecmp): Now a thin layer around utimecmpat.
* modules/utimecmp (Depends-on): Depend on dirname-lgpl, fstatat,
utimensat instead of on lstat and utimens.
same: new function same_nameat
* lib/same.c: Include fcntl.h.
* lib/same.c (same_nameat): New function, generalizing same_name.
(same_name): Now a thin layer around same_nameat.
* m4/same.m4 (gl_SAME): Check for fpathconf, not pathconf.
* modules/same (Depends-on): Depend on fstatat, openat.
2018-02-18 Eric Gallager <egall@gwmail.gwu.edu> (tiny change)
warnings: Add support for Objective C.
* m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)): New
macro.
2018-02-17 Bruno Haible <bruno@clisp.org>
lock: Fix test-once1 crash on FreeBSD11.
* lib/glthread/lock.h: On FreeBSD, test the weak value of the symbol
'pthread_create', not 'pthread_cancel'.
2018-02-17 Bruno Haible <bruno@clisp.org>
lock: Add test of gl_once.
* tests/test-once.c: New file.
* modules/lock-tests (Files): Add it.
(Makefile.am): Build and test programs 'test-once1' and 'test-once2'.
2018-02-17 Bruno Haible <bruno@clisp.org>
thread: Fix compilation error on IRIX.
* lib/glthread/thread.h: Include <unistd.h>. Include <signal.h> when
needed; include it outside the C++ extern "C" {} block.
* doc/posix-headers/pthread.texi: Mention the problem with
pthread_atfork on IRIX.
2018-02-04 Bruno Haible <bruno@clisp.org>
nl_langinfo: Override the system's nl_langinfo() when needed.
Reported by Jim Meyering.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Set REPLACE_NL_LANGINFO=1
also when HAVE_LANGINFO_T_FMT_AMPM or HAVE_LANGINFO_ALTMON is 0.
2018-02-04 Bruno Haible <bruno@clisp.org>
signal-h, monetary, strings: Fix build failure in some cases.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* modules/signal-h (Makefile.am): In the GNULIB_* substitutions, use '/'
as delimiter in sed command, not '|'.
* modules/monetary (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
2018-02-03 Jim Meyering <meyering@fb.com>
maint.mk: exempt "/proc/filesystems" from "file system" syntax check
* top/maint.mk (sc_file_system): Don't complain about
"/proc/filesystems".
2018-02-03 Bruno Haible <bruno@clisp.org>
stdlib: Fix compilation error on OpenIndiana.
* lib/stdlib.in.h: Before including <sys/loadavg.h>, include
<sys/time.h>.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/getloadavg.m4 (gl_GETLOADAVG): Likewise.
2018-02-03 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana.
* m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX): Require AC_PROG_EGREP,
and use $EGREP instead of 'grep -E'.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Use 'grep' instead of
'grep -E'.
2018-02-02 Paul Eggert <eggert@cs.ucla.edu>
malloca: Add a compile-time verification.
* lib/malloca.c (small_t): Verify that it is wide enough.
* modules/malloca (Depends-on): Add verify.
2018-02-02 Bruno Haible <bruno@clisp.org>
malloca: Add an argument check.
Suggested by Paul Eggert.
* lib/malloca.c (freea): Check against an invalid argument.
2018-02-02 Bruno Haible <bruno@clisp.org>
localename: Add support for OpenIndiana.
* lib/localename.c (gl_locale_name_thread_unsafe): Add code for
Solaris 11 variants with uselocale() but without getlocalename_l().
2018-02-02 Bruno Haible <bruno@clisp.org>
malloca, xmalloca: Make multithread-safe.
Reported by Florian Weimer <fweimer@redhat.com>.
Implements an idea by Ondřej Bílka <neleai@seznam.cz>.
* lib/malloca.h (malloca): In the stack allocation case, return a
pointer that is a multiple of 2 * sa_alignment_max.
(sa_increment): Remove enum item.
* lib/xmalloca.h (xmalloca): In the stack allocation case, return
a pointer that is a multiple of 2 * sa_alignment_max.
* lib/malloca.c (NO_SANITIZE_MEMORY): Remove macro.
(MAGIC_NUMBER, MAGIC_SIZE, preliminary_header, HEADER_SIZE, header,
HASH_TABLE_SIZE, mmalloca_results): Remove.
(small_t): New type.
(mmalloca, free): Rewritten.
* lib/malloca.valgrind: Remove file.
* modules/malloca (Files): Remove it.
(Depends-on): Remove verify.
2018-01-31 Bruno Haible <bruno@clisp.org>
environ: Fix link error on 64-bit Cygwin.
* lib/unistd.in.h (environ): On Cygwin, redeclare with the
__declspec(dllimport) attribute.
* doc/posix-functions/environ.texi: Mention the Cygwin problem.
2018-01-30 Bruno Haible <bruno@clisp.org>
get-rusage-data: Add support for Minix 3.
* lib/get-rusage-data.c (get_rusage_data): Return 0 on Minix.
2018-01-30 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for Minix 3.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Minix.
* lib/vma-iter.c: On Minix, read /proc/<pid>/map.
2018-01-27 Bruno Haible <bruno@clisp.org>
Fix malfunction of socket functions on HP-UX in 64-bit mode.
* m4/socketlib.m4 (gl_SOCKETLIB): Add comment.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define
_HPUX_ALT_XOPEN_SOCKET_API.
* modules/accept (Depends-on): Add 'extensions'.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* doc/posix-functions/accept.texi: Mention the HP-UX socklen_t problem.
* doc/posix-functions/getpeername.texi: Likewise.
* doc/posix-functions/getsockname.texi: Likewise.
* doc/posix-functions/getsockopt.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
2018-01-27 Bruno Haible <bruno@clisp.org>
getsockname tests: More tests.
* tests/test-getsockname.c (open_server_socket): New function, mostly
copied from test-poll.c.
(main): Check that getsockname fills in addr.
* modules/getsockname-tests (Depends-on): Add the necessary
dependencies.
(test_getsockname_LDADD): Link with $(INET_PTON_LIB).
2018-01-26 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: fix maintainer comment
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Fix comment so that
it does not mistakenly think that ‘-1)’ is an option.
2018-01-26 Bruno Haible <bruno@clisp.org>
langinfo: Fix last commit.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* modules/langinfo (Makefile.am): Substitute HAVE_LANGINFO_ALTMON.
2018-01-24 Bruno Haible <bruno@clisp.org>
langinfo, nl_langinfo: Add support for alternative month names.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Define HAVE_LANGINFO_ALTMON.
* lib/langinfo.in.h (ALTMON_1...ALTMON_12): New macros.
* lib/nl_langinfo.c (rpl_nl_langinfo): Treat ALTMON_i like MON_i.
* tests/test-nl_langinfo.c (main): Test ALTMON_*.
* doc/posix-headers/langinfo.texi: Document support of ALTMON_*.
* doc/posix-functions/nl_langinfo.texi: Likewise.
2018-01-23 Paul Eggert <eggert@cs.ucla.edu>
Merge strftime.c changes from glibc
This incorporates:
2017-11-14 [BZ #10871] Implement alternative month names
2017-11-14 [BZ #10871] Abbreviated alternative month names (%Ob)
2017-06-20 Use locale_t, not __locale_t, throughout glibc
* lib/nstrftime.c (ABALTMON_1) [!COMPILE_WIDE]: New macro.
(LOCALE_PARAM) [_LIBC && USE_IN_EXTENDED_LOCALE_MODEL]:
Use locale_t, not __locale_t.
(a_altmonth, f_altmonth, aam_len) [_NL_CURRENT]: New macros.
(__strftime_internal): Add support for alternate months.
2018-01-23 Bruno Haible <bruno@clisp.org>
doc: Mention another prerequisite for using Gnulib.
Reported at <https://stackoverflow.com/questions/48378214/>.
* doc/gnulib-tool.texi (Initial import): Mention requirement to use
AC_CONFIG_HEADERS.
2018-01-22 Mathieu Lirzin <mthl@gnu.org>
build: GuixSD doesn't have /bin/bash
* Makefile (SHELL): Search 'bash' in the PATH environment variable.
2018-01-21 Bruno Haible <bruno@clisp.org>
Avoid test failures on Microsoft Windows Subsystem for Linux.
* tests/test-fcntl.c (main): Allow a different errno.
* tests/test-rename.h (test_rename): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-renameat2.c (main): Likewise.
2018-01-14 Paul Eggert <eggert@cs.ucla.edu>
filenamecat: make base a suffix of result
* lib/filenamecat-lgpl.c (longest_relative_suffix): Remove.
(mfile_name_concat): Always make BASE a suffix of the result, as
cp expects this. To implement this, separate with '.' instead of
'/' in some rare cases. Clarify spec to say ./BASE not BASE.
* tests/test-filenamecat.c (main): Adjust tests to match
current behavior. Check that BASE_IN_RESULT points to
a copy of BASE and is a suffix of the resultk, and that DIR
is a prefix of the result that is no longer than the prefix
indicated by BASE_IN_RESULT.
2018-01-04 Mathieu Lirzin <mthl@gnu.org>
update-copyright: Handle use of ©
* build-aux/update-copyright ($circle_c_re): Update regex to
handle use of © in headers.
2018-01-04 Tim Rühsen <tim.ruehsen@gmx.de>
Fix -Wundef warning in user-included header lib/cdefs.h.
* lib/cdefs.h: Check if defined before using __USE_FORTIFY_LEVEL.
2018-01-04 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Avoid compilation error on mingw.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* lib/signal.in.h (pthread_sigmask): Don't declare it it's defined as a
macro.
2018-01-03 Paul Eggert <eggert@cs.ucla.edu>
test-framework-sh: ‘ps -ef’, not ‘ps ef’
* tests/init.sh (rand_bytes_): Put ‘-’ before new-style ps options.
Suggested by Bob Proulx (Bug#29968).
* build-aux/mktempd (rand_bytes): Make it like tests/init.sh.
2018-01-02 Eric Blake <eblake@redhat.com>
stat-time: silence -Wunused-parameter regression
* lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime):
Prefer attribute over cast-to-void.
(stat_time_normalize): Mark st as potentially unused.
2018-01-02 Paul Eggert <eggert@cs.ucla.edu>
test-framework-sh: avoid netstat
Problem reported by Kristýna Streitová (Bug#29947).
* tests/init.sh (rand_bytes_): Stop using netstat, as it's
deprecated on SuSE and it's not that important anyway.
2018-01-01 Jim Meyering <meyering@fb.com>
update-copyright: add code to handle more special cases
After running "make update-copyright" this year, five files
required additional manual changes. Automate those adjustments
for next year.
* Makefile (_year_and_prev): Define.
(update-copyright): Add perl commands to induce this year's post-
update-copyright adjustments.
2018-01-01 Paul Eggert <eggert@cs.ucla.edu>
version-etc: new year
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
maint: fix 'make update-copyright'
* Makefile (update-copyright): Adjust to 2016-11-23 change
to config/srclist-update, which changed the format of srclist.txt.
2017-12-30 Paul Eggert <eggert@cs.ucla.edu>
chdir-safer: remove this module
* MODULES.html.sh (func_all_modules): Remove chdir-safer.
* NEWS: Document removal.
* lib/chdir-safer.c, lib/chdir-safer.h, m4/afs.m4, m4/chdir-safer.m4:
* modules/chdir-safer: Remove these files.
2017-12-29 Samuel Thibault <samuel.thibault@gnu.org>
Add cross-compilation results for GNU/Hurd.
* m4/calloc.m4: Add GNU/Hurd guess.
* m4/cbrtl.m4: Likewise.
* m4/ceil.m4: Likewise.
* m4/ceilf.m4: Likewise.
* m4/ceill.m4: Likewise.
* m4/chown.m4: Likewise.
* m4/duplocale.m4: Likewise.
* m4/exp2l.m4: Likewise.
* m4/expm1.m4: Likewise.
* m4/fchdir.m4: Likewise.
* m4/floor.m4: Likewise.
* m4/floorf.m4: Likewise.
* m4/fmod.m4: Likewise.
* m4/fmodf.m4: Likewise.
* m4/fmodl.m4: Likewise.
* m4/getcwd.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/gettimeofday.m4: Likewise.
* m4/hypot.m4: Likewise.
* m4/hypotf.m4: Likewise.
* m4/hypotl.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/link.m4: Likewise.
* m4/linkat.m4: Likewise.
* m4/log.m4: Likewise.
* m4/log10.m4: Likewise.
* m4/log10f.m4: Likewise.
* m4/log1p.m4: Likewise.
* m4/log1pf.m4: Likewise.
* m4/log1pl.m4: Likewise.
* m4/log2.m4: Likewise.
* m4/log2f.m4: Likewise.
* m4/logf.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/mbrlen.m4: Likewise.
* m4/mbrtowc.m4: Likewise.
* m4/mkdir.m4: Likewise.
* m4/mkfifo.m4: Likewise.
* m4/mknod.m4: Likewise.
* m4/mkstemp.m4: Likewise.
* m4/modf.m4: Likewise.
* m4/modff.m4: Likewise.
* m4/modfl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/pselect.m4: Likewise.
* m4/ptsname.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/readlink.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/remainder.m4: Likewise.
* m4/remainderf.m4: Likewise.
* m4/remainderl.m4: Likewise.
* m4/rmdir.m4: Likewise.
* m4/round.m4: Likewise.
* m4/roundf.m4: Likewise.
* m4/roundl.m4: Likewise.
* m4/select.m4: Likewise.
* m4/setenv.m4: Likewise.
* m4/signbit.m4: Likewise.
* m4/sleep.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/strerror.m4: Likewise.
* m4/strtok_r.m4: Likewise.
* m4/symlink.m4: Likewise.
* m4/symlinkat.m4: Likewise.
* m4/trunc.m4: Likewise.
* m4/truncf.m4: Likewise.
* m4/truncl.m4: Likewise.
* m4/tzset.m4: Likewise.
* m4/ungetc.m4: Likewise.
* m4/usleep.m4: Likewise.
* m4/wcwidth.m4: Likewise.
2017-12-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --conditional-dependencies work better.
Reported by Dmitry Selyutin <ghostman.sd@gmail.com>.
* gnulib-tool (Options): Don't reject the combination of
--conditional-dependencies with --with-tests.
(func_emit_autoconf_snippets): Add argument referenceable_modules.
Don't reference $modules.
(func_import, func_create_testdir): Pass it.
2017-12-19 Paul Eggert <eggert@cs.ucla.edu>
regex: use re_malloc etc. consistently
Problem and original patch reported by Arnold Robbins in:
https://sourceware.org/ml/libc-alpha/2017-12/msg00241.html
* lib/regcomp.c (re_comp):
* lib/regexec.c (push_fail_stack, build_trtable, match_ctx_clean):
Use re_malloc/re_realloc/re_free instead of malloc/realloc/free.
2017-12-15 Tim Rühsen <tim.ruehsen@gmx.de>
Paul Eggert <eggert@cs.ucla.edu>
glob: Silence warning about void pointer arithmetic.
* lib/glob.c (glob): Use a 'char *', not a 'void *', in pointer
arithmetic.
2017-12-15 Bruno Haible <bruno@clisp.org>
spawn-pipe: Silence a clang warning.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* lib/spawn-pipe.c: Disable clang -Wconditional-uninitialized warnings
in this file.
2017-12-12 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero: port to macOS + Clang 9.0.0
Problem reported by Marcus Johnson (Bug#29658).
* lib/explicit_bzero.c (explicit_bzero) [__clang__]:
Don’t use asm.
2017-12-11 Reuben Thomas <rrt@sc3d.org>
doc: Improve explanation of supporting relocatable libraries.
* doc/relocatable-maint.texi (Supporting Relocation): Explain
properly how to build the relocatable module for
libraries. (Method and example code from Bruno Haible.)
2017-12-11 Reuben Thomas <rrt@sc3d.org>
doc: Use better texinfo tags in a few cases.
* doc/gnulib.texi (Extending Gnulib): Use @option or @command
instead of @samp in a few places.
2017-12-11 Bruno Haible <bruno@clisp.org>
unistr/base: Update comment.
* lib/unistr.in.h: Update comment about u*_mbtouc_unsafe functions.
2017-12-10 Pádraig Brady <P@draigBrady.com>
test-faccessat.c: unlink temp file to avoid subsequent test failure
* tests/test-faccessat.c: Remove the file to avoid failure
to open the file on subsequent runs due to being created
with no permissions.
2017-12-10 Bruno Haible <bruno@clisp.org>
doc: New sect. "Modifying the build rules of a Gnulib import directory".
* doc/gnulib-tool.texi (Modified build rules): New node.
2017-12-10 Bruno Haible <bruno@clisp.org>
doc: Tweak wording.
* doc/gnulib-tool.texi (Multiple instances): Talk about "programs", not
"binaries".
2017-12-05 Sam Steingold <sds@gnu.org>
Bruno Haible <bruno@clisp.org>
no-c++: Avoid "egrep: repetition-operator operand invalid" error.
* m4/no-c++.m4 (gt_NO_CXX): Don't use '+' characters nor spaces in the
AC_EGREP_CPP pattern.
2017-12-03 Bruno Haible <bruno@clisp.org>
all: Replace more http URLs by https URLs.
* lib/sm3.h, lib/sm3.c, tests/test-sm3.c: Use https: URL.
* lib/unigbrk/u-grapheme-breaks.h: Likewise.
* lib/unigbrk/uc-grapheme-breaks.c: Likewise.
* tests/unigbrk/test-uc-grapheme-breaks.c: Likewise.
2017-11-28 Paul Eggert <eggert@cs.ucla.edu>
Port better to CentOS 5
Problems reported by Tom G. Christensen in:
https://lists.gnu.org/r/bug-gnulib/2017-11/msg00053.html
* doc/glibc-functions/strverscmp.texi (strverscmp):
Document strverscmp bug with glibc 2.9 and earlier.
* doc/posix-functions/tzset.texi (tzset):
Document that TZ with angle brackets is POSIX-2001 and later.
* tests/test-nstrftime.c: Include unistd.h.
(TZ_ANGLE_BRACKETS_SHOULD_WORK): New macro.
(TZ): Use it to skip tests with angle brackets in TZ,
for older systems.
stat: add missing module dependencies
* modules/lstat, modules/stat, modules/utimensat (Depends-on):
Add stat-time.
2017-11-28 Benno Schulenberg <bensberg@telfort.nl>
stat: fix compilation failure on macOS Sierra
Reported by Marius Schamschula <mschamschula@gmail.com> in:
https://savannah.gnu.org/bugs/?52546
* lib/stat.c: Add missing include of stat-time.h.
2017-11-28 Jim Meyering <meyering@fb.com>
test-faccessat.c: correct BASE definition to avoid parallel test failure
* tests/test-faccessat.c (BASE): Define using this file's name, not
that of test-lstat.c. Using the latter caused this test to fail
sometimes when run concurrently with test-lstat.
2017-11-27 Daiki Ueno <ueno@gnu.org>
unicase: fix VPATH build
* modules/unicase/special-casing (Makefile.am): Ensure that the
base directory is created when generating
unicase/special-casing.h.
2017-11-27 Daiki Ueno <ueno@gnu.org>
libunistring: update to Unicode 9.0.0
* lib/gen-uni-tables.c (fill_properties): Recognize
Sentence_Terminal and Prepended_Concatenation_Mark.
(is_property_default_ignorable_code_point): Exclude U+08E2.
(fill_arabicshaping): Allow missing whitespace when parsing;
recognize "AFRICAN FEH", "AFRICAN QAF", and "AFRICAN MOON".
(output_blocks): Increase the element size of the level1 table to
accommodate more blocks.
(get_lbp): Recognize ZWJ, E_Base, and E_Modifier characters;
Update each class according to the standard.
(get_wbp): Recognize ZWJ, E_Base, E_Modifier, Glue_After_Zwj, and
E_Base_GAZ characters.
(output_gbp_table): Recognize ZWJ, E_Base, E_Modifier,
Glue_After_Zwj, and E_Base_GAZ characters.
* lib/unictype.in.h (UC_JOINING_GROUP_AFRICAN_FEH)
(UC_JOINING_GROUP_AFRICAN_QAF, UC_JOINING_GROUP_AFRICAN_MOON): New
enum value.
* lib/unilbrk/lbrktables.h (LBP_ZWJ, LBP_EB, LBP_EM): New enum
value.
* lib/unilbrk/lbrktables.c (unilbrk_table): Extend the table with
LBP_ZWJ, LBP_EB, and LBP_EM.
* lib/uniwbrk.in.h (WBP_ZWJ, WBP_EB, WBP_EM, WBP_GAZ, WBP_EBG): New
enum value.
* lib/uniwbrk/u-wordbreaks.h: Implement WB3c, WB15, and WB16.
* lib/uniwbrk/wbrktable.h (uniwbrk_prop_index): New variable
declaration.
* lib/uniwbrk/wbrktable.c (uniwbrk_prop_index): New variable.
(uniwbrk_table): Implement WB14.
* tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string):
Check WBP_ZWJ, WBP_EB, WBP_EM, WBP_GAZ, and WBP_EBG.
* modules/unigbrk/u{32,16,8}-grapheme-breaks: No longer depend on
uc-is-grapheme-break.
* modules/unigbrk/uc-grapheme-breaks: New module.
* modules/unigbrk/uc-grapheme-breaks-tests: New module.
* lib/unigbrk.in.h (GBP_ZWJ, GBP_EB, GBP_EM, GBP_GAZ, GBP_EBG): New
enum value.
(uc_grapheme_breaks): New function, replacing uc_is_grapheme_break.
* lib/unigbrk/u-grapheme-breaks.h: New file.
* lib/unigbrk/u{32,16,8}-grapheme-breaks.c: Rewrite using
u-grapheme-breaks.h instead of uc_is_grapheme_break.
* lib/unigbrk/uc-grapheme-breaks.c: New file.
* lib/unigbrk/uc-is-grapheme-break.c: Partially update to TR29 rev
29.
* tests/unigbrk/test-uc-gbrk-prop.c
(graphemebreakproperty_to_string): Check GBP_ZWJ, GBP_EB, GBP_EM,
GBP_GAZ, and GBP_EBG.
* tests/unigbrk/test-uc-grapheme-breaks.c: New test.
* tests/unigbrk/test-uc-is-grapheme-break.c
(graphemebreakproperty_to_string): Check GBP_ZWJ, GBP_EB, GBP_EM,
GBP_GAZ, and GBP_EBG.
(main): Skip unsupported rules involving 3 or more characters,
namely GB10, GB12, and GB13.
* lib/uniwidth/width.c (nonspacing_table_data): Update.
* all generated files under lib/uni* and tests/uni*: Regenerate.
* all the affected modules: Bump version.
2017-11-26 Bruno Haible <bruno@clisp.org>
strfmon_l: Fix compilation error with glibc 2.5.
Reported by Tom G. Christensen <tgc@jupiterrise.com>
in <https://lists.gnu.org/r/bug-gnulib/2017-11/msg00051.html>.
* lib/monetary.in.h: Include also <locale.h>.
2017-11-24 Paul Eggert <eggert@cs.ucla.edu>
posixtm: remove PDS_LEADING_YEAR
This changes the API slightly, in a hopefully-innocuous way.
Without this change the code had undefined behavior when a
caller specified neither PDS_LEADING_YEAR nor PDS_TRAILING_YEAR.
Problem reported by Pádraig Brady in:
https://lists.gnu.org/r/bug-gnulib/2017-11/msg00048.html
* NEWS: Mention this.
* lib/posixtm.c (posix_time_parse): Treat the absence of
PDS_TRAILING_YEAR as if PDS_LEADING_YEAR were present.
* lib/posixtm.h (PDS_LEADING_YEAR): Remove (actually, leave it
present, but define it as zero, for compatibility with existing
source code). All other PDS_* values moved up.
* tests/test-posixtm.c (LY): New macro.
(T): Use it. Do not expect a particular numeric encoding
for PDS_CENTURY etc.
2017-11-23 Paul Eggert <eggert@cs.ucla.edu>
stat: work around Solaris bug with tv_nsec < 0
* doc/posix-functions/fstat.texi (fstat):
* doc/posix-functions/fstatat.texi (fstatat):
* doc/posix-functions/lstat.texi (lstat):
* doc/posix-functions/stat.texi (stat):
Mention Solaris 11 bug.
* lib/fstat.c, lib/fstatat.c, lib/lstat.c: Include stat-time.h.
* lib/fstat.c (rpl_fstat) [!WINDOWS_NATIVE]:
* lib/lstat.c (rpl_lstat):
* lib/stat.c (rpl_stat):
Normalize resulting timestamps.
* lib/fstatat.c (normal_fstatat): New function.
(rpl_fstatat): Use it.
* lib/stat-time.h: Include intprops.h, errno.h, stddef.h.
(stat_time_normalize): New function.
* m4/fstat.m4 (gl_FUNC_FSTAT):
* m4/fstatat.m4 (gl_FUNC_FSTATAT):
* m4/lstat.m4 (gl_FUNC_LSTAT):
* m4/stat.m4 (gl_FUNC_STAT):
Replace on Solaris.
* modules/fstat (Depends-on):
* modules/fstatat (Depends-on):
Add stat-time.
* modules/stat-time (Depends-on): Add errno, intprops.
2017-11-22 Paul Eggert <eggert@cs.ucla.edu>
regex: merge from glibc
* lib/regcomp.c (init_word_char): Add comments.
2017-11-20 Paul Eggert <eggert@cs.ucla.edu>
regex: merge from glibc
* lib/regcomp.c (__regcomp, __regfree) [_LIBC]: Now hidden.
* lib/regex_internal.h (internal_function): Remove.
All uses removed.
2017-11-20 Bruno Haible <bruno@clisp.org>
crypto/gc-sm3: Fix buffer overrun.
* lib/gc-gnulib.c (MAX_DIGEST_SIZE): Bump to 32.
Reported by Coverity.
2017-11-12 Jim Meyering <meyering@fb.com>
maint: shorten https://lists.gnu.org/archive/html/... links
Each /archive/html/ part can be replace with /r/.
Run this to induce the change:
git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g'
* ChangeLog: Perform that substitution.
* Makefile: Likewise.
* STATUS-libposix: Likewise.
* build-aux/bootstrap: Likewise.
* doc/maintain.texi: Likewise.
* gnulib-tool: Likewise.
* lib/allocator.h: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/canon-host.c: Likewise.
* lib/canonicalize-lgpl.c: Likewise.
* lib/float.in.h: Likewise.
* lib/fstat.c: Likewise.
* lib/getdelim.c: Likewise.
* lib/getprogname.c: Likewise.
* lib/glthread/thread.h: Likewise.
* lib/intprops.h: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/safe-read.c: Likewise.
* lib/signal.in.h: Likewise.
* lib/stat.c: Likewise.
* lib/stdbool.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/timespec.h: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/alloca.m4: Likewise.
* m4/extern-inline.m4: Likewise.
* m4/fstatat.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/lib-ignore.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/stat-size.m4: Likewise.
* m4/std-gnu11.m4: Likewise.
* m4/stdbool.m4: Likewise.
* m4/sys_types_h.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/vararrays.m4: Likewise.
* pygnulib/GLImport.py: Likewise.
* tests/test-exp.h: Likewise.
* tests/test-exp2.h: Likewise.
* tests/test-expm1.h: Likewise.
* tests/test-fflush2.c: Likewise.
* tests/test-getopt_long.h: Likewise.
* tests/test-intprops.c: Likewise.
* tests/test-log.h: Likewise.
* tests/test-log10.h: Likewise.
* tests/test-log1p.h: Likewise.
* tests/test-log2.h: Likewise.
* tests/test-printf-posix.h: Likewise.
* tests/test-regex.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-stdalign.c: Likewise.
* tests/test-stdbool.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* top/maint.mk: Likewise.
2017-11-12 Bruno Haible <bruno@clisp.org>
faccessat: Make the last change more robust.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Require
gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Treat "guessing yes" like "yes".
2017-11-11 Paul Eggert <eggert@cs.ucla.edu>
faccessat: port to macOS (Bug#29231)
macOS faccessat has the same bug that lstat does: if the file
name ends in '/' it ignores the trailing slash.
Problem reported for Emacs by Vincent Zhang.
* doc/posix-functions/faccessat.texi (faccessat): Document this.
* lib/faccessat.c (_GL_INCLUDING_UNISTD_H): Define and undef
around the initial includes. Include errno.h, string.h, sys/stat.h.
(orig_faccessat) [HAVE_FACCESSAT]: New function.
Include "unistd.h" after defining it.
(rpl_faccessat) [HAVE_FACCESSAT]: New implementation.
* lib/unistd.in.h (faccessat) [REPLACE_FACCESSAT]:
Handle in the usual way.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Replace faccessat if
lstat dereferences symlinks, since faccessat is likely to
have the same problem.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Default REPLACE_ACCESSAT.
* modules/faccessat (Depends-on): Add fstatat.
Depend if REPLACE_FACCESSAT is 1, too.
(configure.ac): Link if REPLACE_FACCESSAT is 1.
* modules/faccessat-tests (Depends-on): Add symlink.
* modules/unistd (unistd.h): Substitute REPLACE_FACCESSAT.
* tests/test-faccessat.c (main): Test for the bug.
2017-11-11 Bruno Haible <bruno@clisp.org>
getprogname: Fix compilation error on IRIX.
* lib/getprogname.c (getprogname) [__sgi]: Fix type of local variable
'namesize'.
2017-11-11 Bruno Haible <bruno@clisp.org>
year2038: Tweak last patch.
* m4/year2038.m4 (gl_YEAR2038): Correct indentation.
2017-11-06 Paul Eggert <eggert@cs.ucla.edu>
year2038: be more insistent about 64-bit time_t
Applications requiring access to arbitrary files should not be
built with 32-bit time_t on hosts that have 64-bit timestamps,
as this can lead to real trouble at runtime.
* m4/year2038.m4 (gl_YEAR2038): Do not require AC_CANONICAL_HOST.
Check on all systems, not just MinGW. Use a heuristic involving
TIME_T_32_BIT_OK, cross_compiling, and the touch command to
output a failure or just a warning, to make it more likely that
builders will select 64-bit time_t.
2017-11-05 Paul Eggert <eggert@cs.ucla.edu>
havelib: fix typo in previous change
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Fix typo.
Don’t use AC_EGREP_CPP if affected by CFLAGS
* m4/float_h.m4 (gl_FLOAT_H):
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI):
* m4/lib-ld.m4 (AC_LIB_PROG_LD):
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB):
* m4/year2038.m4 (gl_YEAR2038):
Prefer AC_COMPILE_IFELSE to AC_EGREP_CPP when testing conditions
likely to be affected by the choice of CFLAGS, since CFLAGS are
not used by AC_EGREP_CPP. Without this patch, ‘./configure
CFLAGS="-m32"’ fails on gzip with GNU/Linux x86-64.
fstatat: pacify GCC on unusual platform
* lib/fstatat.c (orig_fstatat) [!HAVE_WORKING_FSTATAT_ZERO_FLAG]:
Omit, as it’s unused in this case.
2017-10-29 Paul Eggert <eggert@cs.ucla.edu>
timespec: prefer ‘assume’ to ‘assure’
This avoids some runtime tests. The rest of the module makes
similar assumptions and there is little point to testing here.
* lib/timespec.h: Include verify.h instead of assure.h.
(timespec_cmp): Use ‘assume’, not ‘assure’.
Also, remove an unnecessary cast to ‘int’, as lots of other
code in this module now causes -Wconversion to complain, and
this is a problem with -Wconversion not with the code.
* modules/timespec (Depends-on): Depend on ‘verify’, not ‘assure’.
Port recent gnulib-tool change to Dash
* gnulib-tool (func_create_testdir): Don't assume that the shell
retokenizes after expanding "$@" inside the call to
func_execute_command. Dash 0.5.8-2.1ubuntu2 does not.
2017-10-27 Jim Meyering <meyering@fb.com>
timespec.h: use "assure" to avoid a spurious warning
* lib/timespec.h: Include "assure.h" and use it to help
gcc7's -Wstrict-overflow avoid a false positive warning
for a use in coreutils' ls.c. Suggested by Paul Eggert in
https://lists.gnu.org/r/bug-gnulib/2017-10/msg00007.html
* modules/timespec (Depends-on): Add assure.
2017-10-29 Bruno Haible <bruno@clisp.org>
Avoid several test failures with traditional locales on Haiku.
* m4/locale-ar.m4 (gt_LOCALE_AR): On BeOS and Haiku, set LOCALE_AR=none.
* m4/locale-fr.m4 (gt_LOCALE_FR): On BeOS and Haiku, set LOCALE_FR=none.
* m4/locale-ja.m4 (gt_LOCALE_JA): On BeOS and Haiku, set LOCALE_JA-none.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On BeOS and Haiku, set
LOCALE_ZH_CN=none.
2017-10-29 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fix behaviour and test failure on Haiku.
* lib/strerror_r.c (strerror_r): Don't assume that valid error numbers
are positive. Work around return value 0 instead of ERANGE on Haiku.
For unknown error numbers, use a format string consistent with perror().
* doc/posix-functions/strerror_r.texi: Mention the Haiku problem.
* tests/test-strerror_r.c (main): Don't assume that valid error numbers
are positive.
2017-10-29 Bruno Haible <bruno@clisp.org>
get-rusage-data: Avoid crash on Haiku.
* lib/get-rusage-data.c: Avoid the setlimit-based implementation.
2017-10-29 Bruno Haible <bruno@clisp.org>
get-rusage-as: Avoid crash on Haiku.
* lib/get-rusage-as.c: Avoid the setlimit-based implementation.
2017-10-29 Bruno Haible <bruno@clisp.org>
ilogbl: Ensure replacement on Haiku.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL): Invoke gl_FUNC_ILOGBL_WORKS and set
REPLACE_ILOGBL if ilogbl does not work.
(gl_FUNC_ILOGBL_WORKS): New macro.
* lib/math.in.h (ilogbl): Replace if REPLACE_ILOGBL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_ILOGBL.
* modules/math (Makefile.am): Substitute REPLACE_ILOGBL.
* modules/ilogbl (Depends-on, configure.ac): Consider REPLACE_ILOGBL.
* doc/posix-functions/ilogbl.texi: Mention the Haiku problem.
2017-10-29 Bruno Haible <bruno@clisp.org>
expl: Ensure replacement on Haiku.
* m4/expl.m4 (gl_FUNC_EXPL): Test whether an expl() return value is
zero.
* doc/posix-functions/expl.texi: Mention the Haiku problem.
2017-10-29 Bruno Haible <bruno@clisp.org>
math: Fix test failure on Haiku.
* lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Override on Haiku.
* m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Update accordingly.
* m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise.
* doc/posix-headers/math.texi: Mention the Haiku problem.
2017-10-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid unnecessary config.h.in remaking in testdirs.
* gnulib-tool (func_create_testdir): Use workaround against 'autoheader'
bug reported at <https://savannah.gnu.org/support/index.php?109406>.
2017-10-29 Bruno Haible <bruno@clisp.org>
crypto/*: Verify that the header file is self-contained.
* tests/test-gc-*.c: Include the module's header file immediately after
<config.h>.
* tests/test-hmac-*.c: Likewise.
* tests/test-arcfour.c: Likewise.
* tests/test-arctwo.c: Likewise.
* tests/test-des.c: Likewise.
* tests/test-md2.c: Likewise.
* tests/test-md4.c: Likewise.
* tests/test-md5.c: Likewise.
* tests/test-rijndael.c: Likewise.
* tests/test-sha1.c: Likewise.
* tests/test-sm3.c: Likewise.
2017-10-29 Jia Zhang <qianyue.zj@alibaba-inc.com>
Bruno Haible <bruno@clisp.org>
crypto/gc: fix build failure with -Werror=suggest-attribute=const
* lib/gc.h (gc_hash_digest_length): Mark with 'const' attribute.
2017-10-29 Jia Zhang <qianyue.zj@alibaba-inc.com>
New module: crypto/gc-sm3
* lib/gc.h: Declare SM3-related stuffs.
* lib/gc-gnulib.c: Support sm3 in internal functions.
* lib/gc-libgcrypt.c: Support sm3 with libgcrypt.
* m4/gc-sm3.m4: m4 file for gc-sm3 module.
* modules/crypto/gc-sm3: Define gc-sm3 module.
* tests/test-gc-sm3.c: Implement SM3 test case with libgcrypt.
* modules/crypto/gc-sm3-tests: Define gc-sm3 test module.
* MODULES.html.sh: List gc-sm3 module.
2017-10-29 Bruno Haible <bruno@clisp.org>
random, random_r: Mention different prototypes on Haiku.
* doc/posix-functions/random.texi: Mention different prototype on Haiku.
* doc/glibc-functions/random_r.texi: Likewise.
* doc/glibc-functions/initstate_r.texi: Likewise.
* doc/glibc-functions/setstate_r.texi: Likewise.
2017-10-28 Bruno Haible <bruno@clisp.org>
posix_spawn: Avoid spurious message in configure output.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Discard stderr output from
'cmp' command.
2017-10-28 Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Determine needed library correctly on Haiku.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Search also in libnetwork.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
2017-10-28 Bruno Haible <bruno@clisp.org>
ioctl: Override non-POSIX declaration on Haiku.
* m4/ioctl.m4 (gl_FUNC_IOCTL): Include also <unistd.h>.
* lib/sys_ioctl.in.h: Add comment about Haiku.
* doc/posix-functions/ioctl.texi: Mention Haiku problem.
* doc/glibc-headers/sys_ioctl.texi: Likewise.
2017-10-28 Bruno Haible <bruno@clisp.org>
crypto/sm3: Add overview documentation to the .h file.
* lib/sm3.h: Add comments.
2017-10-28 Jia Zhang <qianyue.zj@alibaba-inc.com>
New module: crypto/sm3
This new module can be used to compute SM3 message digest of files or
memory blocks according to the specification GM/T 004-2012
Cryptographic Hash Algorithm SM3, published by State Cryptography
Administration, China.
The official SM3 cryptographic hash algorithm specification is
available at
http://www.sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml
* lib/sm3.h: Declare the APIs of sm3 module.
* lib/sm3.c: Implement SM3 hash algorithm.
* m4/sm3.m4: m4 file for sm3 module.
* modules/crypto/sm3: Define sm3 module.
* tests/test-sm3.c: Implement SM3 test case.
* modules/crypto/sm3-tests: Define sm3 test module.
* MODULES.html.sh: List sm3 module.
2017-10-28 Jia Zhang <qianyue.zj@alibaba-inc.com>
gc-libgcrypt: fix undefined enum type in switch statement
Resolve the following build failure:
lib/gc-libgcrypt.c: In function 'gc_hash_open':
lib/gc-libgcrypt.c:317:5: error: case value '0' not in enumerated type
'Gc_hash_mode {aka enum Gc_hash_mode}' [-Werror=switch]
case 0:
^~~~
* lib/gc.h (enum Gc_hash_mode): Add value GC_NULL.
* lib/gc-libgcrypt.c (gc_hash_open): Use this enum value instead of 0.
2017-10-28 Jia Zhang <qianyue.zj@alibaba-inc.com>
gc-libgcrypt: fix assignment error due to -Werror=pointer-sign
Resolve the following build failure:
lib/gc-libgcrypt.c: In function 'gc_hash_read':
lib/gc-libgcrypt.c:460:14: error: pointer targets in assignment differ
in signedness [-Werror=pointer-sign]
digest = gcry_md_read (ctx->gch, 0);
^
* lib/gc-libgcrypt.c (gc_hash_read): Cast result of gcry_md_read.
2017-10-26 Bruno Haible <bruno@clisp.org>
havelib: Fix value of LD for 32-bit compilation on NetBSD/sparc64.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): On NetBSD/sparc64 with CC="gcc -m32",
set LD to '/usr/bin/ld -m elf32_sparc', not '/usr/bin/ld'.
2017-10-21 Paul Eggert <eggert@cs.ucla.edu>
glob: fix another heap buffer overflow
Problem reported by Tim Rühsen in:
https://sourceware.org/bugzilla/show_bug.cgi?id=22332
* lib/glob.c (glob): Avoid buffer overrun when unescaping.
2017-10-19 Paul Eggert <eggert@cs.ucla.edu>
quotearg: pacify compiler re unsigned
* lib/quotearg.c (quotearg_n_options):
Rewrite to avoid diagnostic from overly-picky compiler.
Problem reported by Sami Kerola in:
https://lists.gnu.org/r/bug-gnulib/2017-10/msg00060.html
glob: fix heap buffer overflow
* lib/glob.c (glob): Fix off-by-one error introduced into
glibc in commit dd7d45e838a42b0ed470c44b55901ea98d0c2bab
dated 1997-10-29 20:33:40. Problem reported by Tim Rühsen in:
https://sourceware.org/bugzilla/show_bug.cgi?id=22320
Fix suggested by Bruno Haible.
2017-10-18 Paul Eggert <eggert@cs.ucla.edu>
glob: pacify fuzzer for mempcpy
Problem reported by Tim Rühsen in:
https://lists.gnu.org/r/bug-gnulib/2017-10/msg00054.html
* lib/glob.c (glob): Do not pass NULL to mempcpy.
2017-10-12 Bruno Haible <bruno@clisp.org>
doc: Fix syntax error (regression from 2017-10-03).
* doc/posix-functions/strncpy.texi: Fix syntax error.
2017-10-12 Bruno Haible <bruno@clisp.org>
doc: Update for Solaris 11.3.
* doc/**/*.texi: For bugs that exist in both Solaris 11.0 and 11.3,
mention Solaris 11.3.
* m4/log2.m4: Fix comments.
* m4/log2f.m4: Likewise.
* m4/printf.m4: Update comments.
* m4/rename.m4: Likewise.
* m4/strncat.m4: Likewise.
all: Write "Solaris 11.0" instead of "Solaris 11 2011-11".
2017-10-10 Bruno Haible <bruno@clisp.org>
doc: Improve doc about ioctl.
* doc/posix-functions/ioctl.texi: Fix list of platforms with non-POSIX
prototype.
2017-10-09 Bruno Haible <bruno@clisp.org>
wcwidth: Don't use obsolete syntax of 'test'.
Reported by Eric Blake.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Don't optimize two 'test'
invocations into one, as POSIX marks '-a' and '-o' as "obsolescent".
2017-10-09 Bruno Haible <bruno@clisp.org>
getopt-posix: Fix build failure when using ac_cv_header_getopt_h=no.
Reported by Christian Ehrhardt <christian.ehrhardt@canonical.com>
and Daniel P. Berrange <berrange@redhat.com>.
* lib/unistd.in.h (getopt): Don't attempt to avoid namespace pollution
on glibc systems. The getopt-pfx-core.h file declares exactly what
unistd.h needs, nothing more.
2017-10-08 Bruno Haible <bruno@clisp.org>
vma-iter: Improve support for FreeBSD.
* lib/vma-iter.c (vma_iterate_proc): New function, extracted from
vma_iterate.
(vma_iterate): Use it. For FreeBSD, try vma_iterate_bsd first.
2017-10-08 Bruno Haible <bruno@clisp.org>
vma-iter: Fix truncated result on NetBSD (regression from 2017-10-07).
* lib/vma-iter.c (MIN_LEFTOVER): Define to 1, not 0.
2017-10-07 KO Myung-Hun <komh@chollian.net>
test-framework-sh: Fix 'invalid path dir' error.
On OS/2, a path separator is ';' not ':'. And ':' is used as a
separator between a drive letter and directory parts.
As a result, an absolute path such as x:/path/to/dir on OS/2 is
treated as an invalid path dir.
* tests/init.sh (PATH_SEPARATOR): Set at startup.
(path_prepend_): '?:*' is also an absolute path. Use $PATH_SEPARATOR
instead of hard coded ':'.
2017-10-07 Bruno Haible <bruno@clisp.org>
vma-iter: Fix truncated result on Linux (regression from 2017-09-26).
* lib/vma-iter.c (MIN_LEFTOVER): New macro.
(STACK_ALLOCATED_BUFFER_SIZE): Set to a minimal value if not needed.
(rof_open): On Linux, do multiple read() calls and make sure
MIN_LEFTOVER bytes are left when read() returns.
2017-10-07 Bruno Haible <bruno@clisp.org>
vma-iter: Improve support for GNU/Hurd.
* lib/vma-iter.c (vma_iterate): On GNU/Hurd, use the Mach vm_region()
API, not the /proc file system.
2017-10-07 Bruno Haible <bruno@clisp.org>
test-framework-sh: Don't require bash on Windows and OS/2.
Reported by KO Myung-Hun.
* tests/test-init.sh: Use 'shopt' only when running in bash.
2017-10-06 KO Myung-Hun <komh@chollian.net>
wcwidth: check a macro version of wcwidth () as well
* lib/wchar.in.h: Revert commit from 2016-01-14.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test if wcwidth is a macro.
2017-10-06 Bruno Haible <bruno@clisp.org>
getopt-posix: Clarify copyright header.
* lib/getopt.in.h: Don't state that gnulib is under LGPL.
* lib/getopt-pfx-core.h: Likewise.
* lib/getopt-pfx-ext.h: Likewise.
* lib/getopt-cdefs.in.h: Likewise.
2017-10-03 Bruno Haible <bruno@clisp.org>
Fix warning "`gl_HOST_CPU_C_ABI' was expanded before it was required".
* modules/host-cpu-c-abi (configure.ac): Require, don't invoke
gl_HOST_CPU_C_ABI.
2017-10-03 Bruno Haible <bruno@clisp.org>
doc: warn about misuse of strncpy and wcsncpy.
* doc/posix-functions/strcpy.texi: Describe requirements on prior
memory allocation.
* doc/posix-functions/wcscpy.texi: Likewise.
* doc/posix-functions/strncpy.texi: Describe what this function is not
useful for.
* doc/posix-functions/wcsncpy.texi: Likewise.
2017-10-02 Paul Eggert <eggert@cs.ucla.edu>
fsuage: fix typo in previous change
* lib/fsusage.c: Remove stray include of full-read.h.
Problem reported by Sam Steingold for macOS (Bug#28669).
2017-10-01 Paul Eggert <eggert@cs.ucla.edu>
fsusage: remove SVR2 support
SVR2 was obsolete by 1986 and is no longer supported by anybody,
and its code was getting in the way of use of this module by
Emacs, which has its own ‘read’ function anyway.
* lib/fsusage.c: Do not include sys/filsys.h.
(get_fs_usage): Remove SVR2-specific code.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE):
Do not test for sys/filsys.h or set STAT_READ_FILSYS.
* modules/fsusage (Depends-on): Do not depend on full-read.
Simplify autoupdate of licenses
* config/srclistvars.sh (GNUWWWLICENSES): Move to a more-typical
place.
2017-10-01 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for GNU/Hurd.
* lib/vma-iter.c: Treat GNU/Hurd like Linux.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on GNU/kFreeBSD.
2017-09-30 Bruno Haible <bruno@clisp.org>
vma-iter: Make it work on 32-bit Solaris with module 'largefile'.
* modules/vma-iter: Don't test for sys/procfs.h, as this test would
fail when module 'largefile' is in use.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't test HAVE_SYS_PROCFS_H.
* lib/vma-iter.c: Undefine _FILE_OFFSET_BITS early.
Don't test HAVE_SYS_PROCFS_H.
2017-09-30 Bruno Haible <bruno@clisp.org>
havelib: Make it work for CC="gcc -m32" (regression from 2017-02-19).
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Require gl_HOST_CPU_C_ABI.
When $CC produces 32-bit code, set acl_libdirstem to 'lib', not 'lib64'.
* modules/havelib (Depends-on): Add host-cpu-c-abi.
2017-09-30 Bruno Haible <bruno@clisp.org>
uniname/uniname: Don't assume C99 compiler (regression from 2015-02-16).
* lib/uniname/uniname.c (unicode_name_character): Add braces around
scope of local variables.
2017-09-28 Bruno Haible <bruno@clisp.org>
string: code style
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Reorder list of
substitutable variables.
* modules/string (Makefile.am): Likewise.
2017-09-26 Bruno Haible <bruno@clisp.org>
uniname/uniname-tests: Tighten code.
* tests/uniname/test-uninames.c (fill_names, fill_aliases): Merge two
local variables into one.
2017-09-26 Bruno Haible <bruno@clisp.org>
vma-iter: Improvements for Linux and BSD platforms.
- Add support for DragonFly BSD.
- Make it more reliable on Linux, GNU/kFreeBSD, FreeBSD, NetBSD.
* lib/vma-iter.c (struct rofile, rof_open, rof_peekchar, rof_close):
Read the entire file into memory in a single system call.
(vma_iterate): Update. Read from /proc on DragonFly BSD like on FreeBSD.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on DragonFly BSD.
2017-09-26 Bruno Haible <bruno@clisp.org>
vma-iter: Provide the protection flags on FreeBSD.
* lib/vma-iter.c (vma_iterate) [FreeBSD]: When reading from /proc,
skip three fields between the addresses and the protection flags.
2017-09-26 Paul Eggert <eggert@cs.ucla.edu>
glob: remove bogus extern decl
* lib/glob.c (__glob_pattern_type): Remove now-spurious
extern declaration. Problem reported by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-09/msg00972.html
2017-09-25 Paul Eggert <eggert@cs.ucla.edu>
uniname/uniname-tests: integer overflow fix
* tests/uniname/test-uninames.c (fill_names, fill_aliases):
Check for integer overflow.
duplocale-tests: fix unlikely crash
* tests/test-duplocale.c (get_locale_dependent_values):
Don’t crash with absurdly long month names.
maint: fix overflow checking in nap.h
* modules/chown-tests:
* modules/fchownat-tests, modules/fdutimensat-tests:
* modules/futimens-tests, modules/lchown-tests:
* modules/stat-time-tests, modules/utime-tests:
* modules/utimens-tests, modules/utimensat-tests:
Depend on intprops.
* tests/nap.h: Include intprops.h.
(diff_timespec): Handle overflow properly.
sys_types: update URL
* m4/sys_types_h.m4: Use https: URL.
parse-datetime: fix dependency
* modules/parse-datetime (Depends-on): Depend
on nstrftime, not strftime.
parse-datetime, posixtm: avoid uninit access
* lib/parse-datetime.y (parse_datetime2):
* lib/posixtm.c (posixtime):
Do not access uninitialized storage, even though the resulting
value is never used.
2017-09-25 Bruno Haible <bruno@clisp.org>
vma-iter: Improvements for BSD platforms.
- Add support for GNU/kFreeBSD.
- Make it work on FreeBSD and NetBSD even when /proc is not mounted.
- Speed up on OpenBSD.
* lib/vma-iter.c (struct rofile, rof*): Define also on GNU/kFreeBSD.
(vma_iterate_bsd): New function.
(vma_iterate): Use it as fallback on FreeBSD and NetBSD. Use it as
first choice on OpenBSD. Treat GNU/kFreeBSD like Linux.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on GNU/kFreeBSD.
* modules/vma-iter (configure.ac): Require AC_C_INLINE.
2017-09-23 Bruno Haible <bruno@clisp.org>
strfmon_l: New module.
* modules/strfmon_l: New file.
* lib/strfmon_l.c: New file.
* m4/strfmon_l.m4: New file.
* doc/posix-functions/strfmon_l.texi: Mention the new module.
* modules/strfmon_l-tests: New file.
* tests/test-strfmon_l.c: New file.
monetary: New module.
* modules/monetary: New file.
* lib/monetary.in.h: New file.
* m4/monetary_h.m4: New file.
* doc/posix-headers/monetary.texi: Mention the new module.
* modules/monetary-tests: New file.
* tests/test-monetary.c: New file.
* modules/monetary-c++-tests: New file.
* tests/test-monetary-c++.cc: New file.
* modules/duplocale-tests (configure.ac): Use AC_CHECK_HEADERS_ONCE.
2017-09-23 Bruno Haible <bruno@clisp.org>
duplocale tests: Fix test crash on Linux/x86.
* tests/test-duplocale.c (test_with_uselocale): Disconnect the mixed2
locale from the current thread before freeing it.
2017-09-21 Paul Eggert <eggert@cs.ucla.edu>
mktime: port to OpenVMS
Problem reported by John E. Malmberg in:
https://lists.gnu.org/r/bug-gnulib/2017-09/msg00100.html
* m4/mktime.m4 (TIME_T_IS_SIGNED): Default to 0.
2017-09-16 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: port to GCC on 64-bit MS-Windows
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Work better if
LONG_MAX < PTRDIFF_MAX. Problem reported by Richard Copley in:
https://lists.gnu.org/r/emacs-devel/2017-09/msg00392.html
2017-09-13 Bruno Haible <bruno@clisp.org>
all: Replace many more http URLs by https URLs. Update stale URLs.
* users.txt: Remove mention of 'newts'.
* lib/localename.c: Update comment about LANG_SOTHO.
2017-09-13 Paul Eggert <eggert@cs.ucla.edu>
all: Replace many http URLs by https URLs.
2017-09-12 Bruno Haible <bruno@clisp.org>
doc: Prefer https URLs where possible.
* doc/**/*.texi: Use https URLs instead of http URLs where possible.
* doc/ld-output-def.texi: Remove unavailable URL.
2017-09-12 Paul Eggert <eggert@cs.ucla.edu>
maintainer-makefile: FTP -> HTTPS
* top/maint.mk (url_dir_list, ftp-gnu): Use HTTPS protocol instead
of FTP, which is planned to be decommissioned on 2017-11-01.
2017-09-12 Tim Rühsen <tim.ruehsen@gmx.de> (tiny change)
libc-config: Fix __GNUC_PREREQ macro.
* lib/libc-config.h (__GNUC_PREREQ): Use __GNUC_MINOR__, not
__GNUC_MINOR.
2017-09-09 Bruno Haible <bruno@clisp.org>
gnulib-tool: Simplify commit from 2015-08-20.
* gnulib-tool (func_add_or_update): Remove local variable
is_binary_file.
2017-09-08 Bruno Haible <bruno@clisp.org>
stddef: Avoid conflict with system-defined max_align_t.
The configure-determined HAVE_MAX_ALIGN_T may not always be accurate.
Reported by Werner Lemberg <wl@gnu.org> in
<https://lists.gnu.org/r/bug-gnulib/2017-08/msg00185.html>.
* lib/stddef.in.h (rpl_max_align_t): Renamed from max_align_t.
(max_align_t): Define as a macro.
(GNULIB_defined_max_align_t): New macro. Guards against multiple
definitions of rpl_max_align_t in different copies of gnulib-generated
<stddef.h>.
2017-09-05 Paul Eggert <eggert@cs.ucla.edu>
libc-config: port to MSVC
Problems reported by Gisle Vanem in:
http://lists.gnu.org/r/bug-gnulib/2017-09/msg00016.html
* lib/libc-config.h (__inline): Don't define if HAVE___INLINE.
(libc_hidden_proto): Stick to Standard C syntax for varargs macro.
* m4/__inline.m4: New file.
* modules/libc-config (Files): Add it.
(Depends-on): Use it.
glob: Use enum for __glob_pattern_type result
From a patch proposed by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-09/msg00212.html
* lib/glob_internal.h (GLOBPAT_NONE, GLOBPAT_SPECIAL)
(GLOBPAT_BACKSLASH, GLOBPAT_BRACKET): New constants.
* lib/glob_internal.h (__glob_pattern_type):
* lib/glob.c (glob):
* lib/glob_pattern_p.c (__glob_pattern_p):
Use them.
glob: fix for use in glibc
Problem reported by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-09/msg00213.html
* lib/glob.c (DT_UNKNOWN, DT_DIR, DT_LINK):
Do not redefine if _LIBC.
2017-09-02 Paul Eggert <eggert@cs.ucla.edu>
glob: fix bugs with long login names
Problem reported by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-08/msg00455.html
* lib/glob.c (GET_LOGIN_NAME_MAX): Remove.
(glob): Use the same scratch buffer for both getlogin_r and
getpwnam_r. Don’t require preallocation of the login name. This
simplifies storage allocation, and corrects the handling of
long login names.
2017-09-02 Bruno Haible <bruno@clisp.org>
dirent: Update doc.
* doc/posix-headers/dirent.texi: More concrete list of platforms.
2017-09-02 Paul Eggert <eggert@cs.ucla.edu>
glob: fix getpwnam_r errno typo
* lib/glob.c (glob): Fix longstanding misuse of errno after
getpwnam_r, which returns an error number rather than setting
errno.
glob: fix typo in recent change
* lib/glob.c (glob) [!HAVE_GETPWNAM_R && !_LIBC]:
Fix recently-introduced typo.
2017-09-02 Paul Eggert <eggert@cs.ucla.edu>
glob: don't save and restore errno unnecessarily
* lib/glob.c (glob): Don't save and restore errno
merely because we have getpwnam_r.
glob: don't assume getpwnam_r
* lib/glob.c (glob): Port recent patches to platforms
lacking getpwnam_r.
scratch_buffer: don’t use private glibc API
Suggested by Florian Weimer in:
http://lists.gnu.org/r/bug-gnulib/2017-09/msg00004.html
* lib/scratch_buffer.h: Rename to lib/malloc/scratch_buffer.h.
* lib/scratch_buffer_grow.c: Rename to
lib/malloc/scratch_buffer_grow.c.
* lib/scratch_buffer_grow_preserve.c: Rename to
lib/malloc/scratch_buffer_grow_preserve.c.
* lib/scratch_buffer_set_array_size.c: Rename to
lib/malloc/scratch_buffer_set_array_size.c.
* lib/scratch_buffer.h: New file.
* modules/scratch_buffer (Files, Makefile.am):
Adjust to source-file renaming.
2017-09-01 Paul Eggert <eggert@cs.ucla.edu>
glob: use scratch_buffer instead of extend_alloca
Much of the lib/glob.c part of this patch comes from a glibc patch
proposed by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-08/msg00456.html
* lib/glob.c: Do not include <config.h>, since <libc-config.h>,
included via glob.h, does this for us now.
(__set_errno): Remove, as libc-config does this for us now.
Include <scratch_buffer.h>.
(GETPW_R_SIZE_MAX): Remove.
(glob): Use struct scratch_buffer instead of extend_alloca.
* lib/glob.in.h: Include libc-config.h rather than
including <sys/cdefs.h> conditionally.
(__BEGIN_DECLS, __END_DECLS, __THROW, __THROWNL, attribute_hidden)
(__glibc_unlikely, __restrict, weak_alias):
Remove, as libc-config does this for us now.
* m4/glob.m4 (gl_PREREQ_GLOB):
Remove sys/cdefs.h tests; no longer needed.
* modules/glob (Depends-on): Add libc-config, scratch_buffer.
(glob.h): Do not replace HAVE_SYS_CDEFS_H.
scratch_buffer: new module
* lib/scratch_buffer.h, lib/scratch_buffer_grow.c:
* lib/scratch_buffer_grow_preserve.c:
* lib/scratch_buffer_set_array_size.c:
New files, copied from glibc with very minor changes that can be
copied back.
* modules/scratch_buffer: New file.
libc-config: new module
* MODULES.html.sh: Add libc-config.
* lib/cdefs.h: New file, copied from the GNU C Library with very
minor changes that can be copied back.
* lib/libc-config.h, modules/libc-config: New files.
2017-08-31 Paul Eggert <eggert@cs.ucla.edu>
glob: match dangling symlinks
This fixes a bug I inadvertently introduced to Gnulib when I
merged glibc glob back into gnulib on 2007-10-16. This fix is
inspired by a patch proposed for glibc by Adhemerval Zanella in:
https://sourceware.org/ml/libc-alpha/2017-08/msg00446.html
* doc/posix-functions/glob.texi: Update list of affected platforms.
* lib/glob.c (__lstat64): New macro.
(is_dir): New function.
(glob, glob_in_dir): Match symlinks even if they are dangling.
(link_stat, link_exists_p): Remove. All uses removed.
* lib/glob.in.h (__attribute_noinline__): Remove; no longer used.
* m4/glob.m4 (gl_PREREQ_GLOB): Do not check for fstatat.
* modules/glob-tests (Depends-on): Add symlink.
* tests/test-glob.c: Include errno.h, unistd.h.
(BASE): New macro.
(main): Test dangling symlinks, if symlinks are supported.
glob, backupfile: inode 0 is a valid inode number
* doc/posix-functions/readdir.texi (readdir):
* doc/posix-headers/dirent.texi (dirent.h):
Document more readdir portability issues.
* lib/backupfile.c (REAL_DIR_ENTRY): Remove.
(numbered_backup): Don’t treat inode 0 any differently from
other inode values.
* lib/glob.c (struct readdir_result): Remove skip_entry member.
(readdir_result_skip_entry, D_INO_TO_RESULT): Remove.
All uses removed.
* modules/glob (Depends-on): Remove d-ino.
glob: simplify symlink detection
* lib/glob.c (dirent_type): New type. Use uint_fast8_t not
uint8_t, as C99 does not require uint8_t.
(struct readdir_result): Use it. Do not define skip_entry unless
it is needed; this saves a byte on platforms lacking d_ino.
(readdir_result_type, readdir_result_skip_entry):
New functions, replacing ...
(readdir_result_might_be_symlink, readdir_result_might_be_dir):
... these functions, which were removed. This makes the callers
easier to read. All callers changed.
(D_INO_TO_RESULT): Now empty if there is no d_ino.
2017-08-30 Pádraig Brady <P@draigBrady.com>
fts-tests: tag as a longrunning-test so not included by default
* modules/fts-tests: This test takes about 20s on current systems,
and uses about 285M of space on ext4.
2017-08-30 Pádraig Brady <P@draigBrady.com>
renameat2: fix compilation on alpine linux
* m4/renameat.m4: Check for <linux/fs.h> presence.
* lib/renameat2.h: Only include <linux/fs.h> if present.
Reported by Assaf Gordon on Alpine Linux.
2017-08-24 Paul Eggert <eggert@cs.ucla.edu>
glob: try to port recent changes to MS-Windows
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00170.html
* lib/glob.c (__glob_pattern_p) [!_LIBC]: Move from here ...
* lib/glob.in.h (__glob_pattern_p): ... to here.
2017-08-24 Eric Blake <eblake@redhat.com>
warnings: fix compilation with old autoconf
* m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C))
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): Use m4_defun rather than
AC_DEFUN.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C))
(gl_MANYWARN_ALL_GCC(C++)): Likewise.
2017-08-24 Bruno Haible <bruno@clisp.org>
glob: Fix compilation error on NetBSD 7.0 and OpenBSD 6.0.
* modules/glob (Depends-on): Add c99.
2017-08-24 Paul Eggert <eggert@cs.ucla.edu>
glob: fix typo that broke platforms lacking d_ino
This typo also hurt performance on GNU/Linux and similar hosts.
* lib/glob.c (D_INO_TO_RESULT): Fix typo (reversed ifdef)
in previous change.
2017-08-23 Paul Eggert <eggert@cs.ucla.edu>
glob: merge from glibc with Zanella glob changes
Merge glob from glibc, with changes for glob proposed
by Adhemerval Zanella in the thread starting here:
https://sourceware.org/ml/libc-alpha/2017-08/msg01079.html
plus some fixes for this merge.
* lib/glob_internal.h, lib/glob_pattern_p.c, lib/globfree.c:
New files, ported from glibc.
* lib/glob-libc.h (_Restrict_): Remove. All uses replaced
with __restrict.
(__size_t): Remove. All uses replaced by size_t.
(size_t): Define by defining __need_size_t and including <stddef.h>.
This should work even in non-glibc platforms, where any name
pollution is OK.
Use __USE_MISC instead of __USE_BSD || __USE_GNU.
(struct stat64): Don’t worry about __GLOB_GNULIB.
(glob, globfree, glob_pattern_p): Remove macros for
__USE_FILE_OFFSET64 && __GNUC__ < 2 && !defined __GLOB_GNULIB
case. Remove _GL_ARG_NONNULL as GNU behavior is to accept NULL
but set errno.
* lib/glob.c (_GL_ARG_NONNULL) [!_LIBC]: Remove. All uses
removed since the glibc behavior works on null pointers.
Do not include stdio.h; old SunOS is irrelevant now.
Do not worry about GLOB_ONLY_P as we now mimic glibc here.
Include glob_internal.h.
(D_INO_TO_RESULT): Depend on (_LIBC || D_INO_IN_DIRENT), not
((POSIX || WINDOWS32) && !__GNU_LIBRARY__). The latter probably
worked only coincidentally.
(attribute_hidden, __attribute_noinline__, __glibc_unlikely):
Remove macros; now done in glob.in.h.
(size_add_wrapv): Do not use __builtin_add_overflow if __ICC.
(glob): Properly initialize glob structure with
GLOB_BRACE|GLOB_DOOFFS (bug 20707).
Remove old code using SHELL since Bash no longer
uses this.
(glob, prefix_array): Separate MS code better.
(glob, glob_in_dir): Use C99 decls before statements when glibc
does.
(glob_in_dir): Remove old Amiga and VMS code.
(globfree, __glob_pattern_type, __glob_pattern_p): Move to
separate files.
* lib/glob.in.h (attribute_hidden, __attribute_noinline__)
(__glibc_unlikely):
Move here from glob.c.
(__restrict): New macro here, replacing the _Restrict_ in glob.c.
(weak_alias): New macro.
(__size_t): Remove. All uses replaced by size_t.
* modules/d-ino (License): Now LGPLv2+, for compatibility with glob.
* modules/glob (Files): Add +lib/glob_internal.h,
lib/glob_pattern_p.c, lib/globfree.c.
(Depends-on): Remove snippet/arg-nonnull.
2017-08-22 Paul Eggert <eggert@cs.ucla.edu>
glob: port to clang's Undefined Sanitizer
Problem reported by Tim Rühsen in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00144.html
* lib/glob.c (FLEXIBLE_ARRAY_MEMBER) [_LIBC]: Define to empty.
(glob_in_dir): Do not rely on undefined behavior in accessing
struct members beyond their bounds. Use a flexible array member
instead.
2017-08-21 Paul Eggert <eggert@cs.ucla.edu>
vc-list-files: port to Solaris 10
* build-aux/vc-list-files: Don't assume test -e works.
2017-08-21 Karl Berry <karl@freefriends.org>
* doc/posix-functions/srandom.texi (srandom): typo }.
2017-08-20 Paul Eggert <eggert@cs.ucla.edu>
git-version-gen: port to Solaris 10
Problem reported by Dagobert Michelsen in:
http://lists.gnu.org/r/grep-devel/2017-08/msg00002.html
* build-aux/git-version-gen (v_from_git):
Use expr instead of shell substitution.
2017-08-19 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Improve detection of MIPS ABI.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): For MIPS, test the value of
_MIPS_SIM.
2017-08-17 Bruno Haible <bruno@clisp.org>
hypot tests: Fix test failure on FreeBSD 11.0/x86.
* tests/test-hypot.h (test_function): Declare z as 'volatile'.
2017-08-17 Bruno Haible <bruno@clisp.org>
float: Fix LDBL_MIN value on FreeBSD/x86.
* lib/float.in.h (LDBL_MIN) [__FreeBSD__]: Add more precision.
2017-08-17 Bruno Haible <bruno@clisp.org>
random: Fix test compilation failure on Cygwin 1.5.25.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_INITSTATE,
HAVE_DECL_SETSTATE.
* m4/random.m4 (gl_FUNC_RANDOM): Test whether initstate and setstate are
declared.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_INITSTATE,
HAVE_DECL_SETSTATE.
* lib/stdlib.in.h (initstate): Declare also if HAVE_DECL_INITSTATE is 0.
(setstate): Declare also if HAVE_DECL_SETSTATE is 0.
* doc/posix-functions/initstate.texi: Mention the Cygwin 1.5.x problem.
* doc/posix-functions/random.texi: Likewise.
* doc/posix-functions/setstate.texi: Likewise.
* doc/posix-functions/srandom.texi: Likewise.
2017-08-16 Bruno Haible <bruno@clisp.org>
stdnoreturn: Fix test compilation failure on Cygwin.
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): On Cygwin, use gnulib's
<stdnoreturn.h> replacement.
* lib/stdnoreturn.in.h (noreturn): Treat Cygwin like MSVC.
* doc/posix-headers/stdnoreturn.texi: Mention the Cygwin problem.
2017-08-16 Bruno Haible <bruno@clisp.org>
thread: Fix conflict with pthread_sigmask module.
* lib/glthread/thread.h (pthread_sigmask): Don't declare it weak if
it's defined as a macro.
* modules/thread (Depends-on): Add pthread_sigmask.
2017-08-16 Paul Eggert <eggert@cs.ucla.edu>
rename: port better to NetBSD
* doc/posix-functions/rename.texi (rename): NetBSD 7
does not have the link-count bug.
* m4/rename.m4 (gl_FUNC_RENAME): Don’t consider NetBSD to be
broken merely because rename ("a", "b") removes "a" when the two
names are hard links to the same file.
2017-08-16 Bruno Haible <bruno@clisp.org>
iconv_open, uni*: Add support for VPATH builds with OpenBSD 'make'.
* modules/iconv_open (Makefile.am): In the rules that use gperf, prefix
the target file names with '$(srcdir)/'.
* modules/unicase/locale-language (Makefile.am): Likewise.
* modules/unicase/special-casing (Makefile.am): Likewise.
* modules/unictype/bidiclass-byname (Makefile.am): Likewise.
* modules/unictype/category-byname (Makefile.am): Likewise.
* modules/unictype/combining-class-byname (Makefile.am): Likewise.
* modules/unictype/joininggroup-byname (Makefile.am): Likewise.
* modules/unictype/joiningtype-byname (Makefile.am): Likewise.
* modules/unictype/property-byname (Makefile.am): Likewise.
* modules/unictype/scripts (Makefile.am): Likewise.
* modules/uninorm/composition (Makefile.am): Likewise.
2017-08-16 Bruno Haible <bruno@clisp.org>
nonblocking-socket tests: Fix failure on OpenBSD 6.0.
* tests/test-nonblocking-socket.h (SOCKET_DATA_BLOCK_SIZE): Increase
value for OpenBSD.
2017-08-16 Bruno Haible <bruno@clisp.org>
rename, renameat: Update doc regarding NetBSD.
* doc/posix-functions/rename.texi: Clarify that when using
-D_XOPEN_SOURCE=500 on NetBSD 7.0, the hard link bug is gone.
* doc/posix-functions/renameat.texi: Be more precise about NetBSD
version.
2017-08-15 Paul Eggert <eggert@cs.ucla.edu>
renameat2: port better to macOS
* lib/renameat2.c (renameat2): Use renameatx_np if available.
futimens: don’t assume struct timespec layout
* m4/futimens.m4 (gl_FUNC_FUTIMENS):
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT):
* tests/test-fdutimensat.c (main):
* tests/test-futimens.h (test_futimens):
* tests/test-lutimens.h (test_lutimens):
* tests/test-utimens.h (test_utimens):
* tests/test-utimensat.c (main):
Don’t assume that struct timespec is a two-member structure in
tv_sec, tv_nsec order. Although this is true on all platforms we
know about, POSIX does not guarantee it.
rename: document+test NetBSD rename
Test failure reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00104.html
This is an area where NetBSD is better-behaved than POSIX,
so allow the NetBSD behavior in tests.
* doc/posix-functions/rename.texi:
* doc/posix-functions/renameat.texi: Document NetBSD behavior.
* tests/test-rename.h (test_rename): Allow NetBSD behavior.
2017-08-15 Bruno Haible <bruno@clisp.org>
renameat: Ensure declaration in <stdio.h> on NetBSD.
* lib/stdio.in.h: Include <unistd,h> also on NetBSD.
* doc/posix-functions/renameat.texi: Mention this problem.
2017-08-15 Bruno Haible <bruno@clisp.org>
duplocale: Work around NetBSD 7.0 bug.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test against the NetBSD 7.0 bug.
* lib/duplocale.c: Add comment about NetBSD problem.
* doc/posix-functions/duplocale.texi: Mention the NetBSD problem.
2017-08-15 Bruno Haible <bruno@clisp.org>
duplocale tests: Verify use with *_l functions.
* modules/duplocale-tests (configure.ac): Test for uselocale and
some *_l functions.
* tests/test-duplocale.c (test_with_uselocale): New function, extracted
from main.
(get_locale_dependent_values_from, test_with_locale_parameter): New
functions.
(main): Test both test_with_uselocale and test_with_locale_parameter.
2017-08-15 Bruno Haible <bruno@clisp.org>
extensions: Enable NetBSD specific extensions.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _NETBSD_SOURCE.
2017-08-14 Bruno Haible <bruno@clisp.org>
open, openat: Update doc about O_CLOEXEC.
* doc/posix-functions/open.texi: More concrete list of platforms.
* doc/posix-functions/openat.texi: Likewise.
2017-08-14 Paul Eggert <eggert@cs.ucla.edu>
open: support O_CLOEXEC
* NEWS, doc/posix-functions/open.texi:
* doc/posix-functions/openat.texi: Document this.
* lib/fcntl.in.h (O_CLOEXEC): Default to a nonzero value.
(GNULIB_defined_O_CLOEXEC): New symbol.
* lib/open.c: Include cloexec.h.
(open): Support O_CLOEXEC.
* lib/openat.c: Include cloexec.h.
(rpl_openat): Support O_CLOEXEC.
* lib/popen-safer.c: Do not include cloexec.h.
(open_noinherit): Remove.
(popen_safer): Use O_CLOEXEC instead of set_cloexec_flag.
* lib/save-cwd.c: Do not include cloexec.h.
(save_cwd): Use O_CLOEXEC instead of set_cloexec_flag.
* m4/open-cloexec.m4: New file.
* m4/open.m4 (gl_FUNC_OPEN): Require gl_PREPROC_O_CLOEXEC.
Replace 'open' if O_CLOEXEC is not present.
* m4/openat.m4 (gl_FUNC_OPENAT): Require gl_PREPROC_O_CLOEXEC.
Replace 'openat' if O_CLOEXEC is not present.
* modules/freopen (Depends-on): Depend on 'open' if replacing freopen.
* modules/open (Files): Add m4/open-cloexec.m4.
(Depends-on): Depend on cloexec if replacing 'open'.
* modules/openat (Files): Add m4/open-cloexec.m4.
(Depends-on): Depend on cloexec if replacing openat.
* modules/popen-safer (Depends-on): Remove cloexec.
* modules/save-cwd (Depends-on): Remove cloexec, and add
fd-safer-flag and 'open'.
2017-08-13 Paul Eggert <eggert@cs.ucla.edu>
reallocarray: minor fixes
* doc/glibc-functions/reallocarray.texi: Update version numbers.
* m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Don't trust _cv_ contents.
* modules/reallocarray (License): Change from GPL to LGPL.
* tests/test-reallocarray.c (main): Fix ENOMEM typo.
Indent properly and don't use tabs.
2017-08-13 Darshit Shah <darnir@gnu.org>
reallocarray: New module
reallocarray is a new function in glibc 2.26 to safely allocate an array
of memory locations with integer overflow protection.
* MODULES.html.sh: Add reallocarray.
* doc/glibc-functions/reallocarray.texi: Documentation for reallocarray.
* lib/reallocarray.c: New file to implement module reallocarray.
* lib/stdlib.in.h: Add function declarations for reallocarray.
* m4/reallocarray.m4: New file.
* m4/stdlib_h.m4: Declare reallocarray.
* modules/reallocarray: New file.
* modules/reallocarray-test: New file.
* modules/stdlib: Coerce stdlib.h to export reallocarray.
* tests/test-reallocarray.c: New test.
2017-08-12 Paul Eggert <eggert@cs.ucla.edu>
dirent-safer: fix cloexec race
* lib/opendir-safer.c: Include fcntl.h instead of unistd-safer.h.
(opendir_safer): Use F_DUPFD_CLOEXEC.
* modules/dirent-safer (Depends-on): Add fcntl. Remove unistd-safer.
* tests/test-dirent-safer.c: Do not include unistd-safer.h,
as it is no longer a prerequisite. Use F_DUPFD_CLOEXEC
instead of dup_safer.
fts: fix cloexec races
* lib/fts.c [!_LIBC]: Do not include dirent--.h, unistd--.h, cloexec.h.
(opendirat, diropen): Use O_CLOEXEC instead of set_cloexec_flag.
(fts_build): Use F_DUPD_CLOEXEC rinstad of set_cloexec_flag.
(fd_ring_check): Set cloexec flag on new file descriptors.
(fts_build, fd_ring_check): While we’re at it, make sure the
resulting file descriptor is not 0, 1, or 2, since that is easy.
2017-08-11 Bruno Haible <bruno@clisp.org>
fts tests: Fix link error.
Reported by Tom G. Christensen in
https://lists.gnu.org/r/bug-gnulib/2017-08/msg00078.html
* modules/fts-tests (Makefile.am): Link test-fts against LIBINTL.
2017-08-10 Paul Eggert <eggert@cs.ucla.edu>
fts: port recent changes to CentOS 6
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00064.html
* lib/fts.c (fsword): New type.
(struct dev_type, filesystem_type): Use it.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Check for __fsword_t.
Also, check for f_type only if fstatfs and sys/vfs.h work.
2017-08-09 Paul Eggert <eggert@cs.ucla.edu>
tempname: do not depend on secure_getenv
Excess dependency noted by Eli Zaretskii (Bug#28023#17).
* lib/tempname.c (__secure_getenv) [!_LIBC]: Remove; unused.
* modules/tempname (Depends-on): Remove secure_getenv.
2017-08-08 Paul Eggert <eggert@cs.ucla.edu>
extensions: add _OPENBSD_SOURCE
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _OPENBSD_SOURCE.
2017-08-06 Reuben Thomas <rrt@sc3d.org>
Bruno Haible <bruno@clisp.org>
manywarnings: Add support for C++.
* build-aux/g++-warning.spec: New file.
* m4/manywarnings-c++.m4: New file.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C++)): New macro, that
redirects to manywarnings-c++.m4.
* modules/manywarnings (Files): Add m4/manywarnings-c++.m4.
2017-08-06 Paul Eggert <eggert@cs.ucla.edu>
git-version-gen: another fix for tags with "-"
* build-aux/git-version-gen: Improve fix for tags containing "-".
Suggested by Markus Armbruster in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00034.html
2017-08-06 Bruno Haible <bruno@clisp.org>
warnings, manywarnings: Add support for multiple languages, not just C.
* warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL): Renamed from
gl_UNKNOWN_WARNINGS_ARE_ERRORS.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)): New macro.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): New macro.
(gl_UNKNOWN_WARNINGS_ARE_ERRORS): Dispatch to
gl_UNKNOWN_WARNINGS_ARE_ERRORS(_AC_LANG).
(gl_WARN_ADD): Require the gl_UNKNOWN_WARNINGS_ARE_ERRORS specialization
of the current language. If C++ is the current language, modify
WARN_CXXFLAGS instead of WARN_CFLAGS.
* manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): New macro, extracted from
gl_MANYWARN_ALL_GCC.
(gl_MANYWARN_ALL_GCC): Dispatch to gl_MANYWARN_ALL_GCC(_AC_LANG).
2017-08-06 Markus Armbruster <armbru@pond.sub.org>
git-version-gen: Fix for tags containing '-'
Really old versions of git-describe (before v1.5.0, Feb 2007)
don't have the number of commits in their long format output,
i.e. where modern 'git describe --abbrev=4 --match="v*"' prints
"v0.1-1494-g124b9", they print "v0.1-1494-g124b9". git-version-gen
recognizes both patterns, and normalizes the old format to the new one.
Unfortunately, this normalization code gets confused when the tag
contains '-'. Reproducer:
$ git-tag -m test v0.2-rc1
$ build-aux/git-version-gen .tarball-version; echo
build-aux/git-version-gen: WARNING: git rev-list failed
UNKNOWN
We take exact tag "v0.2-rc1" for the old format, extract the presumed
tag "v0.2" from it, then run "git rev-list v0.2..HEAD" to count
commits since tha tag. Fails, because tag "v0.2" does not exist.
* git-version-gen: We could perhaps drop support for versions from
more than a decade ago. But tightening the pattern match is easy
enough, so do that. Still breaks when you use version tags ending in
something matching -g????, but you arguably get what you deserve then.
2017-08-05 Paul Eggert <eggert@cs.ucla.edu>
valgrind-tests: use ls, and cache
* m4/valgrind-tests.m4: Test ls, not bash.
Problem reported by Reuben Thomas.
Also, cache the result so that it can be overridden.
2017-08-04 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: port to 64-bit GCC builds of Emacs
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Compute max safe
object size rather than hardwiring 2147483647. This is needed to
build GNU Emacs, which has one conditional (and used
only-in-theory) call to malloc with a literal greater than
2147483647.
2017-08-04 Bruno Haible <bruno@clisp.org>
Relax the license of some modules with no runtime code.
* modules/std-gnu11 (License): Set to 'unlimited'.
* modules/c99 (License): Likewise.
Reported by Reuben Thomas <rrt@sc3d.org>.
* modules/d-ino (License): Set to 'LGPL'.
* modules/host-os (License): Likewise.
* modules/longlong (License): Likewise.
2017-08-03 Paul Eggert <eggert@cs.ucla.edu>
renameat2: port to RHEL 7 + NFS
* lib/renameat2.c (renameat2) [SYS_renameat2]:
Port to RHEL 7 + NFS. Problem reported by Ted Zlatanov in:
http://lists.gnu.org/r/emacs-devel/2017-08/msg00082.html
2017-08-02 Paul Eggert <eggert@cs.ucla.edu>
renameat2: port to non-renameat platforms
Problem reported for MSVC-2015 by Gisle Vanem in:
http://lists.gnu.org/r/bug-gnulib/2017-08/msg00001.html
* lib/renameat2.c [!HAVE_RENAMEAT]: Include <sys/stat.h> here too.
(renameat2) [!HAVE_RENAMEAT]: Fix typo in arg passing.
2017-08-01 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: port to 32-bit GCC bug
Problem reported by Pino Toscano in:
http://lists.gnu.org/r/bug-gnulib/2017-07/msg00150.html
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Use 2**31 - 1,
not 2**63 - 1, to work around the following GCC bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81650
2017-07-30 Paul Eggert <eggert@cs.ucla.edu>
backupfile: new function to validate backup suffix
* lib/backupfile.c (set_simple_backup_suffix): New function.
(backupfile_internal): Use it.
canonicalize: fix EOVERFLOW commentary
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-07/msg00147.html
* lib/canonicalize.c (canonicalize_filename_mode):
* lib/canonicalize-lgpl.c (__realpath): Fix comments.
Don't interpret EOVERFLOW to mean nonexistence
* lib/fts.c (fts_stat): If lstat fails, report its errno, which
may be EOVERFLOW; this is likely more useful than reporting the
stat errno.
* lib/glob.c (link_stat): Rename from link_exists2_p and
return -1/0 instead of 0/1. Caller changed.
* lib/glob.c (link_exists_p):
* lib/renameat2.c (rename_noreplace, renameat2):
* lib/tempname.c (try_nocreate):
If errno == EOVERFLOW then the directory entry exists, so do not
act as if it does not exist.
backup-rename: new module
It is like backupfile, except it avoids some race conditions,
and it does not output to stderr or exit.
* MODULES.html.sh: Add backup-rename.
* lib/backup-find.c, lib/backup-internal.h, lib/backup-rename.c:
* modules/backup-rename: New files.
* lib/backupfile.c: Turn this into an internals file, which
contains code common to backupfile and backup_rename. Include
backupfile-internal.h instead of backupfile.h. Do not include
argmatch.h or xalloc.h: include xalloc-oversized.h. Include
renameat2.h and fcntl.h.
(BACKUP_NOMEM): New constant.
(numbered_backup): New args BASE_OFFSET and *DIRPP. Do not exit
on memory exhaustion; just return BACKUP_NOMEM. Caller changed.
(backupfile_internal): Rename from find_backup_file_name.
Support new arg RENAME.
(backup_args, backup_types, get_version, xget_version):
Move to lib/backup-find.c.
* lib/backupfile.h (backup_file_rename): New decl.
* modules/backupfile (Files): Add lib/backup-internal.h,
lib/backup-find.c.
(Depends-on): Add dirfd, fcntl, renameat2.
(lib_SOURCES): Add backup-find.c.
renameat2: port better to older Solaris
* lib/renameat2.c (renameat2): Set ret_val properly on old Solaris.
Add goto to use a label, to silence picky compilers.
fts-tests: port to gcc -Wwrite-strings
* tests/test-fts.c (base, base_d): New static vars.
(argv, remove_tree, main): Use them.
2017-07-26 Reuben Thomas <rrt@sc3d.org>
relocatable-lib{,-lgpl}: improve documentation
* doc/relocatable-maint.texi: Document use of relocatable-lib{,-lgpl}.
Various other updates.
2017-07-30 Reuben Thomas <rrt@sc3d.org>
Bruno Haible <bruno@clisp.org>
relocatable-lib{,-lgpl}: add Valgrind suppressions
* lib/relocatable.valgrind: New file.
* modules/relocatable-lib (Files): Add relocatable.valgrind.
* modules/relocatable-lib-lgpl: Likewise.
2017-07-26 Reuben Thomas <rrt@sc3d.org>
relocatable: Make the license on the sources the GPL.
* lib/relocatable.h, lib/relocatable.c: Change the copyright notice from
LGPL, which was a special case so that the relocatable source files
could be used without gnulib-tool, to GPL. They can still be used under
the LGPL, using the --lgpl option to gnulib-tool.
2017-07-30 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Detect ILP32 ABI on IA-64 HP-UX.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Distinguish ia64-ilp32
from ia64. For arm64, test only __aarch64__, as __ARM_64BIT_STATE and
__ARM_PCS_AAPCS64 are not reliable indicators: they are not defined on
Ubuntu 14.04 (gcc 4.8.4) and Debian 8 (gcc 4.9.2).
2017-07-27 Paul Eggert <eggert@cs.ucla.edu>
faccessat: document AT_SYMLINK_NOFOLLOW issue
* doc/posix-functions/faccessat.texi: Modernize platform list.
Document AT_SYMLINK_NOFOLLOW limitation.
renameat2: port to Solaris 10
* lib/renameat2.c (rename_noreplace): Use lstat, not faccessat
with AT_SYMLINK_NOFOLLOW (which is not portable).
(renameat): Undef before using, to avoid endless recursion when
the replacement renameat calls renameat2 which calls the
replacement renameat.
(renameat2): Use lstatat, not faccessat with AT_SYMLINK_NOFOLLOW.
* modules/renameat2 (Depends-on): Remove faccessat.
* modules/renameat-tests (test_renameat_LDADD):
* modules/renameat2-tests (test_renameat2_LDADD):
Remove $(LIB_EACCESS).
renameat2: new module
Although the Linux syscall renameat2 is not in glibc (yet?), it is
useful to have access to its RENAME_NOREPLACE flag.
* MODULES.html.sh (func_all_modules): Add renameat2.
* lib/renameat2.c, lib/renameat2.h, modules/renameat2:
* modules/renameat2-tests, tests/test-renameat2.c: New files.
* lib/renameat.c (renameat): Move most of the implementation
to renameat2, and just call renameat2.
* modules/renameat (Files): Remove lib/at-func2.c.
(Depends-on): Depend only on renameat2.
(Include): Remove <fcntl.h>.
* modules/renameat-tests (test_renameat_LDADD): Add $(LIB_EACCESS),
since renameat (via renameat2) might use faccessat.
2017-07-27 Erik Skultety <eskultet@redhat.com> (tiny change)
vc-list-files: Adjust the script to support git worktrees
* build-aux/vc-list-files: Require existence, not directory.
2017-07-26 Paul Eggert <eggert@cs.ucla.edu>
doc: bring MODULES.html.sh up to date
Somehow a few months ago we stopped updating MODULES.html.sh.
I don’t recall explicitly deciding this, so I updated it now.
Alternatively I suppose we could remove it.
* MODULES.html.sh: Add builtin-expect, c99, ctime, explicit_bzero,
localtime, localtime-buffer, noreturn, nstrftime, strftime-fixes,
truncate, utime, utime-h, windows-stat-inodes,
windows-stat-override, windows-stat-timespec, year2038. Sort.
2017-07-26 Jim Meyering <meyering@fb.com>
fprintftime: fix build-break caused by recent renaming
* lib/fprintftime.c: Include "nstrftime.c", not the now-renamed
"strftime.c".
* modules/fprintftime: Depend directly on nstrftime.
2017-07-26 Paul Eggert <eggert@cs.ucla.edu>
regex: work with GCC7's -Werror=implicit-fallthrough=
* lib/regex_internal.h (FALLTHROUGH): New macro.
* lib/regcomp.c (peek_token_bracket, parse_expression):
* lib/regexec.c (check_node_accept): Use it.
2017-07-24 Paul Eggert <eggert@cs.ucla.edu>
fts: simplify fts_build
* lib/fts.c (fts_build): Simplify, and be lazier about
calling leaf_optimization.
fts: three levels of leaf optimization
* lib/fts.c (enum leaf_optimization): New type with three values.
(S_MAGIC_AFS): New macro. Sort them.
(leaf_optimization): Rename from leaf_optimization_applies, and
return enum leaf_optimization instead of bool. All uses changed.
Add cases for unknown type and for AFS.
(fts_build): Don’t rely on link counts if NO_LEAF_OPTIMIZATION.
fts: cache dirent_inode_sort_may_be_useful too
* lib/fts.c (struct dev_type): New struct.
(DEV_TYPE_HT_INITIAL_SIZE): New constant.
(dev_type_hash, dev_type_compare, filesystem_type): New functions.
(dirent_inode_sort_may_be_useful, leaf_optimization_applies):
Now takes FTSENT const *, not int. All uses changed. Use
filesystem_type to cache.
(link_count_optimize_ok): Remove. Caller changed to use
leaf_optimization_applies, which now uses shared cache.
fts: introduce MIN_DIR_NLINK
* lib/fts.c (MIN_DIR_NLINK): New constant.
Use it instead of 2, whenever we are talking about link counts.
fts: nlink_t signedness fixups
* lib/fts.c (fts_open): Set rootparent n_dirs_remaining to -1
so that root need not be a special case later.
(fts_read): Remove now-redundant test for fts_level.
Do not assume that nlink_t is signed.
(fts_build): Remove useless decrement of nlinks.
(fts_stat): Avoid unlikely signed integer overflow later, if
nlink_t is signed.
fts-tests: new module
* modules/fts-tests, tests/test-fts.c: New files.
2017-07-23 Bruno Haible <bruno@clisp.org>
Rename module 'strftime' to 'nstrftime'.
* m4/nstrftime.m4: Renamed from m4/strftime.m4.
* lib/nstrftime.c: Renamed from lib/strftime.c.
* modules/nstrftime: Renamed from modules/strftime.
(Files, Makefile.am): Update.
* tests/test-nstrftime.c: Renamed from tests/test-strftime.c.
Fix comment.
* modules/nstrftime-tests: Renamed from modules/strftime-tests.
(Files, Makefile.am): Update.
* modules/strftime: New file, an obsolete indirection.
* doc/posix-functions/strftime.texi: Update reference.
* config/srclist.txt: Update info.
* NEWS: Mention the change.
2017-07-21 Tim Rühsen <tim.ruehsen@gmx.de>
malloca: Silence a warning from clang's memory sanitizer.
* lib/malloca.c (NO_SANITIZE_MEMORY): New macro.
(freea): Use it.
2017-07-18 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Fix detection of MIPS ABI.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): For MIPS, really test the
ABI, not the CPU instruction set.
2017-07-16 Paul Eggert <eggert@cs.ucla.edu>
explicit_bzero: new module
The explicit_bzero function has been added to glibc.
This module is intended to supports its use in GNU programs.
* doc/glibc-functions/explicit_bzero.texi, lib/explicit_bzero.c:
* m4/explicit_bzero.m4, modules/explicit_bzero:
New files.
* doc/gnulib.texi (Glibc string.h): Link to new doc.
* lib/string.in.h (explicit_bzero): Declare.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add defaults for it.
* modules/string (string.h): Substitute its vars.
2017-07-16 Bruno Haible <bruno@clisp.org>
threadlib: Support static linking.
* m4/threadlib.m4 (gl_THREADLIB_BODY): When static linking is in use,
set gl_cv_have_weak to 'no'.
2017-07-16 Bruno Haible <bruno@clisp.org>
unicase/locale-language: Fix link dependencies.
* modules/unicase/locale-language (Link): New section.
* modules/unicase/locale-language-tests (Makefile.am): Link
test-locale-language program with $(LIBTHREAD).
2017-07-15 John E. Malmberg <wb8tyw@gmail.com>
sys_socket: Add support for OpenVMS.
* lib/sys_socket.in.h [__VMS]: Define CMSG_SPACE, CMSG_LEN.
* doc/posix-headers/sys_socket.texi: Mention OpenVMS issues.
2017-07-15 John E. Malmberg <wb8tyw@gmail.com>
sys_resource: Add support for OpenVMS.
* lib/resource.in.h [__VMS]: Define RUSAGE_SELF, RUSAGE_CHILDREN.
* doc/posix-headers/sys_resource.texi: Mention OpenVMS issues.
2017-07-15 John E. Malmberg <wb8tyw@gmail.com>
Bruno Haible <bruno@clisp.org>
math: Add support for OpenVMS.
* lib/math.in.h [__VMS]: Include <fp.h>.
* doc/posix-headers/math.texi: Mention OpenVMS issues.
2017-07-15 Bruno Haible <bruno@clisp.org>
getdtablesize: Add minimal support for OpenVMS.
Reported by John E. Malmberg <wb8tyw@qsl.net>.
* modules/getdtablesize (Description): Fix.
* lib/getdtablesize.c: Fix comment.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Don't replace the
getdtablesize() function, even though the test fails.
* doc/glibc-functions/getdtablesize.texi: Reference SUSv2. Describe
limitation on OpenVMS.
2017-07-13 Bruno Haible <bruno@clisp.org>
Revisit cross-compilation guesses.
* m4/wctype_h.m4 (gl_WCTYPE_H): Add comment.
2017-07-13 Bruno Haible <bruno@clisp.org>
Improve cross-compilation guesses for native Windows.
* m4/btowc.m4 (gl_FUNC_BTOWC): Add cross-compilation guess for native
Windows.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Likewise.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Likewise.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
* m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): Likewise.
* m4/cbrtl.m4 (gl_FUNC_CBRTL, gl_FUNC_CBRTL_WORKS): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/dup.m4 (gl_FUNC_DUP): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/exp2.m4 (gl_FUNC_EXP2_WORKS): Likewise.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise.
* m4/expm1.m4 (gl_FUNC_EXPM1): Likewise.
* m4/expm1f.m4 (gl_FUNC_EXPM1F_WORKS): Likewise.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Likewise.
* m4/fabsl.m4 (gl_FUNC_FABSL_WORKS): Likewise.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise.
* m4/float_h.m4 (gl_FLOAT_H): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/fma.m4 (gl_FUNC_FMA_WORKS): Likewise.
* m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Likewise.
* m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Likewise.
* m4/fmod.m4 (gl_FUNC_FMOD): Likewise.
* m4/fmodf.m4 (gl_FUNC_FMODF): Likewise.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise.
* m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): Likewise.
* m4/ftello.m4 (gl_FUNC_FTELLO): Likewise.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Likewise.
* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise.
* m4/hypotf.m4 (gl_FUNC_HYPOTF, gl_FUNC_HYPOTF_WORKS): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL, gl_FUNC_HYPOTL_WORKS): Likewise.
* m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Likewise.
* m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
* m4/isinf.m4 (gl_ISINFL_WORKS): Likewise.
* m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise.
* m4/log.m4 (gl_FUNC_LOG, gl_FUNC_LOG_WORKS): Likewise.
* m4/logf.m4 (gl_FUNC_LOGF, gl_FUNC_LOGF_WORKS): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise.
* m4/log10.m4 (gl_FUNC_LOG10, gl_FUNC_LOG10_WORKS): Likewise.
* m4/log10f.m4 (gl_FUNC_LOG10F, gl_FUNC_LOG10F_WORKS): Likewise.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Likewise.
* m4/log1p.m4 (gl_FUNC_LOG1P): Likewise.
* m4/log1pf.m4 (gl_FUNC_LOG1PF, gl_FUNC_LOG1PF_WORKS): Likewise.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise.
* m4/log2.m4 (gl_FUNC_LOG2, gl_FUNC_LOG2_WORKS): Likewise.
* m4/log2f.m4 (gl_FUNC_LOG2F, gl_FUNC_LOG2F_WORKS): Likewise.
* m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise.
* m4/logb.m4 (gl_FUNC_LOGB_WORKS): Likewise.
* m4/logbf.m4 (gl_FUNC_LOGBF_WORKS): Likewise.
* m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Likewise.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT, gl_MBRTOWC_C_LOCALE): Likewise.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Likewise.
* m4/modf.m4 (gl_FUNC_MODF): Likewise.
* m4/modff.m4 (gl_FUNC_MODFF): Likewise.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/perror.m4 (gl_FUNC_PERROR): Likewise.
* m4/popen.m4 (gl_FUNC_POPEN): Likewise.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE,
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2,
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF,
gl_FUNC_REMAINDERF_WORKS): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL,
gl_FUNC_REMAINDERL_WORKS): Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
* m4/signbit.m4 (gl_SIGNBIT): Likewise.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
* m4/strerror.m4 (gl_FUNC_STRERROR_0): Likewise.
* m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/usleep.m4 (gl_FUNC_USLEEP): Likewise.
* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL):
Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/chown.m4 (AC_FUNC_CHOWN): Add cross-compilation guess for native
Windows. Enable also on Autoconf 2.70.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE,
gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE,
gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_N,
gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_FLAG_LEFTADJUST, gl_PRINTF_FLAG_ZERO,
gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99,
gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): Add cross-compilation guess
for native Windows.
(gl_PRINTF_POSITIONS, gl_PRINTF_FLAG_GROUPING,
gl_VSNPRINTF_ZEROSIZE_C99): Add comment.
2017-07-13 Bruno Haible <bruno@clisp.org>
Improve cross-compilation guesses for native Windows.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Add cross-compilation guess for native
Windows.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Don't use internals of
memchr.m4.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise.
2017-07-13 Bruno Haible <bruno@clisp.org>
Improve cross-compilation guesses for native Windows.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Add cross-compilation guess for
native Windows.
(gl_FUNC_FFLUSH): Update accordingly.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Likewise.
* m4/fseeko.m4 (gl_FUNC_FFLUSH_STDIN): Likewise.
2017-07-11 Bruno Haible <bruno@clisp.org>
More systematic m4 quoting and indentation.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Quote systematically.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Likewise.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/host-os.m4 (gl_HOST_OS): Likewise.
* m4/jm-winsz1.m4 (gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H,
gl_WINSIZE_IN_PTEM): Likewise.
* m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Likewise.
* m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Likewise.
* m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
* m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Quote systematically.
Correct indentation.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/jm-winsz2.m4 (gl_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
2017-07-10 Bruno Haible <bruno@clisp.org>
round, roundf: Avoid compiler warning in configure test.
* m4/round.m4 (gl_FUNC_ROUND): Use 'return' instead of exit().
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
2017-07-10 Bruno Haible <bruno@clisp.org>
getlogin tests: Avoid #ifdefs when sharing code between modules.
* modules/getlogin_r-tests (Files): Add tests/test-getlogin.h.
* modules/getlogin-tests (Files): Likewise. Remove
tests/test-getlogin_r.c.
* tests/test-getlogin.h: Extracted from tests/test-getlogin_r.c.
* tests/test-getlogin.c: Extracted from tests/test-getlogin_r.c.
* tests/test-getlogin_r.c: Include test-getlogin.h. Omit code that tests
getlogin().
2017-07-10 Paul Eggert <eggert@cs.ucla.edu>
getlogin: don’t assume one name per uid
Problem reported by Wolfgang F. Muthmann (Bug#27640).
* modules/getlogin-tests (Files): Add tests/test-getlogin_r.c.
(ttyname): Remove test.
* modules/getlogin_r-tests (ttyname): Remove test.
* tests/test-getlogin.c: Replace this near-clone of test-getlogin_r.c
with ‘#define TEST_LOGIN’ followed by ‘#include "test-getlogin_r.c"’.
* tests/test-getlogin_r.c: If TEST_GETLOGIN is defined, test
getlogin rather than getlogin_r. This avoids code duplication.
(main): Use isatty and fstat rather than ttyname and stat.
Use getpwnam instead of getpwuid, to be portable to test platforms
that have multiple login names for the same uid.
2017-07-10 Tim Rühsen <tim.ruehsen@gmx.de>
Bruno Haible <bruno@clisp.org>
glob: Fix more memory leaks.
* lib/glob.c (glob): Use 'goto out' in order to free dirname before
returning.
Reported by Tim Rühsen.
2017-07-10 Bruno Haible <bruno@clisp.org>
Make sure $host and $host_os are defined when used.
* m4/argz.m4 (gl_FUNC_ARGZ): Require AC_CANONICAL_HOST.
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Likewise.
* m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Likewise.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise.
* m4/opendir.m4 (gl_FUNC_OPENDIR): Likewise.
* m4/poll.m4 (gl_FUNC_POLL): Likewise.
* m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Likewise.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Require AC_CANONICAL_HOST outside the
m4_ifdef block.
2017-07-09 Bruno Haible <bruno@clisp.org>
*printf: Fix cross-compilation guess for Solaris.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_F): Fix copy-and-paste mistake from
2010-12-21.
2017-07-07 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
vasnprintf: port to macOS 10.13
Problem reported by comex in:
http://lists.gnu.org/r/bug-gnulib/2017-07/msg00056.html
* lib/vasnprintf.c (VASNPRINTF): Don’t use %n on macOS.
2017-07-06 Bruno Haible <bruno@clisp.org>
imaxdiv tests: Fix logic.
* tests/test-imaxdiv.c (main): Use == instead of =.
Reported by Coverity.
2017-07-06 Bruno Haible <bruno@clisp.org>
uninorm/filter: Fix use-after-free bug.
* lib/uninorm/uninorm-filter.c (uninorm_filter_write): Maintain
sortbuf == filter->sortbuf invariant.
Reported by Coverity.
2017-07-06 Bruno Haible <bruno@clisp.org>
glob: Fix more memory leaks.
* lib/glob.c (glob): Free dirname before returning.
Reported by Coverity and Tim Rühsen.
2017-07-06 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: fix uninit var bug
Reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-07/msg00038.html
* lib/parse-datetime.y (parse_datetime2): Do not use
uninitialized.
2017-07-05 Bruno Haible <bruno@clisp.org>
doc: Update for MSVC 14.
* doc/posix-headers/*.texi: Add info about MSVC 14.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2017-07-05 Bruno Haible <bruno@clisp.org>
sched: Fix build failure on native Windows (regression from 2017-06-19).
* m4/sched_h.m4 (gl_SCHED_H): Set HAVE_STRUCT_SCHED_PARAM always.
2017-07-03 John E. Malmberg <wb8tyw@gmail.com>
stdioext: Port to OpenVMS.
* lib/stdio-impl.h: OpenVMS uses struct _iobuf for FILE information.
* lib/fpending.c (fpending): Remove non-working VMS specific code.
* lib/fbufmode.c (fbufmode): Fix _IOLBF test to use fp_ macro.
* lib/fflush.c (clear_ungetc_buffer): Add OpenVMS to comments.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadseek): Likewise.
* lib/fseeko.c (fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwriteable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
2017-07-01 Benno Schulenberg <bensberg@telfort.nl>
glob: Declare variables at the very start of their scope.
* lib/glob.c (convert_dirent, convert_dirent64): Give each fragment
its separate scope, so the functions will compile on Haiku.
2017-07-01 Bruno Haible <bruno@clisp.org>
logbl: Work around a glibc bug on PowerPC64LE.
* m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Test also negative subnormal
numbers.
* doc/posix-functions/logbl.texi: Update.
2017-06-29 Bruno Haible <bruno@clisp.org>
stat, fstat: Compile stat-w32.c only on platforms that need it.
Suggested by Paul Eggert.
* modules/stat (configure.ac): Request stat-w32.o only on native
Windows.
* modules/fstat (configure.ac): Likewise.
2017-06-25 Bruno Haible <bruno@clisp.org>
stat: Improve last change.
* lib/stat-w32.c: Revert last change. Use generic idiom instead.
2017-06-25 Paul Eggert <eggert@cs.ucla.edu>
stat: port to xlc 12.01
* lib/stat-w32.c: Always include <sys/types.h>. Otherwise, xlc
12.01 complains "Compilation unit is empty."
2017-06-24 Paul Eggert <eggert@cs.ucla.edu>
xalloc-oversized: port to icc
* lib/xalloc-oversized.h (xalloc_oversized): Do not use
__builtin_mul_overflow if ICC is defined, as this results in
"undefined reference to `__builtin_mul_overflow'" with icc 17.0.2
20170213.
2017-06-19 Bruno Haible <bruno@clisp.org>
classpath: Avoid including config.h twice, as it produces warnings.
Reported by John E. Malmberg <wb8tyw@gmail.com>.
* lib/classpath.h: Conditionalize the include of config.h.
2017-06-19 Bruno Haible <bruno@clisp.org>
John E. Malmberg <wb8tyw@gmail.com> (tiny change)
sched: Fix compilation failure on OpenVMS.
* m4/sched_h.m4 (gl_SCHED_H): Require AC_CANONICAL_HOST. On OpenVMS,
test whether <pthread.h> exists and defines struct sched_param.
* lib/sched.in.h: On OpenVMS, include <pthread.h>.
2017-06-17 Paul Eggert <eggert@cs.ucla.edu>
diffseq: port to GCC 7 with --enable-gcc-warnings
* lib/diffseq.h (diag): Use an if, not an ifdef, for most of the
heuristic check. This way, GCC 7 with --enable-gcc-warnings does
not complain about big_snake being defined but not used.
2017-06-15 Bruno Haible <bruno@clisp.org>
gettext-h: Update theoretical condition for use of variable size arrays.
Reported by Paul Eggert.
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Extend comment
to include the theoretical condition for availability of variable size
arrays, if we could trust the value of __STDC_VERSION__.
2017-06-12 Bruno Haible <bruno@clisp.org>
Relicense some modules under LGPLv2+.
Daiki Ueno's approval is in
https://lists.gnu.org/r/bug-gnulib/2017-06/msg00058.html.
* modules/uniwidth/base (License): Change to LGPLv2+.
* modules/uniwidth/width (License): Likewise.
2017-06-11 Bruno Haible <bruno@clisp.org>
localename: Fix test failure on DragonFly BSD.
* lib/localename.c (gl_locale_name_thread_unsafe): Treat DragonFly BSD
like FreeBSD.
2017-06-11 Bruno Haible <bruno@clisp.org>
float: Fix 'float' and 'isinf' failures on DragonFly BSD.
* m4/float_h.m4 (gl_FLOAT_H): Treat DragonFly BSD like FreeBSD.
* lib/float.in.h: Likewise.
* m4/fmal.m4, m4/frexpl.m4, m4/logbl.m4: Update accordingly.
2017-06-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Clean up after autotools.
* gnulib-tool (func_create_testdir, func_create_megatestdir): Remove
useless directory left over by the Autotools.
2017-06-11 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix: port to glibc 2.25.90
Problem reported by Daniel P. Berrange in:
http://lists.gnu.org/r/bug-gnulib/2017-06/msg00003.html
* lib/getopt-pfx-core.h (_GETOPT_CORE_H):
* lib/getopt-pfx-ext.h (_GETOPT_EXT_H):
#undef if __GETOPT_PREFIX is defined.
2017-06-11 Bruno Haible <bruno@clisp.org>
strtod-obsolete: Fix license.
* modules/strtod-obsolete (License): Change to LGPL.
2017-06-10 Jim Meyering <meyering@fb.com>
maint: update to work with GCC7's -Werror=implicit-fallthrough=
* lib/savewd.c (FALLTHROUGH): Define.
(savewd_save, savewd_restore): Use this, rather than a comment,
whenever one switch case falls through into the next.
2017-06-08 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Support for aarch64 ILP32 ABI.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Recognize the aarch64 ILP32
ABI. Set HOST_CPU_C_ABI=arm64-ilp32 and define __arm64_ilp32__ in this
case.
2017-06-08 Paul Eggert <eggert@cs.ucla.edu>
doc: remove robots, add prereqs
* doc/build-automation.texi, doc/gnulib.texi: Mention prereqs for
builds. Simon's robot site does not seem to be up, so remove
mentions of it for now.
2017-06-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix bug in func_symlink_if_changed, from 2006-11-13.
* gnulib-tool (func_symlink_target): New function, extracted from
func_symlink.
(func_symlink, func_symlink_if_changed): Use it.
2017-06-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix bug in func_ln_s, from 2016-01-15.
* gnulib-tool (func_ln_s): Determine cp_src correctly.
2017-06-07 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Avoid conflict with gnulib 'getcwd' module on VMS.
Reported by John E. Malmberg <wb8tyw@gmail.com> in
<https://lists.gnu.org/r/bug-gnulib/2017-06/msg00029.html>.
* lib/canonicalize-lgpl.c (__getcwd): On VMS, when using gnulib's getcwd
override, pass 2 arguments to getcwd, not 3.
2017-06-04 Paul Eggert <eggert@cs.ucla.edu>
same-inode: port better to VMS 8.2 and later
Problem reported by John E. Malmberg in:
http://lists.gnu.org/r/bug-gnulib/2017-06/msg00005.html
* lib/same-inode.h (SAME_INODE) [__VMS && 80200000 <= __CRTL_VER]:
Use the usual POSIX definition.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define _USE_STD_STAT.
2017-06-01 Paul Eggert <eggert@cs.ucla.edu>
error: fix POSIX violation for va_end
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-06/msg00001.html
* lib/error.c (error_tail): Do not call va_end here.
(error, error_at_line): Call it here instead.
2017-05-28 Bruno Haible <bruno@clisp.org>
c-strtod: Make it usable in C++ mode.
* lib/c-strtod.h: Add 'extern "C"' marker for C++.
2017-05-25 Jim Meyering <meyering@fb.com>
quotearg: fix compilation failure due to FALLTHROUGH misuse
* lib/quotearg.c (quotearg_buffer_restyled): Revert one FALLTHROUGH
macro back to /* fall through */ comment. The macro can apply only
to a following case statement. Reported by Assaf Gordon.
2017-05-25 Paul Eggert <eggert@cs.ucla.edu>
intprops: port to recent icc
Port to icc (ICC) 17.0.4 20170411, which defines __GNUC__ to be 5
but does not support __builtin_add_overflow etc.
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW) [__ICC]:
Define to 0.
2017-05-23 Karl Berry <karl@freefriends.org>
* config/srclist.txt (iconv.m4): sync broken, comment out
until (hopefully) the next gettext release.
2017-05-22 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
Remove repeated words in comments.
2017-05-22 Bernhard Voelker <mail@bernhard-voelker.de>
fallthrough: reinstate a FALLTHROUGH instance in quotearg
quotearg.c: Reinstate this instance which is significant
when the if branch is not taken.
2017-05-21 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add options to create hard links.
* gnulib-tool (func_usage): Document options --hardlink,
--local-hardlink, --more-hardlinks.
(func_symlink): Renamed from func_ln.
(func_symlink_if_changed): Renamed from func_ln_if_changed.
(func_hardlink): New function.
(copymode, lcopymode): New variables.
(symbolic, lsymbolic): Remove variables.
(Options): Implement options --hardlink, --local-hardlink,
--more-hardlinks.
(func_should_link): Renamed from func_should_symlink. Set copyaction.
(func_add_file, func_update_file): Update invocation of
func_should_link. Invoke func_hardlink when appropriate.
(func_import): Update comments.
(func_create_testdir): Update invocation of func_should_link. Invoke
func_hardlink when appropriate.
Finally, invoke 'git update-index --refresh' to mitigate the effects of
the hard links on git.
2017-05-20 Bruno Haible <bruno@clisp.org>
argp: Simplify bit manipulation.
* lib/argp-parse.c (parser_parse_opt): Use &, |, ~ instead of shifts
on a signed integer type.
2017-05-20 Bruno Haible <bruno@clisp.org>
Avoid wrong configure results with gcc -fsanitize=address.
This completes the work done on 2016-02-06 on this topic.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Free allocated memory before returning.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/fopen.m4 (gl_FUNC_FOPEN): Close allocated FILE streams before
returning.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Likewise.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise.
* m4/ftello.m4 (gl_FUNC_FTELLO): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/signbit.m4 (gl_FLOATTYPE_SIGN_LOCATION): Likewise.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Close allocated FILE streams and
free allocated memory before returning.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Close allocated DIR
objects before returning.
* m4/iconv.m4 (AM_ICONV_LINK): Close allocated iconv_t handles before
returning.
2017-05-20 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't create hard links between gnulib and its testdirs.
* gnulib-tool (func_create_testdir): Don't invoke 'ln'.
2017-05-20 Bruno Haible <bruno@clisp.org>
argp, tsearch tests: Fix file list.
* modules/argp-tests (Files): Add tests/macros.h.
* modules/tsearch-tests (Files): Likewise.
2017-05-20 Bruno Haible <bruno@clisp.org>
getopt-posix tests: Remove redundant include.
* tests/test-getopt.h: Don't include "macros.h". It's already included
by tests/test-getopt-main.h.
2017-05-19 Jim Meyering <meyering@fb.com>
dfa: two small simplifications
* lib/dfa.c (build_state): Avoid repeating longer expressions.
2017-05-18 Jim Meyering <meyering@fb.com>
fallthrough: update for GCC 7/8
* lib/quotearg.c (FALLTHROUGH): New macro.
Use it whenever one switch case falls through into the next,
replacing "/* Fall through */" comments. This exposed one
instance of an unwarranted "fall through" comment: unwarranted
because it preceded a "goto" label not a case statement.
* lib/freopen-safer.c (freopen_safer): Likewise.
* lib/fts.c (leaf_optimization_applies): Likewise.
* lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise.
* tests/test-getopt_long.h (getopt_long_loop): Likewise.
* tests/test-tsearch.c (mangle_tree): Likewise. Also include
tests/macros.h for the definition.
* tests/test-argp.c (group1_parser): Likewise.
* tests/test-getopt.h (getopt_loop): Likewise.
2017-05-19 Paul Eggert <eggert@cs.ucla.edu>
argp: fix shift bug
* lib/argp-parse.c (parser_parse_opt): Rework to avoid undefined
behavior on shift overflow, caught by gcc -fsanitize=undefined.
argp: fix pointer-subtraction bug
* lib/argp-help.c (hol_append): Don’t subtract pointers to
different arrays, as this can run afoul of -fcheck-pointer-bounds.
See the thread containing Bruno Haible’s report in:
http://lists.gnu.org/r/bug-gnulib/2017-05/msg00171.html
2017-05-19 Bruno Haible <bruno@clisp.org>
printf-posix tests: Avoid test failure with "gcc --coverage".
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* tests/test-printf-posix2.c (main): Test a width of 10000000 rather
than 5000000.
* tests/test-fprintf-posix2.c (main): Likewise.
2017-05-19 Paul Eggert <eggert@cs.ucla.edu>
closeout: don’t close stderr when sanitizing
* NEWS: Document this.
* lib/closeout.c (__has_feature): New macro, if not already defined.
(SANITIZE_ADDRESS): New constant.
(close_stdout): Don’t close stderr if sanitizing addresses.
2017-05-19 Bruno Haible <bruno@clisp.org>
get-rusage-data tests: Avoid failure on Linux/glibc.
* tests/test-get-rusage-data.c (main): Don't expect a strict increase
on glibc systems.
2017-05-18 Bruno Haible <bruno@clisp.org>
localename: Include necessary header files on Cygwin.
* lib/localename.c [__CYGWIN__]: Include <langinfo.h>, since this is
where NL_LOCALE_NAME is defined.
2017-05-18 Bruno Haible <bruno@clisp.org>
gettext: Update macros from gettext git.
* m4/intldir.m4: Require Autoconf >= 2.60.
* m4/progtest.m4: Fix typos in copyright notice.
2017-05-18 Bruno Haible <bruno@clisp.org>
copy-file tests: Fix link error (regression from 2017-05-01).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
* modules/copy-file-tests (Makefile.am): Link test-copy-file with
$(LIB_CLOCK_GETTIME).
2017-05-18 Bruno Haible <bruno@clisp.org>
unicase/special-casing: Fix incompatibility with gperf-3.0.4
(regression from 2017-02-13).
* lib/unicase/special-casing.in.h: Renamed from
lib/unicase/special-casing.h.
* modules/unicase/special-casing (Files): Add
lib/unicase/special-casing.in.h. Remove lib/unicase/special-casing.h.
(Makefile.am): Add rule for generating unicase/special-casing.h.
Update BUILT_SOURCES and MOSTLYCLEANFILES accordingly.
* lib/unicase/special-casing.c: Include "unicase/special-casing.h",
not "special-casing.h".
* lib/unicase/u*.c: Likewise.
2017-05-17 Bruno Haible <bruno@clisp.org>
README: Don't ask people to read a TeXinfo file.
Reported by Tim Rühsen <tim.ruehsen@gmx.de>.
* README: Tell people how to read the HTML formatted manual.
2017-05-16 Tim Rühsen <tim.ruehsen@gmx.de>
parse-datetime: Fix memleak
* lib/parse-datetime.y (parse_datetime2): Cleanup on
localtime_rz() failure.
2017-05-16 Bruno Haible <bruno@clisp.org>
javacomp: Fix handle leak.
Found by Coverity.
* lib/javacomp.c (get_classfile_version): Close fd before returning.
2017-05-16 Bruno Haible <bruno@clisp.org>
relocate: Make it easier to reclaim allocated memory.
* lib/relocatable.h (relocate2): New declaration/macro.
* lib/relocatable.c (relocate2): New function.
* doc/relocatable-maint.texi (Supporting Relocation): Mention the
relocate2 function.
* lib/localcharset.c (relocate2): Define fallback.
(get_charset_aliases): Invoke relocate2 instead of relocate. Free the
allocated memory.
* lib/javaversion.c (relocate2): Define fallback.
(javaexec_version): Invoke relocate2 instead of relocate. Free the
allocated memory.
2017-05-16 Bruno Haible <bruno@clisp.org>
relocate: Simplify EMX specific code.
* lib/relocatable.c (relocate): Assume pathname is non-NULL. Use
ISSLASH macro consistently. Avoid dangerous string concatenation idiom.
2017-05-16 Bruno Haible <bruno@clisp.org>
sigpipe tests: Fix file list.
* modules/sigpipe-tests (Files): Add tests/macros.h.
2017-05-16 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update for GCC 7
* build-aux/gcc-warning.spec:
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add GCC 7 warnings, notably -Wimplicit-fallthrough=5, which
requires a non-comment fallthrough attribute. This is a bit
cleaner than the comment versions.
* lib/strftime.c, lib/dfa.c, lib/fnmatch.c, lib/mbrtowc.c:
* lib/vasnprintf.c, tests/macros.h (FALLTHROUGH): New macro.
Use it whenever one switch case falls through into the next.
* lib/fnmatch_loop.c, tests/test-mbrtowc.c, tests/test-sigpipe.c:
Use FALLTHROUGH macro.
2017-05-15 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix generated code when libtests contains module 'alloca'.
* gnulib-tool (func_emit_tests_Makefile_am): For libtests.a, use
@ALLOCA@, not @LTALLOCA@.
2017-05-15 Bruno Haible <bruno@clisp.org>
sys_select: Avoid "was expanded before it was required" warning.
* modules/sys_select (configure.ac): Require, not invoke,
gl_HEADER_SYS_SELECT.
2017-05-14 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: improve GNU Make debugging
* gnulib-tool (func_emit_lib_Makefile_am): Omit unnecessary echo.
Report autoconf diagnostics when it fails, in the output makefile.
2017-05-14 Bruno Haible <bruno@clisp.org>
stat-time tests: Improve comment.
* tests/test-stat-time.c: Add hyperlink, from Paul Eggert.
2017-05-14 Bruno Haible <bruno@clisp.org>
same-inode: Adapt for windows-stat-inodes.
* lib/same-inode.h: Include <sys/types.h>.
(SAME_INODE) [_GL_WINDOWS_STAT_INODES]: Define specifically.
* modules/same-inode (Depends-on): Add sys_types.
2017-05-14 Bruno Haible <bruno@clisp.org>
windows-stat-inodes: New module.
* m4/windows-stat-inodes.m4: New file.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_STAT_INODES.
* modules/sys_types (Makefile.am): Substitute WINDOWS_STAT_INODES.
* lib/sys_types.in.h [WINDOWS_STAT_INODES]: Override dev_t and ino_t.
(_GL_WINDOWS_STAT_INODES): New macro.
* lib/stat-w32.c: Set _WIN32_WINNT. Include <string.h>, verify.h.
(GetFileInformationByHandleExFunc): New variable.
(initialize): Initialize it.
(_gl_fstat_by_handle) [_GL_WINDOWS_STAT_INODES]: Initialize st_dev and
st_ino appropriately.
* lib/stat.c (rpl_stat): Use the directory entry based approach only as
a fallback, because it does not provide st_dev and st_ino values.
* modules/fstat (Depends-on): Add 'verify'.
* modules/windows-stat-inodes: New file.
* doc/windows-stat-inodes.texi: New file.
* doc/gnulib.texi: Include it.
* doc/posix-headers/sys_stat.texi: Mention the new module.
2017-05-14 Bruno Haible <bruno@clisp.org>
stat-time tests: Workaround for native Windows.
* tests/test-stat-time.c: Include <stdio.h>, <time.h>.
(filename_stamp1, filename_testfile, filename_stamp2, filename_stamp3):
New variables.
(initialize_filenames): New function.
(main): Invoke it.
(cleanup, prepare_test): Update.
2017-05-14 Bruno Haible <bruno@clisp.org>
stat-time: Adapt for windows-stat-timespec.
* lib/stat-time.h (get_stat_birthtime) [_GL_WINDOWS_STAT_TIMESPEC]: Use
entire st_ctim field.
2017-05-13 Jim Meyering <meyering@fb.com>
maint.mk: update regex to reflect 2013 addition of "assume" to verify.h
* top/maint.mk (sc_prohibit_verify_without_use): Don't reject a source
file that uses the assume macro, claiming that verify.h is unused.
2017-05-13 Bruno Haible <bruno@clisp.org>
Use symbolic values for _WIN32_WINNT.
* lib/ftruncate.c (_WIN32_WINNT): Use symbolic value _WIN32_WINNT_WIN2K.
* lib/sethostname.c (_WIN32_WINNT): Likewise.
2017-05-13 Bruno Haible <bruno@clisp.org>
year2038: New module.
* m4/year2038.m4: New file.
* modules/year2038: New file.
* doc/year2038.texi: New file.
* doc/gnulib.texi: Include it.
2017-05-13 Bruno Haible <bruno@clisp.org>
largefile: Simplify.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Remove unused definition
of _GL_WINDOWS_64_BIT_ST_SIZE.
2017-05-13 Bruno Haible <bruno@clisp.org>
largefile: Improve and document.
* m4/largefile.m4 (gl_LARGEFILE): Set WINDOWS_64_BIT_ST_SIZE to 0 if
the mingw headers already define 'stat' appropriately.
* modules/largefile (Description): Clarify.
* doc/largefile.texi: New file.
* doc/gnulib.texi: Include it.
* doc/posix-headers/sys_types.texi: Update.
2017-05-13 Bruno Haible <bruno@clisp.org>
truncate: New module.
* lib/unistd.in.h (truncate): New declaration.
* lib/truncate.c: New file.
* m4/truncate.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether 'truncate' is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_TRUNCATE, HAVE_TRUNCATE,
REPLACE_TRUNCATE.
* modules/unistd (Makefile.am): Substitute GNULIB_TRUNCATE,
HAVE_TRUNCATE, REPLACE_TRUNCATE.
* modules/truncate: New file.
* tests/test-unistd-c++.cc (truncate): Test signature.
* doc/posix-functions/truncate.texi: Mention the new module.
* tests/test-truncate.c: New file.
* modules/truncate-tests: New file.
2017-05-13 Bruno Haible <bruno@clisp.org>
windows-stat-timespec: New module.
* modules/windows-stat-timespec: New file.
* m4/windows-stat-timespec.m4: New file.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_STAT_TIMESPEC.
* modules/sys_stat (Makefile.am): Substitute WINDOWS_STAT_TIMESPEC.
* lib/sys_stat.in.h (struct stat) [WINDOWS_STAT_TIMESPEC]: Declare with
fields st_atim, st_mtim, st_ctim.
(st_atime, st_mtime, st_ctime): Define as macros.
(_GL_WINDOWS_STAT_TIMESPEC): New macro.
* lib/stat-w32.h (_gl_convert_FILETIME_to_timespec)
[_GL_WINDOWS_STAT_TIMESPEC]: New declaration.
* lib/stat-w32.c (_gl_convert_FILETIME_to_timespec)
[_GL_WINDOWS_STAT_TIMESPEC]: New function.
(_gl_convert_FILETIME_to_POSIX): Adjust coding style.
(_gl_fstat_by_handle): If _GL_WINDOWS_STAT_TIMESPEC, convert the
FILETIME to 'struct timespec', not 'time_t'.
* lib/stat.c (rpl_stat): If _GL_WINDOWS_STAT_TIMESPEC, convert the
FILETIME to 'struct timespec', not 'time_t'.
* lib/stat-time.h (STAT_TIMESPEC): Define also if
_GL_WINDOWS_STAT_TIMESPEC.
* doc/windows-stat-timespec.texi: New file.
* doc/gnulib.texi: Include it.
2017-05-13 Bruno Haible <bruno@clisp.org>
windows-stat-override: New module.
* lib/sys_stat.in.h (stat) [GNULIB_OVERRIDES_STRUCT_STAT]: Provide own
definition. Define GNULIB_defined_struct_stat.
(fstat, fstatat, lstat, stat) [GNULIB_OVERRIDES_STRUCT_STAT]: Provoke
link error if this symbol is used and the corresponding module is not
in use.
(_stat64, _stat32i64, _stati64, _stat32, _stat64i32): Don't redefine if
GNULIB_OVERRIDES_STRUCT_STAT.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize
GNULIB_OVERRIDES_STRUCT_STAT.
* modules/sys_stat (Makefile.am): Substitute
GNULIB_OVERRIDES_STRUCT_STAT.
* modules/windows-stat-override: New file.
2017-05-13 Bruno Haible <bruno@clisp.org>
fstat: Fix module dependency conditions.
* modules/fstat (Depends-on): Fix typo.
2017-05-13 Bruno Haible <bruno@clisp.org>
stat, fstat: Complete removal of old native Windows code.
* lib/stat.c: Remove old macrology for WINDOWS_NATIVE.
* lib/fstat.c: Likewise.
* lib/stat-w32.c: Likewise.
2017-05-13 Bruno Haible <bruno@clisp.org>
stat: Complete removal of REPLACE_FUNC_STAT_DIR code.
* lib/stat.c: Remove all REPLACE_FUNC_STAT_DIR code.
2017-05-11 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix: port to mingw
* lib/getopt.c (flockfile, funlockfile): Define on mingw.
Problem reported by Daniel P. Berrage in:
http://lists.gnu.org/r/bug-gnulib/2017-05/msg00086.html
2017-05-11 Bruno Haible <bruno@clisp.org>
gettimeofday: Increase precision on mingw.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Require AC_CANONICAL_HOST.
Set REPLACE_GETTIMEOFDAY to 1 on mingw.
* lib/gettimeofday.c (gettimeofday): On native Windows, use the
GetSystemTimePreciseAsFileTime based implementation always.
* doc/posix-functions/gettimeofday.texi: Mention precision problem on
mingw.
2017-05-11 Bruno Haible <bruno@clisp.org>
poll: Fix confusion between SOCKETs and FDs on native Windows.
Fix proposed by Daniel P. Berrange <berrange@redhat.com>.
* lib/poll.c [WINDOWS_NATIVE]: Undefine select.
2017-05-11 Bruno Haible <bruno@clisp.org>
doc: Clarify doc about socket functions on native Windows.
This reworks doc that was added on 2008-09-29.
* doc/posix-functions/select.texi: Fix copy-and-paste mistake and use
clearer wording.
* doc/posix-functions/accept.texi: Use clearer wording.
* doc/posix-functions/bind.texi: Likewise.
* doc/posix-functions/connect.texi: Likewise.
* doc/posix-functions/getpeername.texi: Likewise.
* doc/posix-functions/getsockname.texi: Likewise.
* doc/posix-functions/getsockopt.texi: Likewise.
* doc/posix-functions/ioctl.texi: Likewise.
* doc/posix-functions/listen.texi: Likewise.
* doc/posix-functions/recv.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
* doc/posix-functions/send.texi: Likewise.
* doc/posix-functions/sendto.texi: Likewise.
* doc/posix-functions/setsockopt.texi: Likewise.
* doc/posix-functions/shutdown.texi: Likewise.
* doc/posix-functions/socket.texi: Likewise.
2017-05-10 Bruno Haible <bruno@clisp.org>
poll: Fix link error on native Windows.
* lib/poll.c [WINDOWS_NATIVE]: Undefine recv.
2017-05-10 Bruno Haible <bruno@clisp.org>
time: Fix missing initialization of HAVE_TIMEZONE_T.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_TIMEZONE_T
here...
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): ... not here.
* m4/time_rz.m4 (gl_TIME_RZ): Require gl_HEADER_TIME_H_DEFAULTS, not
gl_HEADER_SYS_TIME_H_DEFAULTS.
* modules/time_rz (Depends-on): Add 'time'. Remove useless quoting.
(configure.ac): Remove useless quoting.
2017-05-10 Bruno Haible <bruno@clisp.org>
Implement a way to opt out from MSVC support, part 2.
* modules/msvc-inval (Include): Document recommended idiom.
* modules/msvc-nothrow (Include): Likewise.
Implement a way to opt out from MSVC support.
This is useful for Emacs.
* modules/msvc-nothrow (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/accept4.c: Include <io.h> as an alternative to msvc-nothrow.h.
* lib/error.c: Likewise.
* lib/fcntl.c: Likewise.
* lib/flock.c: Likewise.
* lib/fstat.c: Likewise.
* lib/fsync.c: Likewise.
* lib/ioctl.c: Likewise.
* lib/isapipe.c: Likewise.
* lib/lseek.c: Likewise.
* lib/nonblocking.c: Likewise.
* lib/poll.c: Likewise.
* lib/select.c: Likewise.
* lib/sockets.h: Likewise.
* lib/sockets.c: Likewise.
* lib/stdio-read.c: Likewise.
* lib/stdio-write.c: Likewise.
* lib/utimens.c: Likewise.
* lib/w32sock.h: Likewise.
* lib/w32spawn.h: Likewise.
* tests/test-cloexec.c: Likewise.
* tests/test-dup-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-pipe2.c: Likewise.
* lib/ftruncate.c: Likewise.
(chsize_nothrow): Renamed from chsize.
* lib/msvc-nothrow.c: Don't include msvc-inval.h if
HAVE_MSVC_INVALID_PARAMETER_HANDLER is not defined.
* lib/close.c: Likewise.
* lib/dup.c: Likewise.
* lib/fclose.c: Likewise.
* lib/raise.c: Likewise.
* tests/test-fgetc.c: Likewise.
* tests/test-fputc.c: Likewise.
* tests/test-fread.c: Likewise.
* tests/test-fwrite.c: Likewise.
* lib/getdtablesize.c: Likewise.
(_setmaxstdio_nothrow): Renamed from _setmaxstdio.
* lib/isatty.c: Don't include msvc-inval.h if
HAVE_MSVC_INVALID_PARAMETER_HANDLER is not defined.
Include <io.h> as an alternative to msvc-nothrow.h.
* lib/read.c: Likewise.
* lib/write.c: Likewise.
* lib/dup2.c: Likewise.
(dup2_nothrow): New function.
(ms_windows_dup2): Use it.
* m4/close.m4 (gl_FUNC_CLOSE): Invoke gl_MSVC_INVAL and test
HAVE_MSVC_INVALID_PARAMETER_HANDLER only if gl_MSVC_INVAL is defined.
* m4/dup.m4 (gl_FUNC_DUP): Likewise.
* m4/fdopen.m4 (gl_FUNC_FDOPEN): Likewise.
* m4/raise.m4 (gl_FUNC_RAISE): Likewise.
* m4/read.m4 (gl_FUNC_READ): Likewise.
* m4/write.m4 (gl_FUNC_WRITE): Likewise.
* doc/windows-without-msvc.texi: New file.
* doc/gnulib.texi (Native Windows Support without MSVC Support): New
section.
2017-05-10 Bruno Haible <bruno@clisp.org>
wait-process: Adjust native Windows support.
* lib/wait-process.c: Use the usual condition for recognizing a native
Windows platform.
2017-05-10 Bruno Haible <bruno@clisp.org>
doc: New chapter "Native Windows Support".
* doc/gnulib.texi (Native Windows Support): New chapter.
* doc/windows-libtool.texi: Small wording changes.
* doc/windows-sockets.texi: Small wording and formatting changes.
2017-05-10 Bruno Haible <bruno@clisp.org>
doc: Move section "Library version handling".
* doc/gnulib.texi: Move section "Library version handling"
from chapter "Miscellaneous Notes" to chapter "Particular Modules".
2017-05-10 Bruno Haible <bruno@clisp.org>
doc: Move section "Running self-tests under valgrind".
* doc/gnulib.texi: Move section "Running self-tests under valgrind"
from chapter "Particular Modules" to chapter "Miscellaneous Notes".
2017-05-10 Bruno Haible <bruno@clisp.org>
doc: New chapter "Build Infrastructure Modules".
* doc/gnulib.texi (Build Infrastructure Modules): New chapter.
2017-05-10 Bruno Haible <bruno@clisp.org>
Prepare for reordering sections in the manual.
* doc/gnulib.texi: Move several sections to separate files. Include
these files.
* doc/out-of-memory.texi: New file, extracted from doc/gnulib.texi.
* doc/obsolete.texi: Likewise.
* doc/extra-tests.texi: Likewise.
* doc/transversal.texi: Likewise.
* doc/namespace.texi: Likewise.
* doc/check-version.texi: Likewise.
* doc/windows-sockets.texi: Likewise.
* doc/windows-libtool.texi: Likewise.
* doc/licenses-texi.texi: Likewise.
* doc/build-automation.texi: Likewise.
* doc/c-locale.texi: Likewise.
2017-05-10 Bruno Haible <bruno@clisp.org>
Fix instructions how to update manual on www.gnu.org.
* doc/README: Add -I option, so that texi2dvi finds texinfo.tex.
2017-05-09 Bruno Haible <bruno@clisp.org>
tzset: Expand comment about TZ problem on native Windows.
* lib/tzset.c (tzset): Elaborate comment, based on explanations by
Paul Eggert.
* lib/ctime.c (rpl_ctime): Likewise.
* lib/localtime.c (rpl_localtime): Likewise.
* lib/mktime.c (mktime): Likewise.
* lib/strftime-fixes.c (rpl_strftime): Likewise.
* lib/wcsftime.c (rpl_wcsftime): Likewise.
2017-05-08 Paul Eggert <eggert@cs.ucla.edu>
intprops: don’t depend on ‘verify’
Problem reported by Ævar Arnfjörð Bjarmason in:
http://lists.gnu.org/r/bug-gnulib/2017-05/msg00054.html
* lib/intprops.h: Do not include verify.h, and move compile-time
checks from here ...
* tests/test-intprops.c (main): ... to here, if they’re not here
already. Check widths of other standard integer types.
* modules/intprops (Depends-on): Remove ‘verify’.
2017-05-07 Bruno Haible <bruno@clisp.org>
utimens: On native Windows, support 100ns resolution also if fd < 0.
* lib/utime.in.h: Include <time.h>.
(_gl_utimens_windows): New declaration.
* lib/utime.c (_gl_utimens_windows): New function, based on utime.
(utime): Invoke it.
* lib/utimens.c (fdutimens): On native Windows, call _gl_utimens_windows
instead of utime.
* modules/utime (Depends-on): Add 'time'.
2017-05-07 Bruno Haible <bruno@clisp.org>
utimens: Improve error code on native Windows.
* lib/utimens.c (fdutimens): If fd was not opened with O_RDWR, fail with
error code EACCES, not EINVAL.
2017-05-07 Bruno Haible <bruno@clisp.org>
utime: Handle more Windows error codes.
* lib/utime.c (utime): Handle ERROR_BAD_NETPATH.
Based on explanations by Billy O'Neal.
2017-05-05 Bruno Haible <bruno@clisp.org>
crypto/rijndael: Fix "strict-aliasing rules" warnings, alignment issues.
* lib/rijndael-api-fst.c (rijndaelBlockEncrypt): Declare 'block' as a
union.
(rijndaelPadEncrypt, rijndaelBlockDecrypt): Likewise.
(rijndaelPadDecrypt): Likewise. Use local variable 'iv' to cache the
value of cipher->IV.
2017-05-05 Bruno Haible <bruno@clisp.org>
wctype-h-c++-tests: Update.
* tests/test-wctype-h-c++.cc: Reorder to match lib/wchar.in.h.
2017-05-05 Bruno Haible <bruno@clisp.org>
wchar-c++-tests: Update.
* tests/test-wchar-c++.cc (wcsftime): Declare, missing since 2017-04-30.
2017-05-05 Bruno Haible <bruno@clisp.org>
utime-h-c++-tests: New module.
* tests/test-utime-h-c++.cc: New file.
(utime): Declare, missing since 2017-04-30.
* modules/utime-h-c++-tests: New file.
2017-05-05 Bruno Haible <bruno@clisp.org>
unistd-c++-tests: Update.
* tests/test-unistd-c++.cc (isatty): Declare, missing since 2012-01-03.
(read): Declare, missing since 2011-04-15.
(sethostname): Declare, missing since 2011-12-03.
2017-05-05 Bruno Haible <bruno@clisp.org>
time-c++-tests: Update.
* tests/test-time-c++.cc (tzset): Declare, missing since 2017-05-01.
(localtime, gmtime): Declare, missing since 2017-04-30.
(ctime): Declare, missing since 2017-04-30.
(strftime): Declare, missing since 2017-04-30.
(tzalloc, tzfree, localtime_rz, mktime_z): Declare, missing since
2015-07-24.
2017-05-05 Bruno Haible <bruno@clisp.org>
sys_resource-c++-tests: New module.
* tests/test-sys_resource-c++.cc: New file.
(getrusage): Declare, missing since 2012-04-13.
* modules/sys_resource-c++-tests: New file.
2017-05-05 Bruno Haible <bruno@clisp.org>
strings-c++-tests: New module.
* tests/test-strings-c++.cc: New file.
(ffs): Declare, missing since 2011-07-12.
* modules/strings-c++-tests: New file.
2017-05-05 Bruno Haible <bruno@clisp.org>
string-c++-tests: Update.
* tests/test-string-c++.cc (ffsl): Declare, missing since 2011-07-15.
(ffsll): Declare, missing since 2011-07-15.
2017-05-05 Bruno Haible <bruno@clisp.org>
stdlib-c++-tests: Update.
* tests/test-stdlib-c++.cc (posix_openpt): Declare, missing since
2011-10-18.
(ptsname_r): Declare, missing since 2011-11-07.
(qsort_r): Declare, missing since 2014-08-29.
(random, srandom, initstate, setstate): Declare, missing since
2012-01-14.
(secure_getenv): Declare, missing since 2013-02-05.
2017-05-05 Bruno Haible <bruno@clisp.org>
stdio-c++-tests: Update.
* tests/test-stdio-c++.cc (pclose): Declare, missing since 2011-09-18.
2017-05-05 Bruno Haible <bruno@clisp.org>
signal-h-c++-tests: Update.
* tests/test-signal-h-c++.cc (raise): Remove redundant declaration.
2017-05-05 Bruno Haible <bruno@clisp.org>
math-c++-tests: Update.
* tests/test-math-c++.cc (fmaf): Declare, missing since 2011-10-17.
(fma): Declare, missing since 2011-10-17.
(fmal): Declare, missing since 2011-10-17.
2017-05-05 Bruno Haible <bruno@clisp.org>
locale-c++-tests: Update.
* tests/test-locale-c++.cc (localeconv): Declare, missing since
2012-03-25.
2017-05-05 Bruno Haible <bruno@clisp.org>
inttypes-c++-tests: New module.
* tests/test-inttypes-c++.cc: New file.
(strtoimax): Declare, missing since 2012-01-05.
(strtoumax): Declare, missing since 2012-01-05.
* modules/inttypes-c++-tests: New file.
2017-05-05 Bruno Haible <bruno@clisp.org>
dirent-c++-tests: Update.
* tests/test-dirent-c++.cc (readdir): Declare, missing since 2011-09-13.
(rewinddir): Declare, missing since 2011-09-13.
(dirfd): Declare, missing since 2010-03-08.
2017-05-04 Bruno Haible <bruno@clisp.org>
argp: Fix mistake in 2017-04-23 commit.
* lib/argp-help.c (__argp_failure): If GNULIB_STRERROR_R_POSIX is set,
assume that strerror_r returns 'int', not 'char *'.
2017-05-04 Reuben Thomas <rrt@sc3d.org>
argp: Fix typo.
* lib/argp-help.c (argp_doc): Fix spelling mistake in comment.
2017-05-02 Paul Eggert <eggert@cs.ucla.edu>
utimens: port to Emacs + MS-Windows
Skip the new MS-Windows-specific code if Emacs.
* lib/utimens.c [EMACS_CONFIGUATION]:
Avoid new MS-Windows-specific code.
(USE_SETFILETIME): New macro.
(fdutimens): Use it.
2017-05-01 Paul Eggert <eggert@cs.ucla.edu>
tzset: update doc for TZ problems on MS-Windows
* doc/posix-functions/ctime.texi, doc/posix-functions/daylight.texi:
* doc/posix-functions/localtime.texi, doc/posix-functions/mktime.texi:
* doc/posix-functions/strftime.texi, doc/posix-functions/timezone.texi:
* doc/posix-functions/tzname.texi, doc/posix-functions/tzset.texi:
* doc/posix-functions/wcsftime.texi:
Mention some issues with TZ under MS-Windows.
2017-05-01 Bruno Haible <bruno@clisp.org>
copy-file: Fix build error on mingw.
* modules/copy-file (Depends-on): Add 'close'.
2017-05-01 Bruno Haible <bruno@clisp.org>
tzset: Work around TZ problem on native Windows.
* m4/tzset.m4 (gl_FUNC_TZSET): Require AC_CANONICAL_HOST. On native
Windows, set REPLACE_TZSET to 1.
* lib/tzset.c (tzset): On native Windows, fix TZ if necessary, and
invoke '_tzset' instead of 'tzset'.
* doc/posix-functions/tzset.texi: Mention the native Windows workaround.
* modules/time_rz (Depends-on): Add tzset.
* lib/time_rz.c (tzset): Remove fallback definition.
* m4/time_rz.m4 (gl_TIME_RZ): Don't test for tzset.
2017-05-01 Bruno Haible <bruno@clisp.org>
mktime: Fix dependencies.
* modules/mktime (Depends-on): Add 'time'.
2017-05-01 Bruno Haible <bruno@clisp.org>
New module 'localtime-buffer', split off from module 'gettimeofday'.
* lib/localtime-buffer.h: New file.
* lib/localtime-buffer.c: New file, extracted from lib/gettimeofday.c.
* lib/time.in.h (tzset): New declaration.
(localtime, gmtime): Don't test GNULIB_GETTIMEOFDAY.
* lib/tzset.c: New file, extracted from lib/gettimeofday.c.
* lib/gettimeofday.c: Include localtime-buffer.h. Remove code that was
moved to lib/localtime-buffer.c or lib/tzset.c.
* m4/localtime-buffer.m4: New file.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_TZSET,
HAVE_TZSET, REPLACE_TZSET.
* m4/tzset.m4 (gl_FUNC_TZSET): Move code from m4/gettimeofday.m4 to
here, with modifications. Set HAVE_TZSET, REPLACE_TZSET. Invoke
gl_LOCALTIME_BUFFER_NEEDED.
(gl_FUNC_TZSET_CLOBBER): Don't require gl_HEADER_SYS_TIME_H; not needed
since 2007-01-18.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Remove code that deals with
tzset.
(gl_FUNC_GETTIMEOFDAY_CLOBBER): Require gl_LOCALTIME_BUFFER_DEFAULTS.
Invoke gl_LOCALTIME_BUFFER_NEEDED instead of
gl_GETTIMEOFDAY_REPLACE_LOCALTIME.
(gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Remove macro.
* modules/localtime-buffer: New file.
* modules/time (Depends-on): Remove 'gettimeofday'.
(Makefile.am): Substitute GNULIB_TZSET, HAVE_TZSET,
REPLACE_TZSET. Don't substitute GNULIB_GETTIMEOFDAY.
* modules/tzset (Description): Enable hyperlink to POSIX spec.
(Files): Add lib/tzset.c.
(Depends-on): Remove gettimeofday. Add localtime-buffer, time.
(configure.ac): Arrange to conditionally compile lib/tzset.c. Invoke
gl_TIME_MODULE_INDICATOR.
* modules/gettimeofday (Depends-on): Add localtime-buffer.
2017-05-01 Bruno Haible <bruno@clisp.org>
copy-file: Preserve sub-second time stamps.
* lib/copy-file.c: Include stat-time.h, utimens.h instead of <utime.h>.
(qcopy_file_preserving): Use 'struct timespec' and utimens() to
transport the time stamps from the original file to the destination
file.
* m4/copy-file.m4 (gl_COPY_FILE): Don't test for utime, utimes.
* modules/copy-file (Depends-on): Add stat-time, utimns instead of
utime-h.
2017-05-01 Bruno Haible <bruno@clisp.org>
wctype-t: Fix problems if <wchar.h> gets included after <wctype.h>.
* lib/wctype.in.h: Include not only <ctype.h> but also <wchar.h>. Do so
also on MSVC.
Reported by Eli Zaretskii <eliz@gnu.org>.
2017-05-01 Bruno Haible <bruno@clisp.org>
wchar: Fix compilation error with the original mingw.org mingw.
* lib/wchar.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include
<stddef.h> instead.
* m4/wint_t.m4 (gl_TYPE_WINT_T_PREREQ): New macro, extracted from
gl_WCTYPE_H.
* m4/wctype_h.m4 (gl_WCTYPE_H): Don't set HAVE_CRTDEFS_H here; require
gl_TYPE_WINT_T_PREREQ instead.
* m4/wchar_h.m4 (gl_WCHAR_H): Require gl_TYPE_WINT_T_PREREQ.
* modules/wchar (Makefile.am): Substitute HAVE_CRTDEFS_H.
Reported by Eli Zaretskii <eliz@gnu.org>.
2017-04-30 Bruno Haible <bruno@clisp.org>
utimecmp: Add support for native Windows.
* lib/utimecmp.c (SYSCALL_RESOLUTION): Set to 100 on native Windows.
2017-04-30 Bruno Haible <bruno@clisp.org>
utimens: Add support for native Windows.
* lib/utimens.c: Include <windows.h>, msvc-nothrow.h.
(fdutimens): Provide a native Windows implementation, like utime.c with
added tv_nsec support.
* modules/utimens (Depends-on): Add msvc-nothrow, utime.
Suggested by Tim Rühsen <tim.ruehsen@gmx.de>.
2017-04-30 Bruno Haible <bruno@clisp.org>
wcsftime: New module.
* lib/wchar.in.h (wcsftime): New declaration.
* lib/wcsftime.c: New file.
* m4/wcsftime.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test for wcsftime declaration.
(gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_WCSFTIME,
HAVE_WCSFTIME, REPLACE_WCSFTIME.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSFTIME,
HAVE_WCSFTIME, REPLACE_WCSFTIME.
* modules/wcsftime: New file.
* doc/posix-functions/wcsftime.texi: Mention the new module.
2017-04-30 Bruno Haible <bruno@clisp.org>
strftime-fixes: New module.
* lib/time.in.h (strftime): New declaration.
* lib/strftime-fixes.c: New file.
* m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Inline gl_FUNC_STRFTIME macro.
(gl_FUNC_STRFTIME): Remove macro.
* m4/strftime-fixes.m4: New file.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_STRFTIME,
REPLACE_STRFTIME.
* modules/time (Makefile.am): Substitute GNULIB_STRFTIME,
REPLACE_STRFTIME.
* modules/strftime-fixes: New file.
* doc/posix-functions/strftime.texi: Mention the new module.
2017-04-30 Bruno Haible <bruno@clisp.org>
mktime: Work around TZ problem on native Windows.
* lib/mktime.c: Add #ifs to make the algorithmic workaround independent
from the native Windows workaround.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): New macro, extracted from
gl_FUNC_MKTIME. If guessing, set gl_cv_func_working_mktime to
'guessing no'.
(gl_FUNC_MKTIME): Require it. Require AC_CANONICAL_HOST.
Set REPLACE_MKTIME to 1 on native Windows. Define NEED_MKTIME_WORKING,
NEED_MKTIME_WINDOWS.
(gl_FUNC_MKTIME_INTERNAL): Require gl_FUNC_MKTIME_WORKS, not
gl_FUNC_MKTIME. Set WANT_MKTIME_INTERNAL, not REPLACE_MKTIME. Define
NEED_MKTIME_INTERNAL.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Require gl_FUNC_MKTIME_WORKS, not
gl_FUNC_MKTIME. Cope with 'guessing yes' value.
* modules/mktime-internal (configure.ac): Test WANT_MKTIME_INTERNAL,
not REPLACE_MKTIME.
* doc/posix-functions/mktime.texi: Mention the native Windows
workaround.
2017-04-30 Bruno Haible <bruno@clisp.org>
localtime: New module.
* lib/time.in.h (localtime): Declare also if requested by module
'localtime'.
* lib/localtime.c: New file.
* m4/localtime.m4: New file.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_LOCALTIME.
* modules/time (Makefile.am): Substitute GNULIB_LOCALTIME.
* modules/localtime: New file.
* doc/posix-functions/localtime.texi: Mention the new module.
2017-04-30 Bruno Haible <bruno@clisp.org>
ctime: New module.
* lib/time.in.h (ctime): New declaration.
* lib/ctime.c: New file.
* m4/ctime.m4: New file.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_CTIME,
REPLACE_CTIME.
* modules/time (Makefile.am): Substitute GNULIB_CTIME, REPLACE_CTIME.
* modules/ctime: New file.
* doc/posix-functions/ctime.texi: Mention the new module.
2017-04-30 Bruno Haible <bruno@clisp.org>
gettimeofday: Provide higher resolution on native Windows.
* lib/gettimeofday.c: Don't include <sys/timeb.h>.
(GetSystemTimePreciseAsFileTimeFuncType): New variable.
(initialize): Initialize it.
(gettimeofday) [WINDOWS_NATIVE]: Use it, and convert from FILETIME to
'struct timeval'. Don't use _ftime().
* m4/gettimeofday.m4 (gl_PREREQ_GETTIMEOFDAY): Don't test for
<sys/timeb.h> and _ftime.
2017-04-30 Bruno Haible <bruno@clisp.org>
Document the problem with the Cygwin environment variable TZ.
* doc/posix-functions/tzset.texi: Add note about TZ.
* doc/posix-functions/ctime.texi: Likewise.
* doc/posix-functions/localtime.texi: Likewise.
* doc/posix-functions/mktime.texi: Likewise.
* doc/posix-functions/strftime.texi: Likewise.
* doc/posix-functions/wcsftime.texi: Likewise.
* doc/pastposix-functions/ftime.texi: Likewise.
2017-04-30 Bruno Haible <bruno@clisp.org>
utime-tests: New module.
* tests/test-utime.c: New file, based on tests/test-utimens.h.
* tests/test-utimens-common.h: Include <sys/stat.h>.
* modules/utime-tests: New file.
2017-04-29 Bruno Haible <bruno@clisp.org>
utime: New module.
* lib/utime.in.h: Add comment for snippets.
(utime): New declaration.
* lib/utime.c: New file.
* m4/utime.m4: New file.
* m4/utime_h.m4 (gl_UTIME_H): Test for utime declaration.
(gl_UTIME_H_DEFAULTS): Initialize GNULIB_UTIME, HAVE_UTIME,
REPLACE_UTIME.
* modules/utime-h (Depends-on): Add snippets.
(Makefile.am): Substitute GNULIB_UTIME, HAVE_UTIME, REPLACE_UTIME.
Insert snippets.
* modules/utime: New file.
* doc/posix-functions/utime.texi: Mention the new module.
2017-04-29 Bruno Haible <bruno@clisp.org>
utime-h: Modernize handling of 'struct utimbuf'.
* lib/utime.in.h: Include next <utime.h> if it exists.
(utimbuf): Define to _utimbuf on native Windows.
* m4/utime_h.m4 (gl_UTIME_H): Check for prerequisites of include_next.
Set UTIME_H on native Windows.
(gl_UTIME_MODULE_INDICATOR, gl_HEADER_UTIME_H_DEFAULTS): New macros.
* modules/utime-h (Depends-on): Add include_next.
(Makefile.am): Substitute also HAVE_UTIME_H, INCLUDE_NEXT,
PRAGMA_SYSTEM_HEADER, PRAGMA_COLUMNS, NEXT_UTIME_H.
* lib/utimens.c (utimbuf): Remove fallback definition.
* m4/utimens.m4 (gl_UTIMENS): Don't require
gl_CHECK_TYPE_STRUCT_UTIMBUF.
* m4/utimbuf.m4: Remove file.
* modules/utimens (Files): Remove m4/utimbuf.m4.
2017-04-29 Bruno Haible <bruno@clisp.org>
Make use of module 'utime-h'.
* modules/copy-file (Depends-on): Add utime-h.
* lib/copy-file.c: Assume that <utime.h> exists.
* m4/copy-file.m4 (gl_COPY_FILE): Don't test for <utime.h>.
* modules/utimens (Depends-on): Add utime-h.
* lib/utimens.c: Assume that <utime.h> exists.
2017-04-29 Bruno Haible <bruno@clisp.org>
utime-h: New module.
* m4/utime_h.m4: New file.
* lib/utime.in.h: New file.
* modules/utime-h: New file.
* doc/posix-headers/utime.texi: Mention the new module.
* tests/test-utime-h.c: New file.
* modules/utime-h-tests: New file.
2017-04-30 Bruno Haible <bruno@clisp.org>
Fix a few typos.
* m4/fstat.m4 (gl_FUNC_FSTAT): Require AC_CANONICAL_HOST.
* m4/stat.m4 (gl_FUNC_STAT): Fix comment.
* doc/posix-functions/fstat.texi: Fix a plural typo.
* doc/posix-functions/stat.texi: Likewise.
* m4/include_next.m4: Update comments.
2017-04-29 Bruno Haible <bruno@clisp.org>
error: Fix mistake in 2017-04-23 commit.
* lib/error.c (print_errno_message): If GNULIB_STRERROR_R_POSIX is set,
assume that strerror_r returns 'int', not 'char *'.
2017-04-29 Bruno Haible <bruno@clisp.org>
stat: Fix time_t values and other problems on native Windows platforms.
* doc/posix-functions/stat.texi: Mention the problem with the Microsoft
implementations of stat().
* lib/stat.c: Include filename.h instead of dosname.h. Include
malloca.h, stat-w32.h.
(is_unc_root): New function.
(rpl_stat): New implementation for native Windows. Remove
REPLACE_FUNC_STAT_DIR code.
* m4/stat.m4 (gl_FUNC_STAT): On native Windows, set REPLACE_STAT always.
Don't define REPLACE_FUNC_STAT_DIR.
(gl_PREREQ_STAT): Require gl_HEADER_SYS_STAT_H.
* modules/stat (Files): Add lib/stat-w32.h, lib/stat-w32.c.
(Depends-on): Remove dosname. Add filename, malloca.
(configure.ac): Also compile lib/stat-w32.c.
2017-04-29 Bruno Haible <bruno@clisp.org>
fstat: Fix time_t values on native Windows platforms.
* doc/posix-functions/fstat.texi: Mention the problem with st_*time.
* lib/stat-w32.h: New file.
* lib/stat-w32.c: New file.
* lib/fstat.c: Don't include msvc-inval.h. Include msvc-nothrow.h,
stat-w32.h instead.
(fstat_nothrow): Remove function.
(rpl_fstat): Implement by means of _gl_fstat_by_handle.
* m4/fstat.m4 (gl_FUNC_FSTAT): On native Windows, set REPLACE_FSTAT
always.
(gl_PREREQ_FSTAT): Require gl_HEADER_SYS_STAT_H.
* modules/fstat (Files): Add lib/stat-w32.h, lib/stat-w32.c.
(Depends-on): Remove msvc-inval. Add pathmax, msvc-nothrow.
(configure.ac): Also compile lib/stat-w32.c.
2017-04-29 Paul Eggert <eggert@cs.ucla.edu>
getopt: port to Solaris 10 with circa-1997 glibc getopt.h
Problem reported by Assaf Gordon and Gavin Smith in:
http://lists.gnu.org/r/bug-gnulib/2017-04/msg00157.html
* lib/getopt-pfx-ext.h (_getopt_internal) [__GETOPT_PREFIX]:
#define this, too.
2017-04-29 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fixes for MSVC 14.
* lib/strerror_r.c: Include <stdarg.h>.
(strerror_r): Provide error messages for errno values 100...140.
* doc/posix-functions/strerror_r.texi: Mention the MSVC 14 problem.
2017-04-28 Bruno Haible <bruno@clisp.org>
noreturn: New module.
* lib/noreturn.h: New file.
* modules/noreturn: New file.
* tests/test-noreturn.c: New file.
* modules/noreturn-tests: New file.
* tests/test-noreturn-c++.cc: New file.
* modules/noreturn-c++-tests: New file.
2017-04-27 Bruno Haible <bruno@clisp.org>
wctype-h: Fix compilation error with the original mingw.org mingw.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test for <crtdefs.h>. Set
HAVE_CRTDEFS_H.
* modules/wctype-h (Makefile.am): Substitute HAVE_CRTDEFS_H.
* lib/wctype.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include
<stddef.h> instead.
Reported and proposed by Eli Zaretskii <eliz@gnu.org>.
2017-04-26 Pádraig Brady <P@draigBrady.com>
nap.h: Fix compilation on non windows platforms
* tests/nap.h: Move misplaced endif.
2017-04-26 Pádraig Brady <P@draigBrady.com>
and Paul Eggert <eggert@cs.ucla.edu>
time_rz: fix heap buffer overflow vulnerability
Reported and analyzed at https://bugzilla.redhat.com/CVE-2017-7476
* lib/time_rz.c (save_abbr): Rearrange the calculation determining
whether there is enough buffer space available, thus avoiding
the problematic promotion of signed to unsigned causing an invalid
comparison when zone_copy is more than ABBR_SIZE_MIN bytes beyond
the start of the buffer.
* tests/test-parse-datetime.c (main): Add a test case written by
Paul Eggert, which overwrites enough of the heap so that
standard glibc will fail with "free(): invalid pointer"
without the patch applied.
2017-04-26 Paul Eggert <eggert@cs.ucla.edu>
xalloc: add missing integer overflow check
* lib/xalloc.h (x2nrealloc): Also check for multiplication
overflow when P is null.
2017-04-25 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: make it standalone
* lib/parse-datetime.y: Include <stdarg.h>, for va_start etc.
(_GL_ATTRIBUTE_FORMAT): New macro.
These are needed to get './gnulib-tool --test parse-datetime' to work.
2017-04-23 Bruno Haible <bruno@clisp.org>
nap.h: Port to native Windows.
* tests/nap.h (nap_get_stat): Renamed from get_stat. Remove argument fd;
use nap_fd instead. On native Windows, close and reopen nap_fd.
(nap_works): Don't compare the ctimes, because on native Windows, these
are the creation times.
(nap): Update.
2017-04-23 Bruno Haible <bruno@clisp.org>
nap.h: Fix logic.
* tests/nap.h (nap): Avoid signed integer overflow in loop.
2017-04-23 Bruno Haible <bruno@clisp.org>
Fix conflict between strerror_r-posix module and AC_FUNC_STRERROR_R.
* modules/strerror_r-posix (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/error.c: Test GNULIB_STRERROR_R_POSIX before testing
HAVE_DECL_STRERROR_R, HAVE_STRERROR_R, or STRERROR_R_CHAR_P.
* lib/argp-help.c (__argp_failure): Likewise.
2017-04-23 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Revert commits from 2016-10-16,2016-11-04,2016-11-14.
* m4/strerror_r.m4: Revert changes since 2016-10-16.
* lib/strerror_r.c: Likewise.
2017-04-23 Paul Eggert <eggert@cs.ucla.edu>
Target a C99 subset, not a C89 subset
For many years Gnulib has targeted C89 and has resisted using C99
features, as some Gnulib-using programs still wanted to target
C89. As this no longer seems to be the case, relax the porting
requirements to allow some C99 features. This is merely a change
to the documentation, to give other Gnulib developers a chance to
weigh in on the topic.
* doc/extern-inline.texi (extern inline):
* doc/gnulib-readme.texi (Portability guidelines):
* doc/gnulib-tool.texi (Initial import):
* doc/gnulib.texi (Header files):
Modernize to talk about C99 and C11 instead of C89 and C99.
* doc/gnulib-readme.texi (Portability guidelines):
Now a section, not merely a subsection, so that it
can be split up. Modernize a bit.
(C language versions, C99 features assumed)
(C99 features avoided):
New sections.
2017-04-23 Bruno Haible <bruno@clisp.org>
doc: New section "Modules that modify the way other modules work".
* doc/gnulib.texi (Modules that modify the way other modules work): New
section.
2017-04-23 Bruno Haible <bruno@clisp.org>
stat-time: Update comments.
* lib/stat-time.h: Fix reference regarding st_ctime on Windows.
* tests/test-utimens-common.h: Add reference regarding st_ctime on
Windows.
2017-04-01 Bruno Haible <bruno@clisp.org>
glob: Fix more memory leaks.
* lib/glob.c (glob): Free allocated memory before returning.
Reported by Coverity via Tim Rühsen.
2017-04-22 Paul Eggert <eggert@cs.ucla.edu>
poll: improve fast check for out-of-range NFD
* lib/poll.c: Do not include intprops.h.
(poll): Compare NFD to INT_MAX, not to TYPE_MAXIMUM (nfds_t) / 2.
* modules/poll (Depends-on): Remove intprops.
ftoastr: cite a newer paper
* lib/ftoastr.c (FTOASTR): In comment, cite Andrysco et al. 2016
instead of Loitsch 2010.
2017-04-22 Bruno Haible <bruno@clisp.org>
poll: Enable argument check also in the Windows implementation.
* lib/poll.c (poll) [WINDOWS_NATIVE]: Check value of nfd correctly.
Reported by Paul Eggert.
2017-04-22 Bruno Haible <bruno@clisp.org>
getlogin_r: Work around bug in Mac OS X 10.12.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Test also against the Mac OS X
bug.
* lib/getlogin_r.c (getlogin_r): When getlogin_r returns a string of the
given size minus 1, call getlogin_r a second time, on a larger buffer.
* modules/getlogin_r (Depends-on): Add malloca.
* doc/posix-functions/getlogin_r.texi: Mention the Mac OS X bug.
2017-04-22 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: fix %z and prefer signed int
%z problem reported by Pádraig Brady in:
http://lists.gnu.org/r/bug-gnulib/2017-04/msg00103.html
While fixing it, I decided to prefer signed ints to size_t, as
they are less error-prone (e.g., ubsan catches overflow).
* lib/parse-datetime.y (textint, parser_control, lookup_word, yylex)
(parse_datetime2): Prefer ptrdiff_t to size_t for sizes and object
counts, since signed integers make for better debugging.
(date): Don’t assume %z works in printf formats.
(debug_strfdatetime, debug_strfdate, debug_strftime): Use int for
sizes of buffers known to be small, e.g., because we’re using snprintf.
(parse_datetime2): Simplify call to debug_mktime_not_ok.
2017-04-22 Bruno Haible <bruno@clisp.org>
*printf: Work around rounding bug on Mac OS X.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Test for Mac OS X 10.12 bug.
* doc/posix-functions/*printf.texi: Mention the rounding bugs of
Mac OS X and FreeBSD.
* doc/glibc-functions/*printf.texi: Likewise.
2017-04-22 Bruno Haible <bruno@clisp.org>
vasnprintf tests: Avoid warnings.
* tests/test-vasnprintf-posix3.c (test_function, my_asnprintf,
test_vasnprintf, test_asnprintf): Don't define if there's nothing to
test.
2017-04-22 Bruno Haible <bruno@clisp.org>
sys_file tests: Avoid warning.
* tests/test-sys_file.c (main): Add a default clause to the switch
statement.
2017-04-22 Bruno Haible <bruno@clisp.org>
sethostname: Update doc.
* doc/glibc-functions/sethostname.texi: Mention differing prototype on
Mac OS X.
2017-04-22 Bruno Haible <bruno@clisp.org>
quotearg tests: Avoid warnings.
* tests/test-quotearg.c: Don't include test-quotearg.h if ENABLE_NLS is
false.
2017-04-22 Bruno Haible <bruno@clisp.org>
poll: Enable argument check.
* lib/poll.c: Include intprops.h.
(poll): Check value of nfd correctly.
* modules/poll (Depends-on): Add intprops.
2017-04-22 Bruno Haible <bruno@clisp.org>
get-rusage-data: Avoid warnings on Mac OS X.
* lib/get-rusage-data.c: On Mac OS X, don't define
get_rusage_data_via_setrlimit nor get_rusage_data_via_iterator.
(get_rusage_data) [Mac OS X]: Just return 0.
2017-04-22 Bruno Haible <bruno@clisp.org>
xbinary-io: Fix build error.
* modules/xbinary-io (Depends-on): Add gettext-h.
* lib/xbinary-io.c: Include gettext.h and define _().
Reported by Gisle Vanem <gisle.vanem@gmail.com> in
<https://lists.gnu.org/r/bug-gnulib/2017-04/msg00089.html>.
2017-04-22 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: overflow and debug cleanups
This long patch was triggered by this bug report from Ruediger Meier:
http://lists.gnu.org/r/bug-gnulib/2017-04/msg00028.html
I fixed the bug he noted, then found some others nearby, and then
still others. Oh my goodness, there were a lot of bugs. I cleaned
up some of the code to follow GNU standards while I was at it.
* lib/parse-datetime.y (ISDIGIT): Remove; all callers changed to
use c_isdigit.
(EPOCH_YEAR): Remove; unused.
(TM_YEAR_BASE): Now an enum rather than a macro.
(HOUR, debug_strfdatetime): Multiply hour by 3600, not 60, to get
time zone offset, since timezones now are in terms of seconds and
not minutes.
(long_time_t): Remove. All uses replaced by time_t or intmax_t as
appropriate. Verify that intmax_t is wide enough.
(time_overflow, time_zone_str): New functions, used to deal
more reliably with overflow.
(dbg_printf): Add printf attribute, to help catch integer width errors.
(textint, relative_time, parser_control, time_zone_hhmm, set_hhmmss)
(%union, to_hour, yylex, parse_datetime2):
Use intmax_t instead of long int and/or long_time_t.
All uses changed.
(DBGBUFSIZE): Move earlier.
(relative_time, set_hhmmss, parser_control):
Just use int for nanoseconds and for time zones; that’s wide enough.
(parser_control): Use bool for members like year_seen that can
be booleans instead of counters. All uses changed.
Remove debug_default_input_timezone; no longer needed.
All uses removed.
(apply_relative_time): Return a bool overflow flag.
All uses changed to check for overflow.
(apply_relative_time, zone, date, relunit, relunit_snumber)
(signed_seconds, unsigned_seconds, yylex, parse_datetime2):
Check for integer overflow portably.
(str_days): Use just int for N, as it’s wide enough.
Prefer 2D char arrays to arrays of char * when it looks like
2D is a win on typical platforms.
Prefer snprintf to strncpy/strncat, for simplicity;
all buffers are smaller than INT_MAX so this is safe.
(TIME_ZONE_BUFSiZE, TM_YEAR_BUFSIZE): New constants.
(debug_print_current_time): Don’t assume tv_nsec is of type long,
as this is not true on x32. Output "." before any nanoseconds.
(debug_print_current_time, parse_datetime2):
Output local zones using a more-consistent format.
(debug_print_current_time, date, parse_datetime2):
(main) [TEST]:
Don’t assume time_t is the same width as long.
(print_rel_part): New function, replacing ...
(PRINT_REL_PART): ... this macro, which was removed. All uses changed.
(debug_print_relative_time): Use bool for boolean.
(local_zone): dsts_seen now counts only tDST instances.
(date): Fix printf of size_t to use %z. Do not assume numeric
tokens have negative values merely because the context suggests
a syntax with "-" separating tokens.
(time_zone_hhmm): Return bool success indicator, which checks for
overflow. Store result into PC->time_zone instead. All callers
changed.
(tm_year_str): New function. Return a bool success indicator and
store the result into a buffer. All callers changed. Output the
numerically correct string even if adding 1900 to the year would
overflow.
(to_tm_year): New function, replacing the old to_year. All
callers changed.
(tm_diff): Sync with glibc.
(lookup_word): Use to_uchar instead of doing it by hand.
(TZBUFSIZE): Now local to the only function that needs it.
(debug_strfdatetime): Simplify now that time zones are int seconds.
(debug_strfdate): Work even if tm_year + 1900 would overflow.
(get_effective_timezone): Remove. All uses removed.
(parse_datetime2): Use fprintf in pieces instead of snprintfing
to a fixed-size buffer. Don’t assume that gmtime succeeds iff
localtime succeeds. Use tm_gmtoff if available. Simplify how
‘goto fail;’ works in conjunction with the ‘ok’ flag.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don’t define
TIME_T_FITS_IN_LONG_INT, as it is no longer needed.
* modules/parse-datetime (Depends-on): Add inttypes.
2017-04-21 Bruno Haible <bruno@clisp.org>
gettext-h: Avoid -Wundef warning.
* lib/gettext.h: Test the value of ENABLE_NLS only if it is defined.
Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
<https://lists.gnu.org/r/bug-gnulib/2017-04/msg00022.html>.
2017-04-05 Tim Rühsen <tim.ruehsen@gmx.de>
error: Avoid "function declaration isn't a prototype" warning.
* lib/error.c (strerror_r): Turn K&R C prototype to an ANSI C prototype.
2017-04-21 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix for MSVC 14.
* lib/vasnprintf.c (USE_MSVC__SNPRINTF): New macro.
Everywhere, use !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF instead
of !HAVE_SNPRINTF_RETVAL_C99.
2017-04-21 Bruno Haible <bruno@clisp.org>
mbrtowc tests: Fix test failures on MSVC 14.
* tests/test-mbrtowc-w32.c (test_one_locale): Accept MSVC's conversion
behaviour for invalid input.
2017-04-21 Bruno Haible <bruno@clisp.org>
mbsinit: Fix for MSVC 14.
* lib/mbsinit.c (mbsinit): If GNULIB_defined_mbstate_t, provide an
implementation that is in sync with mbrtowc.c. On other platforms, use
an adequate ad-hoc implementation.
2017-04-21 Bruno Haible <bruno@clisp.org>
Fix test-mbrtowc5.sh failure on native Windows.
* lib/setlocale.c (setlocale_unixlike): Accept "POSIX" as an alias for
"C".
2017-04-21 Bruno Haible <bruno@clisp.org>
Avoid accidental use of native Windows APIs on Cygwin.
* lib/getaddrinfo.c (WINDOWS_NATIVE): Don't define on Cygwin.
* lib/localcharset.c (WINDOWS_NATIVE): Likewise.
* lib/localename.c (WINDOWS_NATIVE): Likewise.
2017-04-20 Bruno Haible <bruno@clisp.org>
Remove red warnings from the generated MODULES.html.
* modules/fcntl (Description): Disambiguate function references.
* modules/getcwd-lgpl (Description): Likewise.
* modules/hostent (Description): Likewise.
* modules/servent (Description): Likewise.
* modules/tempname (Description): Likewise.
2017-04-20 Bruno Haible <bruno@clisp.org>
verify tests: Fix spurious failure with parallel make.
* gnulib-tool (func_emit_tests_Makefile_am): Emit initialization of
EXTRA_PROGRAMS.
* tests/test-verify.sh: Build test-verify-try.o, not test-verify.o.
* tests/test-verify-try.c: New file.
* modules/verify-tests (Files): Add it.
(EXTRA_PROGRAMS): Add test-verify-try.
(MOSTLYCLEANFILES): Update accordingly.
Reported by Adam James Stewart <ajstewart@anl.gov>.
2017-04-18 Bruno Haible <bruno@clisp.org>
vma-iter: Fix compilation error on Solaris 7.
* lib/vma-iter.c (vma_iterate): Treat missing MAP_ANONYMOUS on Solaris
like on IRIX, OSF/1.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2017-04-18 Bruno Haible <bruno@clisp.org>
vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9.
* modules/vma-iter (configure.ac): Test whether <sys/procfs.h> can be
included.
* lib/vma-iter.c: On Solaris, test HAVE_SYS_PROCFS_H before including
<sys/procfs.h>.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on Solaris when
<sys/procfs.h> cannot be included.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2017-04-18 Bruno Haible <bruno@clisp.org>
getopt-gnu: Add comments.
* m4/getopt.m4 (gl_FUNC_GETOPT_GNU): Add comments.
* modules/getopt-gnu (configure.ac): Likewise.
2017-04-16 Paul Eggert <eggert@cs.ucla.edu>
regex: port better to Solaris 10
Solaris 10 <locale.h> includes <libintl.h>, which #defines
gettext, and this causes a double #define.
Problem reported by Gavin Smith in:
http://lists.gnu.org/r/bug-gnulib/2017-04/msg00056.html
* lib/regex_internal.h (gettext): #undef before #defining.
2017-04-15 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
intprops: improve comments
* lib/intprops.h: Improve and shorten commentary.
For the record, if we ever run into a pedantic compiler that
behaves differently from GCC when converting an out-of-range value
to a signed integer, we can work around the problem with something
like the following code, where UCT is the signed counterpart of T
(UCT is sometimes narrower than UT) and all callers are changed
accordingly:
#if __SUNPRO_C <= 0x5120
# define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, uct, ut, t) \
((t) ((ut) (a) op (ut) (b)))
#else
# define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, uct, ut, t) \
(TYPE_MINIMUM (t) <= (uct) ((ut) (a) op (ut) (b)) \
? ((t) (uct) (((ut) (a) op (ut) (b)) - TYPE_MINIMUM (t)) \
+ TYPE_MINIMUM (t)) \
: (t) (uct) ((ut) (a) op (ut) (b)))
#endif
2017-04-14 Paul Eggert <eggert@Penguin.CS.UCLA.EDU>
intprops: try to avoid tickling similar bugs
* lib/intprops.h (_GL_INT_OP_CALC): Document that UT no longer
needs to be the same width as T; it can be wider.
Change callers so that UT is at least as wide as unsigned int,
as I suspect that this is less likely to run into compiler bugs.
intprops: port to Oracle Studio 12.3 x86
Problem reported by Gavin Smith in:
http://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html
* lib/intprops.h (_GL_INT_OP_WRAPV_VIA_UNSIGNED):
Convert unsigned to signed via the usual rather than the standard way,
to avoid a compiler bug in Oracle Studio 12.3 x86.
2017-04-08 Paul Eggert <eggert@cs.ucla.edu>
getopt: prefer - to _ in new file names
* lib/getopt-cdefs.in.h: Rename from lib/getopt_cdefs.in.h.
* lib/getopt-core.h: Rename from lib/getopt_core.h.
* lib/getopt-ext.h: Rename from lib/getopt_ext.h.
* lib/getopt-pfx-core.h: Rename from lib/getopt_pfx_core.h.
* lib/getopt-pfx-ext.h: Rename from lib/getopt_pfx_ext.h.
All uses changed.
getopt: port recent getopt changes to macOS
Problem reported by Harald Maier (Bug#26398).
The macOS C compiler uses __nonnull for its own purposes and that
clashes with glibc's __nonnull.
* lib/getopt.in.h: Add comment for _GL_ARG_NONNULL snippet.
* lib/getopt_cdefs.in.h (__nonnull): Remove.
* lib/getopt_core.h (getopt):
* lib/getopt_ext.h (getopt_long, getopt_long_only):
Use _GL_ARG_NONNULL, not __nonnull.
* lib/unistd.in.h: Move snippet hooks to before where the getopt
.h files are included, so that _GL_ARG_NONNULL is defined in time.
* modules/getopt-posix (Depends-on): Add snippet/arg-nonnull.
(getopt.h): Interpolate _GL_ARG_NONNULL snippet.
2017-04-06 Paul Eggert <eggert@cs.ucla.edu>
getopt-gnu: omit some duplicate code
* m4/getopt.m4 (gl_FUNC_GETOPT_GNU): Don’t require
gl_FUNC_GETOPT_POSIX, as the configure.ac code generated by
gnulib-tool already does this.
* modules/getopt-gnu (configure.ac): Omit code duplicated from
getopt-posix, which we depend on.
getopt-posix: use angle-bracket include
* lib/getopt1.c: Include <config.h>, not "config.h".
2017-04-06 Zack Weinberg <zackw@panix.com>
getopt: annotate files with relationship to glibc
As the final act in this patchset, adjust the message at the top of
each file to indicate which files are synced with glibc. (This has
already been done for most of the headers.)
* lib/getopt.c, lib/getopt1.c, lib/getopt_int.h:
Mention in top-of-file boilerplate that these files are shared
between glibc and gnulib.
getopt: split up getopt.in.h and eliminate __need_getopt
Over in glibc, all of the __need macros are being phased out in favor
of small headers that declare only the necessary components, as this
is much simpler and less prone to bugs. As getopt is shared with
glibc, gnulib needs to do the same for __need_getopt.
__need_getopt is misnamed; what it really means is "we want only the
getopt features specified in POSIX, not the GNU extensions". glibc
placed the "meat" of getopt.h into getopt_core.h and getopt_ext.h;
these files can be shared verbatim with gnulib. The portability
wrapper, on the other hand, they have renounced altogether; glibc's
getopt.h will no longer be shared with gnulib at all. In exchange,
certain glibc-specific quirks (having to do with __posix_getopt) no
longer need appear in gnulib's headers at all.
This patch merges getopt_core.h and getopt_ext.h from glibc, and
splits up the current gnulib-side portability wrapper into three
additional headers: getopt_pfx_core.h and getopt_pfx_ext.h handle
__GETOPT_PREFIX for their respective headers, getopt_cdefs.in.h
handles things like __BEGIN_DECLS and __THROW, and getopt.in.h and
unistd.in.h just use them. All new files are clearly marked with
whether they are shared with glibc.
* lib/getopt.in.h: Eliminate __need_getopt. Break up into ...
* lib/getopt_core.h, lib/getopt_ext.h: ... these new files shared
with glibc, and ...
* lib/getopt_cdefs.in.h, lib/getopt_pfx_core.h
* lib/getopt_pfx_ext.h: ... these new files not shared with glibc.
* lib/unistd.in.h: Include getopt_cdefs.h and getopt_pfx_core.h,
instead of defining __need_getopt and including the full getopt.h.
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER): Check for sys/cdefs.h.
Define substitution variables GETOPT_CDEFS_H and HAVE_SYS_CDEFS_H.
* modules/getopt-posix (Files): Add new headers and sort list.
(Depends-on): No longer need snippet/arg-nonnull.
(Makefile.am): Generate getopt_cdefs.h.
getopt: better handling of ambiguous options
glibc's getopt uses alloca to construct a linked list of possibilities
for an "ambiguous" long option. In gnulib, malloc should be used
instead. Providing for both cases complicates things a fair bit.
This patch rewrites ambiguous-option handling to use a boolean vector
instead of a linked list. There is then only one allocation that
might need freeing; in glibc it can honor __libc_use_alloca as usual,
and in gnulib we define __libc_use_alloca to always be false, so we
don't need ifdefs in the middle of the function. This should also be
slightly more efficient in the normal case of long options being fully
spelled out -- I think most people aren't even aware they _can_
sometimes abbreviate long options.
One interesting consequence is that the list of possibilities is now
printed in exactly the order they appear in the list of long options,
instead of the first possibility being shuffled to the end.
(The patch looks bigger than it really is because there's a fair bit
of reindentation and code rearrangement.)
* lib/getopt.c: When used standalone, define __libc_use_alloca
as always false and alloca to abort if called.
(process_long_option): Rewrite handling of ambiguous long options
to use a single boolean vector, not a linked list; use
__libc_use_alloca to decide whether to allocate this using alloca.
getopt: refactor long-option handling
There were two copies of the bulk of the code to handle long options.
Now there is only one.
This change temporarily removes the logic to avoid using alloca when
standalone; the next patch in the series will restore it.
* lib/getopt.c (process_long_option): New function split out
from _getopt_internal_r.
(_getopt_internal_r): Replace both copies of the long-option
processing code with calls to process_long_option.
getopt: tidy up _getopt_initialize a bit
_getopt_data.__posixly_correct is completely redundant to
_getopt_data.__ordering, and some work that logically belongs in
_getopt_initialize was being done by _getopt_internal_r, making the
code harder to understand.
As a side effect, getenv will no longer be called if the first
character of the options string is '+' or '-', which is probably a
Good Thing. (Perhaps we should have a flag character that
specifically asks for the permutation behavior?)
* lib/getopt_int.h (_getopt_data): Remove __posixly_correct field.
* lib/getopt.c (_getopt_internal_r): Move some initialization code...
(_getopt_initialize): ...here. Don't set d->__posixly_correct.
getopt: merge from glibc: repetition reduction
The definitions of the entry point functions 'getopt' and
'__posix_getopt' can be made substantially less repetitive with a
helper macro.
While I was merging the const-correctness changes from gnulib into
glibc I noticed there are still some unnecessary casts in
_getopt_internal_r.
* lib/getopt.c (getopt, __posix_getopt): Eliminate repetition with
a macro. Consistently cast 'argv' to 'char **' when calling
_getopt_internal.
(_getopt_internal_r): Remove unnecessary casts when calling exchange.
getopt: clean up error reporting
getopt can print a whole bunch of error messages, and when used
standalone (from gnulib) it uses fprintf to do that. But fprintf is a
cancellation point and getopt isn't, and also applying fprintf to a
stream in wide-character mode is not allowed. So every single error
reporting case has an #ifdef _LIBC block in which it calls internal
libc functions instead. The counterpart patch series in glibc makes
it possible to simplify all of that down to a set of #defines at the
top of the file; core code is written as if it is safe to just call
fprintf, flockfile, and funlockfile. (One caveat: it's *not* safe to
call any *other* stdio functions.)
* lib/getopt.c: When _LIBC is defined, define fprintf to
__fxprintf_nocancel, flockfile to _IO_flockfile, and funlockfile
to _IO_funlockfile. When neither _LIBC nor
_POSIX_THREAD_SAFE_FUNCTIONS is defined, define flockfile and
funlockfile as no-ops.
(_getopt_internal_r): Remove all internal #ifdef _LIBC blocks; the
standalone error-printing code can now be used for libc as well.
Add an flockfile/funlockfile pair around one case where the error
message is printed in several chunks. Don't use fputc.
getopt: fix fencepost error in ambiguous-W-option handling
getopt_long contains an undocumented (AFAICT) feature in which, if you
put "W;" in the short-options list, then '-W foo' and '-Wfoo' are
treated as equivalent to '--foo'. This is implemented with a partial
second copy of the code for handling long options, and that code
increments optind one too many times when recovering from an ambiguous
abbreviated option, which can cause the main loop to walk past the end
of argv and crash.
I discovered this while writing a test case that tries to exercise all
of getopt's error reporting paths; I wouldn't be surprised to learn
that this feature is never used by real applications.
* lib/getopt.c (_getopt_internal_r): Don't increment
d->optind a second time when reporting ambiguous -W options.
getopt: clean up getopt.c and getopt1.c file headers
In getopt.c, there is no need to include wchar.h at all, and it is
safe nowadays to assume that stdlib.h does declare getenv (several
other gnulib modules make this assumption).
In getopt1.c, the #ifdef _LIBC block at the top can be simplified
by using "" inclusions consistently, and there is no actual need to
include stdlib.h (except in the #ifdef TEST block, where it should be
unconditional), nor to provide a backup definition of NULL at all.
* lib/getopt1.c: Simplify #ifdeffage at top of file.
Move inclusion of stdlib.h to #ifdef TEST block and make
unconditional. Do not define NULL.
* lib/getopt.c: Don't include wchar.h. No need to declare getenv.
* m4/getopt.m4 (gl_PREREQ_GETENV): Delete.
* modules/getopt-gnu, modules/getopt-posix: Don't call
gl_PREREQ_GETENV.
getopt: harmonize comments with glibc
The comments explaining how the behavior of 'getopt' varies depending
on whether it's the standalone version and whether there are special
characters at the beginning of the options string were inconsistent
between gnulib and glibc, and also out of sync with the code.
* lib/getopt.c, lib/getopt_int.h: Harmonize comments with glibc.
getopt: remove USE_NONOPTION_FLAGS
getopt includes code to parse an environment variable named
_XXX_GNU_nonoption_argv_flags_ (where XXX is the current process's PID
in decimal); but all of it has been #ifdefed out since 2001, with no
official way to turn it back on.
According to commentary in glibc's config.h.in, bash version 2.0
set this environment variable to indicate argv elements that were
the result of glob expansion and therefore should not be treated
as options, but the feature was "disabled later" because "it
caused problems". According to bash's CHANGES file, "later" was
release 2.01; it gives no more detail about what the problems
were.
Version 2.0 of bash was released on the last day of 1996, and version
2.01 in June of 1997. Twenty years later, I think it is safe to
assume that this environment variable isn't coming back.
* lib/getopt_int.h: Remove all #ifdef USE_NONOPTION_FLAGS blocks.
* lib/getopt.c: Likewise. Also remove SWAP_FLAGS and the
__libc_argc and __libc_argv externs, which were only used by
#ifdef USE_NONOPTION_FLAGS blocks.
getopt: tabify, in preparation for merge with glibc
glibc sticks to the GNU default of indenting with a mix of
8-column tabs and spaces; make the gnulib copy match.
getopt.h is not included because it is *not* going to be merged in its
present form.
* getopt.c, getopt1.c, getopt_int.h: Tabify.
2017-04-02 Bruno Haible <bruno@clisp.org>
relocatable-lib-lgpl: Fix link error (regression from 2011-06-16).
* modules/relocatable-lib-lgpl (configure.ac): Add AC_LIBOBJ invocation,
like it was done in modules/relocatable-lib on 2011-05-21 and in
modules/relocatable-prog on 2011-08-15.
Reported by Reuben Thomas <rrt@sc3d.org>.
2017-03-31 Bruno Haible <bruno@clisp.org>
glob: Fix invalid free() call.
* lib/glob.c (glob): Reset malloc_home_dir when assigning a pointer to
static storage to home_dir.
Reported by Coverity via Tim Rühsen.
2017-03-31 Bruno Haible <bruno@clisp.org>
glob: Fix memory leaks.
* lib/glob.c (glob): Free allocated memory before returning.
Reported by Coverity via Tim Rühsen.
2017-03-31 Bruno Haible <bruno@clisp.org>
md5, sha1, sha256, sha512: Add comments regarding correctness.
* lib/md5.h (buflen): Add comments regarding range.
* lib/sha1.h (buflen): Likewise.
* lib/sha256.h (buflen): Likewise.
* lib/sha512.h (buflen): Likewise.
* lib/md5.c (md5_process_bytes): Add comment why memmove is not needed.
* lib/sha1.c (sha1_process_bytes): Likewise.
* lib/sha256.c (sha256_process_bytes): Likewise.
* lib/sha512.c (sha512_process_bytes): Likewise.
Reported by Coverity via Tim Rühsen.
2017-03-22 Paul Eggert <eggert@cs.ucla.edu>
getopt: merge from glibc
This does not change anything substantial; it merely simplifies
hypothetical merges back to glibc.
* lib/getopt.c, lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h:
Change copyright notice to match what is in glibc.
* lib/getopt.c: Reorder includes to match glibc. Remove uses of
USE_IN_LIBIO. Remove 'register'. In __LIBC code, use
__open_memstream rather than open_memstream and __glibc_likely
instead of __builtin_expect.
* lib/getopt.in.h (__posix_getopt) [!__GETOPT_PREFIX]: New decl.
2017-03-21 Paul Eggert <eggert@cs.ucla.edu>
dfa: make [0-9] faster in non-C locales
Problem reported by John P. Linderman (Bug#26193).
* lib/dfa.c (parse_bracket_exp): Remove redundant assignment.
If both ends of the range are ASCII digits, do not worry about
multi-character collating sequences and the like. Be consistent
about using isalpha as a precondition for setbit_case_fold_c.
2017-03-19 Bruno Haible <bruno@clisp.org>
lock: Fix compilation error with HP-UX IA64 cc.
* lib/glthread/lock.h (pthread_rwlockattr_setkind_np): Don't declare
weak on non-glibc platforms.
2017-03-19 Paul Eggert <eggert@cs.ucla.edu>
stdalign: tweak version# and test for HP-UX IA64
Problems reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-03/msg00078.html
* lib/stdalign.in.h (_Alignas):
* m4/stdalign.m4 (gl_STDALIGN_H):
Use octal, not decimal, for __HP_cc version. Perhaps HP formerly
used octal (as that is how they document it), but it is decimal in
practice now and the ancient implementations no longer matter.
* tests/test-stdalign.c (main) [__HP_cc && __ia64]: Skip test.
2017-03-19 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for Solaris.
* lib/vma-iter.c (vma_iterate): On Solaris, use the /proc filesystem
approach.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on Solaris.
* lib/get-rusage-as.c: Update comment about Solaris.
* lib/get-rusage-data.c: Likewise.
2017-03-19 Bruno Haible <bruno@clisp.org>
vma-iter: Prefer HP-UX specific API on HP-UX.
* lib/vma-iter.c (vma_iterate): Move HP-UX specific implementation up.
* lib/vma-iter.h: Update.
Just in case HP-UX ever implements mquery().
2017-03-18 Paul Eggert <eggert@cs.ucla.edu>
stdalign: restore previous behavior for HP-UX IA64
See Bruno Haible's email in:
http://lists.gnu.org/r/bug-gnulib/2017-03/msg00066.html
which cites p 150 of a manual saying that 'aligned' works on Itanium.
* lib/stdalign.in.h (_Alignas):
Assume the '061200' applies to Itanium, not to PA-RISC.
* m4/stdalign.m4 (gl_STDALIGN_H): Adjust to match stdalign.in.h.
2017-03-17 Bruno Haible <bruno@clisp.org>
stat-time, timespec: Support use of the header files in C++ mode.
* lib/stat-time.h: Add "C" linkage declaration.
* lib/timespec.h: Likewise.
2017-03-17 Bruno Haible <bruno@clisp.org>
stdalign: Make it work with HP-UX cc.
* lib/stdalign.in.h (_Alignas): Don't define for HP-UX cc.
* m4/stdalign.m4 (gl_STDALIGN_H): No need to enable the extra test
for HP-UX cc.
2017-03-17 Paul Eggert <eggert@cs.ucla.edu>
flexmember: try to detect HP-UX 11.31 cc bug
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-03/msg00066.html
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER):
Attempt to detect bug in HP-UX 11.31 cc.
2017-03-16 Bruno Haible <bruno@clisp.org>
stdint: Fix test compilation failure with HP-UX 11 cc.
* lib/stdint.in.h (_STDINT_MIN): Remove macro.
(_STDINT_UNSIGNED_MIN, _STDINT_SIGNED_MIN): New macros.
(PTRDIFF_MIN, SIG_ATOMIC_MIN, WCHAR_MIN, WINT_MIN): Define using
_STDINT_UNSIGNED_MIN, _STDINT_SIGNED_MIN.
2017-03-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't produce a tests directory with only snippet .h files.
* gnulib-tool (func_modules_transitive_closure_separately): If
testsrelated_modules ends up with no "real" modules, aside from
modules with applicability 'all', set it to empty.
2017-03-14 Bruno Haible <bruno@clisp.org>
vma-iter: Add support for HP-UX.
* modules/vma-iter (configure.ac): Check for 'pstat_getprocvm'.
* lib/vma-iter.c (vma_iterate): On HP-UX, use pstat_getprocvm().
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on HP-UX.
* lib/get-rusage-as.c: Update comment about HP-UX.
* lib/get-rusage-data.c: Likewise.
(get_rusage_data): Use get_rusage_data_via_setrlimit.
2017-03-14 Bruno Haible <bruno@clisp.org>
limits-h: Make it work with HP-UX cc.
* lib/limits.in.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define if not
defined.
2017-03-14 Bruno Haible <bruno@clisp.org>
Fix test failures on DragonFlyBSD.
* tests/test-localeconv.c (main): Treat DragonFlyBSD like FreeBSD.
* tests/test-select.h (test_bad_fd): Likewise.
* tests/test-get-rusage-data.c (main): Treat DragonFlyBSD like OpenBSD.
2017-03-14 Bruno Haible <bruno@clisp.org>
freadahead: Silence warning on DragonFlyBSD.
* lib/freadahead.c (__sreadahead): Declare ourselves.
2017-03-14 Bruno Haible <bruno@clisp.org>
vma-iter: Add comment about AIX.
* lib/vma-iter.c: Add comment about why this module is not implemented
on AIX.
2017-03-14 Paul Eggert <eggert@cs.ucla.edu>
snippets: move unadjusted snippet sources to lib
Problem reported by Michal Privoznik in:
http://lists.gnu.org/r/bug-gnulib/2017-03/msg00039.html
* lib/_Noreturn.h: Rename from build-aux/snippet/_Noreturn.h.
* lib/arg-nonnull.h: Rename from build-aux/snippet/arg-nonnull.h.
* lib/c++defs.h: Rename from build-aux/snippet/c++defs.h.
* lib/unused-parameter.h: Rename from
build-aux/snippet/unused-parameter.h.
* lib/warn-on-use.h: Rename from build-aux/snippet/warn-on-use.h.
* modules/snippet/_Noreturn (Files:, _NORETURN_H):
* modules/snippet/arg-nonnull (Files:, ARG_NONNULL_H):
* modules/snippet/c++defs (Files:, CXXDEFS_H):
* modules/snippet/unused-parameter (Files:, UNUSED_PARAMETER_H):
* modules/snippet/warn-on-use (Files: WARN_ON_USE_H):
Adjust to file renamings.
2017-03-14 Mathieu Lirzin <mthl@gnu.org>
gnulib-tool: don't automatically distribute files from top/
* gnulib-tool (func_get_automake_snippet_unconditional): To be able to
not distribute top/README-release by default, don't distribute files
from top/ unconditionally.
* modules/gnumakefile (Makefile.am): Distribute top/GNUmakefile.
* modules/maintainer-makefile (Makefile.am): Distribute top/maint.mk.
2017-03-14 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: fix typo in comment output
* gnulib-tool (func_import): Fix typo with previous change.
snippets: work around GNU Make 3.82 VPATH
When using 'gnulib-tool --gnu-make' on Emacs, and building
the resulting tarball on Solaris 10 which bundles GNU Make 3.82,
an out-of-source (VPATH) build failed because the sans-copyright
snippet file was not built before the file that used it.
Presumably this is some sort of VPATH thing. Work around the
problem by using the original snippet, i.e., don’t bother to
remove its copyright notice.
* modules/snippet/_Noreturn, modules/snippet/link-warning:
Don’t assume Automake in comments. Omit long-incorrect comment.
* modules/snippet/arg-nonnull (BUILT_SOURCES, arg-nonnull.h)
(MOSTLYCLEANFILES):
* modules/snippet/c++defs (BUILT_SOURCES, c++defs.h)
(MOSTLYCLEANFILES):
* modules/snippet/unused-parameter (BUILT_SOURCES, unused-parameter.h)
(MOSTLYCLEANFILES):
* modules/snippet/warn-on-use (BUILT_SOURCES, warn-on-use.h)
(MOSTLYCLEANFILES):
Remove.
* modules/snippet/arg-nonnull (ARG_NONNULL_H):
* modules/snippet/c++defs (CXXDEFS_H):
* modules/snippet/unused-parameter (UNUSED_PARAMETER_H):
* modules/snippet/warn-on-use (WARN_ON_USE_H):
Don’t bother to remove the copyright notice; just use the
original snippet as-is.
2017-03-13 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: minor --gnu-make fixups
* gnulib-tool (func_emit_lib_Makefile_am):
Remove useless code that was a blind alley during implementation.
Problem reported by Thien-Thi Nguyen in:
http://lists.gnu.org/r/bug-gnulib/2017-03/msg00029.html
(func_import): Note the "--gnu-make" option in the output comment.
2017-03-12 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: new option --gnu-make
This is for applications like GNU Emacs that use GNU Make
features instead of Automake.
* doc/gnulib-tool.texi (Initial import): Mention --gnu-make.
* doc/gnulib.texi (Unit test modules, Build robot for gnulib):
Do not assume Automake.
* gnulib-tool (func_determine_path_separator)
(func_modules_transitive_closure, func_update_file)
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am)
(func_import): Add support for --gnu-make.
2017-03-11 Paul Eggert <eggert@cs.ucla.edu>
gnulib-common.m4: avoid aclocal.m4 bloat
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB):
Hide AM_PROG_AR from aclocal, so that aclocal does not
install irrelevant macro definitions into aclocal.m4.
2017-03-10 Bruno Haible <bruno@clisp.org>
vma-iter: Let callers know about error.
* lib/vma-iter.h (vma_iterate): Return 'int', not 'void'.
* lib/vma-iter.c (vma_iterate): Return -1 in case of error.
2017-03-05 Bruno Haible <bruno@clisp.org>
Fix value of LD for 64-bit compilers on AIX.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): For 64-bit compilers on AIX
("gcc -maix64" and "xlc -q64"), add option -b64 to $LD.
2017-03-04 Paul Eggert <eggert@cs.ucla.edu>
dtotimespec: simplify
* lib/dtotimespec.c (dtotimespec): Simplify.
2017-03-04 Bruno Haible <bruno@clisp.org>
test-calloc-gnu: Reenable test also for GCC 7.
* tests/test-calloc-gnu.c (eight): New function.
(main): Don't skip test; use eight() instead.
2017-03-04 Jim Meyering <meyering@fb.com>
test-calloc-gnu: port to GCC7
* tests/test-calloc-gnu.c (main) [__GNUC__ >= 7]: Skip a test
that attempts to calloc more than SIZE_MAX bytes, because GCC7
and newer would detect that at compilation time.
2017-03-04 Bruno Haible <bruno@clisp.org>
tests: Avoid compiler warning about uses of null_ptr.
* tests/null-ptr.h: New file.
* tests/test-canonicalize.c: Include null-ptr.h.
(null_ptr): Remove function.
* tests/test-canonicalize-lgpl.c: Likewise.
* tests/test-memmem.c: Likewise.
* tests/test-ptsname_r.c: Likewise.
* modules/canonicalize-tests (Files): Add tests/null-ptr.h.
* modules/canonicalize-lgpl-tests: Likewise.
* modules/memmem-tests: Likewise.
* modules/ptsname_r-tests: Likewise.
Reported by Jim Meyering.
2017-03-03 Bruno Haible <bruno@clisp.org>
doc: Mention Mac OS X deficiencies regarding semaphores.
* doc/posix-functions/sem_init.texi: Mention status on Mac OS X.
* doc/posix-functions/sem_destroy.texi: Likewise.
* doc/posix-functions/sem_getvalue.texi: Likewise.
2017-03-03 Bruno Haible <bruno@clisp.org>
lock tests: Fix test failure on Mac OS X (regression from 2017-01-05).
Reported by Assaf Gordon <assafgordon@gmail.com> via
Pádraig Brady <P@draigBrady.com>.
* tests/test-lock.c: On Mac OS X, use named semaphores, not unnamed
semaphores.
(USE_NAMED_SEMAPHORE, USE_UNNAMED_SEMAPHORE): New macros.
(atomic_int_semaphore): New macro.
2017-02-28 Bruno Haible <bruno@clisp.org>
perror tests: Tweak for z/OS.
Reported by Daniel Richard G. <skunk@iskunk.org>.
* tests/test-perror.sh: Don't fail z/OS style perror output.
2017-02-26 Bruno Haible <bruno@clisp.org>
nproc: Refactor large function.
* lib/nproc.c (num_processors_ignoring_omp): New function, extracted
from num_processors.
(num_processors): In this function, only deal with OMP.
2017-02-26 Pádraig Brady <P@draigBrady.com>
nproc: adjust handling of OpenMP environment variables
to match the return value from omp_get_num_threads(), i.e.:
- honor OMP_THREAD_LIMIT without OMP_NUM_THREADS
- Treat 0 as an invalid value and ignore
Also remove the call to omp_get_num_threads() because
it's ineffective without the omp pragmas in place.
* lib/nproc.c (parse_omp_threads): Return 0 if specified,
so that it can be ignored.
(num_processors): Honor OMP_THREAD_LIMIT even without
OMP_NUM_THREADS being set. Also fix a typo in the environment
variable being checked, from the previous recent commit.
2017-02-26 Pádraig Brady <P@draigBrady.com>
nproc: support nested OMP_NUM_THREADS, and OMP_THREAD_LIMIT
* lib/nproc.c (parse_omp_threads): A new function refactored
from num_processors() to support parsing both of the
above environment variables.
(num_processors): Prefer using omp_get_num_threads() with [_OPENMP]
to accurately reflect the current OpenMP nesting level.
Also support the OMP_THREAD_LIMIT environment variable
to limit the max value determined from OMP_NUM_THREADS.
* modules/nproc: Depend on minmax header.
Suggested by Oliver Heimlich.
2017-02-25 Bruno Haible <bruno@clisp.org>
maintainer-makefile: Fix AC_PROG_SED with autoconf cache.
* m4/gnulib-common.m4 (AC_PROG_SED): Fix AC_CACHE_CHECK invocation.
2017-02-24 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: port to -Wdouble-promotion
Work around -Wdouble-promotion false alarm in recent GCCs.
* lib/ftoastr.c (PROMOTED_FLOAT): New macro.
(ftoastr_snprintf, FTOASTR): Use it.
2017-02-21 Bruno Haible <bruno@clisp.org>
lock tests: Fix build failure on GNU/Hurd (regression from 2017-01-05).
Reported by Rene Saavedra <rennes@openmailbox.org> in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25821 via Paul Eggert.
* lib/glthread/lock.h: On glibc systems without
PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback
implementation of rwlocks.
* lib/glthread/lock.c: Likewise.
2017-02-20 Bruno Haible <bruno@clisp.org>
lock tests: Fix build failure on z/OS.
Reported by Daniel Richard G. <skunk@iskunk.org>.
* modules/lock-tests (configure.ac): Test for <semaphore.h>.
* tests/test-lock.c (USE_SEMAPHORE): Don't set if <semaphore.h> does not
exist.
2017-02-19 Bruno Haible <bruno@clisp.org>
havelib: Prefer the search path of /usr/bin/gcc over the one of $CC.
This helps when CC=clang.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Prefer the search path
of /usr/bin/gcc.
havelib: Support overriding the result of AC_LIB_PREPARE_MULTILIB.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Use AC_CACHE_CHECK.
2017-02-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid conflict of havelib-tests with --single-configure.
* gnulib_tool (func_create_testdir): Avoid havelib-tests when
--with-tests --single-configure is specified.
2017-02-16 Tim Rühsen <tim.ruehsen@gmx.de>
users.txt: Update links, use HTTPS where possible
* users.txt: Updated to HTTPS where possible,
fixed some links to new locations.
2017-02-16 Bruno Haible <bruno@clisp.org>
xbinary-io: Fix inlining.
* lib/xbinary-io.c: Set XBINARY_IO_INLINE, not XSETMODE_INLINE.
2017-02-16 Paul Eggert <eggert@cs.ucla.edu>
xbinary-io: rename from xsetmode
This patch is taken from suggestions by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-02/msg00060.html
http://lists.gnu.org/r/bug-gnulib/2017-02/msg00061.html
* lib/binary-io.c (__gl_setmode_check): Set errno to EINVAL,
not ENOTTY, when it is an inappropriate device.
* lib/binary-io.h (SET_BINARY): Resurrect.
* lib/xbinary-io.c: Rename from lib/xsetmode.c.
(xset_binary_mode_error): Rename from xsetmode_error.
* lib/xbinary-io.h: Rename from lib/xsetmode.h.
(xset_binary_mode): Rename from xsetmode.
All uses changed.
* modules/xbinary-io: Rename from modules/xsetmode.
Update file names.
* tests/test-binary-io.sh (tmpfiles): Remove no-longer-used file name.
* NEWS: Update to match revised behavior.
2017-02-15 Paul Eggert <eggert@cs.ucla.edu>
tests: Adjust to recent SET_BINARY change
* tests/test-binary-io.c (main):
* tests/test-binary-io.sh: Remove test for SET_BINARY.
* tests/test-closein.c, tests/test-fflush2.c, tests/test-ftell.c:
* tests/test-ftello.c, tests/test-nonblocking-pipe-child.c:
* tests/test-yesno.c: Use set_binary_mode, not SET_BINARY.
xsetmode: new module
This is to fix a problem noted by Eric Blake.
Code was using xfreopen to change files to binary mode, but this
fails for stdout when in append mode. Such code should use
xsetmode instead.
* NEWS: Document incompatible changes to binary-io module.
* lib/binary-io.c (__gl_setmode_check) [__DJGPP__ || __EMX__]:
New function.
* lib/binary-io.h (__gl_setmode): Rename from set_binary_mode.
(set_binary_mode): New function, which also checks for tty.
* lib/xsetmode.c, lib/xsetmode.h, modules/xsetmode: New files.
2017-02-14 Paul Eggert <eggert@cs.ucla.edu>
headers: fix begin-end typos
* lib/mbfile.h, lib/se-selinux.in.h: Fix typos by replacing
_GL_INLINE_HEADER_BEGIN with _GL_INLINE_HEADER_END.
selinux-h: port to PGI 16.10
* lib/se-selinux.in.h: Don't assume that include_next skips over
duplicate -I DIR options.
argp: port to PGI 16.10
* lib/argp-pin.c (dummy): Declare as needed to make file nonempty.
2017-02-13 Darshit Shah <darnir@gnu.org>
unicase: Update function protoype to match definition.
* lib/unicase/special-casing.h (gl_unicase_special_lookup): Gperf 3.1
uses 'size_t' as the datatype for the 'len' parameter in the functions
it generates. Update the prototype specified here to match the newly
generated function.
2017-02-12 Bruno Haible <bruno@clisp.org>
times test: Avoid gcc warnings on Linux/x32.
* tests/test-times.c (main): Really cast printf arguments from clock_t
to 'long int'.
2017-02-12 Paul Eggert <eggert@cs.ucla.edu>
glob: port better to emscripten
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-02/msg00031.html
* lib/glob.c (glob): Don't assume HAVE_GETPWNAM_R || _LIBC.
2017-02-11 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Support for 64-bit AIX, 32-bit armhf on arm64, hppa64.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Define also HOST_CPU.
For the x32 ABI on x86_64, set HOST_CPU_C_ABI to 'x86_64-x32' and define
both __x86_64__ and __x86_64_x32__. For the ELFv2 ABI on powerpc64,
define both __powerpc64__ and __powerpc64_elfv2__. Recognize 64-bit
compilation on AIX. Recognize 32-bit compilation on arm64/Linux.
Distinguish hppa64 from hppa.
2017-02-10 Bruno Haible <bruno@clisp.org>
search: Don't assume that tsearch() exists if 'VISIT' is defined.
* m4/search_h.m4 (gl_SEARCH_H): Determine HAVE_TYPE_VISIT.
* modules/search (Makefile.am): Substitute HAVE_TYPE_VISIT.
* lib/search.in.h (VISIT): Define if HAVE_TYPE_VISIT is 0.
2017-02-09 Bruno Haible <bruno@clisp.org>
doc: Don't mention obsolete AC_LIBTOOL_WIN32_DLL macro.
* doc/gnulib.texi (Libtool and Windows): Recommend
LT_INIT([win32-dll]) instead of AC_LIBTOOL_WIN32_DLL.
Reported by Reuben Thomas <rrt@sc3d.org>.
2017-02-08 Paul Eggert <eggert@cs.ucla.edu>
stddef-tests: port to SIZE_MAX <= INT_MAX
* tests/test-stddef.c: Include <limits.h>, for INT_MAX.
Do not assume that INT_MAX < SIZE_MAX.
2017-02-01 Bruno Haible <bruno@clisp.org>
lock tests: Fix link error.
* modules/lock-tests (test_rwlock1_LDADD): Add @YIELD_LIB@.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2017-01-31 Bruno Haible <bruno@clisp.org>
lock: Fix link error (regression from 2017-01-05).
* lib/glthread/lock.h [USE_POSIX_THREADS_WEAK]: Declare also
pthread_rwlockattr_init, pthread_rwlockattr_setkind_np,
pthread_rwlockattr_destroy weak.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2017-01-30 Paul Eggert <eggert@cs.ucla.edu>
Port to PGI 16.10 x86-64
This patch fixes one real bug in gl_anylinked_list2.h, along with
some minor glitches that are not bugs. It does not silence PGI’s
thousands of bogus warnings when compiling test-intprops.c.
Fortunately, the warnings do not cause a failure.
* lib/c-ctype.h (_C_CTYPE_LOWER_A_THRU_F_N, _C_CTYPE_LOWER_N):
Rename parameter to avoid PGI warning about ‘#define f(n) 'n'’.
My goodness, PGI goes back a long ways - this predates C89!
* lib/gl_anylinked_list2.h (ASYNCSAFE): Fix bug caught by PGI.
For example, ASYNCSAFE (const void *) should expand to
‘const void *volatile’, not to ‘volatile const void *’.
* lib/spawn.in.h (POSIX_SPAWN_USEVFORK): Don't define if already defined.
* lib/verify.h (verify) [!__GNUC__]:
Use shorter albeit meaningless string to bypass silly compiler limits.
* tests/infinity.h (Infinityf, Infinityd, Infinityl) [__PGI]:
* tests/nan.h (NaNf, NaNd, NaNl):
Use static functions to avoid misguided compiler diagnostics.
Is there some reason we don’t use static functions on all platforms?
2017-01-20 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: handle timezones reentrantly
This API change was prompted by a report by Pádraig Brady in:
https://bug.debian.org/851934#10
To help fix the bug, make parse_datetime2 more reentrant.
* NEWS: Document this incompatible change.
* lib/parse-datetime.h, lib/parse-datetime.y (parse_datetime2):
Add two arguments, the timezone and the timezone name.
All callers changed. If TZ="..." is specified, use it for
calculating defaults.
* lib/parse-datetime.y: Don't include xalloc.h or use xmalloc, as
this code should be usable in a library.
(mktime_ok, get_effective_timezone):
Accept timezone arg too. All callers changed.
(get_tz): Remove.
(get_effective_timezone): Check for failures.
2017-01-20 Eric Blake <eblake@redhat.com>
localename: port to cygwin 2.6
* lib/localename.c (gl_locale_name_thread_unsafe): Add clause for
Cygwin.
* modules/localename (Depends-on): Add extensions, since
NL_LOCALE_NAME() is not visible without it.
2017-01-17 Pádraig Brady <P@draigBrady.com>
parse-datetime: fix dependence on AC_PROG_SED
* modules/parse-datetime: Use `sed` directly like all other modules.
Reported by J William Piggott
2017-01-16 Paul Eggert <eggert@cs.ucla.edu>
intprops: update doc URLs
* doc/intprops.texi (Integer Range Overflow): Update URLs.
2017-01-16 Bruno Haible <bruno@clisp.org>
host-cpu-c-abi: Add support for armhf, arm64, x32, s390x.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Require gl_C_ASM. On x86_64
systems, distinguish x86_64 and x32. On arm systems, distinguish arm,
armhf, arm64, and no longer distinguish arm and armel. On s390x systems,
distinguish s390 and s390x.
* modules/host-cpu-c-abi (Files): Add m4/asm-underscore.m4.
* NEWS: Mention the change regarding 'armel'.
2017-01-15 Paul Eggert <eggert@cs.ucla.edu>
localeinfo: case_folded_counterparts and WEOF
* NEWS: Document this.
* lib/localeinfo.c (case_folded_counterparts):
First arg is now wint_t, not wchar_t. This generalizes the
function to also work on WEOF, where it returns 0.
dfa: port to gcc -fsanitize=undefined
* lib/dfa.c (copy): Don’t pass NULL with size 0 to memcpy,
as this runs afoul of gcc -fsanitize=undefined.
2017-01-14 Paul Eggert <eggert@cs.ucla.edu>
strftime: %z is -00 if unknown
* lib/strftime.c (DO_TZ_OFFSET): Omit arg 'negative'; it's now
the caller's responsibility to set 'negative_number'. All uses changed.
(__strftime_internal): Put '-' before a zero UTC offset if the time
zone abbreviation starts with "-", which is the recently-introduced
tzdb convention for an unknown UTC offset that is arbitrarily set to 0.
* tests/test-strftime.c: Test for this.
2017-01-10 Paul Eggert <eggert@cs.ucla.edu>
dfa: port to older GCC
Problem reported by Assaf Gordon in:
http://lists.gnu.org/r/bug-gnulib/2017-01/msg00103.html
* modules/c99: New module. This merely attempts to use the latest
C version, which should be enough to solve this particular problem.
The idea is to document which Gnulib modules assume C99 or later.
* modules/dfa (Depends-on): Add it.
2017-01-10 Bruno Haible <bruno@clisp.org>
Update DEPENDENCIES.
* DEPENDENCIES: List only https URLs. Update recommended version for
autoconf, automake, gperf.
2017-01-10 Jim Meyering <meyering@fb.com>
maint.mk: enforce spelling of "timestamp" (i.e., no space)
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Also
disallow /\btime\s+stamps?\b/. Prefer "timestamp".
2017-01-10 Paul Eggert <eggert@cs.ucla.edu>
dfa: minor simplification with emptyset
* lib/dfa.c (build_state): Simplify by using emptyset.
2017-01-09 Paul Eggert <eggert@cs.ucla.edu>
dfa: shrink constraints from 4 bits to 3
* lib/dfa.c (newline_constraint, letter_constraint)
(other_constraint, prev_newline_dependent)
(prev_letter_dependent, NO_CONSTRAINT, BEGLINE_CONSTRAINT)
(ENDLINE_CONSTRAINT, BEGWORD_CONSTRAINT, ENDWORD_CONSTRAINT)
(LIMWORD_CONSTRAINT, NOTLIMWORD_CONSTRAINT):
Constraints need only 3 bits, not 4. Using smaller integers
shrinks the code a bit and makes grep a tad faster on x86-64.
dfa: omit unnecessary ptrdiff_t check
* lib/dfa.c (alloc_position_set): Do not worry about ptrdiff_t
overflow, since xnmalloc does that now.
dfa: omit unnecessary allocation
* lib/dfa.c (dfaanalyze): Do not allocate follow set, since
an all-zero follow set works just fine.
dfa: omit unused local
* lib/dfa.c (build_state): Fix up recent change.
maint: remove stray .texi files
Although these were superseded by other files like
doc/posix-functions/ctime.texi, the old files were not removed.
* doc/ctime.texi, doc/inet_ntoa.texi: Remove.
2017-01-08 Paul Eggert <eggert@cs.ucla.edu>
getprogname: fix port to IRIX
* lib/getprogname.c (getprogname) [__sgi]:
Don't dump core if malloc returns NULL.
dfa: fix reallocation bug when matching newlines
Problem reported for sed by S. Gilles (Bug#25390).
* lib/dfa.c (realloc_trans_if_necessary): Move earlier.
(dfastate): Reallocate before moving any newline transition ...
(build_state): ... instead of reallocating here, where it is too late.
2017-01-07 Tim Rühsen <tim.ruehsen@gmx.de> (tiny change)
Avoid -Wundef warning about undefined WINDOWS_SOCKETS.
* lib/sockets.h: Test if WINDOWS_SOCKETS is defined.
2017-01-07 Tim Rühsen <tim.ruehsen@gmx.de> (tiny change)
Avoid -Wundef warning about undefined __USE_FILE_OFFSET64.
* lib/glob-libc.h: Test if __USE_FILE_OFFSET64 is defined.
2017-01-07 Bruno Haible <bruno@clisp.org>
stdioext: Port to Minix 3.2 and newer.
* lib/stdio-impl.h: Treat __minix like the newest NetBSD.
* lib/fseeko.c (fseeko): Likewise.
Reported by Nelson Beebe via Paul Eggert.
2017-01-06 Paul Eggert <eggert@cs.ucla.edu>
getprogname: port to IRIX
* lib/getprogname.c (getprogname): Port to IRIX.
Based on an idea by Bastien Roucariès at:
http://lists.gnu.org/r/bug-gnulib/2010-12/msg00096.html
via code from Bruno Haible at:
https://lists.gnu.org/r/bug-gnulib/2010-12/msg00249.html
localename-tests: port to NetBSD 7
Problem reported by Nelson H. F. Beebe.
* tests/test-localename.c:
Test newlocale and uselocale only if both exist.
glob, intprops, xalloc: work around Clang bug
Work around LLVM bug 16404, which is still not fixed.
https://llvm.org/bugs/show_bug.cgi?id=16404
Problem reported by Nelson H. F. Beebe.
* lib/glob.c, lib/intprops.h, lib/xalloc-oversized.h (__has_builtin):
Remove.
* lib/glob.c (size_add_wrapv):
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW, _GL_HAS_BUILTIN_OVERFLOW_P):
* lib/xalloc-oversized.h (xalloc_oversized):
Do not use overflow builtins if Clang.
dfa: fix 'return' typo
Problem reported by Nelson H. F. Beebe.
* lib/dfa.c (merge): Fix typo that Sun compilers rejected.
2017-01-05 Pádraig Brady <P@draigBrady.com>
parse-datetime: fix generated paths for coverage files
* modules/parse-datetime: Adjust the paths for parse-datetime.y
within parse-datetime.c, so that gcc generates appropriate .gcno
files, allowing lcov to proceed without error. Previously it
would error trying to find "lib/lib/parse-datetime.y".
2017-01-05 Pádraig Brady <P@draigBrady.com>
maint.mk: support parallel execution of coverage
* top/maint.mk (coverage): Run dependencies serially,
thus supporting parallel processing of each one,
particularly build-coverage, which builds and runs tests.
2017-01-05 Bruno Haible <bruno@clisp.org>
lock tests: Prefer semaphore over mutex.
* tests/test-lock.c (USE_SEMAPHORE): New constant.
(struct atomic_int, init_atomic_int, get_atomic_int_value,
set_atomic_int_value) [USE_SEMAPHORE]: Define using a POSIX semaphore.
Suggested by Torvald Riegel <triegel@redhat.com>.
2017-01-05 Bruno Haible <bruno@clisp.org>
lock: Provide guarantee to avoid writer starvation for rwlocks.
The rationale is: 1) Read-preferring read-write locks are prone to
writer starvation if the number of reader threads multiplied by the
percentage of time they have the lock held is too high. 2) Write-
preferring read-write locks are the only reliable way to avoid this.
3) There have been reports of 'test-lock' hanging on glibc systems
http://lists.gnu.org/r/bug-gnulib/2017-01/msg00009.html,
and glibc indeed implements read-preferring rwlocks by default, see
http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html
and https://sourceware.org/bugzilla/show_bug.cgi?id=13701 .
* m4/pthread_rwlock_rdlock.m4: New file.
* m4/lock.m4 (gl_LOCK): Invoke gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER.
* lib/glthread/lock.h [USE_POSIX_THREADS]: Test
HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
of rwlock initialization on glibc systems without
HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
of rwlocks altogether on non-glibc systems without
HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER.
[USE_PTH_THREADS]: Use a different implementation of rwlocks altogether.
* lib/glthread/lock.c [USE_POSIX_THREADS]
(glthread_rwlock_init_for_glibc): New function.
[USE_POSIX_THREADS] (glthread_rwlock_rdlock_multithreaded): Update
comment.
[USE_PTH_THREADS]: New implementation of rwlocks.
[USE_WINDOWS_THREADS] (glthread_rwlock_rdlock_func): Prefer writers over
readers.
* modules/lock (Files): Add m4/pthread_rwlock_rdlock.m4.
(Depends-on): Add 'extensions'.
* tests/test-rwlock1.c: New file.
* lock-tests (Files): Add it.
(Depends-on): Add usleep.
(Makefile.am): Add test-rwlock1 to the tests.
2017-01-05 Bruno Haible <bruno@clisp.org>
thread: Fix pth port.
* lib/glthread/thread.h (pth_init): Declare weak.
(glthread_create, glthread_sigmask, glthread_join, gl_thread_self,
gl_thread_exit): Make sure Pth is initialized before invoking any Pth
function.
2017-01-04 Assaf Gordon <assafgordon@gmail.com>
parse-datetime: fix debug message on lone year number
Input dates such as
date -d "Apr 11 22:59:00 2011"
are parsed as date (Apr 11, with default year 2016), then time, then a
number (2011). Based on the combination of previously seen tokens,
'digits_to_date_time' determines 2011 to be a year value.
This fixes the debug messages to correctly show the updated year.
Before:
$ date --debug -d 'Apr 11 22:59:00 2011'
date: parsed date part: (Y-M-D) 2016-04-11
date: parsed time part: 22:59:00
date: parsed number part: today/this/now
After:
$ ./src/date --debug -d 'Apr 11 22:59:00 2011'
date: parsed date part: (Y-M-D) 2016-04-11
date: parsed time part: 22:59:00
date: parsed number part: year: 2011
* lib/parse-datetime.y (struct parser_control): Add 'year_seen',
'debug_year_seen' member fields.
(digits_to_date_time): Update 'year_seen' as needed.
(debug_print_current_time): Inform about year updates.
(parse_datetime2): Initialize year_seen,debug_year_seen member fields.
parse-datetime: fix local timezone debug messages
"Local timezones" are strings that affect only DST relative to the
default timezone. The debug messages in parse-datetime.y printed
wrong information when encountering local timezones.
Examples:
Here EET/EEST are time zones ('zone' token, with values +02:00/+03:00):
TZ=Asia/Tokyo ./src/date --debug -d '2011-12-11 EET'
TZ=Asia/Tokyo ./src/date --debug -d '2011-06-11 EEST'
When the default timezone relates to the zone strings, EET/EEST are
parsed as local timezones (tLOCAL_ZONE), and only change the DST
value (0/1, respectively):
TZ=Europe/Helsinki ./src/date --debug -d '2011-12-11 EET'
TZ=Europe/Helsinki ./src/date --debug -d '2011-06-11 EEST'
* lib/parse-datetime.y (debug_print_current_time): If local timezone
was seen, inform about DST change, don't print actual timezone.
(debug_strfdatetime): If local timezone was seen, use default timezone
(and adjust as needed) instead of using incorrect timezone.
(parse_datetime2): Use correct time-zone source string, and adjust
default timezone as needed.
parse-datetime: add debug warning about DST changes
Incorrect date arithmetic due to daylight saving time (DST) are a
common (false) bug report in coreutils.
Detect two such cases and print a warning:
1. year/month/day adjustments (performed on 'struct tm'),
where 'mktime' returns a different isdst value.
2. hour/minute/seconds/ns adjustments (performed on 'time_t'),
where the result of 'localtime(3)' on the value will return a
different isdst value.
Note: DST changes could be harmless or unnoticeable.
Examples (with 'TZ=America/New_York'):
Unnoticeable: result is 2016-Dec-14
$ date -d '2016-06-15 EDT + 6 months' +%b
Dec
Unnoticeable: result is 2016-Dec-15 11:00:00
$ date -d '2016-06-15 12:00:00 EDT + 6 months' +%F
2016-12-15
This is unexpected:
$ date -d '2016-06-01 EDT + 6 months' +%F
2016-11-30
The new debug warnings will show:
$ ./src/date --debug -d '2016-06-01 EDT + 6 months' +%F
...
date: warning: daylight saving time changed after date adjustment
...
* lib/parse-datetime.y (parse_datetime2): Detect DST changes, and
print an appropriate warning message.
parse-datetime: add debug warning about date arithmetic
Date arithmetic are done directly on the fields of 'struct tm',
which can result in invalid dates. Normalization with 'mktime(3)'
will then produce a different date - which might cause unexpected
results.
Examples:
'2016-10-31 - 1 month' => 2016-09-31 normalized to 2016-10-01.
'2016-02-29 + 1 year' => 2017-02-29 normalized to 2017-03-01.
Note that date normalization is not inherently wrong and not rejected,
as it has legitimate uses:
'2016-12-29 + 5 days' => 2016-12-34 noramlized to 2017-01-03.
If the user asked to adjust months but 'mday' changed,
or user asked to adjust years but 'month' changed - warn about it.
$ ./src/date --debug -d '2016-10-31 - 1 month'
...
date: warning: when adding relative months/years, \
it is recommended to specify the 15th of the month
...
date: warning: month/year adjustment resulted in shifted dates:
date: adjusted Y M D: 2016 09 31
date: normalized Y M D: 2010 10 01
...
* lib/parse-datetime.y (parse_datetime2): Detect such cases and print
a warning message. Improve recommendation of when to use 15 of the
month or noon for date arithmetic.
parse-datetime: fix debug message of relative part after timezone
Relative part (e.g '+8 days') after a timezone string was not
reported (was only reported after a timezone number). Due to the
parser's structure, timezone strings with numbers were handled
separately.
before:
# Timezone number + relative part: OK
$ ./src/date --debug +%F -d '2013-10-30 00:00:00 +00:00 -8 days'
...
date: parsed relative part: -8 day(s)
# Timezone string + relative part: missing
$ ./src/date --debug +%F -d '2013-10-30 00:00:00 UTC -8 days'
[ missing message ]
After: messages are printed in both cases.
* lib/parse-datetime.y ('zone' token): Call debug_print_relative_time.
parse-datetime: fix incorrect debug message on lone number
A lone number is an absolute value, not a relative time part.
before:
$ date --debug -d '20130101'
date: parsed number part: today/this/now
After:
$ ./src/date --debug -d '20130101'
date: parsed number part: (Y-M-D) 2013-01-01
* lib/parse-datetime.y ('item'/'number' tokens): Call
'debug_print_current_time' instead of 'debug_print_relative_time'.
2017-01-02 Paul Eggert <eggert@cs.ucla.edu>
doc: modernize for C11 etc.
* doc/gnulib-readme.texi (Portability guidelines): Modernize a bit
for C11, MinGW, etc. This responds to Paul Smith's question in:
http://lists.gnu.org/r/bug-gnulib/2017-01/msg00014.html
dfa: prefer functions to FETCH_WC macro
* lib/dfa.c (FETCH_WC): Remove, replacing with ...
(fetch_wc, bracket_fetch_wc): ... new functions. These store the
wint_t result into DFA->lex.wctok instead of to a separate arg.
All callers changed. Move more local decls closer to where
they're used.
dfa: narrow more local var scopes
* lib/dfa.c: Move more local decls to be more local.
dfa: remove duplicate assignment
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2017-01/msg00007.html
* lib/dfa.c (parse_bracket_exp): Simplify.
2017-01-01 Paul Eggert <eggert@cs.ucla.edu>
dfa: simplify constraint-dependency checking
* lib/dfa.c (prev_newline_constraint, prev_letter_constraint)
(prev_other_constraint): Remove.
(prev_newline_dependent, prev_letter_dependent):
Simplify, to avoid an unnecessary bitwise AND operation.
dfa: prefer functions and constants to macros
* lib/dfa.c: Prefer constants to macros where either will do.
(streq, isasciidigit, newline_constraint)
(letter_constraint, other_constraint, succeeds_in_context)
(prev_newline_constraint, prev_letter_constraint)
(prev_other_constraint, prev_newline_dependent)
(prev_letter_dependent, accepting, accepts_in_context):
Now static functions instead of function-like macros.
Use lower-case names accordingly. All uses changed.
dfa: narrow more local var scopes
* lib/dfa.c: Move some more local decls down to nearer where
they're needed.
2016-12-31 Jim Meyering <meyering@fb.com>
dfa: narrow the scope of many local variables
* lib/dfa.c: Now that we are no longer constrained to c89, move
declarations of many variables (often indices) "down" into the
scope(s) where used or to the point of definition. This is a
no-semantic-change diff.
2017-01-01 Paul Eggert <eggert@cs.ucla.edu>
version-etc: new year
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
2016-12-31 Eric Blake <eblake@redhat.com>
do-release-commit-and-tag: avoid shell syntax error
* build-aux/do-release-commit-and-tag (curr_br): $branch can
contain spaces when rebasing.
maint.mk: hoist gnulib_dir definition earlier
* top/maint.mk (gnulib_dir): Move near top of file.
2016-12-31 Jim Meyering <meyering@fb.com>
maint.mk: do not always evaluate intprops-related shell
* top/maint.mk (_intprops_names): Change := to just "=" to avoid
using gnulib_dir undefined (gnulib_dir is defined later in the
file, which will be fixed separately), and besides, there is no
need to incur the cost of this shell invocation for every single
use of this .mk file. Reported by Eric Blake in
https://lists.gnu.org/r/bug-gnulib/2016-12/msg00137.html
2016-12-30 Jim Meyering <meyering@fb.com>
maint.mk: improve sc_prohibit_intprops_without_use
* top/maint.mk (_intprops_names): Don't hard-code the list of
symbol names. Instead, derive it on the fly.
2016-12-30 Paul Eggert <eggert@cs.ucla.edu>
dfa: shorten sbit, success
* lib/dfa.c (struct regex_syntax.sbit):
(struct dfa.success): Use char, not int, for array elements, since
they are all in the range 0..7.
dfa: simplify multibyte_prop etc.
This follows up on a change made when dfa.c was in grep, namely grep
commit c797046c7c13c2647182b919a79a4c5b4ecf82b1
dated 2015-08-12 07:35:03 -0700, which removed unused multibyte support.
That earlier simplification allows for some more simplification
and trimming down here.
* lib/dfa.c (struct mb_char_classes): New member nchars_alloc.
(struct lexer_state): New mamber brack.
(struct dfa, addtok_mb): multibyte_prop elements are now char, not int,
since they must be in the range 0..3 now.
Remove members mbcsets, nmbcsets, mbcsets_alloc, since
the brack member now supersedes them.
(parse_bracket_exp): Update dfa->lex.brack instead of dfa->mbcsets.
(addtok): Use dfa->lex.brack instead of dfa->mbcsets.
(dfaparse): Remove unnecessary initializations of already-0 storage.
(free_mbdata): Free d->lex.brack.chars instead of d->mbcsets.
(dfassbuild): No need to clear sup->mbcsets.
dfa: minor performance tweak
* lib/dfa.c (setbit_wc): Test < 0, not == EOF.
dfa: wrap charclass inside a struct
On my platform (gcc Ubuntu 5.4.0-6ubuntu1~16.04.4 x86-64,
en_US.utf8 locale) this makes 'grep -Fi -f list.txt list.txt >out'
about 5% faster, where list.txt is generated by 'aspell dump
master | head -n 100000 >list.txt'. See Bug#22239.
* lib/dfa.c (charclass): Wrap inside a struct. All uses changed.
(CHARCLASS_INIT, tstbit, setbit, clrbit, zeroset, fillset, notset)
(equal, emptyset, charclass_index, setbit_wc, setbit_case_fold_c):
Adjust to this, e.g., by using charclass * rather than charclass.
All callers changed as needed.
(copyset): Remove. All uses changed to simple assignment.
(parse_bracket_exp): Use zeroset instead of memset.
2016-12-30 Jim Meyering <meyering@fb.com>
maint.mk: update list of intprops.h symbol names
* top/maint.mk (_intprops_names): Regenerate the list of symbol names.
This avoids a false failure of the sc_prohibit_intprops_without_use
rule in grep.
2016-12-29 Eric Blake <eblake@redhat.com>
getopt: fix parallel test failure
* tests/test-getopt-posix.c (TEST_GETOPT_TMP_NAME): Set name.
* tests/test-getopt-gnu.c (TEST_GETOPT_TMP_NAME): Likewise.
* tests/test-getopt-main.h (main): Use different file names
in case test-getopt-gnu and test-getopt-posix run in parallel.
2016-12-29 Paul Eggert <eggert@cs.ucla.edu>
xalloc: x2nrealloc check for ptrdiff_t overflow
* lib/xalloc.h (x2nrealloc): Check for ptrdiff_t overflow, too.
* modules/xalloc, modules/xvasprintf (Depends-on): Add stdint.
2016-12-24 Bruno Haible <bruno@clisp.org>
lock test: Fix performance problem on multi-core machines.
* tests/test-lock.c (USE_VOLATILE): New macro.
(struct atomic_int): New type.
(init_atomic_int, get_atomic_int_value, set_atomic_int_value): New
functions.
(lock_checker_done, rwlock_checker_done, reclock_checker_done): Define
as 'struct atomic_int'.
(lock_checker_thread, test_lock, rwlock_checker_thread, test_rwlock,
reclock_checker_thread, test_recursive_lock): Use the new functions.
Reported by Eric Blake in
https://www.redhat.com/archives/libvir-list/2012-March/msg00854.html
and by Pádraig Brady in
http://lists.gnu.org/r/bug-gnulib/2016-12/msg00117.html.
2016-12-19 Bruno Haible <bruno@clisp.org>
vma-iter: Fix endless loop on 64-bit Windows.
* lib/vma-iter.c (vma_iterate): On Windows, use 'uintptr_t' instead of
'unsigned long'.
2016-12-19 Bruno Haible <bruno@clisp.org>
stdint: Fix WINT_MAX to match the gnulib provided wint_t on minw.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Define GNULIB_OVERRIDES_WINT_T here.
* m4/stdint.m4 (gl_STDINT_H): Don't define GNULIB_OVERRIDES_WINT_T.
Invoke gt_TYPE_WINT_T instead.
(gl_STDINT_TYPE_PROPERTIES): Test GNULIB_OVERRIDES_WINT_T.
* modules/stdint (Files): Add m4/wint_t.m4.
* modules/wchar (Makefile.am): Substitute GNULIB_OVERRIDES_WINT_T.
* modules/wctype-h (Makefile.am): Likewise.
* lib/wchar.in.h (wint_t): Override if GNULIB_OVERRIDES_WINT_T is set,
not only on MSVC.
* lib/wctype.in.h (wint_t): Likewise.
2016-12-19 Paul Eggert <eggert@cs.ucla.edu>
getopt-posix-tests: fix Makefile typo
* modules/getopt-posix-tests (test_getopt_posix_LDADD):
Fix typo: the last ‘_’ was missing in the name.
I suspect that the typo explains this build failure:
https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/39
although I can’t reproduce the problem on Solaris 10 sparc.
2016-12-18 Paul Eggert <eggert@cs.ucla.edu>
dfa: improve worst-case 'replace' performance
See my note in Bug#22357#71.
* lib/dfa.c (insert, delete): Rework to avoid duplicate test.
(merge_constrained): New function, which is like
the old 'merge' function, except with a new argument C2.
Simplify the body by avoiding the need for different sections
of code depending on whether one input is exhausted.
(merge): Use the new function.
(delete): Return the constraint of the deleted position,
not the entire position. Caller changed.
(replace): Change from O(N*(N + log N)) to O(N log N) algorithm.
2016-12-18 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: performance improvement for removal of epsilon closure
See Bug#22357#32.
* lib/dfa.c (delete): Use binary search to find deleted index.
(replace): New function. It replaces a position with the followed set.
(epsclosure): Replace it with a new algorithm. Update caller.
2016-12-18 Bruno Haible <bruno@clisp.org>
Split tests for getopt-posix and getopt-gnu.
* tests/test-getopt-posix.c: New file.
* tests/test-getopt-gnu.c: New file, with code from test-getopt.c.
* tests/test-getopt-main.h: Renamed from tests/test-getopt.c. Remove
stuff moved to test-getopt-gnu.c. Test TEST_GETOPT_GNU instead of
GNULIB_TEST_GETOPT_GNU.
* modules/getopt-posix-tests (Files): Add test-getopt-posix.c,
test-getopt-main.h. Remove test-getopt.c, test-getopt_long.h.
(Makefile.am): Test test-getopt-posix instead of test-getopt.
* modules/getopt-gnu-tests: New file.
* modules/getopt-gnu (configure.ac): Don't define GNULIB_TEST_GETOPT_GNU.
2016-12-18 Bruno Haible <bruno@clisp.org>
posix-modules: Add options for specific platforms.
* posix-modules (func_usage): Document options --for-mingw, --for-msvc.
(exclude_for_mingw, exclude_for_msvc, exclude): New variables.
Invoke func_tmpdir. Filter out the excludes.
2016-12-18 Bruno Haible <bruno@clisp.org>
getopt: Fix link error for users of getopt() in <unistd.h>.
* lib/getopt.in.h (getopt etc.): Do the macro definitions also when
__need_getopt is defined. Undefine all macros before defining them.
* modules/getopt (Include): Clarify that including <unistd.h> is also
OK.
* tests/test-getopt.c: Add comment.
2016-12-17 Bruno Haible <bruno@clisp.org>
getaddrinfo tests: Avoid compilation error on MSVC.
* tests/test-getaddrinfo.c: Don't check the prototypes of freeaddrinfo,
getaddrinfo on native Windows.
2016-12-17 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Fix link errors on MSVC.
* m4/getlogin.m4 (gl_LIB_GETLOGIN): New macro.
* modules/getlogin (configure.ac): Require gl_LIB_GETLOGIN.
(Link): New section.
* modules/getlogin_r (Files): Add m4/getlogin.m4.
(configure.ac): Require gl_LIB_GETLOGIN.
(Link): New section.
* NEWS: Mention the new link requirements.
* modules/getlogin-tests (test_getlogin_LDADD): New variable.
* modules/getlogin_r-tests (test_getlogin_r_LDADD): New variable.
2016-12-17 Bruno Haible <bruno@clisp.org>
Un-deprecate the 'progname' module.
* NEWS: Describe the appropriate use-cases of 'progname' versus
'getprogname'. Based on discussion summary at
http://lists.gnu.org/r/bug-gnulib/2016-10/msg00105.html
2016-12-17 Bruno Haible <bruno@clisp.org>
Reorganize NEWS a bit.
* NEWS: Move some not so important changes away from section
"Important Notes".
2016-12-17 Bruno Haible <bruno@clisp.org>
tanhf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_TANHF.
* m4/tanhf.m4 (gl_FUNC_TANHF): Set REPLACE_TANHF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_TANHF.
* lib/math.in.h (tanhf): Override if REPLACE_TANHF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
tanf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_TANF.
* m4/tanf.m4 (gl_FUNC_TANF): Set REPLACE_TANF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_TANF.
* lib/math.in.h (tanf): Override if REPLACE_TANF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
sqrtf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SQRTF.
* m4/sqrtf.m4 (gl_FUNC_SQRTF): Set REPLACE_SQRTF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_SQRTF.
* lib/math.in.h (sqrtf): Override if REPLACE_SQRTF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
sinhf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SINHF.
* m4/sinhf.m4 (gl_FUNC_SINHF): Set REPLACE_SINHF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_SINHF.
* lib/math.in.h (sinhf): Override if REPLACE_SINHF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
sinf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SINF.
* m4/sinf.m4 (gl_FUNC_SINF): Set REPLACE_SINF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_SINF.
* lib/math.in.h (sinf): Override if REPLACE_SINF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
logf: Avoid redefinition error on MSVC.
* m4/logf.m4 (gl_FUNC_LOGF): Set REPLACE_LOGF to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
log10l: Avoid redefinition error on MSVC.
* m4/log10l.m4 (gl_FUNC_LOG10L): Set REPLACE_LOG10L to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
log10f: Avoid redefinition error on MSVC.
* m4/log10f.m4 (gl_FUNC_LOG10F): Set REPLACE_LOG10F to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
hypotl: Avoid redefinition error on MSVC.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Set REPLACE_HYPOTL to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
hypotf: Avoid redefinition error on MSVC.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Set REPLACE_HYPOTF to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
fmodl: Avoid redefinition error on MSVC.
* m4/fmodl.m4 (gl_FUNC_FMODL): Set REPLACE_FMODL to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
fmodf: Avoid redefinition error on MSVC.
* m4/fmodf.m4 (gl_FUNC_FMODF): Set REPLACE_FMODF to 1 if the function
may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
expf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_EXPF.
* m4/expf.m4 (gl_FUNC_EXPF): Set REPLACE_EXPF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_EXPF.
* lib/math.in.h (expf): Override if REPLACE_EXPF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
coshf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSHF.
* m4/coshf.m4 (gl_FUNC_COSHF): Set REPLACE_COSHF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_COSHF.
* lib/math.in.h (coshf): Override if REPLACE_COSHF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
cosf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSF.
* m4/cosf.m4 (gl_FUNC_COSF): Set REPLACE_COSF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_COSF.
* lib/math.in.h (cosf): Override if REPLACE_COSF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
atan2f: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ATAN2F.
* m4/atan2f.m4 (gl_FUNC_ATAN2F): Set REPLACE_ATAN2F to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_ATAN2F.
* lib/math.in.h (atan2f): Override if REPLACE_ATAN2F is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
atanf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ATANF.
* m4/atanf.m4 (gl_FUNC_ATANF): Set REPLACE_ATANF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_ATANF.
* lib/math.in.h (atanf): Override if REPLACE_ATANF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
asinf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ASINF.
* m4/asinf.m4 (gl_FUNC_ASINF): Set REPLACE_ASINF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_ASINF.
* lib/math.in.h (asinf): Override if REPLACE_ASINF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
acosf: Avoid redefinition error on MSVC.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ACOSF.
* m4/acosf.m4 (gl_FUNC_ACOSF): Set REPLACE_ACOSF to 1 if the function
may be defined as an inline function.
* modules/math (Makefile.am): Substitute REPLACE_ACOSF.
* lib/math.in.h (acosf): Override if REPLACE_ACOSF is 1.
2016-12-17 Bruno Haible <bruno@clisp.org>
Avoid redefinition errors on MSVC.
* m4/snprintf.m4 (gl_REPLACE_SNPRINTF): Set REPLACE_SNPRINTF to 1 if
the function may be defined as an inline function.
* m4/vsnprintf.m4 (gl_REPLACE_VSNPRINTF): Set REPLACE_VSNPRINTF to 1 if
the function may be defined as an inline function.
2016-12-17 Bruno Haible <bruno@clisp.org>
Avoid redefinition errors on MSVC.
* lib/stdio.in.h: Include <stdlib.h> and <io.h> when necessary.
* lib/unistd.in.h: Include <stdio.h> when necessary.
2016-12-17 Bruno Haible <bruno@clisp.org>
stdint: Fix WINT_MAX to match the gnulib provided wint_t on MSVC.
* m4/stdint.m4 (gl_STDINT_H): Define GNULIB_OVERRIDES_WINT_T.
* modules/stdint (Makefile.am): Substitute GNULIB_OVERRIDES_WINT_T.
* lib/stdint.in.h [GNULIB_OVERRIDES_WINT_T]: Redefine WINT_MIN and
WINT_MAX.
2016-12-17 Bruno Haible <bruno@clisp.org>
Avoid autoconf warning.
* modules/frexpl (configure.ac): Require, not invoke, gl_FUNC_FREXPL.
* modules/frexp (configure.ac): Require, not invoke, gl_FUNC_FREXP.
2016-12-17 Bruno Haible <bruno@clisp.org>
fpending: Revert workaround against Emacs bug.
* lib/stdio-impl.h [__MINGW32__]: Revert conditional.
The Emacs bug is fixed by Eli Zaretskii in
http://lists.gnu.org/r/emacs-devel/2016-12/msg00715.html
2016-12-17 Bruno Haible <bruno@clisp.org>
getlogin_r tests: Port to mingw.
* tests/test-getlogin_r.c: Don't include <pwd.h> on native Windows. Fixes
regression introduced on 2014-05-19.
2016-12-17 Bruno Haible <bruno@clisp.org>
getlogin: Port to newer mingw.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_GETLOGIN.
* m4/getlogin.m4 (gl_FUNC_GETLOGIN): Set HAVE_DECL_GETLOGIN.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETLOGIN, not
HAVE_GETLOGIN.
* lib/unistd.in.h (getlogin): Test HAVE_DECL_GETLOGIN, not
HAVE_GETLOGIN.
* doc/posix-functions/getlogin.texi: Mention the issue.
* tests/test-getlogin.c: Don't include <pwd.h> on native Windows. Fixes
regression introduced on 2014-05-14.
2016-12-16 Paul Eggert <eggert@cs.ucla.edu>
builtin-expect: improve port to IBM XL C
Problem reported for z/OS by Daniel Richard G. in:
http://lists.gnu.org/r/bug-gnulib/2016-12/msg00079.html
* m4/builtin-expect.m4 (gl___BUILTIN_EXPECT):
Test for <builtins.h> directly.
builtin-expect: port to IBM XL C
Problem reported for z/OS by Daniel Richard G. in:
http://lists.gnu.org/r/bug-gnulib/2016-12/msg00074.html
* m4/builtin-expect.m4 (gl___BUILTIN_EXPECT):
Also allow __builtin_expect defined via a standard include file.
regex: fix dependency
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2016-12/msg00073.html
* modules/regex: Depend on builtin-expect.
builtin-expect: new module
Fix fnmatch to use it.
Problem reported for z/OS by Daniel Richard G.
* lib/fnmatch.c (__builtin_expect):
* lib/glob.c (__builtin_expect):
* lib/grantpt.c (__builtin_expect) [!_LIBC]:
* lib/memmem.c (__builtin_expect) [!_LIBC]:
* lib/scandir.c (__builtin_expect):
* lib/strstr.c (__builtin_expect) [!_LIBC]:
Remove macro; config.h now does this.
* lib/gl_anytreehash_list1.h (add_to_bucket):
* lib/regex_internal.h (BE):
Assume __builtin_expect.
* m4/builtin-expect.m4, modules/builtin-expect: New files.
* modules/avltreehash-list, modules/fnmatch, modules/glob:
* modules/grantpt, modules/memmem-simple, modules/rbtreehash-list:
* modules/scandir, modules/strstr-simple:
Depend on builtin-expect.
2016-12-15 Bruno Haible <bruno@clisp.org>
init.sh: Add possibility to not delete temporary files.
* tests/init.sh (remove_tmp_): If the environment variable KEEP is set
to yes, don't erase the temporary directory.
2016-12-16 Paul Eggert <eggert@cs.ucla.edu>
regex: fix integer-overflow bug in never-used code
Problem reported by Clément Pit–Claudel in:
http://lists.gnu.org/r/emacs-devel/2016-12/msg00654.html
* lib/regex_internal.h: Include intprops.h.
* lib/regexec.c (re_search_2_stub): Use it to avoid undefined
behavior on integer overflow.
* modules/regex (Depends-on): Add intprops.
fpending: fix port to MinGW on Emacs
* lib/stdio-impl.h [__MINGW32__]: Do not include errno.h.
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/r/emacs-devel/2016-12/msg00642.html
Is Plan 9 still a valid porting target, anyway?
2016-12-15 Paul Eggert <eggert@cs.ucla.edu>
safe-alloc: use xalloc-oversized
* lib/safe-alloc.c: Include xalloc-oversized.h.
(safe_alloc_oversized): Remove. All uses changed to xalloc_oversized.
* modules/safe-alloc (Depends-on): Add xalloc-oversized.
xalloc: do not exceed PTRDIFF_MAX
* lib/xmalloc.c (xcalloc) [HAVE_GNU_CALLOC]: Do not omit
xalloc_oversized check, since objects larger than PTRDIFF_MAX
bytes have pointer-subtraction problems.
malloca: do not exceed PTRDIFF_MAX
* lib/malloca.h: Include xalloc-oversized.
(nmalloca): Use xalloc_oversized instead of rolling our own.
* modules/malloca (Depends-on):
* modules/relocatable-prog-wrapper (Depends-on):
Add xalloc-oversized.
quotearg: pacify GCC better
* modules/quotearg (Depends-on): Add minmax, stdint.
* lib/quotearg.c: Include minmax.h, stdint.h.
(nslots): Now int, as there seems little point to going to extra
work merely to support the INT_MAX slot, which nobody ever uses.
(quotearg_n_options): Redo size-overflow checks to pacify GCC
and to catch (mostly-theoretical) ptrdiff_t problems too.
This can be done via one comparison.
2016-12-14 Paul Eggert <eggert@cs.ucla.edu>
xalloc-oversized: check for PTRDIFF_MAX too
This avoids undefined behavior when subtracting pointers to
objects containing more than PTRDIFF_MAX bytes.
* lib/xalloc-oversized.h (__xalloc_oversized, xalloc_oversized):
Also return 1 if the result would exceed PTRDIFF_MAX>
* modules/xalloc-oversized (Depends-on):
Add stdint.
dfa: fix glitches in previous commit
Sorry, I don't know how I managed to commit the wrong version.
* lib/dfa.c (MIN): Move up.
(xpalloc): Now static.
dfa: fix some unlikely integer overflows
I found these while reviewing the recent Coverity-related fix.
This patch changes part of dfa.c to prefer ptrdiff_t instead of
size_t for object counts. Using ptrdiff_t is the style typically
used in Emacs; although it wastes a sign bit as sizes can never be
negative, it makes -fsanitize=undefined more likely to catch
integer overflows in index calculation, and nowadays the upside is
typically more important than the downside. Although perhaps the
rest of dfa.c should be changed to prefer ptrdiff_t as well (much
of dfa.c already does, since it uses state_num which is signed),
that is a bigger change and is not needed to fix the bugs I found.
* lib/dfa.c: Include stdint.h and intprops.h.
(TOKEN_MAX): New macro.
(position_set, struct mb_char_classes, struct dfa, maybe_realloc)
(charclass_index, parse_bracket_exp, addtok, insert, merge)
(realloc_trans_if_necessary, free_mbdata):
Use ptrdiff_t instead of size_t for object counts related to xpalloc.
This is safe because xpalloc checks that the sizes do not exceed
either SIZE_MAX or PTRDIFF_MAX.
(xpalloc): New function, mostly taken from Emacs.
(maybe_realloc, copy, realloc_trans_if_necessary): Use it.
(maybe_realloc): Add NITEMS_MAX to signature. All callers changed.
(charclass_index): Check for integer overflow in computing
charclass index; it must not exceed TOKEN_MAX - CSET, as CSET is
added to it later.
(alloc_position_set): Check for integer overflow. On typical
platforms this check has zero overhead, since the constant
expression is false.
(realloc_trans_if_necessary):
Remove assertion, which I hope Coverity no longer needs.
* modules/dfa (Depends-on): Add intprops, stdint.
2016-12-12 Jim Meyering <meyering@fb.com>
dfa: add an assertion to avoid coverity false positive
* lib/dfa.c (realloc_trans_if_necessary): Otherwise, coverity
warned that "newalloc1 - 2" could overflow.
2016-12-13 Arnold D. Robbins <arnold@skeeve.com>
dfa: remove DFA_CASE_FOLD flag in favor of RE_ICASE
* dfa.h (DFA_CASE_FOLD): Remove.
* dfa.c (dfasyntax): Set dfa->syntax.case_fold based on RE_ICASE.
2016-12-13 John W. Eaton <gnu@jweaton.org>
link: fix test to declare use of rename()
* m4/link.m4 (gl_FUNC_LINK): Include <stdio.h> needed with
-Werror=implicit-function-declaration
2016-12-12 Bruno Haible <bruno@clisp.org>
fpending: Port to native Windows with MSVC.
* lib/fpending.c: Include stdio-impl.h.
(__fpending): Include all known implementations. Err out if it's not
ported.
* m4/fpending.m4 (gl_PREREQ_FPENDING): Remove macro.
* modules/fpending (Files): Add lib/stdio-impl.h.
(configure.ac): Don't invoke gl_PREREQ_FPENDING.
2016-12-12 Bruno Haible <bruno@clisp.org>
stdioext: Port to native Windows with MSVC.
* lib/stdio-impl.h (WINDOWS_OPAQUE_FILE): New macro.
(struct _gl_real_FILE): New type.
(fp_, _IOREAD, _IOWRT, _IORW, _IOEOF, _IOERR): New macros, for native
Windows.
* lib/fbufmode.c (fbufmode): Add code for native Windows.
* lib/fflush.c (clear_ungetc_buffer): Treat native Windows like the
other SystemV derived implementations.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
Reported by Gisle Vanem <gvanem@yahoo.no>.
2016-12-11 Jim Meyering <meyering@fb.com>
non-recursive-gnulib-prefix-hack.m4: remove leading "(" in case stmt
* m4/non-recursive-gnulib-prefix-hack.m4: That leading "(" happens
to work with most shells, but not with the one provided by many
Solaris 10 systems, so running configure with such a /bin/sh evokes
e.g., "./configure: syntax error at line 33602: `(' unexpected".
Reported by Assaf Gordon in
https://lists.gnu.org/r/sed-devel/2016-12/msg00002.html
2016-12-10 Bruno Haible <bruno@clisp.org>
threadlib: Optimize out runtime test on Solaris >= 10.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Don't set
PTHREAD_IN_USE_DETECTION_HARD if configuring on Solaris 10 or newer.
Reported by Peter Felecan at <https://savannah.gnu.org/bugs/?32087>.
2016-12-10 Bruno Haible <bruno@clisp.org>
stdint: Update doc about Solaris 9.
* doc/posix-headers/stdint.texi: Add info about Solaris 9.
2016-12-09 Bruno Haible <bruno@clisp.org>
c-ctype tests: Fix link error on Solaris 9.
* modules/c-ctype-tests (Depends-on): Add 'isblank'.
Reported at <https://savannah.gnu.org/bugs/?46827>.
2016-12-09 Paul Eggert <eggert@cs.ucla.edu>
dfa: fix performance bug that recomputes trans
* lib/dfa.c (build_state): Fix performance bug introduced in Nov
25 on-demand changes. The bug caused build_state to reset all
d->trans elements to -2 even when d->trans was already non-null.
Use C99 style decls after statements in this function.
same-inode: port to MinGW
Here st_ino is always 0, so change the definition of SAME_INODE so
that 1 means the two files are the same, 0 with st_ino != 0 means
they differ, and 0 with st_ino == 0 means we don’t know. Problem
reported by Bruno Haible (Bug#25146).
* doc/posix-headers/sys_stat.texi (sys/stat.h): Update.
* lib/same-inode.h (SAME_INODE): Return 0 on MinGW.
2016-12-04 Bruno Haible <bruno@clisp.org>
javacomp-script: Support Java 7 and 8.
* m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 1.7, 1.8 and
target-version 1.7, 1.8.
2016-12-02 Daiki Ueno <ueno@gnu.org>
* gnulib-tool (func_import): Relax the regex used for "LGPLv3+ or
GPLv2" rewriting.
2016-12-02 Nikos Mavrogiannopoulos <nmav@gnutls.org>
* gnulib-tool (func_import): Adhere to the license guideline when
rewriting the license text to "LGPLv3+ or GPLv2":
https://www.gnu.org/prep/maintain/maintain.html#Licensing-of-GNU-Packages
2016-12-02 Bruno Haible <bruno@clisp.org>
localcharset: Avoid theoretical buffer overrun.
* lib/localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use the
return value from setlocale if it would lead to a buffer overrun.
2016-12-01 Bruno Haible <bruno@clisp.org>
Relicense some modules under LGPLv2+.
Kevin Cernekee's approval is in
http://lists.gnu.org/r/bug-gnulib/2016-11/msg00090.html.
* modules/fseterr (License): Change to LGPLv2+.
* modules/mbchar (License): Likewise.
* modules/mbiter (License): Likewise.
* modules/mbsnlen (License): Likewise.
* modules/wcwidth (License): Likewise.
2016-12-01 KO Myung-Hun <komh78@gmail.com>
scandir: Fix _D_ALLOC_NAMLEN() on OS/2 kLIBC
* lib/scandir.c (_D_ALLOC_NAMLEN): Consider the fields after d_name on
OS/2 kLIBC.
2016-12-01 KO Myung-Hun <komh78@gmail.com>
alphasort, scandir: Port to OS/2 kLIBC
* lib/alphasort.c (alphasort): Implement according to OS/2 kLIBC
declaration.
* lib/scandir.c (scandir): Add declaration for OS/2 kLIBC.
2016-12-01 KO Myung-Hun <komh78@gmail.com>
relocatable: Fix that /@unixroot prefix is not working on OS/2 kLIBC
* lib/relocatable.c (relocate): Do not touch pathname if it is started
with '/@unixroot'.
2016-12-01 KO Myung-Hun <komh78@gmail.com>
sys_socket: typedef sa_family_t correctly on OS/2 kLIBC
* lib/sys_socket.in.h (sa_family_t): Typedef to unsigned char on
OS/2 kLIBC unless TCPV40HDRS is defined.
2016-11-29 Jim Meyering <meyering@fb.com>
dfa: avoid new infinite loop
This would infloop: echo cx | LC_ALL=C grep -E 'c\b[x ]'
* lib/dfa.c (dfastate): When constructing a new state table, we could
initially declare that we had found a match, and later find that
constraints eliminate that possibility, yet continue to use the
now stale "matched" indicator. That would lead to an infinite loop.
The solution is to update "matched" when necessary.
Introduced by commit v0.1-983-g403adf1.
2016-11-27 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: avoid match middle in multibyte character
* lib/dfa.c (transit_state): If fails in matching single byte characters
on a state including period expression in non-UTF8 multibyte locales,
skip trailing bytes.
(dfa_supported): Revert previous change.
2016-11-27 Jim Meyering <meyering@fb.com>
dfa: avoid false match in non-UTF8 multibyte locales
* lib/dfa.c (dfa_supported): Treat any non-UTF8 multibyte locale
as "not supported" so that callers will resort to using regex-based
matcher. This will surely hurt performance, but correctness trumps
performance here, and the affected locales are less and less relevant,
these days. See grep's bug report https://bugs.gnu.org/24975.
2016-11-27 Mike Frysinger <vapier@gentoo.org>
ptsname_r: leverage AC_HEADER_MAJOR to provide major()
* lib/ptsname_r.c: Include the appropriate headers.
[__sun]: Delete sys/sysmacros.h include.
[_AIX || __osf__]: Likewise.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Depend on AC_HEADER_MAJOR.
2016-11-27 Pádraig Brady <P@draigBrady.com>
md4,md5,sha*: allow _STRING_INLINE_unaligned enable unaligned operation
* lib/md4.c (md4_process_bytes): The existing define is made internal
in recent versions of glibc, so also use this new public define.
* lib/md5.c (md5_process_bytes): Likewise.
* lib/sha1.c (sha1_process_bytes): Likewise.
* lib/sha256.c (sha256_process_bytes): Likewise.
* lib/sha512.c (sha512_process_bytes): Likewise.
2016-11-27 Pádraig Brady <P@draigBrady.com>
maint: use a more standard return from mbrtowc test
* m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Don't return 1
from the test program as this often indicates an
unhandled case in the test program.
(gl_MBRTOWC_INCOMPLETE_STATE): Likewise.
(gl_MBRTOWC_SANITYCHECK): Likewise.
(gl_MBRTOWC_NULL_ARG2): Likewise.
(gl_MBRTOWC_NUL_RETVAL): Likewise.
2016-11-26 Paul Eggert <eggert@cs.ucla.edu>
freopen: work around glibc bug with closed fd
Work around glibc bug#15589, where freopen mishandles the case
where stdin etc. are already closed.
* doc/posix-functions/freopen.texi (freopen): Document the bug.
* lib/freopen.c (_GL_ALREADY_INCLUDING_STDIO_H): Define this
instead of __need_FILE, as the latter does not work with glibc.
Include <fcntl.h>, for open flags.
(rpl_freopen): Work around glibc bug.
* m4/freopen.m4 (gl_FUNC_FREOPEN): Check for bug.
* modules/freopen (Depends-on): Add fcntl-h.
* tests/test-freopen.c (main): Test for bug.
2016-11-25 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: fix typo introduced on 2016-08-17
This fixes the port to non-GCC compilers that lack __builtin_expect.
* lib/fnmatch.c (__builtin_expect): Change A&&B to !A||B.
dfa: simplify with new function fillset
* lib/dfa.c (fillset): New function.
Use it for clarity when applicable.
dfa: fix glitches with on-demand states
Also, adjust commentary to better match new code.
Some of these glitches predate the recent change.
* lib/dfa.c (dfaanalyze): Clear trcount here, so that it counts
only non-initial states.
(dfastate): Rename locals to better match new roles.
Move them into nested scopes if this is easy.
Omit unnecessary calls to zeroset.
Simplify test for whether to throw in the positions of state 0.
Omit C99-ism (decl after statement) since Gawk still wants C89.
(build_state): Omit unnecessary test and assignment.
Fix some confusion that counted transition tables inaccurately
and could cause a memory leak.
(dfaexec_main): Redo to make it clearer to the compiler that
-1 and -2 are the only negative state numbers here.
2016-11-25 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: addition of new state on demand
* src/dfa.c (dfastate): Add argument UC, the current input character.
Fill only a group including the character in transition table.
(realloc_trans_if_necessary): Add the dummy state which means that a
transition table is assigned but the next state is not assigned.
(build_state): Return the next state. All callers updated.
(transit_state_singlebyte): If we get the dummy state,
fill the transition table.
(dfaexec_main): Handle the dummy state.
(free_mbdata, dfafree): Consider the dummy state.
2016-11-24 Daiki Ueno <ueno@gnu.org>
srclist: sync with released gettext
* config/srclist.txt: Set "release" option to the files under
$GETTEXT.
2016-11-24 Daiki Ueno <ueno@gnu.org>
srclist: add "release" option
* config/srclist.txt: Change the format so that the first column
of each line points to the top-level directory of the source
archive.
* config/srclist-update: Accept "release" option that checks files
from the most recently tagged revision in the source archive.
2016-11-21 Bruno Haible <bruno@clisp.org>
snippet/c++defs: Simplify _GL_CXXALIAS_* macros.
* build-aux/snippet/c++defs.h [__cplusplus && GNULIB_NAMESPACE]
(_GL_CXXALIAS_RPL_1, _GL_CXXALIAS_RPL_CAST_1,
_GL_CXXALIAS_SYS, _GL_CXXALIAS_SYS_CAST, _GL_CXXALIAS_SYS_CAST2):
Inline and remove member function 'rpl ()' of the wrapper struct.
2016-11-20 Paul Eggert <eggert@cs.ucla.edu>
dfa: fix logic typo
Problem reported by Stephane Chazelas (Bug#24973).
* lib/dfa.c (using_simple_locale): Fix typo that caused some
non-simple locales like fr_FR to be treated as simple.
2016-11-20 Jim Meyering <meyering@fb.com>
fix test driver leaks: exclude, malloc, realloc
* tests/test-exclude.c (main): Fix trivial leak.
* tests/test-malloc-gnu.c (main): Likewise.
* tests/test-realloc-gnu.c (main): Likewise.
With these changes, grep's tests are now leak free.
I.e., running them with ASAN elicits no failure:
make CFLAGS='-O0 -ggdb3' AM_CFLAGS=-fsanitize=address \
AM_LDFLAGS='-fsanitize=address -static-libasan' check
2016-11-11 Bruno Haible <bruno@clisp.org>
libunistring: Relicense under dual "LGPLv3+ or GPLv2" license.
* modules/libunistring: (License): Change from LGPL to
"LGPLv3+ or GPLv2".
* modules/libunistring-optional: Likewise.
* modules/unicase/*: Likewise.
* modules/uniconv/*: Likewise.
* modules/unictype/*: Likewise.
* modules/unigbrk/*: Likewise.
* modules/unilbrk/*: Likewise.
* modules/uniname/*: Likewise.
* modules/uninorm/*: Likewise.
* modules/unistdio/*: Likewise.
* modules/unistr/*: Likewise.
* modules/uniwbrk/*: Likewise.
* modules/uniwidth/*: Likewise.
2016-11-12 Bruno Haible <bruno@clisp.org>
Relicense some modules under LGPLv2+.
Paul Eggert's approval is in
http://lists.gnu.org/r/bug-gnulib/2016-11/msg00037.html.
Eric Blake's approval is in
http://lists.gnu.org/r/bug-gnulib/2016-11/msg00042.html.
Ludovic Courtès's approval is in
http://lists.gnu.org/r/bug-gnulib/2016-11/msg00038.html.
* modules/isnand-nolibm (License): Change to LGPLv2+.
* modules/isnanf-nolibm (License): Likewise.
* modules/isnanl-nolibm (License): Likewise.
2016-11-19 Bruno Haible <bruno@clisp.org>
Relicense some modules under LGPLv2+.
lib/float+.h is already under LGPLv2+ since 2007-07-13, per
modules/vasnprintf.
Paolo Bonzini's approval for lib/frexp.c and lib/frexpl.c is in
http://lists.gnu.org/r/bug-gnulib/2016-11/msg00074.html.
All other significant changes to the files in lib/ of these modules
are from me.
* modules/memcmp2 (License): Change to LGPLv2+.
* modules/amemxfrm (License): Likewise.
* modules/fpieee (License): Likewise.
* modules/fpucw (License): Likewise.
* modules/frexp-nolibm (License): Likewise.
* modules/frexpl-nolibm (License): Likewise.
* modules/printf-frexp (License): Likewise.
* modules/printf-frexpl (License): Likewise.
* modules/printf-safe (License): Likewise.
* modules/signbit (License): Likewise.
2016-11-17 Bruno Haible <bruno@clisp.org>
Enable Unicode decoder safety unconditionally.
* lib/unistr.in.h (u32_mbtouc_unsafe): Assume CONFIG_UNICODE_SAFETY.
* lib/unistr/u8-mblen.c (u8_mblen): Likewise.
* lib/unistr/u8-mbtouc-unsafe.c (u8_mbtouc_unsafe): Likewise.
* lib/unistr/u8-mbtouc-unsafe-aux.c (u8_mbtouc_unsafe_aux): Likewise.
* lib/unistr/u8-prev.c (u8_prev): Likewise.
* lib/unistr/u8-strmblen.c (u8_strmblen): Likewise.
* lib/unistr/u8-strmbtouc.c (u8_strmbtouc): Likewise.
* lib/unistr/u16-mblen.c (u16_mblen): Likewise.
* lib/unistr/u16-mbtouc-unsafe.c (u16_mbtouc_unsafe): Likewise.
* lib/unistr/u16-mbtouc-unsafe-aux.c (u16_mbtouc_unsafe_aux): Likewise.
* lib/unistr/u16-prev.c (u16_prev): Likewise.
* lib/unistr/u16-strmblen.c (u16_strmblen): Likewise.
* lib/unistr/u16-strmbtouc.c (u16_strmbtouc): Likewise.
* lib/unistr/u32-mblen.c (u32_mblen): Likewise.
* lib/unistr/u32-mbtouc-unsafe.c (u32_mbtouc_unsafe): Likewise.
* lib/unistr/u32-prev.c (u32_prev): Likewise.
* lib/unistr/u32-next.c (u32_next): Likewise.
* lib/unistr/u32-strmblen.c (u32_strmblen): Likewise.
* lib/unistr/u32-strmbtouc.c (u32_strmbtouc): Likewise.
* lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise.
* lib/uniconv/u8-strconv-to-enc.c (u8_strconv_to_encoding): Likewise.
* tests/unistr/test-u16-prev.c (check_invalid): Enable the
CONFIG_UNICODE_SAFETY tests unconditionally.
* tests/unistr/test-u32-mblen.c (main): Likewise.
* tests/unistr/test-u32-mbtouc.h (test_function): Likewise.
* tests/unistr/test-u32-prev.c (check_invalid): Likewise.
* tests/unistr/test-u32-next.c (main): Likewise.
* tests/unistr/test-u32-strmblen.c (main): Likewise.
* tests/unistr/test-u32-strmbtouc.c (main): Likewise.
* tests/unistr/test-u32-mbtouc.c (FULL_SAFETY): Remove macro.
* lib/unistr/u8-check.c (u8_check): Remove old dead code.
* lib/unistr/u8-mbtouc.c (u8_mbtouc): Likewise.
* lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Likewise.
* lib/unistr/u8-mbtoucr.c (u8_mbtoucr): Likewise.
* lib/unistr/u8-uctomb.c (u8_uctomb): Likewise.
* lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise.
* lib/unistr/u16-check.c (u16_check): Update comment.
* NEWS: Mention the changes that callers should be aware of.
2016-11-19 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Fix breakage on Cygwin.
* modules/relocatable-prog-wrapper (Files): Add lib/stat.c, lib/lstat.c.
(Depends-on): Remove intprops.
* lib/relocwrapper.c: Update dependency tree.
(strerror): Undefine.
* build-aux/install-reloc (func_create_wrapper): Do not compile
strerror.c and strerror-override.c. Erase stat.o and lstat.o.
2016-11-19 Bruno Haible <bruno@clisp.org>
strerror: Make it compile in C++ mode.
* lib/strerror.c (strerror): Ignore the return value of memcpy().
2016-11-15 Pedro Alves <palves@redhat.com>
sys_time: add gnulib::timeval for C++
* lib/sys_time.in.h [__cplusplus && defined GNULIB_NAMESPACE]:
Define "timeval" in the GNULIB_NAMESPACE namespace, and #undef any
timeval macro.
2016-11-14 Pedro Alves <palves@redhat.com>
snippet/c++defs: fix real-floating arg functions in C++ mode
Also, define isfinite, isinf, isnan, signbit in the gnulib
namespace instead of in the global namespace.
* build-aux/snippet/c++defs.h (_GL_BEGIN_NAMESPACE)
(_GL_END_NAMESPACE): New.
* lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Use them.
(isfinite, isinf, isnan, signbit) [__cplusplus &&
GNULIB_NAMESPACE]: Define them in the GNULIB_NAMESPACE namespace
instead of in the global namespace.
* tests/test-math-c++.cc: Check that the isfinite, isinf, isnan,
signbit overloads exist in the GNULIB_NAMESPACE namespace, instead
of in the global namespace.
2016-11-13 Jim Meyering <meyering@fb.com>
strftime: don't use __THROW
Each use of __THROW would provoke this from gcc-7-to-be:
lib/strftime.c:371:1: warning: '__leaf__' attribute has no effect \
on unit local functions [-Wattributes]
static int iso_week_days (int, int) __THROW;
^~~~~~
* lib/strftime.c (__THROW): Don't define.
Remove each use of __THROW.
* lib/strftime.c (memcpy_lowcase, memcpy_uppcase): Remove __THROW.
(tm_diff, iso_week_days, __strftime_internal): Likewise.
2016-11-14 Paul Eggert <eggert@union>
obstack: port to gcc -fcheck-pointer-bounds
Problem found by 'make check' failure on bleeding-edge coreutils
on an MPX-enabled CPU (Intel Core i3-7100U) running GCC (Ubuntu
6.2.0-5ubuntu12), configured via "./configure
--enable-gcc-warnings CFLAGS='-mmpx -fcheck-pointer-bounds -g3
-O2' LDFLAGS='-static-libmpx -static-libmpxwrappers'".
* lib/obstack.h (__FLEXIBLE_ARRAY_MEMBER):
New macro, copied from fts_.h.
(struct _obstack_chunk.contents): Use it.
2016-11-14 Eric Blake <eblake@redhat.com>
strerror_r-posix: Another fix, for HAVE_DECL_STRERROR_R on mingw.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS):
Avoid _ONCE variants, which may supply a conflicting AC_DEFINE().
2016-11-14 Pádraig Brady <P@draigBrady.com>
strptime: fix compile error in recent change
* lib/strptime.c (__strptime_internal): Fix ported code.
2016-11-11 Bruno Haible <bruno@clisp.org>
gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license.
* gnulib-tool (--lgpl): Accept value 3orGPLv2.
(func_import): Extend determination of license_incompatibilities.
(func_create_testdir): Extend table of license compatibility. Handle
also the licenses GPLv3+, GPL, LGPLv3+.
2016-11-12 Paul Eggert <eggert@cs.ucla.edu>
strftime: tune %q
* lib/strftime.c (__strftime_internal): Assume tp->tm_mon is in range.
Merge strftime.c changes from glibc
This incorporates:
2007-10-16 [BZ #5184] Add tzset_called argument
2008-06-13 [BZ #6612] pass reference to tzset_called around
2009-10-30 Implement Burmese language locale for Myanmar
2010-01-09 Add support for XPG7 testing
2015-09-26 [BZ #18985] out of range data to strftime() causes a segfault
2015-10-20 Convert miscellaneous function definitions to prototype style
* lib/strftime.c: Copy glibc license, since gnulib-tool rewrites
it anyway and this lessens the difference between gnulib and glibc.
(USE_IN_EXTENDED_LOCALE_MODEL) [_LIBC]: Define.
(__THROW): Define if standard headers do not.
(LOCALE_PARAM): Rename from LOCALE_PARAM_PROTO. All uses changed.
(memcpy_locase, memcpy_uppcase, tm_diff, __strftime_internal):
Declare with __THROW.
(__strftime_internal): Rename from strftime_case_. Add arg for
whether tzset is called. All uses changed. Call tzset at most
once. Allow %OC, for Burmese.
(a_wkday, f_wkday, a_month, f_month) [_NL_CURRENT]:
Don't assume values are in range.
2016-11-12 Eric Blake <eblake@redhat.com>
strerror_r-posix: Fix override of AC_FUNC_STRERROR_R
* m4/strerror_r.m4 (AC_FUNC_STRERROR_R): New override.
(gl_FUNC_STRERROR_R): Don't reuse AC_DEFINE() with a potentially
different value.
2006-11-12 Pedro Alves <palves@redhat.com>
Fix gnulib C++ namespace support and std::frexp
* lib/math.in.h (frexp): Use _GL_CXXALIASWARN1 instead of
_GL_CXXALIASWARN.
2006-11-12 Pedro Alves <palves@redhat.com>
GNULIB_NAMESPACE::func need not pull in rpl_func
* build-aux/snippet/c++defs.h [__cplusplus && GNULIB_NAMESPACE]
(_GL_CXXALIAS_RPL_1, _GL_CXXALIAS_RPL_CAST_1, _GL_CXXALIAS_SYS)
(_GL_CXXALIAS_SYS_CAST, _GL_CXXALIAS_SYS_CAST2): Define a wrapper
struct instead of a function pointer.
2016-11-09 Frediano Ziglio <fziglio@redhat.com>
manywarnings: fix -Wno-missing-field-initializers detection
* m4/manywarnings.m4: Fix -Wno-missing-field-initializers detection
to be independent of -Wunused-variable. I.E. ensure the latter
warning doesn't occur so that detection of the former is accurate.
2016-11-05 Pádraig Brady <pbrady@fb.com>
strftime,strptime: support %q to represent the quarter
* lib/strftime.c (strftime_case_): Add %q case.
* lib/strptime.c (__strptime_internal): Likewise.
* tests/test-strftime.c (quarter_test): A new test case.
2016-11-03 Eric Blake <eblake@redhat.com>
bootstrap: Fix get_version() for AIX 5.3
* build-aux/bootstrap (get_version): Factor out sed script, since
indented comments choke AIX 5.3 sed.
Reported-by: Michael Felt <aixtools@gmail.com>
2016-11-03 Paul Eggert <eggert@cs.ucla.edu>
intprops: port to older XL C
Problem reported by Alexander Samoilov in:
http://lists.gnu.org/r/bug-gnulib/2016-10/msg00166.html
http://savannah.nongnu.org/bugs/?49448
* lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM__TYPEOF__]:
Define to 1 only for XL C 12.1 or later, since this bug
occurs in XL C for AIX 6.0 but not in 12.1.
2016-11-02 Pádraig Brady <P@draigBrady.com>
backupfile: initialize default suffix within the implementation
* lib/backupfile.c (find_backup_file_name): Initialize the
global variable here, to simplify usage, and to only call
getenv() when needed.
2016-11-01 Paul Eggert <eggert@cs.ucla.edu>
futimens: remove FIXME for old Linux kernels
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Belatedy do a "simplify
this in 2012" FIXME, like that for utimensat.
utimensat: remove FIXME for old Linux kernels
* lib/utimensat.c (rpl_utimensat): Update FIXME comment.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Belatedy do a "simplify
this in 2012" FIXME, by assuming the file system bug is absent
unless demonstrated to be present. We no longer need to worry
about Linux kernel 2.6.32 when building with newer kernels.
2016-10-16 Bruno Haible <bruno@clisp.org>
qsort_r: Fix macrology for platforms that lack the function.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check for qsort_r.
(gl_STDLIB_H_DEFAULTS): Initialize HAVE_QSORT_R.
* modules/stdlib (Makefile.am): Substitute HAVE_QSORT_R.
* lib/stdlib.in.h (qsort_r): Provide declaration if the function does
not exist.
* m4/qsort_r.m4 (gl_FUNC_QSORT_R): Use AC_CHECK_FUNCS to test whether
the function exists.
* modules/qsort_r: Add comments.
2016-10-26 Paul Eggert <eggert@cs.ucla.edu>
sys_types: fix Texinfo typos
* doc/glibc-functions/gnu_dev_major.texi:
* doc/glibc-functions/gnu_dev_makedev.texi:
* doc/glibc-functions/gnu_dev_minor.texi: Fix typos.
2016-10-26 John David Anglin <dave.anglin@bell.net>
getprogname: port to HP-UX
See Bug#24805.
* lib/getprogname.c (getprogname) [__hpux]: Port.
* tests/test-getprogname.c (STREQ) [__hpux]:
Special-case for HP-UX limitations on program name length.
2016-10-20 Bruno Haible <bruno@clisp.org>
Update doc about target platforms.
* doc/gnulib-intro.texi (Target Platforms): Update list.
2016-10-15 Bruno Haible <bruno@clisp.org>
opendir, readdir, closedir: Relicense under LGPLv2+.
* modules/opendir (License): Change to LGPLv2+.
* modules/readdir (License): Likewise.
* modules/closedir (License): Likewise.
2016-10-16 Bruno Haible <bruno@clisp.org>
Fix conflict between strerror_r-posix module and AC_FUNC_STRERROR_R.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Override the values set by the
AC_FUNC_STRERROR_R macro. Define HAVE_DECL_STRERROR_R_ORIG.
* lib/strerror_r.c: Use HAVE_DECL_STRERROR_R_ORIG instead of
HAVE_DECL_STRERROR_R.
2016-10-16 Bruno Haible <bruno@clisp.org>
Make the 'argp' module work without the 'error' module.
* m4/argp.m4 (gl_ARGP): Require AC_FUNC_STRERROR_R.
2016-10-25 Paul Eggert <eggert@cs.ucla.edu>
diffseq: restore TOO_EXPENSIVE heuristic
* lib/diffseq.h: Problem with diffutils reported by Andreas Schwab
(Bug#24715). The simplest solution is to restore the
TOO_EXPENSIVE heuristic that I added to GNU diff in 1993, while
using a higher threshold to avoid Bug#16848 on smaller files.
* lib/diffseq.h (struct context): Restore member too_expensive.
(struct partition): Restore members lo_minimal, hi_minimal.
(diag, compareseq): Restore arg find_minimal. All uses changed.
(diag): Restore the TOO_EXPENSIVE heuristic that I added back in
1993 to make 'diff' run faster (but not as well) on large inputs,
but use a threshold of 4096 instead of the old 256.
* lib/fstrcmp.c (strcmp_bounded):
* lib/git-merge-changelog.c (compute_differences):
Adjust to diffseq.h changes.
2016-10-22 Bruno Haible <bruno@clisp.org>
iconv: Avoid compilation error when bootstrapping GNU libiconv.
* m4/iconv.m4 (AM_ICONV): When the system does not have an iconv()
declaration yet, define ICONV_CONST to empty.
2016-10-15 Bruno Haible <bruno@clisp.org>
Avoid gnulib-tool warnings about the dependencies of 'parse-datetime'.
* gnulib-tool (func_get_license): Special-case the 'parse-datetime'
module.
2016-10-16 Bruno Haible <bruno@clisp.org>
system-quote tests: Avoid compiler warning on AIX.
* tests/test-system-quote-child.c (fopen): Redefine like the system's
<stdio.h> does.
2016-10-16 Bruno Haible <bruno@clisp.org>
Fix some "gcc -Wall" warnings.
* tests/test-ffsl.c (main): Use variable x, not i.
* tests/test-posix_spawn3.c (parent_main): Consider the return value of
freopen.
* tests/test-sethostname1.c (main): Explicitly ignore the return value
of sethostname.
2016-10-16 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make --create-testdir on all modules work again.
* gnulib-tool (func_create_testdir): Don't include the
non-recursive-gnulib-prefix-hack module.
2016-10-21 Daiki Ueno <ueno@gnu.org>
libunistring: change the maintainer to 'all'
* modules/gen-uni-tables, modules/libunistring:
* modules/ucs4-utf16, modules/ucs4-utf8, modules/unicodeio:
* modules/unitypes, modules/utf16-ucs4, modules/utf16-ucs4-unsafe:
* modules/utf8-ucs4, modules/utf8-ucs4-unsafe:
* modules/unicase/*, modules/uniconv/*, modules/unictype/*:
* modules/unilbrk/*, modules/uniname/*, modules/uninorm/*:
* modules/unistdio/*, modules/unistr/*, modules/uniwbrk/*:
* modules/uniwidth/*: Change the maintainer to 'all'.
2016-10-16 Bruno Haible <bruno@clisp.org>
Simplify "configure: checking ..." messages.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Use AC_MSG_CHECKING instead of
AC_MSG_NOTICE.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise.
2016-10-20 Paul Eggert <eggert@cs.ucla.edu>
quotearg-tests: pacify gcc -Wall
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2016-10/msg00066.html
* tests/test-quotearg-simple.c (use_quote_double_quotes): Move here ...
* tests/test-quotearg.h: ... from here.
2016-10-20 Pádraig Brady <P@draigBrady.com>
canonicalize-lgpl: fix for missing SIZE_MAX on older systems
* lib/canonicalize-lgpl.c [SIZE_MAX]: Define if needed.
Needed on Centos <= 4.
2016-10-20 Jim Meyering <meyering@fb.com>
printf.m4: fix a bug in detecting printf %j support
* m4/printf.m4 (gl_PRINTF_SIZES_C99): Fail any system for which
uintmax_t is defined in neither stdint.h nor inttypes.h.
Before, this macro might have mistakenly set
gl_cv_func_printf_sizes_c99=yes on such a system.
Spotted by Zev Weiss.
2016-10-19 Paul Eggert <eggert@cs.ucla.edu>
sched: substitute HAVE_SYS_CDEFS_H too
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/r/bug-gnulib/2016-10/msg00084.html
* m4/sched_h.m4 (gl_SCHED_H): Set and substitute HAVE_SYS_CDEFS_H.
* modules/sched (Depends-on): Substitute HAVE_SYS_CDEFS_H.
2016-10-19 Pádraig Brady <P@draigBrady.com>
quotearg: never write beyond the returned length
* lib/quotearg.c (quotearg_buffer_restyled): Switch to a read-only
scan of the string when we initially encounter a single quote when
shell quoting, so that if we then switch to a more concise quoting method
we will not have written beyond that returned length.
This is significant for sh-quote, which has separate routines
to determine the length and do the actual quoting.
* tests/test-quotearg.h: Reinstate the buffer bounds checking
now that we never write more than the returned length.
2016-10-18 Bruno Haible <bruno@clisp.org>
getprogname tests: Avoid failure in packages that use libtool.
* tests/test-getprogname.c (main): Strip "lt-" prefix.
Based on a patch by Jim Meyering.
2016-10-16 Bruno Haible <bruno@clisp.org>
getprogname: Fix test failure on Cygwin. Comments.
* lib/getprogname.h: Add comments.
* lib/getprogname.c: Add comments. Fix #elif indentation.
* tests/test-getprogname.c (main): On Cygwin, expect a result without
".exe" suffix.
2016-10-16 Bruno Haible <bruno@clisp.org>
Make sure the libunistring detection rejects older versions with a
known bug.
* modules/unistr/u8-strtok (configure.ac): Bump required version.
* modules/unistr/u16-strtok (configure.ac): Likewise.
* modules/unistr/u32-strtok (configure.ac): Likewise.
2016-10-18 Bruno Haible <bruno@clisp.org>
sh-quote, system-quote: revert regression of unit test.
* tests/test-sh-quote.c (check_one): Do detect buffer overruns.
* tests/test-system-quote-main.c (check_one): Likewise.
2016-10-16 Pádraig Brady <P@draigBrady.com>
quotearg: fix stale tests
* tests/test-quotearg.c [locale_results]: Add the missing str7
entries to the expected results.
* tests/test-system-quote-main.c (check_one): Don't enforce that we
don't write beyond the returned length, since that's no longer the
case if we switch to a more concise quoting style.
* tests/test-sh-quote.c (check_one): Likewise.
(main): Adjust for the new more concise quoting style.
Reported by Bruno Haible.
2016-10-16 Jim Meyering <meyering@fb.com>
non-recursive-gnulib-prefix-hack: fix inconsequential typo
* m4/non-recursive-gnulib-prefix-hack.m4: Change a hard-coded "lib"
to "$1". This macro is always invoked with $1 == lib.
Spotted by Bruno Haible
2016-10-16 Bruno Haible <bruno@clisp.org>
Fix a test crash.
* tests/test-duplocale.c (main): Skip the test if the 'newlocale' call
fails.
2016-10-16 Pádraig Brady <P@draigBrady.com>
test-limits-h: suppress -Woverlength-strings
* tests/test-limits-h.c [__GNUC__]: Ignore -Woverlength-strings.
2016-10-15 Bruno Haible <bruno@clisp.org>
gettime, timespec, utimens: Relicense under LGPL.
* modules/gettime (License): Change to LGPL.
* modules/timespec (License): Likewise.
* modules/utimens (License): Likewise.
2016-10-14 Bruno Haible <bruno@clisp.org>
Pádraig Brady <P@draigBrady.com>
canonicalize-lgpl: Support the case path_max > INT_MAX.
* lib/canonicalize-lgpl.c (__realpath): Declare n as ssize_t, not int.
Fix overflow check, for platforms where 'size_t' is larger than 'long'.
2016-10-13 Jim Meyering <meyering@fb.com>
getprogname: IBM z/OS: avoid NULL-dereference
* lib/getprogname.c (getprogname) [__MVS__]: Don't dereference NULL
upon strdup failure.
2016-10-12 Jim Meyering <meyering@fb.com>
test-stdint: use _GL_VERIFY rather than "verify" for some tests
* tests/test-stdint.c (verify_width): Implement with _GL_VERIFY
and an abbreviated diagnostic rather than verify with the full one,
because the full-length strings would evoke warnings from gcc with
-Woverlength-strings.
2016-10-13 Paul Eggert <eggert@cs.ucla.edu>
stdint: port SIZE_MAX to glibc s390
Problem reported by Eric Blake in:
http://lists.gnu.org/r/bug-gnulib/2016-10/msg00031.html
* doc/posix-headers/stdint.texi (stdint.h): Document the fix.
* m4/stdint.m4 (gl_STDINT_H): Check that SIZE_MAX has the
correct type, if possible.
2016-10-13 Daniel Richard G. <skunk@iSKUNK.ORG>
getprogname: port to IBM z/OS
* lib/getprogname.c (getprogname): Use w_getpsent() to get the name.
2016-10-11 Jim Meyering <meyering@fb.com>
maint: remove stray space after "." in AC_DEFINE comment.
* m4/st_dm_mode.m4 (AC_STRUCT_ST_DM_MODE): Remove space-after-".".
* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
2016-10-05 Jim Meyering <meyering@fb.com>
long-options: avoid new GCC 7 warning from -Wimplicit-fallthrough
* lib/long-options.c (parse_long_options): Add a break statement
to avoid this new warning/failure:
$ CFLAGS='-O -Werror=implicit-fallthrough' ./gnulib-tool \
--create-testdir --dir=/t/x --with-tests --test long-options
../../gllib/long-options.c: In function 'parse_long_options':
../../gllib/long-options.c:66:12: error: this statement may \
fall through [-Werror=implicit-fallthrough]
(*usage_func) (EXIT_SUCCESS);
~^~~~~~~~~~~~~~~~~~~~~~~~~~~
2016-10-05 Jim Meyering <meyering@fb.com>
utimecmp: avoid new GCC 7 warning from -Wbool-operation
Testing this module would fail when using GCC 7 like this:
$ CFLAGS='-O -Werror=bool-operation' ./gnulib-tool --create-testdir \
--dir=/tmp/x --with-tests --test utimecmp
../../gllib/utimecmp.c: In function ‘utimecmp’:
../../gllib/utimecmp.c:291:36: error: ‘~’ on a boolean expression \
[-Werror=bool-operation]
time_t s = src_s & ~ (res == 2 * BILLION);
^
../../gllib/utimecmp.c:370:16: error: ‘~’ on a boolean expression \
[-Werror=bool-operation]
src_s &= ~ (res == 2 * BILLION);
^
* lib/utimecmp.c (utimecmp): Do not apply "~" to a boolean.
Instead, make it explicit that we intend to apply it to 0 or 1.
2016-10-10 Norihiro Tanaka <noritnk@kcn.ne.jp>
dfa: save memory for states
* src/dfa (dfaexec_main): Beginning of dfa execution, release caches of
states if dfa has a lot of caches.
2016-10-10 Eli Zaretskii <eliz@gnu.org>
wchar, wctype-h: fix for MinGW 3.22.2
* lib/wchar.in.h [__MINGW32__]: Add one more condition for
special invocation, to fix issues with MinGW 3.22.2 wchar.h
when included from <string.h>.
* lib/wctype.in.h [__MINGW32__]: Add special invocation
convention for MinGW 3.22.2, to solve issues with their
wctype.h when included from <ctype.h>.
2016-10-05 Jim Meyering <meyering@fb.com>
long-options: avoid new GCC 7 warning from -Wimplicit-fallthrough
* lib/long-options.c (parse_long_options): Add a break statement
to avoid this new warning/failure:
$ CFLAGS='-O -Werror=implicit-fallthrough' ./gnulib-tool \
--create-testdir --dir=/t/x --with-tests --test long-options
../../gllib/long-options.c: In function ‘parse_long_options’:
../../gllib/long-options.c:66:12: error: this statement may \
fall through [-Werror=implicit-fallthrough]
(*usage_func) (EXIT_SUCCESS);
~^~~~~~~~~~~~~~~~~~~~~~~~~~~
utimecmp: avoid new GCC 7 warning from -Wbool-operation
Testing this module would fail when using GCC 7 like this:
$ CFLAGS='-O -Werror=bool-operation' ./gnulib-tool --create-testdir \
--dir=/tmp/x --with-tests --test utimecmp
../../gllib/utimecmp.c: In function ‘utimecmp’:
../../gllib/utimecmp.c:291:36: error: ‘~’ on a boolean expression \
[-Werror=bool-operation]
time_t s = src_s & ~ (res == 2 * BILLION);
^
../../gllib/utimecmp.c:370:16: error: ‘~’ on a boolean expression \
[-Werror=bool-operation]
src_s &= ~ (res == 2 * BILLION);
^
* lib/utimecmp.c (utimecmp): Do not apply "~" to a boolean.
Instead, make it explicit that we intend to apply it to 0 or 1.
2016-10-03 Pádraig Brady <P@draigBrady.com>
quotearg: minimize shell quoting using double quotes
* lib/quotearg.c (quotearg_buffer_restyled): If an ASCII single
quote in encountered then use double quotes (c style quoting)
when possible, as it simplifies the quoting.
* tests/test-quotearg-simple.c: Add test cases.
* tests/test-quotearg.h (use_quotearg_buffer): Adjust to account
for the fact we now may write beyond the returned length.
2016-10-02 Jim Meyering <meyering@fb.com>
vasnprintf.c: avoid spurious warning from GCC 7
The presence of cpp directives renders this "FALLTHROUGH" comment
ineffective, so does not suppress the -Wimplicit-fallthrough warning
from GCC 7 built from git on 2016-10-02.
* lib/vasnprintf.c (VASNPRINTF): Move comment down past two cpp
directives, so that it takes effect once again. This is clearly
not a proper change, and I will revert it once this bug is fixed:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77817
2016-10-01 Jim Meyering <meyering@fb.com>
getprogname: correct the test for a __progname variable
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Use AC_CACHE_CHECK
and AC_LINK_IFELSE to check for a global __progname. If found,
define HAVE_VAR___PROGNAME.
* lib/getprogname.c (getprogname): Reflect the new name of the
feature- checked preprocessor symbol:
s/HAVE_DECL___PROGNAME/HAVE_VAR___PROGNAME/
2016-09-28 Jim Meyering <meyering@fb.com>
u8-uctomb-aux.c: build: placate GCC 7's new -Wimplicit-fallthrough
* lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Mark each end of
fall-through case with a /* fallthrough */ comment.
dfa: build: avoid warning from GCC 7's new -Wimplicit-fallthrough
* lib/dfa.c (dfassbuild): Mark the end of this case with a
/* fallthrough */ comment.
getprogname: avoid __progname vs program_invocation_short_name pitfall
I.e., don't let the OpenBSD 5.1 fix induce failure when using newer
glibc. Would have caused failure with Fedora 25's glibc-2.24-3, but
not with Fedora 24's glibc-2.23.1-10.
* lib/getprogname.c (__progname): Move this declaration down...
(getprogname): ... into the #elif block where used, and make it
explicitly "extern".
getprogname: port to OpenBSD 5.1
* lib/getprogname.c (__progname) [HAVE_DECL___PROGNAME]: Declare.
(getprogname) [HAVE_DECL___PROGNAME]: Return __progname or "?".
* modules/getprogname (configure.ac): Move most of this code...
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): ... to this function,
increment serial number, and add a test for __progname.
https://bugs.gnu.org/24562
Reported by Nelson H. F. Beebe.
2016-09-24 Paul Eggert <eggert@cs.ucla.edu>
sched: port to GCC 6.2.1 on macOS Sierra
Problem reported by Denis Davydov in:
http://lists.gnu.org/r/bug-gnulib/2016-09/msg00056.html
* lib/sched.in.h [HAVE_SYS_CDEFS_H]:
Include <sys/cdefs.h> before <sched.h>.
* m4/nproc.m4 (gl_PREREQ_NPROC): Include errno.h before sched.h,
so that we needn’t worry about the sched.h include bug here.
* m4/sched_h.m4 (gl_SCHED_H): Check for sys/cdefs.h,
and include it before <sched.h> if it exists, when
checking for <sched.h>.
tests/init.sh: port Alpine fix to AIX 7.1
* tests/init.sh (compare_): When attempting to use diff -U3,
prefer diff -u to -U3 to -c to plain diff. Do not insist on
diff -u not outputting a space after leading '+', as the users
of 'compare' should not be that picky about its output format.
In the AIX 7.1 case, return with diff exit status (or with 2 if
trouble), instead of some random nonzero exit status.
* tests/test-init.sh (test_compare): Remove space after leading
'+', so that AIX 7.1 'diff' passes the test.
2016-09-22 Paul Eggert <eggert@cs.ucla.edu>
nl_langinfo: pacify GCC
* lib/nl_langinfo.c (ctype_codeset): Remove unused local.
(rpl_nl_langinfo): Cast string literals to char *, to pacify GCC.
stdint: also set GL_GENERATE_LIMITS_H
Problem reported by Jim Meyering in:
http://lists.gnu.org/r/bug-gnulib/2016-09/msg00052.html
* m4/stdint.m4 (gl_STDINT_H): Also redo the AM_CONDITIONAL.
limits-h, stdint: Don't assume extensions, fix typo
* m4/limits-h.m4 (gl_LIMITS_H):
* m4/stdint.m4 (gl_STDINT_H):
Don't assume AC_USE_SYSTEM_EXTENSIONS.
* m4/stdint.m4 (gl_STDINT_H): Fix typo in setting of LIMITS_H,
reported by Jim Meyering in:
http://lists.gnu.org/r/bug-gnulib/2016-09/msg00050.html
2016-09-21 Jim Meyering <meyering@fb.com>
getprogname: port to AIX
* lib/getprogname.c (getprogname) [_AIX]: Use getpid, getprocs64
and strdup to obtain a short program name string. Using code from
Bruno Haible and an idea from Bastien ROUCARIÈS, in
https://lists.gnu.org/r/bug-gnulib/2010-12/msg00249.html
Assaf Gordon reported that this new file would fail to compile on
AIX-7.1 32bit.
2016-09-16 Paul Eggert <eggert@cs.ucla.edu>
extensions: fix typo in comment
* m4/extensions.m4: Sync from Autoconf master.
stdint: support new _WIDTH macros
* doc/posix-headers/stdint.texi: Document this.
* lib/stdint.in.h: Add support for INTMAX_WIDTH. etc.
* m4/stdint.m4 (gl_STDINT_H): Require gl_LIMITS_H. Check for
support for INTMAX_WIDTH, etc. as well as for support for just C99.
* modules/stdint (Depends-on): Add limits-h.
(Makefile.am): Substitute HAVE_C99_STDINT_H.
* modules/stdint-tests (Depends-on): Add extensions, so that
INTMAX_MAX etc. are defined.
* tests/test-stdint.c: Verify the new macros.
limits-h: new module
This adds ISO/IEC TS 18661-1:2014 support to limits.h.
* MODULES.html.sh: Add limits-h,and move size_max to stdint section.
* doc/posix-headers/limits.texi: Document new module.
* lib/limits.in.h, m4/limits-h.m4, modules/limits-h:
* modules/limit-h-tests, tests/test-limits-h.c: New files.
stdio: don't redefine __USE_MINGW_ANSI_STDIO
* m4/stdio_h.m4 (gl_STDIO_H): Don't define __USE_MINGW_ANSI_STDIO
if it is already defined. Apparently GNU Emacs relies on this. See:
http://lists.gnu.org/r/emacs-devel/2016-09/msg00416.html
2016-09-15 Eric Blake <eblake@redhat.com>
sys_types: avoid glibc 2.25 warnings about major()
* m4/sys_types_h.m4 (AC_HEADER_MAJOR): Replace broken version in
older autoconf.
* doc/posix-headers/sys_types.texi (sys/types.h): Document fix.
* doc/glibc-functions/gnu_dev_major.texi (gnu_dev_major): Likewise.
* doc/glibc-functions/gnu_dev_makedev.texi (gnu_dev_makedev): Likewise.
* doc/glibc-functions/gnu_dev_minor.texi (gnu_dev_minor): Likewise.
mountlist: include sysmacros.h for glibc
* m4/mountlist.m4 (gl_PREREQ_MOUTLIST_EXTRA): Include
AC_HEADER_MAJOR.
* lib/mountlist.c (includes): Use correct headers.
2016-09-15 Paul Eggert <eggert@cs.ucla.edu>
extensions: port to more ISO C TSes
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Sync from Autoconf
master, to add support for more recent ISO C TRs and TSes.
2016-09-13 Paul Eggert <eggert@cs.ucla.edu>
intprops: new macro TYPE_WIDTH
* lib/intprops.h (TYPE_WIDTH): New macro.
(TYPE_MAXIMUM, _GL_SIGNED_INT_MAXIMUM, INT_STRLEN_BOUND):
* lib/ftoastr.h (_GL_FLOAT_DIG_BITS_BOUND):
* lib/parse-datetime.y (parse_datetime2):
Use it.
extensions: port to recent ISO C TRs
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
Sync from Autoconf master, to add support for recent ISO C TRs.
* m4/stdio_h.m4 (gl_STDIO_H): Define __USE_MINGW_ANSI_STDIO here,
since AC_USE_SYSTEM_EXTENSIONS no longer does that as
the MinGW option is not an extension.
2016-09-11 Paul Eggert <eggert@cs.ucla.edu>
dfa: port to Solaris 9
Problems reported by Tom G. Christensen in:
http://lists.gnu.org/r/bug-gnulib/2016-09/msg00031.html
* modules/dfa (Depends-on): Add isblank.
* modules/dfa-tests (dfa_match_aux_LDADD):
Rename from test_stat_LDADD, to fix typo.
* tests/dfa-match.sh: Don't require 'timeout'; use it if available.
2016-09-10 Jim Meyering <meyering@fb.com>
strverscmp: avoid link failure on OS X
* lib/strverscmp.c [!weak_alias]: Define __strverscmp to strverscmp.
Reported by Assaf Gordon in https://bugs.gnu.org/24256#26
2016-08-16 Jim Meyering <meyering@fb.com>
dfa: new module, importing grep's DFA matcher
Since grep's DFA matcher is now being used by two gnulib-enabled
projects, grep and sed, it makes sense to version-control its
sources and unit tests in one place: here.
* modules/dfa: New module.
* modules/dfa-tests: New file.
* lib/dfa.c: New file, from grep.
* lib/dfa.h: Likewise.
* lib/localeinfo.c: Likewise.
* lib/localeinfo.h: Likewise.
* tests/dfa-match-aux.c: Likewise.
* tests/dfa-invalid-char-class.sh: Likewise.
* tests/dfa-match.sh: Likewise, with minor changes.
* MODULES.html.sh (Misc): Add "dfa" to this list.
2016-09-09 Jim Meyering <meyering@fb.com>
getprogname-tests: don't depend on assert-h
* modules/getprogname-tests (Depends-on): Remove assert-h.
It was not needed, and in fact would cause build failure for
coreutils on some systems. Reported by Assaf Gordon in https:
//lists.gnu.org/r/coreutils/2016-09/msg00016.html
2016-09-07 Jim Meyering <meyering@fb.com>
getprogname-tests: work also when EXEEXT is nonempty
* modules/getprogname-tests (Makefile.am): Define EXEEXT.
* tests/test-getprogname.c (main): Use it.
Suggested by Gisle Vanem.
2016-09-07 Gisle Vanem <gvanem@yahoo.no>
getprogname: fix errors in previous change
* lib/getprogname.c (getprogname) [HAVE_GETEXECNAME]:
s/program_invocation_name/base/
[HAVE_DECL___ARGV]: Handle NULL __argv or __argv[0].
2016-09-08 Pádraig Brady <P@draigBrady.com>
parse-datetime: restrict debug output to input string
* lib/parse-datetime.y (parse_datetime2): If we parse
all of the input but determine it's invalid, ensure
we don't output the now invalid input pointer.
This issue was seen with `date -d 'now +1'`.
2016-09-07 Paul Eggert <eggert@cs.ucla.edu>
flexmember: new macro FLEXALIGNOF
* lib/flexmember.h: Include <stddef.h>, for offsetof.
(FLEXALIGNOF): Rename from _GL_XALLOC_ALIGNOF, as Emacs can use
this macro. Update comments.
2016-09-07 Jim Meyering <meyering@fb.com>
getprogname: port to systems with __argv (mingw, msvc)
* lib/getprogname.c (getprogname): Include "dirname.h" and use
last_component: more general than open coding it with hard-coded "/".
* lib/getprogname.h (getprogname): Prefer "char const *" consistently.
* modules/getprogname (Depends-on): Add dirname-lgpl.
(configure.ac): Check for __argv in <stdlib.h>.
* modules/getprogname-tests: New file.
* tests/test-getprogname.c: New file.
Suggested by Gisle Vanem in
https://lists.gnu.org/r/bug-gnulib/2016-09/msg00014.html
2016-09-07 Paul Eggert <eggert@cs.ucla.edu>
flexmember: port better to GCC + valgrind
With a char[] flexible array member in a struct with nontrivial
alignment, GCC-generated code can access past the end of the
array, because GCC assumes there are padding bytes to get the
struct aligned. So the common idiom of malloc (offsetof (struct
s, m), n) does not properly allocate an n-byte trailing member, as
malloc’s argument should be the next multiple of alignof (struct s).
See GCC Bug#66661: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66661
Although C11 apparently permits this GCC optimization (i.e., there
was a bug in Gnulib not in GCC), possibly this is a defect in C11.
See the thread containing:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00317.html
* lib/flexmember.h: New file.
* lib/fnmatch.c, lib/fts.c, lib/glob.c, lib/idcache.c:
* lib/localename.c, lib/time_rz.c:
Include flexmember.h.
* lib/fnmatch_loop.c (struct patternlist):
* lib/localename.c (struct hash_node):
Use FLEXIBLE_ARRAY_MEMBER.
* lib/fnmatch_loop.c (EXT):
* lib/fts.c (fts_alloc):
* lib/glob.c (glob_in_dir):
* lib/idcache.c (getuser, getuidbyname, getgroup, getgidbyname):
* lib/localename.c (gl_lock_define_initialized):
* lib/time_rz.c (tzalloc):
Use FLEXSIZEOF instead of offsetof.
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER):
Check that the size of the struct can be taken.
* modules/flexmember (Files): Add lib/flexmember.h.
* modules/fnmatch, modules/glob, modules/localename (Depends-on):
Add flexmember.
2016-09-06 Paul Eggert <eggert@cs.ucla.edu>
getprogname: port to Solaris 10
* lib/getprogname.c: Include stdlib.h, for getexecname decl.
(getprogname) [HAVE_GETEXECNAME]: Use that, for Solaris 10.
* m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Check for getexecname.
stdalign: correct mistake in alignof doc
Problem reported by Joseph Myers in:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00340.html
* doc/posix-headers/stdalign.texi: Do not imply that C11 prohibits
alignof(S) where S is a structure containing a flexible array
member. The Gnulib substitute does not support this, but C11 does.
2016-08-18 Pino Toscano <ptoscano@redhat.com>
main.mk: remove sc_program_name, since there is no more need to
use set_program_name in tools (getprogname is enough for most
of the cases).
* cfg.mk (local-checks-to-skip): Remove sc_program_name.
* top/maint.mk (sc_program_name): Remove.
2016-08-18 Pino Toscano <ptoscano@redhat.com>
Port tests away from progname, since modules that need the
program name already depend on getprogname.
* modules/acl-tests (Depends-on): Remove progname.
* modules/argmatch (Depends-on): Likewise.
* modules/argmatch-tests (Depends-on): Likewise.
* modules/argp-tests (Depends-on): Likewise.
* modules/argp-version-etc-tests (Depends-on): Likewise.
* modules/array-list-tests (Depends-on): Likewise.
* modules/array-oset-tests (Depends-on): Likewise.
* modules/avltree-list-tests (Depends-on): Likewise.
* modules/avltree-oset-tests (Depends-on): Likewise.
* modules/avltreehash-list-tests (Depends-on): Likewise.
* modules/carray-list-tests (Depends-on): Likewise.
* modules/copy-file-tests (Depends-on): Likewise.
* modules/exclude-tests (Depends-on): Likewise.
* modules/fchownat-tests (Depends-on): Likewise.
* modules/fdopendir-tests (Depends-on): Likewise.
* modules/filenamecat-tests (Depends-on): Likewise.
* modules/fstatat-tests (Depends-on): Likewise.
* modules/fstrcmp-tests (Depends-on): Likewise.
* modules/linked-list-tests (Depends-on): Likewise.
* modules/linkedhash-list-tests (Depends-on): Likewise.
* modules/mkdirat-tests (Depends-on): Likewise.
* modules/nonblocking-pipe-tests (Depends-on): Likewise.
* modules/nonblocking-socket-tests (Depends-on): Likewise.
* modules/obstack-printf-tests (Depends-on): Likewise.
* modules/openat-tests (Depends-on): Likewise.
* modules/parse-datetime-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
* modules/quotearg-simple-tests (Depends-on): Likewise.
* modules/quotearg-tests (Depends-on): Likewise.
* modules/rbtree-list-tests (Depends-on): Likewise.
* modules/rbtree-oset-tests (Depends-on): Likewise.
* modules/rbtreehash-list-tests (Depends-on): Likewise.
* modules/spawn-pipe-tests (Depends-on): Likewise.
* modules/system-quote-tests (Depends-on): Likewise.
* modules/uniname/uniname-tests (Depends-on): Likewise.
* modules/uninorm/nfc-tests (Depends-on): Likewise.
* modules/uninorm/nfd-tests (Depends-on): Likewise.
* modules/uninorm/nfkc-tests (Depends-on): Likewise.
* modules/uninorm/nfkd-tests (Depends-on): Likewise.
* modules/unistdio/u16-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u16-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/u32-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u32-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/u8-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u8-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Depends-on): Likewise.
* modules/unlinkat-tests (Depends-on): Likewise.
* modules/version-etc-tests (Depends-on): Likewise.
* modules/xalloc-die-tests (Depends-on): Likewise.
* modules/xmemdup0-tests (Depends-on): Likewise.
* modules/xprintf-posix-tests (Depends-on): Likewise.
* modules/xvasprintf-tests (Depends-on): Likewise.
* tests/test-argmatch.c: Do not include progname.h.
(main) Stop calling set_program_name.
* tests/test-argp-version-etc.c: Likewise.
* tests/test-argp.c: Likewise.
* tests/test-argv-iter.c: Likewise.
* tests/test-array_list.c: Likewise.
* tests/test-array_oset.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-avltree_oset.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-carray_list.c: Likewise.
* tests/test-copy-acl.c: Likewise.
* tests/test-copy-file.c: Likewise.
* tests/test-exclude.c: Likewise.
* tests/test-fchownat.c: Likewise.
* tests/test-fdopendir.c: Likewise.
* tests/test-filenamecat.c: Likewise.
* tests/test-fstatat.c: Likewise.
* tests/test-fstrcmp.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-mkdirat.c: Likewise.
* tests/test-nonblocking-pipe-main.c: Likewise.
* tests/test-nonblocking-socket-main.c: Likewise.
* tests/test-obstack-printf.c: Likewise.
* tests/test-openat.c: Likewise.
* tests/test-parse-datetime.c: Likewise.
* tests/test-pipe-filter-gi1.c: Likewise.
* tests/test-pipe-filter-gi2-main.c: Likewise.
* tests/test-pipe-filter-ii1.c: Likewise.
* tests/test-pipe-filter-ii2-main.c: Likewise.
* tests/test-quotearg-simple.c: Likewise.
* tests/test-quotearg.c: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-set-mode-acl.c: Likewise.
* tests/test-spawn-pipe-main.c: Likewise.
* tests/test-system-quote-main.c: Likewise.
* tests/test-unlinkat.c: Likewise.
* tests/test-version-etc.c: Likewise.
* tests/test-xalloc-die.c: Likewise.
* tests/test-xfprintf-posix.c: Likewise.
* tests/test-xmemdup0.c: Likewise.
* tests/test-xprintf-posix.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
* tests/uniname/test-uninames.c: Likewise.
* tests/uninorm/test-u32-nfc-big.c: Likewise.
* tests/uninorm/test-u32-nfd-big.c: Likewise.
* tests/uninorm/test-u32-nfkc-big.c: Likewise.
* tests/uninorm/test-u32-nfkd-big.c: Likewise.
* tests/unistdio/test-u16-vsnprintf1.c: Likewise.
* tests/unistdio/test-u16-vsprintf1.c: Likewise.
* tests/unistdio/test-u32-vsnprintf1.c: Likewise.
* tests/unistdio/test-u32-vsprintf1.c: Likewise.
* tests/unistdio/test-u8-vsnprintf1.c: Likewise.
* tests/unistdio/test-u8-vsprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsprintf1.c: Likewise.
* tests/test-c-stack.c: (program_name): Do not define.
(main): Do not set program_name.
* tests/test-closein.c: Likewise.
* tests/test-xstrtol.c: Likewise.
* tests/test-yesno.c: Likewise.
2016-08-18 Pino Toscano <ptoscano@redhat.com>
Port modules to use getprogname explicitly, instead of requiring
progname to be used (or program_name to be provided).
* lib/argmatch.c: Do not include progname.h.
[TEST] (program_name): Do not define.
[TEST] (main): Call getprogname instead of using program_name.
* lib/c-stack.c: Do not include progname.h.
(program_name): Do not define.
(die): Call getprogname instead of using program_name.
* lib/chdir-long.c: Do not include progname.h.
[TEST_CHDIR] (main): Do not set program_name.
* lib/error.c [!_LIBC]: Include progname.h.
[!_LIBC] (program_name): Define using getprogname.
* lib/euidaccess.c: Do not include progname.h.
[TEST] (main): Do not set program_name.
* lib/git-merge-changelog.c: Include getprogname.h instead of
progname.h.
(usage): Call getprogname instead of using program_name.
(main): Likewise. Stop calling set_program_name.
* lib/group-member.c: Do not include progname.h.
[TEST] (main): Do not set program_name.
* modules/argmatch (Depends-on): Add getprogname.
* modules/c-stack (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/git-merge-changelog (Depends-on): Likewise.
Also remove progname.
2016-09-05 Pino Toscano <ptoscano@redhat.com>
* NEWS: Document the deprecation of the 'progname' module.
2016-08-18 Pino Toscano <ptoscano@redhat.com>
getprogname: new module
This provides a LGPL module for getting the name of the current
program, using the same API found on *BSD systems.
* lib/getprogname.c, lib/getprogname.h, m4/getprogname.m4:
* modules/getprogname: New files.
* MODULES.html.sh (Misc): Add getprogname.
2016-09-02 Jim Meyering <meyering@fb.com>
manywarnings: add -fno-common
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -fno-common
to the list. Quoting the manual, "Compiling with -fno-common is
useful on targets for which it provides better performance, or if
you wish to verify that the program will work on other systems that
always treat uninitialized variable declarations this way [putting
it in the data section]." If diffutils had been using this sooner,
it would have prevented this duplicate declaration issue:
http://git.sv.gnu.org/cgit/diffutils.git/commit/?id=v3.4-10-gc2dc91f
2016-08-31 Simon Josefsson <simon@josefsson.org>
parse-datetime: Fix typo.
* lib/parse-datetime.y (parse_datetime2): Fix typo.
2016-08-30 Paul Eggert <eggert@cs.ucla.edu>
intprops: tune INT_NEGATE_OVERFLOW for GCC 5 and 6
* lib/intprops.h (INT_NEGATE_OVERFLOW): Tune for platforms like
GCC 5 and 6 that have __builtin_sub_overflow but not
__builtin_sub_overflow_p. With the recent changes, these
platforms are a tiny bit faster with the INT_NEGATE_RANGE_OVERFLOW
implementation than with INT_SUBTRACT_OVERFLOW implementation,
since the former needs just one runtime comparison whereas the
latter needs two.
strverscmp: sync with glibc
Although this doesn't exactly synchronize with glibc
byte-for-byte, it makes the code behave the same as glibc.
* lib/strverscmp.c (S_I, S_F, S_Z): Now masks, not powers of 2.
(ISDIGIT): Remove, as glibc is sticking with isdigit, and the
difference shouldn't matter in practical use. All uses changed
back to isdigit.
(__strverscmp, strverscmp): Use new glibc method for weak aliases.
(next_state): Now unsigned char array; redo elements.
(result_type): Now signed char array; redo elements.
(__strverscmp): Fix glibc bug 9913 by using new states.
* tests/test-strverscmp.c (main): Test glibc bug 9913.
2016-08-29 Jim Meyering <meyering@fb.com>
xalloc-oversized.h: port __builtin_mul_overflow change to GCC 6.2.0
* lib/xalloc-oversized.h: Port this change to GCC 6.2.0, too,
similarly to how it was done to intprops.h.
2016-08-29 Paul Eggert <eggert@cs.ucla.edu>
intprops.h: port recent changes to GCC 6.2.0
* lib/intprops.h (__has_builtin): Move earlier.
(_GL_HAS_BUILTIN_OVERFLOW): Rename from
_GL_HAS_BUILTIN_OVERFLOW_WITH_NULL and don't worry about whether
the last argument can be null. All uses changed.
(_GL_HAS_BUILTIN_OVERFLOW_P): Also test __has_builtin.
(_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW):
Don't try to use 3rd arg null, as this doesn't work on GCC 6.2.0
and it's not clear which GCC versions it works for.
(_GL_INT_OP_WRAPV): Use _GL_HAS_BUILTIN_OVERFLOW instead of
its definiens.
intprops.h: use __typeof__ with GCC 7
* lib/intprops.h (_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW)
(_GL_MULTIPLY_OVERFLOW): Use __typeof__ as in the GCC manual.
This avoids computing the expression's value (which might overflow!).
2016-08-29 Jim Meyering <meyering@fb.com>
intprops.h, xalloc-oversized.h: work with gcc 7
In gcc 6, __builtin_add_overflow, __builtin_sub_overflow and
__builtin_mul_overflow each accept a NULL pointer as the third
argument. However in gcc 7, that is no longer accepted.
Instead, one must use the "_p"-suffixed names, with which, the
third parameter is no longer a pointer.
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_WITH_NULL): Correct
the definition: not true for gcc 7 and subsequent.
(_GL_HAS_BUILTIN_OVERFLOW_P): Define.
(_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW):
Provide new definitions for gcc 7 and subsequent.
* lib/xalloc-oversized.h (xalloc_oversized): Provide a definition
that works with gcc-7.
intprops.h: fix missing-backslash problems
* lib/intprops.h (_GL_ADD_OVERFLOW): Add backslash.
(_GL_SUBTRACT_OVERFLOW,_GL_MULTIPLY_OVERFLOW): Likewise.
2016-08-24 Paul Eggert <eggert@cs.ucla.edu>
intprops: fix paren typo on old platforms
Problem reported by John E. Malmberg in: https://bugs.gnu.org/24300#13
* lib/intprops.h (_GL_INT_OP_WRAPV_LONGISH)
[__GNUC__ < 5 && !__has_builtin (__builtin_add_overflow)
&& (__STDC_VERSION__ < 201112 || _GL__GENERIC_BOGUS)
&& !defined LLONG_MAX]:
Remove stray paren.
intprops: port to OpenVMS
Problem reported by John E. Malmberg in: https://bugs.gnu.org/24300
* doc/posix-headers/limits.texi: Document the problem.
* lib/intprops.h (LLONG_MAX, LLONG_MIN) [__INT64_MAX]:
Define if not already defined.
2016-08-19 Assaf Gordon <assafgordon@gmail.com>
parse-datetime: improve debug implementation
Follow-up to commit 12ad79069 ("add optional debug printing").
Improve parse-datetime's debug implementation: remove macros,
replace global debug flag variable with a function parameter,
use nstrftime for formatting.
See: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00021.html
* lib/parse-datetime.h: (parse_datetime_debug): Remove global extern.
(parse_datetime2): New function, accepts 'flags' parameter, supporting
debug flag. Existing interface 'parse_datetime' left unmodified.
* lib/parse-datetime.c: (parse_datetime_debug): Remove global variable.
(struct parser_control): add 'parse_datetime_debug' member variable.
(parse_datetime): Call new function 'parse_datetime2' without debug.
(parse_datetime2): Adapted from previous 'parse_datetime', initialize
pc.parse_datetime_debug variable as needed.
(to_year): Accept new flags parameter, instead of using global variable.
(debug_print_current_time,debug_print_relative_time,debug_mktime_not_ok):
use struct 'debug' variable instead of global variable.
(DEBUG,DEBUG_PRINT_CURRENT_TIME,DEBUG_PRINT_RELATIVE_TIME,
DEBUG_MKTIME_NOT_OK,PROGRESS,PROGRESS0): Remove macros. Call
correspnding functions directly instead of using macros.
* modules/parse-datetime: Add gnulib's strftime module.
2016-08-19 Daniel Richard G. <skunk@iSKUNK.ORG>
c-strcase-tests: port to EBCDIC
* tests/test-c-strncasecmp.c: Allow two c_strncasecmp calls
which assume ASCII encoding semantics to run only in ASCII
mode, as they fail in EBCDIC.
sigpipe-tests: fix typo
* tests/test-sigpipe.sh: C, not B.
2016-08-18 Paul Eggert <eggert@cs.ucla.edu>
canonicalize-lgpl: fix errno after malloca fails
This fixes a typo I recently introduced. Suggested by Bruno Haible in:
http://lists.gnu.org/r/bug-gnulib/2016-08/msg00039.html
* lib/canonicalize-lgpl.c (__realpath):
Don't assume malloca sets errno on failure.
2016-08-17 Paul Eggert <eggert@cs.ucla.edu>
strtod: port errno handling to z/OS
* lib/strtod.c (strtod): Save and restore errno more reliably.
2016-08-17 Daniel Richard G. <skunk@iSKUNK.ORG>
strtod: port to z/OS
* lib/strtod.c (strtod): Address a couple quirks in the z/OS
implementation.
2016-08-17 Paul Eggert <eggert@cs.ucla.edu>
strtod: port to z/OS
* lib/strtod.c (strtod): Address a couple quirks in the z/OS
implementation.
regex, string: rename to avoid '__string'
* lib/regex.h, lib/string.in.h: Do not use the identifier
'__string', as it is effectively reserved by string.h on z/OS.
c-strcase-tests, wcwidth-tests: depend on c-ctype
* modules/c-strcase-tests, modules/wcwidth-tests (Depends-on):
Add c-ctype.
2016-08-17 Daniel Richard G. <skunk@iSKUNK.ORG>
thread: port to z/OS
* lib/glthread/thread.c, lib/glthread/thread.h:
Rudimentary gl_thread support for z/OS.
maint: port tests to z/OS errno behavior
* tests/test-nonblocking-reader.h:
* tests/test-nonblocking-writer.h:
Accommodate z/OS errno code preferences. (I believe this should
still be within spec; IBM is good at following the letter if not
the spirit of such things.)
maint: preprocessor changes to support z/OS
* lib/alloca.in.h, lib/fnmatch.c, lib/get-rusage-as.c:
* lib/glob.c, lib/math.in.h, lib/ptsname_r.c:
* tests/infinity.h, tests/nan.h, tests/test-canonicalize-lgpl.c:
* tests/test-nonblocking-pipe.h:
fclose, strstr-simple, wchar: port to z/OS
* m4/fclose.m4, m4/strstr.m4, m4/wchar_h.m4:
Changes to the Autoconf M4 code to support z/OS. Note that
fclose() is broken in a different way on z/OS than it is on other
systems, thus the special-case in fclose.m4.
iconv_open-utf-tests, iconv-tests: port to EBCDIC
* tests/test-iconv-utf.c, tests/test-iconv.c:
Added appropriately conditional #pragmas so that the test strings
in test-iconv-utf.c are correctly interpreted in ASCII instead of
EBCDIC (i.e. 'J' == 0x4A and not 0xD1). This issue could be
addressed in a more portable way by simply rewriting all the ASCII
literal characters as octal escapes, but then you would lose the
partial readability that the strings have now. Also, iconv_open()
on z/OS does not recognize "ISO-8859-1", but "ISO8859-1" works.
c-strcase-tests, wcwidth-tests: port to EBCDIC
* tests/test-c-strcasecmp.c: Include c-ctype.h.
(main) [!C_CTYPE_ASCII]: Skip tests that assume ASCII.
* tests/test-wcwidth.c: Likewise.
2016-08-17 Paul Eggert <eggert@cs.ucla.edu>
stdbool: don't require _Bool for C++
Problem reported by David Seifert in:
http://lists.gnu.org/r/bug-gnulib/2016-06/msg00005.html
* NEWS, doc/posix-headers/stdbool.texi (stdbool.h): Document this.
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Make the check
more-forgiving for C++, in that it requires only 'bool'. Be a bit
stricter about checking that bool and _Bool are compatible in C.
2016-08-16 Paul Eggert <eggert@cs.ucla.edu>
getdelim: remove dependency on realloc-posix
* lib/canonicalize-lgpl.c (alloc_failed)
[!FUNC_REALPATH_WORKS || defined _LIBC]: New function,
(__realpath) [!FUNC_REALPATH_WORKS || defined _LIBC]: Use it.
Use __set_errno where needed, for consistency.
* lib/getdelim.c (alloc_failed): New function.
(getdelim): Use it.
2016-08-09 Assaf Gordon <assafgordon@gmail.com>
parse-datetime: add optional debug printing
Print parsing information, warnings, and errors to stderr.
* lib/parse-datetime.h (parse_datetimte_debug): New global variable.
* lib/parse-datetime.y:
(DEBUG_*): Macros calling debug functions if debugging is enabled.
(PROGRESS*): Same as DEBUG, for progress reporting.
(dbg_printf): Print message to stderr, with 'date' prefix.
(struct parser_control): Add 'debug_*_seen' variables.
(str_days): Converts day ordinal/number to string (e.g. 'last wed').
(debug_print_current_time, debug_print_relateive_time): Prints the
current/relative date/time value of parser_control.
(YACC parser syntax): Print parsed parts with DEBUG_* macros.
(to_year): Warn about 2-digit year parsing.
(yylex): Warn about unrecognized words.
(get_effective_timezone): Returns current timezone in minutes.
(debug_strf{time,date,datetime}): Convert 'struct tm' to string as
clearly and unambigiously as possible.
(debug_mktime_not_ok): Print detailed information about failed
date/time values.
(parse_datetime): Add DEBUG messages for failures, warnings. Add
PROGRESS messages for status messages.
* modules/parse-datetime: Add 'timegm', 'gettext-h' dependencies.
2016-08-06 Jim Meyering <meyering@fb.com>
tests/init.sh: exclude dash with bad "local" semantics
* tests/init.sh (gl_shell_test_script_): Add a function to
eliminate a shell like "dash" (unlike bash, zsh) that has
surprising/risky "local var='...'" semantics. Inspired by
the problem and discussion in https://bugs.gnu.org/24116#11.
2016-08-02 Ján Tomko <jtomko@redhat.com>
maint.mk: expand the prohibit_doubled_word regex
This check has a static list of words that are checked for
repetitions. Expand it before running the perl script to
avoid using expensive captures. This decreases the cost
for libvirt from 1.66s to 0.66s.
* top/maint.mk (prohibit_doubled_word_expanded_): Define.
(sc_prohibit_doubled_word): Use it.
2016-07-26 Ján Tomko <jtomko@redhat.com>
useless-if-before-free: skip non-matching lines early
* build-aux/useless-if-before-free: First match each line with the
simple/quick /\bif\b/ and reject if there is no match. This often
saves the cost of the much more involved regular expression.
For libvirt, this decreases the cost from 1.44s to 1.02s.
2016-07-26 Ján Tomko <jtomko@redhat.com>
maint.mk: speed up sc_po_check
sc_po_check would skip files based on their names, or on the
existence of files with derived names. Rewrite it to use perl
instead of shell to make the check faster.
* top/maint.mk (perl_translatable_files_list_): Define.
(sc_po_check): Use it.
2016-07-30 Ján Tomko <jtomko@redhat.com>
maint.mk: speed up require_config_h_first
Instead of spawning three processes per file,
rewrite the check in perl and run it once for all the files.
* top/maint.mk (perl_config_h_first_): Define.
(sc_require_config_h_first): Use it in place of shell code.
2016-07-26 Ján Tomko <jtomko@redhat.com>
maint.mk: speed up sc_po_check
sc_po_check would skip files based on their names, or on the
existence of files with derived names. Rewrite it to use perl
instead of shell to make the check faster.
* top/maint.mk (perl_translatable_files_list_): Define.
(sc_po_check): Use it.
2016-07-15 Paul Eggert <eggert@cs.ucla.edu>
obstack: pacify GCC 6 with -Wnull-dereference
Problem reported by Assaf Gordon in:
http://lists.gnu.org/r/bug-gnulib/2016-07/msg00028.html
* lib/obstack.c, lib/obstack.h (obstack_alloc_failed_handler):
Declare with __attribute_noreturn__.
* lib/obstack.h (__attribute_noreturn__): New macro.
2016-07-13 Eric Blake <eblake@redhat.com>
doc: mention glibc, OS X, Cygwin [S]SIZE_MAX buglet
* doc/posix-headers/stdint.texi (stdint.h): Document the bugs.
* doc/posix-headers/limits.texi (limits.h): Document the bugs.
2016-07-13 Paul Eggert <eggert@cs.ucla.edu>
doc: mention glibc SSIZE_MAX buglet
* doc/posix-headers/limits.texi (limits.h): Document the bug.
2016-07-04 Martin Kletzander <mkletzan@redhat.com>
printf-posix: Fix mingw build
Commit 54615b95ff238e235e806855efc46a9abad09f2e changed the regular
expression for detecting C symbol prefixes but forgot to qoute square
brackets in the command line arguments for grep. That way when
building with mingw the condition was false although it ought to be
true instead. In particular scenarios this led to the following
compile error:
Cannot export rpl_printf: symbol not found
Cannot export rpl_scanf: symbol not found
collect2: error: ld returned 1 exit status
Fix this by properly quoting square brackets.
2016-07-03 Paul Eggert <eggert@cs.ucla.edu>
mktime: call tzset as per POSIX
Problem reported by Ludovic Courtès in:
http://lists.gnu.org/r/bug-gnulib/2016-06/msg00068.html
* lib/mktime.c (mktime) [!_LIBC && HAVE_TZSET]: Call tzset.
* m4/mktime.m4 (gl_FUNC_MKTIME): Check for tzset.
2016-06-26 Pádraig Brady <P@draigBrady.com>
fts: handle readdir() errors
* lib/fts.c (fts_build): readdir(3) returns NULL when finished,
but also upon error when it will also set errno. Therefore
flag the error case from readdir(). We treat the case where
no items are read the same as if the dir can't be accessed,
i.e. by setting fts_errno to FTS_DNR.
2016-06-24 Paul Eggert <eggert@cs.ucla.edu>
intprops: port better to GCC 7
GCC 7 __builtin_add_overflow supports a new usage form, where the
last argument is a null pointer, and which merely returns 1 if an
overflow would occur. This is a constant expression if all
arguments are constants, and should generate faster code when code
needs to be generated.
* lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_WITH_NULL): New macro.
(_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW):
Use builtin operations if available.
(INT_NEGATE_OVERFLOW): Prefer INT_SUBTRACT_OVERFLOW if builtin
operations are available, as it's almost surely faster.
2016-06-23 Paul Eggert <eggert@cs.ucla.edu>
intprops-test: port to GCC 6
* tests/test-intprops.c: Ignore -Woverflow if any GCC version,
since the bug is not fixed in GCC 6.1.
2016-06-13 Paul Eggert <eggert@cs.ucla.edu>
xalloc-oversized: port to GCC 7; fewer warnings
GCC 7 will have a better way to deal with integer overflow.
Plus, fix a warnings problem reported by Tim Ruehsen in:
http://lists.gnu.org/r/bug-gnulib/2016-06/msg00022.html
* lib/xalloc-oversized.h (__xalloc_oversized): New macro.
(xalloc_oversized): Use plain __builtin_mul_overflow if GCC 7 or later.
For GCC 5, use __xalloc_oversized if both args are constants,
or if pedantic.
2016-06-08 Paul Eggert <eggert@cs.ucla.edu>
regex: port to Sun C
Reported by Daiki Ueno.
* lib/regcomp.c (regcomp, regerror): Use _Restrict_, not
__restrict, in prototype. This fixes a problem I introduced in
the 2016-02-19 merge from glibc.
2016-05-31 Paul Eggert <eggert@cs.ucla.edu>
stdbool: Restore __bool_true_false_are_defined check
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL):
__bool_true_false_are_defined is still defined, even with C++11.
2016-05-31 David Seifert <soap@gentoo.org> (tiny change)
stdbool: Port AC_CHECK_HEADER_STDBOOL to C++11
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Port to C++11.
2016-05-30 Paul Eggert <eggert@cs.ucla.edu>
Use GCC_LINT, not lint
FreeBSD and Cygwin #define _Noreturn to empty if 'lint' is defined.
Problem reported by Ken Brown in: http://bugs.gnu.org/23640
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document problem with lint and _Noreturn.
* lib/diffseq.h (IF_LINT, IF_LINT2):
* lib/fts.c (sccsid):
* lib/getndelim2.c (IF_LINT):
* lib/gl_anylinked_list2.h (gl_linked_iterator)
(gl_linked_iterator_from_to):
* lib/gl_anytree_list2.h (gl_tree_iterator)
(gl_tree_iterator_from_to):
* lib/gl_anytree_oset.h (gl_tree_iterator):
* lib/gl_array_list.c (gl_array_iterator)
(gl_array_iterator_from_to):
* lib/gl_array_oset.c (gl_array_iterator):
* lib/gl_carray_list.c (gl_carray_iterator)
(gl_carray_iterator_from_to):
* lib/idcache.c:
* lib/inet_ntop.c (IF_LINT):
* lib/regcomp.c (build_charclass_op, create_tree):
* lib/regex_internal.c (re_acquire_state)
(re_acquire_state_context):
* lib/trigl.c (rcsid):
* lib/trim.c (IF_LINT):
* lib/vasnprintf.c (IF_LINT):
* lib/verify.h (assume):
Treat GCC_LINT like lint.
2016-05-29 Bruno Haible <bruno@clisp.org>
secure_getenv: Port to many more platforms.
* m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV): Also check for get*id
functions.
* lib/secure_getenv.c (secure_getenv): Add alternate implementations
for non-BSD Unix platforms and for native Windows.
* doc/glibc-functions/secure_getenv.texi: Remove known issue.
Prompted by a request from Nikos Mavrogiannopoulos.
2016-05-27 Eric Blake <eblake@redhat.com>
canonicalize: Fix broken probe for realpath.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Fix regression
in logic introduced in 54615b95.
2016-05-26 Eric Blake <eblake@redhat.com>
unsetenv: relax to LGPLv2+
* modules/unsetenv (License): Match setenv license.
2016-05-20 Ludovic Courtès <ludo@gnu.org>
gendocs.sh: Set default TOP_NODE_UP_URL in HTML output.
Suggested by Gavin Smith <gavinsmith0123@gmail.com>.
Reported by myglc2 <myglc2@gmail.com> in <http://bugs.gnu.org/22651>.
* build-aux/gendocs.sh (MANUAL_TITLE, PACKAGE, EMAIL)
(commonarg, dirargs, dirs, infoarg, generate_ascii)
(generate_html, generate_info, generate_tex, outdir)
(source_extra, split, srcfile, texarg): Move above 'version'.
(htmlarg): Likewise, and add "-c TOP_NODE_UP_URL=/manual".
2016-05-17 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update for GCC 6.1
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add GCC 6.1 options that apply to C.
* build-aux/gcc-warning.spec: Add GCC 6.1 options that
do not apply to C, are obsolescent, etc.
2016-05-12 Paul Eggert <eggert@cs.ucla.edu>
glob: size_t overflow checks
* lib/glob.c (__has_builtin): New macro.
(size_add_wrapv, glob_use_alloca): New static functions.
(glob, glob_in_dir): Check for size_t overflow in several places,
and fix some size_t checks that were not quite right.
glob: don't assume INT_MAX < SIZE_MAX
* lib/glob.c (glob): Prefer SIZE_MAX to ~((size_t) 0), as the
latter is not portable to (probably theoretical) hosts where
SIZE_MAX <= INT_MAX.
2016-05-09 Bruno Haible <bruno@clisp.org>
Fix undefined behaviour in gettext.h.
* lib/gettext.h (dcpgettext_expr, dcnpgettext_expr): Avoid accessing a
pointer's value after the storage it points to has been freed.
Reported by Michael Pyne in https://savannah.gnu.org/bugs/?47847.
Spotted by Coverity.
2016-05-08 Paul Eggert <eggert@cs.ucla.edu>
git-version-gen: avoid undefined shift
Problem reported by Mosè Giordano in:
http://lists.gnu.org/r/bug-gnulib/2016-05/msg00012.html
* build-aux/git-version-gen: Avoid undefined behavior if invoked
with --prefix or --fallback but without a later argument. While
we're at it, omit unnecessary quotes.
2016-05-04 Paul Eggert <eggert@cs.ucla.edu>
glob: merge glibc changes into lib/glob.c
* lib/glob.c (glob_in_dir): Sync with glibc/posix/glob.c,
dated 2016-05-04 12:09:35 2016 +0200. Here are the changes:
2016-05-04 CVE-2016-1234: glob: Do not copy d_name field of
struct dirent [BZ #19779]
2016-04-29 glob: Simplify the interface for the GLOB_ALTDIRFUNC
callback gl_readdir
2015-10-20 Convert miscellaneous function definitions to prototype style
2015-10-20 Convert 113 more function definitions to prototype style
(files with assertions)
2015-06-12 Fix getlogin_r namespace (bug 18527).
2014-02-10 Use glibc_likely instead __builtin_expect.
2013-10-20 When glob pattern contains a trailing slash match only
directories. Fixes bug 10278.
2013-09-04 glob: silence -Wattribute warnings
2013-06-07 Avoid use of "register" as optimization hint.
2012-09-25 Use size_t instead of int for internal variables in glob
(bug 14621)
2011-07-20 Check for overflows in expressions
2011-05-28 Remove unused variable
2011-05-22 Add a few more alloca size checks
2010-03-27 Whitespace fixes
2010-03-27 Fix one more issue with the glob patch
2010-03-24 Fix glob with empty pattern
2008-05-27 Remove useless more "if" tests before "free"
* modules/glob (Depends-on): Add stdint.
2016-05-01 Paul Eggert <eggert@cs.ucla.edu>
mktime: port to stricter signed overflow checking
* lib/mktime.c: Omit 'pragma GCC optimize ("wrapv")'.
(long_int): Require width for INT_MAX * 3 * (seconds per year),
instead of merely for INT_MAX * 2. In practice platforms that
do the latter also do the former.
(TIME_T_MIN, TIME_T_MAX, TIME_T_MIDPOINT, SHR): Remove.
(shr): New static function, replacing SHR. All uses changed.
(mktime_min, mktime_max): New constants, replacing TIME_T_MIN
and TIME_T_MAX. All uses changed.
(ydhms_diff, guess_time_tm, ranged_convert, __mktime_internal):
Use long_int, not time_t.
(long_int_avg): New static function, replacing time_t_avg.
All uses changed. Round toward positive infinity, as that
generates slightly better code.
(time_t_add_ok, time_t_int_add_ok): Remove. All uses replaced
by INT_ADD_WRAPV.
(guess_time_tm): Accept time, not a pointer to it. All uses changed.
(convert_time): New static function.
(ranged_convert): Use it
(ranged_convert): Check for *T out of [mktime_min, mktime_max] range.
Use simpler test for loop exit.
(__mktime_internal): Store negative of guessed offset, to simplify
overflow checking. Remove no-longer-needed test for small time_t
overflows.
mktime: speed up DEBUG_MKTIME benchmarks
Call tzset just once, at the start, rather than for every test
case. This lets us measure the CPU cost of mktime as opposed to
that of tzset. This is relevant when TZ is not set and glibc is
being used. This speeds up tests by a factor of 40 on my Fedora
23 x86-64 platform.
* lib/mktime.c (main) [DEBUG_MKTIME]: Call localtime at the start,
to call tzset and as a sanity check. Later on, use localtime_r
instead of localtime.
mktime: resurrect DEBUG_MKTIME testing
* lib/mktime.c [DEBUG_MKTIME]: Do not include <config.h>.
Include <string.h>, for strcmp.
mktime: simplify DEBUG_MKTIME
* lib/mktime.c (DEBUG_MKTIME): Define to 0 if not defined.
Simplify later usage accordingly.
Port mktime_internal offset to unsigned time_t
This avoids some assumptions about wraparound arithmetic on
signed integer overflow.
* lib/mktime-internal.h (mktime_offset_t): New type.
(mktime_internal): Use it in decl.
* lib/mktime.c, lib/timegm.c (mktime_offset_t) [_LIBC]: New type.
* lib/mktime.c (__mktime_internal, localtime_offset):
* lib/timegm.c (timegm): Use it.
* m4/mktime.m4 (gl_TIME_T_IS_SIGNED): New macro.
(gl_FUNC_MKTIME): Require it.
2016-04-27 Paul Eggert <eggert@cs.ucla.edu>
xstrtol: prohibit monstrosities like "1bB"
Problem reported by Young Mo Kang in: http://bugs.gnu.org/23388
* lib/xstrtol.c (__xstrtol): Allow trailing second suffixes like
"B" only if the first suffix needs a base.
* tests/test-xstrtol.sh: Test this.
2016-04-21 Pádraig Brady <P@draigBrady.com>
xstrtod: reinstate setting of *result upon ERANGE
* lib/xstrtod.c (XSTRTOD): The user may decide to use
the returned limits upon ERANGE, so allow and document that.
2016-04-20 Tino Calancha <f92capac@gmail.com> (tiny change)
xstrtod: modify *result only if no errors
* lib/xstrtod.c (XSTRTOD).
2016-04-19 Paul Eggert <eggert@cs.ucla.edu>
btowc: document problems in C locale
* doc/posix-functions/btowc.texi (btowc): Mention incompatibility
with mbrtowc. See: http://bugs.gnu.org/23269#32
2016-04-13 Paul Eggert <eggert@cs.ucla.edu>
mktime: improve integer overflow checking
* lib/mktime.c: Include stdbool.h, intprops.h, verify.h.
(WRAPV): Remove; no longer needed.
(verify): Remove. Replace all uses with call to verify.h 'verify'.
(TYPE_IS_INTEGER, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
Remove. Use intprops.h defns instead.
(leapyear, isdst_differ, time_t_add_ok, time_t_int_ok):
Use bool for Boolean, for clarity.
(time_t_add_ok, time_t_int_add_ok): Use INT_ADD_WRAPV to
detect integer overflow.
* modules/mktime (Depends-on): Add intprops, stdbool, verify.
intprops: check two's complement assumption
Suggested by Eric Blake in:
http://lists.gnu.org/r/bug-gnulib/2016-04/msg00016.html
* lib/intprops.h: Include <verify.h>. Verify that signed char,
short, int, long, and (if available) long long are two's complement.
* modules/intprops (Depends-on): Add 'verify'.
intprops, mktime, strtol: assume two's complement
These macros were not portable to every conforming C11 ones'
complement platform. It's not worth the hassle of porting to some
platforms that use ones' complement or signed magnitude, as such
platforms are almost purely theoretical nowadays and porting even
to some of them makes the code harder to review for little
practical benefit. Problem reported by Florian Weimer in:
https://sourceware.org/ml/libc-alpha/2016-04/msg00295.html
* lib/intprops.h (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT)
(TYPE_SIGNED_MAGNITUDE, _GL_INT_TWOS_COMPLEMENT):
* lib/mktime.c (TYPE_TWOS_COMPLEMENT):
* lib/strtol.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT)
(TYPE_SIGNED_MAGNITUDE):
Remove. All uses rewritten to assume two's complement, which is
all we can reasonably test nowadays anyway.
* top/maint.mk (_intprops_names): Remove the removed macros.
2016-04-11 Paul Eggert <eggert@cs.ucla.edu>
stdint: port to strict C11 left shift
* lib/stdint.in.h (_STDINT_MIN, _STDINT_MAX):
Pacify clang -Wshift-negative-value, which should be an issue only
on clang setups where stdint.h does not conform to C11 or to C++11.
Problem reported by Philipp Stephani in: http://bugs.gnu.org/23261
2016-04-09 Paul Eggert <eggert@penguin.cs.ucla.edu>
mbrtowc: work around glibc bug#19932
Fix mbrtowc so that it never returns -1 in the C locale,
as this conflicts with a future version of POSIX
http://austingroupbugs.net/view.php?id=663#c2738
and causes problems with GNU grep: http://bugs.gnu.org/23234
See glibc bug 19932:
https://sourceware.org/bugzilla/show_bug.cgi?id=19932
* doc/posix-functions/mbrlen.texi (mbrlen):
* doc/posix-functions/mbrtowc.texi (mbrtowc):
Document the glibc bug.
* lib/mbrtowc.c [C_LOCALE_MAYBE_EILSEQ]:
Include hard-locale.h, locale.h.
(rpl_mbrtowc): Work around the C_LOCALE_MAYBE_EILSEQ bug,
if the bug is possible.
* m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): New macro.
(gl_FUNC_MBRTOWC): Use it, and define C_LOCALE_MAYBE_EILSEQ as needed.
* modules/hard-locale (License): Now LGPLv2+, for mbrtowc.
* modules/mbrtowc (Depends-on): Add hard-locale.
* modules/mbrtowc-tests (Files, TESTS): Add tests/test-mbrtowc5.sh.
* tests/test-mbrtowc.c (main): Test for bug fix if arg is '5'.
* tests/test-mbrtowc5.sh: New file.
2016-04-03 Pedro Alves <palves@redhat.com>
stdint: detect good enough pre-C++11 stdint.h in C++ mode
When gnulib is configured in C++ mode for a system with a working C99
implementation of stdint.h that predates C++11, gnulib ends up
substituting stdint.h anyway. This works on most targets, but on e.g.,
64-bit MinGW, it doesn't, as gnulib's substitute assumes LP64, while
MinGW is LLP64. Instead of trying to detect the right types, detect
good-enough-pre-C++11 stdint.h and in such case define
__STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS in config.h.
* m4/stdint.m4 (gl_STDINT_H): Always define __STDC_CONSTANT_MACROS
/ __STDC_LIMIT_MACROS while checking whether the system stdint.h
conforms to C99. If it does, check whether it hides symbols
behind the __STDC_{CONSTANT|LIMIT}_MACROS macros. Then if it
does, define those macros in config.h.
2016-04-03 Paul Eggert <eggert@cs.ucla.edu>
argp: merge changes from glibc
Among other things, this should fix problems found by a Coverity
scan and reported by Andrei Borzenkov:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00015.html
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00016.html
* lib/argp-ba.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h:
* lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h:
* lib/argp-parse.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c:
* lib/argp.h:
Merge changes from glibc.
* tests/test-argp-2.sh: Adjust to match new behavior.
2016-04-01 Paul Eggert <eggert@cs.ucla.edu>
stddef: support configuring with g++
Problem reported by Ángel González in:
http://lists.gnu.org/r/bug-gnulib/2016-04/msg00003.html
* lib/stddef.in.h (_GL_STDDEF_ALIGNAS, max_align_t):
Do not define if _GCC_MAX_ALIGN_T is defined.
2016-03-25 Paul Eggert <eggert@cs.ucla.edu>
test-framework-sh: minor cleanups
* tests/init.sh (testdir_prefix_): Output a trailing newline,
since strictly speaking POSIX requires this.
(setup_): Do not use the variable 'fail', as that makes the
trace output harder to read ('fail' is typically used by
tests to mean the test failed). Treat // portably.
Check that new directory is not merely a sibling of the tmp dir.
Avoid unnecessary invocation of tr.
test-framework-sh: revert port to NetBSD 7.0
It was a false alarm; I misinterpreted Assaf Gordon's report.
* tests/init.sh (testdir_prefix_, pfx_, template_length_):
Restore.
(test_dir_): Adjust to mktempd_ change.
(mktempd_): Restore 2nd arg. Use -t again.
(base_template_, template_, nx_): Resurrect old code.
Port better to Alpine Linux
Its diff implementation does not support -c, but does support -U3.
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
* tests/init.sh (diff_opt_): New var.
(compare_): Prefer diff -U3 to diff -c to plain diff.
2016-03-24 Paul Eggert <eggert@cs.ucla.edu>
test-framework-sh: port to NetBSD 7.0
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
* tests/init.sh (testdir_prefix_, pfx_, template_length_):
Remove. All uses removed.
(test_dir_): Adjust to mktempd_ change.
(mktempd_): Omit 2nd arg. Stop using -t, as it is not portable.
(base_template_, template_, nx_): Simplify by hardcoding.
2016-03-22 Paul Eggert <eggert@cs.ucla.edu>
gitlog-to-changelog: suppress ignored chatter
* build-aux/gitlog-to-changelog: Do not warn about skipping
an SHA if it would have been ignored anyway.
2016-03-22 Geert Janssens <janssens-geert@telenet.be>
setlocale: add "sv" to Windows language table
* lib/setlocale.c (language_table) [W32]: Add "sv".
Reported in <https://savannah.gnu.org/bugs/?44588>.
2016-03-21 Paul Eggert <eggert@cs.ucla.edu>
sys_select: port to new Cygwin
Problem reported by Ken Brown in:
https://lists.gnu.org/r/bug-gnulib/2016-03/msg00054.html
* lib/sys_select.in.h [__CYGWIN__]: Avoid "unknown type name"
diagnostics.
2016-03-17 Jim Meyering <meyering@fb.com>
test-userspec.c: do not trigger gcc's new -Wmisleading-indentation
* tests/test-userspec.c (main): Remove unnecessary braces and fix
misleading indentation. Here is the diagnostic gcc-6.0-to-be issued:
test-userspec.c:176:9: error: statement is indented as if it were \
guarded by... [-Werror=misleading-indentation]
{
^
test-userspec.c:173:7: note: ...this 'if' clause, but it is not
if (!diag && !T[i].result)
^~
2016-03-15 Paul Eggert <eggert@cs.ucla.edu>
time_rz: port to clang -Wunused-const-variable
* lib/time_rz.c (TZ): Remove. All uses removed.
std-gnu11: improve clang support
* m4/std-gnu11.m4: Sync with autoconf, incorporating:
2016-03-15 Also try clang
2016-03-15 Port C11 and C++11 testing to clang
select: port more to Intel 2016.1.150 compiler
Problem reported by Balázs Hajgató in:
http://lists.gnu.org/r/bug-gnulib/2016-03/msg00036.html
* m4/select.m4 (gl_FUNC_SELECT): Require AC_C_RESTRICT.
2016-03-14 Paul Eggert <eggert@cs.ucla.edu>
select: try to port to 2016.1.150 compiler
Problem reported by Balázs Hajgató in:
http://lists.gnu.org/r/bug-gnulib/2016-03/msg00026.html
* lib/sys_select.in.h (select): Use 'restrict' on arguments where
POSIX specifies 'restrict'.
2016-03-13 Paul Eggert <eggert@cs.ucla.edu>
localename-tests: memory allocation fixes
* tests/test-localename.c (test_locale_name)
(test_locale_name_thread): Don't call freelocale on a locale
that was the base of a successful newlocale, as that
results in a double free. Problem reported by Assaf Gordon.
(test_locale_name_thread): Free saved names after use, to pacify
gcc -fsanitize=address.
2016-03-08 Paul Eggert <eggert@cs.ucla.edu>
intprops: make .h file license match module
* lib/intprops.h: Change the license wording to match glibc format.
This is what is in modules/intprops anyway. See:
https://sourceware.org/bugzilla/show_bug.cgi?id=19738#c8
2016-03-08 Eric Blake <eblake@redhat.com>
acl: fix missing return on Cygwin
* lib/set-permissions.c (set_acls) [HAVE_FACL && GETACL]: Don't
fall off end of function. Fixes http://bugs.gnu.org/22949
2016-03-05 Bruno Haible <bruno@clisp.org>
extern-inline: port to PGI CC
* m4/extern-inline.m4 (gl_EXTERN_INLINE): For PGI CC, don't use the
keyword 'inline'.
Reported by Adam James Stewart in:
http://lists.gnu.org/r/bug-gnulib/2016-03/msg00006.html
2016-02-20 Paul Eggert <eggert@cs.ucla.edu>
signbit: port back to pre-C++11 GCC
* lib/math.in.h (signbit): Do previous change only if
__cplusplus < 201103. See Jonathan Wakely in:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/UY3VX3W7XEXYTUKHG5BALU4ACUD7ZLGE/
2016-02-19 Kamil Dudka <kdudka@redhat.com>
mountlist: recognize autofs-mounted remote file systems, too
Originally reported at: https://bugzilla.redhat.com/1309247
* lib/mountlist.c (ME_REMOTE): Return true if a file system is named
"-hosts" because it is used by autofs to mount remote file systems.
2016-02-19 Paul Eggert <eggert@cs.ucla.edu>
signbit: port to C++ with GCC 6
* lib/math.in.h (signbit) [__cplusplus]:
Do not replace with GCC builtin. Reported by Orion Poplawski in:
http://lists.gnu.org/r/bug-gnulib/2016-02/msg00005.html
* lib/regex_internal.h (IDX_MAX) [_REGEX_LARGE_OFFSETS]: Now SSIZE_MAX.
regex: make it closer to libc
Make Idx a signed type, rather than possibly unsigned.
The unsignedness was not really buying us anything, since the code
overflows for other reasons before getting to PTRDIFF_MAX. Making
it signed allows us to use -1 and -2 with abandon, like libc does,
thus lessening the number of differences between gnulib and libc.
Also, it should help avoid gratuitous warnings like the one
reported by Nelson H. F. Beebe in: http://bugs.gnu.org/22702
* lib/regex.h (__re_idx_t): Remove. All uses changed to regoff_t.
regex: merge patches from libc
2015-10-21 Joseph Myers <joseph@codesourcery.com>
2015-10-20 Joseph Myers <joseph@codesourcery.com>
Convert miscellaneous function definitions to prototype style.
* lib/regcomp.c (re_compile_pattern, re_set_syntax)
(re_compile_fastmap, regcomp, regerror, regfree, re_comp):
* lib/regexec.c (regexec, re_match, re_search, re_match_2, re_search_2)
(re_search_2_stub, re_search_stub, re_set_registers, re_exec)
(re_search_internal):
Convert to prototype-style function definition.
Use internal_function for internal functions.
2016-02-10 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to older HP and IBM cc
* lib/stdalign.in.h (_Alignas): Port better to older HP and IBM
C compilers, by checking their version numbers. These version
numbers appear in MariaDB and in Qt code that dates way back and
that conditiionally uses the 'aligned' attribute.
2016-02-09 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to clang 3.7.0
Problem reported by Herbert J. Skuhra in:
http://lists.gnu.org/r/emacs-devel/2016-02/msg00476.html
* lib/stdalign.in.h (alignas): Fix typo that prevented 'alignas'
from being defined on clang 3.7.0, which has a buggy stdalign.h. See:
https://llvm.org/bugs/show_bug.cgi?id=26547
2016-02-08 Paul Eggert <eggert@cs.ucla.edu>
readdir_r: now obsolescent
* doc/posix-functions/readdir_r.texi (readdir_r): Now obsolescent.
* lib/mountlist.c (read_file_system_list): Add a FIXME.
2016-02-06 Paul Eggert <eggert@cs.ucla.edu>
misc: port better to gcc -fsanitize=address
Without these patches, ./configure CFLAGS='-fsanitize=address'
would compute incorrect values. This patch fixes some (but not all)
test failures with recent glibc, with this configuration.
* m4/acl.m4 (gl_ACL_GET_FILE):
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF):
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS):
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO):
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE):
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL):
* m4/getdelim.m4 (gl_FUNC_GETDELIM):
* m4/getgroups.m4 (gl_FUNC_GETGROUPS):
* m4/getline.m4 (gl_FUNC_GETLINE):
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF):
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF):
* m4/regex.m4 (gl_REGEX):
* m4/strndup.m4 (gl_FUNC_STRNDUP):
* tests/test-calloc-gnu.c (main):
* tests/test-duplocale.c (main):
* tests/test-getgroups.c (main):
* tests/test-getline.c (main):
* tests/test-inttostr.c (main):
* tests/test-localename.c (test_locale_name)
(test_locale_name_thread, test_locale_name_environ)
(test_locale_name_default):
* tests/test-regex.c (main):
* tests/test-setlocale1.c (main):
* tests/test-stat.h (test_stat_func):
Free heap-allocated storage before exiting.
* m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX):
Don't match *_foo symbols inserted by AddressSanitizer.
* tests/test-regex.c, tests/test-stat.c: Include stdlib.h, for 'free'.
2016-02-02 Jim Meyering <meyering@fb.com>
verify-tests: also remove stray test-verify.Tpo
* modules/verify-tests (Makefile.am): Arrange for "make clean"
to remove the test-verify.Tpo file that is left behind by
the automake-generated rule upon compilation failure.
Otherwise, that .Tpo file would cause a failed "make distcheck"
at least for grep.
2016-02-02 Paul Eggert <eggert@cs.ucla.edu>
std-gnu11: new module
This makes it easier for applications to prefer C11 and C++11
to older variants, when compiling C and C++ code.
Unlike most m4/*.m4 files, m4/std-gnu11.m4 is GPLed, as it copies
a nontrivial chunk of GPLed Autoconf source code.
* COPYING: Mention the m4/*.m4 copyright situation.
* MODULES.html.sh (std-gnu11): New module.
* m4/std-gnu11.m4, modules/std-gnu11: New files.
2016-01-25 Paul Eggert <eggert@cs.ucla.edu>
get-permissions, strftime: fix grammar in comments
* lib/get-permissions.c, lib/strftime.c: Merge into the comments
some grammar fixes Alan Mackenzie made to GNU Emacs.
2016-01-25 Daiki Ueno <ueno@gnu.org>
gettext: mark as obsolete
Suggested by Paul Eggert in:
https://lists.gnu.org/r/bug-gnulib/2016-01/msg00101.html
* modules/gettext (Status): Mark as obsolete.
(Notice): Suggest to use 'gettext-h' instead.
* modules/gettext-h (Description): Suggest GNU gettext, instead of
the 'gettext' module.
2016-01-24 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: don't give up on ln -s so easily
* gnulib-tool (func_ln_s): Don't give up on a later ln -s merely
because an earlier one failed. The targets could be on different
file systems. Problem reported by KO Myung-Hun in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00081.html
closedir: fix OS/2-related typos
Problem reported by KO Myung-Hun in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00107.html
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Fix a couple of typos
in the last couple of changes.
2016-01-24 KO Myung-Hun <komh78@gmail.com>
openat_proc_name: fix that last '/' is overwritten on OS/2 kLIBC
* lib/openat-proc.c (openat_proc_name): Increase dirlen by 1 after
copying a directory.
2016-01-24 Paul Eggert <eggert@cs.ucla.edu>
regex: treat [x] as x if x is a unibyte encoding error
Problem reported by Aharon Robbins in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00091.html
* lib/regcomp.c (parse_byte) [!_LIBC && RE_ENABLE_I18N]: New function.
(build_range_exp) [!_LIBC && RE_ENABLE_I18N]: Use it.
closedir, dirfd, opendir: port to OpenSolaris 5.10
* m4/closedir.m4 (gl_FUNC_CLOSEDIR):
* m4/dirfd.m4 (gl_FUNC_DIRFD):
* m4/opendir.m4 (gl_FUNC_OPENDIR):
Don't use ${word##pat} substitution, as it doesn't work in
OpenSolaris 5.10 /bin/sh. Problem reported by Assaf Gordon in:
http://bugs.gnu.org/22443#11
2016-01-23 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: use American spelling
* build-aux/bootstrap: Honor American spelling.
2016-01-22 Karl Berry <karl@freefriends.org>
* doc/posix-functions/localtime.texi,
* doc/posix-functions/localtime_r.texi: @item needed for @itemize text.
2016-01-21 Bruno Haible <bruno@clisp.org>
hash-pjw-bare: fix comment
* lib/hash-pjw-bare.h (hash_pjw_bare): Fix comment.
wcwidth: Replace also on OpenBSD 5.8
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check the value of wcwidth(0xFF1A).
* doc/posix-functions/wcwidth.texi: Update.
2016-01-20 Pádraig Brady <P@draigBrady.com>
gnu-web-doc-update: fix addition of new files
If there were already added (emnpty) dirs,
then cvs aborts the add with the message:
cvs [add aborted]: there is a version in <./dirname> already
* build-aux/gnu-web-doc-update: Add directories separately
to the addition of files, to avoid the above issue
impacting the addition of files.
2016-01-19 Daiki Ueno <ueno@gnu.org>
utimens-tests: avoid pulling gettext .m4 files
Although this is not the right fix to the original problem:
http://lists.gnu.org/r/bug-gnulib/2013-01/msg00086.html
it makes it possible again for consumer projects to use arbitrary
version of gettext, through the steps described at:
http://www.gnu.org/software/gnulib/manual/html_node/gettextize-and-autopoint.html
See here for details:
https://lists.gnu.org/r/bug-gnulib/2016-01/msg00079.html
* modules/futimens-tests (Depends-on): Add 'gettext-h' in place of
'gettext'.
* modules/utimens-tests (Depends-on): Add 'gettext-h' in place of
'gettext'.
2016-01-18 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify static checkers
Problem and draft fix reported by Aharon Robbins in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html
* lib/regcomp.c (build_charclass_op, create_tree) [lint]:
Clear memory to pacify static checkers.
regex: fix [ diagnostic
Problem and fix reported by Aharon Robbins in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html
* lib/regcomp.c (REG_EBRACK_IDX): Fix misleading diagnostic about [.
regex: fix memory leaks
Problem and draft fix reported by Aharon Robbins in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html
* lib/regcomp.c (build_range_exp, build_charclass_op)
* lib/regex_internal.c (re_dfa_add_node):
Fix memory leak on failure.
2016-01-18 Pádraig Brady <P@draigBrady.com>
fts: don't unconditionally use leaf optimization for NFS
NFS st_nlink are not accurate on all implementations,
leading to aborts() if that assumption is made.
See <https://bugzilla.redhat.com/1299169>
* lib/fts.c (leaf_optimization_applies): Remove NFS from
the white list, and document the issue.
2016-01-15 Paul Eggert <eggert@cs.ucla.edu>
KO Myung-Hun <komh@chollian.net>
gnulib-tool: don't assume ln -s works
* gnulib-tool (func_ln_s): New function.
(func_ln): Use it.
2016-01-15 KO Myung-Hun <komh@chollian.net>
utimes: detect utimes() correctly on OS/2 kLIBC
utimes() of OS/2 kLIBC has some limitations.
1. OS/2 itself supports a file date since 1980 year in local time.
2. OS/2 itself supports only even seconds for a file time.
3. utimes() of OS/2 kLIBC does not work on an opened file.
* m4/utimes.m4: Detect utimes() correctly on OS/2 kLIBC.
* doc/posix-functions/utimes.texi: Document the above limitations of
utimes() on OS/2 kLIBC.
2016-01-15 Paul Eggert <eggert@cs.ucla.edu>
KO Myung-Hun <komh@chollian.net>
openat_proc_name: port to OS/2 kLIBC
OS/2 kLIBC provides a function to retrive a path from a fd. Use it
instead of /proc/self/fd.
* lib/openat-proc.c (openat_proc_name):
Don't assume file name length is less than INT_MAX.
Port to OS/2 kLIBC with __libc_Back_ioFHToPath().
2016-01-14 KO Myung-Hun <komh@chollian.net>
stdint: check _INTPTR_T_DECLARED for intptr_t etc.
OS/2 kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own
definitions of intptr_t and uintptr_t (which use int and unsigned)
to avoid clashes with declarations of system functions like sbrk.
* lib/stdint.in.h (intptr_t, uintptr_t): Check
_INTPTR_T_DECLARED before defining them.
opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC
* lib/closedir.c (closedir): Unregister fd if closedir() succeeds.
* lib/dirent.in.h (_gl_register_dirp_fd, _gl_unregister_dirp_fd):
Declare on kLIBC.
* lib/dirfd.c (struct dirp_fd_list): New. Structures to keep track of
fd associated with dirp.
(_gl_register_dirp_fd): New. Register fd associated with dirp to
dirp_fd_list.
(_gl_unregister_dirp_fd): New. Unregister fd with closing it.
(dirfd): Implemented for kLIBC.
* lib/fdopendir.c (fdopendir): Implemented for kLIBC.
* lib/opendir.c (opendir): New. Register fd and dirp pair if open()
succeeds.
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Replace if OS/2.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
(REPLACE_DIRFD): Define to 1 if replaced.
* m4/opendir.m4 (gl_FUNC_OPENDIR): Likewise.
* modules/closedir (Depends-on): Add dirfd.
* modules/dirfd (Depends-on): Add 'test $REPLACE_DIRFD = 1' to errno
condition.
(configure.ac): Add dirfd to LIBOBJS if $REPLACE_DIRFD = 1 as well.
* modules/opendir (Depends-on): Add dirfd.
dup, dup2, fcntl: support a directory fd on OS/2 kLIBC
On OS/2 kLIBC, dup(), dup2() and fcntl() do not work on a directory fd.
* lib/dup.c (dup_nothrow): New.
* lib/dup2.c (klibc_dup2dirfd): New. dup2() for a directory fd.
(klibc_dup2): New.
* lib/fcntl.c (klibc_fcntl): New.
* m4/dup.m4 (gl_FUNC_DUP): Check if dup() works on a directory fd.
* m4/dup2.m4 (gl_FUNC_DUP2): Check if dup2() works on a directory fd.
* m4/fcntl.m4 (gl_FUNC_FCNTL): Check if F_DUPFD works on a directory
fd.
pipe_filter_ii_execute: port to OS/2 kLIBC
Pipes on kLIBC do not support O_NONBLOCK like Win32.
* lib/pipe-filter-ii.c (start_wrapper, _beginthreadex, CloseHandle,
WaiForSingleObject, WaitForMultipleObjects): New on OS/2 kLIBC.
Reuse Win32 code on OS/2 kLIBC.
* lib/spawn-pipe.c: Reuse Win32 code on OS/2 kLIBC.
* lib/w32spawn.h: Do not include windows.h on OS/2 kLIBC.
wchar: fix "conflicting types" error for __wcwidth on OS/2 kLIBC
On OS/2 kLIBC, wcwidth is a macro that expands to the name of a
static inline function. The implementation of wcwidth in wcwidth.c
causes a "conflicting types" error.
* lib/wchar.in.h: Undefine wcwidth on OS/2 kLIBC.
w32spawn: clear SHELL_SPECIAL_CHARS and SHELL_SPACE_CHAR on OS/2 kLIBC
spawn() on OS/2 kLIBC is not silly like one on Windows
* libc/w32spawn.h (SHELL_SPECIAL_CHARS, SHELL_SPACE_CHAR): Set both to
empty string on OS/2 kLIBC.
pipe-filter-aux: undefine HAVE_SELECT on KLIBC
On OS/2 kLIBC, select() works only on sockets.
* lib/pipe-filter-aux.h (HAVE_SELECT): Undefine on OS/2 kLIBC.
binary-io: don't put fd in binary mode if it is a console on EMX
* lib/binary-io.h (SET_BINARY): Don't put fd in binary mode if it is
a console on EMX.
2016-01-15 Pádraig Brady <P@draigBrady.com>
doc: mention unfixed issues with unsupported localtime() values
* doc/posix-functions/localtime.texi: Mention that FreeBSD 10
returns nonsense for localtime(2^56).
* doc/posix-functions/localtime_r.texi: Likewise.
2016-01-14 Pádraig Brady <P@draigBrady.com>
doc: mention setlocale() issues on OpenBSD
* doc/posix-functions/setlocale.texi: Mention setlocale(LC_ALL,"")
never fails, and the need to check categories individually.
2016-01-14 Pádraig Brady <P@draigBrady.com>
sig2str: list all signals on FreeBSD >= 7
FreeBSD >= 7 is contravening POSIX by not defining NSIG
to the maximal statically defined signal value.
It does define _SIG_MAXSIG though, so base SIGNUM_BOUND on that.
* lib/sig2str.h (SIGNUM_BOUND): Define to (_SIG_MAXSIG - 2)
where available, even when NSIG is defined.
2016-01-13 Paul Eggert <eggert@cs.ucla.edu>
acl-permissions: port to USE_ACL==0 platforms
I ran into this problem when building bleeding-edge GNU Emacs
with gcc -fsanitize=address on Fedora 23. On this platform
the ACL library does not pass the 'configure' test and Emacs
then does not build due in part to what appear to be typos in the
ACL part of Gnulib.
* lib/acl-internal.c (free_permission_context):
* lib/acl-internal.h (struct permission_context):
Test whether USE_ACL is nonzero, not whether it is defined.
2016-01-12 Martin Sebor <msebor@redhat.com>
mktime: rename macro to avoid glibc clash
* lib/mktime.c [DEBUG] (DEBUG): Rename to DEBUG_MKTIME. See:
https://sourceware.org/ml/libc-alpha/2016-01/msg00267.html
2016-01-12 Paul Eggert <eggert@cs.ucla.edu>
Port "$@" to OpenIndiana ksh93
In http://lists.gnu.org/r/bug-autoconf/2015-12/msg00000.html
Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh
(derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient
bug long-dead shells, so remove the workaround.
* build-aux/announce-gen, build-aux/do-release-commit-and-tag:
* build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update:
* build-aux/prefix-gnulib-mk, build-aux/update-copyright:
* build-aux/useless-if-before-free, tests/test-update-copyright.sh:
Use "$@" instead of ${1+"$@"}.
Port Universal Time settings to strict POSIX
* build-aux/announce-gen, build-aux/bootstrap:
* build-aux/do-release-commit-and-tag, build-aux/git-version-gen:
* build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update:
* build-aux/gnupload, build-aux/mkinstalldirs:
* build-aux/move-if-change, build-aux/prefix-gnulib-mk:
* build-aux/update-copyright, build-aux/useless-if-before-free:
* build-aux/vc-list-files, tests/test-strftime.c:
Use TZ="UTC0", not TZ="UTC". Either works on GNU platforms,
but POSIX says the behavior of TZ="UTC" is undefined.
2016-01-02 Paul Eggert <eggert@cs.ucla.edu>
msvc-inval: fix problem with unset shell var
Problem reported by Karl Berry in:
http://lists.gnu.org/r/bug-gnulib/2016-01/msg00004.html
* modules/msvc-inval (Depends-on):
AC_REQUIRE gl_MSVC_INVAL instead of merely calling it.
* modules/msvc-nothrow (Depends-on): Likewise for gl_MSVC_NOTHROW.
2016-01-01 Pádraig Brady <P@draigBrady.com>
tests: for compare_(), use cmp -s where available
* tests/init.sh (compare_): Only fall back to cmp without
the POSIX defined -s option, where this is not available.
2016-01-01 Paul Eggert <eggert@cs.ucla.edu>
version-etc: new year
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
2015-12-31 Paul Eggert <eggert@cs.ucla.edu>
human: fix output buffer overrun by 1
* lib/human.c (human_readable): Fix off-by-one typo in buffer
calculation that could lead to a one-byte buffer overrun.
2015-12-28 Daiki Ueno <ueno@gnu.org>
maint: fix operator precedence in mbrtowc test
This is a fix for test breakage introduced by commit 45228d96; the
equality expression must be parenthesized when negated with '!',
otherwise we always get:
test-mbrtowc.c:49: assertion 'ret == (size_t)(-2)' failed
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): Negate the entire expression.
* m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): Likewise.
2015-12-23 James Youngman <jay@gnu.org>
regexprops-generic: update from regex.h
* doc/regexprops-generic.texi: update by running the regexprops binary
from findutils (the command line is 'regexprops "Regular Expressions"
generic'). The recent (ish) change (5a5a9388) to regex.h aligning
gnulib with GNU grep had made this document out-of-date.
2015-12-23 Pádraig Brady <P@draigBrady.com>
strftime-tests: avoid false failure on OS X
* tests/test-strftime.c (struct localtime_rz_test): Add an
ahistorical member which is used to warn rather than fail
when tm_isdst isn't set for such entries. This is the case for
"1970-01-01 13:00:00 +1300 (NZDT)" on Darwin 13/14 at least.
2015-12-20 Kamil Dudka <kdudka@redhat.com>
fts: ensure leaf optimization is used for NFS
NFS provides usable dirent.d_type but not necessarily for all entries
of large directories. See <https://bugzilla.redhat.com/1252549>
* lib/fts.c (leaf_optimization_applies): Append NFS on the white list.
2015-12-20 Pádraig Brady <P@draigBrady.com>
fts: enable leaf optimization for XFS
XFS provides usable dirent.d_type only for DT_DIR,
but the noleaf optimization still applies.
* lib/fts.c (leaf_optimization_applies): Add XFS to the white list.
2015-12-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: comment fix
* lib/intprops.h: Fix comment. Reported by Pádraig Brady in:
http://lists.gnu.org/r/bug-gnulib/2015-12/msg00013.html
intprops-test: work around GCC bug 68971
Problem reported by Pádraig Brady in:
http://lists.gnu.org/r/bug-gnulib/2015-12/msg00011.html
* tests/test-intprops.c: Ignore -Woverflow in GCC 6 and earlier.
(main): Add a case that better tests 64-bit long in this area.
2015-12-09 Pavel Raiskup <praiskup@redhat.com>
gnulib-tool: allow multiple --local-dir usage
* gnulib-tool: Use --local-dir to construct compound
$local_gnulib_path path instead of $local_gnulib_dir. Determine
PATH_SEPARATOR early.
(local_gnulib_dir): Rename into $local_gnulib_path everywhere.
(func_gnulib_dir): Cut out PATH_SEPARATOR detection code into
func_determine_path_separator because that needs to be detected
earlier now.
(func_determine_path_separator): New function.
(func_path_foreach, func_path_foreach_inner): New functions.
(func_path_prepend, func_path_append): Likewise.
(func_lookup_local_file, func_lookup_local_file_cb): Likewise.
(func_lookup_file, func_all_modules): Use new functions to work
with local_gnulib_path.
(func_modules_in_dir, func_exists_module): New callbacks for
func_path_foreach.
(func_exists_module, func_get_tests_module): Likewise.
(func_is_local_file, func_should_symlink): New helper methods.
(func_add_file, func_update_file): Use new func_should_symlink
instead, DRY.
(func_reconstruct_cached_local_gnulib_path): New helper.
(func_reconstruct_cached_dir): New callback.
(func_import): The cached_local_gnulib_dir renamed to
cached_local_gnulib_path similarly to local_gnulib_dir.
Use new func_reconstruct_cached_local_gnulib_path.
(func_count_relative_local_gnulib_path): New sub-method.
(func_create_testdir): Use func_should_symlink, DRY.
(func_create_megatestdir): Use new functions to work with
local_gnulib_path correctly.
(func_append_local_dir): New helper.
2015-12-08 Pádraig Brady <P@draigBrady.com>
fix freadptr to work with ungetc on all uClibc configs
Reported at https://bugs.busybox.net/show_bug.cgi?id=4099
where GNU coreutils cut(1) generates invalid output on uClibc
when __UCLIBC_HAS_STDIO_GETC_MACRO__ is not defined.
* lib/freadptr.c (freadptr): Return NULL if there are
ungotten chars. In this case freadseek() will iterate
again to process the ungotten character.
2015-11-13 Paul Eggert <eggert@cs.ucla.edu>
xalloc-oversized: improve performance with GCC 5
* lib/xalloc-oversized.h (xalloc_oversized):
Improve performance with GCC 5 by using __builtin_mul_overflow.
2015-11-10 Paul Eggert <eggert@cs.ucla.edu>
intprops: new public macro EXPR_SIGNED
Emacs can use this macro, so make it public.
* doc/intprops.texi (Arithmetic Type Properties): Rename from
'Integer Type Determination', since some of these macros apply
to non-integer types. Clarify what kinds of constant expressions
these macros return. Say when the arguments can be non-integers.
Mention newly published macro EXPR_SIGNED.
* lib/intprops.h (EXPR_SIGNED): Rename from _GL_INT_SIGNED, to
make it public. All uses changed.
intprops: fix typo in clang port
* lib/intprops.h (_GL_INT_OP_WRAPV): Fix misspelling of
'__builtin_add_overflow' that is not caught by compiler.
2015-11-05 Paul Eggert <eggert@cs.ucla.edu>
test-timespec: fix typo in previous change
* tests/test-timespec.c (main): Fix typo that reduced test quality.
timespec-sub: fix overflow bug; add tests
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
Work even if time_t is narrower than int (a theoretical
possibility). Redo code for a bit more clarity.
* lib/timespec-sub.c (timespec_sub):
Fix off-by-2 bug if a.tv_sec == TYPE_MINIMUM (time_t) and 0 < b.tv_sec.
* modules/timespec-tests, tests/test-timespec.c: New files.
intprops-test: suppress -Woverlength-strings
Problem reported by Pádraig Brady in:
http://lists.gnu.org/r/bug-gnulib/2015-11/msg00008.html
It is not worth the hassle to port this test to compilers that
cannot handle long strings in diagnostics.
* tests/test-intprops.c [__GNUC__]: Ignore -Woverlength-strings.
2015-11-03 Pádraig Brady <P@draigBrady.com>
quotearg: add quotearg_n_style_colon()
This quotes with default options of the specified style,
but with quoting enabled for instances of ':'.
* lib/quotearg.h (quotearg_n_style_colon): Description and declaration.
* lib/quotearg.c (quotearg_n_style_colon): New function implementation.
2015-11-04 Paul Eggert <eggert@cs.ucla.edu>
intprops: revise _WRAPV macros, revert _OVERFLOW
The incompatible changes to the _OVERFLOW macros were too much of
a hassle in practice, so revert them. Instead, change the new
_WRAPV macros to make them closer in behavior to GCC 5's new
builtin_add_overflow etc. functions. No other software was using
these newly-added macros yet, so this should be OK.
* NEWS: Revert previous change, since the incompatible change
has been reverted, and nobody used the incompatible version.
* doc/intprops.texi (Wraparound Arithmetic, Integer Type Overflow):
Document revised behavior.
(Integer Range Overflow): Adjust example to match above revisions.
* lib/intprops.h (INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW)
(INT_MULTIPLY_OVERFLOW): Revert previous change, so that
these can be used in integer constant expressions again.
(INT_CONST_ADD_OVERFLOW, INT_CONST_SUBTRACT_OVERFLOW)
(INT_CONST_MULTIPLY_OVERFLOW): Remove, as these are no longer
needed.
(INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV)
(INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV)
(INT_REMAINDER_WRAPV, INT_LEFT_SHIFT_WRAPV):
Remove, as they did not seem that useful.
(INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, INT_MULTIPLY_WRAPV)
(_GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH)
(_GL_INT_OP_WRAPV_VIA_UNSIGNED):
Support new semantics.
(__has_builtin): New macro, if not alreay defined.
(_GL__GENERIC_BOGUS, _GL_INT_OP_CALC, _GL_INT_OP_CALC1): New macros.
* tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW)
(INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW)
(INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV)
(INT_CONST_LEFT_SHIFT_WRAPV): Remove.
(CHECK_SBINOP, CHECK_SSUM, CHECK_SUM1, CHECK_SSUM1)
(CHECK_SDIFFERENCE, CHECK_SPRODUCT, CHECK_PRODUCT1, CHECK_SPRODUCT1):
New macros.
(CHECK_BINOP, CHECK_UNOP, main, CHECK_SUM): Test new behavior.
2015-11-03 Jim Meyering <meyering@fb.com>
intprops: add parentheses for when OP has precedence lower than "-"
* lib/intprops.h (_GL_INT_OP_WRAPV_VIA_UNSIGNED): In "a OP b - c",
"a OP b" must be parenthesized for when OP is like "<<", which has
lower precedence than the following "-". Reported by Pádraig Brady.
2015-11-03 Pádraig Brady <P@draigBrady.com>
quotearg: constify get_quoting_style parameters
* lib/quotearg.h (get_quoting_style): Mark parameter as const.
* lib/quotearg.c (get_quoting_style): Likewise.
2015-11-02 Pádraig Brady <P@draigBrady.com>
quotearg: add support for $'' shell escaping
* lib/quotearg.h: Add "shell-escape" and "shell-escape-always"
items and descriptions.
* lib/quotearg.c (quotearg_buffer_restyled): Add support for the
above types by quoting like "shell", but using $'...' syntax
for non printable characters, which should provide unambiguous
printable output for any input.
* tests/test-quotearg-simple.c: Update accordingly.
2015-11-02 Pádraig Brady <P@draigBrady.com>
maint: use a more standard return from mbrtowc test
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): Don't return 1
from the test program as this is non standard and often
indicates an unhandled case in the test program.
* m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): Likewise.
2015-10-30 Paul Eggert <eggert@cs.ucla.edu>
intprops: add WRAPV and const flavors for GCC 5
If available, use GCC 5's builtin functions for efficient integer
overflow checking. Also, add macros like INT_ADD_WRAPV efficently
and safely compute the low-order bits of the correct answer.
A downside of these efficient functions is that they cannot be
used in constant expressions, so add macros like INT_CONST_ADD_OVERFLOW
and INT_CONST_ADD_WRAPV that can be used even in constant expressions.
* NEWS: Document the incompatible changes to INT_ADD_OVERFLOW etc.
* doc/intprops.texi (Integer Properties, Integer Type Overflow):
Document the changes.
(Wraparound Arithmetic): New section.
(Integer Range Overflow):
Put this subsection last, since it's least useful.
* lib/intprops.h (INT_CONST_ADD_OVERFLOW)
(INT_CONST_SUBTRACT_OVERFLOW, INT_CONST_MULTIPLY_OVERFLOW):
New macros, with the meaning that INT_ADD_OVERFLOW etc. used to have.
(INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV)
(INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV)
(INT_REMAINDER_WRAPV, _GL_INT_OP_WRAPV, _GL_EXPR_CAST)
(_GL_INT_OP_WRAPV_LONGISH, INT_ADD_WRAPV, INT_SUBTRACT_WRAPV)
(INT_MULTIPLY_WRAPV, _GL_OP_OVERFLOW, _GL_OP_WRAPV, _GL_OP_WRAPV_GENSYM):
New macros.
(INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW, INT_MULTIPLY_OVERFLOW):
Generate calls to GCC builtins if available, for speed.
* tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW)
(INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW)
(INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV)
(INT_CONST_LEFT_SHIFT_WRAPV): New macros.
(main, CHECK_BINOP, CHECK_UNOP, CHECK_SUM, CHECK_PRODUCT)
(CHECK_QUOTIENT, CHECK_REMAINDER):
Test WRAPV and CONST flavors (when available) too.
2015-10-30 Pádraig Brady <P@draigBrady.com>
doc: use extended timezone format in iso-8601 example
* doc/parse-datetime.texi: The standard states that extended format
is to be used consistently throughout.
Note that lib/parse-datetime.y can handle either tz format.
2015-10-25 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to Sun C 5.9
* doc/posix-headers/stdalign.texi: Document this.
* lib/stdalign.in.h (_Alignas): Sun C 5.9 also supports
__attribute__ ((__aligned__ (...))).
2015-10-20 Paul Eggert <eggert@cs.ucla.edu>
time_rz: fix comment about tzalloc
* lib/time_rz.c (tzalloc): Fix comment.
2015-10-18 Paul Eggert <eggert@cs.ucla.edu>
stdalign: work around pre-4.9 GCC x86 bug
* lib/stdalign.in.h (_Alignof): Work around bug in pre-4.9 GCC on
x86, when -std=gnu11 is used. Problem reported by Jim Meyering in:
http://lists.gnu.org/r/bug-gnulib/2015-10/msg00038.html
2015-10-18 Pádraig Brady <P@draigBrady.com>
maint.mk: sc_tight_scope: remove extraneous expressions
* top/maint.mk (tight_scope): This is not really required since
commit 3ef58f46 as sed_wrap ensures we don't get an empty expression
that matches all nm entries. But it does remove extraneous entries
that may be confusing or cause issue in future maintenance.
2015-10-18 Paul Eggert <eggert@cs.ucla.edu>
time_rz: return NULL if localtime_r fails
* lib/time_rz.c (localtime_rz): Return NULL if localtime_r fails,
while still attempting to pacify bleeding-edge GCC.
fts: port to C11 alignof
* doc/posix-headers/stdalign.texi (stdalign.h):
Document the C11 restriction.
* lib/fts.c: Include stddef.h, for max_align_t.
(fts_alloc): Align using max_align_t, not FTSENT.
* modules/fts (Depends-on): Add stddef.
2015-10-18 Jim Meyering <meyering@fb.com>
time_rz: avoid warning from bleeding-edge gcc's -Wnonnull
Compiling with gcc version 6.0.0 20151017 (experimental) (GCC), I
would see this:
lib/time_rz.c: In function 'localtime_rz':
lib/time_rz.c:292:15: error: nonnull argument 'tm' compared to NULL \
[-Werror=nonnull]
if (tm && !save_abbr (tz, tm))
^
That was complaining about "tm" because it is a parameter that was
declared with the __nonnull__ attribute.
* lib/time_rz.c (localtime_rz): Don't bother setting "tm" to the
result of localtime_r.
2015-10-17 Jim Meyering <meyering@fb.com>
maint.mk: _gl_TS_function_match: fix "extern" name extracting regexp
* top/maint.mk (_gl_TS_function_match): This heuristic extern-function-
name-extraction regexp mistakenly used \S+, and would mistakenly
extract "*F" from "extern int *F()" rather than the desired "F".
Use \w+ instead.
2015-10-17 Jim Meyering <meyering@fb.com>
maint.mk: sc_tight_scope: factor and support OS X
* top/maint.mk (_gl_tight_scope): Address three issues:
- factor out four instances of code that wraps a string in "^...$"
- allow nm-reported symbol names to have an optional leading "_"
- add "main" to the list of ignored variable names, because on os x,
"main" has nm-reported type "S" in the variable-checking section.
2015-10-16 Dmitry Smirnov <onlyjob@member.fsf.org>
safe-alloc-tests: fix typo in license header
* tests/test-safe-alloc.c: Mention LGPL 2.1, not 3.1
2015-10-15 Simon Reinhardt <simon@keinstein.org>
copy-file: fix mem leak in error case
* lib/copy-file.c (qcopy_file_preserving): Free the 32KiB buffer
upon error opening or performing I/O to the src and dest files.
2015-10-15 Mike Frysinger <vapier@chromium.org>
localename: control langinfo.h inclusion
This header is only used to work around buggy behavior in old
versions of glibc, so do not include it all the time. Otherwise
we get build failures on systems that do not provide langinfo.h.
* lib/localename.c: Wrap langinfo.h include with same ifdefs used
in the source later on.
The patch was originally submitted to gettext as:
https://lists.gnu.org/r/bug-gettext/2015-10/msg00011.html
2015-10-13 Paul Eggert <eggert@cs.ucla.edu>
binary-io, math, pthread, sys_socket, u64, unistd: port to strict C
* lib/binary-io.c, lib/math.c, lib/pthread.c, lib/sys_socket.c:
* lib/u64.c, lib/unistd.c:
Append 'typedef int dummy;', to pacify compilers that are picky
about empty translation units.
2015-10-12 Pino Toscano <ptoscano@redhat.com>
accept4-tests: fix to avoid non portable flags
* tests/test-accept4.c (main): Pass only SOCK_* flags to accept4(),
as they are the only documented ones, and passing others may trigger
EINVAL (seen on FreeBSD 10.1-RELEASE).
* doc/glibc-functions/accept4.texi: Mention that we don't provide
the SOCK_CLOEXEC or SOCK_NONBLOCK defines.
2015-10-06 Pavel Raiskup <praiskup@redhat.com>
gnulib-tool: fix tests of 'extensions' module
This complements f8fe25fab60e3c687a124 commit.
* gnulib-tool (func_emit_pre_early_macros): New function, it wraps
emitting of initial gl_EARLY macros.
(func_import, func_create_testdir): All dumps of gl_PROG_AR_RANLIB
replaced with func_emit_pre_early_macros call.
2015-10-06 Paul Eggert <eggert@cs.ucla.edu>
unicase/locale-language: fix typo in utf-8 cookie
* lib/unicase/locale-languages.gperf: Fix gperf input file format.
Problem reported by Zbigniew Jędrzejewski-Szmek.
2015-10-02 Paul Eggert <eggert@cs.ucla.edu>
xalloc: do not worry about GCC 5 warning on 32 bit
* lib/xalloc.h: Revert previous change.
I found a better way to fix this in coreutils.
2015-10-02 Pádraig Brady <P@draigBrady.com>
xalloc: avoid GCC 5.1 warning on 32 bit
* lib/xalloc.h: Disable -Wstrict-overflow for uses of
xalloc_oversized(), which was seen to give this warning
on GCC 5.1 on 32 bit: "assuming signed overflow does not occur
when simplifying conditional".
2015-10-02 Daiki Ueno <ueno@gnu.org>
uniname/uniname-tests: avoid compiler warnings
* tests/uniname/test-uninames.c (fill_names, fill_aliases): Remove
unused local variables.
(test_alias_lookup): Fix alias name display in failure cases.
2015-09-26 Paul Eggert <eggert@cs.ucla.edu>
c-ctype: do not worry about EBCDIC + char signed
Drop support for EBCDIC with char being signed, as this breaks too
many programs. Problem reported by Ben Pfaff in:
http://lists.gnu.org/r/bug-gnulib/2015-09/msg00053.html
* lib/c-ctype.h: Verify that we are not using EBCDIC with
char being signed.
(_C_CTYPE_LOWER_A_THRU_F_N): New macro.
(_C_CTYPE_LOWER_N, _C_CTYPE_A_THRU_F): Use it.
(_C_CTYPE_DIGIT, _C_CTYPE_LOWER, _C_CTYPE_PUNCT, _C_CTYPE_UPPER):
(c_isascii, c_isgraph, c_isprint, c_ispunct, c_tolower, c_toupper):
* tests/test-c-ctype.c (test_all):
Simplify by assuming standard char values cannot be negative.
* tests/test-c-ctype.c (NCHARS, to_char): Remove; all uses removed.
2015-09-25 Paul Eggert <eggert@cs.ucla.edu>
c-ctype: port better to z/OS EBCDIC
Problems reported by Daniel Richard G. in:
http://lists.gnu.org/r/bug-gnulib/2015-09/msg00050.html
* lib/c-ctype.h (_C_CTYPE_CNTRL): Rewrite in terms of
the C standard escapes and _C_CTYPE_OTHER_CNTRL.
(_C_CTYPE_OTHER_CNTRL): New macro.
* tests/test-c-ctype.c (test_all): Test from CHAR_MIN, not
from SCHAR_MIN, as the functions are defined only from values
promoted from char or from unsigned char, not necessarily from
signed char.
2015-09-25 Pavel Raiskup <praiskup@redhat.com>
gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash
The gl_PROG_AR_RANLIB (it is always called by gl_EARLY) sets AR
and ARFLAGS variables. Doing this unconditionally could break
later Automake's AM_PROG_AR invocation (at least it's
AC_CHECK_TOOLS call to detect correct 'ar' binary).
Original purpose of the gl_PROG_AR_RANLIB was only to handle the
Amsterdam Compiler Kit, so make the previous code to have effects
only on ACK, and rather automatically call the Automake's
AM_PROG_AR as soon as possible to decide other cases.
References:
http://lists.gnu.org/r/bug-gnulib/2015-07/msg00001.html
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): AC_BEFORE AM_PROG_AR.
Set the AR/ARFLAGS to ACK defaults OR call AM_PROG_AR. If neither
is possible, keep setting AR/ARFLAGS to reasonable defaults.
* gnulib-tool (func_import): Put the gl_USE_SYSTEM_EXTENSIONS
right before gl_PROG_AR_RANLIB into gnulib-comp.m4 (if the
'extensions' module is used.
* modules/extensions (configure.ac-early): Remove as this snippet
is added to gnulib-comp.m4 earlier anyway.
2015-09-25 Paul Eggert <eggert@cs.ucla.edu>
sockets: MS Windows initalization fixes
Problem reported by Test User in:
http://lists.gnu.org/r/help-shishi/2015-09/msg00001.html
* lib/sockets.h (SOCKETS_1_0, SOCKETS_2_0, SOCKETS_2_1):
Correct the endianness.
* lib/sockets.c (gl_sockets_startup): Return 2 on any version
number mismatch, not just on <. Cleanup before any such failure.
2015-09-25 Mats Erik Andersson <gnu@gisladisker.se>
gc: fix detection of installed libgcrypt version
* m4/gc.m4: Use AM_PATH_LIBCRYPT to test for libcrypt versions
at least as recent as 1.4.4. The previously used macro is not
available now, since modules were removed in version 1.6.0.
2015-09-25 Paul Eggert <eggert@cs.ucla.edu>
c-ctype: rewrite to use inline functions
This simplifies maintenance, since it makes for just one
implementation of each function, letting the compiler have the fun
of optimization. In practice this works well nowadays with GCC.
E.g., c_isascii might need only three instructions even though the
source code lists every ASCII character individually in a large
switch statement.
Also, fix some z/OS porting bugs reported by Daniel Richard G. in:
http://lists.gnu.org/r/bug-gnulib/2015-09/msg00037.html
* NEWS: Document the API change.
* lib/c-ctype.c: Drastically simplify, since this now just expands
inline functions.
* lib/c-ctype.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(C_CTYPE_INLINE): New macro.
(C_CTYPE_CONSECUTIVE_DIGITS, C_CTYPE_CONSECUTIVE_LOWERCASE)
(C_CTYPE_CONSECUTIVE_UPPERCASE): Remove.
Verify that either ASCII or EBCDIC is being used.
(_C_CTYPE_SIGNED_EBCDIC, _C_CTYPE_CNTRL, _C_CTYPE_A_THRU_F_N)
(_C_CTYPE_DIGIT_N, _C_CTYPE_LOWER_N, _C_CTYPE_UPPER_N)
(_C_CTYPE_CASES, _C_CTYPE_A_THRU_F, _C_CTYPE_DIGIT, _C_CTYPE_LOWER)
(_C_CTYPE_UPPER, _C_CTYPE_PUNCT_PLAIN):
New private macros.
(_C_CTYPE_CNTRL): In EBCDIC, '\x07' is a control, not '\xff'.
(c_isalnum, c_isalpha, c_isascii, c_isblank, c_iscntrl, c_isdigit)
(c_isgraph, c_islower, c_isprint, c_ispunct, c_isspace, c_isupper)
(c_isxdigit, c_tolower, c_toupper): Now inline functions.
(c_tolower, c_toupper): When converting, return the unsigned char,
as that is what z/OS does.
* lib/c-strcaseeq.h (CASEEQ): Simplify in the light of the removal
of some c-ctype.h macros.
* modules/c-ctype (Depends-on): Add extern-inline; remove verify.
* tests/test-c-ctype.c (test_all): Fix test for c_toupper and
c_tolower promotion to be compatible with z/OS.
2015-09-24 Pavel Raiskup <praiskup@redhat.com>
gitlog-to-changelog: trim only trailing whitespaces
This is fix for --format regression introduced by commit
2b93079a5d1baa4d; it caused that --format='%s%n%n%b%n' (see the
doubled %n string) had no effect anymore. This format
specification has been used e.g. by GNU paxuitils (commit
edfd8bcc3).
* build-aux/gitlog-to-changelog (main): Stop squashing multiple
newlines in commmit messages.
2015-09-23 Paul Eggert <eggert@cs.ucla.edu>
Test that c_iscntrl agrees with iscntrl, etc.
Suggested by Daniel Richard G. in:
http://lists.gnu.org/r/bug-gnulib/2015-09/msg00034.html
* modules/c-ctype-tests (Depends-on): Add ctype.
* tests/test-c-ctype.c: Include <ctype.h>.
(NCHARS): New constant.
(test_agree_with_C_locale): New function.
(main): Use it.
(test_all): Use named constants.
c-ctype: improve c_isascii testing
* tests/test-c-ctype.c (test_all): Port c_isascii test to EBCDIC.
Add a test to count the number of ASCII characters.
2015-09-22 Paul Eggert <eggert@cs.ucla.edu>
savewd: remove SAVEWD_CHDIR_READABLE
It was problematic in the light of file systems that ignore umask.
Problem reported by Sebastian Unger in: http://bugs.gnu.org/21534
* NEWS: Document this.
* lib/mkancesdirs.c (mkancesdirs): MAKE_DIR now returns 0 if
successful, -1 (setting errno) on failure, rather than something
more complicated than that.
* lib/mkdir-p.c (make_dir_parents):
Do not use SAVEWD_CHDIR_READABLE.
* lib/savewd.c (savewd_chdir):
Remove support for SAVEWD_CHDIR_READABLE.
* lib/savewd.h (SAVEWD_CHDIR_READABLE): Remove.
c-ctype: port better to EBCDIC
Problems reported by Daniel Richard G. in
http://lists.gnu.org/r/bug-gnulib/2015-09/msg00020.html
* lib/c-ctype.c: Include <limits.h>, for CHAR_MIN and CHAR_MAX.
Include "verify.h".
(C_CTYPE_ASCII, C_CTYPE_CONSECUTIVE_DIGITS)
(C_CTYPE_CONSECUTIVE_LOWERCASE, C_CTYPE_CONSECUTIVE_UPPERCASE):
Define as enum constants with value false, if not defined, so that
code can use 'if' instead of 'ifdef'. Using 'if' helps make the
code more portable, as both branches of the 'if' are compiled on
all platforms.
(C_CTYPE_EBCDIC): New constant.
Verify that the character set is either ASCII or EBCDIC.
(to_char): New static function.
(c_isascii, c_iscntrl):
Assume standard control-character assignments for EBCDIC.
(c_isalnum, c_isalpha, c_isdigit, c_islower, c_isgraph, c_isprint)
(c_ispunct, c_isupper, c_isxdigit, c_tolower, c_toupper):
Rewrite to use 'if' instead of 'ifdef'.
Use to_char if non-ASCII. Prefer <= to >=.
Prefer true and false to 1 and 0, for booleans.
(c_iscntrl): Use 'if', not 'ifdef'.
* modules/c-ctype (Depends-on): Add verify.
* tests/test-c-ctype.c: Include <limits.h>, for CHAR_MIN
(to_char): New function.
(test_all): Port to EBCDIC. Add some more tests, e.g., for c_ispunct.
2015-09-21 Pádraig Brady <P@draigBrady.com>
nanosleep: fix return code for interrupted replacement
* lib/nanosleep.c (nanosleep): In the replaced nanosleep, ensure
that we return -1 in the case the call is interrupted by a signal,
rather than the current value of 1.
Diagnosed and tested by Daniel Richard G.
2015-09-19 Paul Eggert <eggert@cs.ucla.edu>
Diagnose ERE '()|\1'
Problem reported by Hanno Böck in: http://bugs.gnu.org/21513
* lib/regcomp.c (parse_reg_exp): While parsing alternatives, keep
track of the set of previously-completed subexpressions available
before the first alternative, and restore this set just before
parsing each subsequent alternative. This lets us diagnose the
invalid back-reference in the ERE '()|\1'.
regex: merge patches from libc
2015-09-08 Joseph Myers <joseph@codesourcery.com>
Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).
* lib/regex_internal.h:
Include <libc-lock.h> instead of <bits/libc-lock.h>.
2015-06-09 Joseph Myers <joseph@codesourcery.com>
Fix regcomp wcscoll, wcscmp namespace (bug 18497).
* lib/regcomp.c (build_range_exp): Call __wcscoll instead of
wcscoll.
* lib/regexec.c (check_node_accept_bytes): Likewise.
2015-06-05 Joseph Myers <joseph@codesourcery.com>
Fix regex wcrtomb namespace (bug 18496).
* lib/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb
instead of wcrtomb.
2015-06-05 Joseph Myers <joseph@codesourcery.com>
Fix regex wctype namespace (bug 18495).
* lib/regcomp.c (re_compile_fastmap_iter): Call __towlower
instead of towlower.
* lib/regex_internal.c (build_wcs_upper_buffer): Call __iswlower
instead of iswlower. Call __towupper instead of towupper.
* lib/regex_internal.h (IS_WIDE_WORD_CHAR): Call __iswalnum
instead of iswalnum.
2015-01-07 Chris Metcalf <cmetcalf@ezchip.com>
* lib/regcomp.c (parse_bracket_exp): Initialize type to
COLL_SYM in a couple of places to avoid uninitialized variable
wanings on tilegx gcc 4.8.2.
2014-11-24 Siddhesh Poyarekar <siddhesh@redhat.com>
* lib/regex_internal.h: Remove NOT_IN_libc.
2014-11-17 Andreas Schwab <schwab@suse.de>
* lib/regex_internal.h: Don't include <locale/elem-hash.h>.
2014-09-11 Roland McGrath <roland@hack.frob.com>
Move findidx nested functions to top-level.
* lib/regcomp.c [_LIBC]: #include <locale/weight.h>.
(build_equiv_class) [_LIBC]: Don't #include it inside the function.
Pass new arguments to findidx.
* lib/regexec.c [RE_ENABLE_I18N] [_LIBC]: #include <locale/weight.h>.
[RE_ENABLE_I18N] (check_node_accept_bytes) [_LIBC]:
Don't #include it inside the function. Pass new arguments to findidx.
* lib/regex_internal.h:
[!NOT_IN_libc] [_LIBC]: #include <locale/weight.h>.
(re_string_elem_size_at): Don't #include it inside the function.
Pass new arguments to findidx.
2014-08-01 Siddhesh Poyarekar <siddhesh@redhat.com>
Check if DEBUG is defined in regex_internal.c
* lib/regex_internal.c: Check if DEBUG is defined and is set.
2015-09-08 Assaf Gordon <assafgordon@gmail.com>
ceill: detect buggy OpenBSD implementation
* m4/ceill.m4 (gl_FUNC_CEILL): Detect buggy openBSD implementation
which returns zero for small values. Discussed here:
http://lists.gnu.org/r/bug-gnulib/2015-08/msg00010.html
2015-09-08 Dave Chiluk <chiluk@canonical.com>
mountlist: add me_mntroot field on Linux machines
* lib/mountlist.c (read_file_system_list): Populate me_mntroot in
mount_entry so Linux machines based on /proc/self/mountinfo can
distinguish between bind mounts and original mounts. In reality bind
mounts aren't treated differently than mountroot=/ mounts by the
kernel, but the user often wants these bind mounts distinguished.
* lib/mountlist.h (struct mount_entry): Add me_mntroot element.
More details at https://pad.lv/1432871
2015-09-08 Christian Egli <christian.egli@sbs.ch>
doc: Describe to use multiple instances of gnulib
* doc/gnulib-tool.texi: Add a section to the manual outlining how two
instances of gnulib with different modules can be used, for example one
for a lib and another one for associated tools.
2015-09-01 Pádraig Brady <P@draigBrady.com>
base32: mark function as __attribute__ const
* lib/base32.h (isbase32): Mark __attribute__ const as
suggested by GCC, and consistent with the base64 module.
2015-08-20 Daiki Ueno <ueno@gnu.org>
gnulib-tool: don't transform binary files with sed
* gnulib-tool (func_add_or_update): Don't apply sed_transform_* to
.mo and .class files.
Reported by Denis Denisov.
2015-08-10 Daiki Ueno <ueno@gnu.org>
gperf: respect silent rules
* modules/gperf (Makefile.am): Define V_GPERF, V_GPERF_, and
V_GPERF_0 for silent rules.
* modules/iconv_open (Makefile.am): Use V_GPERF.
* modules/unicase/locale-language (Makefile.am): Likewise.
* modules/unicase/special-casing (Makefile.am): Likewise.
* modules/unictype/category-byname (Makefile.am): Likewise.
* modules/unictype/combining-class-byname (Makefile.am): Likewise.
* modules/unictype/joininggroup-byname (Makefile.am): Likewise.
* modules/unictype/joiningtype-byname (Makefile.am): Likewise.
* modules/unictype/property-byname (Makefile.am): Likewise.
* modules/unictype/scripts (Makefile.am): Likewise.
* modules/uninorm/composition (Makefile.am): Likewise.
2015-08-03 Paul Eggert <eggert@cs.ucla.edu>
Improve port of stdalign to C++11
Problem reported by Sundaram in:
http://lists.gnu.org/r/bug-gnulib/2015-08/msg00003.html
* lib/stdalign.in.h (alignof, alignas): Don't define if C++11 or newer.
(__alignas_is_defined): Define if C++11 or newer.
2015-08-01 Assaf Gordon <assafgordon@gmail.com> (tiny change)
pmccabe2html: fix gawk regex escaping
* build-aux/pmccabe2html: Add one more backslash to properly
escape the gsub replacement value. Fixes this error:
gawk: ./build-aux/pmccabe2html:425: \
warning: escape sequence `\&' treated as plain `&'
2015-07-29 Paul Eggert <eggert@cs.ucla.edu>
time_rz: port to pedantic memcpy
* lib/time_rz.c (tzalloc): Pacify pedantic memcpy implementations
that reject memcpy (..., NULL, 0).
2015-07-27 Paul Eggert <eggert@cs.ucla.edu>
time_rz: port better to MinGW
Don't change tzname, as this makes MinGW dump core (Bug#21020).
Instead, store the tzname copy in the struct tm_zone object.
Problem reported by Eli Zaretskii in: http://bugs.gnu.org/21020#48
* lib/strftime.c [!_LIBC]:
* lib/time_rz.c: Include time-internal.h.
* lib/strftime.c (strftime_case_) [!HAVE_TM_ZONE]: Infer the zone
name from *TZ rather than from TZNAME, doable because *TZ now has
a tzname_copy member.
* lib/time-internal.h: New file, with contents taken from
lib/time_rz.c. It's separate because strftime.c now accesses
struct tm_zone members.
(struct tm_zone) [HAVE_TZNAME && !HAVE_TM_ZONE]:
New member tzname_copy.
* lib/time_rz.c (struct tm_zone): Move to time-internal.h.
(tzalloc) [HAVE_TZNAME && !HAVE_TM_ZONE]:
Initialize tzname_copy member.
(save_abbr) [HAVE_TZNAME && !HAVE_TM_ZONE]: Save abbreviation
in tzname_copy member.
(revert_tz) [HAVE_TZNAME]: Remove no-longer-needed tzname saving.
(restore_tzname): Remove; no longer needed. All calls removed.
* modules/time_rz (Files): Add lib/time-internal.h.
time: port __need_time_t to MinGW
* lib/time.in.h (__need_time_t): Do not treat specially on MinGW.
Fix reported by Eli Zaretskii in: http://bugs.gnu.org/21020#36
2015-07-25 Paul Eggert <eggert@cs.ucla.edu>
strftime: fix newly-introduced bug on Solaris
* lib/strftime.c (strftime_case_): Set the local variable 'zone'
consistently at the start, rather than doing some of the setup at
the start and some in the %Z format spec. This is cleaner, and
works better with time_rz on platforms like Solaris where struct
tm lacks a tm_zone member, as when !HAVE_TM_GMTOFF %z's calls to
mktime_z and localtime_rz can mess up the tzname cache.
test-strftime: test for Solaris bug
* modules/strftime-tests (Depends-on): Add strerror.
* tests/test-strftime.c: Include <errno.h>.
(posixtm_test): New function, containing the old 'main'.
(struct tzalloc_test, struct localtime_rz_test): New types.
(TZ, LT): New static vars.
(tzalloc_test): New function.
(main): Rewrite in terms of posixtm_test and tzalloc_test.
time_rz: port to Solaris etc.
Works around a tzname problem on platforms like Solaris that have
tzname but not tm_zone, by setting tzname at the appropriate time
and restoring it later.
* lib/time_rz.c (tzname_address, tzname_value) [HAVE_TZNAME]:
New static vars.
(save_abbr) [HAVE_TZNAME]: Set them.
(revert_tz) [HAVE_TZNAME]: Clear or use them.
(restore_tzname): New function.
(localtime_rz, mktime_z): Use it.
time_rz: now LGPL
* modules/time_rz (License): Now LGPL, because strftime depends on it.
time_rz: make a constant 'const'
* lib/time_rz.c (local_tz): Now const.
time_rz: fix off-by-one typo
* lib/time_rz.c (extend_abbrs): Fix off-by-one typo.
2015-07-23 Paul Eggert <eggert@cs.ucla.edu>
fprintftime, strftime: use timezone_t args
* NEWS: Document the change.
* lib/fprintftime.h (fprintftime):
* lib/strftime.c (extra_args) [my_strftime]:
* lib/strftime.h (nstrftime):
Time zone arg is now of type timezone_t, not int.
* lib/strftime.c (mktime_z) [_LIBC]: New macro.
(__gmtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: Remove; no longer used.
(my_strftime) [emacs && !my_strftime]:
(emacs_strftimeu) [emacs && !FPRINTFTIME]:
Remove; Emacs doesn't need this any more.
(HAVE_TZSET) [my_strftime]: Unset, since we no longer want
fprintftime and nstrftime to call tzset.
(ut) [!my_strftime]: Remove, replacing with ...
(tz) [!my_stftime]: ... this new macro. All uses changed.
(strftime_case_): Use localtime_rz and mktime_z instead
of localtime_r and mktime.
* modules/fprintftime (Depends-on): Add time_rz.
* modules/strftime (Depends-on): Add time_rz. Remove time_r.
* tests/test-strftime.c (main): Adjust to new nstrftime API.
time_rz: new module
* MODULES.html.sh: Add time_rz.
* lib/time_rz.c, m4/time_rz.m4, modules/time_rz: New files.
* lib/time.in.h (timezone_t, tzalloc, tzfree, localtime_rz, mktime_z):
New decls if _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS):
New var HAVE_TIMEZONE_T (default 0).
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS):
New var GNULIB_TIME_RZ (default 0).
* modules/time (time.h): Substitute the new vars.
flexmember: license is now unlimited
* modules/flexmember (License): Change to unlimited,
since its only source file gives an unlimited license.
2015-07-15 Eric Blake <eblake@redhat.com>
maint: update copyright paper procedures
* config/srclist.txt: Drop outdated files.
* doc/Copyright/conditions.txt: Update to latest.
* doc/Copyright/assign.changes.manual: Delete.
* doc/Copyright/assign.future.manual: Likewise.
* doc/Copyright/assign.manual: Likewise.
* doc/Copyright/assign.translation.manual: Likewise.
* doc/Copyright/disclaim.changes.manual: Likewise.
* doc/Copyright/disclaim.manual: Likewise.
* doc/Copyright/disclaim.program: Likewise.
2015-07-07 Daiki Ueno <ueno@gnu.org>
localename: fix link error on Illumos
Illumos defines __sun, but does not have getlocalename_l nor the
equivalent. This partially reverts commit 387c214.
* m4/localename.m4 (gl_LOCALENAME): Check if getlocalename_l is
available, as well as uselocale.
* lib/localename.c [HAVE_USELOCALE && __sun]: Don't fallback to
use getlocalename_l if it is not available.
2015-07-07 Daiki Ueno <ueno@gnu.org>
unistr/uN-strtok-tests: avoid a trivial leak
* tests/unistr/test-u-strtok.h (test_u_strtok): Untabify. Free
input and delim after the multibyte delimiter tests.
2015-07-04 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl, acl-permissions: fix HP-UX typos
Problem reported by John David Anglin in: http://bugs.gnu.org/20979
* lib/file-has-acl.c (file_has_acl):
* lib/set-permissions.c (context_acl_from_mode)
(context_aclv_from_mode, set_acls):
Fix some obvious typos when HAVE_GETCL /* HP-UX */.
They were introduced by the recent ACL changes.
regex: match current GNU grep behavior
These symbols have not matched GNU grep behavior for quite some time.
Fix prompted by Balazs Kezes bug report at: http://bugs.gnu.org/20974
* lib/regex.h (RE_SYNTAX_GREP, RE_SYNTAX_EGREP):
Change to match current GNU behavior.
Simplify by expressing it as differences from POSIX BREs and EREs.
(RE_SYNTAX_POSIX_EGREP): No longer differs from GNU behavior.
2015-07-03 Jim Meyering <meyering@fb.com>
set-permissions.c: adjust acl_from_mode's cpp guard
* lib/set-permissions.c (acl_from_mode): Guard with #ifdef
directives identical to those guarding the sole use.
Otherwise, on some systems, we'd get a warning about
the function being defined but not used.
Also, filter through cppi to correct misleading indentation
of cpp directives.
2015-07-03 Pádraig Brady <P@draigBrady.com>
tests: restrict shells to those that support 'local'
The local keyword is very widely supported and used
in tests in coreutils and grep at least. Therefore
restrict to testing with shells that support it.
This mainly excludes /bin/sh on Solaris.
* tests/init.sh (gl_shell_test_script_): Add a test for 'local'.
2015-07-03 Seiya Kawashima <skawashima@uchicago.edu> (tiny change)
and Daiki Ueno <ueno@gnu.org>
unistr/uN-strtok: handle multibyte delimiters
Previously, uN_strtok moved PTR to the next unit to the token end.
When DELIM contained a multibyte character, the new position could
be a middle of a multibyte character.
* lib/unistr/u-strtok.h (FUNC): Place PTR at the next character
after the token.
* lib/unistr/u8-strtok.c (U_STRMBLEN): New macro.
* lib/unistr/u16-strtok.c (U_STRMBLEN): New macro.
* lib/unistr/u32-strtok.c (U_STRMBLEN): New macro.
* modules/unistr/u8-strtok (Depends-on): Depend on
unistr/u8-strmblen.
* modules/unistr/u16-strtok (Depends-on): Depend on
unistr/u16-strmblen.
* modules/unistr/u32-strtok (Depends-on): Depend on
unistr/u32-strmblen.
* tests/unistr/test-u-strtok.h: New file.
* tests/unistr/test-u8-strtok.c: New file.
* tests/unistr/test-u16-strtok.c: New file.
* tests/unistr/test-u32-strtok.c: New file.
* modules/unistr/u8-strtok-tests: New file.
* modules/unistr/u32-strtok-tests: New file.
* modules/unistr/u16-strtok-tests: New file.
2015-07-02 Friedrich Haubensak <hsk@fli-leibniz.de>
update-copyright: fix test failure with perl >= 5.22 (trivial)
* build-aux/update-copyright: Escape a literal left curly bracket,
required with perl >= 5.22
2015-07-02 Daiki Ueno <ueno@gnu.org>
u{16,32}-strstr-tests: relax timeout condition
On slower platforms (e.g., Solaris 10/SPARC), u{16,32}-strstr
tests can take longer than 5 seconds to complete.
Reported by Dagobert Michelsen in:
https://lists.gnu.org/r/bug-libunistring/2015-06/msg00006.html
* tests/unistr/test-u16-strstr.c (main): Increase timeout from 5
seconds to 10 seconds.
* tests/unistr/test-u32-strstr.c (main): Likewise.
2015-07-01 Pavel Raiskup <praiskup@redhat.com>
gnulib-common.m4: change the ARFLAGS default to 'cr'
In some GNU/Linux distributions people started to compile 'ar'
binary with --enable-deterministic-archives (binutils project).
That, however, in combination with previous autotools long time
working default AR{_,}FLAGS=cru causes warnings on such
installations:
ar: `u' modifier ignored since `D' is the default (see `U')
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Set ARFLAGS='cr' if not
set already.
2015-07-01 Pavel Raiskup <praiskup@redhat.com>
selinux-h: avoid double free after *getfilecon()
Originally reported by Ben Shelton on bug-tar:
http://lists.gnu.org/r/bug-tar/2015-04/msg00009.html
* lib/getfilecon.c (map_to_failure): Set the already freed '*con'
pointer to NULL. Man getfilecon(3) says that any non-NULL '*con'
param should be freed by freecon(3) (regardless the return value).
2015-07-01 Pavel Fedin <p.fedin@samsung.com>
fix pty related tests issues on Windows (trivial)
* lib/grantpt.c (grantpt): grantpt.c seems to be never used on Windows,
however it's still present in tests/ subdirectory of the final project.
Therefore avoid it to pass `make check`.
* tests/test-openpty.c (main): Windows has no PTYs and gnulib's openpty()
will just return -ENOSYS, so avoid this non applicable test allowing
the build to proceed.
2015-07-01 Pádraig Brady <P@draigBrady.com>
acl: fix definition of acl_from_mode on FreeBSD
This was causing basic coreutils copy operations to fail
with ENOTSUP or ENOENT error messages.
* lib/acl-internal.h (acl_from_mode): Only define when
! defined HAVE_ACL_FROM_TEXT. That allows the version
of acl_from_mode() defined in lib/set-permissions.c to
be used on FreeBSD at least.
* lib/set-permissions.c: Fix up comment spelling,
and a redundant variable assignment; noticed in passing.
2015-06-30 Pádraig Brady <P@draigBrady.com>
readutmp: port to FreeBSD >= 9
* lib/readutmp.h: Map utmpxname() to setutxdb().
With that coreutils who(1) and pinky(1) tests pass.
2015-06-30 Paul Eggert <eggert@cs.ucla.edu>
mgetgroups: port to strict OS X
The previous fix wasn't working, so use a bigger hammer (Bug#20923).
* lib/mgetgroups.c: Ignore -Wpointer-sign diagnostics.
(getgrouplist_gids) [HAVE_GETGROUPLIST]: Remove. All uses removed.
* m4/mgetgroups.m4 (gl_MGETGROUPS): Revert recent changes.
2015-06-29 Paul Eggert <eggert@cs.ucla.edu>
mgetgroups: port to strict OS X
* doc/glibc-functions/getgrouplist.texi (getgrouplist):
Document the getgrouplist problem.
* lib/mgetgroups.c (getgrouplist_gids) [HAVE_GETGROUPLIST]:
New macro.
(mgetgroups): Use it.
* m4/mgetgroups.m4 (gl_MGETGROUPS):
Check for OS X signature for getgrouplist.
2015-06-29 Jim Meyering <meyering@fb.com>
linkat: fix invalid definition of LINKAT_SYMLINK_NOTSUP on OS X
It started like this when building coreutils' latest on OS X,
invoking ./configure with a nonempty --cache=.cache:
lib/linkat.c:46:42: error: operator '||' has no right operand
lib/linkat.c: In function 'rpl_linkat':
lib/linkat.c:330:27: error: #if with no expression
Here's linkat.c's line 46:
#if !HAVE_LINKAT || LINKAT_SYMLINK_NOTSUP
Here's some context:
$ grep linkat_nofoll .cache
gl_cv_func_linkat_nofollow=${gl_cv_func_linkat_nofollow=no}
$ grep LINKAT_SYM lib/config.h
#define LINKAT_SYMLINK_NOTSUP
The problem is that m4/linkat.m4's gl_FUNC_LINKAT
uses AC_CACHE_CHECK to set LINKAT_SYMLINK_NOTSUP,
but that violates a tenet of AC_CACHE_CHECK: it must
have no side effect other than setting its cache variable.
What happens is that when the cache is set, we'd skip the
code in that AC_CACHE_CHECK call, and leave LINKAT_SYMLINK_NOTSUP
defined to whatever value it happened to have in configure's
environment. In my case, it was not defined, so this later code:
AC_DEFINE_UNQUOTED([LINKAT_SYMLINK_NOTSUP], [$LINKAT_SYMLINK_NOTSUP],
[Define to 1 if linkat can create hardlinks to symlinks])
would emit code with an empty RHS.
* m4/linkat.m4 (gl_FUNC_LINKAT): Move the setting of
$LINKAT_SYMLINK_NOTSUP out of the AC_CACHE_CHECK code block.
2015-06-28 Jim Meyering <meyering@fb.com>
mountlist: avoid an unused-label warning on OS X
* lib/mountlist.c (read_file_system_list) [MOUNTED_GETMNTINFO]:
Building on OS X, I saw a warning about the "free_then_fail" label
being unused. Give it the _GL_UNUSED_LABEL attribute.
error.c: correct printf-style format: %d -> %u
* lib/error.c (error_at_line): Correct __fxprintf format to use %u,
rather than %d, to match the type of "line_number", unsigned int.
2015-06-25 Pádraig Brady <P@draigBrady.com>
fts: avoid reading beyond the heap allocation
GCC 5.1.1 with -O2 and -fsanitize=address reports
a read of size 4 from a heap object of size 3 is indeed invalid,
though this may be due to incorrect padding assumptions by GCC, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66661
* lib/fts.c (fts_alloc): Increase allocation to alignof(FTSENT).
* modules/fts: Depend on stdalign.
2015-06-24 Pádraig Brady <P@draigBrady.com>
savedir: avoid undefined behavior in qsort call
GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning:
"runtime error: null pointer passed as argument 1,
which is declared to never be null"
* lib/savedir.c (streamsavedir): Avoid the call with no entries.
2015-06-24 Pádraig Brady <P@draigBrady.com>
userspec: avoid undefined behavior in gettext call
GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning:
"runtime error: null pointer passed as argument 2,
which is declared to never be null"
* lib/userspec.c (parse_with_separator): Avoid passing NULL to gettext()
2015-06-20 Glenn Morris <rgm@gnu.org>
gitlog-to-changelog: improve gitmerge.el commits
Let the Emacs ChangeLog generation process exclude "skipped"
messages from merge commits (Bug#20717).
* build-aux/gitlog-to-changelog: Handle gitmerge.el skipped commits.
2015-06-20 Paul Eggert <eggert@cs.ucla.edu>
wchar: fix MinGW compilation warnings
This lets Texinfo compile cleanly. See Eli Zaretskii in:
http://lists.gnu.org/r/bug-gnulib/2015-06/msg00050.html
* lib/wchar.in.h: Do not use special invocation convention on MinGW.
2015-06-20 Daiki Ueno <ueno@gnu.org>
uniname/uniname-tests: use pristine data files
For copyright and maintenance reasons, use the data files from UCD
without modification.
* tests/uniname/test-uninames.c (FIELDLEN): Remove.
(getfield): Remove.
(aliases_count): New global variable.
(fill_names): Skip comments and empty lines in the input. Don't
use getfield.
(fill_aliases): Likewise.
(main): Change the expected command line arguments to:
NAMES... ["--" ALIASES...].
* tests/uniname/test-uninames.sh: Adjust to the change in
test-uninames.c.
* tests/uniname/UnicodeDataNames.txt: Remove.
* tests/uniname/UnicodeData.txt: New file, from Unicode 8.0.0.
* tests/uniname/NameAliases.txt: Use the pristine copy of the data
file from Unicode 8.0.0.
2015-06-19 Pádraig Brady <P@draigBrady.com>
linked-list, linkedhash-list: avoid compiler warnings
* lib/gl_anytree_list2.h: Add _GL_ATTRIBUTE_PURE to avoid
-Werror=suggest-attribute=pure (from GCC 5.1.1).
2015-06-19 Daiki Ueno <ueno@gnu.org>
libunistring: bump minimum version to 0.9.6
* all modules depending on updated Unicode data: Regenerate.
The modules are listed by a script that does:
- for each file listed by: git show --oneline --name-only 705f4efc
- deduce the containing modules, based on "Files:"
- deduce the modules which depend on the containing modules, based
on "Depends-on:"
2015-06-18 Daiki Ueno <ueno@gnu.org>
uniname/uniname: update to Unicode 8.0.0
* lib/uniname/uninames.h: Regenerate.
* tests/uniname/NameAliases.txt: Update from Unicode 8.0.0.
* tests/uniname/UnicodeDataNames.txt: Update from Unicode 8.0.0.
2015-06-18 Daiki Ueno <ueno@gnu.org>
libunistring: update to Unicode 8.0.0
* lib/gen-uni-tables.c (SIZEOF): New macro.
(output_numeric): Increase the maximum number of fractions from
128 to 160. Increase the level3 value width from 7 bits to 8
bits. Use SIZEOF instead of a hard-coded integer.
(output_blocks): Decrease the cut-off threshold from 0x30000 to
0x28000.
(fill_blocks): Increase the maximum number of blocks from 256 to
384. Use SIZEOF instead of a hard-coded integer.
(get_lbp): Adjust to new characters added in Unicode 8.0.0.
* lib/unictype/numeric.c (uc_numeric_value): Adjust the level3
value width.
* lib/unilbrk/lbrktables.c (unilbrk_table): Implement LBP21b and
a new case added to LBP22.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+08E3,
U+A69E, U+FE2E..U+FE2F, U+111CA..U+111CC, U+11300,
U+115DC..U+115DD, U+1171D..U+1171F, U+11722..U+11725,
U+11727..U+1172B, U+1DA00..U+1DA36, U+1DA3B..U+1DA6C, U+1DA75,
U+1DA84, U+1DA9B..U+1DA9F, and U+1DAA1..U+1DAAF.
* 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-06-16 Pádraig Brady <P@draigBrady.com>
gnu-web-doc-update: add --mirror to remove stale files
* build-aux/gnu-web-doc-update: Add a --mirror option to remove
out of date files from the CVS server. Since this is usually
appropriate, a prompt is given when the option is not specified,
along with the `cvs remove` command that would be run.
2015-06-06 Paul Eggert <eggert@cs.ucla.edu>
acl-permissions: pacify -Wsuggest-attribute=const
Problem reported by Masanari Iida in: http://bugs.gnu.org/20753
* lib/acl-internal.h (free_permission_context):
Declare with attribute const if ! (defined USE_ACL &&
(HAVE_ACL_GET_FILE || defined GETACL)).
fsync: document AIX misbehavior
* doc/posix-functions/fsync.texi (fsync):
Document failure on AIX with read-only file descriptor.
2015-06-05 Jonathan Perkin <jperkin@joyent.com> (tiny change)
stdio: Don't redefine gets when using C++
* lib/stdio.in.h (gets): Disable warning on C++.
2015-06-05 Paul Eggert <eggert@cs.ucla.edu>
acl-permissions: port to AIX, C89 HP-UX
Problems reported by Michael Felt.
* lib/file-has-acl.c (file_has_acl) [HAVE_STATACL]:
* lib/get-permissions.c (get_permissions) [USE_ACL && HAVE_STATACL]:
* lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]:
* lib/set-permissions.c (set_acls) [HAVE_ACLX_GET && ACL_AIX_WIP]:
Add cast for AIX, whose system calls are declared to accept
char * even though the arguments are really char const *.
* lib/get-permissions.c (get_permissions):
If USE_ACL && HAVE_GETACL /* HP-UX */, don't assume C99.
If USE_ACL && HAVE_STATACL /* older AIX */, add missing decl
that broke a build.
* lib/mountlist.c (read_file_system_list) [MOUNTED_VMOUNT]:
Rework types to pacify xlc.
2015-06-03 Pádraig Brady <P@draigBrady.com>
vasprintf-posix: avoid compiling vasnprintf where possible
* modules/vasprintf-posix: Avoid compiling the large vasnprintf
module where not required. For example on a GNU/Linux system
when gnulib-tool is run with the --conditional-dependencies option.
2015-06-02 Pádraig Brady <P@draigBrady.com>
file-has-acl: fix build on Mac OS X 10
This reverts commit f1b37e3a which doesn't work on Mac OS X >= 10.4
which has an incompatible 6 parameter getxattr() call.
* doc/glibc-functions/getxattr.texi: Mention the divergent getxattr()
call on Mac OS X >= 10.4.
* doc/glibc-functions/fgetxattr.texi: Likewise.
* lib/file-has-acl.c: Revert to more complete combined check.
* m4/acl.m4 (gl_FILE_HAS_ACL): Likewise.
Reported by Jack Howarth.
2015-06-02 Pádraig Brady <P@draigBrady.com>
prefix-gnulib-mk: remove no longer needed special case
* build-aux/prefix-gnulib-mk (prefix): Since commit e3704b9c,
continued lib_SOURCES lines are no longer present,
so special case handling of such entries is not required.
2015-06-01 Pádraig Brady <P@draigBrady.com>
acl: don't depend on the deprecated qacl module
* modules/acl (Depends-on): Use q{copy,set}-acl instead.
2015-06-01 Pádraig Brady <P@draigBrady.com>
gnulib-tool: concatenate lib_SOURCES to a single line
* gnulib-tool: Refactor the line merging sed logic,
and use that to output a single lib_SOURCES line for each module.
gnulib using projects often postprocess this output to prepend
subdir paths to each item, and having a single line simplifies this
processing allowing better decoupling from the gnulib-tool output.
2015-06-01 Pavel Fedin <p.fedin@samsung.com>
pthread_sigmask: discount system version if a simple macro (trivial)
MinGW64 has: #define pthread_sigmask(H, S1, S2) 0
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Call the
function to ensure it's available.
2015-05-31 Pádraig Brady <P@draigBrady.com>
readlinkat: avoid OS X 10.10 trailing slash bug
* doc/posix-functions/readlink.texi: Mention that OS X 10.10
has this bug.
* doc/posix-functions/readlinkat.texi: Likewise. Also mention
that OS X 10.10 has this function.
* lib/readlinkat.c (rpl_readlinkat): Handle the trailing slash bug,
as done for readlink().
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Check for the readlink()
trailing slash bug, and assume readlinkat() has the same issue.
Also fix a typo where $gl_cv_decl_readlink_works was tested,
rather than the correct $gl_cv_decl_readlinkat_works.
2015-05-29 Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
acl-permissions: Fix build on Mac OS X and older AIX (Bug#20681)
* lib/set-permissions.c (set_acls): Fix more errors introduced in the acl
module rewrite.
acl-permissions: Fix build on Solaris and Cygwin
Reported by Tom G. Christensen <tgc@jupiterrise.com>:
* lib/set-permissions.c (set_acls): The count, entries, ace_count, and
ace_entries variables have moved into struct permission_context but
they were still accessed as local variables here.
2015-05-29 Pádraig Brady <P@draigBrady.com>
linkat: avoid OS X 10.10 trailing slash with symlink bug
On Darwin 14.3.0 linkat(,"path1",,"dangling_symlink/",)
causes the symlink to be dereferenced, and if it points
to a non existent file, that file will be created as
a hard link to "path1".
This fixes a test failure in test-linkat.c.
* m4/linkat.m4 (gl_FUNC_LINKAT): Augment the test with
this case. The existing workaround in linkat.c for
trailing slash issues, suffices for this case.
* doc/posix-functions/linkat.texi: Add OS X 10.10 to
the list of platforms with trailing slash issues.
2015-05-28 Pádraig Brady <P@draigBrady.com>
unlinkat: handle ignoring of ".." on Darwin 14
* lib/unlinkat.c: unlinkat() has the same bug as unlink()
on Mac OS X 10.10, where it ignores paths with a trailing "..",
so handle in the same manner.
* m4/unlinkat.m4: Comment on this Darwin issue.
* doc/posix-functions/unlink.texi: Update the latest version
where the issue was seen.
* doc/posix-functions/unlinkat.texi: Mention this issue.
Fixes a test failure in test-unlinkat.c.
2015-05-27 Paul Eggert <eggert@cs.ucla.edu>
qacl: split into qcopy-acl and qset-acl
Emacs needs the former, but not the latter.
* modules/acl-permissions: New file, containing most of the old qacl.
* modules/file-has-acl (Depends-on): Depend on acl-permissions, not qacl.
* modules/qacl: Now merely depends on qcopy-acl and qset-acl.
* modules/qcopy-acl, modules/qset-acl: New files.
* MODULES.html.sh (File system functions):
Mention the new modules, and mention qacl while we're at it.
2015-05-27 Glenn Morris <rgm@gnu.org>
gitlog-to-changelog: new option --ignore-line
(This patch is imported from the GNU Emacs master.)
This option ignores individual commit lines matching a pattern.
* build-aux/gitlog-to-changelog: Add --ignore-line option.
2015-05-27 Andreas Gruenbacher <agruenba@redhat.com>
qacl: Reimplement qset_acl and qcopy_acl (Bug#20666)
Implement get_permissions and set_permissions primitives for getting all
the permissions of a file, storing them, and later setting them. (In the
minimal case, the permissions consist only of a file mode.) Reimplement
qset_acl and qcopy_acl based on these new primitives: this avoids code
duplication and makes error handling more consistent.
The Solaris and Cygwin code still uses duplicate code paths for setting
a file mode while making sure that no acls exist and setting an explicit
acl; this is no worse than before, but could be cleaned up. The AIX
code still doesn't read ACLs, it only makes sure that acls don't get in
the way when setting a file mode.
* lib/acl-internal.h (struct permission_context): New data structure.
(get_permissions, set_permissions, free_permission_context): Declare.
* lib/acl-internal.c (free_permission_context): New helper function.
* lib/get-permissions.c (get_permissions): New helper function split off
from qcopy_acl.
* lib/set-permissions.c: (set_acls_from_mode): On Solaris, Cygwin, and
AIX, set a file's permissions based only on a file mode.
(acl_from_mode, context_acl_from_mode, context_aclv_from_mode): All
other platforms construct a temporary acl from the file mode and set
that acl in the same way as setting an acl read from the source file.
This should help avoid code duplication and inconsistent / buggy
behavior.
(set_acls): New helper function Split off from qcopy_acl.
(chmod_or_fchmod): Moved here from qset-acl.c.
(set_permissions): New helper function.
* lib/qcopy-acl.c (qcopy_acl): Rewrite using get_permissions and
set_permissions.
* lib/qset-acl.c (qset_acl): Rewrite using set_permissions.
* modules/qacl: Add get-permissions.c and set-permissions.c.
file-has-acl: Split feature tests again (Bug#20667)
* lib/file-has-acl.c: Instead of testing for
XATTR_NAME_POSIX_ACL_ACCESS and XATTR_NAME_POSIX_ACL_DEFAULT,
define them when needed.
* m4/acl.m4 (gl_FILE_HAS_ACL): With that, Paul's
GETXATTR_WITH_POSIX_ACLS change shouldn't be needed anymore.
2015-05-27 Pádraig Brady <P@draigBrady.com>
string: fix build failure on BSD/OSX with FORTIFY_SOURCE
This avoids a conflict with "FORTIFY_SOURCE" variants
of the string functions when they're replaced on NetBSD-6.0.1
and Darwin-14.3.0 at least.
* lib/string.in.h: Avoid including our "lib/string.h" while
including the system <string.h>.
2015-05-26 Eric Blake <eblake@redhat.com>
stdio: limit __gnu_printf__ witness to gcc 4.4+
* lib/error.h (_GL_ATTRIBUTE_SPEC_PRINTF): Move gcc version probe...
* m4/stdio_h.m4 (gl_STDIO_H): ...here.
error: use correct printf attributes on mingw
* lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF): New define.
inttypes: force correct mingw PRIdMAX even without <stdio.h>
* modules/inttypes (Depends-on): Require extensions, so that mingw
always uses GNU style inttypes.
* lib/inttypes.in.h: On mingw, include <stdio.h>.
stdio: fix probe on mingw under gcc 5.1
* m4/stdio_h.m4 (gl_STDIO_H): Change to compile test, to work
around new gcc preprocessor rules.
2015-05-07 Glenn Morris <rgm@gnu.org>
gitlog-to-changelog: parse "Tiny-change"
* build-aux/gitlog-to-changelog: Treat "Tiny-change" like
"Copyright-paperwork-exempt". (Bug#20324)
2015-05-06 Pádraig Brady <P@draigBrady.com>
doc: document glibc posix_fallocate() issues
* doc/posix-functions/posix_fallocate.texi: Mention the
glibc efficiency problems and issues with NFS.
2015-05-05 Karl Berry <karl@freefriends.org>
* build-aux/gendocs.sh (usage): document new css default
for HTML (--htmlarg).
2015-04-29 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: no need for workaround in GCC 5.1
* doc/extern-inline.texi (extern inline):
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
GCC bugs 54113 and 63877 are fixed in GCC 5.1, so don't work
around these bugs in GCC 5.1 and later. Maybe in a decade or
two we can remove these workarounds.
2015-04-28 Pádraig Brady <P@draigBrady.com>
eealloc, pagealign_alloc, xalloc: avoid clang warnings
Avoid [-Wunknown-attributes] warnings like:
warning: unknown attribute '__alloc_size__' ignored
* lib/xalloc.h: Don't use the __alloc_size__ attribute
with clang, as support has been fully removed as of clang 3.5:
https://github.com/llvm-mirror/clang/commit/c047507a
* lib/eealloc.h: Likewise.
* lib/pagealign_alloc.h: Likewise.
2015-04-27 Paul Eggert <eggert@cs.ucla.edu>
tests: pacify GCC 5.1's stricter printf checking
* tests/test-dirname.c (main):
* tests/test-getaddrinfo.c (simple):
* tests/test-getlogin.c (main):
* tests/test-getndelim2.c (main):
* tests/test-inttostr.c (CK):
* tests/test-md5.c (main):
* tests/test-read-file.c (main):
* tests/test-sha1.c (main):
Fix mismatches between printf format and value signedness.
* tests/test-inttostr.c (FMT, CAST_VAL, V_min, V_max):
Remove, as CAST_VAL always returned a value of type uintmax_t.
fts: port to GCC 5.1 with --enable-gcc-warnings
Without this fix, GCC 5.1 (correctly) warns about a subscript
error on the fts_name component of FTSENT. It's actually a
flexible member, so define it that way on C99 or later hosts.
* lib/fts.c (fts_alloc): Use offsetof, not sizeof, for a
structure that now has a flexible array member.
* lib/fts_.h (__FLEXIBLE_ARRAY_MEMBER): New macro.
(FTSENT): fts_name is now flexible on C99-or-later platforms.
* modules/fts (Depends-on): Add flexmember.
2015-04-26 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: port to CentOS 6
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/r/bug-gnulib/2015-04/msg00074.html
* lib/file-has-acl.c: Use GETXATTR_WITH_POSIX_ACLS instead of a
combination of HAVE_SYS_XATTR_H, HAVE_LINUX_XATTR_H, and
HAVE_GETXATTR.
* m4/acl.m4 (gl_FILE_HAS_ACL): Test fot the entire combination of
linux/xattr.h, sys/xattr.h, getxattr, XATTR_NAME_POSIX_ACL_ACCESS,
and XATTR_NAME_POSIX_ACL_DEFAULT, since that's what
file-has-acl.c actually needs.
2015-04-26 Pádraig Brady <P@draigBrady.com>
file-has-acl: always return false when ACLs aren't supported
* lib/file-has-acl.c (file_has_acl): Consistent with other paths,
change the GNU/Linux getxattr path, to transform "not supported"
errors to a false return rather than an error. This is handled
within file_has_acl() due to the platform specific tests to
determine if ACLs are not supported.
2015-04-25 Paul Eggert <eggert@cs.ucla.edu>
gettext: propagate po/Makefile.in.in too
* build-aux/po/Makefile.in.in: Copy from latest gettext.
* config/srclist.txt: In build-aux/po, copy Makefile.in.in and
remove-potcdate.sin from $GETTEXT. This fixes a version mismatch
between Makefile.in.in and the gettext-runtime m4 files.
2015-04-24 Paul Eggert <eggert@cs.ucla.edu>
file-has-acl: new module, split from acl
And add a new module file-has-acl-tests to match.
I ran into a problem with the recent changes to the acl module,
as they introduced a typo 'test use_xattrs = 0' into 'configure'.
When using the fixed version with Emacs, I discovered that
file-has-acl wasn't separated out well enough for Emacs (e.g., it
had multiple libraries, but needed only one), so I fixed that too.
* NEWS: Document this incompatible change.
* modules/file-has-acl, modules/file-has-acl-tests: New files.
* m4/acl.m4 (gl_FUNC_ACL_ARG): New macro, split from gl_FUNC_ACL.
Initialize gl_need_lib_has_acl.
(gl_FUNC_ACL): Require it.
Simplify use of 'test'. Set LIB_HAS_ACL if gl_need_lib_has_acl.
Move the file-has-acl.c-relevant stuff to ...
(gl_FILE_HAS_ACL): ... this new macro. Rewrite to fix 'test
use_xattrs = 0' typo, and omit some needless work. Set
gl_need_lib_has_acl=1 if we'll need LIB_HAS_ACL to be set
when gl_FUNC_ACL is called.
* modules/acl (Files, lib_SOURCES): Remove lib/file-has-acl.c.
(Link): Remove $(LIB_HAS_ACL).
* modules/acl-tests (Files, Depends-on, configure.ac, TESTS)
(check_PROGRAMS): Move stuff relevant to file-has-acl to
modules/file-has-acl-tests.
(test_file_has_acl_LDADD): Move to modules/file-has-acl-tests.
manywarnings: add GCC 5.1 warnings
* build-aux/gcc-warning.spec: Add -Wabi=, -Warray-bounds,
-Warray-bounds=, -Wc++14-compat, -Wc90-c99-compat,
-Wc99-c11-compat, -Wshadow-ivar, -Wsized-deallocation,
-Wsuggest-override, -Wuse-without-only. Change
-Wnormalized=... operands to match 5.1.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbool-compare,
-Wchkp, -Wdesignated-init, -Wdiscarded-array-qualifiers,
-Wdiscarded-qualifiers, -Wformat-signedness,
-Wincompatible-pointer-types, -Wint-conversion,
-Wlogical-not-parentheses, -Wmemset-transposed-args, -Wodr,
-Wshift-count-negative, -Wshift-count-overflow,
-Wsizeof-array-argument, -Wsuggest-final-methods,
-Wsuggest-final-types, -Wswitch-bool. Remove -Warray-bounds,
and add -Warray-bounds=2 as a special case.
2015-04-21 Simon Josefsson <simon@josefsson.org>
doc: update FDL template to match FDL examples.
* doc/alloca-opt.texi:
* doc/alloca.texi:
* doc/c-ctype.texi:
* doc/c-strcase.texi:
* doc/c-strcaseeq.texi:
* doc/c-strcasestr.texi:
* doc/c-strstr.texi:
* doc/c-strtod.texi:
* doc/c-strtold.texi:
* doc/ctime.texi:
* doc/error.texi:
* doc/gcd.texi:
* doc/gnulib-tool.texi:
* doc/inet_ntoa.texi:
* doc/intprops.texi:
* doc/lib-symbol-visibility.texi:
* doc/maintain.texi:
* doc/parse-datetime.texi:
* doc/quote.texi:
* doc/regexprops-generic.texi:
* doc/standards.texi: Remove spurious 'with' in FDL license
template.
2015-04-21 Paul Eggert <eggert@cs.ucla.edu>
lstat: fix cross-compilation 'ln -s' problem
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
Have the test program call 'symlink' rather than a separate
script run 'ln -s'; this is more likely to work in
cross-compilation environments. Reported by Pavel Fedin in:
http://lists.gnu.org/r/bug-gnulib/2015-04/msg00060.html
2015-04-16 Ludovic Courtès <ludo@gnu.org>
gendocs.sh: default to a common CSS style sheet for HTML output
* build-aux/gendocs.sh (htmlarg): Change default value.
2015-04-15 Mats Erik Andersson <gnu@gisladisker.se>
gnulib-tool: output bold attribute more portably
* gnulib-tool (func_show_module_list): Change hexadecimal
numbers to octal in BOLD_ON and BOLD_OFF. The use of hex
encoded numbers as arguments to `printf' is not portable,
and is not claimed by POSIX. This is the case with FreeBSD.
2015-04-15 Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
qacl: Simplify HP-UX acl_nontrivial check
* lib/acl-internal.c: Remove struct stat parameter from HP-UX's version of
acl_nontrivial. Check if the acl has at most three entries instead (it must
have exactly three entries according to the HP-UX documentation). Ignore
uids and gids as long as an entry is either for a user (i.e., the owner),
a group (i.e., the owning group), or others.
* lib/acl-internal.h: Change HP-UX's acl_nontrivial prototype.
* lib/qcopy-acl.c (qcopy_acl): With that, we no longer need to stat the file.
2015-04-15 Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
acl: On Linux, check for acls without libacl
On Linux, use the getxattr syscall instead of the acl_extended_file libacl
library function to check for the presence of acls, avoiding a library.
* lib/file-has-acl.c: Include xattr headers if we have them.
(file_has_acl): On Linux, use getxattr().
* m4/acl.m4 (gl_FUNC_ACL): Define LIB_HAS_ACL as the libraries to link with for
file_has_acl(). Check for xattr headers and getxattr().
2015-04-14 Ángel González <keisial@gmail.com>
tempname: avoid unused parameter warnings (trivial)
* lib/tempname.c (try_dir): Tag with __GL_UNUSED.
(try_nocreate): Likewise.
2015-04-14 HIRAMATSU Yoshifumi <hiramatu@boreas.dti.ne.jp>
fseeko: fix build failure on NetBSD >= 6 (trivial)
* lib/fseeko.c (feeko): NetBSD 6 changed the definition of _offset
from 'fpos_t struct' to __off_t, which is a typedef of __int64_t.
2015-04-09 Paul Eggert <eggert@cs.ucla.edu>
gitlog-to-changelog: port to MS-Windows
* build-aux/gitlog-to-changelog (git_dir_option):
Use strftime with "%Y-%m-%d", not "%F", to avoid a bug in
MS-Windows Perl. Reported by Eli Zaretskii in:
http://lists.gnu.org/r/emacs-devel/2015-04/msg00504.html
2015-04-07 Karl Berry <karl@gnu.org>
gendocs: new option --tex for passing args to texi2dvi.
* build-aux/gendocs.sh: new option --tex, default -t @finalout.
(TEXI2DVI): cut to just command name.
(usage): mention new option, and update copyright.
<generate_tex>: use it.
2015-04-07 Karl Berry <karl@gnu.org>
* config/srclistvars.sh (GETTEXT): new definition.
* config/srclist.txt: use it for gettext .m4 files.
Thread starting at http://lists.gnu.org/r/bug-gnulib/201
and confirmed at http://lists.gnu.org/r/bug-gnulib/2015-02/msg00146.html
and continuing into April.
2015-04-07 Daiki Ueno <ueno@gnu.org>
uniname/uniname-tests: fix failure due to alias
Reported by Jack Howarth in:
<https://lists.gnu.org/r/bug-libunistring/2015-04/msg00000.html>.
* tests/uniname/test-uninames.c (name_has_alias): New function.
(test_inverse_lookup): Exclude character name with valid alias,
from randomly generated character names.
(main): Fill unicode_aliases before calling test functions.
2015-04-03 Giuseppe Scrivano <gscrivan@redhat.com>
hash: remove deprecated hash_insert0 function
* lib/hash.h (hash_insert0): Remove deprecated function.
* lib/hash.c (hash_insert0): Likewise.
2015-04-02 Pádraig Brady <P@draigBrady.com>
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/r/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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
quotearg-simple-tests: add missing gl_FUNC_MMAP_ANON dependency
* modules/quotearg-simple-tests: Reference m4/mmap-anon.m4
2015-03-24 Tobias Stoeckmann <tobias@stoeckmann.org>
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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2015-03/msg00039.html
2015-03-20 Paul Eggert <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2015-03/msg00033.html
* modules/fdopendir (Depends-on): Add dirfd.
2015-03-18 Paul Eggert <eggert@cs.ucla.edu>
fdopendir: fix typo in comment
* lib/fdopendir.c (fdopendir_with_dup): REPLACE_FCHDIR was misspelled.
2015-03-09 Eric Blake <eblake@redhat.com>
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 <eggert@cs.ucla.edu>
vasnprintf: pacify clang 3.5.0
Problem reported by Werner Lemberg in:
http://lists.gnu.org/r/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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2015-02/msg00139.html
* lib/poll.c: Always include <sys/select.h> and <sys/socket.h>.
* modules/poll (Depends-on) [!HAVE_POLL || REPLACE_POLL]:
Add sys_socket.
2015-02-24 Pádraig Brady <P@draigBrady.com>
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 <phrdina@redhat.com>
passfd: avoid valgrind uninitalised data warning
* lib/passfd.c (sendfd): Reset the msg_controllen of msghdr,
to include just the fd we've initialized, rather than including
the extra space used for alignment.
2015-02-23 Paul Eggert <eggert@cs.ucla.edu>
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/r/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 <cernekee@google.com>
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 <eggert@cs.ucla.edu>
Android doesn't define RLIM_SAVED_*
Portability problem reported by Kevin Cernekee in:
http://lists.gnu.org/r/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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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):
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 <jskarvad@redhat.com>
fts: remove redundant close() (trivial)
* lib/fts.c (fts_read): Remove redundant call to close().
Spotted by coverity.
2015-02-20 Paul Eggert <eggert@cs.ucla.edu>
getdtablesize: port better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/r/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 <cernekee@google.com>
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 <eggert@cs.ucla.edu>
dup2, fcntl: cross-compile better for Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/r/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 <P@draigBrady.com>
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 <mtmiller@ieee.org>
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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2015-02/msg00100.html
2015-02-16 Paul Eggert <eggert@cs.ucla.edu>
getdtablesize, dup2, fcntl: port to Android
Problem reported by Kevin Cernekee in:
http://lists.gnu.org/r/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 <cernekee@google.com>
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 <kdudka@redhat.com>
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 <ueno@gnu.org>
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 <cernekee@google.com>
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 <net/if.h> system headers
* m4/net_if_h.m4: Check to make sure <net/if.h> 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 <pthread.h> instead of <signal.h>.
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <ueno@gnu.org>
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 <eggert@cs.ucla.edu>
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/r/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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <agruen@gnu.org>
symlinkat: include all required header files
* lib/symlinkat.c (HAVE_SYMLINK_AT): Add <sys/stat.h> 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 <P@draigBrady.com>
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 <alp@rsu.ru>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <eggert@cs.ucla.edu>
time: port to MinGW32 3.21
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/r/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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <ueno@gnu.org>
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 <meyering@fb.com>
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 <P@draigBrady.com>
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 <komh@chollian.net>
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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
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 <ueno@gnu.org>
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/r/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 <eblake@redhat.com>
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 <berrange@redhat.com> (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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2015-01/msg00011.html
2015-01-04 Benno Schulenberg <bensberg@justemail.net>
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 <ludo@gnu.org>
Suggested by Paul Eggert <eggert@cs.ucla.edu>.
* 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 <eggert@cs.ucla.edu>
gendocs: copyright date and version fix
Reported by Karl Berry in:
http://lists.gnu.org/r/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 <karl@gnu.org>
* 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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
utimens: fix dependency typo
* modules/utimens (Depends-on): Remove 'assure'.
This bug was introduced in the recent 'assure' patch.
2014-12-22 Eric Blake <eblake@redhat.com>
docs: mention why libgen.h is bad
* doc/posix-headers/libgen.texi (libgen.h): Refer to dirname module.
2014-12-20 Paul Eggert <eggert@cs.ucla.edu>
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/r/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 <eggert@cs.ucla.edu>
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/r/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 <P@draigBrady.com>
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 <tim.ruehsen@gmx.de>
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 <ueno@gnu.org>
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/r/bug-libunistring/2014-12/msg00000.html
2014-12-12 Paul Eggert <eggert@cs.ucla.edu>
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 <ueno@gnu.org>
unistd: fix iOS check conditional
On Mac OS X 10.8, the TARGET_* macros are unconditonally defined
as 0 or 1 in <TargetConditionals.h>, 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 <eggert@cs.ucla.edu>
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 <komh78@gmail.com>
* lib/relocatable.c (relocate): Prepend $UNIXROOT to pathname if it is
started with '/' on EMX.
2014-12-08 KO Myung-Hun <komh78@gmail.com>
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 <mkletzan@redhat.com> (tiny change)
bootstrap: Allow perl modules in $buildreq
* build-aux/bootstrap: Add case for perl modules.
2014-12-08 Pádraig Brady <P@draigBrady.com>
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <bruno@clisp.org>
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 <komh78@gmail.com>
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 <arvidjaar@gmail.com>
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 <ueno@gnu.org>
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 <P@draigBrady.com>
printf: fix configure check on big endian systems
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Add missing bracket.
2014-11-22 Daiki Ueno <ueno@gnu.org>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
extern-inline: update commentary about GCC bugs
* m4/extern-inline.m4: Add another GCC bug number to comments.
2014-11-13 Daiki Ueno <ueno@gnu.org>
gen-uni-tables: untabify
* lib/gen-uni-tables.c: Untabify.
2014-11-13 Daiki Ueno <ueno@gnu.org>
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 <ueno@gnu.org>
gen-uni-tables: utilize 'assert'
* lib/gen-uni-tables.c: Include <assert.h>.
(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 <ueno@gnu.org>
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 <jer@gentoo.org> (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 <eggert@cs.ucla.edu>
fts: port to C89
Problem reported for MSVC 16 by Gisle Vanem in:
http://lists.gnu.org/r/bug-gnulib/2014-11/msg00027.html
* lib/fts.c (fts_build): Avoid declaration before statement.
2014-11-06 Paul Eggert <eggert@cs.ucla.edu>
unistd: port to iOS
Problem reported by André Klitzing in:
http://lists.gnu.org/r/bug-gnulib/2014-11/msg00013.html
* lib/unistd.in.h (environ): Do not include crt_externs.h on iOS.
2014-11-05 Paul Eggert <eggert@cs.ucla.edu>
obstack: do not reject malloc-style obstack_chunkfun, obstack_freefun
Problem reported by Alan Modra in:
http://lists.gnu.org/r/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 <eggert@cs.ucla.edu>
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 <amodra@gmail.com>
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 <eggert@cs.ucla.edu>
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 <alignof.h> 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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
obstack: add NEWS entry for recent incompatible changes
* NEWS: Describe recent changes.
2014-10-30 Pádraig Brady <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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 <alignof.h>.
(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 <stdalign.h>.
(struct fooalign): Remove.
(DEFAULT_ALIGNMENT): Use alignof rather than the old offsetof hack.
* modules/obstack (Depends-on): Add stdalign.
2014-10-28 Paul Eggert <eggert@cs.ucla.edu>
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 <amodra@gmail.com>
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 <chunkfun>): 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 <temp>): 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 <eggert@cs.ucla.edu>
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 <ueno@gnu.org>
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:
<https://lists.gnu.org/r/bug-gnulib/2014-10/msg00023.html>.
* m4/iconv.m4 (AM_ICONV_LINK): Try all possible argument types of
iconv. Bump serial number.
2014-10-23 Pádraig Brady <P@draigBrady.com>
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 <P@draigBrady.com>
bootstrap: only update the gnulib submodule
* build-aux/bootstrap: Restrict the "submodule update" command
to the gnulib path.
2014-10-18 Paul Eggert <eggert@cs.ucla.edu>
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 <karl@gnu.org>
* doc/posix-functions/dirname.texi: remove spurious {.
2014-09-28 Ben Pfaff <blp@cs.stanford.edu>
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 <wl@gnu.org>.
2014-09-24 Jim Meyering <meyering@fb.com>
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 <wl@gnu.org>
dirname: support compilation with C++
* lib/dirname.h: Add necessary C linkage declarations.
2014-09-16 Paul Eggert <eggert@cs.ucla.edu>
qsort_r: include <config.h>
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/r/bug-gnulib/2014-09/msg00071.html
* lib/qsort.c [!_LIBC]: Include <config.h> first.
2014-09-16 Dylan Cali <calid1984@gmail.com>
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 <eggert@cs.ucla.edu>
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 <wl@gnu.org>
strerror_r-posix: support compilation with C++
* lib/strerror_r.c: Add necessary C linkage declarations.
2014-09-11 Johannes Zarl <johannes.zarl@jku.at>
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 <fpokorny@redhat.com>
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 <normalperson@yhbt.net>
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 <mathieu@anquetin.eu>
Trivial change.
* gnulib-tool: Use same options as build-aux/bootstrap to download
PO files.
2014-09-05 Mathieu Anquetin <mathieu@anquetin.eu>
Trivial change.
* gnulib-tool: Fallback to wget when rsync of PO files fails.
2014-09-04 Eric Blake <eblake@redhat.com>
maintainer-makefile: add syntax check for useless ';;'
* top/maint.mk (sc_prohibit_double_semicolon): New rule.
2014-09-04 Paul Eggert <eggert@cs.ucla.edu>
pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04
Problem reported by Assaf Gordon in:
http://lists.gnu.org/r/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 <eblake@redhat.com>
error: drop spurious semicolon
* lib/error.c (__error_at_line): Fix ';;'.
2014-09-02 Paul Eggert <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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. Handle
-Wnormalized=nfc specially, so that the 'comm' command used
for maintenance doesn't get confused.
2014-08-31 Paul Eggert <eggert@cs.ucla.edu>
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 <ttn@gnu.org> (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 <gnu@gisladisker.se> (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 <eggert@cs.ucla.edu>
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 <alloca.h>"
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 <eggert@cs.ucla.edu>
vla: new module
GNU RCS can use this, mostly for documentation I expect. See:
http://lists.gnu.org/r/bug-gnulib/2014-08/msg00025.html
* MODULES.html.sh: Add vla.
* lib/vla.h, modules/vla: New files.
2014-08-07 Daiki Ueno <ueno@gnu.org>
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 <eggert@cs.ucla.edu>
getpass: don't assume struct termios
Problem report and trivial fix by Jonas 'Sortie' Termansen in:
http://lists.gnu.org/r/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/r/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 <degano@cern.ch> (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 <eggert@cs.ucla.edu>
sys_select: fix FD_ZERO problem on Solaris 10
* lib/sys_select.in.h: Fix Solaris 10 bug where "#include
<sys/time.h>" followed by "#include <sys/select.h>" caused FD_ZERO
to expand to an expression that invoked memset without necessarily
including <string.h>. The problem was that the first include
defined _SYS_TIME_H, causing the second include to short-circuit.
Fix a similar problem with <sys/types.h> followed by <sys/select.h>.
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 <eggert@cs.ucla.edu>
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/r/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 <siddhesh@redhat.com>
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 <eblake@redhat.com>
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 <eblake@redhat.com>
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 <eliz@gnu.org>
localename: Enforce declarations before statements.
* localename.c (gl_locale_name_thread): Declare 'lcid' before the
first statement.
2014-07-18 Jim Meyering <meyering@fb.com>
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 <eliz@gnu.org>
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 can
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 can
take into account changes in the current locale from the
default one, in contrast to GetThreadLocale.
2014-07-14 Daiki Ueno <ueno@gnu.org>
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 <P@draigBrady.com>
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 <meyering@fb.com>
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 <eggert@cs.ucla.edu>
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 <assafgordon@gmail.com>
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 <assafgordon@gmail.com>
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 <eliz@gnu.org>
nl_langinfo: Fix last change.
* lib/nl_langinfo.c (includes): Drop redundant include.
2014-07-10 Siddhesh Poyarekar <siddhesh@redhat.com>
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 <phrdina@redhat.com> (tiny change)
nl_langinfo: fix build under mingw
* lib/nl_langinfo.c (includes): Pick up <windows.h> for GetACP().
2014-07-09 Andrew D Warshall <warshall@99main.com>
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 <eblake@redhat.com>
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 <eliz@gnu.org>
Paul Eggert <eggert@cs.ucla.edu>
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 <locale.h> and <string.h> early.
Include <stdio.h> if Microsoft Windows.
Include <time.h> 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 <eggert@cs.ucla.edu>
Bruno Haible has stepped down as maintainer.
See Karl Berry in:
http://lists.gnu.org/r/bug-gnulib/2014-07/msg00004.html
Daiki Ueno has volunteered to maintain libunistring; see:
http://lists.gnu.org/r/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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2014-06/msg00102.html
2014-06-20 Alfred M. Szmidt <ams@gnu.org>
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 <eggert@penguin.cs.ucla.edu>
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 <joseph@codesourcery.com>
Combine __USE_BSD and __USE_SVID into __USE_MISC.
* lib/regex.h [__USE_BSD]: Change condition to [__USE_MISC].
2014-06-17 Paul Eggert <eggert@cs.ucla.edu>
acl: port to gcc -Wredundant-decls
From a request by Dmitry Antipov in:
http://lists.gnu.org/r/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 <bkorb@gnu.org>
Jim Meyering <meyering@fb.com>
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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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 <ueno@gnu.org>
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 <P@draigBrady.com>
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 <eliz@gnu.org>
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 <eliz@gnu.org>
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 <michael.goffioul@gmail.com>
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 <eggert@cs.ucla.edu>
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 <bdwalton@gmail.com>
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 <eblake@redhat.com>
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 <bdwalton@gmail.com>
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 <bdwalton@gmail.com>
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 <eggert@cs.ucla.edu>
gnulib-common.m4: Fix typo in _GL_UNUSED_LABEL.
* m4/gnulib-common.m4 (_GL_UNUSED_LABEL): Omit trailing semicolon.
2014-06-02 Ben Walton <bdwalton@gmail.com>
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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
printf, config.rpath: Port to FreeBSD 10.
Problem reported by Tijl Coosemans in:
http://lists.gnu.org/r/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 <colfordk@gmail.com>
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 <uweigand@de.ibm.com>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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 <http://bugs.gnu.org/17561>.
* 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 <beuc@beuc.net>.
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 <beuc@beuc.net>
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
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 <P@draigBrady.com>
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 <meyering@fb.com>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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/r/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 <guito.linux@gmail.com>
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 <eggert@cs.ucla.edu>
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 <P@draigBrady.com>
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 <agordon@wi.mit.edu>
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 <ncopa@alpinelinux.org>
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 <eggert@cs.ucla.edu>
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 <eggert@cs.ucla.edu>
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/r/bug-gnulib/2014-04/msg00026.html
2014-04-16 Assaf Gordon <agordon@wi.mit.edu>
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 <eggert@cs.ucla.edu>
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 <eblake@redhat.com>
fts: avoid unnecessary strlen calls
* lib/fts.c (_D_EXACT_NAMLEN): Restore definition when needed.
2014-04-09 Paul Eggert <eggert@cs.ucla.edu>
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 <mail@bernhard-voelker.de>
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 <eggert@cs.ucla.edu>
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
<http://lists.gnu.org/r/bug-gnulib/2014-03/msg00032.html>.
glibc <sys/cdefs.h> now uses __extension__ for GCC 2.8 or later,
so go with that.
* lib/obstack.h (__extension__):
2014-03-27 Paul Eggert <eggert@cs.ucla.edu>
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 <mail@bernhard-voelker.de>
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 <mail@bernhard-voelker.de>
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 <eggert@cs.ucla.edu>
gitlog-to-changelog: include a dummy git-log-fix file
Problem reported by Nathan Stratton Treadway in:
http://lists.gnu.org/r/bug-tar/2014-03/msg00082.html
* build-aux/git-log-fix: New file.
2014-03-13 Jim Meyering <meyering@fb.com>
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 <eggert@cs.ucla.edu>
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 <http://debbugs.gnu.org/16911#16>.
* 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 <cernekee@gmail.com>
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/r/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 <P@draigBrady.com>
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 <eggert@cs.ucla.edu>
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/r/coreutils/2014-02/msg00037.html
2014-02-25 Paul Eggert <eggert@penguin.cs.ucla.edu>
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
<http://bugs.gnu.org/16825>.
2014-02-23 Paul Eggert <eggert@cs.ucla.edu>
diffseq: remove TOO_EXPENSIVE heuristic
Problem with diffutils reported by Vincent Lefevre in
<http://bugs.gnu.org/16848>. 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 <P@draigBrady.com>
spawn: fix link error on uclibc
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): use AC_SEARCH_LIBS,
to incorporate -lrt if needed (on uclibc for example).
* modules/posix_spawn: Reference the substituted LIB.
2014-02-21 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> (tiny change)
timer: fix uClibc detection of threading
* m4/time_time.m4 (gl_TIMER_TIME): Detect whether threads are
enabled in uClibc.
2014-02-21 Eric Blake <eblake@redhat.com>
maintainer-makefiles: provide AC_PROG_SED for older autoconf
* m4/gnulib-common.m4 (AC_PROG_SED): Copy from newer autoconf.
2014-02-21 Sergey Poznyakoff <gray@gnu.org.ua>
exclude: add support for posix regexps
This commit adds support for POSIX extended regular expressions
and fixes a long-standing memory leak (pattern buffer was never
freed). It also implements a new interface function to read
exclude patterns from a FILE, which passes an additional parameter
to its callback function, thereby allowing to preserve its state
between invocations.
* lib/exclude.c (struct patopts): Pack regex and pattern into union.
(pattern_buffer): New struct.
(exclude): New member patbuf.
(exclude_add_pattern_buffer): New function.
(free_exclude_segment): Free regexps.
(free_exclude): Free allocated pattern buffers.
(exclude_patopts): New function.
(file_pattern_matches): Use exclude_patopts.
(add_exclude): support regexps.
(add_exclude_fp): New function.
(add_exclude_file): Rewrite using add_exclude_fp.
(fnmatch_pattern_has_wildcards): Support posix extended regexps.
* lib/exclude.h (EXCLUDE_REGEX, EXCLUDE_ALLOC): New flags.
(add_exclude_fp)
(add_exclude_file): Rewrite using add_exclude_fp.
(fnmatch_pattern_has_wildcards): Support posix extended regexps.
* lib/exclude.h (EXCLUDE_REGEX, EXCLUDE_ALLOC): New flags.
(add_exclude_fp)
(exclude_add_pattern_buffer): New prototypes.
* modules/exclude: Depends on regex and filename.
2014-02-20 Eric Blake <eblake@redhat.com>
maintainer-makefiles: use $(SED) for syntax check
* modules/maintainer-makefile (configure.ac): Check for sane sed.
* top/maint.mk: Change sed to $(SED).
2014-02-11 Sergey Poznyakoff <gray@gnu.org.ua>
Paul Eggert <eggert@cs.ucla.edu>
savedir: add sorting arg to savedir, streamsavedir; remove fdsavedir
Patch based on an idea by Dick Streefland in
<https://savannah.gnu.org/patch/?7892>.
* NEWS: Document this.
* lib/savedir.c (NAME_SIZE_DEFAULT): Remove.
(direntry_t, comparison_function): New types.
(direntry_cmp_name): New function.
(direntry_cmp_inode) [D_INO_IN_DIRENT]: New function.
(streamsavedir, savedir): New arg OPTION.
(streamsavedir): Simplify memory allocation.
(fdsavedir): Remove.
* lib/savedir.h (enum savedir_option): New type.
(streamsavedir, savedir): New arg OPTION.
(fdsavedir): Remove.
2014-02-05 Paul Eggert <eggert@cs.ucla.edu>
file-type: add support for doors and other less-common file types
Problem with S_ISDOOR reported by Rich Burridge.
* lib/file-type.c (file_type): Do S_ISLNK early too. Do S_TYPEIS*
macros before the rest. Add S_ISCTG, S_ISDOOR, S_ISMPB, S_ISMPC,
S_ISMPX, S_ISNAM, S_ISNWK, S_ISOFD, S_ISOFL, S_ISPORT, S_ISWHT.
2014-01-23 Eric Blake <eblake@redhat.com>
pthread: work around winpthread header pollution on mingw
* lib/time.in.h: Move pthread workarounds...
* lib/pthread.in.h: ...here.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Also build pthread.h when we
detect macro pollution on mingw.
* doc/posix-headers/pthread.texi (pthread.h): Document the problems.
2014-01-22 Paul Eggert <eggert@cs.ucla.edu>
qacl: check for fchmod
* m4/acl.m4 (gl_FUNC_ACL): Check for fchmod, since acl-internal.h
and qset-acl.c both use HAVE_FCHMOD.
2014-01-20 Paul Eggert <eggert@cs.ucla.edu>
fdopen-tests: port to Tru64
* tests/test-fdopen.c (main): Don't invoke fdopen on a file
descriptor that is not open, as POSIX doesn't specify the
resulting behavior and the test does not work on Tru64.
Problem reported by Steven M. Schweda in:
http://lists.gnu.org/r/bug-gnulib/2014-01/msg00079.html
stdalign: port to HP-UX compilers
* lib/stdalign.in.h (_Alignas): Use __attribute__ (__aligned__ (x))
if __HP_cc or __HP_aCC are nonzero.
2014-01-16 Paul Eggert <eggert@cs.ucla.edu>
strtoimax: port to platforms lacking 'long long'
VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't
check whether strtoll is declared, which causes the C file to
wrongly report an error. Problem reported by Steven M. Schweda in:
http://lists.gnu.org/r/bug-diffutils/2014-01/msg00003.html
* lib/strtoimax.c (strtoull):
Declare only if HAVE_UNSIGNED_LONG_LONG_INT.
(strtoll): Declare only if HAVE_LONG_LONG_INT.
2014-01-16 Daniel Albers <daniel@lbe.rs> (tiny change)
relocatable-perl: fix texi syntax
* doc/relocatable-maint.texi: Escape braces.
2014-01-09 Reuben Thomas <rrt@sc3d.org>
relocatable-perl: like relocatable-script, but for Perl scripts
* build-aux/relocatable.pl.in: Add.
* doc/relocatable-maint.texi: Add documentation.
* modules/relocatable-perl: Add.
2014-01-07 Paul Eggert <eggert@cs.ucla.edu>
tests: fix export bug in previous patch
Problem reported by Jim Meyering.
* tests/init.sh (re_shell): New var, which is exported instead of
re_shell_.
tests: simplify porting to Solaris 10 /bin/sh
Some test cases in 'grep' need a shell that groks '$(';
export re_shell_ for their benefit. Problem reported for 'grep'
by Dagobert Michelsen in <http://bugs.gnu.org/16380>.
* tests/init.sh (re_shell_): Export if it's used.
2014-01-06 Eric Blake <eblake@redhat.com>
md5, sha1, sha256, sha512: support older autoconf
* m4/00gnulib.m4 (m4_divert_push): Wrap diversion stack
for autoconf < 2.63b.
include_next: port to autoconf 2.63
* m4/gnulib-common.m4 (AS_VAR_COPY): Define if missing.
2014-01-04 Jim Meyering <meyering@fb.com>
maint: add a gnulib-local rule to keep non-ascii out of .texi files
* cfg.mk (sc_keep_gnulib_texi_files_mostly_ascii): New rule,
so that "make sc_maint" will ding anyone who puts non-ascii
in any of gnulib's .texi files.
2014-01-03 Jim Meyering <meyering@fb.com>
freadable, fwritable, fwriting: declare with the "pure" attribute
* lib/freadable.h (freadable): Declare with the "pure" attribute.
* lib/fwritable.h (fwritable): Likewise.
* lib/fwriting.h (fwriting): Likewise.
Suggested by Bruno Haible.
maint.mk: adapt openat.h-include-without-use test
* top/maint.mk (sc_prohibit_openat_without_use): Also check for
FCHMODAT_INLINE, FCHOWNAT_INLINE and STATAT_INLINE, to avoid
failing on gnulib's own lib/{chmod,chown,stat}at.c files.
With this change, running "make sc_maint" in gnulib's top-level
directory now passes for me.
2014-01-03 Paul Eggert <eggert@cs.ucla.edu>
doc: use ASCII in .texi files where UTF-8 isn't needed
* doc/posix-functions/crypt.texi, doc/posix-functions/encrypt.texi:
* doc/posix-functions/setkey.texi, doc/regex.texi:
Use ASCII input, not UTF-8.
2014-01-02 Jim Meyering <meyering@fb.com>
freading: declare with the "pure" attribute
* lib/freading.h (freading): Declare with the "pure" attribute.
manywarnings: remove -Wmudflap
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove -Wmudflap, since
it is no longer supported in gcc-4.9-to-be.
2014-01-01 Paul Eggert <eggert@cs.ucla.edu>
relocatable-script: remove unused code
Problem reported by Reuben Thomas in:
http://lists.gnu.org/r/bug-gnulib/2013-12/msg00117.html
* build-aux/relocatable.sh.in (func_tmpdir): Remove unused function.
2014-01-01 Jim Meyering <meyering@fb.com>
maint: fix public-submodule-commit to work with newer git
* top/maint.mk (public-submodule-commit): Remove excess quoting.
We were over-quoting the test arguments, and somewhere prior to
version 1.8.5.2.229, git stopped removing those excess quotes,
which made the test fail, since the unexpanded strings would
always differ; using GIT_TRACE=1 confirmed that the git merge-base
command wasn't even being run.
2014-01-01 Paul Eggert <eggert@cs.ucla.edu>
doc: update main copyright year
* doc/gnulib.texi: Update copyright date.
2014-01-01 Eric Blake <eblake@redhat.com>
version-etc: new year
* lib/version-etc.c (COPYRIGHT_YEAR): Bump to 2014.
* all files: run 'make update-copyright'
2013-12-24 Eric Blake <eblake@redhat.com>
passfd: give nicer error for recvfd at eof
* lib/passfd.c (recvfd): Fake ENOTCONN if other end closes early.
* tests/test-passfd.c (main): Enhance test to cover this.
2013-12-17 Paul Eggert <eggert@cs.ucla.edu>
gettimeofday: port recent C++ fix to Emacs
Without this further patch, Emacs won't build due to
the portcheck failing. Also, this simplifies the patch a bit.
* lib/time.in.h (localtime, gmtime): Don't replace unless
GNULIB_GETTIMEOFDAY. Treat them more like mktime.
* lib/time.in.h (localtime, gmtime):
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME):
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS):
* modules/time (time.h):
Don't worry about the possibility of localtime and gmtime
being absent; they're present in all C libraries we know about.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS):
Don't assume sys_time is present and has been initialized.
Instead, use a hack that should work even if it hasn't been.
Don't use a portcheck for gmtime or localtime; this supports
the hack.
* modules/time (time.h): Substitute GNULIB_GETTIMEOFDAY.
2013-12-17 John W. Eaton <jwe@gnu.org>
gettimeofday: fix C++ crosscompilation
Never replace gmtime and localtime by macros when compiling with
C++, this prevents <ctime> from being included.
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Do not
define gmtime and localtime as preprocessor macros. Instead
define some HAVE_GMTIME, HAVE_LOCALTIME, REPLACE_GMTIME, and
REPLACE_LOCALTIME substitutions.
* lib/time.in.h: Declare gmtime and localtime when needed.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): AC_SUBST HAVE_GMTIME,
HAVE_LOCALTIME, REPLACE_GMTIME, and REPLACE_LOCALTIME.
* modules/time: Depend on gettimeofday, and substitute the above
variables in time.h.
2013-12-17 Paul Eggert <eggert@cs.ucla.edu>
qacl: port to Windows better
See Eli Zaretskii in
<http://lists.gnu.org/r/emacs-devel/2013-12/msg00593.html>.
* lib/file-has-acl.c (acl_access_nontrivial):
Return -1 and set errno if !HAVE_ACL_FIRST_ENTRY &&
!HAVE_ACL_TO_SHORT_TEXT && !HAVE_ACL_FREE_TEXT.
2013-12-12 Alexander V. Lukyanov <lav@netis.ru>
md5, sha1, sha256, sha512: fix (trivial) compile error in c++ mode.
* lib/gl_openssl.h: Cast void pointers to a specific type.
2013-12-07 Pádraig Brady <P@draigBrady.com>
open-tests: fix build failure with -Werror=old-style-declaration
* tests/test-open.h: Reorder the inline to avoid the issue.
2013-12-07 Pádraig Brady <P@draigBrady.com>
md5, sha1, sha256, sha512: fix link error with partial libcrypto
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Only clear LIB_CRYPTO at
init time, so that if early checks find crypto routines,
while the last does not, then @LIB_CRYPTO@ is replaced correctly,
avoiding link failures.
2013-12-07 Paul Eggert <eggert@cs.ucla.edu>
md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
This provides a new way to specify the default for
gl_CRYPTO_CHECK, one that is reflected in the --help message.
Emacs uses this, as well as the old way.
This attempts to implement a suggestion by Pádraig Brady in
<http://lists.gnu.org/r/coreutils/2013-12/msg00080.html>.
* m4/gl-openssl.m4(gl_SET_CRYPTO_CHECK_DEFAULT): New macro.
(gl_CRYPTO_CHECK): Use it. Mention the default in --help output.
md5, sha1, sha256, sha512: add 'auto', and a way to specify default
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK):
Add support for a new option, --with-openssl=auto, which causes
the library to be used if available and silently ignored if not.
Add support to allow configure.ac to specify its own
default, by setting with_openssl_default before invoking gl_INIT.
2013-12-05 Paul Eggert <eggert@cs.ucla.edu>
open-tests: port to glibc with _FORTIFY_SOURCE and -O1
Problem reported by Daiki Ueno in:
http://lists.gnu.org/r/bug-gnulib/2013-06/msg00052.html
* tests/test-open.h (__always_inline):
New macro, if not already defined.
(test_open): Use it.
2013-12-04 Eric Blake <eblake@redhat.com>
include_next: minimize code duplication
* modules/include_next (Depends-on): Add absolute-header.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Reuse
gl_ABSOLUTE_HEADER_ONE instead of open-coding it.
2013-12-04 Pádraig Brady <P@draigBrady.com>
getcwd: fix compile error in configure check
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Include errno.h
2013-12-04 Pádraig Brady <P@draigBrady.com>
regex: suppress core dumps from detection code
* m4/regex.m4 (gl_REGEX): Catch the SIGABRT and convert to SIGTERM
to suppress core dumps that may well occur on glibc systems.
These core dumps might not be cleaned up automatically, or could
trigger some system core dump handling logic.
2013-12-03 Pádraig Brady <P@draigBrady.com>
md5, sha1, sha256, sha512: support mandating use of openssl
* m4/gl-openssl.m4 (gl_crypto_check): Adjust the --with-openssl
description, to list the now 3 separate options. also don't
mention the default=no, since this is implicit given the option
is described as --with-openssl rather than --without-openssl.
If projects change the default they're free to document that.
with --with-openssl[=yes] we now error out when the specified
hash algorithm is not available in libcrypto.
2013-12-03 Ivailo <xakepa10@gmail.com>
test-xvasprintf: (trivial) fix to disable some -Wformat-security diags
* tests/test-xvasprintf.c: Disable -Wformat-zero-length and
-Wformat-nonliteral checks, as these edge cases are part of the test.
2013-12-03 Eric Blake <eblake@redhat.com>
regex: avoid glibc deadlock during configure
* m4/regex.m4 (gl_REGEX): Avoid recursive malloc deadlock when
glibc bug 15078 in turn triggers bug 16159.
Reported by Michal Privoznik.
2013-12-02 Pádraig Brady <P@draigBrady.com>
md5, sha1, sha256, sha512: use openssl routines if available.
--with-openssl the libcrypto md5, sha1, sha224, sha256, sha384, sha256
routines will be used if available, requiring apps to link @LIB_CRYPTO@
* lib/gl_openssl.h: Provide wrappers for specified openssl hash.
* m4/gl-openssl.m4 (gl_CRYPTO_CHECK): New function to lookup libcrypto
in the standard system location.
* m4/sha1.m4: Call gl_CRYPTO_CHECK() for SHA1.
* m4/sha256.m4: Likewise with SHA256.
* m4/sha512.m4: Likewise with SHA512.
* m4/md5.m4: Likewise with MD5.
* m4/gc.m4: Ensure @LIB_CRYPTO@ set for tests.
* lib/sha1.h: Include wrappers if HAVE_OPENSSL_SHA1.
* lib/sha256.h: Likewise with SHA256.
* lib/sha512.h: Likewise with SHA512.
* lib/md5.h: Likewise with MD5.
* lib/sha1.c: Exlude functionality if HAVE_OPENSSL_SHA1.
* lib/sha256.c: Likewise with SHA256.
* lib/sha512.c: Likewise with SHA512.
* lib/md5.c: Likewise with MD5.
* modules/crypto/sha1 (Link:): Add the new optional lib.
(Depends-on:): Add dependency on extern-inline.
* modules/crypto/sha256: Likewise.
* modules/crypto/sha512: Likewise.
* modules/crypto/md5: Likewise.
* modules/crypto/sha1-tests: Reference the lib here too.
* modules/crypto/md5-tests: Likewise.
* modules/crypto/gc-des-tests: Likewise.
* modules/crypto/gc-hmac-md5-tests: Likewise.
* modules/crypto/gc-hmac-sha1-tests: Likewise.
* modules/crypto/gc-hmac-sha256-tests: Likewise.
* modules/crypto/gc-hmac-sha512-tests: Likewise.
* modules/crypto/gc-md5-tests: Likewise.
* modules/crypto/gc-pbkdf2-sha1-tests: Likewise.
* modules/crypto/gc-sha1-tests: Likewise.
* modules/crypto/gc-tests: Likewise.
* modules/crypto/hmac-md5-tests: Likewise.
* modules/crypto/hmac-sha1-tests: Likewise.
* modules/crypto/hmac-sha256-tests: Likewise.
* modules/crypto/hmac-sha512-tests: Likewise.
2013-11-29 RV1971 <rv1971@web.de>
base64: (trivial) fix compilation regression on some compilers
* lib/base64.c: Don't return the void function,
instead split to a separate return statement.
2013-11-28 Paul Eggert <eggert@cs.ucla.edu>
ignore-value: revert previous code change
* lib/ignore-value.h (ignore_value): Use __extension__ and
__typeof__ only for GCC 3.4 and later. Reported by Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2013-11/msg00102.html>.
Change the comment to try to explain this better.
2013-11-27 Pádraig Brady <P@draigBrady.com>
selinux-h: improve stub types and add more stub functions
* lib/se-selinux.in.h: Change security_context_t to a typedef
rather than a define, as it's a pointer type and so is better
as a typedef to avoid issues declaring multiple variables
with the comma operator. Also add stub for string_to_security_class().
* lib/se-context.in.h: Add stub functions for
context_{type,range,role,user}_get().
2013-11-27 Paul Eggert <eggert@cs.ucla.edu>
ignore-value: prefer GCC version back through 2.0
The code didn't match the comments, so I did a bit of software
archaeology. GCC 2.0 seems to support __extension__ and
__typeof__, so fix both code and comments to use 2.0.
* lib/ignore-value.h (ignore_value): Use __extension__ and
__typeof__ for GCC 2.0 through 3.3, too.
2013-11-25 Mats Erik Andersson <gnu@gisladisker.se>
pty: Activate the signature wrapper of forkpty.
The intended preprocessor macro HAVE_FORKPTY is
never defined, yet `lib/forkpty.c' depends on it.
* m4/pty.m4 (gl_FUNC_FORKPTY): At completed analysis,
apply AC_DEFINE_UNQUOTED to HAVE_FORKPTY with value
$HAVE_FORKPTY for access to wrapper in `lib/forkpty.c'.
2013-11-18 Jim Meyering <meyering@fb.com>
and Paul Eggert <eggert@cs.ucla.edu>
quotearg: don't attempt to store 1 << 31 into an "int"
* lib/quotearg.c (quotearg_buffer_restyled): Building coreutils with
gcc's new -fsanitize=undefined and running its tests triggered some
new test failures due to undefined behavior, all with this diagnostic:
lib/quotearg.c:629:62: runtime error: left shift of 1 by 31 places \
cannot be represented in type int
Rather than shifting "1" left to form a mask, shift the bits right and
simply use "1" as the mask.
2013-11-21 Paul Eggert <eggert@cs.ucla.edu>
error: depend on stdio
Problem reported by Nikos Mavrogiannopoulos in
<http://lists.gnu.org/r/bug-gnulib/2013-11/msg00084.html>
* modules/error (Depends-on): Add stdio.
2013-11-18 Ben Pfaff <blp@cs.stanford.edu>
* doc/relocatable-maint.texi (Supporting Relocation): Improve
wording.
Reported by Reuben Thomas <rrt@sc3d.org>.
2013-11-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/getgroups.c (posix_getgroups, getgroups) [__APPLE__]:
New function and macro, to work around _DARWIN_C_SOURCE problem.
Reported by Jack Howarth in <http://bugs.gnu.org/14463>.
2013-11-11 Pádraig Brady <P@draigBrady.com>
base64: provide a fast path for encoding well sized buffers
Avoid conditionals in the base64 encoding loop,
which was seen to give 60% better throughput.
* lib/base64.c (base64_encode_fast): A new function to be called
when we don't want to NUL terminate, and we have enough space
in the output to encode the given input.
(base64_encode): Call the _fast() version when appropriate.
Also remove a redundant mask with 0x3F on the first encoded byte.
2013-11-08 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: port better to OS X 10.9
* m4/extern-inline.m4: Omit serial number; this file doesn't use them.
(gl_EXTERN_INLINE): Do not suppress the use of extern inline on
OS X 10.9, except for g++ where the bug is still present.
See <http://trac.macports.org/ticket/41033>.
2013-11-08 Eric Blake <eblake@redhat.com>
fpending: fix regression on DragonFly BSD
* m4/fpending.m4 (gl_FUNC_FPENDING): Check for declaration.
* lib/fpending.h (__fpending): Don't declare twice.
Reported by GW in
<https://lists.gnu.org/r/bug-m4/2013-11/msg00000.html>
2013-11-05 Jim Meyering <meyering@fb.com>
hash: relax license to LGPLv2+, for libguestfs
* modules/hash (License): Change from GPL to LGPLv2+.
2013-11-03 Paul Eggert <eggert@cs.ucla.edu>
intprops: port to Oracle Studio c99
* lib/intprops.h (_GL_HAVE___TYPEOF__) [__SUNPRO_C && __STDC__]:
Define to 0, to avoid diagnostics when Oracle Studio is pedantic.
2013-10-31 Paul Eggert <eggert@cs.ucla.edu>
obstack: pacify HP C
* lib/obstack.h (obstack_free) [!__GNUC__]: Rewrite to avoid
warning "conversion from pointer to smaller integer" from HP
C-ANSI-C - cc version B9007AA/B3910B A.06.26. It's safe to assume
C89 or later nowadays, so cast to void instead of int. Privately
reported by H.Merijn Brand. Also, change header to match glibc's,
to make checking against glibc easier.
2013-10-29 Jim Meyering <meyering@fb.com>
maint.mk: prefer gpgv2 over gpgv
* top/maint.mk (gpgv): Use gpgv2 if present, else gpgv.
(gpg_key_ID): Use $(gpgv), rather than hard-coding "gpgv".
Reported by Gary Vaughan.
2013-10-30 Paul Eggert <eggert@cs.ucla.edu>
isnan: port to VAX
Reported by John Klos for NetBSD-5/VAX in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00133.html>.
* lib/isnan.c (IEEE_FLOATING_POINT): New macro, stolen from Emacs.
(FUNC): Use it.
2013-10-28 Jim Meyering <meyering@fb.com>
gnulib-tool: protect against CDPATH
* gnulib-tool: Many "cd" built-in functions print a directory name
to stdout when CDPATH is set, e.g.,
$ bash -c 'CDPATH=/; cd tmp'
/tmp
Unset it, when possible. Prompted by a comment from Bruce Korb.
maint.mk: restore functionality removed by recent change...
Sunday's change, v0.0-8062-g6b24f60, may have appeared correct from
the context of a shallow-cloned gnulib repository: "git describe"
would fail in such a directory. However, that change made it so
the reported gnulib revision no longer includes the version number
or a commit count, even when run from a full clone.
* top/maint.mk (gnulib-version): Use the full "git describe"
output when possible, e.g., the form above, rather than the
abbreviated, no-tag, no-commit-count string, and fall back to
using a 10-byte hash, rather than the default minimal-length
hash prefix, since while the minimal-length one may be fine today,
it is likely not to be unique for very long.
2013-10-26 Jim Meyering <meyering@fb.com>
maint.mk: fix "release" target to build _version
This fixes a bug in README-release whereby following the outlined
steps, one would publish a tarball whose programs would report
--version output not consistent with the package version number.
This bug caused grep-2.15 to produce a grep program whose
--version option made it print 2.14.56-1e3d rather than 2.15.
* top/maint.mk (release): Making this target build "_version"
ensures that the new version number is reflected in configure.
2013-10-21 Ben Pfaff <blp@cs.stanford.edu>
install-reloc: Support multi-binary installation.
* build-aux/install-reloc: Support installing multiple programs in
one invocation, as done by Automake starting with commit
4295fe33eb23f (Multi-file install for PROGRAMS.). From Bruno
Haible <bruno@clisp.org>, archived at
http://lists.debian.org/debian-bsd/2012/05/msg00032.html.
Reported by Sylvain <beuc@gnu.org>.
2013-10-21 Michael Haubenwallner <michael.haubenwallner@salomon.at>
selinux-h: Really build without selinux when library is missing.
* m4/selinux-selinux-h.m4: When the selinux library is missing, really
continue without selinux, as already told in the warning message.
2013-10-21 Jim Meyering <meyering@fb.com>
regex: also remove dependency on HAVE_WCSCOLL
* lib/regex_internal.h: Remove final vestige of the wcscoll dependency.
2013-10-21 Reuben Thomas <rrt@sc3d.org>
xfreopen: Fix typo. s/frepoen/freopen/
* lib/xfreopen.c: Fix description.
* modules/xfreopen: Likewise.
2013-10-21 Jim Meyering <meyering@fb.com>
regex: don't depend on wcscoll
* m4/regex.m4 (gl_PREREQ_REGEX): Don't check for wcscoll.
It is no longer used.
2013-10-20 Jim Meyering <meyering@fb.com>
error: add the printf attribute to a static function
* lib/error.c (error_tail): Add the printf attribute, to placate
gcc's -Werror=suggest-attribute=format option.
2013-09-30 Jim Meyering <meyering@fb.com>
fpending, obstack, strerror-override: use pure+const function attrs
* lib/fpending.h (__fpending): Declare with the "pure" attribute.
* lib/obstack.c (_obstack_allocated_p): Likewise.
* lib/obstack.h (_obstack_memory_used): Likewise.
(_obstack_memory_used): Likewise.
* lib/strerror-override.h (strerror_override): Declare with
the "const" attribute.
2013-10-18 Eric Blake <eblake@redhat.com>
extern-inline: make safe for -Wundef usage
Reported by Vladimir 'phcoder' Serbinenko in
https://lists.gnu.org/r/bug-gnulib/2013-10/msg00078.html
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Port to older gcc.
2013-10-16 Paul Eggert <eggert@cs.ucla.edu>
mkfifo-tests, etc.: allow HP-UX 11.11 bug
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00068.html>.
* doc/posix-functions/mkfifo.texi (mkfifo):
* doc/posix-functions/mkfifoat.texi (mkfifoat):
* doc/posix-functions/mknod.texi (mknod):
* doc/posix-functions/mknodat.texi (mknodat):
Document the HP-UX 11.11 bug.
* tests/test-mkfifo.h (test_mkfifo):
Allow the HP-UX 11.11 bug.
2013-10-14 Paul Eggert <eggert@cs.ucla.edu>
acl: allow cross-compilation to Gentoo
Problem reported by Gabriel Marcano in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00058.html>.
* m4/acl.m4 (gl_ACL_GET_FILE): When cross-compiling,
test only whether it links.
2013-10-13 Paul Eggert <eggert@cs.ucla.edu>
mgetgroups: remove dependency on realloc-gnu
The dependency violates the comment in realloc-gnu, which
says that tests can't depend on realloc-gnu; some tests depend
on mgetgroups, so mgetgroups can't depend on realloc-gnu.
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00056.html>.
* lib/mgetgroups.c (mgetgroups): Don't call realloc (NULL, 0).
* modules/mgetgroups (Depends-on): Depend on realloc-posix,
not realloc-gnu.
2013-10-12 Paul Eggert <eggert@cs.ucla.edu>
regex-tests: port to HP-UX 11.11
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00052.html>.
* modules/regex-tests (test_regex_LDADD): Add LIBTHREAD, LIB_PTHREAD.
2013-10-10 Paul Eggert <eggert@cs.ucla.edu>
verify: document some 'assume' pitfalls
* doc/verify.texi (Compile-time Assertions):
Mention that 'assume (E)' can sometimes slow things down.
Use CHAR_MAX + 1, not UCHAR_MAX + 1.
2013-10-10 Eric Blake <eblake@redhat.com>
strtoumax: fix typo in previous commit.
* modules/strtoumax (Depends-on): Fix typo.
* modules/strtoimax (Depends-on): Likewise.
2013-10-10 Paul Eggert <eggert@cs.ucla.edu>
strtoumax: port to Solaris 8
This problem was introduced in the recent HP-UX patch.
Reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00037.html>.
* modules/strtoumax (Depends-on): Test HAVE_STRTOUMAX
and REPLACE_STRTOUMAX rather than ac_cv_func_strtoumax.
2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
strtoimax, strtoumax: port to HP-UX 11.11
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/r/bug-gnulib/2013-10/msg00023.html>.
* lib/inttypes.in.h (strtoumax): Replace strtoumax if
REPLACE_STRTOUMAX, thus treating it consistently with strtoimax.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Add default for
REPLACE_STRTOUMAX.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX):
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX):
Replace the function if defined as a macro but not as a function.
* modules/inttypes-incomplete (inttypes.h): Substitute
REPLACE_STRTOUMAX.
* modules/strtoumax (configure.ac): Replace strtoumax if
REPLACE_STRTOUMAX.
2013-10-08 Paul Eggert <eggert@cs.ucla.edu>
strtoimax: port to HP-UX 11.11
Problem reported by Daniel Richard G.
* lib/strtoimax.c (Strtoimax, Strtol, Strtoll): New macros.
(strtoimax, strtol, strtoll) [UNSIGNED]: Remove, since
they might clash with inttypes.h.
2013-10-06 Paul Eggert <eggert@cs.ucla.edu>
New module 'count-trailing-zeros'.
* MODULES.html.sh: Mention it.
* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h:
* m4/count-trailing-zeros.m4, modules/count-trailing-zeros:
* modules/count-trailing-zeros-tests:
* tests/test-count-trailing-zeros.c:
New files.
count-leading-zeros: port to MSC; support types wider than 64 bits
The ideas behind the MSC port are stolen from Emacs.
* lib/count-leading-zeros.h:
Don't include verify.h: it's no longer needed, as types wider than
64 bits are now supported.
(COUNT_LEADING_ZEROS): New arg MSC_BUILTIN, for better
performance with MSC. All uses changed. Do not assume that TYPE
has at most 64 bits.
(count_leading_zeros_32): Assume 0 < X < 2**32, for speed.
All uses changed. Fold the subtraction from 31 into the table.
count-one-bits: port to MSC; support types wider than 64 bits
The ideas behind the MSC port are stolen from Emacs.
* lib/count-one-bits.c (popcount_support) [_MSC_VER]: New variable.
* lib/count-one-bits.h: Include limits.h, for CHAR_BIT.
Don't include verify.h: it's no longer needed, as types wider than
64 bits are now supported.
(COUNT_ONE_BITS_GENERIC): New macro.
(popcount_supported) [_MSC_VER]: New inline function.
(COUNT_ONE_BITS): Use it. New arg MSC_BUILTIN, for better
performance with MSC. All uses changed. Do not assume that TYPE
has at most 64 bits.
* modules/count-one-bits (Depends-on): Do not depend on 'verify'.
2013-10-06 Andrew Borodin <aborodin@vmail.ru>
mountlist: fix resource leak with MOUNTED_INTERIX_STATVFS
* lib/mountlist.c (read_file_system_list): fix leak of directory
streams in case of #ifdef MOUNTED_INTERIX_STATVFS.
2013-10-06 Paul Eggert <eggert@cs.ucla.edu>
tests: improve diagnostic when an assertion fails
* tests/macros.h (ASSERT): Report the assertion that failed.
2013-10-02 Paul Eggert <eggert@cs.ucla.edu>
verify: new macro 'assume'
This is taken from Emacs, and should be generally useful.
* doc/verify.texi (assume): Document it.
* lib/verify.h (assume): New macro.
(__has_builtin): Expand to 0 if not defined.
2013-09-26 Eric Blake <eblake@redhat.com>
dup2, dup3: work around another cygwin crasher
* m4/dup2.m4 (gl_FUNC_DUP2): Expose the bug.
* m4/dup3.m4 (gl_FUNC_DUP3): Likewise.
* tests/test-dup2.c (main): Likewise.
* lib/dup2.c (rpl_dup2): Use setdtablesize to avoid it.
* lib/dup3.c (dup3): Likewise.
* doc/posix-functions/dup2.texi (dup2): Document it.
* doc/glibc-functions/dup3.texi (dup3): Likewise.
getdtablesize: work around cygwin issue
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Detect problem.
* modules/getdtablesize (configure.ac): Build replacement.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set up a witness.
* modules/unistd (Makefile.am): Expose the witness.
* lib/unistd.in.h (getdtablesize): Declare replacement.
* lib/getdtablesize.c (rpl_getdtablesize): Work around it.
* tests/test-getdtablesize.c (main): Test it.
* doc/glibc-functions/getdtablesize.texi (getdtablesize): Document it.
2013-09-25 Mats Erik Andersson <gnu@gisladisker.se>
pmccabe2html: escaping of special characters
Escape all '<', '>', and '&' in HTML output.
* build-aux/pmccabe2html (html_fnc): Call gsub()
instead of sub() to capture all '<', '>', and '&'.
Neither of '<' and '>' is special in a regexp,
so first arguments to gsub() are corrected. Also,
in replacement strings, ampersand must be escaped.
Finally, '&' must be handled first, then '<' and '>'.
2013-09-24 Eric Blake <eblake@redhat.com>
manywarnings: enable nicer gcc warning messages
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Older gcc requires
some -f options for optimal warnings.
2013-09-21 Jim Meyering <meyering@fb.com>
timespec: use the new TIMESPEC_RESOLUTION in a few more places
* lib/timespec-add.c (timespec_add): Also replace 999999999
with TIMESPEC_RESOLUTION - 1.
* lib/timespec-sub.c (timespec_sub): Likewise.
2013-09-23 Paul Eggert <eggert@cs.ucla.edu>
warnings: port --enable-gcc-warnings to Solaris Studio 12.3
Problem reported by Dagobert Michelsen via Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2013-09/msg00052.html>.
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use AC_LINK_IFELSE,
not AC_COMPILE_IFELSE.
2013-09-23 Eric Blake <eblake@redhat.com>
configmake: support new --runstatedir option
* m4/configmake.m4 (gl_CONFIGMAKE_PREP): Substitute runstatedir
even if autoconf was too old to provide the command line option.
* modules/configmake (Makefile.am): Propagate it to .h file.
2013-09-22 Paul Eggert <eggert@cs.ucla.edu>
ctype, string: depend on extern-inline
This is needed to complete the recent OS X fixes.
Also, fix related documentation as suggested by Eric Blake.
* doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi:
* doc/posix-functions/isascii.texi, doc/posix-functions/iscntrl.texi:
* doc/posix-functions/isdigit.texi, doc/posix-functions/isgraph.texi:
* doc/posix-functions/islower.texi, doc/posix-functions/isprint.texi:
* doc/posix-functions/ispunct.texi, doc/posix-functions/isspace.texi:
* doc/posix-functions/isupper.texi, doc/posix-functions/isxdigit.texi:
* doc/posix-functions/toascii.texi, doc/posix-functions/tolower.texi:
* doc/posix-functions/toupper.texi:
List the 'ctype' gnulib module.
* doc/posix-functions/strcat.texi, doc/posix-functions/strcpy.texi:
* doc/posix-functions/strncpy.texi:
List the 'string' gnulib module.
* modules/memcpy, modules/memmove, modules/memset (Depends-on):
Add string.
* modules/ctype, modules/string (Depends-on): Add extern-inline.
2013-09-19 Pádraig Brady <P@draigBrady.com>
userspec: support optional parameters to parse_user_spec()
* lib/userspec.c (parse_user_spec): If the GID param is NULL,
then avoid group processing and treat the full spec as a user.
(parse_with_separator): Allow the USERNAME and GROUPNAME to
be optional params (NULL), in which case they're ignored.
2013-09-19 Paul Eggert <eggert@cs.ucla.edu>
timespec: new function make_timespec, and new constants
* lib/timespec.h: Incorporate recent changes on the Emacs trunk.
(TIMESPEC_RESOLUTION, LOG10_TIMESPEC_RESOLUTION): New constants.
(make_timespec): New function.
* lib/dtotimespec.c (dtotimespec):
* lib/timespec-add.c (timespec_add):
* lib/timespec-sub.c (timespec_sub):
* lib/utimens.c (validate_timespec):
* lib/utimensat.c (rpl_utimensat):
Use these new constants and functions.
stdio: OS X port of putc_unlocked + extern inline
* lib/stdio.in.h (putc_unlocked): #undef on problematic Apple platforms.
* doc/posix-functions/putc_unlocked.texi:
* doc/posix-functions/putchar_unlocked.texi:
Document this portability problem.
signal: OS X port of sigaddset etc. + extern inline
* lib/signal.in.h (sigaddset, sigdelset, sigemptyset, sigfillset)
(sigismember): #undef on problematic Apple platforms.
* doc/posix-functions/sigaddset.texi:
* doc/posix-functions/sigdelset.texi:
* doc/posix-functions/sigemptyset.texi:
* doc/posix-functions/sigfillset.texi:
* doc/posix-functions/sigismember.texi:
Document this portability problem.
extern-inline: do not always suppress extern inline on OS X
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Suppress the use of
extern inline on Apple only if the particular compile-time
configuration is known to have the problem.
(_GL_EXTERN_INLINE_APPLE_BUG): New private macro, to implement this.
(_GL_EXTERN_INLINE_IN_USE): New macro, intended for use by
other Gnulib modules.
extern-inline: document fixes for ctype and wctype macros
* doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi:
* doc/posix-functions/isascii.texi, doc/posix-functions/isblank.texi:
* doc/posix-functions/iscntrl.texi, doc/posix-functions/isdigit.texi:
* doc/posix-functions/isgraph.texi, doc/posix-functions/islower.texi:
* doc/posix-functions/isprint.texi, doc/posix-functions/ispunct.texi:
* doc/posix-functions/isspace.texi, doc/posix-functions/isupper.texi:
* doc/posix-functions/iswalnum.texi, doc/posix-functions/iswalpha.texi:
* doc/posix-functions/iswcntrl.texi, doc/posix-functions/iswctype.texi:
* doc/posix-functions/iswdigit.texi, doc/posix-functions/iswgraph.texi:
* doc/posix-functions/iswlower.texi, doc/posix-functions/iswprint.texi:
* doc/posix-functions/iswpunct.texi, doc/posix-functions/iswspace.texi:
* doc/posix-functions/iswupper.texi, doc/posix-functions/iswxdigit.texi:
* doc/posix-functions/isxdigit.texi, doc/posix-functions/toascii.texi:
* doc/posix-functions/memcpy.texi, doc/posix-functions/memmove.texi:
* doc/posix-functions/memset.texi, doc/posix-functions/stpcpy.texi:
* doc/posix-functions/stpncpy.texi, doc/posix-functions/strcat.texi:
* doc/posix-functions/strcpy.texi, doc/posix-functions/strncat.texi:
* doc/posix-functions/strncpy.texi:
* doc/posix-functions/tolower.texi, doc/posix-functions/toupper.texi:
* doc/posix-functions/towlower.texi, doc/posix-functions/towupper.texi:
Document that Gnulib fixes portability problems with these
functions on OS X 10.8 and earlier when called from plain inline
or extern inline functions.
2013-09-17 Kevin Cernekee <cernekee@gmail.com>
fflush, freadahead, fseeko: Fix for Android
Suggested by Bruno Haible in:
<http://lists.gnu.org/r/bug-gnulib/2012-01/msg00306.html>
* lib/stdio-impl.h: Use local __sfileext definition.
2013-09-17 Mats Erik Andersson <gnu@gisladisker.se>
pmccabe2html: Portability to other awk versions.
The functions systime() and strftime() are available
in Gawk only. Properly close two HTML-tags 'style'
and 'span'.
* build-aux/pmccabe2html (BEGIN): Store timing
strings in EPOCH_TIME and CHRONOS_TIME. Replace
systime() in HTML_COMMENT.
(html_header): Correctly close tag 'style'.
(END): Replace strftime() by CHRONOS_TIME. Close
tag 'span' correctly, not as 'div'.
2013-09-17 Mats Erik Andersson <gnu@gisladisker.se> (tiny change)
getgroups: statement without effect
* lib/getgroups.c (rpl_getgroups) [HAVE_GETGROUPS]:
Change equality conditional to expected assignment.
2013-09-09 Eric Blake <eblake@redhat.com>
glob: fix compilation
* lib/glob.in.h (__THROW): Fix missing line in previous commit.
2013-09-07 Eric Blake <eblake@redhat.com>
glob: fix build for platforms without __THROW
* lib/glob.in.h (__THROW): Add definition again.
2013-09-04 Anton Ovchinnikov <revolver112@gmail.com> (tiny change)
regex-quote: fix buffer access out of bounds
http://lists.gnu.org/r/bug-gnulib/2013-09/msg00001.html
* lib/regex-quote.c (regex_quote_spec_pcre):
Fix typo that resulted in an out-of-bounds read.
2013-09-04 Eric Blake <eblake@redhat.com>
glob: avoid -Wattribute warnings on glibc
* lib/glob.c (next_brace_sub, prefix_array, collated_compare): Use
__THROWNL, not __THROW, on static functions.
* lib/glob.in.h (__THROW): Adjust...
(__THROWNL): ...accordingly.
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
headers: check that _GL_INLINE_HEADER_BEGIN is defined
Suggested by Bruce Korb in:
http://lists.gnu.org/r/bug-gnulib/2013-08/msg00070.html
* doc/extern-inline.texi (extern inline):
Suggest checking that _GL_INLINE_HEADER_BEGIN is defined.
* lib/acl-internal.h, lib/argp-fmtstream.h, lib/argp.h:
* lib/binary-io.h, lib/bitrotate.h, lib/count-leading-zeros.h:
* lib/count-one-bits.h, lib/eealloc.h, lib/execinfo.in.h:
* lib/gethrxtime.h, lib/gl_list.h, lib/gl_oset.h, lib/gl_xlist.h:
* lib/gl_xoset.h, lib/gl_xsublist.h, lib/glthread/cond.h:
* lib/glthread/thread.h, lib/math.in.h, lib/mbchar.h, lib/mbfile.h:
* lib/mbiter.h, lib/mbuiter.h, lib/openat.h, lib/pipe-filter-aux.h:
* lib/priv-set.h, lib/pthread.in.h, lib/savewd.h, lib/se-context.in.h:
* lib/se-selinux.in.h, lib/sig-handler.h, lib/stat-time.h:
* lib/sys_socket.in.h, lib/timespec.h, lib/u64.h, lib/unistd.in.h:
* lib/utimens.h, lib/wctype.in.h, lib/xalloc.h, lib/xsize.h:
* lib/xtime.h:
Check that _GL_INLINE_HEADER_BEGIN is defined.
2013-08-29 Pádraig Brady <P@draigBrady.com>
bootstrap: remove the --version requirement from ancillary tools
* build-aux/bootstrap (check_exists): A new refactored function to
determine if a command exists.
(find_tool): Use the new function which does not require the
--version option to be supported.
(check_versions): Use the new function.
2013-08-26 Simon Josefsson <simon@josefsson.org>
gc: support HMAC-SHA256 and HMAC-SHA512.
* lib/gc.h: Add gc_hmac_sha256 and gc_hmac_sha512.
* lib/gc-libgcrypt.c (gc_hmac_sha256, gc_hmac_sha512): New
functions.
(gc_hmac_md5): Use symbolic constant.
* lib/gc-gnulib.c: Include hmac.h for HMAC-SHA256/512 too.
(gc_hmac_sha256, gc_hmac_sha512): New functions.
* lib/hmac.h: Add hmac_sha256 and hmac_sha512 prototypes.
* m4/sha256.m4: Protect against empty expansion.
* m4/sha512.m4: Likewise.
* lib/hmac-sha256.c: New file.
* lib/hmac-sha512.c: Likewise.
* m4/gc-hmac-sha256.m4: Likewise.
* m4/gc-hmac-sha512.m4: Likewise.
* m4/gc-sha256.m4: Likewise.
* m4/gc-sha512.m4: Likewise.
* modules/crypto/gc-hmac-sha256: Likewise.
* modules/crypto/gc-hmac-sha256-tests: Likewise.
* modules/crypto/gc-hmac-sha512: Likewise.
* modules/crypto/gc-hmac-sha512-tests: Likewise.
* modules/crypto/hmac-sha256: Likewise.
* modules/crypto/hmac-sha256-tests: Likewise.
* modules/crypto/hmac-sha512: Likewise.
* modules/crypto/hmac-sha512-tests: Likewise.
* tests/test-gc-hmac-sha256.c: Likewise.
* tests/test-gc-hmac-sha512.c: Likewise
* tests/test-hmac-sha256.c: Likewise.
* tests/test-hmac-sha512.c: Likewise
2013-08-24 Daiki Ueno <ueno@gnu.org>
* m4/intl.m4: Update from gettext-0.18.3.1, which fixes a misuse
of AC_CHECK_DECLS.
2013-08-23 Paul Eggert <eggert@cs.ucla.edu>
selinux-at: omit unnecessary include
* lib/selinux-at.c: Don't include dosname.h; not needed, since
this source file doesn't use its macros, and subsidiary files that
use the macros already include it.
2013-08-21 Eric Blake <eblake@redhat.com>
d-ino: avoid false negative on symlink
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Use lstat.
Reported by Stephane Chazelas.
2013-08-12 Mike Miller <mtmiller@ieee.org> (tiny change)
bootstrap: port to OpenBSD sed
* build-aux/bootstrap (insert_if_absent): Port to OpenBSD sed which
does not interpret `-' as a file argument to mean stdin.
2013-08-15 Eric Blake <eblake@redhat.com>
warnings: minor optimization
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use fewer processes.
warnings: check -Wfoo rather than -Wno-foo
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): If name begins with
-Wno-, test if the compiler recognizes the positive form instead.
2013-08-15 Karl Berry <karl@gnu.org>
* config/srclist-update: add option "doclicense" to placate
pulling *.texi files from Emacs. Write terse usage
documentation at the top.
2013-08-13 Paul Eggert <eggert@cs.ucla.edu>
xvasprintf-tests: port to GCC with hardening flags
* tests/test-xvasprintf.c (test_xasprintf): Pass another arg to
xasprintf, to pacify GCC. Reported by Santiago Vila in:
http://lists.gnu.org/r/bug-diffutils/2013-08/msg00002.html
2013-08-11 Paul Eggert <eggert@cs.ucla.edu>
fpending: port to recent Cygwin change to stdio_ext.h
Reported by LRN in
<http://lists.gnu.org/r/bug-gnulib/2013-08/msg00028.html>.
* lib/fpending.h: Don't worry about HAVE_DECL___FPENDING;
just declare __fpending unless it's a macro.
A duplicate decl shouldn't hurt.
* m4/fpending.m4 (gl_FUNC_FPENDING): Check that an __fpending
call compiles and links, instead of separately checking for
decl and lib function.
* modules/fpending (configure-ac):
Adjust to fpending.m4's renaming of shell variable.
2013-08-10 Paul Eggert <eggert@cs.ucla.edu>
sys_time: port to OpenBSD
* lib/sys_time.in.h: Simply delegate to the system's header
in the BSDish cases as well. Problem reported by Mike Miller in
<http://lists.gnu.org/r/bug-gnulib/2013-08/msg00016.html>.
* tests/test-sys_select.c, tests/test-sys_time.c (verify_tv_sec_type):
Allow platforms like 64-bit OpenBSD where timeval's tv_sec is
wider than time_t.
2013-08-09 Pádraig Brady <P@draigBrady.com>
bootstrap: support checksum utils having -c but not --status
* build-aux/bootstrap: Only look for sha1sum if updating po files.
Add sha1 to the list of supported checksum utils since it's now
supported through adjustments below.
(update_po_files): Remove the use of --status
in a way that will suppress all error messages, but since this is
only used to minimize updates, it shouldn't cause an issue.
Exit early if there is a problem updating the po file checksums.
(find_tool): Remove the check for --version support as this
is optional as per commit 86186b17. Don't even check for the
presence of the command as if that is needed, it's supported
through configuring prerequisites in bootstrap.conf.
Prompt that when a tool isn't found, one can define an environment
variable to add to the hardcoded search list.
2013-08-05 Jim Meyering <meyering@fb.com>
regex: port to non-glibc/lock-using systems
Since 29-05-2013 commit, 55ba71f4, compilation on a non-glibc
system with GNULIB_LOCK would fail due to absence of the
included "glthread/lock.h". This would affect any package
for which the "lock" module is used only by the regex module,
and not explicitly used.
* m4/regex.m4 (gl_PREREQ_REGEX): Require gl_GLIBC21.
* modules/regex (Depends-on) [!GLIBC && $ac_use_included_regex]:
Add a dependency on the "lock" module.
2013-07-20 Daiki Ueno <ueno@gnu.org>
localecharset: make locale_charset thread-safe on Mac OS X
* lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
instead of MB_CUR_MAX.
2013-07-20 Daiki Ueno <ueno@gnu.org>
gettext: update to version 0.18.3
* m4/intl.m4, m4/po.m4: Update from gettext-0.18.3. In particular,
require AC_PROG_SED to allow user to specify custom sed command when
generating en@quot PO file.
2013-07-18 Werner Lemberg <wl@gnu.org> (tiny change)
bootstrap: use correct source when copying build-aux files
* build-aux/bootstrap (gnulib_extra_files): This variable is
relative to upstream gnulib layout, not downstream.
2013-07-17 Paul Eggert <eggert@cs.ucla.edu>
tmpdir: fix bug in VMS port
* lib/tmpdir.c (path_search) [__VMS]: Never add slash.
See Steven M. Schweda in
<http://lists.gnu.org/r/bug-gnulib/2013-07/msg00026.html>.
2013-07-15 Paul Eggert <eggert@cs.ucla.edu>
tmpdir: port to VMS, to // != /, and to long dirs
* lib/tmpdir.c (__libc_secure_getenv) [!_LIBC]: Rename from
__secure_getenv, so that we're more like the glibc version.
All uses changed.
(path_search): Don't put slash after directory if __VMS.
Problem reported by Steven M. Schweda in
<http://lists.gnu.org/r/bug-gnulib/2013-07/msg00019.html>.
Simplify code to add slash; no need for a loop.
Do not remove trailing slash from "//".
Do not assume dlen <= INT_MAX.
2013-07-09 Paul Eggert <eggert@cs.ucla.edu>
regex: port to --with-included-regex --enable-gcc-warnings non-threaded
* lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid
gcc warnings in the non-threaded case. Reported by Charlie Brown in
<http://lists.gnu.org/r/bug-gnulib/2013-07/msg00015.html>.
accept4, dup3, pipe2: port to Cygwin
Problem reported for Emacs by Ken Brown in <http://bugs.gnu.org/14821>.
* lib/accept4.c (accept4) [O_BINARY]:
* lib/dup3.c (dup3) [O_BINARY]:
* lib/pipe2.c (pipe2) [O_BINARY]:
Use set_binary_mode, not setmode.
* lib/pipe2.c [!GNULIB_BINARY_IO]: Include binary-io.h.
* modules/binary-io (Depends-on): Remove module indicator.
These last two bits undo the previous change to pipe2 and binary-io.
2013-07-09 Pádraig Brady <P@draigBrady.com>
mountlist: add support for deallocating returned list entries
* lib/mountlist.c (free_mount_entry): A new exported function
to deallocate a mount list entry.
(read_file_system_list): Refactor to use the new deallocation function.
Suggested by Anton Ovchinnikov.
2013-07-07 Paul Eggert <eggert@cs.ucla.edu>
stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11
Problem reported by Ulrich Mueller in <http://bugs.gnu.org/14812>.
* lib/stdalign.in.h (_Alignas, _Alignof):
Port to FreeBSD 9.1, and to C11 and C++11.
(_Alignas): Also support ICC.
* lib/verify.h (_Static_assert): Undef if <stddef.h> defines it.
* m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11.
2013-07-06 Paul Eggert <eggert@cs.ucla.edu>
fnmatch: don't goto over declaration
* lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
undefined behavior for goto over a declaration.
Problem reported by Charlie Brown in
<http://lists.gnu.org/r/bug-gnulib/2013-07/msg00009.html>.
pipe2: decouple from binary-io a bit
This is for Emacs, which needs pipe2 but not binary-io.
* lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h.
* modules/binary-io (Depends-on): Add module indicator.
2013-07-03 Eric Blake <eblake@redhat.com>
mgetgroups: relax license to LGPLv2+
* modules/getugroups (License): Change from GPLv3+.
* modules/mgetgroups (License): Likewise.
* modules/getgroups (License): Change from LGPLv3+.
xalloc-oversized: relax license to LGPLv2+
* modules/xalloc-oversized (License): Change from GPLv3+.
nproc: relax license to LGPLv2+
* modules/nproc (License): Change from LGPLv3+.
bootstrap: honor --no-git
* build-aux/bootstrap: Don't even try to use git when user is
pointing to a static checkout.
2013-06-23 Paul Eggert <eggert@cs.ucla.edu>
ignore-value: port to gcc -pedantic
* lib/ignore-value.h (ignore_value):
Port to gcc -pedantic, by using __extension__.
Reindent as per usual gnulib style nowadays.
Simplify GCC version check.
2013-06-21 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: port to gcc -std=c89
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Do not use __gnu_inline__ if pedantic and pre-C99.
2013-06-18 Paul Eggert <eggert@cs.ucla.edu>
doc: document extern-inline
* doc/extern-inline.texi: New file.
* doc/gnulib.texi (alloca-opt): Include it.
* m4/extern-inline.m4: Move some comments to documentation,
and others closer to what they describe.
doc: chatter less
* doc/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro.
(updated-stamp): Use it. This causes 'make' to output just
one file name rather than zillions.
fflush, fseeko: port to musl cross-compiles
* lib/fseeko.c (fseeko): Assume that fflushing stdin works if
on some implementation that (1) is not known to be buggy,
(2) claims conformance to POSIX.1-2008 or later, and (3) is being
cross-compiled to so we can't easily check for lack of
conformance. This is for cross-compiling to musl.
Reported by Rich Felker in
<http://lists.gnu.org/r/bug-gnulib/2013-06/msg00043.html>.
* m4/fclose.m4 (gl_FUNC_FCLOSE):
* m4/fflush.m4 (gl_FUNC_FFLUSH):
* m4/fseeko.m4 (gl_FUNC_FSEEKO):
Adjust to above change.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin
to 'cross', not to 'no', when cross-compiling. AC_DEFINE
FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work,
known not to work, or unknown.
2013-06-15 Paul Eggert <eggert@cs.ucla.edu>
msvc-inval: port to mingw-w64
* lib/msvc-inval.c (gl_msvc_invalid_parameter_handler):
Use __cdecl, not cdecl, for mingw-w64. Reported by LRN in
<http://lists.gnu.org/r/bug-gnulib/2013-06/msg00039.html>.
2013-06-11 Paul Eggert <eggert@cs.ucla.edu>
getcwd-lgpl: port to Tru64
* lib/getcwd-lgpl.c: Include <stdlib.h>, for malloc etc.
Problem reported by Steven M. Schweda in
<http://lists.gnu.org/r/bug-gzip/2013-06/msg00010.html>.
tests: port large-fd POSIX spawn tests to OS X
Problem reported by Daiki Ueno in
<http://lists.gnu.org/r/bug-gnulib/2013-06/msg00031.html>.
* tests/test-posix_spawn_file_actions_addclose.c:
* tests/test-posix_spawn_file_actions_adddup2.c:
* tests/test-posix_spawn_file_actions_addopen.c:
Include <limits.h>, for OPEN_MAX, if available.
(big_fd): New static function.
(main): Use it.
2013-06-04 Bernhard Voelker <mail@bernhard-voelker.de>
tests/nap.h: use an adaptive delay to avoid ctime update issues
The recent change in nap.h (5191133e) decreased the probability of lost
races to about a third, however such problems could still be observed
in virtual machines and openSUSE's OBS.
Before, nap() detected the needed time once empirically and then used
that delay (together with a small correction multiplier) in further
calls. This problem has been reported and discussed several times,
including guesses about possible kernel issues:
https://lists.gnu.org/r/bug-gnulib/2013-04/msg00071.html
http://lists.gnu.org/r/coreutils/2012-03/msg00088.html
https://lists.gnu.org/r/bug-gnulib/2011-11/msg00226.html
http://bugs.gnu.org/12820
https://lists.gnu.org/r/bug-gnulib/2010-11/msg00113.html
https://lists.gnu.org/r/bug-gnulib/2009-11/msg00007.html
Now, nap() avoids the race alltogether by verifying on a reference
file whether a timestamp difference has happened.
* tests/nap.h (nap_fd): Define file descriptor variable for the
witness file.
(nap_works): Change return value to bool. Change passing
the old file's status by value instead of by reference as this function
does no longer update that timestamp; rename the function argument from
st to old_st. Remove the local variables cdiff and mdiff because that
function now returns true/false instead of the precise delay.
(guess_delay): Remove function.
(clear_tmp_file): Add new function to close and unlink the witness file.
(nap): Instead of re-using the delay which has been calculated during
the first call, avoid the race by actually verifying that a timestamp
difference can be observed on the current file system. Use an adaptive
approach for the delay to minimize execution time. Assert that the
maximum delay is <= ~2 seconds, more precisely sum(2^n) from 0 to 30
= 2^31 - 1 = 2.1s.
Use atexit to call clear_tmp_file when the process terminates.
2013-06-02 Paul Eggert <eggert@cs.ucla.edu>
sig2str: port to C++
* lib/sig2str.h (sig2str, str2sig): Declare as extern "C".
Reported by Daniel J Sebald in
<http://lists.gnu.org/r/bug-gnulib/2013-06/msg00000.html>.
2013-05-30 Eric Blake <eblake@redhat.com>
docs: mention cygwin shortcoming in <sys/un.h>
* doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.
vasnprintf: silence mingw compiler warning
* lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning.
2013-05-29 Paul Eggert <eggert@cs.ucla.edu>
c-ctype, regex, verify: port to gcc -std=c90 -pedantic
Avoid constructions that are rejected by gcc -std=c90 -pedantic.
This fixes a porting bug I recently reintroduced in regex, and
some other instances that I discovered while testing the fix.
* lib/c-ctype.h [__STRICT_ANSI__]: Avoid ({ ... }).
* lib/regcomp.c (utf8_sb_map) [__STRICT_ANSI__]: Avoid [0 ... N] = E.
* lib/regex_internal.h [!_LIBC && GNULIB_LOCK]: Do not use a macro
with an empty argument if this is a pedantic pre-C99 GCC.
* lib/verify.h: Do not use _Static_assert if this is a pedantic
pre-C11 GCC.
regex: adapt to locking regime instead of depending on pthread
Instead of depending on pthread, adapt to whatever thread
modules are in use. Problem reported by Ludovic Courtès in
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00082.html>
and by Mats Erik Andersson in
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00100.html>.
* lib/regex_internal.h (lock_define, lock_init, lock_fini):
Support either the 'lock' module, or the 'pthread' module, or
no module.
(lock_lock, lock_unlock): New macros.
* lib/regexec.c (regexec, re_search_stub): Use the new macros.
* modules/lock, modules/pthread (configure.ac): Add module indicator.
* modules/regex (Depends-on): Remove pthread.
2013-05-22 Eric Blake <eblake@redhat.com>
getgroups: document portability issues
* doc/glibc-functions/initgroups.texi (initgroups): Mention
multithread safety.
* doc/posix-functions/getpwuid.texi (getpwuid): Likewise.
* doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise.
* doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention
getugroups.
* doc/posix-functions/getgroups.texi (getgroups): Mention
multithread safety and mgetgroups.
2013-05-22 Bernhard Voelker <mail@bernhard-voelker.de>
test-lchown, test-chown: also skip test if chown fails with EPERM
* tests/test-lchown.h (test_lchown): Add EPERM to the condition to
skip this test, to handle FAT file systems.
* tests/test-chown.h (test_chown): Likewise.
2013-05-19 Paul Eggert <eggert@cs.ucla.edu>
regex: fix dfa race in multithreaded uses
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00058.html>.
* lib/regex_internal.h (lock_define, lock_init, lock_fini):
New macros. All uses of __libc_lock_define, __libc_lock_init
changed to use the first two of these.
(__libc_lock_lock, __libc_lock_unlock): New macros, for
non-glibc platforms.
(struct re_dfa_t): Define the lock unconditionally.
* lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect
'#ifdef _LIBC"s.
* modules/regex (Depends-on): Add pthread, if we use the
included regex.
* lib/regcomp.c: Do actions that are not needed for glibc,
but may be needed elsewhere.
(regfree, re_compile_internal): Destroy the lock.
(re_compile_internal): Check for lock-initialization failure.
malloca: port to compilers that reject size-zero arrays
This fixes a bug introduced in my previous patch.
* lib/malloca.c (struct preliminary_header): Use an int
rather than a character array of size int; that's simpler.
(struct header): Remove, replacing with ...
(union header): New type. This avoids the need for declaring a
character array of size zero, which is not allowed on some platforms.
All uses changed.
2013-05-18 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime, tests: don't use "string" + int
Recent versions of 'clang' complain about C source code that
uses expressions of the form '"string literal" + integer',
I guess on the theory that it's confusing for readers who are
used to C++. On those grounds I suppose it's OK to make this
minor style change.
* lib/parse-datetime.y (parse_datetime):
* tests/test-fchdir.c (main):
* tests/test-snprintf-posix.h (test_function):
* tests/test-snprintf.c (main):
* tests/test-vasnprintf-posix.c (test_function):
* tests/test-vasnprintf.c (test_function):
* tests/test-vsnprintf.c (main):
* tests/unistdio/test-ulc-asnprintf1.h (test_function):
Rewrite '"str" + E' to '&"str"[E]'.
2013-05-17 Alexandre Duret-Lutz <adl@lrde.epita.fr>
argmatch: port to C++
* lib/argmatch.h [__cplusplus]: Add extern "C".
argp: typo fix
* lib/argp-help.c: Typo in comment.
2013-05-15 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: update for GCC 4.8.0
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which
are new to GCC 4.8. Remove -Wformat=2, -Wmissing-format-attribute,
-Wmissing-noreturn, as they are duplicates of other warnings.
Remove -Wunreachable-code, as it is removed in GCC 4.8 and
was documented to be flaky in earlier versions of GCC.
spawn-tests, sys_socket-tests, sys_wait-tests: port to clang
* tests/test-spawn.c (main):
* tests/test-sys_socket.c (main):
* tests/test-sys_wait.c (main):
Don't have a switch value that isn't covered by a case.
getaddrinfo-tests: port --enable-gcc-warnings to clang
* tests/test-getaddrinfo.c (simple):
Avoid casts from looser to stricter-aligned pointers.
thread: port --enable-gcc-warnings to clang
* lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]:
Include <signal.h>, to pacify a warning about pthread_sigmask.
stdio: use __REDIRECT for fwrite, fwrite_unlocked
* lib/stdio.in.h (fwrite):
When working around bug 11959, use __REDIRECT rather than '#define
fwrite(...) ... fwrite (...) ...'. This is a more-targeted way to
fix the -Wunused-value issue with clang, and it works with GCC too.
Problem with targeting reported by Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00067.html>.
(fwrite_unlocked): Treat like fwrite. I ran into this issue while
debugging the fwrite issue.
stdio: port --enable-gcc-warnings to clang
* lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely,
since the GCC workaround for fwrite does not pacify clang.
sig2str: port --enable-gcc-warnings to clang
* lib/sig2str.c (sig2str): Avoid warning about unused printf argument.
obstack: port --enable-gcc-warnings to clang
* lib/obstack.h (obstack_ptr_grow_fast, obstack_int_grow_fast):
Avoid casts from looser to stricter-aligned pointers.
memchr2: port --enable-gcc-warnings to clang
* lib/memchr2.c (memchr2):
Avoid casts from looser to stricter-aligned pointers.
mbsstr: port --enable-gcc-warnings to clang
* lib/mbsstr.c (knuth_morris_pratt_multibyte):
Avoid casts from looser to stricter-aligned pointers.
malloca: port --enable-gcc-warnings to clang
* lib/malloca.c (struct header): New member 'magic', to avoid casts.
(mmalloca): Avoid casts from looser to stricter-aligned pointers.
inttostr: port --enable-gcc-warnings to clang
* lib/anytostr.c [__clang__]: Ignore -Wtautological-compare.
warnings: port to clang
Problem reported by Daniel P. Berrange via Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00055.html>.
* m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro.
(gl_WARN_ADD): Use it.
2013-05-11 Jim Meyering <meyering@fb.com>
quotearg: do not read beyond end of buffer
* lib/quotearg.c (quotearg_buffer_restyled): Do not read beyond the
end of an ARG for which no length was specified. With an N-byte
quote string, (e.g., N is 3 in the fr_FR.UTF-8 locale), this function
would read N-2 bytes beyond ARG's trailing NUL. This was triggered
via coreutils' misc/sort-debug-keys.sh test and detected by running
the test against a binary compiled with gcc-4.8.0's -fsanitize=address.
* tests/test-quotearg-simple.c (main): Add a test to trigger the bug.
* modules/quotearg-simple-tests (Files): Add tests/zerosize-ptr.h.
Introduced via the 2000-01-15 commit, c4b7f3f8, "Quote multibyte
characters correctly."
2013-05-11 Daiki Ueno <ueno@gnu.org>
lock: work around pthread recursive mutexes bug in Mac OS X 10.6
* m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the
compilation target is Mac OS X 10.6.
Problem reported by parafin and Andoni Morales in
<http://savannah.gnu.org/bugs/?37844> and
<http://lists.gnu.org/r/bug-gettext/2013-05/msg00007.html>.
2013-05-11 Paul Eggert <eggert@cs.ucla.edu>
mkdir-p: remove assumptions about umask and mode
* lib/mkdir-p.c (make_dir_parents): Do not assume that the current
umask is 0, or that MODE is a subset of MODE_BITS.
2013-05-10 Eric Blake <eblake@redhat.com>
maint.mk: catch more abuse of HAVE_DECL in syntax-check
* top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
deps: require Automake >= 1.9.6 in generated Makefile fragments
That is the same minimal version required in the DEPENDENCIES file.
Moreover, the old code generated a requirement of Automake >= 1.5,
and that is an insanely outdated version.
* gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS.
* tests/havelib/rpathlx/Makefile.am: Likewise.
* tests/havelib/rpathly/Makefile.am: Likewise.
* tests/havelib/rpathlyx/Makefile.am: Likewise.
* tests/havelib/rpathlz/Makefile.am: Likewise.
* tests/havelib/rpathlzyx/Makefile.am: Likewise.
* tests/havelib/rpathx/Makefile.am: Likewise.
* tests/havelib/rpathy/Makefile.am: Likewise.
* tests/havelib/rpathz/Makefile.am: Likewise.
2013-05-08 Eric Blake <eblake@redhat.com>
bootstrap: AC_INIT may have more than four parameters
* build-aux/bootstrap (extract_package_name): Correctly extract
non-empty tarname field. Avoid range in regex.
Based on a report by Sami Kerola <kerolasa@iki.fi>.
2013-05-07 Paul Eggert <eggert@cs.ucla.edu>
qacl: port to MS-Windows port of GNU Emacs
* lib/acl-errno-valid.c (acl_errno_valid) [ENOTSUP == ENOSYS]:
Omit the duplicate ENOTSUP case. Needed for the MS-Windows
port of GNU Emacs. Problem reported by Eli Zaretskii in
<http://bugs.gnu.org/14295#14>.
2013-05-07 Mike Frysinger <vapier@gentoo.org>
acl: include quote.h
* lib/copy-acl.c: Include quote.h.
* lib/set-acl.c: Likewise.
2013-05-06 Mike Frysinger <vapier@gentoo.org>
fchownat, renameat, unlinkat: update statat dependencies
These modules use statat and lstatat, not fstatat; so depend on
the statat module, which was split out recently from fstatat.
* modules/fchownat, modules/unlinkat: Change fstatat to statat.
* modules/renameat: Likewise. Also delete fstat.
URL: http://bugs.gentoo.org/468790
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Assume gnulib is checked out from Git, not CVS
In fact, access to the gnulib repository through CVS has been
disabled, or more precisely, got broken and was never restored; see:
<http://lists.gnu.org/r/bug-gnulib/2013-05/msg00008.html>
Note that support for CVS is not removed completely and unthinkingly
by this change: only support for CVS checkouts of gnulib itself is
removed. For example, the 'bootstrap' script still cater to .cvsingore
files and CVS directories, for the benefit of those poor gnulib clients
still stuck with CVS. Ditto for the 'gnulib-tool' script itself.
* gnulib-tool: Simplify accordingly.
* posix-modules: Likewise.
* MODULES.html.sh: Likewise.
* doc/gnulib.texi: No longer mention the decommissioned CVS gnulib
repository.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib-readme.texi: Likewise.
* doc/gnulib-tool.texi: In the examples and explanations, refer to a
sample '.gitignore' file rather than a sample '.cvsignore'.
* NEWS: Update.
* m4/extensions.m4: While at it, remove a comment mistakenly referring
to "CVS Autoconf" rather than "git Autoconf".
2013-04-30 Paul Eggert <eggert@cs.ucla.edu>
utimensat-tests, etc.: try to fix some races
Problem reported by Bernhard Voelker in
<http://lists.gnu.org/r/bug-gnulib/2013-04/msg00071.html>.
I don't know whether this patch fixes that race condition, but it
fixes *some* race conditions, so it should be a win.
* modules/chown-tests (Depends-on):
* modules/fchownat-tests (Depends-on):
* modules/fdutimensat-tests (Depends-on):
* modules/futimens-tests (Depends-on):
* modules/lchown-tests (Depends-on):
* modules/stat-time-tests (Depends-on):
* modules/utimens-tests (Depends-on):
* modules/utimensat-tests (Depends-on):
Depend on nanosleep, not usleep.
* modules/chown-tests (test_chown_LDADD):
* modules/lchown-tests (test_lchown_LDADD):
* modules/stat-time-tests (test_stat_time_LDADD):
New macro.
* modules/fchownat-tests (test_fchownat_LDADD):
* modules/fdutimensat-tests (test_fdutimensat_LDADD):
* modules/futimens-tests (test_futimens_LDADD):
* modules/utimens-tests (test_utimens_LDADD):
* modules/utimensat-tests (test_utimensat_LDADD):
Add $(LIB_NANOSLEEP).
* modules/stat-time-tests (Files): Add tests/nap.h.
* tests/nap.h: Include <limits.h>, for INT_MAX.
(lt_mtime): Remove.
(diff_timespec): New function.
(get_stat): Rename from get_mtime. All callers changed.
(nap_works): Determine the needed delay by inspecting the
file system's timestamp jumps; this should be more reliable.
Look at both mtime and ctime, and take the maximum of the two jumps.
(nap_works, guess_delay):
Return a nanosecond count, not a microsecond count.
All callers changed.
(nap_works, nap): Use nanosleep, not usleep. Check for nanosleep
failure.
(nap): Multiply the guess by 1.125, to accommodate the case where
the file system's clock is a bit slower than nanosleep's clock.
* tests/test-stat-time.c (BASE): New macro.
Include nap.h.
(nap): Remove; nap.h now defines this. This removes a duplicate
implementation of 'nap'.
utimens, utimensat: work around Solaris UTIME_OMIT bug
Solaris 11.1 and Solaris 10 have the same UTIME_OMIT bug that
Linux kernel 2.6.32 does. Work around it in the same way.
* doc/posix-functions/futimens.texi (futimens):
* doc/posix-functions/utimensat.texi (utimensat): Document the bug.
* lib/utimens.c (fdutimens, lutimens):
* lib/utimensat.c (rpl_utimensat): Work around the bug.
gettext: now it's your responsibility to add -I$(top_builddir)/intl
Formerly, it was your responsibility to do this for all Makefile.ams
other than Gnulib's. Now it's your responsibility to do it for
Gnulib's Makefile.am, too.
* NEWS: Document this.
* modules/gettext (AM_CPPFLAGS): Don't append -$(top_builddir)/intl.
acl: include errno.h to get errno
Reported by Daiki Ueno in
<http://lists.gnu.org/r/bug-gnulib/2013-04/msg00073.html>.
* lib/copy-acl.c, lib/set-acl.c: Include errno.h.
2013-04-29 Paul Eggert <eggert@cs.ucla.edu>
tests: don't assume getdtablesize () <= 10000000
* modules/cloexec-tests:
* modules/dup2-tests:
* modules/dup3-tests:
* modules/nonblocking-tests:
* modules/posix_spawn_file_actions_addclose-tests:
* modules/posix_spawn_file_actions_adddup2-tests:
* modules/posix_spawn_file_actions_addopen-tests:
* modules/unistd-safer-tests:
Depend on the getdtablesize module.
* tests/test-cloexec.c:
* tests/test-dup-safer.c:
* tests/test-dup2.c:
* tests/test-dup3.c:
* tests/test-fcntl.c:
* tests/test-nonblocking.c:
* tests/test-posix_spawn_file_actions_addclose.c:
* tests/test-posix_spawn_file_actions_adddup2.c:
* tests/test-posix_spawn_file_actions_addopen.c:
Don't assume getdtablesize () <= 10000000.
2013-04-28 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: work around bug in Sun c99
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
Work around bug in Sun C 5.12 c99's implementation of 'inline'.
2013-04-27 Paul Eggert <eggert@cs.ucla.edu>
qacl: new module, broken out from the acl module
This is for GNU Emacs, which wants the acl functions but does
not want 'error' invoked when they fail.
* lib/acl-internal.h: Do not include error.h, quote.h.
(ENOSYS, ENOTSUP): Remove; no longer needed.
(ACL_NOT_WELL_SUPPORTED): Remove; replaced by acl_errno_valid.
* lib/acl.h: Include <stdbool.h>.
(acl_errno_valid): New function.
* lib/copy-acl.c, lib/set-acl.c: Include errno,h, not acl-internal.h.
* lib/copy-acl.c (qcopy_acl): Move to lib/qcopy-acl.c.
* lib/set-acl.c: Rename from lib/set-mode-acl.c.
(chmod_or_fchmod, qset_acl): Move to lib/qset-acl.c.
(ACL_INTERNAL_INLINE): Remove; no longer needed.
* lib/file-has-acl.c (file_has_acl):
* lib/qcopy-acl.c (qcopy_acl):
* lib/qset-acl.c (qset_acl):
Use acl_errno_valid instead of ACL_NOT_WELL_SUPPORTED.
* modules/acl (Files): Move lib/acl.h, lib/acl-internal.h,
lib/acl_entries.c, lib/set-mode-acl.c (renamed to lib/set-acl.c),
lib/file-has-acl.c, m4/acl.m4 to qacl module.
Add lib/set-acl.c.
(Depends-on): Move extern-inline, fstat, sys_stat to qacl module.
Add qacl.
(configure.ac): Move gl_FUNC_ACL to qacl module.
(lib_SOURCES): Remove file-has-acl.c (moved to qacl module).
Rename set-mode-acl.c to set-acl.c.
* lib/acl-errno-valid.c: New file.
* lib/qcopy-acl.c: New file, moved from the old lib/copy-acl.c; the
copy_acl function remains in copy-acl.c.
* lib/qcopy-acl.c, lib/qset-acl.c: Do not include gettext.h.
(_): Remove; not needed.
* lib/qset-acl.c: New file, moved from the old lib/set-mode-acl.c; the
set_acl function remains in set-acl.c (renamed from set-mode-acl.c).
* modules/qacl: New file, moved from the old modules/acl.
(Files, lib_SOURCES): Add acl-errno-valid.c, qcopy-acl.c, qset-acl.c.
Remove set-mode-acl.c, copy-acl.c.
(Depends-on): Remove error, gettext-h, quote. Add stdbool.
alignof, intprops, malloca: port better to IBM's C compiler
* lib/alignof.h (alignof_type) [__IBM_ALIGNOF__]: Use __alignof__.
* lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM_TYPEOF__]: Now 1.
* lib/malloca.h (sa_alignof): [__IBM_ALIGNOF__]: Use __alignof__.
2013-04-25 Daiki Ueno <ueno@gnu.org>
wctype-h: fix gettext link error on mingw
Reported by Josue Andrade Gomes and Takayuki Tsunakawa in
<https://lists.gnu.org/r/bug-gettext/2013-03/msg00086.html>.
* lib/wctype.in.h [__MINGW32__]: Include <ctype.h> before defining
rpl_towupper and rpl_towupper.
2013-04-11 Dmitry V. Levin <ldv@altlinux.org>
regex-tests, regex: allow glibc re_search behavior
* tests/test-regex.c (main): In test for glibc bug 15078, reformat
re_search input data to make the multi-character collating element
in it clearly visible, and treat re_search return code 0 as valid.
* m4/regex.m4 (gl_REGEX): Likewise.
2013-03-30 Paul Eggert <eggert@cs.ucla.edu>
stdalign: doc fix
* doc/posix-headers/stdalign.texi (stdalign.h):
Gnulib doesn't support '_Alignof expr'.
2013-03-29 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to stricter ISO C11
ISO C11 says that _Alignof's operand must be a parenthesized type.
Problem reported by Eli Zaretskii in
<http://lists.gnu.org/r/emacs-devel/2013-03/msg00960.html>.
* doc/posix-headers/stdalign.texi (stdalign.h): Document this.
* m4/stdalign.m4 (gl_STDALIGN_H): Don't use _Alignof (expr).
2013-03-21 Paul Eggert <eggert@cs.ucla.edu>
sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin
Problem reported by Marco Atzeri in
<http://lists.gnu.org/r/bug-gnulib/2013-03/msg00000.html>.
* lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]:
Simply delegate to the system <sys/select.h> in this case too.
Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only
if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to
be needed on Solaris either.
* lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]:
Simply delegate to the system <sys/time.h> in this case.
2013-03-19 Karl Berry <karl@gnu.org>
* build-aux/gnupload: check for erroneous (with gnupload) use of
ftp-upload.gnu.org, tweak help.
2013-03-19 Paul Eggert <eggert@cs.ucla.edu>
copy-file, rpmatch: fix problems found by cppcheck
Reported by Arno Onken in
<http://lists.gnu.org/r/bug-gnulib/2013-03/msg00069.html>.
* lib/rpmatch.c (try): Fix memory leak.
* lib/copy-file.c: Include "ignore-value.h".
(qcopy_file_preserving): Ignore chown value.
* modules/copy-file (Depends-on): Add ignore-value.
2013-01-27 Jim Meyering <jim@meyering.net>
prefix-gnulib-mk: give better diagnostics
* build-aux/prefix-gnulib-mk: Don't just "die".
Give better diagnostics upon failure.
2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
putenv: port to Solaris 10
* lib/putenv.c (_unsetenv, putenv): Use HAVE_DECL__PUTENV, not
HAVE__PUTENV. Solaris 10 has a _putenv that's not declared and
is not what is wanted here.
* m4/putenv.m4 (gl_PREREQ_PUTENV): Check for _putenv's
declaration, not for its existence.
2013-03-12 Paul Eggert <eggert@cs.ucla.edu>
mktime: fix configure typo
* m4/mktime.m4 (gl_FUNC_MKTIME): Fix typo in previous change.
2013-03-12 Eric Blake <eblake@redhat.com>
regex-tests: skip UTF-8 test on mingw
* modules/regex-tests (Depends-on): Add localcharset.
* tests/test-regex.c (main): Use it to skip test on mingw.
2013-03-11 Eric Blake <eblake@redhat.com>
tests: make it easier to bypass alarm time in debugger
* tests/test-file-has-acl.c (main): Allow gdb to override alarm.
* tests/test-memmem.c (main): Likewise.
* tests/test-passfd.c (main): Likewise.
* tests/test-ptsname.c (main): Likewise.
* tests/test-ptsname_r.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
regex: port to mingw's recent addition of undeclared alarm
* doc/posix-functions/alarm.texi (alarm): Document that alarm
exists but still doesn't work in newer mingw.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm declaration,
not existence. Ensure SIGALRM is not trapped.
* m4/mktime.m4 (gl_FUNC_MKTIME): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): Likewise.
* tests/test-regex.c (main): Use correct probe for alarm.
putenv: avoid compilation warning on mingw
* lib/putenv.c (_unsetenv): Protect variable declaration.
(putenv): Fix indentation.
2013-03-11 Gary V. Vaughan <gary@gnu.org>
unistd: don't prevent Tru64 Unix from using gnulib strtod.
* lib/unistd.in.h: be careful not to include un-needed system
stdlib.h from here, because that prevents gnulib stdlib.h from
defining rpl_strtod correctly.
2013-03-09 Gary V. Vaughan <gary@gnu.org>
vasprintf-posix-tests: allow rounding 1.51 to 1, per the previous
changesets, but for the 'precision 0' test.
* tests/test-vasprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.51 to 1 here.
vasprintf-posix-tests: allow rounding 1.5 to 1, per the previous
changeset.
* tests/test-vasprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.5 to 1 here.
2013-03-08 Paul Eggert <eggert@cs.ucla.edu>
vasnprintf-posix-tests: allow rounding 1.5 to 1
* tests/test-vasnprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.5 to 1 here. Reported by Gary V. Vaughan in
<http://lists.gnu.org/r/bug-gnulib/2013-03/msg00019.html>.
bootstrap: port to FreeBSD
* build-aux/bootstrap (bootstrap_sync): Port sh -c usage to shells
that treat '--' differently. Reported by Mats Erik Andersson in
<http://lists.gnu.org/r/bug-gnulib/2013-03/msg00012.html>.
2013-03-08 Gary V. Vaughan <gary@gnu.org>
regex: rename remaining __attribute calls to __attribute__.
2012-02-25 changed definition of __attribute, but left some uses
unchanged, preventing compilation of regex module on most non-gcc
environments.
* lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry)
(lookup_collation_sequence_value, build_range_exp)
(build_collating_symbol): Set attributes with newly renamed
__attribute__ decorator.
* lib/regex_internal.c (re_string_peek_byte_case)
(re_node_set_compare, re_node_set_contains): Likewise.
* lib/regexec.c (acquire_init_state_context): Likewise.
2013-03-06 Bruno Haible <bruno@clisp.org>
execute: Revert last change, but use a different condition.
* lib/execute.c (nonintr_close, nonintr_open): Reintroduce, but only
on Windows.
2013-03-05 Eric Blake <eblake@redhat.com>
execute: drop dead code
* lib/execute.c (nonintr_close, nonintr_open): Delete.
2013-03-04 Paul Eggert <eggert@cs.ucla.edu>
non-recursive-gnulib-prefix-hack: port coreutils 8.21 to HP NonStop
* m4/non-recursive-gnulib-prefix-hack.m4
(gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't mess with ALLOCA.
Problem reported for HP NonStop + coreutils 8.21 by Joachim Schmitz in
<http://bugs.gnu.org/10305#237>.
2013-03-04 Eric Blake <eblake@redhat.com>
test-getsockopt: avoid compiler warning
* tests/test-getsockopt.c (includes): Ensure close is declared.
2013-03-02 Bruno Haible <bruno@clisp.org>
sys_types: Avoid autoconf warning about gl_SYS_TYPES_H.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define through AC_DEFUN_ONCE.
2013-03-02 Bruno Haible <bruno@clisp.org>
gettext: Update to version 0.18.2.
* m4/intl.m4, m4/po.m4: Update from gettext-0.18.2. In particular:
2012-12-07 Stefano Lattarini <stefano.lattarini@gmailcom>
* intl.m4, po.m4: Bump requirement in AC_PREREQ to 2.60.
2013-02-25 Paul Eggert <eggert@cs.ucla.edu>
regex: merge patches from libc
2013-02-26 Siddhesh Poyarekar <siddhesh@redhat.com>
* lib/regex_internal.h (__attribute__): Rename from __attribute.
All uses changed.
(bitset_not, bitset_merge, bitset_mask, re_string_char_size_at)
(re_string_wchar_at, re_string_elem_size_at):
Mark function as possibly unused.
2013-02-12 Andreas Schwab <schwab@suse.de> [BZ #11561]
* lib/regcomp.c (parse_bracket_exp) [_LIBC]: When looking up collating
elements compare against the byte sequence of it, not its name.
2013-02-21 Paul Eggert <eggert@cs.ucla.edu>
putenv: port better to native Windows
* lib/putenv.c [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
Define WIN32_LEAN_AND_MEAN and include <windows.h>.
(_unsetenv): Use _putenv if available.
(putenv): Temporarily set NAME=' ' rather than NAME='x' as that's
a bit less likely to cause damage.
(putenv) [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
Fix the wrong value with SetEnvironmentVariable.
(putenv) [!HAVE__PUTENV]: Simplify and match the HAVE__PUTENV
code better.
2013-02-20 Paul Eggert <eggert@cs.ucla.edu>
regex: ignore old-style-definition warnings
* lib/regex.c: Add pragma to ignore these warnings.
Problem reported for GNU tar by Pavel Raiskup.
2013-02-19 Paul Eggert <eggert@cs.ucla.edu>
getcwd: support coreutils better
Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD,
but this might not be correct in coreutils, which disables
the raw decl checks. Problem reported by Nagendra in
<http://bugs.gnu.org/10305#192>.
* lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
Test the getcwd function, not any macro, since getcwd.c wants the
function.
* m4/getcwd.m4 (gl_FUNC_GETCWD):
Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't
compile, as might happen if there's a macro but no function.
strtod: support coreutils better
* lib/strtod.c (underlying_strtod): Just invoke the underlying strtod.
HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which
disables the raw decl checks. This assumes there is an underlying
strtod, but that's a safe assumption these days.
(HAVE_RAW_DECL_STRTOD): Remove; no longer used.
mountlist: port to HP NonStop
Reported by Joachim Schmitz in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00084.html>.
* lib/mountlist.c (hasmntopt) [!HAVE_HASMNTOPT]: New function.
(MNT_IGNORE) [MNTOPT_IGNORE]: Use it.
2013-02-18 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: avoid compilation error with HP-UX cc
Reported by Richard Lloyd in
<http://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
Suppress extern inline with HP-UX cc. This should be safe,
though it may hurt performance. Perhaps someone with some HP-UX
experience can come up with a higher-performance fix.
2013-02-14 Paul Eggert <eggert@cs.ucla.edu>
putenv: fix heap corruption with mixed putenv/_putenv
Problem reported by Michael Goffioul in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00061.html>.
* lib/putenv.c (putenv) [HAVE__PUTENV]:
Rely on _putenv to allocate the new environment.
* m4/putenv.m4 (gl_PREREQ_PUTENV): New macro.
* modules/putenv (configure.ac): Use it.
2013-02-11 Paul Eggert <eggert@cs.ucla.edu>
unsetenv etc.: port to Solaris 11 + GNU Emacs
* lib/canonicalize-lgpl.c, lib/getaddrinfo.c, lib/getdelim.c:
* lib/glob.c, lib/random_r.c, lib/setenv.c, lib/tsearch.c:
* lib/unsetenv.c (_GL_ARG_NONNULL): Define before including <config.h>.
GNU Emacs's <config.h> includes <stdlib.h> (which is not a great
idea but is too painful to fix right now), and without this gnulib
change <stdlib.h> was defining _GL_ARG_NONNULL incorrectly when
compiling unsetenv.c on Solaris 11. Fix the problem for
unsetenv.c, and fix other similar occurrences.
2013-02-09 Paul Eggert <eggert@cs.ucla.edu>
secure_getenv: fix C++ declaration typo
* lib/stdlib.in.h (secure_getenv): Fix typo with return type
in _GL_CXXALIAS_SYS macro. Reported by John W. Eaton in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00057.html>.
2013-02-08 Paul Eggert <eggert@cs.ucla.edu>
careadlinkat: stop exporting careadlinkatcwd
Only Emacs used it directly, and Emacs no longer needs it.
* NEWS: Document this simplification.
* lib/areadlink.c (careadlinkatcwd): Move here from careadlinkat.c,
and make it static. Include <stdlib.h>, for abort, and unistd.h,
for readlink.
* lib/careadlinkat.c (careadlinkatcwd): Move to areadlink.c.
Don't include stdlib.h; no longer needed.
* lib/careadlinkat.h (careadlinkatcwd): Remove decl.
* lib/relocwrapper.c: Adjust comment to match new dependencies.
* modules/areadlink (Depends-on): Add readlink.
(Maintainer): Add self.
* modules/careadlinkat (Depends-on): Remove readlink.
extensions: port better to HP-UX
This is merged from git Autoconf.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
On hosts that need _XOPEN_SOURCE, define it when configuring, too,
so that it's compatible with the value used when compiling.
openpty: fix bug where HAVE_OPENPTY is mistakenly 1
Problem reported by Mats Erik Andersson in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00051.html>.
* m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
openpty function exists, not merely when we intend to replace it.
This corrects the 2013-01-31 patch, which mistakenly defined
HAVE_OPENPTY even on hosts that lacked it.
2013-02-07 Paul Eggert <eggert@cs.ucla.edu>
secure_getenv: fix include typo
* lib/secure_getenv.c: Include config.h. Somehow I forgot!
secure_getenv: port better to FreeBSD and Solaris
* lib/secure_getenv.c [!HAVE___SECURE_GETENV]:
Include unistd.h if HAVE_ISSETUGID, otherwise define a dummy issetugid.
(secure_getenv) [!HAVE___SECURE_GETENV]: Use getenv if not issetugid.
This works better on BSDish platforms.
* m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV):
Test for issetugid if __secure_getenv is missing.
2013-02-06 Paul Eggert <eggert@cs.ucla.edu>
extensions: port better to MINIX 3, HP-UX, autoheader 2.62
Some of these changes are merged in from git Autoconf.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
When deciding whether to define _XOPEN_SOURCE, inspect the
preprocessor macro __hpux instead of the more-heavyweight
operation of requiring AC_CANONICAL_HOST. Define _NETBSD_HOST on
MINIX, for MINIX 3. Use USE_SYSTEM_EXTENSIONS, not __EXTENSIONS__,
as the key for __EXTENSIONS__.
unistd: avoid namespace pollution on non-glibc systems
* lib/unistd.in.h: #define __need_getopt before including <getopt.h>.
This avoids namespace pollution on non-glibc systems, by causing
gnulib unistd.h to behave more like glibc unistd.h. I also hope
that this fixes a bug on FreeBSD, reported by Mats Erik Andersson in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00027.html>.
2013-02-04 Paul Eggert <eggert@cs.ucla.edu>
tmpdir: use secure_getenv
* lib/tmpdir.c (__secure_getenv) [!LIBC]:
Define to secure_getenv, not getenv.
* m4/tmpdir.m4 (gt_TMPDIR): Don't check for __secure_getenv,
as that's now secure_getenv's job.
* modules/tmpdir (Depends-on): Add secure_getenv.
tempname: use secure_getenv
* lib/tempname.c (__secure_getenv) [!_LIBC]:
Define to secure_getenv, not getenv.
* modules/tempname (Depends-on):
Add secure_getenv.
secure_getenv: new module
* MODULES.html.sh (Extra functions based on ANSI C 89):
Add secure_getenv.
* doc/glibc-functions/secure_getenv.texi: New file.
* doc/gnulib.texi: Include it.
* lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv:
New files.
* lib/stdlib.in.h (secure_getenv): New decl.
* m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS):
* modules/stdlib (stdlib.h):
Add secure_getenv checks.
2013-02-03 Paul Eggert <eggert@cs.ucla.edu>
getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
Reported for OS X 10.8.2 by Assaf Gordon in
<http://bugs.gnu.org/13516>.
* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
!HAVE_OPENAT && !HAVE_FDOPENDIR.
* m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c
so that they can be kept in sync more easily. Avoid PATH_MAX
test on the Hurd. Sync from test-getcwd.c for errno tests after
mkdir or chdir failure.
* tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from
lib/getcwd.c.
(test_abort_bug): Do not test for the deep directory bug unless we
have openat support. Avoid PATH_MAX test on the Hurd.
regex-tests, regex: fix bug: memset undeclared
* tests/test-regex.c: Don't include regex.h twice. Include
string.h, to declare memset. Christensen's report also mentioned
this issue.
* m4/regex.m4 (gl_REGEX): Keep test program more in sync with
test-regex.c, to avoid future problems like this. Remove
AC_INCLUDES_DEFAULT. Include <string.h>. Don't include <regex.h>
twice.
regex-tests: fix link errors on older Solaris
These need to link with @LIBINTL@ to get libintl_gettext.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-02/msg00003.html>.
* modules/regex-tests (test_regex_LDADD): New macro.
2013-01-31 Paul Eggert <eggert@cs.ucla.edu>
regex-tests: new module
* modules/regex-tests, tests/test-regex.c: New files.
regex: fix off-by-one error in configure test
* m4/regex.m4 (gl_REGEX): Test should return 21, not 20.
2013-01-31 Eric Blake <eblake@redhat.com>
regex: avoid infinite configure test
* m4/regex.m4 (gl_REGEX): Add an alarm escape hatch.
2013-01-31 Reuben Thomas <rrt@sc3d.org>
openpty: fix bug where HAVE_OPENPTY wasn't defined
See the thread starting at:
http://lists.gnu.org/r/bug-gnulib/2013-01/msg00185.html
* m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
openpty function exists, not merely when we intend to replace it.
2013-01-30 Paul Eggert <eggert@cs.ucla.edu>
sys_time: port to Solaris 2.6
There is a circularity problem on Solaris 2.6, where <time.h> includes
<sys/time.h> for struct timespec. The include nesting is gnulib
<time.h>, system <time.h>, gnulib <sys/time.h>, system
<sys/time.h>, gnulib <sys/types.h>, system <sys/types.h>, gnulib
<sys/select.h>, gnulib <signal.h>, system <sys/signal.h>, system
<sys/siginfo.h>; the last, innermost file needs struct
timestruc_t, which is defined in <sys/time.h>, which has not been
fully parsed. Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00113.html>.
* lib/sys_select.in.h: Treat Solaris 2.6's problem with
<sys/time.h> and <sys/types.h> like OSF/1's similar problem.
* lib/sys_time.in.h: Redo to resemble sys_select.in.h, which
uses split double-inclusion guards.
2013-01-29 Paul Eggert <eggert@cs.ucla.edu>
regex: test for buffer overrun
* m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab,
for the just-fixed regex bug.
2013-01-29 Andreas Schwab <schwab@suse.de>
regex: fix buffer overrun in regexp matcher [BZ #15078]
* lib/regexec.c (extend_buffers): Add parameter min_len.
(check_matching): Pass minimum needed length.
(clean_state_log_if_needed): Likewise.
(get_subexp): Likewise.
2013-01-28 Pádraig Brady <P@draigBrady.com>
mountlist: don't consider "devtmpfs" as dummy
* lib/mountlist.c (ME_DUMMY_0): Remove "devtmpfs"
as there is storage associcated with it.
2013-01-27 Paul Eggert <eggert@cs.ucla.edu>
futimens-tests, utimens-tests: Depend on gettext.
This works around a problem introduced in my 2013-01-12 patch,
which added @LIBINTL@ to these modules.
* modules/futimens-tests (Depends-on):
* modules/utimens-tests (Depends-on): Add gettext.
2013-01-26 Eric Blake <eblake@redhat.com>
test-getpeername: fix typo
* tests/test-getpeername.c: Fix typo introduced in fd cleanup.
2013-01-20 Bernhard Voelker <mail@bernhard-voelker.de>
bootstrap: remove the need for a sorted .gitignore file
* build-aux/bootstrap (insert_sorted_if_absent): Adjust and
rename to insert_if_absent(), so that we don't need or generate
a sorted .gitignore file. We do require a .gitignore with no
existing duplicate entries and enforce that.
(sort_patterns): Remove this function as we now use the simpler
technigue of inserting blacklist entries at the top of the file,
assuming gnulib won't be inserting !whitelist entries.
2013-01-23 Paul Eggert <eggert@cs.ucla.edu>
readlinkat: don't depend on gl_FUNC_OPENAT
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Don't require gl_FUNC_OPENAT.
Perhaps a similar change needs to be made for linkat.m4, mkfifoat.m4,
renameat.m4, symlinkat.m4; but one thing at a time.
statat: new module, split out from fstatat
GNU Emacs needs the POSIX-specified fstatat, but not the
gnulib-specified statat and lstat. Split the latter two into a
new module 'statat'.
* lib/openat.h: Depend on GNULIB_STATAT, not GNULIB_FSTATAT.
* lib/openat.h, lib/statat.c (STATAT_INLINE):
Rename from FSTATAT_INLINE. All uses changed.
* modules/fstatat (Files): Remove lib/statat.c.
(gl_MODULE_INDICATOR([fstatat])): Remove.
(lib_SOURCES): Remove.
(Maintainer): Add self.
* modules/statat, modules/statat-tests, tests/test-statat.c: New files.
* tests/test-fstatat.c (BASE): Don't define if already defined.
(do_stat, do_lstat) [!TEST_STATAT]: Test fstatat instead.
2013-01-22 Paul Eggert <eggert@cs.ucla.edu>
tests: don't assume fd 99 is closed
* tests/test-accept.c, tests/test-accept4.c, tests/test-bind.c:
* tests/test-close.c, tests/test-connect.c, tests/test-dprintf.c:
* tests/test-dup.c, tests/test-dup2.c, tests/test-faccessat.c:
* tests/test-fchdir.c, tests/test-fchmod.c, tests/test-fchmodat.c:
* tests/test-fchown.c, tests/test-fchownat.c, tests/test-fclose.c:
* tests/test-fdatasync.c, tests/test-fdopen.c, tests/test-fdopendir.c:
* tests/test-fflush.c, tests/test-fgetc.c, tests/test-fputc.c:
* tests/test-fread.c, tests/test-freopen.c, tests/test-fseeko4.c:
* tests/test-fstat.c, tests/test-fstatat.c, tests/test-fsync.c:
* tests/test-ftello4.c, tests/test-ftruncate.c, tests/test-futimens.h:
* tests/test-fwrite.c, tests/test-getpeername.c:
* tests/test-getsockname.c, tests/test-getsockopt.c:
* tests/test-grantpt.c, tests/test-ioctl.c, tests/test-isatty.c:
* tests/test-linkat.c, tests/test-listen.c, tests/test-lseek.c:
* tests/test-mkdirat.c, tests/test-mkfifoat.c, tests/test-openat.c:
* tests/test-pread.c, tests/test-pwrite.c, tests/test-read.c:
* tests/test-readlinkat.c, tests/test-recv.c, tests/test-recvfrom.c:
* tests/test-renameat.c, tests/test-select.h, tests/test-send.c:
* tests/test-sendto.c, tests/test-setsockopt.c, tests/test-shutdown.c:
* tests/test-symlinkat.c, tests/test-ttyname_r.c:
* tests/test-unlinkat.c, tests/test-unlockpt.c:
* tests/test-utimensat.c, tests/test-vdprintf.c, tests/test-write.c:
Close file descriptor 99, instead of assuming it's already closed.
2013-01-21 Paul Eggert <eggert@cs.ucla.edu>
stpncpy: port to OS X 10.8
* lib/stpncpy.c (__stpncpy): Parenthesize name when defining function.
Problem reported by Assaf Gordon in <http://bugs.gnu.org/13495>.
2013-01-16 Paul Eggert <eggert@cs.ucla.edu>
unistd: port to recent mingw
* lib/unistd.in.h: Remove special invocation convention for mingw,
which breaks for the latest mingw version. See John W. Eaton in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00100.html>.
largefile: port better to Mac OS X 10.5
This patch is backported from Autoconf git.
* m4/largefile.m4 (AC_SYS_LARGEFILE): Use AC_DEFINE, not
AH_VERBATIM, to define _DARWIN_USE_64_BIT_INODE, to avoid problems
with ino_t size being different for configuration time versus
build/run time. Problem reported by PHO in
<http://lists.gnu.org/r/bug-autoconf/2013-01/msg00040.html>.
2013-01-15 Paul Eggert <eggert@cs.ucla.edu>
doc: clarify -Werror
* doc/warnings.texi (warnings): -Werror is not always a bad idea;
clarify that it's intended for developers, not for ordinary builds,
and mention --enable-gcc-warnings as one possible use.
2013-01-15 Andoni Morales Alastruey <ylatuya@gmail.com> (tiny change)
stdint: fix build with Android's Bionic fox x86
* lib/stdint.in.h: fix check to test if included-fixed/sys/types.h
was already included as _SSIZE_T_DEFINED_ might also be defined
in include/machine/_types.h, which is included by stdio.h
2013-01-13 Paul Eggert <eggert@cs.ucla.edu>
net_if-tests: port to Solaris 7 + GCC 3.4.6
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00091.html>.
* tests/test-net_if.c (ni): Move to next the code that uses it,
so that it's declared only if needed.
2013-01-12 Paul Eggert <eggert@cs.ucla.edu>
net_if-tests: port to older Solaris
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00086.html>.
* modules/net_if-tests (NET_IF_LIB): New substitution.
(test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB.
(HAVE_IF_NAMEINDEX): New C macro.
* tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX.
system-quote-tests: port to older Solaris
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00086.html>.
* tests/test-system-quote-child.c (fopen, fread): Undef.
c-xvasprintf etc.: fix link errors on older Solaris
These need to link with @LIBINTL@ to get libintl_gettext.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00086.html>.
* modules/c-xvasprintf-tests (test_c_xvasprintf_LDADD):
* modules/readtokens-tests (test_readtokens_LDADD): New macros.
* modules/futimens-tests (test_futimens_LDADD):
* modules/utimens-tests (test_utimens_LDADD): Add @LIBINTL@.
2013-01-10 Paul Eggert <eggert@cs.ucla.edu>
locale: port to Solaris 2.6 and 7 + GNU gettext
* lib/locale.in.h: Just include_next <locale.h> when
being invoked recursively. This prevents problems on Solaris 2.6 and 7
when combining the localename module with GNU gettext 0.18.2.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00084.html>.
2013-01-09 Paul Eggert <eggert@cs.ucla.edu>
stdlib: port to Solaris 2.6
Also, the code worked on Solaris 7 through 9 only by accident.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00059.html>.
* lib/stdlib.in.h: If __need_system_stdlib_h is defined,
simply include the system stdlib.h.
* lib/getopt.in.h (__need_system_stdlib_h):
* lib/pthread.in.h (__need_system_stdlib_h):
* lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]:
Define when including <stdlib.h>, to avoid problems at least for
the pthread case on Solaris 2.6 and 7. These .h files can get by
with the system stdlib.h.
2013-01-06 Paul Eggert <eggert@cs.ucla.edu>
doc: update main copyright year
* doc/gnulib.texi: Update copyright date.
doc: improve ISO 8601 discussion
* doc/parse-datetime.texi (Combined date and time of day items):
Specify more carefully what formats are supported and what is
done with excess precision.
2013-01-05 Paul Eggert <eggert@cs.ucla.edu>
doc: avoid small caps
* doc/parse-datetime.texi, doc/regex.texi: Don't use small caps;
they're more trouble than they're worth. Suggested by Karl Berry
in <http://bugs.gnu.org/13360>.
regex: conform to strict C
* lib/regcomp.c (parse_bracket_exp): Add cast to conform to strict C.
From Aharon Robbins.
gnulib-tool: fix incompatibility with autopoint 0.18.2
* gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line.
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2013-01/msg00053.html>.
2013-01-04 Paul Eggert <eggert@cs.ucla.edu>
fprintftime: bring back and reword fwrite comment
* lib/strftime.c (cpy) [FPRINTFTIME]: Re-add reworded comment.
stdio: remove now-unnecessary stdio.c
Since stdio.in.h no longer uses inline functions, we no longer
need to compile the extern versions.
* lib/stdio.c: Remove.
* modules/stdio (Files): Remove lib/stdio.c.
(lib_SOURCES): Remove.
unicodeio: depend on stdio, not ignore-value
* lib/unicodeio.c: Do not include ignore-value.h.
(fwrite_success_callback): Use plain fwrite, not ignore_value + fwrite.
* modules/unicodeio (Depends-on): Depend on stdio, not ignore-value.
fprintftime: depend on stdio, not ignore-value
* lib/strftime.c [FPRINTFTIME]: Do not include ignore-value.h.
(cpy) [FPRINTFTIME]: Use plain fwrite, not ignore_value of fwrite,
since the stdio module arranges to silence that warning now.
* modules/fprintftime (Depends-on): Depend on stdio, not ignore-value.
2012-10-04 Simon Josefsson <simon@josefsson.org>
stdint-tests: Fix expanded-before-required-warning.
* modules/stdint-tests (Depends-on): Use AC_REQUIRE.
2013-01-03 Paul Eggert <eggert@cs.ucla.edu>
fwrite: silence __wur only for older glibc versions
* lib/stdio.in.h (fwrite): Limit workaround to glibc 2.4 through 2.15.
This will help us remove this workaround some time in the far future.
2013-01-03 Eric Blake <eblake@redhat.com>
fwrite: silence __wur without using inline
* lib/stdio.in.h (fwrite): Limit warn_unused_result workaround to
just gcc, and in a way that avoids inline issues.
* modules/stdio (Depends-on): Drop extern-inline.
2013-01-03 Jim Meyering <jim@meyering.net>
update-copyright: avoid copyright notice date corruption
Given a sequence of copyright year numbers in which the final
one was a two-digit number that happened to be a substring of
a preceding four-digit year number, we would mistakenly update
the substring (from two- to four-digit) rather than the two-digit
number at the end, which, combined with the addition of the current
4-digit year number would yield two 5-digit year numbers, e.g.,
here, it would convert the first "99" to "1999, 2013" rather than
the final one:
1991, 99
11999, 20131, 1999
* build-aux/update-copyright: Tighten a regexp.
* tests/test-update-copyright.sh: Add a test case to trigger the bug.
Reported by Joseph Myers in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281
2013-01-01 Paul Eggert <eggert@cs.ucla.edu>
regex: omit needless signed-pointer casts
* lib/regcomp.c (build_charclass, build_charclass_op):
Use char *, not unsigned char *, for class name and extra.
The char values are always nonnegative so there's no need to
insist on unsigned char * here, and using char * removes the need
for casts. Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
regex: support Gawk, which never uses alloca
* lib/regex_internal.h [!_LIBC && !HAVE_ALLOCA]:
Do not include in this case. Gawk doesn't supply a substitute
alloca.h and doesn't need one.
regex: port __libc_lock_define usage to C89
* lib/regex_internal.h (__libc_lock_define) [!_LIBC]: Remove.
(struct re_dfa_t): Use #ifdef instead. '__libc_lock_define (, lock)'
does not conform to C89, as it has an empty macro argument.
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
2013-01-01 Eric Blake <eblake@redhat.com>
maint: update all copyright year number ranges
Run "make update-copyright".
version-etc: bump copyright year reported in --version
* lib/version-etc.c (COPYRIGHT_YEAR): Update to 2013.
2012-12-31 Eric Blake <eblake@redhat.com>
sigprocmask-tests: skip test if pid is unexpectedly large
* tests/test-sigprocmask.c (main): Add range check.
git-version-gen: avoid test -z portability glitch
* build-aux/git-version-gen: Prefer portable test spelling, since
git-version-gen is run on more than just developer machines.
2012-12-31 Peter Rosin <peda@lysator.liu.se> (tiny change)
git-version-gen: add --fallback option to use if git is not present
* build-aux/git-version-gen: Add support for the new option --fallback,
which comes into play when there is no $tarball_version_file and
git is not working.
(scriptversion): Update.
maint.mk: handle missing git with more grace
* top/maint.mk (no-submodule-changes, public-submodule-commit):
Quietly proceed if git is not present.
2012-12-31 Eric Blake <eblake@redhat.com>
dup2: work around cygwin bug
* m4/dup2.m4 (gl_FUNC_DUP2): Flush out cygwin core dump.
* lib/dup2.c (rpl_dup2): Work around it.
* doc/posix-functions/dup2.texi (dup2): Document it.
2012-12-30 Paul Eggert <eggert@cs.ucla.edu>
regex: remove unnecessary dependency on localcharset.h
* lib/regex_internal.h [!_LIBC]: Don't include localcharset.h;
hasn't been needed for years.
* modules/regex (Depends-on): Remove localcharset.
regex: revert single-byte change
* lib/regexec.c (check_node_accept_bytes): Revert previous change
to this function. This was alredy fixed in a different way, at
bdb56bacd57070eced9998569ffe3f3c37ef5964 in the glibc git; see
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510219> and
<http://sourceware.org/bugzilla/show_bug.cgi?id=9697>.
regex: simplify based on Gawk version
* lib/regex_internal.c (re_dfa_add_node): Simplify.
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
2012-12-29 Paul Eggert <eggert@cs.ucla.edu>
regex: check that pattern char is single-byte
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
* lib/regexec.c (check_node_accept_bytes):
Return 0 if the pattern string has a multibyte character here.
regex: implement rational ranges
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
* lib/regcomp.c (build_range_exp) [!_LIBC]:
* lib/regexec.c (check_node_accept_bytes) [!_LIBC]:
Implement rational ranges.
regex: avoid redefining __wctype
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
* lib/regex_internal.h (__wctype, __iswctype) [!_LIBC]:
#undef before defining.
regex: port to hosts where malloc (0) == NULL
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
* lib/regex_internal.c (re_node_set_alloc):
Don't assume that malloc (0) yields nonnull.
* lib/regex_internal.h (MALLOC_0_IS_NONNULL): New macro.
* m4/regex.m4 (gl_PREREQ_REGEX): Require gl_EEMALLOC.
* modules/regex (Files): Add m4/eealloc.m4.
regex: port to C89
Reported by Aharon Robbins in
<http://sourceware.org/ml/libc-alpha/2012-12/msg00456.html>.
* lib/regcomp.c (init_word_char): Declaration before statement.
regex: merge glibc changes
Also, copy the license wording from glibc. This simplifies
merging changes. gnulib-tool will change the wording to GPL as
appropriate, when importing it to other packages. The only
glibc change made since the last merge, which needs merging, is:
2012-05-24 Andreas Schwab <schwab@linux-m68k.org>
* lib/regex_internal.h (gettext): Remove use of INTUSE.
* users.txt: Add Emacs.
doc: omit mention of version when not needed
* doc/gnulib-intro.texi (Portability and Application Code):
* doc/gnulib.texi (Brief Overview, Legacy Function Substitutes):
Don't mention particular dates or versions when not necessary, so
that the documentation won't go out of date so quickly.
* doc/intprops.texi (Integer Properties): Fix Texinfo typo.
2012-12-28 Akim Demaille <akim@lrde.epita.fr>
bootstrap: pass --force to autoreconf.
* build-aux/bootstrap (AUTORECONFFLAGS): New.
Add "--force" so that Automake's ylwrap and other such tools
be updated at each bootstrap invocation.
Use it.
2012-12-27 Paul Eggert <eggert@cs.ucla.edu>
argp: fix port of port new 'inline' approach to Sun C 5.12 + Solaris 10
The earlier patch forgot to update one of the #if conditions, causing
a problem on Debian testing i386 reported by Mats Erik Andersson
<http://lists.gnu.org/r/bug-gnulib/2012-12/msg00124.html>.
* lib/argp-fmtstream.h (__argp_fmtstream_putc, argp_fmtstream_putc)
(__argp_fmtstream_puts, argp_fmtstream_puts)
(__argp_fmtstream_write, argp_fmtstream_write)
[!_LIBC && !__OPTIMIZE__]: Declare as ARGP_FS_EI, not as extern.
* doc/gnulib-readme.texi: Minor fixups.
(Portability guidelines): Modernize URLs. Remove some repetition.
(Indent with spaces not TABs): Reword to avoid too-long lines.
Remove some '@ifset standalone' stuff that isn't used.
* doc/gnulib-readme.texi (Portability guidelines):
ctype.h, not ctime.h.
Correct name of POSIX.1-2001.
* doc/posix-functions/fgetc.texi (fgetc):
* doc/posix-functions/fgets.texi (fgets):
* doc/posix-functions/fread.texi (fread):
* doc/posix-functions/fscanf.texi (fscanf):
* doc/posix-functions/getc.texi (getc):
* doc/posix-functions/getchar.texi (getchar):
* doc/posix-functions/scanf.texi (scanf):
POSIX.1-2001, not POSIX-2001.
doc: move README into manual
* README: Move contents to new file doc/gnulib-readme.texi.
Replace with a one-line summary.
* doc/gnulib.texi (Brief Overview): New section,
with old intro preface. Include gnulib-readme.texi for contents.
(Philosophy): Rename from "Introduction", since this
section no longer introduces the rest. Write a new preface.
* doc/gnulib-readme.texi: New file, with the old contents of
README texinfo-ized. This way, the README info appears
in the online and printed manual.
2012-12-25 Ben Pfaff <blp@cs.stanford.edu>
c-xvasprintf: Fix "implicit declaration of function" GCC warning.
* lib/c-xvasprintf.c: Add missing #include "c-vasprintf.h", for
c_vasprintf() prototype.
2012-12-24 Ben Pfaff <blp@cs.stanford.edu>
c-vasprintf: Fix "empty declaration" warning reported by GCC.
* lib/c-vasprintf.h: Remove stray semicolon.
2012-12-23 Paul Eggert <eggert@cs.ucla.edu>
gettext: avoid obsolete macro AM_PROG_MKDIR_P
It is obsolete and is planned to be removed from Automake 1.14; see
<http://lists.gnu.org/r/automake/2012-12/msg00029.html>.
* build-aux/po/Makefile.in.in (install-data, install-data-yes)
(installdirs-data, installdirs-data-yes):
Use $(MKDIR_P), not $(mkdir_p).
* m4/intl.m4 (AM_INTL_SUBDIR):
* m4/po.m4 (AM_PO_SUBDIRS):
Require AC_PROG_MKDIR_P, not AM_PROG_MKDIR_P.
2012-12-22 Paul Eggert <eggert@cs.ucla.edu>
argp: port new 'inline' approach to Sun C 5.12 + Solaris 10
On this platform, we are not optimizing but we are using
the substitute for extern inlines, so compile as if
C99-style extern inline, or a substitute, is available.
* lib/argp-fmtstream.h (argp_fmtstream_set_lmargin)
(__argp_fmtstream_set_lmargin, argp_fmtstream_set_rmargin)
(__argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin)
(__argp_fmtstream_set_wmargin, argp_fmtstream_point)
(__argp_fmtstream_point) [!_LIBC && !__OPTIMIZE__]:
Declare as ARGP_FS_EI, not as extern.
* lib/argp.h (argp_usage, __argp_usage, _option_is_short)
(__option_is_short, _option_is_end, __option_is_end)
[!_LIBC && __USE_EXTERN_INLINES]:
Declare as ARGP_EI, not as extern.
2012-12-21 Paul Eggert <eggert@cs.ucla.edu>
AC_PROG_MKDIR_P: port workaround to pre-2.62 Autoconf
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P, AC_C_RESTRICT):
Use m4_ifndef([AC_AUTOCONF_VERSION], ...), not
m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]),[2.62]),[-1],
...), as the latter is fatal with older Autoconfs.
Problem reported and fix suggested by Eric Blake in thread starting at
<http://lists.gnu.org/r/bug-gnulib/2012-12/msg00097.html>.
2012-12-20 Paul Eggert <eggert@cs.ucla.edu>
AC_PROG_MKDIR_P: don't workaround if not buggy
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P):
Define only for Autoconf versions before 2.62.
(AC_C_RESTRICT): Use documented AC_AUTOCONF_VERSION, not
undocumented m4_PACKAGE_VERSION, for consistency with the
abovementioned change to AC_PROG_MKDIR_P. This should suffice
since we're checking for 2.62 or later, and AC_AUTOCONF_VERSION
was introduced in 2.62.
2012-12-15 Ben Pfaff <blp@cs.stanford.edu>
New 'c-*printf' modules for formatted output in C locale.
New module 'c-vasnprintf'.
* modules/c-vasnprintf: New file.
* lib/c-vasnprintf.c: New file.
* lib/c-vasnprintf.h: New file.
New module 'c-snprintf'.
* modules/c-snprintf: New file.
* modules/c-snprintf-tests: New file.
* lib/c-snprintf.c: New file.
* lib/c-snprintf.h: New file.
* tests/test-c-snprintf.c: New file.
* tests/test-c-snprintf.sh: New file.
New module 'c-vsnprintf'.
* modules/c-vsnprintf: New file.
* modules/c-vsnprintf-tests: New file.
* lib/c-vsnprintf.c: New file.
* lib/c-vsnprintf.h: New file.
* tests/test-c-vsnprintf.c: New file.
* tests/test-c-vsnprintf.sh: New file.
New module 'c-vasprintf'.
* modules/c-vasprintf: New file.
* modules/c-vasprintf-tests: New file.
* lib/c-asprintf.c: New file.
* lib/c-vasprintf.c: New file.
* lib/c-vasprintf.h: New file.
* tests/test-c-vasprintf.c +: New file.
* tests/test-c-vasprintf.sh: New file.
New module 'c-xvasprintf'.
* modules/c-xvasprintf: New file.
* modules/c-xvasprintf-tests: New file.
* lib/c-xasprintf.c: New file.
* lib/c-xvasprintf.c: New file.
* lib/c-xvasprintf.h: New file.
* tests/test-c-xvasprintf.c: New file.
* tests/test-c-xvasprintf.sh: New file.
2012-12-18 Paul Eggert <eggert@cs.ucla.edu>
argp: better 'inline'
Use extern-inline module to declare extern inline functions.
This avoids some bogus warning diagnostics. Problem discovered
when modifying GNU tar to use the manywarnings module.
* lib/argp.h, lib/argp-xinl.c (ARGP_EI) [!_LIBC]:
* lib/argp-fmtstream.h, lib/argp-fs-xinl.c (ARGP_FS_EI) [!_LIBC]:
Define based on extern-inline.
* modules/argp (Depends-on): Add extern-inline.
2012-12-17 Paul Eggert <eggert@cs.ucla.edu>
filemode, sys_stat: Handle MPX files a la AIX.
* lib/filemode.c (ftypelet): Report 'm' for MPX files.
* lib/sys_stat.in.h (S_ISMPX): New macro.
* tests/test-sys_stat.c: Add tests for MPX files.
2012-12-16 Alexandre Duret-Lutz <adl@lrde.epita.fr>
x-to-1: honor $PERL
* build-aux/x-to-1.in: Run $HELP2MAN via $PERL so that the user gets
a chance to use his preferred version of Perl. This is typically
required by Darwin users whose default /usr/bin/perl does not have all
the libraries required by help2man, and who need to use their MacPorts
installation of Perl instead.
2012-12-16 Akim Demaille <akim@lrde.epita.fr>
gnu-web-doc-update: add all the new files, even in new directories
See http://lists.gnu.org/r/bug-gnulib/2012-12/msg00057.html
* build-aux/gnu-web-doc-update (--dry-run, $dryrun): New.
Use it.
(main): Don't use cvsutils to get the list of unknown files,
just add all the existing files and directories.
2012-12-16 Akim Demaille <akim@lrde.epita.fr>
gnu-web-doc-update: improve --help
* build-aux/gnu-web-doc-update: Move comments into --help.
2012-12-07 Eric Wong <normalperson@yhbt.net>
mountlist: recognize more "dummy" file systems
* lib/mountlist.c (ME_DUMMY_0):
Add these dummy FS names to the list:
- "debugfs" virtual filesystem for kernel debugging
- "devpts" PTY slave filesystem
- "devtmpfs" device filesystem on top of tmpfs/ramfs
- "fusectl" control filesystem for FUSE
- "mqueue" enumerates POSIX message queues
- "rpc_pipefs" kernel <-> userspace bridge for NFS
- "sysfs" is for exporting kernel objects
- "devfs" device filesystem for Linux 2.4 and FreeBSD
2012-12-11 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: avoid incompatibility with Darwin Libc
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Do not use
extern inline if __APPLE__. Use _GL_UNUSED in the non-inline branch.
Problem reported by Akim Demaille in
<http://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html>.
2012-12-11 Simon Josefsson <simon@josefsson.org>
gnupload: Work with GnuPG using gpg-agent (for smartcards).
* build-aux/gnupload: If GnuPG is configured to use gpg-agent,
let it handle password prompting.
2012-12-10 Eli Zaretskii <eliz@gnu.org>
canonicalize, canonicalize-lgpl: Microsoft Windows prefix fixes
* lib/canonicalize.c (canonicalize_filename_mode):
* lib/canonicalize-lgpl.c (__realpath): Recompute prefix_len after
fetching the current directory. Don't overrun the beginning of
rpath if there's no slashes after the MS-Windows drive letter.
2012-12-08 Stefano Lattarini <stefano.lattarini@gmail.com>
maint.mk: avoid extra forks
* top/maint.mk (_cfg_mk): The GNU make manual documents that
"$(wildcard FILE)" expands to empty if FILE doesn't exist.
So use that instead of "$(shell test -f FILE && echo FILE)".
2012-12-07 Paul Eggert <eggert@cs.ucla.edu>
vasnprintf: fix ASCII_ONLY typo
* lib/unistdio/u8-vasnprintf.c (FCHAR_T_ONLY_ASCII):
* lib/unistdio/u16-vasnprintf.c (FCHAR_T_ONLY_ASCII):
* lib/unistdio/u32-vasnprintf.c (FCHAR_T_ONLY_ASCII):
New macro, replacing ASCII_ONLY. This fixes a typo. See thread at
<http://lists.gnu.org/r/bug-gnulib/2012-12/msg00021.html>.
2012-12-05 Paul Eggert <eggert@cs.ucla.edu>
list, oset, xlist, xoset: fix extern inline issue with C99
This was introduced by my recent changes for 'inline'.
Problem reported for gettext by Daiki Ueno in
<http://lists.gnu.org/r/bug-gnulib/2012-12/msg00000.html>.
* lib/gl_list.h (gl_list_nx_create_empty, gl_list_create)
(gl_list_nx_create, gl_list_size, gl_list_node_value)
(gl_list_node_set_value, gl_list_node_nx_set_value, gl_list_next_node)
(gl_list_previous_node, gl_list_get_at)
(gl_list_nx_set_at, gl_list_search, gl_list_search_from)
(gl_list_search_from_to, gl_list_indexof, gl_list_indexof_from)
(gl_list_indexof_from_to, gl_list_nx_add_first, gl_list_nx_add_last)
(gl_list_nx_add_before, gl_list_nx_add_after, gl_list_nx_add_at)
(gl_list_remove_node, gl_list_remove_at, gl_list_remove, gl_list_free)
(gl_list_iterator, gl_list_iterator_from_to, gl_list_iterator_next)
(gl_list_iterator_free, gl_sortedlist_search)
(gl_sortedlist_search_from_to, gl_sortedlist_indexof)
(gl_sortedlist_indexof_from_to, gl_sortedlist_add, gl_sortedlist_nx_add)
(gl_sortedlist_remove):
* lib/gl_oset.h (go_oset_nx_create_empty, gl_oset_size, gl_oset_search)
(gl_oset_search_atleast, gl_oset_nx_add, gl_oset_remove, gl_oset_free)
(gl_oset_iterator, gl_oset_iterator_next, gl_oset_iterator_free):
* lib/gl_xlist.h (gl_list_create_empty, gl_list_create)
(gl_list_node_set_value, gl_list_set_at, gl_list_add_first)
(gl_list_add_last, gl_list_add_before, gl_list_add_after)
(gl_list_add_at, gl_sortedlist_add):
* lib/gl_xoset.h (gl_oset_create_empty, gl_oset_add):
Wrap these extern decls inside "#if 0", because they are implemented
as inline functions, and extern inline is not what's wanted here.
It would simplify these .h files to remove the extern decls entirely,
although a downside would be less-clear separation between
specification and implementation.
2012-11-29 Paul Eggert <eggert@cs.ucla.edu>
sys_stat: no 'static inline'
* lib/sys_stat.in.h (rpl_mkdir): Now static, not static inline.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Do not require AC_C_INLINE.
extern-inline: no 'static inline'
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Do not require AC_C_INLINE.
(_GL_INLINE, _GL_EXTERN_INLINE): Define as 'static', not as
'static inline', for older compilers.
snippet/warn-on-use: no 'static inline'
* build-aux/snippet/warn-on-use.h:
Remove unnecessary 'inline' in comment.
rbtree-list, rbtreehash-list: no 'static inline'
* lib/gl_anyrbtree_list2.h (rotate_left, rotate_right):
* lib/gl_anytree_list2.h (node_at):
* lib/gl_anytreehash_list1.h (hash_resize_after_add)
(gl_oset_first, add_nodes_to_buckets):
Now static, not static inline.
regex: no 'static inline'
* lib/regex_internal.c (calc_state_hash):
* lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain)
(bitset_empty, bitset_set_all, bitset_copy, bitset_not, bitset_merge)
(bitset_mask, re_string_char_size_at, re_string_wchar_at):
Now static, not static inline.
(inline) [__GNUC__ < 3 && _LIBC]:
Remove macro; no longer needed.
xvasprintf: no 'static inline'
* lib/xvasprintf.c (xstrcat):
Now static, not static inline.
* m4/xvasprintf.m4 (gl_XVASPRINTF):
Do not require AC_C_INLINE.
parse-datetime, parse-duration: no 'static inline'
* lib/parse-datetime.y (to_uchar):
* lib/parse-duration.c (str_const_to_ul, str_const_to_l)
(scale_n_add):
Now static, not static inline.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME):
* modules/parse-duration (configure.ac):
Do not require AC_C_INLINE.
getaddrinfo: no 'static inline'
* lib/getaddrinfo.c (validate_family):
Now static, not static inline.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO):
Do not require AC_C_INLINE.
ftruncate, fts, lstat, openat, raise: no 'static inline'
* lib/ftruncate.c (chsize_nothrow):
* lib/fts.c (opendirat, diropen):
* lib/lstat.c (orig_lstat):
* lib/openat.c (orig_openat):
* lib/raise.c (raise_nothrow):
Now static, not static inline.
* m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE):
* m4/fts.m4 (gl_FUNC_FTS_CORE):
* m4/lstat.m4 (gl_PREREQ_LSTAT):
* m4/openat.m4 (gl_PREREQ_OPENAT):
* m4/raise.m4 (gl_PREREQ_RAISE):
Do not require AC_C_INLINE.
fflush, stat: no 'static inline'
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(clear_ungetc_buffer, disable_seek_optimization)
(restore_seek_optimization, update_fpos_cache):
* lib/stat.c (orig_stat):
Now static, not static inline.
* lib/fflush.c (disable_seek_optimization, restore_seek_optimization)
(update_fpos_cache):
Define only if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1).
* m4/fflush.m4 (gl_PREREQ_FFLUSH):
* m4/stat.m4 (gl_PREREQ_STAT):
Do not require AC_C_INLINE.
error, filevercmp: no 'static inline'
* lib/error.c (is_open, flush_stdout):
* lib/filevercmp.c (order):
Now static, not static inline.
* m4/error.m4 (gl_PREREQ_ERROR):
* modules/filevercmp (configure.ac):
Do not require AC_C_INLINE.
dup, execute, fatal-signal, etc.: no 'static inline'
* lib/dup.c (dup_nothrow):
* lib/execute.c (nonintr_close, nonintr_open):
* lib/fatal-signal.c (uninstall_handlers, install_handlers):
* lib/fopen.c (orig_fopen):
* lib/freadseek.c (freadptrinc):
* lib/freopen.c (orig_freopen):
* lib/fstat.c (orig_fstat, fstat_nothrow):
* lib/get-rusage-as.c (get_rusage_as_via_setrlimit)
(get_rusage_as_via_iterator):
* lib/get-rusage-data.c (get_rusage_data_via_setrlimit):
* lib/getdtablesize.c (_setmaxstdio_nothrow):
* lib/isatty.c (_isatty_nothrow):
* lib/open.c (orig_open):
* lib/read.c (read_nothrow):
* lib/sigprocmask.c (signal_nothrow):
* lib/spawn-pipe.c (nonintr_close, nonintr_open):
* lib/vasnprintf.c (MAX_ROOM_NEEDED):
* lib/wait-process.c (unregister_slave_subprocess):
* lib/write.c (write_nothrow):
Now static, not static inline.
* lib/spawn-pipe.c (nonintr_open): Define only if
(defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__.
* m4/dup.m4 (gl_PREREQ_DUP):
* m4/execute.m4 (gl_EXECUTE):
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL):
* m4/fopen.m4 (gl_PREREQ_FOPEN):
* m4/freadseek.m4 (gl_FUNC_FREADSEEK):
* m4/freopen.m4 (gl_PREREQ_FREOPEN):
* m4/fstat.m4 (gl_PREREQ_FSTAT):
* m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE):
* m4/isatty.m4 (gl_PREREQ_ISATTY):
* m4/open.m4 (gl_PREREQ_OPEN):
* m4/read.m4 (gl_PREREQ_READ):
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK):
* m4/spawn-pipe.m4 (gl_SPAWN_PIPE):
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF):
* m4/wait-process.m4 (gl_WAIT_PROCESS):
* m4/write.m4 (gl_PREREQ_WRITE):
* modules/get-rusage-as, modules/get-rusage-data (configure.ac):
Do not require AC_C_INLINE.
c-strtod, memcoll, readutmp: no 'static inline'
* lib/c-strtod.c (c_locale):
* lib/memcoll.c (strcoll_loop):
* lib/readutmp.c (desirable_utmp_entry):
Now static, not static inline.
* m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOLD):
* m4/memcoll.m4 (gl_MEMCOLL):
* m4/readutmp.m4 (gl_READUTMP):
Do not require AC_C_INLINE.
arctwo, md4, md5, sha1, sha256, sha512: no 'static inline'
* lib/arctwo.c (to_uchar):
* lib/md4.c (set_uint32):
* lib/md5.c (set_uint32):
* lib/sha1.c (set_uint32):
* lib/sha256.c (set_uint32):
* lib/sha512.c (set_uint64):
Now static, not static inline. This is a bit simpler, and doesn't
affect performance with GCC and default optimization.
* m4/arctwo.m4 (gl_ARCTWO):
* m4/md4.m4 (gl_MD4):
* m4/md5.m4 (gl_MD5):
* m4/sha1.m4 (gl_SHA1):
* m4/sha256.m4 (gl_SHA256):
* m4/sha512.m4 (gl_SHA512):
Do not require AC_C_INLINE.
cond, lock, thread: better 'inline'
* lib/glthread/cond.c, lib/glthread/cond.h (_GLTHREAD_COND_INLINE):
* lib/glthread/thread.c, lib/glthread/thread.h (_GLTHREAD_THREAD_INLINE):
New macros. Use them instead of static inline, for header functions.
* lib/glthread/cond.c (gl_waitqueue_init, gl_waitqueue_remove)
(gl_waitqueue_notify_first, gl_waitqueue_notify_all):
* lib/glthread/lock.c (gl_waitqueue_init)
(gl_waitqueue_notify_first, gl_waitqueue_notify_all):
* lib/glthread/thread.c (get_current_thread_handle):
Change 'static inline' to 'inline'.
* lib/glthread/cond.h, lib/glthread/thread.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/cond.m4 (gl_COND):
* m4/lock.m4 (gl_PREREQ_LOCK):
* m4/thread.m4 (gl_THREAD):
Do not require AC_C_INLINE.
* modules/cond, modules/thread (Depends-on): Add extern-inline.
chdir-long, cycle-check, savewd: better 'inline'
* lib/chdir-long.c (cdb_init, cdb_fchdir, cdb_free)
(find_non_slash):
* lib/cycle-check.c (is_zero_or_power_of_two):
* lib/savewd.c (savewd_delegating):
Change 'static inline' to 'inline'.
* lib/savewd.c, lib/savewd.h (SAVEWD_INLINE): New macro.
Replace all remaining uses of 'static inline' with it.
* lib/savewd.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG):
* m4/cycle-check.m4 (gl_CYCLE_CHECK):
* m4/savewd.m4 (gl_SAVEWD):
Do not require AC_C_INLINE.
* modules/savewd (Depends-on): Add extern-inline.
base32, base64: no need for 'inline'
* lib/base32.c (to_uchar, get_8, decode_8):
* lib/base64.c (to_uchar, get_4, decode_4):
Change 'static inline' to 'inline'.
* m4/base32.m4 (gl_PREREQ_BASE32):
* m4/base64.m4 (gl_PREREQ_BASE64):
Do not require AC_C_INLINE.
array-oset, linkedhash-list, rbtree-oset: no need for 'inline'
* lib/gl_array_oset.c (gl_array_nx_add_at):
(gl_array_remove_at):
* lib/gl_linkedhash_list.c (hash_resize_after_add)
(add_to_bucket, remove_from_bucket):
* lib/gl_rbtree_oset.c (rotate_left, rotate_right):
Change 'static inline' to 'static', as it's simpler to omit
'inline' unless there's a significant performance advantage.
list, oset, xlist, xoset, xsublist: simplify via extern inline
* lib/gl_list.h, lib/gl_list.c (GL_LIST_INLINE):
* lib/gl_oset.c, lib/gl_oset.h (GL_OSET_INLINE):
* lib/gl_xlist.c, lib/gl_xlist.h (GL_XLIST_INLINE):
* lib/gl_xoset.c, lib/gl_xoset.h (GL_XOSET_INLINE):
* lib/gl_xsublist.c, lib/gl_xsublist.h (GL_XSUBLIST_INLINE):
New macro. Replace all uses of 'static inline' with it.
[HAVE_INLINE]: Implement functions as *_INLINE functions,
instead of as macros FOO that are defined to static inline
functions FOO_inline.
* lib/gl_list.c, lib/gl_oset.c, lib/gl_xlist.c, lib/gl_xoset.c:
* lib/gl_xsublist.c:
Reimplement from scratch, by defining the corresponding *_INLINE
macro and including the corresponding .h file. This is simpler.
* modules/list, modules/oset, modules/xlist, modules/xoset:
(Files): Remove m4/gl_list.m4.
(configure.ac): Remove gl_LIST.
* m4/gl_list.m4: Remove.
* modules/list, modules/oset, modules/xlist, modules/xoset:
* modules/xsublist:
(Depends-on): Depend on extern-inline, not inline.
xalloc: better 'inline'
* lib/xmalloc.c, lib/xalloc.h (XALLOC_INLINE):
New macro. Replace all uses of 'static inline' with it.
(static_inline): Remove.
* lib/xalloc.h (xnmalloc, xnrealloc, x2nrealloc, xcharalloc):
Let 'extern inline' do the work automatically, instead of doing
it by hand.
* m4/xalloc.m4 (gl_PREREQ_XALLOC, gl_PREREQ_XMALLOC):
Remove. All uses removed.
* modules/xalloc (Depends-on): Remove 'inline'. Add 'extern-inline'.
gethrxtime: better 'inline'
* lib/xtime.c: New file.
* lib/gethrxtime.c, lib/gethrxtime.h (GETHRXTIME_INLINE):
* lib/xtime.h (XTIME_INCLUDE):
New macros. Replace all uses of 'static inline' with them.
* lib/gethrxtime.c (gethrxtime): Define only if
! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME), since
this source file is now always compiled, because of the extern inline.
* lib/gethrxtime.h, lib/xtime.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/gethrxtime.m4 (gl_GETHRXTIME): Do not check for clock macros
if gethrtime works, as they're not needed in that case.
(gl_XTIME): Do not require AC_C_INLINE.
(gl_PREREQ_GETHRXTIME): Remove; all uses removed, as it's always
compiled now. Move the check into gl_GETHRXTIME.
* modules/gethrxtime (Files, lib_SOURCES): Add lib/xtime.c.
(Depends-on): Add extern-inline.
(configure.ac): gethrxtime is always compiled now.
(lib_SOURCES): Add gethrxtime.c.
wctype-h: better 'inline'
* lib/wctype-h.c: New file.
* lib/wctype.in.h (_GL_WCTYPE_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/wctype_h.m4 (gl_WCTYPE_H): Do not require AC_C_INLINE.
* modules/wctype-h (Files, lib_SOURCES): Add lib/wctype-h.c.
(Depends-on): Add extern-inline.
unistd: better 'inline'
* lib/unistd.c: New file.
* lib/unistd.in.h (_GL_UNISTD_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/unistd_h.m4 (gl_UNISTD_H): Do not require AC_C_INLINE.
* modules/unistd (Files, lib_SOURCES): Add lib/unistd.c.
(Depends-on): Add extern-inline.
sys_socket: better 'inline'
* lib/sys_socket.c: New file.
* lib/sys_socket.in.h (_GL_SYS_SOCKET_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Do not require AC_C_INLINE.
* modules/sys_socket (Files, lib_SOURCES): Add lib/sys_socket.c.
(Depends-on): Add extern-inline.
stdio: better 'inline'
* lib/stdio.c: New file.
* lib/stdio.in.h (_GL_STDIO_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/stdio_h.m4 (gl_STDIO_H): Do not require AC_C_INLINE.
* modules/stdio (Files, lib_SOURCES): Add lib/stdio.c.
(Depends-on): Add extern-inline.
sigaction: better 'inline'
* lib/sig-handler.c: New file.
* lib/sig-handler.h (SIG_HANDLER_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): Do not require AC_C_INLINE.
* modules/sigaction (Files, lib_SOURCES): Add lib/sig-handler.c.
(Depends-on): Add extern-inline.
selinux-h: better 'inline'
* lib/se-context.c, lib/se-selinux.c: New files.
* lib/getfilecon.c (map_to_failure): Omit 'inline' for static function.
* lib/se-context.in.h (SE_CONTEXT_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/se-selinux.in.h (SE_SELINUX_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/selinux-h (Files, lib_SOURCES):
Add lib/se-context.c, lib/se-selinux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
pthread: better 'inline'
* lib/pthread.c: New file.
* lib/pthread.in.h (_GL_PTHREAD_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/pthread.m4 (gl_PTHREAD_CHECK):
Add AC_LIBOBJ([pthread]). Do not require AC_C_INLINE.
* modules/pthread (Files): Add lib/pthread.c.
(Depends-on): Add extern-inline.
math: better 'inline'
* lib/math.c: New file.
* lib/math.in.h (_GL_MATH_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/math_h.m4 (gl_MATH_H):
Do not require AC_C_INLINE.
* modules/math (Files, lib_SOURCES):
Add lib/math.c.
(Depends-on): Add extern-inline.
count-one-bits: better 'inline'
* lib/count-one-bits.c: New file.
* lib/count-one-bits.h (COUNT_ONE_BITS_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/count-one-bits.m4 (gl_COUNT_ONE_BITS):
Do not require AC_C_INLINE.
* modules/count-one-bits (Files, lib_SOURCES):
Add lib/count-one-bits.c.
(Depends-on): Add extern-inline.
count-leading-zeros: better 'inline'
* lib/count-leading-zeros.c: New file.
* lib/count-leading-zeros.h (COUNT_LEADING_ZEROS_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/count-leading-zeros.m4 (gl_COUNT_LEADING_ZEROS):
Do not require AC_C_INLINE.
* modules/count-leading-zeros (Files, lib_SOURCES):
Add lib/count-leading-zeros.c.
(Depends-on): Add extern-inline.
bitrotate: better 'inline'
* lib/bitrotate.c: New file.
* lib/bitrotate.h (BITROTATE_INLINE):
New macros.
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/bitrotate (Files, lib_SOURCES): Add lib/bitrotate.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
2012-11-20 Theophile Ranquet <ranquet@lrde.epita.fr>
maint.mk: avoid gratuitous failure
Reported by Stefano Lattarini in
<http://lists.gnu.org/r/bug-bison/2012-11/msg00022.html>
* top/maint.mk (public-submodule-commit): Quote more safely.
2012-11-20 Eli Zaretskii <eliz@gnu.org>
canonicalize, canonicalize-lgpl: support MS-Windows file names
See <http://lists.gnu.org/r/bug-gnulib/2012-11/msg00074.html>
for test cases, which it'd be nice to add at some point.
* lib/canonicalize.c, lib/canonicalize-lgpl.c: Include dosname.h.
* lib/canonicalize.c (canonicalize_filename_mode):
* lib/canonicalize-lgpl.c (__realpath):
Use FILE_SYSTEM_PREFIX_LEN instead of assuming that the first
slash is at the beginning of the file name. Use ISSLASH, instead
of a literal '/'. Use IS_ABSOLUTE_FILE_NAME instead of comparing
the first character with '/'. Test for
DOUBLE_SLASH_IS_DISTINCT_ROOT only if the file name does not begin
with a drive letter.
* lib/canonicalize.c (SLASHES): New macro.
(canonicalize_filename_mode): Use SLASHES instead of a literal "/".
2012-11-17 Dmitry V. Levin <ldv@altlinux.org>
fts: introduce FTS_VERBATIM
* lib/fts_.h (FTS_VERBATIM): New bit flag.
(FTS_OPTIONMASK, FTS_NAMEONLY, FTS_STOP): Adjust.
* lib/fts.c (fts_open): Honor it.
2012-11-09 Pádraig Brady <P@draigBrady.com>
getlogin-tests: allow errno == ENXIO
* tests/test-getlogin.c (main): Skip tests if getlogin fails
with errno == ENXIO (No controlling tty).
getlogin_r-tests: Likewise. Also allow errno == ENOENT
* tests/test-getlogin_r.c (main): Skip tests if getlogin_r fails
with errno == ENOENT. This was reported to happen in various
situations on GNU/Linux.
2012-11-09 Paul Eggert <eggert@cs.ucla.edu>
getlogin-tests: allow errno == ENOENT
* tests/test-getlogin.c (main): Skip tests if getlogin fails
with errno == ENOENT. This happened to me on Ubuntu 12.04.1 x86,
when running a test in an Emacs shell buffer.
2012-11-08 Jim Meyering <jim@meyering.net>
tests/nap.h: avoid warning about unused variable
* tests/nap.h (nap_works): Remove now-unused declaration of "result".
prefix-gnulib-mk: avoid overzealous "lib/"-prefix addition
* build-aux/prefix-gnulib-mk (prefix): Tighten a regexp to require
white space before each of the special-cased file names, to avoid
adding "lib/" after $(libdir)/. Reported by Matias A. fonzo
in http://bugs.gnu.org/12830.
2012-11-08 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: default O_SEARCH, O_EXEC back to O_RDONLY
O_PATH doesn't work with Linux kernel 3.6.5, as fchmod (fd, ...)
fails with errno == EBADF when fd is opened with O_PATH.
Reported by Jim Meyering in
<http://lists.gnu.org/r/bug-gnulib/2012-11/msg00026.html>.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default back to O_RDONLY.
2012-11-07 Paul Eggert <eggert@cs.ucla.edu>
test-utimens: speed up by taking shorter naps
* tests/nap.h (lt_mtime, get_mtime, nap_works, guess_delay):
New functions.
(nap): Use them, to do a better job of guessing the delay.
On Fedora 17 with ext4 atop md atop hard disks, this made
test-utimens run 10x faster, because the test napped for
1 ms at a time rather than 20 ms. Reported by Stefano Lattarini in
<http://bugs.gnu.org/12820#11>.
2012-11-07 Jim Meyering <jim@meyering.net>
mountlist.c: fix a compilation failure
* lib/mountlist.c (read_file_system_list): Fix a compilation failure
I introduced while transforming commit v0.0-7683-g613bcb6
2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
errno: port to LynxOS 178 2.2.2
Problem reported by Joel Brobecker in
<http://lists.gnu.org/r/bug-gnulib/2012-10/msg00088.html>.
* doc/posix-headers/errno.texi (errno.h): Document this.
* lib/errno.in.h (EILSEQ, GNULIB_defined_EILSEQ) [!EILSEQ]: New macros.
* lib/strerror-override.c, lib/strerror-override.h (strerror_override):
Supply a string for EILSEQ.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Check for EILSEQ.
2012-11-05 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: default O_SEARCH, O_EXEC to O_PATH if available
Linux kernel 2.6.39 introduced O_PATH (see
<http://lwn.net/Articles/433854/>) and this is a better fallback
for O_SEARCH and O_EXEC than O_RDONLY, if O_PATH is available.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default to O_PATH.
* lib/fcntl.in.h (O_ACCMODE):
* tests/test-fcntl-h.c (main):
Do not reject O_ACCMODE merely because it has more than the
minimal number of bits, as POSIX allows extensions here.
2012-11-04 Andrew Warshall <warshall@99main.com> (tiny change)
mountlist: do not classify a bind-mounted dir entry as "dummy"
* lib/mountlist.c (ME_DUMMY_0): Rename from ME_DUMMY, but omit
the "none"-testing clause.
(ME_DUMMY) [MOUNTED_GETMNTENT1]: New macro to encapsulate the
exception for bind-mounted directories.
2012-11-01 Akim Demaille <akim@lrde.epita.fr>
quote: provide a means to escape strings with nul characters
* lib/quote.h, lib/quotearg.c (quote_mem, quote_n_mem): New functions.
(quote, quote_n): Rename formal arguments for consistency with
quotearg.
2012-10-30 Paul Eggert <eggert@cs.ucla.edu>
test-raise: don't assume 199 is an invalid signal
* tests/test-raise.c (main): Don't assume 199 is not a signal number.
sh-quote-tests: port to Solaris 9
* modules/sh-quote-tests (test_sh_quote_LDADD): Add @LIBINTL@.
Problem reported by Dagobert Michelsen in
<http://lists.gnu.org/r/bug-gnulib/2012-10/msg00114.html>.
2012-10-28 Jim Meyering <jim@meyering.net>
maint.mk: rename a new configurable variable
* top/maint.mk (_gl_translatable_string_re): Rename from
translation-markers: _gl_ prefix to insulate from user Makefile code,
and the _re suffix to inform that it's a regular expression.
2012-10-26 Eric Blake <eblake@redhat.com>
maint.mk: let packages tweak sc_po_check pattern
* top/maint.mk (sc_po_check): Add translation-markers, to allow
finding files with other translation markers.
2012-10-16 Paul Eggert <eggert@cs.ucla.edu>
euidaccess: speed up 'configure' on GNU hosts
* m4/euidaccess.m4 (gl_FUNC_NONREENTRANT_EUIDACCESS):
Check for setregid here, not in gl_PREREQ_EUIDACCESS, since
it's needed only in this case. Use AC_CHECK_DECLS, not
AC_CHECK_DECLS_ONCE.
(gl_PREREQ_EUIDACCESS): Do not use AC_CHECK_HEADERS_ONCE libgen.h
or AC_REQUIRE for AC_FUNC_GETGROUPS.
* lib/regexec.c (re_search_internal): Fix grammar in comment.
2012-10-15 Paul Eggert <eggert@cs.ucla.edu>
fchmodat, fchownat, fstatat: port to non-inlining compilers
Problem reported for FreeBSD 9 by Jim Meyering in
<http://lists.gnu.org/r/bug-gnulib/2012-10/msg00070.html>.
* lib/chmodat.c, lib/chownat.c, lib/statat.c:
New files, which define FCHMODAT_INLINE etc.
* lib/fchmodat.c (FCHMODAT_INLINE):
* lib/fchownat.c (FCHOWNAT_INLINE):
* lib/fstatat.c (FSTATAT_INLINE):
Remove, as chmodat.c etc. now do this.
* modules/fchmodat (Files): Add lib/chmodat.c.
* modules/fchownat (Files): Add lib/chownat.c.
* modules/fstatat (Files): Add lib/statat.c.
2012-10-15 Jim Meyering <jim@meyering.net>
fchmodat.c, fchownat.c: compile-impeding typos
* lib/fchmodat.c (FCHMODAT_INLINE): Fix typo: s/#include/#define/
* lib/fchownat.c (FCHOWNAT_INLINE): Likewise.
Introduced in commit v0.0-7636-gd202279.
2012-10-15 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: support GNU flags like O_IGNORE_CTTY
* doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY,
O_NOLINK, and O_NOTRANS. These flags are nonzero on GNU/Hurd
systems. Discovered when using fcntl-h with GNU Emacs, which uses
O_IGNORE_CTTY. Fix misspelling of F_SETLKW.
* lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS):
Define to 0 if not already defined.
* tests/test-fcntl-h.c: Test these new flags.
2012-10-14 Paul Eggert <eggert@cs.ucla.edu>
faccessat, etc.: support AT_FDCWD-only use
* lib/at-func.c: If GNULIB_SUPPORT_ONLY_AT_FDCWD, then support
this function only if its first argument is AT_FDCWD.
Emacs wants faccessat for AT_EACCESS but not for any first-arg
values other than AT_FDCWD, so it doesn't want all the openat
machinery with fchdir etc.
* modules/faccessat, modules/fchmodat, modules/fchownat (Files):
* modules/fstatat, modules/mkdirat, modules/openat (Files):
* modules/unlinkat (Files):
Remove lib/openat-priv.h, as at-internal supplies this file.
Removing this file here allows us to support programs like Emacs
that avoid at-internal.
faccessat: speed up 'configure' on mainstream hosts
* m4/faccessat.m4 (gl_PREREQ_FACCESSAT):
Use AT_CHECK_FUNCS for 'access', not AC_CHECK_FUNCS_ONCE,
since it's only on unusual platforms that we need to check for
'access', and it's better not to slow 'configure' down on all
platforms.
faccessat: port to Solaris 10
* lib/faccessat.c: Include <fcntl.h>, for AT_EACCESS.
Needed on Solaris 10, which doesn't have AT_EACCESS,
so we need the Gnulib fcntl.h, which defines it.
2012-10-14 Pádraig Brady <P@draigBrady.com>
canonicalize: fix C89 compilation
* lib/canonicalize.c (canonicalize_filename_mode): Swap order of
declarations so C89 is supported. Also remove the comment
referencing memorty allocation as the suggested feature could
not be implemented as suggested.
Reported by Michael Goffioul.
2012-10-12 Paul Eggert <eggert@cs.ucla.edu>
group-member: omit unnecessary dependencies
This is for Emacs, which has its own allocator and where we
don't want to use xalloc.
* lib/group-member.c: Include xalloc-oversized.h, not xalloc.h,
since we no longer use xmalloc. Do not include stdbool.h, since
the changes below happen to remove the only use of bool.
(GROUPBUF_SIZE): New constant.
(struct group_info): Remove n_groups member. Add groupbuf member.
This lets us get the groups without using malloc, usually.
(free_group_info, get_group_info): Adjust to this.
(get_group_info): Return the number of groups found, or -1 on error.
Use plain malloc not xmalloc, and treat its failure as if there
are no groups, as the user already loses in case of error.
(group_member): Simplify, based on changes to get_group_info.
* modules/group-member (Depends-on): Remove dependencies on
xalloc and stdbool. Add dependency on xalloc-oversized.
2012-10-08 Alexandre Duret-Lutz <adl@lrde.epita.fr> (tiny change)
gethrxtime: port to C++
* lib/gethrxtime.h, lib/xtime.h [__cplusplus]: Add extern "C".
2012-10-04 Paul Eggert <eggert@cs.ucla.edu>
ptsname: fix macro-name typo
* lib/stdlib.in.h (ptsname): Fix misspelling of GNULIB_NAMESPACE.
2012-10-03 Simon Josefsson <simon@josefsson.org>
inttostr: Relax license.
* modules/inttostr (License): Change from LGPL to LGPLv2+.
2012-10-03 Eric Blake <eblake@redhat.com>
ptsname_r: support ptys returned by FreeBSD posix_openpt
* lib/ptsname_r.c (__ptsname_r): Don't munge name if it already
lives in /dev/pts/.
2012-10-02 Eric Blake <eblake@redhat.com>
pselect: reject invalid file descriptors
* m4/pselect.m4 (gl_FUNC_PSELECT): Probe for FreeBSD bug.
* lib/pselect.c (rpl_pselect) [!win32]: Work around it.
* modules/pselect (Depends-on): Add dup2.
* doc/posix-functions/pselect.texi (pselect): Document this.
select: reject invalid file descriptors
* m4/select.m4 (gl_FUNC_SELECT): Probe for FreeBSD bug.
* lib/select.c (rpl_select) [!win32]: Work around it.
* modules/select (Depends-on): Add dup2.
* doc/posix-functions/select.texi (select): Document this.
select: enhance test
* tests/test-select.h (do_select_bad_nfd_nowait, test_bad_nfd):
New functions.
(test_function): Enhance test.
(do_select_bad_fd): Avoid any stale errno values.
ptsname: reject invalid file descriptors
http://www.austingroupbugs.net/view.php?id=503
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness.
* modules/stdlib (Makefile.am): Replace witness.
* lib/stdlib.in.h (ptsname): Allow for replacement.
* modules/ptsname (configure.ac): Trigger replacement.
* doc/posix-functions/ptsname.texi (ptsname): Document this.
2012-10-02 Nikos Mavrogiannopoulos <nmav@gnutls.org> (tiny change)
hash-pjw-bare: new module
* lib/hash-pjw-bare.c: New file, very much like hash-pjw.c.
* lib/hash-pjw-bare.h: Likewise.
* modules/hash-pjw-bare: New file.
* MODULES.html.sh (Misc): Add it.
2012-10-02 Eric Blake <eblake@redhat.com>
manywarnings: cater to more gcc infelicities
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for
-Wuninitialized without -O.
2012-10-01 Ed Maste <emaste@freebsd.org> (tiny change)
select, poll tests: Make setsockopt invocation effective.
* tests/test-poll.c (open_server_socket): Move setsockopt() call before
the bind() call.
* tests/test-select.h (open_server_socket): Likewise.
2012-09-30 Paul Eggert <eggert@cs.ucla.edu>
sockets, sys_stat: restore AC_C_INLINE
This undoes the 2012-09-22 patch.
* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Restore AC_C_INLINE, since MSVC requires __inline or _inline
and does not support plain 'inline'. Reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2012-09/msg00183.html>.
2012-09-30 Bruno Haible <bruno@clisp.org>
localeconv tests: Avoid test failure on OpenIndiana.
* tests/test-localeconv.c (main): On OpenIndiana (a Solaris 11 variant)
skip the 'grouping' and 'mon_grouping' tests.
Reported by Jim Meyering.
2012-09-30 Bruno Haible <bruno@clisp.org>
havelib: Follow libtool developments.
* m4/lib-ld.m4: Rebase on libtool.m4 from libtool-2.4.
Suggested by Simon Josefsson.
2012-09-29 Jim Meyering <meyering@redhat.com>
fstatat.c: fix a compile-impeding typo
* lib/fstatat.c (FSTATAT_INLINE): Fix typo: s/#include/#define/
Introduced in commit v0.0-7636-gd202279.
Mats Erik Andersson reported the resulting OpenBSD compilation failure.
2012-09-28 Akim Demaille <akim@lrde.epita.fr>
extern-inline: provide a -Wundef safe config.h
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Protect
"#if __GNUC_STDC_INLINE__" with "defined __GNUC_STDC_INLINE__"
to produce a -Wundef warning free config.h.
2012-09-26 Paul Eggert <eggert@cs.ucla.edu>
hash-pjw: relax license to LGPLv2+
* modules/hash-pjw (License): Relax, with consent of author.
2012-09-25 Akim Demaille <akim@lrde.epita.fr>
maint.mk: fix strict vs. lazy variable issues with RELEASE
* top/maint.mk (_equal): New function.
(member_check): Strip the result to avoid spurious spaces.
(url_dir_list): Do not use ifeq, which is strict, as it will
require RELEASE_TYPE to be defined.
(announcement_Cc_, announcement_mail_headers_): Likewise: instead
of relying on ifeq, use $(release_type) to dispatch (lazily) onto...
(announcement_Cc_alpha,announcement_mail_headers_alpha)
(announcement_Cc_beta,announcement_mail_headers_beta)
(announcement_Cc_stable,announcement_mail_headers_stable): these.
(release): Do not depend on $(release-type), as it forces its
evaluation. Bounce to it.
2012-09-25 Akim Demaille <akim@lrde.epita.fr>
maint.mk: formatting changes
* top/maint.mk: Indent bodies of if's.
2012-09-21 Akim Demaille <akim@lrde.epita.fr>
maint.mk: factor the validation of RELEASE_TYPE
With help from Jim Meyering.
http://lists.gnu.org/r/bug-gnulib/2012-09/msg00132.html
* top/maint.mk (_empty, _sp): Move their definition earlier.
(member-check, release-type): New.
Use the latter instead of $(RELEASE_TYPE).
Remove now useless local checks.
2012-09-20 Akim Demaille <akim@lrde.epita.fr>
maint.mk: provide "make upload" to ease uploading
See
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00028.html>.
Do not depend simply on the current $(VERSION), as there may have been
new commits since the tarball generation. Rather, rely on $(RELEASE),
as "make release-commit" already does.
For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for
"make TYPE".
* top/maint.mk (upload_command, upload, release): New.
(RELEASE_TYPE): If undefined, default to the second word of $(RELEASE).
(VERSION): first word of $(RELEASE) is always right.
(emit_upload_commands): Adjust.
* top/README-release: Update.
2012-09-20 Akim Demaille <akim@lrde.epita.fr>
maint.mk: silent rules
With help from Stefano Lattarini.
* top/maint.mk (writable-files): Use $(AM_V_GEN).
(announcement): Use $(AM_V_at).
2012-09-24 Paul Eggert <eggert@cs.ucla.edu>
localename: port gl_locale_name_thread_unsafe to FreeBSD
* lib/localename.c (gl_locale_name_thread_unsafe): Port to FreeBSD,
and use the simpler FreeBSD implementation on Mac OS X as well.
Original idea suggested by Ed Maste in
<http://lists.gnu.org/r/bug-gnulib/2012-09/msg00094.html>.
2012-09-22 Paul Eggert <eggert@cs.ucla.edu>
binary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline'
* lib/binary-io.c, lib/eealloc.c, lib/mbfile.c, lib/mbiter.c:
* lib/mbuiter.c, lib/xsize.c: New files.
* lib/binary-io.h (BINARY_IO_INLINE):
* lib/eealloc.h (EEALLOC_INLINE):
* lib/mbfile.h (MBFILE_INLINE):
* lib/mbiter.h (MBITER_INLINE):
* lib/mbuiter.h (MBUITER_INLINE):
* lib/xsize.h (XSIZE_INLINE):
New macros.
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/eealloc.m4 (gl_EEALLOC):
* m4/mbfile.m4 (gl_MBFILE):
* m4/mbiter.m4 (gl_MBITER):
* m4/xsize.m4 (gl_XSIZE):
Do not require AC_C_INLINE.
* modules/binary-io (Files, lib_SOURCES): Add lib/binary-io.c
* modules/eealloc (Files, lib_SOURCES): Add lib/eealloc.c.
* modules/mbfile (Files, lib_SOURCES): Add lib/mbfile.c.
* modules/mbiter (Files, lib_SOURCES): Add lib/mbiter.c.
* modules/mbuiter (Files, lib_SOURCES): Add lib/mbuiter.c.
* modules/xsize (Files, lib_SOURCES): Add lib/xsize.c.
* modules/binary-io, modules/eealloc, modules/mbfile:
* modules/mbiter, modules/mbuiter:
(Depends-on): Add extern-inline.
pipe-filter-gi, pipe-filter-ii: better use of 'inline'
* lib/pipe-filter-aux.c: New file.
* lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/pipe-filter-gi.c (filter_init, filter_cleanup)
(filter_retcode): No real need for inline here.
* modules/pipe-filter-gi, modules/pipe-filter-ii:
(Files): Add lib/pipe-filter-aux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
(lib_SOURCES): Add pipe-filter-aux.c.
fdutimensat: omit unnecessary AC_C_INLINE
* modules/fdutimensat (configure.ac): Remove AC_C_INLINE.
fchmodat, fchownat, fstatat: use extern-inline
* lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE):
* lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE):
* lib/fstatat.c, lib/openat.h (FSTATAT_INLINE):
New macros.
* lib/openat.h:
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/fchmodat, modules/fchownat, modules/fstatat:
* modules/openat-h:
(Depends-on):
Add extern-inline.
(configure.ac): Remove AC_C_INLINE.
acl, mbchar, priv-set: use extern-inline
* lib/set-mode-acl.c, lib/acl-internal.h (ACL_INTERNAL_INLINE):
* lib/mbchar.c, lib/mbchar.h (MBCHAR_INLINE):
* lib/priv-set.c, lib/priv-set.h (PRIV_SET_INLINE):
New macros.
* lib/acl-internal.h, lib/mbchar.h, lib/priv-set.h:
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/acl.m4 (gl_FUNC_ACL):
* m4/mbchar.m4 (gl_MBCHAR):
* m4/priv-set.m4 (gl_PRIV_SET):
Remove AC_C_INLINE, since 'inline' is no longer used directly.
* modules/acl, modules/mbchar, modules/priv-set (Depends-on):
Add extern-inline.
sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Remove AC_C_INLINE. Here, 'inline' is used only in MSVC
environments where it's already guaranteed to work, so we needn't
check for it at 'configure'-time.
tls-tests: omit unnecessary 'inline'
* tests/test-tls.c (perhaps_yield): No longer inline.
Simplicity and portability trump efficiency in test cases.
utimens-tests: avoid unnecessary 'inline'
* modules/fdutimensat-tests (configure.ac):
* modules/futimens-tests (configure.ac):
* modules/utimens-tests (configure.ac):
* modules/utimensat-tests (configure.ac):
Remove AC_C_INLINE.
* tests/test-utimens-common.h (ctime_compare):
No longer inline. Simplicity and portability trump efficiency here.
misc: don't limit commentary to inline functions
* lib/binary-io.h, lib/malloca.h, lib/safe-alloc.c:
* lib/xalloc-oversized.h, lib/xsize.h:
Contrast macros to functions in general, not just to inline functions,
when the commentary does not apply only to inline functions.
2012-09-20 Jim Meyering <meyering@redhat.com>
non-recursive-gnulib-prefix-hack: new module
* build-aux/prefix-gnulib-mk: Copied from coreutils, derived from
the file that originated in Bison.
* m4/non-recursive-gnulib-prefix-hack.m4: Likewise, this code is
largely copied from a snippet that resided in bison's configure.ac.
* modules/non-recursive-gnulib-prefix-hack: New file.
* MODULES.html.sh (Support for maintaining and releasing projects):
Add it.
2012-09-18 Jim Meyering <meyering@redhat.com>
maint.mk: generalize _gl_tight_scope for non-recursive make
* top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption
that *.h would describe additional .h files in the directory
specified by $(_gl_TS_dir). I.e., add this...
(_gl_TS_other_headers): New variable.
maint.mk: exempt trailing blanks found in "binary" files
* top/maint.mk (sc_trailing_blank): Filter out any matches found in
"binary" files, as reported by grep. Suggested by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
2012-09-17 Jim Meyering <meyering@redhat.com>
maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX
* top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive
match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
2012-09-17 Jim Meyering <meyering@redhat.com>
maint.mk: teach sc_prohibit_magic_number_exit to accept 77
* top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about
uses like "exit (77)". "77" is automake's "skip this test" exit code.
It is not in the same category as "exit (0)" or "exit (1)", and
besides, I know of no symbolic name for that 77. Reported by
Richard W.M. Jones in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
2012-09-17 Jim Meyering <meyering@redhat.com>
maint.mk: relax sc_prohibit_strcmp, to avoid a false positive
* top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match
all uses of #define, not just those that start in column 1.
Richard W.M. Jones reported a false positive in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
2012-09-16 Paul Eggert <eggert@cs.ucla.edu>
localcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX
* lib/localcharset.c (locale_charset) [DARWIN7]:
Return "ASCII" if the system reports "UTF-8" and MB_CUR_MAX <= 1,
as these two values are incompatible. Problem reported by Max Horn.
For more discussion, please see
<http://lists.gnu.org/r/bug-gnulib/2012-09/msg00061.html>.
doc: document sticky-EOF issue
* doc/posix-functions/fgetc.texi (fgetc):
* doc/posix-functions/fgets.texi (fgets):
* doc/posix-functions/fread.texi (fread):
* doc/posix-functions/fscanf.texi (fscanf):
* doc/posix-functions/getc.texi (getc):
* doc/posix-functions/getchar.texi (getchar):
* doc/posix-functions/scanf.texi (scanf):
Mention that glibc and default Solaris do not conform to
C99 and POSIX-2001 or later, with respect to how getchar
etc. behave when feof reports nonzero.
2012-09-13 Joachim Schmitz <jojo@schmitz-digital.de> (tiny change)
poll: fix poll(0, NULL, msec)
* lib/poll.c: don't exit early if NULL is the 1st arg to poll(),
but nfd is 0. In that case poll should behave like select.
2012-09-13 Joachim Schmitz <jojo@schmitz-digital.de> (tiny change)
Paolo Bonzini <bonzini@gnu.org>
poll: fix for systems that can't recv() on a non-socket
* lib/poll.c: if recv returns ENOTSOCK, assume the descriptor
is readable. In this case POLLHUP will not be supported.
* doc/posix-functions/poll.texi: Document this.
2012-09-13 Paolo Bonzini <bonzini@gnu.org>
poll/select: document portability problems not fixed by Gnulib.
* doc/posix-functions/poll.texi: poll does not work well on
pipes under Windows. It has the same limitations as select on
BeOS.
* doc/posix-functions/select.texi: select does not work well
on pipes under Windows.
2012-09-10 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug
that caused a GNU tar test failure. Problem reported by Jez Wain; see
<http://lists.gnu.org/r/bug-tar/2012-07/msg00018.html>.
2012-09-06 Eric Blake <eblake@redhat.com>
net_if: give more details about the bug being fixed
* doc/posix-headers/net_if.texi: Add clarification.
2012-09-05 Eric Blake <eblake@redhat.com>
net_if: new module
* modules/net_if: New module, borrowing ideas from netinet_in.
* m4/net_if_h.m4: New file.
* lib/net_if.in.h: Likewise.
* doc/posix-headers/net_if.texi (net/if.h): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* tests/test-net_if.c: Make function checks conditional.
Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>.
2012-09-05 Mats Erik Andersson <gnu@gisladisker.se> (tiny change)
readutmp: fix non-portable UT_PID use
* lib/readutmp.c (desirable_utmp_entry) <READ_UTMP_CHECK_PIDS>:
Use `UT_PID (u) > 0' as absolute condition.
2012-09-04 Jim Meyering <meyering@redhat.com>
fts: reduce two or more trailing spaces to just one, usually
* lib/fts.c (fts_open): Upon initialization, if a name ends in two
or more slashes, trim all but the final one. But if a name consists
solely of two slashes, don't modify it. If it consists solely of
three or more slashes, strip all but one.
This is part of the solution to a minor problem with rm:
it would print a bogus ELOOP diagnostic when failing to remove
the slash-decorated name of a symlink-to-directory:
$ mkdir d && ln -s d s && env rm -r s/
rm: cannot remove 's': Too many levels of symbolic links
With the change below and a trivial don't-trim-trailing-slashes
adjustment to remove.c, it does this:
$ env rm -r s/
rm: cannot remove 's/': Not a directory
Improved by: Eric Blake
fts: when there is no risk of overlap, use memcpy, not memmove
* lib/fts.c (fts_alloc): Fix unjustified memcopy: s/memmove/memcpy/
2012-08-29 Paul Eggert <eggert@cs.ucla.edu>
stdbool: be more compatible with mixed C/C++ compiles
* lib/stdbool.in.h (_Bool, true, false) [__cplusplus]:
Define to bool, true, false, respectively, as GCC's builtin
stdbool.h does. Problem reported by Michael Goffioul in
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00143.html>.
2012-08-28 Jim Meyering <meyering@redhat.com>
revert last change: it was not needed
* tests/test-vc-list-files-git.sh: There's already a test for
a working git, just below.
2012-08-28 Jim Meyering <meyering@redhat.com>
tests: test-vc-list-files-git.sh: skip if git is not available
* tests/test-vc-list-files-git.sh: Skip this test when git is
not available.
2012-08-26 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove no-op option --no-changelog.
* gnulib-tool (func_usage): Don't mention --no-changelog.
(do_changelog): Remove variable.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.
2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
doc: remove fdl-1.2.texi
It is no longer used or maintained, and its use of @acronym
is problematic. See the thread containing
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00134.html>.
* config/srclist.txt: Remove doc/old-licenses/fdl-1.2.texi.
* doc/old-licenses/fdl-1.2.texi: Remove.
execinfo: port to FreeBSD
* m4/execinfo.m4 (gl_EXECINFO_H): Set LIB_EXECINFO to -lexecinfo
if needed, as in FreeBSD. Reported by Bastien Roucariès in
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00113.html>.
* modules/execinfo (Link): Add $(LIB_EXECINFO).
2012-08-23 Jim Meyering <meyering@redhat.com>
xstrtol.h: avoid "_Noreturn is not at beginning of declaration" warning
* lib/xstrtol.h: Put "_Noreturn" before "void" in declaration,
to placate gcc's -Wold-style-declaration.
2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
doc: do not use @acronym
* doc/inet_ntoa.texi (inet_ntoa):
* doc/parse-datetime.texi (Seconds since the Epoch)
(Specifying time zone rules):
* doc/posix-functions/inet_ntoa.texi (inet_ntoa):
Don't use @acronym. Problem reported by John Darlington in
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00124.html>.
2012-08-23 Paul Eggert <eggert@cs.ucla.edu>
stdnoreturn: port to newer GCCs
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Avoid problems with
bleeding-edge GCC that complains about 'int _Noreturn foo (void);'.
Problem reported by Jim Meyering in
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00121.html>.
Also, rename the 'test' function to a void a clash with the
already-supplied 'main' function; this fixes a bug that incorrectly
rejected GCC 4.7.1's <stdnoreturn.h>.
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document GCC problem.
2012-08-22 Reuben Thomas <rrt@sc3d.org>
pipe-filter: fix comment typo
* lib/pipe-filter.h: Mention correct function.
2012-08-22 Paul Eggert <eggert@cs.ucla.edu>
execinfo: new module
This is for Emacs. Currently, it provides a no-effect stub
on all platforms where it does not already work.
It already works on glibc-based systems, and on Solaris 11.
* lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo:
New files.
* doc/glibc-headers/execinfo.texi (execinfo.h):
* MODULES.html.sh (Misc): Document it.
2012-08-20 Paul Eggert <eggert@cs.ucla.edu>
extern-inline: support old GCC 'inline'
* m4/extern-inline.m4 (gl_EXTERN_INLINE): Use pre-C99 GCC 'inline'
if available. This applies to GCC versions 2.7 through 4.2, or
when newer GCC is using -fgnu89-inline. The goal is to address
some of the performance issues mentioned by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2012-08/msg00097.html>.
2012-08-20 Eric Blake <eblake@redhat.com>
maint.mk: avoid redundant file name in message
* top/maint.mk (sc_prohibit_strcmp, sc_unmarked_diagnostics)
(sc_prohibit_defined_have_decl_tests, sc_const_long_option)
(sc_makefile_path_separator_check): Remove bogus $(ME).
2012-08-20 Mike Frysinger <vapier@gentoo.org>
timer-time: fix link order when static linking on glibc
* m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread
_after_ -lrt so that it's significant.
2012-08-19 Paul Eggert <eggert@cs.ucla.edu>
timespec: omit unnecessary AC_C_INLINE
* m4/timespec.m4 (gl_TIMESPEC): Do not require AC_C_INLINE.
stat-time: omit unnecessary AC_C_INLINE
* m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME):
Do not require AC_C_INLINE.
ignore-value: omit unnecessary AC_C_INLINE
* modules/ignore-value (configure.ac): Do not require AC_C_INLINE.
sys_select: avoid 'static inline'
* lib/sys_select.in.h (rpl_fd_isset): Now static, not static inline.
mktime: avoid 'static inline'
* lib/mktime.c (leapyear, ydhms_diff): Now static, not static inline.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Do not require AC_C_INLINE.
2012-08-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve coding style.
* gnulib-tool (func_emit_tests_Makefile_am): Set perhapsLT, like in
func_emit_lib_Makefile_am.
Reported and fix suggested by Dmitriy Selyutin <ghostman.sd@gmail.com>.
2012-08-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix indentation.
* gnulib-tool (func_import): Fix indentation.
2012-08-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove old file names from .cvsignore, .gitignore.
* gnulib-tool (func_update_ignorelist): Don't use 'join -v 1' command
on the list of removed files.
2012-08-17 Paul Eggert <eggert@cs.ucla.edu>
test-parse-datetime: avoid glibc leap-second glitch
* tests/test-parse-datetime.c (main): Set TZ to US Eastern time
with the 2012 rules. Problem reported by Bruce Dubbs in
<http://bugs.gnu.org/12206>.
2012-08-14 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix indentation of generated gnulib-comp.m4 file.
* gnulib-tool (func_emit_autoconf_snippet): Initialize indentation
from argument.
Reported and fix suggested by Dmitriy Selyutin <ghostman.sd@gmail.com>.
2012-08-14 Eric Blake <eblake@redhat.com>
ldexp: relax license
* modules/ldexp (License): Trivial relax, since the module only
provides a permissively licensed m4 file.
2012-08-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix persistence of --witness-c-macro option.
* gnulib-tool (func_import): Fix typo in emit of gl_WITNESS_C_MACRO.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.
2012-08-11 Eric Blake <eblake@redhat.com>
count-leading-zeros: use a lookup table on non-gcc compilers
* lib/count-leading-zeros.h (count_leading_zeros_32): Use an
alternate implementation, suggested by Jim Meyering.
2012-08-10 Eric Blake <eblake@redhat.com>
count-leading-zeros: new module
* modules/count-leading-zeros: New module.
* m4/count-leading-zeros.m4: New file.
* lib/count-leading-zeros.h: Likewise.
* modules/count-leading-zeros-tests: New test.
* tests/test-count-leading-zeros.c: New file.
* MODULES.html.sh (Integer arithmetic functions): Document it.
2012-08-07 Simon Josefsson <simon@josefsson.org>
Jim Meyering <meyering@redhat.com>
maintainer-makefile: Fix syntax error with dash.
* top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): Quote arguments.
(sc_vulnerable_makefile_CVE-2012-3386): Likewise.
2012-08-05 Jim Meyering <meyering@redhat.com>
extern-inline: also ignore -Wmissing-declarations
* m4/extern-inline.m4: Also ignore -Wmissing-declarations,
required with gcc-4.8.0-to-be.
maint.mk: sc_prohibit_magic_number_exit: avoid new false positives
* top/maint.mk (sc_prohibit_magic_number_exit): Also filter out matches
for /error ?([^,]*)/. This avoids false-positives for strings like
"Unknown error (252)", introduced via commit v0.0-7538-g92875a6.
2012-08-02 Stefano Lattarini <stefano.lattarini@gmail.com>
gnumakefile: better interaction with Automake-NG
* modules/gnumakefile [Makefile.am]: The makefiles generated by
Automake-NG always contain a definition of VPATH, even in non-VPATH
builds (its value being simply '.' in that case). So, in the
'clean-GNUmakefile' rule, to determine whether running under a
VPATH setup, compare '$(srcdir)' to '.' rather than checking whether
'$(VPATH)' expands to the empty string.
2012-08-02 Carlo de Falco <carlo.defalco@polimi.it> (tiny change)
base64: Use extern C scope in header file, for C++.
* lib/base64.h: Add C++ namespace protection.
2012-08-02 Paul Eggert <eggert@cs.ucla.edu>
stat-time, timespec, u64: support naive out-of-dir builds
* lib/stat-time.c, lib/timespec.c, lib/u64.c:
Use '#include "foo.h"', not '#include <foo.h>', when including
one's own interface. This works better when configuring with
out-of-directory builds, since packages need not add an
otherwise-unnecessary -I$(topdir_src)/lib to DEFAULT_INCLUDES.
2012-08-01 Paul Eggert <eggert@cs.ucla.edu>
utimens: use extern-inline
* lib/utimens.c (_GL_UTIMENS_INLINE): Define when including utimens.h.
* lib/utimens.h: Add copyright notice, since this is now large enough
to copyright. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_UTIMENS_INLINE): New macro. Use it instead of 'static inline'.
* modules/utimens (Depends-on): Add extern-inline.
u64: use extern-inline
* lib/u64.c: New file.
* lib/u64.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_U64_INLINE): New macro. Use it instead of 'static inline'.
* modules/u64 (Files): Add lib/u64.c.
(Depends-on): Add extern-inline.
(configure.ac): No need to require AC_C_INLINE, since extern-inline
does that now.
(lib_SOURCES): Add u64.c.
timespec: use extern-inline
* lib/timespec.c: New file.
* lib/timespec.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_TIMESPEC_INLINE): New macro. Use it instead of 'static inline'.
* modules/timespec (Files): Add lib/timespec.c.
(Depends-on): Add extern-inline.
(lib_SOURCES): Add timespec.c.
stat-time: use extern-inline
* lib/stat-time.c: New file.
* lib/stat-time.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_STAT_TIME_INLINE): New macro. Use it instead of 'static inline'.
* modules/stat-time (Files): Add lib/stat-time.c.
(Depends-on): Add extern-inline.
(lib_SOURCES): Add stat-time.c.
extern-inline: new module
* modules/extern-inline, m4/extern-inline.m4: New files.
This is for better support of 'extern inline' a la ISO C99,
with a portable alternative on compilers that do not support
C99-style 'extern inline'. Using 'extern inline' shrinks the size
of the Emacs executable, when compiled with debugging disabled,
which is a typical way that Emacs is built while developing.
2012-08-01 Akim Demaille <akim@lrde.epita.fr>
maint.mk: a "release-commit" wrapper to do-release-commit-and-tag
* build-aux/do-release-commit-and-tag: Move variable definitions
together.
($branch): Instead of defaulting to "master", default to the current
branch (as gnu-web-doc-update does).
(help): Display the current values of the option arguments.
* top/maint.mk (release-commit): New.
* top/README-release: Simplify the corresponding step.
2012-07-30 Eric Blake <eblake@redhat.com>
passfd: fix comment on recvfd
* lib/passfd.c (recvfd): Fix comment.
Reported by Jann Horn <jannhorn@googlemail.com>.
2012-07-30 Jim Meyering <meyering@redhat.com>
maint.mk: avoid a sub-shell
* top/maint.mk (release-prep): Remove unneeded sub-shell.
2012-07-30 Akim Demaille <akim@lrde.epita.fr>
maint.mk: use silent-rules support from Automake
* top/maint.mk (news-check, vc-diff-check, announcement)
(no-submodule-changes, alpha beta stable, release-prep)
(web-manual, update-copyright): Use $(AM_V_GEN) and $(AM_V_at).
2012-07-30 Akim Demaille <akim@lrde.epita.fr>
maint.mk: provide a web-manual-update target
* top/maint.mk: here.
* top/README-release: Use it to simplify the web manual update step.
2012-07-30 Akim Demaille <akim@lrde.epita.fr>
README-release: shorten the circuit to post a news
* top/README-release: Point directly to the news submission form.
2012-07-30 Akim Demaille <akim@lrde.epita.fr>
gnu-web-doc-update: fix --help
* build-aux/gnu-web-doc-update: The information "top level" was written
twice.
2012-07-30 Akim Demaille <akim@lrde.epita.fr>
maint.mk: absolute VPATH issue
* top/maint.mk (release-prep): Help Git find .git/.
From Jim Meyering.
2012-07-29 Akim Demaille <akim@lrde.epita.fr>
gitlog-to-changelog: fix previous change
* build-aux/gitlog-to-changelog: Fix condition.
Add missing ";".
2012-07-29 Akim Demaille <akim@lrde.epita.fr>
gitlog-to-changelog: don't expect .git to be in $srcdir
Reported by Bruno Haible.
<http://lists.gnu.org/r/bug-gnulib/2012-07/msg00265.html>
* build-aux/gitlog-to-changelog (&git_dir_option): New.
Use it.
2012-07-29 Akim Demaille <akim@lrde.epita.fr>
maint.mk: absolute VPATH build fix
* top/maint.mk (gpg_key_ID): Help git find .git when, for instance,
$(srcdir) is not a parent of $(builddir).
2012-07-28 John Darrington <john@darrington.wattle.id.au>
clean-temp: Fix memory leak.
* lib/clean-temp.c (cleanup_temp_dir): Free also the 'subdirs' and
'files' members of tmpdir.
2012-07-27 Jim Meyering <meyering@redhat.com>
maint.mk: new rule: refresh-gnulib-patches
I noticed that 8 of coreutils' 9 gl/**/*.diff files were stale.
Use this rule to refresh them.
* top/maint.mk (refresh-gnulib-patches): New rule.
2012-07-24 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix handling of inctests variable.
* gnulib-tool: Canonicalize $inctests also in 'update' mode.
Reported by Nick Bowler <nbowler@elliptictech.com>.
2012-07-22 Bruno Haible <bruno@clisp.org>
getpass: Assume AC_CHECK_DECLS_ONCE invocation, like in getpass.m4.
* lib/getpass.h: Assume HAVE_DECL_GETPASS is defined.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests):
Remove exemption for getpass.h.
Suggested by Eric Blake.
2012-07-20 Eric Blake <eblake@redhat.com>
verify: document conflict with -Wnested-externs
* lib/verify.h: Give hint about usage when gcc warnings are enabled.
maint.mk: forbid exit(-1)
* top/maint.mk (sc_prohibit_magic_number_exit): Detect negatives.
2012-07-20 Paul Eggert <eggert@cs.ucla.edu>
fsusage: port back to Solaris
* lib/fsusage.c (get_fs_usage): Fix busted logic causing compile-time
error (fsd not declared) on Solaris 10. Reported privately by
Andrew Borodin.
2012-07-19 Akim Demaille <akim@lrde.epita.fr>
gnu-web-doc-update: fix error messages
* build-aux/gnu-web-doc-update: Don't pass $ME to die.
gnu-web-doc-update: check the requirements.
* build-aux/gnu-web-doc-update (find_tool): Import from bootstrap.
($CVS, $CVSU, $GIT, $RSYNC, $XARGS): New.
* build-aux/bootstrap (find_tool): Comment change.
2012-07-17 Akim Demaille <akim@lrde.epita.fr>
maint.mk: minor simplication.
* top/maint.mk (_sc_excl): Use $(or...) instead of $(if...)
for default values.
2012-07-15 Akim Demaille <akim@lrde.epita.fr>
gitlog-to-changelog: VPATH build issues
If builddir is not a subdirectory of srcdir, running git from it will
fail.
* build-aux/gitlog-to-changelog (--srcdir): New option.
2012-07-15 Bruno Haible <bruno@clisp.org>
fpending: Assume AC_CHECK_DECLS_ONCE invocation, like in fpending.m4.
* lib/fpending.h: Assume HAVE_DECL___FPENDING is defined.
* cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests)
Remove exemption for fpending.h.
Suggested by Eric Blake.
2012-07-15 Paul Eggert <eggert@cs.ucla.edu>
pthread_sigmask: fix bug on FreeBSD 9
* lib/pthread_sigmask.c [PTHREAD_SIGMASK_INEFFECTIVE]:
Include string.h.
(pthread_sigmask) [PTHREAD_SIGMASK_INEFFECTIVE]:
When calling pthread_sigmask (1729, NEW, OLD), specify non-null NEW;
this avoids a bug on FreeBSD 9, where pthread_sigmask is effective
but pthread_sigmask (1729, NULL, NULL) returns zero.
See <http://bugs.gnu.org/11884>.
Avoid the need to call pthread_sigmask (1729, ...) in most cases,
by inspecting whether the main call changed the old mask.
2012-07-15 Reuben Thomas <rrt@sc3d.org>
README-release: make it more legible
* top/README-release: Improve typography slightly.
2012-07-15 Jim Meyering <meyering@redhat.com>
maint: require that each sc_... command start with "@"
* Makefile (sc_prohibit_sc_omitted_at): New rule so that
"make sc_maint" helps us avoid this nit.
2012-07-15 Jim Meyering <meyering@redhat.com>
maint.mk: add leading "@" to quiet new "make syntax-check" rule
* top/maint.mk (sc_prohibit_defined_have_decl_tests): Add "@".
2012-07-13 Eric Blake <eblake@redhat.com>
maint.mk: new syntax check for HAVE_DECL checks
* top/maint.mk (sc_prohibit_defined_have_decl_tests): New rule.
* cfg.mk
(exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests):
Exempt some false positives.
Based on a report by Karel Zak.
argp: make HAVE_DECL usage consistent
* lib/argp-parse.c (__argp_parse): Check contents of HAVE_DECL
macros, not whether they are defined.
* m4/argp.m4 (gl_ARGP): Always define HAVE_DECL_* macros, per
convention with other declaration checks.
Reported by Karel Zak, with suggestions from Paul Eggert.
stat-time: relax license to LGPLv2+
* modules/stat-time (License): Relax, with consent of all authors.
strndup: fix m4 usage error
* m4/strndup.m4 (gl_FUNC_STRNDUP): HAVE_DECL_STRNDUP is always
defined, to either 0 or 1.
Reported by Karel Zak.
2012-07-11 Jim Meyering <meyering@redhat.com>
maint: enable the sc_avoid_if_before_free syntax-check rule
* cfg.mk (local-checks-to-skip): Enable sc_avoid_if_before_free.
(if_before_free_offenders_): Define.
(if_before_free_basename_re_): Define.
Exempt current files with useless if-before-free.
2012-07-11 Paul Eggert <eggert@cs.ucla.edu>
gettext: do not assume '#define ... defined ...' behavior
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS):
Do not use '#define FOO ... defined BAR ...', as the C standard says
it's not portable to expect that this works after macro expansion.
Problem reported for gzip by Steven M. Schweda in
<http://lists.gnu.org/r/bug-gzip/2012-07/msg00000.html>.
2012-07-10 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: clean out old Emacs and Autoconf cruft
See Glenn Morris in <http://bugs.gnu.org/11905>.
* lib/getloadavg.c: Include <config.h>, <stdbool.h> always.
Include <sys/param.h> if HAVE_SYS_PARAM_H, not if unix or __unix.
(LDAV_CVT): Remove no-longer-used LOAD_AVE_CVT hook.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Check for <sys/param.h>.
2012-07-10 Akim Demaille <akim@lrde.epita.fr>
bootstrap: let warn be like tests/init.sh's warn_
Reported by Jim Meyering.
* build-aux/bootstrap (warn): Remove, replaced by...
(warnf_, warn_): these.
Adjust callers.
Shorten messages that no longer fit in 80 columns.
2012-07-09 Bruno Haible <bruno@clisp.org>
getopt: Simplify after Emacs changed.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Inline gl_GETOPT_IFELSE.
(gl_GETOPT_IFELSE): Remove macro.
2012-07-09 Jim Meyering <meyering@redhat.com>
maint.mk: add sc_vulnerable_makefile_CVE-2012-3386
* top/maint.mk (sc_vulnerable_makefile_CVE-2012-3386): New rule.
maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix
Bugs in both of those conspired to make the
sc_vulnerable_makefile_CVE-2009-4029 rule 99% useless.
_sc_search_regexp's handling of non-empty $in_files would filter
out any offending file names. sc_vulnerable_makefile_CVE-2009-4029's
choice of in_files value meant there would be no match in most
projects, due to the presence of two or more Makefile.in files.
* top/maint.mk (_sc_search_regexp) [in_vc_files,in_files]: Clarify.
Fix a bug in how a non-empty $$in_files was processed:
(sc_vulnerable_makefile_CVE-2009-4029): Fix erroneous use of in_files:
in spite of the name, it's a regexp, not a list of file names.
2012-07-09 Paul Eggert <eggert@cs.ucla.edu>
getloadavg, getopt: fix commentary re configure.in
Autoconf is deprecating the name 'configure.in', so change it to
to the new name 'configure.ac' in a couple of places.
* lib/getloadavg.c: configure.in -> configure.ac, in comment.
* m4/getopt.m4 (gl_GETOPT_IFELSE, gl_GETOPT_SUBSTITUTE_HEADER)
(gl_PREREQ_GETOPT): Remove obsolete commentary re Emacs configure.in.
Emacs has renamed it to configure.ac, and it no longer refers
to these macros anyway.
timespec: mark functions with const attributes
* lib/timespec.h (timespec_add, timespec_sub, dtotimespec):
Mark with _GL_ATTRIBUTE_CONST.
2012-07-07 Ludovic Courtès <ludo@gnu.org>
canonicalize[-lgpl]: handle "guessing" values when cross-building
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE)
(gl_CANONICALIZE_LGPL): Check whether $gl_cv_func_realpath_works
matches "*yes" instead of just "yes". Regression introduced in commit
e0bcf6626cde8dad4bfbdc4045c744f0cd8b9e24.
2012-07-07 Ludovic Courtès <ludo@gnu.org>
Bruno Haible <bruno@clisp.org>
canonicalize: make the right guess when cross-compiling to GNU
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Match also "gnu*" to
determine whether cross-compiling to glibc systems, so as to
include GNU/Hurd.
2012-07-06 Paul Eggert <eggert@cs.ucla.edu>
timespec-sub: avoid duplicate include
* lib/timespec-sub.c: Do not include <config.h> twice.
Reported by Juanma Barranquero.
2012-07-06 Akim Demaille <akim@lrde.epita.fr>
bootstrap: use a more consistent error reporting scheme
* build-aux/bootstrap (warn, die): New.
Use them.
2012-07-05 Paul Eggert <eggert@cs.ucla.edu>
sys_time: allow too-wide tv_sec
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Allow struct
timeval even if tv_sec is wider than time_t. This allows
OpenBSD 5.1 amd64 and fixes an Emacs porting glitch with utimens.c,
as without this patch gnulib replaces struct timeval
and OpenBSD futimes therefore has a type mismatch.
* doc/posix-headers/sys_time.texi: Mention this.
pthread: check for both pthread_create and pthread_join
* m4/pthread.m4 (gl_PTHREAD_CHECK): Revert previous change, but
alter the check so that it tests for both pthread_create and
pthread_join. This should be more portable to hosts like OSF/1 5.1.
Suggested by Bruno Haible and Richard Yao in
<http://lists.gnu.org/r/bug-gnulib/2012-07/msg00048.html>.
parse-datetime: doc tuneup
* doc/parse-datetime.texi: Index "leap seconds" and fix minor
spacing issues.
2012-07-05 Akim Demaille <akim@lrde.epita.fr>
do-release-commit-and-tag: fix the previous commit
* build-aux/do-release-commit-and-tag: Actually the test was right,
but the comment and the error message were misleading.
Fix comment, and improve error message.
Perform check first, so that NEWS is not modified uselessly.
do-release-commit-and-tag: fix typo
* build-aux/do-release-commit-and-tag: Be sure that NEWS does
_not_ start with a stub.
2012-07-04 Paul Eggert <eggert@cs.ucla.edu>
pthread: check for pthread_create, not pthread_join
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_create, not
pthread_join. On FreeBSD 9, pthread_create is in libpthread but
pthread_join in libc. I hope this removes the need for all the
OSF/1 5.1 pthread_join business. Reported by Richard Yao in
<http://lists.gnu.org/r/bug-gnulib/2012-07/msg00042.html>.
2012-07-04 Jim Meyering <meyering@redhat.com>
parse-datetime: fix failure to diagnose invalid input
date -d "$(printf '\xb0')" would print 00:00:00 with today's date
rather than diagnosing the invalid input. Now it reports this:
date: invalid date '\260'
* lib/parse-datetime.y (to_uchar): Define.
(yylex): Don't sign-extend "other" bytes.
* m4/parse-datetime.m4: Require AC_C_INLINE for first use of "inline".
Thanks to Bruno Haible for the patch to this file.
* tests/test-parse-datetime.c (main): Add a test to trigger the bug.
Peter Evans reported the bug in GNU date: http://bugs.gnu.org/11843
2012-07-03 Jim Meyering <meyering@redhat.com>
bootstrap: do not require now-removed build-aux/missing
Now that build-aux/missing is, er, missing, bootstrap would
silently fail.
* build-aux/bootstrap (gnulib_extra_files): Remove $build_aux/missing
from the list, now that (since commit v0.0-7489-gd0f486f) the file is
no longer part of gnulib.
Diagnose the failure.
2012-07-03 Paul Eggert <eggert@cs.ucla.edu>
alloca: add support for HP NonStop TNS/E native
* lib/alloca.in.h (alloca): Support the new host.
From a suggestion by Joachim Schmitz in
<http://lists.gnu.org/r/bug-gnulib/2012-06/msg00355.html>.
2012-07-02 Pádraig Brady <P@draigBrady.com>
fsusage: remove code not needed on non GNU/Linux systems.
* lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]:
Don't include headers no longer needed in this case.
* lib/fsusage.c [STAT_STATVFS &&
! (__linux__ && (__GLIBC__||__UCLIBC__))]: Undefine
STAT_STATFS2_FRSIZE to exclude code not used in this case.
2012-07-02 Paul Eggert <eggert@cs.ucla.edu>
fsusage: include files needed for glibc 2.6 fallback
* lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]:
Include <sys/param.h>, <sys/mount.h>, <sys/vfs.h>
as they are needed for the 2.6 < glibc/Linux < 2.6.36 fallback.
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/r/bug-gnulib/2012-07/msg00005.html>.
fsusage: avoid needless check on GNU/Linux
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Omit STAT_STATFS3_OSF1 check
on GNU/Linux systems, since it can't possibly work.
2012-07-01 Bruno Haible <bruno@clisp.org>
log: Fix an autoconf >= 2.64 warning.
* modules/log (configure.ac): Require, not invoke, gl_FUNC_LOG.
Reported by Carlos O'Donell <carlos_odonell@mentor.com>.
2012-06-28 Bruno Haible <bruno@clisp.org>
log10f: Fix possible configuration problem.
* m4/log10f.m4 (gl_FUNC_LOG10F): Augment LIBS by $LOG10F_LIBM, not
$LOGF_LIBM.
Reported by Carlos O'Donell <carlos_odonell@mentor.com>.
2012-06-28 Bruno Haible <bruno@clisp.org>
remove: No longer override on all platforms. Fixes bug from 2010-03-20.
* m4/remove.m4 (gl_FUNC_REMOVE): Test gl_cv_func_unlink_honors_slashes,
not gl_cv_func_unlink_works.
Reported by Carlos O'Donell <carlos_odonell@mentor.com>.
2012-06-27 Eric Blake <eblake@redhat.com>
config: drop scripts that automake says are not independent
* config/srclist.txt: Drop elisp-comp, missing, and ylwrap.
* build-aux/elisp-comp: Delete.
* build-aux/missing: Likewise.
* build-aux/ylwrap: Likewise.
* modules/elisp-comp: Likewise.
* MODULES.html.sh: Drop mention of elisp-comp.
* NEWS: Mention this.
2012-06-26 Paul Eggert <eggert@cs.ucla.edu>
root-uid: new module
This is for portability to Tandem's NonStop Kernel.
* lib/root-uid.h, modules/root-uid: New files.
* lib/euidaccess.c, lib/pt_chown.c, lib/unlinkdir.c:
* lib/write-any-file.c, tests/test-sethostname2.c:
Include "root-uid.h".
* lib/euidaccess.c (euidaccess):
* lib/pt_chown.c (main):
* lib/unlinkdir.c (cannot_unlink_dir):
* lib/write-any-file.c (can_write_any_file):
* m4/mknod.m4 (gl_FUNC_MKNOD):
* tests/test-sethostname2.c (geteuid, main):
Don't assume ROOT_UID == 0.
* modules/euidaccess (Depends-on):
* modules/pt_chown (Depends-on):
* modules/sethostname-tests (Depends-on):
* modules/unlinkdir (Depends-on):
* modules/write-any-file (Depends-on):
Add root-uid.
regex: use locale-independent comparison for codeset name
See Bruno Haible's comment in <http://bugs.gnu.org/10305#120>.
* lib/regcomp.c (init_dfa): Use just ASCII case comparison
for codeset name.
* lib/regex_internal.h: Do not include <strings.h>, since we
no longer use strcasecmp.
* modules/regex (Depends-on): Remove strcase.
2012-06-23 Bruno Haible <bruno@clisp.org>
getopt-posix: No longer guarantee that option processing is resettable.
* doc/posix-functions/getopt.texi: Drop description of problem with
internal state. Fix info about mingw and msvc9.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Don't require a resettable
option processing by getopt(). Run three test programs instead of one.
Simplify cross-compilation guess.
* NEWS: Mention the change.
Reported by Rich Felker <dalias@aerifal.cx>.
2012-06-26 Bruno Haible <bruno@clisp.org>
argp, regex: Ensure strcasecmp gets declared.
* lib/argp-help.c: Include <strings.h>.
* lib/regex_internal.h: Likewise.
Reported and suggested by Joachim Schmitz <jojo@schmitz-digital.de>.
2012-06-24 Bruno Haible <bruno@clisp.org>
ptsname_r: Make it consistent with ptsname on AIX.
* lib/ptsname_r.c (__ptsname_r): For AIX, use nearly the same
implementation as for OSF/1.
* tests/test-ptsname_r.c (main) [AIX]: Use the modern way of opening
a pty master.
ptsname_r: Make it consistent with ptsname on OSF/1.
* lib/ptsname_r.c (__ptsname_r): Add a different implementation for
OSF/1.
2012-06-24 Bruno Haible <bruno@clisp.org>
ttyname_r: Fix result on OSF/1, Solaris.
* lib/ttyname_r.c (ttyname_r): Produce a NUL-terminated result.
2012-06-24 Bruno Haible <bruno@clisp.org>
ptsname_r: Add support for Solaris.
* lib/ptsname_r.c (__ptsname_r): Add a different implementation for
Solaris.
ptsname_r: Fix test failure on native Windows.
* modules/ptsname_r (Depends-on): Add isatty.
ptsname_r: Fix test failures on IRIX, Solaris.
* m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Test whether isatty sets
errno when it fails. Define ISATTY_FAILS_WITHOUT_SETTING_ERRNO
accordingly.
* lib/ptsname_r.c: Include <fcntl.h>.
(__ptsname_r): When isatty returned false, then on IRIX, Solaris
set errno if fd is invalid.
* tests/test-isatty.c (main): Update comments.
2012-06-24 Bruno Haible <bruno@clisp.org>
ptsname test: Extend test.
* tests/test-ptsname.c: Include <errno.h>.
(main): Test behaviour with invalid file descriptor.
2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
time: fix obsolete comment
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Remove obsolete
reference to HAVE_STRUCT_TIMESPEC in comment.
2012-06-23 Bruno Haible <bruno@clisp.org>
getopt-gnu: Handle suboptimal getopt_long's abbreviation handling.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): If getopt_long exists but
does not handle abbreviated long options with equivalent
disambiguations, set gl_replace_getopt to yes.
* doc/posix-functions/getopt.texi: Mention the OpenBSD 5.0 problem.
2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
time_r: fix typo that always overrode localtime_r decl
* m4/time_r.m4 (gl_TIME_R): Use AC_CHECK_DECLS, not
AC_CHECK_DECLS_ONCE, since localtime_r is declared in <time.h>,
not in a standard include.
2012-06-22 Bruno Haible <bruno@clisp.org>
Write "Mac OS X" instead of "MacOS X".
* README: Write "Mac OS X" instead of "MacOS X".
* build-aux/bootstrap: Likewise.
* build-aux/install-reloc: Likewise.
* lib/acl-internal.h: Likewise.
* lib/acl_entries.c: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/config.charset: Likewise.
* lib/copy-acl.c: Likewise.
* lib/csharpexec.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fflush.c: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/filemode.h: 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/fsusage.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
* lib/get-rusage-as.c: Likewise.
* lib/get-rusage-data.c: Likewise.
* lib/getdomainname.c: Likewise.
* lib/idpriv-drop.c: Likewise.
* lib/idpriv-droptemp.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/locale.in.h: Likewise.
* lib/localename.c: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/nproc.c: Likewise.
* lib/passfd.c: Likewise.
* lib/posix_openpt.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/set-mode-acl.c: Likewise.
* lib/signal.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/strtod.c: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/tcgetsid.c: Likewise.
* lib/unistd.in.h: Likewise.
* lib/unlockpt.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/vma-iter.c: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/acl.m4: Likewise.
* m4/acosl.m4: Likewise.
* m4/asinl.m4: Likewise.
* m4/atanl.m4: Likewise.
* m4/c-stack.m4: Likewise.
* m4/cosl.m4: Likewise.
* m4/expl.m4: Likewise.
* m4/extensions.m4: Likewise.
* m4/fdatasync.m4: Likewise.
* m4/fmal.m4: Likewise.
* m4/frexp.m4: Likewise.
* m4/frexpf.m4: Likewise.
* m4/frexpl.m4: Likewise.
* m4/fsusage.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getloadavg.m4: Likewise.
* m4/getopt.m4: Likewise.
* m4/gettext.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/intdiv0.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/largefile.m4: Likewise.
* m4/ldexpl.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/locale-ar.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
* m4/locale-zh.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/logl.m4: Likewise.
* m4/mathfunc.m4: Likewise.
* m4/minus-zero.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/mmap-anon.m4: Likewise.
* m4/multiarch.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/nocrash.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/printf-frexpl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/signbit.m4: Likewise.
* m4/sinl.m4: Likewise.
* m4/sqrtl.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/tanl.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/ttyname_r.m4: Likewise.
* m4/unlink.m4: Likewise.
* m4/visibility.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* tests/minus-zero.h: Likewise.
* tests/test-alloca-opt.c: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-fdatasync.c: Likewise.
* tests/test-file-has-acl.sh: Likewise.
* tests/test-flock.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-malloca.c: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-openpty.c: Likewise.
* tests/test-posix_openpt.c: Likewise.
* tests/test-ptsname.c: Likewise.
* tests/test-ptsname_r.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-select.h: Likewise.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-strtod.c: Likewise.
* tests/test-time.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* doc/acl-resources.txt: Likewise.
* doc/**/*.texi: Likewise.
Reported by Max Horn <max@quendi.de>.
2012-06-22 Bruno Haible <bruno@clisp.org>
grantpt: Relax requirement regarding invalid file descriptors.
* lib/grantpt.c: Don't include <fcntl.h>.
(grantpt): Don't verify the validity of the file descriptor.
* modules/grantpt (Depends-on): Remove fcntl-h.
* tests/test-grantpt.c (main): Allow grantpt to succeed for invalid
file descriptors.
* doc/posix-functions/grantpt.texi: Document more platforms on which
grantpt succeeds for invalid file descriptors.
Reported by Rich Felker <dalias@aerifal.cx>.
2012-06-22 Bruno Haible <bruno@clisp.org>
fbufmode test: Don't test unportable behaviour.
* tests/test-fbufmode.c (test_mode): New function, extracted from main.
(main): Invoke it three times.
Reported by Szabolcs Nagy <nsz@port70.net>
and Rich Felker <dalias@aerifal.cx>.
2012-06-21 Bruno Haible <bruno@clisp.org>
gnulib-tool: Refactor inctests variable.
* gnulib-tool: Normalize inctests to 'true' or 'false', not ''.
(func_modules_transitive_closure,
func_modules_transitive_closure_separately,
func_import, func_create_testdir): Update.
gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
* gnulib-tool: Accept option --without-tests.
(func_usage): Document --without-tests option. Rearrange.
(inctests): Normalize according to the mode.
* NEWS: Mention the change.
Suggested by Simon Josefsson.
2012-06-21 Bruce Korb <bkorb@gnu.org>
parse-duration test: Avoid spurious output.
* tests/test-parse-duration.sh: Reindent with leading tabs.
2012-06-21 Jim Meyering <meyering@redhat.com>
maint: disable the strncpy prohibition
* cfg.mk: Do not prohibit strncpy here.
2012-06-21 Bruno Haible <bruno@clisp.org>
nonblocking: Avoid compilation error on mingw64.
* m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MODULE_INDICATOR for scanf,
fscanf.
* modules/vscanf (configure.ac): Invoke gl_MODULE_INDICATOR.
* modules/vfscanf (configure.ac): Likewise.
* lib/stdio-read.c (scanf, fscanf, vscanf, vfscanf): Enable function
definition only if stdio.h has prepared it.
Reported by Daniel P. Berrange <berrange@redhat.com>.
2012-06-20 Bernd Jendrissek <bernd.jendrissek@gmail.com> (tiny change)
gnulib-tool: Use readlink if it is available.
* gnulib-tool (func_readlink): Choose function more appropriately.
2012-06-21 Paul Eggert <eggert@cs.ucla.edu>
posixtm-tests: port to buggy compiler
Problem reported by Simon Josefsson in
<http://lists.gnu.org/r/bug-gnulib/2012-06/msg00246.html>.
* modules/posixtm-tests (Depends-on): Add stdint.
* tests/test-posixtm.c (struct posixtm_test.t_expected):
Now of type int_least64_t, not int64_t, both because that's
what INT64_C returns and because int_least64_t works even
on 72-bit hosts.
(T): Use INT64_C on constants outside the traditional int range,
to work around compiler bug noted by Simon.
mktime: fix integer overflow in 'configure'-time test
* m4/mktime.m4 (gl_FUNC_MKTIME): Do not rely on undefined behavior
after integer overflow. Problem reported by Rich Felker in
<http://lists.gnu.org/r/bug-gnulib/2012-06/msg00257.html>.
Also, don't look for further instances of a bug if we've already
found one instance; this helps 'configure' run faster.
2012-06-20 John Darrington <john@darrington.wattle.id.au> (tiny change)
tmpfile, clean-temp: Fix invocation of GetVersionEx.
* lib/tmpfile.c (supports_delete_on_close): Initialize parameter for
GetVersionEx correctly.
* lib/clean-temp.c (supports_delete_on_close): Likewise.
2012-06-20 Bruno Haible <bruno@clisp.org>
fdopen: Allow implementations that don't reject invalid fd arguments.
* m4/fdopen.m4 (gl_FUNC_FDOPEN): Let the test pass if fdopen(-1,...)
succeeds.
Reported by Rich Felker <dalias@aerifal.cx>.
2012-06-20 Simon Josefsson <simon@josefsson.org>
* modules/parse-duration-tests (test_parse_duration_LDADD): Don't
bring in LIBINTL.
2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
init.sh: do not rely on autoupated PWD
This addresses symptoms of the problem reported by Nelson H.F. Beebe in
<http://lists.gnu.org/r/bug-gzip/2012-06/msg00008.html>.
Although Nelson's bug was not necessarily fixed by this patch,
it seems wise to make the change for safety.
* tests/init.sh (path_prepend_): Do not rely on PWD updating
automagically after 'cd'; this is not reliable on older shells.
(setup_): Fail if we cannot cd to temporary directory.
2012-06-19 Bruno Haible <bruno@clisp.org>
stat, fstat: Avoid warnings on mingw64.
* lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Undefine before
redefining.
* lib/fstat.c (stat, fstat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Likewise.
Reported by Daniel P. Berrange <berrange@redhat.com>.
2012-06-19 Bruno Haible <bruno@clisp.org>
stdioext: Add support for musl libc.
* m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test whether __fbufsize exists.
* lib/fbufmode.c (fbufmode): Add conditional code for musl.
* m4/fseterr.m4: New file.
* lib/fseterr.h (fseterr): Define as an alias of __fseterr if that
function exists.
* modules/fseterr (Files): Add m4/fseterr.m4.
(configure.ac): Invoke gl_FUNC_FSETERR. Compile fseterr.c if
__fseterr does not exist.
(Makefile.am): Remove fseterr.c from lib_SOURCES.
* lib/freadable.h: Update comment.
* lib/fwritable.h: Update comment.
* lib/freading.h: Update comment.
* lib/fwriting.h: Update comment.
* m4/freadahead.m4: New file.
* lib/freadahead.h (freadahead): Define as an alias of __freadahead if
that function exists.
* modules/freadahead (Files): Add m4/freadahead.m4.
(configure.ac): Invoke gl_FUNC_FREADAHEAD. Compile freadahead.c if
__freadahead does not exist.
(Makefile.am): Remove freadahead.c from lib_SOURCES.
* m4/freadptr.m4: New file.
* lib/freadptr.h (freadptr): Define as an alias of __freadptr if that
function exists.
* modules/freadptr (Files): Add m4/freadptr.m4.
(configure.ac): Invoke gl_FUNC_FREADPTR. Compile freadptr.c if
__freadptr does not exist.
(Makefile.am): Remove freadptr.c from lib_SOURCES.
* m4/freadseek.m4: New file.
* lib/freadseek.c (freadptrinc): Use __freadptrinc if that function
exists.
* modules/freadseek (Files): Add m4/freadseek.m4.
(configure.ac): Invoke gl_FUNC_FREADSEEK.
* lib/fpurge.c (fpurge): Update comment.
Reported by and with help from Rich Felker <dalias@aerifal.cx>.
2012-06-19 Bruno Haible <bruno@clisp.org>
*printf-posix: Put more info into config.log.
* m4/printf.m4 (gl_PRINTF_ENOMEM): Emit conftest's error output and
exit code into config.log.
2012-06-19 Bruno Haible <bruno@clisp.org>
getopt-gnu: Fix exit code overflow in autoconf test.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Squash exit code values,
to keep them below < 128.
2012-06-17 Jim Meyering <meyering@redhat.com>
maint.mk: fix typo in code to derive GPG key at release time
* top/maint.mk (gpg_key_ID): Fix typo: $3 -> $$3
2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
regex: avoid warning when pointers are not long
* lib/regcomp.c (parse_dup_op, mark_opt_subexp): Cast between void *
and uintptr_t, not long, for portability to hosts where pointers and
long have different sizes. Issue noted by Daniel P. Berrange in
<http://lists.gnu.org/r/bug-gnulib/2012-06/msg00122.html>
and fix suggested by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2012-06/msg00128.html>.
2012-06-17 Bruno Haible <bruno@clisp.org>
dummy: Relicense into the public domain.
* modules/dummy (License): Set to "public domain".
Suggested by Reuben Thomas.
2012-06-12 Akim Demaille <akim@lrde.epita.fr>
announce-gen: VPATH issues
* build-aux/announce-gen (--srcdir): New option, used to trim the
$srcdir part of the path from $builddir to NEWS.
* top/maint.mk (announcement): Adjust.
2012-06-12 Akim Demaille <akim@lrde.epita.fr>
gnu-web-doc-update: VPATH builds
* build-aux/gnu-web-doc-update (--builddir): New option.
Revamp the handling of options.
Prefer $(...) to `...`.
Don't pass --tmpdir=. to mktemp, it is useless given that we specify
the template, and it is GNU mktemp specific.
Prefer set -e to long series of &&.
Restore the initial git branch, not "master".
Properly initialize submodules (don't rely only on bootstrap).
Do not reconfigure blindly, use config.status.
* top/README-release: Update instructions for gnu-web-doc-update.
2012-06-11 Jim Meyering <meyering@redhat.com>
maint.mk: revert most of the previous change re "all these"
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Remove that pair.
For rationale, see the discussion at
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30912
2012-06-10 Karl Berry <karl@gnu.org>
* build-aux/gnupload: with --dry-run, do not ask for gpg pw.
* build-aux/gnupload: implement --replace, ftp-upload protocol v1.2.
2012-06-10 Bruce Korb <bkorb@gnu.org>
parse-duration: Relicense under LGPLv2+.
* modules/parse-duration (License): Change to LGPLv2+.
2012-06-10 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit common grammar error: "all these"
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Add "all these" to
the list of prohibited word sequences. It should be "all of these".
* lib/tempname.c (__gen_tempname): Fix one of them.
2012-06-07 Akim Demaille <akim@lrde.epita.fr>
do-release-commit-and-tag: support VPATH builds
* build-aux/do-release-commit-and-tag: Prefer $(...) to `...`.
(noteworthy): Defined earlier to factor its value.
(noteworthy_stub): New.
Use it to factor.
(help_version): Split into...
(help, version): these.
Adjust the option processing part.
Support "--option=value" in addition to "--option value".
(builddir): New.
(--builddir): New option.
* top/README-release: Document this.
Reword slightly so that the reader cannot understand that he
has to do these steps before calling do-release-commit-and-tag.
2012-06-07 Akim Demaille <akim@lrde.epita.fr>
readme-release: also require announce-gen and maintainer-makefile
* modules/readme-release (Depends-on): here.
* modules/announce-gen, modules/do-release-commit-and-tag,
modules/gnu-web-doc-update, modules/maintainer-makefile
(Description): Point to readme-release.
2012-06-07 Akim Demaille <akim@lrde.epita.fr>
maint.mk: fix VPATH issues.
* top/maint.mk (news-check): GNU Make understand $< very well.
(release-prep): NEWS is in $(srcdir).
2012-06-05 Akim Demaille <akim@lrde.epita.fr>
readme-release: require the promoted modules.
* modules/readme-release (Depends-on): Add
do-release-commit-and-tag, gnupload, and gnu-web-doc-update, used
in this text.
2012-05-21 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
error, strerror-override: Support mingw64 from Fedora 17.
* lib/errno.in.h (GNULIB_defined_ESTREAMS): Use a different indicator
for ETXTBSY, ENODATA, ENOSR, ENOSTR, ETIME, EOTHER, compared to
EINPROGRESS.
* lib/strerror-override.h (strerror_override): Test it.
* lib/strerror-override.c (strerror_override): Likewise.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also ETXTBSY.
2012-05-21 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
error, strerror-override: Support mingw64 from Fedora 17.
* lib/errno.in.h (GNULIB_defined_ENOTRECOVERABLE): Use a different
indicator for ENOTRECOVERABLE, compared to EOWNERDEAD.
* lib/strerror-override.h (strerror_override): Test it.
* lib/strerror-override.c (strerror_override): Likewise.
2012-06-03 Bruno Haible <bruno@clisp.org>
error, strerror-override: Support new errno values from POSIX:2008.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also EOWNERDEAD and
ENOTRECOVERABLE.
* lib/errno.in.h (EOWNERDEAD, ENOTRECOVERABLE): Define on all
platforms.
* lib/strerror-override.c (strerror_override): Conditionalize the
EOWNERDEAD, ENOTRECOVERABLE handling on GNULIB_defined_EOWNERDEAD.
* lib/strerror-override.h (strerror_override): Declare also if
GNULIB_defined_EOWNERDEAD is defined.
* tests/test-errno.c (e130, e131): New variables.
* doc/posix-headers/errno.texi: Mention the status for EOWNERDEAD,
ENOTRECOVERABLE.
Reported by Paolo Bonzini.
2012-05-31 Jim Meyering <meyering@redhat.com>
savewd: add missing dependency on sys_wait module
* modules/savewd (Depends-on): Add sys_wait, needed at least
for MSVC. Report and suggested change by Michael Goffioul.
2012-05-29 Paul Eggert <eggert@cs.ucla.edu>
system-quote-tests: port to CentOS 5
Problem reported by Tom G. Christensen in
<http://lists.gnu.org/r/bug-gnulib/2012-05/msg00255.html>.
* tests/test-system-quote-child.c (fclose, fprintf): Undef.
2012-05-29 Jim Meyering <meyering@redhat.com>
maint: fix typos in comments and ChangeLog
Culprits identified and fixed mostly automatically using these commands:
git ls-files | misspellings -f - |grep -v '^ERROR:' |perl -pe \
's/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/sed -i '\''${2}s!$3!$4!'\'' $1/'
using http://github.com/lyda/misspell-check
* ChangeLog: Fix typos.
* doc/solaris-versions: Likewise.
* lib/regexec.c (re_search_stub): Likewise.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise.
2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
manywarnings: remove duplicate -Wmultichar entry
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove duplicate
entry for -Wmultichar. -Wno-multichar is in the GCC 4.7.0 manual,
so keep the entry marked as documented.
2012-05-27 Karl Berry <karl@gnu.org>
* config/srclist.txt (mktime.c): remove last libc sync,
perhaps just temporarily.
2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
regex: don't assume uint64_t or uint32_t
* lib/regcomp.c (init_word_char): Don't assume that the types
uint64_t and uint32_t exist. The C standard doesn't guarantee
them, and on some 32-bit compilers there is no uint64_t.
Problem reported by Gianluigi Tiesi in
<http://lists.gnu.org/r/bug-gnulib/2012-03/msg00154.html>.
2012-05-25 Jim Meyering <meyering@redhat.com>
maint.mk: add strncpy-prohibiting syntax-check rule
* top/maint.mk (sc_prohibit_strncpy): New rule, from coreutils.
2012-05-24 Jim Meyering <meyering@redhat.com>
maint.mk: compute $(gpg_key_ID) more portably
* top/maint.mk (gpg_key_ID): Use awk in place of sed '{...;...;}'.
That use of sed is not portable to some fringe systems.
Reported by Paul Eggert in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30793/focus=30802
2012-05-23 Paul Eggert <eggert@cs.ucla.edu>
mktime: sync from glibc
* config/srclist.txt: Uncomment mktime.c.
* lib/mktime.c: Sync from glibc master. This incorporates 3 changes.
First, indent with tabs, since glibc uses tabs and doesn't want to
change and we'd rather be identical to glibc. Also, two small
coding changes:
(isdst_differ): Use &&, not &, as && is the usual style.
(__mktime_internal): Rename local var from abs_diff to approx_abs_diff
for clarity.
2012-05-23 Akim Demaille <akim@lrde.epita.fr>
announce-gen: du -h is more portable than du --human
* build-aux/announce-gen (sizes): Invoke du with -h instead
of --human. Accept leading white space in its output.
2012-05-23 Akim Demaille <akim@lrde.epita.fr>
announce-gen: Improve diagnostics.
* build-aux/announce-gen: When parsing command line options,
prefer "announce-gen: option --release-type requires an argument"
to "Option release-type requires an argument".
2012-05-23 Akim Demaille <akim@lrde.epita.fr>
maint.mk: gpg_key_ID: use sed more portably
* top/maint.mk (gpg_key_ID): End sed block with a semicolon before
the closing brace.
(refresh-po): Fuse two sed invocations into one.
2012-05-15 Akim Demaille <akim@lrde.epita.fr>
gitlog-to-changelog: support the log message format used in Bison.
* build-aux/gitlog-to-changelog: Support --strip-tab and
--strip-cherry-picked.
2012-05-21 Paolo Bonzini <bonzini@gnu.org>
poll/select: prevent busy-waiting. SwitchToThread() only gives away
the rest of the current time slice to another thread in the current
process. So if the thread that feeds the file decscriptor we're
polling is not in the current process, we get busy-waiting.
* lib/poll.c: Use SleepEx(1, TRUE) instead of SwitchToThread().
Patch from Theodore Leblond.
* lib/select.c: Split polling out of the loop that sets the output
fd_sets. Check for zero result and loop if the wait timeout is
infinite.
2012-05-21 Simon Josefsson <simon@josefsson.org>
select: Fix build error on IRIX 6.5.
* lib/select.c: Include stddef.h for NULL.
2012-05-21 Simon Josefsson <simon@josefsson.org>
gc: fix libgcrypt detection on older machines.
* m4/gc.m4: Reject libgcrypt earlier than 1.4.4. Collapse
copyright years because the file has been distributed every year
since it was created.
2012-05-18 Paul Eggert <eggert@cs.ucla.edu>
crypto: fix bug in large buffer handling
Problem reported by Serge Belyshev for glibc in
<http://sourceware.org/bugzilla/show_bug.cgi?id=14090> and for gnulib in
<http://lists.gnu.org/r/bug-gnulib/2012-05/msg00226.html>.
* lib/md4.c (md4_process_block):
* lib/md5.c (md5_process_block):
* lib/sha1.c (sha1_process_block):
* lib/sha256.c (sha256_process_block):
Don't assume the buffer length is less than 2**32.
* lib/sha512.c (sha512_process_block): Likewise.
Here, the bug is present only in the rare case where the host does
not support uint64_t or where size_t is wider than 64 bits.
Use u64size to work around the problems.
* lib/u64.h (u64size): New macro.
2012-05-15 Pádraig Brady <P@draigBrady.com>
fsusage: fix block size returned on older Linux 2.6
* lib/fsusage.c: Fall back to (struct statfs).f_frsize
which is available since Linux 2.6.
* m4/fsusage.m4 (STAT_STATFS2_FRSIZE): Always define
when the member is available so it can be used as a fallback.
* doc/posix-functions/statvfs.texi: Mention the hang issue
on Linux < 2.6.36.
2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: suppress stderr chatter
* build-aux/bootstrap (insert_sorted_if_absent, main program):
Omit unnecessary chatter to stderr. The main program chatter
was there only inadvertantly.
bootstrap: .gitignore files created by autopoint, libtool
I ran into this problem when bootstrapping the latest diffutils.
After './bootstrap', 'git status' reported lots of untracked files
m4/codeset.m4, m4/gettext.m4, etc. These files were created by
autopoint and do not need to be version-controlled.
* build-aux/bootstrap: Put into .gitignore the files that
autopoint and libtool create, by keeping track of files that exist
after but not before these programs are run.
(version_controlled_file): Move up. 2nd arg is now full file
name, not base name; this is more convenient. Put CVS at the end,
as it's now somewhat deprecated.
2012-05-14 Jim Meyering <meyering@redhat.com>
ignore-value.h: remove unused _GL_ATTRIBUTE_DEPRECATED definition
* lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Remove now-unused
definition. Reported by Bruno Haible.
2012-05-13 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
binary-io: Define set_binary_mode function.
* lib/binary-io.h (set_binary_mode): New function.
(SET_BINARY): Define in terms of set_binary_mode.
* modules/binary-io (configure.ac): Require AC_C_INLINE.
* tests/test-binary-io.c (main): Accept an argument, and test either
set_binary_mode or SET_BINARY depending on the argument.
* tests/test-binary-io.sh: Invoke test-binary-io twice, with an
argument. Clean up also t-bin-out0.tmp.
2012-05-13 Stefano Lattarini <stefano.lattarini@gmail.com>
bootstrap: take advantage of POSIX shell features
The 'bootstrap' script offered by Gnulib script already uses POSIX
shell features (like $((...)) arithmetic expansions) that are not
supported by legacy Bourne shells like Solaris 10 /bin/sh. This
means that bootstrap must already be run using a proper POSIX shell,
which will thus provide more features, like ${var#pattern} parameter
expansion or inversion of a command exit status with '!'. We can
thus use these features to improve the clarity and the performances
of the bootstrap script.
Suggested by Eric Blake.
* build-aux/bootstrap: Prefer xpg4 parameter expansions over use
of sed/expr plus command substitutions, to save some forks. While
we are at it, prefer the POSIX $(...) form of command substitution,
rather than the legacy form `...` (since the former is visually
clearer and interacts better with quoting), and prefer the idiom:
"if ! CMD; then ACTION ..."
over the idiom:
"if CMD; then :; else ACTION ..."
which was required by legacy Bourne shells not supporting '!'.
2012-05-12 Bruno Haible <bruno@clisp.org>
system-quote: Add more comments.
* lib/system-quote.h: Add more comments about wilcards and limitations.
Suggested by Eli Zaretskii <eliz@gnu.org>.
sh-quote, system-quote: Add comments about wildcards.
* lib/sh-quote.h: Clarify what happens with wildcard characters.
* lib/system-quote.h: Likewise.
Reported by Eli Zaretskii <eliz@gnu.org>.
2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
fsusage: check for GNU/Linux statvfs problem dynamically
* lib/fsusage.c [STAT_STATVFS && __linux__ && (__GLIBC__||__UCLIBC__)]:
Define STAT_STATFS2_BSIZE too, since in this case the code now
checks dynamically whether statvfs is reliable, falling back on
Linux-style statfs otherwise.
(statvfs_works): New function, for dynamically testing statvfs.
(get_fs_usage) [STAT_STATVFS]: Use it.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Remove static check for
statvfs on GNU/Linux hosts, since it's now done dynamically.
2012-05-10 Bruno Haible <bruno@clisp.org>
system-quote, execute, spawn-pipe: Escape '?' on Windows.
* lib/system-quote.c (SHELL_SPECIAL_CHARS, CMD_SPECIAL_CHARS): Add the
'?' character.
* lib/w32spawn.h (SHELL_SPECIAL_CHARS): Likewise.
* tests/test-system-quote-main.c (check_all): Check also strings like
"??????????".
Reported by Eli Zaretskii <eliz@gnu.org>.
2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
_Noreturn: port config.h to gcc -Wundef
* m4/gnulib-common.m4 (gl_COMMON_BODY): Check that __STDC_VERSION__ is
defined before using it, for gcc -Wundef. Reported by Akim Demaille in
<http://lists.gnu.org/r/bug-gnulib/2012-05/msg00147.html>.
2012-05-10 Bruno Haible <bruno@clisp.org>
system-quote: Refactor.
* lib/system-quote.h (system_quote_copy): Fix comment.
* lib/system-quote.c (windows_createprocess_quote, windows_cmd_quote):
New functions, extracted from system_quote_copy.
(system_quote_length, system_quote_copy): Use these functions.
Reported by Paul Eggert.
2012-05-08 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Escape '*' characters in arguments on Windows.
* lib/w32spawn.h (SHELL_SPECIAL_CHARS): Add the '*' character.
2012-05-08 Bruno Haible <bruno@clisp.org>
Tests for module 'system-quote'.
* modules/system-quote-tests: New file.
* tests/test-system-quote.sh: New file.
* tests/test-system-quote-main.c: New file.
* tests/test-system-quote-child.c: New file.
New module 'system-quote'.
* lib/system-quote.h: New file.
* lib/system-quote.c: New file.
* modules/system-quote: New file.
2012-05-08 Bruno Haible <bruno@clisp.org>
sh-quote: Make C++ safe and allow multiple inclusion.
* lib/sh-quote.h: Add double-inclusion guard. For C++, wrap function
declarations in extern "C".
2012-05-08 Bruno Haible <bruno@clisp.org>
sh-quote tests: Make tests stricter.
* tests/test-sh-quote.c (check_one): Check the return value of
shell_quote_copy.
(main): Check a string with a CR character. Check a string that
contains UCHAR_MAX.
2012-05-08 Akim Demaille <akim@lrde.epita.fr>
warnings.m4: provide a means to specify the program to compile.
* m4/warnings.m4 (gl_COMPILER_OPTION_IF): New, extracted from...
(gl_WARN_ADD): here.
Use gl_AS_VAR_APPEND.
Support an argument to specify the program to compile.
(gl_WARN_ADD): Accept an argument to specify the program to compile.
AC_SUBST the WARN_CFLAGS when they are used.
* modules/warnings (configure.ac): Don't AC_SUBST WARN_CFLAGS,
leave this to gl_WARN_ADD.
2012-05-08 Eric Blake <eblake@redhat.com>
doc: recommendations on gettext version
* doc/gnulib-tool.texi (gettextize and autopoint): Document the
choice between versions.
* DEPENDENCIES (gettext): Cover both approaches.
2012-05-08 Jim Meyering <meyering@redhat.com>
init.sh: explain why EXEEXT support uses aliases rather than functions
* tests/init.sh: Add a comment.
init.sh: don't let bash aliases interfere with tests
* tests/init.sh: Undefine any pre-defined aliases if the selected shell
is bash. This avoids problems for those who alias standard commands to
non-conforming uses, like those reported in http://bugs.gnu.org/11256.
Suggested by Tim Mooney <Tim.Mooney@ndsu.edu>.
2012-05-07 Paul Eggert <eggert@cs.ucla.edu>
stdint: be more consistent with glibc, SunOS libc
* lib/stdint.in.h (gl_int_fast8_t, gl_uint_fast8_t)
(gl_int_fast16_t, gl_uint_fast16_t)
(gl_int_fast32_t, gl_uint_fast32_t)
(INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX)
(INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX)
(INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX):
Be consistent with glibc by default, and with SunOS 5.10 and later
if __sun is defined. This lessens the likelihood of clashes if
code compiled for older hosts is combined with code compiled for
newer ones. Problem reported by Niels Möller in
<http://lists.gnu.org/r/bug-gnulib/2012-05/msg00074.html>.
2012-05-07 Eric Blake <eblake@redhat.com>
isatty: relax license to LGPLv2+
* modules/isatty (License): Relax license.
2012-05-06 Paul Eggert <eggert@cs.ucla.edu>
stat-size: comment fix
* lib/stat-size.h: Remove obsolete comment about indenting.
2012-05-06 Bruno Haible <bruno@clisp.org>
Tests for module 'sh-quote'.
* modules/sh-quote-tests: New file.
* tests/test-sh-quote.c: New file.
2012-05-06 Bruno Haible <bruno@clisp.org>
sh-quote: Improve shell_quote_argv's signature.
* lib/sh-quote.h (shell_quote_argv): Make argument array a 'const *'.
* lib/sh-quote.c (shell_quote_argv): Likewise.
2012-05-06 Paul Eggert <eggert@cs.ucla.edu>
stdint: document issues with int_fast8_t etc.
* doc/posix-headers/stdint.texi (stdint.h): Say that other
stdint.h substitutes may define these types differently. See
<http://lists.gnu.org/r/bug-gnulib/2012-05/msg00071.html>.
2012-05-05 Bruno Haible <bruno@clisp.org>
nanosleep: Avoid guessing wrong when cross-compiling to Linux.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require AC_CANONICAL_HOST. When
cross-compiling, set gl_cv_func_nanosleep to either 'guessing no'
or 'guessing no (mishandles large arguments)'.
2012-05-05 Bruno Haible <bruno@clisp.org>
link-follow: Avoid guessing wrong when cross-compiling to glibc/Linux.
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Require
AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform,
set gl_cv_func_link_follows_symlink to "guessing no".
2012-05-05 Bruno Haible <bruno@clisp.org>
tzset: Avoid guessing wrong when cross-compiling to glibc systems.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Require AC_CANONICAL_HOST. When
cross-compiling to a glibc platform, set gl_cv_func_tzset_clobber to
"guessing no".
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Update.
2012-05-05 Bruno Haible <bruno@clisp.org>
d-ino: Avoid guessing "no" when cross-compiling to glibc/Linux systems.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Require
AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform,
set gl_cv_struct_dirent_d_ino to "guessing yes".
2012-05-05 Bruno Haible <bruno@clisp.org>
fseeko-tests, ftello-tests: Avoid "guessing no" when cross-compiling.
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Require AC_CANONICAL_HOST. When
cross-compiling to a glibc platform, set gl_cv_func_ungetc_works to
"guessing yes".
2012-05-05 Bruno Haible <bruno@clisp.org>
signbit: Avoid "guessing no" when cross-compiling to glibc systems.
* m4/signbit.m4 (gl_SIGNBIT): Require AC_CANONICAL_HOST. When cross-
compiling to a glibc system, set gl_cv_func_signbit and
gl_cv_func_signbit_gcc to "guessing yes".
2012-05-05 Bruno Haible <bruno@clisp.org>
strerror: Avoid "guessing no" when cross-compiling to glibc systems.
* m4/strerror.m4 (gl_FUNC_STRERROR): Require AC_CANONICAL_HOST. When
cross-compiling to a glibc platform, set gl_cv_func_working_strerror
to "guessing yes".
(gl_FUNC_STRERROR_0): Require AC_CANONICAL_HOST. When cross-compiling
to a glibc platform, set gl_cv_func_strerror_0_works to "guessing yes".
2012-05-05 Bruno Haible <bruno@clisp.org>
canonicalize[-lgpl]: Avoid "guessing no" when cross-compiling to glibc.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Require
AC_CANONICAL_HOST. When cross-compiling to a glibc system, set
gl_cv_func_realpath_works to "guessing yes".
2012-05-05 Bruno Haible <bruno@clisp.org>
gettimeofday: Avoid bad guess when cross-compiling to glibc systems.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Require
AC_CANONICAL_HOST. When cross-compiling, guess no on glibc platforms.
2012-05-04 Bruno Haible <bruno@clisp.org>
Tweak last commit.
* m4/off_t.m4 (gl_TYPE_OFF_T): Tweak comments.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
2012-05-04 Paul Eggert <eggert@cs.ucla.edu>
unistd_h: make it easier to avoid sys_types_h
This is useful for Emacs, which has its own method of porting to
Windows, and which therefore does not need the sys_types_h module.
* m4/off_t.m4: New file, defining gl_TYPE_OFF_T, which contains
code moved here from gl_SYS_TYPES_H.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Require it instead of
using the code directly.
* m4/unistd_h.m4 (gl_UNISTD_H): Require gl_TYPE_OFF_T, not
gl_SYS_TYPES_H.
* modules/sys_types (Files):
* modules/unistd (Files): Add m4/off_t.m4.
2012-05-03 Bruno Haible <bruno@clisp.org>
lstat: Avoid "guessing no" when cross-compiling to glibc systems.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): When cross-
compiling, set gl_cv_func_lstat_dereferences_slashed_symlink to
"guessing yes" or "guessing no".
(gl_FUNC_LSTAT): Update.
* m4/fstatat.m4 (gl_FUNC_FSTATAT): Update.
* m4/openat.m4 (gl_FUNC_OPENAT): Update.
* m4/unlinkat.m4 (gl_FUNC_UNLINKAT): Update.
2012-05-03 Bruno Haible <bruno@clisp.org>
*alloc-gnu, eealloc: Avoid "guessing no" when cross-compiling to glibc.
* m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Override in autoconf < 2.70.
* m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Override in autoconf < 2.70.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Require AC_CANONICAL_HOST. When
cross-compiling, choose the first alternative on glibc systems.
* modules/eealloc (Files): Add m4/malloc.m4, m4/realloc.m4.
2012-05-03 Bruno Haible <bruno@clisp.org>
getgroups: Avoid "guessing no" when cross-compiling to glibc systems.
* m4/getgroups.m4 (AC_FUNC_GETGROUPS): Override in autoconf < 2.70.
(gl_FUNC_GETGROUPS): Adapt to change of ac_cv_func_getgroups_works.
2012-05-03 Bruno Haible <bruno@clisp.org>
chown: Avoid "guessing no" when cross-compiling to glibc systems.
* m4/chown.m4 (AC_FUNC_CHOWN): Override in autoconf < 2.70.
2012-05-03 Bruno Haible <bruno@clisp.org>
Avoid "guessing no" guesses when cross-compiling to glibc systems.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_cbrtl_ieee to "guessing yes".
* m4/ceil.m4 (gl_FUNC_CEIL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_ceil_ieee to "guessing yes".
* m4/ceilf.m4 (gl_FUNC_CEILF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_ceilf_ieee to "guessing yes".
* m4/ceill.m4 (gl_FUNC_CEILL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_ceill_ieee to "guessing yes".
* m4/chown.m4 (gl_FUNC_CHOWN): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_chown_slash_works,
gl_cv_func_chown_ctime_works to "guessing yes".
* m4/lchown.m4 (gl_FUNC_LCHOWN): Update.
* m4/exp2l.m4 (gl_FUNC_EXP2L): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_exp2l_ieee to "guessing yes".
* m4/expm1.m4 (gl_FUNC_EXPM1): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_expm1_ieee to "guessing yes".
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_open_directory_works to
"guessing yes".
* m4/fstat.m4 (gl_FUNC_FSTAT): Update.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_fdopendir_works to
"guessing yes".
* m4/floor.m4 (gl_FUNC_FLOOR): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_floor_ieee to "guessing yes".
* m4/floorf.m4 (gl_FUNC_FLOORF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_floorf_ieee to
"guessing yes".
* m4/fmod.m4 (gl_FUNC_FMOD): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_fmod_ieee to "guessing yes".
* m4/fmodf.m4 (gl_FUNC_FMODF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_fmodf_ieee to "guessing yes".
* m4/fmodl.m4 (gl_FUNC_FMODL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_fmodl_ieee to "guessing yes".
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_getgroups_works to
"guessing yes".
* m4/hypot.m4 (gl_FUNC_HYPOT): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_hypot_ieee to "guessing yes".
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_hypotf_ieee to
"guessing yes".
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_hypotl_ieee to
"guessing yes".
* m4/link.m4 (gl_FUNC_LINK): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_link_works to "guessing yes".
* m4/log.m4 (gl_FUNC_LOG): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log_ieee to "guessing yes".
* m4/logf.m4 (gl_FUNC_LOGF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_logf_ieee to "guessing yes".
* m4/log10.m4 (gl_FUNC_LOG10): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log10_ieee to "guessing yes".
* m4/log10f.m4 (gl_FUNC_LOG10F): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log10f_ieee to
"guessing yes".
* m4/log1p.m4 (gl_FUNC_LOG1P): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log1p_ieee to "guessing yes".
* m4/log1pf.m4 (gl_FUNC_LOG1PF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log1pf_ieee to
"guessing yes".
* m4/log1pl.m4 (gl_FUNC_LOG1PL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log1pl_ieee to
"guessing yes".
* m4/log2.m4 (gl_FUNC_LOG2): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log2_ieee to "guessing yes".
* m4/log2f.m4 (gl_FUNC_LOG2F): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_log2f_ieee to "guessing yes".
* m4/mkdir.m4 (gl_FUNC_MKDIR): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_mkdir_trailing_slash_works,
gl_cv_func_mkdir_trailing_dot_works to "guessing yes".
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_mkfifo_works to
"guessing yes".
* m4/mknod.m4 (gl_FUNC_MKNOD): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_mknod_works to
"guessing yes".
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_working_mkstemp to
"guessing yes".
* m4/modf.m4 (gl_FUNC_MODF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_modf_ieee to "guessing yes".
* m4/modff.m4 (gl_FUNC_MODFF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_modff_ieee to "guessing yes".
* m4/modfl.m4 (gl_FUNC_MODFL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_modfl_ieee to "guessing yes".
* m4/putenv.m4 (gl_FUNC_PUTENV): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_svid_putenv to
"guessing yes".
* m4/readlink.m4 (gl_FUNC_READLINK): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_readlink_works to
"guessing yes".
* m4/remainder.m4 (gl_FUNC_REMAINDER): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_remainder_ieee to
"guessing yes".
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Require AC_CANONICAL_HOST.
When cross-compiling to glibc systems, set gl_cv_func_remainderf_ieee
to "guessing yes".
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Require AC_CANONICAL_HOST.
When cross-compiling to glibc systems, set gl_cv_func_remainderl_ieee
to "guessing yes".
* m4/rmdir.m4 (gl_FUNC_RMDIR): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_rmdir_works to
"guessing yes".
* m4/unlink.m4 (gl_FUNC_UNLINK): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_unlink_honors_slashes,
gl_cv_func_unlink_parent_fails to "guessing yes".
* m4/remove.m4 (gl_FUNC_REMOVE): Update.
* m4/rename.m4 (gl_FUNC_RENAME): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_rename_slash_dst_works,
gl_cv_func_rename_slash_src_works, gl_cv_func_rename_link_works,
gl_cv_func_rename_dest_works to "guessing yes".
* m4/round.m4 (gl_FUNC_ROUND): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_round_ieee to "guessing yes".
* m4/roundf.m4 (gl_FUNC_ROUNDF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_roundf_ieee to
"guessing yes".
* m4/roundl.m4 (gl_FUNC_ROUNDL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_roundl_ieee to
"guessing yes".
* m4/setenv.m4 (gl_FUNC_SETENV): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_setenv_works to
"guessing yes".
(gl_FUNC_UNSETENV): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_unsetenv_works to
"guessing yes".
* m4/sleep.m4 (gl_FUNC_SLEEP): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_sleep_works to
"guessing yes".
* m4/stat.m4 (gl_FUNC_STAT): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_stat_file_slash to
"guessing yes".
* m4/symlink.m4 (gl_FUNC_SYMLINK): Require AC_CANONICAL_HOST. When
cross-compiling to glibc systems, set gl_cv_func_symlink_works to
"guessing yes".
* m4/trunc.m4 (gl_FUNC_TRUNC): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_trunc_ieee to "guessing yes".
* m4/truncf.m4 (gl_FUNC_TRUNCF): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_truncf_ieee to
"guessing yes".
* m4/truncl.m4 (gl_FUNC_TRUNCL): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_truncl_ieee to
"guessing yes".
* m4/usleep.m4 (gl_FUNC_USLEEP): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_usleep_works to
"guessing yes".
* m4/utimens.m4 (gl_UTIMENS): Require AC_CANONICAL_HOST. When cross-
compiling to glibc systems, set gl_cv_func_futimesat_works to
"guessing yes".
2012-05-03 Bruno Haible <bruno@clisp.org>
Say "guessing yes" or "guessing no" when cross-compiling.
* m4/dup2.m4 (gl_FUNC_DUP2): When cross-compiling, set
gl_cv_func_dup2_works to "guessing yes" or "guessing no".
* m4/getdelim.m4 (gl_FUNC_GETDELIM): When cross-compiling, set
gl_cv_func_working_getdelim to "guessing yes" or "guessing no".
* m4/getline.m4 (gl_FUNC_GETLINE): When cross-compiling, set
am_cv_func_working_getline to "guessing yes" or "guessing no".
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, set
gl_cv_func_memmem_works_always to "guessing yes" or "guessing no".
(gl_FUNC_MEMMEM): When cross-compiling, set
gl_cv_func_memmem_works_fast to "guessing yes" or "guessing no".
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): When cross-compiling, set
gl_cv_func_stpncpy to "guessing yes" or "guessing no".
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): When cross-compiling,
set gl_cv_func_strcasestr_works_always to "guessing yes" or
"guessing no".
(gl_FUNC_STRCASESTR): When cross-compiling, set
gl_cv_func_strcasestr_linear to "guessing yes" or "guessing no".
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): When cross-compiling, set
gl_cv_func_strstr_works_always to "guessing yes" or "guessing no".
(gl_FUNC_STRSTR): When cross-compiling, set
gl_cv_func_strstr_linear to "guessing yes" or "guessing no".
* m4/strtod.m4 (gl_FUNC_STRTOD): When cross-compiling, set
gl_cv_func_strtod_works to "guessing yes" or "guessing no".
* m4/wctype_h.m4 (gl_WCTYPE_H): When cross-compiling, set
gl_cv_func_iswcntrl_works to "guessing yes" or "guessing no".
2012-05-01 Bruno Haible <bruno@clisp.org>
relocatable-prog: Enable ELF ORIGIN trick also on GNU/kFreeBSD.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Treat kFreeBSD like Linux.
* build-aux/reloc-ldflags: Likewise.
Suggested by Steven Chamberlain <steven@pyro.eu.org>.
2012-05-01 Bruno Haible <bruno@clisp.org>
gnulib-tool: Remove transitional code.
* gnulib-tool: Don't warn about --import with 0 arguments any more.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.
2012-05-01 Bruno Haible <bruno@clisp.org>
getcwd: Fix misindentation.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Fix indentation.
2012-04-29 Paul Eggert <eggert@cs.ucla.edu>
exclude: process exclude and include directives in order
This restores the pre-2009 behavior, and is part of a fix of a
grep bug reported by Quentin Arce in
<http://lists.gnu.org/r/bug-grep/2012-04/msg00056.html>.
* lib/exclude.c (struct exclude): Remove 'tail' member.
(new_exclude_segment): Prepend the new segment instead of appending.
Return void, since that's now more convenient.
(file_pattern_matches): Renamed from excluded_file_pattern_p.
(file_name_matches): Renamed from excluded_file_name_p.
(file_pattern_matches, file_name_matches):
Return true if the pattern matches, not if it excludes.
All callers changed.
(excluded_file_name): Process the list in reverse order;
since the list is now reversed this restores the pre-2009 behavior.
(add_exclude): Adjust to new reversed-order list. Use local var
rather than macro, for clarity.
* tests/test-exclude7.sh: Adjust to corrected behavior.
exclude: handle wildcards with FNM_NOESCAPE and with trailing \
* lib/exclude.c (unescape_pattern): Don't worry about unescaped [;
it's not possible here. Handle the case of \ at end of pattern
without dumping core.
(add_exclude): Do not unescape the pattern if FNM_NOESCAPE is used.
_Noreturn: future-proof non-GNU and non-MSVC compilers
* build-aux/snippet/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
Do not define _Noreturn if __STDC_VERSION__ indicates this is
C11 or later. This is more likely to work with random future C
compilers that are neither GNUish nor MSVCish. See Vincent Lefevre in
<http://lists.gnu.org/r/bug-gnulib/2012-04/msg00195.html>.
exclude: handle wildcards with FNM_EXTMATCH
* lib/exclude.c (fnmatch_pattern_has_wildcards): Also treat '+(',
'+@', '!(' as wildcards, if FNM_EXTMATCH. Make it clear in a
comment that "has wildcards" really means "has or may have
wildcards". Simplify by avoiding the need to call strcspn.
2012-04-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix list of authors.
* gnulib-tool (func_version): Add Paul Eggert to list of authors.
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
bootstrap: support Automake-NG in $buildreq
* bootstrap (check_versions): Handle automake and aclocal from
Automake-NG specially. They can be specified as respectively
the "automake-ng" and "aclocal-ng" requirements.
2012-04-25 Eric Blake <eblake@redhat.com>
bootstrap: only force latest Makefile.in.in for gettext module
* build-aux/bootstrap (with_gettext): Only install latest
Makefile.in.in for projects requesting bleeding edge gettext.
2012-04-22 Bruno Haible <bruno@clisp.org>
doc: Mention reason for replacement on glibc/Linux systems.
* doc/posix-functions/dprintf.texi: Mention the problem with special
'long double' values.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/fcntl.texi: Add glibc/Linux to the list of
platforms with F_DUPFD_CLOEXEC problems.
* doc/posix-functions/glob.texi: Mention which platforms are affected
by the problem with symbolic links.
* doc/posix-functions/linkat.texi: Mention the problem with
AT_SYMLINK_FOLLOW on Linux.
2012-04-22 Bruno Haible <bruno@clisp.org>
pwrite: Don't replace on all platforms.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Fix syntax error in test program.
2012-04-22 Bruno Haible <bruno@clisp.org>
rint* tests: Avoid gcc warnings.
* tests/test-rint.c (INFINITY, NAN): Undefine before redefining.
* tests/test-rintf.c (INFINITY, NAN): Likewise.
* tests/test-rintl.c (INFINITY, NAN): Likewise.
2012-04-21 Bruno Haible <bruno@clisp.org>
users.txt: Update.
* users.txt: Add freedink, wdiff. Update URLs for projects that have
switched from CVS to git, bzr, or svn.
2012-04-21 Bruno Haible <bruno@clisp.org>
Large File Support for native Windows platforms.
* m4/largefile.m4 (gl_LARGEFILE): New macro.
* modules/largefile (configure.ac): Require gl_LARGEFILE.
* lib/sys_types.in.h (off_t) [WINDOWS_64_BIT_OFF_T]: Define to a 64-bit
type.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_64_BIT_OFF_T.
* modules/sys_types (Makefile.am): Substitute WINDOWS_64_BIT_OFF_T.
* doc/posix-headers/sys_types.texi: Mention the effect of the
'largefile' module.
* lib/fcntl.in.h: Add comments about off_t.
* modules/fcntl-h (Depends-on): Add sys_types.
* lib/unistd.in.h [WINDOWS_64_BIT_OFF_T]: Include <sys/types.h>.
(ftruncate): Replace it if REPLACE_FTRUNCATE is 1.
* m4/unistd_h.m4 (gl_UNISTD_H): Require gl_SYS_TYPES_H.
(gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FTRUNCATE.
* modules/unistd (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_OFF_T, REPLACE_FTRUNCATE.
* lib/lseek.c (rpl_lseek) [_GL_WINDOWS_64_BIT_OFF_T]: Use _lseeki64
instead of lseek.
* m4/lseek.m4 (gl_FUNC_LSEEK): Require gl_SYS_TYPES_H. Set
REPLACE_LSEEK if WINDOWS_64_BIT_OFF_T is 1.
* modules/lseek (Depends-on): Add sys_types.
* lib/ftruncate.c: Put under GPLv3+. Include <windows.h>,
msvc-nothrow.h.
(SetFileSize): New function.
(ftruncate) [_GL_WINDOWS_64_BIT_OFF_T]: New implementation.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Set REPLACE_FTRUNCATE on Windows
if Large File Support is requested.
* modules/ftruncate (configure.ac): Consider REPLACE_FTRUNCATE.
(Depends-on): Add sys_types, msvc-nothrow. Update conditions.
* lib/stdio.in.h: Add comments about off_t.
* modules/stdio (Depends-on): Add sys_types.
* lib/ftello.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _ftelli64 or ftello64
instead of ftello.
* m4/ftello.m4 (gl_FUNC_FTELLO): Require gl_SYS_TYPES_H. Set
REPLACE_FTELLO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FTELLO): New macro.
* modules/ftello (Depends-on): Add sys_types.
(configure.ac): Incoke gl_PREREQ_FTELLO.
* lib/fseeko.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _fseeki64 or fseeko64
instead of fseeko.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Require gl_SYS_TYPES_H. Set
REPLACE_FSEEKO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FSEEKO): New macro.
* modules/fseeko (Depends-on): Add sys_types.
(configure.ac): Invoke gl_PREREQ_FSEEKO.
* lib/sys_stat.in.h: Add comments about off_t.
(stat, fstat) [WINDOWS_64_BIT_ST_SIZE]: Define to variants that use a
64-bit integer for st_size in 'struct stat'.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_64_BIT_ST_SIZE.
Define _GL_WINDOWS_64_BIT_ST_SIZE.
* modules/sys_stat (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_ST_SIZE.
* lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Define to _stati64
instead of stat or _stat.
* lib/fstat.c [_GL_WINDOWS_64_BIT_ST_SIZE]: Use _fstati64 and
'struct _stati64' instead of fstat and 'struct stat'.
* m4/fstat.m4 (gl_FUNC_FSTAT): Require gl_HEADER_SYS_STAT_H. Set
REPLACE_FSTAT if WINDOWS_64_BIT_ST_SIZE is 1.
Reported by Ray Satiro <raysatiro@yahoo.com>.
2012-04-19 Eric Blake <eblake@redhat.com>
bootstrap: accommodate older libtool
* build-aux/bootstrap (use_libtool): Cater to libtool 1.5.22.
Reported by Daniel P. Berrange.
2012-04-19 Jim Meyering <meyering@redhat.com>
announce-gen: avoid failure due to lack of Digest::SHA1
Even with the preferred Digest::SHA available, this script
would fail when the backup module, Digest::SHA1, was not installed.
* build-aux/announce-gen: Quote the conditional use of "use".
Reported by Reuben Thomas in:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30444
bootstrap: don't let a user's CDPATH setting affect this script
When CDPATH is set, cd will sometimes generate output.
When "cd" is run in a subshell whose output matters, that
surprising-to-some output can cause malfunction.
Unsetting CDPATH turns off this shell "feature."
* build-aux/bootstrap (CDPATH): Unset.
Reported by Reuben Thomas in:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30435
and inspired by his patch here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30440
2012-04-16 Akim Demaille <akim@lrde.epita.fr>
and Jim Meyering <meyering@redhat.com>
maint.mk: catch "see @xref{}" and similar
* top/maint.mk (prohibit_undesirable_word_seq_RE_): Also
prohibit "See also @xref{", "Also see @pxref{", and similar.
2012-04-16 Jim Meyering <meyering@redhat.com>
bootstrap: really use gnulib's po/Makefile.in.in
* build-aux/bootstrap: Correct the source file name in previous change.
Reported by Akim Demaille.
configmake: correct minor inconsistency in Makefile rule
* modules/configmake (Makefile.am): All other rules like this one
run the final "mv -f ..." in the same backslash-continued command
as the one that does everything else. This one put the mv -f ...
command on a separate, non-backslash-continued line.
Make it like the others.
bootstrap: use gnulib's po/Makefile.in.in, not the one from gettext
* build-aux/bootstrap: Use gnulib's po/Makefile.in.in, not
the one from gettext. Reported by Akim Demaille.
2012-04-16 Joel E. Denny <joeldenny@joeldenny.org>
Fix recursion of install-* into po directories.
Bison's install-pdf bug reported by Hans Aberg at
<http://lists.gnu.org/r/bug-bison/2011-05/msg00008.html>.
* build-aux/po/Makefile.in.in (install-dvi, install-html)
(install-info, install-pdf, install-ps): New targets.
2012-04-16 Jim Meyering <meyering@redhat.com>
maint: avoid spurious "make sc_maint" failure
* cfg.mk (exclude_file_name_regexp--sc_trailing_blank): Also
exempt all *.class file names, for lib/javaversion.class.
2012-04-15 Bruno Haible <bruno@clisp.org>
lseek: Make configure test independent of environment.
* m4/lseek.m4 (gl_FUNC_LSEEK): Require AC_CANONICAL_HOST. On native
Windows, we know that lseek() on pipes is broken; skip the runtime
test.
2012-04-14 Bruno Haible <bruno@clisp.org>
stat: Bypass buggy override in mingw64.
* m4/stat.m4 (gl_FUNC_STAT): Update comments.
* lib/stat.c (stat) [mingw64]: Define to _stat.
* doc/posix-functions/stat.texi: Mention mingw64 bug.
2012-04-14 Bruno Haible <bruno@clisp.org>
pathmax: Fix compilation error on MSVC 9.
* modules/pathmax (Depends-on): Add unistd.
2012-04-12 Paul Eggert <eggert@cs.ucla.edu>
README: document pointer comparison assumption
* README (Portability guidelines): Document assumption about
pointer comparisons, in response to a recent bug-gnulib comment by
Jeffrey Kegler.
2012-04-12 Bruno Haible <bruno@clisp.org>
Tests for module 'getrusage'.
* modules/getrusage-tests: New file.
* tests/test-getrusage.c: New file.
New module 'getrusage'.
* lib/sys_resource.in.h: Include arg-nonnull.h, c++defs.h,
warn-on-use.h.
(getrusage): New declaration.
* lib/getrusage.c: New file.
* m4/getrusage.m4: New file.
* m4/sys_resource_h.m4 (gl_HEADER_SYS_RESOURCE): Test whether getrusage
is declared.
(gl_SYS_RESOURCE_H_DEFAULTS): Initialize GNULIB_GETRUSAGE,
HAVE_GETRUSAGE.
* modules/sys_resource (Depends-on): Add snippet/arg-nonnull,
snippet/c++defs, snippet/warn-on-use.
(Makefile.am): Update generation of sys/resource.h. Substitute
GNULIB_GETRUSAGE, HAVE_GETRUSAGE.
* modules/getrusage: New file.
* doc/posix-functions/getrusage.texi: Mention the new module.
2012-04-12 Bruno Haible <bruno@clisp.org>
Tests for module 'sys_resource'.
* modules/sys_resource-tests: New file.
* tests/test-sys_resource.c: New file.
New module 'sys_resource'.
* lib/sys_resource.in.h: New file.
* m4/sys_resource_h.m4: New file.
* modules/sys_resource: New file.
* doc/posix-headers/sys_resource.texi: Mention the new module.
2012-04-12 LRN <lrn1986@gmail.com> (tiny change)
ioctl: Fix compilation error on mingw.
* lib/ioctl.c: Include <windows.h>.
Also reported by Ray Satiro <raysatiro@yahoo.com>.
2012-04-04 Jim Meyering <meyering@redhat.com>
regex: correct #pragma guard expression
* lib/regex.c: -Wsuggest-attribute=pure was introduced in gcc-4.6,
not 4.3. Correct its cpp guard expression.
2012-04-04 Paul Eggert <eggert@cs.ucla.edu>
regex: remove unnecessary type punning
Problem reported by Vladimir Serbinenko in
<http://lists.gnu.org/r/bug-gnulib/2012-04/msg00006.html>.
* lib/regex.h (struct re_pattern_buffer): Change the type of
__REPB_PREFIX(buffer) from unsigned char * to struct re_dfa_t *.
Fix comment to match code.
* lib/regcomp.c (re_compile_fastmap, re_compile_fastmap_iter, regfree)
(re_compile_internal, free_workarea_compile, analyze, lower_subexp)
(parse, parse_reg_exp, parse_branch, parse_expression, parse_sub_exp):
* lib/regexec.c (regexec, re_search_stub, re_search_internal)
(set_regs):
Omit no-longer-necessary casts.
2012-04-03 Bruno Haible <bruno@clisp.org>
Tests for module 'ilogbl'.
* modules/ilogbl-tests: New file.
* tests/test-ilogbl.c: New file.
New module 'ilogbl'.
* lib/math.in.h (ilogbl): New declaration.
* lib/ilogbl.c: New file.
* m4/ilogbl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogbl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBL, HAVE_ILOGBL.
* modules/math (Makefile.am): Substitute GNULIB_ILOGBL, HAVE_ILOGBL.
Split sed invocation, to avoid the limit of 100 substitutions of
HP-UX 'sed'.
* modules/ilogbl: New file.
* tests/test-math-c++.cc: Check the declaration of ilogbl.
* doc/posix-functions/ilogbl.texi: Mention the new module.
2012-04-03 Bruno Haible <bruno@clisp.org>
Tests for module 'ilogbf'.
* modules/ilogbf-tests: New file.
* tests/test-ilogbf.c: New file.
New module 'ilogbf'.
* lib/math.in.h (ilogbf): New declaration.
* lib/ilogbf.c: New file.
* m4/ilogbf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogbf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBF, HAVE_ILOGBF,
REPLACE_ILOGBF.
* modules/math (Makefile.am): Substitute GNULIB_ILOGBF, HAVE_ILOGBF,
REPLACE_ILOGBF.
* modules/ilogbf: New file.
* tests/test-math-c++.cc: Check the declaration of ilogbf.
* doc/posix-functions/ilogbf.texi: Mention the new module.
2012-04-03 Bruno Haible <bruno@clisp.org>
Tests for module 'ilogb'.
* modules/ilogb-tests: New file.
* tests/test-ilogb.c: New file.
* tests/test-ilogb.h: New file, based on tests/test-logb.h and
tests/test-logb-ieee.h.
New module 'ilogb'.
* lib/math.in.h (ilogb): New declaration.
* lib/ilogb.c: New file.
* m4/ilogb.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ilogb is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGB, HAVE_ILOGB,
REPLACE_ILOGB.
* modules/math (Makefile.am): Substitute GNULIB_ILOGB, HAVE_ILOGB,
REPLACE_ILOGB.
* modules/ilogb: New file.
* tests/test-math-c++.cc: Check the declaration of ilogb.
* doc/posix-functions/ilogb.texi: Mention the new module.
2012-04-03 Bruno Haible <bruno@clisp.org>
math: Provide FP_ILOGB0 and FP_ILOGBNAN.
* lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Define fallback.
* tests/test-math.c: Check that FP_ILOGB0, FP_ILOGBNAN are defined.
(main): Check their values.
* doc/posix-headers/math.texi: Mention the FP_ILOGB0, FP_ILOGBNAN
problem.
2012-04-03 Bruno Haible <bruno@clisp.org>
Tests for module 'logbl-ieee'.
* modules/logbl-ieee-tests: New file.
* tests/test-logbl-ieee.c: New file.
New module 'logbl-ieee'.
* modules/logbl-ieee: New file.
Tests for module 'logb-ieee'.
* modules/logb-ieee-tests: New file.
* tests/test-logb-ieee.c: New file.
New module 'logb-ieee'.
* modules/logb-ieee: New file.
Tests for module 'logbf-ieee'.
* modules/logbf-ieee-tests: New file.
* tests/test-logbf-ieee.c: New file.
* tests/test-logb-ieee.h: New file.
New module 'logbf-ieee'.
* modules/logbf-ieee: New file.
2012-04-03 Bruno Haible <bruno@clisp.org>
Tests for module 'logbl'.
* modules/logbl-tests: New file.
* tests/test-logbl.c: New file.
New module 'logbl'.
* lib/math.in.h (logbl): New declaration.
* lib/logbl.c: New file.
* m4/logbl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logbl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBL, HAVE_LOGBL,
REPLACE_LOGBL.
* modules/math (Makefile.am): Substitute GNULIB_LOGBL, HAVE_LOGBL,
REPLACE_LOGBL.
* modules/logbl: New file.
* tests/test-math-c++.cc: Check the declaration of logbl.
* doc/posix-functions/logbl.texi: Mention the new module.
2012-04-02 Bruno Haible <bruno@clisp.org>
Tests for module 'logbf'.
* modules/logbf-tests: New file.
* tests/test-logbf.c: New file.
New module 'logbf'.
* lib/math.in.h (logbf): New declaration.
* lib/logbf.c: New file.
* m4/logbf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logbf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBF, HAVE_LOGBF,
REPLACE_LOGBF.
* modules/math (Makefile.am): Substitute GNULIB_LOGBF, HAVE_LOGBF,
REPLACE_LOGBF.
* modules/logbf: New file.
* tests/test-math-c++.cc: Check the declaration of logbf.
* doc/posix-functions/logbf.texi: Mention the new module.
2012-04-02 Bruno Haible <bruno@clisp.org>
logb tests: More tests.
* tests/test-logb.h: New file, based on tests/test-logb.c and
tests/test-frexp.h.
* tests/test-logb.c: Include minus-zero.h, test-logb.h.
(main): Just invoke test_function.
* modules/logb-tests (Files): Add tests/test-logb.h,
tests/minus-zero.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_logb_SOURCES.
logb: Provide replacement and workarounds.
* lib/math.in.h (logb): Ensure declaration. Replace if REPLACE_LOGB
is 1.
* lib/logb.c: New file.
* m4/logb.m4 (gl_FUNC_LOGB_WORKS): New macro.
(gl_FUNC_LOGB): Invoke it. Set HAVE_LOGB, REPLACE_LOGB.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGB.
* modules/math (Makefile.am): Substitute REPLACE_LOGB.
* modules/logb (Files): Add lib/logb.c.
(Depends-on): Add isfinite, frexp, isnand.
(configure.ac): Compile the replacement code logb.c if needed.
* tests/test-math-c++.cc: Check the declaration of logb.
* doc/posix-functions/logb.texi: Mention the replacement and the bug
with subnormal numbers.
2012-04-02 Bruno Haible <bruno@clisp.org>
log10* tests: Speed up.
* tests/test-log10.h (test_function): Reduce amount of random numbers
to test.
2012-04-01 Bruno Haible <bruno@clisp.org>
logf-ieee: Fix test whether logf works.
* m4/logf.m4 (gl_FUNC_LOGF): Fix typo in test program.
2012-04-01 Bruno Haible <bruno@clisp.org>
log10l: Work around log10l-ieee test failure on IRIX 6.5.
* lib/log10l.c: Include <float.h>
(log10l): On IRIX, normalize the +Infinity value.
* modules/log10l (Depends-on): Add 'float'.
* doc/posix-functions/log10l.texi: Mention the IRIX problem with
+Infinity.
log10f-ieee: Work around test failure on NetBSD 5.1.
* m4/log10f-ieee.m4: New file.
* m4/log10f.m4 (gl_FUNC_LOG10F): If gl_FUNC_LOG10F_IEEE is present,
test whether log10f works with a negative argument. Replace it if not.
* lib/log10f.c (log10f): For negative arguments, return NaN.
* modules/log10f-ieee (Files): Add m4/log10f-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG10F_IEEE.
* doc/posix-functions/log10f.texi: Mention the log10f-ieee module.
log10f-ieee: Work around test failure on Solaris 9.
* modules/log10f-ieee (Depends-on): Add log10-ieee.
(configure.ac): Require gl_FUNC_LOG10F.
log10-ieee: Work around test failure on NetBSD 5.1 and Solaris 11.
* m4/log10-ieee.m4: New file.
* m4/log10.m4 (gl_FUNC_LOG10): If gl_FUNC_LOG10_IEEE is present, test
whether log10 works with a negative argument. Replace it if not.
* lib/log10.c (log10): For negative arguments, return NaN.
* modules/log10-ieee (Files): Add m4/log10-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG10_IEEE.
* doc/posix-functions/log10.texi: Mention the log10-ieee module.
Tests for module 'log10l-ieee'.
* modules/log10l-ieee-tests: New file.
* tests/test-log10l-ieee.c: New file.
New module 'log10l-ieee'.
* modules/log10l-ieee: New file.
Tests for module 'log10-ieee'.
* modules/log10-ieee-tests: New file.
* tests/test-log10-ieee.c: New file.
New module 'log10-ieee'.
* modules/log10-ieee: New file.
Tests for module 'log10f-ieee'.
* modules/log10f-ieee-tests: New file.
* tests/test-log10f-ieee.c: New file.
* tests/test-log10-ieee.h: New file.
New module 'log10f-ieee'.
* modules/log10f-ieee: New file.
2012-04-01 Bruno Haible <bruno@clisp.org>
log10l: Work around AIX 5.1, IRIX 6.5, OSF/1 5.1 bug.
* lib/math.in.h (log10l): Override if REPLACE_LOG10L is 1.
* lib/log10l.c (log10l): If log10l exists, use it and provide just the
workaround.
* m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): New macro.
(gl_FUNC_LOG10L): Invoke it. Set REPLACE_LOG10L.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10L.
* modules/math (Makefile.am): Substitute REPLACE_LOG10L.
* modules/log10l (configure.ac): Consider REPLACE_LOG10L.
(Depends-on): Update conditions.
* doc/posix-functions/log10l.texi: Mention the MSVC9, AIX 5.1,
IRIX 6.5, OSF/1 5.1 problems.
2012-04-01 Bruno Haible <bruno@clisp.org>
log10f: Work around OSF/1 5.1 bug.
* lib/math.in.h (log10f): Override if REPLACE_LOG10F is 1.
* lib/log10f.c (log10f): If logf exists, use it and provide just the
workaround.
* m4/log10f.m4 (gl_FUNC_LOG10F_WORKS): New macro.
(gl_FUNC_LOG10F): Invoke it. Set REPLACE_LOG10F.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10F.
* modules/math (Makefile.am): Substitute REPLACE_LOG10F.
* modules/log10f (configure.ac): Consider REPLACE_LOG10F.
(Depends-on): Update conditions.
* doc/posix-functions/log10f.texi: Mention the OSF/1 5.1 problem.
2012-04-01 Bruno Haible <bruno@clisp.org>
log10: Work around OSF/1 5.1 bug.
* lib/math.in.h (log10): New declaration.
* lib/log10.c: New file.
* m4/log10.m4 (gl_FUNC_LOG10_WORKS): New macro.
(gl_FUNC_LOG10): Invoke it. Set REPLACE_LOG10.
* m4/math_h.m4 (gl_MATH_H): Test whether log10 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10, REPLACE_LOG10.
* modules/math (Makefile.am): Substitute GNULIB_LOG10, REPLACE_LOG10.
* modules/log10 (Files): Add lib/log10.c.
(Depends-on): Add math.
(configure.ac): If REPLACE_LOG10 is 1, compile an override.
* tests/test-math-c++.cc: Check the declaration of log10.
* doc/posix-functions/log10.texi: Mention the OSF/1 5.1 problem.
2012-03-31 Bruno Haible <bruno@clisp.org>
log10l tests: More tests.
* modules/log10l-tests (Files): Add tests/test-log10l.h,
tests/minus-zero.h, tests/randoml.c.
(Makefile.am): Add randoml.c to test_log10l_SOURCES.
* tests/test-log10l.c: Include <float.h>, minus-zero.h, test-log10l.h.
(main): Invoke test_function.
log10f tests: More tests.
* modules/log10f-tests (Files): Add tests/test-log10.h,
tests/minus-zero.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_log10f_SOURCES.
* tests/test-log10f.c: Include <float.h>, minus-zero.h, test-log10.h.
(main): Invoke test_function.
log10 tests: More tests.
* tests/test-log10.h: New file.
* modules/log10-tests (Files): Add tests/test-log10.h,
tests/minus-zero.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_log10_SOURCES.
* tests/test-log10.c: Include <float.h>, minus-zero.h, test-log10.h.
(main): Invoke test_function.
2012-03-31 Simon Josefsson <simon@josefsson.org>
fflush: Fix syntax error.
* lib/fflush.c: Include unused-parameter.h, needed for
_GL_UNUSED_PARAMETER.
* modules/fflush (Depends-on): Add snippet/unused-parameter.
2012-03-30 Paul Eggert <eggert@cs.ucla.edu>
regex: pacify GCC when compiling GRUB
* lib/regcomp.c (init_dfa): Make a pointer 'const', to avoid
a diagnostic. Reported by Vladimir Serbinenko in
<http://lists.gnu.org/r/bug-gnulib/2012-03/msg00163.html>.
2012-03-29 Eric Blake <eblake@redhat.com>
stdio: don't assume gets any more
* m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
support.
* modules/stdio (Makefile.am): Likewise.
* lib/stdio-read.c (gets): Likewise.
* tests/test-stdio-c++.cc: Likewise.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
* lib/stdio.in.h (gets): Make warning occur in more places.
* doc/posix-functions/gets.texi (gets): Update documentation.
Reported by Christer Solskogen.
maint.mk: fix syntax checks without exclusions
* top/maint.mk (_sc_search_regexp): Allow for empty variable.
Reported by Daniel P. Berrange.
strerror_r: avoid compiler warning
* lib/strerror_r.c (strerror_r): Hoist extern declaration to top
level.
fflush: avoid compiler warning
* lib/fflush.c (update_fpos_cache): Mark variables that are
potentially unused.
2012-03-25 Bruno Haible <bruno@clisp.org>
Tests for module 'localeconv'.
* modules/localeconv-tests: New file.
* tests/test-localeconv.c: New file.
New module 'localeconv'.
* lib/locale.in.h (localeconv): New declaration.
* lib/localeconv.c: New file.
* m4/localeconv.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALECONV,
REPLACE_LOCALECONV.
* modules/locale (Makefile.am): Substitute GNULIB_LOCALECONV,
REPLACE_LOCALECONV.
* modules/localeconv: New file.
* modules/nl_langinfo (Depends-on): Add localeconv.
* modules/human (Depends-on): Likewise.
* doc/posix-functions/localeconv.texi: Mention the new module.
2012-03-25 Bruno Haible <bruno@clisp.org>
locale: Provide a complete 'struct lconv'.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not contain int_p_cs_precedes.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Update.
locale: Provide a complete 'struct lconv' on Solaris 10, 11.
* m4/locale_h.m4 (gl_LOCALE_H): On Solaris, define _LCONV_C99.
* doc/posix-headers/locale.texi: Update.
locale: Provide a working 'struct lconv'.
* lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1.
* m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
'struct lconv' does not even contain decimal_point.
(gl_LOCALE_H_DEFAULTS): Initialize REPLACE_STRUCT_LCONV.
* modules/locale (Makefile.am): Substitute REPLACE_STRUCT_LCONV.
* tests/test-locale.c (main): Check that 'struct lconv' is complete.
* doc/posix-headers/locale.texi: Mention the problems with
'struct lconv'.
Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
2012-03-24 Bruno Haible <bruno@clisp.org>
Enable common subexpression optimization in GCC.
* lib/unitypes.in.h (_UC_ATTRIBUTE_CONST, _UC_ATTRIBUTE_PURE): New
macros.
* lib/unicase.in.h (uc_toupper, uc_tolower, uc_totitle): Declare with
GCC attribute 'const'.
(uc_locale_language): Declare with GCC attribute 'pure'.
* lib/unicase/caseprop.h (uc_is_cased, uc_is_case_ignorable): Declare
with GCC attribute 'const'.
* lib/unictype.in.h (uc_is_general_category_withtable,
uc_combining_class, uc_combining_class_name,
uc_combining_class_long_name, uc_bidi_class_name,
uc_bidi_category_name, uc_bidi_class_long_name, uc_bidi_class,
uc_bidi_category, uc_is_bidi_class, uc_is_bidi_category,
uc_decimal_value, uc_digit_value, uc_numeric_value,
uc_joining_type_name, uc_joining_type_long_name, uc_joining_type,
uc_joining_group_name, uc_joining_group, uc_is_property_*, uc_script,
uc_block, uc_is_c_whitespace, uc_is_java_whitespace,
uc_c_ident_category, uc_java_ident_category, uc_is_alnum, uc_is_alpha,
uc_is_cntrl, uc_is_digit, uc_is_graph, uc_is_lower, uc_is_print,
uc_is_punct, uc_is_space, uc_is_upper, uc_is_xdigit, uc_is_blank):
Declare with GCC attribute 'const'.
(uc_general_category_name, uc_general_category_long_name,
uc_general_category_byname, uc_general_category,
uc_is_general_category, uc_combining_class_byname,
uc_bidi_class_byname, uc_bidi_category_byname, uc_joining_type_byname,
uc_joining_group_byname, uc_script_byname, uc_is_script, uc_is_block):
Declare with GCC attribute 'pure'.
* lib/unigbrk.in.h (uc_graphemeclusterbreak_property,
uc_is_grapheme_break, u8_grapheme_next, u16_grapheme_next,
u32_grapheme_next, u8_grapheme_prev, u16_grapheme_prev,
u32_grapheme_prev, lib/uniname.in.h (unicode_name_character): Declare
with GCC attribute 'pure'.
* lib/uninorm.in.h (uc_composition): Declare with GCC attribute
'const'.
(uninorm_decomposing_form): Declare with GCC attribute 'pure'.
* lib/unistr.in.h (): Declare with GCC attribute 'const'.
(u8_check, u16_check, u32_check, u8_mblen, u16_mblen, u32_mblen,
u8_cmp, u16_cmp, u32_cmp, u8_cmp2, u16_cmp2, u32_cmp2, u8_chr, u16_chr,
u32_chr, u8_mbsnlen, u16_mbsnlen, u32_mbsnlen, u8_strmblen,
u16_strmblen, u32_strmblen, u8_strlen, u16_strlen, u32_strlen,
u8_strnlen, u16_strnlen, u32_strnlen, u8_strcmp_gnu, u8_strcmp,
u16_strcmp, u32_strcmp, u8_strncmp, u16_strncmp, u32_strncmp,
u8_strchr, u16_strchr, u32_strchr, u8_strrchr, u16_strrchr,
u32_strrchr, u8_strcspn, u16_strcspn, u32_strcspn, u8_strspn,
u16_strspn, u32_strspn, u8_strpbrk, u16_strpbrk, u32_strpbrk,
u8_strstr, u16_strstr, u32_strstr, u8_startswith, u16_startswith,
u32_startswith, u8_endswith, u16_endswith, u32_endswith): Declare with
GCC attribute 'pure'.
* lib/uniwbrk.in.h (uc_wordbreak_property): Declare with GCC attribute
'const'.
* lib/uniwidth.in.h (uc_width): Simplify declaration.
(u8_width, u16_width, u32_width, u8_strwidth, u16_strwidth,
u32_strwidth): Declare with GCC attribute 'pure'.
Enable common subexpression optimization in GCC.
* lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
(alphasort): Declare with GCC attribute 'pure'.
* lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
(atoll): Declare with GCC attribute 'pure'.
* lib/string.in.h (mbslen, mbsnlen, mbschr, mbsrchr, mbsstr,
mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk,
mbsspn, strverscmp): Declare with GCC attribute 'pure'.
* lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
(btowc, wctob, wcwidth, wmemchr, wmemcmp, wcslen, wcsnlen, wcscmp,
wcsncmp, wcscasecmp, wcsncasecmp, wcschr, wcsrchr, wcscspn, wcsspn,
wcspbrk, wcsstr, wcswidth): Declare with GCC attribute 'pure'.
2012-03-24 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid unintended error output from 'cmp'.
* gnulib-tool (func_add_file, func_update_file, func_import): Use
"cmp -s", not "cmp > /dev/null".
2012-03-23 Stefano Lattarini <stefano.lattarini@gmail.com>
gnulib-tool: fix imprecise comments w.r.t. an automake bug
It's not just Automake versions < 1.9b that creates an empty
pkgdatadir at installation time if pkgdata_DATA is specified
to empty; modern automake versions do this as well, at least
until automake 1.11.4 (not yet released at the moment of writing,
but soon to appear). That behaviour was generally considered a
feature rather than a bug, at least until this discussion:
<http://lists.gnu.org/r/automake/2012-03/msg00014.html>
See also automake bugs #10997 and #11030.
* gnulib-tool (func_emit_lib_Makefile_am): Adjust comments. Add
reference to relevant automake bug numbers.
(func_emit_tests_Makefile_am): Likewise.
2012-03-20 Reuben Thomas <rrt@sc3d.org>
announce-gen: use Digest::SHA when possible
* build-aux/announce-gen: Use Digest::SHA when possible, falling
back to Digest::SHA1 if necessary.
2012-03-20 Jim Meyering <meyering@redhat.com>
tests: avoid gcc warnings about argv vs. const initializers
* tests/test-posix_spawn1.c (main): Cast to "(char *)" to avoid two
warnings about discarding 'const' qualifier from pointer target type.
* tests/test-posix_spawn2.c (main): Likewise.
2012-03-20 Reuben Thomas <rrt@sc3d.org>
README-release: simplify slightly
* top/README-release: Run "git checkout master" only once.
2012-03-15 Mark Wielaard <mark@klomp.org>
git-merge-changelog: add specific example on how to use with hg.
* lib/git-merge-changelog.c: Add example on how to use in .hgrc.
2012-03-18 Mark Wielaard <mark@klomp.org>
lib/git-merge-changelog.c (status): Report bugs to bug-gnulib@gnu.org.
2012-03-18 Andreas Oberritter <obi@opendreambox.org>
git-version-gen: don't let "prefix" envvar cause trouble
* build-aux/git-version-gen (prefix): Initialize properly,
so as not to use a value specified via the environment.
Details here: http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10810
2012-03-16 Paul Eggert <eggert@cs.ucla.edu>
regex: diagnose too-large repeat counts in EREs
Previously, the code did not diagnose the too-large repeat count
in EREs like 'b{1000000000}'; instead, it silently treated the ERE
as if it were 'b\{1000000000}', which is unexpected.
* lib/regcomp.c (parse_dup_op): Fail with REG_ESIZE if a repeat count
is too large. REG_ESIZE is used nowhere else, and the diagnostic
is a reasonable one for this problem. Another option would be to
create a new REG_OVERFLOW error for repeat counts that are too large.
(fetch_number): Return RE_DUP_MAX + 1, not REG_ERROR, if the repeat
count is too large, so that the caller can distinguish the two cases.
* lib/regex.h (_REG_ESIZE): Document that this is now a generic
"Too large" return code, and that repeat counts are one example of this.
2012-03-16 Paul Eggert <eggert@cs.ucla.edu>
doc: some glibc x32 integer width issues
* doc/posix-headers/sys_types.texi (sys/types.h):
* doc/posix-headers/time.texi (time.h):
Mention that glibc x32 does not conform to POSIX in a couple of
areas related to integer widths.
2012-03-15 Bruno Haible <bruno@clisp.org>
fmal: Avoid test failure on OpenBSD 5.1/SPARC64.
* lib/fma.c (VOLATILE): New macro.
(FUNC): Use it to work around a GCC compiler bug.
2012-03-13 Bruno Haible <bruno@clisp.org>
hypotl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/hypotl.m4 (gl_FUNC_HYPOTL_WORKS): New macro.
(gl_FUNC_HYPOTL): Invoke it. If the function does not work, set
REPLACE_HYPOTL to 1.
* doc/posix-functions/hypotl.texi: Mention the OpenBSD 5.1/SPARC bug.
2012-03-13 Bruno Haible <bruno@clisp.org>
remainderl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): New macro.
(gl_FUNC_REMAINDERL): Invoke it. If the function does not work, set
REPLACE_REMAINDERL to 1.
* doc/posix-functions/remainderl.texi: Mention the OpenBSD 5.1/SPARC
bug.
2012-03-13 Bruno Haible <bruno@clisp.org>
sqrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* lib/math.in.h (sqrtl): Replace it if REPLACE_SQRTL is 1.
* m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): New macro.
(gl_FUNC_SQRTL): Invoke it. Set REPLACE_SQRTL to 1 if sqrtl() produces
too big rounding errors.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SQRTL.
* modules/math (Makefile.am): Substitute REPLACE_SQRTL.
* modules/sqrtl (configure.ac): Consider REPLACE_SQRTL.
(Depends-on): Update conditions.
* tests/test-sqrtl.c (my_ldexpl): New function.
(main): Add test of a particular value.
* doc/posix-functions/sqrtl.texi: Mention the OpenBSD 5.1/SPARC bug.
2012-03-13 Pádraig Brady <P@draigBrady.com>
doc: Update timer_* platform portability notes.
* doc/posix-functions/timer_create.texi: Add platforms (OpenBSD 4.9)
that always return ENOSYS.
* doc/posix-functions/timer_delete.texi: Likewise.
* doc/posix-functions/timer_gettime.texi: Likewise.
* doc/posix-functions/timer_settime.texi: Likewise.
2012-03-13 Bruno Haible <bruno@clisp.org>
cbrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
* m4/cbrtl.m4 (gl_FUNC_CBRTL_WORKS): New macro.
(gl_FUNC_CBRTL): Invoke it. If the function does not work, set
REPLACE_CBRTL to 1.
* doc/posix-functions/cbrtl.texi: Mention the OpenBSD 5.1/SPARC bug.
2012-03-13 Bruno Haible <bruno@clisp.org>
remainderl: Avoid compilation error on AIX >= 5.2.
* lib/math.in.h (remainderl): Undefine macro from the system header.
2012-03-13 Bruno Haible <bruno@clisp.org>
Avoid compilation errors with MSVC option -fp:strict.
* lib/cbrt.c: Use MSVC specific pragma fenv_access.
* lib/cbrtf.c: Likewise.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
2012-03-12 Bruno Haible <bruno@clisp.org>
uninorm: Don't crash in out-of-memory conditions.
* lib/uninorm/u-normalize-internal.h (FUNC): Handle malloc() failure
gracefully.
* lib/uninorm/uninorm-filter.c (uninorm_filter_write): Likewise.
Based on a report and patch by Stephen Gallagher <sgallagh@redhat.com>.
2012-03-13 Akim Demaille <akim@lrde.epita.fr>
quote: fix syntax-check
* top/maint.mk (sc_prohibit_quote_without_use): quote.h
also exports quote_quoting_options.
2012-03-12 Simon Josefsson <simon@josefsson.org>
Collapse list of copyright years to ranges. See
<https://lists.gnu.org/r/bug-gnulib/2012-03/msg00051.html>.
* build-aux/bootstrap.conf, build-aux/csharpcomp.sh.in,
build-aux/csharpexec.sh.in, build-aux/gnupload,
build-aux/install-reloc, build-aux/javacomp.sh.in,
build-aux/javaexec.sh.in, build-aux/ldd.sh.in,
build-aux/move-if-change, build-aux/reloc-ldflags,
build-aux/relocatable.sh.in, build-aux/x-to-1.in: Fix copyright.
2012-03-11 Bruno Haible <bruno@clisp.org>
log2f-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
* m4/log2f-ieee.m4: New file.
* m4/log2f.m4 (gl_FUNC_LOG2F): If gl_FUNC_LOG2F_IEEE is present, test
whether log2f works with a minus zero argument. Replace it if not.
* modules/log2f-ieee (Files): Add m4/log2f-ieee.m4.
(Depends-on): Add log2-ieee.
(configure.ac): Invoke gl_FUNC_LOG2F_IEEE.
* doc/posix-functions/log2f.texi: Mention the log2f-ieee module.
log2-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
* m4/log2-ieee.m4: New file.
* m4/log2.m4 (gl_FUNC_LOG2): If gl_FUNC_LOG2_IEEE is present, test
whether log2 works with a minus zero argument. Replace it if not.
* modules/log2-ieee (Files): Add m4/log2-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG2_IEEE.
* doc/posix-functions/log2.texi: Mention the log2-ieee module.
Tests for module 'log2l-ieee'.
* modules/log2l-ieee-tests: New file.
* tests/test-log2l-ieee.c: New file.
New module 'log2l-ieee'.
* modules/log2l-ieee: New file.
Tests for module 'log2-ieee'.
* modules/log2-ieee-tests: New file.
* tests/test-log2-ieee.c: New file.
New module 'log2-ieee'.
* modules/log2-ieee: New file.
Tests for module 'log2f-ieee'.
* modules/log2f-ieee-tests: New file.
* tests/test-log2f-ieee.c: New file.
* tests/test-log2-ieee.h: New file.
New module 'log2f-ieee'.
* modules/log2f-ieee: New file.
2012-03-11 Bruno Haible <bruno@clisp.org>
Tests for module 'log2l'.
* modules/log2l-tests: New file.
* tests/test-log2l.c: New file.
New module 'log2l'.
* lib/math.in.h (log2l): New declaration.
* lib/log2l.c: New file.
* m4/log2l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2L, HAVE_DECL_LOG2L,
REPLACE_LOG2L.
* modules/math (Makefile.am): Substitute GNULIB_LOG2L, HAVE_DECL_LOG2L,
REPLACE_LOG2L.
* modules/log2l: New file.
* tests/test-math-c++.cc: Check the declaration of log2l.
* doc/posix-functions/log2l.texi: Mention the new module and the IRIX
and OSF/1 problems.
2012-03-11 Bruno Haible <bruno@clisp.org>
Tests for module 'log2f'.
* modules/log2f-tests: New file.
* tests/test-log2f.c: New file.
New module 'log2f'.
* lib/math.in.h (log2f): New declaration.
* lib/log2f.c: New file.
* m4/log2f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2F, HAVE_DECL_LOG2F,
REPLACE_LOG2F.
* modules/math (Makefile.am): Substitute GNULIB_LOG2F, HAVE_DECL_LOG2F,
REPLACE_LOG2F.
* modules/log2f: New file.
* tests/test-math-c++.cc: Check the declaration of log2f.
* doc/posix-functions/log2f.texi: Mention the new module and the IRIX
and OSF/1 and Cygwin problems.
2012-03-11 Bruno Haible <bruno@clisp.org>
Tests for module 'log2'.
* modules/log2-tests: New file.
* tests/test-log2.c: New file.
* tests/test-log2.h: New file.
New module 'log2'.
* lib/math.in.h (log2): New declaration.
* lib/log2.c: New file.
* m4/log2.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log2 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2, HAVE_DECL_LOG2,
REPLACE_LOG2.
* modules/math (Makefile.am): Substitute GNULIB_LOG2, HAVE_DECL_LOG2,
REPLACE_LOG2.
* modules/log2: New file.
* tests/test-math-c++.cc: Check the declaration of log2.
* doc/posix-functions/log2.texi: Mention the new module and the IRIX
and OSF/1 and Cygwin problems.
2012-03-11 Bruno Haible <bruno@clisp.org>
exp2* tests: More tests.
* tests/test-exp2.h (test_function): Test all integral arguments that
don't need to overflow or denormalized numbers.
* tests/test-exp2.c (MAX_EXP, MIN_EXP): New macros.
* tests/test-exp2f.c (MAX_EXP, MIN_EXP): Likewise.
* tests/test-exp2l.c (MAX_EXP, MIN_EXP): Likewise.
2012-03-10 Bruno Haible <bruno@clisp.org>
log1pl-ieee: Work around test failure on AIX 7.1.
* modules/log1pl-ieee (Depends-on): Add log1p-ieee.
log1pl-ieee: Work around test failure on IRIX 6.5.
* m4/log1pl-ieee.m4: New file.
* m4/log1pl.m4 (gl_FUNC_LOG1PL): If gl_FUNC_LOG1PL_IEEE is present,
test whether log1pl works with a minus zero argument. Replace it if
not.
* lib/math.in.h (log1pl): Override if REPLACE_LOG1PL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1PL.
* modules/math (Makefile.am): Substitute REPLACE_LOG1PL.
* modules/log1pl (configure.ac): Consider REPLACE_LOG1PL.
(Depends-on): Update conditions.
* modules/log1pl-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1PL_IEEE.
* doc/posix-functions/log1pl.texi: Mention the log1pl-ieee module.
log1pf-ieee: Work around test failure on OpenBSD 4.9 and AIX 7.1.
* m4/log1pf-ieee.m4: New file.
* m4/log1pf.m4 (gl_FUNC_LOG1PF): If gl_FUNC_LOG1PF_IEEE is present,
test whether log1pf works with a minus zero argument. Replace it if
not.
* modules/log1pf-ieee (Files): Add m4/log1pf-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1PF_IEEE.
* doc/posix-functions/log1pf.texi: Mention the log1pf-ieee module.
log1pf-ieee: Work around test failure on AIX 5.1 and HP-UX 11.
* modules/log1pf-ieee (Depends-on): Add log1p-ieee.
(configure.ac): Require gl_FUNC_LOG1PF.
log1p-ieee: Work around test failure on AIX 7.1 and HP-UX 11.
* m4/log1p-ieee.m4: New file.
* m4/log1p.m4 (gl_FUNC_LOG1P): If gl_FUNC_LOG1P_IEEE is present, test
whether log1p works with a minus zero argument. Replace it if not.
* lib/math.in.h (log1p): Override if REPLACE_LOG1P is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1P.
* modules/math (Makefile.am): Substitute REPLACE_LOG1P.
* modules/log1p (configure.ac): Consider REPLACE_LOG1P.
(Depends-on): Update conditions.
* modules/log1p-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_LOG1P_IEEE.
* doc/posix-functions/log1p.texi: Mention the log1p-ieee module.
Tests for module 'log1pl-ieee'.
* modules/log1pl-ieee-tests: New file.
* tests/test-log1pl-ieee.c: New file.
New module 'log1pl-ieee'.
* modules/log1pl-ieee: New file.
Tests for module 'log1p-ieee'.
* modules/log1p-ieee-tests: New file.
* tests/test-log1p-ieee.c: New file.
New module 'log1p-ieee'.
* modules/log1p-ieee: New file.
Tests for module 'log1pf-ieee'.
* modules/log1pf-ieee-tests: New file.
* tests/test-log1pf-ieee.c: New file.
* tests/test-log1p-ieee.h: New file.
New module 'log1pf-ieee'.
* modules/log1pf-ieee: New file.
2012-03-10 Bruno Haible <bruno@clisp.org>
Tests for module 'log1pl'.
* modules/log1pl-tests: New file.
* tests/test-log1pl.c: New file.
New module 'log1pl'.
* lib/math.in.h (log1pl): New declaration.
* lib/log1pl.c: New file.
* m4/log1pl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log1pl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PL, HAVE_LOG1PL.
* modules/math (Makefile.am): Substitute GNULIB_LOG1PL, HAVE_LOG1PL.
* modules/log1pl: New file.
* tests/test-math-c++.cc: Check the declaration of log1pl.
* doc/posix-functions/log1pl.texi: Mention the new module.
2012-03-10 Bruno Haible <bruno@clisp.org>
Tests for module 'log1pf'.
* modules/log1pf-tests: New file.
* tests/test-log1pf.c: New file.
New module 'log1pf'.
* lib/math.in.h (log1pf): New declaration.
* lib/log1pf.c: New file.
* m4/log1pf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log1pf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PF, HAVE_LOG1PF,
REPLACE_LOG1PF.
* modules/math (Makefile.am): Substitute GNULIB_LOG1PF, HAVE_LOG1PF,
REPLACE_LOG1PF.
* modules/log1pf: New file.
* tests/test-math-c++.cc: Check the declaration of log1pf.
* doc/posix-functions/log1pf.texi: Mention the new module.
2012-03-10 Bruno Haible <bruno@clisp.org>
log1p tests: More tests.
* tests/test-log1p.h: New file.
* modules/log1p-tests (Files): Add tests/test-log1p.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_log1p_SOURCES.
* tests/test-log1p.c: Include <float.h> and test-log1p.h.
(main): Invoke test_function.
log1p: Provide replacement for Minix and MSVC.
* lib/math.in.h (log1p): New declaration.
* lib/log1p.c: New file.
* m4/log1p.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log1p is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1P, HAVE_LOG1P.
* modules/math (Makefile.am): Substitute GNULIB_LOG1P, HAVE_LOG1P.
* modules/log1p (Files): Add lib/log1p.c, m4/log1p.m4.
(Depends-on): Add math, isnand, log, round.
(configure.ac): Invoke gl_FUNC_LOG1P. Arrange to compile replacement if
HAVE_LOG1P is 0.
* tests/test-math-c++.cc: Check the declaration of log1p.
* doc/posix-functions/log1p.texi: Mention the replacement.
2012-03-10 Bruno Haible <bruno@clisp.org>
math tests: Small simplification.
* tests/test-exp.h (test_function): Use the same err_bound for
'double' on platforms with sizeof (long double) == sizeof (double)
than on platforms with sizeof (long double) > sizeof (double).
* tests/test-exp2.h (test_function): Likewise.
* tests/test-expm1.h (test_function): Likewise.
* tests/test-log.h (test_function): Likewise.
2012-03-10 Bruno Haible <bruno@clisp.org>
Fix some comments.
* lib/expl.c: Fix an ambiguous comment.
* lib/expm1.c: Likewise.
* lib/expm1l.c: Likewise.
* lib/exp2.c: Likewise.
* lib/exp2l.c: Likewise.
2012-03-10 Paul Eggert <eggert@cs.ucla.edu>
regex: allow inclusion of <regex.h> before <limits.h>
Without this patch, portable programs had to include <limits.h> before
<regex.h> if they wanted a consistent value for RE_DUP_MAX.
I ran into this problem with a test version of GNU grep on Solaris 8.
* lib/regex.h: Include <limits.h> if _REGEX_INCLUDE_LIMITS_H.
This is done conditionally so that this change can be merged
back to glibc.
* m4/regex.m4 (gl_REGEX): Define _REGEX_INCLUDE_LIMITS_H if
using the included regex.
fts: depend on fdopendir
* modules/fts (Depends-on): Depend on fdopendir. This is needed
on Solaris 8, at least, since it lacks fdopendir. Evidently the
problem was introduced when fdopendir was split out.
2012-03-10 Bruno Haible <bruno@clisp.org>
Remove unused variables.
* m4/fmodf.m4 (gl_FUNC_FMODF): Remove unused variable 'i'.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise.
2012-03-10 Bruno Haible <bruno@clisp.org>
isnanf-nolibm: Fix last commit.
* lib/isnanf-nolibm.h [IRIX]: Don't include <ieeefp.h>. Declare isnanf.
isnanf-nolibm: Make it work on IRIX 6.5 with cc.
* lib/isnanf-nolibm.h [IRIX]: Include <ieeefp.h>.
2012-03-10 Bruno Haible <bruno@clisp.org>
logf-ieee: Work around test failure on NetBSD 5.1.
* m4/logf-ieee.m4: New file.
* m4/logf.m4 (gl_FUNC_LOGF): If gl_FUNC_LOGF_IEEE is present, test
whether logf works with a negative argument. Replace it if not.
* lib/logf.c (logf): For negative arguments, return NaN.
* modules/logf-ieee (Files): Add m4/logf-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOGF_IEEE.
* doc/posix-functions/logf.texi: Mention the logf-ieee module.
logf-ieee: Work around test failure on Solaris 9.
* modules/logf-ieee (Depends-on): Add log-ieee.
(configure.ac): Require gl_FUNC_LOGF.
log-ieee: Work around test failure on NetBSD 5.1 and Solaris 11.
* m4/log-ieee.m4: New file.
* m4/log.m4 (gl_FUNC_LOG): If gl_FUNC_LOG_IEEE is present, test whether
log works with a negative argument. Replace it if not.
* lib/log.c (log): For negative arguments, return NaN.
* modules/log-ieee (Files): Add m4/log-ieee.m4.
(configure.ac): Invoke gl_FUNC_LOG_IEEE.
* doc/posix-functions/log.texi: Mention the log-ieee module.
Tests for module 'logl-ieee'.
* modules/logl-ieee-tests: New file.
* tests/test-logl-ieee.c: New file.
New module 'logl-ieee'.
* modules/logl-ieee: New file.
Tests for module 'log-ieee'.
* modules/log-ieee-tests: New file.
* tests/test-log-ieee.c: New file.
New module 'log-ieee'.
* modules/log-ieee: New file.
Tests for module 'logf-ieee'.
* modules/logf-ieee-tests: New file.
* tests/test-logf-ieee.c: New file.
* tests/test-log-ieee.h: New file.
New module 'logf-ieee'.
* modules/logf-ieee: New file.
2012-03-10 Bruno Haible <bruno@clisp.org>
log: Fix bug introduced on 2012-03-09.
* m4/log.m4 (gl_FUNC_LOG): Require gl_MATH_H_DEFAULTS.
2012-03-10 Pádraig Brady <P@draigBrady.com>
timer-time: link explicitly with pthreads on glibc
* m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread
to support static linking, when newer glibc is
detected, as that contains pthread emulation of
POSIX timer functions where required.
* modules/timer-time: Depend on threadlib to
pull in the appropriate library to link.
2012-03-10 Bruno Haible <bruno@clisp.org>
log* tests: More tests.
* tests/test-log.h: New file.
* tests/test-log.c: Include <float.h>, minus-zero.h, test-log.h.
(main): Invoke test_function.
* tests/test-logf.c: Include <float.h>, minus-zero.h, test-log.h.
(main): Invoke test_function.
* tests/test-logl.c: Include <float.h>, minus-zero.h, test-log.h.
(main): Invoke test_function.
* modules/log-tests (Files): Add tests/test-log.h, tests/minus-zero.h,
tests/randomd.c.
(Makefile.am): Add randomd.c to test_log_SOURCES.
* modules/logf-tests (Files): Add tests/test-log.h, tests/minus-zero.h,
tests/randomf.c.
(Makefile.am): Add randomf.c to test_logf_SOURCES.
* modules/logl-tests (Files): Add tests/test-log.h, tests/minus-zero.h,
tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_logl_SOURCES.
2012-03-09 Bruno Haible <bruno@clisp.org>
logl: Work around OSF/1 5.1 bug.
* lib/math.in.h (logl): Override if REPLACE_LOGL is 1.
* lib/logl.c (logl): If logl exists, use it and provide just the
workaround.
* m4/logl.m4 (gl_FUNC_LOGL_WORKS): New macro.
(gl_FUNC_LOGL): Invoke it. Set REPLACE_LOGL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGL.
* modules/math (Makefile.am): Substitute REPLACE_LOGL.
* modules/logl (configure.ac): Consider REPLACE_LOGL.
(Depends-on): Update conditions.
* doc/posix-functions/logl.texi: Mention the OSF/1 5.1 problem.
2012-03-09 Bruno Haible <bruno@clisp.org>
logf: Work around OSF/1 5.1 bug.
* lib/math.in.h (logf): Override if REPLACE_LOGF is 1.
* lib/logf.c (logf): If logf exists, use it and provide just the
workaround.
* m4/logf.m4 (gl_FUNC_LOGF_WORKS): New macro.
(gl_FUNC_LOGF): Invoke it. Set REPLACE_LOGF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGF.
* modules/math (Makefile.am): Substitute REPLACE_LOGF.
* modules/logf (configure.ac): Consider REPLACE_LOGF.
(Depends-on): Update conditions.
* doc/posix-functions/logf.texi: Mention the OSF/1 5.1 problem.
2012-03-09 Bruno Haible <bruno@clisp.org>
log: Work around OSF/1 5.1 bug.
* lib/math.in.h (log): New declaration.
* lib/log.c: New file.
* m4/log.m4 (gl_FUNC_LOG_WORKS): New macro.
(gl_FUNC_LOG): Invoke it. Set REPLACE_LOG.
* m4/math_h.m4 (gl_MATH_H): Test whether log is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG, REPLACE_LOG.
* modules/math (Makefile.am): Substitute GNULIB_LOG, REPLACE_LOG.
* modules/log (Files): Add lib/log.c.
(Depends-on): Add math.
(configure.ac): If REPLACE_LOG is 1, compile an override.
* tests/test-math-c++.cc: Check the declaration of log.
* doc/posix-functions/log.texi: Mention the OSF/1 5.1 problem.
2012-03-09 Jim Meyering <meyering@redhat.com>
readtokens.c: adjust wording in a comment
* lib/readtokens.c: Insert omitted "that" in a comment.
2012-03-08 Paul Eggert <eggert@cs.ucla.edu>
modechange: add notations +40, 00440, etc.
* lib/modechange.c (mode_compile): Support new notations
+40, -40, =440, 00440. See <http://debbugs.gnu.org/8391>.
2012-03-08 Bruno Haible <bruno@clisp.org>
exp2l-ieee: Work around test failure on OpenBSD 4.9 and IRIX 6.5.
* m4/exp2l-ieee.m4: New file.
* m4/exp2l.m4 (gl_FUNC_EXP2L): If gl_FUNC_EXP2L_IEEE is present,
test whether exp2l works with a NaN argument and with a negative
infinity argument. Replace it if not.
* lib/math.in.h (exp2l): Override if REPLACE_EXP2L is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXP2L.
* modules/math (Makefile.am): Substitute REPLACE_EXP2L.
* modules/exp2l (configure.ac): Consider REPLACE_EXP2L.
(Depends-on): Update conditions.
* modules/exp2l-ieee (Files): Add m4/exp2l-ieee.m4.
(configure.ac): Invoke gl_FUNC_EXP2L_IEEE.
* doc/posix-functions/exp2l.texi: Mention the exp2l-ieee module.
Tests for module 'exp2l-ieee'.
* modules/exp2l-ieee-tests: New file.
* tests/test-exp2l-ieee.c: New file.
New module 'exp2l-ieee'.
* modules/exp2l-ieee: New file.
Tests for module 'exp2-ieee'.
* modules/exp2-ieee-tests: New file.
* tests/test-exp2-ieee.c: New file.
New module 'exp2-ieee'.
* modules/exp2-ieee: New file.
Tests for module 'exp2f-ieee'.
* modules/exp2f-ieee-tests: New file.
* tests/test-exp2f-ieee.c: New file.
* tests/test-exp2-ieee.h: New file.
New module 'exp2f-ieee'.
* modules/exp2f-ieee: New file.
2012-03-08 Bruno Haible <bruno@clisp.org>
Tests for module 'exp2l'.
* modules/exp2l-tests: New file.
* tests/test-exp2l.c: New file.
New module 'exp2l'.
* lib/math.in.h (exp2l): New declaration.
* lib/exp2l.c: New file.
* lib/expl-table.c: New file, extracted from lib/expl.c.
* lib/expl.c (gl_expl_table): New declaration.
(expl): Remove expl_table. Update reference.
* m4/exp2l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2L, HAVE_DECL_EXP2L.
* modules/math (Makefile.am): Substitute GNULIB_EXP2L, HAVE_DECL_EXP2L.
* modules/exp2l: New file.
* modules/expl (Files): Add lib/expl-table.c.
(configure.ac): Compile also expl-table.c.
* tests/test-math-c++.cc: Check the declaration of exp2l.
* doc/posix-functions/exp2l.texi: Mention the new module and the IRIX
problem.
2012-03-08 Bruno Haible <bruno@clisp.org>
Tests for module 'exp2f'.
* modules/exp2f-tests: New file.
* tests/test-exp2f.c: New file.
New module 'exp2f'.
* lib/math.in.h (exp2f): New declaration.
* lib/exp2f.c: New file.
* m4/exp2f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2F, HAVE_DECL_EXP2F.
* modules/math (Makefile.am): Substitute GNULIB_EXP2F, HAVE_DECL_EXP2F.
* modules/exp2f: New file.
* tests/test-math-c++.cc: Check the declaration of exp2f.
* doc/posix-functions/exp2f.texi: Mention the new module and the
IRIX problem.
2012-03-08 Bruno Haible <bruno@clisp.org>
Tests for module 'exp2'.
* modules/exp2-tests: New file.
* tests/test-exp2.c: New file.
* tests/test-exp2.h: New file.
New module 'exp2'.
* lib/math.in.h (exp2): New declaration.
* lib/exp2.c: New file.
* m4/exp2.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether exp2 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2, HAVE_DECL_EXP2,
REPLACE_EXP2.
* modules/math (Makefile.am): Substitute GNULIB_EXP2, HAVE_DECL_EXP2,
REPLACE_EXP2.
* modules/exp2: New file.
* tests/test-math-c++.cc: Check the declaration of exp2.
* doc/posix-functions/exp2.texi: Mention the new module and the IRIX
and OpenBSD problems.
2012-03-08 Paul Eggert <eggert@cs.ucla.edu>
savedir: fix comment typo
* lib/savedir.c (savedirstream): Fix typo in comment.
2012-03-08 Bruno Haible <bruno@clisp.org>
test-readtokens.c: use const; remove unwarranted cast
* tests/test-readtokens.c: Declare delim to be const, to avoid a cast.
2012-03-08 Bruno Haible <bruno@clisp.org>
fmal: Avoid compilation error on AIX.
* lib/math.in.h (fmal): Undefine macro before declaration. Needed on
AIX 5.2..7.1.
2012-03-08 Bruno Haible <bruno@clisp.org>
fma, fmaf, fmal: Override undeclared system functions on IRIX 6.5.
* m4/fma.m4 (gl_FUNC_FMA): If fma() exists but is not declared,
arrange to set REPLACE_FMA=1, not HAVE_FMA=0.
* m4/fmaf.m4 (gl_FUNC_FMAF): If fmaf() exists but is not declared,
arrange to set REPLACE_FMAF=1, not HAVE_FMAF=0.
* m4/fmal.m4 (gl_FUNC_FMAL): If fmal() exists but is not declared,
arrange to set REPLACE_FMAL=1, not HAVE_FMAL=0.
2012-03-08 Bruno Haible <bruno@clisp.org>
remainderf: Override buggy system function on IRIX 6.5.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): New macro.
(gl_FUNC_REMAINDERF): Invoke it. Don't assume remainderf() is declared
when it exists.
* doc/posix-functions/remainderf.texi: Mention the IRIX problems.
2012-03-08 Jim Meyering <meyering@redhat.com>
test-readtokens.c: avoid const-related compilation warnings
* tests/test-readtokens.c: Avoid const-related compilation warnings.
2012-03-07 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
frexp-nolibm, frexpl-nolibm tests: Fix bug introduced on 2012-03-03.
* modules/frexp-nolibm-tests (Files): Add tests/test-frexp.h,
tests/randomd.c.
(Makefile.am): Add randomd.c to test_frexp_nolibm_SOURCES.
* modules/frexpl-nolibm-tests (Files): Add tests/test-frexp.h,
tests/randoml.c.
(Makefile.am): Add randoml.c to test_frexpl_nolibm_SOURCES.
2012-03-07 Bruno Haible <bruno@clisp.org>
expm1l: Avoid compilation error on AIX.
* lib/math.in.h (expm1l): Undefine macro before declaration. Needed on
AIX 5.2..7.1.
2012-03-07 Bruno Haible <bruno@clisp.org>
expm1l: Don't override undeclared system function on IRIX 6.5.
* lib/math.in.h (expm1l): Test HAVE_DECL_EXPM1L, not HAVE_EXPM1L.
* m4/expm1l.m4 (gl_FUNC_EXPM1L): Don't assume expm1l() is declared when
it exists. Set HAVE_DECL_EXPM1L.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_EXPM1L, not
HAVE_EXPM1L.
* modules/math (Makefile.am): Substitute HAVE_DECL_EXPM1L, not
HAVE_EXPM1L.
* doc/posix-functions/expm1l.texi: Mention missing declaration problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
remainderl: Don't override undeclared system function on IRIX 6.5.
* lib/math.in.h (remainderl): Test HAVE_DECL_REMAINDERL, not
HAVE_REMAINDERL.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't assume remainderl() is
declared when it exists. Set HAVE_DECL_REMAINDERL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_REMAINDERL,
not HAVE_REMAINDERL.
* modules/math (Makefile.am): Substitute HAVE_DECL_REMAINDERL, not
HAVE_REMAINDERL.
* doc/posix-functions/remainderl.texi: Mention missing declaration
problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
rintf: Don't override undeclared system function on IRIX 6.5.
* lib/math.in.h (rintf): Test HAVE_DECL_RINTF, not HAVE_RINTF.
* m4/rintf.m4 (gl_FUNC_RINTF): Don't assume rintf() is declared when it
exists. Set HAVE_DECL_RINTF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_RINTF, not
HAVE_RINTF.
* modules/math (Makefile.am): Substitute HAVE_DECL_RINTF, not
HAVE_RINTF.
* doc/posix-functions/rintf.texi: Mention missing declaration problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
roundl: Avoid compilation error on AIX.
* lib/math.in.h (roundl): Undefine macro before declaration. Needed on
AIX 5.2..7.1.
2012-03-07 Bruno Haible <bruno@clisp.org>
roundl: Don't override undeclared system function on IRIX 6.5.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Search for roundl() in the libraries
also when it is not declared. Set HAVE_ROUNDL. For replacement code,
test HAVE_ROUNDL, not HAVE_DECL_ROUNDL.
* modules/roundl (configure.ac): For replacement code, test
HAVE_ROUNDL, not HAVE_DECL_ROUNDL.
(Depends-on): Update conditions.
* doc/posix-functions/roundl.texi: Mention the IRIX problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
roundf: Don't override undeclared system function on IRIX 6.5.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Search for roundf() in the libraries
also when it is not declared. Set HAVE_ROUNDF. For replacement code,
test HAVE_ROUNDF, not HAVE_DECL_ROUNDF.
* modules/roundf (configure.ac): For replacement code, test
HAVE_ROUNDF, not HAVE_DECL_ROUNDF.
(Depends-on): Update conditions.
* modules/roundf-ieee (Depends-on): Update conditions.
* doc/posix-functions/roundf.texi: Mention the IRIX problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
round: Don't override undeclared system function on IRIX 6.5.
* m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Accept an optional third
argument.
* m4/round.m4 (gl_FUNC_ROUND): Search for round() in the libraries
also when it is not declared. Set HAVE_ROUND. For replacement code,
test HAVE_ROUND, not HAVE_DECL_ROUND.
* modules/round (configure.ac): For replacement code, test HAVE_ROUND,
not HAVE_DECL_ROUND.
(Depends-on): Update conditions.
* modules/round-ieee (Depends-on): Update conditions.
* doc/posix-functions/round.texi: Mention the IRIX problem.
2012-03-07 Bruno Haible <bruno@clisp.org>
copysignf: Don't override undeclared system function on IRIX 6.5.
* lib/math.in.h (copysignf): Test HAVE_DECL_COPYSIGNF, not
HAVE_COPYSIGNF.
* m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Don't assume copysignf() is
declared when it exists. Set HAVE_DECL_COPYSIGNF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_COPYSIGNF,
not HAVE_COPYSIGNF.
* modules/math (Makefile.am): Substitute HAVE_DECL_COPYSIGNF, not
HAVE_COPYSIGNF.
* doc/posix-functions/copysignf.texi: Mention missing declaration
problem.
2012-03-07 Jim Meyering <meyering@redhat.com>
readtokens: add tests
* modules/readtokens-tests: New file.
* tests/test-readtokens.c: New file.
2012-03-07 Jim Meyering <meyering@redhat.com>
quotearg: the module must now include quote.h
With commit v0.0-7133-g6417476, quotearg.c includes "quote.h".
So must the module.
* modules/quotearg (Files): Add quote.h.
2012-03-06 Paul Eggert <eggert@cs.ucla.edu>
readtokens: avoid core dumps with unusual calling patterns
Reported by Xu Zhongxing in <http://debbugs.gnu.org/10953>.
* lib/readtokens.c: Include limits.h.
(word, bits_per_word, get_nth_bit, set_nth_bit): New.
(readtoken): Don't cache the delimiters; the cache code was buggy
if !delim && saved_delim, or if the new n_delim differs from the old.
Also, it wasn't thread-safe.
2012-03-07 Bruno Haible <bruno@clisp.org>
quote: Adhere to common module description layout.
* modules/quote (Makefile.am): Add back empty section.
2012-03-06 Akim Demaille <demaille@gostai.com>
quote: fuse into quotearg
This patch is made for the benefit of Bison.
quote does not leave the choice of the quoting style to the user.
quoting_style provides poor customizability, yet quoting_options,
which is very rich, is hidden inside quotearg.c. So in order to
allow quote customization, move its implementation to quotearg.c.
* lib/quote.c: Remove.
* modules/quote: Adjust.
* lib/quotearg.c (quoting_options_from_style): Fix a compiler
warning: provide all the members of literal structs.
(quote_quoting_options): New.
(quote, quote_n): Import implementation from quote.c.
* lib/quote.h: Import the comments from quote.c.
(quote_quoting_options): New.
2012-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'expm1l-ieee'.
* modules/expm1l-ieee-tests: New file.
* tests/test-expm1l-ieee.c: New file.
New module 'expm1l-ieee'.
* modules/expm1l-ieee: New file.
Tests for module 'expm1f-ieee'.
* modules/expm1f-ieee-tests: New file.
* tests/test-expm1f-ieee.c: New file.
New module 'expm1f-ieee'.
* modules/expm1f-ieee: New file.
Tests for module 'expm1-ieee'.
* modules/expm1-ieee-tests: New file.
* tests/test-expm1-ieee.c: New file.
* tests/test-expm1-ieee.h: New file.
New module 'expm1-ieee'.
* modules/expm1-ieee: New file.
* m4/expm1-ieee.m4: New file.
* m4/expm1.m4 (gl_FUNC_EXPM1): If gl_FUNC_EXPM1_IEEE is present, test
whether expm1 works with a minus zero argument. Replace it if not.
* lib/math.in.h (expm1): Override if REPLACE_EXPM1 is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1.
* modules/math (Makefile.am): Substitute REPLACE_EXPM1.
* modules/expm1 (configure.ac): Consider REPLACE_EXPM1.
(Depends-on): Update conditions.
* doc/posix-functions/expm1.texi: Mention the expm1-ieee module and the
AIX problem.
2012-03-06 Bruno Haible <bruno@clisp.org>
Work around expm1f bug on IRIX 6.5.
* lib/math.in.h (expm1f): Override if REPLACE_EXPM1F is 1.
* m4/expm1f.m4 (gl_FUNC_EXPM1F_WORKS): New macro.
(gl_FUNC_EXPM1F): Invoke it. Set REPLACE_EXPM1F to 1 if expm1f() does
not work.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1F.
* modules/math (Makefile.am): Substitute REPLACE_EXPM1F.
* modules/expm1f (configure.ac): Consider REPLACE_EXPM1F.
(Depends-on): Update conditions.
* doc/posix-functions/expm1f.texi: Mention the IRIX 6.5 bug.
2012-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'expm1l'.
* modules/expm1l-tests: New file.
* tests/test-expm1l.c: New file.
New module 'expm1l'.
* lib/math.in.h (expm1l): New declaration.
* lib/expm1l.c: New file.
* m4/expm1l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether expm1l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1L, HAVE_EXPM1L.
* modules/math (Makefile.am): Substitute GNULIB_EXPM1L, HAVE_EXPM1L.
* modules/expm1l: New file.
* tests/test-math-c++.cc: Check the declaration of expm1l.
* doc/posix-functions/expm1l.texi: Mention the new module.
2012-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'expm1f'.
* modules/expm1f-tests: New file.
* tests/test-expm1f.c: New file.
New module 'expm1f'.
* lib/math.in.h (expm1f): New declaration.
* lib/expm1f.c: New file.
* m4/expm1f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether expm1f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1F, HAVE_EXPM1F.
* modules/math (Makefile.am): Substitute GNULIB_EXPM1F, HAVE_EXPM1F.
* modules/expm1f: New file.
* tests/test-math-c++.cc: Check the declaration of expm1f.
* doc/posix-functions/expm1f.texi: Mention the new module.
2012-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'expm1'.
* modules/expm1-tests: New file.
* tests/test-expm1.c: New file.
* tests/test-expm1.h: New file.
New module 'expm1'.
* lib/math.in.h (expm1): New declaration.
* lib/expm1.c: New file.
* m4/expm1.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether expm1 is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1, HAVE_EXPM1.
* modules/math (Makefile.am): Substitute GNULIB_EXPM1, HAVE_EXPM1.
* modules/expm1: New file.
* tests/test-math-c++.cc: Check the declaration of expm1.
* doc/posix-functions/expm1.texi: Mention the new module.
2012-03-06 Bruno Haible <bruno@clisp.org>
math: Ensure declarations of math functions.
* modules/acosf (Depends-on): Add 'extensions'.
* modules/asinf (Depends-on): Likewise.
* modules/atan2f (Depends-on): Likewise.
* modules/atanf (Depends-on): Likewise.
* modules/cbrt (Depends-on): Likewise.
* modules/cbrtf (Depends-on): Likewise.
* modules/cbrtl (Depends-on): Likewise.
* modules/copysignf (Depends-on): Likewise.
* modules/copysignl (Depends-on): Likewise.
* modules/cosf (Depends-on): Likewise.
* modules/coshf (Depends-on): Likewise.
* modules/expf (Depends-on): Likewise.
* modules/fabsf (Depends-on): Likewise.
* modules/fabsl (Depends-on): Likewise.
* modules/fmaf (Depends-on): Likewise.
* modules/fmal (Depends-on): Likewise.
* modules/fmodf (Depends-on): Likewise.
* modules/fmodl (Depends-on): Likewise.
* modules/frexpf (Depends-on): Likewise.
* modules/frexpl (Depends-on): Likewise.
* modules/hypot (Depends-on): Likewise.
* modules/hypotf (Depends-on): Likewise.
* modules/hypotl (Depends-on): Likewise.
* modules/ldexpf (Depends-on): Likewise.
* modules/ldexpl (Depends-on): Likewise.
* modules/log10f (Depends-on): Likewise.
* modules/log10l (Depends-on): Likewise.
* modules/log1p (Depends-on): Likewise.
* modules/logb (Depends-on): Likewise.
* modules/logf (Depends-on): Likewise.
* modules/modff (Depends-on): Likewise.
* modules/modfl (Depends-on): Likewise.
* modules/powf (Depends-on): Likewise.
* modules/remainderf (Depends-on): Likewise.
* modules/remainderl (Depends-on): Likewise.
* modules/rintf (Depends-on): Likewise.
* modules/rintl (Depends-on): Likewise.
* modules/sinf (Depends-on): Likewise.
* modules/sinhf (Depends-on): Likewise.
* modules/sqrtf (Depends-on): Likewise.
* modules/tanf (Depends-on): Likewise.
* modules/tanhf (Depends-on): Likewise.
* m4/acosf.m4 (gl_FUNC_ACOSF): Require gl_USE_SYSTEM_EXTENSIONS.
* m4/asinf.m4 (gl_FUNC_ASINF): Likewise.
* m4/atan2f.m4 (gl_FUNC_ATAN2F): Likewise.
* m4/atanf.m4 (gl_FUNC_ATANF): Likewise.
* m4/cbrt.m4 (gl_FUNC_CBRT): Likewise.
* m4/cbrtf.m4 (gl_FUNC_CBRTF): Likewise.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise.
* m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Likewise.
* m4/copysignl.m4 (gl_FUNC_COPYSIGNL): Likewise.
* m4/cosf.m4 (gl_FUNC_COSF): Likewise.
* m4/coshf.m4 (gl_FUNC_COSHF): Likewise.
* m4/expf.m4 (gl_FUNC_EXPF): Likewise.
* m4/fabsf.m4 (gl_FUNC_FABSF): Likewise.
* m4/fabsl.m4 (gl_FUNC_FABSL): Likewise.
* m4/fmaf.m4 (gl_FUNC_FMAF): Likewise.
* m4/fmal.m4 (gl_FUNC_FMAL): Likewise.
* m4/fmodf.m4 (gl_FUNC_FMODF): Likewise.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/frexpf.m4 (gl_FUNC_FREXPF): Likewise.
* m4/frexpl.m4 (gl_FUNC_FREXPL): Likewise.
* m4/hypot.m4 (gl_FUNC_HYPOT): Likewise.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise.
* m4/ldexpf.m4 (gl_FUNC_LDEXPF): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Likewise.
* m4/log10f.m4 (gl_FUNC_LOG10F): Likewise.
* m4/log10l.m4 (gl_FUNC_LOF10L): Likewise.
* m4/logb.m4 (gl_FUNC_LOGB): Likewise.
* m4/logf.m4 (gl_FUNC_LOGF): Likewise.
* m4/modff.m4 (gl_FUNC_MODFF): Likewise.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
* m4/powf.m4 (gl_FUNC_POWF): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise.
* m4/rintf.m4 (gl_FUNC_RINTF): Likewise.
* m4/rintl.m4 (gl_FUNC_RINTL): Likewise.
* m4/sinf.m4 (gl_FUNC_SINF): Likewise.
* m4/sinhf.m4 (gl_FUNC_SINHF): Likewise.
* m4/sqrtf.m4 (gl_FUNC_SQRTF): Likewise.
* m4/tanf.m4 (gl_FUNC_TANF): Likewise.
* m4/tanhf.m4 (gl_FUNC_TANHF): Likewise.
2012-03-06 Bruno Haible <bruno@clisp.org>
math: Update module names in warnings.
* lib/math.in.h (acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl,
tanl): Use specific module name in warn-on-use warning.
2012-03-06 Bruno Haible <bruno@clisp.org>
expl: Simplify computation.
* lib/expl.c (expl): Simplify computation of exp_y. Fix comment.
2012-03-05 Bruno Haible <bruno@clisp.org>
exp* tests: More tests.
* tests/test-exp.h: New file.
* tests/test-exp.c: Include <float.h> and test-exp.h.
(main): Invoke test_function.
* tests/test-expf.c: Include <float.h> and test-exp.h.
(main): Invoke test_function.
* tests/test-expl.c: Include <float.h> and test-exp.h.
(main): Invoke test_function.
* modules/exp-tests (Files): Add tests/test-exp.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_exp_SOURCES.
* modules/expf-tests (Files): Add tests/test-exp.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_expf_SOURCES.
* modules/expl-tests (Files): Add tests/test-exp.h, tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_expl_SOURCES.
expl: Fix precision of computed result.
* lib/expl.c: Completely rewritten.
* modules/expl (Depends-on): Add isnanl, roundl, ldexpl. Remove floorl.
(Maintainer): Add me.
* m4/expl.m4 (gl_FUNC_EXPL): Update computation of EXPL_LIBM.
2012-03-05 Bruno Haible <bruno@clisp.org>
cbrt* tests: More tests.
* tests/test-cbrt.h: New file.
* tests/test-cbrt.c: Include <float.h> and test-cbrt.h.
(main): Invoke test_function.
* tests/test-cbrtf.c: Include <float.h> and test-cbrt.h.
(main): Invoke test_function.
* tests/test-cbrtl.c: Include <float.h> and test-cbrt.h.
(main): Invoke test_function.
* modules/cbrt-tests (Files): Add tests/test-cbrt.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_cbrt_SOURCES.
* modules/cbrtf-tests (Files): Add tests/test-cbrt.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_cbrtf_SOURCES.
* modules/cbrtl-tests (Files): Add tests/test-cbrt.h, tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_cbrtl_SOURCES.
2012-03-05 Bruno Haible <bruno@clisp.org>
hypot* tests: More tests.
* tests/test-hypot.h: New file, partially extracted from
tests/test-hypotl.c.
* tests/test-hypot.c: Include test-hypot.h.
(main): Invoke test_function.
* tests/test-hypotf.c: Include test-hypot.h.
(main): Invoke test_function.
* tests/test-hypotl.c: Include fpucw.h and test-hypot.h.
(main): Invoke BEGIN_LONG_DOUBLE_ROUNDING and test_function.
* modules/hypot-tests (Files): Add tests/test-hypot.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_hypot_SOURCES.
* modules/hypotf-tests (Files): Add tests/test-hypot.h,
tests/randomf.c.
(Makefile.am): Add randomf.c to test_hypotf_SOURCES.
* modules/hypotl-tests (Files): Add tests/test-hypot.h,
tests/randoml.c.
(Depends-on): Add 'fpucw', 'float'.
(Makefile.am): Add randoml.c to test_hypotl_SOURCES.
2012-03-05 Bruno Haible <bruno@clisp.org>
fpucw: Doc about FreeBSD.
* lib/fpucw.h: Mention FreeBSD in comments.
2012-03-04 Bruno Haible <bruno@clisp.org>
sqrt* tests: More tests.
* tests/test-sqrt.h: New file.
* tests/test-sqrt.c: Include <float.h> and test-sqrt.h.
(main): Invoke test_function.
* tests/test-sqrtf.c: Include <float.h> and test-sqrt.h.
(main): Invoke test_function.
* tests/test-sqrtl.c: Include <float.h> and test-sqrt.h.
(main): Invoke test_function.
* modules/sqrt-tests (Files): Add tests/test-sqrt.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_sqrt_SOURCES.
* modules/sqrtf-tests (Files): Add tests/test-sqrt.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_sqrtf_SOURCES.
* modules/sqrtl-tests (Files): Add tests/test-sqrt.h, tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_sqrtl_SOURCES.
2012-03-04 Bruno Haible <bruno@clisp.org>
remainder* tests: More tests.
* tests/test-remainder.h: New file, based on tests/test-fmod.h.
* tests/test-remainder.c: Include <float.h> and test-remainder.h.
(main): Invoke test_function.
* tests/test-remainderf.c: Include <float.h> and test-remainder.h.
(main): Invoke test_function.
* tests/test-remainderl.c: Include <float.h> and test-remainder.h.
(main): Invoke test_function.
* modules/remainder-tests (Files): Add tests/test-remainder.h,
tests/randomd.c.
(Makefile.am): Add randomd.c to test_remainder_SOURCES.
* modules/remainderf-tests (Files): Add tests/test-remainder.h,
tests/randomf.c.
(Makefile.am): Add randomf.c to test_remainderf_SOURCES.
* modules/remainderl-tests (Files): Add tests/test-remainder.h,
tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_remainderl_SOURCES.
2012-03-04 Bruno Haible <bruno@clisp.org>
remainder, remainderf, remainderl: Fix computation for large quotients.
* lib/remainder.c: Completely rewritten.
* lib/remainderf.c (remainderf): Use implementation of remainder.c with
USE_FLOAT.
* lib/remainderl.c (remainderl): Use implementation of remainder.c with
USE_LONG_DOUBLE.
* modules/remainder (Depends-on): Add isfinite, signbit, fabs, fmod,
isnand, isinf. Remove round, fma.
* modules/remainderf (Files): Add lib/remainder.c.
(Depends-on): Add isfinite, signbit, fabsf, fmodf, isnanf, isinf.
Remove roundf, fmaf.
* modules/remainderl (Files): Add lib/remainder.c.
(Depends-on): Add float, isfinite, signbit, fabsl, fmodl, isnanl,
isinf. Remove roundl, fmal.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Update computation of
REMAINDER_LIBM.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): Update computation of
REMAINDERF_LIBM.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Update computation of
REMAINDERL_LIBM.
2012-03-04 Bruno Haible <bruno@clisp.org>
fmod* tests: More tests.
* tests/test-fmod.h (my_ldexp): New function.
(test_function): Reduce amount of random numbers to test. Add tests
of very large quotients x / y.
* tests/test-fmod.c (MAX_EXP): New macro.
* tests/test-fmodf.c (MAX_EXP): Likewise.
* tests/test-fmodl.c (MAX_EXP): Likewise.
2012-03-04 Bruno Haible <bruno@clisp.org>
fmod, fmodl: Fix computation for large quotients x / y.
* lib/fmod.c: Completely rewritten.
* lib/fmodl.c (fmodl): Use implementation of fmod.c with
USE_LONG_DOUBLE.
* modules/fmod (Depends-on): Add isfinite, signbit, fabs, frexp, ldexp,
isnand. Remove fma.
* modules/fmodl (Files): Add lib/fmod.c.
(Depends-on): Add float, isfinite, signbit, fabsl,
frexpl, ldexpl, isnanl. Remove fma.
* m4/fmod.m4 (gl_FUNC_FMOD): Update computation of FMOD_LIBM.
* m4/fmodl.m4 (gl_FUNC_FMODL): Update computation of FMODL_LIBM.
2012-03-03 Bruno Haible <bruno@clisp.org>
fmod* tests: More tests.
* tests/test-fmod.h: New file.
* tests/test-fmod.c: Include <float.h> and test-fmod.h.
(main): Invoke test_function.
* tests/test-fmodf.c: Include <float.h> and test-fmod.h.
(main): Invoke test_function.
* tests/test-fmodl.c: Include <float.h> and test-fmod.h.
(main): Invoke test_function.
* modules/fmod-tests (Files): Add tests/test-fmod.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_fmod_SOURCES.
* modules/fmodf-tests (Files): Add tests/test-fmod.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_fmodf_SOURCES.
* modules/fmodl-tests (Files): Add tests/test-fmod.h, tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_fmodl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
rint* tests: More tests.
* tests/test-rint.h: New file, partially extracted from
tests/test-rintl.c.
* tests/test-rint.c: Include test-rint.h.
(main): Invoke test_function.
* tests/test-rintf.c: Include test-rint.h.
(main): Invoke test_function.
* tests/test-rintl.c: Include test-rint.h.
(main): Invoke test_function.
* modules/rint-tests (Files): Add tests/test-rint.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_rint_SOURCES.
* modules/rintf-tests (Files): Add tests/test-rint.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_rintf_SOURCES.
* modules/rintl-tests (Files): Add tests/test-rint.h, tests/randoml.c.
(Makefile.am): Add randoml.c to test_rintl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
modf* tests: More tests.
* tests/test-modf.h: New file.
* tests/test-modf.c: Include <float.h> and test-modf.h.
(main): Invoke test_function.
* tests/test-modff.c: Include <float.h> and test-modf.h.
(main): Invoke test_function.
* tests/test-modfl.c: Include <float.h> and test-modf.h.
(main): Invoke test_function.
* modules/modf-tests (Files): Add tests/test-modf.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_modf_SOURCES.
* modules/modff-tests (Files): Add tests/test-modf.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_modff_SOURCES.
* modules/modfl-tests (Files): Add tests/test-modf.h, tests/randoml.c.
(Depends-on): Add 'float'.
(Makefile.am): Add randoml.c to test_modfl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
fabs* tests: More tests.
* tests/test-fabs.h: New file, partially extracted from
tests/test-fabsl.c.
* tests/test-fabs.c (RANDOM): New macro.
* tests/test-fabsf.c (RANDOM): New macro.
* tests/test-fabsl.c (RANDOM): New macro.
* modules/fabs-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_fabs_SOURCES.
* modules/fabsf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_fabsf_SOURCES.
* modules/fabsl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_fabsl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
ldexp* tests: More tests.
* tests/test-ldexp.h (test_function): Add some pseudo-randomized tests.
* tests/test-ldexp.c (RANDOM): New macro.
* tests/test-ldexpf.c (RANDOM): New macro.
* tests/test-ldexpl.c (RANDOM): New macro.
* modules/ldexp-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_ldexp_SOURCES.
* modules/ldexpf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_ldexpf_SOURCES.
* modules/ldexpl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_ldexpl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
frexp* tests: More tests.
* tests/test-frexp.h (test_function): Add some pseudo-randomized tests.
* tests/test-frexp.c (RANDOM): New macro.
* tests/test-frexpf.c (RANDOM): New macro.
* tests/test-frexpl.c (RANDOM): New macro.
* modules/frexp-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_frexp_SOURCES.
* modules/frexpf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_frexpf_SOURCES.
* modules/frexpl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_frexpl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
Support for pseudo-random numbers in tests.
* tests/randomf.c: New file.
* tests/randomd.c: New file.
* tests/randoml.c: New file.
* tests/macros.h (randomf, randomd, randoml): New declarations.
2012-03-03 Bruno Haible <bruno@clisp.org>
frexp* tests: Refactor.
* tests/test-frexp.h: New file, extracted from tests/test-frexpl.c.
* tests/test-frexp.c: Include and use it.
* tests/test-frexpf.c: Likewise.
* tests/test-frexpl.c: Likewise.
* modules/frexp-tests (Files): Add tests/test-frexp.h.
* modules/frexpf-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
2012-03-02 Jim Meyering <meyering@redhat.com>
maint: don't specify XZ_OPT=-9ev in dist-related rule
Using xz's -9 option is warranted only if you have a very large
tarball (see xz's documentation for the sizes vs. presets), and
requires 64MiB of memory at decompression time.
* top/maint.mk (alpha beta stable): Don't specify XZ_OPT=-9ev.
Automake's default of just "-e" is fine. Override on a
per-package basis by setting XZ_OPT e.g., in cfg.mk.
2012-03-01 Eric Blake <eblake@redhat.com>
maint.mk: allow announcement for non-gnulib project
* maint.mk (announcement): Skip gnulib version if not used.
2012-03-01 Jim Meyering <meyering@redhat.com>
maint.mk: avoid spurious failure of _sc_search_regexp-using tests
* top/maint.mk: Initialize _sc_search_regexp parameters, so that
envvar settings cannot interfere. Otherwise, setting envvars like
prohibit=foo require=bar, etc. would cause spurious test failures.
2012-03-01 Eric Blake <eblake@redhat.com>
maint.mk: add per-line exclusions to prohibitions
* maint.mk (_sc_search_regexp): Add $exclude parameter.
(sc_prohibit_strcmp, sc_unmarked_diagnostics)
(sc_const_long_option): Use it.
2012-03-01 Bruno Haible <bruno@clisp.org>
Tests for module 'expl-ieee'.
* modules/expl-ieee-tests: New file.
* tests/test-expl-ieee.c: New file.
New module 'expl-ieee'.
* modules/expl-ieee: New file.
Tests for module 'exp-ieee'.
* modules/exp-ieee-tests: New file.
* tests/test-exp-ieee.c: New file.
New module 'exp-ieee'.
* modules/exp-ieee: New file.
Tests for module 'expf-ieee'.
* modules/expf-ieee-tests: New file.
* tests/test-expf-ieee.c: New file.
* tests/test-exp-ieee.h: New file.
New module 'expf-ieee'.
* modules/expf-ieee: New file.
2012-02-29 Bruno Haible <bruno@clisp.org>
cbrtl-ieee: Work around test failure on IRIX 6.5.
* m4/cbrtl-ieee.m4: New file.
* m4/cbrtl.m4 (gl_FUNC_CBRTL): If gl_FUNC_CBRTL_IEEE is present,
test whether cbrtl works with a minus zero argument. Replace it if not.
* lib/math.in.h (cbrtl): Override if REPLACE_CBRTL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_CBRTL.
* modules/math (Makefile.am): Substitute REPLACE_CBRTL.
* modules/cbrtl (configure.ac): Consider REPLACE_CBRTL.
(Depends-on): Update conditions.
* modules/cbrtl-ieee (Files): Add m4/cbrtl-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_CBRTL_IEEE.
* lib/cbrtl.c (cbrtl) [IRIX]: Avoid an unnecessary addition.
* doc/posix-functions/cbrtl.texi: Mention the cbrtl-ieee module.
Tests for module 'cbrtl-ieee'.
* modules/cbrtl-ieee-tests: New file.
* tests/test-cbrtl-ieee.c: New file.
New module 'cbrtl-ieee'.
* modules/cbrtl-ieee: New file.
Tests for module 'cbrt-ieee'.
* modules/cbrt-ieee-tests: New file.
* tests/test-cbrt-ieee.c: New file.
New module 'cbrt-ieee'.
* modules/cbrt-ieee: New file.
Tests for module 'cbrtf-ieee'.
* modules/cbrtf-ieee-tests: New file.
* tests/test-cbrtf-ieee.c: New file.
* tests/test-cbrt-ieee.h: New file.
New module 'cbrtf-ieee'.
* modules/cbrtf-ieee: New file.
2012-02-29 Bruno Haible <bruno@clisp.org>
cbrtf: Work around bug in IRIX 6.5 system function.
* lib/math.in.h (cbrtf): Override if REPLACE_CBRTF is 1.
* m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): New macro.
(gl_FUNC_CBRTF): Invoke it. Set REPLACE_CBRTF to 1 if cbrtf() does not
work.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_CBRTF.
* modules/math (Makefile.am): Substitute REPLACE_CBRTF.
* modules/cbrtf (configure.ac): Consider REPLACE_CBRTF.
(Depends-on): Update conditions.
* doc/posix-functions/cbrtf.texi: Mention the IRIX 6.5 problem.
2012-02-29 Bruno Haible <bruno@clisp.org>
Tests for module 'cbrtl'.
* modules/cbrtl-tests: New file.
* tests/test-cbrtl.c: New file.
New module 'cbrtl'.
* lib/math.in.h (cbrtl): New declaration.
* lib/cbrtl.c: New file.
* m4/cbrtl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether cbrtl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRTL, HAVE_CBRTL,
HAVE_DECL_CBRTL.
* modules/math (Makefile.am): Substitute GNULIB_CBRTL, HAVE_CBRTL,
HAVE_DECL_CBRTL.
* modules/cbrtl: New file.
* tests/test-math-c++.cc: Check the declaration of cbrtl.
* doc/posix-functions/cbrtl.texi: Mention the new module.
2012-02-29 Bruno Haible <bruno@clisp.org>
Tests for module 'cbrtf'.
* modules/cbrtf-tests: New file.
* tests/test-cbrtf.c: New file.
New module 'cbrtf'.
* lib/math.in.h (cbrtf): New declaration.
* lib/cbrtf.c: New file.
* m4/cbrtf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether cbrtf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRTF, HAVE_CBRTF,
HAVE_DECL_CBRTF.
* modules/math (Makefile.am): Substitute GNULIB_CBRTF, HAVE_CBRTF,
HAVE_DECL_CBRTF.
* modules/cbrtf: New file.
* tests/test-math-c++.cc: Check the declaration of cbrtf.
* doc/posix-functions/cbrtf.texi: Mention the new module.
2012-02-29 Bruno Haible <bruno@clisp.org>
cbrt: Provide replacement on MSVC and Minix.
* lib/math.in.h (cbrt): New declaration.
* lib/cbrt.c: New file.
* m4/cbrt.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether cbrt is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRT, HAVE_CBRT.
* modules/math (Makefile.am): Substitute GNULIB_CBRT, HAVE_CBRT.
* modules/cbrt (Files): Add lib/cbrt.c, m4/cbrt.m4.
(Depends-on): Add dependencies.
(configure.ac): Arrange to compile replacement if HAVE_CBRT is 0.
* tests/test-math-c++.cc: Check the declaration of cbrt.
* doc/posix-functions/cbrt.texi: Mention that the module provides a
replacement.
2012-02-29 Bruno Haible <bruno@clisp.org>
hypotl-ieee: Work around test failure on OSF/1 and native Windows.
* m4/hypotl-ieee.m4: New file.
* m4/hypotl.m4 (gl_FUNC_HYPOTL): If gl_FUNC_HYPOTL_IEEE is present,
test whether hypotl works with mixed NaN and Infinity arguments.
Replace it if not.
* lib/math.in.h (hypotl): Override if REPLACE_HYPOTL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_HYPOTL.
* modules/math (Makefile.am): Substitute REPLACE_HYPOTL.
* modules/hypotl (configure.ac): Consider REPLACE_HYPOTL.
(Depends-on): Update conditions.
* modules/hypotl-ieee (Files): Add m4/hypotl-ieee.m4.
(Depends-on): Add hypot-ieee.
(configure.ac): Invoke gl_FUNC_HYPOTL_IEEE.
* doc/posix-functions/hypotl.texi: Mention the hypotl-ieee module.
hypotf-ieee: Work around test failure on OSF/1 and native Windows.
* m4/hypotf-ieee.m4: New file.
* m4/hypotf.m4 (gl_FUNC_HYPOTF): If gl_FUNC_HYPOTF_IEEE is present,
test whether hypotf works with mixed NaN and Infinity arguments.
Replace it if not.
* modules/hypotf-ieee (Files): Add m4/hypotf-ieee.m4.
(Depends-on): Add hypot-ieee.
(configure.ac): Invoke gl_FUNC_HYPOTF_IEEE.
* doc/posix-functions/hypotf.texi: Mention the hypotf-ieee module.
hypot-ieee: Work around test failure on OSF/1 and native Windows.
* lib/math.in.h (hypot): New declaration.
* lib/hypot.c: New file.
* m4/hypot-ieee.m4: New file.
* m4/hypot.m4 (gl_FUNC_HYPOT): If gl_FUNC_HYPOT_IEEE is present, test
whether hypot works with mixed NaN and Infinity arguments. Replace it
if not.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOT,
REPLACE_HYPOT.
* modules/math (Makefile.am): Substitute GNULIB_HYPOT, REPLACE_HYPOT.
* modules/hypot (Files): Add lib/hypot.c.
(Depends-on): Add dependencies.
(configure.ac): Arrange to compile replacement if REPLACE_HYPOT is 1.
* modules/hypot-ieee (Files): Add m4/hypot-ieee.m4.
(configure.ac): Invoke gl_FUNC_HYPOT_IEEE.
* tests/test-math-c++.cc: Check the declaration of hypot.
* doc/posix-functions/hypot.texi: Mention the hypot-ieee module.
Tests for module 'hypotl-ieee'.
* modules/hypotl-ieee-tests: New file.
* tests/test-hypotl-ieee.c: New file.
New module 'hypotl-ieee'.
* modules/hypotl-ieee: New file.
Tests for module 'hypot-ieee'.
* modules/hypot-ieee-tests: New file.
* tests/test-hypot-ieee.c: New file.
New module 'hypot-ieee'.
* modules/hypot-ieee: New file.
Tests for module 'hypotf-ieee'.
* modules/hypotf-ieee-tests: New file.
* tests/test-hypotf-ieee.c: New file.
* tests/test-hypot-ieee.h: New file.
New module 'hypotf-ieee'.
* modules/hypotf-ieee: New file.
2012-02-29 Bruno Haible <bruno@clisp.org>
Remove unused variables.
* m4/fmod.m4 (gl_FUNC_FMOD): Remove unused variable 'i'.
* m4/fmodl.m4 (gl_FUNC_FMODL): Likewise.
* m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise.
2012-02-29 Eric Blake <eblake@redhat.com>
termios: fix pid_t always, not just for tcgetsid
* doc/posix-headers/termios.texi (termios.h): Mention problem.
* lib/termios.in.h (include): Ensure pid_t on all platforms, not
just when building tcgetsid.
2012-02-29 Bruno Haible <bruno@clisp.org>
Tests for module 'hypotl'.
* modules/hypotl-tests: New file.
* tests/test-hypotl.c: New file.
New module 'hypotl'.
* lib/math.in.h (hypotl): New declaration.
* lib/hypotl.c: New file.
* m4/hypotl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether hypotf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOTL, HAVE_HYPOTL.
* modules/math (Makefile.am): Substitute GNULIB_HYPOTL, HAVE_HYPOTL.
* modules/hypotl: New file.
* tests/test-math-c++.cc: Check the hypotl declaration.
* doc/posix-functions/hypotl.texi: Mention the new module.
2012-02-29 Eric Blake <eblake@redhat.com>
tcgetsid: fix cygwin header bug
* lib/termios.in.h (includes) [Cygwin]: Ensure pid_t is defined.
docs: update cygwin progress
* doc/posix-functions/llround.texi (llround): Added in cygwin
1.7.8.
* doc/posix-functions/llroundf.texi (llroundf): Likewise.
* doc/glibc-functions/program_invocation_name.texi
(program_invocation_name): Likewise.
* doc/glibc-functions/program_invocation_short_name.texi
(program_invocation_short_name): Likewise.
* doc/glibc-functions/madvise.texi (madvise): Likewise.
* doc/glibc-functions/pthread_yield.texi (pthread_yield):
Likewise.
* doc/posix-functions/pthread_spin_destroy.texi
(pthread_spin_destroy): Added in cygwin 1.7.10.
* doc/posix-functions/pthread_spin_init.texi (pthread_spin_init):
Likewise.
* doc/posix-functions/pthread_spin_lock.texi (pthread_spin_lock):
Likewise.
* doc/posix-functions/pthread_spin_trylock.texi
(pthread_spin_trylock): Likewise.
* doc/posix-functions/pthread_spin_unlock.texi
(pthread_spin_unlock): Likewise.
* doc/posix-functions/pthread_setschedprio.texi
(pthread_setschedprio): Likewise.
* doc/posix-functions/pthread_attr_getstack.texi
(pthread_attr_getstack): Likewise.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi
(pthread_attr_getstackaddr): Likewise.
* doc/glibc-functions/pthread_getattr_np.texi
(pthread_getattr_np): Likewise.
* doc/glibc-functions/sys_siglist.texi (sys_siglist): Likewise.
* doc/glibc-functions/sysinfo.texi (sysinfo): Likewise.
* doc/posix-functions/clock_settime.texi (clock_settime):
Likewise.
* doc/posix-functions/pthread_attr_getguardsize.texi
(pthread_attr_getguardsize): Likewise.
* doc/posix-functions/pthread_attr_setguardsize.texi
(pthread_attr_setguardsize): Likewise.
* doc/posix-functions/pthread_attr_setstack.texi
(pthread_attr_setstack): Likewise.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi
(pthread_attr_setstackaddr): Likewise.
* doc/posix-functions/clock_getcpuclockid.texi
(clock_getcpuclockid): Likewise.
* doc/posix-functions/pthread_getcpuclockid.texi
(pthread_getcpuclockid): Likewise.
* doc/glibc-functions/error.texi (error): Likewise.
* 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.
* doc/glibc-functions/error_print_progname.texi
(error_print_progname): Likewise.
* doc/posix-functions/pthread_condattr_getclock.texi
(pthread_condattr_getclock): Likewise.
* doc/posix-functions/pthread_condattr_setclock.texi
(pthread_condattr_setclock): Likewise.
* doc/posix-functions/clock_nanosleep.texi (clock_nanosleep):
Likewise.
* doc/glibc-functions/getgrouplist.texi (getgrouplist): Likewise.
* doc/glibc-functions/getpt.texi (getpt): Likewise.
* doc/glibc-functions/get_current_dir_name.texi
(get_current_dir_name): Likewise.
* doc/glibc-functions/pthread_sigqueue.texi (pthread_sigqueue):
Likewise.
* doc/posix-functions/tcgetsid.texi (tcgetsid): Likewise, but with
wrong return type.
* doc/glibc-functions/scandirat.texi (scandirat): Added in cygwin
1.7.11.
2012-02-29 Bruno Haible <bruno@clisp.org>
Tests for module 'hypotf'.
* modules/hypotf-tests: New file.
* tests/test-hypotf.c: New file.
New module 'hypotf'.
* lib/math.in.h (hypotf): New declaration.
* lib/hypotf.c: New file.
* m4/hypotf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether hypotf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOTF, HAVE_HYPOTF,
REPLACE_HYPOTF.
* modules/math (Makefile.am): Substitute GNULIB_HYPOTF, HAVE_HYPOTF,
REPLACE_HYPOTF.
* modules/hypotf: New file.
* tests/test-math-c++.cc: Check the hypotf declaration.
* doc/posix-functions/hypotf.texi: Mention the new module.
hypot: Prepare for hypotf module.
* m4/hypot.m4: New file.
* modules/hypot (Files): Add m4/hypot.m4.
(configure.ac): Invoke gl_FUNC_HYPOT.
2012-02-29 Bruno Haible <bruno@clisp.org>
hypot tests: More tests.
* tests/test-hypot.c: Include <float.h>.
(main): Add tests about overflow and underflow.
2012-02-29 Bruno Haible <bruno@clisp.org>
math code: Add comments.
* lib/acosl.c: Add comment about related glibc source files.
* lib/asinl.c: Likewise.
* lib/atanl.c: Likewise.
* lib/expl.c: Likewise.
* lib/logl.c: Likewise.
* lib/sincosl.c: Likewise.
* lib/sinl.c: Likewise.
* lib/tanl.c: Likewise.
* lib/trigl.c: Likewise.
* lib/cosl.c: Likewise. Fix comments.
2012-02-28 Bruno Haible <bruno@clisp.org>
math: Ensure HUGE_VAL, HUGE_VALF, HUGE_VALL are defined.
* lib/math.in.h (HUGE_VAL, HUGE_VALF, HUGE_VALL): Define fallbacks.
* tests/test-math.c: Include macros.h. Check that HUGE_VAL, HUGE_VALF,
HUGE_VALL are defined.
(numeric_equald): Renamed from numeric_equal.
(numeric_equalf, numeric_equall): New functions.
(main): Check also HUGE_VALF, HUGE_VALL.
* modules/math-tests (Files): Add tests/macros.h.
* doc/posix-headers/math.texi: Document the problems with HUGE_VALF and
HUGE_VALL.
2012-02-28 Bruno Haible <bruno@clisp.org>
doc: Move ISO C11 feature notes into POSIX chapters.
* doc/posix-functions/aligned_alloc.texi: Renamed from
doc/glibc-functions/aligned_alloc.texi.
* doc/posix-functions/quick_exit.texi: Renamed from
doc/glibc-functions/quick_exit.texi.
* doc/posix-headers/uchar.texi: Renamed from
doc/glibc-headers/uchar.texi.
* doc/posix-functions/c16rtomb.texi: Renamed from
doc/glibc-functions/c16rtomb.texi.
* doc/posix-functions/c32rtomb.texi: Renamed from
doc/glibc-functions/c32rtomb.texi.
* doc/posix-functions/mbrtoc16.texi: Renamed from
doc/glibc-functions/mbrtoc16.texi.
* doc/posix-functions/mbrtoc32.texi: Renamed from
doc/glibc-functions/mbrtoc32.texi.
* doc/gnulib.texi: Update.
(Glibc uchar.h): Remove section.
Suggested by Eric Blake.
2012-02-29 Paul Eggert <eggert@cs.ucla.edu>
stdnoreturn: port to MSVC better
MSVC standard headers use __declspec(noreturn), so #define noreturn
to empty on that platform. Reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2012-02/msg00152.html>.
* lib/stdnoreturn.in.h (noreturn): Define to empty on MSVC.
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h): Document this.
2012-02-28 Bruno Haible <bruno@clisp.org>
doc: Mention new glibc headers and functions.
* doc/glibc-headers/uchar.texi: New file.
* doc/glibc-functions/aligned_alloc.texi: New file.
* doc/glibc-functions/c16rtomb.texi: New file.
* doc/glibc-functions/c32rtomb.texi: New file.
* doc/glibc-functions/clock_adjtime.texi: New file.
* doc/glibc-functions/fanotify_init.texi: New file.
* doc/glibc-functions/fanotify_mark.texi: New file.
* doc/glibc-functions/inet6_opt_append.texi: New file.
* doc/glibc-functions/inet6_opt_find.texi: New file.
* doc/glibc-functions/inet6_opt_finish.texi: New file.
* doc/glibc-functions/inet6_opt_get_val.texi: New file.
* doc/glibc-functions/inet6_opt_init.texi: New file.
* doc/glibc-functions/inet6_opt_next.texi: New file.
* doc/glibc-functions/inet6_opt_set_val.texi: New file.
* doc/glibc-functions/inet6_rth_add.texi: New file.
* doc/glibc-functions/inet6_rth_getaddr.texi: New file.
* doc/glibc-functions/inet6_rth_init.texi: New file.
* doc/glibc-functions/inet6_rth_reverse.texi: New file.
* doc/glibc-functions/inet6_rth_segments.texi: New file.
* doc/glibc-functions/inet6_rth_space.texi: New file.
* doc/glibc-functions/login.texi: New file.
* doc/glibc-functions/mbrtoc16.texi: New file.
* doc/glibc-functions/mbrtoc32.texi: New file.
* doc/glibc-functions/name_to_handle_at.texi: New file.
* doc/glibc-functions/ntp_gettimex.texi: New file.
* doc/glibc-functions/open_by_handle_at.texi: New file.
* doc/glibc-functions/prlimit.texi: New file.
* doc/glibc-functions/process_vm_readv.texi: New file.
* doc/glibc-functions/process_vm_writev.texi: New file.
* doc/glibc-functions/recvmmsg.texi: New file.
* doc/glibc-functions/scandirat.texi: New file.
* doc/glibc-functions/sendmmsg.texi: New file.
* doc/glibc-functions/setns.texi: New file.
* doc/glibc-functions/timespec_get.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc sys/fanotify.h, Glibc sys/resource.h, Glibc uchar.h): New
sections.
Reported by Eric Blake.
2012-02-28 Bruno Haible <bruno@clisp.org>
Avoid compilation errors with MSVC option -fp:strict.
* lib/floor.c: Use MSVC specific pragma fenv_access.
* lib/ceil.c: Likewise.
* lib/trunc.c: Likewise.
* lib/round.c: Likewise.
* lib/rint.c: Likewise.
* lib/fma.c: Likewise.
* lib/integer_length.c: Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* tests/test-floor2.c: Likewise.
* tests/test-floorf2.c: Likewise.
* tests/test-ceil2.c: Likewise.
* tests/test-ceilf2.c: Likewise.
* tests/test-trunc2.c: Likewise.
* tests/test-truncf2.c: Likewise.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
2012-02-27 Bruno Haible <bruno@clisp.org>
Tests for module 'sqrtl-ieee'.
* modules/sqrtl-ieee-tests: New file.
* tests/test-sqrtl-ieee.c: New file.
New module 'sqrtl-ieee'.
* modules/sqrtl-ieee: New file.
Tests for module 'sqrt-ieee'.
* modules/sqrt-ieee-tests: New file.
* tests/test-sqrt-ieee.c: New file.
New module 'sqrt-ieee'.
* modules/sqrt-ieee: New file.
Tests for module 'sqrtf-ieee'.
* modules/sqrtf-ieee-tests: New file.
* tests/test-sqrtf-ieee.c: New file.
* tests/test-sqrt-ieee.h: New file.
New module 'sqrtf-ieee'.
* modules/sqrtf-ieee: New file.
2012-02-27 Bruno Haible <bruno@clisp.org>
remainderl-ieee: Work around test failure on OSF/1.
* m4/remainderl-ieee.m4: New file.
* m4/remainderl.m4 (gl_FUNC_REMAINDERL): If gl_FUNC_REMAINDERL_IEEE is
present, test whether remainderl works with a zero second argument.
Replace it if not.
* lib/math.in.h (remainderl): Override if REPLACE_REMAINDERL is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDERL.
* modules/math (Makefile.am): Substitute REPLACE_REMAINDERL.
* modules/remainderl (configure.ac): Consider REPLACE_REMAINDERL.
(Depends-on): Update conditions.
* modules/remainderl-ieee (Files): Add m4/remainderl-ieee.m4.
(Depends-on): Add remainder-ieee.
(configure.ac): Invoke gl_FUNC_REMAINDERL_IEEE.
* doc/posix-functions/remainderl.texi: Mention the remainderl-ieee
module.
remainderf-ieee: Work around test failure on OSF/1.
* m4/remainderf-ieee.m4: New file.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF): If gl_FUNC_REMAINDERF_IEEE is
present, test whether remainderf works with a zero second argument.
Replace it if not.
* lib/math.in.h (remainderf): Override if REPLACE_REMAINDERF is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDERF.
* modules/math (Makefile.am): Substitute REPLACE_REMAINDERF.
* modules/remainderf (configure.ac): Consider REPLACE_REMAINDERF.
(Depends-on): Update conditions.
* modules/remainderf-ieee (Files): Add m4/remainderf-ieee.m4.
(Depends-on): Add remainder-ieee.
(configure.ac): Invoke gl_FUNC_REMAINDERF_IEEE.
* doc/posix-functions/remainderf.texi: Mention the remainderf-ieee
module.
remainder-ieee: Work around test failure on OSF/1.
* m4/remainder-ieee.m4: New file.
* m4/remainder.m4 (gl_FUNC_REMAINDER): If gl_FUNC_REMAINDER_IEEE is
present, test whether remainder works with a zero second argument.
Replace it if not.
* lib/math.in.h (remainder): Override if REPLACE_REMAINDER is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDER.
* modules/math (Makefile.am): Substitute REPLACE_REMAINDER.
* modules/remainder (configure.ac): Consider REPLACE_REMAINDER.
(Depends-on): Update dependencies.
* modules/remainder-ieee (Files): Add m4/remainder-ieee.m4.
(configure.ac): Invoke gl_FUNC_REMAINDER_IEEE.
* doc/posix-functions/remainder.texi: Mention the remainder-ieee module.
Tests for module 'remainderl-ieee'.
* modules/remainderl-ieee-tests: New file.
* tests/test-remainderl-ieee.c: New file.
New module 'remainderl-ieee'.
* modules/remainderl-ieee: New file.
Tests for module 'remainder-ieee'.
* modules/remainder-ieee-tests: New file.
* tests/test-remainder-ieee.c: New file.
New module 'remainder-ieee'.
* modules/remainder-ieee: New file.
Tests for module 'remainderf-ieee'.
* modules/remainderf-ieee-tests: New file.
* tests/test-remainderf-ieee.c: New file.
* tests/test-remainder-ieee.h: New file.
New module 'remainderf-ieee'.
* modules/remainderf-ieee: New file.
2012-02-27 Bruno Haible <bruno@clisp.org>
modff, modfl: Fix configure syntax error.
* m4/modff.m4 (gl_FUNC_MODFF): Insert ':' command in 'if'.
* m4/modfl.m4 (gl_FUNC_MODFL): Likewise.
2012-02-27 Bruno Haible <bruno@clisp.org>
fmodl-ieee: Work around test failures on OSF/1, MSVC 9.
* m4/fmodl-ieee.m4: New file.
* m4/fmodl.m4 (gl_FUNC_FMODL): If gl_FUNC_FMODL_IEEE is present, test
whether fmodl works with zero arguments. Replace it if not.
* modules/fmodl-ieee (Files): Add m4/fmodl-ieee.m4.
(Depends-on): Add fmod-ieee.
(configure.ac): Invoke gl_FUNC_FMODL_IEEE.
* doc/posix-functions/fmodl.texi: Mention the fmodl-ieee module.
fmodf-ieee: Work around test failure on OSF/1.
* m4/fmodf-ieee.m4: New file.
* m4/fmodf.m4 (gl_FUNC_FMODF): If gl_FUNC_FMODF_IEEE is present, test
whether fmodf works with zero arguments. Replace it if not.
* lib/math.in.h (fmodf): Override if REPLACE_FMODF is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FMODF.
* modules/math (Makefile.am): Substitute REPLACE_FMODF.
* modules/fmodf (configure.ac): Consider REPLACE_FMODF.
(Depends-on): Update dependencies.
* modules/fmodf-ieee (Files): Add m4/fmodf-ieee.m4.
(configure.ac): Invoke gl_FUNC_FMODF_IEEE.
* doc/posix-functions/fmodf.texi: Mention the problem on OSF/1.
fmodf-ieee: Work around test failure on MSVC 9.
* modules/fmodf-ieee (Depends-on): Add fmod-ieee.
* doc/posix-functions/fmodf.texi: Mention the fmodf-ieee module.
fmod-ieee: Work around test failures on OSF/1, mingw.
* m4/fmod-ieee.m4: New file.
* m4/fmod.m4 (gl_FUNC_FMOD): If gl_FUNC_FMOD_IEEE is present, test
whether fmod works with zero arguments. Replace it if not.
* lib/math.in.h (fmod): New declaration.
* lib/fmod.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fmod is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMOD, REPLACE_FMOD.
* modules/math (Makefile.am): Substitute GNULIB_FMOD, REPLACE_FMOD.
* modules/fmod (Files): Add lib/fmod.c.
(Depends-on): Add math, isinf, trunc, fma.
(configure.ac): Arrange to compile lib/fmod.c if needed.
* modules/fmod-ieee (Files): Add m4/fmod-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_FMOD_IEEE.
* tests/test-math-c++.cc: Check the declaration of fmod.
* doc/posix-functions/fmod.texi: Mention the fmod-ieee module.
fmodl-ieee: Fix test failures.
* lib/fmodl.c (fmodl): Treat Inf specially.
* modules/fmodl (Depends-on): Add isinf.
Tests for module 'fmodl-ieee'.
* modules/fmodl-ieee-tests: New file.
* tests/test-fmodl-ieee.c: New file.
New module 'fmodl-ieee'.
* modules/fmodl-ieee: New file.
Tests for module 'fmod-ieee'.
* modules/fmod-ieee-tests: New file.
* tests/test-fmod-ieee.c: New file.
New module 'fmod-ieee'.
* modules/fmod-ieee: New file.
Tests for module 'fmodf-ieee'.
* modules/fmodf-ieee-tests: New file.
* tests/test-fmodf-ieee.c: New file.
* tests/test-fmod-ieee.h: New file.
New module 'fmodf-ieee'.
* modules/fmodf-ieee: New file.
2012-02-27 Bruno Haible <bruno@clisp.org>
Tests for module 'rintl-ieee'.
* modules/rintl-ieee-tests: New file.
* tests/test-rintl-ieee.c: New file.
New module 'rintl-ieee'.
* modules/rintl-ieee: New file.
Tests for module 'rint-ieee'.
* modules/rint-ieee-tests: New file.
* tests/test-rint-ieee.c: New file.
New module 'rint-ieee'.
* modules/rint-ieee: New file.
Tests for module 'rintf-ieee'.
* modules/rintf-ieee-tests: New file.
* tests/test-rintf-ieee.c: New file.
* tests/test-rint-ieee.h: New file.
New module 'rintf-ieee'.
* modules/rintf-ieee: New file.
2012-02-26 Paul Eggert <eggert@cs.ucla.edu>
regex: re_search etc. should return -2 when memory exhausted
This bug was uncovered when testing 'grep'. Without the fix,
re_search and friends return -1 when memory is exhausted, but -1
means no match, and this causes grep to falsely report no-match
instead of memory-exhaustion. See
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=13762>.
* lib/regexec.c (re_search_stub): Return -2 (not -1) if there is
trouble; this can occur if re_search_internal ran out of memory.
2012-02-26 Bruno Haible <bruno@clisp.org>
modfl-ieee: Work around test failures on IRIX, OSF/1, mingw.
* m4/modfl-ieee.m4: New file.
* m4/modfl.m4 (gl_FUNC_MODFL): If gl_FUNC_MODFL_IEEE is present, test
whether modfl works with Inf. Replace it if not.
* lib/math.in.h (modfl): Override if REPLACE_MODFF is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_MODFL.
* modules/math (Makefile.am): Substitute REPLACE_MODFL.
* modules/modfl (configure.ac): Consider REPLACE_MODFL.
(Depends-on): Update dependencies.
* modules/modfl-ieee (Files): Add m4/modfl-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_MODFL_IEEE.
* doc/posix-functions/modfl.texi: Mention the modfl-ieee module.
modfl-ieee: Fix dependencies.
* modules/modfl-ieee (Depends-on): Add modf-ieee.
modfl-ieee: Fix test failures.
* lib/modfl.c (modfl): Treat NaN and Inf specially.
* modules/modfl (Depends-on): Add isfinite, isinf.
modff-ieee: Work around test failures on *BSD, IRIX, OSF/1, etc.
* m4/modff-ieee.m4: New file.
* m4/modff.m4 (gl_FUNC_MODFF): If gl_FUNC_MODFF_IEEE is present, test
whether modff works with NaN and Inf. Replace it if not.
* lib/math.in.h (modff): Override if REPLACE_MODFF is 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_MODFF.
* modules/math (Makefile.am): Substitute REPLACE_MODFF.
* modules/modff (configure.ac): Consider REPLACE_MODFF.
(Depends-on): Update dependencies.
* modules/modff-ieee (Files): Add m4/modff-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(Depends-on): Add modf-ieee.
(configure.ac): Invoke gl_FUNC_MODFF_IEEE.
* doc/posix-functions/modff.texi: Mention the modff-ieee module.
modf-ieee: Work around test failures on *BSD, IRIX, OSF/1, Cygwin.
* m4/modf-ieee.m4: New file.
* m4/modf.m4 (gl_FUNC_MODF): If gl_FUNC_MODF_IEEE is present, test
whether modf works with NaN and Inf. Replace it if not.
* lib/math.in.h (modf): New declaration.
* lib/modf.c: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether modf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_MODF, REPLACE_MODF.
* modules/math (Makefile.am): Substitute GNULIB_MODF, REPLACE_MODF.
* modules/modf (Files): Add lib/modf.c.
(Depends-on): Add math, isfinite, trunc, isinf.
(configure.ac): Addrange to compile lib/modf.c if needed.
* modules/modf-ieee (Files): Add m4/modf-ieee.m4, m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_MODF_IEEE.
* tests/test-math-c++.cc: Check the declaration of modf.
* doc/posix-functions/modf.texi: Mention the modf-ieee module.
Tests for module 'modfl-ieee'.
* modules/modfl-ieee-tests: New file.
* tests/test-modfl-ieee.c: New file.
New module 'modfl-ieee'.
* modules/modfl-ieee: New file.
Tests for module 'modf-ieee'.
* modules/modf-ieee-tests: New file.
* tests/test-modf-ieee.c: New file.
New module 'modf-ieee'.
* modules/modf-ieee: New file.
Tests for module 'modff-ieee'.
* modules/modff-ieee-tests: New file.
* tests/test-modff-ieee.c: New file.
* tests/test-modf-ieee.h: New file.
New module 'modff-ieee'.
* modules/modff-ieee: New file.
2012-02-26 Bruno Haible <bruno@clisp.org>
Tests for module 'fabsl-ieee'.
* modules/fabsl-ieee-tests: New file.
* tests/test-fabsl-ieee.c: New file.
New module 'fabsl-ieee'.
* modules/fabsl-ieee: New file.
Tests for module 'fabs-ieee'.
* modules/fabs-ieee-tests: New file.
* tests/test-fabs-ieee.c: New file.
New module 'fabs-ieee'.
* modules/fabs-ieee: New file.
Tests for module 'fabsf-ieee'.
* modules/fabsf-ieee-tests: New file.
* tests/test-fabsf-ieee.c: New file.
* tests/test-fabs-ieee.h: New file.
New module 'fabsf-ieee'.
* modules/fabsf-ieee: New file.
2012-02-26 Bruno Haible <bruno@clisp.org>
Tests for module 'fmal-ieee'.
* modules/fmal-ieee-tests: New file.
* tests/test-fmal-ieee.c: New file.
New module 'fmal-ieee'.
* modules/fmal-ieee: New file.
Tests for module 'fma-ieee'.
* modules/fma-ieee-tests: New file.
* tests/test-fma-ieee.c: New file.
New module 'fma-ieee'.
* modules/fma-ieee: New file.
Tests for module 'fmaf-ieee'.
* modules/fmaf-ieee-tests: New file.
* tests/test-fmaf-ieee.c: New file.
* tests/test-fma-ieee.h: New file.
New module 'fmaf-ieee'.
* modules/fmaf-ieee: New file.
2012-02-26 Bruno Haible <bruno@clisp.org>
Tests for module 'ldexpl-ieee'.
* modules/ldexpl-ieee-tests: New file.
* tests/test-ldexpl-ieee.c: New file.
New module 'ldexpl-ieee'.
* modules/ldexpl-ieee: New file.
Tests for module 'ldexp-ieee'.
* modules/ldexp-ieee-tests: New file.
* tests/test-ldexp-ieee.c: New file.
New module 'ldexp-ieee'.
* modules/ldexp-ieee: New file.
Tests for module 'ldexpf-ieee'.
* modules/ldexpf-ieee-tests: New file.
* tests/test-ldexpf-ieee.c: New file.
* tests/test-ldexp-ieee.h: New file.
New module 'ldexpf-ieee'.
* modules/ldexpf-ieee: New file.
2012-02-26 Bruno Haible <bruno@clisp.org>
Refactor frexp*-ieee tests.
* tests/test-frexp-ieee.h: New file.
* tests/test-frexpf-ieee.c: Include test-frexp-ieee.h.
(main): Just call test_function.
* tests/test-frexp-ieee.c: Include test-frexp-ieee.h.
(main): Just call test_function.
* tests/test-frexpl-ieee.c: Include test-frexp-ieee.h.
(main): Just call test_function.
* modules/frexpf-ieee-tests (Files): Add tests/test-frexp-ieee.h.
* modules/frexp-ieee-tests (Files): Likewise.
* modules/frexpl-ieee-tests (Files): Likewise.
Tests for module 'frexpl-ieee'.
* modules/frexpl-ieee-tests: New file.
* tests/test-frexpl-ieee.c: New file.
New module 'frexpl-ieee'.
* modules/frexpl-ieee: New file.
Tests for module 'frexp-ieee'.
* modules/frexp-ieee-tests: New file.
* tests/test-frexp-ieee.c: New file.
New module 'frexp-ieee'.
* modules/frexp-ieee: New file.
Tests for module 'frexpf-ieee'.
* modules/frexpf-ieee-tests: New file.
* tests/test-frexpf-ieee.c: New file.
New module 'frexpf-ieee'.
* modules/frexpf-ieee: New file.
2012-02-26 Bruno Haible <bruno@clisp.org>
roundl-ieee tests: More tests.
* tests/test-roundl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/roundl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanl-nolibm.
round-ieee tests: More tests.
* tests/test-round-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/round-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnand-nolibm.
roundf-ieee tests: More tests.
* tests/test-roundf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/roundf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanf-nolibm.
truncl-ieee tests: More tests.
* tests/test-truncl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/truncl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanl-nolibm.
trunc-ieee tests: More tests.
* tests/test-trunc-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/trunc-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnand-nolibm.
truncf-ieee tests: More tests.
* tests/test-truncf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/truncf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanf-nolibm.
ceill-ieee tests: More tests.
* tests/test-ceill-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/ceill-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanl-nolibm.
ceil-ieee tests: More tests.
* tests/test-ceil-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/ceil-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnand-nolibm.
ceilf-ieee tests: More tests.
* tests/test-ceilf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/ceilf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanf-nolibm.
floorl-ieee tests: More tests.
* tests/test-floorl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/floorl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanl-nolibm.
floor-ieee tests: More tests.
* tests/test-floor-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/floor-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnand-nolibm.
floorf-ieee tests: More tests.
* tests/test-floorf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h.
(main): Add tests for [MX] shaded specification in POSIX.
* modules/floorf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanf-nolibm.
2012-02-26 Bruno Haible <bruno@clisp.org>
fpieee: More comments.
* m4/fpieee.m4 (gl_FP_IEEE): Add more comments.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'log10l'.
* modules/log10l-tests: New file.
* tests/test-log10l.c: New file.
* tests/test-math-c++.cc: Check the declaration of log10l.
New module 'log10l'.
* lib/math.in.h (log10l): New declaration.
* lib/log10l.c: New file.
* m4/log10l.m4: New file.
* modules/log10l: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log10l is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10L, HAVE_LOG10L,
HAVE_DECL_LOG10L.
* modules/math (Makefile.am): Substitute GNULIB_LOG10L, HAVE_LOG10L,
HAVE_DECL_LOG10L.
* doc/posix-functions/log10l.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
fmodl, remainder*: Avoid wrong results due to rounding errors.
* lib/fmodl.c (fmodl): Correct the result if it is not within the
expected bounds.
* lib/remainderf.c (remainderf): Likewise.
* lib/remainder.c (remainder): Likewise.
* lib/remainderl.c (remainderl): Likewise.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'remainderl'.
* modules/remainderl-tests: New file.
* tests/test-remainderl.c: New file.
* tests/test-math-c++.cc: Check the declaration of remainderl.
New module 'remainderl'.
* lib/math.in.h (remainderl): New declaration.
* lib/remainderl.c: New file.
* m4/remainderl.m4: New file.
* modules/remainderl: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether remainderl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDERL, HAVE_REMAINDERL.
* modules/math (Makefile.am): Substitute GNULIB_REMAINDERL,
HAVE_REMAINDERL.
* doc/posix-functions/remainderl.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'remainderf'.
* modules/remainderf-tests: New file.
* tests/test-remainderf.c: New file.
* tests/test-math-c++.cc: Check the declaration of remainderf.
New module 'remainderf'.
* lib/math.in.h (remainderf): New declaration.
* lib/remainderf.c: New file.
* m4/remainderf.m4: New file.
* modules/remainderf: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether remainderf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDERF, HAVE_REMAINDERF.
* modules/math (Makefile.am): Substitute GNULIB_REMAINDERF,
HAVE_REMAINDERF.
* doc/posix-functions/remainderf.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
remainder: Support for MSVC.
* lib/math.in.h (remainder): New declaration.
* lib/remainder.c: New file.
* m4/remainder.m4: New file.
* modules/remainder (Files): Add lib/remainder.c, m4/remainder.m4.
(Depends-on): Add math, round, fma.
(configure.ac): Use results of gl_FUNC_REMAINDER.
* m4/math_h.m4 (gl_MATH_H): Test whether remainder is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDER, HAVE_REMAINDER,
HAVE_DECL_REMAINDER.
* modules/math (Makefile.am): Substitute GNULIB_REMAINDER,
HAVE_REMAINDER, HAVE_DECL_REMAINDER.
* tests/test-math-c++.cc: Check the declaration of remainder.
* doc/posix-functions/remainder.texi: Mention that the MSVC and IRIX 5
problems are fixed.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'fmodl'.
* modules/fmodl-tests: New file.
* tests/test-fmodl.c: New file.
* tests/test-math-c++.cc: Check the declaration of fmodl.
New module 'fmodl'.
* lib/math.in.h (fmodl): New declaration.
* lib/fmodl.c: New file.
* m4/fmodl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fmodl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMODL, HAVE_FMODL,
REPLACE_FMODL.
* modules/math (Makefile.am): Substitute GNULIB_FMODL, HAVE_FMODL,
REPLACE_FMODL.
* modules/fmodl: New file.
* doc/posix-functions/fmodl.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'modfl'.
* modules/modfl-tests: New file.
* tests/test-modfl.c: New file.
* tests/test-math-c++.cc: Check the declaration of modfl.
New module 'modfl'.
* lib/math.in.h (modfl): New declaration.
* lib/modfl.c: New file.
* m4/modfl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether modfl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_MODFL, HAVE_MODFL.
* modules/math (Makefile.am): Substitute GNULIB_MODFL, HAVE_MODFL.
* modules/modfl: New file.
* doc/posix-functions/modfl.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
Tests for module 'fabsl'.
* modules/fabsl-tests: New file.
* tests/test-fabsl.c: New file.
* tests/test-math-c++.cc: Check the declaration of fabsl.
New module 'fabsl'.
* lib/math.in.h (fabsl): New declaration.
* lib/fabsl.c: New file.
* m4/fabsl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fabsl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FABSL, HAVE_FABSL,
REPLACE_FABSL.
* modules/math (Makefile.am): Substitute GNULIB_FABSL, HAVE_FABSL,
REPLACE_FABSL.
* modules/fabsl: New file.
* doc/posix-functions/fabsl.texi: Mention the new module.
2012-02-25 Bruno Haible <bruno@clisp.org>
fabs tests: More tests.
* tests/test-fabs.c: Include <string.h>, minus-zero.h.
(zero): New variable.
(main): Add tests for signed zero.
* modules/fabs-tests (Files): Add tests/minus-zero.h.
fabsf tests: More tests.
* tests/test-fabsf.c: Include <string.h>, minus-zero.h.
(zero): New variable.
(main): Add tests for signed zero.
* modules/fabsf-tests (Files): Add tests/minus-zero.h.
2012-02-24 Bruno Haible <bruno@clisp.org>
atanl: Provide function definition on MSVC.
* m4/atanl.m4 (gl_FUNC_ATANL): Test also whether atanl can be used as a
function pointer.
* lib/math.in.h (atanl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
acosl: Provide function definition on MSVC.
* m4/acosl.m4 (gl_FUNC_ACOSL): Test also whether acosl can be used as a
function pointer.
* lib/math.in.h (acosl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
asinl: Provide function definition on MSVC.
* m4/asinl.m4 (gl_FUNC_ASINL): Test also whether asinl can be used as a
function pointer.
* lib/math.in.h (asinl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
tanl: Provide function definition on MSVC.
* m4/tanl.m4 (gl_FUNC_TANL): Test also whether tanl can be used as a
function pointer.
* lib/math.in.h (tanl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
cosl: Provide function definition on MSVC.
* m4/cosl.m4 (gl_FUNC_COSL): Test also whether cosl can be used as a
function pointer.
* lib/math.in.h (cosl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
sinl: Provide function definition on MSVC.
* m4/sinl.m4 (gl_FUNC_SINL): Test also whether sinl can be used as a
function pointer.
* lib/math.in.h (sinl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
logl: Provide function definition on MSVC.
* m4/logl.m4 (gl_FUNC_LOGL): Test also whether logl can be used as a
function pointer.
* lib/math.in.h (logl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
expl: Provide function definition on MSVC.
* m4/expl.m4 (gl_FUNC_EXPL): Test also whether expl can be used as a
function pointer.
* lib/math.in.h (expl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
sqrtl: Provide function definition on MSVC.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Test also whether sqrtl can be used as
a function pointer.
* lib/math.in.h (sqrtl): Undefine if it does not exist as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
ceill: Provide function definition on MSVC.
* m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Test also whether ceill can be
used as a function pointer.
* lib/math.in.h (ceill): Undefine if it is not declared as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
floorl: Provide function definition on MSVC.
* m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Test also whether floorl can be
used as a function pointer.
* lib/math.in.h (floorl): Undefine if it is not declared as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
ceilf: Provide function definition on MSVC.
* m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Test also whether ceilf can be
used as a function pointer.
* lib/math.in.h (ceilf): Undefine if it is not declared as a function.
2012-02-24 Bruno Haible <bruno@clisp.org>
floorf: Provide function definition on MSVC.
* m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Test also whether floorf can be
used as a function pointer.
* lib/math.in.h (floorf): Undefine if it is not declared as a function.
2012-02-24 Paul Eggert <eggert@cs.ucla.edu>
stdnoreturn: new module
This implements a replacement for C11's <stdnoreturn.h>.
* doc/gnulib.texi (Header File Substitutes): Add stdnoreturn.
* doc/posix-headers/stdnoreturn.texi, lib/stdnoreturn.in.h:
* m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests:
* tests/test-stdnoreturn.c: New files.
2012-02-24 Stanislav Brabec <sbrabec@suse.cz> (tiny change)
regex: fix false multibyte matches in some regular expressions
See <http://sourceware.org/bugzilla/show_bug.cgi?id=13637>
and <http://sourceware.org/ml/libc-alpha/2012-02/msg00521.html>.
* lib/regex_internal.c (re_string_skip_chars):
Fix miscomputation of remain_len that may cause incomplete
multi-byte character and false match.
2012-02-24 Jim Meyering <meyering@redhat.com>
maint.mk: tell sc_prohibit_strcmp to ding "0 == strcmp (...)", too
* top/maint.mk (sc_prohibit_strcmp): Also prohibit uses of strcmp
uses with "==" *before* the call, e.g., 0 == strcmp (...)
Remove now-unnecessary str''cmp obfuscation.
Suggested by Akim Demaille.
2012-02-24 Bruno Haible <bruno@clisp.org>
streq: Rename macro.
* lib/streq.h (STREQ_OPT): Renamed from STREQ.
* NEWS: Mention the change.
* lib/mbrtowc.c (mbrtowc): Update.
* lib/uniwidth/cjk.h (is_cjk_encoding): Update.
* lib/wcwidth.c (wcwidth): Update.
Suggested by Akim Demaille and Jim Meyering.
2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
regex: fix typo in definition of MIN
* lib/regex_internal.h (MIN): Fix typo. Problem reported by Thomas
Schwinge in <http://sourceware.org/bugzilla/show_bug.cgi?id=11638#c4>.
2012-02-19 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
acl: Don't use ACL_CNT and similar ops, since they are unreliable.
* lib/file-has-acl.c (file_has_acl) [HP-UX, NonStop Kernel]: Read the
entries into a stack-allocated buffer directly.
* lib/copy-acl.c (qcopy_acl) [HP-UX, NonStop Kernel]: Likewise.
2012-02-19 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
acl: Don't use GETACLCNT and similar ops, since they are unreliable.
- There were several instances of this pattern:
for (;;) {
n = acl (f, GETACLCNT, 0, NULL);
[ allocate an array A of size N ]
if (acl (f, GETACL, n, a) == n)
break;
}
This loop might never terminate if some other process is constantly
manipulating the file's ACL. The loop should be rewritten to
terminate.
- The acl (... GETACLNT ...) call is merely an optimization; its value
is merely a hint as to how big to make the array. A better
optimization is to avoid the acl (... GETACLNT ...) call entirely,
and just guess a reasonably-big size, growing the size and trying
again if it's not large enough. This guarantees termination, and
saves a system call.
* lib/acl-internal.h: Include <limits.h>.
(MIN, SIZE_MAX): New macros.
* lib/file-has-acl.c (file_has_acl) [Solaris]: Read the entries into
a stack-allocated buffer, and use malloc if it does not fit. Don't
use GETACLCNT.
* lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise.
2012-02-19 Bruno Haible <bruno@clisp.org>
acl: Fix endless loop on Solaris with vxfs.
* lib/file-has-acl.c (file_has_acl) [Solaris]: Treat a failing
acl()/facl() call for ACE_GETACL like a failing call for ACE_GETACLCNT.
* lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise.
* lib/copy-acl.c (qcopy_acl)[Solaris]: Likewise.
* tests/test-sameacls.c (main)[Solaris]: Likewise.
Reported by Bill Jones in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10639>, via Paul Eggert.
2012-02-19 Bruno Haible <bruno@clisp.org>
acl: Fix copy-acl test failure on Solaris 11.0.
* lib/file-has-acl.c (NEW_ACE_WRITEA_DATA): New macro.
(acl_ace_nontrivial): Relax the restrictions on access_masks[] so
that this function returns 0 in some more cases.
2012-02-19 Bruno Haible <bruno@clisp.org>
acl: Update doc references.
* doc/acl-resources.txt: Update links to Solaris documentation.
2012-02-19 Bruno Haible <bruno@clisp.org>
Fix test failure in many locales on Solaris 11.
* tests/test-pipe-filter-gi1.c (main): Don't use range expression in
'tr' arguments.
* tests/test-pipe-filter-ii1.c (main): Likewise.
* build-aux/bootstrap (check_versions): Run 'tr' command with range
expressions in the C locale.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* m4/host-os.m4 (gl_HOST_OS): Likewise.
2012-02-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve usage message.
* gnulib-tool (func_usage): Move doc of --help and --version to the
section "Operation modes".
2012-02-18 Reuben Thomas <rrt@sc3d.org>
README-release: make it easier to execute commands
* top/README-release: break commands out on to separate lines.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
GNUmakefile: simplify detection of unconfigured trees
* top/GNUmakefile: Use $(wildcard) instead of $(shell) to determine
whether the tree make is being run from is already configured or
not. Related simplifications.
2012-02-13 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_usage): Document --help and --version.
2012-02-11 Jim Meyering <meyering@redhat.com>
bootstrap: don't exit 0 upon gnulib-tool failure
* build-aux/bootstrap (gnulib_tool): If gnulib-tool fails, exit with
its exit status, not 0.
2011-12-19 Reuben Thomas <rrt@sc3d.org>
README-release: various improvements
* top/README-release: Give a command to push changes for the
release. Add "distcheck" to list of other pre-release checks.
Fix instance of "make stable" which should be "make TYPE".
2012-02-09 Paul Eggert <eggert@cs.ucla.edu>
maint: replace FSF snail-mail addresses with URLs
* config/argz.mk, lib/accept4.c, lib/alignof.h, lib/alloca.in.h:
* lib/alphasort.c, lib/arcfour.c, lib/arcfour.h, lib/arctwo.c:
* lib/arctwo.h, lib/argz.c, lib/arpa_inet.in.h, lib/asnprintf.c:
* lib/asprintf.c, lib/assert.in.h, lib/base32.c, lib/base32.h:
* lib/base64.c, lib/base64.h, lib/c-ctype.c, lib/c-ctype.h:
* lib/c-strcase.h, lib/c-strcasecmp.c, lib/c-strncasecmp.c:
* lib/check-version.c, lib/check-version.h, lib/config.charset:
* lib/ctype.in.h, lib/des.c, lib/des.h, lib/dup3.c, lib/errno.in.h:
* lib/float+.h, lib/fnmatch.c, lib/fnmatch.in.h, lib/fnmatch_loop.c:
* lib/fseeko.c, lib/gai_strerror.c, lib/gc-gnulib.c:
* lib/gc-libgcrypt.c, lib/gc-pbkdf2-sha1.c, lib/gc.h:
* lib/getaddrinfo.c, lib/getdelim.c, lib/getfilecon.c, lib/getline.c:
* lib/getlogin_r.c, lib/getpass.c, lib/getpass.h, lib/gettext.h:
* lib/gettimeofday.c, lib/glob.in.h, lib/glthread/cond.c:
* lib/glthread/cond.h, lib/glthread/lock.c, lib/glthread/lock.h:
* lib/glthread/thread.c, lib/glthread/thread.h:
* lib/glthread/threadlib.c, lib/glthread/yield.h, lib/hmac-md5.c:
* lib/hmac-sha1.c, lib/hmac.h, lib/iconv.c, lib/iconv.in.h:
* lib/iconv_close.c, lib/iconv_open.c, lib/inet_ntop.c, lib/isfinite.c:
* lib/isinf.c, lib/iswblank.c, lib/langinfo.in.h, lib/link.c:
* lib/localcharset.c, lib/localcharset.h, lib/lseek.c, lib/malloc.c:
* lib/malloca.c, lib/malloca.h, lib/md2.c, lib/md2.h, lib/md4.c:
* lib/md4.h, lib/md5.c, lib/md5.h, lib/memmem.c, lib/mempcpy.c:
* lib/memset.c, lib/memxor.c, lib/memxor.h, lib/minmax.h, lib/mktime.c:
* lib/msvc-inval.c, lib/msvc-inval.h, lib/msvc-nothrow.c:
* lib/msvc-nothrow.h, lib/netdb.in.h, lib/netinet_in.in.h, lib/nproc.c:
* lib/nproc.h, lib/obstack_printf.c, lib/pathmax.h, lib/pipe.c:
* lib/pipe2.c, lib/poll.c, lib/poll.in.h, lib/printf-args.c:
* lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h:
* lib/pselect.c, lib/pthread.in.h, lib/pty-private.h, lib/pty.in.h:
* lib/read-file.c, lib/read-file.h, lib/ref-add.sin, lib/ref-del.sin:
* lib/regcomp.c, lib/regex.c, lib/regex.h, lib/regex_internal.c:
* lib/regex_internal.h, lib/regexec.c, lib/rijndael-alg-fst.c:
* lib/rijndael-alg-fst.h, lib/rijndael-api-fst.c:
* lib/rijndael-api-fst.h, lib/rint.c, lib/rintf.c, lib/rintl.c:
* lib/round.c, lib/roundf.c, lib/roundl.c, lib/scandir.c, lib/select.c:
* lib/sha1.c, lib/sha1.h, lib/size_max.h, lib/snprintf.c:
* lib/stdalign.in.h, lib/stdarg.in.h, lib/stdbool.in.h:
* lib/stddef.in.h, lib/stdint.in.h, lib/stdio.in.h, lib/str-kmp.h:
* lib/str-two-way.h, lib/strcasecmp.c, lib/strcasestr.c, lib/strdup.c:
* lib/striconv.c, lib/striconv.h, lib/string.in.h, lib/strings.in.h:
* lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c, lib/strpbrk.c:
* lib/strptime.c, lib/strsep.c, lib/strstr.c, lib/strverscmp.c:
* lib/sys_file.in.h, lib/sys_ioctl.in.h, lib/sys_select.in.h:
* lib/sys_socket.in.h, lib/sys_stat.in.h, lib/sys_time.in.h:
* lib/sys_times.in.h, lib/sys_types.in.h, lib/sys_uio.in.h:
* lib/sys_utsname.in.h, lib/sys_wait.in.h, lib/tcgetsid.c:
* lib/termios.in.h, lib/time.in.h, lib/time_r.c, lib/timegm.c:
* lib/times.c, lib/unictype/3level.h, lib/unictype/3levelbit.h:
* lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/vasprintf.c:
* lib/vsnprintf.c, lib/waitpid.c, lib/wchar.in.h, lib/wctype.in.h:
* lib/xsize.h, tests/test-closein.c, tests/test-des.c:
* tests/test-fclose.c, tests/test-fgetc.c, tests/test-filevercmp.c:
* tests/test-fputc.c, tests/test-fread.c, tests/test-fwrite.c:
* tests/test-gc-arcfour.c, tests/test-gc-arctwo.c, tests/test-gc-des.c:
* tests/test-gc-hmac-md5.c, tests/test-gc-hmac-sha1.c:
* tests/test-gc-md2.c, tests/test-gc-md4.c, tests/test-gc-md5.c:
* tests/test-gc-pbkdf2-sha1.c, tests/test-gc-rijndael.c:
* tests/test-gc-sha1.c, tests/test-gc.c, tests/test-getdelim.c:
* tests/test-getline.c, tests/test-getndelim2.c, tests/test-md2.c:
* tests/test-md4.c, tests/test-parse-datetime.c, tests/test-perror.c:
* tests/test-perror2.c, tests/test-pipe.c, tests/test-pipe2.c:
* tests/test-poll.c, tests/test-quotearg-simple.c:
* tests/test-quotearg.c, tests/test-quotearg.h:
* tests/test-round-ieee.c, tests/test-round1.c:
* tests/test-roundf-ieee.c, tests/test-roundf1.c:
* tests/test-roundl-ieee.c, tests/test-roundl.c:
* tests/test-safe-alloc.c, tests/test-sigpipe.c:
* tests/test-spawn-pipe-child.c, tests/test-spawn-pipe-main.c:
* tests/test-strerror.c, tests/test-strerror_r.c:
* tests/test-strsignal.c, tests/test-strverscmp.c:
* tests/test-xmemdup0.c:
Replace FSF snail mail addresses with URLs, as per GNU coding
standards. See glibc bug
<http://sourceware.org/bugzilla/show_bug.cgi?id=13673>.
2011-12-22 Reuben Thomas <rrt@sc3d.org>
README-release: capitalize a word and split a line
* top/README-release: Fix punctuation and spacing.
2012-02-08 Akim Demaille <demaille@gostai.com>
fatal-signal: use C prototypes (with explicit void).
* lib/fatal-signal.c (uninstall_handlers, install_handlers)
(init_fatal_signal_set, block_fatal_signals): Fix signatures.
2012-02-07 Paul Eggert <eggert@cs.ucla.edu>
regex: spelling fix
* lib/regexec.c: spelling fix
regex: rely on stdint.h for SIZE_MAX
* lib/regex_internal.h (SIZE_MAX): Remove; stdint.h supplies this now.
2012-02-07 Paul Eggert <eggert@cs.ucla.edu>
regex: merge glibc changes
* lib/regcomp.c (init_dfa): Tighten overflow checks to test
for IDX_MAX too, since IDX_MAX can be much less than SIZE_MAX.
(init_word_char): Work even if bitset words are not exactly 32 or
64 bits wide. Don't assume there are no padding bits.
* lib/regex.c [_LIBC]: Do not include <config.h>.
[!_LIBC]: Add pragmas to ignore -Wsuggest-attributes=pure
and -Wtype-limits.
* lib/regex.h (__USE_GNU): Renamed from __USE_GNU_REGEX, to avoid
needless disagreement with glibc. All uses changed. Define it to
1 only if _GNU_SOURCE, to match glibc.
(_REG_RM_NAME): Remove; no longer needed, since the names in
question are now all protected by __USE_GNU.
(_REG_RE_NAME): Remove; replaced by glibc's __REPB_PREFIX.
(REG_TRANSLATE_TYPE): Remove; replaced by glibc's __RE_TRANSLATE_TYPE.
* lib/regex_internal.h (MIN): New macro.
2012-01-03 Ulrich Drepper <drepper@gmail.com>
* lib/regcomp.c (init_word_char): Optimize regex a bit.
2011-12-30 Jakub Jelinek <jakub@redhat.com>
* lib/regex_internal.c (re_string_fetch_byte_case):
Fix up regcomp/regexec. The problem is that parse_bracket_symbol
is miscompiled, and it turns out it is because of an incorrect
attribute on re_string_fetch_byte_case. Unlike
re_string_peek_byte_case, this one is really not pure, it modifies
memory (increments pstr->cur_idx), and with the pure attribute GCC
assumed it doesn't and it cached the presumed value of
regexp->cur_idx in a variable across the
for (;; ++i)
{
if (i >= BRACKET_NAME_BUF_SIZE)
return REG_EBRACK;
if (token->type == OP_OPEN_CHAR_CLASS)
ch = re_string_fetch_byte_case (regexp);
else
ch = re_string_fetch_byte (regexp);
if (re_string_eoi(regexp))
return REG_EBRACK;
if (ch == delim && re_string_peek_byte (regexp, 0) == ']')
break;
elem->opr.name[i] = ch;
}
2011-11-29 Andreas Schwab <schwab@redhat.com>
* lib/regcomp.c (build_equiv_class):
Fix access after end of search string in regex matcher.
2011-11-12 Ulrich Drepper <drepper@redhat.com>
* lib/regex_internal.c, lib/regex_internal.h: Fix warnings in regex.
2011-10-12 Ulrich Drepper <drepper@redhat.com>
* lib/regcomp.c (parse_branch): One more regex memory leak fixed.
2011-10-11 Ulrich Drepper <drepper@redhat.com>
* lib/regcomp.c (parse_branch, parse_sub_exp):
More regex memory leak fixes and tests.
(parse_sub_exp, parse_bracket_exp):
Fix memory leak for some invalid regular expressions.
2011-05-28 Ulrich Drepper <drepper@gmail.com>
* lib/regex_internal.c, lib/regexec.c:
Fix unnecessary overallocation due to incomplete character. When
incomplete characters are found at the end of a string the code
ran amok and allocated lots of memory. Stricter limits are now in
place.
2011-05-20 Reuben Thomas <rrt@sc3d.org>
* lib/regex.h: Update documentation.
2011-05-16 Aharon Robbins <arnold@skeeve.com>
* lib/regex.h: Update RE_SYNTAX*_AWK constants.
2010-05-05 Andreas Schwab <schwab@redhat.com>
* lib/regexec.c (find_collation_sequence_value):
Fix lookup of collation sequence value during regexp matching.
2010-01-22 Ulrich Drepper <drepper@redhat.com>
* lib/regex_internal.c (re_dfa_add_node): Extend overflow detection.
2008-01-16 Ulrich Drepper <drepper@redhat.com>
* lib/regex.h: Cleanup namespace.
2007-11-26 Ulrich Drepper <drepper@redhat.com>
* lib/regex.h (REG_ENOSYS): Define REG_ENOSYS also for __USE_XOPEN2K.
2007-08-26 Ulrich Drepper <drepper@redhat.com>
* lib/regex_internal.h: Prevent some declarations and definitions
to be seen when used in tests.
2005-05-06 Ulrich Drepper <drepper@redhat.com>
* lib/regex_internal.h: Include bits/libc-lock.h or define dummy
__libc_lock_* macros if not _LIBC.
(struct re_dfa_t): Add lock.
2012-02-07 Eric Blake <eblake@redhat.com>
maint.mk: also prohibit lower-case @var@
* top/maint.mk (sc_makefile_at_at_check): Enhance check to cover
lower case, like @top_srcdir@.
2012-02-04 Eric Blake <eblake@redhat.com>
canonicalize: avoid uninitialized memory use
* lib/canonicalize-lgpl.c (__realpath): Avoid possibility of
random '/' left in dest.
* lib/canonicalize.c (canonicalize_filename_mode): Likewise.
2012-02-04 Bruno Haible <bruno@clisp.org>
isatty: Fix test failure of ptsname_r on native Windows.
* lib/isatty.c (_isatty_nothrow): Upon exception, return 0, not -1,
and don't set errno.
(isatty): Test first whether fd is valid. Set errno when returning 0.
2012-02-04 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Fix a NULL program name in a diagnostic.
* tests/test-spawn-pipe-main.c: Include progname.h.
(main): Invoke set_program_name.
* modules/spawn-pipe-tests (Depends-on): Add progname.
nonblocking-socket tests: Fix a NULL program name in a diagnostic.
* tests/test-nonblocking-socket-main.c: Include progname.h.
(main): Invoke set_program_name.
* modules/nonblocking-socket-tests (Depends-on): Add progname.
nonblocking-pipe tests: Fix a NULL program name in a diagnostic.
* tests/test-nonblocking-pipe-main.c: Include progname.h.
(main): Invoke set_program_name.
* modules/nonblocking-pipe-tests (Depends-on): Add progname.
2012-02-04 Eric Blake <eblake@redhat.com>
canonicalize-lgpl: fix // handling
* lib/canonicalize-lgpl.c (__realpath): Don't convert /// to //.
canonicalize: fix // handling
* lib/canonicalize.c (canonicalize_filename_mode): Don't convert
/// to //, since only // is special.
2012-02-04 Bruno Haible <bruno@clisp.org>
ioctl: Fix test failure on native Windows.
* lib/ioctl.c: Include msvc-nothrow.h.
(primary_ioctl): If fd is not a valid handle, set errno to EBADF.
2012-02-04 Bruno Haible <bruno@clisp.org>
fsync: Avoid test failure on native Windows.
* lib/fsync.c (fsync) [Windows]: Don't fail if the handle is merely
read-only.
2012-02-04 Bruno Haible <bruno@clisp.org>
sys_select: Avoid syntax error on OpenBSD 5.0.
* lib/sys_select.in.h [OpenBSD]: When /usr/include/pthread.h is
currently being included, just include the system's <sys/select.h>.
2012-02-04 Bruno Haible <bruno@clisp.org>
sys_select: Avoid syntax error on OpenBSD 5.0.
* lib/sys_select.in.h: Include <signal.h> only after the include_next
<sys/select.h>, not before.
Reported by Jiri B <jirib@devio.us>.
2012-02-04 Bruno Haible <bruno@clisp.org>
get-rusage-as, get-rusage-data tests: Avoid test failure with gcc-4.7.
* tests/test-get-rusage-as.c (main): Assign the malloc() results to
global variables.
* tests/test-get-rusage-data.c (main): Likewise.
Reported by Jim Meyering.
2012-02-04 Bruno Haible <bruno@clisp.org>
stdioext: Fix last commit.
* lib/fwritable.c [EPLAN9]: Include <fcntl.h>.
2012-02-03 Bruno Haible <bruno@clisp.org>
stdioext: Add tentative support for Plan9.
* lib/stdio-impl.h: Include <errno.h>.
* lib/fseterr.c (fseterr) [EPLAN9]: Add conditional code.
* lib/freadable.c (freadable): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fbufmode.c (fbufmode): Likewise.
* lib/freading.c (freading): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/fpurge.c (fpurge): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Plan9.
Reported by Jens Staal <staal1978@gmail.com>.
2012-02-02 Jim Meyering <meyering@redhat.com>
file-has-acl: suppress a warning from gcc -Wsuggest-attribute=const
* lib/file-has-acl.c (file_has_acl): This function (for some #ifdefs)
would evoke a new gcc warning. Given all of the #ifdefs, it is better
not even to try to add the attribute. Instead, add a pragma to suppress
the suggestion/warning.
2012-01-31 Karl Berry <karl@gnu.org>
setstate doc: typo.
* doc/posix-functions/setstate.texi (setstate): { not (.
2012-01-31 Bruno Haible <bruno@clisp.org>
popen: Make more robust on Windows.
* lib/popen.c: On native Windows, use the _popen based code even if
HAVE_POPEN is set.
* doc/posix-functions/popen.texi: Mention necessity of COMSPEC
environment variable on native Windows.
2012-01-30 Bruno Haible <bruno@clisp.org>
pclose: Fix typo.
* lib/stdio.in.h (pclose): Fix typo in warning message.
2012-01-30 Bruno Haible <bruno@clisp.org>
doc about getlogin_r, setstate.
* doc/posix-functions/getlogin_r.texi: List the incompatible
declaration problem under "not fixed by gnulib".
* doc/posix-functions/setstate.texi: Mention incompatible declaration
problem on Solaris 11 and other platforms.
2012-01-30 Chuanchang Jia <chuanchang.jia@gmail.com> (tiny change)
Bruno Haible <bruno@clisp.org>
poll tests: Make test more robust.
* tests/test-poll.c: Include macros.h.
(test_accept_first, test_pair, test_socket_pair, test_pipe): Verify
return value of various I/O operations.
* modules/poll-tests (Files): Add tests/macros.h.
2012-01-30 Bruno Haible <bruno@clisp.org>
sys_stat: Fix support for mingw64 and MSVC.
* lib/sys_stat.in.h (stat) [AIX]: Don't redefine 'stat' if the system
header files already do it.
(stat) [mingw, msvc]: Redefine the symbol to which stat is defined, not
stat itself.
Reported by Marc-André Lureau <marcandre.lureau@redhat.com>.
2012-01-30 Bruno Haible <bruno@clisp.org>
wcwidth: Work around bug in UTF-8 locale on OpenBSD 5.0.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also wcwidth of U+05B0.
* doc/posix-functions/wcwidth.texi: Mention the OpenBSD 5.0 bug.
2012-01-29 Bruno Haible <bruno@clisp.org>
quotearg: Fix test failure on MacOS X 10.5.
* tests/test-quotearg-simple.c: Include localcharset.h.
(main): If the locale encoding is not ASCII, bypass the tests of
locale_quoting_style and clocale_quoting_style.
* modules/quotearg-tests (Depends-on): Add 'localcharset'.
2012-01-29 Jim Meyering <meyering@redhat.com>
maint.mk: sc_prohibit_canonicalize_without_use: avoid false positive
* top/maint.mk (sc_prohibit_canonicalize_without_use): Also
detect uses of canonicalize_file_name.
2012-01-28 Bruno Haible <bruno@clisp.org>
test-framework-sh: Fix test failure with AIX 7.1 diff.
* tests/init.sh (compare_): Don't use 'diff -u' if it inserts a space
in column 1, like 'diff -c' does.
* tests/test-init.sh (test_compare): Don't repeat the test from init.sh
whether 'diff -u' is used. Instead, test whether the output contains
some '@' character.
2012-01-28 Paul Eggert <eggert@cs.ucla.edu>
strtoimax: eliminate need for stdint.h, inttypes.h checks
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't use
gl_AC_HEADER_STDINT_H or gl_AC_HEADER_INTTYPES_H. This reduces
the prerequisites for a recently-introduced strtoimax test.
I guess this might cause strtoimax to be replaced when not
strictly necessary on older hosts, but this shouldn't introduce
any bugs and it should make Emacs 'configure' faster on typical
modern hosts. Problem discovered when importing the latest gnulib
to an Emacs test version.
* modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4.
2012-01-28 Bruno Haible <bruno@clisp.org>
sys_time: Override 'struct timeval' on some native Windows platforms.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Test whether tv_sec
has the right type. Set REPLACE_STRUCT_TIMEVAL if not.
(gl_HEADER_SYS_TIME_H_DEFAULTS): Initialize REPLACE_STRUCT_TIMEVAL.
* lib/sys_time.in.h: Include <winsock2.h> also when 'struct timeval'
needs to be overridden.
(timeval): Override if REPLACE_STRUCT_TIMEVAL is set.
* modules/sys_time (Makefile.am): Substitute REPLACE_STRUCT_TIMEVAL.
* tests/test-sys_select.c: Check that the tv_sec member has the same
size as a 'time_t'.
* tests/test-sys_time.c: Likewise.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): If REPLACE_STRUCT_TIMEVAL
is set, set also REPLACE_GETTIMEOFDAY.
* lib/gettimeofday.c (gettimeofday): If 'struct timeval' is overridden,
convert the resulting 'struct timeval' before returning.
* lib/select.c: Include <sys/time.h>.
(select, timeval): Undefine at the right place.
* modules/select (Depends-on): Add sys_time.
* doc/posix-headers/sys_time.texi: Mention the problem with tv_sec on
some Windows platforms.
Reported by Marc-André Lureau <marcandre.lureau@redhat.com>.
2012-01-28 Marc-André Lureau <marcandre.lureau@redhat.com> (tiny change)
accept4, fcntl, socket modules: Avoid warnings on x86_64 mingw64.
* lib/accept4.c (accept4): Use intptr_t to convert handle pointer to
an integer.
* lib/fcntl.c (dupfd): Likewise.
* lib/w32sock.h (SOCKET_TO_FD): Likewise.
2012-01-28 Bruno Haible <bruno@clisp.org>
fcntl: Avoid compilation error on native Windows.
* modules/fcntl (Depends-on): Add 'close'.
2012-01-28 Marc-André Lureau <marcandre.lureau@redhat.com> (tiny change)
select, poll, isatty: Avoid warnings on x86_64 mingw64.
* lib/select.c (IsConsoleHandle): Use intptr_t to convert handle
pointer to an integer.
* lib/poll.c (IsConsoleHandle): Likewise.
* lib/isatty.c (IsConsoleHandle): Likewise.
2012-01-28 Jim Meyering <meyering@redhat.com>
doc: clarify README-release
* top/README-release: Clarify: you should make a point to have
the latest stable versions of build tools in your PATH, and the
reference to buildreq is solely for its list of tool names, not
for its minimal-functional version numbers.
Prompted by discussion with Reuben Thomas and Gary V. Vaughan.
maint.mk: use more readable (yet functionally equivalent) quoting
It is common to quote a single quote in a single quoted string like
this: '...'\''...'. Unless you know the idiom, that looks like
gibberish, so prefer to double-quote the string when possible.
Then you can use a more readable, lone single quote: "...'..."
* top/maint.mk (sc_cast_of_argument_to_free): Quoting like this
"don't" is more readable than the equivalent 'don'\''t'.
(sc_cast_of_x_alloc_return_value): Likewise.
(sc_cast_of_alloca_return_value): Likewise.
(sc_makefile_path_separator_check): Similar: use ":" in '...',
rather than '\'':'\''.
2012-01-27 Paul Eggert <eggert@cs.ucla.edu>
stdalign: relax _Alignof and tighten _Alignas test
* m4/stdalign.m4 (gl_STDALIGN_H): Relax the _Alignof test,
as it was too strict: alignof must divide offsetof, but it need
not equal offsetof. Inspired by Joseph S. Myers's comment
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023#c10>.
Conversely, tighten the _Alignas test a bit, as the resulting
alignment must be exactly 8.
2012-01-27 Bruno Haible <bruno@clisp.org>
stdalign: Document the last change.
* doc/posix-headers/stdalign.texi: Mention GCC bug 52023.
2012-01-27 Paul Eggert <eggert@cs.ucla.edu>
stdalign: check that alignof and offsetof are consistent
* m4/stdalign.m4 (gl_STDALIGN_H): Check for GCC bug 52023.
Problem reported for gnulib by Richard W.M. Jones in
<http://lists.gnu.org/r/bug-gnulib/2012-01/msg00340.html>.
2012-01-27 Jim Meyering <meyering@redhat.com>
update-copyright: accept new option: UPDATE_COPYRIGHT_USE_INTERVALS=2
* build-aux/update-copyright: When UPDATE_COPYRIGHT_USE_INTERVALS=2,
convert a sequence with gaps to the minimal containing range.
For example, convert 2000, 2004-2007, 2009 to 2000-2009.
* tests/test-update-copyright.sh: Test for this.
The FSF confirmed it is ok to do this, assuming there is at
least one significant change per year in the affected range:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29554/focus=29860
2012-01-26 Bruno Haible <bruno@clisp.org>
pipe2: refine doc about thread-safety
* doc/glibc-functions/pipe2.texi: Clarify the extent of the
multithread-safety problem.
* doc/glibc-functions/accept4.texi: Likewise.
2012-01-26 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addopen: Fix 2012-01-08 commit.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN):
In the test program, include <fcntl.h>, for O_RDONLY.
2012-01-26 Eric Blake <eblake@redhat.com>
pipe2: document lack of thread-safety in replacement
* doc/glibc-functions/pipe2.texi (pipe2): Mention thread safety
issue in replacement.
* doc/glibc-functions/accept4.texi (accept4): Likewise.
Based on a report by Eric Wong.
2012-01-24 Marc-André Lureau <marcandre.lureau@redhat.com> (tiny change)
Bruno Haible <bruno@clisp.org>
malloca: Avoid warnings on x86_64 mingw64.
* lib/malloca.c: Include <stdint.h>.
(mmalloca, freea): Use uintptr_t to convert pointers to integers.
* modules/malloca (Depends-on): Add stdint.
* modules/relocatable-prog-wrapper (Depends-on): Likewise.
2012-01-25 Paul Eggert <eggert@cs.ucla.edu>
obstack: remove __STDC__ conditionals
* lib/obstack.h: Remove __STDC__ conditionals, as suggested by Joseph
S. Myers in <http://cygwin.com/ml/libc-alpha/2012-01/msg00104.html>.
This leaves lib/localcharset.c, m4/iconv.m4, and a confusing comment in
m4/include_next.m4 as the only gnulib-maintained places that still
refer to __STDC__.
2012-01-24 Bruno Haible <bruno@clisp.org>
havelib: Modern quoting.
* build-aux/config.rpath: Quote 'like this', not `like this', as per
the recent change to the GNU coding standards.
2012-01-24 Bruno Haible <bruno@clisp.org>
stdint: Improve support for Android.
* lib/stdint.in.h: Test __ANDROID__, not __BIONIC__.
Reported by Simon Josefsson <simon@josefsson.org>.
2012-01-23 Paul Eggert <eggert@cs.ucla.edu>
doc: omit trailing empty lines from INSTALL etc.
* doc/Makefile (INSTALL): Omit trailing empty lines.
(INSTALL.ISO, INSTALL.UTF-8): Build from INSTALL, so that these also
omit trailing empty lines. This simplifies the build procedure.
2012-01-23 Jim Meyering <meyering@redhat.com>
tests: avoid spurious warnings about gl_sockets_startup
Fedora rawhide's gcc version 4.7.0 20120119 with -Wunused-value
would warn about every use of "gl_sockets_startup (SOCKETS_1_1);"
reporting a "statement with no effect".
* tests/test-accept.c (main): Mark as "(void)".
* tests/test-accept4.c (main): Likewise.
* tests/test-bind.c (main): Likewise.
* tests/test-connect.c (main): Likewise.
* tests/test-getpeername.c (main): Likewise.
* tests/test-getsockname.c (main): Likewise.
* tests/test-getsockopt.c (main): Likewise.
* tests/test-listen.c (main): Likewise.
* tests/test-recv.c (main): Likewise.
* tests/test-recvfrom.c (main): Likewise.
* tests/test-send.c (main): Likewise.
* tests/test-sendto.c (main): Likewise.
* tests/test-setsockopt.c (main): Likewise.
* tests/test-shutdown.c (main): Likewise.
2012-01-21 Bruno Haible <bruno@clisp.org>
locale-fr.m4: Fix for Android.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Avoid compilation
failure of the test program on Bionic libc.
2012-01-21 Jim Meyering <meyering@redhat.com>
bootstrap: fail when bootstrap_post_import_hook fails
Otherwise, it's far too easy to miss diagnostics emitted
between gnulib-tool's output and that of running configure.
* build-aux/bootstrap: Fail when bootstrap_post_import_hook fails.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable sc_trailing_blank
* build-aux/pmccabe.css: Remove trailing blanks.
* doc/acl-cygwin.txt: Likewise.
* doc/gnu-oids.texi: Likewise
* cfg.mk: Enable sc_trailing_blank.
Exempt build-aux/texinfo.tex and doc/Copyright/assign.future.manual.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable sc_prohibit_openat_without_use
* cfg.mk: Enable sc_prohibit_openat_without_use.
Exempt lib/selinux-at.c.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable sc_prohibit_cloexec_without_use
* cfg.mk: Enable sc_prohibit_cloexec_without_use.
* lib/dup-safer-flag.c: Don't include "cloexec.h". Not needed.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable sc_prohibit_intprops_without_use
* cfg.mk: Enable sc_prohibit_intprops_without_use
* tests/test-nanosleep.c: Don't include "intprops.h". Not needed.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable sc_prohibit_hash_pjw_without_use
* cfg.mk: Enable sc_prohibit_hash_pjw_without_use.
* top/maint.mk (sc_prohibit_hash_pjw_without_use): Adjust regexp
to match any use of \<hash_pjw\>, i.e., not necessarily with a
following " (".
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: enable double-word-prohibiting rule
* cfg.mk (local-checks-to-skip): Enable sc_prohibit_doubled_word.
Exempt three files.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: remove empty lines at EOF, but excluding modules/*
Apply syntax rules at home as well as abroad. Most changes
were induced by running this:
make srcdir=. _build-aux=build-aux -f top/maint.mk \
sc_prohibit_empty_lines_at_EOF | grep -v modules/ \
| xargs perl -pi -0777 -e 's/\n\n+$/\n/'
* cfg.mk (local-checks-to-skip): Enable sc_prohibit_empty_lines_at_EOF.
Exempt modules/* and two binary files.
Also exempt doc/INSTALL*, per request from Bruno Haible.
* doc/regexprops-generic.texi: *Add* a newline at EOF. There was none.
* doc/Copyright/assign.translation.manual: Remove empty lines at EOF.
* doc/Copyright/request-assign.future: Likewise.
* doc/Copyright/request-disclaim.changes: Likewise.
* doc/INSTALL: Likewise.
* doc/INSTALL.ISO: Likewise.
* doc/INSTALL.UTF-8: Likewise.
* doc/acl-cygwin.txt: Likewise.
* doc/acl-resources.txt: Likewise.
* doc/fdl-1.2.texi: Likewise.
* doc/fdl-1.3.texi: Likewise.
* doc/fdl.texi: Likewise.
* lib/argp-pin.c: Likewise.
* lib/round.c: Likewise.
* lib/unicase/u16-totitle.c: Likewise.
* lib/unictype/block_test.c: Likewise.
* lib/uninorm/canonical-decomposition.c: Likewise.
* m4/README: Likewise.
* m4/relocatable-lib.m4: Likewise.
* tests/test-isnand-nolibm.c: Likewise.
* tests/test-isnand.c: Likewise.
* tests/uninorm/NormalizationTest.txt: Likewise.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: add framework to run syntax-check rules against gnulib sources
* cfg.mk: New file, to disable all currently-failing tests.
We'll enable them one by one, as they are made to pass.
* Makefile (sc_maint): New rule.
2012-01-21 Bruno Haible <bruno@clisp.org>
stdint: Add support for Android.
* lib/stdint.in.h: When included from Bionic <sys/types.h>, just
include the system's <stdint.h>.
Reported by Simon Josefsson <simon@josefsson.org>.
2012-01-19 Jim Meyering <meyering@redhat.com>
bootstrap: add bootstrap_post_import_hook
Bison does still need something like the gnulib_mk_hook whose
invocation I had to remove along with slurp in commit 767ccd40.
Technically, we could get along without it, but doing so would
have required living with a warning and a mandatory post-bootstrap
automake rerun.
* build-aux/bootstrap (gnulib_mk_hook): Remove definition, too.
(bootstrap_post_import_hook): New function.
Invoke it after gnulib-tool --import and before autoreconf.
2012-01-18 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: don't use "no_"-prefixed variable name
* build-aux/gitlog-to-changelog (main): Use getopt's "!" attribute
to enable both --cluster and --no-cluster. Change variable name,
s/\$no_cluster/$cluster/, and reverse usage to match.
gitlog-to-changelog: use "||", not "or" in expressions
* build-aux/gitlog-to-changelog (main): Use "||", not "or" in
expressions.
2012-01-17 Joel E. Denny <joeldenny@joeldenny.org>
gitlog-to-changelog: new option --no-cluster
* build-aux/gitlog-to-changelog: New option --no-cluster, disables
clustering of adjacent commit messages.
2012-01-17 Jim Meyering <meyering@redhat.com>
maint: spell file systems with two words, not one
* m4/ls-mntd-fs.m4 (MOUNTED_INTERIX_STATVFS): Spell file systems with
two words, not one.
2012-01-16 Jim Meyering <meyering@redhat.com>
bootstrap: add a FIXME comment to ensure we eventually remove the hack
* build-aux/bootstrap (gnulib_tool_options): Add comment.
2012-01-16 Eric Blake <eblake@redhat.com>
bootstrap: cater to autoconf 2.59
* build-aux/bootstrap (AUTORECONF): Work even when --no-recursive
is not available.
bootstrap: properly check for libtool
* build-aux/bootstrap (libtoolize): Also run libtool when older
usage is detected.
2012-01-15 Bruno Haible <bruno@clisp.org>
Improve support for MSVC 9.
* lib/unistd.in.h: Include <io.h> when needed to avoid redefinition
clashes on MSVC.
* lib/fcntl.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
2011-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
gnupload: we hold the master copy of this script now
For motivation and more information, see:
<http://lists.gnu.org/r/bug-gnulib/2012-01/msg00222.html>
* build-aux/gnupload: Make it clear in the heading comments that the
master copy of this file is maintained by gnulib. Since we are at
it, bump its copyright year and ...
($scriptversion): ... the date in its version.
($usage): Patches and bug reports should be sent to the gnulib list,
not the automake one.
* config/srclist.txt: Don't try to sync 'gnupload' from automake
anymore.
2012-01-15 Bruno Haible <bruno@clisp.org>
Fix module 'random'.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether random, srandom,
initstate, setstate are declared.
2012-01-14 Bruno Haible <bruno@clisp.org>
Tests for module 'random'.
* modules/random-tests: New file.
* tests/test-random.c: New file, based on tests/test-random_r.c.
New module 'random'.
* lib/stdlib.in.h (random, srandom, initstate, setstate): New
declarations.
* lib/random.c: New file, based on glibc/stdlib/random.c.
* m4/random.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_RANDOM,
HAVE_RANDOM.
* modules/stdlib (Makefile.am): Substitute GNULIB_RANDOM, HAVE_RANDOM.
* modules/random: New file.
* config/srclist.txt: Add an entry for random.c.
* doc/posix-functions/random.texi: Mention the 'random' module.
* doc/posix-functions/initstate.texi: Likewise.
* doc/posix-functions/setstate.texi: Likewise.
* doc/posix-functions/srandom.texi: Likewise.
2012-01-12 Bruno Haible <bruno@clisp.org>
random_r: Use common idioms.
* lib/random_r.c: Include <stdlib.h> first.
random_r: Override incompatible API on AIX, OSF/1.
* lib/stdlib.in.h (random_r, srandom_r, initstate_r, setstate_r):
Override the system function if REPLACE_RANDOM_R is 1.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Require AC_CANONICAL_HOST. On AIX
and OSF/1, set REPLACE_RANDOM_R.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_RANDOM_R.
* modules/stdlib (Makefile.am): Substitute REPLACE_RANDOM_R.
* modules/random_r (configure.ac): Test REPLACE_RANDOM_R.
* doc/glibc-functions/initstate_r.texi: Mention the AIX, OSF/1 problem.
* doc/glibc-functions/random_r.texi: Likewise.
* doc/glibc-functions/setstate_r.texi: Likewise.
random_r: Support for MSVC 9.
* lib/random_r.c: Include stdint.h, not inttypes.h.
2012-01-12 Eric Blake <eblake@redhat.com>
inet_ntop: guard extra work by IF_LINT
* lib/inet_ntop.c (inet_ntop6): Mark spurious initialization, for
better code generation when not checking for warnings.
Suggested by Paul Eggert and Jim Meyering.
strptime: fix regression on mingw
* lib/strptime.c (__strptime_internal) [!_LIBC && !HAVE_TM_GMTOFF]:
Fix regression. Reported by Bruno Haible.
2012-01-11 Reuben Thomas <rrt@sc3d.org>
Bruno Haible <bruno@clisp.org>
copy-file: add error-code-returning variant.
* lib/copy-file.h (GL_COPY_ERR_*): New enumeration items.
(qcopy_file_preserving): New declaration.
* lib/copy-file.c (qcopy_file_preserving): Renamed from
copy_file_preserving. Change return type to 'int'. Don't emit an error
message here.
(copy_file_preserving): New function.
* tests/test-copy-file.c: Include <stdlib.h>.
(main): Test qcopy_file_preserving if the environment variable
NO_STDERR_OUTPUT is set.
* tests/test-copy-file-1.sh: Invoke test-copy-file.sh a second time,
with NO_STDERR_OUTPUT
* tests/test-copy-file-2.sh: Likewise.
2012-01-10 Bruno Haible <bruno@clisp.org>
copy-file: Use 'quote' module consistently.
* lib/copy-file.c (copy_file_preserving): Use quote().
copy-file: Refactor.
* lib/copy-file.c: Include quote.h.
(copy_file_preserving): Call qcopy_acl instead of copy_acl. Emit error
message here.
* modules/copy-file (Depends-on): Add quote.
acl: Export qcopy_acl.
* lib/acl.h (qcopy_acl): New declaration.
* lib/copy-acl.c (qcopy_acl): Make non-static.
acl: Rename a local variable.
* lib/set-mode-acl.c (set_acl): Use same variable name as in copy_acl.
acl: Align return values of copy_acl and qcopy_acl.
* lib/copy-acl.c (copy_acl): Return the same value as qcopy_acl,
maybe < -1.
2012-01-11 Eric Blake <eblake@redhat.com>
strptime: silence gcc warnings
* lib/strptime.c (__strptime_internal) [!_NL_CURRENT],
[!_LIBC && !HAVE_TM_GMTOFF]: Avoid unused variables.
Reported by Daniel P. Berrange.
inet_ntop: silence gcc warning
* lib/inet_ntop.c (inet_ntop6): Initialize best.base.
Reported by Daniel P. Berrange.
2012-01-11 Dmitry V. Levin <ldv@altlinux.org>
getloadavg test: skip the test on GNU/Linux without /proc mounted
GNU libc implements getloadavg(3) on Linux by parsing /proc/loadavg
file. When /proc is not mounted, it always fails with ENOENT.
* tests/test-getloadavg.c (main): Treat ENOENT return code from
getloadavg(3) the same way as ENOSYS and ENOTSUP.
2012-01-10 Bruno Haible <bruno@clisp.org>
regex: Avoid link error on MSVC 9.
* modules/regex (Depends-on): Add wctype.
2012-01-10 Bruno Haible <bruno@clisp.org>
doc: Mention --with-tests option.
* gnulib-tool (func_usage): Suggest --with-tests for --test etc.
* doc/gnulib.texi (Extra tests modules): Mention the need to pass
--with-tests.
Reported by Reuben Thomas.
2012-01-10 Reuben Thomas <rrt@sc3d.org>
users.txt: order package names lexicographically.
* users.txt: Order package names lexicographically.
2012-01-10 Jim Meyering <meyering@redhat.com>
maint.mk: fix description in comment
* top/maint.mk (require_exactly_one_NL_at_EOF_): Fix comment.
ignore-value: remove deprecated ignore_ptr function
* lib/ignore-value.h (ignore_ptr): Remove deprecated function.
* NEWS: Note this.
2012-01-09 Jim Meyering <meyering@redhat.com>
test-init.sh: avoid a subshell
* tests/test-init.sh: Remove protective subshell.
Suggested by Bernhard Voelker. While a subshell is normally
required to protect against older shells (Solaris, FreeBSD) that
warn about a missing program before performing redirection, the
shell-selection tests performed by init.sh probably exclude any
offending shell.
2012-01-08 Bruno Haible <bruno@clisp.org>
setlocale tests: Avoid test failure on Solaris 11.0.
* tests/test-setlocale2.sh: Use 'env' to set the LC_ALL environment
variable.
2012-01-08 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addopen: Work around Solaris 11.0 bug.
* m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): New
macro.
* lib/spawn.in.h (posix_spawn_file_actions_addopen): Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN, not REPLACE_POSIX_SPAWN.
* lib/spawn_faction_addopen.c: Add workaround implementation if
HAVE_WORKING_POSIX_SPAWN.
* modules/spawn (Makefile): Substitute
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN.
* modules/posix_spawn_file_actions_addopen (configure.ac): Invoke
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN. Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN, not REPLACE_POSIX_SPAWN.
(Depends-on): Update conditions.
* doc/posix-functions/posix_spawn_file_actions_addopen.texi: Mention
the Solaris 11 bug.
2012-01-08 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_adddup2: Work around Solaris 11.0 bug.
* m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2.
* m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): New
macro.
* lib/spawn.in.h (posix_spawn_file_actions_adddup2): Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, not REPLACE_POSIX_SPAWN.
* lib/spawn_faction_adddup2.c: Add workaround implementation if
HAVE_WORKING_POSIX_SPAWN.
* modules/spawn (Makefile): Substitute
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2.
* modules/posix_spawn_file_actions_adddup2 (configure.ac): Invoke
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2. Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, not REPLACE_POSIX_SPAWN.
(Depends-on): Update conditions.
* doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Mention
the Solaris 11 bug.
2012-01-08 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_addclose: Work around Solaris 11.0 bug.
* m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Define
HAVE_WORKING_POSIX_SPAWN.
(gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): New macro.
* lib/spawn.in.h (posix_spawn_file_actions_addclose): Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, not REPLACE_POSIX_SPAWN.
* lib/spawn_faction_addclose.c: Add workaround implementation if
HAVE_WORKING_POSIX_SPAWN.
* modules/spawn (Makefile): Substitute
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE.
* modules/posix_spawn_file_actions_addclose (configure.ac): Invoke
gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE. Test
REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, not REPLACE_POSIX_SPAWN.
(Depends-on): Update conditions.
* doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention
the Solaris 11 bug.
2012-01-08 Bruno Haible <bruno@clisp.org>
doc: Update for Solaris 11.0.
* doc/*/*.texi: Mention Solaris 11.0 where appropriate.
* m4/printf.m4: Update comments.
2012-01-08 Bruno Haible <bruno@clisp.org>
mktime: Avoid compilation error on Solaris 11.
* lib/mktime.c (WRAPV): Define to 0 on all non-glibc systems.
2012-01-08 Bruno Haible <bruno@clisp.org>
doc: Small fix.
* doc/posix-headers/nl_types.texi: Correct platforms list.
2012-01-08 Simon Josefsson <simon@josefsson.org>
Add lgpl-3.0 module.
* MODULES.html.sh (Support for building documentation): Add
lgpl-3.0.
* modules/lgpl-3.0: New file.
2012-01-08 Jim Meyering <meyering@redhat.com>
select.c: indent with spaces, not TABs
* lib/select.c (windows_poll_handle): Indent with spaces, not TABs.
2012-01-07 Paolo Bonzini <bonzini@gnu.org>
quotearg: do not use grave accent for left quote
* lib/quotearg.c (gettext_quote): Map "`" to "'" for
locale_quoting_style.
(quotearg_buffer_restyled): Fix example.
* tests/test-quotearg-simple.c (results_g): Adjust test vectors.
2012-01-07 Paolo Bonzini <bonzini@gnu.org>
quotearg: fall back to Unicode single quotes in UTF-8, GB-18030 locales
Most programs do not have translation catalogs for English and much
less separate catalogs for British and American English. Drop the
suggestion to translators about these two, and provide it
automatically for Unicode locales. Like most programs, even those
using American English, we use single quotation marks. This conflicts
with the American typographic convention, but works better when you
cite the entire error message within double quotes. It also tries not
to clash with established practice and with what non-gnulib programs
will usually do.
* lib/quotearg.c (gettext_quote): Hard-code U+2018 and U+2019 when
using an UTF-8 or GB-18030 locale. The list of other locales with
quotes was provided by Bruno Haible.
(quotearg_buffer_restyled): Adjust instructions to translators.
* lib/quotearg.h (locale_quoting_style): Do not put an example in the
text, since this would be wrong when using Unicode.
* modules/quotearg: Depend on c-strcaseeq.
2012-01-07 Paolo Bonzini <bonzini@gnu.org>
quotearg: fix Wikipedia link
* lib/quotearg.c (quotearg_buffer_restyled): Fix link to Wikipedia.
2012-01-07 Simon Josefsson <simon@josefsson.org>
Fix for mingw with MSVC9.
* m4/ld-version-script.m4: Check that compiler rejects version
scripts with syntax errors. Reported by Bruno Haible
<bruno@clisp.org>.
2012-01-06 Bruno Haible <bruno@clisp.org>
Talk about "native Windows API", not "Woe32".
* lib/accept4.c: Update comments to mention native Windows.
* lib/execute.c: Likewise.
* lib/fatal-signal.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/nanosleep.c: Likewise.
* lib/nl_langinfo.c: Likewise.
* lib/pclose.c: Likewise.
* lib/pipe-filter-gi.c: Likewise.
* lib/pipe-filter-ii.c: Likewise.
* lib/pipe.c: Likewise.
* lib/pipe2.c: Likewise.
* lib/popen.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/relocatable.c: Likewise.
* lib/sigaction.c: Likewise.
* lib/sigprocmask.c: Likewise.
* lib/spawn-pipe.h: Likewise.
* lib/spawn-pipe.c: Likewise.
* lib/spawni.c: Likewise.
* lib/stat-time.h: Likewise.
* lib/w32spawn.h: Likewise.
* tests/test-isatty.c: Likewise.
* lib/config.charset: More comments.
* doc/gnulib-intro.texi: Mention native Windows.
* doc/posix-functions/_Exit_C99.texi: Likewise.
* doc/posix-headers/fcntl.texi: Likewise.
2012-01-06 Guillem Jover <guillem@hadrons.org> (tiny change)
argp: Avoid crash if translator uses % characters in a translation.
* lib/argp-parse.c (argp_version_parser): Use a "%s" format string.
Reported by Mats Erik Andersson <gnu@gisladisker.se>.
2012-01-06 Paul Eggert <eggert@cs.ucla.edu>
doc: C11 and C++11 are now official
* doc/posix-headers/assert.texi, doc/posix-headers/stdalign.texi:
* doc/verify.texi, stdalign.in.h, verify.h, m4/gnulib-common.m4:
* m4/stdalign.m4, modules/assert-h, modules/snippet/_Noreturn:
* modules/stdalign:
Replace references to draft C1X to C11, and to draft C++0X to C++11.
2012-01-06 Bruno Haible <bruno@clisp.org>
uc-is-grapheme-break tests: Tweak.
* tests/unigbrk/test-uc-is-grapheme-break.c (main): Fix an error
message.
2012-01-06 Bruno Haible <bruno@clisp.org>
test-init.sh: correct the test for diff -u
* tests/test-init.sh: Also redirect stdout to /dev/null.
2012-01-05 Paul Eggert <eggert@cs.ucla.edu>
Use ', not `, for quoting output.
* build-aux/announce-gen (usage, sizes, print_news_deltas)
(print_changelog_deltas, get_tool_versions, main program):
* build-aux/git-version-gen:
* build-aux/gitlog-to-changelog (usage, parse_amend_file):
* build-aux/move-if-change (help):
* build-aux/useless-if-before-free (usage, main program):
* check-module (parse_module_file, usage)
(find_included_lib_files, check_module):
* lib/argmatch.c (main) [TEST]:
* lib/argp-help.c (_help):
* lib/getopt1.c (main) [TEST]:
* lib/git-merge-changelog.c (usage):
* lib/xstrtol-error.c (xstrtol_error):
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA):
* m4/argz.m4 (gl_FUNC_ARGZ):
* m4/bison.m4 (gl_BISON):
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU):
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER):
* m4/fpending.m4 (gl_PREREQ_FPENDING):
* m4/gc-random.m4 (gl_GC_RANDOM):
* m4/intl.m4 (gt_CHECK_DECL):
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK):
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT)
(AC_TYPE_UNSIGNED_LONG_LONG_INT):
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS):
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
* m4/onceonly.m4 (AC_CHECK_FUNCS_ONCE):
* m4/posixver.m4 (gl_DEFAULT_POSIX2_VERSION):
* tests/test-dirname.c (main):
* tests/test-getpass.c (main):
* tests/test-iconvme.c (main):
* tests/test-parse-datetime.c (LOG):
* tests/test-xstrtoimax.sh:
* tests/test-xstrtol.sh:
* tests/test-xstrtoll.sh:
* tests/test-xstrtoumax.sh:
* tests/unigbrk/test-uc-is-grapheme-break.c (main):
* top/GNUmakefile (abort-due-to-no-makefile):
Quote 'like this', not `like this', as per the recent change to
the GNU coding standards.
2012-01-05 Bruno Haible <bruno@clisp.org>
strtoimax: Don't force a replacement on systems where intmax_t is int.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Use a different test if
'intmax_t' is not larger than 'int'.
Reported by Pádraig Brady <P@draigBrady.com>.
2012-01-05 Bruno Haible <bruno@clisp.org>
doc: Mention NetBSD bugs.
* doc/posix-functions/*printf.texi: Mention a NetBSD 5.1 bug.
* doc/posix-functions/nl_langinfo.texi: Mention another NetBSD 5.1 bug.
2012-01-05 Bruno Haible <bruno@clisp.org>
strtoumax tests: Enhance tests.
* tests/test-strtoumax.c (main): Add tests for large values.
2012-01-05 Bruno Haible <bruno@clisp.org>
strtoimax: Work around AIX 5.1 bug.
* lib/inttypes.in.h (strtoimax): Allow overriding the system's
definition.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Check against the AIX 5.1 bug.
Set HAVE_STRTOIMAX.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize
REPLACE_STRTOIMAX.
* modules/inttypes-incomplete (Makefile.am): Substitute
REPLACE_STRTOIMAX.
* modules/strtoimax (Files): Add m4/stdint_h.m4, m4/inttypes_h.m4.
(configure.ac): Test HAVE_STRTOIMAX, REPLACE_STRTOIMAX.
(Depends-on): Update conditions.
* tests/test-strtoimax.c (main): Add tests for large values.
* doc/posix-functions/strtoimax.texi: Mention the AIX 5.1 bug.
2012-01-05 Bruno Haible <bruno@clisp.org>
inttypes: Modernize.
* lib/inttypes.in.h (strtoimax, strtoumax): Use the C++ safe idioms.
* modules/inttypes-incomplete (Depends-on): Add snippet/c++defs.
(Makefile.am): Update inttypes.h rule.
2012-01-05 Jim Meyering <meyering@redhat.com>
init.sh: don't waste a subshell just to redirect stderr
* tests/init.sh: In testing for diff -u and diff -c, use a
stderr-redirecting exec inside `...` rather than a subshell.
test-init.sh: avoid failure on HP-UX 11.00
* tests/test-init.sh: Skip "diff -u"-comparing step when compare
resolves to diff -c or cmp. Reported by Bruno Haible.
2012-01-05 Bruno Haible <bruno@clisp.org>
Tests for module 'strtoull'.
* modules/strtoull-tests: New file.
* tests/test-strtoull.c: New file, based on tests/test-strtoumax.c.
2012-01-05 Bruno Haible <bruno@clisp.org>
Tests for module 'strtoll'.
* modules/strtoll-tests: New file.
* tests/test-strtoll.c: New file, based on tests/test-strtoimax.c.
2012-01-05 Bruno Haible <bruno@clisp.org>
Tests for module 'strtoul'.
* modules/strtoul-tests: New file.
* tests/test-strtoul.c: New file, based on tests/test-strtoumax.c.
2012-01-05 Bruno Haible <bruno@clisp.org>
Tests for module 'strtol'.
* modules/strtol-tests: New file.
* tests/test-strtol.c: New file, based on tests/test-strtoimax.c.
2012-01-04 Jim Meyering <meyering@redhat.com>
test-init.sh: accommodate Solaris 5.10's different diff -u output
* tests/test-init.sh: Also exempt @@ lines from the comparison
of diff output, since Solaris 5.10 and GNU diff formats differ.
Reported by Stefano Lattarini.
2012-01-04 Paul Eggert <eggert@cs.ucla.edu>
test-posixtm: don't assume signed integer wraparound
* tests/test-posixtm.c (main): Don't assume wraparound semantics
after signed integer overflow. Inspired by (though it may not
fix) Bruno Haible's bug report in
<http://lists.gnu.org/r/bug-gnulib/2012-01/msg00066.html>.
Spell out "Windows 9x" and "Windows XP".
* lib/poll.c, lib/select.c: In comments, replace "Win9x" with
"Windows 9x" and "WinXP" with "Windows XP".
2012-01-04 Jim Meyering <meyering@redhat.com>
test-vc-list-files-cvs.sh: remove obsolete comment
* tests/test-vc-list-files-cvs.sh: Remove obsolete comment about
double exit. Now that's all encapsulated via skip_ and Exit.
2012-01-04 Bruno Haible <bruno@clisp.org>
Talk about "native Windows API", not "Win32".
* lib/classpath.c: Update comments to mention native Windows.
* lib/csharpexec.c: Likewise.
* lib/dup2.c: Likewise.
* lib/error.c: Likewise.
* lib/fcntl.c: Likewise.
* lib/filename.h: Likewise.
* lib/findprog.c: Likewise.
* lib/get-rusage-as.c: Likewise.
* lib/get-rusage-data.c: Likewise.
* lib/getpagesize.c: Likewise.
* lib/javaexec.c: Likewise.
* lib/msvc-inval.c: Likewise.
* lib/msvc-nothrow.c: Likewise.
* lib/nanosleep.c: Likewise.
* lib/nonblocking.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/setlocale.c: Likewise.
* lib/sigaction.c: Likewise.
* lib/strerror_r.c: Likewise.
* lib/tmpdir.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/w32spawn.h: Likewise.
* lib/waitpid.c: Likewise.
* lib/stdio.in.h (fdopen, fopen, freopen): Likewise.
* m4/locale-ar.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
* m4/locale-zh.m4: Likewise.
* m4/printf.m4: Likewise.
* tests/test-cloexec.c: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
* tests/test-file-has-acl.sh: Likewise.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-dup-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-nonblocking-pipe.h: Likewise.
* tests/test-nonblocking-socket.h: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-pipe2.c: Likewise.
* tests/test-spawn-pipe-child.c: Likewise.
* doc/acl-resources.txt: Likewise.
* lib/getaddrinfo.c (WINDOWS_NATIVE): Renamed from WIN32_NATIVE.
* tests/test-poll.c (WINDOWS_NATIVE): Likewise.
* tests/test-select.h (WINDOWS_NATIVE): Likewise.
* lib/localcharset.c: Update comments to mention native Windows.
(WINDOWS_NATIVE): Renamed from WIN32_NATIVE.
* lib/localename.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/relocatable.c: Likewise.
* lib/poll.c (WINDOWS_NATIVE): Renamed from WIN32_NATIVE.
(windows_compute_revents): Renamed from win32_compute_revents.
(windows_compute_revents_socket): Renamed from
win32_compute_revents_socket.
* lib/select.c: Update comments to mention native Windows.
(windows_poll_handle): Renamed from win32_poll_handle.
* m4/threadlib.m4: Update comments to mention native Windows.
(gl_THREADLIB_EARLY_BODY, gl_THREADLIB_BODY): Expect
--enable-threads=windows instead of --enable-threads=win32. Set
USE_WINDOWS_THREADS, not USE_WIN32_THREADS.
* lib/glthread/lock.h: Update comments to mention native Windows.
(USE_WINDOWS_THREADS): Renamed from USE_WIN32_THREADS.
* lib/glthread/lock.c (USE_WINDOWS_THREADS): Renamed from
USE_WIN32_THREADS.
* lib/glthread/cond.h (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/cond.c (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/thread.h (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/thread.c (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/tls.h (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/tls.c (USE_WINDOWS_THREADS): Likewise.
* lib/glthread/yield.h (USE_WINDOWS_THREADS): Likewise.
* tests/test-cond.c (USE_WINDOWS_THREADS): Likewise.
* tests/test-thread_create.c (USE_WINDOWS_THREADS): Likewise.
* tests/test-lock.c (USE_WINDOWS_THREADS): Likewise.
(TEST_WINDOWS_THREADS): Renamed from TEST_WIN32_THREADS.
* tests/test-tls.c: Likewise.
Rationale:
Microsoft renamed the "Win32 API" to "Windows API", as it is available
on both 32-bit and 64-bit Windows systems.
But in gnulib, we treat Cygwin like a Unix platform, therefore the main
line of distinction is between "native Windows" on one side and Unix/
POSIX systems on the other side. More details in
<https://lists.gnu.org/r/bug-gnulib/2012-01/msg00027.html>.
Suggested by Paul Eggert.
2012-01-03 Bruno Haible <bruno@clisp.org>
isatty: Support for MSVC 9.
* doc/posix-functions/isatty.texi: Mention the MSVC problem.
* lib/isatty.c: Include <errno.h>, msvc-inval.h.
(_isatty_nothrow): New function.
(isatty): Use it instead of _isatty.
(IsConsoleHandle): Add comment, from Paolo Bonzini.
* lib/poll.c (IsConsoleHandle): Likewise.
* lib/select.c (IsConsoleHandle): Likewise.
* m4/isatty.m4 (gl_FUNC_ISATTY): Fix comment. Reported by Eli Zaretskii.
(gl_PREREQ_ISATTY): New macro.
* modules/isatty (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_ISATTY.
2012-01-03 Jim Meyering <meyering@redhat.com>
maint.mk: remove temporary transition aid from over 1.5 years ago
* top/maint.mk (_prohibit_regexp): Remove definition whose sole
purpose was to aid in the transition (avoiding silent malfunction)
from that old name to the new _sc_search_regexp. This shim was
added by commit 219c504b.
init.sh: do not try to accommodate compare arguments starting with "-"
* tests/init.sh (compare_dev_null_): Do not try to accommodate
compare arguments that start with "-". Besides, we do not worry
about this when invoking diff or cmp; why start now with sed?
Using "--" to separate options from argument would trigger sed
failure in at least Solaris 7, HP-UX 11.00, IRIX 6.5, FreeBSD 6.4,
OpenBSD 4.9 and NetBSD 5.1. Reported by Bruno Haible.
2012-01-02 Bruno Haible <bruno@clisp.org>
Enhance tests for module 'isatty'.
* modules/isatty-tests (Depends-on): Add pipe-posix.
* tests/test-isatty.c: Include <fcntl.h>.
(DEV_NULL): New macro.
(main): Test the resut of isatty() also on regular files, pipes, and
/dev/null.
New module 'isatty'.
* lib/unistd.in.h (isatty): New declaration.
* lib/isatty.c: New file, based on an idea of
Bastien Roucariès <roucaries.bastien@gmail.com>.
* m4/isatty.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether isatty is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ISATTY, REPLACE_ISATTY.
* modules/unistd (Makefile.am): Substitute GNULIB_ISATTY,
REPLACE_ISATTY.
* modules/isatty: New file.
* doc/posix-functions/isatty.texi: Mention the new module.
Suggested by Paolo Bonzini.
2012-01-02 Bruno Haible <bruno@clisp.org>
canonicalize: Tweak 2011-12-29 commit.
* lib/canonicalize.c (canonicalize_filename_mode): Fix typo in comment.
* lib/canonicalize.h (canonicalize_filename_mode): Update specification.
2012-01-02 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: describe input syntax in --help output
* build-aux/gitlog-to-changelog (usage) [SPECIAL SYNTAX]: New section.
gitlog-to-changelog: fix typo in --help: show backslash before email @
* build-aux/gitlog-to-changelog (usage): An "@" was backslash-escaped
in sources, but not in actual output.
2011-12-30 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: don't malfunction when name contains %-directive
* build-aux/gitlog-to-changelog (main): Don't let a %-directive
in a name string cause trouble. E.g., with a user name of "%s",
gitlog-to-changelog would fail with "Missing argument in sprintf at..."
2011-12-30 Gary V. Vaughan <gary@gnu.org>
gitlog-to-changelog: Copyright-paperwork-exempt: yes == (tiny change)
* build-aux/gitlog-to-changelog (main): Map the string, at beginning
of line in a git commit log, "Copyright-paperwork-exempt: yes", to
the " (tiny change)" notation that is appended to the standard
ChangeLog "date name email" header line.
2012-01-01 Jim Meyering <meyering@redhat.com>
test-framework-sh: init.sh: fix "make dist" failure
When using gnulib-tool's --with-tests option and any module that
depends on test-framework-sh, "make dist" would fail due to the
lack of init.sh *in lib/*. The EXTRA_DIST += init.sh is required
in the gltests directory, and not in the gllib/ directory.
One way to work around that is to move the EXTRA_DIST += init.sh
from the primary module to the -tests one:
* modules/test-framework-sh-tests (EXTRA_DIST): Add init.sh here, ...
* modules/test-framework-sh (Makefile.am): ...not here.
Reported by Tom G. Christensen in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29519
version-etc: update copyright year reported by --version
* lib/version-etc.c (COPYRIGHT_YEAR): Update to 2012.
2011-12-31 Pádraig Brady <P@draigBrady.com>
canonicalize: only stat() if required
* lib/canonicalize.c (canonicalize_filename_mode):
Avoid calling l?stat() when both CAN_MISSING,
and CAN_NOLINKS are set, as we neither need
to resolve symlinks or test component existence.
2011-12-31 Paul Eggert <eggert@cs.ucla.edu>
doc: cover st_ino issues once; add OpenVMS etc.
* doc/posix-functions/stat.texi (stat):
* doc/posix-functions/lstat.texi (lstat):
* doc/posix-functions/fstatat.texi (fstatat):
* doc/posix-functions/fstat.texi (fstat):
Move general 'struct stat' stuff to sys_stat.texi,
leaving behind a pointer.
* doc/posix-headers/sys_stat.texi (sys/stat.h):
Merge duplicate info about 'struct stat' problems into here.
Mention issues with OpenVMS, GNU/Linux NFS, NetApp, ClearCase,
and suggest partial workarounds.
same-inode: port to OpenVMS
* lib/same-inode.h (SAME_INODE): Port to OpenVMS by checking all
three st_ino values.
2011-12-30 Pádraig Brady <P@draigBrady.com>
canonicalize: fix references to stat() and lstat()
* lib/canonicalize.c (canonicalize_filename_mode):
Ensure references always resolve to a replacement
function if required (even via a macro).
2011-12-30 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: remove a little duplication
* build-aux/gitlog-to-changelog (main): Grep @lines once,
rather than twice.
2011-12-29 Pádraig Brady <P@draigBrady.com>
canonicalize: add support for not resolving symlinks
* lib/canonicalize.h: Add the CAN_NOLINKS flag to
indicate we don't want to follow symlinks. Also
provide CAN_MODE_MASK to aid setting these existing
mutually exclusive values.
* lib/canonicalize.c (canonicalize_filename_mode):
Extract the flags from can_mode parameter, which
are currently just used to select between stat()
and lstat(). Also ensure that mutually exclusive
values are flagged immediately as invalid.
* tests/test-canonicalize.c: Verify symlinks are
not followed, and that invalid flag combinations
are diagnosed.
2011-12-25 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: do not clump multi-paragraph entries
Identical header lines (date,name,email+coauthors) are suppressed,
thus putting all entries with those same characteristics under
a single header. However, when a log entry consists of two or
more paragraphs, it may not be clear where it starts and ends.
This change makes it so that such an entry is always separated
from others by a header line, even when that header would
otherwise be suppressed.
* build-aux/gitlog-to-changelog: Implement the above.
Inspired by a related request from Stefano Lattarini in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29456
2011-12-25 Paul Eggert <eggert@cs.ucla.edu>
announce-gen: fix `cmd' typo in diagnostic
* build-aux/announce-gen (print_changelog_deltas): Fix typo in
diagnostic: a missing '$' meant that the command was not output.
2011-12-23 Jim Meyering <meyering@redhat.com>
test-framework-sh: distribute init.sh
* modules/test-framework-sh (EXTRA_DIST): Append init.sh.
Otherwise, "make -C gnulib-tests check" (at least in grep) would
fail due to the lack of init.sh.
maint: remove explicit Files: tests/init.sh; depend on test-framework-sh
* modules/atexit-tests: Rather than listing tests/init.sh,
now that there's a module for it, simply depend on that new module.
* modules/closein-tests: Likewise.
* modules/exclude-tests: Likewise.
* modules/getcwd-tests: Likewise.
* modules/perror-tests: Likewise.
* modules/pread-tests: Likewise.
* modules/pwrite-tests: Likewise.
* modules/vc-list-files-tests: Likewise.
* modules/verify-tests: Likewise.
* modules/xalloc-die-tests: Likewise.
* modules/xstrtoimax-tests: Likewise.
* modules/xstrtol-tests: Likewise.
* modules/xstrtoll-tests: Likewise.
* modules/xstrtoumax-tests: Likewise.
* modules/yesno-tests: Likewise.
2011-12-22 Jim Meyering <meyering@redhat.com>
test-framework-sh: add minimal tests of init.sh's compare function
* modules/test-framework-sh-tests: New file.
* tests/test-init.sh: New file.
test-framework-sh: new module
* modules/test-framework-sh: New file.
* MODULES.html.sh (Support for maintaining and releasing projects):
List it.
init.sh: do not emit simulated diff output to stderr
* tests/init.sh (compare_dev_null_): Print to stdout, not stderr.
2011-12-22 Reuben Thomas <rrt@sc3d.org>
.gitignore: ignore gnulib.dvi and regex.info
* doc/.gitignore:add gnulib.dvi and regex.info
2011-12-22 Jim Meyering <meyering@redhat.com>
init.sh: correct previous change
* tests/init.sh (compare): My previous change was wrong.
Don't clobber "$?". Spotted by Stefano Lattarini and Pádraig Brady.
init.sh: avoid unwarranted test failure when using "set -e"
* tests/init.sh (compare): Ignore nonzero exit from compare_dev_null_.
Otherwise, in a test script that uses "set -e" (like many in vc-dwim)
a use like "compare exp out" would get evoke an unconditional failure.
2011-12-21 Alfred M. Szmidt <ams@gnu.org>
bootstrap: fix it to honor $ACLOCAL_FLAGS once again
The 2011-12-17 change, commit 767ccd40, replaced a manual invocation
of aclocal that used explicit $ACLOCAL_FLAGS with an invocation of
autoreconf that did not.
* build-aux/bootstrap: Use $ACLOCAL_FLAGS when invoking autoreconf.
Reported by Mats Erik Andersson <gnu@gisladisker.se>.
2011-12-17 Jim Meyering <meyering@redhat.com>
bootstrap: remove some now-unneeded code
This script arose back when gnulib-tool was young.
Since then, it has seen improvements that render much of this
script unnecessary. In particular, it can now make symlinks
to the files it uses. Also, I no longer see as much value in
marking files as read-only via comments.
If you relied on the symlink-creation feature of the preceding
version of this script, you can get most of that functionality
by adding the --symlink option to the definition of
gnulib_tool_option_extras in your bootstrap.conf file.
* build-aux/bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions.
Run autopoint and libtoolize *before* gnulib-tool.
After it, run an abbreviated autoreconf, rather than a loop around
all tools.
(slirp, bt_mark_as_generated): Remove functions.
2011-12-18 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: fix typo
* lib/ftoastr.h: Fix misspelling in comment.
2011-12-18 Reuben Thomas <rrt@sc3d.org>
* top/README-release: fix punctuation.
2011-12-17 Jim Meyering <meyering@redhat.com>
bootstrap: correct the recent buildreq change
The 2011-12-07 commit, 39f5f1e4, omitted some '*'s, and thus
had no effect.
* build-aux/bootstrap (buildreq): Bracket each search term with
"*...*", so that the shell "case" statement works as intended.
Add comments.
2011-12-17 Bernhard Voelker <mail@bernhard-voelker.de>
build: let bootstrap resort to wget when downloading .po files
* build-aux/bootstrap (download_po_files): Fallback to wget when
downloading the .po files via rsync fails. This is necessary to
bootstrap from behind a strict firewall.
2011-12-15 Paul Eggert <eggert@cs.ucla.edu>
stdint: don't assume C++11 when compiling with g++
Problem reported for glibc 2.14 and g++ by Alexander V. Lukyanov in
<http://lists.gnu.org/r/bug-gnulib/2011-12/msg00099.html>.
* m4/stdint.m4 (gl_STDINT_H): Don't go to extra work to make it
work also in C++ before C++11, as that improperly inhibits
generating a substitute stdint.h for that case.
2011-12-15 Paul Eggert <eggert@cs.ucla.edu>
alloca: protect comment from gnulib-tool
* lib/alloca.c: Change "GCC version 2" to "GCC 2" in comment, so
that gnulib-tool doesn't think it's a license, and munge it to
say "GCC version 3".
2011-12-15 Ludovic Courtès <ludo@gnu.org> (tiny change)
localcharset: Use an absolute path in TESTS_ENVIRONMENT.
* modules/localcharset (LOCALCHARSET_TESTS_ENVIRONMENT): Use
$(abs_top_builddir) instead of $(top_builddir).
2011-12-14 Alex Nelson <ajnelson@cs.ucsc.edu> (tiny change)
strftime-tests: also test nanoseconds
* tests/test-strftime.c (T): Add a test of %N.
2011-12-13 Paul Eggert <eggert@cs.ucla.edu>
inttypes, stdint: add C++11 support
C++11 says there's no need to define __STDC_CONSTANT_MACROS etc.
when including inttypes.h and stdint.h. Support this change to
the standard.
* doc/posix-headers/inttypes.texi (inttypes.h):
* doc/posix-headers/stdint.texi (stdint.h): Document this.
* lib/inttypes.in.h (__STDC_FORMAT_MACROS) [! __cplusplus]:
Define if not defined already, for the benefit of pre-C++11 hosts.
Define the standard format macros (e.g., PRId8) always.
* lib/stdint.in.h (__STDC_CONSTANT_MACROS, __STDC_LIMIT_MACROS):
Likewise, if __cpluspus. Define the standard constant and limit
macros (e.g., INT8_C, INT8_MAX) always.
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Do not define
GL_TRIGGER_STDC_LIMIT_MACROS or __STDC_LIMIT_MACROS; no longer needed.
* m4/stdint.m4 (gl_STDINT_H): Update comments about these macros.
* tests/test-inttypes.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS)
(__STDC_FORMAT_MACROS): Do not define, since we assume C++11 API now.
* tests/test-stdint.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS):
Likewise.
2011-12-12 Paul Eggert <eggert@cs.ucla.edu>
nonblocking tests: Fix test failure on Linux/PPC.
Suggested by Prerna Saxena in
<http://lists.gnu.org/r/bug-gnulib/2011-12/msg00080.html>.
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/PPC64]:
Set to 1100000.
2011-12-12 Jim Meyering <meyering@redhat.com>
argmatch: don't hard-code `' when listing valid option arguments
* lib/argmatch.c (argmatch_valid): Don't hard-code `%s'. Instead,
use the quote function to add quotes. Use fputs rather than
fprintf for the format string with no format directive.
2011-12-07 Eric Blake <eblake@redhat.com>
bootstrap: detect tools required by gnulib-tool
* build-aux/bootstrap (buildreq): Provide minimum implicit
dependencies.
* DEPENDENCIES: Mention patch as a prereq.
2011-12-04 Bruno Haible <bruno@clisp.org>
sethostname: Port to Windows platforms.
* lib/sethostname.c: Provide an alternate implementation for Windows
platforms.
* tests/test-sethostname2.c (geteuid): Redefine on Cygwin.
(main): Skip the test if sethostname() fails with EPERM. On Windows
platforms, don't check the result of gethostname().
2011-12-04 Bruno Haible <bruno@clisp.org>
Jim Meyering <meyering@redhat.com>
tests: Avoid spurious error message on platforms without mktemp program.
* tests/init.sh (mktempd_): Run mktemp in a subcommand.
2011-12-04 Bruno Haible <bruno@clisp.org>
sethostname: Fix documentation.
* doc/glibc-functions/sethostname.texi: Move the Solaris problem to the
"not fixed" section.
2011-12-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Verify that the License field is present and non-empty.
* gnulib-tool (func_get_license_raw): New function, extracted from
func_get_license.
(func_get_license): Use it. Warn if the module is not a test module and
has no license.
Suggested by Jim Meyering.
2011-12-03 Bruno Haible <bruno@clisp.org>
sethostname tests: Fix link error on mingw.
* tests/test-sethostname1.c: New file, extracted from
tests/test-sethostname.c.
* tests/test-sethostname2.c: New file, extracted from
tests/test-sethostname.c.
* tests/test-sethostname.c: Remove file.
* modules/sethostname-tests (Files): Add tests/test-sethostname1.c,
tests/test-sethostname2.c. Remove tests/test-sethostname.c.
(Depends-on): Add gethostname.
(Makefile.am): Compile both test-sethostname1 and test-sethostname2.
Link the latter with $(GETHOSTNAME_LIB).
sethostname tests: Fix compilation error on mingw.
* tests/test-sethostname.c: Don't include <sys/types.h>.
(geteuid): Use a dummy value without uid_t.
* modules/sethostname-tests (Depends-on): Remove sys_types.
sethostname tests: Avoid a gcc warning.
* tests/test-sethostname.c (main): Remove an unused variable.
Tweak last commit.
* modules/sethostname-tests (Files): Sort by decreasing importance.
(configure.ac): Check for geteuid.
* tests/test-sethostname.c (main): Emit error messages to stderr. Skip
the test when there's nothing to test. Drop an unnecessary cast.
Improve an error message. Verify that the final sethostname() call
succeeds.
2011-12-01 Ben Walton <bwalton@artsci.utoronto.ca>
Add a test suite for the sethostname module.
* modules/sethostname-tests: New file. A test program
for the sethostname module.
* tests/test-sethostname.c: Likewise.
2011-12-03 Bruno Haible <bruno@clisp.org>
Tweak last commit.
* lib/unistd.in.h (sethostname): Keep declarations in alphabetic order.
Fix preprocessor directives indentation. Fix typos.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Keep alphabetic order.
* modules/unistd (Makefile): Likewise.
2011-12-01 Ben Walton <bwalton@artsci.utoronto.ca>
Integrate the sethostname module into unistd.
* lib/unistd.in.h: Integrate the SETHOSTNAME preprocessor handling
into the unistd.h header.
* m4/unistd_h.m4: Setup the autoconf handling for the SETHOSTNAME
preprocessor directives.
* modules/unistd: Setup the Makefile substitutions of the
SETHOSTNAME preprocessor directives.
2011-12-03 Bruno Haible <bruno@clisp.org>
Tweak last commit.
* lib/sethostname.c: Don't include <string.h>.
(sethostname): No need to copy the argument string to the stack. Don't
call clearerr. Preserve errno when fprintf failed.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Comment about HOST_NAME_MAX.
Don't invoke AC_REPLACE_FUNCS.
* modules/sethostname (Link): Remove empty section.
* doc/glibc-functions/sethostname.texi: Gnulib does not fix the ENOSYS
failure problem.
2011-12-01 Ben Walton <bwalton@artsci.utoronto.ca>
New module 'sethostname'.
* lib/sethostname.c (sethostname): New file. Provide sethostname
for systems that lack it.
* m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): New file. Detection of
sethostname declaration and function.
* modules/sethostname: New file. Define the sethostname module.
2011-12-03 Bruno Haible <bruno@clisp.org>
Tweak last commit.
* m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Trim blank line.
2011-12-01 Ben Walton <bwalton@artsci.utoronto.ca>
Split the HOST_NAME_MAX detection into a separate m4 macro.
* m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Make this a separate
macro so it can be used by the pending sethostname module.
2011-12-03 Bruno Haible <bruno@clisp.org>
Fix module descriptions syntax.
* modules/argv-iter (License): Fix syntax.
* modules/di-set (License): Likewise.
* modules/ino-map (License): Likewise.
Reported by Stefano Lattarini <stefano.lattarini@gmail.com>.
2011-12-02 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port to Clang 3.0
Problem reported by Simon Josefsson in
<http://lists.gnu.org/r/bug-gnulib/2011-12/msg00005.html>.
* doc/posix-headers/stdalign.texi (stdalign.h): Mention Clang 3.0,
which has <stdalign.h> but which does not define alignof.
* m4/stdalign.m4 (gl_STDALIGN_H): Check for Clang 3.0's problem.
2011-12-01 Eric Blake <eblake@redhat.com>
mktempd: silence dd usage
* build-aux/mktempd (rand_bytes): Silence dd.
2011-11-30 Simon Josefsson <simon@josefsson.org>
manywarnings: Don't mention gcc version in docstring.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Doc fix. Suggested by
Jim Meyering <meyering@redhat.com>.
2011-11-30 Jim Meyering <meyering@redhat.com>
hash: mark a few floating point constants with "f" suffix
* lib/hash.c (DEFAULT_GROWTH_THRESHOLD, DEFAULT_GROWTH_FACTOR)
(DEFAULT_SHRINK_THRESHOLD, DEFAULT_SHRINK_FACTOR): Mark literal
floating point constants with "f", since they're destined to be
saved/used as "float"s.
2011-11-29 Paolo Bonzini <bonzini@gnu.org>
float tests: Correct and re-enable assertion about LDBL_MIN_EXP.
* tests/test-float.c (test_long_double): Correct and re-enable the
assertion about LDBL_MIN_EXP that was disabled on 2011-08-31.
2011-11-29 Matthew Wala <wala1@illinois.edu> (tiny change)
Avoid subtracting two pointers that don't point into the same block.
* lib/argp-help.c (hol_append): Reorder pointer subtractions so that
only pointers into the same memory block are subtracted. We cannot
assume that sizeof (ptrdiff_t) == sizeof (void *).
2011-11-29 Eric Blake <eblake@redhat.com>
maint.mk: add syntax check for use of compare from init.sh
* top/maint.mk (sc_prohibit_reversed_compare_failure): New rule,
moved here from coreutils.
manywarnings: drop -Wunsuffixed-float-constants
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): C99 does not allow
'1.0D', which is the only way to silence this warning for 'double'.
2011-11-29 Jim Meyering <meyering@redhat.com>
hash: mark compute_bucket_size with the pure attribute
* lib/hash.c (compute_bucket_size): Use _GL_ATTRIBUTE_PURE.
quotearg, propername: correct pragma guard expression
* lib/quotearg.c: Enable pragma for gcc-4.6 and newer, not 4.3 and newer.
* lib/propername.c: Likewise. Reported by Bernhard Voelker.
2011-11-28 Jim Meyering <meyering@redhat.com>
propername: do not mark proper_name with the const attribute
* lib/propername.h (proper_name): Do *not* mark as _GL_ATTRIBUTE_CONST,
since it examines data pointed to by its parameter.
* lib/propername.c (proper_name): Instead, add a pragma to suppress
the suggestion from -Wsuggest-attribute=const.
propername: mark one more function as const
* lib/propername.h (proper_name): Mark as _GL_ATTRIBUTE_CONST.
2011-11-27 Jim Meyering <meyering@redhat.com>
mark functions with const and pure attributes
Mark functions per suggestions from gcc-4.6 when using these options:
-Wsuggest-attribute=pure -Wsuggest-attribute=const.
Use gnulib's _GL_ATTRIBUTE_PURE and _GL_ATTRIBUTE_CONST macros.
Follow these guidelines: when possible, apply the attribute to
an extern declaration, not to its definition. Apply it to the
definition only when the definition is static.
* lib/argmatch.h (argmatch, argmatch_to_argument): Mark.
* lib/argv-iter.h (argv_iter_n_args): Likewise.
* lib/base64.h (isbase64): Likewise.
* lib/basename-lgpl.c (last_component, base_len): Likewise.
* lib/c-ctype.h (c_isascii, c_isalnum, c_isalpha): Likewise.
(c_isblank, c_iscntrl, c_isdigit, c_islower, c_isgraph): Likewise.
(c_isprint, c_ispunct, c_isspace, c_isupper, c_isxdigit): Likewise.
(c_tolower, c_toupper): Likewise.
* lib/c-strcase.h (c_strcasecmp, c_strncasecmp): Likewise.
* lib/chdir-long.c (find_non_slash): Likewise.
* lib/dirname.h (base_len, dir_len, last_component): Likewise.
* lib/exclude.h (fnmatch_pattern_has_wildcards): Likewise.
* lib/file-type.h (file_type): Likewise.
* lib/filenamecat-lgpl.c (longest_relative_suffix): Likewise.
* lib/filevercmp.c (verrevcmp): Likewise.
* lib/freadahead.h (freadahead): Likewise.
* lib/fts.c (fts_maxarglen): Likewise.
* lib/hash-pjw.h (hash_pjw): Likewise.
* lib/hash-triple.h (triple_hash_no_name, triple_compare_ino_str):
* lib/hash.c (is_prime, next_prime): Likewise.
* lib/hash.c (hash_get_n_buckets, hash_get_n_buckets_used): Likewise.
(hash_get_n_entries, hash_get_max_bucket_length): Likewise.
(hash_table_ok, hash_get_first, hash_string): Likewise.
(compute_bucket_size): Likewise.
* lib/i-ring.h (i_ring_empty): Likewise.
* lib/isnan.c (isnanl): Likewise.
* lib/math.h (isnanl, rpl_isnanl): Likewise.
* lib/memcasecmp.h (memcasecmp): Likewise.
* lib/memchr2.h (memchr2): Likewise.
* lib/memcmp2.h (memcmp2): Likewise.
* lib/parse-datetime.y (lookup_zone): Likewise.
* lib/sockets.h (gl_sockets_startup, gl_sockets_cleanup)
[!WINDOWS_SOCKETS]: Likewise.
* lib/strnlen1.h (strnlen1): Likewise.
* lib/uniwidth.in.h (uc_width): Likewise.
* lib/quotearg.c: Add pragma to avoid unwarranted suggestion from
gcc's -Wsuggest-attribute=pure for quoting_options_from_style.
(quoting_options_from_style): Add a comment.
* lib/propername.h (proper_name): Add a comment.
2011-11-27 Bruno Haible <bruno@clisp.org>
Remove unused macros from !_LIBC code in glibc-borrowed files.
* lib/fnmatch.c (STRCOLL): Remove macro.
* lib/fnmatch_loop.c (STRCOLL): Remove undef.
* lib/glob.c (__stat, __readdir64): Remove macros.
* lib/tempname.c (__open64, __xstat64): Remove macros.
Suggested by Paul Eggert.
2011-11-27 Bruno Haible <bruno@clisp.org>
getcwd: Fix link error on MSVC 9.
* modules/getcwd (Depends-on): Add readdir, rewinddir.
2011-11-27 Bruno Haible <bruno@clisp.org>
Don't set REPLACE_FOO to 1 if HAVE_FOO is 0.
* m4/opendir.m4 (gl_FUNC_OPENDIR): Don't set REPLACE_OPENDIR to 1 if
HAVE_OPENDIR is 0.
* m4/closedir.m4 (gl_FUNC_CLOSEDIR): Don't set REPLACE_CLOSEDIR to 1 if
HAVE_CLOSEDIR is 0.
* m4/dup2.m4 (gl_FUNC_DUP2): Don't set REPLACE_DUP2 to 1 if HAVE_DUP2
is 0.
* m4/dup3.m4 (gl_FUNC_DUP3): Update comments.
2011-11-27 Bruno Haible <bruno@clisp.org>
getcwd: Fix bug from 2011-08-17.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Set REPLACE_GETCWD to 1 only on
platforms that need it.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Consider a return
code of 4 to be a failure, not a success. This ensures that
REPLACE_GETCWD becomes 1 on OpenBSD 4.9 and NetBSD 5.1.
2011-11-27 Bruno Haible <bruno@clisp.org>
binary-io tests: Avoid test failure on mingw when libtool is used.
* tests/test-binary-io.c (main): Don't remove t-bin-out2.tmp here.
Don't verify the size of t-bin-out1.tmp here.
* tests/test-binary-io.sh: Verify it here.
Reported by Simon Josefsson.
2011-11-26 Bruno Haible <bruno@clisp.org>
Fix conflict between two instantiations of module 'unistd'.
* gnulib-tool (func_emit_autoconf_snippet): Substitute
${include_guard_prefix} also in the autoconf snippet.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Don't set GNULIB_UNISTD_H_GETOPT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Don't initialize
GNULIB_UNISTD_H_GETOPT.
* modules/getopt-posix (configure.ac): Set the
GNULIB_${gl_include_guard_prefix}_UNISTD_H_GETOPT variable.
* modules/getopt-gnu (configure.ac): Likewise.
* modules/unistd (Makefile.am): Change the substitution value of
GNULIB_UNISTD_H_GETOPT to depend on the include guard prefix.
Reported by Simon Josefsson.
2011-11-25 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Doc and comments.
* doc/posix-functions/posix_memalign.texi: Refer to the pagealign_alloc
module.
* lib/pagealign_alloc.c (pagealign_alloc): Add comment.
2011-11-25 Jim Meyering <meyering@redhat.com>
test-update-copyright.sh: avoid false-positive failure
* tests/test-update-copyright.sh: Use $TMP.? (not $TMP.*), to work
around false positive failure on Cygwin/Windows. The latter was
matching erroneously-created files with names like
update-copyright.test-ex.4.bak. Reported by Simon Josefsson.
2011-11-25 Simon Josefsson <simon@josefsson.org>
valgrind-tests.m4: Avoid breakage if valgrind on bash fails.
* m4/valgrind-tests.m4: Check that the parameters that will be
used works, not just a subset of them. Reported by Bruno Haible
<bruno@clisp.org>.
2011-11-24 Jim Meyering <meyering@redhat.com>
test-stdalign.c: comment out long double tests
* tests/test-stdalign.c: Don't try to reduce alignment of long double
variables. That provokes errors like this from gcc-4.7.0 20111124:
error: '_Alignas' specifiers cannot reduce alignment of \
'static_longdouble_alignas'.
2011-11-22 Jim Meyering <meyering@redhat.com>
init.sh: make "compare /dev/null FILE" output more readable
* tests/init.sh (compare_): Document the preferred order of arguments.
(emit_diff_u_header_): New function.
(compare_dev_null_): Emit a simulated diff, rather than just the
contents of the unexpected file. Suggestion from Bruno Haible.
2011-11-21 Jim Meyering <meyering@redhat.com>
Eric Blake <eblake@redhat.com>
init.sh: work around OSF/1 5.1's mishandling of /dev/null
* tests/init.sh: Make our compare function slightly more portable.
Reported by Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020
2011-11-21 Simon Josefsson <simon@josefsson.org>
* m4/gnulib-common.m4 (_Noreturn): Check that _MSC_VER is defined
before using it, in code that ends up in config.h.
2011-11-20 Bruno Haible <bruno@clisp.org>
getcwd: Work around getcwd bug on AIX 5..7.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Require
AC_CANONICAL_HOST. Assign exit code 31 to the bug seen on AIX 5.1..7.1.
Use a different value for gl_cv_func_getcwd_path_max. Move the
definition of HAVE_PARTLY_WORKING_GETCWD from here...
* m4/getcwd.m4 (gl_FUNC_GETCWD): ... to here. Invoke
gl_FUNC_GETCWD_PATH_MAX also when $gl_cv_func_getcwd_null is 'no'.
Define HAVE_MINIMALLY_WORKING_GETCWD.
* lib/getcwd.c (__getcwd): Don't use the system's getcwd on platforms
where it is not even minimally working, that is, on AIX.
* tests/test-getcwd.c (test_long_name): Distinguish the same cases as
m4/getcwd-path-max.m4.
(main): Update exit code computation.
* doc/posix-functions/getcwd.texi: Mention list of platforms where
getcwd does not handle long file names.
2011-11-20 Bruno Haible <bruno@clisp.org>
getcwd: Fix bug from 2009-09-10.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Treat "guessing yes" like "yes", not
like "no".
2011-11-20 Simon Josefsson <simon@josefsson.org>
* m4/manywarnings.m4: Add more warnings from gcc 4.6.2.
2011-11-20 Bruno Haible <bruno@clisp.org>
fma tests: Avoid shadowing local variables.
* tests/test-fma2.h (test_function): Reduce scope of x, y, z, result,
expected.
2011-11-20 Bruno Haible <bruno@clisp.org>
copysignf tests: Fix.
* tests/test-copysignf.c: Fix signature check.
2011-11-20 Bruno Haible <bruno@clisp.org>
fma: Remove unused code.
* lib/fma.c (DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): Remove
unused macros.
2011-11-20 Bruno Haible <bruno@clisp.org>
sethostname: Fix doc about AIX.
* doc/glibc-functions/sethostname.texi: Drop mention that AIX 5.1 lacks
sethostname; it has it.
sethostname: Mention more portability problems.
* doc/glibc-functions/sethostname.texi: Mention the missing declaration
problem.
Reported by Ben Walton <bwalton@artsci.utoronto.ca>.
2011-11-19 Bruno Haible <bruno@clisp.org>
Depend on module fcntl-h when AT_FDCWD is used.
* modules/utimens (Depends-on): Add fcntl-h.
* modules/areadlinkat (Depends-on): Likewise.
* modules/areadlinkat-with-size (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchmodat (Depends-on): Likewise.
* modules/fchownat (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/mkdirat (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/dup2-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
2011-11-19 Bruno Haible <bruno@clisp.org>
euidaccess: Update a comment.
* lib/euidaccess.c: Update comment about platforms with faccessat.
2011-11-19 Bruno Haible <bruno@clisp.org>
openat: Fix file list.
* modules/openat (Files): Remove lib/at-func.c.
2011-11-19 Bruno Haible <bruno@clisp.org>
fstatat: Simplify.
* lib/fstatat.c (AT_FUNC_NAME): Define as fstatat. On platforms where
gnulib should define rpl_fstatat, there is a
"#define fstatat rpl_fstatat" in <sys/stat.h>.
2011-11-19 Bruno Haible <bruno@clisp.org>
Ensure 'inline' can be used in tests/test-utimens-common.h.
* modules/fdutimensat-tests (configure.ac): Require AC_C_INLINE.
* modules/futimens-tests (configure.ac): Likewise.
* modules/utimens-tests (configure.ac): Likewise.
* modules/utimensat-tests (configure.ac): Likewise.
2011-11-19 Simon Josefsson <simon@josefsson.org>
* lib/hash.c (hash_insert): Use hash_insert_if_absent,
not hash_insert0.
(hash_insert_if_absent): Doc fix.
2011-11-19 Simon Josefsson <simon@josefsson.org>
* m4/readline.m4 (gl_FUNC_READLINE): Check for readline/history.h.
2011-11-18 Paul Eggert <eggert@cs.ucla.edu>
test-getcwd: disambiguate exit status
* tests/test-getcwd.c (test_long_name): Return 0..7.
(main): Exit with an unambiguous exit status. The old
code yielded a mysterious mixture of two failure codes.
fstatat: fix configuration bug on mingw, OpenBSD 4, Solaris 8
* lib/fstatat.c (AT_FUNC_NAME): Use HAVE_FSTAT, not
HAVE_WORKING_FSTATAT_ZERO_FLAG, to decide whether to define
rpl_fstatat or fstatat. This should fix the other problem
reported by Kai Habel in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00237.html>.
A similar problem was reported for OpenBSD 4.6 by Mats Erik Andersson
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00239.html>
and I reproduced it on a Solaris 8 host we still have in production.
2011-11-18 Jim Meyering <meyering@redhat.com>
hash: deprecate poorly-named hash_insert0: use hash_insert_if_absent
* lib/hash.c (hash_insert_if_absent): Rename from hash_insert0.
Add a sentence to the comment.
(hash_insert0): New function that simply calls hash_insert_if_absent.
* lib/hash.h (hash_insert_if_absent): Declare it.
(hash_insert0): Add deprecation attribute.
(_GL_ATTRIBUTE_DEPRECATED): Define.
* lib/di-set.c (di_set_insert): Use hash_insert_if_absent,
not hash_insert0.
* NEWS: Mention it, even though it's not really an incompatible change.
2011-11-18 Dagobert Michelsen <dam@opencsw.org> (tiny change)
openat: avoid compilation failure due to lack of <errno.h> inclusion
* lib/openat.c: Include <errno.h>.
2011-11-17 Paul Eggert <eggert@cs.ucla.edu>
* modules/getcwd (Depends-on): Add fdopendir.
This fixes one of the two problems reported by Kai Habel in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00237.html>.
modules/crypto/gc-*: simplify dependencies and fix stdalign.h bug
stdalign problem reported by Ian Beckwith in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00238.html>.
* modules/crypto/gc-arcfour (Depends-on):
Depend conditionally on crypto/arcfour.
* modules/crypto/gc-arctwo (Depends-on):
Depend conditionally on crypto/arctwo.
* modules/crypto/gc-des (Depends-on):
Depend conditionally on crypto/des.
* modules/crypto/gc-hmac-md5 (Depends-on):
Depend conditionally on crypto/hmac-md5.
* modules/crypto/gc-hmac-sha1 (Depends-on):
Depend conditionally on crypto/hmac-sha1.
* modules/crypto/gc-md2 (Depends-on): Remove stdint, minmax.
* modules/crypto/gc-md4 (Depends-on):
Depend conditionally on crypto/md4.
* modules/crypto/gc-md5 (Depends-on):
Depend conditionally on crypto/md5.
* modules/crypto/gc-rijndael (Depends-on):
Depend conditionally on crypto/rijndael.
* modules/crypto/gc-sha1 (Depends-on):
Depend conditionally on crypto/sha1.
* modules/crypto/gc-arcfour:
* modules/crypto/gc-arctwo:
* modules/crypto/gc-des:
* modules/crypto/gc-hmac-md5:
* modules/crypto/gc-hmac-sha1:
* modules/crypto/gc-md2:
* modules/crypto/gc-md4:
* modules/crypto/gc-md5:
* modules/crypto/gc-rijndael:
* modules/crypto/gc-sha1:
(Files, Depends-on, configure.ac): Remove now-unnecessary stuff,
now that the conditional dependencies do the work for us.
2011-11-17 Jim Meyering <meyering@redhat.com>
tests: factor st_ctime-comparison out of two headers
* tests/test-utimens-common.h (ctime_compare): Define.
* tests/test-futimens.h (test_futimens): Replace open-coded equivalent.
* tests/test-lutimens.h (test_lutimens): Likewise.
* tests/test-utimens.h (test_utimens): Likewise.
test-getcwd: don't leave behind a confdir3/ directory upon interrupt
Invoke the test program via an init.sh-using wrapper.
* tests/test-getcwd.sh: New file.
* modules/getcwd-tests (Files): Add it.
(Makefile.am) [TESTS]: Invoke the shell script wrapper.
2011-11-01 Gary V. Vaughan <gary@gnu.org>
gitlog-to-changelog: support multi-author commits.
The FSF cares about keeping track of all authors of patches to its
projects, but Git doesn't provide obvious support for multi-author
changesets. Consensus seems to be forming around the use of extra
Signed-off-by inspired lines in the log message formatted as
`Co-authored-by: A U Thor <email@example.com>' for round-tripping
multi-author commits between version control systems.
* gitlog-to-changelog: Extract `Co-authored-by:' lines from the git
log message and output in standard ChangeLog multi-author format.
Reported by Peter Rosin <peda@lysator.liu.se>
2011-11-15 Ben Walton <bwalton@artsci.utoronto.ca> (tiny change)
Bruno Haible <bruno@clisp.org>
Fix some modules' file list.
* modules/fstatat (Files): Add m4/lstat.m4.
* modules/openat (Files): Likewise.
* modules/unlinkat (Files): Likewise.
2011-11-15 Gary V. Vaughan <gary@gnu.org>
maint.mk: fix tight-scope.mk generation in VPATH builds.
* top/maint.mk (tight-scope.mk): Make sure to prefix file
reference with $(srcdir) so that the file is found correctly even
when running `make syntax-check' in a VPATH build.
2011-11-13 Bruno Haible <bruno@clisp.org>
Jim Meyering <meyering@redhat.com>
Silence successful tests that use 'compare' on AIX, HP-UX, Solaris.
* tests/init.sh (compare): Remove "No differences encountered" or
synonymous output from the 'diff' program.
2011-11-13 Bruno Haible <bruno@clisp.org>
Makefile: Tweak indentation.
* Makefile: Use tab as first character in every line that contains rule
commands.
2011-11-13 Bruno Haible <bruno@clisp.org>
Syntax check for copyright statements.
* check-copyright: New file.
* Makefile (sc_check_copyright): New rule.
2011-11-13 Simon Josefsson <simon@josefsson.org>
* build-aux/git-version-gen: Add --prefix to configure the tag
match string.
2011-11-13 Simon Josefsson <simon@josefsson.org>
* build-aux/git-version-gen: Add --help and --version.
2011-11-12 Jim Meyering <meyering@redhat.com>
revamp the other test-exclude?.sh scripts to use init.sh, too
* tests/test-exclude1.sh: Use init.sh.
* tests/test-exclude2.sh: Likewise.
* tests/test-exclude3.sh: Likewise.
* tests/test-exclude4.sh: Likewise.
* tests/test-exclude5.sh: Likewise.
* tests/test-exclude6.sh: Likewise.
* tests/test-exclude7.sh: Likewise.
* tests/test-exclude8.sh: Likewise.
* modules/exclude-tests (Files): List init.sh.
test-exclude2.sh, test-exclude5.sh: fail if test-exclude fails
These shell scripts ignored failure of the binary test-exclude,
so making the latter return 77 didn't cause them to be skipped.
* tests/test-exclude5.sh: Exit with test-exclude's error status
when that program fails. Revamp to use init.sh.
* tests/test-exclude2.sh: Likewise.
test-exclude: fix a typo
* tests/test-exclude.c (main): Test for "leading_dir", not "leading-dir".
2011-11-11 Bruno Haible <bruno@clisp.org>
obstack: Fix compilation error on MSVC 9.
* lib/obstack.c (print_and_abort): Declare with _Noreturn specifier.
2011-11-11 Jim Meyering <meyering@redhat.com>
test-exclude: skip tests rather than failing on deficient systems
* tests/test-exclude.c (main): Skip tests that use FNM_CASEFOLD
and FNM_LEADING_DIR on systems that lack the definitions. This affects
at least Solaris 9. Reported and diagnosed by Dagobert Michelsen in
http://thread.gmane.org/gmane.comp.gnu.grep.bugs/3947/focus=3950
2011-11-10 Bruno Haible <bruno@clisp.org>
ptsname_r test: Avoid gcc warning on glibc systems.
* tests/test-ptsname_r.c (null_ptr): New function.
(test_errors): Use it.
2011-11-10 Bruno Haible <bruno@clisp.org>
ptsname_r: Avoid compilation error on OSF/1 5.1.
* lib/stdlib.in.h (ptsname_r): Override if REPLACE_PTSNAME_R is 1.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_PTSNAME_R.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Set REPLACE_PTSNAME_R if the
function is not declared or incompatibly declared.
* modules/stdlib (Makefile.am): Substitute REPLACE_PTSNAME_R.
* modules/ptsname_r (Depends-on, configure.ac): Update.
* doc/glibc-functions/ptsname_r.texi: Mention the OSF/1 problems.
2011-11-10 Bruno Haible <bruno@clisp.org>
fstatat: Make cross-compilation guess succeed everywhere except on AIX.
* m4/fstatat.m4 (gl_FUNC_FSTATAT): Require AC_CANONICAL_HOST.
When cross-compiling, guess yes on all platforms except AIX.
Reported by Ludovic Courtès <ludo@gnu.org>.
2011-11-09 Bruno Haible <bruno@clisp.org>
ptsname_r tests: Fix bugs.
* tests/test-ptsname_r.c (test_errors): Change return type to 'void'.
Fix ptsname_r calls. Reduce loop rounds to a reasonable amount.
2011-11-09 Paul Eggert <eggert@cs.ucla.edu>
fstatat: work with cross-compilation
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00136.html>.
* m4/fstatat.m4 (gl_FUNC_FSTATAT): When cross-compiling, report
"cross-compiling" and assume the bug is present. Replace
FSTATAT_ZERO_FLAG_BROKEN with HAVE_WORKING_FSTATAT_ZERO_FLAG with
an inverted sense, to be more conservative about our assumptions.
* lib/fstatat.c (rpl_fstatat): Adjust to renamed macro.
2011-11-09 Bruno Haible <bruno@clisp.org>
Improve MODULES.html output.
* modules/mkfifoat (Description): Use the word "function".
* modules/readlinkat (Description): Likewise.
* modules/symlinkat (Description): Likewise.
2011-11-09 Eric Blake <eblake@redhat.com>
ptsname_r-tests: new test module
* modules/ptsname_r-tests: New module.
* tests/test-ptsname_r.c: New file.
ptsname_r: new module
* modules/ptsname_r: New module.
* m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): New file.
* lib/ptsname.c (__ptsname_r): Split...
* lib/ptsname_r.c: ...into new file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl.
(gl_STDLIB_H_DEFAULTS): Set witness defaults.
* modules/stdlib (Makefile.am): Substitute witnesses.
* lib/stdlib.in.h (ptsname_r): Declare it.
* doc/glibc-functions/ptsname_r.texi (ptsname_r): Document it.
* MODULES.html.sh (Misc): Likewise.
* modules/ptsname (Depends-on): Alter dependency.
* doc/posix-functions/ptsname.texi (ptsname): Mention new module.
2011-11-09 Jim Meyering <meyering@redhat.com>
announce-gen: be more concise when there's only one URL+tarball
* build-aux/announce-gen (get_tool_versions): When you distribute
only one type of tarball, combine the first two "Here are..."
sections and make the key-checking grammar independent of
how many tarballs there are.
2011-11-09 Eric Blake <eblake@redhat.com>
openpty: provide a stub on mingw
* lib/pty.in.h (includes): Provide forward declarations.
* lib/openpty.c (openpty) [mingw]: Provide ENOSYS stub.
raise: fix mingw handling of SIGPIPE
* lib/sigprocmask.c (_gl_raise_SIGPIPE): Provide a return value.
2011-11-08 Bruno Haible <bruno@clisp.org>
More conditional dependencies.
* modules/faccessat (Depends-on): Add conditions.
* modules/fchmodat (Depends-on): Likewise.
* modules/fchownat (Depends-on): Likewise.
* modules/fstatat (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/unlinkat (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/mkdirat (Depends-on): Add sys_stat. Add conditions.
* modules/linkat (Depends-on): Refine the conditions.
* modules/renameat (Depends-on): Likewise.
2011-11-08 Bruno Haible <bruno@clisp.org>
faccessat: Move AC_LIBOBJ invocation to module description.
* m4/faccessat.m4 (gl_PREREQ_FACCESSAT): New macro.
(gl_FUNC_FACESSAT): Don't test for access() here. Move AC_LIBOBJ
invocation from here...
* modules/faccessat (configure.ac): ... to here. Invoke
gl_PREREQ_FACCESSAT.
2011-11-08 Bruno Haible <bruno@clisp.org>
faccessat: Simplify autoconf macro.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Don't require gl_FUNC_OPENAT,
gl_FUNC_EUIDACCESS.
2011-11-08 Bruno Haible <bruno@clisp.org>
renameat: Fix dependencies.
* modules/renameat (Depends-on): Add stdbool.
2011-11-08 Bruno Haible <bruno@clisp.org>
mkfifoat: Fix module description.
* modules/mkfifoat (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR,
not gl_UNISTD_MODULE_INDICATOR.
2011-11-08 Bruno Haible <bruno@clisp.org>
fstatat: Remove unused dependency.
* modules/fstatat (Depends-on): Remove fstat.
2011-11-08 Simon Josefsson <simon@josefsson.org>
GNUmakefile: behave when Makefile is missing.
* top/GNUmakefile: Always initialize _build-aux and _autoreconf.
2011-11-08 Bruno Haible <bruno@clisp.org>
openat: Conditionalize dependencies.
* lib/openat.c: Reduce the scope of some #includes.
* modules/openat (Depends-on): Add conditions.
2011-11-07 Jim Meyering <meyering@redhat.com>
maint.mk: extract GPG key ID without using a temporary file
* top/maint.mk (gpg_key_ID): Extract GPG key ID from signed tag, but
without using a temporary file. Based on a suggestion from Werner Koch
in http://thread.gmane.org/gmane.comp.encryption.gpg.devel/16496
2011-11-07 Eric Blake <eblake@redhat.com>
grantpt: fix typo
* lib/stdlib.in.h (grantpt): Check correct function.
maint.mk: silence new syntax check
* top/maint.mk (sc_prohibit_dirent_without_use): Add missing @.
2011-11-06 Bruno Haible <bruno@clisp.org>
Doc about floating-point and math API.
* doc/posix-headers/float.texi: Mention problem with FLT_ROUNDS.
* doc/posix-headers/math.texi: Mention problem with math_errhandling.
2011-11-06 Bruno Haible <bruno@clisp.org>
stdalign tests: Skip the test when compiled by Sun C.
* tests/test-stdalign.c (main): Skip the test on Sun C.
2011-11-06 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Complete the 2011-06-05 change.
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): When a C++ compiler is found but
does not support namespaces, set the variable to "no", not to ":".
2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
* doc/posix-headers/stdalign.texi (stdalign.h): Mention Sun review ID.
2011-11-06 Bruno Haible <bruno@clisp.org>
copysignl: Fix result for zero argument on HP-UX 11 with HP C.
* lib/copysignl.c (compute_minus_zerol) [HP-UX]: New function.
(minus_zerol) [HP-UX]: New macro.
(unary_minus) [HP-UX]: New function.
(copysignl) [HP-UX]: Use unary_minus function.
2011-11-06 Bruno Haible <bruno@clisp.org>
ldexp, ldexpf, ldexpl: Enhance tests.
* tests/test-ldexp.h: New file, combining code from tests/test-ldexp.c
and tests/test-ldexpl.c.
* tests/test-ldexpl.c: (DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO,
LDEXP, MIN_EXP, MAX_EXP): New macros.
Include test-ldexp.h.
(main): Just call test_function.
* tests/test-ldexp.c: Include float.h, isnand-nolibm.h, minus-zero.h,
infinity.h, nan.h.
(DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO, LDEXP, MIN_EXP,
MAX_EXP): New macros.
Include test-ldexp.h.
(x, y): Remove variables.
(main): Just call test_function.
* tests/test-ldexpf.c: Include float.h, isnanf-nolibm.h, minus-zero.h,
infinity.h, nan.h.
(DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO, LDEXP, MIN_EXP,
MAX_EXP): New macros.
Include test-ldexp.h.
(x, y): Remove variables.
(main): Just call test_function.
* modules/ldexpl-tests (Files): Add tests/test-ldexp.h.
* modules/ldexp-tests (Files): Add tests/test-ldexp.h,
tests/minus-zero.h, tests/infinity.h, tests/nan.h.
(Depends-on): Add isnand-nolibm, signbit, float.
* modules/ldexpf-tests (Files): Add tests/test-ldexp.h,
tests/minus-zero.h, tests/infinity.h, tests/nan.h.
(Depends-on): Add isnanf-nolibm, signbit, float.
2011-11-06 Bruno Haible <bruno@clisp.org>
math tests: Cosmetics.
* tests/test-math-c++.cc: Reorder declarations.
2011-11-05 Bruno Haible <bruno@clisp.org>
fma*: Simplify test.
* tests/test-fma2.h (FORGIVE_GLIBC_BUG): Remove macro.
(test_function): Remove all if (FORGIVE_GLIBC_BUG) statements.
Tests for module 'fmal'.
* modules/fmal-tests: New file.
* tests/test-fmal1.c: New file.
* tests/test-fmal2.c: New file.
New module 'fmal'.
* lib/math.in.h (fmal): New declaration.
* lib/fmal.c: New file.
* m4/fmal.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fmal is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAL, HAVE_FMAL, REPLACE_FMAL.
* modules/math (Makefile.am): Substitute GNULIB_FMAL, HAVE_FMAL,
REPLACE_FMAL.
* modules/fmal: New file.
* doc/posix-functions/fmal.texi: Mention the new module and the various
bugs.
Tests for module 'fmaf'.
* modules/fmaf-tests: New file.
* tests/test-fmaf1.c: New file.
* tests/test-fmaf2.c: New file.
New module 'fmaf'.
* lib/math.in.h (fmaf): New declaration.
* lib/fmaf.c: New file.
* m4/fmaf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fmaf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAF, HAVE_FMAF, REPLACE_FMAF.
* modules/math (Makefile.am): Substitute GNULIB_FMAF, HAVE_FMAF,
REPLACE_FMAF.
* modules/fmaf: New file.
* doc/posix-functions/fmaf.texi: Mention the new module and the various
bugs.
Tests for module 'fma'.
* modules/fma-tests: New file.
* tests/test-fma1.c: New file.
* tests/test-fma1.h: New file.
* tests/test-fma2.c: New file.
* tests/test-fma2.h: New file.
New module 'fma'.
* lib/math.in.h (fma): New declaration.
* lib/fma.c: New file.
* m4/fma.m4: New file.
* m4/fegetround.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whethern fma is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMA, HAVE_FMA, REPLACE_FMA.
* modules/math (Makefile.am): Substitute GNULIB_FMA, HAVE_FMA,
REPLACE_FMA.
* modules/fma: New file.
* doc/posix-functions/fma.texi: Mention the new module and the various
bugs.
Extend gl_MATHFUNC.
* m4/mathfunc.m4 (gl_MATHFUNC): Accept an 4th parameter of INCLUDES.
Support 'void' as argument type.
* m4/rint.m4 (gl_FUNC_RINT): Update gl_MATHFUNC invocation.
2011-11-05 Jim Meyering <meyering@redhat.com>
maint.mk: also prohibit inclusion of dirent.h without use
* top/maint.mk (sc_prohibit_dirent_without_use): New rule.
2011-11-05 Bruno Haible <bruno@clisp.org>
ldexpl tests: Avoid test failure on MSVC 9.
* tests/test-ldexpl.c (main): Use a temporary variable for the expected
value. Needed in order to enforce the conversion from a value greater
than LDBL_MAX to Infinity.
2011-11-05 Bruno Haible <bruno@clisp.org>
New modules 'at-internal', 'openat-h', split off from module 'openat'.
* modules/at-internal: New file, extracted from modules/openat.
* modules/openat-h: New file.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_OPENAT. Don't
invoke gl_PREREQ_OPENAT and gl_MODULE_INDICATOR.
* modules/openat (Description): Add reference to POSIX function.
(Files): Remove lib/openat.h, lib/openat-proc.c.
(Depends-on): Add at-internal, openat-h. Remove fdopendir, gettext-h,
intprops, unistd.
(configure.ac): Remove AC_LIBOBJ of openat-proc. Invoke
gl_PREREQ_OPENAT, gl_MODULE_INDICATOR here. Invoke
gl_FCNTL_MODULE_INDICATOR.
(Include): Remove unistd.h, openat.h.
* modules/areadlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
openat-die, openat-h, save-cwd.
* modules/areadlinkat-with-size (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
openat-die, openat-h, save-cwd, unistd.
* modules/faccessat (Files): Add lib/at-func.c, lib/openat-priv.h.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/fchmodat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, unistd.
* modules/fchownat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, sys_stat.
* modules/fdopendir (Files): Remove lib/openat-priv.h,
lib/openat-proc.c.
(Depends-on): Add at-internal.
(condigure.ac): Remove AC_LIBOBJ of openat-proc.
* modules/fstatat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, openat,
stdbool, unistd.
* modules/fts (Depends-on): Add openat-h.
* modules/linkat (Depends-on): Add at-internal, openat-h. Remove
openat.
* modules/mkdirat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h,
openat, stdbool, sys_stat.
* modules/mkfifoat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/openat-die (Depends-on): Add openat-h. Remove openat.
* modules/readlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/renameat (Depends-on): Add at-internal, openat-h. Remove
openat.
* modules/selinux-at (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, extensions, fchdir,
fcntl-h, openat-die, openat-h, save-cwd, unistd. Remove openat.
* modules/symlinkat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, openat-die,
openat-h, save-cwd. Remove fcntl-h, openat.
* modules/unlinkat (Files): Remove lib/openat.h.
(Depends-on): Add at-internal, openat-h. Remove dirent, openat,
stdbool.
* modules/utimensat (Files): Add lib/at-func.c.
(Depends-on): Add at-internal, dosname, errno, fchdir, fcntl-h,
openat-die, openat-h, save-cwd.
* modules/fchownat-tests (Depends-on): Add openat-h. Remove openat.
* modules/fdutimensat-tests (Depends-on): Add openat.
* modules/fstatat-tests (Depends-on): Add openat-h.
* modules/readlinkat-tests (Depends-on): Add openat.
* modules/symlinkat-tests (Depends-on): Add openat.
2011-11-05 Bruno Haible <bruno@clisp.org>
openat: Include <stdbool.h>.
* lib/openat.c: Include <stdbool.h>.
2011-11-04 Bruno Haible <bruno@clisp.org>
fchownat, renameat, unlinkat: Fix dependencies.
* modules/fchownat (Depends-on): Add fstatat.
* modules/renameat (Depends-on): Likewise.
* modules/unlinkat (Depends-on): Likewise.
2011-11-04 Paul Eggert <eggert@cs.ucla.edu>
openat: remove direct dependency on dirent
* lib/openat.h: Don't include <dirent.h>; it's no longer needed,
and hasn't been needed ever since fdopendir was split into its own
module on 2009-08-31.
* modules/openat (Depends-on): Remove dirent.
2011-11-04 Bruno Haible <bruno@clisp.org>
renameat: Optimize code size.
* modules/renameat (configure.ac): Don't compile at-func2.c if
REPLACE_RENAMEAT is 1.
2011-11-04 Bruno Haible <bruno@clisp.org>
openat tests: Fix file list.
* modules/openat-tests (Files): Add tests/test-open.h.
2011-11-04 Bruno Haible <bruno@clisp.org>
openat, fchmodat, fchownat, linkat, renameat: Fix dependencies.
* modules/fchmodat (Depends-on): Add openat-die.
* modules/fchownat (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/openat (Depends-on): Add dirent.
2011-11-04 Jim Meyering <meyering@redhat.com>
at-func*.c: fix comments
* lib/at-func2.c: Correct/improve first-line comment.
* lib/at-func.c: Correct grammar in first-line comment.
2011-11-04 Bruno Haible <bruno@clisp.org>
New module 'mkdirat', split off from module 'openat'.
* m4/mkdirat.m4: New file. extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't require gl_SYS_STAT_H_DEFAULTS.
Don't test for mkdirat. Don't set GNULIB_MKDIRAT, HAVE_MKDIRAT.
* modules/mkdirat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/mkdirat.c.
(Depends-on): Remove mkdir.
(configure.ac): Remove AC_LIBOBJ of mkdirat.
(Include): Remove <sys/stat.h>.
* modules/mkdirat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-mkdirat.c,
tests/test-mkdir.h.
(Depends-on): Remove ignore-value.
(Makefile.am): Remove rules for test-mkdirat.
* doc/posix-functions/mkdirat.texi: Mention module 'mkdirat' instead
of module 'openat'.
* NEWS: Mention the change.
2011-11-04 Bruno Haible <bruno@clisp.org>
closedir: Avoid warning on mingw.
* lib/closedir.c: Include <unistd.h>.
2011-11-04 Bruno Haible <bruno@clisp.org>
New module 'fstatat', split off from module 'openat'.
* lib/openat.h (statat, lstatat): Enable only if GNULIB_FSTATAT is
defined.
* m4/fstatat.m4: New file. extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FSTATAT. Don't invoke
gl_FUNC_FSTATAT.
(gl_FUNC_FSTATAT): Moved to m4/fstatat.m4.
* modules/fstatat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/fstatat.c.
(Depends-on): Remove lstat.
(configure.ac): Remove AC_LIBOBJ of fstatat.
* modules/fstatat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-fstatat.c,
tests/test-lstat.h, tests/test-stat.h.
(Depends-on): Remove getcwd-lgpl.
(Makefile.am): Remove rules for test-fstatat.
* doc/posix-functions/fstatat.texi: Mention module 'fstatat' instead
of module 'openat'.
* NEWS: Mention the change.
* modules/getcwd (Depends-on): Add fstatat.
* modules/linkat (Depends-on): Likewise.
* modules/mkfifoat-tests (Depends-on): Likewise.
* modules/utimensat (Depends-on): Add fstatat. Remove openat.
2011-11-03 Bruno Haible <bruno@clisp.org>
New module 'unlinkat', split off from module 'openat'.
* m4/unlinkat.m4: New file, extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_UNLINKAT,
REPLACE_UNLINKAT, HAVE_UNLINKAT. Don't test for unlinkat.
* modules/unlinkat: New file, extracted from modules/openat. Correct
the dependency conditions.
* modules/openat (Files): Remove lib/unlinkat.c.
(Depends-on): Remove rmdir, unlink.
(configure.ac): Remove AC_LIBOBJ of unlinkat.
* modules/unlinkat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-unlinkat.c,
tests/test-rmdir.h, tests/test-unlink.h.
(Depends-on): Remove unlinkdir.
(Makefile.am): Remove rules for test-unlinkat.
* doc/posix-functions/unlinkat.texi: Mention module 'unlinkat' instead
of module 'openat'.
* NEWS: Mention the change.
* modules/linkat-tests (Depends-on): Add unlinkat.
* modules/mkfifoat-tests (Depends-on): Likewise.
* modules/readlinkat-tests (Depends-on): Likewise.
2011-11-02 Bruno Haible <bruno@clisp.org>
New module 'fchmodat', split off from module 'openat'.
* lib/openat.h (chmodat, lchmodat): Enable only if GNULIB_FCHMODAT is
defined.
* m4/fchmodat.m4: New file, extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHMODAT. Don't test
for fchmodat, lchmod. Don't set HAVE_FCHMODAT.
* modules/fchmodat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/fchmodat.c.
(configure.ac): Remove AC_LIBOBJ of fchmodat.
* modules/fchmodat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-fchmodat.c.
(Makefile.am): Remove rules for test-fchmodat.
* doc/posix-functions/fchmodat.texi: Mention module 'fchmodat' instead
of module 'openat'.
* NEWS: Mention the change.
2011-11-02 Jim Meyering <meyering@redhat.com>
putenv: indent #definition of "environ" to placate cppi
* lib/putenv.c (environ): Make indentation reflect cpp nesting.
gitlog-to-changelog: provide a ChangeLog-repair mechanism
Git logs are often treated as immutable, because editing them
changes the SHA1 checksums of all descendants. Thus, errors in
git logs tend to stay there forever. However, when we generate
a ChangeLog file -- typically for distribution -- from that git log,
we can actually make corrections in the generated file. The key
lies in recording in machine-readable/applicable form the desired
corrections. See --help for description and an example.
* build-aux/gitlog-to-changelog (parse_amend_file): New function.
(usage): Describe it; alphabetize option descriptions.
(main): Honor the new option, carefully.
2011-11-01 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: avoid an infloop
* build-aux/gitlog-to-changelog: Don't infloop for a commit log
that ends up being empty.
2011-11-01 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: Fix sed-script shell quoting and locale issues.
(func_module): Replace foo=` ... sed -e COMPLICATED ... ` with
bar=COMPLICATED; foo=` ... sed -e "$bar" ... ` when COMPLICATED
contains (possibly-quoted) backslashes. This should avoid
all-too-common shell bugs if COMPLICATED contains backslashes in
the "wrong" places. Reported by David Evans in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00013.html>.
When 'sed' uses character ranges like A-Z, invoke it in the C locale,
because we want ASCII ranges. Is there some reason we don't use
the C locale everywhere in this script?
(func_module, top level): Avoid unwanted pathname expansion when
$repo_url_prefix or $repo_url_suffix_repl contain shell
metacharacters like '?' and '*'.
2011-11-01 Bruno Haible <bruno@clisp.org>
fchownat: Improve description.
* modules/fchownat (Description): Add link to function.
2011-11-01 Paul Eggert <eggert@cs.ucla.edu>
* tests/test-stdalign.c (TEST_ALIGNMENT): Shrink back to 8.
mingw supports alignments only up to 8 (!). Reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-11/msg00006.html>.
* doc/posix-headers/stdalign.texi (stdalign.h): Document this.
2011-11-01 Bruno Haible <bruno@clisp.org>
alignof: Avoid collision with stdalign module.
* lib/alignof.h (alignof): Remove macro.
* NEWS: Mention the change.
Reported by Paul Eggert.
2011-11-01 Bruno Haible <bruno@clisp.org>
New module 'fchownat', split off from module 'openat'.
* lib/openat.h (chownat, lchownat): Enable only if GNULIB_FCHOWNAT is
defined.
* m4/fchownat.m4: New file, extracted from m4/openat.m4.
* m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHOWNAT. Don't
invoke gl_FUNC_FCHOWNAT.
(gl_FUNC_FCHOWNAT_DEREF_BUG, gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG,
gl_FUNC_FCHOWNAT): Moved to m4/fchownat.m4.
* modules/fchownat: New file, extracted from modules/openat.
* modules/openat (Files): Remove lib/fchownat.c.
(Depends-on): Remove lchown.
(configure.ac): Remove AC_LIBOBJ of fchownat.
* modules/fchownat-tests: New file, extracted from modules/openat-tests.
* modules/openat-tests (Files): Remove tests/test-fchownat.c,
tests/test-chown.h, tests/test-lchown.h, tests/nap.h.
(Depends-on): Remove mgetgroups, usleep, stat-time.
(configure.ac): Remove test for getegid.
(Makefile.am): Remove rules for test-fchownat.
* doc/posix-functions/fchownat.texi: Mention module 'fchownat' instead
of module 'openat'.
* NEWS: Mention the change.
2011-10-31 Paul Eggert <eggert@cs.ucla.edu>
stdalign: port better to MSVC and to Sun C 5.11
This fixes some of the problems reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-10/msg00300.html>.
* doc/posix-headers/stdalign.texi (stdalign.h): Document more
shortcomings of MSVC and of Sun C 5.11.
* lib/stdalign.in.h (_Alignas): Omit bogus extra parenthesis
around __declspec arg.
* modules/stdalign-tests (Files): Add tests/macros.h.
* tests/test-stdalign.c: Do not include <stdlib.h>; no longer needed.
Include macros.h, for ASSERT.
(DECLARE_ALIGNED): Remove.
(TEST_ALIGNMENT): Define to 16 if alignment is supported (more likely
to catch bug), and to 1 if not (simplifies the rest of the code).
(CHECK_STATIC): Always declare the alignment test vars; that's simpler.
(CHECK_AUTO): Remove.
(CHECK_ALIGNED): Check only the alignment of the static vars,
since auto var alignment isn't supported by Sun C 5.11.
(CHECK_TYPES): Remove. All uses replaced by inline code, so that
ASSERT failures are easier to diagnose.
2011-10-31 Bruno Haible <bruno@clisp.org>
doc about some IRIX 5.3 problems.
* doc/posix-functions/getpwnam_r.texi: Mention incompatible declaration
on IRIX 5.3.
* doc/posix-headers/poll.texi: Mention missing nfds_t on IRIX 5.3.
* doc/posix-functions/ptsname.texi: Mention missing declaration on IRIX
5.3.
* doc/posix-functions/grantpt.texi: Likewise.
* doc/posix-functions/unlockpt.texi: Likewise.
* doc/posix-functions/lgamma.texi: Likewise.
* doc/posix-functions/nextafter.texi: Likewise.
* doc/posix-functions/remainder.texi: Likewise.
* doc/posix-functions/select.texi: Mention misplaced declaration on
IRIX 5.3.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-10-31 Dmitry V. Levin <ldv@altlinux.org>
gitlog-to-changelog: fix git-log invocation.
git-log mishandles date strings before 1970-01-01 UTC, and there is
no use to specify --since=1970-01-01 by default anyway.
* build-aux/gitlog-to-changelog: By default, when no --since option
was given, do not specify explicit --since option to git-log.
2011-10-30 Dmitry V. Levin <ldv@altlinux.org>
gitlog-to-changelog: new option --append-dot.
* build-aux/gitlog-to-changelog: New option --append-dot, makes the
first non-blank line of each commit message terminated with a dot.
2011-10-30 Bruno Haible <bruno@clisp.org>
ffsl, ffsll: Avoid compilation error due to 'restrict'.
* lib/ffsl.h: Include <config.h>.
Suggested by Tom G. Christensen <tgc@jupiterrise.com>.
2011-10-30 Jim Meyering <meyering@redhat.com>
GNUmakefile: reenable "make syntax-check" for most projects
Since Friday's commit 05e2d798, "maint.mk: don't maintain a second
build-aux variable", "syntax-check" would do nothing but succeed with
the "No version control files detected..." diagnostic (unless you
happened to override _build-aux via cfg.mk).
* top/GNUmakefile (_autoreconf, _build-aux): Move default definitions
to precede inclusion of maint.mk. Otherwise, these variables would
be used undefined in any project that does not override the default.
2011-10-29 Dmitry V. Levin <ldv@altlinux.org>
gitlog-to-changelog: treat a message with only blank lines as empty.
* build-aux/gitlog-to-changelog: Move the code that removes leading and
trailing blank lines before the code that issues a warning about an
empty commit message.
2011-10-30 Jim Meyering <meyering@redhat.com>
test-parse-datetime.c: avoid new DST-related false positive test failure
* tests/test-parse-datetime.c (gmt_offset): Determine the "gmt_offset"
based on the time/date we'll convert, not the current time.
Otherwise, the moment we cross a DST boundary like today's in
Europe, (CEST to CET), that offset ends up being one hour off.
2011-10-27 Bruno Haible <bruno@clisp.org>
fstat: Tweak documentation.
* modules/fstat (Description): More precise description.
2011-10-27 Bruno Haible <bruno@clisp.org>
Update documentation regarding 'largefile' module.
* doc/posix-functions/fstat.texi: Tweak wording.
* doc/posix-functions/opendir.texi: Mention that the module fixes the
problems with huge directories and/or small ino_t types.
* doc/posix-functions/readdir.texi: Likewise.
* doc/posix-functions/rewinddir.texi: Likewise.
2011-10-28 Gary V. Vaughan <gary@gnu.org>
maint.mk: don't maintain a second build-aux variable.
* maint.mk (build_aux): Removed. The maintainer-makefile module
depends on GNUmakefile, which already maintains a cfg.mk
overridable $(_build-aux) for projects with a non-standard
build-aux directory location, although without the $(srcdir)
prefix. Use that variable consistently instead of introducing a
second one. Adjust all call sites.
2011-10-27 Paul Eggert <eggert@cs.ucla.edu>
Add stdalign module and use it in other modules.
This is based on a previous proposal by Bruno Haible
<https://lists.gnu.org/r/bug-gnulib/2011-07/msg00226.html>.
stdalign: new module
* doc/posix-headers/stdalign.texi, lib/stdalign.in.h, m4/stdalign.m4:
* modules/stdalign: New files.
* MODULES.html.sh (c1x_core_properties): Add stdalign.
* doc/gnulib.texi (Header File Substitutes): Add stdalign.
stdalign-tests: new module
* modules/stdalign-tests, tests/test-stdalign.c: New files.
argp: use stdalign
* lib/argp-parse.c: Include <stdalign.h>.
(alignof): Remove.
* modules/argp (Depends-on): Add stdalign.
crypto libraries: use stdalign
* lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
Include <stdalign.h> and <stdint.h>. Do not include <stddef.h>.
Do not include <stdlib.h> twice, in md4.c.
(UNALIGNED_P): Simplify by using alignof. Use uintptr_t, not size_t,
because we are accessing a pointer's bit-pattern, not a size.
* modules/crypto/gc-md4 (Depends-on): Add stdalign.
* modules/crypto/gc-md5, modules/crypto/gc-sha1, modules/crypto/md4:
* modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256:
* modules/crypto/sha512: Likewise.
sys_socket: use stdalign, not alignof
* lib/sys_socket.in.h: Include <stdalign.h> instead of <alignof.h>.
* modules/sys_socket (Depends-on): Depend on stdalign, not alignof.
2011-10-27 Bruno Haible <bruno@clisp.org>
raise test: Avoid a test failure on Linux/MIPS.
* tests/test-raise.c (main): Try raising signal 199, not 99. Needed
because 99 is a valid signal on Linux/MIPS.
2011-10-27 Bruno Haible <bruno@clisp.org>
nonblocking tests: Fix test failure on Linux/MIPS.
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/MIPS]:
Set to 270000.
2011-10-27 Bruno Haible <bruno@clisp.org>
utimensat: Work around problem on Linux/hppa.
* lib/utimensat.c (rpl_utimensat) [Linux/hppa]: Reject invalid tv_nsec
values.
* doc/posix-functions/utimensat.texi: Mention the problem on Linux/hppa.
2011-10-25 Jim Meyering <meyering@redhat.com>
maint.mk: fix a bug in sc_prohibit_stddef_without_use
* top/maint.mk (sc_prohibit_stddef_without_use): Don't require / *\(/
after symbols like NULL, size_t, etc.
Reported by Alfred M. Szmidt.
maint.mk: exempt ENODATA from a syntax-check rule
* top/maint.mk (gl_extract_significant_defines_): Also exempt ENODATA
from the sc_prohibit_always-defined_macros syntax-check rule.
Add a comment. See this for more details:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795
2011-10-23 Jim Meyering <meyering@redhat.com>
fts: close parent dir FD before returning from post-traversal fts_read
The problem: the fts-using "mkdir -p A/B; rm -rf A" would attempt to
unlink A, even though an FD open on A remained. This is suboptimal
(holding a file descriptor open longer than needed), but otherwise not
a problem on Unix-like kernels. However, on Cygwin with certain Novell
file systems, (see http://cygwin.com/ml/cygwin/2011-10/msg00365.html),
that represents a real problem: it causes the removal of A to fail
with e.g., "rm: cannot remove `A': Device or resource busy"
fts visits each directory twice and keeps a cache (fts_fd_ring) of
directory file descriptors. After completing the final, FTS_DP,
visit of a directory, RESTORE_INITIAL_CWD intended to clear the FD
cache, but then proceeded to add a new FD to it via the subsequent
FCHDIR (which calls cwd_advance_fd and i_ring_push). Before, the
final file descriptor would be closed only via fts_close's call to
fd_ring_clear. Now, it is usually closed earlier, via the final
FTS_DP-returning fts_read call.
* lib/fts.c (restore_initial_cwd): New function, converted from
the macro. Call fd_ring_clear *after* FCHDIR, not before it.
Update callers.
Reported by Franz Sirl via the above URL, with analysis by Eric Blake
in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739
2011-10-23 Gary V. Vaughan <gary@gnu.org>
Bruno Haible <bruno@clisp.org>
Jim Meyering <jim@meyering.net>
readme-release: improve safety of release prep instructions.
* README-release: Don't git pull all branches when only master
is needed for the release process.
Run make maintainer-clean before changing trees and merging.
Don't try to run ./configure right after git pull in case files
that influence the bootstrap process have changed, move the
./configure step to after running ./bootstrap.
Don't bootstrap "one last time"... it's the first time!
2011-10-22 Bruno Haible <bruno@clisp.org>
errno, strerror-override: Support for MSVC 10.
* lib/errno.in.h (GNULIB_defined_ETXTBSY): Remove macro.
(ENOMSG, EIDRM, ENOLINK, EPROTO, EBADMSG, EOVERFLOW, ENOTSUP,
ENETRESET, ECONNABORTED, ECANCELED, EINPROGRESS, EALREADY, ENOTSOCK,
EDESTADDRREQ, EMSGSIZE, EPROTOTYPE, ENOPROTOOPT, EPROTONOSUPPORT,
EOPNOTSUPP, EAFNOSUPPORT, EADDRINUSE, EADDRNOTAVAIL, ENETDOWN,
ENETUNREACH, ECONNRESET, ENOBUFS, EISCONN, ENOTCONN, ETIMEDOUT,
ECONNREFUSED, ELOOP, EHOSTUNREACH, EWOULDBLOCK, ETXTBSY) [Win32]:
Assign values compatible with MSVC 10.
(ENODATA, ENOSR, ENOSTR, ENOTRECOVERABLE, EOWNERDEAD, ETIME, EOTHER):
New macros.
(GNULIB_defined_EWINSOCK): New macro.
* lib/strerror-override.c (strerror_override): Update accordingly.
* lib/strerror-override.h: Likewise.
* lib/w32sock.h (set_winsock_errno): Map those WSA* values that are no
longer equal to the corresponding errno value.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
2011-10-22 Bruno Haible <bruno@clisp.org>
perror: Recognize when test program crashes.
* m4/perror.m4 (gl_FUNC_PERROR): If the test program crashes due to
strerror, set gl_cv_func_perror_works to no.
Reported by Daniel Richard G. <skunk@iskunk.org>.
perror: Fix indentation.
* m4/perror.m4 (gl_FUNC_PERROR): Fix indentation.
2011-10-22 Bruno Haible <bruno@clisp.org>
isfinite, isinf, isnan, signbit: Don't define as a macro in C++.
* lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_1,
_GL_MATH_CXX_REAL_FLOATING_DECL_2): nEW MACROS.
(isfinite, isinf, isnan, signbit): In C++, define as overloaded
functions, not as a macro.
* tests/test-math-c++.cc (REAL_FLOATING_CHECK, OVERLOADED_CHECK): New
macros.
(isfinite, isinf, isnan, signbit): Check overloaded functions and
absence of macro.
Suggested by Eric Blake.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
2011-10-21 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Don't leave object files behind.
* build-aux/install-reloc: Re-synchronize list of .o files to be
removed with list of compilation units.
2011-10-20 Bruno Haible <bruno@clisp.org>
openpty, posix_openpt: Remove code duplication.
* lib/posix_openpt.c: Add comments about platforms, from lib/openpty.c.
* lib/openpty.c: Include <stdlib.h>.
(openpty): Use posix_openpt on all platforms except IRIX.
* modules/openpty (Depends-on): Add posix_openpt. Add conditions.
2011-10-20 Bruno Haible <bruno@clisp.org>
unlockpt: Detect invalid argument.
* lib/unlockpt.c: Include <fcntl.h>.
(unlockpt): Check whether fd is valid, using fcntl().
* modules/unlockpt (Depends-on): Add fcntl-h.
2011-10-20 Bruno Haible <bruno@clisp.org>
openpty: Avoid compilation error on AIX 6.1.
* lib/pty.in.h [AIX]: Include <sys/ioctl.h>, for 'struct winsize'.
2011-10-20 Bruno Haible <bruno@clisp.org>
posix_openpt: Support for OpenBSD.
* lib/posix_openpt.c [OpenBSD]: Include <sys/ioctl.h>, <sys/tty.h>.
(posix_openpt) [OpenBSD]: New code.
* lib/grantpt.c: Include <fcntl.h>.
(grantpt) [OpenBSD]: Only test whether fd is valid, nothing else.
* modules/grantpt (Depends-on): Add fcntl-h.
2011-10-20 Bruno Haible <bruno@clisp.org>
posix_openpt test: Coding style.
* tests/test-posix_openpt.c: Use GNU coding style.
2011-10-20 Bruno Haible <bruno@clisp.org>
grantpt: Support --avoid=pt_chown.
* modules/grantpt (Files): Add lib/pty-private.h.
2011-10-20 Bruno Haible <bruno@clisp.org>
posix_openpt: Fix autoconf macro.
* m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Fix variable name. Remove
unneeded check for _getpty.
2011-10-20 Bruno Haible <bruno@clisp.org>
openpty: Update comments.
* lib/openpty.c: Add comments about Minix.
2011-10-19 Eric Blake <eblake@redhat.com>
openpty: relax license
* modules/openpty (License): Change from LGPLv3+ to LGPLv2+.
pt_chown: use configmake to simplify build
* modules/pt_chown (Makefile.am): Drop line guaranteed by configmake.
ptsname and others: relax license
* modules/grantpt (License): Change from LGPLv3+ to LGPLv2+.
* modules/unlockpt (License): Likewise.
* modules/pt_chown (License): Likewise.
* modules/ptsname (License): Likewise.
* modules/ttyname_r (License): Likewise.
2011-10-19 Jim Meyering <meyering@redhat.com>
posix_openpt: remove spurious #endif
* lib/posix_openpt.c (posix_openpt): Remove spurious #endif.
2011-10-19 Gary V. Vaughan <gary@gnu.org>
maint.mk: Respect $(build_aux) in web-manual rule.
* top/maint.mk (web-manual): Find gen-announce script in user's
$(build_aux) directory instead of hard-coding 'build-aux'.
2011-10-19 Bruno Haible <bruno@clisp.org>
posix_openpt: Fix compilation error.
* lib/posix_openpt.c (posix_openpt): Renamed from posix_openpty.
* doc/posix-functions/posix_openpt.texi: Mention ENOENT error code.
Mention the openpty module as an alternative.
2011-10-19 Bruno Haible <bruno@clisp.org>
Support for old NeXTstep 3.3 frexp().
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm. Limit the
execution time of the test to 5 seconds.
Reported by Daniel Richard G. <skunk@iskunk.org>.
2011-10-19 Bruno Haible <bruno@clisp.org>
Support for old NeXTstep 3.3 sed.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): In the sed address
part, use /.../, not \|...|. Escape periods in the header file name.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise.
Reported by Daniel Richard G. <skunk@iskunk.org>.
2011-10-18 Daniel Richard G. <skunk@iskunk.org> (tiny change)
Support for old NeXTstep 3.3 gcc.
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Write
'defined __STRICT_ANSI__', not '__STRICT_ANSI__'.
* lib/math.in.h (_GL_NUM_UINT_WORDS etc.): Likewise.
* lib/spawn.in.h (_Restrict_arr_): Likewise.
* lib/regex.h (_Restrict_arr_): Likewise.
* lib/regex_internal.h (re_token_t): Likewise.
* lib/regexec.c (check_node_accept_bytes): Likewise.
* tests/test-printf-posix.c (func1, func2, func3, func4): Likewise.
2011-10-18 Eric Blake <eblake@redhat.com>
posix_openpt: new module
* modules/posix_openpt: New module.
* m4/posix_openpt.m4: New file.
* lib/posix_openpt.c: Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl.
(gl_STDLIB_H_DEFAULTS): Set defaults.
* modules/stdlib (Makefile.am): Substitute macros.
* lib/stdlib.in.h (posix_openpt): Declare.
* MODULES.html.sh (systems lacking POSIX:2008): Document it.
* doc/posix-functions/posix_openpt.texi (posix_openpt): Likewise.
* modules/posix_openpt-tests: New test module.
* tests/test-posix_openpt.c: New test.
2011-10-15 Bruno Haible <bruno@clisp.org>
xstrtoll: Fix compilation failure.
* lib/xstrtol.c (ULLONG_MAX, LLONG_MAX, LLONG_MIN): New macros, taken
from lib/strtol.c.
* doc/posix-headers/limits.texi: Mention missing numerical limits on
some platforms.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-10-15 Bruno Haible <bruno@clisp.org>
vasnprintf: Optimize bit search operation.
* lib/vasnprintf.c (divide): Use optimizations from integer_length.c.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Require
gl_DOUBLE_EXPONENT_LOCATION.
* modules/vasnprintf (Files): Add m4/exponentd.m4.
* modules/unistdio/u8-vasnprintf (Files): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
* modules/unistdio/u16-vasnprintf (Files): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
* modules/unistdio/u32-vasnprintf (Files): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
* modules/unistdio/ulc-vasnprintf (Files): Likewise.
* m4/isnand.m4 (gl_PREREQ_ISNAND): Use AC_REQUIRE.
2011-10-15 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix comments.
* lib/vasnprintf.c (decode_long_double, decode_double): Fix comments.
2011-10-14 Bruno Haible <bruno@clisp.org>
Tests for module 'integer_length_ll'.
* modules/integer_length_ll-tests: New file.
* tests/test-integer_length_ll.c: New file.
New module 'integer_length_ll'.
* lib/integer_length_ll.c: New file.
* modules/integer_length_ll: New file.
2011-10-14 Bruno Haible <bruno@clisp.org>
Tests for module 'integer_length_l'.
* modules/integer_length_l-tests: New file.
* tests/test-integer_length_l.c: New file.
New module 'integer_length_l'.
* lib/integer_length_l.c: New file.
* modules/integer_length_l: New file.
2011-10-14 Bruno Haible <bruno@clisp.org>
Tests for module 'integer_length'.
* modules/integer_length-tests: New file.
* tests/test-integer_length.c: New file.
New module 'integer_length'.
* lib/integer_length.h: New file.
* lib/integer_length.c: New file.
* modules/integer_length: New file.
2011-10-14 Daniel Richard G. <skunk@iskunk.org> (tiny change)
popen: Fix dependency conditions.
* modules/popen (Depends-on, configure.ac): Fix shell syntax error.
2011-10-14 Daniel Richard G. <skunk@iskunk.org> (tiny change)
perror: Fix autoconf test.
* m4/perror.m4 (gl_FUNC_PERROR): In the test program, include
<stdlib.h> and <string.h>.
2011-10-14 Bruno Haible <bruno@clisp.org>
ffsl: Optimize on 64-bit platforms.
* lib/ffsl.h (FUNC): Omit a test from the last loop round. Do loop
unrolling.
2011-10-13 Bruno Haible <bruno@clisp.org>
ffsl: Optimize on 32-bit platforms.
* lib/ffsl.h (FUNC): If TYPE has the same representation as 'int', just
use ffs() without a loop.
ffsl, ffsll: Optimize for GCC.
* lib/ffsl.h (FUNC): Use GCC_BUILTIN if defined.
* lib/ffsl.c (GCC_BUILTIN): New macro.
* lib/ffsll.c (GCC_BUILTIN): Likewise.
2011-10-13 Bruno Haible <bruno@clisp.org>
ffs, bcopy, memset: Support symbol renaming via config.h.
* lib/ffs.c: Include <config.h>.
* lib/bcopy.c: Likewise.
* lib/memset.c: Likewise.
2011-10-10 Bruno Haible <bruno@clisp.org>
atanl: Simplify for platforms where 'long double' == 'double'.
* lib/atanl.c (atanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/atanl.m4 (gl_FUNC_ATANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ATANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/atanl (Depends-on): Add atan. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
acosl: Simplify for platforms where 'long double' == 'double'.
* lib/acosl.c (acosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/acosl.m4 (gl_FUNC_ACOSL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ACOSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/acosl (Depends-on): Add acos. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
asinl: Simplify for platforms where 'long double' == 'double'.
* lib/asinl.c (asinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/asinl.m4 (gl_FUNC_ASINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ASINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/asinl (Depends-on): Add asin. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
tanl: Simplify for platforms where 'long double' == 'double'.
* lib/tanl.c (tanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
implementation.
* m4/tanl.m4 (gl_FUNC_TANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine TANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/tanl (Depends-on): Add tan. Update conditions.
(configure.ac): Don't compile trigl.c if
HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
2011-10-10 Bruno Haible <bruno@clisp.org>
cosl: Simplify for platforms where 'long double' == 'double'.
* lib/cosl.c (cosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
implementation.
* m4/cosl.m4 (gl_FUNC_COSL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine COSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/cosl (Depends-on): Add cos. Update conditions.
(configure.ac): Don't compile sincosl.c and trigl.c if
HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
2011-10-10 Bruno Haible <bruno@clisp.org>
sinl: Simplify for platforms where 'long double' == 'double'.
* lib/sinl.c (sinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
implementation.
* m4/sinl.m4 (gl_FUNC_SINL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine SINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/sinl (Depends-on): Add sin. Update conditions.
(configure.ac): Don't compile sincosl.c and trigl.c if
HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
2011-10-10 Bruno Haible <bruno@clisp.org>
logl: Simplify for platforms where 'long double' == 'double'.
* lib/logl.c (logl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
implementation.
* m4/logl.m4 (gl_FUNC_LOGL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine LOGL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/logl (Depends-on): Add log. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
expl: Simplify for platforms where 'long double' == 'double'.
* lib/expl.c (expl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative
implementation.
* m4/expl.m4 (gl_FUNC_EXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine EXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/expl (Depends-on): Add exp. Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
sqrtl: Simplify for platforms where 'long double' == 'double'.
* lib/sqrtl.c (sqrtl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine SQRTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/sqrtl (Depends-on): Update conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
ldexpl: Simplify for platforms where 'long double' == 'double'.
* lib/ldexpl.c (ldexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative implementation.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine LDEXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/ldexpl (Depends-on): Add ldexp. Update conditions.
2011-10-10 Tom G. Christensen <tgc@jupiterrise.com> (tiny change)
ffsll: set correct witness
* modules/ffsll (configure.ac): Fix typo.
2011-10-10 Bruno Haible <bruno@clisp.org>
printf-frexpl: Simplify for platforms where 'long double' == 'double'.
* lib/printf-frexpl.c: Include <config.h>.
(printf_frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/printf-frexp.c [!USE_LONG_DOUBLE]: Don't include <config.h> a
second time.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Require
gl_LONG_DOUBLE_VS_DOUBLE.
* modules/printf-frexpl (Depends-on): Add printf-frexp. Update
conditions.
2011-10-10 Bruno Haible <bruno@clisp.org>
frexpl: Simplify for platforms where 'long double' == 'double'.
* lib/frexpl.c: Include <config.h>.
(frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/frexp.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/frexpl.m4 (gl_FUNC_FREXPL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine FREXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
(gl_FUNC_FREXPL_NO_LIBM): Require gl_LONG_DOUBLE_VS_DOUBLE.
* modules/frexpl (Depends-on): Add frexp. Update conditions.
* modules/frexpl-nolibm (Depends-on): Add frexp-nolibm. Update
conditions.
2011-10-10 Jim Meyering <meyering@redhat.com>
test-renameat: don't leave behind a temporary file
* tests/test-renameat.c (main): Don't forget to remove a temporary file.
ERROR: files left in build directory after distclean:
./gltests/test-renameat.too
make[1]: *** [distcleancheck] Error 1
Reported by Tom G. Christensen.
2011-10-09 Bruno Haible <bruno@clisp.org>
rint: Determine RINT_LIBM correctly on AIX 7.
* m4/mathfunc.m4 (gl_MATHFUNC): Try to invoke the function also
directly, not only through a function pointer. Also accept an optional
4th argument with extra code.
* m4/rint.m4 (gl_FUNC_RINT): Pass an extra code that gets turned into a
rintf() call by gcc when optimizing.
mathfunc.m4: Refactor.
* m4/mathfunc.m4 (gl_MATHFUNC): Assign the argument list to a temporary
m4 variable.
2011-10-09 Bruno Haible <bruno@clisp.org>
rintl: Simplify for platforms where 'long double' == 'double'.
* lib/rintl.c: Include <config.h>.
(rintl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/rint.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/rintl.m4 (gl_FUNC_RINTL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine RINTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/rintl (Depends-on): Add rint. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
roundl: Simplify for platforms where 'long double' == 'double'.
* lib/roundl.c: Include <config.h>.
(roundl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/round.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine ROUNDL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/roundl (Depends-on): Add round. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
truncl: Simplify for platforms where 'long double' == 'double'.
* lib/truncl.c: Include <config.h>.
(truncl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/trunc.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine TRUNCL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/truncl (Depends-on): Add trunc. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
ceill: Simplify for platforms where 'long double' == 'double'.
* lib/ceill.c: Include <config.h>.
(ceill) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/ceil.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/ceill.m4 (gl_FUNC_CEILL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine CEILL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/ceill (Depends-on): Add ceil. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
floorl: Simplify for platforms where 'long double' == 'double'.
* lib/floorl.c: Include <config.h>.
(floorl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function.
* lib/floor.c [!USE_LONG_DOUBLE]: Don't include <config.h> a second
time.
* m4/floorl.m4 (gl_FUNC_FLOORL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine FLOORL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/floorl (Depends-on): Add floor. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
rint: Fix ordering constraints.
* m4/rint.m4 (gl_FUNC_RINT): Require gl_MATH_H_DEFAULTS.
* m4/rintf.m4 (gl_FUNC_RINTF): Likewise.
* m4/rintl.m4 (gl_FUNC_RINTL): Likewise.
2011-10-09 Bruno Haible <bruno@clisp.org>
copysignl: Simplify for platforms where 'long double' == 'double'.
* lib/copysignl.c (copysignl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New
alternative.
* m4/copysignl.m4 (gl_FUNC_COPYSIGNL): Require gl_LONG_DOUBLE_VS_DOUBLE.
Determine COPYSIGNL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE.
* modules/copysignl (Depends-on): Add copysign. Update conditions.
2011-10-09 Bruno Haible <bruno@clisp.org>
Tests for module 'rintl'.
* modules/rintl-tests: New file.
* tests/test-rintl.c: New file.
New module 'rintl'.
* lib/math.in.h (rintl): New declaration.
* lib/rintl.c: New file.
* m4/rintl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rintl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTL, HAVE_RINTL.
* modules/math (Makefile.am): Substitute GNULIB_RINTL, HAVE_RINTL.
* modules/rintl: New file.
* tests/test-math-c++.cc: Check the declaration of rintl.
* modules/math-c++-tests (Makefile.am): Link test-math-c++ against
$(RINTL_LIBM). Needed on IRIX 6.5 with cc.
* doc/posix-functions/rintl.texi: Mention the new module.
2011-10-09 Bruno Haible <bruno@clisp.org>
Tests for module 'rintf'.
* modules/rintf-tests: New file.
* tests/test-rintf.c: New file.
New module 'rintf'.
* lib/math.in.h (rintf): New declaration.
* lib/rintf.c: New file.
* m4/rintf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rintf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTF, HAVE_RINTF.
* modules/math (Makefile.am): Substitute GNULIB_RINTF, HAVE_RINTF.
* modules/rintf: New file.
* tests/test-math-c++.cc: Check the declaration of rintf.
* doc/posix-functions/rintf.texi: Mention the new module.
2011-10-09 Bruno Haible <bruno@clisp.org>
rint: Support for MSVC.
* lib/math.in.h (rint): New declaration.
* lib/rint.c: New file.
* m4/rint.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether rint is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_RINT, HAVE_RINT.
* modules/math (Makefile.am): Substitute GNULIB_RINT, HAVE_RINT.
* modules/rint (Description): Fix.
(Files): Add lib/rint.c, m4/rint.m4.
(Depends-on): Add math.
(configure.ac): Invoke gl_FUNC_RINT, AC_LIBOBJ,
gl_MATH_MODULE_INDICATOR.
* tests/test-math-c++.cc: Check the declaration of rint.
* modules/math-c++-tests (Makefile.am): Link test-math-c++ against
$(RINT_LIBM). Needed on IRIX 6.5 with cc.
* doc/posix-functions/rint.texi: Mention the replacement provided by
the module.
rint tests: More tests.
* tests/test-rint.c: Include <float.h>, <stdio.h>, isnand-nolibm.h,
minus-zero.h, infinity.h, nan.h.
(main): Skip the test if the current rounding mode is not standard. Add
tests for negative numbers, minus zero, infinity, NaN.
* modules/rint-tests (Files): Add tests/minus-zero.h, tests/infinity.h,
tests/nan.h.
(Depends-on): Add isnand-nolibm.
2011-10-09 Bruno Haible <bruno@clisp.org>
Tests for module 'copysignl'.
* modules/copysignl-tests: New file.
* tests/test-copysignl.c: New file.
New module 'copysignl'.
* lib/math.in.h (copysignl): New declaration.
* lib/copysignl.c: New file.
* m4/copysignl.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether copysignl is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGNL, HAVE_COPYSIGNL.
* modules/math (Makefile.am): Substitute GNULIB_COPYSIGNL,
HAVE_COPYSIGNL.
* modules/copysignl: New file.
* tests/test-math-c++.cc: Check the declaration of copysignl.
* modules/math-c++-tests (Makefile.am): Link test-math-c++ against
$(COPYSIGNL_LIBM). Needed on IRIX 6.5 with cc.
* doc/posix-functions/copysignl.texi: Mention the new module.
2011-10-09 Bruno Haible <bruno@clisp.org>
Tests for module 'copysignf'.
* modules/copysignf-tests: New file.
* tests/test-copysignf.c: New file.
New module 'copysignf'.
* lib/math.in.h (copysignf): New declaration.
* lib/copysignf.c: New file.
* m4/copysignf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether copysignf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGNF, HAVE_COPYSIGNF.
* modules/math (Makefile.am): Substitute GNULIB_COPYSIGNF,
HAVE_COPYSIGNF.
* modules/copysignf: New file.
* tests/test-math-c++.cc: Check the declaration of copysignf.
* doc/posix-functions/copysignf.texi: Mention the new module.
2011-10-09 Bruno Haible <bruno@clisp.org>
Ensure that HAVE_* variables are set to 1 before they are set to 0.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Require gl_DIRENT_H_DEFAULTS.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Require gl_ARPA_INET_H_DEFAULTS.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Require
gl_SIGNAL_H_DEFAULTS.
2011-10-09 Bruno Haible <bruno@clisp.org>
poll: Make macro safer.
* m4/poll.m4 (gl_FUNC_POLL): Complain if, after invoking gl_POLL_H,
ac_cv_header_poll_h is not set.
2011-10-09 Bruno Haible <bruno@clisp.org>
copysign: Provide replacement.
* lib/math.in.h (copysign): New declaration.
* lib/copysign.c: New file.
* m4/copysign.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether copysign is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGN, HAVE_COPYSIGN.
* modules/math (Makefile.am): Substitute GNULIB_COPYSIGN,
HAVE_COPYSIGN.
* modules/copysign (Description): Clarify.
(Files): Add lib/copysign.c, m4/copysign.m4.
(Depends-on): Add math, signbit.
(configure.ac): Invoke gl_FUNC_COPYSIGN, AC_LIBOBJ,
gl_MATH_MODULE_INDICATOR.
* tests/test-math-c++.cc: Check the declaration of copysign.
* doc/posix-functions/copysign.texi: Mention the effects of the module
on Minix and MSVC.
2011-10-09 Bruno Haible <bruno@clisp.org>
isinf: Ensure macro on AIX 5.1.
* m4/isinf.m4 (gl_ISINF): Also test whether isinf is defined as a
macro.
* doc/posix-functions/isinf.texi: Mention also AIX 5.1 as deficient.
2011-10-09 Bruno Haible <bruno@clisp.org>
*printf-posix tests: Fix for platforms where 'long double' == 'double'.
* modules/snprintf-posix-tests (configure.ac): Require
gl_LONG_DOUBLE_VS_DOUBLE.
* modules/sprintf-posix-tests (configure.ac): Likewise.
* modules/vasnprintf-posix-tests (configure.ac): Likewise.
* modules/vasprintf-posix-tests (configure.ac): Likewise.
* modules/vsnprintf-posix-tests (configure.ac): Likewise.
* modules/vsprintf-posix-tests (configure.ac): Likewise.
* tests/test-snprintf-posix.h (test_function): Avoid 80-bit long double
tests on platforms where 'long double' is the same as 'double'.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
*printf: Fix for platforms where 'long double' == 'double'.
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Require
gl_LONG_DOUBLE_VS_DOUBLE. Don't blindly assume 80-bit 'long double'.
* modules/dprintf-posix (Files): Add m4/math_h.m4.
* modules/fprintf-posix (Files): Likewise.
* modules/obstack-printf-posix (Files): Likewise.
* modules/snprintf-posix (Files): Likewise.
* modules/sprintf-posix (Files): Likewise.
* modules/vasnprintf (Files): Likewise.
* modules/vasnprintf-posix (Files): Likewise.
* modules/vasprintf-posix (Files): Likewise.
* modules/vdprintf-posix (Files): Likewise.
* modules/vfprintf-posix (Files): Likewise.
* modules/vsnprintf-posix (Files): Likewise.
* modules/vsprintf-posix (Files): Likewise.
* modules/unistdio/u8-vasnprintf (Files): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
* modules/unistdio/u16-vasnprintf (Files): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
* modules/unistdio/u32-vasnprintf (Files): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
* modules/unistdio/ulc-vasnprintf (Files): Likewise.
isnanl[-nolibm]: Fix for platforms where 'long double' == 'double'.
* lib/isnan.c (rpl_isnanl): Don't blindly assume 80-bit 'long double'.
* m4/isnanl.m4 (gl_PREREQ_ISNANL): Require gl_LONG_DOUBLE_VS_DOUBLE.
(gl_FUNC_ISNANL_WORKS): Likewise. Don't blindly assume 80-bit
'long double'.
* modules/isnanl-nolibm (Files): Add m4/math_h.m4.
isinf: Fix for platforms where 'long double' == 'double'.
* m4/isinf.m4 (gl_ISINFL_WORKS): Require gl_LONG_DOUBLE_VS_DOUBLE.
Don't blindly assume 80-bit 'long double'.
isfinite: Fix for platforms where 'long double' == 'double'.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Require gl_LONG_DOUBLE_VS_DOUBLE.
Don't blindly assume 80-bit 'long double'.
isfinite, isinf, isnan tests: Avoid syntax error on MSVC 9.
* m4/math_h.m4 (gl_LONG_DOUBLE_VS_DOUBLE): New macro.
* modules/isfinite-tests (configure.ac): Require
gl_LONG_DOUBLE_VS_DOUBLE.
* modules/isinf-tests (configure.ac): Likewise.
* modules/isnan-tests (configure.ac): Likewise.
* modules/isnanl-tests (configure.ac): Likewise.
* modules/isnanl-nolibm-tests (configure.ac): Likewise.
* tests/test-isfinite.c (test_isfinitel): Avoid 80-bit long double
tests on platforms where 'long double' is the same as 'double'.
* tests/test-isinf.c (test_isinfl): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-isnanl.h (main): Likewise.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'tanhf'.
* modules/tanhf-tests: New file.
* tests/test-tanhf.c: New file.
New module 'tanhf'.
* lib/math.in.h (tanhf): New declaration.
* lib/tanhf.c: New file.
* m4/tanhf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether tanhf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_TANHF, HAVE_TANHF.
* modules/math (Makefile.am): Substitute GNULIB_TANHF, HAVE_TANHF.
* modules/tanhf: New file.
* tests/test-math-c++.cc: Check the declaration of tanhf.
* doc/posix-functions/tanhf.texi: Mention the new module.
tanh: Use a .m4 file.
* m4/tanh.m4: New file.
* modules/tanh (Files): Add it.
(configure.ac): Just invoke gl_FUNC_TANH.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'coshf'.
* modules/coshf-tests: New file.
* tests/test-coshf.c: New file.
New module 'coshf'.
* lib/math.in.h (coshf): New declaration.
* lib/coshf.c: New file.
* m4/coshf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether coshf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_COSHF, HAVE_COSHF.
* modules/math (Makefile.am): Substitute GNULIB_COSHF, HAVE_COSHF.
* modules/coshf: New file.
* tests/test-math-c++.cc: Check the declaration of coshf.
* doc/posix-functions/coshf.texi: Mention the new module.
cosh: Use a .m4 file.
* m4/cosh.m4: New file.
* modules/cosh (Files): Add it.
(configure.ac): Just invoke gl_FUNC_COSH.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'sinhf'.
* modules/sinhf-tests: New file.
* tests/test-sinhf.c: New file.
New module 'sinhf'.
* lib/math.in.h (sinhf): New declaration.
* lib/sinhf.c: New file.
* m4/sinhf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether sinhf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_SINHF, HAVE_SINHF.
* modules/math (Makefile.am): Substitute GNULIB_SINHF, HAVE_SINHF.
* modules/sinhf: New file.
* tests/test-math-c++.cc: Check the declaration of sinhf.
* doc/posix-functions/sinhf.texi: Mention the new module.
sinh: Use a .m4 file.
* m4/sinh.m4: New file.
* modules/sinh (Files): Add it.
(configure.ac): Just invoke gl_FUNC_SINH.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'atan2f'.
* modules/atan2f-tests: New file.
* tests/test-atan2f.c: New file.
New module 'atan2f'.
* lib/math.in.h (atan2f): New declaration.
* lib/atan2f.c: New file.
* m4/atan2f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether atan2f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ATAN2F, HAVE_ATAN2F.
* modules/math (Makefile.am): Substitute GNULIB_ATAN2F, HAVE_ATAN2F.
* modules/atan2f: New file.
* tests/test-math-c++.cc: Check the declaration of atan2f.
* doc/posix-functions/atan2f.texi: Mention the new module.
atan2: Use a .m4 file.
* m4/atan2.m4: New file.
* modules/atan2 (Files): Add it.
(configure.ac): Just invoke gl_FUNC_ATAN2.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'atanf'.
* modules/atanf-tests: New file.
* tests/test-atanf.c: New file.
New module 'atanf'.
* lib/math.in.h (atanf): New declaration.
* lib/atanf.c: New file.
* m4/atanf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether atanf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ATANF, HAVE_ATANF.
* modules/math (Makefile.am): Substitute GNULIB_ATANF, HAVE_ATANF.
* modules/atanf: New file.
* tests/test-math-c++.cc: Check the declaration of atanf.
* doc/posix-functions/atanf.texi: Mention the new module.
atan: Use a .m4 file.
* m4/atan.m4: New file.
* modules/atan (Files): Add it.
(configure.ac): Just invoke gl_FUNC_ATAN.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'acosf'.
* modules/acosf-tests: New file.
* tests/test-acosf.c: New file.
New module 'acosf'.
* lib/math.in.h (acosf): New declaration.
* lib/acosf.c: New file.
* m4/acosf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether acosf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ACOSF, HAVE_ACOSF.
* modules/math (Makefile.am): Substitute GNULIB_ACOSF, HAVE_ACOSF.
* modules/acosf: New file.
* tests/test-math-c++.cc: Check the declaration of acosf.
* doc/posix-functions/acosf.texi: Mention the new module.
acos: Use a .m4 file.
* m4/acos.m4: New file.
* modules/acos (Files): Add it.
(configure.ac): Just invoke gl_FUNC_ACOS.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'asinf'.
* modules/asinf-tests: New file.
* tests/test-asinf.c: New file.
New module 'asinf'.
* lib/math.in.h (asinf): New declaration.
* lib/asinf.c: New file.
* m4/asinf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether asinf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_ASINF, HAVE_ASINF.
* modules/math (Makefile.am): Substitute GNULIB_ASINF, HAVE_ASINF.
* modules/asinf: New file.
* tests/test-math-c++.cc: Check the declaration of asinf.
* doc/posix-functions/asinf.texi: Mention the new module.
asin: Use a .m4 file.
* m4/asin.m4: New file.
* modules/asin (Files): Add it.
(configure.ac): Just invoke gl_FUNC_ASIN.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'tanf'.
* modules/tanf-tests: New file.
* tests/test-tanf.c: New file.
New module 'tanf'.
* lib/math.in.h (tanf): New declaration.
* lib/tanf.c: New file.
* m4/tanf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether tanf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_TANF, HAVE_TANF.
* modules/math (Makefile.am): Substitute GNULIB_TANF, HAVE_TANF.
* modules/tanf: New file.
* tests/test-math-c++.cc: Check the declaration of tanf.
* doc/posix-functions/tanf.texi: Mention the new module.
tan: Use a .m4 file.
* m4/tan.m4: New file.
* modules/tan (Files): Add it.
(configure.ac): Just invoke gl_FUNC_TAN.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'cosf'.
* modules/cosf-tests: New file.
* tests/test-cosf.c: New file.
New module 'cosf'.
* lib/math.in.h (cosf): New declaration.
* lib/cosf.c: New file.
* m4/cosf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether cosf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_COSF, HAVE_COSF.
* modules/math (Makefile.am): Substitute GNULIB_COSF, HAVE_COSF.
* modules/cosf: New file.
* tests/test-math-c++.cc: Check the declaration of cosf.
* doc/posix-functions/cosf.texi: Mention the new module.
cos: Use a .m4 file.
* m4/cos.m4: New file.
* modules/cos (Files): Add it.
(configure.ac): Just invoke gl_FUNC_COS.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'sinf'.
* modules/sinf-tests: New file.
* tests/test-sinf.c: New file.
New module 'sinf'.
* lib/math.in.h (sinf): New declaration.
* lib/sinf.c: New file.
* m4/sinf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether sinf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_SINF, HAVE_SINF.
* modules/math (Makefile.am): Substitute GNULIB_SINF, HAVE_SINF.
* modules/sinf: New file.
* tests/test-math-c++.cc: Check the declaration of sinf.
* doc/posix-functions/sinf.texi: Mention the new module.
sin: Use a .m4 file.
* m4/sin.m4: New file.
* modules/sin (Files): Add it.
(configure.ac): Just invoke gl_FUNC_SIN.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'powf'.
* modules/powf-tests: New file.
* tests/test-powf.c: New file.
New module 'powf'.
* lib/math.in.h (powf): New declaration.
* lib/powf.c: New file.
* m4/powf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether powf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_POWF, HAVE_POWF.
* modules/math (Makefile.am): Substitute GNULIB_POWF, HAVE_POWF.
* modules/powf: New file.
* tests/test-math-c++.cc: Check the declaration of powf.
* doc/posix-functions/powf.texi: Mention the new module.
pow: Use a .m4 file.
* m4/pow.m4: New file.
* modules/pow (Files): Add it.
(configure.ac): Just invoke gl_FUNC_POW.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'log10f'.
* modules/log10f-tests: New file.
* tests/test-log10f.c: New file.
New module 'log10f'.
* lib/math.in.h (log10f): New declaration.
* lib/log10f.c: New file.
* m4/log10f.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether log10f is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10F, HAVE_LOG10F.
* modules/math (Makefile.am): Substitute GNULIB_LOG10F, HAVE_LOG10F.
* modules/log10f: New file.
* tests/test-math-c++.cc: Check the declaration of log10f.
* doc/posix-functions/log10f.texi: Mention the new module.
log10: Use a .m4 file.
* m4/log10.m4: New file.
* modules/log10 (Files): Add it.
(configure.ac): Just invoke gl_FUNC_LOG10.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'logf'.
* modules/logf-tests: New file.
* tests/test-logf.c: New file.
New module 'logf'.
* lib/math.in.h (logf): New declaration.
* lib/logf.c: New file.
* m4/logf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGF, HAVE_LOGF.
* modules/math (Makefile.am): Substitute GNULIB_LOGF, HAVE_LOGF.
* modules/logf: New file.
* tests/test-math-c++.cc: Check the declaration of logf.
* doc/posix-functions/logf.texi: Mention the new module.
log: Use a .m4 file.
* m4/log.m4: New file.
* modules/log (Files): Add it.
(configure.ac): Just invoke gl_FUNC_LOG.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'expf'.
* modules/expf-tests: New file.
* tests/test-expf.c: New file.
New module 'expf'.
* lib/math.in.h (expf): New declaration.
* lib/expf.c: New file.
* m4/expf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether expf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPF, HAVE_EXPF.
* modules/math (Makefile.am): Substitute GNULIB_EXPF, HAVE_EXPF.
* modules/expf: New file.
* tests/test-math-c++.cc: Check the declaration of expf.
* doc/posix-functions/expf.texi: Mention the new module.
exp: Use a .m4 file.
* m4/exp.m4: New file.
* modules/exp (Files): Add it.
(configure.ac): Just invoke gl_FUNC_EXP.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests for module 'sqrtf'.
* modules/sqrtf-tests: New file.
* tests/test-sqrtf.c: New file.
New module 'sqrtf'.
* lib/math.in.h (sqrtf): New declaration.
* lib/sqrtf.c: New file.
* m4/sqrtf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether sqrtf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_SQRTF, HAVE_SQRTF.
* modules/math (Makefile.am): Substitute GNULIB_SQRTF, HAVE_SQRTF.
* modules/sqrtf: New file.
* tests/test-math-c++.cc: Check the declaration of sqrtf.
* doc/posix-functions/sqrtf.texi: Mention the new module.
2011-10-08 Bruno Haible <bruno@clisp.org>
Tests: Avoid link failures w.r.t. libintl.
* modules/faccessat-tests (Makefile.am): Link test-faccessat against
$(LIBINTL).
* modules/fchdir-tests (Makefile.am): Link test-fchdir against
$(LIBINTL).
* modules/getcwd-lgpl-tests (Makefile.am): Link test-getcwd-lgpl
against $(LIBINTL).
* modules/getcwd-tests (Makefile.am): Link test-getcwd against
$(LIBINTL).
* modules/openat-tests (Makefile.am): Link test-fchmodat against
$(LIBINTL).
* modules/stat-tests (Makefile.am): Link test-stat against $(LIBINTL).
2011-10-08 Bruno Haible <bruno@clisp.org>
pow tests: Defeat compiler optimizations.
* tests/test-pow.c (main): Assign arguments to x and y before use.
2011-10-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve last commit.
* gnulib-tool (func_modules_transitive_closure): Simplify code.
(func_emit_autoconf_snippets): Instead of invoking func_acceptable,
ignore dependencies that are not among the modules list.
2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: don't follow dependencies to avoided modules
This fixes a bug that is related to the previous one.
* gnulib-tool (func_modules_transitive_closure)
(func_emit_autoconf_snippets):
Check whether a dependency is acceptable before using it.
(--extract-dependencies): Report an error if --avoid is also used,
since this combination of options is not yet supported.
gnulib-tool: fix typo that broke Emacs on powerpc-apple-darwin9.8.0.
Problem reported by Peter Dyballa in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9696>.
* gnulib-tool (func_emit_autoconf_snippets): Quote with "", not '',
when echoing "$condition".
2011-10-07 Bruno Haible <bruno@clisp.org>
Fix documentation about math functions on MacOS X.
* doc/posix-functions/exp2.texi: Don't say the function is missing on
MacOS X 10.5.
* doc/posix-functions/fdim.texi: Likewise.
* doc/posix-functions/feclearexcept.texi: Likewise.
* doc/posix-functions/fegetenv.texi: Likewise.
* doc/posix-functions/fegetround.texi: Likewise.
* doc/posix-functions/feholdexcept.texi: Likewise.
* doc/posix-functions/feraiseexcept.texi: Likewise.
* doc/posix-functions/fesetenv.texi: Likewise.
* doc/posix-functions/fesetround.texi: Likewise.
* doc/posix-functions/fetestexcept.texi: Likewise.
* doc/posix-functions/feupdateenv.texi: Likewise.
* doc/posix-functions/fmax.texi: Likewise.
* doc/posix-functions/fmin.texi: Likewise.
* doc/posix-functions/log2.texi: Likewise.
* doc/posix-functions/modff.texi: Likewise.
* doc/posix-functions/nan.texi: Likewise.
* doc/posix-functions/nanf.texi: Likewise.
* doc/posix-functions/nextafterf.texi: Likewise.
* doc/posix-functions/remquo.texi: Likewise.
2011-10-07 Bruno Haible <bruno@clisp.org>
modff: Drop assumption about library that defines modff.
* m4/modff.m4 (gl_FUNC_MODFF): Use gl_MATHFUNC macro instead of
AC_CHECK_FUNCS.
* modules/modff (Files): Add m4/mathfunc.m4.
2011-10-07 Bernhard Voelker <mail@bernhard-voelker.de>
raise tests: Avoid a GCC warning.
* tests/test-raise.c (handler): Use _Noreturn.
2011-10-07 Bruno Haible <bruno@clisp.org>
Tests for module 'ldexpf'.
* modules/ldexpf-tests: New file.
* tests/test-ldexpf.c: New file.
New module 'ldexpf'.
* lib/math.in.h (ldexpf): New declaration.
* lib/ldexpf.c: New file.
* m4/ldexpf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether ldexpf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LDEXPF, HAVE_LDEXPF.
* modules/math (Makefile.am): Substitute GNULIB_LDEXPF, HAVE_LDEXPF.
* modules/ldexpf: New file.
* tests/test-math-c++.cc: Check the declaration of ldexpf.
* doc/posix-functions/ldexpf.texi: Mention the new module.
2011-10-06 Bruno Haible <bruno@clisp.org>
frexpf: Work around problems on IRIX and mingw.
* lib/math.in.h (frexpf): Consider also REPLACE_FREXPF.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FREXPF.
* m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): New macro.
(gl_FUNC_FREXPF): Invoke it. Set REPLACE_FREXPF.
* modules/frexpf (Depends-on, configure.ac): Consider REPLACE_FREXPF.
* modules/math (Makefile.am): Substitute REPLACE_FREXPF.
* doc/posix-functions/frexpf.texi: Mention the IRIX and mingw problems.
2011-10-06 Bruno Haible <bruno@clisp.org>
fabsf: Drop assumption about library that defines fabsf.
* m4/fabsf.m4 (gl_FUNC_FABSF): Use gl_MATHFUNC macro instead of
AC_CHECK_FUNCS.
* modules/fabsf (Files): Add m4/mathfunc.m4.
2011-10-06 Bruno Haible <bruno@clisp.org>
frexpf: Drop assumption about library that defines frexpf.
* m4/mathfunc.m4 (gl_MATHFUNC): Support also the argument types
'int *', 'float *', 'long double *', 'float', 'long double'.
* m4/frexpf.m4 (gl_FUNC_FREXPF): Use gl_MATHFUNC macro instead of
AC_CHECK_FUNCS.
* modules/frexpf (Files): Add m4/mathfunc.m4.
Tests for module 'frexpf'.
* modules/frexpf-tests: New file.
* tests/test-frexpf.c: New file.
New module 'frexpf'.
* lib/math.in.h (frexpf): New declaration.
* lib/frexpf.c: New file.
* m4/frexpf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether frexpf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FREXPF, HAVE_FREXPF.
* modules/math (Makefile.am): Substitute GNULIB_FREXPF, HAVE_FREXPF.
* modules/frexpf: New file.
* tests/test-math-c++.cc: Check the declaration of frexpf.
* doc/posix-functions/frexpf.texi: Mention the new module.
2011-10-06 Bruno Haible <bruno@clisp.org>
math: Sort function declarations of math.in.h.
* lib/math.in.h (frexp, logb): Move declarations.
2011-10-05 Bruno Haible <bruno@clisp.org>
Tests for module 'modff'.
* modules/modff-tests: New file.
* tests/test-modff.c: New file.
New module 'modff'.
* lib/math.in.h (modff): New declaration.
* lib/modff.c: New file.
* m4/modff.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether modff is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_MODFF, HAVE_MODFF.
* modules/math (Makefile.am): Substitute GNULIB_MODFF, HAVE_MODFF.
* modules/modff: New file.
* tests/test-math-c++.cc: Check the declaration of modff.
* doc/posix-functions/modff.texi: Mention the new module.
modf tests: Make test sharper.
* tests/test-modf.c (main): Strengthen upper bound.
modf: Use a .m4 file.
* m4/modf.m4: New file.
* modules/modf (Files): Add it.
(configure.ac): Just invoke gl_FUNC_MODF.
2011-10-05 Bruno Haible <bruno@clisp.org>
Tests for module 'fmodf'.
* modules/fmodf-tests: New file.
* tests/test-fmodf.c: New file.
New module 'fmodf'.
* lib/math.in.h (fmodf): New declaration.
* lib/fmodf.c: New file.
* m4/fmodf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fmodf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FMODF, HAVE_FMODF.
* modules/math (Makefile.am): Substitute GNULIB_FMODF, HAVE_FMODF.
* modules/fmodf: New file.
* tests/test-math-c++.cc: Check the declaration of fmodf.
* doc/posix-functions/fmodf.texi: Mention the new module.
fmod: Use a .m4 file.
* m4/fmod.m4: New file.
* modules/fmod (Files): Add it.
(configure.ac): Just invoke gl_FUNC_FMOD.
2011-10-05 Bruno Haible <bruno@clisp.org>
Tests for module 'fabsf'.
* modules/fabsf-tests: New file.
* tests/test-fabsf.c: New file.
New module 'fabsf'.
* lib/math.in.h (fabsf): New declaration.
* lib/fabsf.c: New file.
* m4/fabsf.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether fabsf is declared.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_FABSF, HAVE_FABSF.
* modules/math (Makefile.am): Substitute GNULIB_FABSF, HAVE_FABSF.
* modules/fabsf: New file.
* tests/test-math-c++.cc: Check the declaration of fabsf.
* doc/posix-functions/fabsf.texi: Mention the new module.
fabs: Use a .m4 file.
* m4/fabs.m4: New file.
* modules/fabs (Files): Add it.
(configure.ac): Just invoke gl_FUNC_FABS.
2011-10-05 Jim Meyering <meyering@redhat.com>
file-has-acl: revert both recent changes, 80af92af and 95f7c57f
* lib/file-has-acl.c: While the 2011-10-03 change does fix the
ls -lL regression introduced in coreutils-8.12, it does so at the
cost of an additional stat call in the common case. Besides, now
that the kernel change that prompted commit 95f7c57f has been reverted
(see https://bugzilla.redhat.com/show_bug.cgi?id=720325#c24)
we have no use for commit 95f7c57f, "file-has-acl: use
acl_extended_file_nofollow if available".
2011-10-03 Kamil Dudka <kdudka@redhat.com>
file-has-acl: revert unintended change in behavior of ls -L
* lib/file-has-acl.c (acl_extended_file_wrap): New function,
derived from...
(file_has_acl): ...code here. Call it.
This problem was introduced with 2011-07-22 commit 95f7c57f,
"file-has-acl: use acl_extended_file_nofollow if available".
See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28538
2011-10-03 Bruno Haible <bruno@clisp.org>
poll: Avoid link errors on MSVC.
* m4/poll.m4 (gl_FUNC_POLL): Determine LIB_POLL.
* modules/poll (Depends-on): Add sockets.
(Link): New section.
* NEWS: Mention the change.
* modules/poll-tests (Makefile.am): Link test-poll against $(LIB_POLL).
* modules/poll-h-c++-tests (Makefile.am): Link test-poll-h-c++ against
$(LIB_POLL) instead of $(LIBSOCKET).
2011-10-03 Bruno Haible <bruno@clisp.org>
sys_select tests: Fix link error on MSVC 9.
* modules/sys_select-c++-tests (Makefile.am): Link test-sys_select-c++
with $(LIB_SELECT) instead of $(LIBSOCKET).
2011-10-03 Bruno Haible <bruno@clisp.org>
sys_select: Fix compilation error on mingw.
* lib/sys_select.in.h: On native Windows, include <io.h>.
2011-10-03 Bruno Haible <bruno@clisp.org>
wmemset: Support for MSVC.
* m4/wmemset.m4 (gl_FUNC_WMEMSET): Use a small test program to test
whether wmemset() exists.
2011-10-03 Bruno Haible <bruno@clisp.org>
wmemmove: Support for MSVC.
* m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Use a small test program to test
whether wmemmove() exists.
2011-10-03 Bruno Haible <bruno@clisp.org>
wmemcpy: Support for MSVC.
* m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Use a small test program to test
whether wmemcpy() exists.
2011-10-03 Bruno Haible <bruno@clisp.org>
wmemcmp: Support for MSVC.
* m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Use a small test program to test
whether wmemcmp() exists.
2011-10-03 Bruno Haible <bruno@clisp.org>
wmemchr: Support for MSVC.
* m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Use a small test program to test
whether wmemchr() exists.
2011-10-03 Bruno Haible <bruno@clisp.org>
glthread/*, strsignal: Support for MSVC.
* lib/glthread/cond.h: Define WIN32_LEAN_AND_MEAN, so as to avoid
including <winsock.h> on MSVC 9.
* lib/glthread/lock.h: Likewise.
* lib/glthread/thread.h: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/strsignal.c: Include <string.h> first. Don't include <unistd.h>
if HAVE_UNISTD_H is false.
* m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Test for <unistd.h>.
2011-10-03 Bruno Haible <bruno@clisp.org>
nonblocking tests: Fix test failure on OpenBSD/SPARC64.
* tests/test-nonblocking-socket.h (SOCKET_DATA_BLOCK_SIZE) [OpenBSD]:
Set to 100000.
2011-10-03 Bruno Haible <bruno@clisp.org>
acl: Fix specification.
* lib/file-has-acl.c (file_has_acl): Fix specification.
2011-10-03 Bruno Haible <bruno@clisp.org>
relocatable-lib[-lgpl]: Avoid expensive /proc access on Linux, Cygwin.
* lib/relocatable.c (ENABLE_COSTLY_RELOCATABLE): New macro.
(compute_curr_prefix, shared_library_fullname,
find_shared_library_fullname, get_shared_library_fullname, relocate):
Use it together with PIC && INSTALLDIR.
Reported by <jojelino@gmail.com>
via Charles Wilson <cygwin@cwilson.fastmail.fm>.
2011-10-01 Jim Meyering <meyering@redhat.com>
maint.mk: adjust a release-related rule not to require use of gzip
* top/maint.mk (writable-files): Don't hard-code use of .tar.gz.
Instead, check each file in $(DIST_ARCHIVES). This is better for
projects that build only .tar.xz files. Also fix an erroneous test.
test-linkat: don't leave behind a temporary file
* tests/test-linkat.c (main): Don't forget to remove a temporary file.
Otherwise, coreutils' "make distcheck" would fail with this:
Only in /c/cu/tests/torture/coreutils/test/\
coreutils-8.13.22-d5caf.old/gnulib-tests: test-linkat.too
make[2]: *** [my-distcheck] Error 1
float, math: add omitted file
* lib/itold.c: Add file, required for yesterday's float change.
2011-10-01 Bruno Haible <bruno@clisp.org>
isinf: Fix for OpenBSD/x86.
* m4/isinf.m4 (gl_ISINFL_WORKS): Also test the behaviour of isinf on
pseudo-NaNs, pseudo-Infinities, and other non-IEEE values.
* doc/posix-functions/isinf.texi: Mention the problem on OpenBSD/x86.
2011-10-01 Bruno Haible <bruno@clisp.org>
isfinite: Fix syntax error in configure test.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Fix syntax error.
isfinite: Fix typo.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): When cross-compiling, set
gl_cv_func_isfinitel_works, not gl_cv_func_isnanl_works.
2011-10-01 Bruno Haible <bruno@clisp.org>
nonblocking tests: Fix test failure on Linux/IA-64.
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/IA-64]:
Set to 270000.
2011-10-01 Bruno Haible <bruno@clisp.org>
mkfifoat tests: Fix a test failure on mingw.
* tests/test-mkfifoat.c (main): Allow mkfifoat or test_mknodat to fail
with error ENOSYS.
2011-09-30 Bruno Haible <bruno@clisp.org>
float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64.
* m4/float_h.m4 (gl_FLOAT_H): Test conversion from 'int' to
'long double'. Set REPLACE_ITOLD.
* lib/float.in.h (_Qp_itoq, _gl_float_fix_itold): New declarations.
* lib/math.in.h (_Qp_itoq, _gl_math_fix_itold): New declarations.
* lib/itold.c: New file.
* modules/float (Files): Add lib/itold.c.
(configure.ac): When REPLACE_ITOLD is 1, arrange to compile itold.c.
(Makefile.am): Substitute REPLACE_ITOLD.
* modules/math (Depends-on): Add float.
(Makefile.am): Substitute REPLACE_ITOLD.
* doc/posix-headers/float.texi: Mention problem on Linux/SPARC64.
* doc/posix-headers/math.texi: Likewise.
* doc/posix-functions/logl.texi: Likewise.
2011-09-30 Bruno Haible <bruno@clisp.org>
nonblocking tests: Fix test failure on Linux/SPARC (32-bit and 64-bit).
* tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/SPARC]:
Set to 140000.
2011-09-30 Bruno Haible <bruno@clisp.org>
gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
* gnulib-tool (func_import): If the configure.ac has an AC_PROG_CC_STDC
invocation, say "right after AC_PROG_CC_STDC", not "right after
AC_PROG_CC".
Reported by Gary V. Vaughan <gary@gnu.org>.
2011-09-30 Bruno Haible <bruno@clisp.org>
Centralize C99 requirement.
* m4/gnulib-common.m4 (gl_PROG_CC_C99): New macro.
* modules/stdarg (configure.ac-early): Invoke it instead of
AC_PROG_CC_STDC.
Reported by Gary V. Vaughan and Paul Eggert.
2011-09-29 Bruno Haible <bruno@clisp.org>
float: Fix LDBL_MAX value on Linux/PowerPC.
* m4/float_h.m4 (gl_FLOAT_H): Set FLOAT_H and REPLACE_FLOAT_LDBL also
on Linux/PowerPC.
* lib/float.in.h (LDBL_MAX): Redefine also on Linux/PowerPC.
* lib/float.c (gl_LDBL_MAX): Also define on Linux/PowerPC.
* doc/posix-headers/float.texi: Mention Linux/PowerPC as an affected
platform.
Reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
2011-09-29 Bruno Haible <bruno@clisp.org>
doc: Improve doc about gl_EARLY.
* doc/gnulib-tool.texi (Initial import): Mention where to place an
AC_PROG_CC_STDC invocation.
Reported by Gary V. Vaughan <gary@gnu.org>.
2011-09-28 Bruno Haible <bruno@clisp.org>
fgetc, fputc, fread, fwrite tests: Fix link error.
* tests/test-fgetc.c (main): Don't invoke gl_msvc_inval_ensure_handler
on non-MSVC platforms.
* tests/test-fputc.c (main): Likewise.
* tests/test-fread.c (main): Likewise.
* tests/test-fwrite.c (main): Likewise.
Reported by Jim Meyering.
2011-09-27 Bruno Haible <bruno@clisp.org>
fputc, fwrite tests: Avoid test failure on MSVC.
* tests/test-fgetc.c: Include msvc-inval.h.
(main): Invoke gl_msvc_inval_ensure_handler.
* tests/test-fputc.c: Include msvc-inval.h.
(main): Invoke gl_msvc_inval_ensure_handler.
* tests/test-fread.c: Include msvc-inval.h.
(main): Invoke gl_msvc_inval_ensure_handler.
* tests/test-fwrite.c: Include msvc-inval.h.
(main): Invoke gl_msvc_inval_ensure_handler.
* modules/fgetc-tests (Depends-on): Add msvc-inval.
* modules/fputc-tests (Depends-on): Likewise.
* modules/fread-tests (Depends-on): Likewise.
* modules/fwrite-tests (Depends-on): Likewise.
2011-09-27 Bruno Haible <bruno@clisp.org>
raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'.
* lib/signal.in.h (GNULIB_defined_signal_blocking): New macro.
(raise): Remove older, duplicated declaration.
(_gl_raise_SIGPIPE): New declaration.
* lib/sigprocmask.c (_gl_raise_SIGPIPE): New function.
(rpl_raise): Remove function.
* lib/raise.c (rpl_raise, raise): Merge into a single function. Handle
a gnulib-defined SIGPIPE here.
* m4/raise.m4 (gl_FUNC_RAISE): Set REPLACE_RAISE also if the module
'sigprocmask' has detected missing signal-blocking and the module
'sigpipe' is enabled.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.
2011-09-26 Gijs van Tulder <gvtulder@gmail.com>
base64-tests: avoid memory leak
* tests/test-base64.c (main): Plug memory leak.
base32: new module
* modules/base32: New module.
* lib/base32.c: New file.
* lib/base32.h: Likewise.
* m4/base32.m4: Likewise.
* modules/base32-tests: New test.
* tests/test-base32.c: Likewise.
* MODULES.html.sh (Misc): Mention it.
2011-09-26 Paul Eggert <eggert@cs.ucla.edu>
gnulib: use more-standard license notice wording
* gnulib-tool (func_emit_copyright_notice): When emitting a
license notice into a file, use the standard wording as suggested
by the current information for GNU maintainers, except say "file"
rather than "program". The new wording gives a license version
number, which addresses an issue raised by Glenn Morris in
<http://lists.gnu.org/r/bug-gnulib/2011-09/msg00397.html>.
* m4/onceonly.m4: Use that same wording here, too.
dup2: minor simplification
* m4/dup2.m4 (gl_PREREQ_DUP2): Don't require AC_C_INLINE,
as lib/dup2.c no longer uses 'inline'.
2011-09-25 Bruno Haible <bruno@clisp.org>
strings: Fix compilation error on MSVC.
* lib/strings.in.h: Include <stddef.h> for size_t.
2011-09-25 Bruno Haible <bruno@clisp.org>
fflush et al.: Document limitation on MSVC.
* doc/posix-functions/fflush.texi: Document possible crash in handling
mode other than DEFAULT_HANDLING.
* doc/posix-functions/fgetc.texi: Likewise.
* doc/posix-functions/fputc.texi: Likewise.
* doc/posix-functions/fread.texi: Likewise.
* doc/posix-functions/fwrite.texi: Likewise.
2011-09-25 Bruno Haible <bruno@clisp.org>
msvc-inval: Allow three invalid parameter handling modes.
* lib/msvc-inval.h: Don't include <stdlib.h> here.
(DEFAULT_HANDLING, HAIRY_LIBRARY_HANDLING, SANE_LIBRARY_HANDLING): New
macros.
(gl_msvc_inval_ensure_handler, TRY_MSVC_INVAL, CATCH_MSVC_INVAL,
DONE_MSVC_INVAL): Implement DEFAULT_HANDLING. Treat
SANE_LIBRARY_HANDLING as a no-op.
* lib/msvc-inval.c: Treat SANE_LIBRARY_HANDLING as a no-op. Include
<stdlib.h>.
(gl_msvc_invalid_parameter_handler): Implement DEFAULT_HANDLING.
2011-09-25 Bruno Haible <bruno@clisp.org>
msvc-inval: Make handler multithread-safe.
* lib/msvc-inval.h (struct gl_msvc_inval_per_thread): New type.
(gl_msvc_inval_restart, gl_msvc_inval_restart_valid): Remove
declarations.
(gl_msvc_inval_current): New declaration.
(TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL) [!_MSC_VER]:
Operate on the structure returned by gl_msvc_inval_current().
* lib/msvc-inval.c (gl_msvc_inval_restart, gl_msvc_inval_restart_valid):
Remove varaiables.
(tls_index, tls_initialized): New variables.
(not_per_thread): New variable.
(gl_msvc_inval_current): New function.
(gl_msvc_invalid_parameter_handler) [!_MSC_VER]: Use the structure
returned by gl_msvc_inval_current().
2011-09-25 Bruno Haible <bruno@clisp.org>
msvc-inval: Install handler globally.
* lib/msvc-inval.h (STATUS_GNULIB_INVALID_PARAMETER): Define also for
!_MSC_VER.
(gl_msvc_invalid_parameter_handler): Remove declaration.
(gl_msvc_inval_restart_valid, gl_msvc_inval_ensure_handler): New
declarations.
(TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL) [!_MSC_VER]:
Install the handler globally, don't uninstall it.
* lib/msvc-inval.c (gl_msvc_inval_restart_valid): New variable.
(gl_msvc_invalid_parameter_handler): Make static. If the restart is not
currently valid, call RaiseException instead.
(gl_msvc_inval_initialized, gl_msvc_inval_ensure_handler): Define also
for !_MSC_VER.
2011-09-25 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fix for MSVC 9.
* lib/strerror_r.c (local_snprintf): New function.
(snprintf): Define to local_snprintf, not to _snprintf.
2011-09-25 Bruno Haible <bruno@clisp.org>
ftruncate: Support for MSVC 9.
* lib/ftruncate.c: Include errno.h, msvc-inval.h.
(chsize_nothrow): New function.
(chsize): Redefine as a macro.
* m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): Require AC_C_INLINE.
* modules/ftruncate (Depends-on): Add msvc-inval.
2011-09-25 Bruno Haible <bruno@clisp.org>
New module 'fstat'.
* lib/sys_stat.in.h (fstat): Declare only if GNULIB_FSTAT is set.
* lib/fstat.c: New file, based on a piece of lib/fchdir.c.
* lib/fchdir.c (rpl_fstat): Remove function.
* m4/fstat.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_FSTAT.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Test whether fstat is
declared.
(gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_FSTAT.
* modules/sys_stat (Makefile.am): Substitute GNULIB_FSTAT.
* modules/fstat: New file.
* modules/sys_stat-tests (Depends-on): Remove fstat-tests.
* tests/test-sys_stat-c++.cc (fstat): Check only if GNULIB_TEST_FSTAT
is set.
* doc/posix-functions/fstat.texi: Mention the new module and the
problem on MSVC.
* NEWS: Mention the change.
* modules/acl (Depends-on): Add fstat.
* modules/chdir-safer (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/copy-file (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/read-file (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
2011-09-25 Bruno Haible <bruno@clisp.org>
linkat: Fix compilation on MSVC 9.
* lib/linkat.c: Don't include <stdint.h>.
2011-09-25 Bruno Haible <bruno@clisp.org>
fclose: Support for MSVC 9.
* lib/fclose.c: Include msvc-inval.h.
(fclose_nothrow): New function.
(rpl_fclose): Use it.
* modules/fclose (Depends-on): Add msvc-inval.
* doc/posix-functions/fclose.texi: Mention the problem on MSVC.
2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
dup2: minor simplifications
* lib/dup2.c (ms_windows_dup2): Omit 'inline' as it's not clear
that it's a performance win.
(rpl_dup2): Change "if !((defined _WIN32 || defined __WIN32__) &&
! defined __CYGWIN__)" to "ifdef F_GETFL".
2011-09-24 Jim Meyering <meyering@redhat.com>
test-futimens: avoid a warning from gcc -Wshadow
* tests/test-futimens.h (test_futimens): Rename inner local, s/fd/fd0/
to avoid a shadowing warning.
2011-09-24 Bruno Haible <bruno@clisp.org>
fdopen: Support for MSVC 9.
* m4/fdopen.m4 (gl_FUNC_FDOPEN): Set REPLACE_FDOPEN also if
HAVE_MSVC_INVALID_PARAMETER_HANDLER is 1.
* lib/fdopen.c: Include msvc-inval.h.
(fdopen_nothrow): New function.
(rpl_fdopen): Use it.
* modules/fdopen (Depends-on): Add msvc-inval.
* modules/fclose-tests (Depends-on): Add fdopen.
* modules/fflush-tests (Depends-on): Likewise.
* modules/fgetc-tests (Depends-on): Likewise.
* modules/fputc-tests (Depends-on): Likewise.
* modules/fread-tests (Depends-on): Likewise.
* modules/freopen-tests (Depends-on): Likewise.
* modules/fseeko-tests (Depends-on): Likewise.
* modules/ftello-tests (Depends-on): Likewise.
* modules/fwrite-tests (Depends-on): Likewise.
* doc/posix-functions/fdopen.texi: Mention the problem on MSVC.
2011-09-24 Bruno Haible <bruno@clisp.org>
fgetc, fputc, fread, fwrite tests: Avoid compilation error on MSVC.
* modules/fgetc-tests (Depends-on): Add unistd.
* modules/fputc-tests (Depends-on): Likewise.
* modules/fread-tests (Depends-on): Likewise.
* modules/fwrite-tests (Depends-on): Likewise.
2011-09-24 Bruno Haible <bruno@clisp.org>
dup: Simplify autoconf test.
* m4/dup.m4 (gl_FUNC_DUP): Don't run a test program. Instead, just rely
on gl_MSVC_INVAL's result.
2011-09-24 Bruno Haible <bruno@clisp.org>
Tests for function fwrite().
* modules/fwrite-tests: New file.
* tests/test-fwrite.c: New file.
* modules/stdio-tests (Depends-on): Add fwrite-tests.
Tests for function fread().
* modules/fread-tests: New file.
* tests/test-fread.c: New file.
* modules/stdio-tests (Depends-on): Add fread-tests.
Activate fputc tests.
* modules/stdio-tests (Depends-on): Add fputc-tests.
Enhance fgetc, fputc tests.
* tests/test-fgetc.c (main): Also test the stream's error indicator.
* tests/test-fputc.c (main): Likewise.
2011-09-24 Bruno Haible <bruno@clisp.org>
write: Support for MSVC 9.
* lib/unistd.in.h (write): Replace also when GNULIB_UNISTD_H_NONBLOCKING
is not 1.
* lib/write.c (write_nothrow): New function.
(rpl_write): Define also when GNULIB_NONBLOCKING or GNULIB_SIGPIPE is
not 1. Use write_nothrow.
* m4/write.m4 (gl_FUNC_WRITE): Replace read if the platform has an
invalid parameter handler.
(gl_PREREQ_WRITE): New macro.
* modules/write (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_WRITE.
* doc/posix-functions/write.texi: Mention the problem on MSVC.
2011-09-24 Bruno Haible <bruno@clisp.org>
read: Fix last commit.
* lib/read.c (read_nothrow): Change return type to 'ssize_t'.
2011-09-24 Bruno Haible <bruno@clisp.org>
dup2: Fix last commit.
* lib/dup2.c: Restore comments. Treat Cygwin like Unix.
(rpl_dup2): Disable fcntl workaround on native Windows.
sigprocmask: Make code safer.
* lib/sigprocmask.c: Move '#include "msvc-inval.h"' before the code
section that changes macro definitions for this compilation unit.
2011-09-23 Paul Eggert <eggert@cs.ucla.edu>
dup2: clarify by coalescing Windows-specific material
* lib/dup2.c: Move '#include "msvc-inval.h"' and '#include
"msvc-nothrow.h"' to the Windows-specific section, so that the
Emacs source need not contain these include files.
(ms_windows_dup2): Rename from dup2_nothrow, and move all the
Windows-specific fixes into this function rather than just the
nothrow fix, as this shortens and clarifies the code. Always
define as a function, as that's a bit cleaner than having it be
sometimes a function and sometimes a macro.
(rpl_dup2): Move the Windows-specific stuff out of here and into
ms_windows_dup2. Don't protect the Haiku-related fix with
"#if !defined __linux__", as the same code also works around
a Linux kernel bug, and it doesn't add any system calls on any
platform. Add comment about FreeBSD 6.1.
sigprocmask: move #include directive
* lib/sigprocmask.c: Move '#include "msvc-inval.h"' to the
Windows-specific section, so that the Emacs source need not
contain msvc-inval.h.
2011-09-23 Bruno Haible <bruno@clisp.org>
read: Support for MSVC 9.
* lib/unistd.in.h (read): Replace also when GNULIB_UNISTD_H_NONBLOCKING
is not 1.
* lib/read.c (read_nothrow): New function.
(rpl_read): Define also when GNULIB_NONBLOCKING is not 1. Use
read_nothrow.
* m4/read.m4 (gl_FUNC_READ): Replace read if the platform has an
invalid parameter handler.
(gl_PREREQ_READ): New macro.
* modules/read (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_READ.
* doc/posix-functions/read.texi: Mention the problem on MSVC.
2011-09-23 Bruno Haible <bruno@clisp.org>
close: Support for MSVC 9.
* lib/close.c: Include <errno.h>, msvc-inval.h.
(close_nothrow): New function.
(rpl_close): Use it.
* m4/close.m4 (gl_FUNC_CLOSE): Replace close if the platform has an
invalid parameter handler.
* modules/close (Depends-on): Add msvc-inval.
* modules/dup2-tests (Depends-on): Add close.
* modules/dup3-tests (Depends-on): Likewise.
* modules/fcntl-tests (Depends-on): Likewise.
* modules/spawn-pipe-tests (Depends-on): Likewise.
* modules/unistd-safer-tests (Depends-on): Likewise.
* doc/posix-functions/close.texi: Mention the problem on MSVC.
2011-09-23 Bruno Haible <bruno@clisp.org>
New module 'dup'.
* lib/unistd.in.h (dup): Declare only if the 'dup' module is in use.
Allow replacement.
* lib/dup.c: New file.
* lib/fchdir.c (rpl_dup): Remove function.
* m4/dup.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_DUP here.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether 'dup' is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_DUP.
* modules/unistd (Makefile.am): Substitute GNULIB_DUP.
* modules/dup: New file.
* tests/test-unistd-c++.cc: Check the signature of 'dup' only if the
'dup' module is in use.
* modules/fdopendir (Depends-on): Add dup.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
* modules/posix_spawnp-tests (Depends-on): Likewise.
* modules/unistd-safer-tests (Depends-on): Likewise.
* modules/utimens-tests (Depends-on): Likewise.
* doc/posix-functions/dup.texi: Mention the new module and the problem
on MSVC.
2011-09-23 Bruno Haible <bruno@clisp.org>
getdtablesize: Support for MSVC 9.
* lib/getdtablesize.c: Include msvc-inval.h.
(_setmaxstdio_nothrow): New function.
(_setmaxstdio): Redefine it.
* m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): New macro.
* modules/getdtablesize (Depends-on): Add msvc-inval.
(configure.ac): Invoke gl_PREREQ_GETDTABLESIZE.
2011-09-23 Bruno Haible <bruno@clisp.org>
signal-h: Rename from signal.
* modules/signal-h: Renamed from modules/signal.
* modules/pthread_sigmask (Depends-on): Update.
* modules/raise (Depends-on): Likewise.
* modules/sigaction (Depends-on): Likewise.
* modules/sigpipe (Depends-on): Likewise.
* modules/sigprocmask (Depends-on): Likewise.
* modules/sys_select (Depends-on): Likewise.
* modules/signal-h-tests: Renamed from modules/signal-tests.
(Files, Depends-on, Makefile.am): Update.
* tests/test-signal-h.c: Renamed from tests/test-signal.c.
* modules/signal-h-c++-tests: Renamed from modules/signal-c++-tests.
(Files, Makefile.am): Update.
* tests/test-signal-h-c++.cc: Renamed from tests/test-signal-c++.cc.
* tests/test-signal-h-c++2.cc: Renamed from tests/test-signal-c++2.cc.
* modules/signal: New placeholder file.
* MODULES.html.sh (Support for systems lacking POSIX:2008): Update.
* doc/posix-headers/signal.texi: Update.
* NEWS: Mention the change.
2011-09-23 Bruno Haible <bruno@clisp.org>
sigprocmask: Avoid crashes through signal() on MSVC 9.
* lib/sigprocmask.c: Include msvc-inval.h.
(signal_nothrow): New function.
(signal): Redefine it.
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Require AC_C_INLINE.
* modules/sigprocmask (Depends-on): Add msvc-inval.
* doc/posix-functions/signal.texi: Mention the problem on MSVC.
2011-09-23 Bruno Haible <bruno@clisp.org>
Tests for module 'raise'.
* modules/raise-tests: New file.
* tests/test-raise.c: New file.
raise: Support for MSVC.
* lib/signal.in.h (raise): New declaration.
* lib/raise.c (raise_nothrow, rpl_raise): New alternate implementation
for native Windows platforms.
* m4/raise.m4: New file.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize GNULIB_RAISE,
HAVE_RAISE, REPLACE_RAISE.
* modules/signal (Makefile.am): Substitute GNULIB_RAISE, HAVE_RAISE,
REPLACE_RAISE.
* modules/raise (Status, Notice): Remove fields.
(Files): Add m4/raise.m4.
(Depends-on): Add signal, msvc-inval.
(configure.ac): Use the common idioms.
(Maintainer): Add me.
* tests/test-signal-c++.cc: Check the signature of raise.
* doc/posix-functions/raise.texi: Mention the problem on MSVC.
2011-09-23 Bruno Haible <bruno@clisp.org>
pipe2: Fix compilation on pre-C99 compilers.
* lib/pipe2.c (pipe2): Surround verify(...) declaration with braces.
2011-09-23 Bruno Haible <bruno@clisp.org>
New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
* lib/msvc-nothrow.h: New file.
* lib/msvc-nothrow.c: New file.
* m4/msvc-nothrow.m4: New file.
* modules/msvc-nothrow: New file.
* lib/dup2.c: Include msvc-nothrow.h.
(rpl_dup2): No need to protect _get_osfhandle call here.
* lib/accept4.c: Include msvc-nothrow.h.
* lib/error.c: Likewise.
* lib/fcntl.c: Likewise.
* lib/lseek.c: Likewise.
* lib/nonblocking.c: Likewise.
* lib/poll.c: Likewise.
* lib/read.c: Likewise.
* lib/select.c: Likewise.
* lib/sockets.h: Likewise.
* lib/sockets.c: Likewise.
* lib/stdio-read.c: Likewise.
* lib/stdio-write.c: Likewise.
* lib/write.c: Likewise.
* lib/w32sock.h: Likewise.
* lib/w32spawn.h: Likewise.
* lib/flock.c: Include msvc-nothrow.h instead of <io.h>.
* lib/fsync.c: Likewise.
* lib/isapipe.c: Likewise.
* modules/dup2 (Depends-on): Add msvc-nothrow.
* modules/accept4 (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/nonblocking (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/read (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/sockets (Depends-on): Likewise.
* modules/sigpipe (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.
* modules/accept (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise.
* modules/spawn-pipe (Depends-on): Likewise.
* modules/flock (Depends-on): Likewise.
* modules/fsync (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* tests/test-cloexec.c: Include msvc-nothrow.h.
* tests/test-dup-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-pipe2.c: Likewise.
* modules/cloexec-tests (Depends-on): Add msvc-nothrow.
* modules/unistd-safer-tests (Depends-on): Likewise.
* modules/dup2-tests (Depends-on): Likewise.
* modules/dup3-tests (Depends-on): Likewise.
* modules/fcntl-tests (Depends-on): Likewise.
* modules/pipe-posix-tests (Depends-on): Likewise.
* modules/pipe2-tests (Depends-on): Likewise.
2011-09-23 Bruno Haible <bruno@clisp.org>
dup2: Make code more maintainable.
* lib/dup2.c (dup2_nothrow): New function, extracted from rpl_dup2.
(rpl_dup2): Use it.
* m4/dup2.m4 (gl_PREREQ_DUP2): New macro.
* modules/dup2 (configure.ac): Invoke it.
Reported by Paul Eggert.
2011-09-23 Bruno Haible <bruno@clisp.org>
msvc-inval: Fix compilation error.
* lib/msvc-inval.h: Include <excpt.h>.
2011-09-23 Bruno Haible <bruno@clisp.org>
mkdir: Tweak for MSVC 9.
* lib/sys_stat.in.h: Update comments.
* doc/posix-functions/mkdir.texi: Mention problem on MSVC 9.
Tests for module 'chdir'.
* modules/chdir-tests: New file.
* tests/test-chdir.c: New file.
New module 'chdir'.
* modules/chdir: New file.
* lib/unistd.in.h: Include <io.h>, <direct.h> also for chdir.
(chdir): New declaration.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether chdir is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_CHDIR.
* modules/unistd (Makefile.am): Substitute GNULIB_CHDIR.
* tests/test-unistd-c++.cc: Check signature of chdir.
* doc/posix-functions/chdir.texi: Mention problem on native Windows.
* modules/chdir-long (Depends-on): Add chdir.
* modules/fchdir (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
rmdir: Support for mingw, MSVC 9.
* lib/unistd.in.h: Include <io.h> and <direct.h> also for rmdir.
* doc/posix-functions/getcwd.texi: Mention problem on native Windows.
getcwd: Tweak for MSVC 9.
* lib/unistd.in.h: Update comments.
* doc/posix-functions/getcwd.texi: Mention problem on MSVC 9.
2011-09-22 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Avoid a link error on MSVC.
* m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Check for snprintf.
* lib/strerror_r.c (snprintf): Define to _snprintf if it doesn't exist.
2011-09-22 Bruno Haible <bruno@clisp.org>
select: Avoid link errors on MSVC.
* m4/select.m4 (gl_FUNC_SELECT): Determine LIB_SELECT.
* modules/select (Link): Replace $(LIBSOCKET) with $(LIB_SELECT).
* modules/pselect (Link): Likewise.
* NEWS: Mention the change.
* modules/select-tests (Makefile.am): Link test-select, test-select-fd,
test-select-stdin against $(LIB_SELECT).
* modules/pselect-tests (Makefile.am): Link test-pselect against
$(LIB_SELECT).
2011-09-22 Bruno Haible <bruno@clisp.org>
select: Avoid compilation error on MSVC.
* lib/select.c: Don't include <stdbool.h>.
2011-09-21 Bruno Haible <bruno@clisp.org>
Consolidate all uses of PATH_MAX in *.m4 files.
* m4/pathmax.m4 (gl_PATHMAX_SNIPPET, gl_PATHMAX_SNIPPET_PREREQ): New
macros.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Use gl_PATHMAX_SNIPPET_PREREQ
and gl_PATHMAX_SNIPPET.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* modules/chdir-long (Files): Add m4/pathmax.m4.
* modules/getcwd (Files): Likewise.
2011-09-21 Bruno Haible <bruno@clisp.org>
ftruncate: Un-deprecate, concentrate on Win32 support.
* modules/ftruncate (Status, Notice): Remove sections.
(Depends-on): Add largefile.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Drop failure message on
non-mingw platforms.
* lib/ftruncate.c: Remove code for the older platforms. For Win32,
include <io.h>.
* modules/perror-tests (Depends-on): Add ftruncate.
* doc/posix-functions/ftruncate.texi: Mention the MSVC problem and the
'ftruncate' module.
2011-09-21 Bruno Haible <bruno@clisp.org>
Add dependencies to new dirent related modules.
* modules/opendir (Depends-on): Add closedir.
* modules/getcwd (Depends-on): Add opendir, closedir.
* modules/dirent-safer-tests (Depends-on): Likewise.
* modules/fdopendir-tests (Depends-on): Likewise.
* modules/rename-tests (Depends-on): Add opendir, readdir, closedir.
* modules/renameat-tests (Depends-on): Likewise.
2011-09-21 Bruno Haible <bruno@clisp.org>
opendir: Avoid compilation error on mingw.
* lib/opendir.c: Include <stddef.h> always. Include <unistd.h> as well.
* modules/opendir (Depends-on): Add unistd.
2011-09-21 Bruno Haible <bruno@clisp.org>
ftruncate tests: Avoid a test failure on mingw.
* tests/test-ftruncate.c (main): Allow a failure with EACCES.
2011-09-21 Bruno Haible <bruno@clisp.org>
select tests: Avoid test failures on OSF/1 5.1 and mingw.
* tests/test-select.h (test_bad_fd): Disable all tests on OSF/1 and
native Windows.
2011-09-21 Bruno Haible <bruno@clisp.org>
New module 'fdopen'.
* lib/stdio.in.h (fdopen): New declaration.
* lib/fdopen.c: New file.
* m4/fdopen.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FDOPEN,
REPLACE_FDOPEN.
* modules/stdio (Makefile.am): Substitute GNULIB_FDOPEN,
REPLACE_FDOPEN.
* modules/fdopen: New file.
* modules/stdio-tests (Depends-on): Remove fdopen-tests.
* tests/test-stdio-c++.cc: Check signature of fdopen.
* doc/posix-functions/fdopen.texi: Mention the new module.
2011-09-21 Bruno Haible <bruno@clisp.org>
unlockpt tests: Avoid test failure on NetBSD 5.1.
* tests/test-unlockpt.c (main): Skip the EBADF tests on NetBSD.
* doc/posix-functions/unlockpt.texi: Mention the bug on NetBSD.
2011-09-21 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r tests: Avoid test failure on Linux/SPARC.
* tests/test-getlogin.c (main): Allow a failure with EINVAL.
* tests/test-getlogin_r.c (main): Likewise.
2011-09-20 Bruno Haible <bruno@clisp.org>
time tests: Don't require pid_t.
* doc/posix-headers/time.texi: Revert last change.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Revert last change.
* tests/test-time.c: Comment out the check for pid_t.
2011-09-20 Bruno Haible <bruno@clisp.org>
fsync tests: Avoid a test failure on mingw.
* tests/test-fsync.c (main): Allow a failure with EIO.
2011-09-20 Bruno Haible <bruno@clisp.org>
euidaccess: Update comments.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Update comments.
2011-09-20 Bruno Haible <bruno@clisp.org>
Ensure EBADF returns for socket functions on mingw.
* lib/accept.c (rpl_accept): Fail with error EBADF if the file
descriptor is invalid.
* lib/bind.c (rpl_bind): Likewise.
* lib/connect.c (rpl_connect): Likewise.
* lib/getpeername.c (rpl_getpeername): Likewise.
* lib/getsockname.c (rpl_getsockname): Likewise.
* lib/getsockopt.c (rpl_getsockopt): Likewise.
* lib/listen.c (rpl_listen): Likewise.
* lib/recv.c (rpl_recv): Likewise.
* lib/recvfrom.c (rpl_recvfrom): Likewise.
* lib/send.c (rpl_send): Likewise.
* lib/sendto.c (rpl_sendto): Likewise.
* lib/setsockopt.c (rpl_setsockopt): Likewise.
* lib/shutdown.c (rpl_shutdown): Likewise.
2011-09-20 Bruno Haible <bruno@clisp.org>
select tests: EBADF tests.
* tests/test-select.h (do_select_bad_fd, do_select_bad_fd_nowait,
test_bad_fd): New functions.
(test_function): Invoke also test_bad_fd.
2011-09-20 Bruno Haible <bruno@clisp.org>
Tests for module 'posix_spawn_file_actions_addopen.
* modules/posix_spawn_file_actions_addopen-tests: New file.
* tests/test-posix_spawn_file_actions_addopen.c: New file.
Tests for module 'posix_spawn_file_actions_adddup2'.
* modules/posix_spawn_file_actions_adddup2-tests: New file.
* tests/test-posix_spawn_file_actions_adddup2.c: New file.
Tests for module 'posix_spawn_file_actions_addclose'.
* modules/posix_spawn_file_actions_addclose-tests: New file.
* tests/test-posix_spawn_file_actions_addclose.c: New file.
2011-09-20 Bruno Haible <bruno@clisp.org>
Tests for module 'unlockpt'.
* modules/unlockpt-tests: New file.
* tests/test-unlockpt.c: New file.
* doc/posix-functions/unlockpt.texi: Mention the Cygwin 1.7 problem.
Tests for module 'grantpt'.
* modules/grantpt-tests: New file.
* tests/test-grantpt.c: New file.
* doc/posix-functions/grantpt.texi: Mention the Cygwin 1.7 problem.
2011-09-20 Bruno Haible <bruno@clisp.org>
freopen tests: EBADF tests.
* tests/test-freopen.c: Include errno.h, unistd.h.
(main): Add tests for EBADF, commented out for the moment.
fclose tests: EBADF tests.
* tests/test-fclose.c (main): Add tests for EBADF.
fflush tests: EBADF tests.
* tests/test-fflush.c: Include errno.h, macros.h.
(main): Add tests for EBADF.
ftello tests: EBADF tests.
* tests/test-ftello4.sh: New file.
* tests/test-ftello4.c: New file.
* modules/ftello-tests (Files): Add them.
(Makefile.am): Arrange to compile test-ftello4 and run test-ftello4.sh.
fseeko tests: EBADF tests.
* tests/test-fseeko4.sh: New file.
* tests/test-fseeko4.c: New file.
* modules/fseeko-tests (Files): Add them.
(Makefile.am): Arrange to compile test-fseeko4 and run test-fseeko4.sh.
Tests for function fputc().
* modules/fputc-tests: New file.
* tests/test-fputc.c: New file.
* modules/stdio-tests (Depends-on): Add fputc-tests.
Tests for function fgetc().
* modules/fgetc-tests: New file.
* tests/test-fgetc.c: New file.
* modules/stdio-tests (Depends-on): Add fgetc-tests.
Tests for function fdopen().
* modules/fdopen-tests: New file.
* tests/test-fdopen.c: New file.
* modules/stdio-tests (Depends-on): Add fdopen-tests.
Tests for module 'vdprintf'.
* modules/vdprintf-tests: New file.
* tests/test-vdprintf.c: New file.
Tests for module 'dprintf'.
* modules/dprintf-tests: New file.
* tests/test-dprintf.c: New file.
2011-09-20 Bruno Haible <bruno@clisp.org>
Tests for module 'ioctl'.
* modules/ioctl-tests: New file.
* tests/test-ioctl.c: New file.
2011-09-20 Bruno Haible <bruno@clisp.org>
fcntl tests: EBADF tests.
* tests/test-fcntl.c (main): Add more tests for EBADF.
2011-09-20 Bruno Haible <bruno@clisp.org>
utimensat tests: EBADF tests.
* tests/test-utimensat.c (main): Add tests for EBADF.
renameat tests: EBADF tests.
* tests/test-renameat.c (main): Add tests for EBADF.
mkfifoat tests: EBADF tests.
* tests/test-mkfifoat.c (main): Add tests for EBADF.
readlinkat tests: EBADF tests.
* tests/test-readlinkat.c (main): Add tests for EBADF.
symlinkat tests: EBADF tests.
* tests/test-symlinkat.c (main): Add tests for EBADF.
linkat tests: EBADF tests.
* tests/test-linkat.c (main): Add tests for EBADF.
Tests for module 'faccessat'.
* modules/faccessat-tests: New file.
* tests/test-faccessat.c: New file.
fdopendir tests: EBADF tests.
* tests/test-fdopendir.c (main): Add more tests for EBADF.
openat tests: EBADF tests.
* tests/test-fchownat.c (main): Add tests for EBADF.
* tests/test-fstatat.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-fchmodat.c: New file.
* modules/openat-tests (Files): Add tests/test-fchmodat.c.
(Makefile.am): Also run 'test-fchmodat'.
2011-09-20 Bruno Haible <bruno@clisp.org>
utimens, futimens, fdutimensat tests: EBADF tests.
* tests/test-futimens.h (test_futimens): Add more tests for EBADF.
Tests for function fstat().
* modules/fstat-tests: New file.
* tests/test-fstat.c: New file.
* modules/sys_stat-tests (Depends-on): Add fstat-tests.
2011-09-20 Bruno Haible <bruno@clisp.org>
test-ttyname_r tests: EBADF tests.
* tests/test-ttyname_r.c (main): Add tests for EBADF.
Tests for module 'isatty'.
* modules/isatty-tests: New file.
* tests/test-isatty.c: New file.
Tests for module 'write'.
* modules/write-tests: New file.
* tests/test-write.c: New file.
Tests for module 'read'.
* modules/read-tests: New file.
* tests/test-read.c: New file.
pwrite tests: EBADF tests.
* tests/test-pwrite.c (main): Add tests for EBADF.
pread tests: EBADF tests.
* tests/test-pread.c (main): Add tests for EBADF.
lseek tests: EBADF tests.
* tests/test-lseek.c (main): Add more tests for EBADF.
Tests for module 'ftruncate'.
* modules/ftruncate-tests: New file.
* tests/test-ftruncate.sh: New file.
* tests/test-ftruncate.c: New file.
fsync tests: EBADF tests.
* tests/test-fsync.c (main): Add more tests for EBADF.
fdatasync tests: EBADF tests.
* tests/test-fdatasync.c (main): Add more tests for EBADF.
Tests for module 'fchown'.
* modules/fchown-tests: New file.
* tests/test-fchown.c: New file.
Tests for module 'fchmod'.
* modules/fchmod-tests: New file.
* tests/test-fchmod.c: New file.
fchdir tests: EBADF tests.
* tests/test-fchdir.c (main): Add more tests for EBADF.
dup2 tests: EBADF tests.
* tests/test-dup2.c (main): Add more tests for EBADF.
Tests for module 'dup'.
* modules/dup-tests: New file.
* tests/test-dup.c: New file.
Tests for module 'close'.
* modules/close-tests: New file.
* tests/test-close.c: New file.
2011-09-20 Bruno Haible <bruno@clisp.org>
Tests for module 'shutdown'.
* modules/shutdown-tests: New file.
* tests/test-shutdown.c: New file.
Tests for module 'setsockopt'.
* modules/setsockopt-tests: New file.
* tests/test-setsockopt.c: New file.
Tests for module 'sendto'.
* modules/sendto-tests: New file.
* tests/test-sendto.c: New file.
Tests for module 'send'.
* modules/send-tests: New file.
* tests/test-send.c: New file.
Tests for module 'recvfrom'.
* modules/recvfrom-tests: New file.
* tests/test-recvfrom.c: New file.
Tests for module 'recv'.
* modules/recv-tests: New file.
* tests/test-recv.c: New file.
Tests for module 'listen'.
* modules/listen-tests: New file.
* tests/test-listen.c: New file.
Tests for module 'getsockopt'.
* modules/getsockopt-tests: New file.
* tests/test-getsockopt.c: New file.
Tests for module 'getsockname'.
* modules/getsockname-tests: New file.
* tests/test-getsockname.c: New file.
Tests for module 'getpeername'.
* modules/getpeername-tests: New file.
* tests/test-getpeername.c: New file.
Tests for module 'connect'.
* modules/connect-tests: New file.
* tests/test-connect.c: New file.
Tests for module 'bind'.
* modules/bind-tests: New file.
* tests/test-bind.c: New file.
accept4 tests: Fix for native Windows.
* tests/test-accept4.c: Include sockets.h.
(main): Invoke gl_sockets_startup.
* modules/accept4-tests (Depends-on): Add sockets.
accept tests: Fix for native Windows.
* tests/test-accept.c: Include sockets.h.
(main): Invoke gl_sockets_startup.
* modules/accept-tests (Depends-on): Add sockets.
2011-09-19 Bruno Haible <bruno@clisp.org>
msvc-inval: Require a semicolon after DONE_MSVC_INVAL.
* lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Wrap in a
do...while(0).
* lib/dup2.c (rpl_dup2): Add a semicolon after DONE_MSVC_INVAL.
Suggested by Paul Eggert.
2011-09-19 Bruno Haible <bruno@clisp.org>
sched: Ensure pid_t is defined.
* m4/sched_h.m4 (gl_SCHED_H): Arrange to override <sched.h> if it does
not define pid_t.
* lib/sched.in.h: Include <sys/types.h>.
* doc/posix-headers/sched.texi: Mention the pid_t problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-09-19 Bruno Haible <bruno@clisp.org>
msvc-inval: Ensure the entire expansion is a single statement.
* lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Add an extra pair
of braces.
2011-09-19 Jim Meyering <meyering@redhat.com>
tests: use printf, not echo in init.sh's warn_ function
* tests/init.sh (warn_): Use printf, not echo. The latter would
misbehave when given strings containing a backslash or starting
with e.g., -n. James Youngman suggested setting IFS.
2011-09-19 Eric Blake <eblake@redhat.com>
futimens: enhance test
* tests/test-futimens.h (test_futimens): Also check for EBADF on
closed non-negative fd.
date: accept 'hence' as opposite of 'ago'
* lib/parse-datetime.y (relative_time_table): Add 'hence'.
* tests/test-parse-datetime.c (main): Enhance test.
Suggested by Jesse Wilson.
2011-09-19 Jim Meyering <meyering@redhat.com>
getcwd: don't fail in a deep directory on a system without openat
Before this change, getcwd would fail when called from a directory
of depth PATH_MAX / 3 or greater. That was due to the fact that
the non-openat implementation used "..", "../..", "../../..", etc.
to access ancestor directories. With too many, that string would
be longer than PATH_MAX.
* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Define also when we are
using gnulib's openat replacement.
* m4/openat.m4: Set GNULIB_OPENAT, so getcwd.c knows when
we're using the replacement function.
2011-09-14 Martin von Gagern <Martin.vGagern@gmx.net>
maint.mk: avoid warnings from perl about missing files
* top/maint.mk (def_sym_regex): Ignore files listed in
$(gl_other_headers_) that do not exist, say because a project
does not use a corresponding module.
2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
stat: use pathmax.h only if needed
* lib/stat.c: Include pathmax.h only if REPLACE_FUNC_STAT_DIR.
This is better for Emacs, which does not have a mingw port and
therefore can avoid the pathmax module.
utimens: remove dependency on dup2
* lib/utimens.c (fdutimens): Don't invoke dup2; it's not needed
to work around the Linux kernel bug.
* modules/utimens (Depends-on): Remove dup2.
2011-09-18 Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Look for it also in libresolv.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): If the function was not found in
libnsl, search for it in libresolv.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
Needed on Solaris 7.
2011-09-18 Bruno Haible <bruno@clisp.org>
accept, accept4 tests: Avoid link error on Solaris.
* modules/accept-tests (Makefile.am): Link test-accept against
$(LIBSOCKET).
* modules/accept4-tests (Makefile.am): Link test-accept4 against
$(LIBSOCKET).
accept4: Avoid link error on Solaris.
* modules/accept4 (Link): New section.
socket functions: Avoid link errors on Solaris.
* modules/accept (Depends-on): Add socketlib.
(Link): New section.
* modules/bind (Depends-on): Add socketlib.
(Link): New section.
* modules/connect (Depends-on): Add socketlib.
(Link): New section.
* modules/getpeername (Depends-on): Add socketlib.
(Link): New section.
* modules/getsockname (Depends-on): Add socketlib.
(Link): New section.
* modules/getsockopt (Depends-on): Add socketlib.
(Link): New section.
* modules/listen (Depends-on): Add socketlib.
(Link): New section.
* modules/recv (Depends-on): Add socketlib.
(Link): New section.
* modules/recvfrom (Depends-on): Add socketlib.
(Link): New section.
* modules/send (Depends-on): Add socketlib.
(Link): New section.
* modules/sendto (Depends-on): Add socketlib.
(Link): New section.
* modules/setsockopt (Depends-on): Add socketlib.
(Link): New section.
* modules/shutdown (Depends-on): Add socketlib.
(Link): New section.
* modules/socket (Depends-on): Add socketlib.
(Link): New section.
2011-09-18 Bruno Haible <bruno@clisp.org>
ptsname tests: Let the test fail rather than hang (e.g. on AIX 5.1).
* tests/test-ptsname.c (main): Terminate the test if it takes longer
than 5 seconds.
* modules/ptsname-tests (configure.ac): Test for alarm.
2011-09-18 Bruno Haible <bruno@clisp.org>
posix_spawn_file_actions_add*: Fix module dependencies.
* modules/posix_spawn_file_actions_addclose (Dependencies): Add
posix_spawn_file_actions_init.
* modules/posix_spawn_file_actions_adddup2 (Dependencies): Likewise.
* modules/posix_spawn_file_actions_addopen (Dependencies): Likewise.
2011-09-18 Bruno Haible <bruno@clisp.org>
rename, renameat tests: Avoid test failures on FreeBSD 6.4.
* tests/test-rename.h (test_rename): Allow error code EEXIST.
* tests/test-renameat.c (main): Likewise.
2011-09-18 Bruno Haible <bruno@clisp.org>
Tests for module 'accept4'.
* modules/accept4-tests: New file.
* tests/test-accept4.c: New file.
2011-09-18 Bruno Haible <bruno@clisp.org>
Tests for module 'accept'.
* modules/accept-tests: New file.
* tests/test-accept.c: New file.
2011-09-18 Bruno Haible <bruno@clisp.org>
dup2: Support for MSVC.
* lib/dup2.c: Include msvc-inval.h.
(rpl_dup2): Handle invalid parameter notifications during dup2 and
_get_osfhandle calls.
* modules/dup2 (Depends-on): Add msvc-inval.
* doc/posix-functions/dup2.texi: Mention problem on MSVC.
New module 'msvc-inval'.
* lib/msvc-inval.h: New file.
* lib/msvc-inval.c: New file.
* m4/msvc-inval.m4: New file.
* modules/msvc-inval: New file.
2011-09-17 Bruno Haible <bruno@clisp.org>
Tests for module 'pclose'.
* modules/pclose-tests: New file.
New module 'pclose'.
* lib/stdio.in.h (pclose): New declaration.
* lib/pclose.c: New file.
* m4/pclose.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Test whether pclose is declared.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_PCLOSE, HAVE_PCLOSE.
* modules/stdio (Makefile.am): Substitute GNULIB_PCLOSE, HAVE_PCLOSE.
* modules/pclose: New file.
* modules/popen-tests (Depends-on): Add pclose.
* modules/popen-safer-tests (Depends-on): Likewise.
* doc/posix-functions/pclose.texi: Mention the new module.
2011-09-17 Bruno Haible <bruno@clisp.org>
popen: Support for MSVC.
* lib/stdio.in.h (popen): Declare it if the system lacks this function.
* lib/popen.c (popen): Provide alternate definition for native Windows.
* m4/popen.m4 (gl_FUNC_POPEN): Test if popen exists. Set HAVE_POPEN.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_POPEN.
* modules/popen (Depends-on, configure.ac): Update condition.
* modules/stdio (Makefile.am): Substitute HAVE_POPEN.
* doc/posix-functions/popen.texi: Mention that the MSVC problem is
fixed.
2011-09-17 Bruno Haible <bruno@clisp.org>
isnanl, isnand, isnanf: Work around MSVC bug.
* lib/isnan.c (FUNC): Use alternate ways of computing NaN and Infinity.
2011-09-17 Bruno Haible <bruno@clisp.org>
sys_socket tests: Fix recent mistake.
* tests/test-sys_socket.c (t1): Avoid collision of identifiers.
2011-09-17 Bruno Haible <bruno@clisp.org>
putenv: Support for MSVC.
* modules/putenv (Depends-on): Add environ.
* lib/putenv.c (environ): Disable declaration.
* lib/unistd.in.h: Update comment.
2011-09-17 Bruno Haible <bruno@clisp.org>
math: Avoid macro redefinition warnings on MSVC.
* lib/math.in.h (ceilf, ceill, floorf, floorl, frexpl, ldexpl):
Undefine before redefining.
2011-09-17 Bruno Haible <bruno@clisp.org>
doc: Mention functions which are declared as macros.
* doc/posix-functions/*[fl].texi: Mention that some functions are
defined as macros with arguments only.
2011-09-17 Bruno Haible <bruno@clisp.org>
Add dependencies to new dirent related modules.
* modules/backupfile (Depends-on): Add opendir, readdir, closedir.
* modules/fts (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/savedir (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
* modules/dirent-safer (Depends-on): Add opendir, closedir.
* modules/fdopendir (Depends-on): Add opendir.
2011-09-17 Bruno Haible <bruno@clisp.org>
inet_pton: Support for MSVC on Windows Vista or newer.
* lib/arpa_inet.in.h (inet_pton): Also consider REPLACE_INET_PTON.
* lib/inet_pton.c (rpl_inet_pton): Use a simple wrapper if
HAVE_DECL_INET_PTON is defined.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_pton is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_PTON.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_PTON.
* modules/inet_pton (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_pton.texi: Mention the MSVC problem.
2011-09-17 Bruno Haible <bruno@clisp.org>
inet_ntop: Support for MSVC on Windows Vista or newer.
* lib/arpa_inet.in.h (inet_ntop): Also consider REPLACE_INET_NTOP.
* lib/inet_ntop.c (rpl_inet_ntop): Use a simple wrapper if
HAVE_DECL_INET_NTOP is defined.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_ntop is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_NTOP.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_NTOP.
* modules/inet_ntop (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_ntop.texi: Mention the MSVC problem.
2011-09-16 Eric Blake <eblake@redhat.com>
test-fsync: yet another enhancement
* tests/test-fsync.c (main): Also test behavior on read-only text
file.
2011-09-16 Bruno Haible <bruno@clisp.org>
Enhance fsync, fdatasync tests.
* tests/test-fsync.c (main): Test both STDIN_FILENO and STDOUT_FILENO.
* tests/test-fdatasync.c (main): Likewise.
2011-09-16 Bruno Haible <bruno@clisp.org>
Support for MSVC compiler: Ensure mode_t gets defined.
* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Likewise.
* tests/test-fcntl-h.c: Check that mode_t is defined.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_types.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention the missing mode_t problem.
* doc/posix-headers/sys_stat.texi: Likewise.
* doc/posix-headers/sys_types.texi: Likewise.
2011-09-16 Bruno Haible <bruno@clisp.org>
sys_stat: Support for MSVC.
* lib/sys_stat.in.h (S_IFIFO): Define to _S_IFIFO if that exists.
* tests/test-sys_stat.c: Don't assume that S_IFBLK exists.
* doc/posix-headers/sys_stat.texi: Mention missing S_IFIFO, S_IFBLK on
MSVC.
2011-09-16 Bruno Haible <bruno@clisp.org>
Support for MSVC compiler: Ensure off_t gets defined.
* lib/unistd.in.h: Include <sys/types.h>.
* tests/test-fcntl-h.c: Check that off_t is defined.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_types.c: Likewise.
2011-09-16 Eric Blake <eblake@redhat.com>
fdatasync: port to Solaris
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Set LIB_FDATASYNC.
* modules/fdatasync (Link): Document it.
* modules/fdatasync-tests (test_fdatasync_LDADD): Link with it.
fdatasync: port to MacOS X 10.7
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Check for present but not
declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Another default.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (fdatasync): Declare on MacOS.
* doc/posix-functions/fdatasync.texi (fdatasync): Document it.
fdatasync: minor improvements
* modules/fdatasync (Depends-on): Add condition for fsync.
* lib/fdatasync.c (fdatasync): Add comment.
* tests/test-unistd-c++.cc: Test fdatasync.
unistd: update refs to newer POSIX
* lib/unistd.in.h: Prefer POSIX 2008 over 2001.
Suggested by Bruno Haible.
fdatasync: new module
* modules/fsync (Description): Document difference to fdatasync.
* modules/fdatasync: New module.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): New file.
* lib/fdatasync.c (fdatasync): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS): Set up
defaults.
* modules/unistd (Makefile.am): Set witnesses.
* lib/unistd.in.h (fdatasync): Declare.
* MODULES.html.sh: Document it.
* doc/posix-functions/fdatasync.texi (fdatasync): Likewise.
* modules/fdatasync-tests: New test.
* tests/test-fdatasync.c: Likewise.
2011-09-16 Eric Blake <eblake@redhat.com>
test-fsync: enhance tests
* modules/fsync-tests (Depends-on): Add errno, for mingw.
* tests/test-fsync.c (main): Enhance test.
2011-09-15 Bruno Haible <bruno@clisp.org>
Support for MSVC compiler: Ensure ssize_t gets defined.
* doc/posix-headers/sys_types.texi: Mention the missing ssize_t problem.
* doc/posix-headers/stdio.texi: Likewise.
* modules/stdio (Depends-on): Add ssize_t.
* modules/sys_socket (Depends-on): Likewise.
* modules/sys_types (Depends-on): Likewise.
* modules/sys_uio (Depends-on): Likewise.
* modules/unistd (Depends-on): Likewise.
* tests/test-sys_socket.c: Check that size_t and ssize_t are defined.
* tests/test-sys_types.c: Check that ssize_t is defined.
2011-09-14 Bruno Haible <bruno@clisp.org>
Avoid using #, the m4 comment starter character, near brackets.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Use |, not #, as
delimiter character in sed expressions.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise.
Suggested by Eric Blake.
Properly quote AC_CHECK_DECLS' 4th argument.
* m4/c-stack.m4 (gl_PREREQ_C_STACK): Double-quote AC_CHECK_DECLS' 4th
argument.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/floorl.m4 (gl_FUNC_FLOORL): Likewise.
* m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Likewise.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Likewise.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Likewise.
* m4/gethrxtime.m4 (gl_GETHRXTIME): Likewise.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Likewise.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
* m4/isfinite.m4 (gl_ISFINITE): Likewise.
* m4/isinf.m4 (gl_ISINF): Likewise.
* m4/logb.m4 (gl_FUNC_LOGB): Likewise.
* m4/readutmp.m4 (gl_READUTMP): Likewise.
* m4/regex.m4 (gl_PREREQ_REGEX): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
* m4/signbit.m4 (gl_SIGNBIT): Likewise.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
Reported by Eric Blake.
Properly quote AC_CHECK_DECL's 4th argument.
* m4/acosl.m4 (gl_FUNC_ACOSL): Double-quote AC_CHECK_DECL's 4th
argument.
* m4/argp.m4 (gl_ARGP): Likewise.
* m4/asinl.m4 (gl_FUNC_ASINL): Likewise.
* m4/atanl.m4 (gl_FUNC_ATANL): Likewise.
* m4/cosl.m4 (gl_FUNC_COSL): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Likewise.
* m4/getloadavg.m4 (gl_GETLOADAVG): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL): Likewise.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
* m4/sinl.m4 (gl_FUNC_SINL): Likewise.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise.
* m4/tanl.m4 (gl_FUNC_TANL): Likewise.
Reported by Eric Blake.
2011-09-14 Eric Blake <eblake@redhat.com>
opendir: avoid compile warning
* lib/opendir.c (includes): Always include errno.h.
Reported by Tatsuro MATSUOKA.
2011-09-14 Jim Meyering <meyering@redhat.com>
maint.mk: sc_tight_scope: propagate failure from sub-make
* top/maint.mk (sc_tight_scope): Actually initialize and use $fail.
Reported by Martin von Gagern.
2011-09-13 Bruno Haible <bruno@clisp.org>
tempname: Support for MSVC.
* doc/posix-headers/fcntl.texi: Document the problem with O_ACCMODE on
MSVC.
* modules/tempname (Depends-on): Add fcntl-h.
2011-09-13 Bruno Haible <bruno@clisp.org>
sys_time: Support for MSVC.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Invoke
gl_PREREQ_SYS_H_WINSOCK2. When testing for 'struct timeval', also
include <winsock2.h>.
* lib/sys_time.in.h: On MSVC, include <winsock2.h> and hide its
function declarations that collide with POSIX.
* modules/sys_time (Files): Add m4/sys_socket_h.m4.
(Makefile.am): Substitute HAVE_WINSOCK2_H.
2011-09-13 Bruno Haible <bruno@clisp.org>
stat: Support for MSVC.
* lib/stat.c: Include pathmax.h.
* modules/stat (Depends-on): Add pathmax.
pathmax: Support for native Windows.
* lib/pathmax.h (PATH_MAX): Define to 260 on native Windows.
2011-09-12 Bruno Haible <bruno@clisp.org>
New modules 'opendir', 'readdir', 'rewinddir', 'closedir'.
* lib/dirent.in.h (struct dirent): New type.
(DT_UNKNOWN, DT_FIFO, DT_CHR, DT_DIR, DT_BLK, DT_REG, DT_LNK, DT_SOCK,
DT_WHT): New macros.
(DIR): New type.
(opendir, closedir): Declare only if the module 'opendir' is enabled.
(readdir, rewinddir): New declarations.
* lib/dirent-private.h: New file.
* lib/opendir.c: New file.
* lib/readdir.c: New file.
* lib/rewinddir.c: New file.
* lib/closedir.c: New file.
* lib/fchdir.c (rpl_closedir, rpl_opendir): Remove functions.
* m4/opendir.m4: New file.
* m4/readdir.m4: New file.
* m4/rewinddir.m4: New file.
* m4/closedir.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_OPENDIR,
REPLACE_CLOSEDIR here.
* m4/dirent_h.m4 (gl_DIRENT_H): Also check whether closedir, opendir,
readdir, rewinddir are declared.
(gl_DIRENT_H_DEFAULTS): Initialize GNULIB_OPENDIR, GNULIB_READDIR,
GNULIB_REWINDDIR, GNULIB_CLOSEDIR, HAVE_OPENDIR, HAVE_READDIR,
HAVE_REWINDDIR, HAVE_CLOSEDIR.
* modules/dirent (Makefile.am): Substitute GNULIB_OPENDIR,
GNULIB_READDIR, GNULIB_REWINDDIR, GNULIB_CLOSEDIR, HAVE_OPENDIR,
HAVE_READDIR, HAVE_REWINDDIR, HAVE_CLOSEDIR.
* modules/opendir: New file.
* modules/readdir: New file.
* modules/rewinddir: New file.
* modules/closedir: New file.
* doc/posix-functions/opendir.texi: Mention the 'opendir' module.
* doc/posix-functions/readdir.texi: Mention the 'readdir' module.
* doc/posix-functions/rewinddir.texi: Mention the 'rewinddir' module.
* doc/posix-functions/closedir.texi: Mention the 'closedir' module.
* NEWS: Mention the 'fchdir' change.
2011-09-11 Bruno Haible <bruno@clisp.org>
asm-underscore.m4: Support for MSVC.
* m4/asm-underscore.m4 (gl_C_ASM): New macro.
(gl_ASM_SYMBOL_PREFIX): Require it. Use its results.
2011-09-11 Reuben Thomas <rrt@sc3d.org>
Doc about crypt functions.
* doc/posix-functions/crypt.texi: Expand range of glibc versions
needing for _GNU_SOURCE to get crypt.
* doc/posix-functions/encrypt.texi: Likewise.
* doc/posix-functions/setkey.texi: Likewise.
2011-09-11 Bruno Haible <bruno@clisp.org>
doc: Update regarding MSVC 9.
* doc/gnulib-intro.texi (Target Platforms): Classify MSVC as "rarely
tested".
* doc/posix-functions/*.texi: Update with info about MSVC 9.
* doc/posix-headers/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
* doc/glibc-headers/*.texi: Likewise.
2011-09-11 Bruno Haible <bruno@clisp.org>
unistd et al.: Don't assume <unistd.h> exists.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Don't include <unistd.h> if it
does not exist.
* m4/environ.m4 (gl_ENVIRON): Don't include <unistd.h> if it does not
exist. But include <stdlib.h>.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): If <unistd.h> does not exist,
include <io.h> and <stdlib.h> instead. Don't test symbolink links if
symlink() does not exist.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): If <unistd.h> does not exist,
include <io.h> instead.
* m4/free.m4 (gl_FUNC_FREE): Assume free(NULL) works on native Windows.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): If <unistd.h> does not exist,
include <direct.h> instead.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/lseek.m4 (gl_FUNC_LSEEK): If <unistd.h> does not exist, include
<io.h> instead.
* m4/rename.m4 (gl_FUNC_RENAME): Assume rename() manages hard links
correctly if the system does not have hard links.
* m4/rmdir.m4 (gl_FUNC_RMDIR): If <unistd.h> does not exist, include
<direct.h> instead.
* m4/unistd_h.m4 (gl_UNISTD_H): If <unistd.h> does not exist, bypass
it when looking for function declarations.
* m4/unlink.m4 (gl_FUNC_UNLINK): If <unistd.h> does not exist, include
<direct.h> and <io.h> instead.
* doc/posix-headers/unistd.texi: More details about MSVC problem.
2011-09-11 Bruno Haible <bruno@clisp.org>
strcase: Support for MSVC.
* modules/strcase (Status, Notice): Remove obsoletion mark.
* doc/posix-functions/strcasecmp.texi: Mention MSVC problem.
* doc/posix-functions/strncasecmp.texi: Likewise.
strings: Don't assume <strings.h> exists.
* lib/strings.in.h: Include <strings.h> only if HAVE_STRINGS_H is 1.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Set HAVE_STRINGS_H.
* modules/strings (Makefile.am): Substitute HAVE_STRINGS_H.
* doc/posix-headers/strings.texi: Mention the MSVC problem.
2011-09-11 Bruno Haible <bruno@clisp.org>
dirent: Don't assume <dirent.h> exists.
* lib/dirent.in.h: Include <dirent.h> only if HAVE_DIRENT_H is 1.
* m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H.
* modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H.
* doc/posix-headers/dirent.texi: Mention the MSVC problem.
2011-09-11 Bruno Haible <bruno@clisp.org>
Fix wint_t on MSVC.
* lib/wchar.in.h (wint_t): On MSVC, override it.
* lib/wctype.in.h (wint_t): Likewise.
* m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Override BITSIZEOF_WINT_T on
MSVC.
* doc/posix-headers/wchar.texi: Mention the problem with wint_t on MSVC.
* doc/posix-headers/wctype.texi: Likewise.
2011-09-11 Bruno Haible <bruno@clisp.org>
sys_types: Fix typo.
* lib/sys_types.in.h: Fix typo in comment.
Reported by Paul Eggert.
Support for MSVC compiler: Ensure size_t gets defined.
* modules/strings (Depends-on): Add 'sys_types'.
* modules/sys_uio (Depends-on): Likewise.
* lib/sys_uio.in.h: Update comment.
C++ tests for module 'sys_types'.
* modules/sys_types-c++-tests: New file.
* tests/test-sys_types-c++.cc: New file.
Tests for module 'sys_types'.
* modules/sys_types-tests: New file.
* tests/test-sys_types.c: New file.
New module 'sys_types'.
* lib/sys_types.in.h: New file.
* m4/sys_types_h.m4: New file.
* modules/sys_types: New file.
* doc/posix-headers/sys_types.texi: Mention the new module and the
size_t problem on MSVC 9.
2011-09-11 Bruno Haible <bruno@clisp.org>
Support for MSVC compiler: Avoid division by a literal 0.
* lib/math.in.h (NAN): Define through a function call also on MSVC.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Divide by 'zero' instead of 0.0.
* m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_DIRECTIVE_A,
gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO): Likewise.
(gl_PRINTF_INFINITE_LONG_DOUBLE): Divide by 'zeroL' instead of 0.0L.
* tests/infinity.h: New file.
* tests/nan.h (NaNf, NaNd, NaNl): Define through a function call also
on MSVC.
* tests/test-ceilf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-ceil1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-ceill.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-dprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-floorf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-floor1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-floorl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-fprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-frexp.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-frexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-isfinite.c: Include infinity.h.
(test_isfinitef): Use Infinityf.
(test_isfinited): Use Infinityd.
(test_isfinitel): Use Infinityl.
* tests/test-isinf.c: Include infinity.h.
(test_isinff): Use Infinityf.
(test_isinfd): Use Infinityd.
(test_isinfl): Use Infinityl.
* tests/test-isnan.c: Include infinity.h.
(test_float): Use Infinityf.
(test_double): Use Infinityd.
(test_long_double): Use Infinityl.
* tests/test-isnanf.h: Include infinity.h.
(main): Use Infinityf.
* tests/test-isnand.h: Include infinity.h.
(main): Use Infinityd.
* tests/test-isnanl.h: Include infinity.h.
(main): Use Infinityl.
* tests/test-ldexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-printf-posix.h: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-roundf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-round1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-roundl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-signbit.c: Include infinity.h.
(test_signbitf): Use Infinityf.
(test_signbitd): Use Infinityd.
(test_signbitl): Use Infinityl.
* tests/test-snprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-sprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-truncf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-trunc1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-truncl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-vasnprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-vasprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* modules/ceilf-tests (Files): Add tests/infinity.h.
* modules/ceil-tests (Files): Likewise.
* modules/ceill-tests (Files): Likewise.
* modules/dprintf-posix-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floor-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/fprintf-posix-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/isfinite-tests (Files): Likewise.
* modules/isinf-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/printf-posix-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* modules/vdprintf-posix-tests (Files): Likewise.
* modules/vfprintf-posix-tests (Files): Likewise.
* modules/vprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/xprintf-posix-tests (Files): Likewise.
2011-09-11 Bruno Haible <bruno@clisp.org>
Ensure pid_t gets defined.
* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_PID_T.
* m4/sched_h.m4 (gl_SCHED_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise.
* m4/termios_h.m4 (gl_TERMIOS_H): Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* tests/test-fcntl-h.c: Check that pid_t is defined.
* tests/test-sched.c: Likewise.
* tests/test-termios.c: Likewise.
* tests/test-time.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention lack of pid_t on MSVC platform.
* doc/posix-headers/signal.texi: Likewise.
* doc/posix-headers/sys_types.texi: Likewise.
* doc/posix-headers/time.texi: Likewise.
2011-09-11 Bruno Haible <bruno@clisp.org>
acl: Fix compilation on Solaris 10 (older version).
* lib/file-has-acl.c (acl_ace_nontrivial): Use NEW_ACE_EVERYONE instead
of ACE_EVERYONE.
* lib/set-mode-acl.c (qset_acl): Likewise.
Reported by Christian Jullien <eligis@orange.fr>.
2011-09-10 Bruno Haible <bruno@clisp.org>
iconv, unsetenv: Add support for MSVC compiler.
* m4/iconv.m4 (AM_ICONV): Use ISO C declaration syntax on MSVC.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Drop support for K&R C compilers.
2011-09-10 Bruno Haible <bruno@clisp.org>
*printf: Add support for MSVC compiler.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): On MSVC, install a handler that
handles the exception caused by the %n directive. When cross-compiling,
guess no on native Windows.
(gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99,
gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): When snprintf is missing,
emulate it through vsnprintf.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Update comment.
* doc/posix-functions/dprintf.texi: Update documentation regarding
MSVC 9.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/asprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
* doc/glibc-functions/vasprintf.texi: Likewise.
2011-09-10 Bruno Haible <bruno@clisp.org>
nocrash: Add support for native Windows.
* m4/nocrash.m4 (GL_NOCRASH): Avoid a crash also on native Windows.
2011-09-10 Michael Goffioul <michael.goffioul@gmail.com> (tiny change)
Bruno Haible <bruno@clisp.org>
absolute-header, include-next: Add support for MSVC compiler.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Require
AC_CANONICAL_HOST. On native Windows, recognize also backslash as
directory separator in #line directives.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): On native Windows,
recognize also backslash as directory separator in #line directives.
2011-09-08 Jim Meyering <meyering@redhat.com>
maint.mk: mark the post-release commit log with "maint: " prefix
* top/maint.mk (emit-commit-log): Add "maint: " prefix to the
one-line commit-log summary.
2011-09-08 Reuben Thomas <rrt@sc3d.org>
Bruno Haible <bruno@clisp.org>
Doc about crypt functions.
* doc/posix-functions/crypt.texi: Mention need for _GNU_SOURCE on glibc
systems.
* doc/posix-functions/encrypt.texi: Likewise.
* doc/posix-functions/setkey.texi: Likewise.
2011-09-08 Simon Josefsson <simon@josefsson.org>
* lib/gc.h: Fix copyright header.
2011-09-07 Bruno Haible <bruno@clisp.org>
pthread: Determine $(LIB_PTHREAD) correctly on OSF/1 5.1.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Use AC_CACHE_CHECK and
AC_LINK_IFELSE instead of AC_SEARCH_LIBS.
2011-09-07 Bruno Haible <bruno@clisp.org>
openat: Work around compilation error with OSF/1 5.1 DTK cc.
* lib/fopen.c: Use different syntax for include of <stdio.h>.
* lib/freopen.c: Likewise.
* lib/fstatat.c: Use different syntax for include of <sys/stat.h>.
* lib/lstat.c: Likewise.
* lib/stat.c: Likewise.
* lib/open.c: Use different syntax for include of <fcntl.h>.
* lib/openat.c: Include fcntl.h again, explicitly.
2011-09-04 J.T. Conklin <jtc@acorntoolworks.com>
parse-datetime: document the newly accepted format
* doc/parse-datetime.texi (Combined date and time of day items):
New section.
2011-09-06 Bruno Haible <bruno@clisp.org>
acl: Fix a test failure on newer Solaris 10 with ZFS.
* tests/test-sameacls.c (main): Interpret acl GETACLCNT failure with
ENOSYS as no ACL.
Reported by Jim Meyering.
2011-09-06 Bruno Haible <bruno@clisp.org>
acl: Update for AIX >= 5.3 with NFS.
* lib/file-has-acl.c (file_has_acl): Interpret aclx_get failure with
ENOSYS as no ACL.
acl: Fix a test failure on AIX >= 5.3 with NFS.
* tests/test-sameacls.c (main): Interpret aclx_get failure with ENOSYS
as no ACL.
2011-09-06 Bruno Haible <bruno@clisp.org>
acl: Fix a test failure on IRIX 6.5 with NFS.
* lib/acl-internal.h (MODE_INSIDE_ACL): Define to 0 on IRIX.
* lib/set-mode-acl.c (qset_acl): Test !HAVE_ACL_TYPE_EXTENDED instead
of MODE_INSIDE_ACL. If !MODE_INSIDE_ACL, do a chmod_or_fchmod always.
* lib/copy-acl.c (qcopy_acl): Likewise.
2011-09-05 Paul Eggert <eggert@cs.ucla.edu>
openat: port to AIX 7.1 with large files
AIX 7.1 does a "#define openat open64at" if large files are in use,
so we can't simply #undef openat. Use the orig_openat trick (similar
to orig_open in lib/open.c) to work around the problem. Problem
reported by Kevin Brott for GNU tar, in the thread containing
<http://lists.gnu.org/r/bug-tar/2011-09/msg00032.html>.
* lib/openat.c (__need_system_fcntl_h): Define first.
Include <fcntl.h> and <sys/types.h> before undefining.
(orig_openat) [HAVE_OPENAT]: New inline function.
(openat) [HAVE_OPENAT]: Do not undef.
(rpl_openat): Use orig_openat, not openat.
2011-09-05 Joachim Schmitz <schmitz@hp.com> (tiny change)
Bruno Haible <bruno@clisp.org>
acl: Avoid errors on NonStop Kernel.
* lib/file-has-acl.c (file_has_acl) [NonStop Kernel]: Ignore ENOSYS and
ENOTSUP errors.
2011-09-05 Bruno Haible <bruno@clisp.org>
acl: Clean up Solaris code.
* lib/acl-internal.h: Remove no-op #if.
* lib/file-has-acl.c: Likewise.
* lib/set-mode-acl.c (qset_acl): Remove unused Solaris code.
* lib/copy-acl.c (qcopy_acl): Likewise.
2011-09-05 Bruno Haible <bruno@clisp.org>
acl: Fix a bug with NFSv4 ACLs on Solaris 10 (newer version) in
binaries built on the original Solaris 10.
* lib/file-has-acl.c (file_has_acl): ACLs with 4..6 ACEs can be
trivial.
2011-09-05 Bruno Haible <bruno@clisp.org>
acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version).
* lib/acl-internal.h (acl_nontrivial): Declare also on newer Solaris
10.
* lib/file-has-acl.c (acl_nontrivial): Define also on newer Solaris 10.
(acl_ace_nontrivial): Likewise. Recognize the trivial ACLs with 6 ACEs.
* lib/copy-acl.c (qcopy_acl): On newer Solaris 10, use acl or facl
instead of acl_get, facl_get, acl_set, facl_set.
2011-09-05 Bruno Haible <bruno@clisp.org>
copy-file: Try unit tests on more file systems.
* tests/test-copy-file-1.sh: New file.
* tests/test-copy-file-2.sh: New file.
* modules/copy-file-tests (Files): Add them.
(Makefile.am): Add them to TESTS.
acl: Try unit tests on more file systems.
* tests/test-file-has-acl-1.sh: New file.
* tests/test-file-has-acl-2.sh: New file.
* tests/test-set-mode-acl-1.sh: New file.
* tests/test-set-mode-acl-2.sh: New file.
* tests/test-copy-acl-1.sh: New file.
* tests/test-copy-acl-2.sh: New file.
* modules/acl-tests (Files): Add them.
(Makefile.am): Add them to TESTS.
2011-09-04 Bruno Haible <bruno@clisp.org>
acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version).
* lib/acl-internal.h (ACE_*, NEW_ACE_*): Define also on newer Solaris
10.
(OLD_ALLOW, OLD_DENY): New macros.
(NEW_ACE_ACCESS_ALLOWED_ACE_TYPE): Renamed from
ACE_ACCESS_ALLOWED_ACE_TYPE.
(NEW_ACE_ACCESS_DENIED_ACE_TYPE): Renamed from
ACE_ACCESS_DENIED_ACE_TYPE.
(OLD_ACE_OWNER, OLD_ACE_GROUP, OLD_ACE_OTHER): New macros.
(NEW_ACE_EXECUTE): Fix value.
(NEW_ACE_APPEND_DATA, NEW_ACE_READ_NAMED_ATTRS,
NEW_ACE_WRITE_NAMED_ATTRS, NEW_ACE_DELETE_CHILD,
NEW_ACE_READ_ATTRIBUTES, NEW_ACE_WRITE_ATTRIBUTES, NEW_ACE_DELETE,
NEW_ACE_READ_ACL, NEW_ACE_WRITE_ACL, NEW_ACE_WRITE_OWNER,
NEW_ACE_SYNCHRONIZE): New macros.
* lib/set-mode-acl.c (qset_acl): On newer Solaris 10, use acl or facl
instead of acl_fromtext, acl_set, facl_set.
Fixes a coreutils/tests/cp/perm failure.
2011-09-03 Paul Eggert <eggert@cs.ucla.edu>
openat: test for fstatat (..., 0) bug
Further testing with tar suggests that fstatat (..., 0)
does not work in general, on AIX 7.1; see
<http://lists.gnu.org/r/bug-tar/2011-09/msg00023.html>.
So, give up entirely on AIX 7.1's fstatat, and fall back on our
replacement fstatat (which is what older AIX releases were using
anyway).
* lib/fstatat.c (fstatat) [HAVE_FSTATAT]: Do not undef. The only
use is now changed to orig_fstatat. This was probably the right
thing to do anyway.
(FSTATAT_AT_FDCWD_0_BROKEN): Remove; no longer used.
(rpl_fstatat) [FSTATAT_ZERO_FLAG_BROKEN]: Remove.
(rpl_fstatat): Simplify, assuming !FSTATAT_ZERO_FLAG_BROKEN.
(AT_FUNC_NAME) [FSTATAT_ZERO_FLAG_BROKEN]: Now rpl_fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): Test for the more-general bug
and define FSTATAT_ZERO_FLAG_BROKEN, not FSTATAT_AT_FDCWD_0_BROKEN,
if the bug is found.
openat: test for fstatat (AT_FDCWD, ..., 0) bug
This tests for another fstatat bug on AIX 7.1:
fstatat (AT_FDCWD, ..., 0) does not work. See
<http://lists.gnu.org/r/bug-tar/2011-09/msg00015.html>.
* lib/fstatat.c (FSTATAT_AT_FDCWD_0_BROKEN)
(LSTAT_FOLLOWS_SLASHED_SYMLINK): Default to 0.
(rpl_fstatat): Adjust so that it works around either (or both)
bugs if present.
* m4/openat.m4 (gl_FUNC_FSTATAT): Test for this fstatat bug.
2011-09-03 Karl Berry <karl@gnu.org>
* doc/regex.texi (Character Class Operators): Avoid literal ":"
in index entries.
2011-09-02 Bruno Haible <bruno@clisp.org>
Allow the user to override the choice of AR, ARFLAGS, RANLIB.
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Don't override the given
values of AR, ARFLAGS, RANLIB.
Reported by John W. Eaton <jwe@gnu.org> for Octave.
2011-09-02 Bruno Haible <bruno@clisp.org>
Find 'ar' program that fits with --host argument.
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Use AC_CHECK_TOOL.
2011-09-02 Bruno Haible <bruno@clisp.org>
tests: init.sh: Support any non-GNU diff.
* tests/init.sh (compare): If "diff -c" is supported but "diff -u" is
not, use "diff -c". Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1,
Solaris 8.
2011-09-02 Bruno Haible <bruno@clisp.org>
tests: init.sh: work also with any non-GNU diff that supports -u
* tests/init.sh: Relax check for diff -u support.
Rather than checking for GNU diff via --version, simply check
for support for -u itself. Useful at least on OpenBSD 4.9,
AIX 7.1, IRIX 6.5, and Solaris 10.
2011-09-01 Bruno Haible <bruno@clisp.org>
strtoimax, strtoumax: Document problem on HP-UX 11.
* doc/posix-functions/strtoimax.texi: Mention HP-UX 11.11 problem.
* doc/posix-functions/strtoumax.texi: Likewise.
2011-09-01 Bruno Haible <bruno@clisp.org>
strtoumax: Avoid link error on OSF/1 with DTK cc.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Always test whether strtoumax is
defined as a function.
* modules/strtoumax (Depends-on, configure.ac): Test only whether
strtoumax is defined, not whether it is declared.
2011-09-01 Bruno Haible <bruno@clisp.org>
strtoimax: Avoid link error on OSF/1 with DTK cc.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Always test whether strtoimax is
defined as a function.
* modules/strtoimax (Depends-on, configure.ac): Test only whether
strtoimax is defined, not whether it is declared.
2011-09-01 Bruno Haible <bruno@clisp.org>
imaxdiv: Avoid link error on OSF/1 with DTK cc.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Also test whether imaxdiv is defined
as a function.
* modules/imaxdiv (configure.ac): Test whether imaxdiv is defined, not
whether it is declared.
2011-09-01 Bruno Haible <bruno@clisp.org>
imaxabs: Avoid link error on OSF/1 with DTK cc.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Also test whether imaxabs is defined
as a function.
* modules/imaxabs (configure.ac): Test whether imaxabs is defined, not
whether it is declared.
2011-09-01 Bruno Haible <bruno@clisp.org>
Tests for module 'strtoumax'.
* modules/strtoumax-tests: New file.
* tests/test-strtoumax.c: New file.
Tests for module 'strtoimax'.
* modules/strtoimax-tests: New file.
* tests/test-strtoimax.c: New file.
Tests for module 'imaxdiv'.
* modules/imaxdiv-tests: New file.
* tests/test-imaxdiv.c: New file.
Tests for module 'imaxabs'.
* modules/imaxabs-tests: New file.
* tests/test-imaxabs.c: New file.
2011-09-01 Bruno Haible <bruno@clisp.org>
pthread: Determine $(LIB_PTHREAD) correctly on IRIX 6.5.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_join, not
pthread_create.
2011-09-01 Paul Eggert <eggert@cs.ucla.edu>
openat: work around AIX 7.1 fstatat issue
This should fix the problem that was not properly fixed
in the previous change, dated 2011-08-30.
* lib/fstatat.c: Include <sys/stat.h> twice, the first with
__need_system_stat_h defined.
(orig_fstatat) [HAVE_FSTATAT]: New function.
(rpl_fstatat): Go back to the old way of doing things,
except call orig_fstatat instead of fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): Remove unnecessary check for openat.
Remove unnecessary check whether fstatat fills in st_size etc.
2011-09-01 Bruno Haible <bruno@clisp.org>
sys_select: Avoid a syntax error regarding timespec_t on IRIX 6.5.
* lib/sys_select.in.h [__sgi]: When included from <sys/bsd_types.h>,
just include the system's header.
2011-08-31 Jim Meyering <meyering@redhat.com>
tests: avoid spurious assertion failure in test-float.c on ppc64
* tests/test-float.c (test_long_double): Comment out an assertion,
LDBL_MIN_EXP <= DBL_MIN_EXP, that is failing at least on PowerPC-64
with gcc-4.4.4.
maint: indent with spaces, not TABs
I need to get in the habit of running gnulib's "make check".
Both of these would have been caught.
* m4/largefile.m4: Indent with spaces, not TABs.
* lib/parse-datetime.y (iso_8601_time): Likewise.
Spotted by Pádraig Brady.
test-parse-datetime.c: accommodate a relatively strict gcc warning
* tests/test-parse-datetime.c (gmt_offset): Declare function "static",
to avoid a warning from gcc's -Werror=missing-declarations.
Insert a few spaces-before-funcall-parenthesis.
2011-08-17 J.T. Conklin <jtc@acorntoolworks.com>
parse-datetime: accept ISO 8601 date and time rep with "T" separator
The parser now accepts ISO 8601 date-time strings with "T" as the
separator. It has long parsed dates like "2004-02-29 16:21:42"
with a space between the date and time strings. Now it also parses
"2004-02-29T16:21:42" and fractional-second and time-zone-annotated
variants like "2004-02-29T16:21:42.333-07:00"
* lib/parse-datetime.y: Parse ISO 8601 extended date and time
of day representation using the 'T' separator character.
* doc/parse-datetime.texi (General date syntax): replace use of
deprecated --iso-8601 option with --rfc-3339 in example of date
command output formats that can be parsed.
* tests/test-parse-datetime.c (tm_diff): New function, taken from
lib/parse-datetime.y.
(gmt_offset): New function.
(main): Add additional test cases to validate ISO8601 extended
date and time of day parsing.
2011-08-31 Bruno Haible <bruno@clisp.org>
freopen: Documentation.
* doc/posix-functions/freopen.texi: Document the bug with the NULL file
name.
Reported by Claudio Bley <claudio.bley@gmail.com>.
2011-08-31 Claudio Bley <claudio.bley@gmail.com> (tiny change)
freopen: Don't crash if the filename argument is NULL.
* lib/freopen.c (rpl_freopen): Don't compare the filename if it is
NULL.
2011-08-30 Paul Eggert <eggert@cs.ucla.edu>
openat: work around AIX 7.1 fstatat bug
Problem reported by Kevin Brott for GNU tar, in the thread containing
<http://lists.gnu.org/r/bug-tar/2011-08/msg00015.html>.
* lib/fstatat.c (rpl_fstatat): Do not invoke underlying fstatat if
FSTATAT_ST_SIZE_ETC_BROKEN.
(fstatat) [FSTATAT_ST_SIZE_ETC_BROKEN && HAVE_FSTATAT]: #define to
rpl_fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): New macro, with the fstatat-relevant
part of gl_FUNC_OPENAT. Also, check for the AIX 7.1 bug, and use
AC_CHECK_FUNCS_ONCE for fstatat.
(gl_FUNC_OPENAT): Use it. Use AC_CHECK_FUNCS_ONCE for
fchmodat, mkdirat, openat and unlinkat.
2011-08-30 Bruno Haible <bruno@clisp.org>
Avoid endless recursions if config.h includes some header files.
* lib/fopen.c (__need_FILE): Define already before including config.h.
* lib/freopen.c (__need_FILE): Likewise.
* lib/open.c (__need_system_fcntl_h): Likewise.
* lib/stat.c (__need_system_sys_stat_h): Likewise.
* lib/lstat.c (__need_system_sys_stat_h): Likewise.
Reported by Michael Goffioul <michael.goffioul@gmail.com>.
2011-08-25 Karl Berry <karl@gnu.org>
* config/srclist.txt (ylwrap): new try.
* build-aux/ylwrap: new file.
2011-08-23 Bruno Haible <bruno@clisp.org>
tmpdir: Use a good default directory on native Windows.
* lib/tmpdir.c: Include <windows.h>, pathmax.h.
(P_tmpdir): Default to _P_tmpdir on native Windows.
(path_search): On native Windows, try the value returned by GetTempPath
before trying P_tmpdir.
* modules/tmpdir (Depends-on): Add pathmax.
Suggested by John Darrington <john@darrington.wattle.id.au>.
2011-08-20 Reuben Thomas <rrt@sc3d.org>
doc: fix typo in README-release
* top/README-release: Capitalize first word of a sentence.
2011-08-19 Jim Meyering <meyering@redhat.com>
fts: do not exhaust memory when processing million-entry directories
Before this change, traversing (via rm -rf, find, du, etc.) an N-entry
directory would require about 256*N bytes of memory. Thus, it was
easy to construct a directory too large to be processed by any of
those tools. With this change, fts' maximum memory utilization is
now limited to around 30MB.
* lib/fts.c (FTS_MAX_READDIR_ENTRIES): Define.
(fts_read): When we've processed the final entry (i.e., when
->fts_link is NULL) and fts_dirp is non-NULL, call fts_build
using the parent entry to read any remaining entries. Dispatch
depending on what fts_build returns:
- NULL+stop, aka failure: stop
- NULL otherwise: move up in the dir hierarchy
- non-NULL: handle this new entry
(fts_build): Declare and use new local, continue_readdir.
Prepare to be called from fts_read, when the entries
from a partially-read directory have just been exhausted.
In that case, we'll skip the opendir and instead use the parent's
fts_dirp and derive dir_fd from that.
Finally, in the readdir loop, if we read max_entries entries,
exit the loop ensuring *not* to call closedir. This is required
so that fts_dirp can be reused on a subsequent call.
Prompted by Ben England's report of memory exhaustion in find
and rm -rf vs. NFS: https://bugzilla.redhat.com/719749.
maint: fts: move decl of `dp' down into while loop; split a long line
* lib/fts.c (fts_build): No semantic change.
fts: add/use new struct member, fts_dirp
We are about to use this to manage any directory with
too many entries to read all of them into memory at once.
To do that, we'll need to save the DIR* pointer in each
affected FTSENT struct.
* lib/fts_.h: Include <dirent.h>.
(struct FTSENT) [fts_dirp]: New member.
* lib/fts.c (closedir_and_clear): Define.
Use it in place of closedir so that we are sure to
clear the new fts_dirp member when done with it.
(fts_alloc): Initialize the new member.
(fts_lfree): Free, if needed.
maint: fts: give __opendir2 a new parameter and rename
* lib/fts.c (__opendir2): Give it a new parameter, Pdir_fd, rather
than surreptitiously using sole caller's "dir_fd".
(fts_opendir): Rename from __opendir2.
maint: fts.c: remove __opendir2's now-unused parameter, oflag
* lib/fts.c (__opendir2): Remove unused parameter, oflag.
maint: fts.c: correct off-by-one indentation
* lib/fts.c (fts_build): Correct indentation, change style
of a couple of block comments, and bracing style.
maint: fts.c: move __opendir2 #define "up" out of function body
* lib/fts.c (__opendir2): Move "up". No semantic change.
maint: fts.c: remove #if-0'd FTS_WHITEOUT code
* lib/fts.c: Remove #if-0'd FTS_WHITEOUT code. It's been #if-0'd
out for a long time and besides was useful only on BSD systems.
2011-08-18 Paul Eggert <eggert@cs.ucla.edu>
regex: port to Stratus OpenVOS
* lib/regex_internal.h (internal_function) [!_LIBC]: Simply
define to empty, rather than attempting nonportable optimizations.
Problem reported by Paul Green in:
http://lists.gnu.org/r/bug-diffutils/2011-08/msg00047.html
and fix suggested by Eric Blake in:
http://lists.gnu.org/r/bug-gnulib/2011-08/msg00143.html
2011-08-17 Eric Blake <eblake@redhat.com>
getcwd: fix test failures on mingw
* lib/getcwd.c (__getcwd): Early exit for ERANGE.
* tests/test-getcwd.c (test_abort_bug, test_long_name): Don't fail
test if long directory cannot be created, and allow mingw errno.
getcwd-lgpl: fix m4 to match relaxed test for BSD
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Relax probe.
(gl_FUNC_GETCWD_SIGNATURE): New macro.
(gl_FUNC_GETCWD_LGPL, gl_FUNC_GETCWD): Use it.
* doc/posix-functions/getcwd.texi (getcwd): Tweak mentions of
signature problem.
getcwd: fix compilation on mingw64
* lib/unistd.in.h (includes) [mingw]: Include <direct.h> for
getcwd.
Reported by Marc-André Lureau.
pipe2: silence compiler warning
* lib/pipe2.c (pipe2): Hide label if it is not used.
2011-08-15 Ben Pfaff <blp@cs.stanford.edu>
relocatable-prog: fix link error
* modules/relocatable-prog (configure.ac) [RELOCATABLE]: Also
invoke AC_LIBOBJ([relocatable]). This invocation was previously
in the gl_RELOCATABLE_LIBRARY macro. That invocation was moved
into modules/relocatable-lib without noticing that
modules/relocatable-prog also invokes gl_RELOCATABLE_LIBRARY and
also needs to build relocatable.c.
2011-08-12 Paul Eggert <eggert@cs.ucla.edu>
getaddrinfo: fix sh typo in gai_strerrorA decl checking
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix typo in the generated
shell code: it contained a 'break' that was not in a loop.
Apparently the macro assumed that AC_CHECK_DECLS is implemenented
via a shell-language loop; this may have been true in old Autoconf
versions, but it's not true in Autoconf 2.68. I found this bug
when testing coreutils git on Solaris 8, whose shell complains
about the syntax error.
2011-08-12 Simon Josefsson <simon@josefsson.org>
* lib/base64.c: Fix comment to reference RFC 4648.
Suggested by Bruno Haible <bruno@clisp.org> and Gijs van Tulder
<gvtulder@gmail.com>.
2011-08-11 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/bootstrap (slurp): Remove obsolescent gettext.m4 patch.
po/Makefile.in.in: fix make -q problem
* build-aux/po/Makefile.in.in (check-macro-version): Remove this
rule, since there's no file named 'check-macro-version' and its
use as a file breaks make -q.
(all): Don't depend on check-macro-version.
(CHECK_MACRO_VERSION): New macro.
(stamp-po): Use it.
configmake: fix make -q problem
* modules/configmake (configmake.h): Update configmake.h's time stamp
even if the file does not change. Otherwise, 'make -q' fails.
Problem reported by Simon Josefsson in
<http://lists.gnu.org/r/bug-gnulib/2011-08/msg00088.html>.
2011-08-11 Jim Meyering <meyering@redhat.com>
git-version-gen: correct the advice in a comment
* build-aux/git-version-gen: Correct comment.
Don't recommend to list .tarball-version in .gitignore.
2011-08-10 Paul Eggert <eggert@cs.ucla.edu>
base64: fix off-by-one buffer size bug
Problem and (trivial) fix reported by Gijs van Tulder in
<http://lists.gnu.org/r/bug-gnulib/2011-08/msg00083.html>.
* lib/base64.c (base64_decode_alloc_ctx): Allocate one more byte.
* tests/test-base64.c (main): Catch the bug.
2011-08-10 Eric Blake <eblake@redhat.com>
closein: correct comments
* lib/closein.c (close_stdin): Improve comments.
2011-08-09 Bruno Haible <bruno@clisp.org>
More tests for 'fseeko'.
* tests/test-fseeko3.c: New file, from Eric Blake.
* tests/test-fseeko3.sh: New file.
* modules/fseeko-tests (Files): Add them.
(TESTS): Add test-fseeko3.sh.
(check_PROGRAMS): Add test-fseeko3.
2011-08-09 Eric Blake <eblake@redhat.com>
fseeko: remove unneeded hack
* lib/fseeko.c (fseeko): Don't special-case SEEK_END.
fseeko: fix bug on glibc
* lib/fseeko.c (fseeko): Set stream offset to match fd offset.
Reported by John W. Eaton.
2011-08-08 Bruno Haible <bruno@clisp.org>
unictype/base: Fix interoperability with preinstalled libunistring.
* modules/unictype/base (configure.ac): Bump minimum version to 0.9.4.
Reported by Simon Josefsson.
2011-08-08 Bruno Haible <bruno@clisp.org>
iswblank: Detect declaration correctly.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Use correct headers in
AC_CHECK_DECLS invocation.
2011-08-08 Bruno Haible <bruno@clisp.org>
tcgetsid: Detect declaration correctly.
* m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Use correct headers in
AC_CHECK_DECLS invocation.
Reported by Simon Josefsson.
2011-08-08 Eric Blake <eblake@redhat.com>
largefile: fix typo that regressed large file support
* modules/largefile (configure.ac-early): Fix section name.
2011-08-06 Karl Berry <karl@gnu.org>
* MODULES.html.sh (func_all_files): _Noreturn is no longer
a separate module.
2011-08-05 Simon Josefsson <simon@josefsson.org>
openat: Fix warnings and commens when building unlinkat.c on Hurd.
* lib/unlinkat.c: Mention Hurd in comments. Include stdlib.h to
get prototype for free.
2011-08-04 Bruno Haible <bruno@clisp.org>
Tests for module 'pathmax'.
* modules/pathmax-tests: New file.
* tests/test-pathmax.c: New file.
canonicalize-lgpl: Support larger filenames on the Hurd.
* lib/canonicalize-lgpl.c (__realpath): Bump path_max fallback to 8192.
Reported by Paul Eggert.
pathmax: Leave PATH_MAX undefined on the Hurd, and a constant otherwise.
* lib/pathmax.h (PATH_MAX): Leave it undefined on GNU/Hurd.
* lib/chdir-long.h: Include pathmax.h.
* lib/clean-temp.c (PATH_MAX): Remove code that is done by pathmax.h.
* lib/getcwd.c: Include pathmax.h instead of <limits.h>.
(PATH_MAX): Remove code that is done by pathmax.h.
* lib/canonicalize.c (PATH_MAX): Provide a fallback value.
* lib/tmpfile.c: Add a comment.
* m4/pathmax.m4 (gl_PATHMAX): Don't test for pathconf.
* modules/chdir-long (Depends-on): Add pathmax.
* modules/getcwd (Depends-on): Add pathmax.
* tests/test-getcwd.c (test_abort_bug): Avoid syntax error when PATH_MAX
is not defined.
* doc/posix-headers/limits.texi: Mention the pathmax module.
* NEWS: Mention the change.
2011-08-02 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Actually use results of gl_THREADLIB.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test and require
gl_THREADLIB, not gl_[]THREADLIB.
Reported by Eric Blake.
2011-08-02 Jim Meyering <meyering@redhat.com>
maint.mk: relax the default _gl_TS_function_match regexp
* top/maint.mk (_gl_TS_function_match): Don't require at least one
space between function name and "(" in an "extern" declaration.
That would fail to match a decl with no space there: extern void foo();
2011-07-31 Iain Nicol <iain@thenicols.net>
git-version-gen: document that EXTRA_DIST must include .version
* build-aux/git-version-gen: In the how-to-use comment, document
that EXTRA_DIST must include .version. Otherwise, "make distcheck"
will fail when run from an unpacked distribution tarball.
2011-08-01 Bruno Haible <bruno@clisp.org>
wctype-h: Fix last change.
* m4/wctype_h.m4 (gl_WCTYPE_H): If towlower is defined, set
REPLACE_TOWLOWER to 0.
Reported by Sam Steingold <sds@gnu.org>.
2011-07-31 Bruno Haible <bruno@clisp.org>
frexpl: Update autoconf test.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Update overrides of <float.h>,
according to changes of 2011-06-20.
2011-07-31 Bruno Haible <bruno@clisp.org>
sys_utsname: Add support for Minix.
* lib/sys_utsname.in.h [Minix]: Include <stddef.h> before
<sys/utsname.h>.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* doc/posix-headers/sys_utsname.texi: Document the Minix problem.
2011-07-31 Bruno Haible <bruno@clisp.org>
strings: Add support for Minix.
* lib/strings.in.h [Minix]: Include <sys/types.h> before <strings.h>.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
* doc/posix-headers/strings.texi: Document the Minix problem.
2011-07-31 Bruno Haible <bruno@clisp.org>
wctype-h: Add support for Minix.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towlower is declared. Set
REPLACE_TOWLOWER.
* modules/wctype-h (Makefile.am): Substitute REPLACE_TOWLOWER.
* lib/wctype.in.h (towlower, towupper): Test REPLACE_TOWLOWER, not
REPLACE_ISWCNTRL.
2011-07-31 Paul Eggert <eggert@cs.ucla.edu>
* lib/xalloc.h (DEFAULT_MXFAST): Track 64-bit glibc.
This is a performance improvement for 64-bit hosts: it causes the
value of DEFAULT_MXFAST to track what's in glibc on such hosts.
2011-07-31 Bruno Haible <bruno@clisp.org>
stdioext: Add support for Minix.
* lib/fbufmode.c (fbufmode) [__minix]: Add conditional code.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* lib/fflush.c (clear_ungetc_buffer): Update comment.
* m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Minix.
2011-07-31 Bruno Haible <bruno@clisp.org>
errno: Port to Minix.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also whether ENETRESET and
ECONNABORTED are defined.
* lib/errno.in.h (ENETRESET, GNULIB_defined_ENETRESET, ECONNABORTED,
GNULIB_defined_ECONNABORTED): New macros.
* lib/strerror-override.h (strerror_override): Test also
GNULIB_defined_ENETRESET, GNULIB_defined_ECONNABORTED.
* lib/strerror-override.c (strerror_override): Handle also ENETRESET,
ECONNABORTED.
* doc/posix-headers/errno.texi: Mention the Minix problem.
2011-07-31 Bruno Haible <bruno@clisp.org>
Work around declaration collisions on Minix.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): If mbsinit is declared but not
defined, set REPLACE_MBSINIT.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): If mbrtowc is declared but not
defined, set REPLACE_MBRTOWC.
* m4/mbrlen.m4 (gl_FUNC_MBRLEN): If mbrlen is declared but not defined,
set REPLACE_MBRLEN.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): If mbsrtowcs is declared but not
defined, set REPLACE_MBSRTOWCS.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): If wcrtomb is declared but not
defined, set REPLACE_WCRTOMB.
* m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): If wcsrtombs is declared but not
defined, set REPLACE_WCSRTOMBS.
2011-07-31 Bruno Haible <bruno@clisp.org>
Add support for Minix with ACK compiler.
* m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): New macro.
* gnulib-tool (func_import, func_create_testdir): Emit invocation of
gl_PROG_AR_RANLIB instead of AC_PROG_RANLIB.
2011-07-31 Bruno Haible <bruno@clisp.org>
Documentation about Minix.
* doc/posix-headers/*.texi: Add info about Minix 3.1.8.
* doc/glibc-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.
2011-07-31 Bruno Haible <bruno@clisp.org>
snippet/warn-on-use: Fix indentation.
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix indentation.
2011-07-25 Jim Meyering <meyering@redhat.com>
tests: test-update-copyright.sh: remove unnecessary "rm" commands
* tests/test-update-copyright.sh: Remove unused rm -f $TMP.*.bak
commands.
2011-07-27 Jim Meyering <meyering@redhat.com>
maint.mk: avoid sc_prohibit_always-defined_macros failure in coreutils
* top/maint.mk (gl_extract_significant_defines_): Now that
SA_RESETHAND and SA_RESTART are #defined (albeit conditionally) in
gnulib/lib/signal.in.h, and now that we recommend to
define-if-undefined those two symbols in application code,
we must filter them out of the "significant" list.
This avoids a "make syntax-check" failure in coreutils.
2011-07-26 Eric Blake <eblake@redhat.com>
warnings: add comments about previous patch
* m4/absolute-header.m4: Document AS_VAR_PUSHDEF limitation.
* m4/include_next.m4: Likewise.
* m4/warn-on-use.m4: Likewise.
* m4/warnings.m4: Likewise, and simplify use.
Suggested by Stefano Lattarini.
include-next, warnings: support older autoconf
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Use
AS_VAR_PUSHDEF in a way that works with older autoconf.
* m4/warnings.m4 (gl_WARN_ADD): Likewise.
Reported by Daniel P. Berrange.
2011-07-25 Bruno Haible <bruno@clisp.org>
fseek, ftell: Fix doc.
* doc/posix-functions/fseek.texi: Reword statement about
AC_SYS_LARGEFILE.
* doc/posix-functions/ftell.texi: Likewise.
2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
Add dependencies to the 'largefile' module.
* modules/fopen (Depends-on): Add 'largefile'.
* modules/freopen (Depends-on): Likewise.
* modules/fseeko (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Do not require AC_SYS_LARGEFILE,
since the containing module now depends on the largefile module.
* m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Likewise.
* doc/posix-functions/fopen.texi: Mention that the problem of 32-bit
off_t is fixed by gnulib.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fseeko.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/ftello.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/lstat.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/stat.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
2011-07-25 Bruno Haible <bruno@clisp.org>
fcntl: Move AC_LIBOBJ invocation to module description.
* m4/fcntl.m4 (gl_REPLACE_FCNTL): Don't invoke AC_LIBOBJ.
* modules/fcntl (configure.ac): Invoke AC_LIBOBJ.
fcntl: Remove call-in from fchdir.m4.
* m4/fcntl.m4 (gl_FUNC_FCNTL): Conditionally invoke gl_TEST_FCHDIR.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_FCNTL.
dup3: Remove potential call-in from fchdir.m4.
* m4/dup3.m4 (gl_FUNC_DUP3): Add comment about fchdir.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Remove comment about dup3.
dup2: Move AC_LIBOBJ invocation to module description.
* m4/dup2.m4 (gl_REPLACE_DUP2): Remove macro.
(gl_FUNC_DUP2): Instead of gl_REPLACE_DUP2, just set REPLACE_DUP2 to 1.
Don't invoke AC_LIBOBJ.
* modules/dup2 (configure.ac): Invoke AC_LIBOBJ.
dup2: Remove call-in from fchdir.m4.
* m4/dup2.m4 (gl_FUNC_DUP2): Conditionally invoke gl_TEST_FCHDIR.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_DUP2.
fclose: Move AC_LIBOBJ invocation to module description.
* m4/fclose.m4 (gl_REPLACE_FCLOSE): Remove macro.
(gl_FUNC_FCLOSE): Instead of gl_REPLACE_FCLOSE, just set REPLACE_FCLOSE
to 1.
* modules/fclose (configure.ac): Invoke AC_LIBOBJ.
fclose: Remove call-in from close.m4.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_CLOSE.
* m4/close.m4 (gl_FUNC_CLOSE): Don't invoke gl_REPLACE_FCLOSE.
close: Move AC_LIBOBJ invocation to module description.
* m4/close.m4 (gl_REPLACE_CLOSE): Remove macro.
(gl_FUNC_CLOSE): Instead of gl_REPLACE_CLOSE, just set REPLACE_CLOSE to
1.
* modules/close (configure.ac): Invoke AC_LIBOBJ.
close: Remove call-in from fchdir.m4.
* m4/close.m4 (gl_FUNC_CLOSE): Conditionally invoke gl_TEST_FCHDIR.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_CLOSE.
open: Move AC_LIBOBJ invocation to module description.
* m4/open.m4 (gl_REPLACE_OPEN): Remove macro.
(gl_FUNC_OPEN): Instead of gl_REPLACE_OPEN, just set REPLACE_OPEN to 1.
* modules/open (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_OPEN.
open: Remove call-in from fchdir.m4.
* m4/open.m4 (gl_FUNC_OPEN): Conditionally invoke gl_TEST_FCHDIR.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_OPEN.
fchdir: Start to remove gl_REPLACE_* idiom.
* m4/fchdir.m4 (gl_TEST_FCHDIR): New macro.
(gl_FUNC_FCHDIR): Invoke it.
2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/ftell.c (ftell): Comment out cast.
close: use gl_REPLACE_FCLOSE only if defined
* m4/close.m4 (gl_REPLACE_CLOSE): Use gl_REPLACE_FCLOSE only if it
is defined. The close module doesn't depend on the fclose module
any more, so gl_REPLACE_CLOSE's existence cannot be assumed. See
<http://lists.gnu.org/r/bug-gnulib/2011-07/msg00392.html>.
I reproduced the problem with "./gnulib-tool --test close sys_socket".
2011-07-24 Jim Meyering <meyering@redhat.com>
test-select.h: avoid warning when using gcc's -Wmissing-declarations
* tests/test-select.h (test_function): Declare as "static".
2011-07-24 Bruno Haible <bruno@clisp.org>
doc: Mention the effects of AC_SYS_LARGEFILE.
* doc/posix-functions/aio_cancel.texi: Mention the effects of AC_SYS_LARGEFILE
on this function.
* doc/posix-functions/aio_error.texi: Likewise.
* doc/posix-functions/aio_fsync.texi: Likewise.
* doc/posix-functions/aio_read.texi: Likewise.
* doc/posix-functions/aio_return.texi: Likewise.
* doc/posix-functions/aio_suspend.texi: Likewise.
* doc/posix-functions/aio_write.texi: Likewise.
* doc/posix-functions/fgetpos.texi: Likewise.
* doc/posix-functions/fopen.texi: Likewise.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fsetpos.texi: Likewise.
* doc/posix-functions/fstatvfs.texi: Likewise.
* doc/posix-functions/ftruncate.texi: Likewise.
* doc/posix-functions/ftw.texi: Likewise.
* doc/posix-functions/getrlimit.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lio_listio.texi: Likewise.
* doc/posix-functions/lockf.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/mmap.texi: Likewise.
* doc/posix-functions/nftw.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/opendir.texi: Likewise.
* doc/posix-functions/posix_fadvise.texi: Likewise.
* doc/posix-functions/posix_fallocate.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/readdir.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/rewinddir.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/seekdir.texi: Likewise.
* doc/posix-functions/setrlimit.texi: Likewise.
* doc/posix-functions/statvfs.texi: Likewise.
* doc/posix-functions/telldir.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/posix-functions/truncate.texi: Likewise.
* doc/glibc-functions/fallocate.texi: Likewise.
* doc/glibc-functions/fstatfs.texi: Likewise.
* doc/glibc-functions/fts_children.texi: Likewise.
* doc/glibc-functions/fts_read.texi: Likewise.
* doc/glibc-functions/getdirentries.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/preadv.texi: Likewise.
* doc/glibc-functions/pwritev.texi: Likewise.
* doc/glibc-functions/sendfile.texi: Likewise.
* doc/glibc-functions/statfs.texi: Likewise.
2011-07-24 Bruno Haible <bruno@clisp.org>
doc: Fix typo.
* doc/posix-functions/fstat.texi: Talk about fstat, not stat.
2011-07-24 Bruno Haible <bruno@clisp.org>
doc: Mention fsusage.
* doc/posix-functions/statvfs.texi: Mention the fsusage module.
2011-07-24 Bruno Haible <bruno@clisp.org>
doc: Mention new glibc headers and functions.
* doc/glibc-headers/gshadow.texi: New file.
* doc/glibc-functions/endsgent.texi: New file.
* doc/glibc-functions/fgetsgent.texi: New file.
* doc/glibc-functions/fgetsgent_r.texi: New file.
* doc/glibc-functions/getsgent.texi: New file.
* doc/glibc-functions/getsgent_r.texi: New file.
* doc/glibc-functions/getsgnam.texi: New file.
* doc/glibc-functions/getsgnam_r.texi: New file.
* doc/glibc-functions/putsgent.texi: New file.
* doc/glibc-functions/setsgent.texi: New file.
* doc/glibc-functions/sgetsgent.texi: New file.
* doc/glibc-functions/sgetsgent_r.texi: New file.
* doc/glibc-functions/malloc_info.texi: New file.
* doc/glibc-functions/preadv.texi: New file.
* doc/glibc-functions/pwritev.texi: New file.
* doc/glibc-functions/register_printf_modifier.texi: New file.
* doc/glibc-functions/register_printf_specifier.texi: New file.
* doc/glibc-functions/register_printf_type.texi: New file.
* doc/glibc-functions/pthread_attr_getaffinity_np.texi: New file.
* doc/glibc-functions/pthread_attr_setaffinity_np.texi: New file.
* doc/glibc-functions/pthread_getaffinity_np.texi: New file.
* doc/glibc-functions/pthread_getname_np.texi: New file.
* doc/glibc-functions/pthread_mutex_consistent_np.texi: New file.
* doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: New file.
* doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: New file.
* doc/glibc-functions/pthread_setaffinity_np.texi: New file.
* doc/glibc-functions/pthread_setname_np.texi: New file.
* doc/glibc-functions/pthread_sigqueue.texi: New file.
* doc/glibc-functions/pthread_timedjoin_np.texi: New file.
* doc/glibc-functions/pthread_tryjoin_np.texi: New file.
* doc/glibc-functions/qsort_r.texi: New file.
* doc/glibc-functions/quick_exit.texi: New file.
* doc/glibc-functions/syncfs.texi: New file.
* doc/gnulib.texi: Include them.
(Glibc gshadow.h, Glibc sys/uio.h): New sections.
* doc/posix-functions/psiginfo.texi: Fix info about glibc version.
* doc/posix-functions/pthread_mutex_consistent.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_getrobust.texi: Likewise.
* doc/posix-functions/pthread_mutexattr_setrobust.texi: Likewise.
* doc/glibc-functions/execvpe.texi: Likewise.
2011-07-24 Paul Eggert <eggert@cs.ucla.edu>
ftell: don't include <unistd.h>
* lib/ftell.c: Don't include <unistd.h>. <stdio.h> is now
guaranteed to define off_t, and the ftell module depends on the
stdio module.
ftell: do not assume wraparound signed arithmetic
* lib/ftell.c: Include <limits.h>.
(ftell): Don't assume wraparound signed arithmetic.
2011-07-24 Bruno Haible <bruno@clisp.org>
close: No longer depend on module 'fclose'.
* modules/close (Depends-on): Remove fclose.
* NEWS: Mention the change.
Suggested by Sam Steingold <sds@gnu.org>.
2011-07-24 Bruno Haible <bruno@clisp.org>
fsusage: Enable large volume support on AIX >= 5.2.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): If 'struct statvfs64' has a
larger f_blocks field than 'struct statvfs', define STAT_STATVFS64
instead of STAT_STATVFS.
* lib/fsusage.c (get_fs_usage) [STAT_STATVFS64]: Use statvfs64.
fsusage: Restore previous behaviour on AIX, Cygwin, Interix.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Enforce a 64-bit struct statvfs
f_blocks field only on MacOS X.
fsusage: Support large volumes on glibc/Hurd, HP-UX, Solaris, MacOS X.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Require AC_SYS_LARGEFILE.
* modules/fsusage (Depends-on): Add largefile.
2011-07-24 Paul Eggert <eggert@cs.ucla.edu>
* README: Modernize discussion of signed integers.
Assuming overflow wraparound is no longer safe.
Mention ones' complement and signed magnitude.
2011-07-22 Bruno Haible <bruno@clisp.org>
select tests, pselect tests: Refactor.
* tests/test-select.h: New file, extracted from tests/test-select.c.
(select_fn): New type.
(test, do_select, do_select_nowait, do_select_wait, test_tty,
test_connect_first, test_accept_first, test_pair, test_socket_pair,
test_pipe): Add my_select argument.
(test_function): Renamed from main. Add my_select argument.
* tests/test-select.c: Move most code to tests/test-select.h. Include
test-select.h.
* modules/select-tests (Files): Add tests/test-select.h.
* tests/test-pselect.c: Include test-select.h instead of test-select.c.
(my_select, main): New functions.
* modules/pselect-tests (Files): Add tests/test-select.h,
tests/macros.h, tests/signature.h.
(Depends-on): Remove select-tests. Add dependencies of test-select.h.
(configure.ac): Check for <sys/wait.h>.
2011-07-22 Bruno Haible <bruno@clisp.org>
sys_select tests: Check the signature of FD_*.
* tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Move
signature tests from here...
* tests/test-sys_select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): ... to
here.
* modules/sys_select-tests (Files): Add tests/signature.h.
2011-07-22 Paul Eggert <eggert@cs.ucla.edu>
largefile: new module, replacing large-inode
Pádraig Brady suggested this in <http://debbugs.gnu.org/9140#20>.
* MODULES.html.sh: Add largefile, remove large-inode.
* modules/largefile, m4/largefile.m4: New files.
* modules/large-inode, m4/large-inode.m4: Remove.
fsusage: port to MacOS X 10.7 with 4 TiB file systems
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Reject statvfs
implementations that use only 32 bits to count blocks.
On typical hosts with 1024-byte blocks, this fails with file
systems as small as 4 TiB. Problem reported by Herb Wartens
<http://debbugs.gnu.org/9140> and this should also fix a similar
problem reported by Tim Spriggs <http://debbugs.gnu.org/7355>.
large-inode: New module
* MODULES.html.sh: Add it.
* modules/large-inode, m4/large-inode.m4: New files.
extensions: Enable extensions on MacOS X 10.5 and later.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _DARWIN_C_SOURCE.
2011-07-22 Kamil Dudka <kdudka@redhat.com>
file-has-acl: use acl_extended_file_nofollow if available
* lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro.
(acl_extended_file): New macro.
* lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow.
* m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow.
2011-07-21 Bruno Haible <bruno@clisp.org>
Declare system functions in a way that works with C++.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR) [C++]: In the test program,
declare fdopendir as extern "C".
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS) [C++]: In the test program,
declare frexpl as extern "C".
* m4/getaddrinfo.m4 (gl_GETADDRINFO) [C++]: In the test program,
declare gai_strerror as extern "C".
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME) [C++]: In the test
programs, declare gai_strerror as extern "C".
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R) [C++]: In the test program,
declare getlogin_r as extern "C".
* m4/ioctl.m4 (gl_FUNC_IOCTL) [C++]: In the test program, declare ioctl
as extern "C".
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS) [C++]: In the test program,
declare ldexpl as extern "C".
* m4/logb.m4 (gl_FUNC_LOGB) [C++]: In the test programs, declare logb
as extern "C".
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS) [C++]: In the test
program, declare getmntinfo as extern "C".
* m4/stpncpy.m4 (gl_FUNC_STPNCPY) [C++]: In the test program, declare
stpncpy as extern "C".
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS) [C++]: In the test
program, declare __xpg_strerror_r as extern "C".
* m4/strndup.m4 (gl_FUNC_STRNDUP) [C++]: In the test program, declare
strndup as extern "C".
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT) [C++]: In the test program,
declare memset and bzero as extern "C".
Reported by Sam Steingold <sds@gnu.org>.
2011-07-12 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit inclusion of "verify.h" without use
* top/maint.mk (sc_prohibit_verify_without_use): New rule.
2011-07-19 Pádraig Brady <P@draigBrady.com>
timer-time: A new module to check for timer_settime()
* m4/timer_time.m4: Check for the posix function.
* modules/timer-time: Add the new module.
* MODULES.html.sh (Compat checks for POSIX:2008 functions):
Mention it.
2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
pthread_sigmask: assume POSIX threads if --avoid=threadlib
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): If gl_THREADLIB is
not defined, assume POSIX threads and look for pthread_sigmask in
$LIBS, without changing $CPPFLAGS.
2011-07-19 Bruno Haible <bruno@clisp.org>
strstr: Update cross-compilation guess.
* m4/strstr.m4 (gl_FUNC_STRSTR): On glibc > 2.12 with x86 or x86_64
CPUs, guess no, in view of glibc
BZ #12100 <http://sourceware.org/bugzilla/show_bug.cgi?id=12100>.
Suggested by Eric Blake. Reported by Reuben Thomas.
2011-07-19 Pádraig Brady <P@draigBrady.com>
getopt-gnu: suppress core dumps from detection code
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Use the nocrash module
to suppress core dumps that may well occur on glibc systems.
* modules/getopt-gnu: Depend on nocrash.
2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
pthread_sigmask: ensure usleep is declared
* lib/pthread_sigmask.c [PTHREAD_SIGMASK_UNBLOCK_BUG]:
Include <unistd.h>, to declare usleep. Needed on Solaris 8,
2011-07-15 Paul Eggert <eggert@cs.ucla.edu>
doc: Document NonStop portability issues.
* doc/posix-functions/sigaction.texi (sigaction):
* doc/posix-headers/signal.texi (signal.h):
Document NonStop. See Joachim Schmitz in
http://lists.gnu.org/r/bug-coreutils/2011-07/msg00062.html
2011-07-15 Bruno Haible <bruno@clisp.org>
ffsl, ffsll: Avoid unportable behaviour.
* lib/ffsl.h (FUNC): Use 'unsigned int' instead of 'int'.
2011-07-15 Bruno Haible <bruno@clisp.org>
ffs: More tests.
* tests/test-ffs.c (NBITS): New macro.
(main): Add more tests.
* tests/test-ffsl.c (NBITS): New macro.
(main): Add more tests.
* tests/test-ffsll.c (NBITS): New macro.
(main): Add more tests.
2011-07-15 Eric Blake <eblake@redhat.com>
ffsl, ffsll: new modules
* modules/ffsl: New file.
* modules/ffsll: Likewise.
* m4/ffsl.m4: Likewise.
* m4/ffsll.m4: Likewise.
* lib/ffsl.c: Likewise.
* lib/ffsl.h: Likewise.
* lib/ffsll.c: Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY)
(gl_HEADER_STRING_H_DEFAULTS): Add defaults.
* modules/string (Makefile.am): Substitute witnesses.
* lib/strings.in.h (ffsl, ffsll): Declare.
* modules/ffsl-tests: New test file.
* modules/ffsll-tests: Likewise.
* tests/test-ffsl.c: Likewise.
* tests/test-ffsll.c: Likewise.
* MODULES.html.sh (Integer arithmetic functions): Mention it.
* doc/glibc-functions/ffsl.texi (ffsl): Likewise.
* doc/glibc-functions/ffsll.texi (ffsll): Likewise.
ffs: fix m4 prerequisite
* m4/ffs.m4 (gl_FUNC_FFS): Require strings.h defaults.
ffs: avoid undefined behavior
* lib/ffs.c (ffs): Provide fallback for non-32-bit int.
* tests/test-ffs.c (naive, main): Avoid signed shifts.
Reported by Bruno Haible.
2011-07-12 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Rely on module 'threadlib'.
* modules/pthread_sigmask (Depends-on): Add threadlib.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB
is defined.
2011-07-12 Bruno Haible <bruno@clisp.org>
regex: Depend on module 'strcase'.
* modules/regex (Depends-on): Add strcase, for strcasecmp().
2011-07-12 Jim Meyering <meyering@redhat.com>
warn-on-use: fix typo in file name
* modules/snippet/warn-on-use (Files): Correct file name:
include /snippet/ component in "build-aux/snippet/warn-on-use.h".
2011-07-12 Bruno Haible <bruno@clisp.org>
strings: Document module.
* doc/posix-headers/strings.texi: Mention module 'strings'.
2011-07-12 Bruno Haible <bruno@clisp.org>
Rename module '_Noreturn' to 'snippet/_Noreturn'.
* modules/snippet/_Noreturn: Renamed from modules/_Noreturn.
(Files, Makefile.am): Update.
* build-aux/snippet/_Noreturn.h: Renamed from build-aux/_Noreturn.h.
* modules/stdlib (Depends-on): Update.
2011-07-12 Bruno Haible <bruno@clisp.org>
* NEWS: Mention the changes.
Rename module 'warn-on-use' to 'snippet/warn-on-use'.
* modules/snippet/warn-on-use: Renamed from modules/warn-on-use.
(Files, Makefile.am): Update.
* build-aux/snippet/warn-on-use.h: Renamed from build-aux/warn-on-use.h.
* modules/arpa_inet (Depends-on): Update.
* modules/ctype (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/inttypes-incomplete (Depends-on): Update.
* modules/langinfo (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/poll-h (Depends-on): Update.
* modules/pty (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_file (Depends-on): Update.
* modules/sys_ioctl (Depends-on): Update.
* modules/sys_select (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_times (Depends-on): Update.
* modules/sys_utsname (Depends-on): Update.
* modules/sys_wait (Depends-on): Update.
* modules/termios (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* modules/wctype-h (Depends-on): Update.
* MODULES.html.sh (Support for building libraries and executables):
Update.
Rename module 'unused-parameter' to 'snippet/unused-parameter'.
* modules/snippet/unused-parameter: Renamed from
modules/unused-parameter.
(Files, Makefile.am): Update.
* build-aux/snippet/unused-parameter.h: Renamed from
build-aux/unused-parameter.h.
* modules/selinux-h (Depends-on): Update.
* modules/unistr/base (Depends-on): Update.
* MODULES.html.sh (Core language properties): Update.
Rename module 'link-warning' to 'snippet/link-warning'.
* modules/snippet/link-warning: Renamed from modules/link-warning.
(Files, Makefile.am): Update.
* build-aux/snippet/link-warning.h: Renamed from
build-aux/link-warning.h.
* MODULES.html.sh (Support for building libraries and executables):
Update.
Rename module 'c++defs' to 'snippet/c++defs'.
* modules/snippet/c++defs: Renamed from modules/c++defs.
(Files, Makefile.am): Update.
* build-aux/snippet/c++defs.h: Renamed from build-aux/c++defs.h.
* modules/arpa_inet (Depends-on): Update.
* modules/ctype (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/langinfo (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/poll-h (Depends-on): Update.
* modules/pty (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_ioctl (Depends-on): Update.
* modules/sys_select (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_wait (Depends-on): Update.
* modules/termios (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* modules/wctype-h (Depends-on): Update.
Rename module 'arg-nonnull' to 'snippet/arg-nonnull'.
* modules/snippet/arg-nonnull: Renamed from modules/arg-nonnull.
(Files, Makefile.am): Update.
* build-aux/snippet/arg-nonnull.h: Renamed from build-aux/arg-nonnull.h.
* modules/argv-iter (Depends-on): Update.
* modules/arpa_inet (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/fnmatch (Depends-on): Update.
* modules/getopt-posix (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/inttypes-incomplete (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_times (Depends-on): Update.
* modules/sys_utsname (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* MODULES.html.sh (Support for building libraries and executables):
Update.
2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
Improvements on _Noreturn and related modules.
modules/_Exit-tests: test _Noreturn too
* tests/test-_Exit.c (MTA, Charlie): New functions, taken from the
old tests/test-stdnoreturn.c. This tests the _Noreturn keyword a bit.
(main): Use them.
stdnoreturn, stdnoreturn-tests: remove modules
They're not needed here and a bit premature for use elsewhere. See
<http://lists.gnu.org/r/bug-gnulib/2011-07/msg00209.html>.
* m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests:
* tests/test-stdnoreturn.c: Remove files.
* MODULES.html.sh (_Noreturn <stdnoreturn.h>): Remove section.
* lib/openat.h, lib/sigpipe-die.h, lib/xalloc.h, lib/xmemdup0.h:
* lib/xstrtol.h: Use _Noreturn rather than including <stdnoreturn.h>
and using noreturn.
* modules/openat, modules/sigpipe-die, modules/xalloc:
* modules/xmemdup0, modules/xstrtol:
Remove dependency on stdnoreturn.
_Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
* build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__.
Reparenthesize to avoid GCC warning.
Support Microsoft's syntax.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
_Noreturn-tests: remove module
* modules/_Noreturn-tests: Remove.
* modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c.
* tests/test-_Noreturn.c: Remove.
* tests/test-stdnoreturn.c: Merge from the old
tests/test-_Noreturn.c, testing both noreturn and _Noreturn.
2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
_Noreturn, stdnoreturn, and related modules.
* top/maint.mk: Adjust to new noreturn support.
(gl_extract_significant_defines_): Omit pattern ATTRIBUTE_NORETURN.
(def_sym_regex): Do not remove ATTRIBUTE_NORETURN.
xalloc: use stdnoreturn.h
* lib/xalloc.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xalloc (Depends-on): Add stdnoreturn.
xstrtol: use stdnoreturn.h
* lib/xstrtol.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xstrtol (Depends-on): Add stdnoreturn.
xmemdup0: use stdnoreturn.h
* lib/xmemdup0.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xmemdup0 (Depends-on): Add stdnoreturn.
sigpipe-die: use stdnoreturn.h
* lib/sigpipe-die.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/sigpipe-die (Depends-on): Add stdnoreturn.
openat: use stdnoreturn.h
* lib/openat.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/openat (Depends-on): Add stdnoreturn.
* lib/openat-die.c (openat_save_fail): Modernize comment.
* lib/xalloc-die.c (xalloc_die): Modernize comment.
* lib/glthread/thread.h: Modernize comment.
obstack: use _Noreturn
* lib/obstack.c (__attribute__): Remove macro.
(print_and_abort): Use _Noreturn.
c-stack: use _Noreturn
* lib/c-stack.c (die, overflow_handler, segv_handler):
Use _Noreturn rather than __attribute__((noreturn)).
argmatch-tests, exclude_tests: use _Noreturn
* tests/test-argmatch.c, tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN):
Remove.
(ARGMATCH_DIE_DECL): Use _Noreturn instead.
stdlib: use _Noreturn
* lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove.
(_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN.
* modules/stdlib (Depends-on): Add _Noreturn.
(stdlib.h): Depend on $(_NORETURN_H), and copy it in.
stdnoreturn-tests: new module
* modules/stdnoreturn-tests, tests/test-stdnoreturn.c: New files.
stdnoreturn: new module
* MODULES.html.sh (Noreturn <stdnoreturn.h>): New section.
* m4/stdnoreturn.m4, modules/stdnoreturn: New files.
_Noreturn-tests: new module
* modules/_Noreturn-tests, tests/test-_Noreturn.c: New files.
_Noreturn: new module
* MODULES.html.sh (Support for systems lacking draft ISO C 1X):
New section, mentioning it.
* build-aux/_Noreturn.h, modules/_Noreturn: New files.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
2011-07-11 Eric Blake <eblake@redhat.com>
ffs: new module
* modules/ffs: New file.
* m4/ffs.m4: Likewise.
* lib/ffs.c: Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Add default.
* modules/strings (Makefile.am): Substitute witness.
(Depends-on): Add c++defs.
* lib/strings.in.h (ffs): Declare.
* modules/ffs-tests: New test file.
* tests/test-ffs.c: Test new module.
* MODULES.html.sh (Integer arithmetic functions): Mention it.
* doc/posix-functions/ffs.texi (ffs): Likewise.
regex: avoid compiler warning
* lib/regex.c (includes): Include <strings.h>, for use of
strcasecmp in regcomp.c.
Reported by Joachim Schmitz.
2011-07-09 Paul Eggert <eggert@cs.ucla.edu>
stdint: respect system's intmax_t if INTMAX_MAX
* lib/stdint.in.h (intmax_t, uintmax_t): If the system defines
INTMAX_MAX, assume its intmax_t is OK. Similarly for and
uintmax_t. This is for some Mac OS X builds, where intmax_t is
long but int64_t is long long, and where we will clash with the
system intmax_t if we override it. See
<http://lists.gnu.org/r/bug-gnulib/2011-07/msg00160.html>.
(INTMAX_C, UINTMAX_C): For consistency, respect the system's
INTMAX_C if INTMAX_MAX and INTMAX_C are both defined, and
similarly for UINTMAX_C.
2011-07-08 Bruno Haible <bruno@clisp.org>
pthread_sigmask tests: Avoid a compiler warning.
* tests/test-pthread_sigmask1.c (main): Complain if system() returns
non-zero.
sigprocmask tests: A better way to avoid a compiler warning.
* tests/test-sigprocmask.c: Don't include "ignore-value.h".
(main): Complain if system() returns non-zero.
* modules/sigprocmask-tests (Depends-on): Remove ignore-value.
2011-07-08 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Work around IRIX bug.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the IRIX
bug.
* lib/pthread_sigmask.c (pthread_sigmask): usleep for some time when
there may be unblocked pending signals.
* doc/posix-functions/pthread_sigmask.texi: Mention the IRIX bug.
2011-07-08 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Work around Cygwin bug.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the Cygwin
bug.
* lib/pthread_sigmask.c (pthread_sigmask): Fix the return value from
the system's pthread_sigmask function.
* doc/posix-functions/pthread_sigmask.texi: Mention the Cygwin bug.
2011-07-08 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Work around bug in single-threaded implementation.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the
FreeBSD, HP-UX, Solaris bug.
(gl_PREREQ_PTHREAD_SIGMASK): New macro.
* lib/pthread_sigmask.c: Include <stddef.h>.
(pthread_sigmask): If HAVE_PTHREAD_SIGMASK, define as a wrapper around
the system's pthread_sigmask function.
* modules/pthread_sigmask (configure.ac): Invoke
gl_PREREQ_PTHREAD_SIGMASK.
* doc/posix-functions/pthread_sigmask.texi: Mention bug on FreeBSD,
HP-UX, Solaris.
2011-07-08 Eric Blake <eblake@redhat.com>
test-sigprocmask: avoid compiler warning
* modules/sigprocmask-tests (Depends-on): Add ignore-value.
* tests/test-sigprocmask.c (main): Use it to silence warning.
Reported by Jim Meyering.
test-snprintf: avoid compiler warning
* tests/test-snprintf.c (main): Avoid shadowed declaration.
* tests/test-vsnprintf.c (main): Likewise.
Reported by Jim Meyering.
2011-07-08 Bruno Haible <bruno@clisp.org>
Tests for module 'pthread_sigmask'.
* modules/pthread_sigmask-tests: New file.
* tests/test-pthread_sigmask1.c: New file, based on
tests/test-sigprocmask.c.
* tests/test-pthread_sigmask2.c: New file.
2011-07-08 Jim Meyering <meyering@redhat.com>
test-getopt.h: avoid warning about an unused variable
* tests/test-getopt.h (test_getopt): Remove unused variable, "c".
2011-07-07 Jim Meyering <meyering@redhat.com>
maint: reduce list of files exempt from sc_prohibit_leading_TABs
* Makefile (sc_prohibit_leading_TABs): Don't exempt m4/po.m4,
now that it no longer contains leading TABs.
Remove unused "url=FIXME" statement.
2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
pthread_sigmask: Assume POSIX when not gl_THREADLIB.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
When gl_THREADLIB is not in use, assume that the POSIX sematics
are desired. This is better for Emacs, which uses POSIX semantics
on GNUish and/or POSIXish platforms, and does not use threads at
all otherwise.
pthread_sigmask: fix typo when testing for libraries
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
AC_LINK_IFELSE, not AC_COMPILE_IFELSE.
2011-07-08 Eric Blake <eblake@redhat.com>
fts: introduce FTS_NOATIME
* lib/fts_.h (FTS_NOATIME): New bit flag.
(FTS_OPTIONMASK): Adjust.
* lib/fts.c (diropen, fts_open, fts_build): Honor it.
(fd_ring_check): Debug code unconditionally uses O_NOATIME.
2011-07-08 Bruno Haible <bruno@clisp.org>
Tests for module 'thread'.
* modules/thread-tests: New file.
* tests/test-thread_self.c: New file.
* tests/test-thread_create.cc: New file.
2011-07-08 Bruno Haible <bruno@clisp.org>
thread: Avoid gcc warnings when using gl_thread_self().
* lib/glthread/thread.h (gl_thread_self): Return a pthread_t, not a
'void *'.
(gl_thread_self_pointer): Update.
2011-07-07 Bruno Haible <bruno@clisp.org>
signal-c++-tests: Check declaration of pthread_sigmask.
* tests/test-signal-c++.cc: Check declaration of pthread_sigmask.
* modules/signal-c++-tests (Makefile.am): Link test-signal-c++ against
$(LIB_PTHREAD_SIGMASK).
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Fix link requirements on OSF/1 5.1 and with pth.
* lib/signal.in.h (pthread_sigmask): Override if
REPLACE_PTHREAD_SIGMASK is 1.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
REPLACE_PTHREAD_SIGMASK.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Set also
REPLACE_PTHREAD_SIGMASK. Set and substitute LIB_PTHREAD_SIGMASK.
* modules/signal (Makefile.am): Substitute REPLACE_PTHREAD_SIGMASK.
* modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
(Link): Set to $(LIB_PTHREAD_SIGMASK), not $(LIBMULTITHREAD).
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Ensure declaration in <signal.h>.
* lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, Solaris 2.6,
include <pthread.h>.
* doc/posix-functions/pthread_sigmask.texi: Mention the header file
problem.
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Document the module.
* doc/posix-functions/pthread_sigmask.texi: Mention the new module.
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Follow gnulib conventions.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from
gl_PTHREAD_SIGMASK.
* modules/pthread_sigmask (configure.ac): Update.
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Make declaration C++ safe.
* lib/signal.in.h: In two special conditions, just do an #include_next.
(pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
* m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK,
not REPLACE_PTHREAD_MASK.
* modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK,
not REPLACE_PTHREAD_MASK.
* modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
2011-07-07 Bruno Haible <bruno@clisp.org>
pthread_sigmask: Fix return value.
* lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
* lib/pthread_sigmask.c: New file.
* modules/pthread_sigmask (Files): Add it.
(configure.ac): Invoke AC_LIBOBJ.
2011-07-07 Eric Blake <eblake@redhat.com>
getopt: more portable argv creation
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away
const, use char arrays rather than strings.
Suggested by Paul Eggert.
2011-07-07 Bruno Haible <bruno@clisp.org>
Tests for module 'sigprocmask'.
* modules/sigprocmask-tests: New file.
* tests/test-sigprocmask.c: New file.
2011-07-07 Bruno Haible <bruno@clisp.org>
float tests: Tweak.
* tests/test-float.c (main): Tweak skip message.
2011-07-07 Eric Blake <eblake@redhat.com>
getopt: avoid compiler warning during configure
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with
assigning string literals to non-const pointer.
getopt-gnu: avoid crash in glibc getopt
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem.
* tests/test-getopt.h (test_getopt): Enhance test.
* tests/test-getopt_long.h (test_getopt_long): Likewise.
* doc/posix-functions/getopt.texi (getopt): Document it.
* doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
2011-07-07 Ulrich Drepper <drepper@gmail.com>
getopt: handle W; without long options in getopt [BZ #12922]
* lib/getopt.c (_getopt_internal_r): When "W;" is in short options
but no long options are defined, just return 'W'.
2011-07-07 Bruno Haible <bruno@clisp.org>
Avoid literal tabs.
* m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell
variable containing a tab instead of a literal tab.
Reported by Jim Meyering.
2011-07-07 Bruno Haible <bruno@clisp.org>
Comments.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw.
2011-07-06 Bruno Haible <bruno@clisp.org>
sys_select: Fix compilation error on mingw, introduced on 2011-06-30.
* lib/sys_select.in.h: Don't include <sys/socket.h>. Instead, include
<winsock2.h>.
(rpl_fd_isset, FD_ISSET): New definitions, copied from
lib/sys_socket.in.h.
(close, gethostname): Hide declarations from <winsock2.h>.
(socket, connect, accept, bind, getpeername, getsockname, getsockopt,
listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise.
* lib/sys_socket.in.h (close, gethostname): Tweak indentation.
(select): Don't override if gnulib's <sys/select.h> was already
included.
* lib/unistd.in.h (socket, connect, accept, bind, getpeername,
getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
setsockopt, shutdown, select): Tweak indentation.
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
* modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR
and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed
in an application that does not use the sys_select module.
2011-07-06 Erik Faye-Lund <kusmabite@gmail.com>
poll: do not return 0 on timeout=-1
* lib/poll.c: Loop with yield if no events occurred.
2011-07-06 Eric Blake <eblake@redhat.com>
pthread_sigmask: always replace when not using pthread
* m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask
replacement when using some threading other than pthread. Fix
logic bug.
2011-07-06 Bruno Haible <bruno@clisp.org>
Comments.
* m4/printf.m4: Update comments about mingw.
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
sys_select: define sigset_t more portably
* lib/sys_select.in.h: Always include <sys/types.h>, since
we now need sigset_t and mingw defines it there.
Include <signal.h> before split inclusion guard, to avoid
mishaps on Solaris, whose <signal.h> eventually includes us.
* m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T.
(gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of
which come from ...
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
gl_CHECK_TYPE_SIGSET_T.
(gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T
does the real work.
* modules/sys_select (Depends-on): Add 'signal'.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect.
Suggested by Bruno Haible.
pselect: Use pthread_sigmask, not sigprocmask.
* lib/pselect.c (pselect): Use pthread_sigmask, as it supports
multithreaded apps better than sigprocmask does.
* modules/pselect (Depends-on): Depend on pthread_sigmask, not
sigprocmask directly.
2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
* lib/pselect.c (pselect): Use plain name, without "rpl_".
Don't #undef, since we don't need any underlying pselect.
* modules/pselect (configure.ac): Use our pselect.o if !HAVE_PSELECT.
(Depends-on): Add select.
(Link): Add $(LIBSOCKET).
These changes suggested by Bruno Haible.
pselect: document better
* MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
* doc/posix-functions/pselect.texi (pselect): Document new module.
pthread_sigmask: new module
* MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
* doc/posix-functions/pthread_sigmask.texi: Document new module.
* lib/signal.in.h (pthread_sigmask): Arrange for replacement.
This is done only as a macro; I don't know how well that'll
work for C++. Move <sys/types.h> include before the include_next,
to avoid mishap on Solaris.
* m4/signal_h.m4 (gl_SIGNAL_H, gl_SIGNAL_H_DEFAULTS): Check for it.
* modules/signal (Makefile.am): Substitute the check's results.
* modules/pthread_sigmask, m4/pthread_sigmask.m4: New files.
test-pselect: new module
* modules/pselect-tests, tests/test-pselect.c: New files.
* tests/test-select.c, tests/test-sys_select-c++.cc:
If TEST_PSELECT is defined, test pselect instead of testing select.
* tests/test-sys_select.c (sigset_t): Test for it, too.
Suggested by Bruno Haible.
2011-07-05 Eric Blake <eblake@redhat.com>
snprintf: guarantee %1$d, for libintl
* m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require %1$d support.
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise.
* doc/posix-functions/snprintf.texi (snprintf): Update.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* tests/test-snprintf.c (main): Enhance test.
* tests/test-vsnprintf.c (main): Likewise.
2011-07-05 Jim Meyering <meyering@redhat.com>
maint: exempt stdio-read.c and stdio-write.c from the cppi check
* Makefile (sc_cpp_indent_check): Exempt stdio-read.c and stdio-write.c
per Bruno's request, to accommodate this idiom (no space after "#")
even when the function is inside an #if block:
char *
gets (char *s)
#undef gets
{
...
}
2011-07-04 Jim Meyering <meyering@redhat.com>
maint: indent with spaces, not TABs, and add a rule to check this
* tests/test-userspec.c: Indent with spaces, not TABs.
* tests/test-argp.c: Likewise.
* tests/test-c-stack2.sh: Likewise.
* tests/test-parse-duration.sh: Likewise
* m4/strtod.m4: Likewise.
* m4/alloca.m4: Likewise.
* m4/pselect.m4: Likewise.
* Makefile (sc_prohibit_leading_TABs): Prohibit leading TABs.
2011-07-03 Jim Meyering <meyering@redhat.com>
maint.mk: correct omissions in prohibit_argmatch_without_use check
This rule would mistakenly report that argmatch.h is included without
use even when both the argmatch and invalid_arg macro were used.
* top/maint.mk (sc_prohibit_argmatch_without_use): Also detect uses
of argmatch and invalid_arg.
2011-07-03 Bruno Haible <bruno@clisp.org>
Comments about EINTR.
* lib/safe-read.h: Explain the purpose of this module.
* lib/safe-write.h: Likewise.
* doc/posix-functions/read.texi: Mention EINTR and the 'safe-read'
module.
* doc/posix-functions/write.texi: Mention EINTR and the 'safe-write'
module.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2011-06-30 Paul Eggert <eggert@cs.ucla.edu>
xnanosleep: Rewrite to use new dtotimespec module.
It has the conversion code that used to be in xnanosleep.
* lib/xnanosleep.c: Do not include limits.h, stdbool.h, stdio.h,
assert.h, sys/types.h, or intprops.h. Include timespec.h instead.
(TIME_T_MAX): Remove.
(xnanosleep): Rewrite in terms of dtotimespec.
* modules/xnanosleep (Depends-on): Add dtotimespec.
Remove intprops, stdbool.
timespec-add, timespec-sub: new modules
* lib/timespec.h (timespec_add, timespec_sub): New decls.
* lib/timespec-add.c, lib/timespec-sub.c:
* modules/timespec-add, modules/timespec-sub: New files.
dtotimespec: new module
* lib/timespec.h (dtotimespec): New decl.
* lib/dtotimespec.c, modules/dtotimespec: New files.
* lib/timespec.h (timespec_sign, timespectod): New inline functions.
pselect: new module
* lib/sys_select.in.h: Include <signal.h>, for 'sigset_t'.
(pselect): New decls.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Require AC_C_RESTRICT,
since the standard pselect decl uses 'restrict'.
(gl_SYS_SELECT_H_DEFAULTS): Add defaults for GNULIB_PSELECT,
HAVE_PSELECT, REPLACE_PSELECT.
* modules/sys_select (sys/select.h): Substitute GNULIB_PSELECT,
HAVE_PSELECT, REPLACE_PSELECT.
* lib/pselect.c, m4/pselect.m4, modules/pselect: New files.
sys_select: don't depend on sys_socket
This is so that Emacs doesn't have to drag in m4/sockpfaf.m4 etc; see
<http://lists.gnu.org/r/bug-gnulib/2011-06/msg00358.html>.
This fix works on GNU and GNU-like platforms, but has not been tested
on native Windows.
* lib/sys_select.in.h: Include <sys/socket.h> only if native Windows.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Do not require
gl_HEADER_SYS_SOCKET.
* modules/sys_select (Files): Add m4/sys_socket_h.m4, for
gl_PREREQ_SYS_H_WINSOCK2.
2011-06-29 Eric Blake <eblake@redhat.com>
pipe2: fix C89 compile problem
* lib/pipe2.c (pipe2): Avoid C99 array initialization.
Reported by Bruno Haible.
pipe, pipe2: don't corrupt fd on error
* lib/pipe.c (pipe): Leave fd unchanged on error.
* lib/pipe2.c (pipe2): Likewise.
* doc/posix-functions/pipe.texi (pipe): Document cygwin issue.
* doc/glibc-functions/pipe2.texi (pipe2): Likewise.
2011-06-27 Paolo Bonzini <bonzini@gnu.org>
mmap-anon: do not use regular expressions inadvertently
* m4/mmap-anon.m4: Remove trailing period from strings sought
in the output.
2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
nanosleep: fix integer overflow problem
* lib/nanosleep.c (my_usleep): Don't assume signed integer
arithmetic wraps around on overflow.
nanosleep: simplify carrying
* lib/nanosleep.c (nanosleep): Use the requested tv_nsec for the
first call to the underyling nanosleep, not for the last one.
This doesn't fix any bugs, but it simplifies the computation of
the remaining delay. Found while auditing integer overflow issues.
dup2: remove test for existence of fcntl
* m4/dup2.m4 (gl_FUNC_DUP2): Use "#ifdef FD_CLOEXEC", not
"#if HAVE_FCNTL", in the configure-time test program.
This removes the need for the AC_CHECK_FUNCS_ONCE([fcntl]),
and therefore speeds up "configure" a bit. Found while
adding the dup2 module to Emacs.
2011-06-24 Eric Blake <eblake@redhat.com>
maint.mk: enhance useless header checks
* top/maint.mk (_sc_header_without_use): Check both include
styles.
(sc_prohibit_assert_without_use)
(sc_prohibit_close_stream_without_use)
(sc_prohibit_getopt_without_use)
(sc_prohibit_quotearg_without_use)
(sc_prohibit_quote_without_use)
(sc_prohibit_long_options_without_use)
(sc_prohibit_inttostr_without_use)
(sc_prohibit_ignore_value_without_use)
(sc_prohibit_error_without_use, sc_prohibit_xalloc_without_use)
(sc_prohibit_hash_without_use, sc_prohibit_cloexec_without_use)
(sc_prohibit_posixver_without_use, sc_prohibit_same_without_use)
(sc_prohibit_hash_pjw_without_use)
(sc_prohibit_safe_read_without_use)
(sc_prohibit_argmatch_without_use)
(sc_prohibit_canonicalize_without_use)
(sc_prohibit_root_dev_ino_without_use)
(sc_prohibit_openat_without_use)
(sc_prohibit_c_ctype_without_use)
(sc_prohibit_signal_without_use)
(sc_prohibit_stdio--_without_use)
(sc_prohibit_stdio-safer_without_use)
(sc_prohibit_strings_without_use)
(sc_prohibit_intprops_without_use)
(sc_prohibit_stddef_without_use)
(sc_prohibit_xfreopen_without_use): Update clients.
2011-06-24 Jim Meyering <meyering@redhat.com>
syntax-check: keep one maint.mk rule in sync with its header
* Makefile (sc_check_sym_list): Add a rule to prevent a repeat
of the bug Eric has just fixed, with today's commit 25e4c2ec.
I prefer to avoid temporary files here, so use <(...), but that
is not supported by /bin/sh, so...
(SHELL): Define to /bin/bash.
2011-06-24 Eric Blake <eblake@redhat.com>
maint.mk: update sc_prohibit_intprops_without_use
* top/maint.mk (_intprops_names): Match recent changes.
2011-06-24 Bruno Haible <bruno@clisp.org>
strerror-override: No-op tweak.
* lib/strerror-override.h (strerror_override): Reorder conditions,
for consistency with lib/strerror-override.c.
2011-06-23 Eric Blake <eblake@redhat.com>
maint.mk: test further PATH_MAX issues
* top/maint.mk (sc_prohibit_path_max_array): Rename...
(sc_prohibit_path_max_allocation): ...and also test alloca.
Suggested by Jim Meyering.
2011-06-22 Eric Blake <eblake@redhat.com>
maint.mk: add syntax-check to avoid char[PATH_MAX]
* top/maint.mk (sc_prohibit_path_max_array): New rule.
stat: be robust to PATH_MAX definition
* lib/stat.c (rpl_stat): Require reasonable PATH_MAX.
* modules/stat (Depends-on): Add verify.
link: work around IRIX bug
* m4/link.m4 (gl_FUNC_LINK): Expose the bug.
* lib/link.c (rpl_link): Work around it.
* tests/test-link.h (test_link): Enhance test.
* doc/posix-functions/link.texi (link): Document the bug.
getopt: silence clang warning
* lib/getopt.c (_getopt_internal_r): Avoid unlikely NULL
dereference.
Reported by Gustavo Martin Domato.
2011-06-22 Jim Meyering <meyering@redhat.com>
bootstrap: do not insert a blank line into each .gitignore file
* build-aux/bootstrap (sort_patterns): Filter out blank lines.
2011-06-21 Eric Blake <eblake@redhat.com>
perror: test for output mismatch
* m4/perror.m4 (gl_FUNC_PERROR): Add test, in order to replace
perror on IRIX.
strerror_r: fix OpenBSD behavior on out-of-range
* lib/strerror_r.c (strerror_r): Always use maximal string.
* doc/posix-functions/strerror_r.texi (strerror_r): Document it.
strerror_r: fix OpenBSD behavior on 0
* lib/strerror-override.c (strerror_override): Also override 0
when needed.
* lib/strerror-override.h (strerror_override): Likewise.
* lib/strerror.c (strerror): Simplify, now that 0 override is done
earlier.
* lib/strerror_r.c (strerror_r): Likewise.
* m4/strerror.m4 (gl_FUNC_STRERROR): Split detection of 0
behavior...
(gl_FUNC_STRERROR_0): ...into new macro.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Replace strerror_r if 0
is overridden.
(gl_FUNC_STRERROR_R_WORKS): Avoid extra tests if 0 is broken.
* modules/strerror-override (Files): Add strerror.m4.
(configure.ac): Also provide override for 0 when needed.
* doc/posix-functions/strerror.texi (strerror): Document this.
* doc/posix-functions/perror.texi (perror): Likewise.
perror: adjust array size
* modules/perror (Depends-on): Add strerror-override.
* lib/perror.c (perror): Use it to avoid magic number.
strerror-override: reduce size
* lib/strerror-override.c (strerror_override): Use fewer lines.
2011-06-20 Bruno Haible <bruno@clisp.org>
pathmax: Ensure correct value for PATH_MAX on HP-UX.
* lib/pathmax.h (PATH_MAX) [HP-UX]: Define to 1024.
2011-06-20 Paul Eggert <eggert@cs.ucla.edu>
alloca: port to compilers that can optimize like GCC 4.6.0
* lib/alloca.c (find_stack_direction): New signature, taken from
Autoconf git. This works with GCC 4.6.0. This code should never
be used with GCC 4.6.0 itself, as GCC has alloca, but it might
be used with other compilers that optimize as well as GCC 4.6.0 does.
(alloca): Adjust to new signature.
* m4/alloca.m4 (__AC_LIBOBJ_ALLOCA) [Autoconf version < 2.69]:
New macro, which patches Autoconf in a similar way.
c-stack: stop worrying about stack direction
* lib/c-stack.c (find_stack_direction): Remove.
(segv_handler): Don't worry about stack direction growth, as it's
too much of a pain to configure this correctly, given how compilers
are optimizing-away our stack-growth detection code. Instead, assume
that any access to just before or just after the stack is OK.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC):
Don't require AC_FUNC_ALLOCA; no longer needed.
2011-06-20 Eric Blake <eblake@redhat.com>
test-stat: don't allocate PATH_MAX bytes
* tests/test-stat.h (test_stat_func): Don't stack-allocate a
PATH_MAX-sized buffer.
* modules/openat-tests (Depends-on): Add getcwd-lgpl, drop pathmax.
* modules/stat-tests (Depends-on): Likewise.
* tests/test-fstatat.c (includes): Drop pathmax.h.
* tests/test-stat.c (includes): Likewise.
Reported by Bruno Haible.
2011-06-20 Bruno Haible <bruno@clisp.org>
float: Work around <float.h> bugs on FreeBSD/x86, AIX with GCC, IRIX.
* lib/float.in.h: Add workarounds for FreeBSD/x86, AIX with GCC, IRIX.
* lib/float.c: New file.
* m4/float_h.m4 (gl_FLOAT_H): Also handle FreeBSD, AIX, IRIX. Set
REPLACE_FLOAT_LDBL.
* modules/float (Files): Add lib/float.c.
(configure.ac): Invoke AC_LIBOBJ.
* doc/posix-headers/float.texi: Mention problems on FreeBSD, AIX, IRIX.
2011-06-20 Bruno Haible <bruno@clisp.org>
Tests for module 'float'.
* modules/float-tests: New file.
* tests/test-float.c: New file.
2011-06-19 Bruno Haible <bruno@clisp.org>
isinf: Coding style.
* lib/isinf.c: Use GNU coding style.
2011-06-19 Bruno Haible <bruno@clisp.org>
linkat test: Avoid test failure on AIX 7.1.
* tests/test-linkat.c (main): Allow EINVAL as alternate error value.
* tests/test-link.h (test_link): Likewise.
2011-06-19 Bruno Haible <bruno@clisp.org>
pread test: Avoid test failure on OpenBSD 4.9.
* tests/test-pread.c (main): Allow EFBIG instead of EINBAL.
2011-06-19 Bruno Haible <bruno@clisp.org>
sprintf-posix: Fix test failure on AIX 7.1.
* m4/printf.m4 (gl_PRINTF_PRECISION): Test against AIX bug.
* doc/posix-functions/dprintf.texi: Mention limited precision problem
on AIX.
* doc/posix-functions/fprintf.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vdprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
2011-06-19 Bruno Haible <bruno@clisp.org>
roundl-ieee: Fix test failure on AIX 7.1.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Test also the sign of roundl (-0.3L).
* doc/posix-functions/roundl.texi: Mention problem with negative
arguments.
2011-06-19 Bruno Haible <bruno@clisp.org>
round-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1.
* modules/round-ieee (Depends-on): Add floor-ieee, ceil-ieee.
* doc/posix-functions/round.texi: Mention problem with negative
arguments.
* doc/posix-functions/ceil.texi: Mention problem on OSF/1 5.1.
2011-06-19 Bruno Haible <bruno@clisp.org>
roundf-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Test also the sign of roundf (-0.3f).
* modules/roundf-ieee (Depends-on): Add floorf-ieee, ceilf-ieee.
* doc/posix-functions/roundf.texi: Mention problem with negative
arguments.
* doc/posix-functions/ceilf.texi: Mention problem on OSF/1 5.1.
2011-06-19 Bruno Haible <bruno@clisp.org>
ceilf-ieee: Work around bug on MacOS X 10.5.
* doc/posix-functions/ceilf.texi: Mention the MacOS X 10.5 problem.
floor*-ieee, ceil*-ieee, trunc*-ieee, round*-ieee: More robust checks.
* m4/floorf.m4 (gl_FUNC_FLOORF): In the test whether the function is
IEEE compliant, avoid compiler optimizations.
* m4/floor.m4 (gl_FUNC_FLOOR): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise.
2011-06-19 Bruno Haible <bruno@clisp.org>
ceilf-ieee: Work around bug on AIX 7.1.
* m4/ceilf.m4 (gl_FUNC_CEILF): Test also the sign of ceilf (-0.3f).
* doc/posix-functions/ceilf.texi: Mention the AIX 7.1 problem.
2011-06-19 Bruno Haible <bruno@clisp.org>
ceil-ieee: Work around bug on AIX 7.1.
* m4/ceil.m4 (gl_FUNC_CEIL): Test also the sign of ceil (-0.3).
* doc/posix-functions/ceil.texi: Mention the AIX 7.1 problem.
2011-06-18 Bruno Haible <bruno@clisp.org>
fsync test: Avoid test failure on MacOS X and AIX.
* tests/test-fsync.c (fsync): Allow ENOTSUP and EBADF instead of
EINVAL.
2011-06-18 Bruno Haible <bruno@clisp.org>
openat, fdopendir tests: Fix link errors.
* modules/openat-tests (Depends-on): Add progname.
* modules/fdopendir-tests (Depends-on): Likewise.
* tests/test-fchownat.c: Include progname.h.
(main): Call set_program_name.
* tests/test-fstatat.c: Include progname.h.
(main): Call set_program_name.
* tests/test-mkdirat.c: Include progname.h.
(main): Call set_program_name.
* tests/test-openat.c: Include progname.h.
(main): Call set_program_name.
* tests/test-unlinkat.c: Include progname.h.
(main): Call set_program_name.
* tests/test-fdopendir.c: Include progname.h.
(main): Call set_program_name.
2011-06-18 Bruno Haible <bruno@clisp.org>
Doc update.
* doc/posix-functions/pthread_attr_getstack.texi: Update info regarding
HP-UX.
* doc/posix-functions/pthread_attr_setstack.texi: Likewise.
2011-06-18 Bruno Haible <bruno@clisp.org>
getcwd tests: Avoid compilation error on HP-UX 11.31.
* modules/getcwd-tests (Depends-on): Add pathmax.
* tests/test-getcwd.c: Include pathmax.h.
2011-06-18 Bruno Haible <bruno@clisp.org>
isfinite, isinf: Fix link error on AIX 6 and 7.
* m4/isfinite.m4 (gl_ISFINITE): When determining whether libm is
needed, also test the macro with a 'float' argument.
* m4/isinf.m4 (gl_ISINF): Likewise.
2011-06-18 Bruno Haible <bruno@clisp.org>
getloadavg: Don't clobber LIBS. Regression from previous commit.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Move tests that use
AC_CHECK_LIB from here...
(gl_GETLOADAVG): ... to here, inside the experiment with LIBS.
(gl_GETLOADAVG, gl_PREREQ_GETLOADAVG): Rename gl_have_func to
gl_func_getloadavg_done.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-06-18 Bruno Haible <bruno@clisp.org>
clean-temp: Improve documentation.
* lib/clean-temp.h: Explain better how to use this module.
Reported by John Darrington <john@darrington.wattle.id.au>.
2011-06-17 Bruno Haible <bruno@clisp.org>
pread, pwrite: Avoid cc warning on AIX.
* lib/unistd.in.h (pread): Undefine before defining as a macro.
(pwrite): Likewise.
2011-06-17 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Fix link error.
* tests/test-spawn-pipe-child.c: Undefine fprintf.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-06-17 Bruno Haible <bruno@clisp.org>
Tests: Remove unnecessary dependency.
* modules/canonicalize-tests (Depends-on): Remove progname.
* modules/chown-tests (Depends-on): Likewise.
* modules/dirname-tests (Depends-on): Likewise.
* modules/fdopendir-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/hash-tests (Depends-on): Likewise.
* modules/lchown-tests (Depends-on): Likewise.
* modules/linkat-tests (Depends-on): Likewise.
* modules/renameat-tests (Depends-on): Likewise.
* modules/spawn-pipe-tests (Depends-on): Likewise.
* modules/utimensat-tests (Depends-on): Likewise.
2011-06-17 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Fix link error.
* tests/test-spawn-pipe-child.c: Undefine fflush.
2011-06-17 Bruno Haible <bruno@clisp.org>
Fix tests link errors.
* modules/ceil-ieee-tests (Makefile.am): Use CEIL_LIBM, not FLOOR_LIBM.
* modules/chown-tests (Makefile.am): Don't link test-chown with
LIBINTL.
* modules/lchown-tests (Makefile.am): Don't link test-lchown with
LIBINTL.
* modules/utimens-tests (Makefile.am): Don't link test-utimens with
LIBINTL.
* modules/futimens-tests (Makefile.am): Don't link test-futimens with
LIBINTL.
2011-06-16 Bruno Haible <bruno@clisp.org>
crypto/gc-sha1: Fix recent regression.
* modules/crypto/gc-sha1 (configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-sha1.m4 (gl_GC_SHA1): Don't invoke gl_SHA1.
crypto/gc-md5: Fix recent regression.
* modules/crypto/gc-md5 (configure.ac): Invoke AC_LIBOBJ here.
crypto/gc-md4: Fix recent regression.
* modules/crypto/gc-md4 (configure.ac): Invoke AC_LIBOBJ here.
* m4/md4.m4 (gl_MD4): Ensure the expansion is non-empty.
crypto/gc-arctwo: Fix recent regression.
* modules/crypto/gc-arctwo (configure.ac): Invoke AC_LIBOBJ here.
* m4/arctwo.m4 (gl_ARCTWO): Ensure the expansion is non-empty.
crypto/gc-rijndael: Fix recent regression.
* modules/crypto/gc-rijndael (Files): Remove m4/rijndael.m4.
(configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-rijndael.m4 (gl_GC_RIJNDAEL): Don't invoke gl_RIJNDAEL.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
crypto/gc-hmac-sha1: Fix recent regression.
* modules/crypto/gc-hmac-sha1 (Files): Remove m4/hmac-sha1.m4.
(configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-hmac-sha1.m4 (gl_GC_HMAC_SHA1): Don't invoke gl_HMAC_SHA1.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
crypto/gc-hmac-md5: Fix recent regression.
* modules/crypto/gc-hmac-md5 (Files): Remove m4/hmac-md5.m4.
(configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-hmac-md5.m4 (gl_GC_HMAC_MD5): Don't invoke gl_HMAC_MD5.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
crypto/gc-des: Fix recent regression.
* modules/crypto/gc-des (Files): Remove m4/des.m4.
(configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-des.m4 (gl_GC_DES): Don't invoke gl_DES.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
crypto/gc-arcfour: Fix recent regression.
* modules/crypto/gc-arcfour (Files): Remove m4/arcfour.m4.
(configure.ac): Invoke AC_LIBOBJ here.
* m4/gc-arcfour.m4 (gl_GC_ARCFOUR): Don't invoke gl_ARCFOUR.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/lstat.m4 (gl_FUNC_LSTAT): Fix typo in prerequisite.
After the 2011-05-21 change, this macro requires
gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, not
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
2011-06-16 Bruno Haible <bruno@clisp.org>
fprintftime: Move AC_LIBOBJ invocations to module description.
* m4/fprintftime.m4: Remove file.
* modules/fprintftime (Files): Remove m4/fprintftime.m4.
(configure.ac): Remove gl_FPRINTFTIME call.
(Makefile.am): Augment lib_SOURCES.
Reported by Jim Meyering.
2011-06-16 Bruno Haible <bruno@clisp.org>
tmpfile-safer: Finish 2011-05-23 commit.
* m4/stdio-safer.m4: Really remove file.
Reported by Jim Meyering.
2011-06-16 Bruno Haible <bruno@clisp.org>
syntax-check: Fix typo.
* Makefile (allow_AC_LIBOBJ): Mention printf-posix-rpl.m4, not
printf-posix.m4.
Reported by Jim Meyering.
2011-06-13 Jim Meyering <meyering@redhat.com>
syntax-check: add a rule to help enforce the no-AC_LIBOBJ-in-m4/ policy
* Makefile (sc_prohibit_AC_LIBOBJ_in_m4): New rule.
2011-05-23 Bruno Haible <bruno@clisp.org>
yesno: Move AC_LIBOBJ invocations to module description.
* m4/yesno.m4 (gl_YESNO): Remove AC_LIBOBJ invocation.
* modules/yesno (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xstrtol: Move AC_LIBOBJ invocations to module description.
* m4/xstrtol.m4 (gl_XSTRTOL): Remove AC_LIBOBJ invocations.
* modules/xstrtol (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xstrtold: Move AC_LIBOBJ invocations to module description.
* m4/xstrtod.m4 (gl_XSTRTOLD): Remove AC_LIBOBJ invocation.
* modules/xstrtold (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xstrtod: Move AC_LIBOBJ invocations to module description.
* m4/xstrtod.m4 (gl_XSTRTOD): Remove AC_LIBOBJ invocation.
* modules/xstrtod (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xnanosleep: Move AC_LIBOBJ invocations to module description.
* m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove AC_LIBOBJ invocation.
* modules/xnanosleep (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xgetcwd: Move AC_LIBOBJ invocations to module description.
* m4/xgetcwd.m4 (gl_XGETCWD): Remove AC_LIBOBJ invocation.
* modules/xgetcwd (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
xalloc: Move AC_LIBOBJ invocations to module description.
* m4/xalloc.m4 (gl_XALLOC): Remove AC_LIBOBJ invocation.
* modules/xalloc (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
write-any-file: Move AC_LIBOBJ invocations to module description.
* m4/write-any-file.m4 (gl_WRITE_ANY_FILE): Remove AC_LIBOBJ
invocation.
* modules/write-any-file (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
utimens: Move AC_LIBOBJ invocations to module description.
* m4/utimens.m4 (gl_UTIMENS): Remove AC_LIBOBJ invocation.
* modules/utimens (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
utimecmp: Move AC_LIBOBJ invocations to module description.
* m4/utimecmp.m4 (gl_UTIMECMP): Remove AC_LIBOBJ invocation.
* modules/utimecmp (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
userspec: Move AC_LIBOBJ invocations to module description.
* m4/userspec.m4 (gl_USERSPEC): Remove AC_LIBOBJ invocation.
* modules/userspec (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
unlinkdir: Move AC_LIBOBJ invocations to module description.
* m4/unlinkdir.m4 (gl_UNLINKDIR): Remove AC_LIBOBJ invocation.
* modules/unlinkdir (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
unistd-safer: Move AC_LIBOBJ invocations to module description.
* m4/unistd-safer.m4 (gl_UNISTD_SAFER): Remove AC_LIBOBJ invocations.
* modules/unistd-safer (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
tempname: Move AC_LIBOBJ invocations to module description.
* m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Remove AC_LIBOBJ invocation.
* modules/tempname (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
strftime: Move AC_LIBOBJ invocations to module description.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Remove AC_LIBOBJ invocation.
* modules/strftime (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
stdlib-safer: Move AC_LIBOBJ invocations to module description.
* m4/stdlib-safer.m4: Remove file.
* modules/stdlib-safer (Files): Remove m4/stdlib-safer.m4.
(configure.ac): Remove gl_STDLIB_SAFER call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
tmpfile-safer: Move AC_LIBOBJ invocations to module description.
* m4/stdio-safer.m4: Remove file.
* modules/tmpfile-safer (Files): Remove m4/stdio-safer.m4.
(configure.ac): Remove gl_TMPFILE_SAFER call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
popen-safer: Move AC_LIBOBJ invocations to module description.
* m4/stdio-safer.m4 (gl_POPEN_SAFER): Remove macro.
* modules/popen-safer (Files): Remove m4/stdio-safer.m4.
(configure.ac): Remove gl_POPEN_SAFER call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
freopen-safer: Move AC_LIBOBJ invocations to module description.
* m4/stdio-safer.m4 (gl_FREOPEN_SAFER): Remove macro.
* modules/freopen-safer (Files): Remove m4/stdio-safer.m4.
(configure.ac): Remove gl_FREOPEN_SAFER call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
fopen-safer: Move AC_LIBOBJ invocations to module description.
* m4/stdio-safer.m4 (gl_FOPEN_SAFER): Remove macro.
* modules/fopen-safer (Files): Remove m4/stdio-safer.m4.
(configure.ac): Remove gl_FOPEN_SAFER call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/sha512: Move AC_LIBOBJ invocations to module description.
* m4/sha512.m4 (gl_SHA512): Remove AC_LIBOBJ invocation.
* modules/crypto/sha512 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/sha256: Move AC_LIBOBJ invocations to module description.
* m4/sha256.m4 (gl_SHA256): Remove AC_LIBOBJ invocation.
* modules/crypto/sha256 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/sha1: Move AC_LIBOBJ invocations to module description.
* m4/sha1.m4 (gl_SHA1): Remove AC_LIBOBJ invocation.
* modules/crypto/sha1 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
settime: Move AC_LIBOBJ invocations to module description.
* m4/settime.m4 (gl_SETTIME): Remove AC_LIBOBJ invocation.
* modules/settime (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
savedir: Move AC_LIBOBJ invocations to module description.
* m4/savedir.m4 (gl_SAVEDIR): Remove AC_LIBOBJ invocation.
* modules/savedir (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
save-cwd: Move AC_LIBOBJ invocations to module description.
* m4/save-cwd.m4 (gl_SAVE_CWD): Remove AC_LIBOBJ invocation.
* modules/save-cwd (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
same: Move AC_LIBOBJ invocations to module description.
* m4/same.m4 (gl_SAME): Remove AC_LIBOBJ invocation.
* modules/same (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
safe-write: Move AC_LIBOBJ invocations to module description.
* m4/safe-write.m4 (gl_SAFE_WRITE): Remove macro.
* modules/safe-write (configure.ac): Invoke gl_PREREQ_SAFE_WRITE
instead of gl_SAFE_WRITE.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
safe-read: Move AC_LIBOBJ invocations to module description.
* m4/safe-read.m4 (gl_SAFE_READ): Remove macro.
* modules/safe-read (configure.ac): Invoke gl_PREREQ_SAFE_READ instead
of gl_SAFE_READ.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
safe-alloc: Move AC_LIBOBJ invocations to module description.
* m4/safe-alloc.m4 (gl_SAFE_ALLOC): Remove AC_LIBOBJ invocation.
* modules/safe-alloc (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/rijndael: Move AC_LIBOBJ invocations to module description.
* m4/rijndael.m4: Remove file.
* modules/crypto/rijndael (Files): Remove it.
(configure.ac): Remove gl_RIJNDAEL call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
readtokens: Move AC_LIBOBJ invocations to module description.
* m4/readtokens.m4 (gl_READTOKENS): Remove AC_LIBOBJ invocation.
* modules/readtokens (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
read-file: Move AC_LIBOBJ invocations to module description.
* m4/read-file.m4 (gl_FUNC_READ_FILE): Remove macro.
* modules/read-file (configure.ac): Invoke gl_PREREQ_READ_FILE instead
of gl_FUNC_READ_FILE.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
quotearg: Move AC_LIBOBJ invocations to module description.
* m4/quotearg.m4 (gl_QUOTEARG): Remove AC_LIBOBJ invocation.
* modules/quotearg (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
quote: Move AC_LIBOBJ invocations to module description.
* m4/quote.m4 (gl_QUOTE): Remove AC_LIBOBJ invocation.
* modules/quote (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
posixver: Move AC_LIBOBJ invocations to module description.
* m4/posixver.m4 (gl_POSIXVER): Remove AC_LIBOBJ invocation.
* modules/posixver (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
posixtm: Move AC_LIBOBJ invocations to module description.
* m4/posixtm.m4 (gl_POSIXTM): Remove AC_LIBOBJ invocation.
* modules/posixtm (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
physmem: Move AC_LIBOBJ invocations to module description.
* m4/physmem.m4 (gl_PHYSMEM): Remove AC_LIBOBJ invocation.
* modules/physmem (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
pagealign_alloc: Move AC_LIBOBJ invocations to module description.
* m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): Remove AC_LIBOBJ
invocation.
* modules/pagealign_alloc (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
mpsort: Move AC_LIBOBJ invocations to module description.
* m4/mpsort.m4 (gl_MPSORT): Remove AC_LIBOBJ invocation.
* modules/mpsort (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
modechange: Move AC_LIBOBJ invocations to module description.
* m4/modechange.m4 (gl_MODECHANGE): Remove AC_LIBOBJ invocation.
* modules/modechange (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
mkdir-p: Move AC_LIBOBJ invocations to module description.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Remove AC_LIBOBJ invocations.
* modules/mkdir-p (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
mkancesdirs: Move AC_LIBOBJ invocations to module description.
* m4/mkancesdirs.m4 (gl_MKANCESDIRS): Remove AC_LIBOBJ invocation.
* modules/mkancesdirs (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
mgetgroups: Move AC_LIBOBJ invocations to module description.
* m4/mgetgroups.m4 (gl_MGETGROUPS): Remove AC_LIBOBJ invocation.
* modules/mgetgroups (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
memxor: Move AC_LIBOBJ invocations to module description.
* m4/memxor.m4 (gl_MEMXOR): Remove AC_LIBOBJ invocation.
* modules/memxor (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
memcoll: Move AC_LIBOBJ invocations to module description.
* m4/memcoll.m4 (gl_MEMCOLL): Remove AC_LIBOBJ invocation.
* modules/memcoll (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
memcasecmp: Move AC_LIBOBJ invocations to module description.
* m4/memcasecmp.m4 (gl_MEMCASECMP): Remove AC_LIBOBJ invocation.
* modules/memcasecmp (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/md5: Move AC_LIBOBJ invocations to module description.
* m4/md5.m4 (gl_MD5): Remove AC_LIBOBJ invocation.
* modules/crypto/md5 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/md4: Move AC_LIBOBJ invocations to module description.
* m4/md4.m4 (gl_MD4): Remove AC_LIBOBJ invocation.
* modules/crypto/md4 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/md2: Move AC_LIBOBJ invocations to module description.
* m4/md2.m4: Remove file.
* modules/crypto/md2 (Files): Remove it.
(configure.ac): Remove gl_MD2 call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
long-options: Move AC_LIBOBJ invocations to module description.
* m4/long-options.m4: Remove file.
* modules/long-options (Files): Remove it.
(configure.ac): Remove gl_LONG_OPTIONS call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
i-ring: Move AC_LIBOBJ invocations to module description.
* m4/i-ring.m4 (gl_I_RING): Remove AC_LIBOBJ invocation.
* modules/i-ring (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
idcache: Move AC_LIBOBJ invocations to module description.
* m4/idcache.m4 (gl_IDCACHE): Remove AC_LIBOBJ invocation.
* modules/idcache (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
human: Move AC_LIBOBJ invocations to module description.
* m4/human.m4 (gl_HUMAN): Remove AC_LIBOBJ invocation.
* modules/human (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/hmac-sha1: Move AC_LIBOBJ invocations to module description.
* m4/hmac-sha1.m4: Remove file.
* modules/crypto/hmac-sha1 (Files): Remove it.
(configure.ac): Remove gl_HMAC_SHA1 call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/hmac-md5: Move AC_LIBOBJ invocations to module description.
* m4/hmac-md5.m4: Remove file.
* modules/crypto/hmac-md5 (Files): Remove it.
(configure.ac): Remove gl_HMAC_MD5 call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
hash: Move AC_LIBOBJ invocations to module description.
* m4/hash.m4: Remove file.
* modules/hash (Files): Remove it.
(configure.ac): Remove gl_HASH call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
hard-locale: Move AC_LIBOBJ invocations to module description.
* m4/hard-locale.m4 (gl_HARD_LOCALE): Remove AC_LIBOBJ invocation.
* modules/hard-locale (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
getugroups: Move AC_LIBOBJ invocations to module description.
* m4/getugroups.m4 (gl_GETUGROUPS): Remove AC_LIBOBJ invocation.
* modules/getugroups (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
gettime: Move AC_LIBOBJ invocations to module description.
* m4/gettime.m4 (gl_GETTIME): Remove AC_LIBOBJ invocation.
* modules/gettime (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
getndelim2: Move AC_LIBOBJ invocations to module description.
* m4/getndelim2.m4 (gl_GETNDELIM2): Remove AC_LIBOBJ invocation.
* modules/getndelim2 (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/gc-pbkdf2-sha1: Move AC_LIBOBJ invocations to module description.
* m4/gc-pbkdf2-sha1.m4: Remove file.
* modules/crypto/gc-pbkdf2-sha1 (Files): Remove it.
(configure.ac): Remove gl_GC_PBKDF2_SHA1 call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
fts: Move AC_LIBOBJ invocations to module description.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Move AC_LIBOBJ invocation from here...
* modules/fts (configure.ac): ... to here.
2011-05-23 Bruno Haible <bruno@clisp.org>
file-type: Move AC_LIBOBJ invocations to module description.
* m4/file-type.m4: Remove file.
* modules/file-type (Files): Remove it.
(configure.ac): Remove gl_FILE_TYPE call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
filenamecat*: Respect rules for use of AC_LIBOBJ.
* m4/filenamecat.m4 (gl_FILE_NAME_CONCAT, gl_FILE_NAME_CONCAT_LGPL):
Remove AC_LIBOBJ invocation.
* modules/filenamecat (Makefile.am): Augment lib_SOURCES.
* modules/filenamecat-lgpl (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
filemode: Move AC_LIBOBJ invocations to module description.
* m4/filemode.m4 (gl_FILEMODE): Remove AC_LIBOBJ invocation.
* modules/filemode (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
openat-safer: Move AC_LIBOBJ invocations to module description.
* m4/fcntl-safer.m4 (gl_OPENAT_SAFER): Remove AC_LIBOBJ invocation.
* modules/openat-safer (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
fcntl-safer: Move AC_LIBOBJ invocations to module description.
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Remove AC_LIBOBJ invocations.
* modules/fcntl-safer (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
exclude: Move AC_LIBOBJ invocations to module description.
* m4/exclude.m4: Remove file.
* modules/exclude (Files): Remove it.
(configure.ac): Remove gl_EXCLUDE call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
dirname*: Respect rules for use of AC_LIBOBJ.
* m4/dirname.m4 (gl_DIRNAME, gl_DIRNAME_LGPL): Remove AC_LIBOBJ
invocations.
* modules/dirname (Makefile.am): Augment lib_SOURCES.
* modules/dirname-lgpl (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
dirent-safer: Move AC_LIBOBJ invocations to module description.
* m4/dirent-safer.m4 (gl_DIRENT_SAFER): Remove AC_LIBOBJ invocation.
* modules/dirent-safer (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/des: Move AC_LIBOBJ invocations to module description.
* m4/des.m4: Remove file.
* modules/crypto/des (Files): Remove it.
(configure.ac): Remove gl_DES call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
cycle-check: Move AC_LIBOBJ invocations to module description.
* m4/cycle-check.m4 (gl_CYCLE_CHECK): Remove AC_LIBOBJ invocation.
* modules/cycle-check (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
c-strtold: Move AC_LIBOBJ invocations to module description.
* m4/c-strtod.m4 (gl_C_STRTOLD): Remove AC_LIBOBJ invocation.
* modules/c-strtold (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
c-strtod: Move AC_LIBOBJ invocations to module description.
* m4/c-strtod.m4 (gl_C_STRTOD): Remove AC_LIBOBJ invocation.
* modules/c-strtod (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crc: Move AC_LIBOBJ invocations to module description.
* m4/crc.m4: Remove file.
* modules/crc (Files): Remove it.
(configure.ac): Remove gl_CRC call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
close-stream: Move AC_LIBOBJ invocations to module description.
* m4/close-stream.m4 (gl_CLOSE_STREAM): Remove AC_LIBOBJ invocation.
* modules/close-stream (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
closeout: Move AC_LIBOBJ invocations to module description.
* m4/closeout.m4 (gl_CLOSEOUT): Remove AC_LIBOBJ invocation.
* modules/closeout (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
closein: Move AC_LIBOBJ invocations to module description.
* m4/closein.m4 (gl_CLOSEIN): Remove AC_LIBOBJ invocation.
* modules/closein (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
cloexec: Move AC_LIBOBJ invocations to module description.
* m4/cloexec.m4: Remove file.
* modules/cloexec (Files): Remove it.
(configure.ac): Remove gl_CLOEXEC call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
check-version: Move AC_LIBOBJ invocations to module description.
* m4/check-version.m4: Remove file.
* modules/check-version (Files): Remove it.
(configure.ac): Remove gl_CHECK_VERSION call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
chdir-safer: Move AC_LIBOBJ invocations to module description.
* m4/chdir-safer.m4 (gl_CHDIR_SAFER): Remove AC_LIBOBJ invocation.
* modules/chdir-safer (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
canonicalize: Move AC_LIBOBJ invocations to module description.
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Remove
AC_LIBOBJ invocation.
* modules/canonicalize (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
canon-host: Move AC_LIBOBJ invocations to module description.
* m4/canon-host.m4 (gl_CANON_HOST): Remove macro.
* modules/canon-host (configure.ac): Invoke gl_PREREQ_CANON_HOST
instead of gl_CANON_HOST.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
backupfile: Move AC_LIBOBJ invocations to module description.
* m4/backupfile.m4 (gl_BACKUPFILE): Remove AC_LIBOBJ invocation.
* modules/backupfile (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
argmatch: Move AC_LIBOBJ invocations to module description.
* m4/argmatch.m4: Remove file.
* modules/argmatch (Files): Remove it.
(configure.ac): Remove gl_ARGMATCH call.
(Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/arctwo: Move AC_LIBOBJ invocations to module description.
* m4/arctwo.m4 (gl_ARCTWO): Remove AC_LIBOBJ invocation.
* modules/crypto/arctwo (Makefile.am): Augment lib_SOURCES.
2011-05-23 Bruno Haible <bruno@clisp.org>
crypto/arcfour: Move AC_LIBOBJ invocations to module description.
* m4/arcfour.m4: Remove file.
* modules/crypto/arcfour (Files): Remove it.
(configure.ac): Remove gl_ARCFOUR call.
(Makefile.am): Augment lib_SOURCES.
2011-05-22 Bruno Haible <bruno@clisp.org>
write: Move AC_LIBOBJ invocations to module description.
* m4/write.m4 (gl_FUNC_WRITE): Move AC_LIBOBJ invocation from here...
* modules/write (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wmemset: Move AC_LIBOBJ invocations to module description.
* m4/wmemset.m4 (gl_FUNC_WMEMSET): Move AC_LIBOBJ invocation from
here...
* modules/wmemset (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wmemmove: Move AC_LIBOBJ invocations to module description.
* m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Move AC_LIBOBJ invocation from
here...
* modules/wmemmove (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wmemcpy: Move AC_LIBOBJ invocations to module description.
* m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Move AC_LIBOBJ invocation from
here...
* modules/wmemcpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wmemcmp: Move AC_LIBOBJ invocations to module description.
* m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Move AC_LIBOBJ invocation from
here...
* modules/wmemcmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wmemchr: Move AC_LIBOBJ invocations to module description.
* m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Move AC_LIBOBJ invocation from
here...
* modules/wmemchr (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcswidth: Move AC_LIBOBJ invocations to module description.
* m4/wcswidth.m4 (gl_FUNC_WCSWIDTH): Move AC_LIBOBJ invocation from
here...
* modules/wcswidth (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcwidth: Respect rules for use of AC_LIBOBJ.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Set HAVE_WCWIDTH. Move AC_LIBOBJ
invocation from here...
* modules/wcwidth (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
wctype: Move AC_LIBOBJ invocations to module description.
* m4/wctype.m4 (gl_FUNC_WCTYPE): Set HAVE_WCTYPE. Move AC_LIBOBJ
invocation from here...
* modules/wctype (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
wctrans: Move AC_LIBOBJ invocations to module description.
* m4/wctrans.m4 (gl_FUNC_WCTRANS): Set HAVE_WCTRANS. Move AC_LIBOBJ
invocation from here...
* modules/wctrans (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wctomb: Move AC_LIBOBJ invocations to module description.
* m4/wctomb.m4 (gl_FUNC_WCTOMB): Move AC_LIBOBJ and gl_PREREQ_WCTOMB
invocations from here...
* modules/wctomb (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wctob: Move AC_LIBOBJ invocations to module description.
* m4/wctob.m4 (gl_FUNC_WCTOB): Set HAVE_WCTOB. Move AC_LIBOBJ and
gl_PREREQ_WCTOB invocations from here...
* modules/wctob (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsxfrm: Move AC_LIBOBJ invocations to module description.
* m4/wcsxfrm.m4 (gl_FUNC_WCSXFRM): Move AC_LIBOBJ invocation from
here...
* modules/wcsxfrm (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcstok: Move AC_LIBOBJ invocations to module description.
* m4/wcstok.m4 (gl_FUNC_WCSTOK): Move AC_LIBOBJ invocation from here...
* modules/wcstok (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsstr: Move AC_LIBOBJ invocations to module description.
* m4/wcsstr.m4 (gl_FUNC_WCSSTR): Move AC_LIBOBJ invocation from here...
* modules/wcsstr (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsspn: Move AC_LIBOBJ invocations to module description.
* m4/wcsspn.m4 (gl_FUNC_WCSSPN): Move AC_LIBOBJ invocation from here...
* modules/wcsspn (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsrtombs: Move AC_LIBOBJ invocations to module description.
* m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): Move AC_LIBOBJ and
gl_PREREQ_WCSRTOMBS invocations from here...
* modules/wcsrtombs (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsrchr: Move AC_LIBOBJ invocations to module description.
* m4/wcsrchr.m4 (gl_FUNC_WCSRCHR): Move AC_LIBOBJ invocation from
here...
* modules/wcsrchr (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcspbrk: Move AC_LIBOBJ invocations to module description.
* m4/wcspbrk.m4 (gl_FUNC_WCSPBRK): Move AC_LIBOBJ invocation from
here...
* modules/wcspbrk (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsnrtombs: Move AC_LIBOBJ invocations to module description.
* m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Move AC_LIBOBJ and
gl_PREREQ_WCSNRTOMBS invocations from here...
* modules/wcsnrtombs (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsnlen: Move AC_LIBOBJ invocations to module description.
* m4/wcsnlen.m4 (gl_FUNC_WCSNLEN): Move AC_LIBOBJ invocation from
here...
* modules/wcsnlen (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsncpy: Move AC_LIBOBJ invocations to module description.
* m4/wcsncpy.m4 (gl_FUNC_WCSNCPY): Move AC_LIBOBJ invocation from
here...
* modules/wcsncpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsncmp: Move AC_LIBOBJ invocations to module description.
* m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Move AC_LIBOBJ invocation from
here...
* modules/wcsncmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsncat: Move AC_LIBOBJ invocations to module description.
* m4/wcsncat.m4 (gl_FUNC_WCSNCAT): Move AC_LIBOBJ invocation from
here...
* modules/wcsncat (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsncasecmp: Move AC_LIBOBJ invocations to module description.
* m4/wcsncasecmp.m4 (gl_FUNC_WCSNCASECMP): Move AC_LIBOBJ invocation
from here...
* modules/wcsncasecmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcslen: Move AC_LIBOBJ invocations to module description.
* m4/wcslen.m4 (gl_FUNC_WCSLEN): Move AC_LIBOBJ invocation from here...
* modules/wcslen (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcsdup: Move AC_LIBOBJ invocations to module description.
* m4/wcsdup.m4 (gl_FUNC_WCSDUP): Move AC_LIBOBJ invocation from here...
* modules/wcsdup (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscspn: Move AC_LIBOBJ invocations to module description.
* m4/wcscspn.m4 (gl_FUNC_WCSCSPN): Move AC_LIBOBJ invocation from
here...
* modules/wcscspn (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscpy: Move AC_LIBOBJ invocations to module description.
* m4/wcscpy.m4 (gl_FUNC_WCSCPY): Move AC_LIBOBJ invocation from here...
* modules/wcscpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscoll: Move AC_LIBOBJ invocations to module description.
* m4/wcscoll.m4 (gl_FUNC_WCSCOLL): Move AC_LIBOBJ invocation from
here...
* modules/wcscoll (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscmp: Move AC_LIBOBJ invocations to module description.
* m4/wcscmp.m4 (gl_FUNC_WCSCMP): Move AC_LIBOBJ invocation from here...
* modules/wcscmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcschr: Move AC_LIBOBJ invocations to module description.
* m4/wcschr.m4 (gl_FUNC_WCSCHR): Move AC_LIBOBJ invocation from here...
* modules/wcschr (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscat: Move AC_LIBOBJ invocations to module description.
* m4/wcscat.m4 (gl_FUNC_WCSCAT): Move AC_LIBOBJ invocation from here...
* modules/wcscat (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcscasecmp: Move AC_LIBOBJ invocations to module description.
* m4/wcscasecmp.m4 (gl_FUNC_WCSCASECMP): Move AC_LIBOBJ invocation from
here...
* modules/wcscasecmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcrtomb: Move AC_LIBOBJ invocations to module description.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Move AC_LIBOBJ and gl_PREREQ_WCRTOMB
invocations from here...
* modules/wcrtomb (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcpncpy: Move AC_LIBOBJ invocations to module description.
* m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Move AC_LIBOBJ invocation from
here...
* modules/wcpncpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
wcpcpy: Move AC_LIBOBJ invocations to module description.
* m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Move AC_LIBOBJ invocation from here...
* modules/wcpcpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
waitpid: Move AC_LIBOBJ invocations to module description.
* m4/waitpid.m4 (gl_FUNC_WAITPID): Set HAVE_WAITPID. Move AC_LIBOBJ
invocation from here...
* modules/waitpid (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
utimensat: Move AC_LIBOBJ invocations to module description.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Move AC_LIBOBJ invocations from
here...
* modules/utimensat (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
usleep: Move AC_LIBOBJ invocations to module description.
* m4/usleep.m4 (gl_FUNC_USLEEP): Move AC_LIBOBJ invocations from
here...
* modules/usleep (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
unlockpt: Move AC_LIBOBJ invocations to module description.
* m4/unlockpt.m4 (gl_FUNC_UNLOCKPT): Move AC_LIBOBJ and
gl_PREREQ_UNLOCKPT invocations from here...
* modules/unlockpt (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
unlink: Respect rules for use of AC_LIBOBJ.
* m4/unlink.m4 (gl_FUNC_UNLINK): Move AC_LIBOBJ invocation from here...
* modules/unlink (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
uname: Move AC_LIBOBJ invocations to module description.
* m4/uname.m4 (gl_FUNC_UNAME): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_UNAME invocations from
here...
* modules/uname (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
ttyname_r: Move AC_LIBOBJ invocations to module description.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Move AC_LIBOBJ and
gl_PREREQ_TTYNAME_R invocations from here...
* modules/ttyname_r (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
tsearch: Move AC_LIBOBJ invocations to module description.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Move AC_LIBOBJ and gl_PREREQ_TSEARCH
invocations from here...
* modules/tsearch (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
towctrans: Move AC_LIBOBJ invocations to module description.
* m4/towctrans.m4 (gl_FUNC_TOWCTRANS): Set HAVE_TOWCTRANS. Move
AC_LIBOBJ invocation from here...
* modules/towctrans (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
tmpfile: Move AC_LIBOBJ invocations to module description.
* m4/tmpfile.m4 (gl_FUNC_TMPFILE): Move AC_LIBOBJ and gl_PREREQ_TMPFILE
invocations from here...
* modules/tmpfile (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
times: Move AC_LIBOBJ invocations to module description.
* m4/times.m4 (gl_FUNC_TIMES): Move AC_LIBOBJ invocation from here...
* modules/times (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
time_r: Move AC_LIBOBJ invocations to module description.
* m4/time_r.m4 (gl_TIME_R): Move AC_LIBOBJ and gl_PREREQ_TIME_R
invocations from here...
* modules/time_r (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
timegm: Move AC_LIBOBJ invocations to module description.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Move AC_LIBOBJ and gl_PREREQ_TIMEGM
invocations from here...
* modules/timegm (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
tcgetsid: Move AC_LIBOBJ invocations to module description.
* m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Set HAVE_TCGETSID. Move AC_LIBOBJ
and gl_PREREQ_TCGETSID invocations from here...
* modules/tcgetsid (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
symlinkat: Move AC_LIBOBJ invocations to module description.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Move AC_LIBOBJ invocation from
here...
* modules/symlinkat (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
symlink: Move AC_LIBOBJ invocations to module description.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Move AC_LIBOBJ invocations from
here...
* modules/symlink (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strverscmp: Move AC_LIBOBJ invocations to module description.
* m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRVERSCMP invocations
from here...
* modules/strverscmp (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtok_r: Move AC_LIBOBJ invocations to module description.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_STRTOK_R. Move AC_LIBOBJ
and gl_PREREQ_STRTOK_R invocations from here...
* modules/strtok_r (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtoumax: Move AC_LIBOBJ invocations to module description.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOUMAX invocations
from here...
* modules/strtoumax (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtoimax: Move AC_LIBOBJ invocations to module description.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOIMAX invocations
from here...
* modules/strtoimax (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtoull: Move AC_LIBOBJ invocations to module description.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOULL invocations
from here...
* modules/strtoull (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtoll: Move AC_LIBOBJ invocations to module description.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOLL invocations from
here...
* modules/strtoll (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtoul: Move AC_LIBOBJ invocations to module description.
* m4/strtoul.m4 (gl_FUNC_STRTOUL): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here...
* modules/strtoul (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtol: Move AC_LIBOBJ invocations to module description.
* m4/strtol.m4 (gl_FUNC_STRTOL): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here...
* modules/strtol (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strtod: Move AC_LIBOBJ invocations to module description.
* m4/strtod.m4 (gl_FUNC_STRTOD): Move AC_LIBOBJ and gl_PREREQ_STRTOD
invocations from here...
* modules/strtod (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strstr*: Move AC_LIBOBJ invocations to module description.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Move AC_LIBOBJ
invocations from here...
* modules/strstr-simple (configure.ac): ... to here.
* modules/strstr (configure.ac): ... and here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strsignal: Move AC_LIBOBJ invocations to module description.
* m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Set HAVE_STRSIGNAL. Move
AC_LIBOBJ and gl_PREREQ_STRSIGNAL invocations from here...
* modules/strsignal (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
strsep: Move AC_LIBOBJ invocations to module description.
* m4/strsep.m4 (gl_FUNC_STRSEP): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRSEP invocations from
here...
* modules/strsep (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strptime: Move AC_LIBOBJ invocations to module description.
* m4/strptime.m4 (gl_FUNC_STRPTIME): Move AC_LIBOBJ and
gl_PREREQ_STRPTIME invocations from here...
* modules/strptime (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strpbrk: Move AC_LIBOBJ invocations to module description.
* m4/strpbrk.m4 (gl_FUNC_STRPBRK): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRPBRK invocations from
here...
* modules/strpbrk (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strnlen: Move AC_LIBOBJ invocations to module description.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Move AC_LIBOBJ and gl_PREREQ_STRNLEN
invocations from here...
* modules/strnlen (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strndup: Move AC_LIBOBJ invocations to module description.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_STRNDUP. Move AC_LIBOBJ
invocations from here...
* modules/strndup (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-22 Bruno Haible <bruno@clisp.org>
strncat: Move AC_LIBOBJ invocations to module description.
* m4/strncat.m4 (gl_FUNC_STRNCAT): Move AC_LIBOBJ and gl_PREREQ_STRNCAT
invocations from here...
* modules/strncat (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strdup, strdup-posix: Move AC_LIBOBJ invocations to module description.
* m4/strdup.m4 (gl_FUNC_STRDUP): Move AC_LIBOBJ and gl_PREREQ_STRDUP
invocations from here...
* modules/strdup (configure.ac): ... to here.
* modules/strdup-posix (configure.ac): ... and here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strcspn: Move AC_LIBOBJ invocations to module description.
* m4/strcspn.m4 (gl_FUNC_STRCSPN): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRCSPN invocations from
here...
* modules/strcspn (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strchrnul: Move AC_LIBOBJ invocations to module description.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Move AC_LIBOBJ and
gl_PREREQ_STRCHRNUL invocations from here...
* modules/strchrnul (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strcasestr*: Move AC_LIBOBJ invocations to module description.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR):
Move AC_LIBOBJ and gl_PREREQ_STRCASESTR invocations from here...
* modules/strcasestr-simple (configure.ac): ... to here.
* modules/strcasestr (configure.ac): ... and here.
2011-05-22 Bruno Haible <bruno@clisp.org>
strcase: Move AC_LIBOBJ invocations to module description.
* m4/strcase.m4 (gl_FUNC_STRNCASECMP): Set HAVE_STRNCASECMP.
(gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Call AC_CHECK_FUNCS instead
of AC_REPLACE_FUNCS. Move AC_LIBOBJ, gl_PREREQ_STRCASECMP,
gl_PREREQ_STRNCASECMP invocations from here...
* modules/strcase (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
stpncpy: Move AC_LIBOBJ invocations to module description.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Move AC_LIBOBJ invocations from
here...
* modules/stpncpy (configure.ac): ... to here.
2011-05-22 Bruno Haible <bruno@clisp.org>
stpcpy: Move AC_LIBOBJ invocations to module description.
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STPCPY invocations from
here...
* modules/stpcpy (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
stat: Move AC_LIBOBJ invocations to module description.
* m4/stat.m4 (gl_PREREQ_STAT): New macro, extracted from gl_FUNC_STAT.
(gl_FUNC_STAT): Move AC_LIBOBJ and gl_PREREQ_STAT invocations from
here...
* modules/stat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
sleep: Move AC_LIBOBJ invocations to module description.
* m4/sleep.m4 (gl_FUNC_SLEEP): Move AC_LIBOBJ invocations from here...
* modules/sleep (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
signbit: Move AC_LIBOBJ invocations to module description.
* m4/signbit.m4 (gl_SIGNBIT): Move AC_LIBOBJ invocations from here...
* modules/signbit (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
sigprocmask: Move AC_LIBOBJ invocations to module description.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Move AC_LIBOBJ and
gl_PREREQ_SIGPROMASK invocations from here...
* modules/sigprocmask (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
sigaction: Move AC_LIBOBJ invocations to module description.
* m4/sigaction.m4 (gl_SIGACTION): Move AC_LIBOBJ and
gl_PREREQ_SIGACTION invocations from here...
* modules/sigaction (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
sig2str: Move AC_LIBOBJ invocations to module description.
* m4/sig2str.m4 (gl_FUNC_SIG2STR): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_SIG2STR invocations from
here...
* modules/sig2str (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
setlocale: Move AC_LIBOBJ invocations to module description.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Move AC_LIBOBJ and
gl_PREREQ_SETLOCALE invocations from here...
* modules/setlocale (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
unsetenv: Move AC_LIBOBJ invocations to module description.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Set HAVE_UNSETENV. Move AC_LIBOBJ
and gl_PREREQ_UNSETENV invocations from here...
* modules/unsetenv (configure.ac): ... to here.
(Depends-on): Update.
2011-05-21 Bruno Haible <bruno@clisp.org>
setenv: Move AC_LIBOBJ invocations to module description.
* m4/setenv.m4 (gl_FUNC_SETENV): Move AC_LIBOBJ invocations from
here...
* modules/setenv (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
selinux-h: Move AC_LIBOBJ invocations to module description.
* m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Move
AC_LIBOBJ invocation from here...
* modules/selinux-h (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
select: Respect rules for use of AC_LIBOBJ.
* m4/select.m4 (gl_FUNC_SELECT): Move AC_LIBOBJ invocations from
here...
* modules/select (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
scandir: Move AC_LIBOBJ invocations to module description.
* m4/scandir.m4 (gl_FUNC_SCANDIR): Move AC_LIBOBJ and gl_PREREQ_SCANDIR
invocations from here...
* modules/scandir (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
rpmatch: Move AC_LIBOBJ invocations to module description.
* m4/rpmatch.m4 (gl_FUNC_RPMATCH): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RPMATCH invocations from
here...
* modules/rpmatch (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
rmdir: Respect rules for use of AC_LIBOBJ.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Move AC_LIBOBJ invocation from here...
* modules/rmdir (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
renameat: Move AC_LIBOBJ invocations to module description.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Move AC_LIBOBJ invocations from
here...
* modules/renameat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
rename: Respect rules for use of AC_LIBOBJ.
* m4/rename.m4 (gl_FUNC_RENAME): Move AC_LIBOBJ invocations from
here...
* modules/rename (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
remove: Move AC_LIBOBJ invocations to module description.
* m4/remove.m4 (gl_FUNC_REMOVE): Move AC_LIBOBJ invocations from
here...
* modules/remove (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
relocatable-lib: Move AC_LIBOBJ invocations to module description.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_SEPARATE): Remove
macro.
(gl_RELOCATABLE_LIBRARY): Move AC_LIBOBJ invocation from here...
* modules/relocatable-lib (configure.ac): ... to here.
* modules/relocatable-prog-wrapper (configure.ac): Invoke
gl_RELOCATABLE_LIBRARY instead of gl_RELOCATABLE_LIBRARY_SEPARATE.
2011-05-21 Bruno Haible <bruno@clisp.org>
relocatable-prog: Move AC_LIBOBJ invocations to module description.
* m4/relocatable.m4 (gl_RELOCATABLE): Move AC_LIBOBJ invocation from
here...
* modules/relocatable-prog (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
regex: Move AC_LIBOBJ invocations to module description.
* m4/regex.m4 (gl_REGEX): Move AC_LIBOBJ and gl_PREREQ_REGEX
invocations from here...
* modules/regex (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
realloc-*: Move AC_LIBOBJ invocations to module description.
* m4/realloc.m4 (gl_REPLACE_REALLOC): Remove macro.
(gl_FUNC_REALLOC_GNU, gl_FUNC_REALLOC_POSIX): Inline it here. Move
AC_LIBOBJ invocations from here...
* modules/realloc-gnu (configure.ac): ... to here.
* modules/realloc-posix (configure.ac): ... and here.
2011-05-21 Bruno Haible <bruno@clisp.org>
readutmp: Move AC_LIBOBJ invocations to module description.
* m4/readutmp.m4 (gl_READUTMP): Move AC_LIBOBJ invocation from here...
* modules/readutmp (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
readlinkat: Move AC_LIBOBJ invocations to module description.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Move AC_LIBOBJ invocation from
here...
* modules/readlinkat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
readlink: Move AC_LIBOBJ invocations to module description.
* m4/readlink.m4 (gl_FUNC_READLINK): Move AC_LIBOBJ and
gl_PREREQ_READLINK invocations from here...
* modules/readlink (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
readline: Move AC_LIBOBJ invocations to module description.
* m4/readline.m4 (gl_FUNC_READLINE): Move AC_LIBOBJ and
gl_PREREQ_READLINE invocations from here...
* modules/readline (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
read: Move AC_LIBOBJ invocations to module description.
* m4/read.m4 (gl_FUNC_READ): Move AC_LIBOBJ invocation from here...
* modules/read (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
rawmemchr: Move AC_LIBOBJ invocations to module description.
* m4/rawmemchr.m4 (gl_FUNC_RAWMEMCHR): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RAWMEMCHR invocations
from here...
* modules/rawmemchr (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
random_r: Move AC_LIBOBJ invocations to module description.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Move AC_LIBOBJ and
gl_PREREQ_RANDOM_R invocations from here...
* modules/random_r (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
pwrite: Move AC_LIBOBJ invocations to module description.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Move AC_LIBOBJ invocation from here...
* modules/pwrite (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
putenv: Move AC_LIBOBJ invocations to module description.
* m4/putenv.m4 (gl_FUNC_PUTENV): Move AC_LIBOBJ invocation from here...
* modules/putenv (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
login_tty: Move AC_LIBOBJ invocations to module description.
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Move AC_LIBOBJ invocation from here...
* modules/login_tty (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
openpty: Move AC_LIBOBJ invocations to module description.
* m4/pty.m4 (gl_FUNC_OPENPTY): Move AC_LIBOBJ invocations from here...
* modules/openpty (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
forkpty: Move AC_LIBOBJ invocations to module description.
* m4/pty.m4 (gl_FUNC_FORKPTY): Move AC_LIBOBJ invocations from here...
* modules/forkpty (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
ptsname: Move AC_LIBOBJ invocations to module description.
* m4/ptsname.m4 (gl_FUNC_PTSNAME): Move AC_LIBOBJ and gl_PREREQ_PTSNAME
invocations from here...
* modules/ptsname (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
pread: Move AC_LIBOBJ invocations to module description.
* m4/pread.m4 (gl_FUNC_PREAD): Move AC_LIBOBJ invocation from here...
* modules/pread (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
posix_spawn*: Move AC_LIBOBJ invocations to module description.
* m4/posix_spawn.m4 (gl_PREREQ_POSIX_SPAWN_INTERNAL): Renamed from
gl_POSIX_SPAWN_INTERNAL. Move AC_LIBOBJ invocation from here...
* modules/posix_spawn (configure.ac): ... to here.
* modules/posix_spawnp (configure.ac): ... and here.
2011-05-21 Bruno Haible <bruno@clisp.org>
popen: Move AC_LIBOBJ invocations to module description.
* m4/popen.m4 (gl_FUNC_POPEN): Move AC_LIBOBJ and gl_PREREQ_POPEN
invocations from here...
* modules/popen (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
poll: Move AC_LIBOBJ invocations to module description.
* m4/poll.m4 (gl_FUNC_POLL): Move AC_LIBOBJ and gl_PREREQ_POLL
invocations from here...
* modules/poll (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
pipe-posix: Move AC_LIBOBJ invocations to module description.
* m4/pipe.m4 (gl_FUNC_PIPE): Move AC_LIBOBJ invocation from here...
* modules/pipe-posix (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
openat: Respect rules for use of AC_LIBOBJ.
* m4/openat.m4 (gl_FUNC_OPENAT): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here...
* modules/openat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
obstack-printf*: Move AC_LIBOBJ invocations to module description.
* m4/obstack-printf.m4 (gl_REPLACE_OBSTACK_PRINTF): Move AC_LIBOBJ
invocation from here...
* modules/obstack-printf (configure.ac): ... to here.
* modules/obstack-printf-posix (configure.ac): ... and here.
2011-05-21 Bruno Haible <bruno@clisp.org>
nl_langinfo: Move AC_LIBOBJ invocations to module description.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Move AC_LIBOBJ invocations
from here...
* modules/nl_langinfo (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
nanosleep: Move AC_LIBOBJ invocations to module description.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Move AC_LIBOBJ and
gl_PREREQ_NANOSLEEP invocations from here...
* modules/nanosleep (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mountlist: Move AC_LIBOBJ invocations to module description.
* m4/mountlist.m4 (gl_MOUNTLIST): Move AC_LIBOBJ and
gl_PREREQ_MOUNTLIST_EXTRA invocations from here...
* modules/mountlist (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mktime: Respect rules for use of AC_LIBOBJ.
* m4/mktime.m4 (AC_FUNC_MKTIME): Remove macro.
(gl_FUNC_MKTIME): Inline it here. Set gl_cv_func_working_mktime. Move
AC_LIBOBJ and gl_PREREQ_MKTIME invocations from here...
(gl_FUNC_MKTIME_INTERNAL): ... and here...
* modules/mktime (configure.ac): ... to here.
* modules/mktime-internal (configure.ac): ... and here.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Update.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkstemps: Move AC_LIBOBJ invocations to module description.
* m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Move AC_LIBOBJ invocation from
here...
* modules/mkstemps (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkstemp: Move AC_LIBOBJ invocations to module description.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Move AC_LIBOBJ and
gl_PREREQ_MKSTEMP invocations from here...
* modules/mkstemp (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkostemps: Move AC_LIBOBJ invocations to module description.
* m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Move AC_LIBOBJ invocation from
here...
* modules/mkostemps (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkostemp: Move AC_LIBOBJ invocations to module description.
* m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Move AC_LIBOBJ and
gl_PREREQ_MKOSTEMP invocations from here...
* modules/mkostemp (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mknod: Move AC_LIBOBJ invocations to module description.
* m4/mknod.m4 (gl_FUNC_MKNOD): Move AC_LIBOBJ invocations from here...
* modules/mknod (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkfifoat: Move AC_LIBOBJ invocations to module description.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Move AC_LIBOBJ invocations from
here...
* modules/mkfifoat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkfifo: Respect rules for use of AC_LIBOBJ.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Move AC_LIBOBJ invocations from
here...
* modules/mkfifo (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkdtemp: Move AC_LIBOBJ invocations to module description.
* m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Move AC_LIBOBJ and gl_PREREQ_MKDTEMP
invocations from here...
* modules/mkdtemp (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkdir: Move AC_LIBOBJ invocations to module description.
* m4/mkdir.m4 (gl_FUNC_MKDIR): Move AC_LIBOBJ invocations from here...
* modules/mkdir (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memset: Move AC_LIBOBJ invocations to module description.
* m4/memset.m4 (gl_FUNC_MEMSET): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMSET invocations from
here...
* modules/memset (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memrchr: Move AC_LIBOBJ invocations to module description.
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMRCHR invocations from
here...
* modules/memrchr (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mempcpy: Move AC_LIBOBJ invocations to module description.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMPCPY invocations from
here...
* modules/mempcpy (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memmove: Move AC_LIBOBJ invocations to module description.
* m4/memmove.m4 (gl_FUNC_MEMMOVE): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMMOVE invocations from
here...
* modules/memmove (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memmem*: Move AC_LIBOBJ invocations to module description.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Set HAVE_MEMMEM. Move AC_LIBOBJ invocations from
here...
(gl_FUNC_MEMMEM): ... and here...
* modules/memmem-simple (configure.ac): ... to here.
* modules/memmem (configure.ac): ... and here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memcpy: Move AC_LIBOBJ invocations to module description.
* m4/memcpy.m4 (gl_FUNC_MEMCPY): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMCPY invocations from
here...
* modules/memcpy (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
memcmp: Simplify autoconf macro.
* m4/memcmp.m4 (gl_FUNC_MEMCMP): Merge the cross-compilation code into
the AC_RUN_IFELSE invocation. Set gl_func_memcmp.
* modules/memcmp (Depends-on, configure.ac): Test gl_func_memcmp.
2011-05-21 Bruno Haible <bruno@clisp.org>
memcmp: Move AC_LIBOBJ invocations to module description.
* m4/memcmp.m4 (AC_FUNC_MEMCMP): Remove macro.
(gl_FUNC_MEMCMP): Inline it here. Set gl_cv_func_memcmp_working. Move
AC_LIBOBJ and gl_PREREQ_MEMCMP invocations from here...
* modules/memcmp (configure.ac): ... to here.
(Depends-on): Update conditions.
2011-05-21 Bruno Haible <bruno@clisp.org>
memchr: Respect rules for use of AC_LIBOBJ.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Move AC_LIBOBJ and gl_PREREQ_MEMCHR
invocations from here...
* modules/memchr (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbtowc: Move AC_LIBOBJ invocations to module description.
* m4/mbtowc.m4 (gl_FUNC_MBTOWC): Move AC_LIBOBJ and gl_PREREQ_MBTOWC
invocations from here...
* modules/mbtowc (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbsrtowcs: Move AC_LIBOBJ invocations to module description.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Move AC_LIBOBJ and
gl_PREREQ_MBSRTOWCS invocations from here...
* modules/mbsrtowcs (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbsnrtowcs: Move AC_LIBOBJ invocations to module description.
* m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Move AC_LIBOBJ and
gl_PREREQ_MBSNRTOWCS invocations from here...
* modules/mbsnrtowcs (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbsinit: Move AC_LIBOBJ invocations to module description.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Move AC_LIBOBJ and gl_PREREQ_MBSINIT
invocations from here...
* modules/mbsinit (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbrlen: Move AC_LIBOBJ invocations to module description.
* m4/mbrlen.m4 (gl_FUNC_MBRLEN): Move AC_LIBOBJ and gl_PREREQ_MBRLEN
invocations from here...
* modules/mbrlen (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
mbrtowc: Respect rules for use of AC_LIBOBJ.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Move AC_LIBOBJ and gl_PREREQ_MBRTOWC
invocations from here...
* modules/mbrtowc (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
malloc-*: Move AC_LIBOBJ invocations to module description.
* m4/malloc.m4 (gl_REPLACE_MALLOC): Remove macro.
(gl_FUNC_MALLOC_GNU, gl_FUNC_MALLOC_POSIX): Inline it here. Move
AC_LIBOBJ invocations from here...
* modules/malloc-gnu (configure.ac): ... to here.
* modules/malloc-posix (configure.ac): ... and here.
2011-05-21 Bruno Haible <bruno@clisp.org>
lstat, openat: Respect rules for use of AC_LIBOBJ.
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Renamed from
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Set variable
gl_cv_func_lstat_dereferences_slashed_symlink. Don't invoke AC_LIBOBJ.
(gl_PREREQ_LSTAT): New macro, extracted from gl_FUNC_LSTAT.
(gl_FUNC_LSTAT): Update. Remove gl_PREREQ_LSTAT code.
* modules/lstat (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_LSTAT
here.
* m4/openat.m4 (gl_FUNC_OPENAT): Update.
2011-05-21 Bruno Haible <bruno@clisp.org>
lseek: Move AC_LIBOBJ invocations to module description.
* m4/lseek.m4 (gl_REPLACE_LSEEK): Remove macro.
(gl_FUNC_LSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
* modules/lseek (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
linkat: Move AC_LIBOBJ invocations to module description.
* m4/linkat.m4 (gl_FUNC_LINKAT): Move AC_LIBOBJ invocations from
here...
* modules/linkat (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
link: Respect rules for use of AC_LIBOBJ.
* m4/link.m4 (gl_FUNC_LINK): Move AC_LIBOBJ invocations from here...
* modules/link (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
lchown: Move AC_LIBOBJ invocations to module description.
* m4/lchown.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here...
* modules/lchown (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
iswctype: Move AC_LIBOBJ invocations to module description.
* m4/iswctype.m4 (gl_FUNC_ISWCTYPE): Move AC_LIBOBJ invocation from
here...
* modules/iswctype (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
iswblank: Move AC_LIBOBJ invocations to module description.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Move AC_LIBOBJ invocation from
here...
* modules/iswblank (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
atanl: Move AC_LIBOBJ invocations to module description.
* m4/atanl.m4 (gl_FUNC_ATANL): Move AC_LIBOBJ invocation from here...
* modules/atanl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
acosl: Move AC_LIBOBJ invocations to module description.
* m4/acosl.m4 (gl_FUNC_ACOSL): Move AC_LIBOBJ invocation from here...
* modules/acosl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
asinl: Respect rules for use of AC_LIBOBJ.
* m4/asinl.m4 (gl_FUNC_ASINL): Move AC_LIBOBJ invocation from here...
* modules/asinl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
tanl: Move AC_LIBOBJ invocations to module description.
* m4/tanl.m4 (gl_FUNC_TANL): Move AC_LIBOBJ invocations from here...
* modules/tanl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
cosl: Move AC_LIBOBJ invocations to module description.
* m4/cosl.m4 (gl_FUNC_COSL): Move AC_LIBOBJ invocations from here...
* modules/cosl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
sinl: Move AC_LIBOBJ invocations to module description.
* m4/sinl.m4 (gl_FUNC_SINL): Move AC_LIBOBJ invocations from here...
* modules/sinl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
logl: Move AC_LIBOBJ invocations to module description.
* m4/logl.m4 (gl_FUNC_LOGL): Move AC_LIBOBJ invocation from here...
* modules/logl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
expl: Move AC_LIBOBJ invocations to module description.
* m4/expl.m4 (gl_FUNC_EXPL): Move AC_LIBOBJ invocation from here...
* modules/expl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
roundl: Move AC_LIBOBJ invocations to module description.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Move AC_LIBOBJ invocation from here...
* modules/roundl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
round: Move AC_LIBOBJ invocations to module description.
* m4/round.m4 (gl_FUNC_ROUND): Move AC_LIBOBJ invocation from here...
* modules/round (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
roundf: Move AC_LIBOBJ invocations to module description.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Move AC_LIBOBJ invocation from here...
* modules/roundf (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
truncl: Move AC_LIBOBJ invocations to module description.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Move AC_LIBOBJ invocation from here...
* modules/truncl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
trunc: Move AC_LIBOBJ invocations to module description.
* m4/trunc.m4 (gl_FUNC_TRUNC): Move AC_LIBOBJ invocation from here...
* modules/trunc (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
truncf: Move AC_LIBOBJ invocations to module description.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Move AC_LIBOBJ invocation from here...
* modules/truncf (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
ceill: Move AC_LIBOBJ invocations to module description.
* m4/ceill.m4 (gl_FUNC_CEILL): Move AC_LIBOBJ invocation from here...
* modules/ceill (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
ceil: Move AC_LIBOBJ invocations to module description.
* m4/ceil.m4 (gl_FUNC_CEIL): Move AC_LIBOBJ invocation from here...
* modules/ceil (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
ceilf: Move AC_LIBOBJ invocations to module description.
* m4/ceilf.m4 (gl_FUNC_CEILF): Move AC_LIBOBJ invocation from here...
* modules/ceilf (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
floorl: Respect rules for use of AC_LIBOBJ.
* m4/floorl.m4 (gl_FUNC_FLOORL): Move AC_LIBOBJ invocation from here...
* modules/floorl (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
floor: Respect rules for use of AC_LIBOBJ.
* m4/floor.m4 (gl_FUNC_FLOOR): Move AC_LIBOBJ invocation from here...
* modules/floor (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
floorf: Move AC_LIBOBJ invocations to module description.
* m4/floorf.m4 (gl_FUNC_FLOORF): Move AC_LIBOBJ invocation from here...
* modules/floorf (configure.ac): ... to here.
2011-05-20 Bruno Haible <bruno@clisp.org>
sqrtl: Respect rules for use of AC_LIBOBJ.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Move AC_LIBOBJ invocation from here...
* modules/sqrtl (configure.ac): ... to here.
2011-05-20 Bruno Haible <bruno@clisp.org>
ldexpl: Respect rules for use of AC_LIBOBJ.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Move AC_LIBOBJ invocation from here...
* modules/ldexpl (configure.ac): ... to here.
2011-05-20 Bruno Haible <bruno@clisp.org>
frexpl*: Respect rules for use of AC_LIBOBJ.
* m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Move AC_LIBOBJ
invocation from here...
* modules/frexpl (configure.ac): ... to here.
* modules/frexpl-nolibm (configure.ac): ... and here.
2011-05-20 Bruno Haible <bruno@clisp.org>
frexp, frexp-nolibm: Move AC_LIBOBJ invocations to module description.
* m4/frexp.m4 (gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Move AC_LIBOBJ
invocation from here...
* modules/frexp (configure.ac): ... to here.
* modules/frexp-nolibm (configure.ac): ... and here.
2011-05-20 Bruno Haible <bruno@clisp.org>
isnan: Respect rules for use of AC_LIBOBJ.
* m4/isnan.m4 (gl_ISNAN): Don't do the AC_LIBOBJ and gl_PREREQ_ISNAN*
invocations here.
* modules/isnanf (configure.ac): Require gl_ISNAN if it exists. Test
REPLACE_ISNAN.
* modules/isnand (configure.ac): Likewise.
* modules/isnanl (configure.ac): Likewise.
2011-05-20 Bruno Haible <bruno@clisp.org>
isnanl*: Respect rules for use of AC_LIBOBJ.
* m4/isnanl.m4 (gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Move AC_LIBOBJ
invocation from here...
* modules/isnanl (configure.ac): ... to here.
* modules/isnanl-nolibm (configure.ac): ... and here.
2011-05-20 Bruno Haible <bruno@clisp.org>
isnand*: Move AC_LIBOBJ invocations to module description.
* m4/isnand.m4 (gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Move AC_LIBOBJ
invocation from here...
* modules/isnand (configure.ac): ... to here.
* modules/isnand-nolibm (configure.ac): ... and here.
2011-05-20 Bruno Haible <bruno@clisp.org>
isnanf*: Move AC_LIBOBJ invocations to module description.
* m4/isnanf.m4 (gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Move AC_LIBOBJ
invocation from here...
* modules/isnanf (configure.ac): ... to here.
* modules/isnanf-nolibm (configure.ac): ... and here.
2011-05-20 Bruno Haible <bruno@clisp.org>
isnan*: Separate the AC_LIBOBJ invocations.
* m4/isnanf.m4 (gl_PREREQ_ISNANF): Renamed from gl_BUILD_ISNANF. Remove
AC_LIBOBJ invocation.
(gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Update. Invoke AC_LIBOBJ
here.
* m4/isnand.m4 (gl_PREREQ_ISNAND): Renamed from gl_BUILD_ISNAND. Remove
AC_LIBOBJ invocation.
(gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Update. Invoke AC_LIBOBJ
here.
* m4/isnanl.m4 (gl_PREREQ_ISNANL): Renamed from gl_BUILD_ISNANL. Remove
AC_LIBOBJ invocation.
(gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Update. Invoke AC_LIBOBJ
here.
* m4/isnan.m4 (gl_ISNAN): Update. Invoke AC_LIBOBJ here.
2011-05-08 Bruno Haible <bruno@clisp.org>
isinf: Move AC_LIBOBJ invocations to module description.
* m4/isinf.m4 (gl_ISINF): Move AC_LIBOBJ invocation from here...
* modules/isinf (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
isfinite: Move AC_LIBOBJ invocations to module description.
* m4/isfinite.m4 (gl_ISFINITE): Move AC_LIBOBJ invocation from here...
* modules/isfinite (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
isblank: Move AC_LIBOBJ invocations to module description.
* m4/isblank.m4 (gl_FUNC_ISBLANK): Move AC_LIBOBJ invocation from
here...
* modules/isblank (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
isapipe: Move AC_LIBOBJ invocations to module description.
* m4/isapipe.m4 (gl_ISAPIPE): Set HAVE_ISAPIPE. Move AC_LIBOBJ and
gl_PREREQ_ISAPIPE invocations from here...
* modules/isapipe (configure.ac): ... to here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
ioctl: Move AC_LIBOBJ invocations to module description.
* m4/ioctl.m4 (gl_FUNC_IOCTL): Set HAVE_IOCTL. Move AC_LIBOBJ
invocations from here...
* modules/ioctl (configure.ac): ... to here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
imaxdiv: Move AC_LIBOBJ invocations to module description.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Move AC_LIBOBJ and gl_PREREQ_IMAXDIV
invocations from here...
* modules/imaxdiv (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
imaxabs: Move AC_LIBOBJ invocations to module description.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Move AC_LIBOBJ and gl_PREREQ_IMAXABS
invocations from here...
* modules/imaxabs (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getaddrinfo: Move AC_LIBOBJ invocations to module description.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Set HAVE_GETADDRINFO, Move
AC_LIBOBJ invocations from here...
* modules/getaddrinfo (configure.ac): ... to here.
(Depends-on): Add conditions.
2011-05-08 Bruno Haible <bruno@clisp.org>
inet_pton. getaddrinfo: Respect rules for use of AC_LIBOBJ.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Set HAVE_INET_PTON. Call
AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke
gl_PREREQ_INET_PTON. Move tests for declaration of inet_pton here...
(gl_PREREQ_INET_PTON): ... from here.
* modules/inet_pton (configure.ac): Invoke AC_LIBOBJ and
gl_PREREQ_INET_PTON here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
inet_ntop. getaddrinfo: Respect rules for use of AC_LIBOBJ.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Set HAVE_INET_NTOP. Call
AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke
gl_PREREQ_INET_NTOP. Move tests for declaration of inet_ntop here...
(gl_PREREQ_INET_NTOP): ... from here.
* modules/inet_ntop (configure.ac): Invoke AC_LIBOBJ and
gl_PREREQ_INET_NTOP here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
iconv_open: Move AC_LIBOBJ invocations to module description.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN, gl_REPLACE_ICONV_OPEN): Move
AC_LIBOBJ invocations from here...
* modules/iconv_open (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
iconv_open, iconv_open-utf: Respect rules for use of AC_LIBOBJ.
If module 'iconv_open' is among the main modules and module
'iconv_open-utf' is among the tests dependencies, then
REPLACE_ICONV_UTF will be defined to 1, hence iconv_open() in lib may
return the special iconv_t values. Therefore iconv() and iconv_close()
must support these special iconv_t values, already in lib, not only in
tests.
* m4/iconv_open-utf.m4: New file, extracted from m4/iconv_open.m4.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Invoke
gl_FUNC_ICONV_OPEN_UTF_SUPPORT if present.
(gl_FUNC_ICONV_OPEN_UTF): Remove macro.
* modules/iconv_open (Files): Add lib/iconv.c, lib/iconv_close.c.
(Depends-on): Add the dependencies of iconv_open-utf.
* modules/iconv_open-utf (Files): Add m4/iconv_open-utf.m4. Remove
m4/iconv_open.m4, lib/iconv.c, lib/iconv_close.c.
(Depends-on): Remove modules needed by lib/iconv.c, lib/iconv_close.c.
2011-05-08 Bruno Haible <bruno@clisp.org>
group-member: Move AC_LIBOBJ invocations to module description.
* m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Move AC_LIBOBJ and
gl_PREREQ_GROUP_MEMBER invocations from here...
* modules/group-member (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
grantpt: Move AC_LIBOBJ invocations to module description.
* m4/grantpt.m4 (gl_FUNC_GRANTPT): Move AC_LIBOBJ and gl_PREREQ_GRANTPT
invocations from here...
* modules/grantpt (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
glob: Move AC_LIBOBJ invocations to module description.
* m4/glob.m4 (gl_GLOB): Move AC_LIBOBJ and gl_PREREQ_GLOB invocations
from here...
* modules/glob (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getusershell: Move AC_LIBOBJ invocations to module description.
* m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Set HAVE_GETUSERSHELL.
Move AC_LIBOBJ invocation from here...
* modules/getusershell (configure.ac): ... to here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
gettimeofday: Move AC_LIBOBJ invocations to module description.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY,
gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Move AC_LIBOBJ and
gl_PREREQ_GETTIMEOFDAY invocations from here...
* modules/gettimeofday (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
gettimeofday, tzset: Respect rules for use of AC_LIBOBJ.
* modules/tzset (configure.ac): Don't invoke gl_FUNC_TZSET_CLOBBER,
just gl_FUNC_TZSET.
* m4/tzset.m4 (gl_FUNC_TZSET): New macro.
(gl_FUNC_TZSET_CLOBBER): Remove actions.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Invoke
gl_FUNC_TZSET_CLOBBER and its actions here, if present.
2011-05-08 Bruno Haible <bruno@clisp.org>
getsubopt: Move AC_LIBOBJ invocations to module description.
* m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Move AC_LIBOBJ and
gl_PREREQ_GETSUBOPT invocations from here...
* modules/getsubopt (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getpass-gnu: Move AC_LIBOBJ invocations to module description.
* m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Set REPLACE_GETPASS. Move
AC_LIBOBJ and gl_PREREQ_GETPASS invocations from here...
* modules/getpass-gnu (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getpass: Move AC_LIBOBJ invocations to module description.
* m4/getpass.m4 (gl_FUNC_GETPASS): Set HAVE_GETPASS. Move AC_LIBOBJ and
gl_PREREQ_GETPASS invocations from here...
* modules/getpass (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getpagesize: Move AC_LIBOBJ invocations to module description.
* m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Move AC_LIBOBJ invocation
from here...
* modules/getpagesize (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getopt: Move AC_LIBOBJ invocations to module description.
* m4/getopt.m4 (gl_REPLACE_GETOPT): Remove macro.
(gl_FUNC_GETOPT): Inline it here. Move AC_LIBOBJ and gl_PREREQ_GETOPT
invocations from here...
* modules/getopt-gnu (configure.ac): ... to here.
* modules/getopt-posix (configure.ac): ... and here.
(Depends-on): Update condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
getopt, argp: Respect rules for use of AC_LIBOBJ.
* m4/argp.m4 (gl_ARGP): Don't invoke gl_REPLACE_GETOPT.
(gl_REPLACE_GETOPT_ALWAYS): New macro.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Test whether
gl_REPLACE_GETOPT_ALWAYS is defined. Set REPLACE_GETOPT.
2011-05-08 Bruno Haible <bruno@clisp.org>
getlogin_r: Move AC_LIBOBJ invocations to module description.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Move AC_LIBOBJ and
gl_PREREQ_GETLOGIN_R invocations from here...
* modules/getlogin_r (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getlogin: Move AC_LIBOBJ invocations to module description.
* m4/getlogin.m4 (gl_FUNC_GETLOGIN): Move AC_LIBOBJ invocation from
here...
* modules/getlogin (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getloadavg: Move AC_LIBOBJ invocations to module description.
* m4/getloadavg.m4 (gl_FUNC_GETDELIM): Set HAVE_GETLOADAVG. Move
AC_LIBOBJ and gl_PREREQ_GETLOADAVG invocations from here...
* modules/getloadavg (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
gethrxtime: Move AC_LIBOBJ invocations to module description.
* m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Move code that determines
LIB_GETHRXTIME from here...
(gl_GETHRXTIME): ... to here. Move AC_LIBOBJ and gl_PREREQ_GETHRXTIME
invocations from here...
* modules/gethrxtime (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
gethostname: Move AC_LIBOBJ invocations to module description.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Move AC_LIBOBJ and
gl_PREREQ_GETHOSTNAME invocations from here...
* modules/gethostname (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getgroups: Move AC_LIBOBJ invocations to module description.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Move AC_LIBOBJ invocations from
here...
* modules/getgroups (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getdtablesize: Move AC_LIBOBJ invocations to module description.
* m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Move AC_LIBOBJ
invocation from here...
* modules/getdtablesize (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getdomainname: Move AC_LIBOBJ invocations to module description.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Move AC_LIBOBJ and
gl_PREREQ_GETDOMAINNAME invocations from here...
* modules/getdomainname (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getline: Move AC_LIBOBJ invocations to module description.
* m4/getline.m4 (gl_FUNC_GETLINE): Move AC_LIBOBJ and gl_PREREQ_GETLINE
invocations from here...
* modules/getline (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getline: Simplify.
* m4/getline.m4 (gl_PREREQ_GETLINE): Don't invoke gl_FUNC_GETDELIM.
It's already handled through the module dependency.
2011-05-08 Bruno Haible <bruno@clisp.org>
getdelim: Move AC_LIBOBJ invocations to module description.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Set HAVE_GETDELIM. Move AC_LIBOBJ
and gl_PREREQ_GETDELIM invocations from here...
* modules/getdelim (configure.ac): ... to here.
(Depends-on): Fix condition.
2011-05-08 Bruno Haible <bruno@clisp.org>
getcwd: Move AC_LIBOBJ invocations to module description.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Move AC_LIBOBJ and gl_PREREQ_GETCWD
invocations from here...
* modules/getcwd (configure.ac): ... to here.
2011-05-08 Bruno Haible <bruno@clisp.org>
getcwd-lgpl: Move AC_LIBOBJ invocations to module description.
* m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): Move AC_LIBOBJ invocation from
here...
* modules/getcwd-lgpl (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
crypto/gc: Move AC_LIBOBJ invocations to module description.
* m4/gc.m4 (gl_GC): Move AC_LIBOBJ invocations from here...
* modules/crypto/gc (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fwriting: Move AC_LIBOBJ invocations to module description.
* m4/fwriting.m4 (gl_FUNC_FWRITINT): Move AC_LIBOBJ invocation from
here...
* modules/fwriting (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fwritable: Move AC_LIBOBJ invocations to module description.
* m4/fwritable.m4 (gl_FUNC_FWRITABLE): Move AC_LIBOBJ invocation from
here...
* modules/fwritable (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
futimens: Move AC_LIBOBJ invocations to module description.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Move AC_LIBOBJ invocations from
here...
* modules/futimens (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
ftruncate: Move AC_LIBOBJ invocations to module description.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Move AC_LIBOBJ and
gl_PREREQ_FTRUNCATE invocations from here...
* modules/ftruncate (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fsync: Move AC_LIBOBJ invocations to module description.
* m4/fsync.m4 (gl_FUNC_FSYNC): Move AC_LIBOBJ and gl_PREREQ_FSYNC
invocations from here...
* modules/fsync (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fsusage: Move AC_LIBOBJ invocations to module description.
* m4/fsusage.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and
gl_PREREQ_FSUSAGE_EXTRA invocations from here...
* modules/fsusage (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
freopen: Move AC_LIBOBJ invocations to module description.
* m4/freopen.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and gl_PREREQ_FREOPEN
invocations from here...
* modules/freopen (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
free: Move AC_LIBOBJ invocations to module description.
* m4/free.m4 (gl_FUNC_FREE): Move AC_LIBOBJ and missing gl_PREREQ_FREE
invocations from here...
* modules/free (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
freadable: Move AC_LIBOBJ invocations to module description.
* m4/freadable.m4 (gl_FUNC_FREADABLE): Move AC_LIBOBJ invocation from
here...
* modules/freadable (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fpurge: Move AC_LIBOBJ invocations to module description.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Set HAVE_FPURGE. Move AC_LIBOBJ
invocations from here...
* modules/fpurge (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fpending: Move AC_LIBOBJ invocations to module description.
* m4/fpending.m4 (gl_PREREQ_FPENDING): New macro, extracted from
gl_FUNC_FPENDING.
(gl_FUNC_FPENDING): Move AC_LIBOBJ and gl_PREREQ_FPENDING
invocations from here...
* modules/fpending (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fopen: Move AC_LIBOBJ invocations to module description.
* m4/fopen.m4 (gl_FUNC_FOPEN): Move AC_LIBOBJ and gl_PREREQ_FOPEN
invocations from here...
* modules/fopen (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fnmatch, fnmatch-gnu: Move AC_LIBOBJ invocations to module description.
* m4/fnmatch.m4 (gl_PREREQ_FNMATCH): New macro, extracted from
gl_FUNC_FNMATCH_POSIX.
(gl_FUNC_FNMATCH_POSIX): Move AC_LIBOBJ and gl_PREREQ_FNMATCH
invocations from here...
* modules/fnmatch (configure.ac): ... to here.
* modules/fnmatch-gnu (configure.ac): ... and here.
2011-05-07 Bruno Haible <bruno@clisp.org>
flock: Move AC_LIBOBJ invocations to module description.
* m4/flock.m4 (gl_FUNC_FLOCK): Move AC_LIBOBJ and gl_PREREQ_FLOCK
invocations from here...
* modules/flock (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fileblocks: Move AC_LIBOBJ invocations to module description.
* m4/fileblocks.m4 (gl_FILEBLOCKS): Move AC_LIBOBJ and
gl_PREREQ_FILEBLOCKS invocations from here...
* modules/fileblocks (configure.ac): ... to here.
2011-05-06 Bruno Haible <bruno@clisp.org>
fflush: Move AC_LIBOBJ invocations to module description.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Remove macro.
(gl_FUNC_FFLUSH): Inline it here. Move AC_LIBOBJ and gl_PREREQ_FFLUSH
invocations from here...
* modules/fflush (configure.ac): ... to here.
2011-05-06 Bruno Haible <bruno@clisp.org>
fdopendir: Move AC_LIBOBJ invocations to module description.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Move AC_LIBOBJ invocations from
here...
* modules/fdopendir (configure.ac): ... to here.
(Depends-on): Improve conditions.
2011-05-06 Bruno Haible <bruno@clisp.org>
_Exit: Move AC_LIBOBJ invocations to module description.
* m4/_Exit.m4 (gl_FUNC__EXIT): Move AC_LIBOBJ and gl_PREREQ__EXIT
invocations from here...
* modules/_Exit (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
euidaccess: Respect rules for use of AC_LIBOBJ.
* m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_EUIDACCESS invocations
from here...
* modules/euidaccess (configure.ac): ... to here.
2011-05-06 Bruno Haible <bruno@clisp.org>
error: Move AC_LIBOBJ invocations to module description.
* m4/error.m4 (gl_ERROR): Inline AC_FUNC_ERROR_AT_LINE. Remove
AC_LIBSOURCES invocation. Move AC_LIBOBJ and gl_PREREQ_ERROR
invocations from here...
* modules/error (configure.ac): ... to here.
2011-05-06 Bruno Haible <bruno@clisp.org>
duplocale: Move AC_LIBOBJ invocations to module description.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Move AC_LIBOBJ and
gl_PREREQ_DUPLOCALE invocations from here...
* modules/duplocale (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
dirfd: Move AC_LIBOBJ invocations to module description.
* m4/dirfd.m4 (gl_PREREQ_DIRFD): New macro, extracted from
gl_FUNC_DIRFD.
(gl_FUNC_DIRFD): Move AC_LIBOBJ and gl_PREREQ_DIRFD invocations from
here...
* modules/dirfd (configure.ac): ... to here.
(Depends-on): Fix condition.
2011-05-05 Bruno Haible <bruno@clisp.org>
chown: Respect rules for use of AC_LIBOBJ.
* m4/chown.m4 (gl_FUNC_CHOWN): Move AC_LIBOBJ invocations from here...
* modules/chown (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
chdir-long: Move AC_LIBOBJ invocations to module description.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Move AC_LIBOBJ and
gl_PREREQ_CHDIR_LONG invocations from here...
* modules/chdir-long (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Move AC_LIBOBJ invocations to module description.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Move AC_LIBOBJ invocation
from here...
* modules/canonicalize-lgpl (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
calloc-posix, calloc-gnu: Move AC_LIBOBJs to module description.
* m4/calloc.m4 (gl_REPLACE_CALLOC): Remove macro.
(gl_FUNC_CALLOC_GNU, gl_FUNC_CALLOC_POSIX): Instead, just set
REPLACE_CALLOC.
* modules/calloc-posix (configure.ac): Invoke AC_LIBOBJ here.
* modules/calloc-gnu (configure.ac): Likewise.
2011-05-05 Bruno Haible <bruno@clisp.org>
btowc: Move AC_LIBOBJ invocations to module description.
* m4/btowc.m4 (gl_FUNC_BTOWC): Move AC_LIBOBJ and gl_PREREQ_BTOWC
invocations from here...
* modules/btowc (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
atexit: Move AC_LIBOBJ invocations to module description.
* m4/atexit.m4 (gl_FUNC_ATEXIT): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_ATEXIT invocations from
here...
* modules/atexit (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
atoll: Move AC_LIBOBJ invocations to module description.
* m4/atoll.m4 (gl_FUNC_ATOLL): Move AC_LIBOBJ and gl_PREREQ_ATOLL
invocations from here...
* modules/atoll (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
argz: Move AC_LIBOBJ invocations to module description.
* m4/argz.m4 (gl_FUNC_ARGZ): Move AC_LIBOBJ invocation from here...
* modules/argz (configure.ac): ... to here.
2011-05-05 Bruno Haible <bruno@clisp.org>
alphasort: Move AC_LIBOBJ invocations to module description.
* m4/alphasort.m4 (gl_FUNC_ALPHASORT): Move AC_LIBOBJ and
gl_PREREQ_ALPHASORT invocations from here...
* modules/alphasort (configure.ac): ... to here.
2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
verify: new macro verify_expr; verify_true deprecated
* NEWS: Mention this.
* doc/verify.texi (Compile-time Assertions): Document this.
* lib/verify.h (verify_true): Deprecate.
(verify_expr): New macro.
* tests/test-verify.c (function): Test verify_expr.
2011-06-14 Jim Meyering <meyering@redhat.com>
init.sh: give more portable redirection-related advice in a comment
* tests/init.sh (stderr_fileno_): Update the advice in comments.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488
for lots of discussion. Stefano Lattarini suggested the solution
of putting "9>&2" after the command. Reported by Bruno Haible.
2011-06-13 Bruno Haible <bruno@clisp.org>
locale-zh: Reject zh_CN.GB18030 locale on Solaris 8.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On Solaris 8, set LOCALE_ZH_CN to
'none'.
2011-06-13 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: use strtof only if HAVE_STRTOF
This is needed on HP-UX 11.11 with GCC 4.2.4; see Bruno Haible's report
<http://lists.gnu.org/r/bug-gnulib/2011-06/msg00154.html>.
* lib/ftoastr.c (STRTOF) [LENGTH == 1]: Use strtof only if HAVE_STRTOF.
* modules/ftoastr (configure.ac): Check for strtof.
2011-06-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Addendum to 2011-06-08 commit.
* gnulib-tool (func_emit_lib_Makefile_am): If options --makefile-name
and --witness-c-macro have been given, augment AM_CPPFLAGS.
2011-06-13 Bruno Haible <bruno@clisp.org>
fseeko: Provide a non-inline replacement of fseek().
* lib/stdio.in.h (fseek): Don't provide if module 'fseek' is not used.
* modules/fseeko (Depends-on): Add fseek.
* modules/fseek (License): Change to LGPLv2+.
2011-06-13 Bruno Haible <bruno@clisp.org>
ftello: Provide a non-inline replacement of ftell().
* lib/stdio.in.h (ftell): Don't provide if module 'ftell' is not used.
* m4/ftell.m4 (gl_FUNC_FTELL): Replace ftell also if the system does
not have ftello() (such as on mingw).
* modules/ftello (Depends-on): Add ftell.
* modules/ftell (License): Change to LGPLv2+.
2011-05-07 Bruno Haible <bruno@clisp.org>
ftell: Move AC_LIBOBJ invocations to module description.
* m4/ftell.m4 (gl_FUNC_FTELL): Move AC_LIBOBJ invocation from here...
* modules/ftell (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
ftello: Respect rules for use of AC_LIBOBJ.
* m4/ftello.m4 (gl_REPLACE_FTELLO): Remove macro.
(gl_FUNC_FTELLO): Inline it here. Move AC_LIBOBJ invocation from
here...
* modules/ftello (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fseeko: Simplify.
* m4/fseeko.m4 (gl_HAVE_FSEEKO): Remove macro.
(gl_FUNC_FSEEKO): Inline it here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fseek: Move AC_LIBOBJ invocations to module description.
* m4/fseek.m4 (gl_REPLACE_FSEEK): Remove macro.
(gl_FUNC_FSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
* modules/fseek (configure.ac): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fseek: Respect rules for use of AC_LIBOBJ.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Move gl_REPLACE_FSEEK invocation from
here...
* m4/fseek.m4 (gl_FUNC_FSEEK): ... to here.
2011-05-07 Bruno Haible <bruno@clisp.org>
fseeko: Respect rules for use of AC_LIBOBJ.
* m4/fseeko.m4 (gl_REPLACE_FSEEKO): Remove macro.
(gl_FUNC_FSEEKO): Inline it here. Move AC_LIBOBJ invocation from
here...
* modules/fseeko (configure.ac): ... to here.
2011-06-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Allow comments in the 'Depends-on' section.
* doc/gnulib.texi (Module description): Mention comment syntax in the
Depends-on section.
* gnulib-tool (func_get_dependencies): Filter out comment lines.
2011-06-13 Bruno Haible <bruno@clisp.org>
file-set.h: guard __attibute__ use, now that it's not always defined
* lib/file-set.h (record_file): Use __attribute__ only with compiler
versions that support it. This fixes a coreutils build failure with
the vendor cc on HP-UX 11.31.
2011-06-12 Bruno Haible <bruno@clisp.org>
acl: Add support for HP-UX >= 11.11 JFS ACLs.
* doc/acl-resources.txt: Add info about the ACL APIs on HP-UX.
* m4/acl.m4 (gl_FUNC_ACL): Also test for HP-UX 11.11 API.
* lib/acl-internal.h [HP-UX 11.11]: Include <aclv.h>.
(acl, aclsort): New declarations.
(aclv_nontrivial): New declaration.
* lib/file-has-acl.c (aclv_nontrivial) [HP-UX 11.11]: New function.
(file_has_acl): Read also the second kind of HP-UX ACLs.
* lib/set-mode-acl.c (qset_acl) [HP-UX 11.11]: Try to set the second
kind of HP-UX ACLs if the first kind fails.
* lib/copy-acl.c (qcopy_acl) [HP-UX 11.11]: Read and set also the
second kind of HP-UX ACLs.
* tests/test-sameacls.c [HP-UX 11.11]: Include <aclv.h>.
(main) [HP-UX 11.11]: Test also whether the second kind of HP-UX ACLs
agree.
* tests/test-file-has-acl.sh (acl_flavor) [HP-UX 11.11]: Set to
hpuxjfs.
Handle hpuxjfs.
* tests/test-set-mode-acl.sh (acl_flavor) [HP-UX 11.11]: Set to
hpuxjfs.
Handle hpuxjfs.
* tests/test-copy-acl.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs.
(func_test_same_acls): Use both lsacl and getacl.
Handle hpuxjfs.
* tests/test-copy-file.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs.
(func_test_same_acls): Use both lsacl and getacl.
Handle hpuxjfs.
2011-06-12 Bruno Haible <bruno@clisp.org>
acl: Complete the 2010-08-10 fix.
* lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP.
* lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise.
* lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values
explicitly.
* tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP.
Reported in <http://debbugs.gnu.org/db/60/6053.html>.
2011-06-12 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Comments.
* tests/test-spawn-pipe-child.c (main): Update comment.
Reported by James Youngman <jay@gnu.org>.
2011-06-11 James Youngman <jay@gnu.org>
New module 'stat-size'.
* modules/stat-size: New module. Provides macros for accessing
file size information in instances of struct stat. Depends on the
fileblocks module because it calls st_blocks.
* lib/stat-size.h: New file, adapted from coreutils' system.h.
* doc/gnulib.texi: Include stat-size.texi.
* doc/stat-size.texi: Documentation for this module.
* m4/stat-size.m4: New file; defines gl_STAT_SIZE.
* m4/fileblocks.m4: Mention that stat-size depends on the call to
AC_STRUCT_ST_BLOCKS.
2011-06-09 Bruno Haible <bruno@clisp.org>
thread: Support pthreads-win32.
* lib/glthread/thread.h (gl_thread_self): Define differently on
pthreads-win32.
(gl_null_thread): New declaration.
(gl_thread_self_pointer): New macro.
* lib/glthread/thread.c (gl_null_thread): New constant.
* tests/test-lock.c: Use gl_thread_self_pointer instead of
gl_thread_self.
* tests/test-tls.c: Likewise.
Suggested by Paul Eggert. Reported by Eric Blake.
2011-06-09 Bruno Haible <bruno@clisp.org>
thread: Fix confusion between NULL and 0.
* lib/glthread/thread.h (gl_thread_self): Use NULL and 0 appropriately.
Reported by Paul Eggert.
2011-06-09 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Avoid test failure on HP-UX 11.
* tests/test-spawn-pipe-child.c (main) [HP-UX]: Don't assert that fd 2
is closed.
2011-06-09 Bruno Haible <bruno@clisp.org>
acl tests: Fix compilation error on HP-UX 11.
* tests/test-sameacls.c: Include <sys/acl.h> also on HP-UX.
2011-06-09 Bruno Haible <bruno@clisp.org>
rmdir: Avoid test failure on HP-UX 10.20.
* tests/test-rmdir.h (test_rmdir_func): Accept ENOTEMPTY error, like
EEXIST.
2011-06-08 Eric Blake <eblake@redhat.com>
perror: fix test on mingw
* modules/perror-tests (Depends-on): Add dup2.
strerror_r-posix: fix on MacOS
* m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix
logic bug.
* lib/strerror_r.c (strerror_r): Fix the bug.
* lib/strerror.c (strerror): Likewise.
* doc/posix-functions/strerror_r.texi (strerror_r): Document the
problem.
* doc/posix-functions/strerror.texi (strerror): Likewise.
* doc/posix-functions/perror.texi (perror): Likewise.
* tests/test-strerror.c (main): Enhance test.
* tests/test-strerror_r.c (main): Likewise.
2011-06-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Better isolation between different gnulib-tool invocations.
* gnulib-tool: New option --witness-c-macro.
(witness_c_macro): New variable.
(func_emit_lib_Makefile_am): If --witness-c-macro was specified, let
AM_CPPFLAGS define it as a C macro.
(func_emit_tests_Makefile_am): Likewise.
(func_import): Store witness_c_macro setting in gnulib-cache.m4 and
read it from there.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): Define through
m4_define, not AC_DEFUN.
(gl_MODULE_INDICATOR_SET_VARIABLE_AUX,
gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR): New macros.
(gl_MODULE_INDICATOR_SET_VARIABLE): Use them.
* modules/arpa_inet (Makefile.am): Use sed expression s/.../.../, not
s|...|...|, to substitute the values of the GNULIB_* module indicator
variables.
* modules/dirent (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
2011-06-08 Eric Blake <eblake@redhat.com>
strerror: simplify replacement
* m4/strerror.m4 (gl_PREREQ_STRERROR): Delete.
* modules/strerror (configure.ac): No prereqs needed here...
* modules/strerror-override (configure.ac): ...but this needs it.
(Files): Add file for needed prereq macro.
2011-06-08 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Tweaks.
* m4/strerror.m4 (gl_FUNC_STRERROR): Omit the code that tests
gl_cv_func_strerror_r_works if gl_FUNC_STRERROR_R_WORKS is not present.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Fix AC_CACHE_CHECK
message. Move gl_HEADER_STRING_H_DEFAULTS invocation from here...
(gl_FUNC_STRERROR_R): ... to here.
(gl_PREREQ_STRERROR_R): Test for __xpg_strerror_r.
2011-06-07 Eric Blake <eblake@redhat.com>
perror: document fixed bugs
* doc/posix-functions/perror.texi (perror): Document recent
patches.
2011-06-07 Paul Eggert <eggert@cs.ucla.edu>
stat-time: get_stat_birthtime failure is better-defined
* lib/stat-time.h (get_stat_birthtime): If the time is not available,
return a timestamp whose tv_sec and tv_nsec values are both -1.
Previously, the spec said only that the tv_nsec value was negative.
This upward-compatible change simplifies GNU tar a bit.
2011-06-07 Eric Blake <eblake@redhat.com>
strerror_r-posix: work around cygwin 1.7.9
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Split...
(gl_FUNC_STRERROR_R_WORKS): ...into new macro, to detect Cygwin
bug without replacing strerror_r.
* m4/strerror.m4 (gl_FUNC_STRERROR): Replace strerror if
strerror_r is buggy, but without requiring strerror_r compilation.
* doc/posix-functions/strerror_r.texi (strerror_r): Fix docs.
test-perror: relax test to ignore cygwin bug
* tests/test-perror2.c (main): Relax test on requiring detection
of stream errors, and use unbuffered stream.
* doc/posix-functions/dprintf.texi (dprintf): Document bug.
* doc/posix-functions/fprintf.texi (fprintf): Likewise.
* doc/posix-functions/fputc.texi (fputc): Likewise.
* doc/posix-functions/fputs.texi (fputs): Likewise.
* doc/posix-functions/fputws.texi (fputws): Likewise.
* doc/posix-functions/fwprintf.texi (fwprintf): Likewise.
* doc/posix-functions/fwrite.texi (fwrite): Likewise.
* doc/posix-functions/getopt.texi (getopt): Likewise.
* doc/posix-functions/perror.texi (perror): Likewise.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/psiginfo.texi (psiginfo): Likewise.
* doc/posix-functions/psignal.texi (psignal): Likewise.
* doc/posix-functions/putc.texi (putc): Likewise.
* doc/posix-functions/putc_unlocked.texi (putc_unlocked):
Likewise.
* doc/posix-functions/putchar.texi (putchar): Likewise.
* doc/posix-functions/putchar_unlocked.texi (putchar_unlocked):
Likewise.
* doc/posix-functions/puts.texi (puts): Likewise.
* doc/posix-functions/putwc.texi (putwc): Likewise.
* doc/posix-functions/putwchar.texi (putwchar): Likewise.
* doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
* doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
* doc/posix-functions/wordexp.texi (wordexp): Likewise.
* doc/posix-functions/wprintf.texi (wprintf): Likewise.
2011-05-22 Bruno Haible <bruno@clisp.org>
strerror: Move AC_LIBOBJ invocations to module description.
* m4/strerror.m4 (gl_FUNC_STRERROR): Move AC_LIBOBJ and
gl_PREREQ_STRERROR invocations from here...
* modules/strerror (configure.ac): ... to here.
2011-05-21 Bruno Haible <bruno@clisp.org>
perror: Use common idiom.
* modules/perror (configure.ac): Reorder statements.
2011-06-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix usage message in 'mktempd_'
* tests/init.sh (mktempd_): In the usage message, use literal
'mktempd_', not '$ME' (which is even undefined), as the name of
the subroutine.
2011-06-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests init: new function 'fatal_', for hard errors
Before this patch, the only way offered by tests/init.sh to
properly signal a hard error was the `framework_failure_'
function. But the error message issued by that function,
as its name would suggest, refers to a set-up failure in the
testsuite, while hard errors can obviously also be due to
other reasons. The best way to fix this inconsistency is to
introduce a new function with a more general error message.
* tests/init.sh (fatal_): New function.
2011-06-06 Eric Blake <eblake@redhat.com>
canonicalize-lgpl: use common idiom
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Prefer older rm -rf
over newer POSIX -Rf.
Reported by Bruno Haible.
canonicalize-lgpl: work around AIX realpath bug
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Expose AIX bug.
* doc/posix-functions/realpath.texi (realpath): Document it.
Reported by Bruno Haible.
strerror: work around FreeBSD bug
* lib/strerror.c (strerror): Special case 0.
Reported by Bruno Haible.
strerror-override: avoid bloating errno module
* modules/errno (Files, configure.ac): Move replacement strings...
* modules/strerror-override: ...to new module.
* modules/strerror (Depends-on): Add strerror-override.
* modules/strerror_r-posix (Depends-on): Likewise.
* MODULES.html.sh: Document new module.
Reported by Bruno Haible.
2011-06-06 Bruno Haible <bruno@clisp.org>
spawn-pipe tests: Rename program.
* tests/test-spawn-pipe-main.c: Renamed from tests/test-spawn-pipe.c.
* tests/test-spawn-pipe-child.c: Update comment.
* tests/test-spawn-pipe.sh: Update.
* modules/spawn-pipe-tests (Files, Makefile.am): Update.
spawn-pipe tests: Link the child program only against libc.
* tests/test-spawn-pipe-child.c: New file, extracted from
tests/test-spawn-pipe.c.
(main): Expect only one argument.
(is_open): New function, copied from tests/test-pipe.c.
* tests/test-spawn-pipe.c: Don't include <errno.h>.
(child_main): Remove function.
(test_pipe): Pass only one argument to the child program.
(main): Remove child process code. Expect the child program's name as
first argument.
* tests/test-spawn-pipe.sh: Pass the child program's name as first
argument.
* modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-child.c.
(Makefile.am): Add test-spawn-pipe-child to check_PROGRAMS. Link
test-spawn-pipe-child against no libraries.
2011-06-06 Bruno Haible <bruno@clisp.org>
careadlinkat: Avoid mismatch between ssize_t and int.
* lib/careadlinkat.h (careadlinkatcwd): Declare as a function always.
* lib/careadlinkat.c (careadlinkatcwd): Define always.
2011-06-06 Jim Meyering <meyering@redhat.com>
gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
* m4/gnulib-common.m4 (gl_COMMON): Emit definitions of
_GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE.
2011-06-05 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Interoperability with libtool.
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): When a C++ compiler is not found,
set the variable to "no", not to ":".
* NEWS: Mention the change.
2011-06-05 Bruno Haible <bruno@clisp.org>
acl: Fix test failure on AIX 7.
* tests/test-sameacls.c (main) [AIX]: Fix aclx_printStr invocation.
Based on a patch by Jørn Amundsen <Jorn.Amundsen@ntnu.no>.
2011-06-05 Bruno Haible <bruno@clisp.org>
pipe-filter-ii: Fix test failure on AIX and IRIX.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): When write() fails
with EAGAIN, retry with a smaller buffer size.
2011-06-05 Bruno Haible <bruno@clisp.org>
localename: Fix link dependencies.
* modules/localename (Link): Mention $(LIBTHREAD) or $(LTLIBTHREAD).
* modules/localename-tests (Makefile.am): Link test-localename with
$(LIBTHREAD).
2011-06-05 Bruno Haible <bruno@clisp.org>
error: Avoid gcc warning.
* lib/error.c (strerror_r): Declare also when its return type is 'int'.
2011-06-05 Bruno Haible <bruno@clisp.org>
unsetenv: Avoid gcc warning.
* lib/unsetenv.c (unsetenv): Provide declaration if system lacks it.
2011-06-05 Bruno Haible <bruno@clisp.org>
setenv: Avoid gcc warning.
* lib/setenv.c (setenv): Provide declaration if system lacks it.
2011-06-05 Bruno Haible <bruno@clisp.org>
sys_select: Ensure memset is declared also on AIX 7.
* lib/sys_select.in.h: Include <string.h> also on AIX.
* doc/posix-headers/sys_select.texi: Mention that <sys/select.h> is not
self-contained also on AIX 7.1.
2011-06-04 Jim Meyering <meyering@redhat.com>
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"
* top/maint.mk (sc_unmarked_diagnostics): Don't hard-code the
function name, "error".
(_gl_translatable_diag_func_re): New configurable variable.
2011-06-04 Bruno Haible <bruno@clisp.org>
getopt: Avoid gcc warning.
* lib/getopt.c (_getopt_internal_r): Remove unused variable 'ambig'.
2011-06-04 Bruno Haible <bruno@clisp.org>
strerror_r: Fix comments.
* lib/strerror_r.c (strerror_r): Update comments after 2011-06-01
commit.
2011-06-04 Bruno Haible <bruno@clisp.org>
perror: Fix compilation error.
* lib/perror.c: Don't include intprops.h, verify.h, strerror-impl.h.
Undefine fprintf, not sprintf.
* modules/perror (Depends-on): Remove intprops, verify.
2011-06-04 Bruno Haible <bruno@clisp.org>
setlocale: Enable replacement on Cygwin 1.5.
* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on
Cygwin 1.5.x.
* doc/posix-functions/setlocale.texi: Mention that the problem with the
LC_CTYPE category also exists on Cygwin 1.5.x.
2011-06-04 Bruno Haible <bruno@clisp.org>
strerror-override: Don't disable symbol renamings.
* lib/strerror-override.h: Include errno.h and stddef.h, not string.h.
* lib/strerror-override.c: Include config.h.
(strerror_override): Don't undefine.
2011-06-03 Bruno Haible <bruno@clisp.org>
Copyright: Use LGPL 2.1 instead of LGPL 2.0.
* lib/localename.h: Update copyright header.
* lib/localename.c: Likewise.
* lib/relocatable.h: Likewise.
* lib/relocatable.c: Likewise.
2011-06-02 Bruno Haible <bruno@clisp.org>
doc: Fix a module name.
* doc/posix-functions/open.texi: Fix module name 'nonblocking'.
2011-06-02 Bruno Haible <bruno@clisp.org>
pipe2: Remove dependency on 'nonblocking' module.
* lib/pipe2.c: Include verify.h. Include nonblocking.h only if
O_NONBLOCK is defined by gnulib.
(pipe2) [WIN32]: If O_NONBLOCK is not defined by gnulib, verify that it
is zero.
* modules/pipe2 (Depends-on): Add verify. Remove nonblocking.
* tests/test-pipe2.c: Include nonblocking.h only if O_NONBLOCK is
defined by gnulib.
(get_nonblocking_flag): New function.
(main): Test O_NONBLOCK flag only if it is nonzero.
* doc/glibc-functions/pipe2.texi: Mention the 'nonblocking' module.
2011-06-03 Jim Meyering <meyering@redhat.com>
maint: three new prohibit-header-without-use rules
Prohibit use of cloexec.h, posixver.h, same.h without use.
* top/maint.mk (sc_prohibit_cloexec_without_use): New rule.
(sc_prohibit_posixver_without_use): Likewise.
(sc_prohibit_same_without_use): Likewise.
2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
allocator: 'die' routine is now given requested size
* lib/allocator.h (struct allocator.die): New size arg.
* lib/careadlinkat.c (careadlinkat): Pass size to 'die' function.
If the actual problem is an ssize_t limitation, not a size_t or
malloc failure, fail with errno==ENAMETOOLONG instead of calling 'die'.
2011-06-01 Eric Blake <eblake@redhat.com>
strerror: drop strerror_r dependency
* lib/strerror_r.c (strerror_r): Move gnulib replacement strings...
* lib/strerror-override.c (strerror_override): ...to new file.
* lib/strerror-override.h: Add prototype.
* lib/strerror-impl.h: Delete.
* lib/strerror.c (strerror): New implementation.
* modules/errno (Files): Add new files.
(configure.ac): Compile new file as appropriate.
* modules/strerror (Files): Drop unused file.
(Depends-on): Drop strerror_r-posix.
* MODULES.html.sh: Document strerror_r-posix.
Requested by Sam Steingold.
perror: call strerror_r directly
* modules/perror (Files): Drop strerror-impl.h.
* lib/perror.c (perror): Use our own stack buffer, rather than
calling a wrapper that uses static storage.
* doc/posix-functions/perror.texi (perror): Document a limitation
of our replacement.
strerror_r: fix includes for FreeBSD
* lib/strerror_r.c (includes): Use <stdlib.h> unconditionally,
since we use abort on some platforms.
Reported by Matthias Bolte.
2011-05-31 Bruno Haible <bruno@clisp.org>
Fix link errors in tests: openat-die uses gettext-h.
* modules/areadlinkat-tests (Makefile.am): Link test-areadlinkat
against $(LIBINTL).
* modules/dirent-safer-tests (Makefile.am): Link test-dirent-safer
against $(LIBINTL).
* modules/fdopendir-tests (Makefile.am): Link test-fdopendir against
$(LIBINTL).
* modules/fdutimensat-tests (Makefile.am): Link test-fdutimensat
against $(LIBINTL).
* modules/linkat-tests (Makefile.am): Link test-linkat against
$(LIBINTL).
* modules/mkfifoat-tests (Makefile.am): Link test-mkfifoat against
$(LIBINTL).
* modules/openat-safer-tests (Makefile.am): Link test-openat-safer
against $(LIBINTL).
* modules/openat-tests (Makefile.am): Link test-fchownat, test-fstatat,
test-mkdirat, test-openat, test-unlinkat against $(LIBINTL).
* modules/readlinkat-tests (Makefile.am): Link test-readlinkat against
$(LIBINTL).
* modules/symlinkat-tests (Makefile.am): Link test-symlinkat against
$(LIBINTL).
* modules/utimensat-tests (Makefile.am): Link test-utimensat against
$(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-05-31 Bruno Haible <bruno@clisp.org>
Fix link errors in tests: wait-process uses gettext-h.
* modules/nonblocking-pipe-tests (Makefile.am): Set
test_nonblocking_pipe_main_LDADD.
* modules/nonblocking-socket-tests (Makefile.am): Link
test-nonblocking-socket-main against $(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
assert-h: work around 'verify' incompatibility
* lib/verify.h: Use @...@ directives, not ifdef.
* modules/assert-h (assert.h): Implement the directives.
(assert.h): Substitute the symbol-prefix more consistently.
2011-05-29 Jim Meyering <meyering@redhat.com>
trim: remove three superfluous assignments
* lib/trim.c (trim2): Remove three superfluous assignments
and correct brace positioning.
2011-05-29 Bruno Haible <bruno@clisp.org>
wctype-h: Avoid namespace pollution on Solaris 2.6.
* lib/wctype.in.h: On Solaris, undefine 'multibyte' and a few other
identifiers.
* doc/posix-headers/wctype.texi: Mention the problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-05-28 Jim Meyering <meyering@redhat.com>
parse-datetime.y: accommodate -Wstrict-overflow
* lib/parse-datetime.y (yylex): Rearrange pointer arithmetic to
placate -Wstrict-overflow.
trim: avoid a warning from -O2 -Wstrict-overflow
* lib/trim.c (trim2): Declare local to be "unsigned int", not "int".
2011-05-29 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix bug in yesterday's commit.
* gnulib-tool (func_create_testdir): Don't add gltests to $subdirs
twice.
2011-05-29 Bruno Haible <bruno@clisp.org>
Allow multiple gnulib generated include files to be combined.
* gnulib-tool (func_compute_include_guard_prefix): New function.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also
${gl_include_guard_prefix} references.
(func_import, func_create_testdir): Invoke
func_compute_include_guard_prefix.
* lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/getopt.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/poll.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stddef.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_uio.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/termios.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* modules/arpa_inet (Makefile.am): Substitute @GUARD_PREFIX@.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_uio (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
* modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially.
2011-05-29 Bruno Haible <bruno@clisp.org>
assert-h: Allow multiple gnulib generated replacements to coexist.
* lib/verify.h (struct _gl_verify_type): Avoid identical redefinition.
2011-05-29 Bruno Haible <bruno@clisp.org>
argp: Allow coexistence with strerror_r-posix module.
* lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro
(either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r
by gnulib's <string.h> replacement), assume it has the POSIX signature,
not the glibc signature.
2011-05-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Alternative structure of testdirs, similar to --import.
* gnulib-tool: New option --single-configure.
(func_usage): Document it.
(single_configure): New variable.
(func_modules_transitive_closure_separately,
func_modules_transitive_closure_separately,
func_determine_use_libtests, func_modules_add_dummy_separately,
func_modules_to_filelist_separately): New functions, extracted from
func_import.
(func_emit_tests_Makefile_am): Handle $single_configure = true case.
(func_import): Use the new functions.
(func_create_testdir): Set final_modules. Handle $single_configure =
true case.
2011-05-28 Bruno Haible <bruno@clisp.org>
getloadavg: Remove an unreliable safety check.
* m4/getloadavg.m4 (gl_GETLOADAVG): Drop argument. Remove test whether
getloadavg.c is in place.
* modules/getloadavg (configure.ac): Drop argument of gl_GETLOADAVG.
Reported by Sam Steingold <sds@gnu.org>.
2011-05-28 Bruno Haible <bruno@clisp.org>
doc: Cleanup yet another file produced by texinfo.tex.
* doc/Makefile (mostlyclean): Remove also gnulib.cn.
2011-05-28 Bruno Haible <bruno@clisp.org>
Finish the conditional dependencies mechanism.
* gnulib-tool: New option --no-conditional-dependencies.
(func_usage): Document it. Don't mark --conditional-dependencies as
experimental.
(cond_dependencies): The possible values can now be true, false, empty.
(func_modules_transitive_closure, func_emit_autoconf_snippets): Update.
(func_import): Store setting in gnulib-cache.m4 and read it from there.
* doc/gnulib-tool.texi (Conditional dependencies): New section.
2011-05-28 Bruno Haible <bruno@clisp.org>
doc: Use a recent texinfo.tex.
* doc/Makefile (tex_opts): New variable.
(%.dvi, %.pdf): Pass it to texi2dvi and texi2pdf.
2011-05-28 Jim Meyering <meyering@redhat.com>
intprops.h: adjust comment to match code change
* lib/intprops.h (_GL_INT_CONVERT): Adjust comment: now that E is used
only once, it *may* have side effects. Also fix an unrelated typo.
(_GL_INT_SIGNED): Likewise.
2011-05-26 Simon Josefsson <simon@josefsson.org>
* lib/gen-uni-tables.c: Say "gen-uni-tables.c" consistently.
2011-05-26 Bruno Haible <bruno@clisp.org>
mbsrchr: Avoid collision with system function on Interix.
* lib/string.in.h (mbsrchr): Define as rpl_mbsrchr also on Interix.
Reported by Markus Duft <mduft@gentoo.org>.
2011-05-15 James Youngman <jay@gnu.org>
getopt: for ambiguous options, enumerate the possibilities.
* lib/getopt.c (_getopt_internal_r): Merge glibc change printing
the ambiguous options when an ambiguous prefix is given. This was
http://sourceware.org/bugzilla/show_bug.cgi?id=7101. The merged
glibc change was
http://sourceware.org/git/?p=glibc.git;a=commit;h=bd25564e1e98910ed69043ed6a6f884ce60e5780.
2011-05-25 Eric Blake <eblake@redhat.com>
getcwd: work around mingw bug
* lib/getcwd-lgpl.c (rpl_getcwd): Guarantee correct error.
* doc/posix-functions/getcwd.texi (getcwd): Document it.
Reported by Matthias Bolte.
2011-05-24 Paul Eggert <eggert@cs.ucla.edu>
test-intprops: disable -Wtype-limits diagnostics
* tests/test-intprops.c: Use a pragma to ignore -Wtype-limits
diagnostics. Otherwise, the integer overflow macros generate many
diagnostics. Reported by Jim Meyering in
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00528.html>.
intprops: shorten, to pacify gcc -Woverlength-strings
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
(_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less
likely to run afoul of C compiler limits for string constant lengths.
See <http://lists.gnu.org/r/bug-gnulib/2011-05/msg00528.html>.
2011-05-24 Eric Blake <eblake@redhat.com>
docs: document recently fixed glibc printf bug
* doc/posix-functions/fprintf.texi (fprintf): Document it.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
closein-tests: convert to init.sh
* modules/closein-tests (Files): Add init.sh
* tests/test-closein.sh Use it.
yesno-tests: convert to init.sh
* modules/yesno-tests (Files): Add init.sh.
* tests/test-yesno.sh: Use it.
atexit-tests: ensure reliable exit status
* tests/test-atexit.sh: Prefer 'Exit' over 'exit'.
Reported by Bruno Haible.
2011-05-24 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Respect rules for use of AC_LIBOBJ.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move AC_LIBOBJ and
gl_PREREQ_STRERROR_R invocations from here...
* modules/strerror_r-posix (configure.ac): ... to here.
2011-05-24 Eric Blake <eblake@redhat.com>
strerror_r: fix missing header
* lib/strerror_r.c: Avoid compiler warning about snprintf.
strerror_r: fix AIX test failures
* lib/strerror_r.c (strerror_r): Convert silent truncation to
ERANGE failure.
strerror_r: fix Solaris test failures
* lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE
failures.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.
strerror_r: enforce POSIX recommendations
* lib/strerror_r.c (safe_copy): New helper method.
(strerror_r): Guarantee a non-empty string.
* tests/test-strerror_r.c (main): Enhance tests to incorporate
recent POSIX rulings and to match our strerror guarantees.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.
2011-05-24 Jim Meyering <meyering@redhat.com>
test-perror2.c: avoid warning about unused variable
* tests/test-perror2.c (main): Remove declaration of unused "fp".
2011-05-24 Eric Blake <eblake@redhat.com>
perror: avoid spurious test failure on HP-UX
* tests/test-perror.sh: Use Exit to avoid wrong exit status.
tests: fix logic bug in init.sh
* tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful
shell.
2011-05-24 Jim Meyering <meyering@redhat.com>
utimensat: do not reference an out-of-scope buffer
Otherwise, with __linux__ defined, "times" would point to a buffer, "ts"
declared in an inner scope, yet "times" would be dereferenced outside
the scope in which "ts" was valid.
* lib/utimensat.c (rpl_utimensat) [__linux__]: Move the declaration
of ts[2] "out/up", so that the use of aliased "times" (via
"times = ts;") does not end up referencing an out-of-scope "ts"
opendir-safer.c: don't clobber errno; don't close negative FD
* lib/opendir-safer.c (opendir_safer):
[HAVE_FDOPENDIR || GNULIB_FDOPENDIR]: Don't close a negative
file descriptor, and more importantly, don't clobber the
offending errno value with EINVAL. Before, upon failure
of dup_safer, we would pass the negative file descriptor to
fdopendir, which would clobber errno.
2011-05-23 Bruno Haible <bruno@clisp.org>
idcache: Fix module description.
* modules/idcache (Include): Set to "idcache.h".
2011-05-23 Paul Eggert <eggert@cs.ucla.edu>
gnulib-tool: fix portability problem with MacOS sed
A sed command like "/x/{s/a/b/}" is not portable; a newline is needed
before the "}". Problem reported by Leo in
<http://lists.gnu.org/r/emacs-devel/2011-05/msg00717.html>.
* gnulib-tool (func_modules_transitive_closure): Insert newlines in
sed_extract_condition1, sed_extract_condition2.
2011-05-23 Bruno Haible <bruno@clisp.org>
hash: Simplify autoconf macro.
* m4/hash.m4 (gl_HASH): Don't require AM_STDBOOL_H.
2011-05-23 Bruno Haible <bruno@clisp.org>
getugroups: Fix module description.
* modules/getugroups (Include): Set to "getugroups.h".
2011-05-23 Bruno Haible <bruno@clisp.org>
linkat: Simplify autoconf macro.
* m4/linkat.m4 (gl_FUNC_LINKAT): Don't require gl_FUNC_LINK.
2011-05-23 Bruno Haible <bruno@clisp.org>
Eric Blake <eblake@redhat.com>
linkat, renameat: Update dependencies.
* modules/renameat (Depends-on): Add dosname, save-cwd. Remove stpcpy.
* modules/linkat (Depends-on): Likewise. Remove also readlink,
symlinkat.
2011-05-23 Jim Meyering <meyering@redhat.com>
maint.mk: more tight_scope improvements
* top/maint.mk: (_gl_TS_var_match): Use $(_gl_TS_extern) here, too.
(_gl_TS_headers): Define only in if-0'd block.
(_gl_TS_dir): Omit the $(srcdir)/ prefix. Sometimes we need it,
sometimes we must *not* use it. Adjust uses accordingly.
(sc_tight_scope): Use much simpler grep-based test to determine
whether we skip this rule.
maint.mk: generalize/improve the tight-scope rule
* top/maint.mk: Emit a warning when the test is skipped.
(_gl_TS_dir): Add $(srcdir)/ prefix.
(_gl_TS_function_match): Simplify, rather than trying
to enumerate common types. Otherwise, it would fail to match an
"extern unsigned char const *" declaration in idutils.
(_gl_TS_extern): Do not endorse use of "XTERN", but do provide
a way to support use of that type of macro.
(_gl_TS_var_match): Simplify regexp.
(_gl_TS_obj_files): New configurable variable.
(_gl_TS_headers): Likewise.
2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
verify: fix bug when gnulib <assert.h> is also included
* lib/verify.h (verify, verify_true): Define if _GL_VERIFY_H
is defined, not if _GL_STATIC_ASSERT_H is not defined.
Perhaps there's a better way, but this fixes the immediate problem.
Problem reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00478.html>.
2011-05-22 Bruno Haible <bruno@clisp.org>
xgetcwd: Simplify autoconf macro.
* m4/xgetcwd.m4 (gl_XGETCWD): Don't require gl_FUNC_GETCWD.
2011-05-22 Bruno Haible <bruno@clisp.org>
New module 'mktime-internal'.
* modules/mktime-internal: New file.
* m4/timegm.m4 (gl_PREREQ_TIMEGM): Move contents to ...
* m4/mktime.m4 (gl_FUNC_MKTIME_INTERNAL): New macro. Define
mktime_internal as a C macro if libc has __mktime_internal.
* modules/timegm (Depends-on): Add mktime-internal. Remove mktime. Add
conditions.
* MODULES.html.sh (Date and time <time.h>): Add mktime-internal.
2011-05-22 Bruno Haible <bruno@clisp.org>
timegm: Correct mktime replacement statements.
* m4/timegm.m4 (gl_PREREQ_TIMEGM): Set REPLACE_MKTIME, instead of
defining mktime as a C macro. This completes a 2009-07-28 commit.
2011-05-22 Bruno Haible <bruno@clisp.org>
timegm: Simplify autoconf macro.
* m4/timegm.m4 (gl_PREREQ_TIMEGM): Don't require gl_TIME_R.
2011-05-21 Paul Eggert <eggert@cs.ucla.edu>
clock-time: change to LGPLv2+.
* modules/clock-time: Change from GPL to LGPLv2+. Actually, it's
BSD-like but we have no mark for that; this is good enough for now.
2011-05-21 Bruno Haible <bruno@clisp.org>
strerror_r: Fix comments.
* lib/strerror_r.c (strerror_r): Fix comment about Cygwin and sys_nerr.
2011-05-21 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Fix possible link error.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Move determination of
HAVE_SETENV and REPLACE_SETENV and AC_LIBOBJ invocation from here...
(gl_FUNC_SETENV): ... to here.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL_SEPARATE): Update comment.
* m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): Likewise.
2011-05-21 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Assume strerror() exists.
* modules/relocatable-prog-wrapper (Files): Remove lib/strerror.c,
m4/strerror.m4.
(configure.ac): Don't invoke gl_FUNC_STRERROR_SEPARATE.
* lib/relocwrapper.c: Remove mention of strerror module.
* lib/strerror.c: Assume REPLACE_STRERROR is 1.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Remove macro.
(gl_FUNC_STRERROR): Inline it here. Don't define REPLACE_STRERROR as a
C macro.
2011-05-21 Bruno Haible <bruno@clisp.org>
select: Simplify replacement idiom.
* m4/select.m4 (gl_FUNC_SELECT): Set REPLACE_SELECT also on native
Win32 platforms.
* lib/sys_select.in.h (select): Simplify accordingly.
* modules/select (Depends-on): Likewise.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkdir-p: Simplify autoconf macro.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't require gl_FUNC_LCHMOD,
gl_FUNC_LCHOWN.
2011-05-21 Eric Blake <eblake@redhat.com>
strerror_r: avoid clobbering strerror on cygwin
* lib/strerror_r.c (strerror_r): Don't use cygwin's strerror_r;
fall back instead to sys_errlist.
* modules/strerror (configure.ac): Add witness.
* tests/test-strerror_r.c (main): Enhance test.
* doc/posix-functions/strerror_r.texi (strerror_r): Document it.
* tests/test-perror2.c (main): Free memory before exit.
2011-05-21 Bruno Haible <bruno@clisp.org>
mkdtemp: Use gnulib naming conventions.
* m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Renamed from gt_FUNC_MKDTEMP.
* modules/mkdtemp (configure.ac): Update.
2011-05-20 Eric Blake <eblake@redhat.com>
strerror_r: avoid corrupting errno on Solaris
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Check for Solaris behavior.
* doc/posix-functions/strerror_r.texi (strerror_r): Document it.
strerror_r: avoid compiler warning
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't return a char*.
strerror_r: simplify AIX code
* lib/strerror_r.c (strerror_r): Filter out buflen of 1 up front.
test-perror: avoid spurious failure on FreeBSD
* modules/perror-tests (Depends-on): Add strerror, now that
strerror_r no longer pulls it in.
2011-05-20 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Remove unused dependencies.
* modules/strerror_r-posix (Depends-on): Remove strerror.
Reported by Eric Blake.
2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
intprops: remove assumption about A|B representation
* lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Do not assume that A|B
is a valid integer if both A and B are. Although this is true for
all known practical hosts, the C standard doesn't guarantee it,
and the code need not assume it. Also, this change may work around
HP-UX 11.23 and IRIX 6.5 cc bugs reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00426.html>.
2011-05-20 Eric Blake <eblake@redhat.com>
perror: work around FreeBSD bug
* m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r
is broken. Move AC_LIBOBJ...
* modules/perror (configure.ac): Here.
* doc/posix-functions/perror.texi (perror): Document this.
* tests/test-perror2.c (main): Enhance test.
test-perror: check for strerror interactions
* tests/macros.h (STREQ): Add macro.
* modules/perror-tests (Files): Add second test.
* tests/test-perror2.c (main): New file.
* doc/posix-functions/perror.texi (perror): Document glibc bug.
test-perror: rewrite to use init script
* modules/perror-tests (Files): Add init.sh.
* tests/test-perror.sh: Use temporary directory.
2011-05-20 Jim Meyering <meyering@redhat.com>
maint: replace misused "a" with "an"
* doc/intprops.texi: "a integer"
* doc/regex.texi: "a explanation"
* lib/alignof.h: "a object"
* lib/argmatch.h: "a explanation"
* lib/argp-help.c: "a option" and "a OPTION_DOC"
* lib/stdint.in.h: "a integer"
* lib/userspec.c: "a owner"
* doc/gnulib.texi: Fix "a idea", and reword.
2011-05-19 Jim Meyering <meyering@redhat.com>
maint: correct misuse of "a" and "an"
* doc/regex.texi (Collating Symbol Operators): s/an close.../a close/
* lib/argp-help.c: "an docum...": s/an/a/
* lib/argp-parse.c: "An vector": s/An/A/
* lib/execute.c: "an native": s/an/a/
* lib/spawn-pipe.c: Likewise.
* lib/gc.h: "an Gc_rc": s/an/a/
* lib/unigbrk.in.h: "an grapheme": s/an/a/
* lib/fts.c: "an stat.st_dev": s/an/a/
2011-05-19 Paul Eggert <eggert@cs.ucla.edu>
intprops-tests: work around HP-UX 11.23 cc bug with constants
* tests/test-intprops.c (VERIFY): New macro.
(main): Use it, instead of verify, to work around the compiler bug; see
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>.
intprops: work around IRIX 6.5 cc bug with 0u - 0u + -1
See http://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html
* lib/intprops.h (_GL_INT_NEGATE_CONVERT): New macro.
(_GL_INT_SIGNED, _GL_INT_MAXIMUM, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW): Use it.
intprops-tests: revert unsigned part of previous change
* tests/test-intprops.c (UINT_MAX, ULONG_MAX, UINTMAX_MAX, U0, U1):
Remove; they weren't actually needed. All uses of U0 and U1 removed,
and other casts to 'unsigned int' reverted to 'u' suffixes. See
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>.
2011-05-19 Bruno Haible <bruno@clisp.org>
strerror_r: Work around strerror_r() change in Cygwin 1.7.8.
* lib/strerror_r.c (strerror_r) [CYGWIN]: Recognize when the system's
strerror_r() returned without filling the buffer.
Reported by Eric Blake.
2011-05-19 Eric Blake <eblake@redhat.com>
strerror_r: guarantee unchanged errno
* lib/strerror_r.c (strerror_r): Guarantee unchanged errno.
* lib/strerror-impl.h (strerror): Set errno to match strerror_r
failure.
* tests/test-strerror_r.c (main): Enhance test.
2011-05-19 Bruno Haible <bruno@clisp.org>
strerror_r: Reorder #if blocks.
* lib/strerror_r.c (strerror_r): Reorder conditionals in the function
for consistency with the previous commit.
2011-05-19 Bruno Haible <bruno@clisp.org>
perror: Avoid clobbering the strerror buffer when possible.
* lib/strerror-impl.h: New file, extracted from lib/strerror.c.
* lib/strerror.c: Include it.
* modules/strerror (Files): Add lib/strerror-impl.h.
* lib/perror.c: Include <stdlib.h>, intprops.h, verify.h.
(my_strerror): New function, defined through lib/strerror-impl.h.
(perror): Use it instead of strerror.
* modules/perror (Files): Add lib/strerror-impl.h.
(Depends-on): Remove strerror. Add intprops, verify, strerror_r-posix.
2011-05-19 Eric Blake <eblake@redhat.com>
strerror_r: fix on newer cygwin
* lib/strerror_r.c (strerror_r): Cygwin now has
__xpg_strerror_r, use it.
2011-05-19 Bruno Haible <bruno@clisp.org>
strerror_r: Avoid clobbering the strerror buffer when possible.
* lib/strerror.c: Define _NETBSD_SOURCE. Include <nl_types.h>.
(sys_nerr, sys_errlist): New declarations.
(strerror_r): Be careful not to clobber the strerror buffer on NetBSD,
HP-UX, native Win32, IRIX, and 32-bit Solaris.
* m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test whether catgets exists.
2011-05-19 Bruno Haible <bruno@clisp.org>
strerror_r: Fix test failure on mingw.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
EXTEND_STRERROR_R.
* lib/strerror_r.c (strerror_r): Test the various GNULIB_defined_*
macros from errno.in.h instead.
2011-05-19 Eric Blake <eblake@redhat.com>
strerror: relax test for Solaris
* tests/test-strerror.c (main): Permit Solaris behavior.
* tests/test-strerror_r.c (main): Likewise.
strerror: enforce POSIX ruling on strerror(0)
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
* lib/strerror_r.c (rpl_strerror_r): Work around it.
* doc/posix-functions/strerror.texi (strerror): Document it.
* doc/posix-functions/strerror_r.texi (strerror_r): Likewise.
* tests/test-strerror.c (main): Strengthen test.
* tests/test-strerror_r.c (main): Likewise.
2011-05-19 Paul Eggert <eggert@cs.ucla.edu>
intprop-tests: port to older and more-pedantic compilers
* modules/intprops-tests (Files): Add tests/macros.h.
* tests/test-intprops.c: Include macros.h.
(TYPE_IS_INTEGER): Use ASSERT, not verify, to test this macro, as
it's no longer documented to expand to an integer constant expression.
(TYPE_SIGNED): Use ASSERT, not verify, to test this macro when the
argument is floating point, as it's no longer documented to expand
to an integer constant expression in that case.
(UINT_MAX, ULONG_MAX, UINTMAX_MAX): Redefine to work around
compiler bugs reported by Bruno Haible. See
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>.
(U0, U1): New constants, to work around the same bugs. Also,
in tests, use e.g., "(unsigned int) 39" rather than "39u".
intprops: work around C compiler bugs
* lib/intprops.h (INT_MULTIPLY_RANGE_OVERFLOW): Work around compiler
bug in Sun C 5.11 2010/08/13 and other compilers; see
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00401.html>.
intprops: TYPE_IS_INTEGER, TYPE_SIGNED not integer constant exprs
* doc/intprops.texi (Integer Type Determination): Fix
documentation for TYPE_IS_INTEGER: it returns an constant
expression, not an integer constant expression. Fix doc for
TYPE_SIGNED: it returns an integer constant expression only if its
argument is an integer type. (TYPE_IS_INTEGER is the same, but is
hardly worth documented that way....)
2011-05-18 Bruno Haible <bruno@clisp.org>
strerror_r: Avoid clobbering the strerror buffer when possible.
* lib/strerror_r.c (strerror_r): Merge the three implementations.
Handle gnulib defined errno values here. When strerror() returns NULL
or an empty string, return EINVAL.
* lib/strerror.c (strerror): Always call strerror_r. Don't handle
gnulib defined errno values here.
* modules/strerror (Depends-on): Add verify, strerror_r-posix.
2011-05-18 Eric Blake <eblake@redhat.com>
fnmatch: avoid compiler warning
* lib/fnmatch_loop.c (FCT): Use correct type.
Reported by Matthias Bolte.
2011-05-13 Jim Meyering <meyering@redhat.com>
maint.mk: three new prohibit_<HDR>_without_use rules
* top/maint.mk (sc_prohibit_stdio--_without_use): New rule.
(sc_prohibit_stdio-safer_without_use): Likewise.
(sc_prohibit_xfreopen_without_use): Likewise.
2011-05-17 Jim Meyering <meyering@redhat.com>
announce-gen: fail if the NEWS delta is empty
If there's nothing noteworthy in NEWS, then either you forgot
or you shouldn't be releasing.
* build-aux/announce-gen: Die if the NEWS delta is effectively empty.
2011-05-17 Pádraig Brady <P@draigBrady.com>
* top/maint.mk (_gl_tight_scope:): Automatically exclude compiler
reserved symbols starting with double underscore from the check.
2011-05-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: add doc
* doc/intprops.texi: New file, documenting intprops.
* doc/gnulib.texi (Particular Modules): Include it.
verify: add doc to gnulib manual and fix example
* doc/gnulib.texi (Compile-time Assertions): New node, for 'verify'.
* doc/verify.texi (Compile-time Assertions): Update 'assert' doc.
(Compile-time Assertions): Fix example so it can't overflow.
2011-05-17 Jim Meyering <meyering@redhat.com>
warnings.m4: don't usurp save_CPPFLAGS variable name
* m4/warnings.m4: Prefix local temporary variable name with gl_.
doc: fix typo
* doc/gnulib-intro.texi (Target Platforms): s/is/are/
2011-05-16 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
doc: Tweak recent change.
* README (Portability guidelines): Tweak new text.
* doc/gnulib-intro.texi (Target Platforms): Likewise. Mention
Interix 6.1.
2011-05-16 Eric Blake <eblake@redhat.com>
inttypes: avoid autoconf warning
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Only expand once.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
2011-05-16 Sam Steingold <sds@gnu.org>
and Eric Blake <eblake@redhat.com>
vc-list-files: accept multiple directory operands
* build-aux/vc-list-files: Iterate over all remaining operands.
2011-05-16 Bruno Haible <bruno@clisp.org>
Fix confusion regarding deprecated modules.
* modules/calloc (Status, Notice): Mark module as deprecated, not
obsolete.
* modules/fnmatch-posix (Status, Notice): Likewise.
* modules/getdate (Status, Notice): Likewise.
* modules/getopt (Status, Notice): Likewise.
* modules/malloc (Status, Notice): Likewise.
* modules/pipe (Status, Notice): Likewise.
* modules/realloc (Status, Notice): Likewise.
* modules/rename-dest-slash (Status, Notice): Likewise.
* modules/unictype/bidicategory-all (Status, Notice): Likewise.
* modules/unictype/bidicategory-byname (Status, Notice): Likewise.
* modules/unictype/bidicategory-name (Status, Notice): Likewise.
* modules/unictype/bidicategory-of (Status, Notice): Likewise.
* modules/unictype/bidicategory-test (Status, Notice): Likewise.
2011-05-16 Bruno Haible <bruno@clisp.org>
doc: List the target platforms.
* doc/gnulib-intro.texi (Target Platforms): New section.
* doc/gnulib.texi (Introduction): Update menu.
* README (Portability guidelines): Refer to the new section. Update
statement about oldest supported environment. Remove rationale why
<errno.h>, <string.h>, <stdlib.h> are assumed. Update example of an
unportable C89 function.
Reported by Bastien Roucariès <roucaries.bastien@gmail.com> and
Charles Wilson <cygwin@cwilson.fastmail.fm>. Feedback from Paul Eggert.
2011-05-16 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better.
2011-05-13 Paul Eggert <eggert@cs.ucla.edu>
intprops-tests: new module
* modules/intprops-tests, tests/test-intprops.c: New files.
intprops: add safe, portable integer overflow checking
* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_TWOS_COMPLEMENT):
(_GL_INT_SIGNED, _GL_INT_MINIMUM, _GL_INT_MAXIMUM):
(_GL_SIGNED_INT_MINIMUM, INT_ADD_RANGE_OVERFLOW):
(INT__SUBTRACT__RANGE_OVERFLOW, INT_NEGATE_RANGE_OVERFLOW):
(INT_MULTIPLY_RANGE_OVERFLOW, INT_REMAINDER_RANGE_OVERFLOW):
(INT_LEFT_SHIFT_RANGE_OVERFLOW, _GL_ADD_OVERFLOW):
(_GL__SUBTRACT__OVERFLOW, _GL_MULTIPLY_OVERFLOW, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW, _GL_UNSIGNED_NEG_MULTIPLE, INT_ADD_OVERFLOW):
(INT__SUBTRACT__OVERFLOW, INT_NEGATE_OVERFLOW, INT_MULTIPLY_OVERFLOW):
(INT_DIVIDE_OVERFLOW, INT_REMAINDER_OVERFLOW):
(INT_LEFT_SHIFT_OVERFLOW, _GL_BINARY_OP_OVERFLOW): New macros.
2011-05-12 James Youngman <jay@gnu.org>
Add a test for glibc's Bugzilla bug #12378.
* m4/fnmatch.m4: Use gnulib's fnmatch if the system fnmatch
doesn't allow the literal matching of a lone "[" (which is
required by POSIX).
* tests/test-fnmatch.c (main): Check that "[/b" matches itself.
2011-05-11 Ulrich Drepper <drepper@gmail.com>
Sync glibc change fixing Bugzilla bug #12378.
* lib/fnmatch_loop.c (FCT): When matching '[' keep track of
beginning and fall back to matching as normal character if the
string ends before the matching ']' is found. This is what POSIX
requires.
2011-05-13 Eric Blake <eblake@redhat.com>
getcwd-lgpl: relax test for FreeBSD
* doc/posix-functions/getcwd.texi (getcwd): Document portability
issue.
* tests/test-getcwd-lgpl.c (main): Relax test.
Reported by Matthias Bolte.
2011-05-11 Eric Blake <eblake@redhat.com>
test-fflush: silence compiler warning
* tests/test-fflush.c (main): Don't fclose a NULL pointer.
2011-05-11 Bruno Haible <bruno@clisp.org>
canonicalize, canonicalize-lgpl: Avoid crash dialog on MacOS X.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add GL_NOCRASH code.
* modules/canonicalize (Depends-on): Add 'nocrash'.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* doc/posix-functions/realpath.texi: Update platforms list.
Reported by Ryan Schmidt <ryandesign@macports.org>.
2011-05-11 Bruno Haible <bruno@clisp.org>
group-member: Declare function in <unistd.h>.
* lib/unistd.in.h (group_member): New declaration.
* lib/group-member.h: Remove file.
* lib/group-member.c: Include <unistd.h> instead of group-member.h.
* tests/test-unistd-c++.cc: Check signature of group_member.
* m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Require
gl_UNISTD_H_DEFAULTS. Set HAVE_GROUP_MEMBER.
* m4/unistd_h.m4 (gl_UNISTD_H): Check whether group_member is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GROUP_MEMBER,
HAVE_GROUP_MEMBER.
* modules/group-member (Files): Remove lib/group-member.h.
(Depends-on): Add unistd. Specify conditions.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Change to <unistd.h>.
* modules/unistd (Makefile.am): Substitute GNULIB_GROUP_MEMBER,
HAVE_GROUP_MEMBER.
* NEWS: Mention the change.
* lib/euidaccess.c: Don't include group-member.h.
2011-05-11 Bruno Haible <bruno@clisp.org>
group-member: Document module.
* doc/glibc-functions/group_member.texi: Mention the 'group-member'
module.
2011-05-11 Bruno Haible <bruno@clisp.org>
fclose: Fix mistake earlier today.
* lib/fclose.c (rpl_fclose): Don't assume that EOF < 0.
2011-05-11 Eric Blake <eblake@redhat.com>
fclose: preserve fflush errors
* lib/fclose.c (rpl_fclose): Don't lose fflush errors.
Reported by Jim Meyering.
bootstrap: support a prereq of 'rpcgen -' on RHEL5
* build-aux/bootstrap (check_versions): When no specific version
is required, merely check that the app produces an exit status
that indicates its existence.
maint.mk: drop redundant check
* top/maint.mk (sc_the_the): Delete; sc_prohibit_doubled_word does
the same but better.
2011-05-11 Bruno Haible <bruno@clisp.org>
fclose: Fix possible link error.
* lib/fclose.c (rpl_fclose): Invoke _gl_unregister_fd, not
unregister_shadow_fd. Improve comments.
* lib/sockets.c (close_fd_maybe_socket): Add comments. Reported by
Eric Blake.
2011-05-11 Jim Meyering <meyering@redhat.com>
maint.mk: improve "can not" detection and generalize rule name
* top/maint.mk (sc_prohibit_undesirable_word_seq): Renamed from
sc_prohibit_can_not, since we'll probably add a few more word pairs here.
Use the same technique as in sc_prohibit_doubled_word, so that
we recognize "can not" also when the words are separated by a newline.
Suggested by Eric Blake.
(perl_filename_lineno_text_): Define. Factored out of...
(prohibit_doubled_word_): ...here. Use the new definition.
(prohibit_undesirable_word_seq_): New var. Use it here, too.
(prohibit_undesirable_word_seq_RE_): New overridable variable.
(ignore_undesirable_word_sequence_RE_): New overridable variable.
2011-05-10 Eric Blake <eblake@redhat.com>
fclose: avoid double close race when possible
* lib/fclose.c (rpl_fclose): Rewrite to avoid double-close race on
all but WINDOWS_SOCKETS.
2011-05-10 Bastien Roucariès <roucaries.bastien@gmail.com>
openat: correct new comment
* lib/openat-proc.c (openat_proc_name): Correct the comment.
2011-05-10 Jim Meyering <meyering@redhat.com>
openat: add comments
* lib/openat-proc.c (openat_proc_name): Add comments,
mostly from Eric Blake.
2011-05-09 Eric Blake <eblake@redhat.com>
openat: reduce syscalls in first probe of /proc
* lib/openat-proc.c (openat_proc_name): Require that /proc/self/fd
be a directory. Simplify the probe for .. bugs.
* modules/openat (Depends-on): Drop same-inode.
Reported by Bastien ROUCARIES.
2011-05-09 Jim Meyering <meyering@redhat.com>
maint.mk: change semantics/name of tight_scope variables
* top/maint.mk (_gl_TS_var_match, _gl_TS_function_match):
Rename variables to align with semantics that make them more useful.
maint.mk: tweak new rule's name not to impinge
* top/maint.mk (_gl_tight_scope): Rename from sc_tight_scope-0.
(sc_tight_scope): Use new rule name rather than $@-0.
maint.mk: add a syntax-check rule to ensure tightly-scoped symbols
* top/maint.mk (sc_tight_scope): New rule.
(sc_tight_scope-0): New rule, ifdef'd out.
(_gl_TS_dir): Default.
(_gl_TS_unmarked_extern_functions, _gl_TS_function_regex): Define.
(_gl_TS_unmarked_extern_vars, _gl_TS_var_regex): Define.
2011-05-09 Simon Josefsson <simon@josefsson.org>
* m4/gc.m4: Remove gl_PREREQ_GC (not used). Reported by Bruno
Haible <bruno@clisp.org>.
2011-05-08 Bruno Haible <bruno@clisp.org>
Comments.
* m4/isnanf.m4: Add comment.
* m4/isnanl.m4: Likewise.
2011-05-08 Bruno Haible <bruno@clisp.org>
glob: Remove obsolete macro.
* m4/glob.m4 (gl_GLOB_SUBSTITUTE): Remove macro.
2011-05-08 Paul Eggert <eggert@cs.ucla.edu>
intprops: Sun C 5.11 supports __typeof__
* lib/intprops.h (_GL_HAVE___TYPEOF__): New macro, which is set
for either GCC 2 or later, as before, or for Sun C 5.11 or later,
which is new.
(_GL_SIGNED_TYPE_OR_EXPR): Use it.
intprops: switch to usual gnulib indenting and naming
* lib/intprops.h (_GL_INTPROPS_H): Rename from GL_INTPROPS_H.
(_GL_SIGNED_TYPE_OR_EXPR): Rename from signed_type_or_expr__.
* tests/test-inttostr.c (IS_TIGHT): Adjust to above renaming.
2011-05-08 Jim Meyering <meyering@redhat.com>
maint.mk: suppress "Entering/Leaving directory" diag in announcement
* top/maint.mk (release-prep): Use make's --no-print-directory
option when generating the announcement. This eliminates the
pesky "make[2]: Entering/Leaving directory" diagnostics in the
generated announcement template.
2011-05-08 Bruno Haible <bruno@clisp.org>
tzset: Fix gettimeofday wrapper on Solaris 2.6.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): When invoking
gl_GETTIMEOFDAY_REPLACE_LOCALTIME, also set REPLACE_GETTIMEOFDAY.
2011-05-07 Paul Eggert <eggert@cs.ucla.edu>
ignore-value, verify: Omit include files from lib_SOURCES.
* modules/ignore-value, modules/verify (Makefile.am):
Don't put ignore-value.h, or verify.h, into lib_SOURCES, as
that leads Automake to duplicate use of am__objects_... variables
in Makefile.in. See
<http://lists.gnu.org/r/emacs-devel/2011-05/msg00257.html>.
2011-05-07 Bruno Haible <bruno@clisp.org>
fclose: Simplify autoconf macro.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Assume gl_FUNC_FFLUSH_STDIN is
defined.
2011-05-07 Bruno Haible <bruno@clisp.org>
canonicalize-lgpl: Fix autoconf macro ordering bug.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Require
gl_STDLIB_H_DEFAULTS.
2011-05-06 Eric Blake <eblake@redhat.com>
maintainer-makefile: make sc_po_check easier to tune
* top/maint.mk (sc_po_check): Allow overriding which non-VC files
to probe for strings, such as an alternate location for gnulib.
fclose: guarantee behavior on seekable stdin
* modules/fclose (Depends-on): Add fflush.
* doc/posix-functions/fclose.texi (fclose): Document this.
* tests/test-fclose.c (main): Make test for this unconditional.
2011-05-06 Bruno Haible <bruno@clisp.org>
fflush, fpurge: Relicense under LGPLv2+.
* modules/fflush (License): Change from LGPLv3+ to LGPLv2+.
* modules/fpurge (License): Likewise.
With permission from Eric Blake and Jim Meyering.
Suggested by Eric Blake.
2011-05-06 Karl Berry <karl@gnu.org>
* MODULES.html.sh (func_all_modules): remove exit.
2011-05-06 Jim Meyering <meyering@redhat.com>
maint.mk: use info-gnu@ as the default only for a stable release
* top/maint.mk: Don't default to info-gnu for alpha or beta releases.
For those, just use $(PACKAGE_BUGREPORT), in which case we don't have
to set the Mail-Followup-To header. Prompted by Reuben Thomas in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26488
2011-05-05 Paul Eggert <eggert@cs.ucla.edu>
assert-h: new module, which supports C1X-style static_assert
* lib/assert.in.h, m4/assert_h.m4, modules/assert-h: New files.
* lib/verify.h: Revamp so that this can be copied into assert.h,
while retaining the ability to use it standalone as before.
Rename private identifiers so as not to encroach on the
standard C namespace, since this is now used by assert.h.
(_GL_VERIFY_TYPE): New macro, factoring out differing parts of
the old verify_true.
(_GL_VERIFY_TRUE): New macro, with much of the contents of
the old verify_true. Use _GL_VERIFY_TYPE.
(_GL_VERIFY): New macro, with much of the contents of the old verify.
(static_assert): New macro, if _GL_STATIC_ASSERT_H
is defined and static_assert is not; _GL_STATIC_ASSERT_H is
defined when this file is copied into the replacement assert.h.
(_Static_assert): New macro, if _GL_STATIC_ASSERT_H is defined
and _Static_assert is not built in.
(verify_true, verify): Define only if _GL_STATIC_ASSERT_H is not
defined, and use the new macros mentioned above.
* doc/posix-headers/assert.texi: Document this.
2011-05-05 Bruno Haible <bruno@clisp.org>
fclose, fflush: Respect rules for use of AC_LIBOBJ.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Don't invoke gl_REPLACE_FCLOSE.
* m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_FFLUSH_STDIN and
gl_REPLACE_FCLOSE here.
* modules/fflush (Depends-on): Remove fclose.
* doc/posix-functions/fclose.texi: Mention module 'fflush' only in
combination with module 'fclose'.
2011-05-05 Bruno Haible <bruno@clisp.org>
fflush, fseeko: Respect rules for use of AC_LIBOBJ.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): New macro, extracted from
gl_FUNC_FFLUSH.
(gl_FUNC_FFLUSH): Use it.
(gl_REPLACE_FFLUSH): Don't invoke gl_REPLACE_FSEEKO.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Invoke gl_FUNC_FFLUSH_STDIN and
gl_REPLACE_FSEEKO here.
2011-05-05 Bruno Haible <bruno@clisp.org>
tzset: Relicense under LGPL.
* modules/tzset (License): Change to LGPL.
No agreement needed; it's a no-op.
strtoimax, strtoumax: Relicense under LGPL.
* modules/strtoimax (License): Change to LGPL.
* modules/strtoumax (License): Likewise.
With permission from Jim Meyering, Paul Eggert:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00124.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00109.html>
getgroups: Relicense under LGPL.
* modules/getgroups (License): Change to LGPL.
With permission from Jim Meyering, Paul Eggert, Eric Blake:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00111.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00148.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00138.html>
nanosleep: Relicense under LGPL.
* modules/nanosleep (License): Change to LGPL.
With permission from Jim Meyering, Paul Eggert, Eric Blake, Bruno
Haible:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00111.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00148.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00138.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00131.html>
futimens: Relicense under LGPL.
* modules/futimens (License): Change to LGPL.
With permission from Eric Blake:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00138.html>
fflush: Relicense under LGPL.
* modules/fflush (License): Change to LGPL.
With permission from Eric Blake, Bruno Haible, Jim Meyering:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00138.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00131.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00133.html>
tmpfile: Relicense under LGPL.
* modules/tmpfile (License): Change to LGPL.
With permission from Ben Pfaff:
<http://lists.gnu.org/r/bug-gnulib/2010-12/msg00185.html>
isfinite: Relicense under LGPL.
* modules/isfinite (License): Change to LGPL.
With permission from Ben Pfaff, Bruno Haible:
<http://lists.gnu.org/r/bug-gnulib/2010-12/msg00185.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00130.html>
acosl..tanl: Relicense under LGPL.
* modules/acosl (License): Change to LGPL.
* modules/asinl (License): Likewise.
* modules/atanl (License): Likewise.
* modules/cosl (License): Likewise.
* modules/expl (License): Likewise.
* modules/logl (License): Likewise.
* modules/sinl (License): Likewise.
* modules/sqrtl (License): Likewise.
* modules/tanl (License): Likewise.
Source code originally from glibc and Paolo Bonzini. Agreements:
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00137.html>
<http://lists.gnu.org/r/bug-gnulib/2011-05/msg00128.html>
2011-05-05 Bruno Haible <bruno@clisp.org>
signal: Define sighandler_t.
* lib/signal.in.h (sighandler_t): New type.
* m4/signal_h.m4 (gl_SIGNAL_H): Require AC_USE_SYSTEM_EXTENSIONS. Test
whether sighandler_t is defined.
(gl_SIGNAL_H_DEFAULTS): Initialize HAVE_SIGHANDLER_T.
* modules/signal (Depends-on): Add extensions.
(Makefile.am): Substitute HAVE_SIGHANDLER_T.
* doc/posix-headers/signal.texi: Mention the problem with sighandler_t.
Suggested by Markus Steinborn <gnugv_maintainer@yahoo.de>.
2011-05-05 Eric Blake <eblake@redhat.com>
maint: remove useless REPLACE_*_H macros
* m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Delete.
* m4/dirent_h.m4 (gl_REPLACE_DIRENT_H): Likewise.
* m4/locale_h.m4 (gl_REPLACE_LOCALE_H): Likewise.
* m4/poll_h.m4 (gl_REPLACE_POLL_H): Likewise.
* m4/spawn_h.m4 (gl_REPLACE_SPAWN_H): Likewise.
* m4/sys_ioctl_h.m4 (gl_REPLACE_SYS_IOCTL_H): Likewise.
* m4/wchar_h.m4 (gl_REPLACE_WCHAR_H): Likewise.
* m4/btowc.m4: Update callers.
* m4/dirfd.m4: Likewise.
* m4/duplocale.m4: Likewise.
* m4/fchdir.m4: Likewise.
* m4/fdopendir.m4: Likewise.
* m4/inet_ntop.m4: Likewise.
* m4/inet_pton.m4: Likewise.
* m4/ioctl.m4: Likewise.
* m4/mbrlen.m4: Likewise.
* m4/mbrtowc.m4: Likewise.
* m4/mbsinit.m4: Likewise.
* m4/mbsnrtowcs.m4: Likewise.
* m4/mbsrtowcs.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/setlocale.m4: Likewise.
* m4/wcrtomb.m4: Likewise.
* m4/wcsnrtombs.m4: Likewise.
* m4/wcsrtombs.m4: Likewise.
* m4/wctob.m4: Likewise.
* m4/wcwidth.m4: Likewise.
* modules/posix_spawn: Likewise.
* modules/posix_spawn_file_actions_addclose: Likewise.
* modules/posix_spawn_file_actions_adddup2: Likewise.
* modules/posix_spawn_file_actions_addopen: Likewise.
* modules/posix_spawn_file_actions_destroy: Likewise.
* modules/posix_spawn_file_actions_init: Likewise.
* modules/posix_spawnattr_destroy: Likewise.
* modules/posix_spawnattr_getflags: Likewise.
* modules/posix_spawnattr_getpgroup: Likewise.
* modules/posix_spawnattr_getschedparam: Likewise.
* modules/posix_spawnattr_getschedpolicy: Likewise.
* modules/posix_spawnattr_getsigdefault: Likewise.
* modules/posix_spawnattr_getsigmask: Likewise.
* modules/posix_spawnattr_init: Likewise.
* modules/posix_spawnattr_setflags: Likewise.
* modules/posix_spawnattr_setpgroup: Likewise.
* modules/posix_spawnattr_setschedparam: Likewise.
* modules/posix_spawnattr_setschedpolicy: Likewise.
* modules/posix_spawnattr_setsigdefault: Likewise.
* modules/posix_spawnattr_setsigmask: Likewise.
* modules/posix_spawnp: Likewise.
2011-05-04 Reuben Thomas <rrt@sc3d.org>
Add option to do-release-commit-and-tag to specify branch.
* build-aux/do-release-commit-and-tag: Add --branch.
2011-05-03 Bruno Haible <bruno@clisp.org>
Avoid unnecessary compilation units, through conditional dependencies.
* modules/accept (Depends-on): Add conditions to the dependencies.
* modules/acosl (Depends-on): Likewise.
* modules/argz (Depends-on): Likewise.
* modules/asinl (Depends-on): Likewise.
* modules/atanl (Depends-on): Likewise.
* modules/atoll (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/btowc (Depends-on): Likewise.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/ceil (Depends-on): Likewise.
* modules/ceilf (Depends-on): Likewise.
* modules/ceill (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/close (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/cosl (Depends-on): Likewise.
* modules/dirfd (Depends-on): Likewise.
* modules/dprintf (Depends-on): Likewise.
* modules/dprintf-posix (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/euidaccess (Depends-on): Likewise.
* modules/expl (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fclose (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fflush (Depends-on): Likewise.
* modules/floor (Depends-on): Likewise.
* modules/floorf (Depends-on): Likewise.
* modules/floorl (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/frexp (Depends-on): Likewise.
* modules/frexp-nolibm (Depends-on): Likewise.
* modules/frexpl (Depends-on): Likewise.
* modules/frexpl-nolibm (Depends-on): Likewise.
* modules/fseek (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/ftell (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/futimens (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/getcwd-lgpl (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getdomainname (Depends-on): Likewise.
* modules/getgroups (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getline (Depends-on): Likewise.
* modules/getlogin_r (Depends-on): Likewise.
* modules/getopt-posix (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/getusershell (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/grantpt (Depends-on): Likewise.
* modules/iconv_open (Depends-on): Likewise.
* modules/iconv_open-utf (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/isfinite (Depends-on): Likewise.
* modules/isinf (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/ldexpl (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/logl (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mbrlen (Depends-on): Likewise.
* modules/mbrtowc (Depends-on): Likewise.
* modules/mbsinit (Depends-on): Likewise.
* modules/mbsnrtowcs (Depends-on): Likewise.
* modules/mbsrtowcs (Depends-on): Likewise.
* modules/mbtowc (Depends-on): Likewise.
* modules/memcmp (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/mkdtemp (Depends-on): Likewise.
* modules/mkfifo (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/mknod (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/perror (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/popen (Depends-on): Likewise.
* modules/posix_spawn (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addclose (Depends-on): Likewise.
* modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on): Likewise.
* modules/posix_spawnp (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/printf-posix (Depends-on): Likewise.
* modules/ptsname (Depends-on): Likewise.
* modules/putenv (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/readline (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/remove (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/rmdir (Depends-on): Likewise.
* modules/round (Depends-on): Likewise.
* modules/roundf (Depends-on): Likewise.
* modules/roundl (Depends-on): Likewise.
* modules/rpmatch (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setenv (Depends-on): Likewise.
* modules/setlocale (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/sigaction (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/sigprocmask (Depends-on): Likewise.
* modules/sinl (Depends-on): Likewise.
* modules/sleep (Depends-on): Likewise.
* modules/snprintf (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/sqrtl (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/strchrnul (Depends-on): Likewise.
* modules/strdup-posix (Depends-on): Likewise.
* modules/strerror (Depends-on): Likewise.
* modules/strerror_r-posix (Depends-on): Likewise.
* modules/strndup (Depends-on): Likewise.
* modules/strnlen (Depends-on): Likewise.
* modules/strptime (Depends-on): Likewise.
* modules/strsep (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/strstr-simple (Depends-on): Likewise.
* modules/strtod (Depends-on): Likewise.
* modules/strtoimax (Depends-on): Likewise.
* modules/strtok_r (Depends-on): Likewise.
* modules/strtoumax (Depends-on): Likewise.
* modules/symlink (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/tanl (Depends-on): Likewise.
* modules/tcgetsid (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* modules/trunc (Depends-on): Likewise.
* modules/truncf (Depends-on): Likewise.
* modules/truncl (Depends-on): Likewise.
* modules/uname (Depends-on): Likewise.
* modules/unlink (Depends-on): Likewise.
* modules/unlockpt (Depends-on): Likewise.
* modules/unsetenv (Depends-on): Likewise.
* modules/usleep (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/vdprintf (Depends-on): Likewise.
* modules/vdprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vprintf-posix (Depends-on): Likewise.
* modules/vsnprintf (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/wcrtomb (Depends-on): Likewise.
* modules/wcscasecmp (Depends-on): Likewise.
* modules/wcscspn (Depends-on): Likewise.
* modules/wcsdup (Depends-on): Likewise.
* modules/wcsncasecmp (Depends-on): Likewise.
* modules/wcsnrtombs (Depends-on): Likewise.
* modules/wcspbrk (Depends-on): Likewise.
* modules/wcsrtombs (Depends-on): Likewise.
* modules/wcsspn (Depends-on): Likewise.
* modules/wcsstr (Depends-on): Likewise.
* modules/wcstok (Depends-on): Likewise.
* modules/wcswidth (Depends-on): Likewise.
* modules/wctob (Depends-on): Likewise.
* modules/wctomb (Depends-on): Likewise.
* modules/wctype (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.
2011-05-03 Bruno Haible <bruno@clisp.org>
Support for conditional dependencies.
* doc/gnulib.texi (Module description): Document the syntax of
conditional dependencies.
* gnulib-tool: New option --conditional-dependencies.
(func_usage): Document it.
(cond_dependencies): New variable.
(func_get_automake_snippet_conditional,
func_get_automake_snippet_unconditional): New functions, extracted from
func_get_automake_snippet.
(func_get_automake_snippet): Use them.
(sed_first_32_chars): New variable.
(func_module_shellfunc_name): New function.
(func_module_shellvar_name): New function.
(func_module_conditional_name): New function.
(func_uncond_add_module, func_conddep_add_module, func_cond_module_p,
func_cond_module_condition): New functions.
(func_modules_transitive_closure): Add support for conditional
dependencies.
(func_emit_lib_Makefile_am): For a conditional module, enclose the
conditional automake snippet in an automake conditional.
(func_emit_autoconf_snippets): Emit shell functions that contain the
code for conditional modules.
(func_import, func_create_testdir): Update specification.
2011-05-03 Eric Blake <eblake@redhat.com>
test-getaddrinfo: report error information
* tests/test-getaddrinfo.c (simple): Use err outside of dbprintf.
2011-05-03 Jim Meyering <meyering@redhat.com>
bootstrap: avoid build failure when $GZIP is set
* build-aux/bootstrap (check_versions): Do not treat $GZIP as a
program name. If defined at all, it is supposed to list gzip options.
Reported by Alan Curry in http://debbugs.gnu.org/8609
2011-05-03 Reuben Thomas <rrt@sc3d.org>
readme-release: new module with release instructions
* modules/readme-release: New module.
* top/README-release: New file, from coreutils, grep, diffutils.
* MODULES.html.sh (Support for maintaining and releasing): Add it.
2011-05-02 Eric Blake <eblake@redhat.com>
fflush: also replace fclose when fixing fflush
* modules/fflush (Depends-on): Add fclose.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Also replace fclose.
* lib/fclose.c (rpl_fclose): Don't cause spurious failures on
memstreams with no backing fd.
* doc/posix-functions/fclose.texi (fclose): Document the use of
fflush module to fix the bug.
* tests/test-fclose.c (main): Relax test when fclose is used in
isolation.
fclose: add some tests
* modules/fclose-tests: New test module.
* tests/test-fclose.c: New file.
* doc/posix-functions/fclose.texi (fclose): Document the bug.
fclose: reduced dependencies
* modules/fclose (Depends-on): Switch from fflush/fseeko to
simpler lseek.
* lib/fclose.c (rpl_fclose): Likewise.
Reported by Simon Josefsson.
exit: drop remaining clients
* modules/argmatch (Depends-on): Replace exit with stdlib.
* modules/copy-file (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise.
* modules/exitfail (Depends-on): Likewise.
* modules/obstack (Depends-on): Likewise.
* modules/pagealign_alloc (Depends-on): Likewise.
* modules/pipe-filter-gi (Depends-on): Likewise.
* modules/pipe-filter-ii (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/spawn-pipe (Depends-on): Likewise.
* modules/wait-process (Depends-on): Likewise.
* modules/xsetenv (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Add stdlib, for EXIT_FAILURE.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/long-options (Depends-on): Likewise.
* modules/pt_chown (Depends-on): Likewise.
* modules/sysexits (Depends-on): Likewise.
freading: relax license from LGPLv3+ to LGPLv2+
* modules/freading (License): Relax LGPL version.
2011-05-02 Bruno Haible <bruno@clisp.org>
fchdir: Remove unused dependencies.
* modules/fchdir (Depends-on): Remove include_next.
2011-05-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Refactor.
* gnulib-tool (func_emit_autoconf_snippet): New function, extracted
from func_emit_autoconf_snippets.
(func_emit_autoconf_snippets): Use it.
2011-05-02 Simon Josefsson <simon@josefsson.org>
* NEWS: Document removal of 'exit'.
* modules/exit: Remove file.
2011-05-01 Bruno Haible <bruno@clisp.org>
Update DEPENDENCIES.
* DEPENDENCIES (gettext): Recommend the newest release.
Reported by Simon Josefsson.
2011-05-01 Bruno Haible <bruno@clisp.org>
gnulib-tool: Reduce code duplication.
* gnulib-tool (func_emit_autoconf_snippets): New function.
(func_import, func_create_testdir): Use it.
2011-04-30 Eric Blake <eblake@redhat.com>
fclose: don't fail on non-seekable input stream
* modules/fclose (Depends-on): Add freading, fflush, fseeko.
* lib/fclose.c (rpl_fclose): Skip fflush for non-seekable input,
since fflush is allowed to fail in that case.
2011-04-30 Bruno Haible <bruno@clisp.org>
dup3: cleanup
* lib/dup3.c: Remove old code, leftover from 2009-12-16.
2011-04-30 Bruno Haible <bruno@clisp.org>
netdb: Make it work in C++ mode.
* lib/netdb.in.h (struct addrinfo): In C++, define as a C struct.
(getaddrinfo, freeaddrinfo, getnameinfo): Use macros from c++defs
module.
* m4/netdb_h.m4 (gl_NETDB_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR_FOR_TESTS.
* modules/netdb-tests (Depends-on): Add netdb-c++-tests.
* modules/netdb-c++-tests: New file.
* tests/test-netdb-c++.cc: New file.
2011-04-30 Bruno Haible <bruno@clisp.org>
New modules 'vfscanf', 'vscanf'.
* modules/vfscanf: New file.
* modules/vscanf: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Don't set GNULIB_VFSCANF, GNULIB_VSCANF
here.
* doc/posix-functions/vfscanf.texi: Mention module 'vfscanf'.
* doc/posix-functions/vscanf.texi: Mention module 'vscanf'.
2011-04-30 Bruno Haible <bruno@clisp.org>
passfd: Add comments.
* lib/passfd.c: Add comments about platforms.
2011-04-30 Bruno Haible <bruno@clisp.org>
sys_uio: Make <sys/uio.h> self-contained.
* lib/sys_uio.in.h: Include <sys/types.h> before <sys/uio.h>.
* doc/posix-headers/sys_uio.texi: Mention the OpenBSD problem.
2011-04-30 Bruno Haible <bruno@clisp.org>
sys_socket: Ensure 'struct iovec' definition.
* lib/sys_socket.in.h: Include <sys/uio.h> also on platforms that have
<sys/socket.h>.
* doc/posix-headers/sys_socket.texi: Mention the OpenBSD problem.
2011-04-30 Bruno Haible <bruno@clisp.org>
sys_uio: Protect definition of 'struct iovec'.
* lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define
it as a C struct.
2011-04-30 Bruno Haible <bruno@clisp.org>
manywarnings: fix indentation
* m4/manywarnings.m4: Indent by 2 spaces consistently.
2011-04-30 Pádraig Brady <P@draigBrady.com>
manywarnings: add -Wno-missing-field-initializers if needed.
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add the above
option if it's needed to allow initialization with { 0, }
2011-04-29 Reuben Thomas <rrt@sc3d.org>
announce-gen: cosmetic improvement
* build-aux/announce-gen: Strip any leading ./ from the NEWS file name.
2011-04-29 Jim Meyering <meyering@redhat.com>
vc-list-files: indent with spaces, not TABs
* build-aux/vc-list-files: Convert leading TABs to spaces,
to match the style of most other files in gnulib.
announce-gen: indent with spaces, not TABs
* build-aux/announce-gen: Convert all TABs to spaces, to match
the style of most other files in gnulib.
2011-04-29 Eric Blake <eblake@redhat.com>
quotearg: avoid uninitialized variable use
* lib/quotearg.c (quoting_options_from_style): Initialize
remaining fields, and ensure that custom styles are only used via
quoting_options rather than quoting_style.
2011-04-29 Jim Meyering <meyering@redhat.com>
maint.mk: remove unused VC-tag variable
* top/maint.mk (VC-tag): Remove unused variable.
2011-04-29 Bruno Haible <bruno@clisp.org>
netdb: fix gai_strerror replacements
* lib/netdb.in.h: Add _GL_FUNCDECL_RPL definitions.
* modules/netdb: Substitute it.
2011-04-29 Jim Meyering <meyering@redhat.com>
test-getcwd.c: avoid new set-but-not-used warning
* tests/test-getcwd.c (test_abort_bug): Exit nonzero for any problem,
not just the glibc/abort one that getcwd-abort-bug.m4 detects.
* m4/getcwd-abort-bug.m4: Update this now-duplicated code to match,
and adjust the code that sets gl_cv_func_getcwd_abort_bug accordingly.
test-hash.c: avoid a new shadowing warning
* tests/test-hash.c (main): Don't shadow "dup".
2011-04-28 Eric Blake <eblake@redhat.com>
getaddrinfo: fix gai_strerror signature
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Detect broken signatures,
and work around mingw with UNICODE defined.
(gl_PREREQ_GETADDRINFO): Drop redundant decl check.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Add witness.
* modules/netdb (Makefile.am): Substitute it.
* lib/netdb.in.h (gai_strerror): Declare replacement.
* lib/gai_strerror.c (rpl_gai_strerror): Fix signature.
* doc/posix-functions/gai_strerror.texi (gai_strerror): Document
the fix.
getsockopt: avoid compiler warning
* lib/getsockopt.c (rpl_getsockopt): Add a cast for mingw.
Reported by Matthias Bolte.
tests: drop unused link dependency
* modules/areadlinkat-tests (Makefile.am): Drop stale LDADD.
* modules/dirent-safer-tests (Makefile.am): Likewise.
* modules/fdopendir-tests (Makefile.am): Likewise.
* modules/mkfifoat-tests (Makefile.am): Likewise.
* modules/openat-safer-tests (Makefile.am): Likewise.
* modules/openat-tests (Makefile.am): Likewise.
* modules/readlinkat-tests (Makefile.am): Likewise.
* modules/symlinkat-tests (Makefile.am): Likewise.
* modules/linkat-tests (Makefile.am): Likewise.
(Depends-on): Switch to filenamecat-lgpl.
* modules/fdutimensat-tests (test_fdutimensat_LDADD): Drop unused
LIBINTL.
* modules/utimensat-tests (test_utimensat_LDADD): Likewise.
* tests/test-linkat.c (main): Don't require xalloc.
hash, mgetgroups: drop xalloc dependency
* lib/hash.c (includes): Adjust includes.
* lib/mgetgroups.c (includes): Likewise.
(xgetgroups): Move...
* lib/xgetgroups.c: ...to new file.
* lib/mgetgroups.h (xgetgroups): Make declaration conditional.
* modules/xgetgroups: New file, split from...
* modules/mgetgroups: ...here.
(Depends-on): Add xalloc-oversized.
* modules/hash (Depends-on): Likewise.
* modules/hash-tests (Depends-on): Drop xalloc.
(test_hash_LDADD): Drop unused library.
* tests/test-hash.c (main): Break xalloc dependency.
(includes): Drop unused include.
xalloc-oversized: new module
* modules/xalloc-oversized: New module.
* modules/xalloc (Depends-on): Add it.
* lib/xalloc.h (xalloc_oversized): Move...
* lib/xalloc-oversized.h: ...into new file.
utimecmp: drop dependency on xmalloc
* lib/utimecmp.c (utimecmp): Work even if hash table cache fails
due to memory pressure.
* modules/utimecmp (Depends-on): Drop xalloc.
2011-04-27 Eric Blake <eblake@redhat.com>
getcwd: fix mingw bugs
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Detect one mingw bug.
* doc/posix-functions/getcwd.texi (getcwd): Document the problems.
* lib/getcwd-lgpl.c (rpl_getcwd): Fix return type.
2011-04-27 Bruno Haible <bruno@clisp.org>
mkstemps: Ensure declaration on MacOS X 10.5.
* lib/stdlib.in.h: Include <unistd.h> when mkstemps is requested.
* doc/glibc-functions/mkstemps.texi: Document header file problem on
MacOS X.
2011-04-27 Bruno Haible <bruno@clisp.org>
mkstemp: More documentation.
* doc/posix-functions/mkstemp.texi: Document header file problem on
MacOS X.
2011-04-27 Bruno Haible <bruno@clisp.org>
mkstemp: Tweak configure message when cross-compiling.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): When cross-compiling, qualify the
result as a guess.
2011-04-27 Bruno Haible <bruno@clisp.org>
clean-temp: Clarify what it does.
* lib/clean-temp.h: Add more comments.
* doc/posix-functions/mkstemp.texi: Tweak reference to 'clean-temp'
module.
* doc/glibc-functions/mkostemp.texi: Mention 'clean-temp' here too.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
2011-04-27 Eric Blake <eblake@redhat.com>
fchdir: avoid extra chdir and fix test
* modules/fchdir (Depends-on): Add dosname, filenamecat-lgpl,
getcwd-lgpl.
* lib/fchdir.c (get_name): Any absolute name will do; it does not
have to be canonical.
(canonicalize_file_name): Drop unused macro.
* m4/dup2.m4 (gl_REPLACE_DUP2): Ensure dup2 is replaced.
filenamecat-lgpl: fix licence
* modules/filenamecat-lgpl (License): Mark as LGPLv2+, as intended
when it was first created.
linkat, renameat: add missing dependency
* modules/linkat (Depends-on): Require getcwd-lgpl.
* modules/renameat (Depends-on): Likewise.
tests: reduce dependencies
* tests/test-linkat.c (main): Use lighter-weight getcwd.
* tests/test-renameat.c (main): Likewise.
* modules/linkat-tests (Depends-on): Relax dependency.
* modules/renameat-tests (Depends-on): Likewise.
* modules/fchdir-tests (Depends-on): Likewise. Also make cloexec
dependency explicit.
save-cwd: reduce default dependency
* modules/save-cwd (Depends-on): Use getcwd-lgpl.
* lib/save-cwd.c: Update comments.
* NEWS: Document the semantic change.
getcwd: enhance tests
* tests/test-getcwd-lgpl.c: New file, taken from...
* tests/test-getcwd.c: ...old contents. Rewrite this file to
repeat long path stress tests from m4 probe.
* modules/getcwd-lgpl-tests: New module.
* modules/getcwd-tests (Depends-on): Depend on lgpl tests.
* m4/getcwd-abort-bug.m4: Update comment.
* m4/getcwd-path-max.m4: Likewise.
getcwd-lgpl: new module
* modules/getcwd-lgpl: New module.
* lib/getcwd-lgpl.c: New file.
* doc/posix-functions/getcwd.texi (getcwd): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* modules/getcwd (configure.ac): Set C witness.
* m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): New macro.
getcwd: tweak comments
* m4/getcwd-abort-bug.m4: Fix comments.
* m4/getcwd-path-max.m4: Likewise.
* m4/getcwd.m4: Likewise.
2011-04-27 Reuben Thomas <rrt@sc3d.org>
and Eric Blake <eblake@redhat.com>
mkstemp: replace if system version uses wrong permissions
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Add test for non-owner
read/write mode bits set in file created by mkstemp.
* doc/posix-functions/mkstemp.texi (mkstemp): Document the fix.
2011-04-27 Eric Blake <eblake@redhat.com>
passfd: avoid compiler warning
* lib/passfd.c (sendfd, recvfd): Avoid shadowing names.
Reported by Laine Stump.
2011-04-27 J.T. Conklin <jtc@acorntoolworks.com> (tiny change)
* gnulib-tool: change "join -a 2" to "join -a2", the latter is
required by the NetBSD (and perhaps other 4.4BSD derived) join.
2011-04-27 Reuben Thomas <rrt@sc3d.org>
and Eric Blake <eblake@redhat.com>
mkstemp: mention clean-temp module
* lib/mkstemp.c: Add comment.
* doc/posix-functions/mkstemp.texi (mkstemp): Likewise.
2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
inttypes: also provide default values for 32-bit tests
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Also provide default values
for INT32_MAX_LT_INTMAX_MAX and for UINT32_MAX_LT_UINTMAX_MAX.
2011-04-25 Paul Eggert <eggert@cs.ucla.edu>
strtoumax: remove dependency on strtoimax
This is like the strtoull change of yesterday.
* modules/strtoumax (Files): Add lib/strtoimax.c.
(Depends-on): Remove strtoimax and add verify.
inttypes-incomplete: new module
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing
all but the PRI* and SCN* parts of gl_INTTYPES_H.
(gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts
of gl_INTTYPES_H.
(gl_INTTYPES_H): Rewrite in terms of these new macros.
(gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN*
parts, in case gl_INTTYPE_PRI_SCN is not invoked.
* modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on):
* modules/strtoumax, modules/xstrtol (Depends-on):
Depend on inttypes-incomplete, not inttypes.
* modules/inttypes-incomplete: New module, containing the contents
of the old modules/inttypes module, except that the Files: section
omits m4/inttypes-pri.m4, and the configure.ac section invokes
gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H.
* modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4.
(Depends-on): Depend only on inttypes-incomplete.
(Makefile.am): Remove everything; this is now in inttypes-incomplete.
inttypes: omit now-redundant strtoimax and strtoumax work
* m4/inttypes.m4 (gl_INTTYPES_H): Do not check for strtoimax and
strtoumax decls; gl_FUNC_STRTOIMAX and gl_FUNC_STRTOUMAX now do this.
strtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit
This supports apps that need pointers to strtoimax and strtoumax,
and ports to HP-UX 11.00 64.bit, which has macros that expand to
nonexistent functions. See
<http://lists.gnu.org/r/bug-gnulib/2011-04/msg00241.html>
et seq.
* lib/inttypes.in.h (strtoimax, strtoumax): #undef before declaring.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't check whether it's
a macro.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise.
2011-04-25 Simon Josefsson <simon@josefsson.org>
* modules/gnumakefile (configure.ac): Replace TAB with SPCs.
2011-04-25 Bruno Haible <bruno@clisp.org>
strtol, strtoul: Mark modules as obsolete.
* modules/strtol (Status, Notice): New sections.
* modules/strtoul (Status, Notice): New sections.
2011-04-25 Bruno Haible <bruno@clisp.org>
strtod: Remove check for strtod, unless supporting old platforms.
* modules/strtod-obsolete: New file.
* m4/strtod-obsolete.m4: New file.
* m4/strtod.m4 (gl_FUNC_STRTOD): Don't check whether strtod is declared
if gl_FUNC_STRTOD_OBSOLETE is not also defined.
* modules/strtod (Depends-on): Add strtod-obsolete.
* doc/posix-functions/strtod.texi: Mention module strtod-obsolete.
2011-04-25 Bruno Haible <bruno@clisp.org>
strcase: Make module obsolete.
* modules/strcase (Status, Notice): New sections.
2011-04-25 Bruno Haible <bruno@clisp.org>
dup2: Remove check for dup2, unless supporting old obsolete platforms.
* modules/dup2-obsolete: New file.
* m4/dup2-obsolete.m4: New file.
* m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if
gl_FUNC_DUP2_OBSOLETE is not also defined.
* modules/dup2 (Depends-on): Add dup2-obsolete.
* doc/posix-functions/dup2.texi: Mention module dup2-obsolete.
2011-04-25 Bruno Haible <bruno@clisp.org>
strnlen: Avoid memchr related link error on old obsolete platforms.
* modules/memchr-obsolete: New file.
* m4/memchr-obsolete.m4: New file.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Don't check whether memchr exists if
gl_FUNC_MEMCHR_OBSOLETE is not also defined.
* modules/memchr (Depends-on): Add memchr-obsolete.
* modules/strnlen (Depends-on): Likewise.
* doc/posix-functions/memchr.texi: Mention module memchr-obsolete.
2011-04-25 Jim Meyering <meyering@redhat.com>
maint.mk: makefile_at_at_check extend and clean up
* top/maint.mk (sc_makefile_at_at_check): Check *.mk files
in addition to */Makefile.am.
Exempt legitimate uses of @VAR@ notation, e.g.,
MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
Remove obsolete coreutils-specific comment.
Prompted by discussion here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26074
2011-04-24 Paul Eggert <eggert@cs.ucla.edu>
strtoul: remove dependency on strtol
This is so that 'configure' need not check for strtol merely because
the application needs strtoul.
* modules/strtoul (Files): Add lib/strtol.c.
(Depends-on): Remove strtol.
strtoull: remove dependency on strtoul
This is like the strtoll change.
* modules/strtoull (Files): Add lib/strtol.c, lib/strtoul.c.
(Depends-on): Remove strtoul.
strtoll: remove dependency on strtol
This is so that 'configure' need not check for strtol merely because
the application needs strtoll.
* modules/strtoll (Files): Add lib/strtol.c.
(Depends-on): Remove strtol.
2011-04-22 Paul Eggert <eggert@cs.ucla.edu>
inttypes: Move some configure check to module 'imaxdiv'.
* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Require gl_INTTYPES_H_DEFAULTS
instead of gl_INTTYPES_H. Check for imaxdiv decl here.
* m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxdiv decl here.
2011-04-22 Paul Eggert <eggert@cs.ucla.edu>
inttypes: Move some configure check to module 'imaxabs'.
* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Require gl_INTTYPES_H_DEFAULTS
instead of gl_INTTYPES_H. Check for imaxabs decl here.
* m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxabs decl here.
2011-04-22 Paul Eggert <eggert@cs.ucla.edu>
inttypes: Remove configure tests that are not needed since 2009-12-31.
* m4/inttypes.m4 (gl_INTTYPES_H): Remove determination of
gl_cv_header_working_inttypes_h.
2011-04-22 Paul Eggert <eggert@cs.ucla.edu>
* modules/strnlen (Depends-on): Remove memchr.
The strnlen implementation doesn't need the memchr module's fixes; see
<http://lists.gnu.org/r/bug-gnulib/2011-04/msg00237.html>.
strtol: remove dependency on wchar
* lib/strtol.c: Include <wchar.h> only if USE_WIDE_CHAR is defined.
* modules/strtol (Depends-on): Remove wchar.
2011-04-21 Eric Blake <eblake@redhat.com>
passfd: fix test regression on Linux
* modules/passfd-tests (configure.ac): Correct socketpair check.
passfd: speed up configure and drop unused code
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Rename...
* m4/passfd.m4 (gl_PASSFD): ...to something more fitting of
its use. Drop test for setting unused HAVE_UNIXSOCKET_SCM_RIGHTS.
Instead of probing at configure for unix_scm_rights_bsd44_way,
instead probe for CMSG_FIRSTHDR at compile time. Simplify BSD 4.3
check to a struct member probe.
* lib/passfd.c (includes): Nothing here requires <sys/un.h>.
(sendfd, recvfd): Update preprocessor checks.
* modules/passfd (Files): Reflect rename, and drop unused file.
(Depends-on): Drop unused dependency.
passfd: allow compilation on mingw
* modules/sys_socket (Depends-on): Add sys_uio.
* lib/sys_socket.in.h [!@HAVE_SYS_SOCKET_H@]: Use it for struct
iovec and a minimal struct msghdr.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Detect recvmsg/sendmsg.
* tests/test-sys_socket.c (main): Enhance test.
* lib/passfd.c (include): Drop <sys/uio.h>; <sys/sockets.h> is
guaranteed to provide what we need.
(sendmsg, recvmsg): Declare fallbacks if we lack sendmsg.
* modules/passfd-tests (Depends-on): Add sys_wait.
* tests/test-passfd.c (main): Skip test on mingw, for now.
* doc/posix-headers/sys_socket.texi (sys/socket.h): Document the
partial 'struct msghdr' implementation.
sys_uio: new module
* modules/sys_uio: New module.
* modules/sys_uio-tests: Likewise.
* lib/sys_uio.in.h: New file.
* m4/sys_uio_h.m4: Likewise.
* tests/test-sys_uio.c: Likewise.
* doc/posix-headers/sys_uio.texi (sys/uio.h): Document it.
* MODULES.html.sh (systems lacking POSIX:2008): Likewise.
2011-04-20 Jim Meyering <meyering@redhat.com>
useless-if-before-free: avoid false-positive
* build-aux/useless-if-before-free: Adjust regexp for the non-brace
disjunct so that it too requires a terminating ";". Without that,
this script would identify as useless one statement from gcc that
was not:
if (aligned_ptr)
free (((void **) aligned_ptr) [-1]);
2011-04-20 Giuseppe Scrivano <gscrivano@gnu.org>
doc: update users.txt.
* users.txt: Add barcode.
2011-04-19 Bruno Haible <bruno@clisp.org>
ioctl: Remove link dependency on native Windows.
* lib/fd-hook.h: Renamed from lib/close-hook.h.
(gl_close_fn, gl_ioctl_fn): New types.
(struct fd_hook): Renamed from struct close_hook. Change type of
private_close_fn field. Add private_ioctl_fn field.
(close_hook_fn): Add parameter for primary close method.
(execute_close_hooks, execute_all_close_hooks): Likewise.
(ioctl_hook_fn): New type.
(execute_ioctl_hooks, execute_all_ioctl_hooks): New declarations.
(register_fd_hook): Renamed from register_close_hook. Add ioctl_hook
argument.
(unregister_fd_hook): Renamed from unregister_close_hook.
* lib/fd-hook.c: Renamed from lib/close-hook.c.
Don't include <unistd.h>.
(close): Remove undef.
(anchor): Update.
(execute_close_hooks): Add argument for primary close method.
(execute_all_close_hooks): Likewise.
(execute_ioctl_hooks, execute_all_ioctl_hooks): New functions.
(register_fd_hook): Renamed from register_close_hook. Add ioctl_hook
argument. Allow each argument to be NULL.
(unregister_fd_hook): Renamed from unregister_close_hook.
* lib/close.c (rpl_close): Pass 'close' function pointer to
execute_all_close_hooks.
* lib/ioctl.c: Include <errno.h>, fd-hook.h.
(primary_ioctl): New function.
(ioctl): Don't call ioctlsocket here. Instead, call
execute_all_ioctl_hooks.
* lib/sockets.c (close_fd_maybe_socket): Add argument for primary
close method.
(ioctl_fd_maybe_socket): New function, with code from lib/ioctl.c.
(fd_sockets_hook): Renamed from close_sockets_hook.
(gl_sockets_startup, gl_sockets_cleanup): Update.
* modules/fd-hook: Renamed from modules/close-hook. Update.
* modules/close (Depends-on): Add fd-hook, remove close-hook.
* modules/sockets (Depends-on): Likewise.
* modules/ioctl (Depends-on): Add fd-hook.
* tests/test-nonblocking.c (main): Use GNULIB_TEST_SOCKET, not
GNULIB_SOCKET.
2011-04-19 Bruno Haible <bruno@clisp.org>
Move the support of O_NONBLOCK in open() to the 'open' module.
* modules/nonblocking (Depends-on): Remove 'open'.
* m4/nonblocking.m4 (gl_NONBLOCKING_IO_BODY): Set
gl_cv_have_open_O_NONBLOCK.
* m4/open.m4 (gl_FUNC_OPEN): Replace open() also when required for
O_NONBLOCK support.
* doc/posix-functions/open.texi: Document support for O_NONBLOCK.
2011-04-17 Bruno Haible <bruno@clisp.org>
pipe2: Simplify code.
* lib/pipe2.c (pipe2): Reduce code duplication.
2011-04-17 Bruno Haible <bruno@clisp.org>
nonblocking: Add comment.
* lib/fcntl.in.h (O_NONBLOCK): Add comment.
2011-04-17 Bruno Haible <bruno@clisp.org>
nonblocking: Add tests for sockets.
* tests/test-nonblocking-socket.sh: New file.
* tests/test-nonblocking-socket-main.c: New file.
* tests/test-nonblocking-socket-child.c: New file.
* tests/test-nonblocking-socket.h: New file.
* tests/socket-server.h: New file.
* tests/socket-client.h: New file.
* modules/nonblocking-socket-tests: New file.
* modules/nonblocking-tests (Depends-on): Add nonblocking-socket-tests.
2011-04-17 Bruno Haible <bruno@clisp.org>
nonblocking: Add tests for pipes.
* tests/test-nonblocking-pipe.sh: New file.
* tests/test-nonblocking-pipe-main.c: New file.
* tests/test-nonblocking-pipe-child.c: New file.
* tests/test-nonblocking-pipe.h: New file.
* tests/test-nonblocking-writer.h: New file.
* tests/test-nonblocking-reader.h: New file.
* tests/test-nonblocking-misc.h: New file.
* modules/nonblocking-pipe-tests: New file.
* modules/nonblocking-tests (Depends-on): Add nonblocking-pipe-tests.
2011-04-16 Bruno Haible <bruno@clisp.org>
gettext: Clarify the needed programmer actions.
* modules/gettext (Notice): New field.
Suggested by Ben Pfaff <blp@cs.stanford.edu>.
2011-04-16 Bruno Haible <bruno@clisp.org>
strchrnul: Tweak last commit.
* doc/glibc-functions/strchrnul.texi: Add more details about Cygwin
bug.
* lib/string.in.h (strchrnul): Use same arguments in _GL_FUNCDECL_RPL
as in _GL_FUNCDECL_SYS.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Invoke gl_PREREQ_STRCHRNUL after
AC_LIBOBJ. When cross-compiling, say "guessing yes" not "yes".
2011-04-15 Eric Blake <eblake@redhat.com>
strchrnul: work around cygwin bug
* doc/glibc-functions/strchrnul.texi (strchrnul): Document bug.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Detect it.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New witness.
* modules/string (Makefile.am): Substitute it.
* lib/string.in.h (strchrnul): Use it.
2011-04-15 Bruno Haible <bruno@clisp.org>
Don't require lib/stdio-write.c when only module 'stdio' is used.
* m4/stdio_h.m4 (gl_STDIO_H): Move the AC_LIBOBJ back into the m4_ifdef
invocation.
Reported by Rob Vermaas <rob.vermaas@gmail.com>.
2011-04-14 Bruno Haible <bruno@clisp.org>
Support non-blocking pipe I/O in read() on native Windows.
* lib/unistd.in.h: Include <sys/types.h> also for 'read'.
(read): New declaration.
* lib/read.c: New file.
* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_SCANF,
_GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM): New macros.
(fgetc, fgets, fread, fscanf, getc, getchar, gets, scanf, vfscanf,
vscanf): New declarations.
* lib/stdio-read.c: New file.
* m4/read.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_READ,
REPLACE_READ.
* m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FGETC, GNULIB_FGETS,
GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS,
GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF. In non-blocking I/O is
desired and needs workarounds, set REPLACE_STDIO_READ_FUNCS.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_FGETC, GNULIB_FGETS,
GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS,
GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS.
* modules/read: New file.
* modules/nonblocking (Files): Add lib/stdio-read.c.
* modules/unistd (Makefile.am): Substitute GNULIB_READ, REPLACE_READ.
* modules/stdio (Makefile.am): Substitute GNULIB_FGETC, GNULIB_FGETS,
GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS,
GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS.
* modules/pread (Depends-on): Add read.
* modules/safe-read (Depends-on): Likewise.
* tests/test-stdio-c++.cc (fgetc, fgets, fread, fscanf, getc, getchar,
gets, scanf, vfscanf, vscanf): Verify signatures.
* doc/posix-functions/read.texi: Mention 'nonblocking' module and
problem with non-blocking pipes.
* doc/posix-functions/fgetc.texi: Likewise.
* doc/posix-functions/fgets.texi: Likewise.
* doc/posix-functions/fread.texi: Likewise.
* doc/posix-functions/fscanf.texi: Likewise.
* doc/posix-functions/getc.texi: Likewise.
* doc/posix-functions/getchar.texi: Likewise.
* doc/posix-functions/gets.texi: Likewise.
* doc/posix-functions/scanf.texi: Likewise.
* doc/posix-functions/vfscanf.texi: Likewise.
* doc/posix-functions/vscanf.texi: Likewise.
2011-04-14 Bruno Haible <bruno@clisp.org>
Support non-blocking pipe I/O in write() on native Windows.
* lib/write.c (rpl_write): Split a write request that failed merely
because the byte count was larger than the pipe buffer's size.
* doc/posix-functions/write.texi: Mention the problem with large byte
counts.
2011-04-14 Bruno Haible <bruno@clisp.org>
wchar: Ensure that wchar_t gets defined on uClibc.
* lib/wchar.in.h: On uClibc, include <stddef.h>.
Reported by Giuseppe Scrivano <gscrivano@gnu.org>.
2011-04-13 Bruno Haible <bruno@clisp.org>
safe-write, full-read: Avoid unnecessary compilation units.
* modules/safe-write (Files): Add lib/safe-read.c, m4/safe-read.m4.
(Depends-on): Remove safe-read. Add ssize_t.
* modules/full-read (Files): Add lib/full-write.c.
(Depends-on): Add full-write.
2011-04-13 Bruno Haible <bruno@clisp.org>
Support non-blocking pipe I/O and SIGPIPE in pwrite().
* modules/pwrite (Depends-on): Add 'write'.
2011-04-13 Bruno Haible <bruno@clisp.org>
Support non-blocking pipe I/O in write() on native Windows.
* lib/unistd.in.h (write): Enable replacement also if
GNULIB_UNISTD_H_NONBLOCKING is 1.
* lib/write.c: Enable replacement also if GNULIB_NONBLOCKING.
(rpl_write): When failing to write on a non-blocking pipe, change
errno from ENOSPC to EAGAIN.
* lib/stdio.in.h (fprintf, fputc, fputs, fwrite, printf, putc,
putchar, puts, vfprintf, vprintf): Enable replacement also if
GNULIB_STDIO_H_NONBLOCKING is 1.
* lib/stdio-write.c: Enable replacements also if GNULIB_NONBLOCKING.
(CLEAR_ERRNO, HANDLE_ENOSPC): New macros.
(CLEAR_LastError, HANDLE_ERROR_NO_DATA): New macros, extracted from
CALL_WITH_SIGPIPE_EMULATION.
(CALL_WITH_SIGPIPE_EMULATION): Use them.
* m4/nonblocking.m4: New file.
* m4/write.m4 (gl_FUNC_WRITE): Enable REPLACE_WRITE also if required
for non-blocking I/O support.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
GNULIB_UNISTD_H_NONBLOCKING.
* m4/stdio_h.m4 (gl_STDIO_H): Enable REPLACE_STDIO_WRITE_FUNCS also if
required for non-blocking I/O support.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_STDIO_H_NONBLOCKING.
* modules/nonblocking (Files): Add m4/nonblocking.m4,
lib/stdio-write.c, m4/asm-underscore.m4.
(Depends-on): Add stdio, unistd.
(configure.ac): Invoke gl_NONBLOCKING_IO. Define GNULIB_NONBLOCKING.
Set GNULIB_STDIO_H_NONBLOCKING, GNULIB_UNISTD_H_NONBLOCKING.
* modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_NONBLOCKING.
* modules/stdio (Makefile.am): Substitute GNULIB_STDIO_H_NONBLOCKING.
* doc/posix-functions/fprintf.texi: Mention 'nonblocking' module and
problem with non-blocking pipes.
* doc/posix-functions/fputc.texi: Likewise.
* doc/posix-functions/fputs.texi: Likewise.
* doc/posix-functions/fwrite.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/putc.texi: Likewise.
* doc/posix-functions/putchar.texi: Likewise.
* doc/posix-functions/puts.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/write.texi: Likewise.
2011-04-10 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit doubled words
Detect them also when they're separated by a newline.
There are 3 ways to customize it:
- disable the test on a per file basis, as usual with rules using
$(VC_LIST_EXCEPT)
- replace the default doubled-word-selecting regexp (affects all files)
- ignore a particular file-vs-doubled-word match
I nearly used that last one to ignore the "is is" match in
coreutils' NEWS file, since the text was "ls -is is ..."
To do that, I would have added this line to cfg.mk:
ignore_doubled_word_match_RE_ = ^NEWS:[0-9]+:is[ ]is$
but it would have ignored any "is is" match in NEWS.
Low probability, but still...
Instead, I changed the text, slightly:
- ls -is is now consistent with ls -lis in ignoring values returned
+ "ls -is" is now consistent with ls -lis in ignoring values returned
* top/maint.mk (prohibit_double_word_RE_): Provide default.
(prohibit_doubled_word_): Define.
(sc_prohibit_doubled_word): New rule.
(sc_prohibit_the_the): Remove. Subsumed by the above.
2011-04-10 Jim Meyering <meyering@redhat.com>
maint: fix doubled-word typo in comment
* m4/gethostname.m4: s/is is/it is/
* m4/getdomainname.m4: Likewise.
2011-04-10 Jim Meyering <meyering@redhat.com>
maint: remove doubled word: s/it it/it/
* lib/stat-time.h (get_stat_birthtime): s/it it/it/
2011-04-10 Jim Meyering <meyering@redhat.com>
maint.mk: remove useless semicolon and backslash
* top/maint.mk (sc_prohibit_empty_lines_at_EOF): Remove stray
semicolon and backslash.
2011-04-10 Bruno Haible <bruno@clisp.org>
stdint test: Fix compilation failure on OSF/1 with DTK compiler.
* modules/stdint-tests (Depends-on): Add wchar.
2011-04-10 Jim Meyering <meyering@redhat.com>
maint: remove doubled words in comments, e.g., s/a a/a/
* lib/strptime.c (day_of_the_week): s/the the/the/
* tests/test-chown.h (test_chown): s/a a/a/
test-chown.h: correct a cast
* tests/test-chown.h (test_chown): Cast -1 to gid_t (not uid_t)
when the destination is a stat.st_gid.
2011-04-09 Mats Erik Andersson <mats.andersson@gisladisker.se> (tiny change)
getaddrinfo: Fix test for sa_len member.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): When testing for sa_len,
include <sys/types.h> before <sys/socket.h>.
2011-04-09 Paul Eggert <eggert@cs.ucla.edu>
maint: change "can not" to "cannot"
* doc/posix-functions/iconv.texi (iconv): This one crossed line
boundaries.
2011-04-09 Jim Meyering <meyering@redhat.com>
maint: change "a a" to "a"
* tests/test-lchown.h (test_lchown): s/a a/a/
maint.mk: prohibit \<the the\>
* top/maint.mk (sc_prohibit_the_the): New rule.
maint: fix "the the" in comment
* lib/count-one-bits.h: s/the the/the/
maint: change "can not" to "cannot"
But do not change the occurrences in maintain.texi or in
build-aux/po/Makefile.in.in, which I presume comes from gettext.
* doc/gnulib-tool.texi: s/can not/cannot/
* doc/posix-functions/accept.texi (accept): Likewise.
* doc/posix-functions/socket.texi (socket): Likewise.
* lib/mbrtowc.c: Likewise.
maint.mk: prohibit use of "can not"
* top/maint.mk (sc_prohibit_can_not): New rule.
Writing "can not" (rather than "cannot") is too common. Prohibit it.
2011-04-09 Bruno Haible <bruno@clisp.org>
careadlinkat: Guard against misuse of careadlinkatcwd.
* lib/careadlinkat.c: Include <stdlib.h>.
(careadlinkatcwd): Check that the fd argument is as expected.
2011-04-09 Bruno Haible <bruno@clisp.org>
careadlinkat: Use common coding style.
* lib/careadlinkat.c: Move gnulib includes after system includes.
2011-04-09 Bruno Haible <bruno@clisp.org>
careadlinkat: Clarify specification.
* lib/careadlinkat.h (careadlinkat): Clarify preadlinkat argument.
(careadlinkatcwd): Add comment.
* lib/careadlinkat.c (careadlinkat): Clarify preadlinkat argument.
2011-04-09 Bruno Haible <bruno@clisp.org>
areadlinkat: Avoid link error on many platforms.
* modules/areadlinkat (Depends-on): Add areadlink.
2011-04-09 Bruno Haible <bruno@clisp.org>
allocator, careadlinkat: Fix double-inclusion guard.
* lib/allocator.h: Fix double-inclusion guard.
* lib/careadlinkat.h: Likewise.
2011-04-09 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Update after module 'areadlink' changed.
* lib/relocwrapper.c: Update dependencies hierarchy.
* build-aux/install-reloc: Update list of files to be compiled.
* modules/relocatable-prog-wrapper (Files): Add lib/careadlinkat.[hc],
lib/allocator.[hc].
2011-04-08 Eric Blake <eblake@redhat.com>
strftime: silence gnulib-tool warning
* modules/strftime-tests (Depends-on): Drop automatic dependency.
2011-04-08 Bruno Haible <bruno@clisp.org>
verify: Fix syntax error with GCC 4.6 in C++ mode.
* lib/verify.h (HAVE__STATIC_ASSERT): Don't define in C++ mode.
(HAVE_STATIC_ASSERT): New macro.
(verify_true, verify): Use 'static_assert' if it is supported and
'_Static_assert' is not supported.
2011-04-08 Paul Eggert <eggert@cs.ucla.edu>
allocator: New module.
* modules/allocator, lib/allocator.c: New files.
* lib/allocator.h (stdlib_allocator): New decl.
* lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC, standard_allocator):
Remove. Do not include <stdlib.h>.
(careadlinkat): Use stdlib_allocator instead of rolling our own.
* modules/careadlinkat (Files): Remove lib/allocator.h.
(Depends-on): Add allocator.
stdlib: let modules use system malloc, realloc
* lib/stdlib.in.h (malloc, realloc): Don't #define or add warnings
if !_GL_USE_STDLIB_ALLOC.
(malloc, realloc): Limit this change to a smaller scope.
* lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC): Define.
(malloc, realloc): Don't #undef; no longer needed.
* lib/malloca.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/progreloc.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/setenv.c (_GL_USE_STDLIB_ALLOC, malloc, realloc): Likewise.
* lib/canonicalize-lgpl.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/relocatable.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/relocwrapper.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/malloc.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise.
* lib/realloc.c (_GL_USE_STDLIB_ALLOC, malloc, realloc): Likewise.
careadlinkat: rename members to avoid problem
* lib/allocator.h (struct allocator): Rename members from
malloc/realloc to allocate/reallocate, to avoid problems if malloc
and realloc are #define'd. Reported by Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2011-04/msg00091.html>.
* lib/careadlinkat.c (careadlinkat): Adjust to renaming.
2011-04-08 Eric Blake <eblake@redhat.com>
nonblocking: reduce dependency
* tests/test-nonblocking.c: Only test sockets when in use.
* modules/nonblocking-tests (Depends-on): Drop socket.
(Makefile.am): Link even if sockets are not present.
* modules/pipe2-tests (Makefile.am): Likewise.
* lib/ioctl.c (ioctl) [WIN32]: Fail if sockets are not also in use.
pipe2: fix O_NONBLOCK support on mingw
* modules/pipe2 (Depends-on): Add nonblocking.
* lib/pipe2.c (pipe2) [WIN32]: Add O_NONBLOCK support.
* tests/test-pipe2.c (is_nonblocking): Adjust test accordingly.
* tests/test-nonblocking.c (main): Likewise.
* modules/pipe2-tests (Makefile.am): Avoid link failure.
fcntl-h: fix O_ACCMODE on cygwin
* doc/posix-headers/fcntl.texi (fcntl.h): Document the bug.
* lib/fcntl.in.h (O_ACCMODE): Fix it.
pipe-filter: drop O_NONBLOCK workarounds
* modules/pipe-filter-gi (Depends-on): Add fcntl-h.
* modules/pipe-filter-ii (Depends-on): Likewise.
* lib/pipe-filter-aux.h (O_NONBLOCK): Delete workaround.
nonblocking: provide O_NONBLOCK for mingw
* modules/nonblocking (Depends-on): Add open.
(configure.ac): Set new witness macro.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide default for it.
* modules/fcntl-h (Makefile.am): Substitute it.
* lib/fcntl.in.h (O_NONBLOCK): Guarantee non-zero definition when
nonblocking module is in use.
* lib/nonblocking.c: Adjust portability test.
* lib/open.c (open): Don't let native open see gnulib flag.
* tests/test-fcntl-h.c (main): Enhance test.
* tests/test-open.h (test_open): Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Document the replacement.
careadlinkat: fix compilation error on mingw
* lib/careadlinkat.c (standard_allocator): Avoid renaming fields
within struct allocator.
2011-04-06 Eric Blake <eblake@redhat.com>
binary-io: relicense under LGPLv2+
* modules/binary-io (License): Relax to LGPLv2+.
Requested for libvirt, and required by pipe2.
2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
verify: use _Static_assert if available
* lib/verify.h (HAVE__STATIC_ASSERT): New macro.
(verify_true, verify): Use it if available. This generates better
diagnostics with GCC 4.6.0 and later.
2011-04-05 Bruno Haible <bruno@clisp.org>
Remove leftover generated .h files after config.status changed.
* m4/alloca.m4 (gl_FUNC_ALLOCA): New automake conditional
GL_GENERATE_ALLOCA_H.
* modules/alloca-opt (Makefile.am): Remove alloca.h if
GL_GENERATE_ALLOCA_H evaluates to false.
* m4/argz.m4 (gl_FUNC_ARGZ): New automake conditional
GL_GENERATE_ARGZ_H.
* modules/argz (Makefile.am): Remove argz.h if GL_GENERATE_ARGZ_H
evaluates to false.
* m4/byteswap.m4 (gl_BYTESWAP): New automake conditional
GL_GENERATE_BYTESWAP_H.
* modules/byteswap (Makefile.am): Remove byteswap.h if
GL_GENERATE_BYTESWAP_H evaluates to false.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): New automake conditional
GL_GENERATE_ERRNO_H.
* modules/errno (Makefile.am): Remove errno.h if GL_GENERATE_ERRNO_H
evaluates to false.
* m4/float_h.m4 (gl_FLOAT_H): New automake conditional
GL_GENERATE_FLOAT_H.
* modules/float (Makefile.am): Remove float.h if GL_GENERATE_FLOAT_H
evaluates to false.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): New automake conditional
GL_GENERATE_FNMATCH_H.
* modules/fnmatch (Makefile.am): Remove fnmatch.h if
GL_GENERATE_FNMATCH_H evaluates to false.
* m4/glob.m4 (gl_GLOB_SUBSTITUTE, gl_GLOB): New automake conditional
GL_GENERATE_GLOB_H.
* modules/glob (Makefile.am): Remove glob.h if GL_GENERATE_GLOB_H
evaluates to false.
* m4/iconv_h.m4 (gl_REPLACE_ICONV_H, gl_ICONV_H_DEFAULTS): New
automake conditional GL_GENERATE_ICONV_H.
* modules/iconv-h (Makefile.am): Remove iconv.h if GL_GENERATE_ICONV_H
evaluates to false.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): New automake conditional
GL_GENERATE_NETINET_IN_H.
* modules/netinet_in (Makefile.am): Remove netinet/in.h if
GL_GENERATE_NETINET_IN_H evaluates to false.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Set PTHREAD_H here. New automake
conditional GL_GENERATE_PTHREAD_H.
(gl_PTHREAD_DEFAULTS): Don't set PTHREAD_H here.
* modules/pthread (Makefile.am): Remove pthread.h if
GL_GENERATE_PTHREAD_H evaluates to false.
* m4/sched_h.m4 (gl_SCHED_H): New automake conditional
GL_GENERATE_SCHED_H.
* modules/sched (Makefile.am): Remove sched.h if GL_GENERATE_SCHED_H
evaluates to false.
* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): New automake
conditional GL_GENERATE_SELINUX_CONTEXT_H.
* modules/selinux-h (Makefile.am): Remove selinux/context.h if
GL_GENERATE_SELINUX_CONTEXT_H evaluates to false.
* m4/stdarg.m4 (gl_STDARG_H): New automake conditional
GL_GENERATE_STDARG_H.
* modules/stdarg (Makefile.am): Remove stdarg.h if
GL_GENERATE_STDARG_H evaluates to false.
* m4/stdbool.m4 (AM_STDBOOL_H): New automake conditional
GL_GENERATE_STDBOOL_H.
* modules/stdbool (Makefile.am): Remove stdbool.h if
GL_GENERATE_STDBOOL_H evaluates to false.
* m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_H here. New automake
conditional GL_GENERATE_STDDEF_H.
(gl_STDDEF_H_DEFAULTS): Don't set STDDEF_H here.
* modules/stddef (Makefile.am): Remove stddef.h if
GL_GENERATE_STDDEF_H evaluates to false.
* m4/stdint.m4 (gl_STDINT_H): New automake conditional
GL_GENERATE_STDINT_H.
* modules/stdint (Makefile.am): Remove stdint.h if
GL_GENERATE_STDINT_H evaluates to false.
* m4/sysexits.m4 (gl_SYSEXITS): New automake conditional
GL_GENERATE_SYSEXITS_H.
* modules/sysexits (Makefile.am): Remove sysexits.h if
GL_GENERATE_SYSEXITS_H evaluates to false.
Reported by Karl Berry and Ralf Wildenhues.
2011-04-05 Bruno Haible <bruno@clisp.org>
Ensure to rebuild generated .h files when config.status has changed.
* modules/arpa_inet (Makefile.am): Add dependency from .h file to
config.status.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/glob (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stdbool (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
Reported by Karl Berry, Eric Blake, and Ralf Wildenhues.
2011-04-05 Bruno Haible <bruno@clisp.org>
pipe2: Relicense under LGPLv2+.
* modules/pipe2 (License): Change to LGPLv2+.
Requested by Eric Blake, for libvirt.
2011-04-05 Bruce Korb <bkorb@gnu.org>
bootstrap: compute gnulib_extra_files after updating build_aux
* build-aux/bootstrap (gnulib_extra_files): bootstrap.conf may
change build_aux or also supply gnulib_extra_files. Handle correctly.
2011-04-05 Eric Blake <eblake@redhat.com>
bootstrap: preserve git whitelist item sorting
* build-aux/bootstrap (sort_patterns): New function.
(insert_sorted_if_absent): Use it to sink ! lines to the bottom.
2011-04-05 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (sc_prohibit_empty_lines_at_EOF): Don't trigger
sc_space_tab check.
2011-04-05 Paul Eggert <eggert@cs.ucla.edu>
areadlink, areadlinkat: rewrite in terms of careadlinkat
* lib/areadlink.c, lib/areadlinkat.c: Include careadlinkat.h
instead of errno.h, limits.h, stdint.h, stdlib.h, string.h, unistd.h.
(SSIZE_MAX, INITIAL_BUF_SIZE): Remove.
(malloc, realloc): Remove #undefs.
(areadlink, areadlinkat): Rewrite in terms of careadlinkat.
* modules/areadlink (Depends-on): Add careadlinkat. Remove
readlink, ssize_t, stdint, unistd.
* modules/areadlinkat (Depends-on): Add careadlinkat. Remove
areadlink, stdint.
careadlinkat: new module
* lib/allocator.h, lib/careadlinkat.h, lib/careadlinkat.c:
* modules/careadlinkat: New files, written by me with
a review and feedback from Ben Pfaff in
<http://lists.gnu.org/r/bug-gnulib/2011-04/msg00008.html>.
2011-04-01 Bruno Haible <bruno@clisp.org>
wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode.
* lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Use
_GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS. On glibc >= 2.10
systems, use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN.
Reported by Bruce Korb <bruce.korb@gmail.com>.
2011-04-01 Bruno Haible <bruno@clisp.org>
wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems.
* m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Require AC_USE_SYSTEM_EXTENSIONS.
* m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Likewise.
* modules/wcpcpy (Depends-on): Add extensions.
* modules/wcpncpy (Depends-on): Likewise.
* doc/posix-functions/wcpcpy.texi: Mention missing declaration on glibc
systems.
* doc/posix-functions/wcpncpy.texi: Likewise.
* doc/posix-functions/wcwidth.texi: Likewise.
2011-03-31 Eric Blake <eblake@redhat.com>
nonblocking: fix mingw test failures
* lib/nonblocking.c (set_nonblocking_flag): Succeed when clearing
non-blocking flag on regular file.
(get_nonblocking_flag): Set errno on invalid fd.
* tests/test-nonblocking.c (main): Avoid test failure on
directories if fchdir is not active.
* modules/nonblocking-tests (Depends-on): Drop unused dependency.
2011-03-31 Bruno Haible <bruno@clisp.org>
Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.
* m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): Hide the
gl_WARN_ON_USE_PREPARE definition from 'aclocal'.
Reported by Simon Josefsson <simon@josefsson.org>.
2011-03-31 Bruno Haible <bruno@clisp.org>
and Eric Blake <eblake@redhat.com>
nonblocking: new module
* modules/nonblocking: New module.
* modules/nonblocking-tests: Likewise.
* lib/nonblocking.h: New file.
* lib/nonblocking.c: Likewise.
* tests/test-nonblocking.c: New test.
* lib/ioctl.c (ioctl) [mingw]: Update comment.
2011-03-30 Bruno Haible <bruno@clisp.org>
stdio: Avoid GCC >= 4.4 warnings when using %lld and similar on mingw.
* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF): Use 'gnu_printf' format
instead of 'printf' format for GCC >= 4.4.
(_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): New macro.
(fprintf, printf, vfprintf, vprintf): Declare with
_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM when the function ends up calling
the system's vfprintf() function.
Reported by Daniel P. Berrange <berrange@redhat.com> via Eric Blake.
2011-03-30 Eric Blake <eblake@redhat.com>
passfd: fix scoping bug
* lib/passfd.c (sendfd, recvfd): Don't let buf go out of scope
before sendmsg/recvmsg.
passfd: standardize coding conventions
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Drop check for something that
can be learned at compile time.
* lib/passfd.c (MSG_CMSG_CLOEXEC): Reduce number of in-function
ifdefs.
(sendfd, recvfd): Follow gnulib code conventions.
passfd: fix incorrect sendmsg arguments
* lib/passfd.c (sendfd): Avoid uninitialized msg_flags field, and
incorrect msg_controllen value.
* modules/passfd-tests (Depends-on): Check for alarm.
* tests/test-passfd.c (main) [HAVE_DECL_ALARM]: Avoid hanging test.
Reported by Bastien ROUCARIES.
2011-03-30 Bruno Haible <bruno@clisp.org>
c-strcasestr: Relicense under LGPLv2+.
* modules/c-strcasestr (License): Change to LGPLv2+.
Requested by Eric Blake, for libvirt.
2011-03-30 Simon Josefsson <simon@josefsson.org>
* users.txt: Add libidn2. Fix libtasn1 link.
2011-03-30 Jim Meyering <meyering@redhat.com>
tests: readlink* ("",... fails with EINVAL on newer kernels
readlink and readlinkat have typically failed with ENOENT for
the invalid, empty file name, "". However, with the advent
of linux-2.6.39, they fail with EINVAL.
* tests/test-areadlink.h (test_areadlink): Also accept EINVAL
when operating on the empty file name.
* tests/test-readlink.h (test_readlink): Likewise.
2011-03-29 Bruno Haible <bruno@clisp.org>
Relicense some modules under LGPLv2+, for libidn2.
* modules/array-mergesort (License): Change to LGPLv2+.
* modules/c-strcaseeq (License): Likewise.
* modules/striconveh (License): Likewise.
* modules/striconveha (License): Likewise.
* modules/uniconv/base (License): Likewise.
* modules/uniconv/u8-conv-from-enc (License): Likewise.
* modules/uniconv/u8-strconv-from-enc (License): Likewise.
* modules/uniconv/u8-strconv-from-locale (License): Likewise.
* modules/unictype/base (License): Likewise.
* modules/unictype/bidiclass-of (License): Likewise.
* modules/unictype/category-M (License): Likewise.
* modules/unictype/category-none (License): Likewise.
* modules/unictype/category-of (License): Likewise.
* modules/unictype/category-test (License): Likewise.
* modules/unictype/category-test-withtable (License): Likewise.
* modules/unictype/combining-class (License): Likewise.
* modules/unictype/joiningtype-of (License): Likewise.
* modules/unictype/scripts (License): Likewise.
* modules/uninorm/base (License): Likewise.
* modules/uninorm/canonical-decomposition (License): Likewise.
* modules/uninorm/composition (License): Likewise.
* modules/uninorm/decompose-internal (License): Likewise.
* modules/uninorm/decomposition-table (License): Likewise.
* modules/uninorm/nfc (License): Likewise.
* modules/uninorm/nfd (License): Likewise.
* modules/uninorm/u32-normalize (License): Likewise.
* modules/unistr/base (License): Likewise.
* modules/unistr/u32-cpy (License): Likewise.
* modules/unistr/u32-mbtouc-unsafe (License): Likewise.
* modules/unistr/u32-to-u8 (License): Likewise.
* modules/unistr/u32-uctomb (License): Likewise.
* modules/unistr/u8-check (License): Likewise.
* modules/unistr/u8-mblen (License): Likewise.
* modules/unistr/u8-mbtouc (License): Likewise.
* modules/unistr/u8-mbtouc-unsafe (License): Likewise.
* modules/unistr/u8-mbtoucr (License): Likewise.
* modules/unistr/u8-prev (License): Likewise.
* modules/unistr/u8-strlen (License): Likewise.
* modules/unistr/u8-to-u32 (License): Likewise.
* modules/unistr/u8-uctomb (License): Likewise.
* modules/unitypes (License): Likewise.
Requested by Simon Josefsson.
2011-03-29 Simon Josefsson <simon@josefsson.org>
lib-symbol-visibility: Add a notice.
* modules/lib-symbol-visibility (Notice): New field.
2011-03-29 Bruno Haible <bruno@clisp.org>
getaddrinfo: Doc fix.
* doc/posix-functions/getaddrinfo.texi: Mention Windows problem in the
section "fixed in Gnulib".
2011-03-28 Simon Josefsson <simon@josefsson.org>
* doc/posix-functions/getaddrinfo.texi: Drop netdb.h discussion.
Reported by Bastien ROUCARIES <roucaries.bastien@gmail.com>.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/property-byname: Reduce the number of load-time relocations.
* lib/unictype/pr_byname.c: Include <stdlib.h>.
(UC_PROPERTY_INDEX_*): New enumeration values.
(uc_property_byname): Convert an index from the lookup table to an
uc_property_t.
* lib/unictype/pr_byname.gperf: Store indices instead of uc_property_t
values.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/property-byname: Allow omitted word separators and aliases.
* lib/unictype/pr_byname.gperf: Add property names without word
separators. Add aliases from Unicode 6.0 PropertyAliases.txt, except
for 'space'.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/joininggroup-byname: Allow hyphens, omitted word separators.
* lib/unictype/joininggroup_byname.c (uc_joining_group_byname): Convert
also hyphens to space.
* lib/unictype/joininggroup_byname.gperf: Recognize the names also
without spaces.
* tests/unictype/test-joininggroup_byname.c (main): Add more tests.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/joiningtype-byname: Recognize long names as well.
* lib/unictype.in.h (uc_joiningtype_class_byname): Allow argument to be
a long name.
* lib/unictype/joiningtype_byname.c: Include <string.h>,
unictype/joiningtype_byname.h.
(uc_joiningtype_class_byname): Use uc_joining_type_lookup.
* lib/unictype/joiningtype_byname.gperf: New file.
* modules/unictype/joiningtype-byname (Files): Add
lib/unictype/joiningtype_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/joiningtype_byname.h.
* tests/unictype/test-joiningtype_byname.c (main): Test the recognition of
long names.
Tests for module 'unictype/joiningtype-longname'.
* modules/unictype/joiningtype-longname-tests: New file.
* tests/unictype/test-joiningtype_longname.c: New file.
New module 'unictype/joiningtype-longname'.
* lib/unictype.in.h (uc_joiningtype_class_long_name): New declaration.
* lib/unictype/joiningtype_longname.c: New file.
* modules/unictype/joiningtype-longname: New file.
* modules/unictype/joiningtype-all (Depends-on): Add
unictype/joiningtype-longname.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/bidiclass-byname: Recognize long names as well.
* lib/unictype.in.h (uc_bidi_class_byname): Allow argument to be a long
name.
* lib/unictype/bidi_byname.c: Include <string.h>,
unictype/bidi_byname.h.
(uc_bidi_class_byname): Use uc_bidi_class_lookup.
* lib/unictype/bidi_byname.gperf: New file.
* modules/unictype/bidiclass-byname (Files): Add
lib/unictype/bidi_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/bidi_byname.h.
* tests/unictype/test-bidi_byname.c (main): Test the recognition of
long names.
Tests for module 'unictype/bidiclass-longname'.
* modules/unictype/bidiclass-longname-tests: New file.
* tests/unictype/test-bidi_longname.c: New file.
New module 'unictype/bidiclass-longname'.
* lib/unictype.in.h (uc_bidi_class_long_name): New declaration.
* lib/unictype/bidi_longname.c: New file.
* modules/unictype/bidiclass-longname: New file.
* modules/unictype/bidiclass-all (Depends-on): Add
unictype/bidiclass-longname.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/bidi*: Rename modules.
* modules/unictype/bidiclass-all: Renamed from
modules/unictype/bidicategory-all.
* modules/unictype/bidiclass-name: Renamed from
modules/unictype/bidiclass-name.
(Description): Update.
* modules/unictype/bidiclass-name-tests: Renamed from
modules/unictype/bidicategory-name-tests.
* modules/unictype/bidiclass-byname: Renamed from
modules/unictype/bidicategory-byname.
(Description): Update.
* modules/unictype/bidiclass-byname-tests: Renamed from
modules/unictype/bidicategory-byname-tests.
* modules/unictype/bidiclass-of: Renamed from
modules/unictype/bidicategory-of.
(Description): Update.
* modules/unictype/bidiclass-of-tests: Renamed from
modules/unictype/bidicategory-of-tests.
* modules/unictype/bidiclass-test: Renamed from
modules/unictype/bidicategory-test.
(Description): Update.
* modules/unictype/bidiclass-test-tests: Renamed from
modules/unictype/bidicategory-test-tests.
* modules/unictype/bidicategory-all: New file, a simple redirection.
* modules/unictype/bidicategory-name: Likewise.
* modules/unictype/bidicategory-byname: Likewise.
* modules/unictype/bidicategory-of: Likewise.
* modules/unictype/bidicategory-test: Likewise.
* modules/unictype/property-bidi-* (Dependencies): Update.
* lib/unictype/bidi_*.c: Update comment.
2011-03-26 Bruno Haible <bruno@clisp.org>
unictype/bidi*: Rename functions, part 2.
* modules/unictype/bidicategory-name (configure.ac): Update required
libunistring version.
* modules/unictype/bidicategory-byname (configure.ac): Likewise.
2011-03-25 Bruno Haible <bruno@clisp.org>
New module 'unictype/combining-class-all'.
* modules/unictype/combining-class-all: New file.
Tests for module 'unictype/combining-class-byname'.
* modules/unictype/combining-class-byname-tests: New file.
* tests/unictype/test-combiningclass_byname.c: New file.
New module 'unictype/combining-class-byname'.
* lib/unictype.in.h (uc_combining_class_byname): New declaration.
* lib/unictype/combiningclass_byname.c: New file.
* lib/unictype/combiningclass_byname.gperf: New file.
* modules/unictype/combining-class-byname: New file.
Tests for module 'unictype/combining-class-longname'.
* modules/unictype/combining-class-longname-tests: New file.
* tests/unictype/test-combiningclass_longname.c: New file.
New module 'unictype/combining-class-longname'.
* lib/unictype.in.h (uc_combining_class_long_name): New declaration.
* lib/unictype/combiningclass_longname.c: New file.
* modules/unictype/combining-class-longname: New file.
Tests for module 'unictype/combining-class-name'.
* modules/unictype/combining-class-name-tests: New file.
* tests/unictype/test-combiningclass_name.c: New file.
New module 'unictype/combining-class-name'.
* lib/unictype.in.h (uc_combining_class_name): New declaration.
* lib/unictype/combiningclass_name.c: New file.
* modules/unictype/combining-class-name: New file.
2011-03-25 Bruno Haible <bruno@clisp.org>
unictype/combining-class: Rename source files.
* lib/gen-uni-tables.c (main): Emit unictype/combiningclass.h instead
of unictype/combining.h.
* lib/unictype/combiningclass.c: Renamed from lib/unictype/combining.c.
Update.
* lib/unictype/combiningclass.h: Renamed from lib/unictype/combining.h.
* modules/unictype/combining-class (Description): Fix.
(Files, Makefile.am): Update.
* tests/unictype/test-combiningclass.c: Renamed from
tests/unictype/test-combining.c.
* modules/unictype/combining-class-tests (Files, Makefile.am): Update.
2011-03-25 Bruno Haible <bruno@clisp.org>
unictype: Update list of canonical combining classes.
* lib/unictype.in.h (UC_CCC_ATA): New enumeration value.
2011-03-25 Bruno Haible <bruno@clisp.org>
unictype/category-byname: Recognize long names as well.
* lib/unictype.in.h (uc_general_category_byname): Allow argument to be
a long name.
* lib/unictype/categ_byname.c: Include <stdlib.h>, <string.h>,
unictype/categ_byname.h.
(UC_CATEGORY_INDEX_*): New enumeration values.
(uc_general_category_byname): Use uc_general_category_lookup and
convert from index to value.
* lib/unictype/categ_byname.gperf: New file.
* modules/unictype/category-byname (Files): Add
lib/unictype/categ_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/categ_byname.h.
* tests/unictype/test-categ_byname.c (main): Test the recognition of
long names.
Tests for module 'unictype/category-longname'.
* modules/unictype/category-longname-tests: New file.
* tests/unictype/test-categ_longname.c: New file.
New module 'unictype/category-longname'.
* lib/unictype.in.h (uc_general_category_long_name): New declaration.
* lib/unictype/categ_longname.c: New file.
* modules/unictype/category-longname: New file.
* modules/unictype/category-all (Depends-on): Add it.
2011-03-25 Bruno Haible <bruno@clisp.org>
Tests for module 'unictype/category-LC'.
* modules/unictype/category-LC-tests: New file.
* tests/unictype/test-categ_LC.c: New file, automatically generated.
New module 'unictype/category-LC'.
* lib/unictype.in.h (UC_CATEGORY_MASK_LC): New enumeration value.
(UC_CATEGORY_LC): New declaration.
(UC_CASED_LETTER): New macro.
* lib/gen-uni-tables.c (is_category_LC): New function.
(output_categories): Also handle category LC.
(UC_CATEGORY_MASK_LC): New enumeration value.
(general_category_byname): Also handle category LC.
* lib/unictype/categ_LC.c: New file.
* lib/unictype/categ_LC.h: New file, automatically generated.
* lib/unictype/categ_name.c (uc_general_category_name): Also handle
category LC.
* lib/unictype/categ_byname.c (uc_general_category_byname): Likewise.
* modules/unictype/category-LC: New file.
* modules/unictype/category-byname (Depends-on): Add
unictype/category-LC.
* modules/unictype/category-all (Depends-on): Likewise.
2011-03-25 Eric Blake <eblake@redhat.com>
xmalloc: revert yesterday's regression
* lib/xmalloc.c (xrealloc): Once again forward xrealloc(NULL,0) to
realloc's underlying behavior (allowing allocation of zero-size
objects, especially if malloc-gnu is also in use).
2011-03-25 Reuben Thomas <rrt@sc3d.org>
maint.mk: add missing version to VC-tag
* top/maint.mk: git tag was missing actual tag name; add it.
valgrind: do leak checking, and exit with code 1 on error (not 0)
* m4/valgrind-tests.m4: Add `--error-exitcode=1 --leak-check=full'
to VALGRIND.
2010-11-30 Reuben Thomas <rrt@sc3d.org>
posix-modules: say what it does.
* posix-modules: Add a line to the --help output saying what it does.
2011-03-24 Paul Eggert <eggert@cs.ucla.edu>
xmalloc: Do not leak if underlying realloc is C99 compatible.
* lib/xmalloc.c (xrealloc): If N is zero, call 'free' directly.
This avoids a leak on C99-based systems. See
<http://lists.gnu.org/r/bug-gnulib/2011-03/msg00243.html>.
2011-03-24 Eric Blake <eblake@redhat.com>
realloc: document portability problem
* doc/posix-functions/realloc.texi (realloc): Mention pitfalls of
passing 0 size to realloc.
2011-03-23 Ben Walton <bwalton@artsci.utoronto.ca>
doc: update users.txt
* users.txt: Add cvsps, tmpwatch
2011-03-23 Matt Rice <ratmice@gmail.com>
doc: update users.txt
* users.txt: Add gdb.
2011-03-23 Jim Meyering <meyering@redhat.com>
doc: update users.txt
Looking through matches up to the following URL (there are still
several more pages), I found several projects that use gnulib:
http://codesearch.google.com/codesearch?start=50&q=gnulib-cache\.m4
* users.txt: Add nagios plugins (nagiosplug), acct, gengetopt,
gmediaserver, gtkreindeer, jugtail, libunistring, mini-httpd, reindeer.
2011-03-22 Bruno Haible <bruno@clisp.org>
unictype/bidi*: Rename functions.
* lib/unictype.in.h (uc_bidi_class_name, uc_bidi_class_byname,
uc_bidi_class, uc_is_bidi_class): New declarations.
* lib/unictype/bidi_byname.c (uc_bidi_class_byname): Renamed from
uc_bidi_category_byname.
(uc_bidi_category_byname): New function.
* lib/unictype/bidi_name.c (u_bidi_class_name): Renamed from
u_bidi_category_name.
(uc_bidi_class_name): Renamed from uc_bidi_category_name.
(uc_bidi_category_name): New function.
* lib/unictype/bidi_of.c (uc_bidi_class): Renamed from
uc_bidi_category.
(uc_bidi_category): New function.
* lib/unictype/bidi_test.c (uc_is_bidi_class): Renamed from
uc_is_bidi_category. Invoke uc_bidi_class.
(uc_is_bidi_category): New function.
* tests/unictype/test-bidi_byname.c (main): Test uc_bidi_class_byname
instead of uc_bidi_category_byname.
* tests/unictype/test-bidi_name.c (main): Test uc_bidi_class_name
instead of uc_bidi_category_name.
* tests/unictype/test-bidi_of.c (main): Test uc_bidi_class instead of
uc_bidi_category.
* tests/unictype/test-bidi_test.c (main): Test uc_is_bidi_class
instead of uc_is_bidi_category.
2011-03-21 Bruno Haible <bruno@clisp.org>
New module 'unictype/joininggroup-all'.
* modules/unictype/joininggroup-all: New file.
Tests for module 'unictype/joininggroup-of'.
* modules/unictype/joininggroup-of-tests: New file.
* tests/unictype/test-joininggroup_of.c: New file.
* tests/unictype/test-joininggroup_of.h: New file, automatically
generated by gen-uni-tables.
New module 'unictype/joininggroup-of'.
* modules/unictype/joininggroup-of: New file.
* lib/unictype/joininggroup_of.c: New file.
* lib/unictype/joininggroup_of.h: New file, automatically generated by
gen-uni-tables.
Tests for module 'unictype/joininggroup-byname'.
* modules/unictype/joininggroup-byname-tests: New file.
* tests/unictype/test-joininggroup_byname.c: New file.
New module 'unictype/joininggroup-byname'.
* modules/unictype/joininggroup-byname: New file.
* lib/unictype/joininggroup_byname.c: New file.
* lib/unictype/joininggroup_byname.gperf: New file.
Tests for module 'unictype/joininggroup-name'.
* modules/unictype/joininggroup-name-tests: New file.
* tests/unictype/test-joininggroup_name.c: New file.
New module 'unictype/joininggroup-name'.
* modules/unictype/joininggroup-name: New file.
* lib/unictype/joininggroup_name.c: New file.
* lib/unictype/joininggroup_name.h: New file.
New module 'unictype/joiningtype-all'.
* modules/unictype/joiningtype-all: New file.
Tests for module 'unictype/joiningtype-of'.
* modules/unictype/joiningtype-of-tests: New file.
* tests/unictype/test-joiningtype_of.c: New file.
* tests/unictype/test-joiningtype_of.h: New file, automatically
generated by gen-uni-tables.
New module 'unictype/joiningtype-of'.
* modules/unictype/joiningtype-of: New file.
* lib/unictype/joiningtype_of.c: New file.
* lib/unictype/joiningtype_of.h: New file, automatically generated by
gen-uni-tables.
Tests for module 'unictype/joiningtype-byname'.
* modules/unictype/joiningtype-byname-tests: New file.
* tests/unictype/test-joiningtype_byname.c: New file.
New module 'unictype/joiningtype-byname'.
* modules/unictype/joiningtype-byname: New file.
* lib/unictype/joiningtype_byname.c: New file.
Tests for module 'unictype/joiningtype-name'.
* modules/unictype/joiningtype-name-tests: New file.
* tests/unictype/test-joiningtype_name.c: New file.
New module 'unictype/joiningtype-name'.
* modules/unictype/joiningtype-name: New file.
* lib/unictype/joiningtype_name.c: New file.
unictype: Add support for Arabic shaping properties.
* lib/unictype.in.h (UC_JOINING_TYPE_*): New enumeration values.
(uc_joining_type_name, uc_joining_type_byname, uc_joining_type): New
declarations.
(UC_JOINING_GROUP_*): New enumeration values.
(uc_joining_group_name, uc_joining_group_byname, uc_joining_group): New
declarations.
* lib/gen-uni-tables.c (UC_JOINING_TYPE_*): New enumeration values.
(unicode_joining_type): New variable.
(UC_JOINING_GROUP_*): New enumeration values.
(unicode_joining_group): New variable.
(fill_arabicshaping, joining_type_as_c_identifier,
output_joining_type_test, output_joining_type,
joining_group_as_c_identifier, output_joining_group_test,
output_joining_group): New functions.
(main); Add an argument denoting the ArabicShaping.txt file. Invoke
fill_arabicshaping and output_joining_type_test, output_joining_type,
output_joining_group_test, output_joining_group.
Reported by Simon Josefsson.
2011-03-21 Jim Meyering <meyering@redhat.com>
strftime: fix a bug in yesterday's change
* lib/strftime.c (add): Accommodate width's initial value of -1.
Otherwise, nstrftime would copy uninitialized data into
the result buffer.
2011-03-21 Jim Meyering <meyering@redhat.com>
tests: add strftime-tests module
* tests/test-strftime.c: New file.
* modules/strftime-tests: New module.
2011-03-20 Paul Eggert <eggert@cs.ucla.edu>
strftime: don't assume a byte count fits in 'int'
* lib/strftime.c (add): Don't assume first arg fits in 'int'. I
found this problem by static analysis, using gcc -Wstrict-overflow
(GCC 4.5.2, x86-64). This reported an optimization that depended
on an integer overflow having undefined behavior, but it turns out
that the argument is a size, which might not fit in 'int' anyway,
2011-03-20 Paul Eggert <eggert@cs.ucla.edu>
stdio: don't require ignore_value around fwrite
This patch works around libc bug 11959
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>.
Without this patch, applications must often write
ignore_value (fwrite (...)) even though the ignore_value is
not helpful here. It's common to write many objects, using
fwrite/printf/etc., and then use ferror to detect output error.
I considered making this patch optional, but decided against it,
because libc is obviously being inconsistent here: there is no
reason libc should insist that user code must inspect fwrite
return's value without also insisting that it inspect printf's,
putchar's, etc. If user code wants to have a strict style where
all these functions' values are checked (so that ferror need not
be checked), we could add support for that style in a new gnulib
module, but in the meantime it's better to be consistent and to
support common usage.
* lib/stdio.in.h (rpl_fwrite): Define this wrapper around fwrite,
to work around libc bug 11959, if __USE_FORTIFY_LEVEL indicates
that we are compiling in checking mode, and if not C++, and
if not already wrapping fwrite for some other reason.
(fwrite): #define to rpl_fwrite if the latter is defined.
2011-03-20 Bruno Haible <bruno@clisp.org>
verror: Fix compilation error introduced on 2011-02-13.
* lib/verror.h (verror, verror_at_line): Use _GL_ATTRIBUTE_FORMAT macro
instead of __attribute__.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2011-03-20 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
socklen: do not depend on sys_socket
While trying to modify Emacs to use gnulib's socklen module,
I discovered a circular dependency: socklen depends on sys_socket
and vice versa. Emacs can use socklen, but it does not need
sys_socket because it has its own substitute for sys/socket.h.
* m4/socklen.m4 (gl_SOCKET_HEADERS): New macro, extracted from
gl_TYPE_SOCKLEN_T.
(gl_CHECK_SOCKET_HEADERS): New macro, taken from parts of
gl_PREREQ_SYS_H_SOCKET.
(gl_TYPE_SOCKLEN_T): Require it instead of requiring
gl_PREREQ_SYS_H_SOCKET.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_SOCKET): Require
gl_CHECK_SOCKET_HEADERS instead of doing its work ourselves.
* modules/socklen (Depends-on): Do not depend on sys_socket.
(Include): Adjust to match the code used in gl_SOCKET_HEADERS.
2011-03-20 Jim Meyering <meyering@redhat.com>
maint.mk: sort file names *after* new transformation
* top/maint.mk (sc_po_check): Sorting before removing the $(srcdir)/
prefix would have led to an unwarranted failure in GNU parted.
Sort after that transformation.
2011-03-19 Jim Meyering <meyering@redhat.com>
maint.mk: fix po-file syntax-check rule
* top/maint.mk (sc_po_check): Fix fatal typo in yesterday's change.
Patch by Bruno Haible.
2011-03-19 Bruno Haible <bruno@clisp.org>
socklen: Update comment.
* m4/socklen.m4: Update comment about platforms.
2011-03-19 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Simplify.
* modules/inet_ntop (Depends-on): Remove socklen, since sys_socket is
documented to provide socklen_t and we already depend on sys_socket.
* modules/inet_pton (Depends-on): Likewise.
* lib/arpa_inet.in.h: Adjust comment.
2011-03-19 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
netdb: Simplify.
* modules/netdb (Depends-on): Remove socklen, since sys_socket is
documented to provide socklen_t and we already depend on sys_socket.
* lib/netdb.in.h: Adjust comment.
2011-03-19 Bruno Haible <bruno@clisp.org>
sys_socket, netdb: Document problem with socklen_t.
* doc/posix-headers/sys_socket.texi: Mention lack of socklen_t on some
platforms.
* doc/posix-headers/netdb.texi: Likewise.
2011-03-18 Eric Blake <eblake@redhat.com>
maint.mk: let po check work in VPATH build
* top/maint.mk (po_file): Allow cfg.mk override.
(sc_po_check): Allow VPATH use.
Reported by Jiri Denemark.
2011-03-16 Jim Meyering <meyering@redhat.com>
maint.mk: allow fine-grained syntax-check exclusion via Make variables
Before, you would have had to create one .x-sc_ file per rule in order
to exempt offending files. Now, you may instead use a Make variable --
usually defined in cfg.mk -- whose name identifies the affected rule.
* top/maint.mk (_sc_excl): Define.
(VC_LIST_EXCEPT): Use it to exclude names on a per-rule basis.
(_sc_search_regexp): When not using VC_LIST_EXCEPT, exclude here, too.
2011-03-13 Bruno Haible <bruno@clisp.org>
ignore-value tests: Avoid warnings.
* tests/test-ignore-value.c (_GL_ATTRIBUTE_RETURN_CHECK): Define to
empty for gcc < 3.4.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd: Fix link error on Solaris.
* modules/passfd (Description): Correct.
(Depends-on): Add socketlib.
(Link): New section.
* modules/passfd-tests (Makefile.am): Link test-passfd with LIBSOCKET.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd: Fix link error on AIX 5.2.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Define _LINUX_SOURCE_COMPAT.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd: Work around bug with CMSG_FIRSTHDR on FreeBSD 6.4.
* lib/sys_socket.in.h: Include <stddef.h>.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Include <stddef.h> before using
CMSG_FIRSTHDR. Remove unused variable.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd: Fix compilation error on OpenBSD.
* lib/passfd.c: Include <sys/uio.h>.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd test: Fix warnings.
* tests/test-passfd.c: Include <sys/wait.h>.
(main): Fix typo.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd module, part 4, tweaks.
* tests/test-passfd.c: Reorder includes.
(main): Fix perror and printf calls.
2011-03-07 Bastien Roucariès <roucaries.bastien@gmail.com>
passfd module, part 4.
* modules/passfd-tests: New file.
* tests/test-passfd.c: New file.
2011-03-13 Jim Meyering <meyering@redhat.com>
Makefile: rely on GNU make; derive syntax-check rule names
Rather than requiring that each sc_ rule be listed as a dependent
of "check", use features of GNU make to derive the list.
* Makefile (syntax-check-rules): Define.
(check): Depend on the new variable, not the hard-coded list.
2011-03-13 Bastien Roucariès <roucaries.bastien@gmail.com>
Bruno Haible <bruno@clisp.org>
passfd module, part 3.
* lib/passfd.h (recvfd): Add a flags argument.
* lib/passfd.c: Include <fcntl.h>, cloexec.h.
(recvfd): Add a flags argument.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Test whether MSG_CMSG_CLOEXEC
exists.
* modules/passfd (Depends-on): Add cloexec.
Suggested by Eric Blake.
2011-03-13 Bruno Haible <bruno@clisp.org>
passfd module, part 2, tweaks.
* modules/passfd (Files): Reorder.
(Depends-on): Remove errno.
(Include): Remove <sys/socket.h>, <sys/un.h>.
* lib/passfd.h: Use a GPLv3+ header. Make C++ safe.
* lib/passfd.c: Untabify. Use a GPLv3+ header. Really include the
specification header. Include <sys/socket.h> always. Don't include
<winsock2.h>. Use "#if HAVE_..." instead of "#ifdef HAVE_...".
(sendfd): Clarify that it sets errno when it fails.
(recvfd): Fix specification.
2011-03-07 Bastien Roucariès <roucaries.bastien@gmail.com>
passfd module, part 2.
* modules/passfd: New file.
* lib/passfd.h: New file.
* lib/passfd.c: New file.
2011-03-12 Bruno Haible <bruno@clisp.org>
wcswidth, mbswidth: Avoid integer overflow.
* lib/wcswidth.c: Include <limits.h>.
* lib/wcswidth-impl.h (wcswidth): Avoid 'int' overflow.
* lib/mbswidth.c: Include <limits.h>.
(mbsnwidth): Avoid 'int' overflow.
Reported by Jim Meyering.
2011-03-12 Bruno Haible <bruno@clisp.org>
futimens, utimensat: Avoid endless recursion on Solaris 10.
* lib/sys_stat.in.h (futimens, utimensat): Define with rpl_ prefix on
Solaris.
Reported by Ben Walton <bwalton@artsci.utoronto.ca> via Eric Blake
in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8230>.
2011-03-11 Jim Meyering <meyering@redhat.com>
maint.mk: relax a regexp to accommodate other formatting styles
* top/maint.mk (sc_unmarked_diagnostics): Allow 0 or 1 space
between "ngettext" and the following "(".
2011-03-11 Pádraig Brady <P@draigBrady.com>
maint.mk: suppress a false positive warning
* top/maint.mk ((sc_unmarked_diagnostics): Don't warn when
diagnostics are marked with ngettext.
2011-03-10 Eric Blake <eblake@redhat.com>
wchar: add explicit dependencies, for Tru64
* modules/mbmemcasecoll (Depends-on): Add wchar.
* modules/mbtowc (Depends-on): Likewise.
* modules/vasnprintf (Depends-on): Likewise.
* modules/unistdio/u-printf-args (Depends-on): Likewise.
* modules/wctomb (Depends-on): Likewise.
Reported by Peter O'Gorman.
2011-03-08 Bruno Haible <bruno@clisp.org>
passfd module, part 1, tweaks.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Update AC_REQUIRE invocation.
Improve indentation. Improve AC_MSG_CHECKING messages.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILY_UNIX): New macro, extracted from
gl_SOCKET_FAMILIES.
2011-03-07 Bastien Roucariès <roucaries.bastien@gmail.com>
passfd module, part 1.
* m4/afunix.m4: New file.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Also test for UNIX domain
sockets.
2011-03-08 Bruno Haible <bruno@clisp.org>
regex-quote: New API.
* lib/regex-quote.h: Include <stdbool.h>.
(struct regex_quote_spec): New type.
(regex_quote_spec_posix, regex_quote_spec_gnu, regex_quote_spec_pcre):
New declarations.
(regex_quote_length, regex_quote_copy, regex_quote): Take a
'const struct regex_quote_spec *' argument.
* lib/regex-quote.c (RE_*, PCRE_*): New macros.
(pcre_special): New constant.
(regex_quote_spec_posix, regex_quote_spec_gnu, regex_quote_spec_pcre):
New functions.
(regex_quote_length, regex_quote_copy, regex_quote): Take a
'const struct regex_quote_spec *' argument.
* modules/regex-quote (Depends-on): Add stdbool.
* tests/test-regex-quote.c (check): Update for new API. Add test for
anchored results.
* NEWS: Mention the API change.
Reported by Reuben Thomas and Eric Blake.
2011-03-06 Bruno Haible <bruno@clisp.org>
regex-quote: Fix creation of POSIX extended regular expressions.
* lib/regex-quote.c (ere_special): Add grouping and alternation
operators.
2011-03-05 Bruno Haible <bruno@clisp.org>
doc: Improve doc regarding autopoint vs. gnulib.
* doc/gnulib-tool.texi (gettextize and autopoint): Recommend to
disable autopoint while running autoreconf.
Suggested by Ralf Wildenhues.
2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Update AC_OPENMP macro for Lahey compiler on GNU/Linux.
* m4/openmp.m4 (AC_OPENMP): Sync from Autoconf.
2011-03-03 Bruce Korb <bkorb@gnu.org>
parse-duration: remove xalloc.h dependency
* lib/parse-duration.c (parse_period): handle NULL return from
strdup instead of calling xstrdup().
* modules/parse-duration: remove "xalloc" dependency
2011-03-03 Matthew Booth <mbooth@redhat.com>
bootstrap: honor m4_base when running aclocal
* build-aux/bootstrap: Fix hard-coded use of m4 directory name.
2011-03-02 Jim Meyering <meyering@redhat.com>
getopt-gnu: relax license from LGPLv3+ to LGPLv2+
* modules/getopt-gnu (License): Relax to LGPLv2+, for augeas,
on request from Matt Booth.
2011-03-01 Eric Blake <eblake@redhat.com>
test-link: work on Hurd
* tests/test-link.h (test_link): Hurd rejects linking directories
with EISDIR instead of the POSIX-mandated EPERM.
2011-02-28 Paul Eggert <eggert@cs.ucla.edu>
stdio: simplify by moving files to printf-posix, sigpipe
* m4/stdio_h.m4 (gl_STDIO_H): Do not require gl_ASM_SYMBOL_PREFIX,
since this symbol is needed only if printf is replaced.
* m4/printf-posix-rpl.m4 (gl_REPLACE_PRINTF):
Require gl_ASM_SYMBOL_PREFIX.
* modules/printf-posix (Files): Add m4/asm-underscore.m4.
* modules/sigpipe (Files): Likewise. Also, add m4/stdio-write.c.
(Depends-on): Add 'raise'.
(configure.ac): Require gl_ASM_SYMBOL_PREFIX.
* modules/stdio (Files): Remove lib/stdio-write.c,
m4/asm-underscore.m4.
(Depends-on): Remove 'raise'.
stdio: simplify by moving gl_STDIN_LARGE_OFFSET to fseeko, ftello
* m4/fseeko.m4 (gl_STDIN_LARGE_OFFSET): Moved here, from ...
* m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET): ... here, because
* modules/ftello (Files): Add m4/fseeko.m4, for gl_STDIN_LARGE_OFFSET.
2011-02-28 Bruno Haible <bruno@clisp.org>
localcharset: Assume ANSI C behaviour of free().
* lib/localcharset.c (get_charset_aliases): Remove NULL test before
calling free().
Suggested by Simon Josefsson <simon@josefsson.org>.
2011-02-28 Corinna Vinschen <vinschen@redhat.com> (tiny change)
Charles Wilson <cygwin@cwilson.fastmail.fm> (tiny change)
Bruno Haible <bruno@clisp.org> (tiny change)
On Cygwin, use /proc file system instead of win32 API.
* lib/relocatable.c: On Cygwin, use file names from /proc, rather than
Win32 file names.
(DllMain): Simplify by removing Cygwin specific code.
(find_shared_library_fullname): Use Linux specific implementation also
for Cygwin.
(get_shared_library_fullname): Update accordingly.
* lib/progreloc.c: On Cygwin, use file names from /proc, rather than
Win32 file names.
(find_executable): On Cygwin, use /proc, like on Linux. Remove previous
Cygwin specific code.
2011-02-28 Christian Rössel <christian.roessel@gmx.de> (tiny change)
Markus Geimer <m.geimer@fz-juelich.de> (tiny change)
Fix OpenMP flag detection for various Fortran compilers.
* m4/openmp.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$'
OpenMP-conditional compilation construct, to force compile
failure with missing OpenMP flag.
(AC_OPENMP): Add flags for Cray CCE and NEC SX compilers.
2011-02-25 Eric Blake <eblake@redhat.com>
strstr: expand test coverage
* tests/test-strstr.c (main): Add much shorter trigger. Fix C89
compilation.
* tests/test-memmem.c (main): Duplicate tests.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
2011-02-25 Jim Meyering <meyering@redhat.com>
maint.mk: detect missing-NL-at-EOF, too
* top/maint.mk (sc_prohibit_empty_lines_at_EOF): Adjust so that
it also detects when a file lacks a newline at EOF.
(require_exactly_one_NL_at_EOF_): Renamed from
detect_empty_lines_at_EOF_. I opted not to rename the rule,
since people may well have .x-sc_... file names tied to the
existing name. Suggested by Eric Blake.
2011-02-25 Paul Eggert <eggert@cs.ucla.edu>
dirname: move m4/dos.m4 functionality into lib/dosname.h
m4/dos.m4 needs to go. It laboriously invokes the C compiler, and
extracts symbols from it, puts them into config.h; but it's much
easier to use the symbols directly. filename.h already does this,
but it disagrees with dos.m4 in some respects. This patch
introduces a different include file dosname.h that packages up
dos.m4, and then later we can work on merging filename.h and
dosname.h. Applications that need only the easy-to-configure
symbols should consider including dosname.h rather than dirname.h.
* NEWS: Mention incompatible changes.
* m4/dos.m4: Remove.
* lib/dosname.h, modules/dosname: New files.
* lib/dirname.h (ISSLASH, FILE_SYSTEM_PREFIX_LEN):
(FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE):
(IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): Move to lib/dosname.h.
* lib/at-func.c, lib/at-func2.c, lib/openat.c, lib/savewd.c:
Include dosname.h, not dirname.h.
* lib/rmdir.c, lib/stat.c, lib/unlink.c, lib/unlinkat.c:
Include dosname.h, for definitions of symbols like ISSLASH
that used to be in config.h.
* m4/dirname.m4 (gl_DIRNAME_LGPL): Do not require gl_AC_DOS.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* modules/dirname-lgpl (Files): Omit m4/dos.m4.
* modules/rmdir (Files): Likewise.
* modules/stat (Files): Likewise.
* modules/unlink (Files): Likewise.
* modules/dirname-lgpl (Depends-on): Add dosname.
* modules/lstat (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/rmdir (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/unlink (Depends-on): Likewise.
* modules/openat (Depends-on): Remove dirname-lgpl.
* modules/savewd (Depends-on): Likewise.
* tests/test-dirname.c: Do not use removed symbols like
FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR. Instead, use
the remaining symbols, e.g., ISSLASH ('\\').
2011-02-25 Eric Blake <eblake@redhat.com>
strstr: revert patches that introduced bug and pessimization
* lib/str-two-way.h: Add another reference.
(two_way_short_needle, two_way_long_needle): Revert changes from
2011-02-24; they pessimize search speed.
(critical_factorization): Partially revert changes from
2010-06-22; they violate the requirement that the left half of the
needle be smaller than the period of the needle.
2011-02-24 Paul Eggert <eggert@cs.ucla.edu>
filenamecat: remove unnecessary dependency on dirname-lgpl
* modules/filenamecat (Depends-on): Remove dirname-lgpl, as there
is no direct dependency, just an indirect one via filenamecat-lgpl.
remove: remove unnecessary use of m4/dos.m4
* m4/remove.m4 (gl_FUNC_REMOVE): Don't require gl_AC_DOS; not needed.
* modules/remove (FILES): Remove m4/dos.m4.
* lib/openat-proc.c: Don't include dirname.h; not needed.
backupfile: remove unnecessary use of m4/dos.m4
* m4/backupfile.m4 (gl_BACKUPFILE): Don't require gl_AC_DOS; none
of its symbols are used by the backupfile code. backupfile.c does
use a symbol HAVE_DOS_FILE_NAMES, but that symbol is meant only
for the rare case of programs that want all their backup file
names to live within 8+3 limits, and dos.m4 doesn't address that.
* modules/backupfile (Files): Remove m4/dos.m4.
2011-02-24 Jim Meyering <meyering@redhat.com>
strstr: fix a bug whereby strstr would mistakenly return NULL
* lib/str-two-way.h (two_way_short_needle): Correct off-by-one error
in period calculation.
(two_way_long_needle): Likewise.
The original problem was reported by Mike Stump in
http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/7834
Ralf Wildenhues provided the short needle and haystack.
* tests/test-strstr.c: Add Ralf's test case to trigger the bug.
Add a more involved test to trigger the bug in two_way_long_needle.
2011-02-24 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
gnulib-tool: remove use of bold display in help screen
* gnulib-tool (func_usage): Do not use bold display anymore in the
help screen. That was just meant to be a temporary emphasis for a
backward-incompatible change.
2011-02-23 Bruno Haible <bruno@clisp.org>
Fix misindentation of preprocessor directives.
* lib/argp-namefrob.h: Reindent preprocessor directives.
* lib/getopt_int.h (struct _getopt_data): Likewise.
* lib/progreloc.c (maybe_executable, find_executable): Likewise.
* lib/vasnprintf.c (decode_long_double): Likewise.
* tests/test-argmatch.c: Insert blank lines, for clarity.
* tests/test-exclude.c: Likewise.
2011-02-22 Bruno Haible <bruno@clisp.org>
ioctl: Fix for MacOS X in 64-bit mode.
* lib/ioctl.c (rpl_ioctl): Zero-extend, not sign-extend, the request
value.
Suggested by Eric Blake.
Reported by Markus Gothe <nietzsche@lysator.liu.se>.
2011-02-22 Jim Meyering <meyering@redhat.com>
maint: sc_cpp_indent_check: remove the "only in lib/" restriction
* Makefile (sc_cpp_indent_check): Don't limit the check to files
in lib/.
2011-02-22 Eric Blake <eblake@redhat.com>
maint: avoid any CDPATH issue
* Makefile (sc_cpp_indent_check): Anchor cd argument.
maint: adjust cpp indentation for my modules, as well
* Makefile (sc_cpp_indent_check): Add my name.
* lib/fbufmode.c: Filter through cppi.
* lib/fpurge.c: Likewise.
* lib/freadable.c: Likewise.
* lib/freading.c: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwriting.c: Likewise.
* lib/sigaction.c: Likewise.
2011-02-22 Jim Meyering <meyering@redhat.com>
maint: adjust cpp indentation to reflect nesting depth
I.e., in a block of code that begins with an unnested "#if",
put one space between the "#" in column 1 and following token.
For example,
-#include <sys/vfs.h>
+# include <sys/vfs.h>
Do this only in .c files that are part of a module I maintain.
* lib/linkat.c: Filter through cppi.
* lib/nanosleep.c: Likewise.
* lib/openat.c: Likewise.
* lib/openat-die.c: Likewise.
* lib/dup3.c: Likewise.
* lib/fchownat.c: Likewise.
* lib/flock.c: Likewise.
* lib/fsync.c: Likewise.
* lib/fts.c: Likewise.
* lib/getpass.c: Likewise.
* lib/gettimeofday.c: Likewise.
* lib/userspec.c: Likewise.
* Makefile (sc_cpp_indent_check): New rule, to check this.
2011-02-22 Bruno Haible <bruno@clisp.org>
New module 'wctomb'.
* lib/stdlib.in.h (wctomb): New declaration.
* lib/wctomb.c: New file.
* lib/wctomb-impl.h: New file.
* m4/wctomb.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_WCTOMB,
REPLACE_WCTOMB.
* modules/stdlib (Makefile.am): Substitute GNULIB_WCTOMB,
REPLACE_WCTOMB.
* modules/wctomb: New file.
* tests/test-stdlib-c++.cc: Test signature of wctomb.
* doc/posix-functions/wctomb.texi: Mention the new module.
* modules/wctob (Depends-on): Add wctomb.
2011-02-22 Bruno Haible <bruno@clisp.org>
New module 'mbtowc'.
* lib/stdlib.in.h (mbtowc): New declaration.
* lib/mbtowc.c: New file.
* lib/mbtowc-impl.h: New file, from libutf8 with modifications.
* m4/mbtowc.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MBTOWC,
REPLACE_MBTOWC.
* modules/stdlib (Makefile.am): Substitute GNULIB_MBTOWC,
REPLACE_MBTOWC.
* modules/mbtowc: New file.
* tests/test-stdlib-c++.cc: Test signature of mbtowc.
* doc/posix-functions/mbtowc.texi: Mention the new module.
* modules/btowc (Depends-on): Add mbtowc.
2011-02-22 Bruno Haible <bruno@clisp.org>
wcrtomb: Add more tests for native Windows platforms.
* tests/test-wcrtomb-w32-1.sh: New file.
* tests/test-wcrtomb-w32-2.sh: New file.
* tests/test-wcrtomb-w32-3.sh: New file.
* tests/test-wcrtomb-w32-4.sh: New file.
* tests/test-wcrtomb-w32-5.sh: New file.
* tests/test-wcrtomb-w32.c: New file.
* modules/wcrtomb-tests (Files): Add them.
(Makefile.am): Arrange to run these tests.
* tests/test-wcrtomb-w32-6.sh: New file, currently unused.
* tests/test-wcrtomb-w32-7.sh: New file, currently unused.
2011-02-20 Bruno Haible <bruno@clisp.org>
wcrtomb: Enhance test.
* tests/test-wcrtomb.c (main): Add test against bug with NULL argument.
2011-02-20 Bruno Haible <bruno@clisp.org>
mbrtowc: Tiny optimization.
* lib/mbrtowc.c (mbrtowc): Delay pstate assignment until it is needed.
2011-02-20 Jim Meyering <meyering@redhat.com>
test-exclude.c: remove unmatched #endif
* tests/test-exclude.c: Remove stray #endif, left over from
the change of a week ago.
2011-02-19 Jim Meyering <meyering@redhat.com>
git-version-gen: skip "-dirty" check when appropriate
* build-aux/git-version-gen: Don't run any git commands when the
version string comes from .tarball-version. Prior to this, we
would run git update-index --refresh even from a just-unpacked
tarball directory, and that could affect a .git/ directory in a
parent of the build directory. Reported by Mike Frysinger.
2011-02-19 Bruno Haible <bruno@clisp.org>
unictype/property-byname: Reduce the size of the 'data' segment.
* lib/unictype/pr_byname.gperf: Add gperf option '%pic'.
2011-02-19 Bruno Haible <bruno@clisp.org>
unictype/scripts: Reduce the size of the 'data' segment.
* lib/gen-uni-tables.c (output_scripts_byname): Emit gperf option
'%pic'.
* lib/unictype/scripts_byname.gperf: Regenerated.
2011-02-19 Bruno Haible <bruno@clisp.org>
stdint: Update documentation.
* doc/posix-headers/stdint.texi: Mention WCHAR_MIN, WCHAR_MAX problem.
2011-02-18 Paul Eggert <eggert@cs.ucla.edu>
stdint: omit redundant check for wchar.h
* m4/stdint.m4 (gl_STDINT_H): The earlier part of this macro now
always tests whether wchar.h exists, so remove the now-redundant test.
2011-02-18 Bruno Haible <bruno@clisp.org>
stdint: Cut dependency to module 'wchar'.
* lib/stdint.in.h: Include wchar.h only when HAVE_WCHAR_H is 1. Also
include the necessary prerequisites.
* m4/stdint.m4 (gl_STDINT_H): Test whether wchar.h exists.
* modules/stdint (Depends-on): Remove wchar.
(Makefile.am): Substitute HAVE_WCHAR_H.
This reverts part of a 2007-01-06 commit. Reported by Paul Eggert.
2011-02-18 Eric Blake <eblake@redhat.com>
longlong: skip, rather than fail, on cross-compilation
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Avoid aborting configure
when cross-compiling; regression from 2011-02-16.
2011-02-17 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Mention 2011-02-08 change to stdlib.
2011-02-17 Bruno Haible <bruno@clisp.org>
getloadavg: Add comments about platforms.
* m4/getloadavg.m4: Add comment.
* lib/getloadavg.c: Likewise.
2011-02-17 Bruno Haible <bruno@clisp.org>
getloadavg: Fix link error on Solaris 2.6.
* modules/getloadavg (Link): New section.
* modules/getloadavg-tests (Makefile.am): Use GETLOADAVG_LIBS for
linking test-getloadavg.
* doc/glibc-functions/getloadavg.texi: Mention that Solaris 2.6 lacks
getloadavg.
2011-02-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/getloadavg.c (getloadavg) [sgi]: Make ldav_off of type ptrdiff_t.
It was 'int', but this doesn't match the IRIX 6.5 manual.
Suggested by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-02/msg00207.html>.
2011-02-17 Bruno Haible <bruno@clisp.org>
havelib: Fix comments.
* m4/lib-link.m4 (AC_LIB_RPATH): Update comments after 2007-01-02
change.
2011-02-17 Bruno Haible <bruno@clisp.org>
havelib: Update config.rpath.
* build-aux/config.rpath: Update to match libtool.m4 from libtool-2.4.
2011-02-17 Bruno Haible <bruno@clisp.org>
getloadavg test: Add some plausibility checks.
* tests/test-getloadavg.c (check_avg): Print a warning when the value
is improbable.
2011-02-16 Eric Blake <eblake@redhat.com>
maintainer-makefile: make syntax-check a no-op from tarballs
* top/maint.mk (no-vc-detected): New rule.
(local-checks-available): Use it to avoid hanging if someone tries
'make syntax-check' from a tarball. Also append to any non-syntax
checks already defined in cfg.mk.
2011-02-16 Paul Eggert <eggert@cs.ucla.edu>
longlong: tune, particularly for common case of c99
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Don't bother compiling
or running anything if c99, or if unsigned long long int does not
work. In either case, we know the answer without further tests.
Do not compile _AC_TYPE_LONG_LONG_SNIPPET twice. Instead, compile
it at most once, and use its results for both long long int and
unsigned long long int. This is more likely to be efficient in
the common case where the program wants to check for both long
long int and unsigned long long int.
(AC_TYPE_UNSIGNED_LONG_LONG_INT): Don't bother compiling if c99,
since the answer is already known.
2011-02-15 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: set errno
* lib/getloadavg.c: Set errno when returning -1. If no other
error number looks appropriate, set it to ENOSYS if the getloadavg
looks like it can't possibly ever work, ENOTSUP otherwise.
Suggested by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-02/msg00187.html>.
getloadavg: trim unused parts and speed up 'configure'
* NEWS: Document this.
* lib/getloadavg.c: Ignore HAVE_GETLOADAVG; this file is now
always compiled if getloadavg is absent.
Move test code to ...
* tests/test-getloadavg.c: New file, containing previous
contents of test from lib/getloadavg.c. It also contains
suggestions by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-02/msg00186.html>.
* modules/getloadavg-tests: New file.
* m4/getloadavg.m4 (gl_GETLOADAVG): Do not check for getloadavg twice.
Do tests in the same order as they're needed for getloadavg.c.
Omit setgid-related tests that generate symbols KMEM_GROUP,
NEET_SETGID, GETLOADAVG_PRIVILEGED; nobody seems to use those any more.
Do only the tests that are needed to see whether the system has
getloadavg, moving the other tests into ...
(gl_PREREQ_GETLOADAVG): ... here. Do not define obsolete symbol
NLIST_NAME_UNION; nobody should be using it. Do not define
symbols C_GETLOADAVG and HAVE_GETLOADAVG; they're no longer
relevant, as the user of this module shouldn't care how getloadavg
is implemented.
getloadavg: omit unused var
* lib/getloadavg.c (getloadavg): Omit unused local variable.
2011-02-15 Jim Meyering <meyering@redhat.com>
doc: update users.txt
* users.txt: Update iwhd's URL.
2011-02-13 Bruno Haible <bruno@clisp.org>
Consistent macro naming for macros that use GCC __attribute__.
* lib/di-set.h (_GL_ATTRIBUTE_NONNULL): Renamed from
_ATTRIBUTE_NONNULL_.
* lib/ino-map.h (_GL_ATTRIBUTE_NONNULL): Likewise.
* lib/hash.h (_GL_ATTRIBUTE_WUR): Renamed from ATTRIBUTE_WUR.
* lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Renamed from
ATTRIBUTE_DEPRECATED.
* lib/openat.h (_GL_ATTRIBUTE_NORETURN): Renamed from
ATTRIBUTE_NORETURN.
* lib/sigpipe-die.h (_GL_ATTRIBUTE_NORETURN): Likewise.
* lib/xmemdup0.h (_GL_ATTRIBUTE_NORETURN): Likewise.
* lib/xstrtol.h (_GL_ATTRIBUTE_NORETURN): Likewise.
* lib/xalloc.h (_GL_ATTRIBUTE_NORETURN): Likewise.
(_GL_ATTRIBUTE_MALLOC): Renamed from ATTRIBUTE_MALLOC.
(_GL_ATTRIBUTE_ALLOC_SIZE): Renamed from ATTRIBUTE_ALLOC_SIZE.
* lib/version-etc.h (_GL_ATTRIBUTE_SENTINEL): Renamed from
ATTRIBUTE_SENTINEL.
* lib/safe-alloc.h (_GL_ATTRIBUTE_RETURN_CHECK): Renamed from
ATTRIBUTE_RETURN_CHECK.
* tests/test-ignore-value.c (_GL_ATTRIBUTE_RETURN_CHECK): Likewise.
* tests/test-argmatch.c (_GL_ATTRIBUTE_NORETURN): Renamed from
ATTRIBUTE_NORETURN.
* tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN): Likewise.
Reported by Paul Eggert.
2011-02-13 Bruno Haible <bruno@clisp.org>
Don't interfere with a program's definition of __attribute__.
* lib/argp.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(argp_error, __argp_error, argp_failure, __argp_failure): Use it.
* lib/argp-fmtstream.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(__argp_fmtstream_printf, argp_fmtstream_printf): Use it.
* lib/argp-help.c (hol_entry_long_iterate): Use __attribute__ only for
GCC 3 or newer.
* lib/error.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(error, error_at_line): Use it.
* lib/hash.h (__attribute__): Remove definition.
(ATTRIBUTE_WUR): Update definition. Define always.
* lib/openat.h (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
* lib/sigpipe-die.h (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
* lib/vasnprintf.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(asnprintf, vasnprintf): Use it.
* lib/xalloc.h (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
(ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE): Define always.
* lib/xmemdup0.h (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
* lib/xprintf.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(xprintf, xvprintf, xfprintf, xvfprintf): Use it.
* lib/xstrtol.h (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
* lib/xvasprintf.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT): New macro.
(xasprintf, xvasprintf): Use it.
* tests/test-argmatch.c (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
* tests/test-exclude.c (__attribute__): Remove definition.
(ATTRIBUTE_NORETURN): Update definition. Define always.
Reported by Paul Eggert.
2011-02-13 Bruno Haible <bruno@clisp.org>
mbrtowc: Add more tests for native Windows platforms.
* tests/test-mbrtowc-w32-1.sh: New file.
* tests/test-mbrtowc-w32-2.sh: New file.
* tests/test-mbrtowc-w32-3.sh: New file.
* tests/test-mbrtowc-w32-4.sh: New file.
* tests/test-mbrtowc-w32-5.sh: New file.
* tests/test-mbrtowc-w32.c: New file.
* modules/mbrtowc-tests (Files): Add them.
(Makefile.am): Arrange to run these tests.
* tests/test-mbrtowc-w32-6.sh: New file, currently unused.
* tests/test-mbrtowc-w32-7.sh: New file, currently unused.
2011-02-13 Bruno Haible <bruno@clisp.org>
mbrtowc: Work around native Windows bug.
* m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Detect native Windows bug. Use the
guess when no suitable locale for testing was found.
* doc/posix-functions/mbrtowc.texi: Mention the native Windows bug.
2011-02-13 Bruno Haible <bruno@clisp.org>
mbsinit: Work around mingw bug.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Replace mbsinit also on mingw.
* lib/mbsinit.c (mbsinit): Provide an alternate definition for native
Windows.
* doc/posix-functions/mbsinit.texi: Mention the mingw bug.
2011-02-13 Bruno Haible <bruno@clisp.org>
mbsinit: Don't crash for a NULL argument.
* lib/mbsinit.c (mbsinit): When the argument is NULL, return 1.
* tests/test-mbsinit.c (mbsinit): Check this behaviour.
2011-02-13 Bruno Haible <bruno@clisp.org>
Don't interfere with a program's definition of __attribute__.
* lib/stdio.in.h (__attribute__): Remove definition.
(_GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_FORMAT_PRINTF): New macros.
(dprintf, fprintf, obstack_printf, obstack_printf, obstack_vprintf,
printf, snprintf, sprintf, asprintf, vasprintf, vdprintf, vfprintf,
vsnprintf, vsprintf): Use _GL_ATTRIBUTE_FORMAT_PRINTF.
* lib/string.in.h (__attribute__): Remove definition.
Reported by Paul Eggert.
2011-02-12 Paul Eggert <eggert@cs.ucla.edu>
stdlib: don't get in the way of non-GCC __attribute__
See thread starting at
<http://lists.gnu.org/r/bug-gnulib/2011-02/msg00161.html>.
Revert previous stdlib change, installing the following instead:
* lib/stdlib.in.h (__attribute__): Remove. We do not want
to get in the way of a non-GCC compiler that supports __attribute__.
(_GL_ATTRIBUTE_RETURN): New macro.
(_Exit): Use it instead of __attribute__.
2011-02-12 Bruno Haible <bruno@clisp.org>
quotearg test: Avoid test failure on mingw.
* tests/test-quotearg.sh: Convert the locale identifier from native
Windows syntax to Unix syntax.
2011-02-12 Bruno Haible <bruno@clisp.org>
setlocale: Prefer gnulib's override over libintl's override.
* lib/locale.in.h (GNULIB_defined_setlocale): New macro.
* lib/gettext.h (setlocale): Redefine to rpl_setlocale if
GNULIB_defined_setlocale is set.
2011-02-12 Paul Eggert <eggert@cs.ucla.edu>
stdlib: support non-GCC __attribute__
Fix a serious and tricky problem encountered when attempting to
add the getloadavg module to Emacs. Emacs worked fine on RHEL
5.5, but it crashed due to memory corruption on Solaris 10 with
Sun C 5.11. Emacs normally ORs 3-bit tags into their low-order
bits that are otherwise zero. This tagging is optional inside
Emacs but is preferred and is used when __attribute__ ((__aligned
(8))) works, as it does with both recent-enough GCC and with Sun C
5.11. However, Sun C 5.11 is not GCC and does not #define
__GNUC__ and __GNUC_MINOR__.
When I added the getloadavg module to Emacs, it brought in
stdlib.in.h, which contained this fragment:
#ifndef __attribute__
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
# define __attribute__(Spec) /* empty */
# endif
#endif
When files that include <stdlib.h> were compiled with Sun C 5.11,
the above code disabled __attribute__ ((__aligned (8))), which
caused variables to not be properly aligned, which eventually led
to the pointer corruption mentioned above. (This was a bit hard
to diagnose, unfortunately.)
Several "#define __attribute__(X) /* empty */" code snippets need
to be eradicated from Gnulib to work with non-GCC compilers that
support __attribute__. The Autoconf way to do this is to test for
each kind of attribute that we want support for, and selectively
enable that in source code.
Fix this problem just for stdlib.h, by adding a test for the
__noreturn__ attribute, and change stdlib.in.h to use that test
when needed. This technique can be easily generalized to the
other *.in.h files and attributes, and a similar technique can be
used for *.h and *.c files. This patch is enough to solve the
problem for Emacs + getloadavg, and I thought I'd publish it for
feedback before undertaking further, similar fixes in other
modules.
This patch does not arrange to #define HAVE_ATTRIBUTE_NORETURN
because it's not needed for stdlib.h. It merely substitutes the
value directly into stdlib.h. We may well need to #define it, or
similar symbols, for other modules, but it's nice to also have an
option to not #define it for applications like Emacs that do not
need it.
* lib/stdlib.in.h (__attribute__): Do not #define.
(_GL_ATTRIBUTE_NORETURN): New macro, which in stdlib.h needs to
be defined only if the _Exit module is also used.
* m4/_Exit.m4 (gl_FUNC__EXIT): Require gl_ATTRIBUTE_NORETURN.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Subst
HAVE_ATTRIBUTE_NORETURN and default it to 1, its value on GNU
platforms.
* modules/_Exit (Files): Add m4/attribute.m4.
* modules/stdlib (Makefile.am): Substitute HAVE_ATTRIBUTE_NORETURN.
* m4/attribute.m4: New file.
2011-02-12 Bruno Haible <bruno@clisp.org>
wcsrtombs: Work around bug on native Windows.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_NULL): Test against mingw bug.
* lib/wcsrtombs.c (rpl_wcsrtombs): When dest is NULL, pass SIZE_MAX
instead of len.
* doc/posix-functions/wcsrtombs.texi: Document mingw bug.
2011-02-12 Bruno Haible <bruno@clisp.org>
mbsrtowcs: Work around bug on native Windows.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Require gt_LOCALE_FR. Test
against mingw bug.
* doc/posix-functions/mbsrtowcs.texi: Document mingw bug.
2011-02-12 Bruno Haible <bruno@clisp.org>
Avoid setlocale bugs in tests.
* modules/btowc (Dependencies): Add setlocale.
* modules/c-strcase (Dependencies): Likewise.
* modules/mbmemcasecmp (Dependencies): Likewise.
* modules/mbmemcasecoll (Dependencies): Likewise.
* modules/mbrtowc (Dependencies): Likewise.
* modules/mbscasecmp (Dependencies): Likewise.
* modules/mbscasestr (Dependencies): Likewise.
* modules/mbschr (Dependencies): Likewise.
* modules/mbscspn (Dependencies): Likewise.
* modules/mbsinit (Dependencies): Likewise.
* modules/mbsncasecmp (Dependencies): Likewise.
* modules/mbsnrtowcs (Dependencies): Likewise.
* modules/mbspbrk (Dependencies): Likewise.
* modules/mbspcasecmp (Dependencies): Likewise.
* modules/mbsrchr (Dependencies): Likewise.
* modules/mbsrtowcs (Dependencies): Likewise.
* modules/mbsspn (Dependencies): Likewise.
* modules/mbsstr (Dependencies): Likewise.
* modules/nl_langinfo (Dependencies): Likewise.
* modules/quotearg (Dependencies): Likewise.
* modules/unicase/locale-language (Dependencies): Likewise.
* modules/unicase/ulc-casecmp (Dependencies): Likewise.
* modules/unicase/ulc-casecoll (Dependencies): Likewise.
* modules/unigbrk/ulc-grapheme-breaks (Dependencies): Likewise.
* modules/unistdio/u8-vasnprintf (Dependencies): Likewise.
* modules/unistdio/u16-vasnprintf (Dependencies): Likewise.
* modules/unistdio/u32-vasnprintf (Dependencies): Likewise.
* modules/unistdio/ulc-vasnprintf (Dependencies): Likewise.
* modules/uniwbrk/ulc-wordbreaks (Dependencies): Likewise.
* modules/vasnprintf-posix (Dependencies): Likewise.
* modules/wcrtomb (Dependencies): Likewise.
* modules/wcsnrtombs (Dependencies): Likewise.
* modules/wcsrtombs (Dependencies): Likewise.
2011-02-12 Bruno Haible <bruno@clisp.org>
setlocale: Workaround native Windows bug.
* lib/setlocale.c (rpl_setlocale): On native Windows, when setlocale
succeeds but sets LC_CTYPE to "C", report a failure.
* tests/test-setlocale2.sh: New file.
* tests/test-setlocale2.c: New file.
* modules/setlocale-tests (Files): Add the new files.
(Makefile.am): Enable test-setlocale2.sh test.
* doc/posix-functions/setlocale.texi: Mention workaround.
2011-02-11 Bruno Haible <bruno@clisp.org>
Tests for module 'setlocale'.
* modules/setlocale-tests: New file.
* tests/test-setlocale1.sh: New file.
* tests/test-setlocale1.c: New file.
New module 'setlocale'.
* lib/locale.in.h (setlocale): New declaration.
* lib/setlocale.c: New file, based on
gettext/gettext-runtime/intl/setlocale.c.
* m4/setlocale.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H): Test whether setlocale is declared.
(gl_LOCALE_H_DEFAULTS): Initialize GNULIB_SETLOCALE, REPLACE_SETLOCALE.
* modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE,
REPLACE_SETLOCALE.
* modules/setlocale: New file.
* tests/test-locale-c++.cc: Test the declaration of setlocale.
* doc/posix-functions/setlocale.texi: Mention the new module.
2011-02-11 Bruno Haible <bruno@clisp.org>
Prepare for locale dependent tests on mingw.
* m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, don't try "ar"
because it has the wrong locale encoding.
* m4/locale-fr.m4 (gt_LOCALE_FR): On native Windows, try
French_France.1252 instead of "fr".
(gt_LOCALE_FR_UTF8): On native Windows, try French_France.65001.
* m4/locale-ja.m4 (gt_LOCALE_JA): On native Windows, don't try "ja"
because it has the wrong locale encoding.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Require AC_CANONICAL_HOST. On
native Windows, try Turkish_Turkey.65001.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On native Windows, try
Chinese_China.54936.
Prepare for locale dependent tests on mingw.
* m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, call setlocale
differently.
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
* m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
2011-02-11 Eric Blake <eblake@redhat.com>
strptime: avoid compiler warnings
* lib/strptime.c (__strptime_internal) [!_NL_CURRENT]: Avoid
compiler warnings about dead code.
Reported by Daniel P. Berrange.
2011-02-11 Thien-Thi Nguyen <ttn@gnuvola.org>
doc: update users.txt
* users.txt: Add rcs.
2011-02-10 John W. Eaton <jwe@gnu.org>
doc: update users.txt
* users.txt: Add octave.
2011-02-10 Jim Meyering <meyering@redhat.com>
doc: update users.txt
* users.txt: Add iwhd.
2011-02-09 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make copyright notice adjustment more robust.
* gnulib-tool (func_import): In sed_transform_main_lib_file,
sed_transform_build_aux_file, sed_transform_testsrelated_lib_file,
allow a line break to occur after "GNU" in "GNU [Lesser] General Public
License".
Reported by Glenn Morris <rgm@gnu.org> via Paul Eggert.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'towctrans'.
* modules/towctrans: New file.
* lib/wctype.in.h (towctrans): New declaration.
* lib/towctrans.c: New file.
* lib/towctrans-impl.h: New file.
* m4/towctrans.m4: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towctrans is declared.
(gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_TOWCTRANS.
* modules/wctype-h (Makefile.am): Substitute GNULIB_TOWCTRANS.
* tests/test-wctype-h-c++.cc: Test the declaration of towctrans.
* doc/posix-functions/towctrans.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wctrans'.
* modules/wctrans: New file.
* lib/wctype.in.h (wctrans): New declaration.
* lib/wctrans.c: New file.
* lib/wctrans-impl.h: New file.
* m4/wctrans.m4: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctrans is declared.
(gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTRANS.
* modules/wctype-h (Makefile.am): Substitute GNULIB_WCTRANS.
* tests/test-wctype-h-c++.cc: Test the declaration of wctrans.
* doc/posix-functions/wctrans.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'iswctype'.
* modules/iswctype: New file.
* lib/wctype.in.h (iswctype): New declaration.
* lib/iswctype.c: New file.
* lib/iswctype-impl.h: New file.
* m4/iswctype.m4: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test whether iswctype is declared.
(gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWCTYPE.
* modules/wctype-h (Makefile.am): Substitute GNULIB_ISWCTYPE.
* tests/test-wctype-h-c++.cc: Test the declaration of iswctype.
* doc/posix-functions/iswctype.texi: Mention the new module and the
HP-UX 11.00 problem.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wctype'.
* modules/wctype: Change to represent the wctype() substitute.
* lib/wctype.in.h (wctype): New declaration.
* lib/wctype.c: New file.
* lib/wctype-impl.h: New file.
* m4/wctype.m4: New file.
* m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctype is declared.
(gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTYPE.
* modules/wctype-h (Makefile.am): Substitute GNULIB_WCTYPE.
* tests/test-wctype-h-c++.cc: Test the declaration of wctype.
* doc/posix-functions/wctype.texi: Mention the new module and the
HP-UX 11.00 problem.
2011-02-06 Bruno Haible <bruno@clisp.org>
wctype-h: Ensure wctype_t and wctrans_t are defined.
* lib/wctype.in.h (wctype_t, wctrans_t): New type declarations.
* m4/wctype_h.m4 (gl_WCTYPE_H): Determine HAVE_WCTYPE_T, HAVE_WCTRANS_T.
(gl_WCTYPE_H_DEFAULTS): Initialize HAVE_WCTYPE_T, HAVE_WCTRANS_T.
* modules/wctype-h (Makefile.am): Substitute HAVE_WCTYPE_T,
HAVE_WCTRANS_T.
* tests/test-wctype-h.c: Check that wctype_t and wctrans_t are defined.
2011-02-09 Paul Eggert <eggert@cs.ucla.edu>
flock: fix license typo
* lib/flock.c: Fix typo in license. One of the "Lesser"s was
omitted.
2011-02-08 Bruno Haible <bruno@clisp.org>
Split large sed scripts, for HP-UX sed.
* modules/math (Makefile.am): Split sed scripts around 50 sed commands,
to avoid HP-UX limit of 99 commands, in the near future.
* modules/stdlib (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
Suggestion by Ralf Wildenhues <Ralf.Wildenhues@gmx.de> in
<http://lists.gnu.org/r/bug-gnulib/2010-01/msg00216.html>.
2011-02-08 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
stdlib: improve random_r modularization
* lib/stdlib.in.h: Encapsulate all the stuff having to do with
random_r inside "#if @GNULIB_RANDOM_R@", so that it's clearer that
you also need the random_r module to get this material right.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Move check for random.h here ...
* m4/stdlib_h.m4 (gl_STDLIB_H): ... from here.
(gl_STDLIB_H_DEFAULTS): Default HAVE_RANDOM_H to 1, and AC_SUBST it.
2011-02-08 Paul Eggert <eggert@cs.ucla.edu>
stdlib: don't depend on stdint
* lib/stdlib.in.h: Don't include <stdint.h> merely because
GNULIB_POSIXCHECK is defined. GNULIB_POSIXCHECK seems to
be independent of whether stdint.h is needed.
* m4/random_r.m4 (gl_FUNC_RANDOM_R): Check for struct random_data
here, instead of ...
* m4/stdlib_h.m4 (gl_STDLIB_H): ... here. Applications that need
struct random_data should be using the random_r module, not just
the stdlib module (which wouldn't make sense: what package needs
just struct random_data without also needing random_r?).
* modules/stdlib (Depends-on): Remove stdint.
getloadavg: don't depend on c-strtod, cloexec, fcntl-safer
See the thread rooted at
<http://lists.gnu.org/r/bug-gnulib/2011-02/msg00090.html>.
* lib/getloadavg.c: Do not include c-strtod.h, cloexec.h, or fcntl--.h.
Include <fcntl.h> only if (defined __linux__ || defined __CYGWIN__
|| defined SUNOS_5 || (defined LOAD_AVE_TYPE && ! defined
__VMS)); previously it was always included (via fcntl--.h).
(getloadavg): Do not use c_strtod. Instead, approximate it by
hand; this is good enough for load averages. Also, do not use
set_cloexec_flag; instead, use the O_CLOEXEC and F_DUPFD_CLOEXEC
flags directly if available and don't bother otherwise. (Packages
that need the extra reliability should use the modules that define
these flags on older platforms that lack them.)
* modules/getloadavg (Depends-on): Remove c-strtod, cloexec,
fcntl-safer.
2011-02-08 Jim Meyering <meyering@redhat.com>
di-set.h, ino-map.h: add multiple-inclusion guard
Technically, the guard is required only for ino-map.h, due to its
INO_MAP_INSERT_FAILURE definition, but do both for consistency.
* lib/di-set.h: Add file-spanning #ifndef _GL_DI_SET_H.
* lib/ino-map.h: Likewise.
2011-02-06 Bruno Haible <bruno@clisp.org>
iswblank: Ensure declaration on glibc systems.
* m4/iswblank.m4 (gl_FUNC_ISWBLANK): Require gl_USE_SYSTEM_EXTENSIONS.
* modules/iswblank (Dependencies): Add 'extensions'.
* doc/posix-functions/iswblank.texi: Document the glibc problem.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'iswblank'.
* lib/wctype.in.h (iswblank): Don't declare if GNULIB_ISWBLANK is 0.
* modules/iswblank: New file.
* modules/wctype-h (Files): Remove lib/iswblank.c.
(Makefile.am): Substitute GNULIB_ISWBLANK.
* m4/iswblank.m4: New file, partially extracted from m4/wctype_h.m4.
* m4/wctype_h.m4 (gl_WCTYPE_MODULE_INDICATOR): New macro.
(gl_WCTYPE_H_DEFAULTS): New macro.
(gl_WCTYPE_H): Require it. Remove iswblank related code.
* modules/iswblank-tests: New file.
* tests/test-iswblank.c: New file, extraced from tests/test-wctype-h.c.
* tests/test-wctype-h.c (main): Remove iswblank tests.
* tests/test-wctype-h-c++.cc: Guard the signature test of iswblank.
* doc/posix-functions/iswblank.texi: Mention module 'iswblank' instead
of 'wctype-h'.
* NEWS: Mention the change.
* modules/mbchar (Depends-on): Add iswblank.
2011-02-08 Bruno Haible <bruno@clisp.org>
di-set tests: Refactor.
* tests/test-di-set.c: Include di-set.h early. Include macros.h. Drop
unnecessary includes.
(ASSERT): Remove macro.
(main): Make C90 compliant by avoiding variable declaration after
statement.
* modules/di-set-tests (Files): Add tests/macros.h.
2011-02-08 Bruno Haible <bruno@clisp.org>
ino-map tests: Refactor.
* tests/test-ino-map.c: Include ino-map.h early. Include macros.h. Drop
unnecessary includes.
(ASSERT): Remove macro.
(main): Make C90 compliant by avoiding variable declaration after
statement.
* modules/ino-map-tests (Files): Add tests/macros.h.
2011-02-08 Jim Meyering <meyering@redhat.com>
di-set: add "const" to a cast
* lib/di-set.c (di_set_insert): Cast hash_insert0 argument to
"(void const *)", not "(void *)". Spotted by Bruno Haible.
2011-02-06 Bruno Haible <bruno@clisp.org>
Rename module 'wctype' to 'wctype-h'.
* modules/wctype-h: Renamed from modules/wctype.
* modules/wctype: Simplyfy to a redirection to 'wctype-h'.
* modules/wctype-h-tests: Renamed from modules/wctype-tests.
(Files, Depends-on, Makefile.am): Update.
* modules/wctype-h-c++-tests: Renamed from modules/wctype-c++-tests.
(Files, Makefile.am): Update.
* tests/test-wctype-h.c: Renamed from tests/test-wctype.c.
* tests/test-wctype-h-c++.cc: Renamed from tests/test-wctype-c++.cc.
* doc/posix-headers/wctype.texi: Update.
* doc/posix-functions/iswalnum.texi: Update.
* doc/posix-functions/iswalpha.texi: Update.
* doc/posix-functions/iswblank.texi: Update.
* doc/posix-functions/iswcntrl.texi: Update.
* doc/posix-functions/iswdigit.texi: Update.
* doc/posix-functions/iswgraph.texi: Update.
* doc/posix-functions/iswlower.texi: Update.
* doc/posix-functions/iswprint.texi: Update.
* doc/posix-functions/iswpunct.texi: Update.
* doc/posix-functions/iswspace.texi: Update.
* doc/posix-functions/iswupper.texi: Update.
* doc/posix-functions/iswxdigit.texi: Update.
* doc/posix-functions/towlower.texi: Update.
* doc/posix-functions/towupper.texi: Update.
* NEWS: Mention the change.
* modules/fnmatch (Dependencies): Add wctype-h, remove wctype.
* modules/mbchar (Dependencies): Likewise.
* modules/mbswidth (Dependencies): Likewise.
* modules/quotearg (Dependencies): Likewise.
* modules/regex (Dependencies): Likewise.
* modules/wcscasecmp (Dependencies): Likewise.
* modules/wcsncasecmp (Dependencies): Likewise.
* modules/wcwidth (Dependencies): Likewise.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcswidth'.
* modules/wcswidth: New file.
* lib/wchar.in.h (wcswidth): New declaration.
* lib/wcswidth.c: New file.
* lib/wcswidth-impl.h: New file, from libutf8 with modifications.
* m4/wcswidth.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcswidth is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSWIDTH, HAVE_WCSWIDTH,
REPLACE_WCSWIDTH.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSWIDTH,
HAVE_WCSWIDTH, REPLACE_WCSWIDTH.
* tests/test-wchar-c++.cc: Test the declaration of wcswidth.
* doc/posix-functions/wcswidth.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcstok'.
* modules/wcstok: New file.
* lib/wchar.in.h (wcstok): New declaration.
* lib/wcstok.c: New file.
* lib/wcstok-impl.h: New file, from libutf8 with modifications.
* m4/wcstok.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcstok is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSTOK, HAVE_WCSTOK.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSTOK, HAVE_WCSTOK.
* tests/test-wchar-c++.cc: Test the declaration of wcstok.
* doc/posix-functions/wcstok.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsstr'.
* modules/wcsstr: New file.
* lib/wchar.in.h (wcsstr): New declaration.
* lib/wcsstr.c: New file.
* lib/wcsstr-impl.h: New file, from libutf8 with modifications.
* m4/wcsstr.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsstr is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSTR, HAVE_WCSSTR.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSSTR, HAVE_WCSSTR.
* tests/test-wchar-c++.cc: Test the declaration of wcsstr.
* doc/posix-functions/wcsstr.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcspbrk'.
* modules/wcspbrk: New file.
* lib/wchar.in.h (wcspbrk): New declaration.
* lib/wcspbrk.c: New file.
* lib/wcspbrk-impl.h: New file, from libutf8 with modifications.
* m4/wcspbrk.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcspbrk is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSPBRK, HAVE_WCSPBRK.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSPBRK, HAVE_WCSPBRK.
* tests/test-wchar-c++.cc: Test the declaration of wcspbrk.
* doc/posix-functions/wcspbrk.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsspn'.
* modules/wcsspn: New file.
* lib/wchar.in.h (wcsspn): New declaration.
* lib/wcsspn.c: New file.
* lib/wcsspn-impl.h: New file, from libutf8 with modifications.
* m4/wcsspn.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsspn is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSPN, HAVE_WCSSPN.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSSPN, HAVE_WCSSPN.
* tests/test-wchar-c++.cc: Test the declaration of wcsspn.
* doc/posix-functions/wcsspn.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcscspn'.
* modules/wcscspn: New file.
* lib/wchar.in.h (wcscspn): New declaration.
* lib/wcscspn.c: New file.
* lib/wcscspn-impl.h: New file, from libutf8 with modifications.
* m4/wcscspn.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscspn is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCSPN, HAVE_WCSCSPN.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCSPN, HAVE_WCSCSPN.
* tests/test-wchar-c++.cc: Test the declaration of wcscspn.
* doc/posix-functions/wcscspn.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsrchr'.
* modules/wcsrchr: New file.
* lib/wchar.in.h (wcsrchr): New declaration.
* lib/wcsrchr.c: New file.
* lib/wcsrchr-impl.h: New file, from libutf8 with modifications.
* m4/wcsrchr.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsrchr is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRCHR, HAVE_WCSRCHR.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSRCHR, HAVE_WCSRCHR.
* tests/test-wchar-c++.cc: Test the declaration of wcsrchr.
* doc/posix-functions/wcsrchr.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcschr'.
* modules/wcschr: New file.
* lib/wchar.in.h (wcschr): New declaration.
* lib/wcschr.c: New file.
* lib/wcschr-impl.h: New file, from libutf8 with modifications.
* m4/wcschr.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcschr is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCHR, HAVE_WCSCHR.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCHR, HAVE_WCSCHR.
* tests/test-wchar-c++.cc: Test the declaration of wcschr.
* doc/posix-functions/wcschr.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsdup'.
* modules/wcsdup: New file.
* lib/wchar.in.h (wcsdup): New declaration.
* lib/wcsdup.c: New file.
* lib/wcsdup-impl.h: New file, from libutf8 with modifications.
* m4/wcsdup.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsdup is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSDUP, HAVE_WCSDUP.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSDUP, HAVE_WCSDUP.
* tests/test-wchar-c++.cc: Test the declaration of wcsdup.
* doc/posix-functions/wcsdup.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsxfrm'.
* modules/wcsxfrm: New file.
* lib/wchar.in.h (wcsxfrm): New declaration.
* lib/wcsxfrm.c: New file.
* lib/wcsxfrm-impl.h: New file.
* m4/wcsxfrm.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsxfrm is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSXFRM, HAVE_WCSXFRM.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSXFRM, HAVE_WCSXFRM.
* tests/test-wchar-c++.cc: Test the declaration of wcsxfrm.
* doc/posix-functions/wcsxfrm.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcscoll'.
* modules/wcscoll: New file.
* lib/wchar.in.h (wcscoll): New declaration.
* lib/wcscoll.c: New file.
* lib/wcscoll-impl.h: New file.
* m4/wcscoll.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscoll is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCOLL, HAVE_WCSCOLL.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCOLL, HAVE_WCSCOLL.
* tests/test-wchar-c++.cc: Test the declaration of wcscoll.
* doc/posix-functions/wcscoll.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcsncasecmp'.
* modules/wcsncasecmp: New file.
* lib/wchar.in.h (wcsncasecmp): New declaration.
* lib/wcsncasecmp.c: New file.
* lib/wcsncasecmp-impl.h: New file, from libutf8 with modifications.
* m4/wcsncasecmp.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncasecmp is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCASECMP, HAVE_WCSNCASECMP.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNCASECMP,
HAVE_WCSNCASECMP.
* tests/test-wchar-c++.cc: Test the declaration of wcsncasecmp.
* doc/posix-functions/wcsncasecmp.texi: Mention the new module.
2011-02-06 Bruno Haible <bruno@clisp.org>
New module 'wcscasecmp'.
* modules/wcscasecmp: New file.
* lib/wchar.in.h (wcscasecmp): New declaration.
* lib/wcscasecmp.c: New file.
* lib/wcscasecmp-impl.h: New file, from libutf8 with modifications.
* m4/wcscasecmp.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscasecmp is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCASECMP, HAVE_WCSCASECMP.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCASECMP,
HAVE_WCSCASECMP.
* tests/test-wchar-c++.cc: Test the declaration of wcscasecmp.
* doc/posix-functions/wcscasecmp.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcsncmp'.
* modules/wcsncmp: New file.
* lib/wchar.in.h (wcsncmp): New declaration.
* lib/wcsncmp.c: New file.
* lib/wcsncmp-impl.h: New file, from libutf8 with modifications.
* m4/wcsncmp.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncmp is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCMP, HAVE_WCSNCMP.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNCMP, HAVE_WCSNCMP.
* tests/test-wchar-c++.cc: Test the declaration of wcsncmp.
* doc/posix-functions/wcsncmp.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcscmp'.
* modules/wcscmp: New file.
* lib/wchar.in.h (wcscmp): New declaration.
* lib/wcscmp.c: New file.
* lib/wcscmp-impl.h: New file, from libutf8 with modifications.
* m4/wcscmp.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscmp is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCMP, HAVE_WCSCMP.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCMP, HAVE_WCSCMP.
* tests/test-wchar-c++.cc: Test the declaration of wcscmp.
* doc/posix-functions/wcscmp.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcsncat'.
* modules/wcsncat: New file.
* lib/wchar.in.h (wcsncat): New declaration.
* lib/wcsncat.c: New file.
* lib/wcsncat-impl.h: New file, from libutf8 with modifications.
* m4/wcsncat.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncat is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCAT, HAVE_WCSNCAT.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNCAT, HAVE_WCSNCAT.
* tests/test-wchar-c++.cc: Test the declaration of wcsncat.
* doc/posix-functions/wcsncat.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcscat'.
* modules/wcscat: New file.
* lib/wchar.in.h (wcscat): New declaration.
* lib/wcscat.c: New file.
* lib/wcscat-impl.h: New file, from libutf8 with modifications.
* m4/wcscat.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscat is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCAT, HAVE_WCSCAT.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCAT, HAVE_WCSCAT.
* tests/test-wchar-c++.cc: Test the declaration of wcscat.
* doc/posix-functions/wcscat.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcpncpy'.
* modules/wcpncpy: New file.
* lib/wchar.in.h (wcpncpy): New declaration.
* lib/wcpncpy.c: New file.
* lib/wcpncpy-impl.h: New file, from libutf8 with modifications.
* m4/wcpncpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpncpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPNCPY, HAVE_WCPNCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WCPNCPY, HAVE_WCPNCPY.
* tests/test-wchar-c++.cc: Test the declaration of wcpncpy.
* doc/posix-functions/wcpncpy.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcsncpy'.
* modules/wcsncpy: New file.
* lib/wchar.in.h (wcsncpy): New declaration.
* lib/wcsncpy.c: New file.
* lib/wcsncpy-impl.h: New file, from libutf8 with modifications.
* m4/wcsncpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCPY, HAVE_WCSNCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNCPY, HAVE_WCSNCPY.
* tests/test-wchar-c++.cc: Test the declaration of wcsncpy.
* doc/posix-functions/wcsncpy.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcpcpy'.
* modules/wcpcpy: New file.
* lib/wchar.in.h (wcpcpy): New declaration.
* lib/wcpcpy.c: New file.
* lib/wcpcpy-impl.h: New file, from libutf8 with modifications.
* m4/wcpcpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpcpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPCPY, HAVE_WCPCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WCPCPY, HAVE_WCPCPY.
* tests/test-wchar-c++.cc: Test the declaration of wcpcpy.
* doc/posix-functions/wcpcpy.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcscpy'.
* modules/wcscpy: New file.
* lib/wchar.in.h (wcscpy): New declaration.
* lib/wcscpy.c: New file.
* lib/wcscpy-impl.h: New file, from libutf8 with modifications.
* m4/wcscpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCPY, HAVE_WCSCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSCPY, HAVE_WCSCPY.
* tests/test-wchar-c++.cc: Test the declaration of wcscpy.
* doc/posix-functions/wcscpy.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcsnlen'.
* modules/wcsnlen: New file.
* lib/wchar.in.h (wcsnlen): New declaration.
* lib/wcsnlen.c: New file.
* lib/wcsnlen-impl.h: New file, from libutf8 with modifications.
* m4/wcsnlen.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsnlen is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNLEN, HAVE_WCSNLEN.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNLEN, HAVE_WCSNLEN.
* tests/test-wchar-c++.cc: Test the declaration of wcsnlen.
* doc/posix-functions/wcsnlen.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wcslen'.
* modules/wcslen: New file.
* lib/wchar.in.h (wcslen): New declaration.
* lib/wcslen.c: New file.
* lib/wcslen-impl.h: New file, from libutf8 with modifications.
* m4/wcslen.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcslen is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSLEN, HAVE_WCSLEN.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSLEN, HAVE_WCSLEN.
* tests/test-wchar-c++.cc: Test the declaration of wcslen.
* doc/posix-functions/wcslen.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wmemset'.
* modules/wmemset: New file.
* lib/wchar.in.h (wmemset): New declaration.
* lib/wmemset.c: New file.
* lib/wmemset-impl.h: New file, from libutf8 with modifications.
* m4/wmemset.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemset is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMSET, HAVE_WMEMSET.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMSET, HAVE_WMEMSET.
* tests/test-wchar-c++.cc: Test the declaration of wmemset.
* doc/posix-functions/wmemset.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wmemmove'.
* modules/wmemmove: New file.
* lib/wchar.in.h (wmemmove): New declaration.
* lib/wmemmove.c: New file.
* lib/wmemmove-impl.h: New file, from libutf8 with modifications.
* m4/wmemmove.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemmove is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMMOVE, HAVE_WMEMMOVE.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMMOVE,
HAVE_WMEMMOVE.
* tests/test-wchar-c++.cc: Test the declaration of wmemmove.
* doc/posix-functions/wmemmove.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wmemcpy'.
* modules/wmemcpy: New file.
* lib/wchar.in.h (wmemcpy): New declaration.
* lib/wmemcpy.c: New file.
* lib/wmemcpy-impl.h: New file, from libutf8 with modifications.
* m4/wmemcpy.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcpy is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCPY, HAVE_WMEMCPY.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMCPY, HAVE_WMEMCPY.
* tests/test-wchar-c++.cc: Test the declaration of wmemcpy.
* doc/posix-functions/wmemcpy.texi: Mention the new module.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wmemcmp'.
* modules/wmemcmp: New file.
* lib/wchar.in.h (wmemcmp): New declaration.
* lib/wmemcmp.c: New file.
* lib/wmemcmp-impl.h: New file, from libutf8 with modifications.
* m4/wmemcmp.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcmp is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCMP, HAVE_WMEMCMP.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMCMP, HAVE_WMEMCMP.
* tests/test-wchar-c++.cc: Test the declaration of wmemcmp.
* doc/posix-functions/wmemcmp.texi: Mention the new module.
2011-02-07 Jim Meyering <meyering@redhat.com>
di-set, ino-map: new modules, from coreutils
* lib/di-set.c: New file.
* lib/di-set.h: Likewise.
* lib/ino-map.c: Likewise.
* lib/ino-map.h: Likewise.
* modules/di-set: Likewise.
* modules/di-set-tests: Likewise.
* modules/ino-map: Likewise.
* modules/ino-map-tests: Likewise.
* tests/test-di-set.c: Likewise.
* tests/test-ino-map.c: Likewise.
2011-02-06 Paul Eggert <eggert@cs.ucla.edu>
getloadavg: merge minor changes from Emacs
* lib/getloadavg.c (getloadavg_initialized): More-accurate comment.
(getloadavg): Use memset, not bzero.
2008-07-25 Chong Yidong <cyd@stupidchicken.com>
* lib/getloadavg.c (nl): Rename to name_list to avoid ncurses.h
clash (bug#86).
2010-11-14 Bruno Haible <bruno@clisp.org>
Allow multiple gnulib generated replacements to coexist.
* lib/getopt.in.h (struct option): Avoid identical redefinition.
* lib/inttypes.in.h (imaxdiv_t): Likewise.
* lib/langinfo.in.h (nl_item): Likewise.
* lib/math.in.h (_NaN, NAN): Likewise.
* lib/netdb.in.h (struct addrinfo): Likewise.
* lib/poll.in.h (struct pollfd, nfds_t): Likewise.
* lib/pthread.in.h (pthread_t, pthread_attr_t, pthread_barrier_t,
pthread_barrierattr_t, pthread_cond_t, pthread_condattr_t,
pthread_key_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t,
pthread_rwlock_t, pthread_rwlockattr_t, pthread_cond_destroy,
pthread_cond_init, pthread_cond_signal, pthread_cond_wait,
pthread_create, pthread_exit, pthread_join, pthread_mutexattr_destroy,
pthread_mutexattr_init, pthread_mutexattr_settype,
pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock,
pthread_mutex_trylock, pthread_mutex_unlock, pthread_spinlock_t,
pthread_spin_init, pthread_spin_destroy, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): Likewise.
* lib/sched.in.h (struct sched_param): Likewise.
* lib/se-selinux.in.h (security_class_t, security_context_t,
is_selinux_enabled, getcon, freecon, getfscreatecon, setfscreatecon,
matchpathcon, getfilecon, lgetfilecon, fgetfilecon, setfilecon,
lsetfilecon, fsetfilecon, security_check_context,
security_check_context_raw, setexeccon, matchpathcon_init_prefix):
Likewise.
* lib/search.in.h (VISIT, _gl_search_compar_fn, _gl_search_action_fn):
Likewise.
* lib/signal.in.h (sig_atomic_t, sigset_t, verify_NSIG_constraint,
_gl_function_taking_int_returning_void_t, union sigval,
struct siginfo_t, siginfo_t, struct sigaction): Likewise.
* lib/spawn.in.h (posix_spawnattr_t, posix_spawn_file_actions_t,
verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise.
* lib/stdint.in.h (gl_int8_t, gl_uint8_t, gl_int16_t, gl_uint16_t,
gl_int32_t, gl_uint32_t, gl_int64_t, gl_uint64_t, int_least8_t,
uint_least8_t, int_least16_t, uint_least16_t, int_least32_t,
uint_least32_t, int_least64_t, uint_least64_t, gl_int_fast8_t,
gl_uint_fast8_t, gl_int_fast16_t, gl_uint_fast16_t, gl_int_fast32_t,
gl_uint_fast32_t, int_fast64_t, uint_fast64_t, gl_intptr_t,
gl_uintptr_t, intmax_t, uintmax_t, _verify_intmax_size): Likewise.
* lib/stdio.in.h (rpl_fseek, rpl_ftell): Likewise.
* lib/sys_socket.in.h (sa_family_t, struct sockaddr_storage,
socklen_t, rpl_fd_isset): Likewise.
* lib/sys_stat.in.h (rpl_mkdir): Likewise.
* lib/sys_time.in.h (struct timeval): Likewise.
* lib/sys_times.in.h (struct tms): Likewise.
* lib/sys_utsname.in.h (struct utsname):
* lib/time.in.h (struct timespec, __time_t_must_be_integral): Likewise.
* lib/unistd.in.h (getpagesize): Likewise.
* lib/wchar.in.h (mbstate_t): Likewise.
* lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit,
towlower, towupper): Likewise.
Reported by Sam Steingold <sds@gnu.org>.
2011-02-05 Eric Blake <eblake@redhat.com>
unsetenv: work around Haiku issues
* m4/setenv.m4 (gl_FUNC_UNSETENV): Also detect Haiku issue.
* doc/posix-functions/unsetenv.texi (unsetenv): Document it.
2010-12-30 Bruce Korb <bkorb@gnu.org>
libposix: avoid calling error() within libposix
* lib/openat-die.c: remove error module stuff when GNULIB_LIBPOSIX
is defined.
2011-02-05 Eric Blake <eblake@redhat.com>
strerror_r-posix: port to cygwin
* lib/strerror_r.c (strerror_r) [__CYGWIN__]: Add cygwin
implementation.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Adjust comment.
* tests/test-strerror_r.c (main): Fix test.
* doc/posix-functions/strerror_r.texi (strerror_r): Document the
issue.
2011-02-05 Bruno Haible <bruno@clisp.org>
New module 'wmemchr'.
* modules/wmemchr: New file.
* lib/wchar.in.h (wmemchr): New declaration.
* lib/wmemchr.c: New file.
* lib/wmemchr-impl.h: New file, from libutf8 with modifications.
* m4/wmemchr.m4: New file.
* m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemchr is declared.
(gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCHR, HAVE_WMEMCHR.
* modules/wchar (Makefile.am): Substitute GNULIB_WMEMCHR, HAVE_WMEMCHR.
* tests/test-wchar-c++.cc: Test the declaration of wmemchr.
* doc/posix-functions/wmemchr.texi: Mention the new module.
2011-02-04 Eric Blake <eblake@redhat.com>
fdopendir: detect FreeBSD bug
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Detect bug.
* doc/posix-functions/fdopendir.texi (fdopendir): Document it.
2011-02-04 Paul Eggert <eggert@cs.ucla.edu>
stdbool: do not define HAVE_STDBOOL_H
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Renamed from
AC_HEADER_STDBOOL. All uses changed. Do not define
HAVE_STDBOOL_H, as gnulib does not need this. This change is
imported from the latest Autoconf git. It was motivated by Emacs,
which uses gnulib but does not need HAVE_STDBOOL_H.
2011-02-04 Bruno Haible <bruno@clisp.org>
wcsnrtombs: Prepare for new module wwcsnrtombs.
* lib/wcsnrtombs-impl.h: New file, extracted from lib/wcsnrtombs.c.
* lib/wcsnrtombs.c: Include it.
* modules/wcsnrtombs (Files): Add lib/wcsnrtombs-impl.h.
wcsrtombs: Prepare for new module wwcsrtombs.
* lib/wcsrtombs-impl.h: New file, extracted from lib/wcsrtombs.c.
* lib/wcsrtombs.c: Include it.
* modules/wcsrtombs (Files): Add lib/wcsrtombs-impl.h.
mbsnrtowcs: Prepare for new module mbsnrtowwcs.
* lib/mbsnrtowcs-impl.h: New file, extracted from lib/mbsnrtowcs.c.
* lib/mbsnrtowcs.c: Include it.
* modules/mbsnrtowcs (Files): Add lib/mbsnrtowcs-impl.h.
mbsrtowcs: Prepare for new module mbsrtowwcs.
* lib/mbsrtowcs-impl.h: New file, extracted from lib/mbsrtowcs.c.
* lib/mbsrtowcs.c: Include it.
* modules/mbsrtowcs (Files): Add lib/mbsrtowcs-impl.h.
2011-02-04 Bruno Haible <bruno@clisp.org>
vasnprintf: Reduce use of malloc for small format strings.
* lib/printf-args.h (N_DIRECT_ALLOC_ARGUMENTS): New macro.
(arguments): Add room for the first 7 arguments.
* lib/printf-parse.h (N_DIRECT_ALLOC_DIRECTIVES): New macro.
(char_directives, u8_directives, u16_directives, u32_directives): Add
room for the first 7 directives.
* lib/printf-parse.c: Include <string.h>.
(PRINTF_PARSE): Change memory handling code so that it uses the first
7 preallocated elements in an 'arguments' or 'DIRECTIVES' struct.
* lib/vasnprintf.c (VASNPRINTF): Update memory handling code.
Reported by Pádraig Brady <P@draigbrady.com>.
2011-01-31 Eric Blake <eblake@redhat.com>
dup2: work around Haiku bug
* m4/dup2.m4 (gl_FUNC_DUP2): Test for bug.
* lib/dup2.c (rpl_dup2) [!WIN32]: Add workaround.
* doc/posix-functions/dup2.texi (dup2): Document the bug.
* tests/test-dup2.c (main): Enhance test.
2011-01-31 Simon Josefsson <simon@josefsson.org>
doc: off_t is not available in eglibc 2.11.2 stdio.h.
* doc/posix-headers/stdio.texi (stdio.h): Mention that off_t isn't
declared by eglibc 2.11.2.
* lib/stdio.in.h: Likewise.
2011-01-31 Eric Blake <eblake@redhat.com>
ignore-value: add missing test dependency
* tests/test-ignore-value.c: Revert previous change; stdio.h
provides off_t.
* modules/ignore-value-tests (Depends-on): Add missing dependency.
2011-01-30 Paul Eggert <eggert@cs.ucla.edu>
mktime: clarify long_int width checking
* lib/mktime.c (long_int_is_wide_enough): Move this assertion to
the top level, to make it clearer that the assumption about
long_int width is being checked. See
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00554.html>.
2011-01-30 Simon Josefsson <simon@josefsson.org>
ignore-value: Fix self-test.
* tests/test-ignore-value.c: Include sys/types.h for off_t.
2011-01-29 Paul Eggert <eggert@cs.ucla.edu>
TYPE_MAXIMUM: avoid theoretically undefined behavior
* lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a
negative number, which the C Standard says has undefined behavior.
In practice this is not a problem, but might as well do it by the book.
Reported by Rich Felker and Eric Blake; see
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00493.html>.
* lib/strtol.c (TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
* m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
* lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others.
mktime: #undef mktime before #defining it
* lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it.
mktime: systematically normalize tm_isdst comparisons
* lib/mktime.c (isdst_differ): New function.
(__mktime_internal): Use it systematically for all isdst comparisons.
This completes the fix for libc BZ #6723, and removes the need for
normalizing tm_isdst. See
<http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.
mktime: fix some integer overflow issues and sidestep the rest
This was prompted by a bug report by Benjamin Lindner for MinGW
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00472.html>.
His bug is due to signed integer overflow (0 - INT_MIN), and I
I scanned through mktime.c looking for other integer overflow
problems, fixing all the bugs I found.
Although the C Standard says the resulting code is still not safe
in the presence of integer overflow, in practice it should be good
enough for all real-world two's-complement implementations, except
for debugging environments that deliberately trap on integer
overflow (e.g., gcc -ftrapv).
* lib/mktime.c (WRAPV): New macro.
(SHR): Also check that long_int and time_t shift right in the
usual way, before using the fast-but-unportable method.
(TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer
used. The code already assumed two's complement, so there's
no need to test for alternatives. All uses removed.
(TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by
the C standard. Problem reported by Rich Felker in
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00488.html>.
(twos_complement_arithmetic): Also check long_int and time_t.
(time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions.
(guess_time_tm, ranged_convert, __mktime_internal): Use them.
(__mktime_internal): Avoid integer overflow with unary subtraction
in two instances where -1 - X is an adequate replacement for -X,
since the calculations are approximate.
2011-01-29 Eric Blake <eblake@redhat.com>
mktime: avoid infinite loop
* m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed
type; behavior is still undefined but portable to all known targets.
Reported by Rich Felker.
2011-01-29 Simon Josefsson <simon@josefsson.org>
rename, unlink, same-inode: Relicense.
* modules/rename (License): Relax from LGPLv3+ to LGPLv2+.
* modules/unlink (License): Likewise.
* modules/same-inode (License): Likewise.
2011-01-28 Paul Eggert <eggert@cs.ucla.edu>
mktime: avoid problems on NetBSD 5 / i386
* lib/mktime.c (long_int): New type. This works around a problem
on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits
but time_t is 64 bits, and where I expect the existing code is
wrong in some cases.
(leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it.
(ydhms_diff): Bring back the compile-time check for wide-enough
year and yday.
mktime: fix misspelling in comment
* lib/mktime.c (__mktime_internal): Fix misspelling in comment.
This merges all recent glibc changes of importance.
2011-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
move-if-change: cope with concurrent mv of identical file.
* build-aux/move-if-change (CMPPROG): Accept environment
variable as an override for `cmp'.
(usage): Document CMPPROG.
Adjust comparison to drop stdout. Cope with failure of mv if
the target file exists and is identical to the source, for
parallel builds.
Report from H.J. Lu against binutils in PR binutils/12283.
2011-01-28 Bruce Korb <bkorb@gnu.org>
* users.txt: Mention sharutils.
2011-01-28 Simon Josefsson <simon@josefsson.org>
* users.txt: Mention OATH Toolkit.
2011-01-27 Bruno Haible <bruno@clisp.org>
Prepare for supporting FreeBSD 10.
* build-aux/config.libpath: Remove handling of freebsd1*.
2011-01-27 Gerald Pfeifer <gerald@pfeifer.com> (tiny change)
Prepare for supporting FreeBSD 10.
* build-aux/config.rpath: Remove handling of freebsd1* which soon would
match FreeBSD 10.0.
2011-01-27 Bruno Haible <bruno@clisp.org>
vma-iter, get-rusage-as: Add OpenBSD support.
* modules/vma-iter (configure.ac): Test for mquery.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on OpenBSD.
* lib/vma-iter.c: Include <sys/mman.h>.
(vma_iterate): Add an implementation based on mquery().
* lib/resource-ext.h (get_rusage_as): Update comments.
* lib/get-rusage-as.c: Likewise.
* lib/get-rusage-data.c: Likewise.
2011-01-26 Karl Berry <karl@gnu.org>
* doc/Makefile (lang_env, makeinfo_prog, manual_opts): new
variables to make it easier to override the makeinfo program used.
2011-01-26 Eric Blake <eblake@redhat.com>
fcntl: work around Haiku F_DUPFD bugs
* m4/fcntl.m4 (gl_FUNC_FCNTL): Also catch Haiku errno bug.
* lib/fcntl.c (rpl_fcntl) [F_DUPFD]: Work around Haiku losing
cloexec bit on duplication.
* doc/posix-functions/fcntl.texi (fcntl): Document the bug.
2011-01-26 Bruno Haible <bruno@clisp.org>
Enable memory leak tests on AIX.
* tests/test-dprintf-posix2.c (main): Don't skip the test on AIX.
* tests/test-fprintf-posix3.c (main): Likewise.
2011-01-26 Bruno Haible <bruno@clisp.org>
Tests for module 'get-rusage-data'.
* modules/get-rusage-data-tests: New file.
* tests/test-get-rusage-data.c: New file.
New module 'get-rusage-data'.
* lib/resource-ext.h (get_rusage_data): New declaration.
* lib/get-rusage-data.c: New file.
* modules/get-rusage-data: New file.
2011-01-25 Bruno Haible <bruno@clisp.org>
get-rusage-as: Allow for easier testing.
* lib/resource-ext.h (get_rusage_as): Add comment.
* lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Define always.
(main): New function for interactive testing.
2011-01-25 Bruno Haible <bruno@clisp.org>
vma-iter: Treat Haiku like BeOS.
* lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Haiku as well.
* lib/vma-iter.c (vma_iterate) [Haiku]: Use the BeOS API.
2011-01-25 Eric Blake <eblake@redhat.com>
c-stack: fix regression on cygwin when libsigsegv is present
* lib/c-stack.c (die): Don't flatten error if sigsegv is present.
2011-01-24 Bruno Haible <bruno@clisp.org>
vma-iter: Avoid empty intervals.
* lib/vma-iter.c (vma_iterate) [IRIX, OSF/1]: Don't call the callback
on an empty interval.
2011-01-24 Jim Meyering <meyering@redhat.com>
u64: remove unnecessary #include
* lib/u64.h: Don't include <stddef.h>. It was not used.
2011-01-23 Paul Eggert <eggert@cs.ucla.edu>
Allow the user to avoid the HAVE_RAW_DECL_* macros.
* m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): New macro.
2011-01-23 Bruno Haible <bruno@clisp.org>
New module 'vma-iter'.
* lib/vma-iter.h: New file.
* lib/vma-iter.c: New file, based on lib/get-rusage-as.c.
* modules/vma-iter: New file.
* lib/get-rusage-as.c: Include vma-iter.h. Don't include system headers
for get_rusage_as_via_iterator.
(vma_iterate_callback): New function.
(get_rusage_as_via_iterator): Rewritten to use vma_iterate.
* modules/get-rusage-as (Depends-on): Add vma-iter.
2011-01-23 Bruno Haible <bruno@clisp.org>
uninorm: Tweak includes.
* lib/uninorm/normalize-internal.h: Don't include <stddef.h>.
Reported by Jim Meyering.
2011-01-23 Bruno Haible <bruno@clisp.org>
get-rusage-as: Improve on NetBSD.
* lib/get-rusage-as.c (get_rusage_as_via_iterator): On NetBSD, use
/proc, like on FreeBSD.
2011-01-23 Jim Meyering <meyering@redhat.com>
xreadlink.h: remove unnecessary #include
* lib/xreadlink.h: Don't include <stddef.h>. It was not used.
maint.mk: add syntax-check rule: detect unnecessary #include <stddef.h>
* top/maint.mk (sc_prohibit_stddef_without_use): New rule.
2011-01-23 Bruno Haible <bruno@clisp.org>
get-rusage-as: Fix bug.
* lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Restore the
original limit when aborting the first loop.
2011-01-23 Bruno Haible <bruno@clisp.org>
wctype: Ensure valid C syntax.
* m4/wctype_h.m4 (gl_WCTYPE_H): Invoke gl_CHECK_NEXT_HEADERS
unconditionally, instead of gl_NEXT_HEADERS conditionally.
2011-01-21 Paul Eggert <eggert@cs.ucla.edu>
getopt: omit HAVE_OPTRESET, HAVE_GETOPT_CLIP from config.h
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Do not put the
symbols HAVE_OPTRESET and HAVE_GETOPT_CLIP into config.h,
as they are needed only for configure's test case.
This removes two unnecessary symbols from config.h.
gl_CHECK_NEXT_HEADERS implies AC_CHECK_HEADERS_ONCE
* m4/include_next.m4 (gl_CHECK_HEXT_HEADERS): Document this.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Don't bother to invoke
AC_CHECK_HEADERS_ONCE on a header that we also invoke
gl_CHECK_NEXT_HEADERS on, since the latter invokes the former.
* m4/netdb_h.m4 (gl_HEADER_NETDB): Likewise.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Likewise.
* m4/sched_h.m4 (gl_SCHED_H): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/termios_h.m4 (gl_TERMIOS_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H): Likewise.
* m4/wctype_h.m4 (gl_WCTYPE_H): Likewise.
2011-01-21 Eric Blake <eblake@redhat.com>
maintainer-makefile: work with older git for submodule check
* top/maint.mk (public-submodule-commit): Rewrite to avoid
merge-base --independent, which Ubuntu 10.04 git 1.7.0.4 lacks.
Reported by Matthias Bolte.
bootstrap: minor portability fixes
* build-aux/bootstrap (me): Use $me instead of $0 in functions.
(usage): Omit leading capital and trailing . on help phrases, per
GNU Coding Standards.
(check_versions, top level): Prefix messages with script name.
2011-01-21 Benjamin Lindner <bjmldn@gmail.com> (tiny change)
bootstrap: support --no-git option
* build-aux/bootstrap: Add --no-git option, to be used when
--gnulib-srcdir points to the exact desired checkout.
2011-01-21 Eric Blake <eblake@redhat.com>
strerror_r-posix: work with glibc 2.13
* lib/strerror_r.c (strerror_r): Fix return type.
2011-01-21 Pádraig Brady <P@draigBrady.com>
Bruno Haible <bruno@clisp.org>
uN_strstr: New unit tests.
* modules/unistr/u8-strstr-tests: New file.
* modules/unistr/u16-strstr-tests: New file.
* modules/unistr/u32-strstr-tests: New file.
* tests/unistr/test-u-strstr.h: New file, based on tests/test-strstr.c.
* tests/unistr/test-u8-strstr.c: New file.
* tests/unistr/test-u16-strstr.c: New file.
* tests/unistr/test-u32-strstr.c: New file.
2011-01-21 Pádraig Brady <P@draigBrady.com>
Bruno Haible <bruno@clisp.org>
Make uN_strstr functions O(n) worst-case.
* lib/unistr/u-strstr.h (FUNC): In the 8-bit case, use strstr. In the
16-bit and 32-bit unit cases, use the unibyte algorithm from
lib/mbsstr.c.
* lib/unistr/u8-strstr.c: Include <string.h>.
(UNIT_IS_UINT8_T): New macro.
* lib/unistr/u16-strstr.c: Include malloca.h and str-kmp.h.
(U_STRLEN, U_STRNLEN): New macros.
* lib/unistr/u32-strstr.c: Include malloca.h and str-kmp.h.
(U_STRLEN, U_STRNLEN): New macros.
* modules/unistr/u8-strstr (Depends-on): Add strstr.
(configure.ac): Update required libunistring version.
* modules/unistr/u16-strstr (Files): Add lib/str-kmp.h.
(Depends-on): Add unistr/u16-strlen, unistr/u16-strnlen, stdbool,
malloca.
(configure.ac): Update required libunistring version.
* modules/unistr/u32-strstr (Files): Add lib/str-kmp.h.
(Depends-on): Add unistr/u32-strlen, unistr/u32-strnlen, stdbool,
malloca.
(configure.ac): Update required libunistring version.
2011-01-21 Pádraig Brady <P@draigBrady.com>
Bruno Haible <bruno@clisp.org>
Prepare for faster uN_strstr functions.
* lib/str-kmp.h: Support definable UNITs.
(knuth_morris_pratt): Renamed from knuth_morris_pratt_unibyte. Add
needle_len argument.
* lib/mbsstr.c (mbsstr): Adjust for the changed str-kmp.h.
* lib/mbscasestr.c (mbscasestr): Likewise.
2011-01-21 Pádraig Brady <P@draigBrady.com>
malloca-tests: make faster by unsetting MALLOC_PERTURB_
* tests/test-malloca.c (main): Unset the environment variable
to greatly speed up the test.
* tests/init.sh: Don't say that MALLOC_PERTURB_ is cheap.
* modules/malloca-tests: Depend on unsetenv.
2011-01-21 Pádraig Brady <P@draigBrady.com>
ignore-value: remove stdint dependency
* lib/ignore-value.h: Remove <stdint.h>
* modules/ignore-value: Remove stdint dependency.
2011-01-21 Jim Meyering <meyering@redhat.com>
maint.mk: adjust variable name to be consistent with other gl_ vars
* top/maint.mk (gl_public_submodule_commit): Rename the variable
to be lower case.
2011-01-20 Jim Meyering <meyering@redhat.com>
maint.mk: make "check" depend on public-submodule-commit by default
* top/maint.mk (GL_PUBLIC_SUBMODULE_COMMIT): New overridable variable.
2011-01-20 Bruno Haible <bruno@clisp.org>
mbfile, mbiter: Complete change from 2008-12-21.
* m4/mbfile.m4 (gl_MBFILE): Don't require AC_FUNC_MBRTOWC.
* m4/mbiter.m4 (gl_MBITER): Likewise.
2011-01-20 Jim Meyering <meyering@redhat.com>
init.sh: insert space between each function name and "()"
* tests/init.sh: Make it a little easier to see that a function's
name is "warn_", and not "warn" when looking at the first part of
its definition: "warn_ ()". Suggested by Ralf Wildenhues.
2011-01-20 Jim Meyering <meyering@redhat.com>
mountlist: clean up code formatting
* lib/mountlist.c (read_file_system_list): Split a long line,
correct bracing style, use NULL in place of "(struct statfs *)0",
don't parenthesize return value, add spaces around "=" and after
";-in-for-stmt".
2011-01-14 Markus Duft <mduft@gentoo.org>
mountlist: add support for Interix
* lib/mountlist.c (read_file_system_list) [MOUNTED_INTERIX_STATVFS]:
Apply statvfs to all entries of /dev/fs.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Check for statvfs,
and if found, AC_DEFINE MOUNTED_INTERIX_STATVFS.
2011-01-20 Jim Meyering <meyering@redhat.com>
maint.mk: improve the public-submodule-commit rule
* top/maint.mk (public-submodule-commit): Prefix with $(AM_V_GEN),
to suppress printing of its commands... unless V=1.
Add git submodule's --quiet option to suppress printing of e.g.,
"Entering gnulib" output.
"cd" into $(srcdir) before running git submodule.
2011-01-20 Bruno Haible <bruno@clisp.org>
include_next: Fix bug introduced on 2011-01-18.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): New macro, extracted
from gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. Omit test of
ac_cv_header_... variable if the second argument is not 'check'.
(gl_CHECK_NEXT_HEADERS, gl_NEXT_HEADERS): Invoke
gl_NEXT_HEADERS_INTERNAL.
2011-01-20 Bruno Haible <bruno@clisp.org>
Allow the user to avoid the GNULIB_TEST_* macros.
* m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_TESTS): New macro.
Suggested by Paul Eggert.
2011-01-14 Jim Meyering <meyering@redhat.com>
bootstrap: avoid failure when there is no .gitmodules file
": ${gnulib_path=gnulib}" fails to set $gnulib_path when that variable
has been assigned to, even when its value is the empty string.
* build-aux/bootstrap (gnulib_path): Test explicitly for an empty
"$gnulib_path", rather than using ${gnulib_path=gnulib}.
Reported by John W. Eaton <jwe@gnu.org>.
2011-01-19 Paul Eggert <eggert@cs.ucla.edu>
assume <ctype.h>, ..., <time.h> exist
For years gnulib has been assuming the existence of the headers
<ctype.h>, <errno.h>, <fcntl.h>, <locale.h>, <signal.h>,
<stdio.h>, <stdlib.h>, <string.h>, and <time.h>. Omit checks for
them, since they don't appear to be needed.
* README (Portability guidelines): Document this.
* lib/flock.c: Assume <fcntl.h> exists.
* lib/regex_internal.h: Assume <locale.h> exists.
* m4/ctype.m4 (gl_CTYPE_H): Assume <ctype.h> exists.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Assume <errno.h> exists.
* m4/fcntl_h.m4 (gl_FCNTL_H): Assume <fcntl.h> exists.
* m4/flock.m4 (gl_PREREQ_FLOCK): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Assume <locale.h> exists.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Assume <signal.h> exists.
* m4/stdio_h.m4 (gl_STDIO_H): Assume <stdio.h> exists.
* m4/stdlib_h.m4 (gl_STDLIB_H): Assume <stdlib.h> exists.
* m4/string_h.m4 (gl_STRING_H): Assume <string.h> exists.
* tests/test-argp.c: Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Assume <time.h> exists.
multiarch: remove AA_APPLE_UNIVERSAL_BUILD
* m4/multiarch.m4 (gl_MULTIARCH): Don't AC_DEFINE
AA_APPLE_UNIVERSAL_BUILD. See
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00247.html>.
* NEWS: Document this.
2011-01-19 Eric Blake <eblake@redhat.com>
c-stack: assume stack overflow if SA_SIGINFO unsupported
* lib/c-stack.c (SIGACTION_WORKS): Rename...
(SIGINFO_WORKS): ...since gnulib module guarantees that (most) of
sigaction will work.
(die): Assume stack overflow if siginfo doesn't work, to let Haiku
behavior match Linux.
* tests/test-c-stack.c (main): Prefer NULL for pointers.
stdbool-tests: accommodate Haiku
* tests/test-stdbool.c: Haiku's gcc 2.95 lacks native _Bool.
binary-io: fix O_TEXT on Haiku
* modules/binary-io (Depends-on): Add fcntl-h.
* lib/binary-io.h (O_TEXT): Rely on replacement <fcntl.h> rather
than blindly undefining O_TEXT.
Reported by Scott McCreary.
2011-01-18 Paul Eggert <eggert@cs.ucla.edu>
include_next: do not check for standard headers like stddef.h
I found this problem when modifying Emacs to use gnulib.
I noticed that it added HAVE_STDDEF_H to config.h, even though
gnulib always assumes <stddef.h> exists as per README and this
symbol is unnecessary.
* m4/include_next.m4 (gl_NEXT_HEADERS): New macro, which does not
use AC_CHECK_HEADERS_ONCE, but which otherwise contains what
gl_CHECK_NEXT_HEADERS used to contain. This makes 'configure' run
faster for headers like stddef.h that are known to exist.
(gl_CHECK_NEXT_HEADERS): Use it.
* m4/float_h.m4 (gl_FLOAT_H): For float.h, use gl_NEXT_HEADERS
rather than gl_CHECK_NEXT_HEADERS.
* m4/stdarg.m4 (gl_STDARG_H): Likewise, for stdarg.h.
* m4/stddef_h.m4 (gl_STDDEF_H): Likewise, for stddef.h.
2011-01-18 Eric Blake <eblake@redhat.com>
ansi-c++-opt: skip C++ dependency style if C++ is unused
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Avoid full-blown dependency
tests when we know C++ compilation is not desired.
Reported by Scott McCreary.
2011-01-18 Bruno Haible <bruno@clisp.org>
*printf-posix: Avoid test failures. Make tests work on MacOS X, Cygwin.
* tests/test-fprintf-posix3.c: Include "resource-ext.h".
(main): Perform test also when getrlimit and setrlimit don't exist or
when setrlimit of RLIMIT_DATA fails (like on Cygwin). Instead of
limiting the address space size using setrlimit, compare the address
space size before and after the test.
* tests/test-dprintf-posix2.c: Likewise.
* tests/test-fprintf-posix3.sh: Update skip messages.
* tests/test-dprintf-posix2.sh: Likewise.
* modules/fprintf-posix-tests (Depends-on): Add get-rusage-as.
* modules/dprintf-posix-tests (Depends-on): Likewise.
Reported by Bruce Korb <bkorb@gnu.org> and
Gary V. Vaughan <gary@gnu.org>.
2011-01-18 Bruno Haible <bruno@clisp.org>
get-rusage-as: Improvement for Cygwin.
* lib/get-rusage-as.c (get_rusage_as_via_iterator): On Windows, ignore
areas that are merely reserved.
2011-01-18 Paul Eggert <eggert@cs.ucla.edu>
strftime: remove dependencies on multibyte modules
strftime depended on mbrlen, mbsinit, and wchar, but these modules
are needed only if ! MULTIBYTE_IS_FORMAT_SAFE, and that is true
only if __osf__ is defined, and I suspect OSF doesn't need these
other modules. If my guess is wrong, we'll need to come up with a
variant of strftime that doesn't need the multibyte modules.
I discovered this problem when attempting modify Emacs to use the
strftime module. With the previous gnulib, this caused Emacs to
need 31 new files, ranging from lib/config.charset to
m4/wint_t.m4. This was overkill and I expect would be offputting
to the Emacs maintainers. After this change, only 6 new files are
needed, namely strftime.[ch], srtftime.m4, stdbool.in.h,
stdbool.m4, and tm_gmtoff.m4.
* lib/strftime.c (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 always.
Suggested by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00238.html>.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Do not require AC_TYPE_MBSTATE_T,
and do not check for wchar.h.
* modules/strftime (Files): Remove m4/mbstate_t.m4.
(Depends-on): Remove mbrlen, mbsinit, wchar.
2011-01-18 Bruno Haible <bruno@clisp.org>
Tests for module 'get-rusage-as'.
* modules/get-rusage-as-tests: New file.
* tests/test-get-rusage-as.c: New file.
New module 'get-rusage-as'.
* modules/get-rusage-as: New file.
* lib/resource-ext.h: New file.
* lib/get-rusage-as.c: New file.
2011-01-17 Eric Blake <eblake@redhat.com>
sigaction: relax license from LGPLv3+ to LGPLv2+
* modules/sigaction (License): Relax to LGPLv2+.
2011-01-14 Bruno Haible <bruno@clisp.org>
filemode: Make function declarations usable in C++ mode.
* lib/filemode.h: Enclose function declarations in extern "C" block.
Reported by John W. Eaton <jwe@gnu.org>.
2011-01-12 Rob Vermaas <rob.vermaas@gmail.com>
save-cwd: no longer include "xgetcwd.h"
* lib/save-cwd.c: Don't include "xgetcwd.h"; it's no longer used.
This avoids a compilation failure in projects that use save-cwd
without also using the xgetcwd module.
2011-01-11 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: split into 3 modules ftoastr, dtoastr, ldtoastr
This is so that a program like Emacs, which needs only dtoastr,
does not have to bother with distributing and compiling ftoastr
and ldtoastr.
* MODULES.html.sh: Document these modules (ftoastr wasn't documented).
* modules/dtoastr, modules/ldtoastr: New files.
* modules/ftoastr: Now works just for 'float'.
(Files): Remove lib/dtoastr.c, lib/ldtoastr.c.
(Makefile.am): Remove ftoastr.h (not needed and no effect),
dtoastr.c, ldtoastr.c.
2011-01-11 Jim Meyering <meyering@redhat.com>
save-cwd: remove #if-!HAVE_FCHDIR'd code; use the fchdir module
There is no need to work around the lack of the fchdir function,
since gnulib can now provide a replacement when required.
* lib/save-cwd.c: Remove #if !HAVE_FCHDIR...#endif code.
* modules/save-cwd (Depends-on): Add fchdir.
2011-01-11 Paul Eggert <eggert@cs.ucla.edu>
openat, save-cwd: avoid xmalloc
This removes a direct (but undocumented) dependency of openat on
xalloc, along with an indirect dependency via save-cwd. It also
removes a dependency of save-cwd on xgetcwd, and thereby
indirectly on xalloc. This change causes the openat substitute
to fall back on save_cwd when memory is tight, and for save_cwd to
fail instead of dying when memory is tight, but that's good enough.
Problem and initial idea for fix reported by Bastien Roucaries in
<http://lists.gnu.org/r/bug-gnulib/2011-01/msg00170.html>.
* lib/openat-proc.c: Include stdlib.h (for malloc), not
xalloc.h (for xmalloc).
(openat_proc_name): Use malloc, not xmalloc.
* lib/save-cwd.c (save_cwd): Use getcwd, not xgetcwd.
* modules/save-cwd (Files): Depend on getcwd, not xgetcwd.
openat: Increase OPENAT_BUFFER_SIZE from 512 to at least 1024
This avoids heap allocation for file names whose lengths are in
the range 512..1023, with the upper bound increasing to at most
4031 depending on the platform's PATH_MAX. (We do not want
pathmax.h here as it might supply a non-constant PATH_MAX.)
* lib/openat-priv.h (SAFER_ALLOCA_MAX, SAFER_ALLOCA): New macros.
Perhaps they should be moved to malloca.h?
(OPENAT_BUFFER_SIZE): Use them.
2011-01-10 Bruno Haible <bruno@clisp.org>
doc: Update users.txt.
* users.txt: Add recutils.
2011-01-09 Karl Berry <karl@gnu.org>
* doc/posix-functions/gai_strerror.texi: Insert missing @item.
* doc/configmake.texi: New file.
* doc/gnulib.texi: Include it.
* modules/configmake: Move documentation from here.
2011-01-09 Bruno Haible <bruno@clisp.org>
Update to Unicode 6.0.0.
* lib/gen-uni-tables.c (symbolic_width): Fix bounds of planes.
(get_lbp): Update for Unicode 6.0.0.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+065F,
U+0859..U+085B, U+093A, U+0956..U+0957, U+0F8D..U+0F8F, U+135D..U+135E,
U+1BE6, U+1BE8..U+1BE9, U+1BED, U+1BEF..U+1BF1, U+1DFC, U+2D7F,
U+11001, U+11038..U+11046. Remove U+06DE.
(uc_width): Fix bounds of planes.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* tests/unigbrk/GraphemeBreakTest.txt: Copied from Unicode 6.0.0, with
trailing whitespace removed.
* tests/uninorm/NormalizationTest.txt: Update from Unicode 6.0.0,
without comments, but with the original copyright notice.
* lib/unicase/cased.h: Regenerated for Unicode 6.0.0.
* lib/unicase/ignorable.h: Likewise.
* lib/unicase/tocasefold.h: Likewise.
* lib/unicase/tolower.h: Likewise.
* lib/unicase/totitle.h: Likewise.
* lib/unicase/toupper.h: Likewise.
* lib/unictype/bidi_of.h: Likewise.
* lib/unictype/blocks.h: Likewise.
* lib/unictype/categ_C.h: Likewise.
* lib/unictype/categ_Cn.h: Likewise.
* lib/unictype/categ_L.h: Likewise.
* lib/unictype/categ_Ll.h: Likewise.
* lib/unictype/categ_Lm.h: Likewise.
* lib/unictype/categ_Lo.h: Likewise.
* lib/unictype/categ_Lu.h: Likewise.
* lib/unictype/categ_M.h: Likewise.
* lib/unictype/categ_Mc.h: Likewise.
* lib/unictype/categ_Me.h: Likewise.
* lib/unictype/categ_Mn.h: Likewise.
* lib/unictype/categ_N.h: Likewise.
* lib/unictype/categ_Nd.h: Likewise.
* lib/unictype/categ_No.h: Likewise.
* lib/unictype/categ_P.h: Likewise.
* lib/unictype/categ_Po.h: Likewise.
* lib/unictype/categ_S.h: Likewise.
* lib/unictype/categ_Sc.h: Likewise.
* lib/unictype/categ_Sk.h: Likewise.
* lib/unictype/categ_Sm.h: Likewise.
* lib/unictype/categ_So.h: Likewise.
* lib/unictype/categ_of.h: Likewise.
* lib/unictype/combining.h: Likewise.
* lib/unictype/ctype_alnum.h: Likewise.
* lib/unictype/ctype_alpha.h: Likewise.
* lib/unictype/ctype_graph.h: Likewise.
* lib/unictype/ctype_lower.h: Likewise.
* lib/unictype/ctype_print.h: Likewise.
* lib/unictype/ctype_punct.h: Likewise.
* lib/unictype/ctype_upper.h: Likewise.
* lib/unictype/decdigit.h: Likewise.
* lib/unictype/digit.h: Likewise.
* lib/unictype/numeric.h: Likewise.
* lib/unictype/pr_alphabetic.h: Likewise.
* lib/unictype/pr_bidi_arabic_digit.h: Likewise.
* lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_boundary_neutral.h: Likewise.
* lib/unictype/pr_bidi_eur_num_terminator.h: Likewise.
* lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_left_to_right.h: Likewise.
* lib/unictype/pr_bidi_non_spacing_mark.h: Likewise.
* lib/unictype/pr_bidi_other_neutral.h: Likewise.
* lib/unictype/pr_case_ignorable.h: Likewise.
* lib/unictype/pr_cased.h: Likewise.
* lib/unictype/pr_changes_when_casefolded.h: Likewise.
* lib/unictype/pr_changes_when_casemapped.h: Likewise.
* lib/unictype/pr_changes_when_lowercased.h: Likewise.
* lib/unictype/pr_changes_when_titlecased.h: Likewise.
* lib/unictype/pr_changes_when_uppercased.h: Likewise.
* lib/unictype/pr_combining.h: Likewise.
* lib/unictype/pr_composite.h: Likewise.
* lib/unictype/pr_currency_symbol.h: Likewise.
* lib/unictype/pr_decimal_digit.h: Likewise.
* lib/unictype/pr_deprecated.h: Likewise.
* lib/unictype/pr_format_control.h: Likewise.
* lib/unictype/pr_grapheme_base.h: Likewise.
* lib/unictype/pr_grapheme_extend.h: Likewise.
* lib/unictype/pr_grapheme_link.h: Likewise.
* lib/unictype/pr_id_continue.h: Likewise.
* lib/unictype/pr_id_start.h: Likewise.
* lib/unictype/pr_ideographic.h: Likewise.
* lib/unictype/pr_lowercase.h: Likewise.
* lib/unictype/pr_math.h: Likewise.
* lib/unictype/pr_numeric.h: Likewise.
* lib/unictype/pr_other_alphabetic.h: Likewise.
* lib/unictype/pr_other_id_continue.h: Likewise.
* lib/unictype/pr_other_math.h: Likewise.
* lib/unictype/pr_punctuation.h: Likewise.
* lib/unictype/pr_sentence_terminal.h: Likewise.
* lib/unictype/pr_terminal_punctuation.h: Likewise.
* lib/unictype/pr_unassigned_code_value.h: Likewise.
* lib/unictype/pr_unified_ideograph.h: Likewise.
* lib/unictype/pr_uppercase.h: Likewise.
* lib/unictype/pr_xid_continue.h: Likewise.
* lib/unictype/pr_xid_start.h: Likewise.
* lib/unictype/scripts.h: Likewise.
* lib/unictype/scripts_byname.gperf: Likewise.
* lib/unictype/sy_java_ident.h: Likewise.
* lib/unigbrk/gbrkprop.h: Likewise.
* lib/unilbrk/lbrkprop1.h: Likewise.
* lib/unilbrk/lbrkprop2.h: Likewise.
* lib/uninorm/decomposition-table2.h: Likewise.
* lib/uniwbrk/wbrkprop.h: Likewise.
* tests/unicase/test-cased.c: Likewise.
* tests/unicase/test-ignorable.c: Likewise.
* tests/unicase/test-uc_tolower.c: Likewise.
* tests/unicase/test-uc_totitle.c: Likewise.
* tests/unicase/test-uc_toupper.c: Likewise.
* tests/unictype/test-categ_C.c: Likewise.
* tests/unictype/test-categ_Cn.c: Likewise.
* tests/unictype/test-categ_L.c: Likewise.
* tests/unictype/test-categ_Ll.c: Likewise.
* tests/unictype/test-categ_Lm.c: Likewise.
* tests/unictype/test-categ_Lo.c: Likewise.
* tests/unictype/test-categ_Lu.c: Likewise.
* tests/unictype/test-categ_M.c: Likewise.
* tests/unictype/test-categ_Mc.c: Likewise.
* tests/unictype/test-categ_Me.c: Likewise.
* tests/unictype/test-categ_Mn.c: Likewise.
* tests/unictype/test-categ_N.c: Likewise.
* tests/unictype/test-categ_Nd.c: Likewise.
* tests/unictype/test-categ_No.c: Likewise.
* tests/unictype/test-categ_P.c: Likewise.
* tests/unictype/test-categ_Po.c: Likewise.
* tests/unictype/test-categ_S.c: Likewise.
* tests/unictype/test-categ_Sc.c: Likewise.
* tests/unictype/test-categ_Sk.c: Likewise.
* tests/unictype/test-categ_Sm.c: Likewise.
* tests/unictype/test-categ_So.c: Likewise.
* tests/unictype/test-ctype_alnum.c: Likewise.
* tests/unictype/test-ctype_alpha.c: Likewise.
* tests/unictype/test-ctype_graph.c: Likewise.
* tests/unictype/test-ctype_lower.c: Likewise.
* tests/unictype/test-ctype_print.c: Likewise.
* tests/unictype/test-ctype_punct.c: Likewise.
* tests/unictype/test-ctype_upper.c: Likewise.
* tests/unictype/test-decdigit.h: Likewise.
* tests/unictype/test-digit.h: Likewise.
* tests/unictype/test-numeric.h: Likewise.
* tests/unictype/test-pr_alphabetic.c: Likewise.
* tests/unictype/test-pr_bidi_arabic_digit.c: Likewise.
* tests/unictype/test-pr_bidi_arabic_right_to_left.c: Likewise.
* tests/unictype/test-pr_bidi_boundary_neutral.c: Likewise.
* tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise.
* tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise.
* tests/unictype/test-pr_bidi_left_to_right.c: Likewise.
* tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise.
* tests/unictype/test-pr_bidi_other_neutral.c: Likewise.
* tests/unictype/test-pr_case_ignorable.c: Likewise.
* tests/unictype/test-pr_cased.c: Likewise.
* tests/unictype/test-pr_changes_when_casefolded.c: Likewise.
* tests/unictype/test-pr_changes_when_casemapped.c: Likewise.
* tests/unictype/test-pr_changes_when_lowercased.c: Likewise.
* tests/unictype/test-pr_changes_when_titlecased.c: Likewise.
* tests/unictype/test-pr_changes_when_uppercased.c: Likewise.
* tests/unictype/test-pr_combining.c: Likewise.
* tests/unictype/test-pr_composite.c: Likewise.
* tests/unictype/test-pr_currency_symbol.c: Likewise.
* tests/unictype/test-pr_decimal_digit.c: Likewise.
* tests/unictype/test-pr_deprecated.c: Likewise.
* tests/unictype/test-pr_format_control.c: Likewise.
* tests/unictype/test-pr_grapheme_base.c: Likewise.
* tests/unictype/test-pr_grapheme_extend.c: Likewise.
* tests/unictype/test-pr_grapheme_link.c: Likewise.
* tests/unictype/test-pr_id_continue.c: Likewise.
* tests/unictype/test-pr_id_start.c: Likewise.
* tests/unictype/test-pr_ideographic.c: Likewise.
* tests/unictype/test-pr_lowercase.c: Likewise.
* tests/unictype/test-pr_math.c: Likewise.
* tests/unictype/test-pr_numeric.c: Likewise.
* tests/unictype/test-pr_other_alphabetic.c: Likewise.
* tests/unictype/test-pr_other_id_continue.c: Likewise.
* tests/unictype/test-pr_other_math.c: Likewise.
* tests/unictype/test-pr_punctuation.c: Likewise.
* tests/unictype/test-pr_sentence_terminal.c: Likewise.
* tests/unictype/test-pr_terminal_punctuation.c: Likewise.
* tests/unictype/test-pr_unassigned_code_value.c: Likewise.
* tests/unictype/test-pr_unified_ideograph.c: Likewise.
* tests/unictype/test-pr_uppercase.c: Likewise.
* tests/unictype/test-pr_xid_continue.c: Likewise.
* tests/unictype/test-pr_xid_start.c: Likewise.
* tests/unigbrk/test-uc-gbrk-prop.h: Likewise.
* lib/unicase/special-casing-table.gperf: Regenerated; only comment
changes.
* lib/unictype/categ_Cc.h: Likewise.
* lib/unictype/categ_Cf.h: Likewise.
* lib/unictype/categ_Co.h: Likewise.
* lib/unictype/categ_Cs.h: Likewise.
* lib/unictype/categ_Lt.h: Likewise.
* lib/unictype/categ_Nl.h: Likewise.
* lib/unictype/categ_Pc.h: Likewise.
* lib/unictype/categ_Pd.h: Likewise.
* lib/unictype/categ_Pe.h: Likewise.
* lib/unictype/categ_Pf.h: Likewise.
* lib/unictype/categ_Pi.h: Likewise.
* lib/unictype/categ_Ps.h: Likewise.
* lib/unictype/categ_Z.h: Likewise.
* lib/unictype/categ_Zl.h: Likewise.
* lib/unictype/categ_Zp.h: Likewise.
* lib/unictype/categ_Zs.h: Likewise.
* lib/unictype/ctype_blank.h: Likewise.
* lib/unictype/ctype_cntrl.h: Likewise.
* lib/unictype/ctype_digit.h: Likewise.
* lib/unictype/ctype_space.h: Likewise.
* lib/unictype/ctype_xdigit.h: Likewise.
* lib/unictype/mirror.h: Likewise.
* lib/unictype/pr_ascii_hex_digit.h: Likewise.
* lib/unictype/pr_bidi_block_separator.h: Likewise.
* lib/unictype/pr_bidi_common_separator.h: Likewise.
* lib/unictype/pr_bidi_control.h: Likewise.
* lib/unictype/pr_bidi_embedding_or_override.h: Likewise.
* lib/unictype/pr_bidi_eur_num_separator.h: Likewise.
* lib/unictype/pr_bidi_european_digit.h: Likewise.
* lib/unictype/pr_bidi_pdf.h: Likewise.
* lib/unictype/pr_bidi_segment_separator.h: Likewise.
* lib/unictype/pr_bidi_whitespace.h: Likewise.
* lib/unictype/pr_dash.h: Likewise.
* lib/unictype/pr_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_diacritic.h: Likewise.
* lib/unictype/pr_extender.h: Likewise.
* lib/unictype/pr_hex_digit.h: Likewise.
* lib/unictype/pr_hyphen.h: Likewise.
* lib/unictype/pr_ids_binary_operator.h: Likewise.
* lib/unictype/pr_ids_trinary_operator.h: Likewise.
* lib/unictype/pr_ignorable_control.h: Likewise.
* lib/unictype/pr_iso_control.h: Likewise.
* lib/unictype/pr_join_control.h: Likewise.
* lib/unictype/pr_left_of_pair.h: Likewise.
* lib/unictype/pr_line_separator.h: Likewise.
* lib/unictype/pr_logical_order_exception.h: Likewise.
* lib/unictype/pr_non_break.h: Likewise.
* lib/unictype/pr_not_a_character.h: Likewise.
* lib/unictype/pr_other_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_other_grapheme_extend.h: Likewise.
* lib/unictype/pr_other_id_start.h: Likewise.
* lib/unictype/pr_other_lowercase.h: Likewise.
* lib/unictype/pr_other_uppercase.h: Likewise.
* lib/unictype/pr_paired_punctuation.h: Likewise.
* lib/unictype/pr_paragraph_separator.h: Likewise.
* lib/unictype/pr_pattern_syntax.h: Likewise.
* lib/unictype/pr_pattern_white_space.h: Likewise.
* lib/unictype/pr_private_use.h: Likewise.
* lib/unictype/pr_quotation_mark.h: Likewise.
* lib/unictype/pr_radical.h: Likewise.
* lib/unictype/pr_soft_dotted.h: Likewise.
* lib/unictype/pr_space.h: Likewise.
* lib/unictype/pr_titlecase.h: Likewise.
* lib/unictype/pr_variation_selector.h: Likewise.
* lib/unictype/pr_white_space.h: Likewise.
* lib/unictype/pr_zero_width.h: Likewise.
* lib/unictype/sy_c_ident.h: Likewise.
* lib/unictype/sy_c_whitespace.h: Likewise.
* lib/unictype/sy_java_whitespace.h: Likewise.
* lib/uninorm/composition-table.gperf: Likewise.
* lib/uninorm/decomposition-table1.h: Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Add test for rule
LB8.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* modules/unictype/*: Bump version number of expected libunistring
version.
2011-01-09 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.2.0.
* tests/unigbrk/GraphemeBreakTest.txt: Copied from Unicode 5.2.0, with
trailing whitespace removed.
2011-01-09 Bruno Haible <bruno@clisp.org>
New Unicode character properties, from Unicode 5.2.0.
* lib/unictype.in.h (UC_PROPERTY_CASED, UC_PROPERTY_CASE_IGNORABLE,
UC_PROPERTY_CHANGES_WHEN_LOWERCASED,
UC_PROPERTY_CHANGES_WHEN_UPPERCASED,
UC_PROPERTY_CHANGES_WHEN_TITLECASED,
UC_PROPERTY_CHANGES_WHEN_CASEFOLDED,
UC_PROPERTY_CHANGES_WHEN_CASEMAPPED,
uc_is_property_cased, uc_is_property_case_ignorable,
uc_is_property_changes_when_lowercased,
uc_is_property_changes_when_uppercased,
uc_is_property_changes_when_titlecased,
uc_is_property_changes_when_casefolded,
uc_is_property_changes_when_casemapped): New declarations.
* lib/unictype/pr_byname.gperf: Add the new properties.
* modules/unictype/property-byname (Depends-on): Depend on the new
properties modules.
* modules/unictype/property-all (Depends-on): Likewise.
* MODULES.html.sh (Unicode string functions): Add
unictype/property-case-ignorable, unictype/property-cased,
unictype/property-changes-when-casefolded,
unictype/property-changes-when-casemapped,
unictype/property-changes-when-lowercased,
unictype/property-changes-when-titlecased,
unictype/property-changes-when-uppercased.
New module 'unictype/property-changes-when-casemapped'.
* modules/unictype/property-changes-when-casemapped: New file.
* lib/unictype/pr_changes_when_casemapped.c: New file.
* lib/unictype/pr_changes_when_casemapped.h: New file, automatically
generated by gen-uni-tables.
* modules/unictype/property-changes-when-casemapped-tests: New file.
* tests/unictype/test-pr_changes_when_casemapped.c: New file,
automatically generated by gen-uni-tables.
New module 'unictype/property-changes-when-casefolded'.
* modules/unictype/property-changes-when-casefolded: New file.
* lib/unictype/pr_changes_when_casefolded.c: New file.
* lib/unictype/pr_changes_when_casefolded.h: New file, automatically
generated by gen-uni-tables.
* modules/unictype/property-changes-when-casefolded-tests: New file.
* tests/unictype/test-pr_changes_when_casefolded.c: New file,
automatically generated by gen-uni-tables.
New module 'unictype/property-changes-when-titlecased'.
* modules/unictype/property-changes-when-titlecased: New file.
* lib/unictype/pr_changes_when_titlecased.c: New file.
* lib/unictype/pr_changes_when_titlecased.h: New file, automatically
generated by gen-uni-tables.
* modules/unictype/property-changes-when-titlecased-tests: New file.
* tests/unictype/test-pr_changes_when_titlecased.c: New file,
automatically generated by gen-uni-tables.
New module 'unictype/property-changes-when-uppercased'.
* modules/unictype/property-changes-when-uppercased: New file.
* lib/unictype/pr_changes_when_uppercased.c: New file.
* lib/unictype/pr_changes_when_uppercased.h: New file, automatically
generated by gen-uni-tables.
* modules/unictype/property-changes-when-uppercased-tests: New file.
* tests/unictype/test-pr_changes_when_uppercased.c: New file,
automatically generated by gen-uni-tables.
New module 'unictype/property-changes-when-lowercased'.
* modules/unictype/property-changes-when-lowercased: New file.
* lib/unictype/pr_changes_when_lowercased.c: New file.
* lib/unictype/pr_changes_when_lowercased.h: New file, automatically
generated by gen-uni-tables.
* modules/unictype/property-changes-when-lowercased-tests: New file.
* tests/unictype/test-pr_changes_when_lowercased.c: New file,
automatically generated by gen-uni-tables.
New module 'unictype/property-case-ignorable'.
* modules/unictype/property-case-ignorable: New file.
* lib/unictype/pr_case_ignorable.c: New file.
* lib/unictype/pr_case_ignorable.h: New file, automatically generated
by gen-uni-tables.
* modules/unictype/property-case-ignorable-tests: New file.
* tests/unictype/test-pr_case_ignorable.c: New file, automatically
generated by gen-uni-tables.
New module 'unictype/property-cased'.
* modules/unictype/property-cased: New file.
* lib/unictype/pr_cased.c: New file.
* lib/unictype/pr_cased.h: New file, automatically generated by
gen-uni-tables.
* modules/unictype/property-cased-tests: New file.
* tests/unictype/test-pr_cased.c: New file, automatically generated by
gen-uni-tables.
2011-01-09 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.2.0.
* lib/gen-uni-tables.c (output_predicate, output_category,
output_combclass, output_bidi_category, output_decimal_digit_test,
output_decimal_digit, output_digit_test, output_digit,
output_numeric_test, output_numeric, output_mirror, output_scripts,
output_scripts_byname, output_blocks, output_ident_category): Fix
comment header.
(is_WBP_MIDNUMLET, is_WBP_MIDLETTER): New functions, extracted from
get_wbp.
(PROP_CASED, PROP_CASE_IGNORABLE, PROP_CHANGES_WHEN_*): New enumeration
items.
(fill_properties): Also fill the peoperties Cased, Case_Ignorable,
Changes_When_Lowercased, Changes_When_Uppercased,
Changes_When_Titlecased, Changes_When_Casefolded,
Changes_When_Casemapped.
(is_property_alphabetic, is_property_default_ignorable_code_point):
Update for Unicode 5.2.0.
(is_property_cased, is_property_case_ignorable,
is_property_changes_when_lowercased,
is_property_changes_when_uppercased,
is_property_changes_when_titlecased,
is_property_changes_when_casefolded,
is_property_changes_when_casemapped): New functions.
(output_properties): Output also the properties cased, case_ignorable,
changes_when_lowercased, changes_when_uppercased,
changes_when_titlecased, changes_when_casefolded,
changes_when_casemapped.
(symbolic_width): Update for Unicode 5.2.0, incorporating changes from
Unicode TR#11 revision 17 -> 19.
(LBP_CP): New enumeration value.
(LBP_*): Adjust values accordingly.
(get_lbp): Update for Unicode 5.2.0, incorporating changes from Unicode
TR#14 revision 22 -> 24.
(debug_output_lbp): Allow for LBP_* bits >= 32. Support LBP_CP.
(fill_org_lbp, debug_output_org_lbp, output_lbp): Support LBP_CP.
(get_wbp): Update for Unicode 5.2.0, incorporating changes from Unicode
TR#29 revision 13 -> 15. Use functions is_WBP_MIDNUMLET,
is_WBP_MIDLETTER.
(output_composition_tables): Allow for 24 bits instead of 16 bits in
the code1 and code2 of each composition rule.
* lib/unicase/cased.h: Regenerated for Unicode 5.2.0.
* lib/unicase/ignorable.h: Likewise.
* lib/unicase/tocasefold.h: Likewise.
* lib/unicase/tolower.h: Likewise.
* lib/unicase/totitle.h: Likewise.
* lib/unicase/toupper.h: Likewise.
* lib/unictype/bidi_of.h: Likewise.
* lib/unictype/blocks.h: Likewise.
* lib/unictype/categ_C.h: Likewise.
* lib/unictype/categ_Cf.h: Likewise.
* lib/unictype/categ_Cn.h: Likewise.
* lib/unictype/categ_L.h: Likewise.
* lib/unictype/categ_Ll.h: Likewise.
* lib/unictype/categ_Lm.h: Likewise.
* lib/unictype/categ_Lo.h: Likewise.
* lib/unictype/categ_Lu.h: Likewise.
* lib/unictype/categ_M.h: Likewise.
* lib/unictype/categ_Mc.h: Likewise.
* lib/unictype/categ_Mn.h: Likewise.
* lib/unictype/categ_N.h: Likewise.
* lib/unictype/categ_Nd.h: Likewise.
* lib/unictype/categ_Nl.h: Likewise.
* lib/unictype/categ_No.h: Likewise.
* lib/unictype/categ_P.h: Likewise.
* lib/unictype/categ_Pd.h: Likewise.
* lib/unictype/categ_Po.h: Likewise.
* lib/unictype/categ_S.h: Likewise.
* lib/unictype/categ_Sc.h: Likewise.
* lib/unictype/categ_So.h: Likewise.
* lib/unictype/categ_of.h: Likewise.
* lib/unictype/combining.h: Likewise.
* lib/unictype/ctype_alnum.h: Likewise.
* lib/unictype/ctype_alpha.h: Likewise.
* lib/unictype/ctype_graph.h: Likewise.
* lib/unictype/ctype_lower.h: Likewise.
* lib/unictype/ctype_print.h: Likewise.
* lib/unictype/ctype_punct.h: Likewise.
* lib/unictype/ctype_upper.h: Likewise.
* lib/unictype/decdigit.h: Likewise.
* lib/unictype/digit.h: Likewise.
* lib/unictype/numeric.h: Likewise.
* lib/unictype/pr_alphabetic.h: Likewise.
* lib/unictype/pr_bidi_arabic_digit.h: Likewise.
* lib/unictype/pr_bidi_eur_num_terminator.h: Likewise.
* lib/unictype/pr_bidi_european_digit.h: Likewise.
* lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_left_to_right.h: Likewise.
* lib/unictype/pr_bidi_non_spacing_mark.h: Likewise.
* lib/unictype/pr_bidi_other_neutral.h: Likewise.
* lib/unictype/pr_combining.h: Likewise.
* lib/unictype/pr_composite.h: Likewise.
* lib/unictype/pr_currency_symbol.h: Likewise.
* lib/unictype/pr_dash.h: Likewise.
* lib/unictype/pr_decimal_digit.h: Likewise.
* lib/unictype/pr_deprecated.h: Likewise.
* lib/unictype/pr_diacritic.h: Likewise.
* lib/unictype/pr_extender.h: Likewise.
* lib/unictype/pr_grapheme_base.h: Likewise.
* lib/unictype/pr_grapheme_extend.h: Likewise.
* lib/unictype/pr_grapheme_link.h: Likewise.
* lib/unictype/pr_id_continue.h: Likewise.
* lib/unictype/pr_id_start.h: Likewise.
* lib/unictype/pr_ideographic.h: Likewise.
* lib/unictype/pr_ignorable_control.h: Likewise.
* lib/unictype/pr_logical_order_exception.h: Likewise.
* lib/unictype/pr_lowercase.h: Likewise.
* lib/unictype/pr_numeric.h: Likewise.
* lib/unictype/pr_other_alphabetic.h: Likewise.
* lib/unictype/pr_punctuation.h: Likewise.
* lib/unictype/pr_sentence_terminal.h: Likewise.
* lib/unictype/pr_terminal_punctuation.h: Likewise.
* lib/unictype/pr_unassigned_code_value.h: Likewise.
* lib/unictype/pr_unified_ideograph.h: Likewise.
* lib/unictype/pr_uppercase.h: Likewise.
* lib/unictype/pr_xid_continue.h: Likewise.
* lib/unictype/pr_xid_start.h: Likewise.
* lib/unictype/pr_zero_width.h: Likewise.
* lib/unictype/scripts.h: Likewise.
* lib/unictype/scripts_byname.gperf: Likewise.
* lib/unictype/sy_java_ident.h: Likewise.
* lib/unigbrk/gbrkprop.h: Likewise.
* lib/unilbrk/lbrkprop1.h: Likewise.
* lib/unilbrk/lbrkprop2.h: Likewise.
* lib/unilbrk/lbrktables.h: Likewise.
* lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for
LBP_CP. Implement rule LB30.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+0816..U+0819,
U+081B..U+0823, U+0825..U+0827, U+0829..U+082D, U+0900, U+0955, U+109D,
U+1A56, U+1A58..U+1A5E, U+1A60, U+1A62, U+1A65..U+1A6C, U+1A73..U+1A7C,
U+1A7F, U+1CD0..U+1CD2, U+1CD4..U+1CE0, U+1CE2..U+1CE8, U+1CED, U+1DFD,
U+2CEF..U+2CF1, U+A6F0..U+A6F1, U+A8E0..U+A8F1, U+A980..U+A982, U+A9B3,
U+A9B6..U+A9B9, U+A9BC, U+AAB0, U+AAB2..U+AAB4, U+AAB7..U+AAB8,
U+AABE..U+AABF, U+AAC1, U+ABE5, U+ABE8, U+ABED, U+11080..U+11081,
U+110B3..U+110B6, U+110B9..U+110BA, U+110BD.
(uc_width): Return 2 also for unassigned code points of planes 2 and 3.
* lib/uninorm/composition-table.gperf: Regenerated for Unicode 5.2.0.
* lib/uninorm/composition.c (struct composition_rule): Allow for 24
bits instead of 16 bits in the code1 and code2 of each composition
rule.
(uc_composition): Update for Unicode 5.2.0.
* lib/uninorm/decomposition-table1.h: Regenerated for Unicode 5.2.0.
* lib/uninorm/decomposition-table2.h: Likewise.
* lib/uniwbrk/wbrkprop.h: Likewise.
* tests/unicase/test-cased.c: Likewise.
* tests/unicase/test-ignorable.c: Likewise.
* tests/unicase/test-uc_tolower.c: Likewise.
* tests/unicase/test-uc_totitle.c: Likewise.
* tests/unicase/test-uc_toupper.c: Likewise.
* tests/unictype/test-categ_C.c: Likewise.
* tests/unictype/test-categ_Cf.c: Likewise.
* tests/unictype/test-categ_Cn.c: Likewise.
* tests/unictype/test-categ_L.c: Likewise.
* tests/unictype/test-categ_Ll.c: Likewise.
* tests/unictype/test-categ_Lm.c: Likewise.
* tests/unictype/test-categ_Lo.c: Likewise.
* tests/unictype/test-categ_Lu.c: Likewise.
* tests/unictype/test-categ_M.c: Likewise.
* tests/unictype/test-categ_Mc.c: Likewise.
* tests/unictype/test-categ_Mn.c: Likewise.
* tests/unictype/test-categ_N.c: Likewise.
* tests/unictype/test-categ_Nd.c: Likewise.
* tests/unictype/test-categ_Nl.c: Likewise.
* tests/unictype/test-categ_No.c: Likewise.
* tests/unictype/test-categ_P.c: Likewise.
* tests/unictype/test-categ_Pd.c: Likewise.
* tests/unictype/test-categ_Po.c: Likewise.
* tests/unictype/test-categ_S.c: Likewise.
* tests/unictype/test-categ_Sc.c: Likewise.
* tests/unictype/test-categ_So.c: Likewise.
* tests/unictype/test-ctype_alnum.c: Likewise.
* tests/unictype/test-ctype_alpha.c: Likewise.
* tests/unictype/test-ctype_graph.c: Likewise.
* tests/unictype/test-ctype_lower.c: Likewise.
* tests/unictype/test-ctype_print.c: Likewise.
* tests/unictype/test-ctype_punct.c: Likewise.
* tests/unictype/test-ctype_upper.c: Likewise.
* tests/unictype/test-decdigit.h: Likewise.
* tests/unictype/test-digit.h: Likewise.
* tests/unictype/test-numeric.h: Likewise.
* tests/unictype/test-pr_alphabetic.c: Likewise.
* tests/unictype/test-pr_bidi_arabic_digit.c: Likewise.
* tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise.
* tests/unictype/test-pr_bidi_european_digit.c: Likewise.
* tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise.
* tests/unictype/test-pr_bidi_left_to_right.c: Likewise.
* tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise.
* tests/unictype/test-pr_bidi_other_neutral.c: Likewise.
* tests/unictype/test-pr_combining.c: Likewise.
* tests/unictype/test-pr_composite.c: Likewise.
* tests/unictype/test-pr_currency_symbol.c: Likewise.
* tests/unictype/test-pr_dash.c: Likewise.
* tests/unictype/test-pr_decimal_digit.c: Likewise.
* tests/unictype/test-pr_deprecated.c: Likewise.
* tests/unictype/test-pr_diacritic.c: Likewise.
* tests/unictype/test-pr_extender.c: Likewise.
* tests/unictype/test-pr_grapheme_base.c: Likewise.
* tests/unictype/test-pr_grapheme_extend.c: Likewise.
* tests/unictype/test-pr_grapheme_link.c: Likewise.
* tests/unictype/test-pr_id_continue.c: Likewise.
* tests/unictype/test-pr_id_start.c: Likewise.
* tests/unictype/test-pr_ideographic.c: Likewise.
* tests/unictype/test-pr_ignorable_control.c: Likewise.
* tests/unictype/test-pr_logical_order_exception.c: Likewise.
* tests/unictype/test-pr_lowercase.c: Likewise.
* tests/unictype/test-pr_numeric.c: Likewise.
* tests/unictype/test-pr_other_alphabetic.c: Likewise.
* tests/unictype/test-pr_punctuation.c: Likewise.
* tests/unictype/test-pr_sentence_terminal.c: Likewise.
* tests/unictype/test-pr_terminal_punctuation.c: Likewise.
* tests/unictype/test-pr_unassigned_code_value.c: Likewise.
* tests/unictype/test-pr_unified_ideograph.c: Likewise.
* tests/unictype/test-pr_uppercase.c: Likewise.
* tests/unictype/test-pr_xid_continue.c: Likewise.
* tests/unictype/test-pr_xid_start.c: Likewise.
* tests/unictype/test-pr_zero_width.c: Likewise.
* tests/unigbrk/test-uc-gbrk-prop.h: Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Update for
changed behaviour: line breaking is now disallowed between a letter
or '=' and '('.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise.
* tests/uniwidth/test-uc_width2.sh: Same updates as in
lib/uniwidth/width.c.
* tests/uninorm/NormalizationTest.txt: Update from Unicode 5.2.0,
without comments, but with the original copyright notice.
* lib/unicase/special-casing-table.gperf: Regenerated; only comment
changes.
* lib/unictype/categ_Cc.h: Likewise.
* lib/unictype/categ_Co.h: Likewise.
* lib/unictype/categ_Cs.h: Likewise.
* lib/unictype/categ_Lt.h: Likewise.
* lib/unictype/categ_Me.h: Likewise.
* lib/unictype/categ_Pc.h: Likewise.
* lib/unictype/categ_Pe.h: Likewise.
* lib/unictype/categ_Pf.h: Likewise.
* lib/unictype/categ_Pi.h: Likewise.
* lib/unictype/categ_Ps.h: Likewise.
* lib/unictype/categ_Sk.h: Likewise.
* lib/unictype/categ_Sm.h: Likewise.
* lib/unictype/categ_Z.h: Likewise.
* lib/unictype/categ_Zl.h: Likewise.
* lib/unictype/categ_Zp.h: Likewise.
* lib/unictype/categ_Zs.h: Likewise.
* lib/unictype/ctype_blank.h: Likewise.
* lib/unictype/ctype_cntrl.h: Likewise.
* lib/unictype/ctype_digit.h: Likewise.
* lib/unictype/ctype_space.h: Likewise.
* lib/unictype/ctype_xdigit.h: Likewise.
* lib/unictype/mirror.h: Likewise.
* lib/unictype/pr_ascii_hex_digit.h: Likewise.
* lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_block_separator.h: Likewise.
* lib/unictype/pr_bidi_boundary_neutral.h: Likewise.
* lib/unictype/pr_bidi_common_separator.h: Likewise.
* lib/unictype/pr_bidi_control.h: Likewise.
* lib/unictype/pr_bidi_embedding_or_override.h: Likewise.
* lib/unictype/pr_bidi_eur_num_separator.h: Likewise.
* lib/unictype/pr_bidi_pdf.h: Likewise.
* lib/unictype/pr_bidi_segment_separator.h: Likewise.
* lib/unictype/pr_bidi_whitespace.h: Likewise.
* lib/unictype/pr_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_format_control.h: Likewise.
* lib/unictype/pr_hex_digit.h: Likewise.
* lib/unictype/pr_hyphen.h: Likewise.
* lib/unictype/pr_ids_binary_operator.h: Likewise.
* lib/unictype/pr_ids_trinary_operator.h: Likewise.
* lib/unictype/pr_iso_control.h: Likewise.
* lib/unictype/pr_join_control.h: Likewise.
* lib/unictype/pr_left_of_pair.h: Likewise.
* lib/unictype/pr_line_separator.h: Likewise.
* lib/unictype/pr_math.h: Likewise.
* lib/unictype/pr_non_break.h: Likewise.
* lib/unictype/pr_not_a_character.h: Likewise.
* lib/unictype/pr_other_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_other_grapheme_extend.h: Likewise.
* lib/unictype/pr_other_id_continue.h: Likewise.
* lib/unictype/pr_other_id_start.h: Likewise.
* lib/unictype/pr_other_lowercase.h: Likewise.
* lib/unictype/pr_other_math.h: Likewise.
* lib/unictype/pr_other_uppercase.h: Likewise.
* lib/unictype/pr_paired_punctuation.h: Likewise.
* lib/unictype/pr_paragraph_separator.h: Likewise.
* lib/unictype/pr_pattern_syntax.h: Likewise.
* lib/unictype/pr_pattern_white_space.h: Likewise.
* lib/unictype/pr_private_use.h: Likewise.
* lib/unictype/pr_quotation_mark.h: Likewise.
* lib/unictype/pr_radical.h: Likewise.
* lib/unictype/pr_soft_dotted.h: Likewise.
* lib/unictype/pr_space.h: Likewise.
* lib/unictype/pr_titlecase.h: Likewise.
* lib/unictype/pr_variation_selector.h: Likewise.
* lib/unictype/pr_white_space.h: Likewise.
* lib/unictype/sy_c_ident.h: Likewise.
* lib/unictype/sy_c_whitespace.h: Likewise.
* lib/unictype/sy_java_whitespace.h: Likewise.
* modules/uni*/*: Bump version number of expected libunistring version.
Reported by Simon Josefsson.
2011-01-09 Karl Heuer <kwzh@gnu.org>
useless-if-before-free: fix typo in --help and make the internal,
automatic version date update process work once again.
--help output contained a NUL character instead of the
backslash-zero that was intended. Also, the "must lie within
the first 8 lines" line is on line 9, and hence not getting
automatically updated.
* build-aux/useless-if-before-free: Fix the former by adding a
backslash, and the latter by condensing the three lines of what-it-does
to a single line, leaving one line of slack for the future.
2011-01-09 Bruno Haible <bruno@clisp.org>
uniwidth/width: Fix width of U+1D173..U+1D17A.
* lib/gen-uni-tables.c (is_nonspacing, output_nonspacing_property,
symbolic_width, output_width_property_test): New functions.
(main): Invoke output_nonspacing_property, output_width_property_test.
* lib/uniwidth/width.c (nonspacing_table_data): Set bits for
U+1D173..U+1D17A.
* tests/uniwidth/test-uc_width2.sh: For U+1D173..U+1D17A, expect 0, not
1.
* modules/uniwidth/*: Bump version number of expected libunistring
version.
* modules/unilbrk/*: Likewise.
2011-01-08 Bruno Haible <bruno@clisp.org>
uninorm tests: Preserve copyright of Unicode data file.
* tests/uninorm/NormalizationTest.txt: Re-add original copyright.
Mention modifications.
2011-01-08 Bruno Haible <bruno@clisp.org>
gen-uni-tables: Prepare for Unicode 5.2.0.
* lib/gen-uni-tables.c (get_lbp): Allow for more than 32 LBP_* values.
(debug_output_lbp, output_lbp): Update.
2011-01-08 Bruno Haible <bruno@clisp.org>
unilbrk: Clarify gen-uni-tables.c code.
* lib/gen-uni-tables.c (get_lbp): Assume REVISION_22 to be false. These
were mistakes in UAX #14 revision 22 that are corrected in revision 24.
Clarify what to do with unilbrk/lbrkprop.txt and uniwbrk/wbrkprop.txt.
2011-01-07 Bruno Haible <bruno@clisp.org>
strtod: Restore errno when successfully parsing Infinity or NaN.
* lib/strtod.c (strtod): After successfully parsing an Infinity or NaN,
restore the original errno.
2011-01-07 Bruno Haible <bruno@clisp.org>
remove test: Avoid failure on HP-UX 11.
* tests/test-remove.c (main): Allow EEXIST as alternative error code.
2011-01-07 Bruno Haible <bruno@clisp.org>
mkdir, mkdirat tests: Avoid failure on HP-UX 11.11.
* tests/test-mkdir.h (test_mkdir): Allow EOPNOTSUPP as alternative
error code.
2011-01-07 Pádraig Brady <P@draigBrady.com>
ignore-value: fixup comments, and add Eric Blake
as an author since he rewrote the macros.
* lib/ignore-value.h (ignore_value): State that
we now support aggregates. Also specify exactly
when the GCC warn_unused_result feature was added.
2011-01-06 Eric Blake <eblake@redhat.com>
ignore-value: support aggregate types
* lib/ignore-value.h (ignore_value): Provide separate gcc
definition.
* modules/ignore-value-tests: New test module.
* tests/test-ignore-value.c: New test.
maint.mk: improve sc_prohibit_strcmp regex
* top/maint.mk (sc_prohibit_strcmp): Detect strcmp()!=0, as
documented. Also, detect strcmp((expr),expr) == 0. Exempt the
definition of STRNEQ.
signal: work around Haiku issue with SIGBUS
* lib/siglist.h: Add comment.
* lib/sig2str.c (numname_table): Swap SIGBUS order, to match
strsignal's favoring of SIGSEGV.
* tests/test-signal.c (main): Avoid test failure.
* doc/posix-headers/signal.texi (signal.h): Document the issue.
Reported by Scott McCreary.
maint.mk: add pre-release check to ensure submodule commits are public
* top/maint.mk (public-submodule-commit): New rule.
(submodule-checks): New variable.
(alpha beta stable): Depend on the variable.
2011-01-05 Pádraig Brady <P@draigBrady.com>
and Jim Meyering <meyering@redhat.com>
ignore-value: make ignore_value more generic; deprecate ignore_ptr
* lib/ignore-value.h: Include <stdint.h>, for decl of intptr_t.
(ATTRIBUTE_DEPRECATED): Define.
(_ignore_case): New function.
(ignore_value): New macro, to replace the old function.
(ignore_ptr): Arrange for any use to evoke a deprecation warning.
* modules/ignore-value (Depends-on): Add stdint.
2011-01-04 Eric Blake <eblake@redhat.com>
doc: regenerate INSTALL
* doc/Makefile (INSTALL, INSTALL.ISO, INSTALL.UTF-8): Re-add
@firstparagraphindent support, now that autoconf dropped it.
(INSTALL_PRELUDE): Reinstate old macro.
* doc/install.texi: Resync from autoconf.
* doc/INSTALL: Reflect recent autoconf update.
* doc/INSTALL.ISO: Likewise.
* doc/INSTALL.UTF-8: Likewise.
Reported by Karl Berry.
2011-01-04 Bruce Korb <address@hidden>
git-version-gen: avoid a sub-shell
* build-aux/git-version-gen: Redirect stderr in `...` via
"exec 2>...", rather than via an added sub-shell.
2011-01-03 Ben Pfaff <blp@cs.stanford.edu>
git-version-gen: use (...) rather than sh -c '...'
* build-aux/git-version-gen: Rather than hard-coding a shell's name
with "sh -c '...'", just use "(...)". Less syntax is better, too.
2011-01-03 Jim Meyering <meyering@redhat.com>
git-version-gen: convert leading TABs to spaces
* build-aux/git-version-gen: Expand leading TABs.
git-version-gen: handle failed "git rev-list"
* build-aux/git-version-gen: Rather than leaking a "fatal" error
from git and proceeding as if it had succeeded but printed no SHA1
checksums, suppress the diagnostic and handle the failure.
Reported by Bruce Korb in http://marc.info/?l=git&m=129399145930450&w=2
git-version-gen: include command name in one more diagnostic
* build-aux/git-version-gen: When the required .tarball-version file
was missing or unreadable, you might see the diagnostic from "cat",
but no trace of the name of the invoking script. Now, you still see
the diagnostic from cat, but also get one from "git-version-gen: ".
Inspired by a patch from Bruce Korb.
update-copyright: adjust test to match changed code
* tests/test-update-copyright.sh: Change test's expected output
to match new actual output.
2011-01-02 Bruno Haible <bruno@clisp.org>
getlogin_r: Avoid test failure on HP-UX 11.
* tests/test-getlogin_r.c (main): Allow an error code EINVAL instead of
ERANGE when the second argument is zero.
* doc/posix-functions/getlogin_r.texi: Document the HP-UX 11
portability problem.
2011-01-02 Bruce Korb <bkorb@gnu.org>
* build-aux/update-copyright: doc Simon's changes
2011-01-02 Simon Josefsson <simon@josefsson.org>
* build-aux/update-copyright: Support UPDATE_COPYRIGHT_HOLDER
environment variable.
2011-01-02 Bruno Haible <bruno@clisp.org>
unigbrk: Avoid gcc warnings.
* lib/unigbrk/u16-grapheme-breaks.c (u16_grapheme_breaks): Remove
unused variable.
* lib/unigbrk/u16-grapheme-prev.c (u16_grapheme_prev): Likewise.
* lib/unigbrk/u8-grapheme-prev.c (u8_grapheme_prev): Likewise.
* tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise.
* tests/unigbrk/test-u8-grapheme-breaks.c (test_u8_grapheme_breaks):
Change type of first argument to 'const char *'.
(main): Remove unused variable.
* tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next): Change
type of first argument to 'const char *'.
* tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev):
Likewise.
(main): Change type of variable 's'.
* tests/unigbrk/test-uc-is-grapheme-break.c (main): Cast column number
to 'int'.
2011-01-02 Bruno Haible <bruno@clisp.org>
pwrite: Fix test whether it works and make it work on HP-UX 11.11.
* m4/pwrite.m4 (gl_FUNC_PWRITE): Use AC_LANG_PROGRAM, not
AC_LANG_SOURCE. Extend the test program to catch another HP-UX 11.11
bug.
* lib/pwrite.c: Undo 2010-12-31 patch.
* doc/posix-functions/pwrite.texi: Document another HP-UX 11.11 bug.
2011-01-02 Bruno Haible <bruno@clisp.org>
pread: Fix test whether it works.
* m4/pread.m4 (gl_FUNC_PREAD): Use AC_LANG_PROGRAM, not AC_LANG_SOURCE.
2011-01-02 Bruno Haible <bruno@clisp.org>
Fix detection of traditional Arabic locale on HP-UX, Solaris, Cygwin.
* m4/locale-ar.m4 (gt_LOCALE_AR): Require that the locale encoding name
ends in "6". Don't require a specific month name. Try also the locale
names found on HP-UX 11 and Solaris 7.
2011-01-02 Bruno Haible <bruno@clisp.org>
tcgetsid: Correct linkage in C++ mode on HP-UX 11.00.
* lib/termios.in.h: In C++ mode, on HP-UX, include <sys/termios.h> with
C linkage.
* doc/posix-functions/tcgetsid.texi: Mention the HP-UX 11.00 bug.
2011-01-01 Ben Pfaff <blp@cs.stanford.edu>
Rename uc_is_grapheme_cluster_break() to uc_is_grapheme_break()
for consistency, since the "cluster" term is not used elsewhere.
* lib/unigbrk.in.h: Update name.
* lib/unigbrk/u16-grapheme-breaks.c: Update name.
* lib/unigbrk/u16-grapheme-next.c: Update name.
* lib/unigbrk/u16-grapheme-prev.c: Update name.
* lib/unigbrk/u32-grapheme-breaks.c: Update name.
* lib/unigbrk/u32-grapheme-next.c: Update name.
* lib/unigbrk/u32-grapheme-prev.c: Update name.
* lib/unigbrk/u8-grapheme-breaks.c: Update name.
* lib/unigbrk/u8-grapheme-next.c: Update name.
* lib/unigbrk/u8-grapheme-prev.c: Update name.
* lib/unigbrk/uc-is-grapheme-break.c: Update name.
* tests/unigbrk/test-uc-is-grapheme-break.c: Update name.
Suggested by Bruno Haible.
2011-01-01 Ben Pfaff <blp@cs.stanford.edu>
Remove module 'u8-grapheme-len' as too redundant with
'u8-grapheme-next'.
* modules/unigbrk/u8-grapheme-len: Delete file.
* modules/unigbrk/u8-grapheme-len-tests: Delete file.
* lib/unigbrk.in.h: Remove prototype for deleted function.
* lib/unigbrk/u8-grapheme-len.c: Delete file.
* tests/unigbrk/test-u8-grapheme-len.c: Delete file.
Remove module 'u16-grapheme-len' as too redundant with
'u16-grapheme-next'.
* modules/unigbrk/u16-grapheme-len: Delete file.
* modules/unigbrk/u16-grapheme-len-tests: Delete file.
* lib/unigbrk.in.h: Remove prototype for deleted function.
* lib/unigbrk/u16-grapheme-len.c: Delete file.
* tests/unigbrk/test-u16-grapheme-len.c: Delete file.
Remove module 'u32-grapheme-len' as too redundant with
'u32-grapheme-next'.
* modules/unigbrk/u32-grapheme-len: Delete file.
* modules/unigbrk/u32-grapheme-len-tests: Delete file.
* lib/unigbrk.in.h: Remove prototype for deleted function.
* lib/unigbrk/u32-grapheme-len.c: Delete file.
* tests/unigbrk/test-u32-grapheme-len.c: Delete file.
Suggested by Bruno Haible.
2011-01-01 Ben Pfaff <blp@cs.stanford.edu>
* unigbrk.in.h: Fix typo: "ben" => "been".
Reported by Bruno Haible.
2011-01-01 Jim Meyering <meyering@redhat.com>
maint: update almost all copyright ranges to include 2011
Run the new "make update-copyright" rule.
2011-01-01 Jim Meyering <meyering@redhat.com>
maint: update-copyright: exempt doc/INSTALL*
* Makefile (update-copyright): Also exclude doc/INSTALL*,
since they are generated. Suggested by Bruno Haible.
2011-01-01 Jim Meyering <meyering@redhat.com>
maint: refine the update-copyright rule
* Makefile (update-copyright): Also exclude any file that includes
the "GENERATED AUTOMATICALLY" comment, being careful not to exclude
code that merely generates the comment.
2010-12-31 Ben Pfaff <blp@cs.stanford.edu>
New module 'u8-grapheme-len'.
* modules/unigbrk/u8-grapheme-len: New file.
* modules/unigbrk/u8-grapheme-len-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u8-grapheme-len.c: New file.
* tests/unigbrk/test-u8-grapheme-len.c: New file.
New module 'u16-grapheme-len'.
* modules/unigbrk/u16-grapheme-len: New file.
* modules/unigbrk/u16-grapheme-len-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u16-grapheme-len.c: New file.
* tests/unigbrk/test-u16-grapheme-len.c: New file.
New module 'u32-grapheme-len'.
* modules/unigbrk/u32-grapheme-len: New file.
* modules/unigbrk/u32-grapheme-len-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u32-grapheme-len.c: New file.
* tests/unigbrk/test-u32-grapheme-len.c: New file.
New module 'u8-grapheme-next'.
* modules/unigbrk/u8-grapheme-next: New file.
* modules/unigbrk/u8-grapheme-next-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u8-grapheme-next.c: New file.
* tests/unigbrk/test-u8-grapheme-next.c: New file.
New module 'u16-grapheme-next'.
* modules/unigbrk/u16-grapheme-next: New file.
* modules/unigbrk/u16-grapheme-next-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u16-grapheme-next.c: New file.
* tests/unigbrk/test-u16-grapheme-next.c: New file.
New module 'u32-grapheme-next'.
* modules/unigbrk/u32-grapheme-next: New file.
* modules/unigbrk/u32-grapheme-next-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u32-grapheme-next.c: New file.
* tests/unigbrk/test-u32-grapheme-next.c: New file.
New module 'u8-grapheme-prev'.
* modules/unigbrk/u8-grapheme-prev: New file.
* modules/unigbrk/u8-grapheme-prev-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u8-grapheme-prev.c: New file.
* tests/unigbrk/test-u8-grapheme-prev.c: New file.
New module 'u16-grapheme-prev'.
* modules/unigbrk/u16-grapheme-prev: New file.
* modules/unigbrk/u16-grapheme-prev-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u16-grapheme-prev.c: New file.
* tests/unigbrk/test-u16-grapheme-prev.c: New file.
New module 'u32-grapheme-prev'.
* modules/unigbrk/u32-grapheme-prev: New file.
* modules/unigbrk/u32-grapheme-prev-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u32-grapheme-prev.c: New file.
* tests/unigbrk/test-u32-grapheme-prev.c: New file.
New module 'u8-grapheme-breaks'.
* modules/unigbrk/u8-grapheme-breaks: New file.
* modules/unigbrk/u8-grapheme-breaks-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u8-grapheme-breaks.c: New file.
* tests/unigbrk/test-u8-grapheme-breaks.c: New file.
New module 'u16-grapheme-breaks'.
* modules/unigbrk/u16-grapheme-breaks: New file.
* modules/unigbrk/u16-grapheme-breaks-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u16-grapheme-breaks.c: New file.
* tests/unigbrk/test-u16-grapheme-breaks.c: New file.
New module 'u32-grapheme-breaks'.
* modules/unigbrk/u32-grapheme-breaks: New file.
* modules/unigbrk/u32-grapheme-breaks-tests: New file.
* lib/unigbrk.in.h: Add prototype for new function.
* lib/unigbrk/u32-grapheme-breaks.c: New file.
* tests/unigbrk/test-u32-grapheme-breaks.c: New file.
New module 'ulc-grapheme-breaks'.
* modules/unigbrk/ulc-grapheme-breaks: New file.
* modules/unigbrk/ulc-grapheme-breaks-tests: New file.
* m4/locale-ar.m4: New file.
* lib/unigbrk/ulc-grapheme-breaks.c: New file.
* tests/unigbrk/test-ulc-grapheme-breaks.c: New file.
* tests/unigbrk/test-ulc-grapheme-breaks.sh: New file.
2010-12-31 Ben Pfaff <blp@cs.stanford.edu>
gbrkprop: Fix implementation of uc_graphemeclusterbreak_property.
* lib/unigbrk/gbrkprop.h: Regenerate with gen-uni-tables.c. I had
modified how this file was generated before I initially submitted
the module, but failed to regenerate it. This meant that several
of the level2 entries were wrong.
* lib/unigbrk/uc-gbrk-prop.h (uc_graphemeclusterbreak_property):
Remove the division-by-2 that is folded into the table now that
gbrkprop.h has been regenerated properly. Now -1 entries are
handled correctly.
New module 'unigbrk/uc-gbrk-prop-tests'.
* modules/unigbrk/uc-gbrk-prop-tests: New file.
* lib/gen-uni-tables.c: Generate tests/test-uc-gbrk-prop.h.
* tests/unigbrk/test-uc-gbrk-prop.c: New file.
* tests/unigbrk/test-uc-gbrk-prop.h: New file.
2011-01-01 Bruno Haible <bruno@clisp.org>
Avoid use of hexadecimal escapes.
* tests/unigbrk/test-uc-is-grapheme-break.c (main): Use octal escapes
instead of hexadecimal escapes.
2011-01-01 Jim Meyering <meyering@redhat.com>
maint: new rule to update copyright year ranges
* Makefile (update-copyright): New rule.
maint: indent with TABs in Makefile
* Makefile: Expand leading sequences of spaces to TABs
version-etc: update the copyright year it reports
* lib/version-etc.c (COPYRIGHT_YEAR): Update to 2011.
2010-12-31 Bruno Haible <bruno@clisp.org>
isfinite: Avoid compiler bug of "cc -O" on HP-UX 11.11.
* lib/isfinite.c (zerof, zerod, zerol): New variables.
(gl_isfinitef, gl_isfinited, gl_isfinitel): Use them instead of literal
zero.
2010-12-31 Bruno Haible <bruno@clisp.org>
pwrite: Work around HP-UX 11.11 bug.
* m4/pwrite.m4 (gl_FUNC_PWRITE): When pwrite exists, test whether it
works and set REPLACE_PWRITE if not.
* lib/pwrite.c (pwrite): Add an implementation that uses the system
function.
* doc/posix-functions/pwrite.texi: Document the HP-UX 11 bug.
2010-12-31 Bruno Haible <bruno@clisp.org>
pread: Work around HP-UX 11 bugs.
* m4/pread.m4 (gl_FUNC_PREAD): When pread exists, test whether it works
and set REPLACE_PREAD if not.
* doc/posix-functions/pread.texi: Document the HP-UX 11 bugs.
2010-12-31 Eric Blake <eblake@redhat.com>
nl_langinfo: fix YESEXPR on Irix 6.5
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Test for Irix bug.
* lib/nl_langinfo.c (rpl_nl_langinfo): Work around it.
* doc/posix-functions/nl_langinfo.texi (nl_langinfo): Document
it.
2010-12-31 Bruno Haible <bruno@clisp.org>
iconv: Document HP-UX 11 bug.
* doc/posix-functions/iconv.texi: Document HP-UX 11 return value bug.
2010-12-31 Bruno Haible <bruno@clisp.org>
ldexpl: Fix link error on HP-UX 11.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): When replacing ldexpl, set
LDEXPL_LIBM, using $ISNANL_LIBM.
2010-12-31 Eric Blake <eblake@redhat.com>
ftello: avoid compilation failure with SunStudio c89
* lib/ftello.c (ftello): Use lseek, not llseek.
tests: avoid failing coreutils tests on cygwin
* tests/init.sh (find_exe_basenames_): Exempt [.exe.
(create_exe_shims_): Return 0 when skipping.
2010-12-31 Bruno Haible <bruno@clisp.org>
sys_select: Avoid warning about missing memset declaration on HP-UX 11.
* lib/sys_select.in.h: On HP-UX, include also <string.h>.
2010-12-31 Bruno Haible <bruno@clisp.org>
waitpid: Fix link error in C++ mode.
* lib/sys_wait.in.h: Remove extern "C" { ... } group.
2010-12-31 Bruno Haible <bruno@clisp.org>
isnan: Use GCC built-ins when possible.
* lib/math.in.h (gl_isnan_f): Use __builtin_isnanf instead of
__builtin_isnan.
(gl_isnan_l): Use __builtin_isnanl instead of __builtin_isnan.
(isnan): Define using GCC built-ins for GCC >= 4.0.
2010-12-31 Bruno Haible <bruno@clisp.org>
isnand: Fix mistake.
* m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM): Use __builtin_isnan, not
__builtin_isnand.
2010-12-31 Bruno Haible <bruno@clisp.org>
open: Avoid C++ error on HP-UX 11.
* lib/fcntl.in.h (open): Disable _GL_CXXALIASWARN invocation on HP-UX.
2010-12-31 Bruno Haible <bruno@clisp.org>
time_r: Add missing declarations on HP-UX 11.
* lib/time.in.h (localtime_r, gmtime_r): Test HAVE_DECL_LOCALTIME_R
instead of HAVE_LOCALTIME_R.
* m4/time_r.m4 (gl_TIME_R): Test whether localtime_r is declared. Set
HAVE_LOCALTIME_R always.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize
HAVE_DECL_LOCALTIME_R, not HAVE_LOCALTIME_R.
* modules/time (Makefile.am): Substitute HAVE_DECL_LOCALTIME_R, not
HAVE_LOCALTIME_R.
* doc/posix-functions/gmtime_r.texi: Document the HP-UX 11 problem.
* doc/posix-functions/localtime_r.texi: Likewise.
2010-12-29 Eric Blake <eblake@redhat.com>
mountlist: tweak previous commit
* lib/mountlist.c (me_remote): Guarantee trailing backslash.
Reported by Paul Eggert.
mountlist: fix local drive detection on cygwin
* lib/mountlist.c (ME_REMOTE) [__CYGWIN__]: Provide implementation
that works for cygwin.
2010-12-29 Paul Eggert <eggert@cs.ucla.edu>
ftoastr, snprintf: ftoastr + snprintf module
* lib/ftoastr.c: Use GNULIB_SNPRINTF, not GNULIB_SNPRINTF_POSIX,
since the snprintf module now should be good enough here.
* modules/snprintf (configure.ac): Add gl_MODULE_INDICATOR([snprintf]).
It seems odd to have both gl_STDIO_MODULE_INDICATOR([snprintf])
and gl_MODULE_INDICATOR([snprintf]), but the former enables
GNULIB_SNPRINTF only for the test directory, and the latter
doesn't arrange for gl_STDIO_H_DEFAULTS to be called, so neither
seems to suffice by itself.
2010-12-28 Paul Eggert <eggert@cs.ucla.edu>
alloca: one step towards thread-safety
* lib/alloca.c (find_stack_direction): New arg PTR, to avoid the
need for a static variable. All callers changed. This does not
make the alloca replacement thread-safe, but it's one step.
tests: minor indenting change
* tests/init.sh: Sync from coreutils housekeeping patch
<http://lists.gnu.org/r/coreutils/2010-12/msg00116.html>
to keep lines within 80 columns.
2010-12-28 Jim Meyering <meyering@redhat.com>
regex: don't infloop on persistent failing calloc
* lib/regexec.c (build_trtable): Return failure indication upon
calloc failure. Otherwise, re_search_internal could infloop on OOM.
In glibc, this was fixed for version 2.13:
http://sourceware.org/bugzilla/show_bug.cgi?id=12348
2010-12-28 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
linkat: Make implementation robust against system behaviour variations.
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Define
LINK_FOLLOWS_SYMLINKS to -1 if it needs a runtime test in the Solaris
way, and to -2 if it needs a generic runtime test.
* lib/linkat.c (solaris_optimized_link_immediate,
solaris_optimized_link_follow): New functions.
* tests/test-linkat.c (EXPECT_LINK_HARDLINKS_SYMLINKS): New macro.
(check_same_link): Use it.
2010-12-26 Ben Pfaff <blp@cs.stanford.edu>
New module 'unigbrk/base'.
* modules/unigbrk/base: New file.
* lib/unigbrk.in.h: New file.
New module 'unigbrk/uc-gbrk-prop'.
* lib/gen-uni-tables.c: Generate lib/unigbrk/gbrkprop.h.
* modules/unigbrk/uc-gbrk-prop: New file.
* lib/unigbrk/gbrkprop.h: New file.
* lib/unigbrk/uc-gbrk-prop.c: New file.
New module 'unigbrk/uc-is-grapheme-break'.
* modules/unigbrk/uc-is-grapheme-break: New file.
* modules/unigbrk/uc-is-grapheme-break-tests: New file.
* lib/unigbrk/uc-is-grapheme-break.c: New file.
* tests/unigbrk/test-uc-is-grapheme-break.c: New file.
* tests/unigbrk/test-uc-is-grapheme-break.sh: New file.
* tests/unigbrk/GraphemeBreakTest.txt: New file.
With corrections and tweaks by Bruno Haible <bruno@clisp.org>.
2010-12-27 Bruno Haible <bruno@clisp.org>
linkat test: Avoid failure on Solaris 11 2010-11.
* tests/test-linkat.c (main): Allow ENOTDIR as alternative error code.
2010-12-27 Paul Eggert <eggert@cs.ucla.edu>
utimens: work around glibc rounding bug on more platforms
* lib/utimens.c (fdutimens): Work around rounding bug even if
HAVE_WORKING_UTIMES. Reported for Linux 2.4.21 by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2010-12/msg00298.html>.
2010-12-27 Bruno Haible <bruno@clisp.org>
select tests: Improve comments.
* tests/test-select.c (do_select): Add comments.
2010-12-27 Bruno Haible <bruno@clisp.org>
select tests: Safer way of handling timeout.
* tests/test-select.c (do_select_nowait): Zero-initialize the timeout
at every invocation.
2010-12-27 Bruno Haible <bruno@clisp.org>
select tests: Use 'bool' where appropriate.
* tests/test-select.c (connect_to_socket): Change argument type to
'bool'.
2010-12-27 Bruno Haible <bruno@clisp.org>
select tests: Use existing modules.
* modules/select-tests (Depends-on): Add pipe-posix, unistd.
(configure.ac): Don't test for unistd.h.
* tests/test-select.c: Include <unistd.h> always. Use pipe() as
declared in <unistd.h>.
2010-12-27 Bruno Haible <bruno@clisp.org>
mbrtowc: Work around a Solaris 7 bug.
* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1): New macro.
(gl_MBRTOWC_NULL_ARG2): Renamed from gl_MBRTOWC_NULL_ARG.
(gl_FUNC_MBRTOWC): Update. Define MBRTOWC_NULL_ARG2_BUG instead of
MBRTOWC_NULL_ARG_BUG. Invoke gl_MBRTOWC_NULL_ARG1 and define
MBRTOWC_NULL_ARG1_BUG.
* lib/mbrtowc.c (rpl_mbrtowc): Use MBRTOWC_NULL_ARG2_BUG instead of
MBRTOWC_NULL_ARG_BUG. Handle MBRTOWC_NULL_ARG1_BUG.
* tests/test-mbrtowc.c (main): Test support of a NULL first argument.
* doc/posix-functions/mbrtowc.texi: Mention the Solaris 7 bug.
2010-12-27 Jim Meyering <meyering@redhat.com>
read-file.c: tweak syntax
* lib/read-file.c (fread_file): Remove space after "*" in function
definitions.
2010-12-27 Bruno Haible <bruno@clisp.org>
times test: Avoid gcc warnings on OSF/1.
* tests/test-times.c (main): Cast printf arguments from clock_t to
'long int'.
2010-12-27 Paul Eggert <eggert@cs.ucla.edu>
utimens: work around glibc rounding bug on older Linux kernels
* lib/utimens.c (fdutimens): If invoking futimesat or futimes
on Linux with a glibc whose utimes might not work, then work
around a longstanding glibc bug involving rounding rather than
truncated time stamps. Reported for Linux 2.4.21 by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00113.html>.
2010-12-26 Bruno Haible <bruno@clisp.org>
inet_ntop: Hide mismatch of declaration on NonStop Kernel.
* lib/arpa_inet.in.h (inet_ntop): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-26 Bruno Haible <bruno@clisp.org>
inet_ntop, inet_pton: Ensure declaration on NonStop Kernel.
* lib/arpa_inet.in.h: On NonStop Kernel, include also <netdb.h>.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Likewise.
* m4/inet_ntop.m4 (gl_PREREQ_INET_NTOP): Include also <netdb.h> when
looking for the declaration.
* m4/inet_pton.m4 (gl_PREREQ_INET_PTON): Likewise.
* doc/posix-functions/inet_ntop.texi: Document the NonStop Kernel
problem.
* doc/posix-functions/inet_pton.texi: Likewise.
2010-12-26 Bruno Haible <bruno@clisp.org>
arpa_inet: Use the common idioms with C++ support.
* lib/arpa_inet.in.h: Include c++defs.h.
(inet_ntop, inet_pton): Declare using the macros with C++ namespace
support.
* modules/arpa_inet (Depends-on): Add c++defs.
(Makefile.am): Substitute the contents of c++defs.h.
* modules/arpa_inet-tests (Depends-on): Add arpa_inet-c++-tests.
* modules/arpa_inet-c++-tests: New file.
* tests/test-arpa_inet-c++.cc: New file.
2010-12-25 Bruno Haible <bruno@clisp.org>
Fix more C++ link errors on Solaris 8.
* modules/fcntl-h-c++-tests (test_fcntl_h_c___LDADD): Add
$(LIB_EACCESS).
* modules/stdio-c++-tests (test_stdio_c___LDADD): Likewise.
* modules/stdlib-c++-tests (test_stdlib_c___LDADD): Likewise.
* modules/sys_ioctl-c++-tests (test_sys_ioctl_c___LDADD): Likewise.
* modules/wchar-c++-tests (test_wchar_c___LDADD): Likewise.
* modules/wctype-c++-tests (test_wctype_c___LDADD): Likewise.
2010-12-25 Bruno Haible <bruno@clisp.org>
printf-posix: Fix link error when a non-GCC compiler is used.
* lib/stdio.in.h (printf): When not using GCC, override printf
correctly.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-25 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Update doc.
* doc/posix-functions/strerror_r.texi: Update doc about the return
value. See <http://sources.redhat.com/bugzilla/show_bug.cgi?id=12204>.
2010-12-25 Paul Eggert <eggert@cs.ucla.edu>
utimens: simplify the logic of the previous change
* m4/utimes.m4 (gl_FUNC_UTIMES): Simplify the logic a bit.
This should not affect whether the test succeeds or fails.
utimens: configure better on hosts with NFS clock skew
* m4/utimes.m4 (gl_FUNC_UTIMES): Don't assume that utimes (f, NULL)
uses the clock of the local host. It might use the clock of the
NFS server. Reported for Linux 2.4.21 client by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00113.html>.
2010-12-25 Bruno Haible <bruno@clisp.org>
ptsname test: Avoid failure on Solaris.
* tests/test-ptsname.c (main): For Solaris, use the recommended way to
open a pseudo-terminal; don't use BSD-style ptys.
* doc/posix-functions/ptsname.texi: Document the limitation on Solaris.
2010-12-25 Bruno Haible <bruno@clisp.org>
ptsname: Avoid ERANGE failure on some systems.
* lib/ptsname.c (buffer): Increase size.
2010-12-25 Bruno Haible <bruno@clisp.org>
rename, renameat: Avoid test failures at NFS mounted locations.
* tests/test-rename.h (assert_nonexistent): Remove the old directory,
so that subsequent mkdir calls succeed.
2010-12-25 Bruno Haible <bruno@clisp.org>
iswblank: Fix C++ link error on Solaris 8.
* lib/wctype.in.h (iswblank): Declare using _GL_FUNCDECL_RPL or
_GL_FUNCDECL_SYS.
2010-12-25 Bruno Haible <bruno@clisp.org>
unistd: Fix C++ link error on Solaris 8.
* modules/unistd-c++-tests (test_unistd_c___LDADD): Add $(LIB_EACCESS).
2010-12-25 Bruno Haible <bruno@clisp.org>
readlink doc: Mention an old glibc bug.
* doc/posix-functions/readlink.texi: Mention glibc 2.4 bug (BZ #2450).
2010-12-25 Bruno Haible <bruno@clisp.org>
fcntl-h: Fix for use of C++ on glibc systems.
* lib/fcntl.in.h: Include <sys/stat.h> before include_next <fcntl.h>
also on glibc systems in C++ mode.
Reported by Gary V. Vaughan <gary@gnu.org>.
2010-12-25 Bruno Haible <bruno@clisp.org>
roundl-ieee: Make it work on OSF/1 5.1 with cc.
* modules/roundl-ieee (Depends-on): Add floorl-ieee, ceill-ieee.
2010-12-25 Bruno Haible <bruno@clisp.org>
truncl-ieee: Make it work on OSF/1 5.1 with cc.
* doc/posix-functions/truncl.texi: Mention the OSF/1 5.1 bug.
* m4/truncl.m4 (gl_FUNC_TRUNCL): If gl_FUNC_TRUNCL_IEEE is also used,
test whether truncl works according to ISO C 99 with IEC 60559.
* m4/truncl-ieee.m4: New file.
* modules/truncl-ieee (Files): Add it and m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_TRUNCL_IEEE.
2010-12-25 Bruno Haible <bruno@clisp.org>
ceill-ieee: Make it work on OSF/1 5.1 with cc.
* doc/posix-functions/ceill.texi: Mention the OSF/1 5.1 bug.
* m4/ceill.m4 (gl_FUNC_CEILL): If gl_FUNC_CEILL_IEEE is also used,
test whether ceill works according to ISO C 99 with IEC 60559.
* m4/ceill-ieee.m4: New file.
* modules/ceill-ieee (Files): Add it and m4/minus-zero.m4,
m4/signbit.m4.
(configure.ac): Invoke gl_FUNC_CEILL_IEEE.
2010-12-25 Bruno Haible <bruno@clisp.org>
Ensure all prerequisites of <wchar.h> are included.
* m4/btowc.m4 (gl_FUNC_BTOWC): Include <stddef.h>, <stdio.h>, <time.h>
before <wchar.h>.
* m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL,
gl_MBRLEN_NUL_RETVAL): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK,
gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL,
AC_FUNC_MBRTOWC): Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL):
Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Likewise.
(gl_WCHAR_H): Improve comments.
* m4/wctype_h.m4 (gl_WCTYPE_H): Likewise.
2010-12-25 Bruno Haible <bruno@clisp.org>
strtok_r: Fix C syntax error in autoconf macro.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Don't use UTF-8 encoded U+00A0
characters in test program.
2010-12-24 Bruno Haible <bruno@clisp.org>
ceil, trunc, round: Fix gcc warnings.
* lib/ceil.c (MIN): Undefine before redefining.
* lib/trunc.c (MIN): Likewise.
* lib/round.c (MIN): Likewise.
Include <math.h> first.
2010-12-24 Bruno Haible <bruno@clisp.org>
select tests: Avoid failures on OSF/1 5.1.
* tests/test-select.c (test_accept_first, test_socket_pair): Ignore
failure of closing the last socket; it may fail with ECONNRESET.
2010-12-24 Eric Blake <eblake@redhat.com>
stdint: avoid HP-UX 10.20 preprocessor bug
* lib/stdint.in.h (INT64_MAX, UINT64_MAX): Check via #ifdef rather
than #if.
* tests/test-floor2.c (main): Likewise.
Reported by Peter O'Gorman.
pipe: make obsoletion transition easier
* lib/pipe.h: Restore file as thin shim around "spawn-pipe.h".
* modules/pipe (Files): Include revived file.
(Include): Drop reference, to mirror getdate's behavior.
2010-12-24 Bruno Haible <bruno@clisp.org>
sys_socket: Hide mismatch of declarations on NonStop Kernel.
* lib/sys_socket.in.h (connect, bind, sendto, setsockopt): Use
_GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
gethostname: Ensure declaration on NonStop Kernel.
* lib/unistd.in.h: Include <netdb.h> also on NonStop Kernel systems.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
sys_select: Ensure all necessary types on NonStop Kernel.
* lib/sys_select.in.h: If the system does not have <sys/select.h>,
include <sys/time.h>.
* doc/posix-headers/sys_select.texi: Mention that it's missing on
NonStop Kernel.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
sys_select: Remove unneeded include.
* lib/sys_select.in.h: Don't include <sys/socket.h> on platforms that
have <sys/select.h>.
2010-12-24 Bruno Haible <bruno@clisp.org>
gethostname: Provide a fallback for HOST_NAME_MAX.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): When neither HOST_NAME_MAX
nor MAXHOSTNAMELEN is found in the usual system headers, use 256
instead.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
sigaction tests: Allow missing SA_RESETHAND and SA_RESTART.
* tests/test-sigaction.c (SA_RESETHAND): Fall back to 0.
(SA_RESTART): Likewise.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
signal: Define NSIG.
* lib/signal.in.h (NSIG): Define to 32 on NonStop Kernel.
* tests/test-signal.c (nsig): New variable.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-24 Bruno Haible <bruno@clisp.org>
rename, renameat: Avoid test failures on OSF/1 5.1.
* tests/test-rename.h (test_rename): Allow EEXIST and ENOTDIR as
alternative error codes.
* tests/test-renameat.c (main): Likewise.
2010-12-24 Bruno Haible <bruno@clisp.org>
*printf: Detect large precisions bug on Solaris 10/SPARC.
* m4/printf.m4 (gl_PRINTF_PRECISION): Add one more test code, provided
by Paul Eggert.
* tests/test-snprintf-posix.h (test_function): Add this test code here
too.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/posix-functions/fprintf.texi: Mention Solaris 10 bug as worked
around by gnulib.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/posix-functions/dprintf.texi: Undo last commit.
* doc/posix-functions/vdprintf.texi: Likewise.
2010-12-23 Paul Eggert <eggert@cs.ucla.edu>
tests: port test-fdutimensat.c to Solaris 8
* tests/test-fdutimensat.c (do_fdutimens): Don't assume
fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW.
On Solaris 8, it fails with errno == ENOSYS, because there is no
futimens (so it can't use the fd), and there is no lutimens (so it
can't implement AT_SYMLINK_NOFOLLOW on symlinks).
vsnprintf: make more consistent with snprintf; doc fixes
* doc/posix-functions/snprintf.texi (snprintf): The workaround for
the byte count return problem was promoted from the snprintf-posix
to the snprintf module.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Also check
gl_SNPRINTF_RETVAL_C99, for consistency with gl_FUNC_SNPRINTF.
* tests/test-snprintf.c (main): Check the byte count returned.
* tests/test-vsnprintf.c (main): Likewise.
2010-12-23 Eric Blake <eblake@redhat.com>
sigpipe: relax to LGPLv2+, since it did not have any LGPLv3+ parts
* modules/sigpipe (License): Relax license.
2010-12-22 Paul Eggert <eggert@cs.ucla.edu>
doc: document Solaris printf bug with large float precisions
* doc/posix-functions/dprintf.texi (dprintf):
* doc/posix-functions/fprintf.texi (fprintf):
* 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):
Mention that these functions mishandle large floating point
precisions on Solaris 10. The same bug is also present in Solaris
8, and I assume earlier. This causes "cd gnulib-tests; make
check" to fail on Solaris 8 (and I assume, later) when building
the latest coreutils, in test-vasprintf-posix's call to
my_asprintf (&result, "%.4000f %d", 1.0, 99). I have not checked
the wide flavors (e.g., wprintf) so this patch just updates the
documentation for the narrow ones.
test-posixtm.c: add two tests
* tests/test-posixtm.c: Add two tests, to highlight the
bug in Solaris 10 (and earlier) localtime. Gnulib doesn't work
around this bug; this is merely to document it.
2010-12-22 Bruno Haible <bruno@clisp.org>
getlogin_r: Work around portability problem on OSF/1.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Detect the OSF/1 problem.
* lib/unistd.in.h (getlogin_r): Replace if REPLACE_GETLOGIN_R is set.
* lib/getlogin_r.c (getlogin_r): When getlogin_r exists, invoke it and
test for a truncated result.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETLOGIN_R.
* modules/unistd (Makefile.am): Substitute REPLACE_GETLOGIN_R.
* modules/getlogin_r (Depends-on): Add memchr.
* doc/posix-functions/getlogin_r.texi: Mention the OSF/1 problem.
2010-12-22 Bruno Haible <bruno@clisp.org>
ptsname: Avoid test failure on OSF/1 5.1.
* modules/ptsname-tests (Depends-on): Add 'same-inode'.
* tests/test-ptsname.c: Include <sys/stat.h>, same-inode.h.
(same_slave): New function.
(main): Use it to compare ptsname's result with the expected file name.
2010-12-22 Bruno Haible <bruno@clisp.org>
Port extended stdio modules to HP NonStop Kernel.
* lib/stdio-impl.h (_IOERR, _IOREAD, _IOWRT, _IORW) [__TANDEM]: New
macros.
* lib/fbufmode.c: Update comments.
* 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.
* lib/fwriting.c: Likewise.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
2010-12-22 Bruno Haible <bruno@clisp.org>
ttyname_r: Work around bug on OSF/1 5.1.
* doc/posix-functions/ttyname_r.texi: Mention the OSF/1 bug.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Detect the OSF/1 bug. Say "no"
instead of "guessing no" when the OSF/1 bug or the Solaris bug is
present.
* lib/ttyname_r.c (ttyname_r): Update comments.
2010-12-22 Bruno Haible <bruno@clisp.org>
round: Implement result sign according to IEEE 754.
* lib/round.c (MIN, MINUS_ZERO): New macros.
(FLOOR_FREE_ROUND): Return -0.0 for -0.5 < x < 0.
* tests/test-roundf-ieee.c (main): Test also values between -1 and 1.
* tests/test-round-ieee.c (main): Likewise.
* tests/test-roundl-ieee.c (main): Likewise.
trunc: Implement result sign according to IEEE 754.
* lib/trunc.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return +0.0 for 0 < x < 1 and -0.0 for -1 < x < 0.
* tests/test-trunc2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(trunc_reference): Keep in sync with lib/trunc.c.
* tests/test-truncf2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(truncf_reference): Keep in sync with lib/trunc.c.
* tests/test-truncf-ieee.c (main): Test also values between -1 and 1.
* tests/test-trunc-ieee.c (main): Likewise.
* tests/test-truncl-ieee.c (main): Likewise.
ceil: Implement result sign according to IEEE 754.
* lib/ceil.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return -0.0 for -1 < x < 0.
* tests/test-ceil2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceil_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceilf_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf-ieee.c (main): Test also values between -1 and 1.
* tests/test-ceil-ieee.c (main): Likewise.
* tests/test-ceill-ieee.c (main): Likewise.
floor: Implement result sign according to IEEE 754.
* lib/floor.c (FUNC): Return +0.0 for 0 < x < 1.
* tests/test-floor2.c (floor_reference): Keep in sync with lib/floor.c.
* tests/test-floorf2.c (floorf_reference): Likewise.
* tests/test-floorf-ieee.c (main): Test also values between -1 and 1.
* tests/test-floor-ieee.c (main): Likewise.
* tests/test-floorl-ieee.c (main): Likewise.
2010-12-22 Bruno Haible <bruno@clisp.org>
getaddrinfo: Update doc.
* doc/posix-functions/gai_strerror.texi: Return type is also different
on AIX and HP-UX.
2010-12-22 Paul Eggert <eggert@cs.ucla.edu>
getaddrinfo, inet_ntop: Update doc for Solaris.
* doc/posix-functions/gai_strerror.texi: Return type is also an
issue on Solaris 9 and earlier.
* doc/posix-functions/inet_ntop.texi: 4th arg type is also an issue
on Solaris 10 and earlier.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'roundl-ieee'.
* modules/roundl-ieee: New file.
* m4/roundl.m4 (gl_FUNC_ROUNDL): If gl_FUNC_ROUNDL_IEEE is also used,
test whether roundl works according to ISO C 99 with IEC 60559.
* m4/roundl-ieee.m4: New file.
* modules/roundl-ieee-tests: New file.
* tests/test-roundl-ieee.c: New file, based on tests/test-roundl.c.
* tests/test-roundl.c (main): Remove signbit tests.
* modules/roundl-tests (Depends-on): Remove signbit.
* doc/posix-functions/roundl.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'truncl-ieee'.
* modules/truncl-ieee: New file.
* modules/truncl-ieee-tests: New file.
* tests/test-truncl-ieee.c: New file, based on tests/test-truncl.c.
* tests/test-truncl.c (main): Remove signbit tests.
* modules/truncl-tests (Depends-on): Remove signbit.
* doc/posix-functions/truncl.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'ceill-ieee'.
* modules/ceill-ieee: New file.
* modules/ceill-ieee-tests: New file.
* tests/test-ceill-ieee.c: New file, based on tests/test-ceill.c.
* tests/test-ceill.c (main): Remove signbit tests.
* modules/ceill-tests (Depends-on): Remove signbit.
* doc/posix-functions/ceill.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'floorl-ieee'.
* modules/floorl-ieee: New file.
* modules/floorl-ieee-tests: New file.
* tests/test-floorl-ieee.c: New file, based on tests/test-floorl.c.
* tests/test-floorl.c (main): Remove signbit tests.
* modules/floorl-tests (Depends-on): Remove signbit.
* doc/posix-functions/floorl.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'round-ieee'.
* modules/round-ieee: New file.
* m4/round.m4 (gl_FUNC_ROUND): If gl_FUNC_ROUND_IEEE is also used, test
whether round works according to ISO C 99 with IEC 60559.
* m4/round-ieee.m4: New file.
* modules/round-ieee-tests: New file.
* tests/test-round-ieee.c: New file, based on tests/test-roundf-ieee.c.
* tests/test-round1.c (main): Remove signbit tests.
* modules/round-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/round.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'trunc-ieee'.
* modules/trunc-ieee: New file.
* m4/trunc.m4 (gl_FUNC_TRUNC): If gl_FUNC_TRUNC_IEEE is also used, test
whether trunc works according to ISO C 99 with IEC 60559.
* m4/trunc-ieee.m4: New file.
* lib/math.in.h (trunc): Replace if REPLACE_TRUNC is set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNC.
* modules/math (Makefile.am): Substitute REPLACE_TRUNC.
* modules/trunc-ieee-tests: New file.
* tests/test-trunc-ieee.c: New file, based on tests/test-truncf-ieee.c.
* tests/test-trunc1.c (main): Remove signbit tests.
* modules/trunc-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/trunc.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'ceil-ieee'.
* modules/ceil-ieee: New file.
* m4/ceil.m4 (gl_FUNC_CEIL): Require gl_MATH_H_DEFAULTS. If
gl_FUNC_CEIL_IEEE is also used, test whether ceil works according to
ISO C 99 with IEC 60559.
* m4/ceil-ieee.m4: New file.
* modules/ceil (Files): Add lib/ceil.c.
(Depends-on): Add 'float'.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
* lib/math.in.h (ceil): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEIL,
REPLACE_CEIL.
* modules/math (Makefile.am): Substitute GNULIB_CEIL, REPLACE_CEIL.
* modules/ceil-ieee-tests: New file.
* tests/test-ceil-ieee.c: New file, based on tests/test-ceilf-ieee.c.
* tests/test-math-c++.cc: Check the signature of 'ceil'.
* doc/posix-functions/ceil.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'floor-ieee'.
* modules/floor-ieee: New file.
* m4/floor.m4 (gl_FUNC_FLOOR): Require gl_MATH_H_DEFAULTS. If
gl_FUNC_FLOOR_IEEE is also used, test whether floor works according to
ISO C 99 with IEC 60559.
* m4/floor-ieee.m4: New file.
* modules/floor (Files): Add lib/floor.c.
(Depends-on): Add 'float'.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
* lib/math.in.h (floor): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOOR,
REPLACE_FLOOR.
* modules/math (Makefile.am): Substitute GNULIB_FLOOR, REPLACE_FLOOR.
* modules/floor-ieee-tests: New file.
* tests/test-floor-ieee.c: New file, based on tests/test-floorf-ieee.c.
* tests/test-math-c++.cc: Check the signature of 'floor'.
* doc/posix-functions/floor.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'roundf-ieee'.
* modules/roundf-ieee: New file.
* m4/roundf.m4 (gl_FUNC_ROUNDF): If gl_FUNC_ROUNDF_IEEE is also used,
test whether roundf works according to ISO C 99 with IEC 60559.
* m4/roundf-ieee.m4: New file.
* modules/roundf-ieee-tests: New file.
* tests/test-roundf-ieee.c: New file, based on tests/test-roundf1.c.
* tests/test-roundf1.c (main): Remove signbit tests.
* modules/roundf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/roundf.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'truncf-ieee'.
* modules/truncf-ieee: New file.
* m4/truncf.m4 (gl_FUNC_TRUNCF): If gl_FUNC_TRUNCF_IEEE is also used,
test whether truncf works according to ISO C 99 with IEC 60559.
* m4/truncf-ieee.m4: New file.
* lib/math.in.h (truncf): Replace if REPLACE_TRUNCF is set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNCF.
* modules/math (Makefile.am): Substitute REPLACE_TRUNCF.
* modules/truncf-ieee-tests: New file.
* tests/test-truncf-ieee.c: New file, based on tests/test-truncf1.c.
* tests/test-truncf1.c (main): Remove signbit tests.
* modules/truncf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/truncf.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'ceilf-ieee'.
* modules/ceilf-ieee: New file.
* m4/ceilf.m4 (gl_FUNC_FLOORF): If gl_FUNC_CEILF_IEEE is also used,
test whether ceilf works according to ISO C 99 with IEC 60559.
* m4/ceilf-ieee.m4: New file.
* modules/ceilf-ieee-tests: New file.
* tests/test-ceilf-ieee.c: New file, based on tests/test-ceilf1.c.
* tests/test-ceilf1.c (main): Remove signbit tests.
* modules/ceilf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/ceilf.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
New module 'floorf-ieee'.
* modules/floorf-ieee: New file.
* m4/floorf.m4 (gl_FUNC_FLOORF): If gl_FUNC_FLOORF_IEEE is also used,
test whether floorf works according to ISO C 99 with IEC 60559.
* m4/floorf-ieee.m4: New file.
* modules/floorf-ieee-tests: New file.
* tests/test-floorf-ieee.c: New file, based on tests/test-floorf1.c.
* tests/test-floorf1.c (main): Remove signbit tests.
* modules/floorf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/floorf.texi: Mention the new module.
2010-12-21 Bruno Haible <bruno@clisp.org>
Support for minus zero in autoconf macros.
* m4/minus-zero.m4: New file, based on tests/minus-zero.h.
* m4/signbit.m4 (gl_FLOAT_SIGNBIT_CODE, gl_DOUBLE_SIGNBIT_CODE,
gl_LONG_DOUBLE_SIGNBIT_CODE, gl_FLOATTYPE_SIGNBIT_CODE): New macros.
* tests/minus-zero.h: Update comments.
2010-12-21 Bruno Haible <bruno@clisp.org>
Tests for module 'ceil'.
* modules/ceil-tests: New file.
* tests/test-ceil1.c: New file, based on tests/test-ceill.c.
* tests/test-ceil2.c: New file, based on tests/test-ceilf2.c.
2010-12-21 Bruno Haible <bruno@clisp.org>
Tests for module 'floor'.
* modules/floor-tests: New file.
* tests/test-floor1.c: New file, based on tests/test-floorl.c.
* tests/test-floor2.c: New file, based on tests/test-floorf2.c.
2010-12-21 Bruno Haible <bruno@clisp.org>
math: Fix indentation.
* lib/math.in.h (floorf): Fix indentation.
2010-12-21 Bruno Haible <bruno@clisp.org>
Fix cross-compilation guesses on Solaris.
* m4/fopen.m4 (gl_FUNC_FOPEN): Correct shell pattern so that it does
not match "solaris2.10".
* m4/open.m4 (gl_FUNC_OPEN): Likewise.
* m4/printf.m4 (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_DIRECTIVE_N,
gl_VSNPRINTF_ZEROSIZE_C99): Likewise.
2010-12-21 Paul Eggert <eggert@cs.ucla.edu>
snprintf: port snprintf (NULL, 0, ...) to Solaris 8 and 9
This fixes a problem observed with the latest coreutils snapshot
that caused a test to fail on Solaris 8. src/csplit.c's call
snprintf (NULL, 0, format, UINT_MAX) returns -1 on Solaris 9 and
earlier, instead of returning the number of bytes that would have
been generated; this causes csplit to incorrectly report memory
exhaustion.
* m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Also check for
snprintf (NULL, 0, ...) and (for good measure) snprintf (buf, 0, ...).
Guess that it doesn't work on Solaris 2.6 through 9. Adjust
comments to match.
(gl_PRINTF_SIZES_C99, gl_PRINTF_DIRECTIVE_F, gl_SNPRINTF_RETVAL_C99):
Fix typo in matching older versions of Solaris: "solaris2.10"
is matched by the shell pattern "solaris2.[0-9]*". This matters
only for guessing while cross-compiling.
* m4/snprintf.m4 (gl_FUNC_SNPRINTF): Also check gl_SNPRINTF_RETVAL_C99.
2010-12-20 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: fix comment again
* lib/ftoastr.h: Fix typo in comment. Noted by Ben Pfaff in
<http://lists.gnu.org/r/bug-gnulib/2010-12/msg00149.html>.
Also, simplify example a bit by using flags = 0.
2010-12-20 Bruno Haible <bruno@clisp.org>
round*, trunc*: Update documentation regarding glibc.
* doc/posix-functions/roundf.texi: Mention missing declaration problem.
* doc/posix-functions/round.texi: Likewise.
* doc/posix-functions/roundl.texi: Likewise.
* doc/posix-functions/truncf.texi: Likewise.
* doc/posix-functions/trunc.texi: Likewise.
* doc/posix-functions/truncl.texi: Likewise.
2010-12-20 Bruno Haible <bruno@clisp.org>
roundf, round, roundl: Update documentation regarding OSF/1 5.1.
* doc/posix-functions/roundf.texi: Mention OSF/1 5.1 problem.
* doc/posix-functions/round.texi: Likewise.
* doc/posix-functions/roundl.texi: Likewise.
2010-12-20 Bruno Haible <bruno@clisp.org>
ttyname_r: Add missing declaration on HP-UX 11.
* lib/unistd.in.h (ttyname_r): Test HAVE_DECL_TTYNAME_R instead of
HAVE_TTYNAME_R.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether ttyname_r is
declared. Set HAVE_TTYNAME_R always.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_TTYNAME_R, not HAVE_TTYNAME_R.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_TTYNAME_R, not
HAVE_TTYNAME_R.
* doc/posix-functions/ttyname_r.texi: Document the HP-UX 11 problem.
2010-12-20 Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Document HP-UX 11.11 bugs.
* doc/posix-functions/getlogin.texi: Document HP-UX 11.11 bug.
* doc/posix-functions/getlogin_r.texi: Likewise.
* tests/test-getlogin.c: Include <errno.h>.
(main): Avoid test failure on HP-UX 11.11.
* tests/test-getlogin_r.c (main): Likewise.
2010-12-20 Bruno Haible <bruno@clisp.org>
getlogin_r: Add missing declaration on HP-UX 11.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Test whether getlogin_r is
declared also when it exists as a function.
* doc/posix-functions/getlogin_r.texi: Document this workaround.
2010-12-20 Bruno Haible <bruno@clisp.org>
wcsrtombs: Don't confuse mbstate_t with rpl_mbstate_t.
* lib/wcsrtombs.c: If gnulib overrides mbstate_t, define wcsrtombs
through wcrtomb.
2010-12-19 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: fix comment
* lib/ftoastr.h: Fix typo in comment. Noted by Ben Pfaff in
<http://lists.gnu.org/r/bug-gnulib/2010-12/msg00130.html>.
2010-12-19 Bruno Haible <bruno@clisp.org>
isnan: Ensure it is a macro.
* lib/math.in.h (isnan): Define as a macro if not already a macro.
* doc/posix-functions/isnan.texi: Mention problem on IRIX, OSF/1,
Solaris.
2010-12-19 Bruno Haible <bruno@clisp.org>
ldexpl test: Fix link error on OSF/1 5.1.
* modules/ldexpl-tests (Makefile.am): Define test_ldexpl_LDADD.
2010-12-19 Bruno Haible <bruno@clisp.org>
wctype: Make it work in C++ mode on OSF/1 5.1.
* lib/wctype.in.h (iswblank): Declare but not define here.
* lib/iswblank.c: New file, extracted from lib/wctype.in.h.
* m4/wctype_h.m4 (gl_WCTYPE_H): Arrange to compile it if needed.
* modules/wctype (Files): Add lib/iswblank.c.
2010-12-19 Bruno Haible <bruno@clisp.org>
signal: Document problem with type of SIGRTMIN, SIGRTMAX on OSF/1 5.1.
* doc/posix-headers/signal.texi: Document OSF/1 5.1 problem.
* lib/strsignal.c (strsignal): Cast SIGRTMIN to 'int'.
2010-12-19 Bruno Haible <bruno@clisp.org>
sys_socket: Use POSIX compatible declarations on OSF/1 5.1.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): On OSF/1, define
_POSIX_PII_SOCKET.
* doc/posix-functions/recv.texi: Document the OSF/1 problem.
* doc/posix-functions/recvfrom.texi: Likewise.
* doc/posix-functions/send.texi: Likewise.
* doc/posix-functions/sendto.texi: Likewise.
2010-12-19 Bruno Haible <bruno@clisp.org>
tcgetsid: Add missing declaration on OSF/1 5.1.
* lib/termios.in.h (tcgetsid): Test HAVE_DECL_TCGETSID instead of
HAVE_TCGETSID.
* m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Test whether tcgetsid is declared.
Don't set HAVE_TCGETSID.
* m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Initialize
HAVE_DECL_TCGETSID, not HAVE_TCGETSID.
* modules/termios (Makefile.am): Substitute HAVE_DECL_TCGETSID, not
HAVE_TCGETSID.
* doc/posix-functions/tcgetsid.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
stdio: Fix problem with popen() declaration on OSF/1 5.1.
* lib/stdio.in.h: During the include_next statement, let recursive
includes of this file include only the system header file.
2010-12-19 Bruno Haible <bruno@clisp.org>
iconv_open: Fix regression from 2010-12-04.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Fix typo.
Reported by Noah Lavine <noah.b.lavine@gmail.com>.
2010-12-19 Bruno Haible <bruno@clisp.org>
stdbool test: Avoid a gcc warning.
* tests/test-stdbool.c (main): Fail if e1 is false.
Reported by Jim Meyering.
2010-12-19 Jim Meyering <meyering@redhat.com>
setenv: restore to working order
$HAVE_SETENV is used in gl_FUNC_SETENV, yet its definitions were
mistakenly removed.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Restore code to set
HAVE_SETENV.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Restore code to initialize
HAVE_SETENV.
2010-12-19 Bruno Haible <bruno@clisp.org>
Document some different function declarations on OSF/1 5.1.
* doc/posix-functions/gai_strerror.texi: Mention different declaration.
* doc/posix-functions/inet_ntop.texi: Likewise.
* doc/posix-functions/gethostname.texi: Likewise.
* lib/unistd.in.h (gethostname): Update comment.
2010-12-19 Bruno Haible <bruno@clisp.org>
doc: Mention vasprintf-posix module.
* doc/glibc-functions/asprintf.texi: Mention the workarounds present in
the 'vasprintf-posix' module.
* doc/glibc-functions/vasprintf.texi: Likewise.
2010-12-19 Bruno Haible <bruno@clisp.org>
unsetenv: Add missing declaration on OSF/1 5.1.
* lib/stdlib.in.h (setenv): Test HAVE_DECL_UNSETENV, not HAVE_UNSETENV.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Test whether unsetenv is declared.
Don't set HAVE_UNSETENV. In the test program, set _BSD.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_UNSETENV,
not HAVE_UNSETENV.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_UNSETENV, not
HAVE_UNSETENV.
* doc/posix-functions/unsetenv.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
setenv: Add missing declaration on OSF/1 5.1.
* lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is
declared. Don't set HAVE_SETENV.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV,
not HAVE_SETENV.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not
HAVE_SETENV.
* doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
nl_langinfo tests: Avoid gcc warning.
* tests/test-nl_langinfo.c: Don't enable the GCC pragma for GCC 4.2.
2010-12-19 Bruno Haible <bruno@clisp.org>
mknod: Avoid error in C++ mode on OSF/1 with GCC.
* lib/sys_stat.in.h (mknod): Use _GL_CXXALIAS_SYS_CAST instead of
_GL_CXXALIAS_SYS.
2010-12-19 Bruno Haible <bruno@clisp.org>
stdbool: Relax test.
* tests/test-stdbool.c (e): Don't require that casts from a variable's
address to 'bool' work in static initializer, for compilers other than
GCC.
2010-12-19 Bruno Haible <bruno@clisp.org>
ftello: Add missing declaration on OSF/1 5.1.
* lib/stdio.in.h (ftello): Test HAVE_DECL_FTELLO, not HAVE_FTELLO.
* m4/ftello.m4 (gl_FUNC_FTELLO): Test whether ftello is declared.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FTELLO.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_FTELLO.
* doc/posix-functions/ftello.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
fseeko: Add missing declaration on OSF/1 5.1.
* lib/stdio.in.h (fseeko): Test HAVE_DECL_FSEEKO, not HAVE_FSEEKO.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Test whether fseeko is declared.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FSEEKO.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_FSEEKO.
* doc/posix-functions/fseeko.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
fchdir: Add missing declaration on OSF/1 5.1.
* lib/unistd.in.h (fchdir): Provide declaration if systems lacks it.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Check whether fchdir is declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_FCHDIR.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_FCHDIR.
* doc/posix-functions/fchdir.texi: Mention the OSF/1 5.1 problem.
2010-12-19 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Separate from relocatable-prog.
* modules/relocatable-prog (Makefile.am): Define uninstall-hook and
uninstall-relocwrapper rule here.
* modules/relocatable-prog-wrapper (Makefile.am): ... not here.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-12-19 Bruno Haible <bruno@clisp.org>
unistr/u8-mbsnlen: Add missing dependency.
* modules/unistr/u8-mbsnlen (Depends-on): Add unistr/u8-mbtouc.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-12-19 Bruno Haible <bruno@clisp.org>
iconv: Make it possible again to use this module without 'iconv-h'.
* modules/iconv (configure.ac): Don't invoke gl_ICONV_MODULE_INDICATOR
if it is not defined.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-12-18 Paul Eggert <eggert@cs.ucla.edu>
acl: port to Solaris 8 when copying from tmpfs to ufs
* lib/copy-acl.c (qcopy_acl): Also allow EINVAL as an ignorable
error number. Problem observed on Solaris 8 with latest
coreutils, with "mv A B", where A is on a tmpfs file system and B
is on a ufs file system. This caused coreutils' mv/part-symlink
test to fail.
tests: set fail=0 at start
* tests/init.sh (setup_): Move fail=0 initialization here ...
(mktempd_): ... from here, so that tests can rely on fail being
set to 0 initially. This fixes a problem in coreutils; see:
http://lists.gnu.org/r/coreutils/2010-12/msg00083.html
2010-12-18 Bruno Haible <bruno@clisp.org>
memmem-simple: Stylistic changes.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Avoid possible gcc warning.
Fix preprocessor directive indentation.
2010-12-15 Pádraig Brady <P@draigBrady.com>
memmem, memmem-simple: reorganize and expand empty needle check
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Move all
functional checks to memmem-simple so that one has a fully functional
memmem by using just this module.
Restrict the performance only check to the memmem module.
Also expand the empty needle check to ensure the correct
pointer is returned, not just a non NULL pointer.
* doc/glibc-functions/memmem.texi: Rearrange the portability
documentation to correlate with the rearranged checks.
Clarify exactly how the memmem and memmem-simple modules
relate to each other.
2010-12-15 Pádraig Brady <P@draigBrady.com>
Bruno Haible <bruno@clisp.org>
Improve cross-compilation guesses for uClibc.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, assume
that uClibc does not have the glibc bug.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Likewise.
2010-12-14 Eric Blake <eblake@redhat.com>
configmake: provide fallbacks for oldest supported autotools
* m4/configmake.m4: New file.
* modules/configmake (Files): Ship it.
(configure.ac): Use it to guarantee fallbacks.
2010-12-13 Pádraig Brady <P@draigBrady.com>
read-file: Improve handling of large files
* lib/read-file.c (fread_file): Minimize realloc()s
for regular files, and better manage sizes around SIZE_MAX.
2010-12-13 Eric Blake <eblake@redhat.com>
cloexec, fcntl: relax license
* modules/cloexec (License): Change from LGPLv3+ to LGPLv2+, with
consent from all contributors.
* modules/fcntl (License): Likewise.
2010-12-10 Bruno Haible <bruno@clisp.org>
Tests for module 'pipe-posix'.
* modules/pipe-posix-tests: New file.
* tests/test-pipe.c: New file, based on tests/test-pipe2.c.
2010-12-10 Bruno Haible <bruno@clisp.org>
pipe-posix: Make it work in C++ mode.
* lib/unistd.in.h: Don't include <io.h>, <fcntl.h> for pipe.
(pipe): Use common idiom, not a macro definition.
* lib/pipe.c: New file.
* m4/pipe.m4: New file.
* modules/pipe-posix (Description): Enhance.
(Files): Add lib/pipe.c, m4/pipe.m4.
(configure.ac): Invoke gl_FUNC_PIPE.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_PIPE.
* modules/unistd (Makefile.am): Substitute HAVE_PIPE.
* tests/test-unistd-c++.cc: Check the signature of pipe.
2010-12-10 Bruno Haible <bruno@clisp.org>
Rename module 'pipe' to 'spawn-pipe'.
* modules/spawn-pipe: New file, renamed from modules/pipe.
(Files, configure.ac, Makefile.am): Update.
(Include): Mention "spawn-pipe.h" instead of "pipe.h".
* modules/pipe: Reduce to an obsolete indirection to 'spawn-pipe'.
* lib/spawn-pipe.h: New file, renamed from lib/pipe.h.
* lib/spawn-pipe.c: New file, renamed from lib/pipe.c. Include
"spawn-pipe.h" instead of "pipe.h".
* m4/spawn-pipe.m4: New file, renamed from m4/pipe.m4. Rename gl_PIPE
to gl_SPAWN_PIPE.
* modules/spawn-pipe-tests: New file, renamed from modules/pipe-tests.
(Files, Makefile.am): Update.
* tests/test-spawn-pipe.sh: New file, renamed from tests/test-pipe.sh.
Update.
* tests/test-spawn-pipe.c: New file, renamed from tests/test-pipe.c.
Include "spawn-pipe.h" instead of "pipe.h".
* lib/csharpcomp.c: Include "spawn-pipe.h" instead of "pipe.h".
* lib/javacomp.c: Likewise.
* lib/javaversion.c: Likewise.
* lib/pipe-filter-gi.c: Likewise.
* lib/pipe-filter-ii.c: Likewise.
* modules/csharpcomp (Depends-on): Add 'spawn-pipe', remove 'pipe'.
* modules/javacomp (Depends-on): Likewise.
* modules/javaversion (Depends-on): Likewise.
* modules/pipe-filter-gi (Depends-on): Likewise.
* modules/pipe-filter-ii (Depends-on): Likewise.
* MODULES.html.sh (Executing programs): Update.
* NEWS: Mention the change.
2010-12-10 Eric Blake <eblake@redhat.com>
pipe-posix: new module
* modules/pipe-posix: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set default.
(gl_UNISTD_H): Check for declaration.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (pipe): Provide it for mingw.
* doc/posix-functions/pipe.texi (pipe): Update documentation.
* MODULES.html.sh (File descriptor based Input/Output): Likewise.
2010-12-07 Bruno Haible <bruno@clisp.org>
unistr/u8-strcmp: Avoid collision with libc function on Solaris 11.
* lib/unistr.in.h (u8_strcmp) [__sun]: Declare with real name
u8_strcmp_gnu.
* modules/unistr/u8-strcmp (configure.ac): Bump version number.
2010-12-06 Bruno Haible <bruno@clisp.org>
Update internal documentation.
* m4/README: Document new idioms for AC_RUN_IFELSE invocations.
2010-12-04 Bruno Haible <bruno@clisp.org>
Put more information about failed tests into the test return codes.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change test
program so that it returns an enumerated value (0, 1, 2, 3, 4, ...).
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/intdiv0.m4 (gt_INTDIV0): Likewise.
* m4/isapipe.m4 (gl_PREREQ_ISAPIPE): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Change test program so that it
returns a bit mask.
* m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
* m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise.
* m4/dup2.m4 (gl_FUNC_DUP2): Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
* m4/iconv.m4 (AM_ICONV_LINK): Likewise.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
* m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise.
* m4/link.m4 (gl_FUNC_LINK): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
* m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
* m4/open.m4 (gl_FUNC_OPEN): Likewise.
* m4/poll.m4 (gl_FUNC_POLL): Likewise.
* m4/popen.m4 (gl_FUNC_POPEN): Likewise.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE,
gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE,
gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_LS,
gl_PRINTF_PRECISION): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
* m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
* m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Likewise.
(gl_FLOATTYPE_SIGN_LOCATION): Change test program so that it returns an
enumerated value.
* m4/acl.m4 (gl_ACL_GET_FILE): Use "if ... return 1; return 0;" style.
2010-12-04 Bruno Haible <bruno@clisp.org>
Update for Solaris 11 2010-11.
* doc/{glibc,posix}-{functions,headers}: Add info about Solaris 11
Express, released in November 2010.
2010-12-04 Bruno Haible <bruno@clisp.org>
nproc: Relax license.
* modules/nproc (License): Change to LGPL, with consent by Glen Lenker
and Paul Eggert.
Requested by Ludovic Courtès <ludo@gnu.org>.
2010-12-01 Paul Eggert <eggert@cs.ucla.edu>
utimecmp: fine-grained src to nearby coarse-grained dest
* lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set,
and the source is on a file system with higher-resolution time
stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does
not work, and the time stamps are close together, the algorithm to
determine the exact resolution from the read-back mtime was buggy:
it had a "!=" where it should have had an "==". This bug has been
in the code ever since it was introduced to gnulib.
Problem reported by Dan Jacobson in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7529>.
2010-11-30 Bruno Haible <bruno@clisp.org>
strerror_r-posix: Fix autoconf test.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Fix typo.
2010-11-28 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
Tests for module 'getdomainname'.
* modules/getdomainname-tests: New file.
* tests/test-getdomainname.c: New file, based on
tests/test-gethostname.c.
2010-11-28 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
getdomainname: Use the system function when possible.
* lib/unistd.in.h: Include <netdb.h>, for getdomainname's declaration.
(getdomainname): Replace if needed. Provide the declaration if it is
missing. Don't use _GL_CXXALIAS_SYS_CAST.
* lib/getdomainname.c: Include <limits.h> and <sys/systeminfo.h>.
(getdomainname): When the system has getdomainname, call the system
function. When sysinfo (SI_SRPC_DOMAIN, ...) is possible, use that.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require
gl_HEADER_SYS_SOCKET and gl_HEADER_NETDB. Test whether the function is
found in libnsl. Look for the declaration also in <netdb.h>. Replace
the function if its second argument is of type 'int' or if it is found
in libnsl.
(gl_PREREQ_GETDOMAINNAME): Define HAVE_GETDOMAINNAME. Check for
<sys/systeminfo.h> and sysinfo().
* modules/getdomainname (Depends-on): Add netdb, sys_socket.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_GETDOMAINNAME and REPLACE_GETDOMAINNAME instead of
HAVE_GETDOMAINNAME.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETDOMAINNAME and
REPLACE_GETDOMAINNAME instead of HAVE_GETDOMAINNAME.
* doc/glibc-functions/getdomainname.texi: Document the problems with
the getdomainname declaration.
2010-11-28 Bruno Haible <bruno@clisp.org>
sys_socket: Ensure ss_family field on AIX.
* lib/sys_socket.in.h (ss_family): New macro definition.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Set
HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY. Set SYS_SOCKET_H if necessary.
(gl_SYS_SOCKET_H_DEFAULTS): Initialize
HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY.
* modules/sys_socket (Makefile.am): Substitute
HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY.
* doc/posix-headers/sys_socket.texi: Mention the AIX bug.
2010-11-27 Bruno Haible <bruno@clisp.org>
readline: Improve configure output.
* m4/readline.m4 (gl_FUNC_READLINE): Make the
"checking for readline..." result understandable.
2010-11-27 Bruno Haible <bruno@clisp.org>
*printf-posix: Detect a bug on Solaris 10/x86.
* m4/printf.m4 (gl_PRINTF_PRECISION): Detect crash with large precision
for floating-point output.
* tests/test-vasnprintf-posix.c (test_function): Test precision with %f
directive.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/posix-functions/fprintf.texi: Mention Solaris/x86 bug.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2010-11-27 Bruno Haible <bruno@clisp.org>
Fix link error when module libunistring-optional is in use.
* modules/striconveh-tests (Makefile.am): Link with $(LIBUNISTRING).
* modules/striconveha-tests (Makefile.am): Likewise.
2010-11-27 Bruno Haible <bruno@clisp.org>
regex: Mention link dependencies.
* modules/regex (Link): New section.
* modules/rpmatch (Link): Likewise.
* modules/regex-quote-tests (Makefile.am): Link with $(LIBINTL).
2010-11-27 Bruno Haible <bruno@clisp.org>
ftoastr: Fix compilation error on Solaris.
* lib/ftoastr.c: Include <config.h>.
2010-11-27 Bruno Haible <bruno@clisp.org>
getloadavg: Update documentation.
* doc/glibc-functions/getloadavg.texi: Mention the Solaris problem.
2010-11-27 Bruno Haible <bruno@clisp.org>
sys_socket: Fix test whether the functions are declared.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Include <sys/socket.h>,
not <sys/select.h>.
2010-11-27 Bruno Haible <bruno@clisp.org>
getpass: Make sure to get system declaration on some platforms.
* m4/getpass.m4 (gl_FUNC_GETPASS, gl_FUNC_GETPASS_GNU): Require
gl_USE_SYSTEM_EXTENSIONS.
* modules/getpass (Depends-on): Add extensions.
2010-11-26 Bruno Haible <bruno@clisp.org>
iconv-h: Fix test-iconv-h-c++ failure on Solaris 11 2010-11.
* lib/iconv.in.h (iconv_open, iconv, iconv_close): Define only if the
'iconv' module is present.
(ICONV_CONST): New macro.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Initialize GNULIB_ICONV and
ICONV_CONST.
* m4/iconv.m4 (AM_ICONV): If the gnulib module 'iconv-h' is present,
set ICONV_CONST.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Don't set ICONV_CONST
here.
* modules/iconv (configure.ac): Invoke gl_ICONV_MODULE_INDICATOR.
* modules/iconv-h (Makefile.am): Substitute GNULIB_ICONV.
* tests/test-iconv-h.c (ICONV_CONST): Don't define here.
* tests/test-iconv-h-c++.cc (ICONV_CONST): Don't define here.
(iconv_open, iconv, iconv_close): Test only if the 'iconv' module is
present.
2010-11-25 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: comment fix
* lib/ftoastr.c: "little" -> "little or no" in comment
2010-11-24 Paul Eggert <eggert@cs.ucla.edu>
stdint: port to GCC 4.3 + OSX + Octave
On this platform, stdint.h is buggy and defines int64_t to long
long int. The replacement defined it to long int, causing
problems with C++ style name mangling. Instead, trust the system
definition if INT64_MAX is defined, and likewise for the unsigned
variant. Problem reported by Jarno Rajahalme in
<http://lists.gnu.org/r/bug-gnulib/2010-04/msg00143.html>.
* lib/stdint.in.h (GL_INT64_T): Define if INT64_MAX is defined,
and don't mess with int64_t and INT64_MAX in this case.
(GL_UINT64_T): Likewise for UINT64_MAX and uint64_t.
2010-11-24 Bruno Haible <bruno@clisp.org>
doc: Corrections regarding MacOS X 10.4 and 10.5.
* doc/{glibc,posix,pastposix}-functions/*.texi: Update info about
MacOS X.
Reported by Simon Josefsson.
2010-11-22 Ben Pfaff <blp@cs.stanford.edu>
Uninstall ".bin" files installed by relocwrapper.
* modules/relocatable-prog-wrapper (uninstall-relocwrapper):
Recursively run "make uninstall" with ".bin" prefixed to EXEEXT,
unless it is already there.
2010-11-21 Bruno Haible <bruno@clisp.org>
Update for NetBSD 5.0.
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on
NetBSD; the test fails on NetBSD 5.0.
* doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info
about NetBSD.
2010-11-21 Bruno Haible <bruno@clisp.org>
Update for HP-UX 11.23 and HP-UX 11.31.
* doc/{glibc,posix}-{headers,functions}/*.texi: Update info about
HP-UX.
2010-11-21 Bruno Haible <bruno@clisp.org>
Update for MacOS X 10.5.
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on
MacOS X; the test fails on MacOS X 10.5.8.
* doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info
about MacOS X.
2010-11-20 Joel E. Denny <joeldenny@joeldenny.org>
bootstrap: add bootstrap_sync option.
See discussion at
<http://lists.gnu.org/r/bug-gnulib/2010-10/msg00369.html>,
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00200.html>.
* build-aux/bootstrap: Accept --bootstrap-sync to update
bootstrap if it is not identical to the local gnulib's
bootstrap. Accept bootstrap_sync=true in bootstrap.conf to
enable this by default. Accept --no-bootstrap-sync to disable
it.
2010-11-20 Bruno Haible <bruno@clisp.org>
Ensure that <features.h> is included before __GLIBC__ is tested.
* lib/printf-parse.h: Include <features.h>.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Require gl_FEATURES_H.
Reported by Mike Frysinger <vapier@gentoo.org>.
Ensure that <features.h> is included before __GLIBC__ is tested.
* lib/wchar.in.h: Include <features.h>.
* m4/wchar_h.m4 (gl_WCHAR_H): Require gl_FEATURES_H.
* modules/wchar (Makefile.am): Substitute HAVE_FEATURES_H.
Reported by Mike Frysinger <vapier@gentoo.org>.
Ensure that <features.h> is included before __GLIBC__ is tested.
* lib/arpa_inet.in.h: Include <features.h>.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Require gl_FEATURES_H.
* modules/arpa_inet (Makefile.am): Substitute HAVE_FEATURES_H.
Reported by Mike Frysinger <vapier@gentoo.org>.
Ensure that <features.h> is included before __GLIBC__ is tested.
* build-aux/link-warning.h: Include <features.h>.
* modules/link-warning (configure.ac): Require gl_FEATURES_H.
(Makefile.am): Substitute HAVE_FEATURES_H into link-warning.h.
Reported by Mike Frysinger <vapier@gentoo.org>.
Ensure that <features.h> is included before __GLIBC__ is tested.
* m4/gnulib-common.m4 (gl_FEATURES_H): New macro.
Reported by Mike Frysinger <vapier@gentoo.org>.
2010-11-20 Bruno Haible <bruno@clisp.org>
memmem: Fix autoconf test.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Test HAVE_DECL_MEMMEM, not HAVE_MEMMEM.
2010-11-20 Bruno Haible <bruno@clisp.org>
Port to uClibc.
* build-aux/link-warning.h (GL_LINK_WARNING): Treat uClibc like glibc.
* lib/fcntl.in.h: Likewise.
* lib/hard-locale.c (GLIBC_VERSION): Likewise.
* lib/mbrtowc.c (mbrtowc): Likewise.
* lib/relocatable.c (find_shared_library_fullname): Likewise.
* lib/strerror_r.c: Likewise.
* lib/unistr/u8-strnlen.c: Likewise.
* lib/vasnprintf.c (decimal_point_char): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Likewise.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Likewise.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise.
* m4/glibc21.m4 (gl_GLIBC21): Likewise.
* tests/test-sigaction.c (handler, main): Likewise.
* lib/freading.h: Treat uClibc like a non-glibc platform.
* lib/freading.c: Likewise.
* lib/gettext.h: Likewise.
* lib/localename.c (gl_locale_name_thread_unsafe, HAVE_LOCALE_NULL):
Likewise.
* lib/printf-parse.h (FLAG_LOCALIZED): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): Likewise.
* lib/propername.c (proper_name_utf8): Likewise.
* lib/spawn.in.h: Likewise.
* lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv): Likewise.
* lib/striconveh.c (iconveh_open, iconv_carefully, iconv_carefully_1,
mem_cd_iconveh_internal): Likewise.
* lib/striconveha.c (mem_iconveha, str_iconveha): Likewise.
* lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk,
strstr, strcasestr): Likewise.
* lib/unicodeio.c (unicode_to_mb): Likewise.
* lib/uniconv/u16-conv-from-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u16-conv-to-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u16-strconv-to-enc.c (UTF16_NAME): Likewise.
* lib/uniconv/u32-conv-from-enc.c (UTF32_NAME): Likewise.
* lib/uniconv/u32-conv-to-enc.c (UTF32_NAME): Likewise.
* lib/uniconv/u32-strconv-to-enc.c (UTF32_NAME): Likewise.
* lib/unistr/u8-stpncpy.c: Likewise.
* lib/vasnprintf.c (VASNPRINTF): Likewise.
* lib/xmalloc.c (HAVE_GNU_CALLOC): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/glibc2.m4 (gt_GLIBC2): Likewise.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Likewise.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR):
Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_H): Likewise.
* tests/test-getopt.h (OPTIND_MIN): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnprintf-posix3.c (test_function, main): Likewise.
* doc/posix-functions/getdelim.texi: Mention an uClibc bug.
* doc/posix-functions/getline.texi: Likewise.
Reported by Mike Frysinger <vapier@gentoo.org>.
2010-11-20 Bruno Haible <bruno@clisp.org>
nproc: Fix condition.
* lib/nproc.c: Test HAVE_PTHREAD_GETAFFINITY_NP, not
HAVE_PTHREAD_AFFINITY_NP.
2010-11-20 Bruno Haible <bruno@clisp.org>
Fix a comment.
* lib/vasnprintf.c (VASNPRINTF): Fix comment.
2010-11-19 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: don't assume snprintf
* lib/ftoastr.c (snprintf) [! GNULIB_SNPRINTF_POSIX]:
Implement a subset of snprintf here, by using sprintf safely.
* modules/ftoastr (Depends-on): Remove snprintf.
2010-11-19 Jim Meyering <meyering@redhat.com>
test-rename.h: fix compilation failure
* tests/test-rename.h (test_rename): Add omitted "}".
2010-11-17 Jim Meyering <meyering@redhat.com>
maint.mk: add a URL discussing the no-@acronym policy
* top/maint.mk (sc_texinfo_acronym): Add a URL in a comment.
2010-11-18 Paul Eggert <eggert@cs.ucla.edu>
ftoastr: depend on snprintf, improve comments
* lib/ftoastr.c: Also mention Loitsch's draft.
* lib/ftoastr.h: Require WIDTH to be nonnegative. This isn't
needed in the current implementation, but it might simplify
speeding up the code later.
* modules/ftoastr: Depend on snprintf; this improves portability.
Suggested by Bruno Haible in the same email.
ftoastr: port to hosts lacking strtof and strtold
Problem reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00242.html>.
* lib/ftoastr.c (STRTOF): Define to strtod if in a pre-C99
environment and strtold (and presumably strtof) are not available.
* modules/ftoastr (Files): Add m4/c-strtod.m4.
(configure.ac): Require gl_C99_STRTOLD.
2010-11-18 Bruno Haible <bruno@clisp.org>
c-strtold: Avoid link error on AIX 7.
* lib/c-strtod.c: Test also HAVE_STRTOD_L or HAVE_STRTOLD_L.
* m4/c-strtod.m4 (gl_C_STRTOD): Test whether strtod_l exists.
(gl_C_STRTOLD): Test whether strtold_l exists.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2010-11-17 Paul Eggert <eggert@cs.ucla.edu>
intprops: new macro INT_BITS_STRLEN_BOUND
* lib/intprops.h (INT_BITS_STRLEN_BOUND): New macro, needed by
ftoastr.h. This exposes an internal of intprops.h that was formerly
not exposed. Also, it uses a slightly tighter bound than before;
though this makes no practical difference, we might as well be as
tight as we easily can.
ftoastr: new module, for lossless conversion of floats to short strings
* lib/ftoastr.h, lib/ftoastr.c, lib/dtoastr.c, lib/ldtoastr.c:
* modules/ftoastr: New files.
2010-11-15 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: port to Solaris sed
* build-aux/bootstrap (get_version): Port to Solaris sed.
See Ralf Wildenhues's note in
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00156.html>.
2010-11-14 Jim Meyering <meyering@redhat.com>
maint.mk: rename variable: s/noteworthy/gl_noteworthy_news_/
* top/maint.mk (gl_noteworthy_news_): Rename from "noteworthy"
and move definition closer to sole use.
2010-11-13 Jim Meyering <meyering@redhat.com>
remove autoconf-2.57 work-around requiring AC_PROG_EGREP and AC_PROG_CPP
Now we require at least autoconf-2.59, which means the work-around
is no longer needed.
* m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise.
2010-11-13 Bruno Haible <bruno@clisp.org>
rename, renameat: Avoid test failures at NFS mounted locations.
* tests/test-rename.h (dentry_exists, assert_nonexistent): New
functions.
(test_rename): Use assert_nonexistent.
* tests/test-rename.c: Include <dirent.h>.
* tests/test-renameat.c: Likewise.
Reported by Gary V. Vaughan <gary@gnu.org>.
rename, renameat: Document Linux bug with NFS
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00154.html>.
* doc/posix-functions/rename.texi: Mention the NFS bug on Linux.
* doc/posix-functions/renameat.texi: Likewise.
Suggested by Eric Blake.
2010-11-13 Bruno Haible <bruno@clisp.org>
rename test: Add comments.
* tests/test-rename.h (test_rename): Add structure and comments.
2010-11-13 Eric Blake <eblake@redhat.com>
maintainer-makefile: cover a few more files
* top/maint.mk (sc_prohibit_test_double_equal): Also cover shell
scripts generated within C files, for libvirt.
2010-11-13 Bruno Haible <bruno@clisp.org>
unistr/u8-mbtouc: Improve handling of ill-formed UTF-8 input.
* lib/unistr/u8-mbtouc.c (u8_mbtouc): For an invalid multibyte
character, return the number of bytes that belong together, not always
1.
* lib/unistr/u8-mbtouc-unsafe.c (u8_mbtouc_unsafe): Likewise.
* lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Likewise.
* lib/unistr/u8-mbtouc-unsafe-aux.c (u8_mbtouc_unsafe_aux): Likewise.
* lib/unistr/u8-mbsnlen.c (u8_mbsnlen): Use u8_mbtouc to determine the
number of bytes of an invalid character.
* tests/unistr/test-u8-mbtouc.c (test_safe_function): New function.
(main): Invoke it.
* tests/unistr/test-u8-mbtouc.h (test_function): Update two test
results.
* tests/unistr/test-u8-mbsnlen.c (main): Test various kinds of
malformed byte sequences.
* modules/unistr/u8-mbtouc (configure.ac): Bump version number.
* modules/unistr/u8-mbtouc-unsafe (configure.ac): Likewise.
* modules/unistr/u8-mbsnlen (configure.ac): Likewise.
Reported by Ben Pfaff and Paolo Bonzini.
2010-11-13 Bruno Haible <bruno@clisp.org>
openat: Work around glibc bug with fchownat() and empty file names.
* m4/openat.m4 (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): New macro.
(gl_FUNC_FCHOWNAT): Invoke it.
* lib/fchownat.c (rpl_fchownat): Handle the empty file name specially.
* doc/posix-functions/fchownat.texi: Document the glibc bug.
Reported by Gary V. Vaughan <gary@gnu.org>.
2010-11-13 Bruno Haible <bruno@clisp.org>
openat: Ensure autoconf macro ordering.
* m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Require
gl_USE_SYSTEM_EXTENSIONS.
(gl_FUNC_FCHOWNAT): Require gl_UNISTD_H_DEFAULTS.
2010-11-13 Bruno Haible <bruno@clisp.org>
Update comments.
* lib/unistr/u8-check.c: Update file name in comments.
* lib/unistr/u8-mblen.c: Likewise.
* lib/unistr/u8-prev.c: Likewise.
* lib/unistr/u8-strmblen.c: Likewise.
* lib/unistr/u8-strmbtouc.c: Likewise.
2010-11-13 Jim Meyering <meyering@redhat.com>
tests: avoid test failure on Solaris 10 due to lack of PATH export
* tests/test-update-copyright.sh: Don't forget to export PATH.
init.sh: ensure that IFS is defined, just in case...
* tests/init.sh (setup_): Ensure that IFS is defined,
so that saving and restoring it works as expected. This
appears to be useful at least for an old version of dash
from a long time ago (RH 6). See here for details:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/436/focus=455
maint.mk: tighten "test a == b" check
* top/maint.mk (sc_prohibit_test_double_equal): Restrict this
test to files that contain something like #!/bin/sh.
Without this, coreutils would get two false positives in
the comments of C source files.
2010-11-12 Eric Blake <eblake@redhat.com>
bootstrap: fix typo in previous attempt
* build-aux/bootstrap (buildreq): Correct the grouping.
Reported by Paul Eggert.
maintainer-makefile: prohibit test x == x
* top/maint.mk (sc_prohibit_test_double_equal): New rule.
Based on a report by Matthias Bolte.
bootstrap: allow FreeBSD gzip
* build-aux/bootstrap (get_version): Parse FreeBSD gzip version,
which has no '.' and goes to stderr.
* build-aux/bootstrap.conf (buildreq): Improve the sample file.
Reported by Matthias Bolte.
maintainer-makefile: check for i18n setup
* top/maint.mk (sc_bindtextdomain): Check for evidence that _()
will likely work.
2010-11-12 Bruno Haible <bruno@clisp.org>
sleep, nanosleep: Work around Linux 2.6.9 nanosleep bug.
* lib/sleep.c (rpl_sleep): Split in chunks no larger than 24 days.
* lib/nanosleep.c (nanosleep): Likewise.
2010-11-11 Bruno Haible <bruno@clisp.org>
fcntl-h: Fix for use of C++ on glibc systems.
* lib/fcntl.in.h: Include <sys/stat.h> before include_next <fcntl.h>
also on glibc systems in C++ mode.
Reported by Gary V. Vaughan <gary@gnu.org>.
2010-11-11 Christian Weisgerber <naddy@mips.inka.de> (tiny change)
mknod: avoid false failure with dash
* m4/mknod.m4 (gl_FUNC_MKNOD): Use portable shell syntax.
2010-11-11 Paul Eggert <eggert@cs.ucla.edu>
unlink: Fix "is it should" typo in diagnostic.
* m4/unlink.m4 (gl_FUNC_UNLINK): Fix typo, as per Reuben Thomas in
<http://lists.gnu.org/r/bug-gnulib/2010-11/msg00106.html>.
2010-11-11 Bruno Haible <bruno@clisp.org>
Tests for module 'strerror_r-posix'.
* modules/strerror_r-posix-tests: New file.
* tests/test-strerror_r.c: New file.
* tests/test-string-c++.cc: Check the signature of strerror_r.
New module 'strerror_r-posix'.
* lib/string.in.h (strerror_r): New declaration.
* lib/strerror_r.c: New file.
* m4/strerror_r.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Check for the declaration
of strerror_r.
(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERROR_R,
HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R.
* modules/strerror_r-posix: New file.
* modules/string (Makefile.am): Substitute GNULIB_STRERROR_R,
HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R.
* doc/posix-functions/strerror_r.texi: Mention the new module and the
portability problems.
2010-11-11 Torsten Scheck <Torsten.Scheck@Leica-Microsystems.com> (tiny change)
* build-aux/pmccabe2html: Fixed a off-by-one error, so last input
line is also considered for output. Quoted function name in shell
command, so temporary files for functions like MyClass::operator()
are removed correctly without errors.
2010-11-09 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/strerror.texi: List more failing platforms.
* doc/posix-functions/strerror.texi: Add a comment.
2010-11-07 Paul Eggert <eggert@cs.ucla.edu>
fdopendir: fix bug on MacOS X when low on file descriptors
* lib/fdopendir.c (REPLACE_FCHDIR): #define to 0 if not defined.
(fdopendir_with_dup, fd_clone_opendir): Now have extra CWD arg.
All callers changed.
(fdopendir): Invoke save_cwd at the top level, not after using
multiple dup() calls to use up file descriptors. Then retry
fdopendir_with_dup. This avoids failure with EMFILE if FD is 1
less than the maximum number of open file descriptors, because
save_cwd fails with errno == EMFILE. Problem reported by tsteven4
on Mac OS X 10.6.4 for tar 1.24
<http://lists.gnu.org/r/bug-tar/2010-10/msg00084.html>
<http://lists.gnu.org/r/bug-tar/2010-11/msg00000.html>
and for tar 1.25
<http://lists.gnu.org/r/bug-tar/2010-11/msg00038.html>.
2010-11-07 Bruno Haible <bruno@clisp.org>
vasnprintf: Support I flag on glibc systems.
* lib/printf-parse.h (FLAG_LOCALIZED): New macro.
* lib/printf-parse.c (PRINTF_PARSE): Handle the 'I' flag.
* lib/vasnprintf.c (VASNPRINTF): Pass the 'I' flag on to the system's
snprintf function.
* tests/test-vasnprintf-posix.c (test_function): Test the 'I' flag on
glibc systems.
* tests/test-vasnprintf-posix3.c: New file.
* modules/vasnprintf-posix-tests (Files): Add it.
(TESTS, check_PROGRAMS): Add test-vasnprintf-posix3.
2010-11-05 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
[html] Fix copy/paste bug: Use unique name for compiler warnings.
* MODULES.html.sh: For compiler warnings, use name
`ansic_ext_compwarn' since `ansic_ext_misc' is already taken.
2010-11-05 Eric Blake <eblake@redhat.com>
ceil, floor: avoid spurious failure with icc
* tests/test-ceilf2.c (ceilf_reference): Avoid icc's use of DAZ
[denormals-as-zero] when optimizing without -mieee-fp option.
* tests/test-floorf2.c (floorf_reference): Likewise.
* tests/test-ceilf1.c (dummy): New function.
(main): Use it to outsmart icc's optimization.
* tests/test-floorf1.c (dummy, main): Likewise.
tests: require working signbit
* modules/ceilf-tests (Depends-on): Add signbit.
* modules/ceill-tests (Depends-on): Likewise.
* modules/floorf-tests (Depends-on): Likewise.
* modules/floorl-tests (Depends-on): Likewise.
* modules/round-tests (Depends-on): Likewise.
* modules/roundf-tests (Depends-on): Likewise.
* modules/roundl-tests (Depends-on): Likewise.
* modules/trunc-tests (Depends-on): Likewise.
* modules/truncf-tests (Depends-on): Likewise.
* modules/truncl-tests (Depends-on): Likewise.
strtod: work around icc bug
* lib/strtod.c (minus_zero): Define to working value.
(strtod): Use it to avoid icc bug.
copysign: enhance tests
* modules/copysign-tests (Files): Add minus-zero.h.
* tests/test-copysign.c (main): Also test zeros.
2010-11-04 Eric Blake <eblake@redhat.com>
ceil, floor, round, trunc: enhance tests of -0
* tests/test-ceilf1.c (main): Ensure correct sign of result.
* tests/test-ceill.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-floorl.c (main): Likewise.
* tests/test-round1.c (main): Likewise.
* tests/test-roundf1.c (main): Likewise.
* tests/test-roundl.c (main): Likewise.
* tests/test-trunc1.c (main): Likewise.
* tests/test-truncf1.c (main): Likewise.
* tests/test-truncl.c (main): Likewise.
2010-11-04 Eric Blake <eblake@redhat.com>
frexp, tests: work around ICC bug with -zero
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Compute -0.0 in a way that
works with more compilers.
* tests/minus-zero.h: New file.
* modules/ceilf-tests (Files): Include it.
* modules/ceill-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/strtod-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* tests/test-ceilf1.c (main): Use it.
* tests/test-ceill.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-floorl.c (main): Likewise.
* tests/test-frexp.c (main): Likewise.
* tests/test-frexpl.c (main): Likewise.
* tests/test-isnan.c (main): Likewise.
* tests/test-isnand.h (main): Likewise.
* tests/test-isnanf.h (main): Likewise.
* tests/test-isnanl.h (main): Likewise.
* tests/test-ldexpl.c (main): Likewise.
* tests/test-round.c (main): Likewise.
* tests/test-roundf.c (main): Likewise.
* tests/test-roundl.c (main): Likewise.
* tests/test-signbit.c (test_signbitf, test_signbitd)
(test_signbitl): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-strtod.c (main): Likewise.
* tests/test-trunc1.c (main): Likewise.
* tests/test-truncf1.c (main): Likewise.
* tests/test-truncl.c (main): Likewise.
isnanl: work around icc bug
* lib/isnan.c (FUNC): Compute run-time NaN under ICC as well.
2010-11-03 Eric Blake <eblake@redhat.com>
tests: fix compiler warnings
* tests/test-getopt.h (test_getopt): Fix condition.
* tests/test-getopt_long.h (test_getopt_long): Likewise.
* tests/test-pipe2.c (main): Likewise.
* tests/test-quotearg-simple.c (main): Avoid icc warning.
utimens: fix broken m4 test
* m4/utimens.m4 (gl_UTIMENS): Include correct headers.
2010-10-28 Bruno Haible <bruno@clisp.org>
posix_spawn*, getdtablesize: Relax license.
* modules/posix_spawn (License): Change to LGPLv2+.
* modules/posix_spawnp (License): Likewise.
* modules/posix_spawn-internal (License): Likewise.
* modules/posix_spawnattr_init (License): Likewise.
* modules/posix_spawnattr_getflags (License): Likewise.
* modules/posix_spawnattr_setflags (License): Likewise.
* modules/posix_spawnattr_getpgroup (License): Likewise.
* modules/posix_spawnattr_setpgroup (License): Likewise.
* modules/posix_spawnattr_getschedparam (License): Likewise.
* modules/posix_spawnattr_setschedparam (License): Likewise.
* modules/posix_spawnattr_getschedpolicy (License): Likewise.
* modules/posix_spawnattr_setschedpolicy (License): Likewise.
* modules/posix_spawnattr_getsigdefault (License): Likewise.
* modules/posix_spawnattr_setsigdefault (License): Likewise.
* modules/posix_spawnattr_getsigmask (License): Likewise.
* modules/posix_spawnattr_setsigmask (License): Likewise.
* modules/posix_spawnattr_destroy (License): Likewise.
* modules/posix_spawn_file_actions_init (License): Likewise.
* modules/posix_spawn_file_actions_addclose (License): Likewise.
* modules/posix_spawn_file_actions_adddup2 (License): Likewise.
* modules/posix_spawn_file_actions_addopen (License): Likewise.
* modules/posix_spawn_file_actions_destroy (License): Likewise.
* modules/getdtablesize (License): Likewise.
Requested by Adam Stokes <ajs@redhat.com> for use in netcf.
2010-10-26 Bruno Haible <bruno@clisp.org>
unistd: Refine workaround from 2009-12-23 against Cygwin bug.
* lib/unistd.in.h: Don't include <stdio.h> and <fcntl.h>, except on
Cygwin and mingw.
Suggested by Eric Blake.
2010-10-26 Bruno Haible <bruno@clisp.org>
stdio: Work around compilation error due to renameat() on Solaris 10.
* lib/stdio.in.h: Include <unistd.h> on Solaris.
* lib/renameat.c: Don't include <unistd.h> here.
* doc/posix-functions/renameat.texi: Mention the Solaris problem.
Reported by Paul Eggert and Eric Blake.
2010-10-26 Paul Eggert <eggert@cs.ucla.edu>
renameat: port to Solaris 10, which declares renameat in unistd.h
* lib/renameat.c: Include unistd.h before stdio.h, because
Solaris 10 declares renameat in unistd.h. Problem encountered
when building GNU tar 1.24 on Solaris 10.
2010-10-26 Christian Weisgerber <naddy@mips.inka.de> (tiny change)
fdopendir: fix C89 compilation
* lib/fdopendir.c (fd_clone_opendir): Move declaration for older
compilers.
2010-10-23 Paul Eggert <eggert@cs.ucla.edu>
inttostr: simplify by removing unnecessary redundancy
* lib/anytostr.c: Don't include verify.h.
(anytostr): Don't verify that TYPE_SIGNED (inttype) equals
inttype_is_signed. Instead, disable the bogus GCC warnings, so that
there's no need for inttype_is_signed and for calling TYPE_SIGNED.
* lib/imaxtostr.c (inttype_is_signed): Remove; no longer needed.
* lib/inttostr.c, lib/offtostr.c, lib/uinttostr.c, lib/umaxtostr.c:
Likewise.
* modules/inttostr (Depends-on): Remove 'verify'.
2010-10-23 Bruno Haible <bruno@clisp.org>
nl_langinfo: Mention problem with CRNCYSTR on NetBSD 5.0.
* doc/posix-functions/nl_langinfo.texi: Mention problem with CRNCYSTR.
Reported by Eric Blake.
2010-10-23 Bruno Haible <bruno@clisp.org>
Tests: Fix LOCALE_JA on MirBSD 10.
* m4/locale-ja.m4 (gt_LOCALE_JA): Reject a locale identifier that leads
to an UTF-8 locale.
* m4/locale-fr.m4 (gt_LOCALE_FR): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
Reported by Eric Blake.
2010-10-21 Bruno Haible <bruno@clisp.org>
nl_langinfo test: Avoid test failure on NetBSD 5.
* tests/test-nl_langinfo.c (main): Relax test of nl_langinfo(CRNCYSTR).
Reported by Eric Blake.
2010-10-21 Eric Blake <eblake@redhat.com>
c-stack: work around libsigsegv 2.8 bug
* lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack
overflow on at least PowerPC64.
2010-10-17 Bruno Haible <bruno@clisp.org>
userspec: Drop redundant file.
* modules/userspec (Files): Remove lib/inttostr.h.
2010-10-17 Bruno Haible <bruno@clisp.org>
nl_langinfo tests: Silence some warnings.
* tests/test-nl_langinfo.c: Silence -Wtype-limits warnings.
Reported by Jim Meyering.
2010-10-17 Bruno Haible <bruno@clisp.org>
Make use of GCC's attribute __alloc_size__.
* lib/xalloc.h (ATTRIBUTE_ALLOC_SIZE): New macro.
(xmalloc, xzalloc, xcalloc, xrealloc, xmemdup, xnmalloc, xnrealloc,
xcharalloc): Declare with ATTRIBUTE_ALLOC_SIZE.
* lib/eealloc.h (eemalloc, eerealloc): Declare with attribute
__alloc_size__.
* lib/pagealign_alloc.h (pagealign_alloc, pagealign_xalloc): Likewise.
Suggested by Jim Meyering.
2010-10-16 Joel E. Denny <joeldenny@joeldenny.org>
bootstrap: anchor .gitignore entries.
* build-aux/bootstrap (insert_sorted_if_absent): Replace all uses
with...
(insert_vc_ignore): ... this new function, which prepends `/' to
all .gitignore entries before passing them to
insert_sorted_if_absent.
2010-10-16 Bruno Haible <bruno@clisp.org>
nextafter: Fix configure check.
* modules/nextafter (configure.ac): Correct expected prototype.
2010-10-16 Bruno Haible <bruno@clisp.org>
termios: Update documentation.
* doc/posix-headers/termios.texi: Mention remaining mingw problems.
2010-10-16 Bruno Haible <bruno@clisp.org>
tests: Make them compile with TinyCC.
* tests/test-strstr.c (main): Remove parentheses around array
initializer.
2010-10-15 Eric Blake <eblake@redhat.com>
ignore-value: make header idempotent
* lib/ignore-value.h: Add double-inclusion guards.
Reported by Stefan Berger.
2010-10-15 Jim Meyering <meyering@redhat.com>
GNUmakefile: handle "stable" target, not "major"
* top/GNUmakefile (_is-dist-target): s/major/stable/ to match the
lists in maint.mk and announce-gen. Without this, "make stable"
would fail to ensure that $(VERSION) is up to date.
2010-10-15 Ludovic Courtès <ludo@gnu.org>
* lib/isnan.c (FUNC): Treat TinyCC (`__TINYC__') like `__SUNPRO_C'
& co.
2010-10-14 Bruno Haible <bruno@clisp.org>
vasnprintf: Don't set errno to 0.
* lib/vasnprintf.c (VASNPRINTF): Save and restore errno around the
block that sets it to 0.
Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
2010-10-14 Bruno Haible <bruno@clisp.org>
socketlib: Fix.
* modules/socketlib (Files): Add m4/sys_socket_h.m4. Needed for
gl_PREREQ_SYS_H_WINSOCK2.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-10-13 Jim Meyering <meyering@redhat.com>
test-select-stdin.c: avoid warn_unused_result warnings
* tests/test-select-stdin.c: Include "macros.h".
ASSERT that read and fflush succeed.
2010-10-13 Jim Meyering <meyering@redhat.com>
git-version-gen: do require git-VC'd files in cwd
* build-aux/git-version-gen: Reject a git version string
if there are no commits associated with the current directory.
This avoids an unlikely false-positive (unrelated dir whose parent
repository also contains a tag matching v*), as pointed out
by Giuseppe Scrivano in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=23664
2010-10-13 Paul Eggert <eggert@cs.ucla.edu>
argv-iter: omit nonconforming declaration
* lib/argv-iter.h (enum argv_iter_err): Omit the useless
enum arg_iter_err declaration, which doesn't conform to C99.
Solaris 10 cc warns about this.
2010-10-13 Eric Blake <eblake@redhat.com>
termios: fix compilation on mingw
* m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Set default.
(gl_TERMIOS_H): Adjust it on mingw.
* modules/termios (Makefile.am): Substitute new key.
* lib/termios.in.h (includes): Make include_next conditional.
* doc/posix-headers/termios.texi (termios.h): Update
documentation.
Reported by Daniel P. Berrange.
2010-10-13 Jim Meyering <meyering@redhat.com>
git-version-gen: don't require that .git/ be in the current dir
* build-aux/git-version-gen: Adjust this script so that it works
when run from any working directory beneath the top-level .git/-
containing directory. Inspired by a patch from Giuseppe Scrivano,
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=21847
test-select: avoid warn_unused_result warnings
* tests/test-select.c: Include "macros.h".
ASSERT that each call to read, write, and pipe succeeds.
While not technically required, also check each "close".
* modules/select-tests (Files): Add tests/macros.h.
test-symlinkat: remove declaration of unused local
* tests/test-symlinkat.c (main): Remove unused local, "buf".
test-inttostr: avoid shadowing warnings
* tests/test-inttostr.c (main): Rename local, "buf" to "b",
and use malloc rather than the stack for the same reason as
mentioned in the comment justifying the other allocation.
2010-10-11 Bruno Haible <bruno@clisp.org>
stdlib: Allow multiple gnulib generated replacements to coexist.
* lib/stdlib.in.h (struct random_data): Avoid identical redefinition.
Reported by Sam Steingold <sds@gnu.org>.
2010-10-11 Jim Meyering <meyering@redhat.com>
fix a documentation typo
* doc/posix-functions/futimens.texi (futimens): Fix typo: s/itme/item/
2010-10-11 Eric Blake <eblake@redhat.com>
futimens: work around Solaris 11 bug
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect the bug.
* tests/test-futimens.h (test_futimens): Enhance, rather than
weaken test.
* doc/posix-functions/futimens.texi (futimens): Document the bug.
2010-10-11 Paul Eggert <eggert@cs.ucla.edu>
Indentation.
* lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Indent
higher-level operators more to the left.
2010-10-11 Jim Meyering <meyering@redhat.com>
test-futimens: avoid unwarranted test failure on Solaris 5.11
* tests/test-futimens.h (test_futimens): When provoking EBADF, use an
invalid file descriptor, so we don't provoke EFAULT from Solaris 5.11,
because it tries to dereference the NULL name argument.
2010-10-11 Bruno Haible <bruno@clisp.org>
Indentation.
* lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Improve
indentation.
2010-10-11 Jim Meyering <meyering@redhat.com>
spawn.in.h: make indentation consistent with parentheses
* lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap):
Make indentation consistent with parentheses.
2010-10-11 Gary V. Vaughan <gary@gnu.org>
Fix mismatched parens in previous commit
* lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Fix mismatched
parens.
2010-10-10 Paul Eggert <eggert@cs.ucla.edu>
rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1]
* lib/float+.h (verify_sizeof_flt, verify_sizeof_dbl):
(verify_sizeof_ldbl): Rewrite 2*X-1 to X?1:-1.
* lib/malloca.c: Include "verify.h".
(verify1): Remove, replacing with a verify call.
* lib/relocwrapper.c (verify1): Likewise.
* lib/vasnprintf.c (mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify):
Likewise.
* modules/malloca (Depends-on): Add 'verify'.
* modules/relocatable-prog-wrapper (Depends-on): Add 'verify'.
* modules/vasnprintf (Depends-on): Add 'verify'.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
prefer (X ? 1 : -1) when converting from boolean (1,0) to int (1,-1)
Formerly the style was sometimes 2*X - 1, because the C standard
was wrongly thought to disallow ?: in integral constant expressions.
* lib/inet_ntop.c (verify_int_size): Rewrite 2*X-7 (!) to 4<=X?1:-1.
* lib/signal.in.h (verify_NSIG_constraint): Rewrite 2*X-1 to X?1:-1.
* lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise.
* lib/stdint.in.h (_verify_intmax_size): Likewise.
* lib/time.in.h (struct __time_t_must_be_integral): Rewrite
2 * ((time_t) 1 / 2 == 0) - 1 to (time_t) 1; this suffices to
verify that time_t cannot be floating.
2010-10-08 Eric Blake <eblake@redhat.com>
time: enforce recent POSIX ruling that time_t is integral
* lib/time.in.h (__time_t_must_be_integral): Detect any
problematic systems, allowing the rest of gnulib to assume POSIX.
2010-10-08 Jim Meyering <meyering@redhat.com>
fdopendir: fix a bug on systems lacking openat and /proc support
OpenBSD 4.7 is one such system. The most noticeable effect was
failure of any application making nontrivial use of fts: rm, du,
chown, chmod etc. E.g., "mkdir -p a/b; ./rm -rf a" would fail with
./rm: traversal failed: `a': Bad file descriptor
Debugging that, you see that even though FD 6 was closed just
prior to the opendir call in fd_clone_opendir, its resulting
dir->dd_fd was 8, rather than the expected value of 6:
Breakpoint 3, fdopendir_with_dup (fd=6, older_dupfd=-1) at fdopendir.c:93
93 close (fd);
(gdb) n
94 dir = fd_clone_opendir (dupfd);
(gdb) n
95 saved_errno = errno;
(gdb) p dir->dd_fd
$11 = 8
Notice how it closes FD 6, then gets a DIR* pointer using FD 8.
The problem is that on OpenBSD, fd_clone_opendir has to resort
to using the old-style save/restore CWD mechanism, due to its
lack of openat/proc support, and *that* would steal the FD (6)
that opendir was supposed to use.
The fix is to squirrel away the desired FD so that save_cwd uses a
different one, and then free the dest FD right before calling opendir.
That guarantees opendir will use the required file descriptor.
* lib/fdopendir.c (fd_clone_opendir): Handle the above.
2010-10-08 Bruno Haible <bruno@clisp.org>
sys_select: Avoid warning due to undeclared memset() on OpenBSD 4.5.
* lib/sys_select.in.h: Include <string.h> also on OpenBSD.
2010-10-08 Bruno Haible <bruno@clisp.org>
nanosleep: Make replacement POSIX compliant.
* lib/nanosleep.c (nanosleep): Return -1/EINVAL if the delay's tv_nsec
is out of range.
Reported by Jim Meyering.
2010-10-08 Paul Eggert <eggert@cs.ucla.edu>
bootstrap: add hook for altering gnulib.mk, for Bison
* build-aux/bootstrap (gnulib_mk_hook): New function, so that
the Bison bootstrapping process can rewrite file names and variables
in this file before later parts of 'bootstrap' use the file.
Bison wants to include lib/gnulib.mk from the top-level makefile,
so it needs the file names in this file to be relative to the top
level, not relative to lib; plus it needs variable names to be
rewritten.
(slurp): Use the new function.
bootstrap: reformat for readability
* build-aux/bootstrap: Rewrite to avoid lines longer than 80 columns.
2010-10-08 Eric Blake <eblake@redhat.com>
docs: update cygwin progress
* doc/posix-functions/cacos.texi (cacos): Added after cygwin
1.7.7.
* doc/posix-functions/cacosf.texi (cacosf): Likewise.
* doc/posix-functions/cacosh.texi (cacosh): Likewise.
* doc/posix-functions/cacoshf.texi (cacoshf): Likewise.
* doc/posix-functions/carg.texi (carg): Likewise.
* doc/posix-functions/cargf.texi (cargf): Likewise.
* doc/posix-functions/casin.texi (casin): Likewise.
* doc/posix-functions/casinf.texi (casinf): Likewise.
* doc/posix-functions/casinh.texi (casinh): Likewise.
* doc/posix-functions/casinhf.texi (casinhf): Likewise.
* doc/posix-functions/catan.texi (catan): Likewise.
* doc/posix-functions/catanf.texi (catanf): Likewise.
* doc/posix-functions/catanh.texi (catanh): Likewise.
* doc/posix-functions/catanhf.texi (catanhf): Likewise.
* doc/posix-functions/ccos.texi (ccos): Likewise.
* doc/posix-functions/ccosf.texi (ccosf): Likewise.
* doc/posix-functions/ccosh.texi (ccosh): Likewise.
* doc/posix-functions/ccoshf.texi (ccoshf): Likewise.
* doc/posix-functions/cexp.texi (cexp): Likewise.
* doc/posix-functions/cexpf.texi (cexpf): Likewise.
* doc/posix-functions/cimag.texi (cimag): Likewise.
* doc/posix-functions/cimagf.texi (cimagf): Likewise.
* doc/posix-functions/clog.texi (clog): Likewise.
* doc/posix-functions/clogf.texi (clogf): Likewise.
* doc/posix-functions/conj.texi (conj): Likewise.
* doc/posix-functions/conjf.texi (conjf): Likewise.
* doc/posix-functions/cpow.texi (cpow): Likewise.
* doc/posix-functions/cpowf.texi (cpowf): Likewise.
* doc/posix-functions/cproj.texi (cproj): Likewise.
* doc/posix-functions/cprojf.texi (cprojf): Likewise.
* doc/posix-functions/creal.texi (creal): Likewise.
* doc/posix-functions/crealf.texi (crealf): Likewise.
* doc/posix-functions/csin.texi (csin): Likewise.
* doc/posix-functions/csinf.texi (csinf): Likewise.
* doc/posix-functions/csinh.texi (csinh): Likewise.
* doc/posix-functions/csinhf.texi (csinhf): Likewise.
* doc/posix-functions/csqrt.texi (csqrt): Likewise.
* doc/posix-functions/csqrtf.texi (csqrtf): Likewise.
* doc/posix-functions/ctan.texi (ctan): Likewise.
* doc/posix-functions/ctanf.texi (ctanf): Likewise.
* doc/posix-functions/ctanh.texi (ctanh): Likewise.
* doc/posix-functions/ctanhf.texi (ctanhf): Likewise.
* doc/posix-headers/complex.texi (complex.h): Likewise.
2010-10-07 Jim Meyering <meyering@redhat.com>
parse-datetime: avoid compilation failure on OpenBSD 4.7
* lib/parse-datetime.y (_STDLIB_H) [_STDLIB_H_]: Define.
This works around a compilation failure on OpenBSD 4.7:
http://thread.gmane.org/gmane.comp.parsers.bison.bugs/3418
2010-10-07 Eric Blake <eblake@redhat.com>
docs: update cygwin progress
* doc/glibc-functions/mkostemp.texi (mkostemp): Added in cygwin
1.7.6.
* doc/glibc-functions/mkostemps.texi (mkostemps): Likewise.
* doc/posix-headers/fenv.texi (fenv.h): Added after cygwin 1.7.7.
* doc/posix-functions/feclearexcept.texi (feclearexcept): Likewise.
* doc/posix-functions/fegetenv.texi (fegetenv): Likewise.
* doc/posix-functions/fegetexceptflag.texi (fegetexceptflag):
Likewise.
* doc/posix-functions/fegetround.texi (fegetround): Likewise.
* doc/posix-functions/feholdexcept.texi (feholdexcept): Likewise.
* doc/posix-functions/feraiseexcept.texi (feraiseexcept):
Likewise.
* doc/posix-functions/fesetenv.texi (fesetenv): Likewise.
* doc/posix-functions/fesetexceptflag.texi (fesetexceptflag):
Likewise.
* doc/posix-functions/fesetround.texi (fesetround): Likewise.
* doc/posix-functions/fetestexcept.texi (fetestexcept): Likewise.
* doc/posix-functions/feupdateenv.texi (feupdateenv): Likewise.
* doc/glibc-functions/feenableexcept.texi (feenableexcept):
Likewise.
* doc/glibc-functions/fedisableexcept.texi (fedisableexcept):
Likewise.
* doc/glibc-functions/fegetexcept.texi (fegetexcept): Likewise.
docs: update parse-datetime history
* doc/parse-datetime.texi (Authors of parse_datetime): Better
documentation of this function's history and alternatives.
cygwin: use more robust version check
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Don't
exclude an eventual cygwin 1.9.1.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE)
(gl_FUNC_STRCASESTR): Likewise.
Reported by Bruno Haible.
2010-10-06 Bruno Haible <bruno@clisp.org>
string, sys_select: Avoid #including large headers unless necessary.
* lib/string.in.h: Don't include <unistd.h> except on NetBSD.
* lib/sys_select.in.h: Don't include <string.h> except on Solaris,
OSF/1, BeOS, Haiku.
Reported by Jim Meyering.
2010-10-05 Eric Blake <eblake@redhat.com>
memmem, strstr, strcasestr: fix bug with long periodic needle
* lib/str-two-way.h (two_way_long_needle): Avoid bug with long
periodic needle having false positive.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Detect bug in glibc 2.12
and cygwin 1.7.7.
(gl_FUNC_MEMMEM): Be more pessimistic when cross-compiling.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE)
(gl_FUNC_STRCASESTR): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise.
* tests/test-memmem.c (main): Expose the bug.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* doc/glibc-functions/memmem.texi (memmem): Document the bug.
* doc/posix-functions/strstr.texi (strstr): Likewise.
* doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
Reported via http://sourceware.org/bugzilla/show_bug.cgi?id=12092
2010-10-05 Paul Eggert <eggert@cs.ucla.edu>
parse-datetime: do some more renaming
* doc/parse-datetime.texi (Authors of parse_datetime): Call it
parse_datetime, not get_date. Mention the renaming.
* lib/parse-datetime.y: Call it parse_datetime, not getdate,
in comments.
* m4/bison.m4: Likewise.
2010-10-05 Eric Blake <eblake@redhat.com>
parse-datetime: better name than get_date
* NEWS: Reword the deprecation notice.
* modules/get_date: Rename to modules/parse-datetime.
* modules/get_date-tests: Rename to modules/parse-datetime-tests.
* m4/get_date.m4: Rename to m4/parse-datetime.m4.
* lib/get_date.y: Rename to lib/parse-datetime.y.
* tests/test-get_date.c: Rename to tests/test-parse-datetime.c.
* doc/get_date.texi: Rename to doc/parse-datetime.texi.
* doc/getdate.texi: Provide fallback wrapper.
* lib/getdate.h: Move guts, and wrap...
* lib/parse-datetime.h: ...new file.
* lib/parse-datetime.y (get_date): Rename...
(parse_datetime): ...to this.
* m4/parse-datetime.m4 (gl_GET_DATE): Rename...
(gl_PARSE_DATETIME): ...to this.
* doc/posix-functions/getdate.texi (get_date): Provide fallback
documentation.
* modules/getdate (Files): Provide fallback docs and header.
(Notice, Depends-on): Update references.
* tests/test-parse-datetime.c: Likewise.
* DEPENDENCIES: Likewise.
* MODULES.html.sh (Date and time <time.h>): Likewise.
* doc/parse-datetime.texi (Date input formats)
(Authors of parse_datetime): Likewise.
* modules/parse-datetime (Files, configure.ac, Makefile.am)
(Include): Likewise.
* modules/parse-datetime-tests (Files, Makefile.am): Likewise.
* gnulib-tool: Likewise.
* m4/bison.m4 (gl_BISON): Likewise.
Suggested by Bruno Haible.
2010-10-05 Paul Eggert <eggert@cs.ucla.edu>
more ports to Solaris tr, which needs [] around ranges
* gnulib-tool: Solaris tr needs [] around ranges.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* tests/test-pipe-filter-gi1.c (main): Likewise.
* tests/test-pipe-filter-ii1.c (main): Likewise.
2010-10-05 Eric Blake <eblake@redhat.com>
bootstrap: fix Solaris regression
* build-aux/bootstrap (check_versions): Solaris tr still needs []
around ranges.
Reported by Pádraig Brady.
bootstrap: work with pkg-config
* build-aux/bootstrap (check_versions): Also transliterate - in
prerequisite name.
(print_versions): Be robust to any \ in $buildreq. Avoid listing
prerequisites that were already found, to avoid confusion.
Reported by Justin Clift.
faccessat: remove unused wrappers
* lib/openat.h (accessat, euidaccesat): Delete, since the mere
presence of these wrappers dragged in -lgen on Solaris.
Reported by Clemens Brogi; fix suggested by Paul Eggert.
2010-10-05 Jim Meyering <meyering@redhat.com>
tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@
* Makefile (sc_pragma_columns): New syntax-check rule.
2010-10-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
* gnulib-tool (func_emit_lib_Makefile_am): When preparing for a libtool
library, put '-no-undefined' and the link dependencies into _LDFLAGS.
Reported by Bruce Korb and Eric Blake.
2010-10-04 Bruno Haible <bruno@clisp.org>
threadlib: Make option --with-libpth-prefix work.
* m4/threadlib.m4 (gl_THREADLIB_BODY): When testing whether pth works,
use $LIBPTH, not just -lpth.
2010-10-04 Bruno Haible <bruno@clisp.org>
Avoid line length limitation from HP NonStop system header files.
* m4/include_next.m4 (gl_INCLUDE_NEXT): Define also PRAGMA_COLUMNS.
* lib/arpa_inet.in.h: Use PRAGMA_COLUMNS.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/getopt.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/poll.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stddef.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/termios.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* modules/arpa_inet (Makefile.am): Substitute PRAGMA_COLUMNS.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype (Makefile.am): Likewise.
2010-10-04 Bruno Haible <bruno@clisp.org>
read-file tests: Avoid a test failure on NonStop Kernel.
* tests/test-read-file.c (main): Don't assume that /etc/resolv.conf is
a regular file.
Reported by Joachim Schmitz <schmitz@hp.com>.
2010-10-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fixes for --create-testdir with --libtool.
* gnulib-tool (func_get_automake_snippet): Don't augment
EXTRA_lib_SOURCES for the pt_chown module, since pt_chown.o goes into
an executable.
(func_create_testdir): Handle module 'alloca' like func_import.
Reported by Bruce Korb <bruce.korb@gmail.com>.
2010-10-03 Paul Eggert <eggert@cs.ucla.edu>
Avoid some lines longer than 80 characters.
* lib/stdint.in.h: Break long comment lines.
* lib/math.in.h: Likewise.
(_GL_NUM_UINT_WORDS): New macro, for readability.
(gl_signbitf, gl_signbitd, gl_signbitl): Use it.
* lib/stdio.in.h: Break lines in _GL_WARN_ON_USE calls.
* lib/stdlib.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/sys_socket.in.h: Update an URL.
* lib/sys_stat.in.h: Break long line.
2010-10-03 Reuben Thomas <rrt@sc3d.org>
Improve pmccabe2html.
* build-aux/pmccabe2html: Add CYCLO_SRCS variable, and make
cyclo-$(PACKAGE).html depend on it, so the HTML file is remade
when the sources change. Remove the line in the HTML about "Used
ranges" (which implied that there might be other unused ranges),
rename "Resume" to "Summary" (easier to understand for more users).
* build-aux/pmccabe.css: Removing the dashed dividers, some unused
styles, and some unnecessary blank lines.
2010-10-03 Bruno Haible <bruno@clisp.org>
Joachim Schmitz <schmitz@hp.com> (tiny change)
acl: Add support for ACLs on NonStop Kernel.
* m4/acl.m4 (gl_FUNC_ACL): For Solaris, test for facl(), not for acl().
Check whether the function aclsort() exists.
* lib/acl-internal.h: For Solaris, test HAVE_FACL, not HAVE_ACL.
(acl_nontrivial) [HAVE_ACLSORT]: New declaration.
* lib/file-has-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(acl_nontrivial [HAVE_ACLSORT]: New function.
(file_has_acl): Implement for NonStop Kernel.
* lib/set-mode-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(qset_acl): Implement for NonStop Kernel.
* lib/copy-acl.c (qcopy_acl): Implement for NonStop Kernel.
* tests/test-sameacls.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(main): Implement for NonStop Kernel.
* tests/test-file-has-acl.sh (acl_flavor): Set to 'nsk' on NonStop
Kernel. Handle this flavor.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
2010-10-03 Bruno Haible <bruno@clisp.org>
Info about ACLs on NonStop Kernel.
* doc/acl-resources.txt: Add info about NonStop Kernel.
References by Joachim Schmitz <schmitz@hp.com>.
2010-10-02 Bruno Haible <bruno@clisp.org>
Define missing EDQUOT on NonStop Kernel.
* lib/errno.in.h (EDQUOT): Assign a value if missing.
* lib/strerror.c (rpl_strerror): Handle missing EDQUOT.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is
missing.
* doc/posix-headers/errno.texi: Mention the NSK bug.
* doc/posix-functions/strerror.texi: Mention the workaround on NSK.
Reported by Joachim Schmitz <schmitz@hp.com>.
2010-10-02 Bruno Haible <bruno@clisp.org>
Update doc for POSIX:2008.
* doc/posix-headers/*.texi [except ucontext.texi, sys_timeb.texi]:
Update URL of POSIX specification.
2010-10-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
* gnulib-tool (func_create_testdir): Use config.guess and config.sub
from gnulib, not from Automake.
2010-10-02 Bruno Haible <bruno@clisp.org>
New module 'system-posix'.
* modules/system-posix: New file.
* lib/stdlib.in.h: Include <sys/wait.h> only when the 'system-posix'
module is present.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
GNULIB_SYSTEM_POSIX.
* modules/stdlib (Depends-on): Remove sys_wait.
(Makefile.am): Substitute GNULIB_SYSTEM_POSIX.
* doc/posix-functions/system.texi: Mention the new module.
* doc/posix-headers/stdlib.texi: Likewise.
* tests/test-stdlib.c: If GNULIB_TEST_SYSTEM_POSIX is not defined,
define test_sys_wait_macros to a no-op.
Reported by Sam Steingold <sds@gnu.org>.
2010-09-30 Bruno Haible <bruno@clisp.org>
More renaming from 'getdate' to 'get_date'.
* doc/get_date.texi: Renamed from doc/getdate.texi.
* modules/get_date (Files): Update.
* MODULES.html.sh (Date and time <time.h>): Update.
* DEPENDENCIES: Update.
* gnulib-tool: Update comment.
* m4/bison.m4 (gl_BISON): Likewise.
* m4/get_date.m4 (gl_GET_DATE): Likewise.
2010-09-30 Justin Clift <jclift@redhat.com> (tiny change)
bootstrap: support ACLOCAL_FLAGS during aclocal
* build-aux/bootstrap (aclocal): Honor ACLOCAL_FLAGS, so the user
can add additional -I dir for third-party .m4 files.
2010-09-30 Eric Blake <eblake@redhat.com>
bootstrap: use glibtoolize on MacOS
* build-aux/bootstrap (check_versions): Convert libtool into
libtoolize.
(tool search): Move libtool check earlier, and look for
glibtoolize for MacOS.
(gnulib_tool_options): Auto-add --libtool when appropriate.
Reported by Justin Clift.
poll: fix typo that broke test on MacOS
* m4/poll.m4 (gl_FUNC_POLL): Add missing test.
Reported by Justin Clift.
getdate: rename to get_date
Note: getdate.h is not renamed, to minimize client impact.
* modules/getdate: Mark obsolete. Move old contents...
* modules/get_date: ...to new module name.
* modules/getdate-tests: Move...
* modules/get_date-tests: ...here.
* m4/getdate.m4: Move...
* m4/get_date.m4: ...here, and rename gl_GETDATE to gl_GET_DATE.
* lib/getdate.y: Move...
* lib/get_date.y: ...here.
* tests/test-getdate.c: Move...
* tests/test-get_date.c: ...here.
* doc/posix-functions/getdate.texi (getdate): Update name.
* NEWS: Mention the change.
2010-09-29 Bruno Haible <bruno@clisp.org>
Separate the module 'waitpid' from the module 'sys_wait'.
* lib/sys_wait.in.h (waitpid): Declare only if the 'waitpid' module is
present.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR_FOR_TESTS.
(gl_SYS_WAIT_H_DEFAULTS): Initialize GNULIB_WAITPID.
* modules/sys_wait (Depends-on): Remove waitpid.
(Makefile.am): Substitute GNULIB_WAITPID.
* modules/waitpid (configure.ac): Invoke gl_SYS_WAIT_MODULE_INDICATOR.
* tests/test-sys_wait-c++.cc (GNULIB_NAMESPACE::waitpid): Check the
signature only if the 'waitpid' module is present.
* doc/posix-functions/waitpid.texi: Mention the 'waitpid' module.
* NEWS: Mention the change.
* modules/grantpt (Depends-on): Add waitpid.
* modules/wait-process (Depends-on): Likewise.
2010-09-29 Bruno Haible <bruno@clisp.org>
More tests for module 'sys_wait'.
* modules/sys_wait-c++-tests: New file.
* tests/test-sys_wait-c++.cc: New file.
* modules/sys_wait-tests (Depends-on): Add sys_wait-c++-tests.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.
2010-09-29 Bruno Haible <bruno@clisp.org>
New module 'waitpid'.
* lib/waitpid.c: New file, extracted from lib/sys_wait.in.h.
* lib/sys_wait.in.h: Include <sys/types.h>, c++defs.h, warn-on-use.h.
Don't include <process.h>.
(waitpid): Declare only, using modern idiom.
* m4/waitpid.m4: New file.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Check whether waitpid is declared.
* modules/waitpid: New file.
* modules/sys_wait (Depends-on): Add c++defs, warn-on-use, waitpid.
(Makefile.am): Update.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.
2010-09-28 Bruno Haible <bruno@clisp.org>
poll: Assume ANSI C.
* lib/poll.c (poll): Use an ANSI C declaration.
2010-09-28 Bruno Haible <bruno@clisp.org>
poll-h: Create poll.h on all platforms.
* lib/poll.in.h: Use double-inclusion guard. Don't define POLL*,
struct pollfd, nfds_t, INFTIM when the system has <poll.h>.
* m4/poll_h.m4 (gl_POLL_H): Set HAVE_POLL_H. Invoke
gl_CHECK_NEXT_HEADERS. Don't set POLL_H.
(gl_REPLACE_POLL_H): Don't set POLL_H.
(gl_POLL_H_DEFAULTS): Don't initialize POLL_H.
* modules/poll-h (Depends-on): Add include_next.
(Makefile.am): Create poll.h unconditionally. Substitute also
HAVE_POLL_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_POLL_H.
2010-09-28 Bruno Haible <bruno@clisp.org>
Tests for module 'poll-h'.
* modules/poll-h-c++-tests: New file.
* tests/test-poll-h-c++.cc: New file.
Tests for module 'poll-h'.
* modules/poll-h-tests: New file.
* tests/test-poll-h.c: New file.
2010-09-28 Bruno Haible <bruno@clisp.org>
poll-h: Ensure POLL{RD,WR}{NORM,BAND} are defined on glibc platforms.
* modules/poll-h (Depends-on): Add 'extensions'.
2010-09-28 Bruno Haible <bruno@clisp.org>
New module 'poll-h'.
* lib/poll.in.h: Include c++defs.h and warn-on-use.h.
(poll): Use modern idiom.
* modules/poll-h: New file.
* modules/poll (Files): Remove lib/poll.in.h.
(Depends-on): Add poll-h.
(configure.ac): Invoke gl_POLL_MODULE_INDICATOR.
(Makefile.am): Move code for generation of poll.h to modules/poll-h.
* m4/poll_h.m4: New file.
* m4/poll.m4 (gl_FUNC_POLL): Require gl_POLL_H. Don't check for poll.h
here. Don't set POLL_H here. Instead, set HAVE_POLL and REPLACE_POLL
and invoke gl_REPLACE_POLL_H.
* lib/poll.c: Use common idiom.
* tests/test-poll.c: Likewise.
* doc/posix-headers/poll.texi: Mention the poll-h module.
Suggested by Eric Blake.
2010-09-26 Bruno Haible <bruno@clisp.org>
sys_wait: Implement WSTOPSIG.
* lib/sys_wait.in.h (WSTOPSIG): New macro.
Reported by Simon Josefsson.
2010-09-26 Simon Josefsson <simon@josefsson.org>
stdlib, sys_wait: Avoid compilation error on mingw.
* lib/sys_wait.in.h: Include <signal.h>, for SIGTERM.
2010-09-26 Bruno Haible <bruno@clisp.org>
stdlib tests: Avoid code duplication.
* modules/stdlib-tests (Files): Add tests/test-sys_wait.h.
* modules/sys_wait-tests (Files): Likewise.
* tests/test-sys_wait.h: New file, extracted from tests/test-stdlib.c.
* tests/test-stdlib.c: Include test-sys_wait.h.
(main): Invoke test_sys_wait_macros.
* tests/test-sys_wait.c: Include test-sys_wait.h.
(main): Invoke test_sys_wait_macros.
2010-09-25 Simon Josefsson <simon@josefsson.org>
* modules/getaddrinfo (Depends-on): Depend on the sockets module.
* lib/getaddrinfo.c (use_win32_p): Call gl_sockets_startup to make
sure Windows sockets are working before calling getaddrinfo.
* tests/test-getaddrinfo.c (main): Don't call WSAStartup here.
* doc/gnulib.texi (Windows sockets): Fix typo.
2010-09-25 Bruno Haible <bruno@clisp.org>
Tests for module 'regex-quote'.
* modules/regex-quote-tests: New file.
* tests/test-regex-quote.c: New file.
New module 'regex-quote'.
* lib/regex-quote.h: New file.
* lib/regex-quote.c: New file.
* modules/regex-quote: New file.
Suggested by Reuben Thomas <rrt@sc3d.org>.
2010-09-24 Bruno Haible <bruno@clisp.org>
unistr/u8-strchr: Fix a test failure on i586 glibc systems.
* tests/unistr/test-strchr.h (test_strchr): Disable an invalid check.
2010-09-23 Bruno Haible <bruno@clisp.org>
setenv: Relax license.
* modules/setenv (License): Change to LGPLv2+, with consent by Eric
Blake.
Requested by Eric Blake.
2010-09-22 Bruno Haible <bruno@clisp.org>
termios: Relax license.
* modules/termios (License): Change to LGPLv2+.
Requested by Eric Blake.
2010-09-22 Bruno Haible <bruno@clisp.org>
threadlib: Allow the package to change the default to 'no'.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): When
gl_THREADLIB_DEFAULT_NO is defined, change the default to 'no'.
Reported by Paul Eggert.
2010-09-22 Pádraig Brady <P@draigbrady.com>
Bruno Haible <bruno@clisp.org>
Fix endless loop in mbmemcasecoll.
* lib/mbmemcasecoll.c (apply_towlower): When mbrtowc returns 0, copy 1
byte.
* tests/test-mbmemcasecmp.h (test_ascii): Test embedded NULs.
2010-09-22 Bruno Haible <bruno@clisp.org>
Tests for module 'memcoll'.
* modules/memcoll-tests: New file.
* tests/test-memcoll.c: New file, based on tests/test-memcmp.c.
memcoll, xmemcoll: Clarify size vs. length.
* modules/memcoll.c (memcoll0): Clarify specification.
* modules/xmemcoll.c (xmemcoll0): Likewise. Reduce by 1 the lengths
passed to collate_error.
2010-09-22 Bruno Haible <bruno@clisp.org>
Tests for module 'memcasecmp'.
* modules/memcasecmp-tests: New file.
* tests/test-memcasecmp.c: New file, based on tests/test-memcmp.c.
2010-09-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/pthread.in.h: Add split double-inclusion guard, and include
system <pthread.h> if there is one. Use @@-style as in other
.in.h files. Define PTHREAD_COND_INITIALIZER etc. only if system
pthread.h doesn't.
(pthread_mutexattr_destroy, pthread_mutexattr_init):
(pthread_mutexattr_settype, pthread_mutex_trylock):
New static inline functions, if there's no system <pthread.h>.
(pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy):
(pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock):
Approximate with mutexes if the system lacks spinlocks, as in
MacOS.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Require gl_PTHREAD_DEFAULTS.
Add gl_CHECK_NEXT_HEADERS for pthread.h, and support the usual
@@-style. Check for spinlocks separately.
(gl_PTHREAD_DEFAULTS): New macro.
* modules/pthread: Redo to use a more typical style for in.h files.
2010-09-21 Eric Blake <eblake@redhat.com>
net_if: enhance tests
* tests/test-net_if.c (main): Move signature checks earlier.
Print failures to stderr.
* doc/posix-functions/if_freenameindex.texi (if_freenameindex):
Document the bug that we do not yet fix.
2010-09-21 Reuben Thomas <rrt@sc3d.org>
* doc/gnulib.texi (Out of memory handling): Rewrite section to be
about gnulib, not GSS.
2010-09-21 Reuben Thomas <rrt@sc3d.org>
* build-aux/pmccabe2html: Look for sources in src/ instead of lib/.
* build-aux/pmccabe2html: Set cut_dir properly, and add mode line
for Emacs.
* build-aux/pmccabe2html: Make Makefile.am example code more
cut-and-paste friendly.
2010-09-21 Simon Josefsson <simon@josefsson.org>
* tests/test-net_if.c: New file.
* modules/net_if-tests: New file.
2010-09-20 Paul Eggert <eggert@cs.ucla.edu>
pthread: add pthread_spin_destroy
* lib/pthread.in.h (pthread_spin_destroy): New function.
2010-09-19 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix --help output.
* gnulib-tool (func_usage): Fix help message.
Reported by Reuben Thomas <rrt@sc3d.org>.
2010-09-18 Jim Meyering <meyering@redhat.com>
maint.mk: avoid unexpanded \n in two diagnostics
* top/maint.mk (sc_prohibit_always_true_header_tests):
Don't use a literal \n in a halt=... assignment. It would not be
expanded, and the two \n bytes would appear in the diagnostic output
rather than the desired newline. Use halt=$$(printf ... instead.
(sc_vulnerable_makefile_CVE-2009-4029): Likewise.
2010-09-18 Bruno Haible <bruno@clisp.org>
netinet_in: Doc tweak.
* doc/posix-headers/netinet_in.texi: Mention an affected platform.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
2010-09-18 Jim Meyering <meyering@redhat.com>
init.sh: correct an outdated comment
* tests/init.sh (create_exe_shims_): s/function/alias/
init.sh: don't let an ephemeral "*.exe" make us skip all dir entries
* tests/init.sh (find_exe_basenames_): Don't give up on a directory if
a file named "*.exe" is removed between the glob expansion and the
processing of that oddly named file.
2010-09-17 Eric Blake <eblake@redhat.com>
mirbsd: add some more support
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): MirBSD is
in BSD family.
* m4/gc-random.m4 (gl_GC_RANDOM): MirBSD supports same random
devices as OpenBSD.
* m4/host-os.m4 (mirbsd): Add MirBSD.
tests: fix unportable assumption on sys/wait.h
* tests/test-sys_wait.c (main): Relax test.
* tests/test-stdlib.c (main): Likewise.
init.sh: accommodate directory with no .exes
* tests/init.sh: Accomodate directory containing only scripts.
tests: avoid compiler warning
* tests/test-stdlib.c (main): Use the variable.
fdutimens, fdutimensat: update signature, again
* lib/utimens.h (gl_futimens): Delete, and move signature...
(fdutimens): ...here.
(fdutimensat): Rearrange signature.
(lutimensat): Rename variable for clarity.
* lib/fdutimensat.c (fdutimensat): Update signature.
* lib/utimens.c (fdutimens): Likewise.
(gl_futimens): Delete.
(utimens, lutimens): Update callers.
* lib/futimens.c (futimens): Likewise.
* tests/test-fdutimensat.c: Likewise.
* tests/test-utimens.c: Likewise.
* tests/test-futimens.h: Update comment.
* NEWS: Mention this.
Suggested by Paul Eggert.
2010-09-17 Bruno Haible <bruno@clisp.org>
Take over the maintenance of some older macros from Autoconf.
* m4/error.m4 (AC_FUNC_ERROR_AT_LINE): New macro, from GNU Autoconf.
* m4/lstat.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): New macro, from
GNU Autoconf.
* m4/memcmp.m4 (AC_FUNC_MEMCMP): New macro, from GNU Autoconf.
* m4/mktime.m4 (AC_FUNC_MKTIME): Change comment.
2010-09-17 Eric Blake <eblake@redhat.com>
fdutimensat: drop atflag validation
* lib/fdutimensat.c (fdutimensat): Allow AT_SYMLINK_NOFOLLOW even
with valid fd, to close a race scenario where futimens is
unsupported and FILE was replaced by a symlink.
* tests/test-fdutimensat.c (do_fdutimens, main): Adjust test
accordingly.
Suggested by Paul Eggert.
2010-09-16 Bruno Haible <bruno@clisp.org>
unlockpt: Fix declaration within GNULIB_POSIXCHECK.
* lib/stdlib.in.h (unlockpt): Fix warning declaration.
2010-09-16 Bruno Haible <bruno@clisp.org>
login_tty: Fix detection of function on FreeBSD, OpenBSD, NetBSD.
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Augment LIBS while checking whether
login_tty exists.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
2010-09-16 Bruno Haible <bruno@clisp.org>
login_tty: Make the replacement code work on BSD systems.
* lib/login_tty.c: Include <sys/ioctl.h>.
(login_tty): Use ioctl TIOCSCTTY when available.
* modules/login_tty (Depends-on): Add sys_ioctl.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
2010-09-16 Bruno Haible <bruno@clisp.org>
login_tty: Stricter unit test.
* modules/login_tty-tests (Depends-on): Add tcgetsid.
* tests/test-login_tty.c (main): Also check the results of tcgetpgrp()
and tcgetsid() after login_tty.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
2010-09-16 Bruno Haible <bruno@clisp.org>
New module 'tcgetsid'.
* lib/tcgetsid.c: New file.
* m4/tcgetsid.m4: New file.
* modules/tcgetsid: New file.
* modules/termios (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Ensure c++defs.h, warn-on-use.h get included. Substitute
GNULIB_TCGETSID, HAVE_TCGETSID.
* lib/termios.in.h: Include <sys/types.h>.
(tcgetsid): New declaration.
* m4/termios_h.m4 (gl_TERMIOS_H): Check whether tcgetsid is declared.
(gl_TERMIOS_H_DEFAULTS): Initialize GNULIB_TCGETSID, HAVE_TCGETSID.
* doc/posix-functions/tcgetsid.texi: Mention the new module.
* tests/test-termios-c++.cc: Check GNULIB_NAMESPACE::tcgetsid.
2010-09-16 Bruno Haible <bruno@clisp.org>
Tests for module 'termios'.
* modules/termios-c++-tests: New file.
* modules/termios-tests: New file.
* tests/test-termios-c++.cc: New file.
* tests/test-termios.c: New file.
New module 'termios'.
* modules/termios: New file.
* lib/termios.in.h: New file.
* m4/termios_h.m4: New file.
* doc/posix-headers/termios.texi: Mention the new module.
2010-09-16 Eric Blake <eblake@redhat.com>
fdutimensat: add an atflag parameter
* lib/fdutimensat.c (fdutimensat): Add new parameter.
* lib/utimens.h (fdutimensat): Update prototype.
* tests/test-fdutimensat.c: Adjust test to match.
* NEWS: Document the change.
Suggested by Paul Eggert.
2010-09-16 Bruno Haible <bruno@clisp.org>
Fix typos in comments.
* lib/striconveh.h: Fix typo in comment.
* lib/login_tty.c (login_tty): Likewise.
2010-09-15 Bruno Haible <bruno@clisp.org>
stdlib: clarify MirBSD WEXITSTATUS bug
* lib/stdlib.in.h: Clarify the MirBSD bug regarding WEXITSTATUS.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
2010-09-15 Eric Blake <eblake@redhat.com>
stdlib: work around MirBSD WEXITSTATUS bug
* lib/stdlib.in.h (includes): Guarantee WEXITSTATUS.
* modules/stdlib (Depends-on): Add sys_wait.
* tests/test-sys_wait.c (main): Enhance test.
* tests/test-stdlib.c (main): Likewise.
* doc/posix-headers/stdlib.texi (stdlib.h): Document the bug.
docs: mention MacOS issue with WEXITSTATUS(constant)
* doc/posix-headers/sys_wait.texi (sys/wait.h): Document the
issue.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
strnlen: add tests
* modules/strnlen-tests: New file.
* tests/test-strnlen.c: Likewise.
2010-09-14 Bruno Haible <bruno@clisp.org>
unistr/base: Avoid link errors when module 'libunistring' is also used.
* lib/unistr.in.h (u8_mbtouc_unsafe, u16_mbtouc_unsafe,
u32_mbtouc_unsafe, u8_mbtouc, u16_mbtouc, u32_mbtouc, u8_mbtoucr,
u16_mbtoucr, u32_mbtoucr, u8_uctomb_aux, u16_uctomb_aux, u32_uctomb):
Declare also when HAVE_LIBUNISTRING is set.
Reported by Pádraig Brady <P@draigbrady.com>.
2010-09-14 Eric Blake <eblake@redhat.com>
test-rawmemchr: make more robust
* modules/rawmemchr-tests (Files): Add zerosize-ptr.h, mmap-anon.m4.
(Depends-on, configure.ac): Add needed prerequisites to use it.
* modules/memchr-tests (Files, Depends-on, configure.ac):
Likewise, to avoid implicit reliance on memchr module prereqs.
* tests/test-memchr.c (main): Ensure proper masking.
* tests/test-rawmemchr.c (main): Likewise. Detect oversized
reads.
memchr: detect glibc Alpha bug
Avoids http://sourceware.org/bugzilla/show_bug.cgi?id=12019.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Detect glibc 2.11.2 failure on
Alpha.
* doc/posix-functions/memchr.texi (memchr): Tweak wording.
* tests/test-memchr.c (main): Enhance test.
Reported by Nelson H. F. Beebe.
2010-09-13 Paul Eggert <eggert@cs.ucla.edu>
fts, getcwd, glob: audit for dirfd returning -1
* lib/fts.c (opendir): Remove #define; no longer used.
(opendirat): New arg PDIR_FD. All callers changed.
(fts_build, _opendir2): Use new opendirat to avoid the need for
dirfd, or for checking whether dirfd returns a negative value.
Don't use opendir; always use openat followed by fdopendir.
* lib/getcwd.c (__getcwd): Don't reset fd; fdopendir no longer clobbers
it.
* lib/glob.c (link_exists_p): Add comment explaining why dirfd never
returns -1 here.
* modules/fts (Depends-on): Remove dirfd.
* modules/getcwd (Depends-on): Likewise.
2010-09-13 Eric Blake <eblake@redhat.com>
float: fix broken MirBSD header
* m4/float_h.m4 (gl_FLOAT_H): MirBSD copied OpenBSD's bug.
* doc/posix-headers/float.texi (float.h): Document it.
2010-09-13 Paul Eggert <eggert@cs.ucla.edu>
fts: use O_NOFOLLOW to avoid race condition when opening a directory
* lib/fts.c (opendirat): New arg extra_flags.
(__opendir2): Use it to avoid following symlinks when opening
a directory, if symlinks are not supposed to be followed. See
<http://lists.gnu.org/r/bug-gnulib/2010-09/msg00213.html>.
fdopendir: preserve argument fd before returning
* lib/fdopendir.c: Adjust comments to say POSIX, not Solaris.
(fdopendir_with_dup, fd_clone_opendir): New static functions.
(fdopendir): Use them, arranging for FD to be open to the same
directory that it was when it started. (It might be temporarily
closed while fdopendir is running, so this not thread- or
signal-safe.) Be careful to do the right thing even when file
descriptors are scarce and dup fails with errno == EMFILE. See
<http://lists.gnu.org/r/bug-gnulib/2010-09/msg00208.html>.
2010-09-10 Paolo Bonzini <bonzini@gnu.org>
regex: Pass the system regex if its only problem is 32-bit regoff_t.
* NEWS: Document change.
* m4/regex.m4: Disable test for regoff_t size.
2010-09-13 Jim Meyering <meyering@redhat.com>
fts: don't operate on an invalid file descriptor after failed dup
* lib/fts.c (fts_build): Don't call set_cloexec_flag on a
negative file descriptor.
2010-09-12 Paul Eggert <eggert@cs.ucla.edu>
savedir: add streamsavedir, deprecate fdsavedir
* NEWS: Mention deprecation of fdsavedir.
* lib/savedir.c (streamsavedir): New extern function, whose name
ends in "savedir" to be consistent with the others. This differs
from savedirstream in that it doesn't close its argument. The
next version of GNU tar will use this instead of fdsavedir, to
avoid some race conditions and conserve file descriptors.
(savedirstream): Reimplement as a wrapper around streamsavedir.
(fdsavedir): Add a comment deprecating this function. As far as
I know, only GNU tar used it, and GNU tar doesn't need it any more.
* lib/savedir.h (streamsavedir): New decl.
(fdsavedir): Add a comment deprecating this.
2010-09-10 Bruno Haible <bruno@clisp.org>
langinfo: Fix last commit.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Initialize
HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2010-09-10 Bruno Haible <bruno@clisp.org>
relocatable-prog-wrapper: Fix compilation failure due to O_EXEC.
* lib/progreloc.c (O_EXEC): Define fallback.
2010-09-10 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h: define O_CLOEXEC and O_EXEC if not defined; use new defines
* NEWS: Document recent changes to fcntl-h.
* doc/posix-headers/fcntl.texi (fcntl.h): Document that
O_CLOEXEC is now defined to 0 if it is not defined, like other flags.
Also, O_EXEC is now defined to be O_RDONLY if O_EXEC is not defined.
Similarly for O_SEARCH; this last was already true, but not documented.
* lib/fcntl.in.h (O_CLOEXEC): Define to 0 if not defined.
* lib/dup-safer-flag.c (O_CLOEXEC): Remove now-useless #define.
* lib/dup3.c, lib/pipe2.c, tests/test-dup-safer.c, tests/test-fcntl.c:
Likewise.
* lib/popen-safer.c (open_noinherit): Check whether O_CLOEXEC
is zero, not whether it is defined.
* tests/test-dup3.c, tests/test-pipe2.c (main): Likewise.
* lib/progreloc.c (find_executable): Use O_EXEC rather than O_RDONLY.
* lib/open.c (open): Check for O_SEARCH as well as for O_RDONLY.
2010-09-10 Bruno Haible <bruno@clisp.org>
langinfo, nl_langinfo: Fix for IRIX 5.3.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Test whether langinfo.h defines
T_FMT_AMPM, YESEXPR. Set HAVE_LANGINFO_T_FMT_AMPM,
HAVE_LANGINFO_YESEXPR.
* modules/langinfo (Makefile.am): Substitute HAVE_LANGINFO_T_FMT_AMPM,
HAVE_LANGINFO_YESEXPR.
* lib/langinfo.in.h (T_FMT_AMPM, GNULIB_defined_T_FMT_AMPM): Define if
HAVE_LANGINFO_T_FMT_AMPM is 0.
(YESEXPR, NOEXPR, GNULIB_defined_YESEXPR): Define if
HAVE_LANGINFO_YESEXPR is 0.
* lib/nl_langinfo.c (rpl_nl_langinfo): Handle also T_FMT_AMPM, YESEXPR,
NOEXPR.
* doc/posix-headers/langinfo.texi: Mention the IRIX 5.3 problem.
* doc/posix-functions/nl_langinfo.texi: Likewise.
Reported by Eric Blake.
2010-09-10 Bruno Haible <bruno@clisp.org>
pty, readutmp: Fix for FreeBSD 8.0 and OpenBSD 4.6.
* doc/glibc-functions/login_tty.texi: Mention the include file problem
on FreeBSD 8.0 and OpenBSD 4.6.
* lib/pty.in.h: Include <sys/types.h> before <libutil.h>.
* m4/pty_h.m4 (gl_PTY_H): Likewise.
* m4/pty.m4 (gl_FUNC_FORKPTY, gl_FUNC_OPENPTY): Likewise.
* m4/readutmp.m4 (gl_READUTMP): Include <sys/types.h> before <utmp.h>.
Invoke AC_INCLUDES_DEFAULT instead of using the undocumented variable
ac_includes_default.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.
2010-09-09 Eric Blake <eblake@redhat.com>
strsignal: work around NetBSD bug
* m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Also check in <unistd.h>.
* lib/string.in.h (includes): Likewise.
* doc/posix-functions/strsignal.texi (strsignal): Document the
bug.
Reported by Nelson H. F. Beebe.
gnulib-tool: work with NetBSD /bin/sh
* gnulib-tool (func_cache_var, func_cache_lookup_module)
(func_get_description, func_get_comment, func_get_status)
(func_get_notice, func_get_applicability, func_get_filelist)
(func_get_dependencies, func_get_autoconf_early_snippet)
(func_get_autoconf_snippet, func_get_automake_snippet)
(func_get_include_directive, func_get_link_directive)
(func_get_license, func_get_maintainer, func_import): Avoid
shell syntax errors from parsing syntax extensions.
2010-09-09 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
* gnulib-tool: Don't fiddle with file descriptors 0, 1, 2. Instead, use
a reliable way to determine whether the 'alias' command works.
2010-09-08 Jim Meyering <meyering@redhat.com>
init.sh: penalize a set-x-impaired shell; don't disqualify it
* tests/init.sh: Too many shells corrupt application stderr when
you set -x, so we can't afford to disqualify them, since at least
on Irix-6.5, that would disqualify all bourne shells.
Instead, use a two-pass approach.
On the first pass, try to find a shell that meets the stricter
condition that set -x does not corrupt stderr.
If no shell meets the stricter condition, retest each candidate
shell, but without that extra condition. Finally, when
VERBOSE=yes is requested and set -x might cause trouble, simply
issue a warning and refrain from enabling debug output.
2010-09-08 Eric Blake <eblake@redhat.com>
unsetenv: fix OpenBSD bug
* m4/setenv.m4 (gl_FUNC_UNSETENV): Check for OpenBSD bug.
* doc/posix-functions/unsetenv.texi (unsetenv): Update
documentation.
Reported by Jim Meyering.
strtod: work around IRIX 6.5 bug
* lib/strtod.c (strtod): Reparse number on shorter string if
exponent parse was invalid.
* tests/test-strtod.c (main): Add check for "0x1p 2".
Reported by Tom G. Christensen.
getopt: optimize previous patch
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Correctly check for
empty variable. Speed up awk script.
Reported by Paolo Bonzini.
2010-09-08 Jim Meyering <meyering@redhat.com>
test.sh: disqualify shells for which set -x corrupts stderr
* tests/init.sh: Add a test to disqualify /bin/sh from SunOS 5.11
and OpenBSD 4.7. They make it so with "set -x", environment settings
appear in stderr output. For example, this command:
/bin/sh -c 'set -x; P=1 true 2> err' 2>/dev/null; cat err
prints "P=1" on those two systems:
2010-09-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
* gnulib-tool: Use stderr redirection around the 'alias' and 'unalias'
commands, because some shells ignore redirections when there is an
error in the command lookup.
Reported by Eric Blake.
2010-09-07 Reuben Thomas <rrt@sc3d.org>
* lib/regex.h: Fix a mention of `regex_compile' (should be
`re_compile_pattern').
Correct and clarify documentation for RE_CONTEXT_INVALID_DUP.
(re_set_registers): Correct name of parameter in comment.
* doc/regex.texi: Add documentation for missing syntax flags.
Remove commented-out documentation of defunct syntax option
RE_NO_EMPTY_ALTS.
Correct name of RE_CHAR_CLASSES in one incorrect occurrence.
Add documentation of re_set_registers.
Document trick to re-use a pattern buffer by setting fastmap manually.
Update documentation of struct re_pattern_buffer per public members.
Uncomment documentation of equivalence class operators and
collating symbol operators, since they are now implemented,
Explain leftmost-longest matching in relation to alternatives.
Tidy documentation of substring matching.
Remove POSIX documentation, which is done better in
glibc, and refer the reader there. Keep BSD API documentation, as
that is not readily available elsewhere.
2010-09-07 Eric Blake <eblake@redhat.com>
getopt: handle POSIXLY_CORRECT set but not exported
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Restore pre-existing
export state of POSIXLY_CORRECT, due to bash set -o posix.
Reported by Dustin J. Mitchell.
2010-09-05 Bruno Haible <bruno@clisp.org>
gnulib-tool: Highlight the changed options.
* gnulib-tool (func_usage): Display the --import, --add-import,
--remove-import explanations in bold font.
2010-09-06 Karl Berry <karl@gnu.org>
* doc/gnulib-tool.texi (Modified imports): doc tweaks.
2010-09-05 Bruno Haible <bruno@clisp.org>
uniwidth/width: Update comment.
* lib/uniwidth/width.c (uc_width): Update comment for Unicode >= 3.1.
Reported by Emanuele Giaquinta <emanuele.giaquinta@gmail.com>.
2010-09-05 Bruno Haible <bruno@clisp.org>
isinf, isnan: Relax license.
* modules/isinf (License): Change from GPL to LGPL, with consent from
Ben Pfaff.
* modules/isnan (License): Likewise.
Requested by Ludovic Courtès.
2010-09-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Help migration from --import to --add-import or --update.
* gnulib-tool: Emit a verbose error message when --import is used
without any module name.
2010-09-04 Bruno Haible <bruno@clisp.org>
Update doc about gnulib-tool.
* doc/gnulib-tool.texi (VCS Issues): Explain 'gnulib-tool --import' vs.
'gnulib-tool --update' in more detail.
Reported by Eric Blake.
2010-09-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Change --import. New options --add/remove-import.
* gnulib-tool: New options --add-import, --remove-import.
(func_usage): Document them.
(have_associative): Define always.
(func_import): In import mode, don't merge the specified settings with
the cached settings. Implement remove-import mode.
* doc/gnulib-tool.texi (Modified imports): Mention the new options.
Explain when to use them versus --import.
(Simple update): Use --add-import instead of --import.
* NEWS: Mention the change.
2010-09-04 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Initial import): Update paragraph about
separate gnulib.mk.
2010-09-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't talk about CVS any more.
* gnulib-tool (func_usage, func_import): Write "version control"
instead of CVS.
2010-09-04 Jim Meyering <meyering@redhat.com>
maint.mk: avoid obscure sc_copyright_check failure in coreutils
* top/maint.mk (v_etc_file): Prepend $(gnulib_dir)/, to avoid
false positives (whose names may be ill-chosen) when searching
non-VC'd files. Otherwise, a file named "a b/lib/version-etc.c"
would cause a false-positive.
avoid coreutils "make distcheck" failure
Coreutils tests with an absolute build directory name that contains
a space. Not quoting this directory name caused a failure.
* tests/test-vc-list-files-git.sh: Quote PATH dir name.
* tests/test-vc-list-files-cvs.sh: Likewise.
2010-09-04 Bruno Haible <bruno@clisp.org>
gnulib-tool: Avoid error when run in a package without Makefile.am.
* gnulib-tool: When collecting the m4dirs in a package that does not
have a Makefile.am, eliminate those directories that contain no
gnulib-cache.m4. Fix expression that counts these directories.
2010-09-04 Bruno Haible <bruno@clisp.org>
update-copyright test: Improve output when perl is missing or too old.
* tests/test-update-copyright.sh: Move test of Perl version down after
the test whether Perl exists. Provide an explanation relating Perl's
error message to Automake's SKIP: message.
2010-09-04 Bruno Haible <bruno@clisp.org>
Don't augment PATH in TESTS_ENVIRONMENT.
* modules/update-copyright-tests (Makefile.am): In TESTS_ENVIRONMENT,
set abs_aux_dir instead of augmenting PATH.
* modules/vc-list-files-tests (Makefile.am): Likewise.
* tests/test-update-copyright.sh: Augment PATH here.
* tests/test-vc-list-files-cvs.sh: Augment PATH here, through
path_prepend_.
* tests/test-vc-list-files-git.sh: Likewise.
2010-09-04 Jim Meyering <meyering@redhat.com>
tests: prohibit augmenting PATH via TESTS_ENVIRONMENT
* Makefile (sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT): New rule.
2010-09-04 Bruno Haible <bruno@clisp.org>
strdup: Fix compilation error in C++ mode.
* lib/string.in.h (strdup): In C++ mode with GNULIB_NAMESPACE, undefine
the macro.
2010-09-04 Bruno Haible <bruno@clisp.org>
dirfd: Fix compilation error in C++ mode on MacOS X, *BSD, IRIX.
* lib/dirent.in.h (dirfd): In C++ mode with GNULIB_NAMESPACE, turn the
macro into a function.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-09-04 Bruno Haible <bruno@clisp.org>
Set PATH_SEPARATOR the same way autoconf does.
* build-aux/relocatable.sh.in (func_find_curr_installdir): Determine
the value of PATH_SEPARATOR the same way autoconf-generated configure
scripts do.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise.
2010-09-04 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
Set PATH_SEPARATOR the same way autoconf does.
* gnulib-tool (func_gnulib_dir): Determine the value of PATH_SEPARATOR
the same way autoconf-generated configure scripts do.
* posix-modules: Likewise.
2010-09-02 Paul Eggert <eggert@cs.ucla.edu>
hash: fix safe_hasher const typo
* lib/hash.c (safe_hasher): Result is pointer, not pointer to
const; otherwise, there is a type error later.
2010-09-02 Jim Meyering <meyering@redhat.com>
test-update-copyright.sh: require perl 5.8.0
* tests/test-update-copyright.sh: Require 5.8.0,
which Tom G. Christensen has confirmed is adequate,
while 5.6.1 is not.
2010-09-02 Eric Blake <eblake@redhat.com>
tests: init.sh improvements for re-exec'ing with zsh
* tests/init.sh: Borrow autoconf POSIX-mode sanitization. Pass
-vx through shell re-exec.
Reported by Tom G. Christensen.
wctype: fix typo in previous commit
* m4/wctype_h.m4 (gl_WCTYPE_H): Fix spelling.
Reported by Ludovic Courtès.
2010-09-02 Jim Meyering <meyering@redhat.com>
test-update-copyright.sh: skip test if Perl is too old
* tests/test-update-copyright.sh: Exit 77 if Perl is too old.
Reported by Tom G. Christensen.
2010-09-02 Bruno Haible <bruno@clisp.org>
wctype: Avoid compilation error on IRIX 6.5.30.
* lib/wctype.in.h (iswblank): Declare with a replacement if
REPLACE_ISWBLANK is set.
* m4/wctype_h.m4 (gl_WCTYPE_H): Check also whether iswblank is
declared. Set REPLACE_ISWBLANK.
* modules/wctype (Makefile.am): Substitute REPLACE_ISWBLANK.
* doc/posix-functions/iswblank.texi: Mention the IRIX 6.5.30 problem.
* doc/posix-headers/wctype.texi: Likewise.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2010-09-01 Bruno Haible <bruno@clisp.org>
New module 'socketlib'.
* modules/socketlib: New file.
* m4/socketlib.m4: New file, extracted from m4/sockets.m4.
* m4/sockets.m4 (gl_SOCKETS): Require gl_SOCKETLIB.
* modules/sockets (Depends-on): Add socketlib.
Suggested by Sam Steingold <sds@gnu.org>.
2010-09-01 Paul Eggert <eggert@cs.ucla.edu>
fcntl-h, etc.: prefer O_SEARCH to O_RDONLY when applicable
POSIX 2008 specifies a new 'open' flag O_SEARCH, which can be used
when one needs search access to a directory but not read access.
On systems where it is available, it works in some cases where
O_RDONLY does not, namely on directories that are searchable but
not readable, and which need only to be searchable. If O_SEARCH
is not available, fall back to the traditional method of using
O_RDONLY.
* lib/fcntl.in.h (O_SEARCH): #define to O_RDONLY if not defined.
* lib/chdir-long.c (cdb_advance_fd): Use O_SEARCH, not O_RDONLY,
when opening a directory that needs only to be searchable.
* lib/chdir-safer.c (chdir_no_follow): Likewise.
* lib/fts.c (diropen, fts_open, fd_ring_check): Likewise.
* lib/openat-proc.c (openat_proc_name): Likewise.
* lib/openat.c (openat_needs_fchdir): Likewise.
* lib/save-cwd.c (save_cwd): Likewise.
* lib/savewd.c (savewd_save, savewd_chdir): Likewise.
2010-08-28 Bruno Haible <bruno@clisp.org>
New module 'host-cpu-c-abi'.
* modules/host-cpu-c-abi: New file.
* m4/host-cpu-c-abi.m4: New file, based on part of
clisp/src/m4/general.m4.
Requested by Sam Steingold <sds@gnu.org>.
2010-08-31 Eric Blake <eblake@redhat.com>
and Jim Meyering <meyering@redhat.com>
hash: factor, and guard against misbehaving hasher function
* lib/hash.c (safe_hasher): New function, to encapsulate the checking
of table->hasher's return value. Also protect against a hash value
so large that adding it to table->bucket results in a NULL pointer.
(hash_lookup, hash_get_next, hash_find_entry, transfer_entries):
Use it in place of open-coded check-and-abort.
2010-08-30 Bruno Haible <bruno@clisp.org>
hash: silence spurious clang warning
* lib/hash.c (hash_get_next): Remove unnecessary test against NULL.
Reported by Eric Blake.
2010-08-30 Eric Blake <eblake@redhat.com>
strstr, memmem, strcasestr: avoid leaked shell message
* m4/strstr.m4 (gl_FUNC_STRSTR): Avoid "Alarm clock" message from
FreeBSD.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
tests: silence clang warning
* tests/test-malloca.c (do_allocation): Avoid dead store.
2010-08-29 Bruno Haible <bruno@clisp.org>
gettext: Fix recent mistake.
* m4/intl.m4 (gt_CHECK_DECL): Fix typo introduced on 2010-08-26.
2010-08-29 Bruno Haible <bruno@clisp.org>
selinux-h: Offer a --without-selinux option.
* m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): If
--without-selinux was specified, skip all tests and define
HAVE_SELINUX_SELINUX_H to 0.
(gl_LIBSELINUX): Offer --without-selinux option. If it is specified,
set LIB_SELINUX to empty.
* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Require
gl_LIBSELINUX. If --without-selinux was specified, replace
selinux/context.h.
Reported by Johan Hattne <johan.hattne@utsouthwestern.edu>.
2010-08-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
Make the module 'realloc-gnu' work again on AIX and OSF/1.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Define HAVE_REALLOC_GNU instead
of HAVE_REALLOC.
* lib/realloc.c (NEED_REALLOC_GNU): Enable behaviour also when
GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU.
(SYSTEM_MALLOC_GLIBC_COMPATIBLE): Adjust definition.
* modules/realloc-gnu (configure.ac): Use gl_MODULE_INDICATOR.
2010-08-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
Make the module 'calloc-gnu' work again on AIX and OSF/1.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Define HAVE_CALLOC_GNU instead of
HAVE_CALLOC.
* lib/xmalloc.c: Update accordingly.
* lib/calloc.c (NEED_CALLOC_GNU): Enable also when
GNULIB_CALLOC_GNU && !HAVE_CALLOC_GNU.
* modules/calloc-gnu (configure.ac): Invoke gl_MODULE_INDICATOR.
2010-08-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
Make the module 'malloc-gnu' work again on AIX and OSF/1.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Define HAVE_MALLOC_GNU instead of
HAVE_MALLOC.
* lib/malloc.c (NEED_MALLOC_GNU): Enable behaviour also when
GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU.
* modules/malloc-gnu (configure.ac): Use gl_MODULE_INDICATOR.
2010-08-29 Bruno Haible <bruno@clisp.org>
Update modules list.
* MODULES.html.sh (Memory management functions <stdlib.h>): Add
malloc-gnu, calloc-gnu, realloc-gnu. Remove malloc, calloc, realloc.
(String handling <string.h>): Add astrxfrm.
(File system functions): Add readlinkat.
2010-08-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Tests for module 'realloc-gnu'.
* modules/realloc-gnu-tests: New file.
* tests/test-realloc-gnu.c: New file.
Tests for module 'calloc-gnu'.
* modules/calloc-gnu-tests: New file.
* tests/test-calloc-gnu.c: New file.
Tests for module 'malloc-gnu'.
* modules/malloc-gnu-tests: New file.
* tests/test-malloc-gnu.c: New file.
2010-08-28 Bruno Haible <bruno@clisp.org>
Rename module 'realloc' -> 'realloc-gnu'.
* modules/realloc-gnu: New file, copied from modules/realloc.
* modules/realloc: Convert to a redirection to 'realloc-gnu'. Mark as
obsolete.
* modules/mgetgroups (Depends-on): Update.
* doc/posix-functions/realloc.texi: Update.
* NEWS: Mention the change.
Rename module 'calloc' -> 'calloc-gnu'.
* modules/calloc-gnu: New file, copied from modules/calloc.
* modules/calloc: Convert to a redirection to 'calloc-gnu'. Mark as
obsolete.
* doc/posix-functions/calloc.texi: Update.
* NEWS: Mention the change.
Rename module 'malloc' -> 'malloc-gnu'.
* modules/malloc-gnu: New file, copied from modules/malloc.
* modules/malloc: Convert to a redirection to 'malloc-gnu'. Mark as
obsolete.
* modules/argp (Depends-on): Update.
* modules/regex (Depends-on): Update.
* doc/posix-functions/malloc.texi: Update.
* NEWS: Mention the change.
2010-08-28 Eric Blake <eblake@redhat.com>
pread, pwrite: add missing dependency
* modules/pread (Depends-on): Add extensions.
* modules/pwrite (Depends-on): Likewise.
2010-08-28 Bruno Haible <bruno@clisp.org>
unistr/u*-strchr: Fix tests dependencies.
* modules/unistr/u8-strchr-tests (Depends-on): Add unistr/u32-to-u8.
* modules/unistr/u16-strchr-tests (Depends-on): Add unistr/u32-to-u16.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-08-28 Bruno Haible <bruno@clisp.org>
read-file: Don't occupy too much unused memory.
* lib/read-file.c (fread_file): Shrink the buffer at the end.
2010-08-28 Giuseppe Scrivano <gscrivano@gnu.org>
Eric Blake <eblake@redhat.com>
Bruno Haible <bruno@clisp.org>
read-file: Avoid memory reallocations with regular files.
* lib/read-file.c: Include <sys/stat.h>, <stdio.h>, <stdint.h>.
(fread_file): With regular files, use the remaining length as the
initial buffer size. Check against overflow.
* modules/read-file (Depends-on): Add ftello, malloc-posix, stdint,
sys_stat.
2010-08-28 Bruno Haible <bruno@clisp.org>
ftello: Relax license.
* modules/ftello (License): Relax to LGPLv2+.
Reported by Eric Blake.
2010-08-28 Bruno Haible <bruno@clisp.org>
Avoid relocwrapper link errors due to gnulib replacement functions.
* lib/canonicalize-lgpl.c [IN_RELOCWRAPPER]: Use the system's getcwd
function.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2010-08-28 Bruno Haible <bruno@clisp.org>
Prefer using AC_DEFUN_ONCE over AC_DEFUN in projects with gnulib.
* m4/iconv.m4 (gl_iconv_AC_DEFUN): Use AC_DEFUN_ONCE if gl_00GNULIB is
defined.
* m4/libunistring.m4 (gl_libunistring_AC_DEFUN): Likewise.
Suggested by Eric Blake.
2010-08-28 Bruno Haible <bruno@clisp.org>
sys_socket, netdb: Ensure socklen_t gets defined.
* modules/sys_socket (Depends-on): Add socklen.
* modules/netdb (Depends-on): Likewise.
* modules/getaddrinfo (Depends-on): Remove socklen.
* modules/getsockopt (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* tests/test-sys_socket.c: Check that socklen_t is defined.
* tests/test-netdb.c: Likewise.
* m4/socklen.m4: Update comments.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2010-08-27 Eric Blake <eblake@redhat.com>
login_tty: add missing dependency
* modules/login_tty (Depends-on): Add pty.
2010-08-26 Eric Blake <eblake@redhat.com>
lib-symbol-versions: fix m4 quoting
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Use correct
format for AC_LINK_IFELSE.
glob: fix compile test
* m4/glob.m4 (gl_GLOB): Use correct format for AC_COMPILE_IFELSE.
btowc: fix missing file
* modules/btowc (Files): Also ship locale-fr.m4.
lseek: fix link test
* m4/lseek.m4 (gl_FUNC_LSEEK): Use correct format for
AC_LINK_IFELSE.
include_next: silence autoconf 2.68 warning
* m4/include_next.m4 (gl_INCLUDE_NEXT): Mark this use of
AC_COMPILE_IFELSE as special.
(AC_LANG_DEFINES_PROVIDED): Provide dummy implementation for
autoconf < 2.68.
acl: fix compilation test
* m4/acl.m4 (gl_FUNC_ALL): Use correct format for
AC_COMPILE_IFELSE.
2010-08-26 Bruno Haible <bruno@clisp.org>
Modernize AC_TRY_RUN invocations.
* m4/btowc.m4 (gl_FUNC_BTOWC): Use AC_RUN_IFELSE instead of AC_TRY_RUN.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Likewise.
* m4/exponentd.m4 (gl_DOUBLE_EXPONENT_LOCATION): Likewise.
* m4/exponentf.m4 (gl_FLOAT_EXPONENT_LOCATION): Likewise.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Likewise.
* m4/fopen.m4 (gl_FUNC_FOPEN): Likewise.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
* m4/ftello.m4 (gl_FUNC_FTELLO): Likewise.
* m4/iconv.m4 (AM_ICONV_LINK): Likewise.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise.
* m4/intdiv0.m4 (gt_INTDIV0): Likewise.
* m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise.
* m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL,
gl_MBRLEN_NUL_RETVAL): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK,
gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL):
Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/open.m4 (gl_FUNC_OPEN): Likewise.
* m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE,
gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE,
gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_N,
gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_POSITIONS, gl_PRINTF_FLAG_GROUPING,
gl_PRINTF_FLAG_LEFTADJUST, gl_PRINTF_FLAG_ZERO, gl_PRINTF_PRECISION,
gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99,
gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1, gl_VSNPRINTF_ZEROSIZE_C99):
Likewise.
* m4/printf-posix.m4 (gt_PRINTF_POSIX): Likewise.
* m4/signbit.m4 (gl_SIGNBIT, gl_FLOATTYPE_SIGN_LOCATION): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION): Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
2010-08-26 Bruno Haible <bruno@clisp.org>
Modernize AC_TRY_LINK invocations.
* m4/acosl.m4 (gl_FUNC_ACOSL): Use AC_LINK_IFELSE instead of
AC_TRY_LINK.
* m4/argp.m4 (gl_ARGP): Likewise.
* m4/asinl.m4 (gl_FUNC_ASINL): Likewise.
* m4/atanl.m4 (gl_FUNC_ATANL): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise.
* m4/codeset.m4 (AM_LANGINFO_CODESET): Likewise.
* m4/cosl.m4 (gl_FUNC_COSL): Likewise.
* m4/expl.m4 (gl_FUNC_EXPL): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Likewise.
* m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise.
* m4/frexp.m4 (gl_FUNC_FREXP, gl_CHECK_FREXP_NO_LIBM): Likewise.
* m4/frexpl.m4 (gl_FUNC_FREXPL, gl_CHECK_FREXPL_NO_LIBM): Likewise.
* m4/ftello.m4 (gl_FUNC_FTELLO): Likewise.
* m4/gettext.m4 (AM_GNU_GETTEXT): Likewise.
* m4/hostent.m4 (gl_HOSTENT): Likewise.
* m4/iconv.m4 (AM_ICONV_LINK): Likewise.
* m4/intl.m4 (gt_INTL_SUBDIR_CORE): Likewise.
* m4/intlmacosx.m4 (gt_INTL_MACOSX): Likewise.
* m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM, gl_HAVE_ISNAND_NO_LIBM):
Likewise.
* m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_HAVE_ISNANF_IN_LIBM):
Likewise.
* m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM):
Likewise.
* m4/lcmessage.m4 (gt_LC_MESSAGES): Likewise.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL, gl_CHECK_LDEXPL_NO_LIBM): Likewise.
* m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Likewise.
* m4/logb.m4 (gl_FUNC_LOGB): Likewise.
* m4/logl.m4 (gl_FUNC_LOGL): Likewise.
* m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Likewise.
* m4/servent.m4 (gl_SERVENT): Likewise.
* m4/signbit.m4 (gl_SIGNBIT): Likewise.
* m4/sinl.m4 (gl_FUNC_SINL): Likewise.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise.
* m4/tanl.m4 (gl_FUNC_TANL): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise.
* m4/trunc.m4 (gl_FUNC_TRUNC): Likewise.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
* modules/tsearch-tests (configure.ac): Likewise.
2010-08-26 Bruno Haible <bruno@clisp.org>
Modernize AC_TRY_COMPILE invocations.
* m4/environ.m4 (gt_CHECK_VAR_DECL): Use AC_COMPILE_IFELSE instead of
AC_TRY_COMPILE.
* m4/iconv.m4 (gl_iconv_AC_DEFUN): Likewise.
* m4/intl.m4 (gt_CHECK_DECL): Likewise.
* m4/intmax.m4 (gt_TYPE_INTMAX_T): Likewise.
* m4/intmax_t.m4 (gt_AC_TYPE_INTMAX_T): Likewise.
* m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Likewise.
* m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/lock.m4 (gl_LOCK): Likewise.
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Likewise.
* m4/mbswidth.m4 (gl_MBSWIDTH): Likewise.
* m4/minmax.m4 (gl_MINMAX_IN_HEADER): Likewise.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise.
* m4/size_max.m4 (gl_SIZE_MAX): Likewise.
* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Likewise.
* m4/stdarg.m4 (gl_STDARG_H): Likewise.
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Likewise.
* m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Likewise.
* m4/visibility.m4 (gl_VISIBILITY): Likewise.
* m4/wchar_t.m4 (gt_TYPE_WCHAR_T): Likewise.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise.
* m4/libunistring.m4 (gl_LIBUNISTRING_CORE): Likewise. Remove
extraneous semicolon.
2010-08-26 Jim Meyering <meyering@redhat.com>
stat-time: relax license LGPL
* modules/stat-time (License): Change from GPL to LGPL,
with consent from all contributors, for use in libguile.
Requested by Ludovic Courtès.
2010-08-26 Erik Faye-Lund <kusmabite@gmail.com>
poll: return immediately on POLLHUP.
* lib/poll.c (poll): Always set timeout before wait_timeout is
computed.
2010-08-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix test-unlinkat, test-rmdir failure on AIX 5.3.
* tests/test-rmdir.h (test_rmdir_func): Also accept EEXIST for
rmdir ("dir/.//"), unlinkat.
2010-08-24 Paul Eggert <eggert@cs.ucla.edu>
stdbool: avoid spurious failure with modern xlc
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf.
2010-08-24 Bruno Haible <bruno@clisp.org>
getloadavg: simplify code
* m4/getloadavg.m4 (gl_GETLOADAVG): Remove useless test of
gl_have_func. Update comments.
2010-08-24 Eric Blake <eblake@redhat.com>
getloadavg: don't define SVR4 on cygwin
* m4/getloadavg.m4 (gl_GETLOADAVG): Sync with autoconf fix, to
only define SVR4 when -lkvm is required.
Reported by Yaakov Selkowitz.
2010-08-24 Bruno Haible <bruno@clisp.org>
priv-set: fix comment
* lib/priv-set.c (priv_set_restore): Fix typo in comment.
2010-08-23 Paul Eggert <eggert@cs.ucla.edu>
priv-set: fix comments
* lib/priv-set.c (priv_set_remove, priv_set_restore): Fix comments
to match code, as suggested by David Bartley in:
http://lists.gnu.org/r/bug-tar/2010-08/msg00018.html
2010-08-23 Eric Blake <eblake@redhat.com>
stdbool: avoid rejecting clang
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf.
* tests/test-stdbool.c: Enable more tests if using the system
<stdbool.h> instead of the gnulib replacement.
(main): Move xlc bug test to a runtime test for all compilers.
Reported by Anders Kaseorg.
argz: fix shell quoting issue
* m4/argz.m4 (gl_FUNC_ARGZ): Allow for spaces in argument.
Reported by Charles Wilson.
2010-08-22 Paolo Bonzini <bonzini@gnu.org>
Erik Faye-Lund <kusmabite@gmail.com>
poll, select: handle ERROR_BROKEN_PIPE.
* lib/poll.c (win32_compute_revents): Return POLLHUP when
PeekNamedPipe fails with ERROR_BROKEN_PIPE.
* lib/select.c (win32_compute_revents): Do not mark a pipe
as writeable if PeekNamedPipe fails with ERROR_BROKEN_PIPE.
2010-08-22 Giuseppe Scrivano <gscrivano@gnu.org>
fts: allow compilation with C++
* lib/fts_.h: Specify extern "C" linkage with C++.
2010-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix gnulib-tool sed script de-commentation for AIX sed.
* gnulib-tool (sed_comments): Try indented comments, for AIX 5.3
sed.
2010-08-17 Eric Blake <eblake@redhat.com>
test-stddef: test for (some) offsetof bugs
* tests/test-stddef.c: Enhance test to ensure correct type of
offsetof.
* doc/posix-headers/stddef.texi (stddef.h): Document a Solaris bug
that we are not fixing at this time.
2010-08-15 Bruno Haible <bruno@clisp.org>
stpncpy: Allow stpncpy to be defined as a macro.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Don't attempt to redeclare stpncpy
if it's already correctly declared.
* lib/string.in.h (stpncpy): Undefine before redefining.
Reported by Jeremy Huddleston <jeremyhu@macports.org>.
2010-08-14 Bruno Haible <bruno@clisp.org>
Rename module 'memxfrm' to 'amemxfrm'.
* lib/amemxfrm.h: Renamed from lib/memxfrm.h.
(amemxfrm): Renamed from memxfrm.
* lib/amemxfrm.c: Renamed from lib/memxfrm.h. Include amemxfrm.h.
(amemxfrm): Renamed from memxfrm.
* modules/amemxfrm: Renamed from modules/memxfrm. Update.
* NEWS: Mention the change.
* MODULES.html.sh (String handling <string.h>): Update.
* lib/unicase/u-casexfrm.h: Invoke amemxfrm instead of memxfrm.
* lib/unicase/u8-casexfrm.c: Include amemxfrm.h instead of memxfrm.h.
* lib/unicase/u16-casexfrm.c: Likewise.
* lib/unicase/u32-casexfrm.c: Likewise.
* lib/uninorm/u-normxfrm.h: Invoke amemxfrm instead of memxfrm.
* lib/uninorm/u8-normxfrm.c: Include amemxfrm.h instead of memxfrm.h.
* lib/uninorm/u16-normxfrm.c: Likewise.
* lib/uninorm/u32-normxfrm.c: Likewise.
* modules/unicase/u8-casexfrm (Depends-on): Add amemxfrm, remove
memxfrm.
* modules/unicase/u16-casexfrm (Depends-on): Likewise.
* modules/unicase/u32-casexfrm (Depends-on): Likewise.
* modules/uninorm/u8-normxfrm (Depends-on): Likewise.
* modules/uninorm/u16-normxfrm (Depends-on): Likewise.
* modules/uninorm/u32-normxfrm (Depends-on): Likewise.
Suggested by Paul Eggert.
2010-08-14 Bruno Haible <bruno@clisp.org>
Tests for module 'astrxfrm'.
* modules/astrxfrm-tests: New file.
* tests/test-astrxfrm.c: New file.
New module 'astrxfrm'.
* lib/astrxfrm.h: New file.
* lib/astrxfrm.c: New file, based on lib/memxfrm.c.
* modules/astrxfrm: New file.
2010-08-14 Reuben Thomas <rrt@sc3d.org>
regex: Tweak doc.
* doc/regex.texi (Overview): Don't mention regex.c.
(GNU Regular Expression Compiling): Likewise.
(Match-end-of-line Operator): Mention 'not_eol'.
2010-08-14 Brian Gough <bjg@gnu.org>
Bruno Haible <bruno@clisp.org>
git-merge-changelog: add doc relating to use with bzr and hg.
* lib/git-merge-changelog.c: Add comments regarding bzr, hg, diff3.
2010-08-14 Matthias Bolte <matthias.bolte@googlemail.com>
pthread: fix pthread.h creation for srcdir != builddir
* modules/pthread (Makefile.am): Fix the rule to work also in a
non-srcdir build.
2010-08-13 Karl Berry <karl@gnu.org>
* doc/regex.texi (Predefined Syntaxes): @smallexample.
* doc/posix-*/*: force line break before @url of POSIX
specifications.
Suggested by Werner Lemberg.
2010-08-10 Paul Eggert <eggert@cs.ucla.edu>
strtod: fix const diagnostic
* lib/strtod.c (strtod): Don't assign const char * to char *,
as this elicits a warning from GCC when warnings are enabled.
2010-08-10 Pádraig Brady <P@draigbrady.com>
and Eric Blake <eblake@redhat.com>
copy-acl: ignore ENOTSUP on HP-UX
* lib/acl-internal.h (ACL_NOT_WELL_SUPPORTED): Move definition up,
so that it is available for HP-UX.
* lib/copy-acl.c (qcopy_acl): Use it.
Reported by Patrick M. Callahan.
2010-08-10 Eric Blake <eblake@redhat.com>
open, chown: relax license
* modules/open (License): Change to LGPLv2+, with consent by all
authors, for use in augeas.
* modules/chown (License): Likewise.
* modules/lchown (Likewise): Likewise.
Requested by Adam Stokes.
2010-08-09 Karl Berry <karl@gnu.org>
* build-aux/ar-lib: new file, import from Automake.
* config/srclist.txt: autocheck for updates.
2010-08-09 Eric Blake <eblake@redhat.com>
readlinkat: adjust client modules
* modules/areadlinkat (Depends-on): Use readlinkat, not
symlinkat.
* modules/areadlinkat-with-size (Depends-on): Likewise.
mknod: be more vocal about danger of running tests as root
* m4/mknod.m4 (gl_FUNC_MKNOD): Make it harder to run configure as
root, since that is just asking for problems.
Suggested by Bruno Haible, based on a report by Rainer Tammer.
readlinkat: split into its own module
* modules/symlinkat: Split readlinkat...
* modules/readlinkat: ...into separate module.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Move readlinkat check...
* m4/readlinkat.m4 (gl_FUNC_READLINAT): ...to new file.
* lib/symlinkat.c (readlinkat): Move...
* lib/readlinkat.c: ...into new file.
* modules/symlinkat-tests: Split readlinkat test...
* modules/readlinkat-tests: ...into separate module.
* tests/test-symlinkat.c: Split...
* tests/test-readlinkat.c: ...into new file.
* NEWS: Document the split.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* lib/unistd.in.h (readlinkat): Likewise.
Suggested by Bruno Haible.
2010-08-08 Bruno Haible <bruno@clisp.org>
memxfrm: Speed up.
* lib/memxfrm.c (memxfrm): Allocate enough memory ahead of time, so
that usually only one call to strxfrm is necessary for each string
part.
Reported by Paul Eggert <eggert@cs.ucla.edu>.
2010-08-07 Karl Berry <karl@gnu.org>
* doc/posix-headers/limits.texi,
* doc/posix-functions/malloc.texi,
* doc/posix-functions/strsignal.texi: missing @item.
* doc/ld-version-script.texi: spurious leading i.
* doc/regex.texi (Interval Operators): no commas inside @var.
2010-08-01 Bruno Haible <bruno@clisp.org>
Integrate the regex documentation.
* doc/gnulib.texi: Define 'cn' index.
(Regular expressions): New a chapter that includes regex.texi and
regexprops-generic.texi.
* doc/regex.texi: Remove boilerplate stuff. Use simplified @node
syntax.
Whitespace cleanup.
* doc/regex.texi: Remove trailing spaces.
Add regex documentation.
* doc/regex.texi: New file. Taken from regex-0.12/doc/regex.texi in
http://ftp.gnu.org/old-gnu/regex/regex-0.12.tar.gz.
Written by Kathy A. Hargreaves and Karl Berry.
2010-08-01 Bruno Haible <bruno@clisp.org>
link: Update documentation.
* doc/posix-functions/link.texi: Update regarding Solaris.
2010-07-31 Bruno Haible <bruno@clisp.org>
Update modules list.
* MODULES.html.sh (Sorting functions <stdlib.h>): Add array-mergesort.
(String handling <string.h>): Add memcmp2, memxfrm.
(Container data structures): Add xlist, xsublist, xoset.
(Core language properties): Add alignof, unused-parameter.
(Process control, Numeric conversion functions <stdlib.h>): Renamed
from Numeric conversion functions <stdlib.h>. Add _Exit, atoll.
(Unibyte characters <ctype.h>): New section.
(String handling <string.h>): New section.
(Mathematics <math.h>): Add acos, acosl, asin, asinl, atan, atan2,
atanl, cbrt, copysign, cos, cosh, cosl, erf, erfc, exp, expl, fabs,
fmod, hypot, j0, j1, jn, ldexp, lgamma, log, log10, log1p, logb, logl,
modf, nextafter, pow, remainder, rint, sin, sinh, sinl, sqrt, sqrtl,
tan, tanh, tanl, y0, y1, yn.
(Support for systems lacking POSIX:2008): Add alphasort, dirent,
dprintf, dprintf-posix, duplocale, fcntl, getlogin, getopt-posix,
grantpt, iconv-h, ioctl, isblank, langinfo, nl_langinfo, pread,
ptsname, pwrite, scandir, servent, sys_utsname, ttyname_r, uname,
unlockpt, vdprintf, vdprintf-posix.
(Enhancements for POSIX:2008 functions): Add getopt-gnu. Remove getopt.
(File system functions): Add concat-filename, sys_file, sys_ioctl,
xconcat-filename.
(File descriptor based Input/Output): Add dup3, fd-safer-flag,
getdtablesize, pipe2, pipe2-safer.
(Security): New section.
(Networking functions): Add accept4.
(Signal handling): Add sigpipe.
(Internationalization functions): Add xstriconveh, mbmemcasecmp,
mbmemcasecoll.
(Unicode string functions): Add libunistring-optional, unistr/u*-cmp2,
unistr/u*-strcoll, uniwbrk/*, uninorm/*, unicase/*.
(Executing programs): Add findprog-lgpl, pipe-filter-gi,
pipe-filter-ii.
(Misc): Add argp-version-etc, login_tty, parse-duration.
2010-07-31 Bruno Haible <bruno@clisp.org>
Improve doc in MODULES.html.
* modules/linkat (Description): Add the word "function".
* modules/mkfifo (Description): Likewise.
* modules/mknod (Description): Likewise.
* modules/remove (Description): Likewise.
* modules/renameat (Description): Likewise.
* modules/stat (Description): Likewise.
* modules/symlink (Description): Likewise.
* modules/unlink (Description): Likewise.
2010-07-31 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Provide option --enable-c++/--disable-c++ when possible.
* m4/ansi-c++.m4 (gl_CXX_CHOICE): In Autoconf 2.66 or newer, provide
option --enable/disable-c++ instead of --enable/disable-cxx.
* NEWS: Mention the change.
2010-07-31 Bruno Haible <bruno@clisp.org>
readlink, areadlink: Relax test a bit.
* tests/test-readlink.h (test_readlink): Accept EINVAL as an
alternative to ENOTDIR.
* tests/test-areadlink.h (test_areadlink): Likewise.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
unistr/u8-strstr, unistr/u16-strstr: Optimize the one-character case.
* lib/unistr/u-strstr.h (FUNC): When the needle contains only one
character, perform the search using U_STRCHR.
* lib/unistr/u8-strstr.c (U_STRMBTOUC): New macro.
* lib/unistr/u16-strstr.c (U_STRMBTOUC): Likewise.
* modules/unistr/u8-strstr (Depends-on): Add unistr/u8-strmbtouc.
* modules/unistr/u16-strstr (Depends-on): Add unistr/u16-strmbtouc.
Suggested by Paolo Bonzini.
2010-07-31 Bruno Haible <bruno@clisp.org>
unistr/u*-strstr: Fix dependencies.
* modules/unistr/u8-strstr (Depends-on): Add unistr/u8-strchr.
* modules/unistr/u16-strstr (Depends-on): Add unistr/u16-strchr.
* modules/unistr/u32-strstr (Depends-on): Add unistr/u32-strchr.
2010-07-31 Bruno Haible <bruno@clisp.org>
unistr/u8-chr, unistr/u8-strchr: Optimize and add comments.
* lib/unistr/u8-chr.c (u8_chr): Add comments. Remove a useless test at
the beginning of the loop.
* lib/unistr/u8-strchr.c (u8_strchr): Add comments. Don't fall through
cases in 'switch' statement.
unistr/u8-strchr: Fix several bugs.
* lib/unistr/u8-strchr.c (u8_strchr): Don't search beyond the end of
the string. When not found, return NULL, not a pointer near the end.
More tests for unistr/u8-strchr.
* tests/unistr/test-strchr.h (test_strchr): Renamed from main. Check
that the function does not read past the first occurrence of the byte
being searched.
* tests/unistr/test-u8-strchr.c (main): New function, with more tests.
* tests/unistr/test-u16-strchr.c (main): New function.
* tests/unistr/test-u32-strchr.c (main): New function.
2010-07-31 Bruno Haible <bruno@clisp.org>
posix-modules: Ignore backup files of documentation files.
* posix-modules: grep only through files named *.texi.
2010-07-31 Bruno Haible <bruno@clisp.org>
symlinkat: Fix documentation.
* doc/posix-functions/readlinkat.texi: Fix module name.
2010-07-31 Bruno Haible <bruno@clisp.org>
fchownat: Replace also when chown has the trailing slash bug.
* m4/openat.m4 (gl_FUNC_FCHOWNAT): Move the test of REPLACE_CHOWN
outside the gl_FUNC_FCHOWNAT_DEREF_BUG invocation. Fixes regression
introduced on 2010-04-10.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
linkat: Work around AIX 7.1 bug.
* m4/linkat.m4 (gl_FUNC_LINKAT): Require AC_CANONICAL_HOST. Test
whether linkat handles trailing slash correctly. If not, replace linkat
and define LINKAT_TRAILING_SLASH_BUG.
* lib/linkat.c (rpl_linkat): If LINKAT_TRAILING_SLASH_BUG is defined,
check whether (fd1,file1) points to a directory if file1 or file2 ends
in a slash. Code taken from lib/link.c.
* doc/posix-functions/linkat.texi: Mention trailing slash bug.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
Correctly determine whether pow is available in libc on AIX 7 with xlc.
* m4/mathfunc.m4 (gl_MATHFUNC): Actually use the 'funcptr' variable.
This disables an xlc optimization that was causing wrong test results.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
iconv: Work around AIX 6.1..7.1 bug.
* doc/posix-functions/iconv.texi: Mention AIX 6.1, 7.1 bug.
* m4/iconv.m4 (AM_ICONV_LINK): Test against AIX 6.1, 7.1 bug. When
cross-compiling, guess no on all versions of AIX.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
readlink: Relax test a bit.
* tests/test-readlink.h (test_readlink): Allow different errno value
when readlink is called with a file name that ends in / and refers to
a file.
Suggested by Eric Blake.
Reported by Rainer Tammer.
2010-07-31 Bruno Haible <bruno@clisp.org>
copysign: Does not require -lm on glibc systems.
* modules/copysign (configure.ac): Use gl_MATHFUNC, not
gl_COMMON_DOUBLE_MATHFUNC.
* m4/mathfunc.m4 (gl_COMMON_DOUBLE_MATHFUNC): Update comments.
2010-07-31 Bruno Haible <bruno@clisp.org>
duplocale: Work around AIX 7.1 bug.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Let the test fail also when
duplocale(LC_GLOBAL_LOCALE) returns (locale_t)0.
* lib/duplocale.c (rpl_duplocale): Update comment.
* doc/posix-functions/duplocale.texi: Mention the AIX 7.1 bug.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
dirfd: Avoid link error on AIX 7.1.
* lib/dirent.in.h (dirfd): Use modern idiom with REPLACE_DIRFD.
* m4/dirfd.m4 (gl_FUNC_DIRFD): If the function is declared but does not
exist, set REPLACE_DIRFD.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize REPLACE_DIRFD.
* modules/dirent (Makefile.am): Substitute REPLACE_DIRFD.
* doc/posix-functions/dirfd.texi: Update.
Reported by Rainer Tammer.
2010-07-30 Eric Blake <eblake@redhat.com>
strtod: next round of AIX fixes
* lib/strtod.c (strtod): Work around AIX bug of parsing p with no
exponent.
* tests/test-strtod.c (main): Enhance tests.
* doc/posix-functions/strtod.texi (strtod): Document next bug.
Reported by Rainer Tammer.
futimens: fix configure check
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Use correct logic.
Reported by Bruno Haible.
2010-07-30 Bruno Haible <bruno@clisp.org>
getline: Update regarding AIX.
* doc/posix-functions/getline.texi: Mention bug on AIX 7.1.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
wcwidth: Drop replacement on AIX 7.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): When cross-compiling, guess yes on
AIX 7.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
strtok_r: Avoid triggering bug in AIX 7.1 xlc compiler.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Don't cast an invalid address to
a 'char *'.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
unlink: Update regarding AIX.
* doc/posix-functions/unlink.texi: Mention bug on AIX 7.1.
* m4/unlink.m4 (gl_FUNC_UNLINK): Update comment.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
symlink: Update regarding AIX.
* doc/posix-functions/symlink.texi: Mention bug on AIX 7.1.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Update comment.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
strndup: Update regarding AIX.
* m4/strndup.m4 (gl_FUNC_STRNDUP): When cross-compiling, guess yes on
AIX 7.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
stat: Update regarding AIX.
* doc/posix-functions/stat.texi: Mention bug on AIX 7.1.
* m4/stat.m4 (gl_FUNC_STAT): Update comment.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
truncl: Fix autoconf test.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Add TRUNCL_LIBM to LIBS while testing
whether truncl works.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
round: Update regarding AIX.
* m4/round.m4 (gl_FUNC_ROUND): When cross-compiling, guess no on AIX 7.
* doc/posix-functions/round.texi: Mention bug on AIX 7.1.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
rename: Update regarding AIX.
* doc/posix-functions/rename.texi: Mention bug on AIX 7.1.
* m4/rename.m4 (gl_FUNC_RENAME): Update comment.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
printf.m4: Update regarding AIX.
* m4/printf.m4: Update comments regarding AIX.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
iconv: Update regarding AIX.
* m4/iconv.m4 (AM_ICONV_LINK): When cross-compiling, guess yes on
AIX 7.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
getopt: Update regarding AIX.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): When cross-compiling, guess
no on AIX.
* doc/posix-functions/getopt.texi: Mention that AIX has the optind bug.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
ldexpl; Update regarding AIX.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): When cross-compiling, guess yes
on AIX 7.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
frexpl: Update regarding AIX.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): When cross-compiling, guess yes
on AIX 7.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
open, fopen: Update regarding AIX.
* m4/open.m4 (gl_FUNC_OPEN): Adjust cross-compiling guess for AIX.
* m4/fopen.m4 (gl_FUNC_FOPEN): Likewise.
* doc/posix-functions/open.texi: Mention the trailing-slash bug on AIX.
* doc/posix-functions/fopen.texi: Likewise.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
chown: Update doc regarding AIX.
* doc/posix-functions/chown.texi: Mention bug on AIX 7.1.
* m4/chown.m4 (gl_FUNC_CHOWN): Update comment.
Reported by Rainer Tammer.
2010-07-30 Eric Blake <eblake@redhat.com>
strtod: fix bug in replacement function on AIX
* lib/strtod.c (strtod): Special case broken "0x" parse in
underlying strtod.
* tests/test-strtod.c (main): Document AIX 7.1 bugs.
* doc/posix-functions/strtod.texi (strtod): Likewise.
Reported by Rainer Tammer.
2010-07-30 Bruno Haible <bruno@clisp.org>
mbrlen: Fix cross-compilation guess for AIX.
* m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE): Fix cross-compilation
guess. Leftover from 2008-12-22.
2010-07-30 Bruno Haible <bruno@clisp.org>
mbrtowc: Fix cross-compilation guess for AIX.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Fix cross-compilation
guess. Leftover from 2008-12-21.
2010-07-29 Peter O'Gorman <pogma@thewrittenword.com> (tiny change)
init.sh: work around trap limitation of some shells
* tests/init.sh (setup_): Move exit trap outside of shell function.
2010-07-29 Eric Blake <eblake@redhat.com>
strtod: aid debugging
* m4/strtod.m4(gl_FUNC_STRTOD): Use distinct exit status to aid
understanding why strtod is rejected.
2010-07-28 Bruno Haible <bruno@clisp.org>
unistr/u*-chr, unistr/u*-strchr: Fix link errors and warnings.
* lib/unistr/u8-chr.c: Include <string.h>.
* tests/unistr/test-u8-chr.c: Likewise.
* tests/unistr/test-u16-chr.c: Likewise.
* tests/unistr/test-u32-chr.c: Likewise.
* tests/unistr/test-u8-strchr.c: Likewise.
* tests/unistr/test-u16-strchr.c: Likewise.
* tests/unistr/test-u32-strchr.c: Likewise.
* modules/unistr/u8-chr-tests (Depends-on): Add unistr/u32-set.
* modules/unistr/u16-chr-tests (Depends-on): Likewise.
* modules/unistr/u8-strchr-tests (Depends-on): Likewise.
* modules/unistr/u16-strchr-tests (Depends-on): Likewise.
2010-07-28 Bruno Haible <bruno@clisp.org>
Use spaces for indentation, not tabs.
* lib/**/*.[hcy] except lib/reg*.[hc]: Untabify.
2010-07-27 Bruno Haible <bruno@clisp.org>
mbspcasecmp: Fix function specification.
* lib/string.in.h (mbspcasecmp): Fix specification comment.
* lib/mbspcasecmp.c (mbspcasecmp): Likewise.
Reported by Eric Blake <eblake@redhat.com>.
2010-07-26 Paul R. Eggert <eggert@cs.ucla.edu>
timespec: use cast and not conditional, as truncation isn't possible
* lib/timespec.h (timespec_cmp): Use cast to pacify gcc -Wconversion
instead of a conditional. Comment about the situation in more detail.
This undoes most of the 2009-10-29 patch.
2010-07-23 Paolo Bonzini <pbonzini@redhat.com>
unistr/u8-chr, unistr/u8-strchr: use Boyer-Moore like algorithm.
* lib/unistr/u8-chr.c: Add Boyer-Moore like operation.
* lib/unistr/u8-strchr.c: Likewise.
* modules/unistr/u8-chr: Depend on memchr.
unistr/u*-strchr: add tests
* modules/unistr/u8-strchr-tests: New file.
* modules/unistr/u16-strchr-tests: New file.
* modules/unistr/u32-strchr-tests: New file.
* tests/unistr/test-strchr.h: New file.
* tests/unistr/test-u8-strchr.c: New file.
* tests/unistr/test-u16-strchr.c: New file.
* tests/unistr/test-u32-strchr.c: New file.
unistr/u*-chr: test multibyte sequences more
* tests/unistr/test-chr.h: Do complete testing of the characters in the
test vector.
* tests/unistr/test-u8-chr.c (U_UCTOMB): Define.
* tests/unistr/test-u16-chr.c (U_UCTOMB): Likewise.
* tests/unistr/test-u32-chr.c (U_UCTOMB): Likewise.
unistr/u*-chr: test multibyte sequences
* tests/unistr/test-chr.h: Put characters above 0-127 in the test input.
unistr/u*-chr: prepare for multibyte tests
* modules/unistr/u8-chr-tests: Depend on u32-to-u8.
* modules/unistr/u16-chr-tests: Depend on u32-to-u16.
* tests/unistr/test-chr.h: Build initial version as UCS-4 then convert.
* tests/unistr/test-u8-chr.c (U32_TO_U): Define.
* tests/unistr/test-u16-chr.c (U32_TO_U): Likewise.
* tests/unistr/test-u32-chr.c (U32_TO_U): Likewise.
2010-07-18 Bruno Haible <bruno@clisp.org>
unistr/u8-strchr: Optimize non-ASCII argument case.
* lib/unistr/u8-strchr.c (u8_strchr): Compare the last byte first,
because the first byte often matches anyway.
Reported by Pádraig Brady <P@draigbrady.com>.
2010-07-15 Karl Berry <karl@gnu.org>
* config/srclist.txt (fdl.texi): only one copy, from gnustandards.
2010-07-14 Paul R. Eggert <eggert@cs.ucla.edu>
getcwd: on Solaris, work better if ancestors are inaccessible
* lib/getcwd.c (__getcwd): If getcwd returns EINVAL for zero
buffer and size, try again with a large buffer. This works better
on Solaris, since its getcwd succeeds even if the path to the root
is inaccessible, and this is helpful in common cases such as .zfs
hidden directories. Problem reported by J Chapman Flack in
http://lists.gnu.org/r/bug-tar/2010-06/msg00000.html
Use system getcwd if it's declared, not merely if it's partly
working; use the partly-working test only to avoid needless effort
if the system getcwd fails.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Omit
comment that was already obsolete and is now even more obsolete.
* modules/getcwd (Depends-on): Depend on strdup, since __getcwd
now might call strdup.
2010-07-13 Paul R. Eggert <eggert@cs.ucla.edu>
pthread: Add enough so that coreutils/src/sort.c compiles.
* lib/pthread.in.h: Add self to author comment. Conditionalize on
_GL_PTHREAD_H, not PTHREAD_H_, for consistency with the rest of
gnulib. Include <sched.h> and <time.h>, as per POSIX.
Include <sys/types.h>, in case it defines pthread_t.
(pthread_t, pthread_attr_t, pthread_barrier_t, pthread_barrierattr_t):
(pthread_cond_t, pthread_condattr_t, pthread_key_t, pthread_mutex_t):
(pthread_mutexattr_t, pthread_once_t, pthread_rwlock_t):
(pthread_rwlockattr_t, pthread_spinlock_t):
New typedefs, if HAVE_PTHREAD_T is not defined.
(PTHREAD_COND_INITIALIZER, PTHREAD_MUTEX_INITIALIZER):
(PTHREAD_ONCE_INIT, PTHREAD_RWLOCK_INITIALIZER):
(PTHREAD_BARRIER_SERIAL_THREAD, PTHREAD_CANCEL_DEFERRED):
(PTHREAD_CANCEL_ASYNCHRONOUS, PTHREAD_CANCEL_ENABLE):
(PTHREAD_CANCEL_DISABLE, PTHREAD_CANCELED, PTHREAD_CREATE_JOINABLE):
(PTHREAD_CREATE_DETACHED, PTHREAD_INHERIT_SCHED):
(PTHREAD_EXPLICIT_SCHED, PTHREAD_MUTEX_DEFAULT, PTHREAD_MUTEX_NORMAL):
(PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE):
(PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_PRIO_NONE):
(PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT, PTHREAD_PROCESS_PRIVATE):
(PTHREAD_PROCESS_SHARED, PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS):
New macros.
(pthread_cond_destroy, pthread_cond_init, pthread_cond_signal):
(pthread_cond_wait, pthread_exit, pthread_mutex_destroy):
(pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock):
(pthread_spin_init, pthread_spin_lock, pthread_spin_trylock);
(pthread_spin_unlock): New dummy functions.
(pthread_create): Return EAGAIN; don't set errno.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_t, and
require AC_C_INLINE.
* modules/pthread (Depends-on): Add sched, time.
(pthread.h): Use AM_V_GEN.
2010-07-13 Bruno Haible <bruno@clisp.org>
striconveh: Don't malloc memory if the result buffer is sufficient.
* lib/striconveh.c (mem_cd_iconveh_internal): Use the provided result
buffer if its size is sufficient.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-07-13 Bruno Haible <bruno@clisp.org>
strtod: Add safety check.
* lib/strtod.c (ldexp): Abort if this dummy replacement gets called.
2010-07-12 Bruno Haible <bruno@clisp.org>
Unify tests that set gl_cv_func_ldexpl_no_libm.
* m4/ldexpl.m4 (gl_CHECK_LDEXPL_NO_LIBM): New macro, extracted from
gl_FUNC_LDEXPL.
(gl_FUNC_LDEXPL): Invoke it.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
2010-07-12 Bruno Haible <bruno@clisp.org>
Unify tests that set gl_cv_func_ldexp_no_libm.
* m4/ldexp.m4: New file, based on m4/mathfunc.m4.
* m4/strtod.m4 (gl_PREREQ_STRTOD): Require gl_CHECK_LDEXP_NO_LIBM.
* modules/ldexp (Files): Remove m4/mathfunc.m4. Add m4/ldexp.m4.
(configure.ac): Simply invoke gl_FUNC_LDEXP.
* modules/strtod (Files): Add m4/ldexp.m4.
2010-07-12 Bruno Haible <bruno@clisp.org>
Unify tests that set gl_cv_func_frexpl_no_libm.
* m4/frexpl.m4 (gl_CHECK_FREXPL_NO_LIBM): New macro, extracted from
gl_FUNC_FREXPL_NO_LIBM.
(gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Invoke it.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
2010-07-12 Bruno Haible <bruno@clisp.org>
Unify tests that set gl_cv_func_frexp_no_libm.
* m4/frexp.m4 (gl_CHECK_FREXP_NO_LIBM): New macro, extracted from
gl_FUNC_FREXP_NO_LIBM.
(gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Require it.
* m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Likewise.
2010-07-12 Paul R. Eggert <eggert@cs.ucla.edu>
memcoll: clarify sizes versus lengths, document better, and tweak perf
* lib/memcoll.c (strcoll_loop, memcoll0):
Improve quality of descriptive comments. Name variables
consistently as to whether they are lengths (which do not include
terminating null) versus sizes (which do).
* lib/xmemcoll.c (xmemcoll0): Likewise.
* lib/memcoll.c (strcoll_loop): Tweak the way that the diff is
returned when s1size == 0; this is easier to compile and saves
about 17% of memcoll's code space on x86-64 with GCC 4.1.2.
2010-07-12 Bruno Haible <bruno@clisp.org>
Tests for module '_Exit'.
* modules/_Exit-tests: New file.
* tests/test-_Exit.sh: New file.
* tests/test-_Exit.c: New file.
New module '_Exit'.
* lib/stdlib.in.h (__attribute__): New macro.
(_Exit): New declaration.
* lib/_Exit.c: New file.
* m4/_Exit.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check whether _Exit is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB__EXIT and HAVE__EXIT.
* modules/stdlib (Makefile.am): Substitute GNULIB__EXIT and HAVE__EXIT.
* modules/_Exit: New file.
* tests/test-stdlib-c++.cc (_Exit): Check signature.
* doc/posix-functions/_Exit_C99.texi: Mention the new module.
2010-07-12 Paul R. Eggert <eggert@cs.ucla.edu>
strtod: make it more-accurate typically, and don't require libm
* lib/strtod.c (_GL_ARG_NONNULL): Remove; no longer needed.
Include limits.h. Don't include string.h.
(HAVE_LDEXP_IN_LIBC, HAVE_RAW_DECL_STRTOD): Define to 0 if not defined.
(locale_isspace): New function, so that no casts are needed to
check whether *s is a space.
(ldexp): Provide an unused dummy if not available.
(scale_radix_exp, parse_number, underlying_strtod): New functions.
(strtod): Use them. This implementation prefers to use the
underlying strtod if available, falling back on our own code
only to fix known bugs. This is more likely to produce an
accurate result. Also, it avoids the use of libm functions.
* m4/strtod.m4 (gl_FUNC_STRTOD): Don't invoke _AC_LIBOBJ_STRTOD;
no longer needed. Invoke AC_LIBOBJ([strtod]); don't know why this
was absent, but it caused a test failure with coreutils.
(gl_PREREQ_STRTOD): Check wither ldexp can be used without linking
with libm.
* modules/strtod (Makefile.am, Link): libm is no longer needed.
* modules/strtod-tests (Makefile.am): Likewise.
2010-07-11 Pádraig Brady <P@draigBrady.com>
Bruno Haible <bruno@clisp.org>
unistr/u8-strchr: Optimize ASCII argument case.
* lib/unistr/u8-strchr.c (u8_strchr): For ASCII arguments, use strchr.
2010-07-08 Paul Eggert <eggert@cs.ucla.edu>
(x)memcoll: minor tweaks
* lib/memcoll.c (strcoll_loop): Prefer the style where 'const'
is after the type that it qualifies.
(memcoll0): Likewise.
* lib/memcoll.h (memcoll0): Likewise.
* lib/xmemcoll.c (collate_error, xmemcoll0): Likewise.
* lib/xmemcoll.h (xmemcoll0): Likewise.
* lib/memcoll.c (memcoll0): Correct the comment. This function
differs from memcoll in that the NUL byte is part of the argument.
Omit the abort-checks, as performance is a real issue here. Plus,
the checks were wrong anyway (an off-by-one error). Omit local
variable 'diff', as it's a bit clearer that way.
* m4/memcoll.m4 (gl_MEMCOLL): Omit AC_FUNC_STRCOLL, as it's
no longer needed.
2010-07-08 Chen Guo <chenguo4@yahoo.com>
(x)memcoll: speedup when input is known to be NUL delimited
* lib/memcoll.c: Include stdlib.
(memcoll0): New function.
(strcoll_loop): New function, refactored for use in both memcoll
and memcoll0.
* lib/memcoll.h (memcoll0): Add prototype.
* lib/xmemcoll.c (xmemcoll0): New function.
(collate_error): New function, refactored for use in both xmemcoll
and xmemcoll0.
* lib/xmemcoll.h (xmemcoll0): Add prototype.
* m4/memcoll.m4: add inline invocation.
2010-07-06 Pádraig Brady <P@draigBrady.com>
* build-aux/bootstrap: Remove any local translations
from the translation project synchronization directory,
so that local only translations are not distributed.
2010-07-04 Bruno Haible <bruno@clisp.org>
fsusage: Clarify which code applies to which platforms.
* m4/fsusage.m4 (gl_FSUSAGE): Clarify which test succeeds on which
platform.
* lib/fsusage.c (get_fs_usage): Likewise.
2010-07-04 Bruno Haible <bruno@clisp.org>
havelib: Fix bug when AC_LIB_FROMPACKAGE is used more than twice.
* m4/lib-link.m4 (AC_LIB_FROMPACKAGE): Use m4_defn.
Reported by Martin Lambers <marlam@marlam.de>.
2010-07-04 Jim Meyering <meyering@redhat.com>
hash: once again explicitly disallow insertion of NULL
* lib/hash.c (hash_insert0): Reinstate just-removed test:
inserting a NULL pointer cannot work with these functions.
Add a comment with details.
This reverts part of the 2010-07-01 commit, 5bef1a35
"hash: extend module to deal with non-pointer keys".
2010-07-01 Bruno Haible <bruno@clisp.org>
stdbool: Update doc.
* doc/posix-headers/stdbool.texi: Mention OpenBSD bug.
Info from Christian Weisgerber <naddy@mips.inka.de>.
2010-07-01 Jim Meyering <meyering@redhat.com>
hash: extend module to deal with non-pointer keys
* lib/hash.c (hash_insert0): New interface, much like hash_insert
but that allows insertion of non-pointer entries.
Do not disallow an ENTRY value of NULL.
(hash_insert): This is now just a thin wrapper. Call hash_insert0.
* lib/hash.h (hash_insert0): Declare.
2010-07-01 Christian Weisgerber <naddy@mips.inka.de> (tiny change)
gettext: Use AC_GNU_SOURCE as a fallback for AC_USE_SYSTEM_EXTENSIONS.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): When AC_USE_SYSTEM_EXTENSIONS is
not present (i.e. with autoconf 2.59 and when using gettextize, not
gnulib), require AC_GNU_SOURCE instead.
2010-07-01 Ian Beckwith <ianb@erislabs.net>
idpriv-drop: Fix tests.
* tests/test-idpriv-drop.su.sh: Refer to the test-idpriv-drop program,
not to the test-idpriv-droptemp program.
2010-06-29 Bruno Haible <bruno@clisp.org>
string: Fix syntax error with g++ 2.96.
* lib/string.in.h (__pure__): Remove definition.
(_GL_ATTRIBUTE_PURE): New macro.
(memchr, memmem, memrchr, rawmemchr, strchrnul, strnlen, strpbrk,
strstr, strcasestr): Use it instead of __attribute__ ((__pure__)).
Reported by Christian Weisgerber <naddy@mips.inka.de>.
2010-06-28 Ian Beckwith <ianb@erislabs.net>
unitypes: Fix bug introduced on 2010-05-18.
* modules/unitypes (Files): Really add m4/libunistring-base.m4.
2010-06-22 Eric Blake <eblake@redhat.com>
memmem: slight optimization
* lib/str-two-way.h (critical_factorization): Update comments.
Reduce work during factorization phase.
Reported by Carlos Bueno <carlos@bueno.org>.
2010-06-21 Bruno Haible <bruno@clisp.org>
Fix HAVE_CALLOC_POSIX misnomer.
* lib/stdlib.in.h (calloc): Use REPLACE_CALLOC instead of
!HAVE_CALLOC_POSIX.
* m4/calloc.m4 (gl_REPLACE_CALLOC): Set REPLACE_CALLOC instead of
HAVE_CALLOC_POSIX.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_CALLOC
instead of HAVE_CALLOC_POSIX.
* modules/stdlib (Makefile.am): Substitute REPLACE_CALLOC instead of
HAVE_CALLOC_POSIX.
Use modern idiom for calloc() replacement.
* modules/calloc (configure.ac): Invoke gl_FUNC_CALLOC_GNU instead of
AC_FUNC_CALLOC.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Renamed from AC_FUNC_CALLOC.
Require gl_STDLIB_H_DEFAULTS. Invoke gl_REPLACE_CALLOC.
(gl_FUNC_CALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
HAVE_CALLOC_POSIX. Invoke gl_REPLACE_CALLOC.
(gl_REPLACE_CALLOC): New macro.
2010-06-21 Bruno Haible <bruno@clisp.org>
Fix HAVE_REALLOC_POSIX misnomer.
* lib/stdlib.in.h (realloc): Use REPLACE_REALLOC instead of
!HAVE_REALLOC_POSIX.
* m4/realloc.m4 (gl_REPLACE_REALLOC): Set REPLACE_REALLOC instead of
HAVE_REALLOC_POSIX.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_REALLOC
instead of HAVE_REALLOC_POSIX.
* modules/stdlib (Makefile.am): Substitute REPLACE_REALLOC instead of
HAVE_REALLOC_POSIX.
Use modern idiom for realloc() replacement.
* modules/realloc (configure.ac): Invoke gl_FUNC_REALLOC_GNU instead of
AC_FUNC_REALLOC.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): New macro, mostly copied from
Autoconf's AC_FUNC_REALLOC.
(gl_FUNC_REALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
HAVE_REALLOC_POSIX. Invoke gl_REPLACE_REALLOC.
(gl_REPLACE_REALLOC): New macro.
Reported by Richard Lloyd <richard.lloyd@connectinternetsolutions.com>.
2010-06-21 Bruno Haible <bruno@clisp.org>
Fix HAVE_MALLOC_POSIX misnomer.
* lib/stdlib.in.h (malloc): Use REPLACE_MALLOC instead of
!HAVE_MALLOC_POSIX.
* m4/malloc.m4 (gl_REPLACE_MALLOC): Set REPLACE_MALLOC instead of
HAVE_MALLOC_POSIX.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MALLOC
instead of HAVE_MALLOC_POSIX.
* modules/stdlib (Makefile.am): Substitute REPLACE_MALLOC instead of
HAVE_MALLOC_POSIX.
Use modern idiom for malloc() replacement.
* modules/malloc (configure.ac): Invoke gl_FUNC_MALLOC_GNU instead of
AC_FUNC_MALLOC.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): New macro, mostly copied from
Autoconf's AC_FUNC_MALLOC.
(gl_FUNC_MALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize
HAVE_MALLOC_POSIX. Invoke gl_REPLACE_MALLOC.
(gl_REPLACE_MALLOC): New macro.
Reported by Richard Lloyd <richard.lloyd@connectinternetsolutions.com>.
2010-06-20 Richard Lloyd <richard.lloyd@connectinternetsolutions.com>
stdio.in.h: fix compilation failure when using HP-UX 11's C compiler
* lib/stdio.in.h: Remove excess _GL_CXXALIAS_RPL macro argument.
This macro takes 3 arguments, not 4.
2010-06-15 Giuseppe Scrivano <gscrivano@gnu.org>
ipv6: fix detection under mingw
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Include <ws2tcpip.h> for struct
in6_addr.
2010-06-14 Ben Pfaff <blp@cs.stanford.edu>
* m4/strtod.m4 (gl_FUNC_STRTOD): Factor out common code. Assume
that strtod() works when cross-compiling to a glibc version known
to work.
2010-06-15 Bruno Haible <bruno@clisp.org>
* m4/strtod.m4 (gl_FUNC_STRTOD): Stop using AC_FUNC_STRTOD.
2010-06-15 René Berber <r.berber@computer.org> (tiny change)
select: Correct timeout.
* lib/select.c (rpl_select): Compute wait_timeout correctly.
2010-06-14 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
git-version-gen: init shell var to avoid env var influence
* build-aux/git-version-gen (v): Init shell var to empty.
2010-06-14 Paul Eggert <eggert@cs.ucla.edu>
priv-set: Don't assume that priv.h exists merely because getppriv does.
See Jan Andersen's bug report about AIX 5L in
http://lists.gnu.org/r/bug-tar/2010-06/msg00019.html
* m4/priv-set.m4 (gl_PRIV_SET): Check for priv.h.
* lib/priv-set.c: Do nothing unless HAVE_PRIV_H.
* lib/priv-set.h: Likewise.
* tests/test-priv-set.c: Likewise.
2010-06-13 Bruno Haible <bruno@clisp.org>
relocatable: Make it easier to test whether to install wrappers.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): New automake conditional
RELOCATABLE_VIA_WRAPPER.
2010-06-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Display specified modules and dependencies differently.
* gnulib-tool (func_show_module_list): New function.
(func_import, func_create_testdir): Invoke it.
Reported by Thien-Thi Nguyen <ttn@gnuvola.org>.
2010-06-13 Bruno Haible <bruno@clisp.org>
gnulib-tool: Align code of func_import and func_create_testdir.
* gnulib-tool (func_create_testdir): Rename variable saved_modules to
specified_modules.
2010-06-12 Jim Meyering <meyering@redhat.com>
test-inttostr: avoid spurious failure on Solaris 9
* tests/test-inttostr.c (main): Skip the test when snprintf fails
to accept "%ju". Reported by Bruno Haible.
2010-06-11 Jim Meyering <meyering@redhat.com>
test-sys_socket: mark variables as used more readably
* tests/test-sys_socket.c (main): Mark otherwise unused variables
as "used" explicitly via (void) statement casts. This is more
readable than using them in an artificial return expression.
Suggestion from Bruno Haible.
2010-06-11 Bruno Haible <bruno@clisp.org>
Avoid some more warnings from "gcc -Wwrite-strings".
* tests/test-argp.c (test_optional): Change 5th and 6th argument type
to 'const char *'.
* tests/test-c-strstr.c (main): Add 'const' to variable declaration.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-mbscasestr1.c (main): Likewise.
* tests/test-mbscasestr2.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
2010-06-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
init.sh: change framework_failure_ to fail with status 99, not 1
* tests/init.sh (framework_failure_): Exit 99, not 1. This informs
automake's parallel-tests rule that this is an unexpected failure,
even if the test is listed in XFAIL_TESTS.
2010-06-11 Jim Meyering <meyering@redhat.com>
test-inttostr: avoid warnings about 4-6KB literal strings
* tests/test-inttostr.c: Don't use <assert.h>. Instead, ...
Include "macros.h", for its definition of ASSERT.
(CK): s/assert/ASSERT/
* modules/inttostr-tests (Files): Add macros.h.
init.sh: don't use $ME_ or skip_ before they are defined
* tests/init.sh: Hoist definitions of $ME_ and skip_ to precede
their first uses. Also hoist their companions: warn_, fail_,
framework_failure_, $stderr_fileno. Prompted by a patch from
Stefano Lattarini.
test-sys_socket: avoid set-but-not-used warnings from gcc
* tests/test-sys_socket.c (main): Use "i" and "x", in order to
avoid warning about set-but-not-used variables.
test-xvasprintf: avoid 'const' discard warnings
* tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Use
"const" when assigning from literal strings.
(test_xasprintf): Add "void" in function argument list to placate
-Wstrict-prototypes and to be consistent with test_xvasprintf above.
tests: avoid compilation warnings in argmatch and exclude tests...
in packages that define ARGMATCH_DIE_DECL, like coreutils.
* tests/test-exclude.c [ARGMATCH_DIE_DECL]: Also declare the function.
Since it always exits, declare with the "noreturn" attribute.
* tests/test-argmatch.c: Likewise.
tests: avoid 'const' discard warnings in mbsstr tests
* tests/test-mbsstr1.c (main): Add "const" to avoid trivial warning.
* tests/test-mbsstr2.c (main): Likewise.
test-verify: avoid warning from gcc's -Wmissing-declarations
* tests/test-verify.c (function): Declare to be static.
test-inttostr.c: include <string.h> for use of strcmp
* tests/test-inttostr.c: Include <string.h> for strcmp declaration.
test-linkat: avoid failed assertion on "other" architectures
* tests/test-linkat.c: Include <sys/stat.h>, for declarations of stat,
lstat, mkdir. Patch by John Rigby, to fix FTBFS on armel, powerpc,
sparc: https://bugs.launchpad.net/bugs/591968
2010-06-11 Jim Meyering <meyering@redhat.com>
printf.m4: avoid autoconf's "Expanded Before Required" warning
* m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Define using AC_DEFUN_ONCE,
rather than AC_DEFUN, to avoid the classic "Expanded Before Required"
autoconf warning.
2010-06-10 Ben Pfaff <blp@cs.stanford.edu>
Replacement header templates are now named with ".in", not "_".
* doc/gnulib-intro.texi: Correct.
2010-06-10 Jim Meyering <meyering@redhat.com>
inttostr-tests: depend on snprintf, not snprintf-posix
* modules/inttostr-tests (Depends-on): Depend on snprintf, not
snprintf-posix, to avoid this aclocal failure:
missing file gnulib-tests/vasnprintf.c
configure.ac:45: error: expected source file, required through \
AC_LIBSOURCES, not found
2010-06-10 Jim Meyering <meyering@redhat.com>
inttostr: add a new function, inttostr, and tests
The namesake function was not available. The existence of the
template file, inttostr.c makes its addition nontrivial.
* lib/anytostr.c: Rename from inttostr.c.
(anytostr): Rename from inttostr.
* lib/inttostr.c: New file.
* modules/inttostr (Files): Add anytostr.c.
(Makefile.am): Set lib_SOURCES instead of ...
* m4/inttostr.m4: Remove uses of AC_LIBOBJ.
* lib/imaxtostr.c: Update use. s/inttostr/anytostr/
* lib/offtostr.c: Likewise.
* lib/uinttostr.c: Likewise.
* lib/umaxtostr.c: Likewise.
* modules/inttostr-tests: New file.
* tests/test-inttostr.c: New file. Test these functions.
2010-06-09 Ben Pfaff <blp@cs.stanford.edu>
Bruno Haible <bruno@clisp.org>
Add "Extending Gnulib" chapter to manual.
* doc/gnulib.texi (Writing Modules): Add cross-reference to new
chapter.
(Extending Gnulib): New chapter.
* doc/gnulib-intro.texi (Openness): Add cross-reference to new
chapter.
2010-06-09 Bruno Haible <bruno@clisp.org>
Avoid relocwrapper link errors due to gnulib replacement functions.
* lib/areadlink.c: Use the system's malloc, realloc functions.
(areadlink): Set errno to ENOMEM explicitly.
* modules/areadlink (Depends-on): Remove malloc-posix.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2010-06-09 Bruno Haible <bruno@clisp.org>
Avoid relocwrapper link errors due to gnulib replacement functions.
* lib/canonicalize-lgpl.c: Use the system's malloc function.
* lib/malloca.c: Likewise.
* lib/relocatable.c: Likewise.
* lib/progreloc.c: Use the system's malloc, sprintf functions.
* lib/relocwrapper.c: Use the system's fprintf, malloc functions.
* lib/setenv.c: Use the system's malloc, realloc functions.
* lib/strerror.c: Use the system's sprintf function.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2010-06-04 Bruno Haible <bruno@clisp.org>
Prefer documented low-level autoconf macro names.
* m4/lib-link.m4: Use m4_translit instead of translit.
* m4/environ.m4: Likewise.
* m4/mathfunc.m4: Likewise.
* m4/onceonly.m4: Likewise.
* m4/stdint.m4: Likewise.
Suggested by Eric Blake.
2010-06-04 Martin Lambers <marlam@marlam.de>
Bruno Haible <bruno@clisp.org>
havelib: Allow library names with '+' characters.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS,
AC_LIB_FROMPACKAGE, AC_LIB_LINKFLAGS_BODY): Convert '+' in name to '_'.
2010-06-09 Bruno Haible <bruno@clisp.org>
Module setenv does not depend on 'malloc-posix', 'realloc-posix'.
* lib/setenv.c (__add_to_environ): Set errno to ENOMEM when malloc or
realloc failed.
2010-06-08 Peter Simons <simons@cryp.to>
maint.mk: make the news-check rule more configurable
* top/maint.mk (news-check-lines-spec): New variable.
(news-check): Use "sed -n 1,10p" in place of "head".
2010-06-07 Jim Meyering <meyering@redhat.com>
do-release-commit-and-tag: fix typo in --help
* build-aux/do-release-commit-and-tag (Usage): Fix typo in --help.
regex: avoid new dead-code warning with gcc-4.6.0
* lib/regex_internal.c (re_string_reconstruct): #if-0-out a dead
if-block containing a while-loop. It's been unused for at least
5 years.
2010-06-05 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/strcoll.texi: Mention Solaris limitation.
Reported by River Tarnell <river.tarnell@wikimedia.de> via Eric Blake.
2010-06-04 Bruno Haible <bruno@clisp.org>
Update to GNU gettext 0.18.1.
* modules/gettext (configure.ac): Require gettext infrastructure from
version 0.18.1.
2010-06-03 Bruno Haible <bruno@clisp.org>
Don't use AC_LIBOBJ with file names in subdirectories.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE): Renamed from
gl_LIBUNISTRING_LIBSOURCE. Take a module name as argument, not a file
name. Define an automake conditional. Don't invoke AC_LIBOBJ.
* m4/libunistring.m4 (gl_LIBUNISTRING): Update AC_BEFORE invocation.
* modules/uni*/* (configure.ac): Use gl_LIBUNISTRING_MODULE instead of
gl_LIBUNISTRING_LIBSOURCE.
(Makefile.am): Augment lib_SOURCES here, conditionally.
* NEWS: Drop requirement for Automake option 'subdir-objects'.
2010-06-03 Bruno Haible <bruno@clisp.org>
Simplify gl_LIBUNISTRING_VERSION_CMP expansion.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Ensure
expansion does not end with a newline.
(gl_LIBUNISTRING_LIBSOURCE, gl_LIBUNISTRING_LIBHEADER): Avoid
unnecessary newline.
2010-06-03 Bruno Haible <bruno@clisp.org>
Reduce dependencies.
* tests/test-quotearg.h: New file, extracted from
tests/test-quotearg.c.
* tests/test-quotearg-simple.c: New file, extracted from
tests/test-quotearg.c.
* tests/test-quotearg.c: Don't include <ctype.h>.
(struct result_strings, struct result_groups, LQ, RQ, LQ_ENC, RQ_ENC,
RQ_ESC, inputs, compare, use_quotearg_buffer, use_quotearg,
use_quote_double_quotes, use_quotearg_colon): Moved to
tests/test-quotearg.h.
(results_g, flag_results, custom_quotes, custom_results): Moved
to tests/test-quotearg-simple.c.
(main): Moved the part that does not depend on gettext to
tests/test-quotearg-simple.c. Return 77 if the test cannot be
performed.
* modules/quotearg-simple: New file.
* modules/quotearg-simple-tests: New file.
* modules/quotearg (Depends-on): Add quotearg-simple.
* modules/quotearg-tests (Status): Mark as gettext-dependent-test.
(Files): Add tests/test-quotearg.h.
Reported by Paolo Bonzini.
2010-06-03 Bruno Haible <bruno@clisp.org>
Reduce dependencies.
* modules/acl (Depends-on): Add gettext-h. Remove gettext.
2010-06-03 Bruno Haible <bruno@clisp.org>
time: Undefine more broken macros.
* lib/time.in.h: Undefine broken localtime_r and gmtime_r macros only
for pthread-win32. Undefine also asctime_r, ctime_r, rand_r, strtok_r.
Reported by Eric Blake.
2010-06-03 Bruno Haible <bruno@clisp.org>
Choose among AC_DEFUN_ONCE, AC_DEFUN in a way that aclocal understands.
* m4/iconv.m4 (gl_iconv_AC_DEFUN): New macro.
(AM_ICONV): Define it through gl_iconv_AC_DEFUN.
* m4/libunistring.m4 (gl_libunistring_AC_DEFUN): New macro.
(gl_LIBUNISTRING): Define it through gl_libunistring_AC_DEFUN.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-06-02 Eric Blake <eblake@redhat.com>
time: work with mingw + pthreads-win32 library
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Set new variable
if timespec is defined only in pthread.h.
* modules/time (Makefile.am): Substitute it.
* lib/time.in.h (!TIME_H_DEFINES_STRUCT_TIMESPEC): Include
<pthread.h>, when needed.
(GNULIB_TIME_R): Undefine broken localtime_r and gmtime_r macros
from the library.
2010-05-31 Bruno Haible <bruno@clisp.org>
Avoid expanding two macros in the wrong order.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_LIB_PREPARE): Require
gl_LIBUNISTRING if it is defined.
* m4/libunistring.m4 (gl_LIBUNISTRING): Define using AC_DEFUN_ONCE for
autoconf >= 2.64.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-05-27 Jim Meyering <meyering@redhat.com>
maint.mk: also prohibit "#undef" of always-defined symbols
* top/maint.mk (def_sym_regex): Handle #undef as well as #define.
Allow more than one space before the symbol name.
(sc_prohibit_always-defined_macros): Use grep's -E, now that
the regexp uses alternation.
2010-05-26 Eric Blake <eblake@redhat.com>
maint.mk: avoid echo -e
* top/maint.mk (gzip_rsyncable, _ignore_case, _sc_say_and_exit):
Convert all uses of echo -* to printf.
Reported by Matthias Bolte.
2010-05-25 Bruno Haible <bruno@clisp.org>
Update to GNU gettext 0.18, part 2.
* build-aux/po/Makefile.in.in: Update to GNU gettext 0.18.
Reported by Martin von Gagern <Martin.vGagern@gmx.net>.
2010-05-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Add missing include in test-pwrite.c.
* tests/test-pwrite.c: Include string.h, for strcmp.
2010-05-24 Bruno Haible <bruno@clisp.org>
* NEWS: Mention requirement for Automake option 'subdir-objects'.
2010-05-24 Bruno Haible <bruno@clisp.org>
Don't use conversion with transliteration in u{8,16,32}_strcoll.
* lib/unistr/u-strcoll.h (FUNC): Use U_STRCONV_TO_ENCODING with
iconveh_error argument.
* lib/unistr/u8-strcoll.c: Define U_STRCONV_TO_ENCODING instead of
U_STRCONV_TO_LOCALE.
* lib/unistr/u16-strcoll.c: Likewise.
* lib/unistr/u32-strcoll.c: Likewise.
* modules/unistr/u8-strcoll (Depends-on): Add
uniconv/u8-strconv-to-enc, localcharset. Remove
uniconv/u8-strconv-to-locale.
(configure.ac): Bump version number.
* modules/unistr/u16-strcoll (Depends-on): Add
uniconv/u16-strconv-to-enc, localcharset. Remove
uniconv/u16-strconv-to-locale.
(configure.ac): Bump version number.
* modules/unistr/u32-strcoll (Depends-on): Add
uniconv/u32-strconv-to-enc, localcharset. Remove
uniconv/u32-strconv-to-locale.
(configure.ac): Bump version number.
2010-05-24 Bruno Haible <bruno@clisp.org>
Avoid a test failure on NetBSD 5.0.
* tests/test-striconveh.c (main): On NetBSD, skip a test that triggers
an iconv() bug.
2010-05-24 Bruno Haible <bruno@clisp.org>
Adjust #include directive style.
* modules/regex (Includes): Recommend to write <regex.h>.
2010-05-24 Bruno Haible <bruno@clisp.org>
regex: Don't require alloca.
* modules/regex (Depends-on): Remove alloca. Add alloca-opt.
* lib/regex_internal.h (alloca): Ensure it's defined even if we call it
only inside if (0).
2010-05-23 Jim Meyering <meyering@redhat.com>
test-renameat.c: include <sys/stat.h>
* tests/test-renameat.c: Include <sys/stat.h>; required for
definition of S_IS* macros.
2010-05-23 Ben Pfaff <blp@cs.stanford.edu>
Update maintainer documentation for 'relocatable-prog' module.
* doc/relocatable-maint.texi: Update.
Comments by Bruno Haible.
2010-05-23 Bruno Haible <bruno@clisp.org>
git-merge-changelog: Enable --split-merged-entry by default.
* lib/git-merge-changelog.c (main): Set split_merged_entry to true.
(usage): Don't mention this option any more.
Reported by Ralf Wildenhues.
2010-05-23 Jim Meyering <meyering@redhat.com>
test-pwrite: do not leave behind a test file named "out"
Revert commit d8fa18472a54c1cb2674c296b3d82443f234d5f7.
The trivial-looking use of init.sh is really necessary.
It ensures that the temporary file, "out", is created in
a temporary directory, and removed upon termination.
* tests/test-pwrite.sh: Re-add file.
* modules/pwrite-tests: Reference it.
2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix output redirection buglet in init.sh.
* tests/init.sh: Fix redirection of stderr.
2010-05-20 Simon Josefsson <simon@josefsson.org>
* modules/valgrind-tests (configure.ac): Invoke gl_VALGRIND_TESTS.
2010-05-17 Simon Josefsson <simon@josefsson.org>
* modules/valgrind-tests: New file.
* m4/valgrind-tests.m4: New file.
* doc/valgrind-tests.texi: New file.
* doc/gnulib.texi (Running self-tests under valgrind): New
section.
2010-05-19 Bruno Haible <bruno@clisp.org>
Clean up dead code in recent commit.
* m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Include the
body of gl_LIBUNISTRING_VERSION_CMP_ORIG as fallback.
(gl_LIBUNISTRING_VERSION_CMP_ORIG): Remove macro.
Suggested by Paolo Bonzini.
2010-05-19 Bruno Haible <bruno@clisp.org>
Avoid valgrind error reports from libunistring.
* lib/libunistring.valgrind: New file, based on lib/malloca.valgrind.
* modules/libunistring (Files): Add it.
* modules/libunistring-optional (Files): Likewise.
2010-05-18 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
New module 'libunistring-optional'.
* modules/libunistring-optional: New file.
* m4/libunistring-base.m4: New file.
* m4/libunistring-optional.m4: New file.
* lib/unicase.in.h: Renamed from lib/unicase.h.
* lib/uniconv.in.h: Renamed from lib/uniconv.h.
* lib/unictype.in.h: Renamed from lib/unictype.h.
* lib/unilbrk.in.h: Renamed from lib/unilbrk.h.
* lib/uniname.in.h: Renamed from lib/uniname.h.
* lib/uninorm.in.h: Renamed from lib/uninorm.h.
* lib/unistdio.in.h: Renamed from lib/unistdio.h.
* lib/unistr.in.h: Renamed from lib/unistr.h.
* lib/unitypes.in.h: Renamed from lib/unitypes.h.
* lib/uniwbrk.in.h: Renamed from lib/uniwbrk.h.
* lib/uniwidth.in.h: Renamed from lib/uniwidth.h.
* m4/libunistring.m4 (gl_LIBUNISTRING_CORE): Renamed from
gl_LIBUNISTRING. If the library was found, determine the installed
version and set LIBUNISTRING_VERSION.
(gl_LIBUNISTRING): New macro, as a wrapper arount it. Document that it
sets LIBUNISTRING_VERSION. If the module libunistring-optional is used,
handle a configuration option --with-included-libunistring.
* modules/libunistring (Files): Add m4/absolute-header.m4.
* modules/unicase/base (Files): Use unicase.in.h instead of unicase.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unicase.h from unicase.in.h.
* modules/uniconv/base (Files): Use uniconv.in.h instead of uniconv.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build uniconv.h from uniconv.in.h.
* modules/unictype/base (Files): Use unictype.in.h instead of
unictype.h. Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unictype.h from unictype.in.h.
* modules/unilbrk/base (Files): Use unilbrk.in.h instead of unilbrk.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unilbrk.h from unilbrk.in.h.
* modules/uniname/base (Files): Use uniname.in.h instead of uniname.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build uniname.h from uniname.in.h.
* modules/uninorm/base (Files): Use uninorm.in.h instead of uninorm.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build uninorm.h from uninorm.in.h.
* modules/unistdio/base (Files): Use unistdio.in.h instead of
unistdio.h. Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unistdio.h from unistdio.in.h.
* modules/unistr/base (Files): Use unistr.in.h instead of unistr.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unistr.h from unistr.in.h.
* modules/unitypes (Files): Use unitypes.in.h instead of unitypes.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build unitypes.h from unitypes.in.h.
* modules/uniwbrk/base (Files): Use uniwbrk.in.h instead of uniwbrk.h.
Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build uniwbrk.h from uniwbrk.in.h.
* modules/uniwidth/base (Files): Use uniwidth.in.h instead of
uniwidth.h. Add m4/libunistring-base.m4.
(configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER.
(Makefile.am): Build uniwidth.h from uniwidth.in.h.
* modules/unicase/empty-prefix-context: Use gl_LIBUNISTRING_LIBSOURCE
instead of augmenting lib_SOURCES.
* modules/unicase/empty-suffix-context: Likewise.
* modules/unicase/locale-language: Likewise.
* modules/unicase/tolower: Likewise.
* modules/unicase/totitle: Likewise.
* modules/unicase/toupper: Likewise.
* modules/unicase/u8-casecmp: Likewise.
* modules/unicase/u8-casecoll: Likewise.
* modules/unicase/u8-casefold: Likewise.
* modules/unicase/u8-casexfrm: Likewise.
* modules/unicase/u8-ct-casefold: Likewise.
* modules/unicase/u8-ct-tolower: Likewise.
* modules/unicase/u8-ct-totitle: Likewise.
* modules/unicase/u8-ct-toupper: Likewise.
* modules/unicase/u8-is-cased: Likewise.
* modules/unicase/u8-is-casefolded: Likewise.
* modules/unicase/u8-is-lowercase: Likewise.
* modules/unicase/u8-is-titlecase: Likewise.
* modules/unicase/u8-is-uppercase: Likewise.
* modules/unicase/u8-prefix-context: Likewise.
* modules/unicase/u8-suffix-context: Likewise.
* modules/unicase/u8-tolower: Likewise.
* modules/unicase/u8-totitle: Likewise.
* modules/unicase/u8-toupper: Likewise.
* modules/unicase/u16-casecmp: Likewise.
* modules/unicase/u16-casecoll: Likewise.
* modules/unicase/u16-casefold: Likewise.
* modules/unicase/u16-casexfrm: Likewise.
* modules/unicase/u16-ct-casefold: Likewise.
* modules/unicase/u16-ct-tolower: Likewise.
* modules/unicase/u16-ct-totitle: Likewise.
* modules/unicase/u16-ct-toupper: Likewise.
* modules/unicase/u16-is-cased: Likewise.
* modules/unicase/u16-is-casefolded: Likewise.
* modules/unicase/u16-is-lowercase: Likewise.
* modules/unicase/u16-is-titlecase: Likewise.
* modules/unicase/u16-is-uppercase: Likewise.
* modules/unicase/u16-prefix-context: Likewise.
* modules/unicase/u16-suffix-context: Likewise.
* modules/unicase/u16-tolower: Likewise.
* modules/unicase/u16-totitle: Likewise.
* modules/unicase/u16-toupper: Likewise.
* modules/unicase/u32-casecmp: Likewise.
* modules/unicase/u32-casecoll: Likewise.
* modules/unicase/u32-casefold: Likewise.
* modules/unicase/u32-casexfrm: Likewise.
* modules/unicase/u32-ct-casefold: Likewise.
* modules/unicase/u32-ct-tolower: Likewise.
* modules/unicase/u32-ct-totitle: Likewise.
* modules/unicase/u32-ct-toupper: Likewise.
* modules/unicase/u32-is-cased: Likewise.
* modules/unicase/u32-is-casefolded: Likewise.
* modules/unicase/u32-is-lowercase: Likewise.
* modules/unicase/u32-is-titlecase: Likewise.
* modules/unicase/u32-is-uppercase: Likewise.
* modules/unicase/u32-prefix-context: Likewise.
* modules/unicase/u32-suffix-context: Likewise.
* modules/unicase/u32-tolower: Likewise.
* modules/unicase/u32-totitle: Likewise.
* modules/unicase/u32-toupper: Likewise.
* modules/unicase/ulc-casecmp: Likewise.
* modules/unicase/ulc-casecoll: Likewise.
* modules/unicase/ulc-casexfrm: Likewise.
* modules/uniconv/u8-conv-from-enc: Likewise.
* modules/uniconv/u8-conv-to-enc: Likewise.
* modules/uniconv/u8-strconv-from-enc: Likewise.
* modules/uniconv/u8-strconv-from-locale: Likewise.
* modules/uniconv/u8-strconv-to-enc: Likewise.
* modules/uniconv/u8-strconv-to-locale: Likewise.
* modules/uniconv/u16-conv-from-enc: Likewise.
* modules/uniconv/u16-conv-to-enc: Likewise.
* modules/uniconv/u16-strconv-from-enc: Likewise.
* modules/uniconv/u16-strconv-from-locale: Likewise.
* modules/uniconv/u16-strconv-to-enc: Likewise.
* modules/uniconv/u16-strconv-to-locale: Likewise.
* modules/uniconv/u32-conv-from-enc: Likewise.
* modules/uniconv/u32-conv-to-enc: Likewise.
* modules/uniconv/u32-strconv-from-enc: Likewise.
* modules/uniconv/u32-strconv-from-locale: Likewise.
* modules/uniconv/u32-strconv-to-enc: Likewise.
* modules/uniconv/u32-strconv-to-locale: Likewise.
* modules/unictype/bidicategory-byname: Likewise.
* modules/unictype/bidicategory-name: Likewise.
* modules/unictype/bidicategory-of: Likewise.
* modules/unictype/bidicategory-test: Likewise.
* modules/unictype/block-list: Likewise.
* modules/unictype/block-test: Likewise.
* modules/unictype/category-C: Likewise.
* modules/unictype/category-Cc: Likewise.
* modules/unictype/category-Cf: Likewise.
* modules/unictype/category-Cn: Likewise.
* modules/unictype/category-Co: Likewise.
* modules/unictype/category-Cs: Likewise.
* modules/unictype/category-L: Likewise.
* modules/unictype/category-Ll: Likewise.
* modules/unictype/category-Lm: Likewise.
* modules/unictype/category-Lo: Likewise.
* modules/unictype/category-Lt: Likewise.
* modules/unictype/category-Lu: Likewise.
* modules/unictype/category-M: Likewise.
* modules/unictype/category-Mc: Likewise.
* modules/unictype/category-Me: Likewise.
* modules/unictype/category-Mn: Likewise.
* modules/unictype/category-N: Likewise.
* modules/unictype/category-Nd: Likewise.
* modules/unictype/category-Nl: Likewise.
* modules/unictype/category-No: Likewise.
* modules/unictype/category-P: Likewise.
* modules/unictype/category-Pc: Likewise.
* modules/unictype/category-Pd: Likewise.
* modules/unictype/category-Pe: Likewise.
* modules/unictype/category-Pf: Likewise.
* modules/unictype/category-Pi: Likewise.
* modules/unictype/category-Po: Likewise.
* modules/unictype/category-Ps: Likewise.
* modules/unictype/category-S: Likewise.
* modules/unictype/category-Sc: Likewise.
* modules/unictype/category-Sk: Likewise.
* modules/unictype/category-Sm: Likewise.
* modules/unictype/category-So: Likewise.
* modules/unictype/category-Z: Likewise.
* modules/unictype/category-Zl: Likewise.
* modules/unictype/category-Zp: Likewise.
* modules/unictype/category-Zs: Likewise.
* modules/unictype/category-and: Likewise.
* modules/unictype/category-and-not: Likewise.
* modules/unictype/category-byname: Likewise.
* modules/unictype/category-name: Likewise.
* modules/unictype/category-none: Likewise.
* modules/unictype/category-of: Likewise.
* modules/unictype/category-or: Likewise.
* modules/unictype/category-test: Likewise.
* modules/unictype/combining-class: Likewise.
* modules/unictype/ctype-alnum: Likewise.
* modules/unictype/ctype-alpha: Likewise.
* modules/unictype/ctype-blank: Likewise.
* modules/unictype/ctype-cntrl: Likewise.
* modules/unictype/ctype-digit: Likewise.
* modules/unictype/ctype-graph: Likewise.
* modules/unictype/ctype-lower: Likewise.
* modules/unictype/ctype-print: Likewise.
* modules/unictype/ctype-punct: Likewise.
* modules/unictype/ctype-space: Likewise.
* modules/unictype/ctype-upper: Likewise.
* modules/unictype/ctype-xdigit: Likewise.
* modules/unictype/decimal-digit: Likewise.
* modules/unictype/digit: Likewise.
* modules/unictype/mirror: Likewise.
* modules/unictype/numeric: Likewise.
* modules/unictype/property-alphabetic: Likewise.
* modules/unictype/property-ascii-hex-digit: Likewise.
* modules/unictype/property-bidi-arabic-digit: Likewise.
* modules/unictype/property-bidi-arabic-right-to-left: Likewise.
* modules/unictype/property-bidi-block-separator: Likewise.
* modules/unictype/property-bidi-boundary-neutral: Likewise.
* modules/unictype/property-bidi-common-separator: Likewise.
* modules/unictype/property-bidi-control: Likewise.
* modules/unictype/property-bidi-embedding-or-override: Likewise.
* modules/unictype/property-bidi-eur-num-separator: Likewise.
* modules/unictype/property-bidi-eur-num-terminator: Likewise.
* modules/unictype/property-bidi-european-digit: Likewise.
* modules/unictype/property-bidi-hebrew-right-to-left: Likewise.
* modules/unictype/property-bidi-left-to-right: Likewise.
* modules/unictype/property-bidi-non-spacing-mark: Likewise.
* modules/unictype/property-bidi-other-neutral: Likewise.
* modules/unictype/property-bidi-pdf: Likewise.
* modules/unictype/property-bidi-segment-separator: Likewise.
* modules/unictype/property-bidi-whitespace: Likewise.
* modules/unictype/property-byname: Likewise.
* modules/unictype/property-combining: Likewise.
* modules/unictype/property-composite: Likewise.
* modules/unictype/property-currency-symbol: Likewise.
* modules/unictype/property-dash: Likewise.
* modules/unictype/property-decimal-digit: Likewise.
* modules/unictype/property-default-ignorable-code-point: Likewise.
* modules/unictype/property-deprecated: Likewise.
* modules/unictype/property-diacritic: Likewise.
* modules/unictype/property-extender: Likewise.
* modules/unictype/property-format-control: Likewise.
* modules/unictype/property-grapheme-base: Likewise.
* modules/unictype/property-grapheme-extend: Likewise.
* modules/unictype/property-grapheme-link: Likewise.
* modules/unictype/property-hex-digit: Likewise.
* modules/unictype/property-hyphen: Likewise.
* modules/unictype/property-id-continue: Likewise.
* modules/unictype/property-id-start: Likewise.
* modules/unictype/property-ideographic: Likewise.
* modules/unictype/property-ids-binary-operator: Likewise.
* modules/unictype/property-ids-trinary-operator: Likewise.
* modules/unictype/property-ignorable-control: Likewise.
* modules/unictype/property-iso-control: Likewise.
* modules/unictype/property-join-control: Likewise.
* modules/unictype/property-left-of-pair: Likewise.
* modules/unictype/property-line-separator: Likewise.
* modules/unictype/property-logical-order-exception: Likewise.
* modules/unictype/property-lowercase: Likewise.
* modules/unictype/property-math: Likewise.
* modules/unictype/property-non-break: Likewise.
* modules/unictype/property-not-a-character: Likewise.
* modules/unictype/property-numeric: Likewise.
* modules/unictype/property-other-alphabetic: Likewise.
* modules/unictype/property-other-default-ignorable-code-point: Likewise.
* modules/unictype/property-other-grapheme-extend: Likewise.
* modules/unictype/property-other-id-continue: Likewise.
* modules/unictype/property-other-id-start: Likewise.
* modules/unictype/property-other-lowercase: Likewise.
* modules/unictype/property-other-math: Likewise.
* modules/unictype/property-other-uppercase: Likewise.
* modules/unictype/property-paired-punctuation: Likewise.
* modules/unictype/property-paragraph-separator: Likewise.
* modules/unictype/property-pattern-syntax: Likewise.
* modules/unictype/property-pattern-white-space: Likewise.
* modules/unictype/property-private-use: Likewise.
* modules/unictype/property-punctuation: Likewise.
* modules/unictype/property-quotation-mark: Likewise.
* modules/unictype/property-radical: Likewise.
* modules/unictype/property-sentence-terminal: Likewise.
* modules/unictype/property-soft-dotted: Likewise.
* modules/unictype/property-space: Likewise.
* modules/unictype/property-terminal-punctuation: Likewise.
* modules/unictype/property-test: Likewise.
* modules/unictype/property-titlecase: Likewise.
* modules/unictype/property-unassigned-code-value: Likewise.
* modules/unictype/property-unified-ideograph: Likewise.
* modules/unictype/property-uppercase: Likewise.
* modules/unictype/property-variation-selector: Likewise.
* modules/unictype/property-white-space: Likewise.
* modules/unictype/property-xid-continue: Likewise.
* modules/unictype/property-xid-start: Likewise.
* modules/unictype/property-zero-width: Likewise.
* modules/unictype/scripts: Likewise.
* modules/unictype/syntax-c-ident: Likewise.
* modules/unictype/syntax-c-whitespace: Likewise.
* modules/unictype/syntax-java-ident: Likewise.
* modules/unictype/syntax-java-whitespace: Likewise.
* modules/unilbrk/u8-possible-linebreaks: Likewise.
* modules/unilbrk/u8-width-linebreaks: Likewise.
* modules/unilbrk/u16-possible-linebreaks: Likewise.
* modules/unilbrk/u16-width-linebreaks: Likewise.
* modules/unilbrk/u32-possible-linebreaks: Likewise.
* modules/unilbrk/u32-width-linebreaks: Likewise.
* modules/unilbrk/ulc-possible-linebreaks: Likewise.
* modules/unilbrk/ulc-width-linebreaks: Likewise.
* modules/uniname/uniname: Likewise.
* modules/uninorm/canonical-decomposition: Likewise.
* modules/uninorm/composition: Likewise.
* modules/uninorm/decomposing-form: Likewise.
* modules/uninorm/decomposition: Likewise.
* modules/uninorm/filter: Likewise.
* modules/uninorm/nfc: Likewise.
* modules/uninorm/nfd: Likewise.
* modules/uninorm/nfkc: Likewise.
* modules/uninorm/nfkd: Likewise.
* modules/uninorm/u8-normalize: Likewise.
* modules/uninorm/u8-normcmp: Likewise.
* modules/uninorm/u8-normcoll: Likewise.
* modules/uninorm/u8-normxfrm: Likewise.
* modules/uninorm/u16-normalize: Likewise.
* modules/uninorm/u16-normcmp: Likewise.
* modules/uninorm/u16-normcoll: Likewise.
* modules/uninorm/u16-normxfrm: Likewise.
* modules/uninorm/u32-normalize: Likewise.
* modules/uninorm/u32-normcmp: Likewise.
* modules/uninorm/u32-normcoll: Likewise.
* modules/uninorm/u32-normxfrm: Likewise.
* modules/unistdio/u8-asnprintf: Likewise.
* modules/unistdio/u8-asprintf: Likewise.
* modules/unistdio/u8-snprintf: Likewise.
* modules/unistdio/u8-sprintf: Likewise.
* modules/unistdio/u8-u8-asnprintf: Likewise.
* modules/unistdio/u8-u8-asprintf: Likewise.
* modules/unistdio/u8-u8-snprintf: Likewise.
* modules/unistdio/u8-u8-sprintf: Likewise.
* modules/unistdio/u8-u8-vasnprintf: Likewise.
* modules/unistdio/u8-u8-vasprintf: Likewise.
* modules/unistdio/u8-u8-vsnprintf: Likewise.
* modules/unistdio/u8-u8-vsprintf: Likewise.
* modules/unistdio/u8-vasnprintf: Likewise.
* modules/unistdio/u8-vasprintf: Likewise.
* modules/unistdio/u8-vsnprintf: Likewise.
* modules/unistdio/u8-vsprintf: Likewise.
* modules/unistdio/u16-asnprintf: Likewise.
* modules/unistdio/u16-asprintf: Likewise.
* modules/unistdio/u16-snprintf: Likewise.
* modules/unistdio/u16-sprintf: Likewise.
* modules/unistdio/u16-u16-asnprintf: Likewise.
* modules/unistdio/u16-u16-asprintf: Likewise.
* modules/unistdio/u16-u16-snprintf: Likewise.
* modules/unistdio/u16-u16-sprintf: Likewise.
* modules/unistdio/u16-u16-vasnprintf: Likewise.
* modules/unistdio/u16-u16-vasprintf: Likewise.
* modules/unistdio/u16-u16-vsnprintf: Likewise.
* modules/unistdio/u16-u16-vsprintf: Likewise.
* modules/unistdio/u16-vasnprintf: Likewise.
* modules/unistdio/u16-vasprintf: Likewise.
* modules/unistdio/u16-vsnprintf: Likewise.
* modules/unistdio/u16-vsprintf: Likewise.
* modules/unistdio/u32-asnprintf: Likewise.
* modules/unistdio/u32-asprintf: Likewise.
* modules/unistdio/u32-snprintf: Likewise.
* modules/unistdio/u32-sprintf: Likewise.
* modules/unistdio/u32-u32-asnprintf: Likewise.
* modules/unistdio/u32-u32-asprintf: Likewise.
* modules/unistdio/u32-u32-snprintf: Likewise.
* modules/unistdio/u32-u32-sprintf: Likewise.
* modules/unistdio/u32-u32-vasnprintf: Likewise.
* modules/unistdio/u32-u32-vasprintf: Likewise.
* modules/unistdio/u32-u32-vsnprintf: Likewise.
* modules/unistdio/u32-u32-vsprintf: Likewise.
* modules/unistdio/u32-vasnprintf: Likewise.
* modules/unistdio/u32-vasprintf: Likewise.
* modules/unistdio/u32-vsnprintf: Likewise.
* modules/unistdio/u32-vsprintf: Likewise.
* modules/unistdio/ulc-asnprintf: Likewise.
* modules/unistdio/ulc-asprintf: Likewise.
* modules/unistdio/ulc-fprintf: Likewise.
* modules/unistdio/ulc-snprintf: Likewise.
* modules/unistdio/ulc-sprintf: Likewise.
* modules/unistdio/ulc-vasnprintf: Likewise.
* modules/unistdio/ulc-vasprintf: Likewise.
* modules/unistdio/ulc-vfprintf: Likewise.
* modules/unistdio/ulc-vsnprintf: Likewise.
* modules/unistdio/ulc-vsprintf: Likewise.
* modules/unistr/u8-check: Likewise.
* modules/unistr/u8-chr: Likewise.
* modules/unistr/u8-cmp: Likewise.
* modules/unistr/u8-cmp2: Likewise.
* modules/unistr/u8-cpy: Likewise.
* modules/unistr/u8-cpy-alloc: Likewise.
* modules/unistr/u8-endswith: Likewise.
* modules/unistr/u8-mblen: Likewise.
* modules/unistr/u8-mbsnlen: Likewise.
* modules/unistr/u8-mbtouc: Likewise.
* modules/unistr/u8-mbtouc-unsafe: Likewise.
* modules/unistr/u8-mbtoucr: Likewise.
* modules/unistr/u8-move: Likewise.
* modules/unistr/u8-next: Likewise.
* modules/unistr/u8-prev: Likewise.
* modules/unistr/u8-set: Likewise.
* modules/unistr/u8-startswith: Likewise.
* modules/unistr/u8-stpcpy: Likewise.
* modules/unistr/u8-stpncpy: Likewise.
* modules/unistr/u8-strcat: Likewise.
* modules/unistr/u8-strchr: Likewise.
* modules/unistr/u8-strcmp: Likewise.
* modules/unistr/u8-strcoll: Likewise.
* modules/unistr/u8-strcpy: Likewise.
* modules/unistr/u8-strcspn: Likewise.
* modules/unistr/u8-strdup: Likewise.
* modules/unistr/u8-strlen: Likewise.
* modules/unistr/u8-strmblen: Likewise.
* modules/unistr/u8-strmbtouc: Likewise.
* modules/unistr/u8-strncat: Likewise.
* modules/unistr/u8-strncmp: Likewise.
* modules/unistr/u8-strncpy: Likewise.
* modules/unistr/u8-strnlen: Likewise.
* modules/unistr/u8-strpbrk: Likewise.
* modules/unistr/u8-strrchr: Likewise.
* modules/unistr/u8-strspn: Likewise.
* modules/unistr/u8-strstr: Likewise.
* modules/unistr/u8-strtok: Likewise.
* modules/unistr/u8-to-u16: Likewise.
* modules/unistr/u8-to-u32: Likewise.
* modules/unistr/u8-uctomb: Likewise.
* modules/unistr/u16-check: Likewise.
* modules/unistr/u16-chr: Likewise.
* modules/unistr/u16-cmp: Likewise.
* modules/unistr/u16-cmp2: Likewise.
* modules/unistr/u16-cpy: Likewise.
* modules/unistr/u16-cpy-alloc: Likewise.
* modules/unistr/u16-endswith: Likewise.
* modules/unistr/u16-mblen: Likewise.
* modules/unistr/u16-mbsnlen: Likewise.
* modules/unistr/u16-mbtouc: Likewise.
* modules/unistr/u16-mbtouc-unsafe: Likewise.
* modules/unistr/u16-mbtoucr: Likewise.
* modules/unistr/u16-move: Likewise.
* modules/unistr/u16-next: Likewise.
* modules/unistr/u16-prev: Likewise.
* modules/unistr/u16-set: Likewise.
* modules/unistr/u16-startswith: Likewise.
* modules/unistr/u16-stpcpy: Likewise.
* modules/unistr/u16-stpncpy: Likewise.
* modules/unistr/u16-strcat: Likewise.
* modules/unistr/u16-strchr: Likewise.
* modules/unistr/u16-strcmp: Likewise.
* modules/unistr/u16-strcoll: Likewise.
* modules/unistr/u16-strcpy: Likewise.
* modules/unistr/u16-strcspn: Likewise.
* modules/unistr/u16-strdup: Likewise.
* modules/unistr/u16-strlen: Likewise.
* modules/unistr/u16-strmblen: Likewise.
* modules/unistr/u16-strmbtouc: Likewise.
* modules/unistr/u16-strncat: Likewise.
* modules/unistr/u16-strncmp: Likewise.
* modules/unistr/u16-strncpy: Likewise.
* modules/unistr/u16-strnlen: Likewise.
* modules/unistr/u16-strpbrk: Likewise.
* modules/unistr/u16-strrchr: Likewise.
* modules/unistr/u16-strspn: Likewise.
* modules/unistr/u16-strstr: Likewise.
* modules/unistr/u16-strtok: Likewise.
* modules/unistr/u16-to-u32: Likewise.
* modules/unistr/u16-to-u8: Likewise.
* modules/unistr/u16-uctomb: Likewise.
* modules/unistr/u32-check: Likewise.
* modules/unistr/u32-chr: Likewise.
* modules/unistr/u32-cmp: Likewise.
* modules/unistr/u32-cmp2: Likewise.
* modules/unistr/u32-cpy: Likewise.
* modules/unistr/u32-cpy-alloc: Likewise.
* modules/unistr/u32-endswith: Likewise.
* modules/unistr/u32-mblen: Likewise.
* modules/unistr/u32-mbsnlen: Likewise.
* modules/unistr/u32-mbtouc: Likewise.
* modules/unistr/u32-mbtouc-unsafe: Likewise.
* modules/unistr/u32-mbtoucr: Likewise.
* modules/unistr/u32-move: Likewise.
* modules/unistr/u32-next: Likewise.
* modules/unistr/u32-prev: Likewise.
* modules/unistr/u32-set: Likewise.
* modules/unistr/u32-startswith: Likewise.
* modules/unistr/u32-stpcpy: Likewise.
* modules/unistr/u32-stpncpy: Likewise.
* modules/unistr/u32-strcat: Likewise.
* modules/unistr/u32-strchr: Likewise.
* modules/unistr/u32-strcmp: Likewise.
* modules/unistr/u32-strcoll: Likewise.
* modules/unistr/u32-strcpy: Likewise.
* modules/unistr/u32-strcspn: Likewise.
* modules/unistr/u32-strdup: Likewise.
* modules/unistr/u32-strlen: Likewise.
* modules/unistr/u32-strmblen: Likewise.
* modules/unistr/u32-strmbtouc: Likewise.
* modules/unistr/u32-strncat: Likewise.
* modules/unistr/u32-strncmp: Likewise.
* modules/unistr/u32-strncpy: Likewise.
* modules/unistr/u32-strnlen: Likewise.
* modules/unistr/u32-strpbrk: Likewise.
* modules/unistr/u32-strrchr: Likewise.
* modules/unistr/u32-strspn: Likewise.
* modules/unistr/u32-strstr: Likewise.
* modules/unistr/u32-strtok: Likewise.
* modules/unistr/u32-to-u16: Likewise.
* modules/unistr/u32-to-u8: Likewise.
* modules/unistr/u32-uctomb: Likewise.
* modules/uniwbrk/u8-wordbreaks: Likewise.
* modules/uniwbrk/u16-wordbreaks: Likewise.
* modules/uniwbrk/u32-wordbreaks: Likewise.
* modules/uniwbrk/ulc-wordbreaks: Likewise.
* modules/uniwbrk/wordbreak-property: Likewise.
* modules/uniwidth/u8-strwidth: Likewise.
* modules/uniwidth/u8-width: Likewise.
* modules/uniwidth/u16-strwidth: Likewise.
* modules/uniwidth/u16-width: Likewise.
* modules/uniwidth/u32-strwidth: Likewise.
* modules/uniwidth/u32-width: Likewise.
* modules/uniwidth/width: Likewise.
* modules/unicase/cased-tests (Makefile.am): Link all test programs
with $(LIBUNISTRING).
* modules/unicase/ignorable-tests: Likewise.
* modules/unicase/locale-language-tests: Likewise.
* modules/unicase/tolower-tests: Likewise.
* modules/unicase/totitle-tests: Likewise.
* modules/unicase/toupper-tests: Likewise.
* modules/unicase/u8-casecmp-tests: Likewise.
* modules/unicase/u8-casecoll-tests: Likewise.
* modules/unicase/u8-casefold-tests: Likewise.
* modules/unicase/u8-is-cased-tests: Likewise.
* modules/unicase/u8-is-casefolded-tests: Likewise.
* modules/unicase/u8-is-lowercase-tests: Likewise.
* modules/unicase/u8-is-titlecase-tests: Likewise.
* modules/unicase/u8-is-uppercase-tests: Likewise.
* modules/unicase/u8-tolower-tests: Likewise.
* modules/unicase/u8-totitle-tests: Likewise.
* modules/unicase/u8-toupper-tests: Likewise.
* modules/unicase/u16-casecmp-tests: Likewise.
* modules/unicase/u16-casecoll-tests: Likewise.
* modules/unicase/u16-casefold-tests: Likewise.
* modules/unicase/u16-is-cased-tests: Likewise.
* modules/unicase/u16-is-casefolded-tests: Likewise.
* modules/unicase/u16-is-lowercase-tests: Likewise.
* modules/unicase/u16-is-titlecase-tests: Likewise.
* modules/unicase/u16-is-uppercase-tests: Likewise.
* modules/unicase/u16-tolower-tests: Likewise.
* modules/unicase/u16-totitle-tests: Likewise.
* modules/unicase/u16-toupper-tests: Likewise.
* modules/unicase/u32-casecmp-tests: Likewise.
* modules/unicase/u32-casecoll-tests: Likewise.
* modules/unicase/u32-casefold-tests: Likewise.
* modules/unicase/u32-is-cased-tests: Likewise.
* modules/unicase/u32-is-casefolded-tests: Likewise.
* modules/unicase/u32-is-lowercase-tests: Likewise.
* modules/unicase/u32-is-titlecase-tests: Likewise.
* modules/unicase/u32-is-uppercase-tests: Likewise.
* modules/unicase/u32-tolower-tests: Likewise.
* modules/unicase/u32-totitle-tests: Likewise.
* modules/unicase/u32-toupper-tests: Likewise.
* modules/unicase/ulc-casecmp-tests: Likewise.
* modules/unicase/ulc-casecoll-tests: Likewise.
* modules/uniconv/u8-conv-from-enc-tests: Likewise.
* modules/uniconv/u8-conv-to-enc-tests: Likewise.
* modules/uniconv/u8-strconv-from-enc-tests: Likewise.
* modules/uniconv/u8-strconv-to-enc-tests: Likewise.
* modules/uniconv/u16-conv-from-enc-tests: Likewise.
* modules/uniconv/u16-conv-to-enc-tests: Likewise.
* modules/uniconv/u16-strconv-from-enc-tests: Likewise.
* modules/uniconv/u16-strconv-to-enc-tests: Likewise.
* modules/uniconv/u32-conv-from-enc-tests: Likewise.
* modules/uniconv/u32-conv-to-enc-tests: Likewise.
* modules/uniconv/u32-strconv-from-enc-tests: Likewise.
* modules/uniconv/u32-strconv-to-enc-tests: Likewise.
* modules/unictype/bidicategory-byname-tests: Likewise.
* modules/unictype/bidicategory-name-tests: Likewise.
* modules/unictype/bidicategory-of-tests: Likewise.
* modules/unictype/bidicategory-test-tests: Likewise.
* modules/unictype/block-list-tests: Likewise.
* modules/unictype/block-of-tests: Likewise.
* modules/unictype/block-test-tests: Likewise.
* modules/unictype/category-C-tests: Likewise.
* modules/unictype/category-Cc-tests: Likewise.
* modules/unictype/category-Cf-tests: Likewise.
* modules/unictype/category-Cn-tests: Likewise.
* modules/unictype/category-Co-tests: Likewise.
* modules/unictype/category-Cs-tests: Likewise.
* modules/unictype/category-L-tests: Likewise.
* modules/unictype/category-Ll-tests: Likewise.
* modules/unictype/category-Lm-tests: Likewise.
* modules/unictype/category-Lo-tests: Likewise.
* modules/unictype/category-Lt-tests: Likewise.
* modules/unictype/category-Lu-tests: Likewise.
* modules/unictype/category-M-tests: Likewise.
* modules/unictype/category-Mc-tests: Likewise.
* modules/unictype/category-Me-tests: Likewise.
* modules/unictype/category-Mn-tests: Likewise.
* modules/unictype/category-N-tests: Likewise.
* modules/unictype/category-Nd-tests: Likewise.
* modules/unictype/category-Nl-tests: Likewise.
* modules/unictype/category-No-tests: Likewise.
* modules/unictype/category-P-tests: Likewise.
* modules/unictype/category-Pc-tests: Likewise.
* modules/unictype/category-Pd-tests: Likewise.
* modules/unictype/category-Pe-tests: Likewise.
* modules/unictype/category-Pf-tests: Likewise.
* modules/unictype/category-Pi-tests: Likewise.
* modules/unictype/category-Po-tests: Likewise.
* modules/unictype/category-Ps-tests: Likewise.
* modules/unictype/category-S-tests: Likewise.
* modules/unictype/category-Sc-tests: Likewise.
* modules/unictype/category-Sk-tests: Likewise.
* modules/unictype/category-Sm-tests: Likewise.
* modules/unictype/category-So-tests: Likewise.
* modules/unictype/category-Z-tests: Likewise.
* modules/unictype/category-Zl-tests: Likewise.
* modules/unictype/category-Zp-tests: Likewise.
* modules/unictype/category-Zs-tests: Likewise.
* modules/unictype/category-and-not-tests: Likewise.
* modules/unictype/category-and-tests: Likewise.
* modules/unictype/category-byname-tests: Likewise.
* modules/unictype/category-name-tests: Likewise.
* modules/unictype/category-none-tests: Likewise.
* modules/unictype/category-of-tests: Likewise.
* modules/unictype/category-or-tests: Likewise.
* modules/unictype/category-test-withtable-tests: Likewise.
* modules/unictype/combining-class-tests: Likewise.
* modules/unictype/ctype-alnum-tests: Likewise.
* modules/unictype/ctype-alpha-tests: Likewise.
* modules/unictype/ctype-blank-tests: Likewise.
* modules/unictype/ctype-cntrl-tests: Likewise.
* modules/unictype/ctype-digit-tests: Likewise.
* modules/unictype/ctype-graph-tests: Likewise.
* modules/unictype/ctype-lower-tests: Likewise.
* modules/unictype/ctype-print-tests: Likewise.
* modules/unictype/ctype-punct-tests: Likewise.
* modules/unictype/ctype-space-tests: Likewise.
* modules/unictype/ctype-upper-tests: Likewise.
* modules/unictype/ctype-xdigit-tests: Likewise.
* modules/unictype/decimal-digit-tests: Likewise.
* modules/unictype/digit-tests: Likewise.
* modules/unictype/mirror-tests: Likewise.
* modules/unictype/numeric-tests: Likewise.
* modules/unictype/property-alphabetic-tests: Likewise.
* modules/unictype/property-ascii-hex-digit-tests: Likewise.
* modules/unictype/property-bidi-arabic-digit-tests: Likewise.
* modules/unictype/property-bidi-arabic-right-to-left-tests: Likewise.
* modules/unictype/property-bidi-block-separator-tests: Likewise.
* modules/unictype/property-bidi-boundary-neutral-tests: Likewise.
* modules/unictype/property-bidi-common-separator-tests: Likewise.
* modules/unictype/property-bidi-control-tests: Likewise.
* modules/unictype/property-bidi-embedding-or-override-tests: Likewise.
* modules/unictype/property-bidi-eur-num-separator-tests: Likewise.
* modules/unictype/property-bidi-eur-num-terminator-tests: Likewise.
* modules/unictype/property-bidi-european-digit-tests: Likewise.
* modules/unictype/property-bidi-hebrew-right-to-left-tests: Likewise.
* modules/unictype/property-bidi-left-to-right-tests: Likewise.
* modules/unictype/property-bidi-non-spacing-mark-tests: Likewise.
* modules/unictype/property-bidi-other-neutral-tests: Likewise.
* modules/unictype/property-bidi-pdf-tests: Likewise.
* modules/unictype/property-bidi-segment-separator-tests: Likewise.
* modules/unictype/property-bidi-whitespace-tests: Likewise.
* modules/unictype/property-byname-tests: Likewise.
* modules/unictype/property-combining-tests: Likewise.
* modules/unictype/property-composite-tests: Likewise.
* modules/unictype/property-currency-symbol-tests: Likewise.
* modules/unictype/property-dash-tests: Likewise.
* modules/unictype/property-decimal-digit-tests: Likewise.
* modules/unictype/property-default-ignorable-code-point-tests: Likewise.
* modules/unictype/property-deprecated-tests: Likewise.
* modules/unictype/property-diacritic-tests: Likewise.
* modules/unictype/property-extender-tests: Likewise.
* modules/unictype/property-format-control-tests: Likewise.
* modules/unictype/property-grapheme-base-tests: Likewise.
* modules/unictype/property-grapheme-extend-tests: Likewise.
* modules/unictype/property-grapheme-link-tests: Likewise.
* modules/unictype/property-hex-digit-tests: Likewise.
* modules/unictype/property-hyphen-tests: Likewise.
* modules/unictype/property-id-continue-tests: Likewise.
* modules/unictype/property-id-start-tests: Likewise.
* modules/unictype/property-ideographic-tests: Likewise.
* modules/unictype/property-ids-binary-operator-tests: Likewise.
* modules/unictype/property-ids-trinary-operator-tests: Likewise.
* modules/unictype/property-ignorable-control-tests: Likewise.
* modules/unictype/property-iso-control-tests: Likewise.
* modules/unictype/property-join-control-tests: Likewise.
* modules/unictype/property-left-of-pair-tests: Likewise.
* modules/unictype/property-line-separator-tests: Likewise.
* modules/unictype/property-logical-order-exception-tests: Likewise.
* modules/unictype/property-lowercase-tests: Likewise.
* modules/unictype/property-math-tests: Likewise.
* modules/unictype/property-non-break-tests: Likewise.
* modules/unictype/property-not-a-character-tests: Likewise.
* modules/unictype/property-numeric-tests: Likewise.
* modules/unictype/property-other-alphabetic-tests: Likewise.
* modules/unictype/property-other-default-ignorable-code-point-tests:
Likewise.
* modules/unictype/property-other-grapheme-extend-tests: Likewise.
* modules/unictype/property-other-id-continue-tests: Likewise.
* modules/unictype/property-other-id-start-tests: Likewise.
* modules/unictype/property-other-lowercase-tests: Likewise.
* modules/unictype/property-other-math-tests: Likewise.
* modules/unictype/property-other-uppercase-tests: Likewise.
* modules/unictype/property-paired-punctuation-tests: Likewise.
* modules/unictype/property-paragraph-separator-tests: Likewise.
* modules/unictype/property-pattern-syntax-tests: Likewise.
* modules/unictype/property-pattern-white-space-tests: Likewise.
* modules/unictype/property-private-use-tests: Likewise.
* modules/unictype/property-punctuation-tests: Likewise.
* modules/unictype/property-quotation-mark-tests: Likewise.
* modules/unictype/property-radical-tests: Likewise.
* modules/unictype/property-sentence-terminal-tests: Likewise.
* modules/unictype/property-soft-dotted-tests: Likewise.
* modules/unictype/property-space-tests: Likewise.
* modules/unictype/property-terminal-punctuation-tests: Likewise.
* modules/unictype/property-test-tests: Likewise.
* modules/unictype/property-titlecase-tests: Likewise.
* modules/unictype/property-unassigned-code-value-tests: Likewise.
* modules/unictype/property-unified-ideograph-tests: Likewise.
* modules/unictype/property-uppercase-tests: Likewise.
* modules/unictype/property-variation-selector-tests: Likewise.
* modules/unictype/property-white-space-tests: Likewise.
* modules/unictype/property-xid-continue-tests: Likewise.
* modules/unictype/property-xid-start-tests: Likewise.
* modules/unictype/property-zero-width-tests: Likewise.
* modules/unictype/scripts-tests: Likewise.
* modules/unictype/syntax-c-ident-tests: Likewise.
* modules/unictype/syntax-c-whitespace-tests: Likewise.
* modules/unictype/syntax-java-ident-tests: Likewise.
* modules/unictype/syntax-java-whitespace-tests: Likewise.
* modules/unilbrk/u8-possible-linebreaks-tests: Likewise.
* modules/unilbrk/u8-width-linebreaks-tests: Likewise.
* modules/unilbrk/u16-possible-linebreaks-tests: Likewise.
* modules/unilbrk/u16-width-linebreaks-tests: Likewise.
* modules/unilbrk/u32-possible-linebreaks-tests: Likewise.
* modules/unilbrk/u32-width-linebreaks-tests: Likewise.
* modules/unilbrk/ulc-possible-linebreaks-tests: Likewise.
* modules/unilbrk/ulc-width-linebreaks-tests: Likewise.
* modules/uniname/uniname-tests: Likewise.
* modules/uninorm/canonical-decomposition-tests: Likewise.
* modules/uninorm/compat-decomposition-tests: Likewise.
* modules/uninorm/composition-tests: Likewise.
* modules/uninorm/decomposing-form-tests: Likewise.
* modules/uninorm/decomposition-tests: Likewise.
* modules/uninorm/filter-tests: Likewise.
* modules/uninorm/nfc-tests: Likewise.
* modules/uninorm/nfd-tests: Likewise.
* modules/uninorm/nfkc-tests: Likewise.
* modules/uninorm/nfkd-tests: Likewise.
* modules/uninorm/u8-normcmp-tests: Likewise.
* modules/uninorm/u8-normcoll-tests: Likewise.
* modules/uninorm/u16-normcmp-tests: Likewise.
* modules/uninorm/u16-normcoll-tests: Likewise.
* modules/uninorm/u32-normcmp-tests: Likewise.
* modules/uninorm/u32-normcoll-tests: Likewise.
* modules/unistdio/u8-asnprintf-tests: Likewise.
* modules/unistdio/u8-vasnprintf-tests: Likewise.
* modules/unistdio/u8-vasprintf-tests: Likewise.
* modules/unistdio/u8-vsnprintf-tests: Likewise.
* modules/unistdio/u8-vsprintf-tests: Likewise.
* modules/unistdio/u16-asnprintf-tests: Likewise.
* modules/unistdio/u16-vasnprintf-tests: Likewise.
* modules/unistdio/u16-vasprintf-tests: Likewise.
* modules/unistdio/u16-vsnprintf-tests: Likewise.
* modules/unistdio/u16-vsprintf-tests: Likewise.
* modules/unistdio/u32-asnprintf-tests: Likewise.
* modules/unistdio/u32-vasnprintf-tests: Likewise.
* modules/unistdio/u32-vasprintf-tests: Likewise.
* modules/unistdio/u32-vsnprintf-tests: Likewise.
* modules/unistdio/u32-vsprintf-tests: Likewise.
* modules/unistdio/ulc-asnprintf-tests: Likewise.
* modules/unistdio/ulc-vasnprintf-tests: Likewise.
* modules/unistdio/ulc-vasprintf-tests: Likewise.
* modules/unistdio/ulc-vsnprintf-tests: Likewise.
* modules/unistdio/ulc-vsprintf-tests: Likewise.
* modules/unistr/u8-check-tests: Likewise.
* modules/unistr/u8-chr-tests: Likewise.
* modules/unistr/u8-cmp-tests: Likewise.
* modules/unistr/u8-cmp2-tests: Likewise.
* modules/unistr/u8-cpy-alloc-tests: Likewise.
* modules/unistr/u8-cpy-tests: Likewise.
* modules/unistr/u8-mblen-tests: Likewise.
* modules/unistr/u8-mbsnlen-tests: Likewise.
* modules/unistr/u8-mbtouc-tests: Likewise.
* modules/unistr/u8-mbtouc-unsafe-tests: Likewise.
* modules/unistr/u8-mbtoucr-tests: Likewise.
* modules/unistr/u8-move-tests: Likewise.
* modules/unistr/u8-next-tests: Likewise.
* modules/unistr/u8-prev-tests: Likewise.
* modules/unistr/u8-set-tests: Likewise.
* modules/unistr/u8-stpcpy-tests: Likewise.
* modules/unistr/u8-stpncpy-tests: Likewise.
* modules/unistr/u8-strcat-tests: Likewise.
* modules/unistr/u8-strcmp-tests: Likewise.
* modules/unistr/u8-strcoll-tests: Likewise.
* modules/unistr/u8-strcpy-tests: Likewise.
* modules/unistr/u8-strdup-tests: Likewise.
* modules/unistr/u8-strlen-tests: Likewise.
* modules/unistr/u8-strmblen-tests: Likewise.
* modules/unistr/u8-strmbtouc-tests: Likewise.
* modules/unistr/u8-strncat-tests: Likewise.
* modules/unistr/u8-strncmp-tests: Likewise.
* modules/unistr/u8-strncpy-tests: Likewise.
* modules/unistr/u8-strnlen-tests: Likewise.
* modules/unistr/u8-to-u16-tests: Likewise.
* modules/unistr/u8-to-u32-tests: Likewise.
* modules/unistr/u8-uctomb-tests: Likewise.
* modules/unistr/u16-check-tests: Likewise.
* modules/unistr/u16-chr-tests: Likewise.
* modules/unistr/u16-cmp-tests: Likewise.
* modules/unistr/u16-cmp2-tests: Likewise.
* modules/unistr/u16-cpy-alloc-tests: Likewise.
* modules/unistr/u16-cpy-tests: Likewise.
* modules/unistr/u16-mblen-tests: Likewise.
* modules/unistr/u16-mbsnlen-tests: Likewise.
* modules/unistr/u16-mbtouc-tests: Likewise.
* modules/unistr/u16-mbtouc-unsafe-tests: Likewise.
* modules/unistr/u16-mbtoucr-tests: Likewise.
* modules/unistr/u16-move-tests: Likewise.
* modules/unistr/u16-next-tests: Likewise.
* modules/unistr/u16-prev-tests: Likewise.
* modules/unistr/u16-set-tests: Likewise.
* modules/unistr/u16-stpcpy-tests: Likewise.
* modules/unistr/u16-stpncpy-tests: Likewise.
* modules/unistr/u16-strcat-tests: Likewise.
* modules/unistr/u16-strcmp-tests: Likewise.
* modules/unistr/u16-strcoll-tests: Likewise.
* modules/unistr/u16-strcpy-tests: Likewise.
* modules/unistr/u16-strdup-tests: Likewise.
* modules/unistr/u16-strlen-tests: Likewise.
* modules/unistr/u16-strmblen-tests: Likewise.
* modules/unistr/u16-strmbtouc-tests: Likewise.
* modules/unistr/u16-strncat-tests: Likewise.
* modules/unistr/u16-strncmp-tests: Likewise.
* modules/unistr/u16-strncpy-tests: Likewise.
* modules/unistr/u16-strnlen-tests: Likewise.
* modules/unistr/u16-to-u32-tests: Likewise.
* modules/unistr/u16-to-u8-tests: Likewise.
* modules/unistr/u16-uctomb-tests: Likewise.
* modules/unistr/u32-check-tests: Likewise.
* modules/unistr/u32-chr-tests: Likewise.
* modules/unistr/u32-cmp-tests: Likewise.
* modules/unistr/u32-cmp2-tests: Likewise.
* modules/unistr/u32-cpy-alloc-tests: Likewise.
* modules/unistr/u32-cpy-tests: Likewise.
* modules/unistr/u32-mblen-tests: Likewise.
* modules/unistr/u32-mbsnlen-tests: Likewise.
* modules/unistr/u32-mbtouc-tests: Likewise.
* modules/unistr/u32-mbtouc-unsafe-tests: Likewise.
* modules/unistr/u32-mbtoucr-tests: Likewise.
* modules/unistr/u32-move-tests: Likewise.
* modules/unistr/u32-next-tests: Likewise.
* modules/unistr/u32-prev-tests: Likewise.
* modules/unistr/u32-set-tests: Likewise.
* modules/unistr/u32-stpcpy-tests: Likewise.
* modules/unistr/u32-stpncpy-tests: Likewise.
* modules/unistr/u32-strcat-tests: Likewise.
* modules/unistr/u32-strcmp-tests: Likewise.
* modules/unistr/u32-strcoll-tests: Likewise.
* modules/unistr/u32-strcpy-tests: Likewise.
* modules/unistr/u32-strdup-tests: Likewise.
* modules/unistr/u32-strlen-tests: Likewise.
* modules/unistr/u32-strmblen-tests: Likewise.
* modules/unistr/u32-strmbtouc-tests: Likewise.
* modules/unistr/u32-strncat-tests: Likewise.
* modules/unistr/u32-strncmp-tests: Likewise.
* modules/unistr/u32-strncpy-tests: Likewise.
* modules/unistr/u32-strnlen-tests: Likewise.
* modules/unistr/u32-to-u16-tests: Likewise.
* modules/unistr/u32-to-u8-tests: Likewise.
* modules/unistr/u32-uctomb-tests: Likewise.
* modules/uniwbrk/u8-wordbreaks-tests: Likewise.
* modules/uniwbrk/u16-wordbreaks-tests: Likewise.
* modules/uniwbrk/u32-wordbreaks-tests: Likewise.
* modules/uniwbrk/ulc-wordbreaks-tests: Likewise.
* modules/uniwidth/u8-strwidth-tests: Likewise.
* modules/uniwidth/u8-width-tests: Likewise.
* modules/uniwidth/u16-strwidth-tests: Likewise.
* modules/uniwidth/u16-width-tests: Likewise.
* modules/uniwidth/u32-strwidth-tests: Likewise.
* modules/uniwidth/u32-width-tests: Likewise.
* modules/uniwidth/width-tests: Likewise.
2010-05-18 Richard Jones <rjones@redhat.com>
doc: users.txt: list hivex
* users.txt: Add hivex.
2010-05-18 Richard Jones <rjones@redhat.com>
doc: users.txt: list febootstrap
* users.txt: Add febootstrap.
2010-05-17 Giuseppe Scrivano <gscrivano@gnu.org>
bootstrap: fix an error when gnulib is not used as a git submodule
* build-aux/bootstrap (gnulib_path): If its length is zero then
assign "gnulib" to it.
* build-aux/bootstrap: Redirect "git clone -h" stderr to stdout.
2010-05-16 Bruno Haible <bruno@clisp.org>
Avoid autoconf warnings about AM_ICONV.
* m4/iconv.m4 (AM_ICONV): Define using AC_DEFUN_ONCE for autoconf >=
2.64.
2010-05-16 Bruno Haible <bruno@clisp.org>
absolute-header: Make the macro usable in more situations.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): New macro, extracted
from gl_ABSOLUTE_HEADER.
(gl_ABSOLUTE_HEADER): Use it. Fix comment.
2010-05-16 James Youngman <jay@gnu.org>
doc: update users.txt
* users.txt: Add CSSC.
2010-05-16 Jim Meyering <meyering@redhat.com>
init.sh: fix an error in the previous change; add more comments
* tests/init.sh: Compare exit code in loop against 9, not 2.
Patch by Bruno Haible.
Make the two tests more similar by adding an empty "then" clause.
Add comments.
init.sh: avoid unnecessary shell re-exec
* tests/init.sh: Improve the re-exec-required check to first test the
current shell. If it passes the test, do not search for a shell that
does pass, and do not re-exec. This test is particularly contorted to
avoid triggering misbehavior in Solaris 10's /bin/sh whereby any use
of $(...) evokes a syntax error and causes immediate shell exit with
status 2. Bruno Haible reported that the re-exec made it impossible
to single-step through any init.sh-using script.
2010-05-16 Bruno Haible <bruno@clisp.org>
Fix collision between gnulib's and libintl's printf replacements.
* lib/stdio.in.h (_GL_STDIO_STRINGIZE,
_GL_STDIO_MACROEXPAND_AND_STRINGIZE): New macros.
(printf): When using GNU C, map the __printf__ function to rpl_printf
via __asm__. When not using GNU C, define rpl_printf instead of
__printf__.
* lib/printf.c: Ignore DEPENDS_ON_LIBINTL. Undoes the 2010-03-25
commit.
* lib/stdio-write.c: Ignore DEPENDS_ON_LIBINTL. Undoes the 2009-08-10
commit.
* m4/asm-underscore.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Require gl_ASM_SYMBOL_PREFIX.
* modules/stdio (Files): Add m4/asm-underscore.m4.
(Makefile.am): Substitute ASM_SYMBOL_PREFIX.
Reported by Ben Pfaff.
2010-05-16 Bruno Haible <bruno@clisp.org>
verify: Avoid skipping the test on openSUSE 11.0.
* tests/test-verify.sh: Unset MALLOC_PERTURB_.
2010-05-13 Bruno Haible <bruno@clisp.org>
Avoid useless warnings from G++.
* build-aux/c++defs.h (_GL_CXXALIASWARN_2, _GL_CXXALIASWARN1_2): Don't
use _GL_WARN_ON_USE or _GL_WARN_ON_USE_CXX when optimizing.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-05-11 Jim Meyering <meyering@redhat.com>
maint.mk: tweak preceding change
* top/maint.mk (gl_extract_significant_defines_): Make exclusion
regexps tighter by anchoring at EOL, and make the new group "shy"
for slightly decreased overhead.
2010-05-11 Eric Blake <eblake@redhat.com>
maint.mk: gnulib doesn't guarantee NSIG
* top/maint.mk (gl_extract_significant_defines_): Exclude NSIG.
2010-05-10 Peter O'Gorman <pogma@thewrittenword.com>
test-pwrite.c: Remove unused variable declaration.
* tests/test-pwrite.c (main): Remove read_buf declaration.
Remove useless test-pwrite.sh file.
* tests/test-pwrite.sh: Delete file.
* modules/pwrite-tests: Remove references.
Reported by Bruno Haible.
2010-05-10 Peter O'Gorman <pogma@thewrittenword.com>
init.sh: fix a typo
* tests/init.sh: Correct typo in MALLOC_PERTURB_ initialization.
2010-05-10 Jim Meyering <meyering@redhat.com>
maint.mk: avoid using a temporary file in the always-defined-macros check
* top/maint.mk (.re-defmac): Remove rule.
(gl_trap_): Remove definition.
(sc_prohibit_always-defined_macros): Rewrite not to create and
depend on a temporary file. Instead, depend on GNU grep's ability
to read a list of regular expressions from stdin when given "-f -".
2010-05-09 Bruno Haible <bruno@clisp.org>
Update to GNU gettext 0.18, part 1.
* m4/gettext.m4: Update to GNU gettext 0.18.
* m4/intl.m4: Likewise.
* m4/po.m4: Likewise.
* modules/gettext (Files): Add m4/fcntl-o.m4.
(configure.ac): Require gettext infrastructure from version 0.18.
2010-05-09 Jim Meyering <meyering@redhat.com>
init.sh: enable MALLOC_PERTURB_
* tests/init.sh: Enable glibc's malloc-perturbing option.
maint.mk: improve sc_cross_check_PATH_usage_in_tests
With my recent change in init.sh from the two-line form:
-# : ${srcdir=.}
-# . "$srcdir/init.sh"; path_prepend_ .
+# . "${srcdir=.}/init.sh"; path_prepend_ .
I noticed that using the one-line form would cause this test
to fail with a false-positive, or to stop working altogether,
depending on whether help-version changed or all the tests did.
* top/maint.mk (_hv_regex): Remove this definition.
(_hv_regex_weak): Use a weak regex to select all init.sh-sourcing files.
(_hv_regex_strong): Use a stronger regex to check for conformance.
(sc_cross_check_PATH_usage_in_tests): Rewrite to use the above.
Give a separate diagnostic for lack of conforming use.
maint.mk: prohibit definition of symbols defined by gnulib
* top/maint.mk (sc_prohibit_always-defined_macros): Reject the
definition of symbols defined by gnulib.
2010-05-09 Bruno Haible <bruno@clisp.org>
acl: Avoid test failure on Cygwin-hosted mingw.
* tests/test-set-mode-acl.sh: Skip test if USE_ACL is 0.
2010-05-09 Bruno Haible <bruno@clisp.org>
error: Use system's fcntl function.
* lib/error.c (fcntl): Undefine.
2010-05-09 Jim Meyering <meyering@redhat.com>
verify: adjust formatting to be more consistent
* lib/verify.h (_GL_GENSYM): Add a space before each of a few
argument-list '('s, and after one comma.
2010-05-09 Bruno Haible <bruno@clisp.org>
error: More reliable output on mingw.
* lib/error.c: Include <windows.h>.
(is_open): New function.
(flush_stdout): Call it instead of fcntl, also if F_GETFL is not
defined.
2010-05-09 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix syntax errors in libintl build on mingw.
* lib/vasnprintf.c (VASNPRINTF): Move a closing brace. Undefine
pad_ourselves and prec_ourselves after use.
2010-05-08 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Update comments for Cygwin 1.7.
* lib/localcharset.c: Likewise.
2010-05-07 Jim Meyering <meyering@redhat.com>
init.sh: improve comments
* tests/init.sh: Recommend the one-line init.sh-sourcing idiom:
. "${srcdir=.}/init.sh"; path_prepend_ .
Add a note about path_prepend_ and the alternative of using
TESTS_ENVIRONMENT.
2010-05-06 Sergey Poznyakoff <gray@gnu.org.ua>
exclude: Unescape hashed patterns in wildcard mode.
* lib/exclude.c (add_exclude): Unescape the pattern before adding it
to the hash list.
* tests/test-exclude8.sh: New test case.
* modules/exclude-tests: Add new test.
2010-05-05 Eric Blake <eblake@redhat.com>
verify: automate tests
* modules/verify-tests: New module.
* tests/test-verify.sh: New file.
* tests/test-verify.c: Guard each negative test with a unique id.
Also avoid warning about unused left hand of comma expressions.
2010-05-05 Paul Eggert <eggert@cs.ucla.edu>
Further improvements to verify.h, suggested by Eric Blake.
* lib/verify.h (_GL_CONCAT, _GL_CONCAT0, _GL_GENSYM): Renamed from
the GL_* versions, to avoid collision with OpenGL.
(_GL_COUNTER): New macro, so that we can fall back on __LINE__ if
__COUNTER__ doesn't work. Test that __COUNTER__ increments rather
than testing merely whether it's defined.
Modify verify.h to pacify gcc -Wredundant_decls.
* lib/verify.h (GL_CONCAT, GL_CONCAT0, GL_GENSYM): New macros.
These use the prefix "GL_" since they're likely to be useful elsewhere.
We may need to break them out into a different .h file.
(__COUNTER__): Define to 0 if the compiler doesn't support it.
(verify) [!defined __cplusplus]: Use them to avoid duplicate decls
of verify_function__.
2010-05-05 Peter O'Gorman <pogma@thewrittenword.com>
Tests for module pwrite.
* modules/pwrite-tests: New file.
* tests/test-pwrite.sh: New file.
* tests/test-pwrite.c: New file.
New module pwrite.
* lib/unistd.in.h (pwrite): New declaration.
* lib/pwrite.c: New file, from glibc with modifications.
* m4/pwrite.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H): Test whether pwrite is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_PWRITE, HAVE_PWRITE,
REPLACE_PWRITE.
* modules/pwrite: New file.
* modules/unistd (Makefile.am): Substitute GNULIB_PWRITE, HAVE_PWRITE,
REPLACE_PWRITE.
* tests/test-unistd-c++.cc: Check GNULIB_NAMESPACE::pwrite.
* doc/posix-functions/pwrite.texi: Mention the new module.
2010-05-05 Peter O'Gorman <pogma@thewrittenword.com>
pread: Update documentation.
* doc/posix-functions/pread.texi: Mention the 'pread' module.
2010-05-04 Eric Blake <eblake@redhat.com>
docs: update cygwin progress
* doc/posix-functions/wctob.texi (wctob): Cygwin 1.7.6 will fix
this bug.
* doc/glibc-functions/get_nprocs_conf.texi (get_nprocs_conf):
Added in cygwin 1.7.2.
* doc/glibc-functions/get_phys_pages.texi (get_phys_pages):
Likewise.
* doc/glibc-functions/get_avphys_pages.texi (get_avphys_pages):
Likewise.
* doc/glibc-functions/dup3.texi (dup3): Likewise.
* doc/glibc-functions/pipe2.texi (pipe2): Likewise.
* doc/glibc-functions/accept4.texi (accept4): Likewise.
* doc/posix-functions/strfmon.texi (strfmon): Likewise.
* doc/glibc-functions/get_nprocs.texi (get_nprocs): Likewise.
Mention nproc module.
* doc/glibc-functions/xdr_uint16_t.texi (xdr_uint16_t): Mention
bug in cygwin 1.7.5 addition.
* doc/glibc-functions/xdr_uint32_t.texi (xdr_uint32_t): Likewise.
* doc/glibc-functions/xdr_uint64_t.texi (xdr_uint64_t): Likewise.
* doc/glibc-functions/xdr_uint8_t.texi (xdr_uint8_t): Likewise.
* doc/glibc-functions/xdr_array.texi (xdr_array): Added in cygwin
1.7.5.
* doc/glibc-functions/xdr_bool.texi (xdr_bool): Likewise.
* doc/glibc-functions/xdr_bytes.texi (xdr_bytes): Likewise.
* doc/glibc-functions/xdr_char.texi (xdr_char): Likewise.
* doc/glibc-functions/xdr_double.texi (xdr_double): Likewise.
* doc/glibc-functions/xdr_enum.texi (xdr_enum): Likewise.
* doc/glibc-functions/xdr_float.texi (xdr_float): Likewise.
* doc/glibc-functions/xdr_free.texi (xdr_free): Likewise.
* doc/glibc-functions/xdr_hyper.texi (xdr_hyper): Likewise.
* doc/glibc-functions/xdr_int.texi (xdr_int): Likewise.
* doc/glibc-functions/xdr_int16_t.texi (xdr_int16_t): Likewise.
* doc/glibc-functions/xdr_int32_t.texi (xdr_int32_t): Likewise.
* doc/glibc-functions/xdr_int64_t.texi (xdr_int64_t): Likewise.
* doc/glibc-functions/xdr_int8_t.texi (xdr_int8_t): Likewise.
* doc/glibc-functions/xdr_long.texi (xdr_long): Likewise.
* doc/glibc-functions/xdr_longlong_t.texi (xdr_longlong_t):
Likewise.
* doc/glibc-functions/xdr_netobj.texi (xdr_netobj): Likewise.
* doc/glibc-functions/xdr_opaque.texi (xdr_opaque): Likewise.
* doc/glibc-functions/xdr_pointer.texi (xdr_pointer): Likewise.
* doc/glibc-functions/xdr_reference.texi (xdr_reference):
Likewise.
* doc/glibc-functions/xdr_short.texi (xdr_short): Likewise.
* doc/glibc-functions/xdr_sizeof.texi (xdr_sizeof): Likewise.
* doc/glibc-functions/xdr_string.texi (xdr_string): Likewise.
* doc/glibc-functions/xdr_u_char.texi (xdr_u_char): Likewise.
* doc/glibc-functions/xdr_u_hyper.texi (xdr_u_hyper): Likewise.
* doc/glibc-functions/xdr_u_int.texi (xdr_u_int): Likewise.
* doc/glibc-functions/xdr_u_long.texi (xdr_u_long): Likewise.
* doc/glibc-functions/xdr_u_longlong_t.texi (xdr_u_longlong_t):
Likewise.
* doc/glibc-functions/xdr_u_short.texi (xdr_u_short): Likewise.
* doc/glibc-functions/xdr_union.texi (xdr_union): Likewise.
* doc/glibc-functions/xdr_vector.texi (xdr_vector): Likewise.
* doc/glibc-functions/xdr_void.texi (xdr_void): Likewise.
* doc/glibc-functions/xdr_wrapstring.texi (xdr_wrapstring):
Likewise.
* doc/glibc-functions/xdrmem_create.texi (xdrmem_create):
Likewise.
* doc/glibc-functions/xdrrec_create.texi (xdrrec_create):
Likewise.
* doc/glibc-functions/xdrrec_endofrecord.texi
(xdrrec_endofrecord): Likewise.
* doc/glibc-functions/xdrrec_eof.texi (xdrrec_eof): Likewise.
* doc/glibc-functions/xdrrec_skiprecord.texi (xdrrec_skiprecord):
Likewise.
* doc/glibc-functions/xdrstdio_create.texi (xdrstdio_create):
Likewise.
2010-05-04 Jim Meyering <meyering@redhat.com>
gendocs.sh: make its "-s FILE" option more useful
* build-aux/gendocs.sh: When honoring the -s FILE option, update
$PACKAGE to reflect the probably-different basename of "FILE".
2010-05-03 Giuseppe Scrivano <gscrivano@gnu.org>
bootstrap: don't ignore download_po_files failure
* build-aux/bootstrap (update_po_files): Don't ignore download_po_files
failure.
2010-05-03 Jim Meyering <meyering@redhat.com>
maint.mk: allow to pass options to gendocs.sh
* top/maint.mk (web-manual): Pass gendocs_options_ to gendocs.sh.
(gendocs_options_): New overridable variable.
gnu-web-doc-update: don't ignore configure or build failure
* build-aux/gnu-web-doc-update: Exit nonzero upon internal failure.
announce-gen: backslash-escape '@'s in --help output
* build-aux/announce-gen: Fix syntax errors.
maint.mk, announce-gen: allow project-specific announcement mail headers
* top/maint.mk (translation_project_): Define default.
(announcement_Cc_, announcement_mail_headers_): Likewise.
(announcement): Invoke announce-gen with new --mail-headers option.
* build-aux/announce-gen: New option: --mail-headers=HEADERS.
test-xalloc-die: avoid unwarranted test failure on OpenSolaris 5.11
* tests/test-xalloc-die.sh: Redirect stdout before stderr, (i.e.,
"> out 2> err", rather than "2> err > out"). Otherwise, with /bin/sh
on OpenSolaris 5.11 snv_134, we would end up with a stray "1> out"
line in the "err2" output file when running "make check" in verbose
mode (i.e., with set -x enabled).
2010-05-03 Bruno Haible <bruno@clisp.org>
wctob: Fix for weird platforms.
* lib/wctob.c (wctob): When wint_t is larger than wchar_t, check the
argument value.
2010-05-03 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit unwarranted use of <strings.h>
* top/maint.mk (sc_prohibit_strings_without_use): Reject inclusion of
strings.h in a file that does not also use strcasecmp, strncasecmp,
ffs or ffsll.
maint.mk: remove obsolete comments
* top/maint.mk: Remove stale, commented-out rules.
2010-05-02 Bruno Haible <bruno@clisp.org>
wcwidth: Declare also when it's aliased.
* lib/wchar.in.h (wcwidth): Don't test whether wcwidth is defined as a
macro.
2010-05-02 Bruno Haible <bruno@clisp.org>
Fix regression from 2010-04-25.
* gnulib-tool (func_modules_transitive_closure): Check the status of
all modules, not only of the tests that are of the form foo-tests where
foo is a module.
2010-05-02 Bruno Haible <bruno@clisp.org>
wctob: Work around nasty Cygwin 1.7.2 bug.
* m4/wctob.m4 (gl_FUNC_WCTOB): Detect the Cygwin bug.
* doc/posix-functions/wctob.texi: Mention the Cygwin bug.
2010-05-01 Bruno Haible <bruno@clisp.org>
fpurge: Sharper test.
* tests/test-fpurge.c (main): Add one more ftell check.
* modules/fpurge-tests (Depends-on): Add ftell.
Suggested by Eric Blake.
2010-05-01 Bruno Haible <bruno@clisp.org>
ftello: Another test.
* tests/test-ftello3.c: New file.
* modules/ftello-tests (Files): Add it.
(Makefile.am): Add it to TESTS and check_PROGRAMS. Augment
MOSTLYCLEANFILES.
ftell: Another test.
* tests/test-ftell3.c: New file.
* modules/ftell-tests (Files): Add it.
(Makefile.am): Add it to TESTS and check_PROGRAMS. Augment
MOSTLYCLEANFILES.
2010-05-01 Bruno Haible <bruno@clisp.org>
ftell, ftello: Work around Solaris bug.
* m4/ftello.m4 (gl_FUNC_FTELLO): Detect Solaris bug.
* lib/ftello.c: Include stdio-impl.h.
(ftello): On Solaris, when _IOWRT is set, compute the result without
looking at _IOREAD.
* modules/ftello (Files): Add lib/stdio-impl.h.
* doc/posix-functions/ftell.texi: Mention Solaris bug.
* doc/posix-functions/ftello.texi: Likewise.
Reported by Eric Blake.
2010-05-01 Bruno Haible <bruno@clisp.org>
freading: Adapt to special meaning of _IOREAD flag on Solaris.
* lib/freading.c (freading): On Solaris, ignore the _IOREAD flag if
the _IOWRT flag is also set.
2010-05-01 Bruno Haible <bruno@clisp.org>
Fix doc about a HP-UX stdio bug.
* doc/posix-functions/ftell.texi: Mark HP-UX bug as unfixed.
* doc/posix-functions/ftello.texi: Likewise.
2010-05-01 Bruno Haible <bruno@clisp.org>
lseek test: Fix failure on Solaris.
* tests/test-lseek.sh: Partially revert 2010-04-20 commit. Consume all
output.
2010-04-30 Jim Meyering <meyering@redhat.com>
bootstrap: don't ignore failure to generate po*/Makevars
* build-aux/bootstrap (with_gettext): Don't ignore failure
to create po/Makevars or runtime-po/Makevars.
2010-04-29 Eric Blake <eblake@redhat.com>
headers: relax license to LGPLv2+
* modules/fcntl-h (License): Relax license.
* modules/getopt-posix (License): Likewise.
* modules/locale (License): Likewise.
* modules/math (License): Likewise.
* modules/pty (License): Likewise.
* modules/sched (License): Likewise.
* modules/search (License): Likewise.
* modules/spawn (License): Likewise.
* modules/stdarg (License): Likewise.
* modules/sysexits (License): Likewise.
2010-04-29 Jim Meyering <meyering@redhat.com>
inttypes: relax license to LGPLv2+
* modules/inttypes (License): Relax license.
2010-04-29 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (indent): Run twice to produce idempotent results.
2010-04-28 Bruno Haible <bruno@clisp.org>
getdate: Generate getdate.c in the source directory.
* modules/getdate (Makefile.am): Add rule for getdate.c. Augment
MOSTLYCLEANFILES.
Suggested by Daniel Richard G. <skunk@iskunk.org> and Ralf Wildenhues.
2010-04-27 Andreas Gruenbacher <agruen@suse.de> (tiny change)
* lib/utimens.c: On Tru64, the timestamp parameter of utimens(2)
is not declared as a const *; avoid warnings in that case.
2010-04-28 Eric Blake <eblake@redhat.com>
canonicalize-lgpl: avoid compiler warning
* lib/canonicalize-lgpl.c (versioned_symbol): Avoid an 'empty
declaration' / 'extraneous semicolon' warning with some compilers.
Reported by Andreas Gruenbacher.
2010-04-28 Jim Meyering <meyering@redhat.com>
init.sh: ensure a more reliable exit status when exiting via trap
* tests/init.sh (setup_): Don't rely on $? in signal handler.
Inspired by patches from Dmitry V. Levin.
Also trap on signal 3 (SIGQUIT).
2010-04-27 Bruno Haible <bruno@clisp.org>
Update doc about utimes().
* doc/posix-functions/utimes.texi: Mention the OSF/1 problem and the
'utimens' module.
Reported by Andreas Gruenbacher <agruen@suse.de>.
2010-04-27 Eric Blake <eblake@redhat.com>
full-read, full-write: relax license
* modules/full-read (License): Drop to LGPLv2+.
* modules/full-write (License): Likewise.
* modules/safe-read (License): Likewise.
* modules/safe-write (License): Likewise.
pthread: mention library for linking
* modules/pthread (Link): Mention $(LIB_PTHREAD).
2010-04-27 Jim Meyering <meyering@redhat.com>
maint.mk: fix a bug introduced in last change
* top/maint.mk (gl_assured_headers_): Now that all names are on
one line, use sed's "g" modifier. Note that while the \.in\.h LHS
is not anchored to end of word, it should be adequate.
maint.mk: avoid side-effect in latest syntax-check
* top/maint.mk (sc_prohibit_always_true_header_tests): Rework not
to run commands via $(shell...), and hence to incur cost only when
the new rule is actually run.
maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true
Derive the list of guaranteed header names from gnulib/lib/*.in.h,
and use that to create a regexp used to detect all #if HAVE_..._H uses.
* top/maint.mk (sc_prohibit_always_true_header_tests): New rule.
(gl_assured_headers_, az_, AZ_): Define.
(gl_header_upper_case_or_, gl_have_header_regex_): Define.
2010-04-26 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org>
gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty
* m4/gnulib-common.m4 (gl_COMMON_BODY): Set LIBC_FATAL_STDERR_.
Prompted by an exchange with Gilles Espinasse.
2010-04-26 Jim Meyering <meyering@redhat.com>
git-version-gen: aesthetic tweak
* build-aux/git-version-gen: Use "$nl" rather than a literal,
so that the command remains on a single line.
2010-04-26 Eric Blake <eblake@redhat.com>
git-version-gen: allow use on EBCDIC hosts
* build-aux/git-version-gen (dirty): Use literal rather than tying
ourselves to ascii.
Reported by Steve Goetze.
2010-04-25 Bruno Haible <bruno@clisp.org>
netdb: Add support for GNULIB_POSIXCHECK.
* lib/netdb.in.h: Include warn-on-use.h.
(getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo): Warn if these
functions are used when GNULIB_POSIXCHECK is defined and the
getaddrinfo module is not in use.
* m4/netdb_h.m4 (gl_HEADER_NETDB): Test whether getaddrinfo,
freeaddrinfo, gai_strerror, getnameinfo are declared.
* modules/netdb (Depends-on): Add warn-on-use.
(Makefile.am): Include warn-on-use.h in netdb.h.
2010-04-24 Ian Beckwith <ianb@erislabs.net>
build: avoid "make check" failure without .git/ directory
* Makefile (sc_prefer_ac_check_funcs_once): Skip this test when
there is no .git/ directory.
2010-04-25 Bruno Haible <bruno@clisp.org>
ptsname: Fix misuse of ttyname_r.
* lib/ptsname.c (__ptsname_r): Use __ttyname_r's return value instead
of errno.
2010-04-25 Bruno Haible <bruno@clisp.org>
ttyname_r: Make it work on Solaris 10.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Define HAVE_POSIXDECL_TTYNAME_R
if the system function has the POSIX declaration. Test whether the
function fails if the buffer is less than 128 bytes large.
* lib/ttyname_r.c (ttyname_r): Handle both possible declarations of the
system's ttyname_r function. Provide a reasonably large buffer.
* modules/ttyname_r (Depends-on): Add extensions.
* doc/posix-functions/ttyname_r.texi: Mention the Solaris problem.
2010-04-25 Bruno Haible <bruno@clisp.org>
Use the 'extensions' module for some more functions on Solaris.
* doc/posix-functions/asctime_r.texi: Recommend to use the 'extensions'
module.
* doc/posix-functions/ctime_r.texi: Likewise.
* doc/posix-functions/getgrgid_r.texi: Likewise.
* doc/posix-functions/getgrnam_r.texi: Likewise.
* doc/posix-functions/getpwnam_r.texi: Likewise.
* doc/posix-functions/getpwuid_r.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/sigwait.texi: Likewise.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Add comment.
* doc/posix-functions/getlogin_r.texi: Mark Solaris problem as fixed.
2010-04-25 Bruno Haible <bruno@clisp.org>
ttyname_r: Make it work on MacOS X 10.4 and Solaris 10.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether the system function
has the POSIX declaration. Set REPLACE_TTYNAME_R if not.
* lib/ttyname_r.c: Include <limits.h>.
(ttyname_r): Define using the system's ttyname_r function, if it exists
and not on Solaris.
* lib/unistd.in.h (ttyname_r): Replace function if REPLACE_TTYNAME_R is
set.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_TTYNAME_R.
* modules/unistd (Makefile.am): Substitute REPLACE_TTYNAME_R.
* doc/posix-functions/ttyname_r.texi: Mark the problem as fixed.
Reported by Simon Josefsson.
2010-04-25 Bruno Haible <bruno@clisp.org>
Mention effects of _POSIX_PTHREAD_SEMANTICS on Solaris.
* doc/posix-functions/asctime_r.texi: Mention the Solaris problem.
* doc/posix-functions/ctime_r.texi: Likewise.
* doc/posix-functions/getgrgid_r.texi: Likewise.
* doc/posix-functions/getgrnam_r.texi: Likewise.
* doc/posix-functions/getlogin_r.texi: Likewise.
* doc/posix-functions/getpwnam_r.texi: Likewise.
* doc/posix-functions/getpwuid_r.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/sigwait.texi: Likewise.
* doc/posix-functions/ttyname_r.texi: Likewise.
Reported by Simon Josefsson.
2010-04-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Don't include hairy tests of dependencies in testdirs.
* gnulib-tool (func_usage): Document that --with-*-tests options apply
also to --create-testdir.
(func_acceptable): Don't consider the status of *-tests modules here.
(func_modules_transitive_closure): Consider it here, before including a
test module.
(func_import, func_create_testdir): Set inc_all_direct_tests,
inc_all_indirect_tests.
* doc/gnulib.texi (Extra tests modules): Document new behaviour of
--create-testdir and --create-megatestdir.
2010-04-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add --without-*-tests options.
* gnulib-tool (func_usage): Document the --without-*-tests options.
(excl_cxx_tests, excl_longrunning_tests, excl_privileged_tests,
excl_unportable_tests): New variables.
Fail if they are specified with --import or --update.
(func_acceptable): Respect the excl_*_tests variables.
(func_import): Set the excl_*_tests variables to empty.
2010-04-25 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
Work around a MacOS X 10.4 bug with openpty.
* doc/glibc-functions/openpty.texi: Mention the MacOS X 10.4 bug.
* tests/test-openpty.c (main): Close the master side explicitly.
2010-04-25 Bruno Haible <bruno@clisp.org>
strnlen: Fix a C++ test error on MacOS X and Solaris.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Don't set REPLACE_STRNLEN to 1 if
the function is not declared.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com> and
Simon Josefsson.
2010-04-24 Bruno Haible <bruno@clisp.org>
Avoid a gcc warning.
* tests/test-vasprintf.c (test_vasprintf, test_asprintf): Pass argument
of correct type for %08lx directive.
Reported by Eric Blake.
2010-04-24 Bruno Haible <bruno@clisp.org>
vasnprintf: Correct errno value in case of out-of-memory.
* lib/vasnprintf.c (VASNPRINTF): Set errno to 0 before calling SNPRINTF
or sprintf. Use the errno value from SNPRINTF or sprintf.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-04-24 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Find correct compiler when cross-compiling.
* m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Use AC_CHECK_TOOLS instead of
AC_CHECK_PROGS.
Reported by Simon Josefsson.
2010-04-24 Giuseppe Scrivano <gscrivano@gnu.org>
vc-list-files: Add support for subversion
* build-aux/vc-list-files: Use "svn list" to generate the list of
files controlled by subversion.
2010-04-23 Jim Meyering <meyering@redhat.com>
vc-list-files tests: convert to use init.sh
* tests/test-vc-list-files-cvs.sh: Invoke "$srcdir/init.sh" and
path_prepend_.
Use Exit, not exit.
Use skip_ rather than open coding it.
Remove trap set-up and compare definitions.
* tests/test-vc-list-files-git.sh: Likewise.
* modules/vc-list-files-tests (Files): Add tests/init.sh.
2010-04-22 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (sc_prohibit_backup_files): Prohibit checked in
backup files.
2010-04-21 Simon Josefsson <simon@josefsson.org>
* tests/test-vasprintf.c (test_vasprintf, test_asprintf): Test %08lx.
2010-04-20 Eric Blake <eblake@redhat.com>
tests: be robust to ignored SIGPIPE
* tests/test-select-in.sh: Consume all output.
* tests/test-lseek.sh: Check correct exit status, while avoiding
EPIPE.
2010-04-20 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
visibility: Don't use -fvisibility if it leads to a warning.
* m4/visibility.m4 (gl_VISIBILITY): Check whether -Werror is usable. If
yes, don't pretend that visibility works if it leads to a warning.
Reported by Mike Gran <spk121@yahoo.com>.
2010-04-20 Andreas Gruenbacher <agruen@suse.de>
* build-aux/bootstrap: Use "git -h" for testing for supported options
instead of "git --help". The short-form option only shows a summary,
and doesn't layout the full man page. Grep for the full option name
in the summary, too.
2010-04-19 Bruno Haible <bruno@clisp.org>
relocatable: Drop the need to define RELOCATABLE_STRIP in Makefile.am.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Set RELOCATABLE_STRIP.
* doc/relocatable-maint.texi (Supporting Relocation): Remove the
mention of RELOCATABLE_STRIP.
Reported by Sylvain Beucler <beuc@beuc.net>.
2010-04-19 Bruno Haible <bruno@clisp.org>
* lib/diffseq.h: Fix typo in comment.
Reported by Eric Blake.
2010-04-19 Bruno Haible <bruno@clisp.org>
ioctl: Move autoconf macro to a .m4 file.
* m4/ioctl.m4: New file, extracted from modules/ioctl.
* modules/ioctl (Files): Add it.
(configure.ac): Simply invoke gl_FUNC_IOCTL.
Reported by Ian Beckwith <ianb@erislabs.net>.
2010-04-18 Andreas Gruenbacher <agruen@suse.de>
Bruno Haible <bruno@clisp.org>
diffseq: Accommodate use-case with abstract arrays.
* lib/diffseq.h (struct context): Remove xvec, yvec fields if ELEMENT
is not defined.
(diag, compareseq): Remove local variables xv, yv if ELEMENT is not
defined. Use local macro XREF_YREF_EQUAL instead of EQUAL.
2010-04-18 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/stdbool.texi: More precise wording.
2010-04-17 Jim Meyering <meyering@redhat.com>
maint.mk: use gnu-style indentation in an embedded perl script
* top/maint.mk (detect_empty_lines_at_EOF_): Clean up formatting.
Rename variable: s/two/last_two_bytes/
2010-04-16 Eric Blake <eblake@redhat.com>
test-stdbool: skip test that fails with Solaris CC
* tests/test-stdbool.c (f): Skip test that causes compilation
error under buggy C++ compiler.
* lib/stdbool.in.h: Document the limitation.
* doc/posix-headers/stdbool.texi (stdbool.h): Likewise.
setenv: allow compilation with C++
* lib/setenv.c (__add_to_environ): Add a cast. Also, drop use of
register keyword.
stdint: allow test to pass with C++
* tests/test-stdint.c: Define __STDC_CONSTANT_MACROS, for glibc.
getopt: allow compilation with C++
* lib/getopt_int.h (__ordering): Hoist enum declaration outside
struct.
* lib/getopt.c (_getopt_internal_r): Use correct type.
Reported by Dagobert Michelson, via Joel E. Denny.
2010-04-16 Bruno Haible <bruno@clisp.org>
Override netdb.h always.
* modules/netdb (Makefile.am): Augment BUILT_SOURCES always.
* m4/netdb_h.m4 (gl_HEADER_NETDB): Don't set NETDB_H.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-04-15 Bruno Haible <bruno@clisp.org>
openpty: Fix mistake from 2010-03-21.
* m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when openpty exists.
Reported by Simon Josefsson.
2010-04-15 Eric Blake <eblake@redhat.com>
test-forkpty: fix expected signature
* tests/test-forkpty.c (SIGNATURE_CHECK): Add appropriate const.
Reported by Simon Josefsson.
2010-04-15 Jim Meyering <meyering@redhat.com>
maint.mk: texinfo_suffix_re_: correct the default regexp
* top/maint.mk (texinfo_suffix_re_): Fix default regexp.
* top/maint.mk (sc_texinfo_acronym): Improve filename regexp, and
make it configurable via texinfo_suffix_re_.
2010-04-14 Eric Blake <eblake@redhat.com>
strtok_r: relax license to LGPLv2+
* modules/strtok_r (License): Relax license.
Reported by Matthias Bolte.
2010-04-14 Simon Josefsson <simon@josefsson.org>
* lib/gc-libgcrypt.c (gc_init): Use MIN_GCRYPT_VERSION set to
version 1.4.4 by default instead of requiring the libgcrypt
version used during build. This makes it possible to use the
application with older but still binary compatible libgcrypt
versions.
2010-04-13 Eric Blake <eblake@redhat.com>
getopt-gnu: match recent glibc fixes and posix ruling
* tests/test-getopt.h (test_getopt): Strengthen tests of leading
'+' handling, when requesting extensions.
* tests/test-getopt_long.h (test_getopt_long): Strengthen test of
'W;' handling.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Detect glibc 2.11 bug.
* doc/posix-functions/getopt.texi (getopt): Document this.
* doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
getopt: merge bug fixes from glibc
* lib/getopt.c (_getopt_internal_r): Use correct message for 'W;'
diagnostics. Honor '+:' correctly. Reject ';'.
getopt-posix: detect MacOS bug
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Reject MacOS botch of
optind when missing a required argument.
* doc/posix-functions/getopt.texi (getopt): Document the bug.
* doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
getopt-posix: avoid spurious failure on Solaris
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as
an indicator that setting optind=1 is sufficient for reset.
getopt-posix: avoid spurious failure on FreeBSD
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for optreset even
in POSIX mode, since the m4 test uses it.
gnulib-tool: silence warning on BSD sh
* gnulib-tool: Avoid leaking warning about unknown 'declare'.
2010-04-13 Jim Meyering <meyering@redhat.com>
doc: users.txt: GNU patch now uses gnulib
* users.txt: Add patch.
2010-04-12 Jim Meyering <meyering@redhat.com>
maint.mk: generate more concise timing data for syntax-check rules
* top/maint.mk ($(sc_z_rules_)): Remove the ":", "sc_" prefix and
" done" from each line that reports a syntax-check test duration.
2010-04-12 Andreas Gruenbacher <agruen@suse.de>
git-version-gen: use "git update-index..." rather than "git status"
* build-aux/git-version-gen: Use git update-index --refresh, not
"git status". With some versions of git, "git status" would fail
to update the index and result in an unwarranted "-dirty" suffix.
2010-04-11 Jim Meyering <meyering@redhat.com>
openat: correct formatting (no semantic change)
* m4/openat.m4 (gl_FUNC_FCHOWNAT): Correct formatting in AC_DEFINE.
Suggested by Bruno Haible.
2010-04-11 Bruno Haible <bruno@clisp.org>
Stricter declaration checking in testdirs.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
If for_tests is true, augment AM_CPPFLAGS to define
GNULIB_STRICT_CHECKING.
* build-aux/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): When
GNULIB_STRICT_CHECKING is defined, verify that the function is
declared.
2010-04-11 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
libunistring: Improve configure output.
* m4/libunistring.m4 (gl_LIBUNISTRING): Check for libiconv first.
Don't say "consider installing GNU libunistring" when checking again
with libiconv.
2010-04-11 Bruno Haible <bruno@clisp.org>
libunistring: Correct value of $LTLIBUNISTRING.
* m4/libunistring.m4 (gl_LIBUNISTRING): When it depends on libiconv,
correct the value of $LTLIBUNISTRING.
2010-04-11 Bruno Haible <bruno@clisp.org>
havelib: Add static libraries to LIBS in the right order.
* m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): When $LIB[]NAME contains no
-l options, prepend it to $LIBS, instead of appending it to $LIBS.
2010-04-11 Bruno Haible <bruno@clisp.org>
libunistring: Detect libunistring also when it depends on libiconv.
* m4/libunistring.m4 (gl_LIBUNISTRING): Unset the cached result before
the second AC_LIB_HAVE_LINKFLAGS invocation.
2010-04-11 James Youngman <jay@gnu.org>
close-stream: declare local scalars to be "const"
* lib/close-stream.c (close_stream): Make boolean variables const
to document the fact that we set but do not change them.
2010-04-11 Bruno Haible <bruno@clisp.org>
* m4/libunistring.m4 (gl_LIBUNISTRING): Fix typo in comment.
2010-04-11 Jim Meyering <meyering@redhat.com>
maint.mk: don't include dist-check.mk
* top/maint.mk: Remove bogus include directive.
maint.mk: improve empty-line-at-EOF check
* top/maint.mk (sc_prohibit_empty_lines_at_EOF): Use Perl-based
solution, rather than tail+Perl-based one. The latter would read
a few kilobytes from the end of each file, and did not handle empty
files properly.
maint.mk: print the elapsed time for each syntax-check rule
* top/maint.mk (sc_m_rules_): Save start time in a file.
(sc_z_rules_): New rules: remove temp file and print elapsed time.
(local-check): Interpose the .z rules
2010-04-11 Jim Meyering <meyering@redhat.com>
maint.mk: detect_empty_lines_at_EOF_: avoid FP for an empty file
* top/maint.mk (detect_empty_lines_at_EOF_): Don't confuse an
empty file with one that ends in an empty line.
2010-04-10 Bruno Haible <bruno@clisp.org>
mkdir: Make it work on mingw64.
* lib/sys_stat.in.h: Include <direct.h> together with <io.h>.
* lib/mkdir.c: Update comment.
Reported by Roman Donchenko (Роман Донченко) <dxdragon@yandex.ru>.
2010-04-10 Bruno Haible <bruno@clisp.org>
Don't override improved macro from newer autoconf.
* m4/gnulib-common.m4 (AC_C_RESTRICT): Don't define for
autoconf >= 2.62.
Reported by Joel E. Denny <jdenny@clemson.edu>.
2010-04-10 Jim Meyering <meyering@redhat.com>
maint.mk: new syntax-check rule: prohibit empty lines at end of file
* top/maint.mk (sc_prohibit_empty_lines_at_EOF): New rule.
maint.mk: correct a diagnostic
* top/maint.mk (sc_prohibit_HAVE_MBRTOWC): Fix obsolete use of $re
in diagnostic; now use $prohibit.
2010-04-10 Bruno Haible <address@hidden>
fchownat: Fix a C++ test error on Solaris 8.
* m4/openat.m4 (gl_FUNC_FCHOWNAT): Don't set REPLACE_FCHOWNAT to 1 if
the function does not exist.
2010-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf: Add more tests.
* tests/test-vasnprintf-posix.c: Include <errno.h>.
(test_function): Test converting an invalid wide string.
vasnprintf: Correct handling of unconvertible wide string arguments.
* lib/vasnprintf.c (MAX_ROOM_NEEDED): New function, extracted from
VASNPRINTF.
(VASNPRINTF): Use it. After snprintf failed, allocate more memory only
if HAVE_SNPRINTF_RETVAL_C99 is false and the allocated memory is
smaller than the expected maximum need for the directive. Set errno to
EILSEQ, not EINVAL, when the directive is 'c' or 's'.
(local_strnlen, local_wcslen, local_wcsnlen): Update conditions.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Require AC_C_INLINE and
gl_SNPRINTF_RETVAL_C99. Define HAVE_SNPRINTF_RETVAL_C99.
* modules/vasnprintf (Files): Add m4/printf.m4.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix crash in %ls directive.
* lib/vasnprintf.c (VASNPRINTF): Don't abort when a unconvertible wide
string is passed as argument to %ls, with no precision and no width.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf: Fix multiple test failures on mingw.
* lib/vasnprintf.c (SNPRINTF) [mingw]: Define to snprintf, not
_snprintf, or snwprintf, not _snwprintf.
2010-04-10 Bruno Haible <bruno@clisp.org>
write: Fix a C++ test error on mingw.
* lib/unistd.in.h (write): Use _GL_CXXALIAS_SYS_CAST.
2010-04-10 Bruno Haible <bruno@clisp.org>
vasnprintf test: Reduce code duplication.
* tests/test-vasnprintf.c (test_function): New function, extracted from
test_vasnprintf.
(test_vasnprintf, test_asnprintf): Invoke it.
2010-04-10 Bruno Haible <bruno@clisp.org>
strnlen: Fix warning in C++ mode on MacOS X.
* lib/string.in.h (strnlen): Use the modern idiom.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Set REPLACE_STRNLEN to 1, instead of
defining strnlen as a macro already in <config.h>.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STRNLEN.
* modules/string (Makefile.am): Substitute REPLACE_STRNLEN.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-04-08 James Youngman <jay@gnu.org>
* doc/manywarnings.texi (manywarnings): Add missing parenthesis in
the example.
2010-04-09 Jim Meyering <meyering@redhat.com>
maint.mk: print better diagnostic when there is no $(_hv_file)
* top/maint.mk (sc_cross_check_PATH_usage_in_tests): Skip test and
announce that when $(_hv_file) (aka help-version) does not exist.
init.sh: run tr in the "C" locale to avoid multibyte interpretation
* tests/init.sh (rand_bytes_): Run tr in the "C" locale so it does
not try to interpret its random input bytes. Jarno Rajahalme reported
that ./test-xalloc-die.sh would fail with "tr: Illegal byte sequence".
on Darwin 10.3.0 with LC_CTYPE=UTF-8.
(mktempd_): Likewise, just in case.
ftruncate: add two years to projected module removal date: 2012
* m4/ftruncate.m4: Adjust comments.
ftruncate: mark module as obsolete; even MinGW provides it, now
* modules/ftruncate (Status): Obsolete.
(Notice): Say that.
* doc/posix-functions/ftruncate.texi: Don't say MinGW lacks it.
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203
2010-04-08 Bruno Haible <bruno@clisp.org>
Fix side effects from tests-related modules.
* modules/dprintf-posix (Comment): New section.
* modules/fprintf-posix (Comment): Likewise.
* modules/obstack-printf-posix (Comment): Likewise.
* modules/printf-posix (Comment): Likewise.
* modules/snprintf-posix (Comment): Likewise.
* modules/sprintf-posix (Comment): Likewise.
* modules/vasnprintf-posix (Comment): Likewise.
* modules/vasprintf-posix (Comment): Likewise.
* modules/vdprintf-posix (Comment): Likewise.
* modules/vfprintf-posix (Comment): Likewise.
* modules/vprintf-posix (Comment): Likewise.
* modules/vsnprintf-posix (Comment): Likewise.
* modules/vsprintf-posix (Comment): Likewise.
* modules/xprintf-posix (Comment): Likewise.
* modules/xvasprintf-posix (Comment): Likewise.
* modules/ceilf-tests (Depends-on): Remove fprintf-posix.
* modules/floorf-tests (Depends-on): Likewise.
* modules/round-tests (Depends-on): Likewise.
* modules/roundf-tests (Depends-on): Likewise.
* modules/trunc-tests (Depends-on): Likewise.
* modules/truncf-tests (Depends-on): Likewise.
* tests/test-ceilf2.c (check): Don't invoke fprintf if the
'fprintf-posix' module is not present.
* tests/test-floorf2.c (check): Likewise.
* tests/test-trunc2.c (check): Likewise.
* tests/test-truncf2.c (check): Likewise.
* tests/test-round2.c (equal): Likewise.
Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com>.
2010-04-07 Karl Berry <karl@gnu.org>
* config/srclist.txt,
* config/srclistvars.sh,
* config/srclist-update: doc fixes.
2010-04-07 Jim Meyering <meyering@redhat.com>
maint.mk: add a PATH crosschecking syntax-check rule
* top/maint.mk (sc_cross_check_PATH_usage_in_tests): New rule.
Useful if you use a test like the one in help-version (coreutils,
diffutils, grep, gzip) that ensures $(VERSION) matches what is
printed by prog --version.
2010-04-06 Bruno Haible <bruno@clisp.org>
Fix link error on mingw.
* modules/unistd-c++-tests (test_unistd_c___LDADD): Add LIBSOCKET.
* modules/fcntl-h-c++-tests (test_fcntl_h_c___LDADD): Likewise.
2010-04-06 Bruno Haible <bruno@clisp.org>
Assume rmdir exists.
* lib/rmdir.c (rpl_rmdir): Remove code that invokes the rmdir program.
2010-04-06 Giuseppe Scrivano <gscrivano@gnu.org>
doc: update users.txt
* users.txt: Add gcal.
2010-04-06 Jim Meyering <meyering@redhat.com>
init.sh: simply unset TMPDIR rather than risking env -i
* tests/init.sh (mktempd_): Using env -i is rather harsh, and
although it probably works fine on all Unix-based systems, some
systems (Cygwin?) cannot tolerate a totally cleared environment.
Suggestion from Eric Blake.
2010-04-06 Jim Meyering <meyering@redhat.com>
init.sh: portability fix: use env's POSIX-specified -i option not -u
* tests/init.sh (mktempd_): Use env -i and set PATH explicitly rather
than unportable env -u. Solaris 5.11's env lacks support for -u.
2010-04-05 Bruno Haible <bruno@clisp.org>
btowc: Work around Cygwin 1.7.2 bug.
* m4/btowc.m4 (gl_FUNC_BTOWC): Set REPLACE_BTOWC to 1 if the function
does not map NUL to 0.
* doc/posix-functions/btowc.texi: Mention the Cygwin bug.
2010-04-05 Bruno Haible <bruno@clisp.org>
Make the multithread modules work on Cygwin 1.7.2.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Improve the test whether
imported symbols can be declared weak, so that it returns "no" on
Cygwin 1.7.2.
2010-04-05 Bruno Haible <bruno@clisp.org>
Use the module 'strncat'.
* modules/unistr/u8-strncat (Depends-on): Add strncat.
Tests for module 'strncat'.
* modules/strncat-tests: New file.
* tests/test-strncat.c: New file.
New module 'strncat'.
* lib/string.in.h (strncat): New declaration.
* lib/strncat.c: New file, based on lib/unistr/u-strncat.h.
* m4/strncat.m4: New file, based on m4/memchr.m4.
* modules/strncat: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Also check whether strncat
is declared.
(gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRNCAT,
REPLACE_STRNCAT.
* modules/string (Makefile.am): Substitute GNULIB_STRNCAT,
REPLACE_STRNCAT.
* doc/posix-functions/strncat.texi: Mention the Solaris bug and the new
module.
* tests/test-string-c++.cc: Check signature of strncat.
2010-04-05 Jim Meyering <meyering@redhat.com>
xstrtoumax-tests: convert to use init.sh
* modules/xstrtoumax-tests (Files): Add tests/init.sh.
* tests/test-xstrtoumax.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
xstrtoimax-tests: convert to use init.sh
* modules/xstrtoimax-tests (Files): Add tests/init.sh.
* tests/test-xstrtoimax.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
2010-04-05 Bruno Haible <bruno@clisp.org>
sys_socket: Avoid #define replacements in C++ mode.
* lib/sys_socket.in.h (close, gethostname, select): In C++, attach a
warning to the function if possible, rather than #defining the symbol
to a dysfunctional alias.
2010-04-05 Bruno Haible <bruno@clisp.org>
fseeko: Fix C++ test error on mingw.
* m4/fseeko.m4 (gl_HAVE_FSEEKO): New macro, extracted from
gl_FUNC_FSEEKO.
(gl_REPLACE_FSEEKO): Also set REPLACE_FSEEKO if appropriate.
(gl_FUNC_FSEEKO): Require gl_HAVE_FSEEKO. Update.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Don't fiddle with internals of the
fseeko module. Instead, invoke gl_REPLACE_FSEEKO.
2010-04-05 Bruno Haible <bruno@clisp.org>
duplocale: Improve test output.
* tests/test-duplocale.c (main): Print reason for skipped test.
2010-04-05 Bruno Haible <bruno@clisp.org>
Assume rmdir exists.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Remove test whether rmdir exists.
* doc/posix-functions/rmdir.texi: Remove mention of "old platforms".
2010-04-05 Bruno Haible <bruno@clisp.org>
Fix link error on Solaris 8 with cc.
* modules/pty-c++-tests (test_pty_c___LDADD): Add LIBINTL.
2010-04-05 Bruno Haible <bruno@clisp.org>
frexpl: Fix a C++ test error on Solaris 8 and Cygwin.
* lib/math.in.h (frexpl): Fix condition on _GL_CXXALIASWARN invocation.
2010-04-05 Bruno Haible <bruno@clisp.org>
vasprintf: Update documentation.
* doc/glibc-functions/asprintf.texi: Mention the 'vasprintf' module.
2010-04-05 Bruno Haible <bruno@clisp.org>
ptsname: Improve test.
* tests/test-ptsname.c (main): Also try the various master names of BSD
systems.
2010-04-05 Bruno Haible <bruno@clisp.org>
memchr: Avoid a possible C++ test error.
* lib/string.in.h (memchr): Provide declaration if function is missing.
* m4/memchr.m4 (gl_FUNC_MEMCHR): If the function is missing, set
HAVE_MEMCHR to 0, not REPLACE_MEMCHR to 1.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_MEMCHR.
* modules/string (Makefile.am): Substitute HAVE_MEMCHR.
2010-04-05 Bruno Haible <bruno@clisp.org>
strtok_r: Improve idiom.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Invoke gl_PREREQ_STRDUP only when
AC_LIBOBJ is used.
2010-04-05 Bruno Haible <bruno@clisp.org>
strdup: Improve idiom.
* m4/strdup.m4 (gl_FUNC_STRDUP): Invoke gl_PREREQ_STRDUP only when
AC_LIBOBJ is used.
(gl_FUNC_STRDUP_POSIX): When strdup is missing and malloc is not POSIX
compliant, don't set REPLACE_STRDUP to 1. Invoke gl_PREREQ_STRDUP only
when AC_LIBOBJ is used.
2010-04-05 Bruno Haible <bruno@clisp.org>
mbsinit, mbrtowc, wcrtomb: Improve idioms.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): When the function does not exist,
don't set REPLACE_MBSINIT to 1.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): When the function does not exist,
don't set REPLACE_MBRTOWC to 1.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): When the function does not
exist, don't set REPLACE_MBSRTOWCS to 1.
* m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): When the function does not
exist, don't set REPLACE_MBSNRTOWCS to 1.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): When the function does not exist,
don't set REPLACE_WCRTOMB to 1.
* m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): When the function does not
exist, don't set REPLACE_WCSRTOMBS to 1.
* m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): When the function does not
exist, don't set REPLACE_WCSNRTOMBS to 1.
2010-04-05 Bruno Haible <bruno@clisp.org>
ldexpl: Improve idiom.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): When the function is not declared,
make sure to set HAVE_DECL_LDEXPL to 0.
2010-04-05 Jim Meyering <meyering@redhat.com>
xstrtol-tests: convert to use init.sh
* modules/xstrtol-tests (Files): Add tests/init.sh.
* tests/test-xstrtol.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
atexit-tests: convert to use init.sh
* modules/atexit-tests (Files): Add tests/init.sh.
* tests/test-atexit.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
init.sh: fix typo
* tests/init.sh: Restore omitted ":" before stderr_fileno_ initialization.
init.sh: make it easier for a test script to write to the tty, ...
when using automake's parallel-tests mode.
* tests/init.sh (stderr_fileno_): Define overridable variable.
(warn_): New function, to use it.
(fail_, skip_, framework_failure_): Use warn_.
2010-04-04 Bruno Haible <bruno@clisp.org>
btowc: Avoid warning.
* lib/btowc.c: Include <stdlib.h>.
Reported by Hauke Fath <hauke@espresso.rhein-neckar.de>.
2010-04-04 Hauke Fath <hauke@espresso.rhein-neckar.de> (tiny change)
Bruno Haible <bruno@clisp.org>
wchar: Port to NetBSD 1.5.
* lib/wchar.in.h (WEOF): Provide fallback also when wint_t exists.
* lib/wctype.in.h (WEOF): Likewise.
2010-04-04 Hauke Fath <hauke@espresso.rhein-neckar.de> (tiny change)
Bruno Haible <bruno@clisp.org>
Port extended stdio to NetBSD 1.5.
* lib/stdio-impl.h [NetBSD]: Include <sys/param.h>.
(struct __sfileext, fp_ub): Define the "old way" for NetBSD 1.5Z and
older.
2010-04-04 Bruno Haible <bruno@clisp.org>
string: Remove unused substitution.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize
HAVE_DECL_STRERROR.
* modules/string (Makefile.am): Don't substitute HAVE_DECL_STRERROR.
2010-04-04 Bruno Haible <bruno@clisp.org>
strtod: Avoid a possible C++ test error.
* m4/strtod.m4 (gl_FUNC_STRTOD): When setting HAVE_STRTOD to 0, don't
set REPLACE_STRTOD.
2010-04-04 Bruno Haible <bruno@clisp.org>
strerror: Update documentation.
* doc/posix-functions/strerror.texi: Remove mention of old platforms.
2010-04-04 Bruno Haible <bruno@clisp.org>
stdio: Fix some C++ test errors on Solaris 8 with GCC.
* lib/stdio.in.h (vdprintf, vfprintf, vprintf, vsprintf): Use
_GL_CXXALIAS_SYS_CAST.
2010-04-04 Bruno Haible <bruno@clisp.org>
frexpl: Fix a C++ test error on Solaris 8 and Cygwin.
* m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): When the
function is not declared, set HAVE_DECL_FREXPL to 0, instead of setting
REPLACE_FREXPL to 1.
* doc/posix-functions/frexpl.texi: Update documentation.
2010-04-04 Bruno Haible <bruno@clisp.org>
math: Fix some C++ test errors on Solaris 8 and Cygwin.
* lib/math.in.h (cosl, logl, sinl): Use simpler idiom.
2010-04-04 Bruno Haible <bruno@clisp.org>
Implement nanosleep for native Windows.
* lib/nanosleep.c (nanosleep): New implementation for native Windows.
2010-04-04 Bruno Haible <bruno@clisp.org>
math: Fix some C++ test errors on Solaris 8.
* lib/math.in.h (truncf, trunc): Use simpler idiom.
2010-04-04 Bruno Haible <bruno@clisp.org>
math: Fix some C++ test errors on Cygwin.
* lib/math.in.h (ceilf, ceill, floorf, floorl, roundf, round, roundl,
truncl): Provide declaration if the system does not have it.
* m4/ceilf.m4 (gl_FUNC_CEILF): If the function is not declared, set
HAVE_DECL_CEILF to 0, not REPLACE_CEILF to 1.
* m4/ceill.m4 (gl_FUNC_CEILL): If the function is not declared, set
HAVE_DECL_CEILL to 0, not REPLACE_CEILL to 1.
* m4/floorf.m4 (gl_FUNC_FLOORF): If the function is not declared, set
HAVE_DECL_FLOORF to 0, not REPLACE_FLOORF to 1.
* m4/floorl.m4 (gl_FUNC_FLOORL): If the function is not declared, set
HAVE_DECL_FLOORL to 0, not REPLACE_FLOORL to 1.
* m4/round.m4 (gl_FUNC_ROUND): If the function is not declared, set
HAVE_DECL_ROUND to 0, not REPLACE_ROUND to 1.
* m4/roundf.m4 (gl_FUNC_ROUNDF): If the function is not declared, set
HAVE_DECL_ROUNDF to 0, not REPLACE_ROUNDF to 1.
* m4/roundl.m4 (gl_FUNC_ROUNDL): If the function is not declared, set
HAVE_DECL_ROUNDL to 0, not REPLACE_ROUNDL to 1.
* m4/truncl.m4 (gl_FUNC_TRUNCL): If the function is not declared, set
HAVE_DECL_TRUNCL to 0, not REPLACE_TRUNCL to 1.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_CEILF,
HAVE_DECL_CEILL, HAVE_DECL_FLOORF, HAVE_DECL_FLOORL, HAVE_DECL_ROUND,
HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL, HAVE_DECL_TRUNCL.
* modules/math (Makefile.am): Substitute HAVE_DECL_CEILF,
HAVE_DECL_CEILL, HAVE_DECL_FLOORF, HAVE_DECL_FLOORL, HAVE_DECL_ROUND,
HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL, HAVE_DECL_TRUNCL.
2010-04-04 Bruno Haible <bruno@clisp.org>
* m4/ceilf.m4 (gl_FUNC_CEILF): Remove redundant AC_SUBST invocation.
* m4/ceill.m4 (gl_FUNC_CEILL): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF): Likewise.
* m4/floorl.m4 (gl_FUNC_FLOORL): Likewise.
* m4/isfinite.m4 (gl_ISFINITE): Likewise.
* m4/isinf.m4 (gl_ISINF): Likewise.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise.
2010-04-04 Bruno Haible <bruno@clisp.org>
* m4/trunc.m4 (gl_FUNC_TRUNC): Remove redundant AC_SUBST invocation.
* m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise.
2010-04-04 Bruno Haible <bruno@clisp.org>
* m4/tmpfile.m4 (gl_FUNC_TMPFILE): Renamed from gl_TMPFILE.
* modules/tmpfile (configure.ac): Update.
tmpfile: Fix C++ test error on mingw.
* lib/stdio.in.h (tmpfile): New declaration.
* m4/tmpfile.m4 (gl_TMPFILE): Require gl_STDIO_H_DEFAULTS. Set
REPLACE_TMPFILE instead of defining tmpfile as a macro in config.h.
* modules/tmpfile (Depends-on): Add stdio.
(configure.ac): Invoke gl_STDIO_MODULE_INDICATOR.
* m4/stdio_h.m4 (gl_STDIO_H): Also check whether tmpfile is declared.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_TMPFILE and REPLACE_TMPFILE.
* modules/stdio (Makefile.am): Substitute GNULIB_TMPFILE and
REPLACE_TMPFILE.
* tests/test-stdio-c++.cc (tmpfile): Verify signature.
2010-04-04 Bruno Haible <bruno@clisp.org>
ioctl: Fix C++ test error on mingw.
* lib/ioctl.c (ioctl): Renamed from rpl_ioctl.
* lib/sys_ioctl.in.h (ioctl): When SYS_IOCTL_H_HAVE_WINSOCK2_H is 1,
use _GL_FUNCDECL_SYS, not _GL_FUNCDECL_RPL.
2010-04-03 Bruno Haible <bruno@clisp.org>
wcwidth: Fix C++ test error on mingw.
* lib/wcwidth.c (wcwidth): Renamed from rpl_wcwidth.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): If the wcwidth function does not
exist, don't set REPLACE_WCWIDTH. Instead, rely on HAVE_DECL_WCWIDTH.
2010-04-03 Bruno Haible <bruno@clisp.org>
nanosleep: Fix C++ test error on mingw.
* lib/nanosleep.c (nanosleep): Renamed from rpl_nanosleep.
* lib/time.in.h (nanosleep): Use modern idiom.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): When the system does not have a
nanosleep function, set HAVE_NANOSLEEP to 0, instead of setting
REPLACE_NANOSLEEP to 1.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_NANOSLEEP.
* modules/time (Makefile.am): Substitute HAVE_NANOSLEEP.
2010-04-03 Bruno Haible <bruno@clisp.org>
strptime: Fix C++ test error on mingw.
* lib/time.in.h (strptime): Use HAVE_STRPTIME, not REPLACE_STRPTIME.
* m4/strptime.m4 (gl_FUNC_STRPTIME): Set HAVE_STRPTIME, not
REPLACE_STRPTIME. Invoke gl_PREREQ_STRPTIME.
(gl_PREREQ_STRPTIME): New macro, extracted from gl_FUNC_STRPTIME.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_STRPTIME,
not REPLACE_STRPTIME.
* modules/time (Makefile.am): Substitute HAVE_STRPTIME, not
REPLACE_STRPTIME.
2010-04-03 Bruno Haible <bruno@clisp.org>
timegm: Fix C++ test error on mingw.
* lib/time.in.h (timegm): Use modern idiom.
* m4/timegm.m4 (gl_FUNC_TIMEGM): When timegm does not exist, set
HAVE_TIMEGM to 0, not REPLACE_TIMEGM to 1.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_TIMEGM.
* modules/time (Makefile.am): Substitute HAVE_TIMEGM.
2010-04-03 Bruno Haible <bruno@clisp.org>
timegm: Assume declaration if function exists.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Assume timegm is declared if and only
if it exists. Don't clobber ac_cv_func_timegm.
2010-04-03 Bruno Haible <bruno@clisp.org>
time_r: Fix C++ test error on mingw.
* lib/time.in.h (localtime_r, gmtime_r): Use modern idiom.
* m4/time_r.m4 (gl_TIME_R): When localtime_r does not exist, set
HAVE_LOCALTIME_R to 0, not REPLACE_LOCALTIME_R to 1.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_LOCALTIME_R.
* modules/time (Makefile.am): Substitute HAVE_LOCALTIME_R.
2010-04-03 Bruno Haible <bruno@clisp.org>
time_r: Minor updates.
* modules/time_r (Description): Mention the provided functions.
* lib/time_r.c: Don't include <string.h>.
* doc/posix-functions/gmtime_r.texi: Mention the 'time_r' module.
* doc/posix-functions/localtime_r.texi: Likewise.
2010-04-03 Bruno Haible <bruno@clisp.org>
time: Fix regression introduced on 2010-03-08.
* m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Require
gl_HEADER_TIME_H_DEFAULTS, not gl_HEADER_STRING_H_DEFAULTS.
2010-04-03 Jim Meyering <meyering@redhat.com>
maint.mk: don't silently disable project-specific syntax-check rules
* top/maint.mk (_prohibit_regexp): Define, to help people realize
that they need to convert their project-specific syntax-check rules
to use the new _sc_search_regexp.
2010-04-03 Bruno Haible <bruno@clisp.org>
fchdir: Fix regression introduced on 2010-03-08.
* lib/unistd.in.h (fchdir): Fix declaration.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Set HAVE_FCHDIR, not REPLACE_FCHDIR.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_FCHDIR, not
REPLACE_FCHDIR.
* modules/unistd (Makefile.am): Substitute HAVE_FCHDIR, not
REPLACE_FCHDIR.
2010-04-03 Bruno Haible <bruno@clisp.org>
getpagesize: Fix C++ test error on mingw.
* lib/unistd.in.h (getpagesize): Don't use _GL_CXXALIASWARN if the
system does not declare the function.
* m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Also check whether it's
declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_GETPAGESIZE.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETPAGESIZE.
2010-04-03 Bruno Haible <bruno@clisp.org>
stdio: Make C++ tests work on mingw.
* lib/stdio.in.h (getline): Don't use _GL_CXXALIASWARN if the system
does not declare the function.
2010-04-03 Bruno Haible <bruno@clisp.org>
ftello: Fix C++ test error on mingw.
* lib/stdio.in.h (ftello): Use modern idiom.
* lib/ftello.c (ftello): Renamed from rpl_ftello.
* m4/ftello.m4 (gl_FUNC_FTELLO): Distinguish the case that the function
is missing and that it needs to be replaced.
(gl_REPLACE_FTELLO): Don't set REPLACE_FTELLO here.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_FTELLO.
* modules/stdio (Makefile.am): Substitute HAVE_FTELLO.
2010-04-03 Bruno Haible <bruno@clisp.org>
fseeko: Fix C++ test error on mingw.
* lib/stdio.in.h (fseeko): Use modern idiom.
* lib/fseeko.c (fseeko): Renamed from rpl_fseeko.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Distinguish the case that the function
is missing and that it needs to be replaced.
(gl_REPLACE_FSEEKO): Don't set REPLACE_FSEEKO here.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_FSEEKO.
* modules/stdio (Makefile.am): Substitute HAVE_FSEEKO.
2010-04-03 Bruno Haible <bruno@clisp.org>
mkstemp: Fix C++ test error on mingw.
* lib/stdlib.in.h (mkstemp): Use modern idiom.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Distinguish the case that the
function is missing and that it needs to be replaced.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_MKSTEMP.
* modules/stdlib (Makefile.am): Substitute HAVE_MKSTEMP.
2010-04-03 Bruno Haible <bruno@clisp.org>
stpncpy: Fix C++ test error on mingw.
* lib/string.in.h (stpncpy): Use modern idiom.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Distinguish the case that the
function is missing and that it needs to be replaced.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STPNCPY.
* modules/string (Makefile.am): Substitute REPLACE_STPNCPY.
2010-04-03 Bruno Haible <bruno@clisp.org>
sys_stat: Fix C++ test error on mingw.
* build-aux/c++defs.h (_GL_CXXALIAS_RPL_CAST_1): New macro.
* lib/sys_stat.in.h (lchmod): Use it instead of _GL_CXXALIAS_RPL_1.
2010-04-03 Bruno Haible <bruno@clisp.org>
pty: Update doc.
* doc/glibc-headers/pty.texi: Mention changes done since 2010-03-18.
2010-04-03 Bruno Haible <bruno@clisp.org>
unistd: Fix C++ test error on mingw.
* lib/unistd.in.h (getcwd): Use _GL_CXXALIAS_SYS_CAST.
2010-04-03 Bruno Haible <bruno@clisp.org>
Update doc regarding mingw.
* doc/glibc-functions/openpty.texi: Update regarding mingw.
* doc/glibc-functions/login_tty.texi: Likewise.
* doc/glibc-functions/forkpty.texi: Likewise.
2010-04-03 Bruno Haible <bruno@clisp.org>
stdlib: Avoid compilation failure of c-strtold on mingw.
* lib/stdlib.in.h: Don't include <unistd.h> on native Windows systems.
2010-04-03 Bruno Haible <bruno@clisp.org>
locale: Make C++ tests work on Cygwin and mingw.
* lib/locale.in.h (duplocale): Don't use _GL_CXXALIASWARN if gnulib
cannot provide the function.
Reported by Simon Josefsson.
2010-04-03 Bruno Haible <bruno@clisp.org>
localename: Port to MacOS X 10.6.
* lib/localename.c (gl_locale_name_thread_unsafe): On MacOS X, try the
memory layout of the locales in MacOS X 10.6 as well.
Reported by Panu Kekäläinen <panu@kekalainen.eu>.
2010-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Ensure that long-running tests are executed last.
* gnulib-tool (func_emit_tests_Makefile_am): Emit the code for long-
running tests after the one for the other tests.
2010-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Ensure the tests in the main directory are executed first.
* gnulib-tool (func_emit_tests_Makefile_am): Initialize SUBDIRS to
start with the current directory.
2010-04-02 Bruno Haible <bruno@clisp.org>
Tests for module 'havelib', moved here from GNU gettext.
* modules/havelib-tests: New file, from gettext/autoconf-lib-link with
modifications.
* tests/havelib/README: New file, from gettext/autoconf-lib-link.
* tests/havelib/Makefile.am: New file, from gettext/autoconf-lib-link
with modifications.
* tests/havelib/rpath-1: New file, from gettext/autoconf-lib-link with
modifications.
* tests/havelib/rpath-1a: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-1b: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2_a: New file, from gettext/autoconf-lib-link
with modifications.
* tests/havelib/rpath-2_b: New file, from gettext/autoconf-lib-link
with modifications.
* tests/havelib/rpath-2aaa: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2aab: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2aac: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2aad: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2aba: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2abb: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2abc: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2abd: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2baa: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bab: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bac: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bad: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bba: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bbb: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bbc: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-2bbd: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3_a: New file, from gettext/autoconf-lib-link
with modifications.
* tests/havelib/rpath-3_b: New file, from gettext/autoconf-lib-link
with modifications.
* tests/havelib/rpath-3aaa: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aab: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aac: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aad: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aae: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aaf: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aag: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aah: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3aba: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abb: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abc: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abd: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abe: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abf: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abg: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3abh: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3baa: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bab: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bac: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bad: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bae: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3baf: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bag: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bah: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bba: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbb: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbc: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbd: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbe: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbf: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbg: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpath-3bbh: New file, from gettext/autoconf-lib-link.
* tests/havelib/rpathx/rpathx.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathx/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathx/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathy/rpathy.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathy/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathy/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathz/rpathz.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathz/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathz/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathlx/usex.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlx/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlx/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathly/usey.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathly/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathly/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathlz/usez.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlz/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlz/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathlyx/usey.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlyx/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlyx/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathlzyx/usez.c: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlzyx/Makefile.am: New file, from
gettext/autoconf-lib-link.
* tests/havelib/rpathlzyx/configure.ac: New file, from
gettext/autoconf-lib-link with modifications.
* tests/havelib/rpathcfg.sh: New file, from gettext/autoconf-lib-link
with modifications.
2010-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Create distributed built sources also for the tests.
* gnulib-tool (func_create_testdir): Also generate distributed built
sources in the tests directory.
2010-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Obey user's environment variables.
* gnulib-tool (func_create_testdir): When creating built sources,
respect the environment variables for autoconf, automake, etc. given by
the user.
2010-04-02 Bruno Haible <bruno@clisp.org>
gnulib-tool: Provide the value of --m4-base to modules.
* gnulib-tool (func_import, func_create_testdir): Emit a definition
of gl_m4_base.
2010-04-02 Eric Blake <eblake@redhat.com>
maint.mk: fix some fallout
* NEWS: Document the incompatible change, and its effect on cfg.mk.
* top/maint.mk (sc_prohibit_test_minus_ao): Update.
2010-03-28 Jose E. Marchesi <jemarch@gnu.org>
maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp
* top/maint.mk (_sc_search_regexp): Rename from _prohibit_regexp.
(sc_cast_of_argument_to_free): Adapt to use _sc_search_regexp.
(sc_cast_of_x_alloc_return_value): Likewise.
(sc_cast_of_alloca_return_value): Likewise.
(sc_space_tab): Likewise.
(sc_prohibit_atoi_atof): Likewise.
(sc_prohibit_magic_number_exit): Likewise.
(sc_error_exit_success): Likewise.
(sc_file_system): Likewise.
(sc_prohibit_have_config_h): Likewise.
(sc_require_config_h): Likewise.
(sc_prohibit_HAVE_MBRTOWC): Likewise.
(sc_obsolete_symbols): Likewise.
(sc_changelog): Likewise.
(sc_program_name): Likewise.
(sc_the_the): Likewise.
(sc_trailing_blank): Likewise.
(sc_two_space_separator_in_usage): Likewise.
(sc_useless_cpp_parens): Likewise.
(sc_GPL_version): Likewise.
(sc_GFDL_version): Likewise.
(sc_texinfo_acronym): Likewise.
(sc_prohibit_cvs_keyword): Likewise.
(sc_prohibit_stat_st_blocks): Likewise.
(sc_prohibit_S_IS_definition): Likewise.
(sc_redundant_const): Likewise.
(sc_makefile_TAB_only_indentation): Likewise.
(sc_m4_quote_check): Likewise.
(sc_makefile_path_separator_check): Likewise.
(sc_copyright_check): Likewise.
(sc_Wundef_boolean): Likewise.
(sc_vulnerable_makefile_CVE-2009-4029): Likewise.
maint.mk: match 0 or more whitespace-before-function-call '('
* top/maint.mk (sc_error_exit_success): Relax regexp to match uses
that have zero or two-and-more spaces between the function name
and the open parenthesis.
(sc_error_message_warn_fatal): Likewise.
(sc_error_message_uppercase): Likewise.
(sc_error_message_period): Likewise.
2010-03-31 Eric Blake <eblake@redhat.com>
maint.mk: check for [ as well as test
* top/maint.mk (sc_prohibit_test_minus_ao): Extend test.
Based on a libvirt report by Matthias Bolte.
gnumakefile: don't squelch _version output
* top/GNUmakefile (_version): Create one-shot dependency rather
than using $(shell) when version must be regenerated.
(_autoreconf): Run verbosely, by default.
sys_time: avoid compiler warnings
* lib/sys_time.in.h (includes): Ensure gcc pragma is
unconditional, fixing regression from 2010-03-29.
Reported by Simon Josefsson.
2010-03-28 Jose E. Marchesi <jemarch@gnu.org>
maint.mk: s/_header_without_use/_sc_header_without_use/
* top/maint.mk (_sc_header_without_use): Rename from _header_without_use.
(sc_prohibit_assert_without_use): Use the new name.
(sc_prohibit_close_stream_without_use): Likewise.
(sc_prohibit_getopt_without_use): Likewise.
(sc_prohibit_quotearg_without_use): Likewise.
(sc_prohibit_quote_without_use): Likewise.
(sc_prohibit_long_options_without_use): Likewise.
(sc_prohibit_inttostr_without_use): Likewise.
(sc_prohibit_ignore_value_without_use): Likewise.
(sc_prohibit_error_without_use): Likewise.
(sc_prohibit_xalloc_without_use): Likewise.
(sc_prohibit_hash_without_use): Likewise.
(sc_prohibit_hash_pjw_without_use): Likewise.
(sc_prohibit_safe_read_without_use): Likewise.
(sc_prohibit_argmatch_without_use): Likewise.
(sc_prohibit_canonicalize_without_use): Likewise.
(sc_prohibit_root_dev_ino_without_use): Likewise.
(sc_prohibit_openat_without_use): Likewise.
(sc_prohibit_c_ctype_without_use): Likewise.
(sc_prohibit_signal_without_use): Likewise.
(sc_prohibit_intprops_without_use): Likewise.
2010-03-30 Eric Blake <eblake@redhat.com>
maint: improve module indicators
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_SET_VARIABLE)
(gl_MODULE_INDICATOR, gl_MODULE_INDICATOR_FOR_TESTS): Fit in 80
columns, and avoid extra macro expansion.
fdopendir: work around FreeBSD bug
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Set it.
* modules/dirent (Makefile.am): Substitute it.
* lib/dirent.in.h (fdopendir): Supply missing FreeBSD
declaration.
* doc/posix-functions/fdopendir.texi (fdopendir): Document the
fix.
Reported by Christian Weisgerber <naddy@mips.inka.de>.
2010-03-29 Bruno Haible <bruno@clisp.org>
Emit #pragma system_header after the inclusion guard, not before.
* lib/arpa_inet.in.h: Emit #pragma system_header after the inclusion
guard that spans the entire file, not before. This enables an
optimization in GCC's preprocessor.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/getopt.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/wctype.in.h: Likewise.
2010-03-28 James Youngman <jay@gnu.org>
save-cwd: don't leak a file descriptor when the caller execs.
* lib/save-cwd.c (save_cwd): set the close-on-exec flag for the
saved file descriptor.
* modules/save-cwd (Depends-on): Depend on cloexec.
2010-03-29 Bruno Haible <bruno@clisp.org>
Remove vestiges of fts-lgpl module.
* lib/fts_.h: Assume GNULIB_FTS is 1.
* lib/fts.c: Likewise.
* modules/fts (configure.ac): Remove gl_MODULE_INDICATOR invocation.
2010-03-28 Bruno Haible <bruno@clisp.org>
Fix definition of tests witness macro.
* gnulib-tool (func_import): Fix definition of witness macro.
2010-03-28 Bruno Haible <bruno@clisp.org>
Fix ioctl's protoype on glibc systems.
* lib/sys_ioctl.in.h (ioctl): If REPLACE_IOCTL is 1, use a wrapper. Use
_GL_CXXALIAS_SYS, not _GL_CXXALIAS_SYS_CAST.
* lib/ioctl.c (rpl_ioctl) [HAVE_IOCTL]: New wrapper.
* modules/ioctl (configure.ac): Test whether ioctl has the POSIX
signature. If not, arrange to replace the ioctl function.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Initialize
REPLACE_IOCTL.
* modules/sys_ioctl (Makefile.am): Substitute REPLACE_IOCTL.
* doc/posix-functions/ioctl.texi: Mention the glibc problem.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-03-28 Javier Villavicencio <the_paya@gentoo.org>
exclude: fix the case of globs vs. EXCLUDE_INCLUDE
* lib/exclude.c (excluded_file_pattern_p): Fix logic error that
made it so grep -r --include=GLOB* ... did not work.
2010-03-26 Jim Meyering <meyering@redhat.com>
Eric Blake <eblake@redhat.com>
maint.mk: prohibit use of test's -o and -a operators
* top/maint.mk (sc_prohibit_test_minus_ao): New rule.
2010-03-28 Bruno Haible <bruno@clisp.org>
Remove unused GNULIB_XYZ macro definitions.
* modules/crypto/gc-camellia (configure.ac): Remove gl_MODULE_INDICATOR
invocation.
2010-03-28 Bruno Haible <bruno@clisp.org>
Mark privileged tests modules.
* modules/idpriv-drop-tests (Status): New section.
* modules/idpriv-droptemp-tests (Status): New section.
2010-03-28 Bruno Haible <bruno@clisp.org>
Split C++ tests into separate tests modules.
* modules/dirent-c++-tests: New file, extracted from
modules/dirent-tests.
* modules/dirent-tests: Depend on it.
* modules/fcntl-h-c++-tests: New file, extracted from
modules/fcntl-h-tests.
* modules/fcntl-h-tests: Depend on it.
* modules/glob-c++-tests: New file, extracted from modules/glob-tests.
* modules/glob-tests: Depend on it.
* modules/iconv-h-c++-tests: New file, extracted from
modules/iconv-h-tests.
* modules/iconv-h-tests: Depend on it.
* modules/langinfo-c++-tests: New file, extracted from
modules/langinfo-tests.
* modules/langinfo-tests: Depend on it.
* modules/locale-c++-tests: New file, extracted from
modules/locale-tests.
* modules/locale-tests: Depend on it.
* modules/math-c++-tests: New file, extracted from modules/math-tests.
* modules/math-tests: Depend on it.
* modules/pty-c++-tests: New file, extracted from modules/pty-tests.
* modules/pty-tests: Depend on it.
* modules/search-c++-tests: New file, extracted from
modules/search-tests.
* modules/search-tests: Depend on it.
* modules/signal-c++-tests: New file, extracted from
modules/signal-tests.
* modules/signal-tests: Depend on it.
* modules/spawn-c++-tests: New file, extracted from
modules/spawn-tests.
* modules/spawn-tests: Depend on it.
* modules/stdio-c++-tests: New file, extracted from
modules/stdio-tests.
* modules/stdio-tests: Depend on it.
* modules/stdlib-c++-tests: New file, extracted from
modules/stdlib-tests.
* modules/stdlib-tests: Depend on it.
* modules/string-c++-tests: New file, extracted from
modules/string-tests.
* modules/string-tests: Depend on it.
* modules/sys_ioctl-c++-tests: New file, extracted from
modules/sys_ioctl-tests.
* modules/sys_ioctl-tests: Depend on it.
* modules/sys_select-c++-tests: New file, extracted from
modules/sys_select-tests.
* modules/sys_select-tests: Depend on it.
* modules/sys_socket-c++-tests: New file, extracted from
modules/sys_socket-tests.
* modules/sys_socket-tests: Depend on it.
* modules/sys_stat-c++-tests: New file, extracted from
modules/sys_stat-tests.
* modules/sys_stat-tests: Depend on it.
* modules/sys_time-c++-tests: New file, extracted from
modules/sys_time-tests.
* modules/sys_time-tests: Depend on it.
* modules/time-c++-tests: New file, extracted from modules/time-tests.
* modules/time-tests: Depend on it.
* modules/unistd-c++-tests: New file, extracted from
modules/unistd-tests.
* modules/unistd-tests: Depend on it.
* modules/wchar-c++-tests: New file, extracted from
modules/wchar-tests.
* modules/wchar-tests: Depend on it.
* modules/wctype-c++-tests: New file, extracted from
modules/wctype-tests.
* modules/wctype-tests: Depend on it.
Reported by Simon Josefsson.
2010-03-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
* gnulib-tool (func_exists_module): New function, extracted from
func_verify_module.
(func_verify_module): Use it.
(func_get_dependencies): Synthetize a dependency from 'foo-tests' to
'foo' only if 'foo' exists.
* doc/gnulib.texi (Extra tests modules): Explain how to split a tests
module.
2010-03-28 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add support for special categories of tests.
* gnulib-tool: New options --with-c++-tests, --with-longrunning-tests,
--with-privileged-tests, --with-unportable-tests, --with-all-tests.
(func_usage): Document them.
(inc_cxx_tests, inc_longrunning_tests, inc_privileged_tests,
inc_unportable_tests, inc_all_tests): New variables.
(func_acceptable): Consider these variables.
(func_modules_transitive_closure): Make it work when the 'Status' field
consists of multiple words.
(func_import): Store and restore the values of inc_cxx_tests,
inc_longrunning_tests, inc_privileged_tests, inc_unportable_tests,
inc_all_tests in gnulib-comp.m4.
(func_create_testdir): Set inc_all_tests to true.
* doc/gnulib.texi (Extra tests modules): New section.
Suggested by Jim Meyering.
2010-03-28 Bruno Haible <bruno@clisp.org>
ansi-c++-opt: Allow turning off the C++ build by default.
* m4/ansi-c++.m4 (gl_CXX_CHOICE): Let CXX_CHOICE default to 'no' if
gl_CXX_CHOICE_DEFAULT_NO is defined.
Requested by Eric Blake.
2010-03-28 Bruno Haible <bruno@clisp.org>
unistd: Avoid #define replacements in C++ mode.
* lib/unistd.in.h (socket, connect, accept, bind, getpeername,
getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
setsockopt, shutdown, select): In C++, attach a warning to the function
if possible, rather than #defining the symbol to a dysfunctional alias.
Reported by John W. Eaton <jwe@gnu.org>.
2010-03-28 Bruno Haible <bruno@clisp.org>
Fix link errors on mingw.
* lib/sys_ioctl.in.h (ioctl): Fix declaration idiom.
* modules/sys_ioctl-tests (Makefile.am): Link test-sys_ioctl-c++ with
$(LIBSOCKET).
* modules/sys_select-tests (Makefile.am): Link test-sys_select-c++ with
$(LIBSOCKET).
2010-03-28 Bruno Haible <bruno@clisp.org>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
lib-ignore: Determine different options for different compilers.
* m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Set a variable which
depends on the current language (C/C++/Fortran). Don't set LDFLAGS.
Add comments.
(_gl_IGNORE_UNUSED_LIBRARIES_OPTIONS): New macro.
* NEWS: Mention the change.
2010-03-27 Bruno Haible <bruno@clisp.org>
Remove unused GNULIB_XYZ macro definitions.
* modules/dup3 (configure.ac): Remove gl_MODULE_INDICATOR invocation.
* modules/fseek (configure.ac): Likewise.
* modules/ioctl (configure.ac): Likewise.
* modules/open (configure.ac): Likewise.
* modules/stdlib-safer (configure.ac): Likewise.
2010-03-27 Bruno Haible <bruno@clisp.org>
Add a remark about certain modules.
* modules/malloc (Comment): New section.
* modules/realloc (Comment): Likewise.
* modules/sigpipe (Comment): Likewise.
2010-03-27 Bruno Haible <bruno@clisp.org>
Resolve conflict between the two kinds of module indicators.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_FOR_TESTS): Define
GNULIB_TEST_XYZ instead of GNULIB_XYZ.
* modules/canonicalize (configure.ac): Invoke
gl_MODULE_INDICATOR_FOR_TESTS.
* tests/test-canonicalize-lgpl.c: Test GNULIB_TEST_XYZ instead of
GNULIB_XYZ.
* tests/test-dirent-c++.cc: Likewise.
* tests/test-dirent-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-fchdir.c: Likewise.
* tests/test-fcntl-h-c++.cc: Likewise.
* tests/test-getopt.c: Likewise.
* tests/test-getopt.h: Likewise.
* tests/test-langinfo-c++.cc: Likewise.
* tests/test-locale-c++.cc: Likewise.
* tests/test-math-c++.cc: Likewise.
* tests/test-pty-c++.cc: Likewise.
* tests/test-search-c++.cc: Likewise.
* tests/test-signal-c++.cc: Likewise.
* tests/test-spawn-c++.cc: Likewise.
* tests/test-stdio-c++.cc: Likewise.
* tests/test-stdlib-c++.cc: Likewise.
* tests/test-string-c++.cc: Likewise.
* tests/test-sys_ioctl-c++.cc: Likewise.
* tests/test-sys_select-c++.cc: Likewise.
* tests/test-sys_socket-c++.cc: Likewise.
* tests/test-sys_stat-c++.cc: Likewise.
* tests/test-sys_time-c++.cc: Likewise.
* tests/test-time-c++.cc: Likewise.
* tests/test-unistd-c++.cc: Likewise.
* tests/test-wchar-c++.cc: Likewise.
* tests/uninorm/test-u8-nfc.c: Likewise.
* tests/uninorm/test-u8-nfd.c: Likewise.
* tests/uninorm/test-u8-nfkc.c: Likewise.
* tests/uninorm/test-u8-nfkd.c: Likewise.
* tests/uninorm/test-u16-nfc.c: Likewise.
* tests/uninorm/test-u16-nfd.c: Likewise.
* tests/uninorm/test-u16-nfkc.c: Likewise.
* tests/uninorm/test-u16-nfkd.c: Likewise.
* tests/uninorm/test-u32-nfc.c: Likewise.
* tests/uninorm/test-u32-nfc-big.c: Likewise.
* tests/uninorm/test-u32-nfd.c: Likewise.
* tests/uninorm/test-u32-nfd-big.c: Likewise.
* tests/uninorm/test-u32-nfkc.c: Likewise.
* tests/uninorm/test-u32-nfkc-big.c: Likewise.
* tests/uninorm/test-u32-nfkd.c: Likewise.
* tests/uninorm/test-u32-nfkd-big.c: Likewise.
* tests/uninorm/test-u32-normalize-big.c: Likewise.
2010-03-27 Bruno Haible <bruno@clisp.org>
Distinguish two kinds of module indicators.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_FOR_TESTS): Renamed from
gl_MODULE_INDICATOR.
(gl_MODULE_INDICATOR): New macro.
* m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR_FOR_TESTS instead of gl_MODULE_INDICATOR.
* m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Likewise.
* m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Likewise.
* m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Likewise.
* m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Likewise.
* m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Likewise.
* m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Likewise.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Likewise.
* m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Likewise.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Likewise.
* m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Likewise.
* m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Likewise.
* modules/cloexec (configure.ac): Likewise.
* modules/getopt-gnu (configure.ac): Likewise.
* modules/uninorm/u8-normalize (configure.ac): Likewise.
* modules/uninorm/u16-normalize (configure.ac): Likewise.
* modules/uninorm/u32-normalize (configure.ac): Likewise.
* modules/fdopendir (configure.ac): Invoke gl_MODULE_INDICATOR.
2010-03-27 Bruno Haible <bruno@clisp.org>
New module description field 'Comment'.
* gnulib-tool: New option --extract-comment.
(func_usage): Document it.
(sed_extract_prog, sed_extract_field_header): Support 'Comment' field.
(func_get_comment): New function.
* modules/TEMPLATE-EXTENDED: Add a blank Comment field.
2010-03-27 Bruno Haible <bruno@clisp.org>
Addendum to 2010-02-07 commit.
* gnulib-tool (func_usage): Document --extract-applicability option.
2010-03-27 Bruno Haible <bruno@clisp.org>
Use GNULIB_POSIXCHECK instead of GNULIB_PORTCHECK.
* lib/time.in.h (asctime, asctime_r, ctime, ctime_r): Test
GNULIB_POSIXCHECK, not GNULIB_PORTCHECK. Provide compile-time warnings
rather than link errors.
2010-03-27 Bruno Haible <bruno@clisp.org>
Avoid side effects from tests-related modules on the compilation of lib.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): New macro.
(gl_MODULE_INDICATOR_SET_VARIABLE): Use its expansion as a value.
* gnulib-tool (func_emit_tests_Makefile_am): Accept a witness_macro
parameter. Emit into AM_CPPFLAGS a definition of the designated C
macro.
(func_import): Define a witness macro. Assign it a value that depends
on the current package. Override gl_MODULE_INDICATOR_CONDITION for the
tests-related modules.
(func_create_testdir): Update func_emit_tests_Makefile_am invocation.
Reported by Jim Meyering.
2010-03-27 Bruno Haible <bruno@clisp.org>
Factorize common .m4 code.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_SET_VARIABLE): New macro.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_MODULE_INDICATOR): Use it.
* m4/ctype.m4 (gl_CTYPE_MODULE_INDICATOR): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Likewise.
* m4/iconv_h.m4 (gl_ICONV_MODULE_INDICATOR): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_MODULE_INDICATOR): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Likewise.
* m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Likewise.
* m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Likewise.
* m4/netdb_h.m4 (gl_NETDB_MODULE_INDICATOR): Likewise.
* m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Likewise.
* m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Likewise.
* m4/stddef_h.m4 (gl_STDDEF_MODULE_INDICATOR): Likewise.
* m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Likewise.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Likewise.
* m4/strings_h.m4 (gl_STRINGS_MODULE_INDICATOR): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_MODULE_INDICATOR): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Likewise.
* m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Likewise.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Likewise.
* m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_MODULE_INDICATOR): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_MODULE_INDICATOR): Likewise.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Likewise.
* m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Likewise.
* m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Likewise.
2010-03-27 Bruno Haible <bruno@clisp.org>
Fix a compilation error on Cygwin with g++ >= 4.3.
* lib/sys_stat.in.h (lchmod): Don't warn about the use of this function
if it is undefined or if we alias it to chmod.
(lstat): Don't warn about the use of this function if it is undefined
or if we alias it to stat.
Reported by Simon Josefsson.
2010-03-27 Bruno Haible <bruno@clisp.org>
* m4/getlogin.m4 (gl_FUNC_GETLOGIN): Renamed from gl_GETLOGIN.
* modules/getlogin (configure.ac): Update.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Renamed from gl_GETLOGIN_R.
* modules/getlogin_r (configure.ac): Update.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Renamed from gl_INET_NTOP.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Update.
* modules/inet_ntop (configure.ac): Update.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Renamed from gl_INET_PTON.
* modules/inet_pton (configure.ac): Update.
* m4/mbslen.m4 (gl_FUNC_MBSLEN): Renamed from gl_MBSLEN.
* modules/mbslen (configure.ac): Update.
* m4/pty.m4 (gl_FUNC_FORKPTY): Renamed from gl_FORKPTY.
(gl_FUNC_OPENPTY): Renamed from gl_OPENPTY.
* modules/forkpty (configure.ac): Update.
* modules/openpty (configure.ac): Update.
2010-03-26 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (sc_texinfo_acronym): Don't infloop if there is
no *.texi files. Reported by Eric Blake <eblake@redhat.com>.
2010-03-25 Eric Blake <eblake@redhat.com>
maint: use pragma consistently across replacement headers
* lib/ctype.in.h (system_header): Hoist for consistent placement.
* lib/dirent.in.h (system_header): Likewise.
* lib/errno.in.h (system_header): Likewise.
* lib/float.in.h (system_header): Likewise.
* lib/getopt.in.h (system_header): Likewise.
* lib/iconv.in.h (system_header): Likewise.
* lib/inttypes.in.h (system_header): Likewise.
* lib/langinfo.in.h (system_header): Likewise.
* lib/locale.in.h (system_header): Likewise.
* lib/math.in.h (system_header): Likewise.
* lib/netdb.in.h (system_header): Likewise.
* lib/netinet_in.in.h (system_header): Likewise.
* lib/pty.in.h (system_header): Likewise.
* lib/sched.in.h (system_header): Likewise.
* lib/se-selinux.in.h (system_header): Likewise.
* lib/search.in.h (system_header): Likewise.
* lib/spawn.in.h (system_header): Likewise.
* lib/stdarg.in.h (system_header): Likewise.
* lib/stdint.in.h (system_header): Likewise.
* lib/string.in.h (system_header): Likewise.
* lib/strings.in.h (system_header): Likewise.
* lib/sys_file.in.h (system_header): Likewise.
* lib/sys_ioctl.in.h (system_header): Likewise.
* lib/sys_socket.in.h (system_header): Likewise.
* lib/sys_times.in.h (system_header): Likewise.
* lib/sys_utsname.in.h (system_header): Likewise.
* lib/sys_wait.in.h (system_header): Likewise.
* lib/sysexits.in.h (system_header): Likewise.
* lib/unistd.in.h (system_header): Likewise.
* lib/wctype.in.h (system_header): Likewise.
arpa/inet: fix mingw compilation warning
* lib/arpa_inet.in.h (system_header): Hoist to be unconditional.
Reported by Matthew Bolte.
2010-03-25 Bruno Haible <bruno@clisp.org>
Avoid collision between gnulib wrapper and libintl wrapper.
* lib/printf.c (printf): Don't define if a printf wrapper is already
defined in intl/printf.c.
Reported by Michel Boaventura <michel@michelboaventura.com>.
2010-03-25 Bruno Haible <bruno@clisp.org>
Use ANSI C.
* lib/readutmp.h (getutent): Provide ANSI C prototype.
2010-03-25 Bruno Haible <bruno@clisp.org>
Minor formatting changes.
* lib/acosl.c: Insert space before function argument list.
* lib/argz.c: Likewise.
* lib/asinl.c: Likewise.
* lib/expl.c: Likewise.
* lib/gen-uni-tables.c: Likewise.
* lib/gettext.h: Likewise.
* lib/glthread/lock.h: Likewise.
* lib/tanl.c: Likewise.
* lib/uniname/uniname.c: Likewise.
* tests/test-idpriv-drop.c: Likewise.
* tests/test-idpriv-droptemp.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-tls.c: Likewise.
* lib/argp-help.c: Insert space before function-like macro argument
list.
* lib/memcmp.c: Likewise.
* tests/test-base64.c: Likewise.
* lib/localename.c: Insert space before sizeof's argument list.
* lib/safe-alloc.h: Likewise.
* lib/file-set.h: Insert space before macro argument list.
* tests/test-argp.c: Likewise.
* lib/argp-namefrob.h: Insert space before function parameter list.
* lib/getaddrinfo.c: Likewise.
* lib/netdb.in.h: Likewise.
* lib/parse-duration.h: Likewise.
* lib/parse-duration.c: Likewise.
* lib/poll.c: Likewise.
* lib/select.c: Likewise.
* lib/trim.h: Likewise.
* tests/test-usleep.c: Likewise.
* lib/ldexpl.c: Insert space before function parameter list and before
function argument list.
* lib/logl.c: Likewise.
* lib/sqrtl.c: Likewise.
* lib/trim.c: Likewise.
* lib/cosl.c: Use GNU style indentation. Insert space before function
argument list.
* lib/sinl.c: Likewise.
* lib/tsearch.c: Insert space after 'for'.
Reported by Jim Meyering.
2010-03-23 Pádraig Brady <P@draigBrady.com> (tiny change)
* maint.mk (sc_Wundef_boolean): Check for the presence of the
config header before grepping, as it's not present before
autoreconf/configure are run. Reported by Simon Josefsson.
2010-03-23 Bruno Haible <bruno@clisp.org>
pt_chown: Make it work with automake < 1.11.
* modules/pt_chown (Makefile.am): Define pkglibexecdir.
Reported by Simon Josefsson.
2010-03-23 Bruno Haible <bruno@clisp.org>
pt_chown: Don't depend on GPLed modules.
* lib/pt_chown.c: Don't include idpriv.h.
(main): Don't drop privileges.
* modules/pt_chown (Depends-on): Remove idpriv-drop.
Reported by Simon Josefsson.
2010-03-24 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (sc_texinfo_acronym): Add rule, based on
suggestions from karl@freefriends.org (Karl Berry).
2010-03-22 Eric Blake <eblake@redhat.com>
gethostname: further tweaks
* lib/unistd.in.h (includes): Only worry about <winsock2.h> if we
are overriding gethostname.
Suggested by Bruno Haible.
2010-03-21 Bruno Haible <bruno@clisp.org>
Fix comments.
* lib/forkpty.c (rpl_forkpty): Fix comment.
* lib/openpty.c (rpl_openpty): Likewise.
Reported by Eric Blake.
2010-03-22 Eric Blake <eblake@redhat.com>
gethostname: fix build on mingw
* lib/unistd.in.h (includes): Work around fact that mingw
<winsock2.h> re-includes <unistd.h>, by avoiding any
redeclarations if we are being included by <winsock2.h>.
Reported by Matthias Bolte.
2010-03-21 Bruno Haible <bruno@clisp.org>
forkpty: Provide replacement on AIX, HP-UX, IRIX, Solaris.
* lib/forkpty.c (forkpty): New replacement function, from glibc with
modifications.
* lib/pty.in.h (forkpty): Update declaration. Add comments.
* m4/pty.m4 (gl_FORKPTY): If forkpty is not declared, arrange to
provide the replacement.
* modules/forkpty (Depends-on): Add openpty, login_tty.
* m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Initialize HAVE_FORKPTY.
* modules/pty (Makefile.am): Substitute HAVE_FORKPTY.
* doc/glibc-functions/forkpty.texi: More supported platforms.
* config/srclist.txt: Add forkpty.c (commented).
2010-03-21 Bruno Haible <bruno@clisp.org>
* modules/forkpty-tests: Use the common TEMPLATE-TESTS.
(Makefile.am): Verify that PTY_LIB is defined.
* modules/openpty-tests: Use the common TEMPLATE-TESTS.
2010-03-21 Bruno Haible <bruno@clisp.org>
Tests for module 'login_tty'.
* modules/login_tty-tests: New file.
* tests/test-login_tty.c: New file.
New module 'login_tty'.
* lib/login_tty.c: New file.
* m4/pty.m4 (gl_FUNC_LOGIN_TTY): New macro.
* modules/login_tty: New file.
* doc/glibc-functions/login_tty.texi: Mention the new module.
2010-03-21 Bruno Haible <bruno@clisp.org>
login_tty: Documentation.
* doc/glibc-functions/login_tty.texi: New file.
* doc/gnulib.texi (Glibc <utmp.h>): Include it.
2010-03-21 Bruno Haible <bruno@clisp.org>
pty: Consistent macro naming.
* m4/pty_h.m4 (gl_PTY_H): Renamed from gl_PTY.
* m4/pty.m4 (gl_FORKPTY, gl_OPENPTY): Update.
* modules/pty (configure.ac): Update.
2010-03-21 Bruno Haible <bruno@clisp.org>
Tests for openpty: Make stricter.
* tests/test-openpty.c (main): Add test of canonical processing and
erase.
* modules/openpty-tests (Makefile.am): Verify that PTY_LIB is defined.
openpty: Provide replacement on AIX, HP-UX, IRIX, Solaris.
* lib/openpty.c (openpty): New replacement function.
* lib/pty.in.h: Include <termios.h>.
(openpty): Update declaration. Add comments.
* m4/pty.m4 (gl_OPENPTY): Require AC_USE_SYSTEM_EXTENSIONS. If openpty
is not declared, arrange to provide the replacement. Check for _getpty
and posix_openpt.
* modules/openpty (Depends-on): Add extensions, fcntl-h, ioctl.
* m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Initialize HAVE_OPENPTY.
* modules/pty (Makefile.am): Substitute HAVE_OPENPTY.
* modules/pty-tests (test_pty_c___LDADD): New variable.
* doc/glibc-functions/openpty.texi: More supported platforms.
2010-03-21 Bruno Haible <bruno@clisp.org>
setenv: Tweaks.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Include necessary headers in
the test program.
* doc/posix-functions/setenv.texi: Update platforms list.
2010-03-21 Bruno Haible <bruno@clisp.org>
New module 'unlockpt'.
* lib/unlockpt.c: New file, from glibc with modifications.
* m4/unlockpt.m4: New file.
* modules/unlockpt: New file.
* lib/stdlib.in.h (unlockpt): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check whether unlockpt is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_UNLOCKPT, HAVE_UNLOCKPT.
* modules/stdlib (Makefile.am): Substitute GNULIB_UNLOCKPT,
HAVE_UNLOCKPT.
* doc/posix-functions/unlockpt.texi: Mention the new module.
* tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::unlockpt.
* config/srclist.txt: Add unlockpt.c (commented).
2010-03-21 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit inclusion of "intprops.h" without use
* top/maint.mk (sc_prohibit_intprops_without_use): New rule.
2010-03-21 Bruno Haible <bruno@clisp.org>
New module 'grantpt'.
* lib/grantpt.c: New file, from glibc with modifications.
* m4/grantpt.m4: New file.
* modules/grantpt: New file.
* lib/stdlib.in.h (grantpt): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check whether grantpt is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_GRANTPT, HAVE_GRANTPT.
* modules/stdlib (Makefile.am): Substitute GNULIB_GRANTPT,
HAVE_GRANTPT.
* doc/posix-functions/grantpt.texi: Mention the new module.
* tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::grantpt.
* config/srclist.txt: Add grantpt.c (commented).
2010-03-21 Bruno Haible <bruno@clisp.org>
New module 'pt_chown'.
* lib/pt_chown.c: New file, from glibc with modifications.
* lib/pty-private.h: New file, from glibc with modifications.
* modules/pt_chown: New file.
* config/srclist.txt: Add pt_chown.c, pty-private.h (commented).
2010-03-21 Bruno Haible <bruno@clisp.org>
Tests for module 'ptsname'.
* modules/ptsname-tests: New file.
* tests/test-ptsname.c: New file.
New module 'ptsname'.
* lib/ptsname.c: New file, from glibc with modifications.
* m4/ptsname.m4: New file.
* modules/ptsname: New file.
* lib/stdlib.in.h (ptsname): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H): Check whether ptsname is declared.
(gl_STDLIB_H_DEFAULTS): Initialize GNULIB_PTSNAME, HAVE_PTSNAME.
* modules/stdlib (Makefile.am): Substitute GNULIB_PTSNAME,
HAVE_PTSNAME.
* doc/posix-functions/ptsname.texi: Mention the new module.
* tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::ptsname.
* config/srclist.txt: Add ptsname.c (commented).
2010-03-21 Bruno Haible <bruno@clisp.org>
Tests for module 'ttyname_r'.
* modules/ttyname_r-tests: New file.
* tests/test-ttyname_r.c: New file.
New module 'ttyname_r'.
* lib/ttyname_r.c: New file.
* m4/ttyname_r.m4: New file.
* modules/ttyname_r: New file.
* lib/unistd.in.h (ttyname_r): New declaration.
* m4/unistd_h.m4 (gl_UNISTD_H): Check whether ttyname_r is declared.
(gl_UNISTD_H_DEFAULTS): Initialize GNULIB_TTYNAME_R, HAVE_TTYNAME_R.
* modules/unistd (Makefile.am): Substitute GNULIB_TTYNAME_R,
HAVE_TTYNAME_R.
* tests/test-unistd-c++.cc: Check GNULIB_NAMESPACE::ttyname_r.
* doc/posix-functions/ttyname_r.texi: Mention the new module.
2010-03-20 Bruno Haible <bruno@clisp.org>
signal: Undefine macro definitions in C++ mode.
* lib/signal.in.h (sigismember, sigemptyset, sigaddset, sigdelset,
sigfillset): Undefine macro definitions from the system header in C++
mode.
Reported by John W. Eaton <jwe@gnu.org>.
2010-03-20 Bruno Haible <bruno@clisp.org>
Ensure no #include statements inside extern "C" { ... }.
* lib/obstack.h: Shrink extern "C" { ... } region so that it does not
contain #include statements.
* lib/time.in.h: Likewise.
2010-03-20 Bruno Haible <bruno@clisp.org>
Make _GL_WARN_ON_USE usable in C++ and C mode in the same compilation.
* build-aux/warn-on-use.h (_GL_WARN_EXTERN_C): New macro.
(_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Likewise.
Reported by John W. Eaton <jwe@gnu.org>.
2010-03-20 Bruno Haible <bruno@clisp.org>
* m4/unlink.m4 (gl_FUNC_UNLINK): Fix last commit.
Reported by Jim Meyering.
2010-03-20 Bruno Haible <bruno@clisp.org>
pipe: Set errno upon failure.
* lib/pipe.h: Specify that when -1 is returned, errno is set.
* lib/pipe.c (create_pipe): Set errno when returning -1. Use the right
errno value in error message.
2010-03-20 Bruno Haible <bruno@clisp.org>
Jim Meyering <meyering@redhat.com>
lchown: Avoid "unused variable" warning.
* lib/lchown.c (rpl_lchown): Move variable 'st' into #if block.
2010-03-20 Bruno Haible <bruno@clisp.org>
Work around unlink() bug on MacOS X 10.5.6.
* lib/unlink.c (rpl_unlink): If UNLINK_PARENT_BUG is defined, fail when
attempting to unlink a parent directory.
* m4/unlink.m4 (gl_FUNC_UNLINK): Require AC_CANONICAL_HOST. Test for
MacOS X 10.5 bug. If the bug is present, define UNLINK_PARENT_BUG and
activate for the replacement function.
* doc/posix-functions/unlink.texi: Mention the MacOS X 10.5 bug.
2010-03-20 Bruno Haible <bruno@clisp.org>
Fix link errors on Solaris 8.
* modules/dirent-tests (test_dirent_c___LDADD): Add LIB_NANOSLEEP.
* modules/wctype-tests (test_wctype_c___LDADD): Likewise.
2010-03-19 Jim Meyering <meyering@redhat.com>
regcomp.c: make non-_LIBC implementation of build_range_exp consistent
The _LIBC implementation of build_range_exp correctly honors the
RE_NO_EMPTY_RANGES flag when checking for reversed range endpoints.
However, the non-_LIBC implementation would ignore that syntax-bit
flag and return REG_ERANGE unconditionally.
This change makes it honor that flag.
* lib/regcomp.c (build_range_exp) [!_LIBC]: Add a parameter: "syntax".
Make two pointer parameters "const".
Use "syntax" bits in order to honor RE_NO_EMPTY_RANGES.
(parse_bracket_exp): Update caller.
regex.m4: correct the reversed range endpoint ([b-a]) test
* m4/regex.m4: When requiring that [b-a] evoke failure,
use RE_NO_EMPTY_RANGES. This makes this entire configure-time
test pass once again for x86-based systems.
2010-03-19 Bruno Haible <bruno@clisp.org>
scandir: Fix link error on Solaris 8.
* lib/scandir.c (_D_EXACT_NAMLEN, _D_ALLOC_NAMLEN): New fallback
macros.
2010-03-19 Bruno Haible <bruno@clisp.org>
getusershell: Fix documentation.
* doc/glibc-functions/endusershell.texi: Refer to the getusershell
module.
* doc/glibc-functions/setusershell.texi: Likewise.
getusershell: Provide declaration, missing on Solaris 9.
* lib/unistd.in.h (getusershell, setusershell, endusershell): Declare
also if HAVE_GETUSERSHELL && !HAVE_DECL_GETUSERSHELL.
* m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): When the function exists,
check whether it is declared. Set HAVE_DECL_GETUSERSHELL.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_GETUSERSHELL, not HAVE_GETUSERSHELL.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETUSERSHELL, not
HAVE_GETUSERSHELL.
* doc/glibc-functions/getusershell.texi: Mention the Solaris problem.
2010-03-19 Bruno Haible <bruno@clisp.org>
wctype: Provide iswblank function.
* lib/wctype.in.h (iswblank): Provide a replacement also when iswcntrl
exists and is fine.
* m4/wctype_h.m4 (gl_WCTYPE_H): Also check whether iswcntrl exists.
* modules/wctype (Makefile.am): Substitute HAVE_ISWBLANK.
* tests/test-wctype.c (main): Re-enable the iswblank tests.
* doc/posix-functions/iswblank.texi: Update.
2010-03-19 Bruno Haible <bruno@clisp.org>
Tests of module 'pty' in C++ mode.
* modules/pty-tests: New file.
* tests/test-pty-c++.cc: New file.
* m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR.
2010-03-19 Eric Blake <eblake@redhat.com>
logb: fix documentation
* doc/posix-functions/logb.texi (logb): Gnulib fixes the cygwin
1.5 declaration bug.
forkpty, openpty: prefer glibc's const-safe prototype
* lib/forkpty.c (rpl_forkpty): New file.
* lib/openpty.c (rpl_openpty): Likewise.
* modules/forkpty (Files): Distribute it.
* modules/openpty (Files): Likewise.
* m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Add new witnesses. Move decl
check...
* m4/pty.m4 (gl_FORKPTY, gl_OPENPTY): ...here. Request
replacement for non-const BSD signature.
* modules/pty (Makefile.am): Substitute witnesses.
* lib/pty.in.h (forkpty, openpty): Declare replacements.
* tests/test-forkpty.c: Update signature check.
* tests/test-openpty.c: Likewise.
* doc/glibc-functions/forkpty.texi (forkpty): Document the fix.
* doc/glibc-functions/openpty.texi (openpty): Likewise.
forkpty, openpty: split functions into new modules
* modules/pty (Makefile.am): Substitute new witnesses.
(Libraries): Move library detection...
* modules/forkpty: ...into new module.
* modules/openpty: Another new module.
* modules/pty-tests: Rename and split...
* modules/forkpty-tests: ...to this...
* modules/openpty-tests: ...and this.
* tests/test-pty.c: Rename and split...
* tests/test-forkpty.c: ...to this...
* tests/test-openpty.c: ...and this.
* m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Add new witnesses.
(gl_PTY): Split library searching...
* m4/pty.m4 (gl_PTY_LIB): ...into new file.
(gl_FORKPTY, gl_OPENPTY): New macros.
* lib/pty.in.h (forkpty, openpty): Honor new witnesses.
* NEWS: Mention the split.
* MODULES.html.sh (Misc): Document the modules.
* doc/glibc-functions/forkpty.texi (forkpty): Likewise.
* doc/glibc-functions/openpty.texi (openpty): Likewise.
pty: improve replacement header
* lib/pty.in.h: New file.
* modules/pty (Files): Ship it.
(Makefile.am): Always build replacement.
* m4/pty.m4: Rename...
* m4/pty_h.m4: ...to this.
(gl_PTY): Modernize setting of witness macros; update check of
forkpty to take proper advantage of cache.
(gl_PTY_MODULE_INDICATOR, gl_PTY_H_DEFAULTS): New macros.
getopt: avoid compiler warning
* lib/getopt.c (attribute_hidden): Remove unused macro.
2010-03-18 Bruno Haible <bruno@clisp.org>
Fix link errors on Solaris 8.
* modules/iconv-h-tests (test_iconv_h_c___LDADD): Add LIB_NANOSLEEP.
* modules/search-tests (test_search_c___LDADD): Likewise.
* modules/signal-tests (test_signal_c___LDADD): Likewise.
* modules/spawn-tests (test_spawn_c___LDADD): Likewise.
* modules/stdio-tests (test_stdio_c___LDADD): Likewise.
* modules/sys_select-tests (test_sys_select_c___LDADD): Likewise.
* modules/sys_socket-tests (test_sys_socket_c___LDADD): Likewise.
* modules/sys_time-tests (test_sys_time_c___LDADD): Likewise.
* modules/wchar-tests (test_wchar_c___LDADD): Likewise.
2010-03-18 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2010-03-14.
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): New macro.
(gl_SPAWN_H): Require it.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Likewise.
Reported by Simon Josefsson.
2010-03-18 Bruno Haible <bruno@clisp.org>
Fix typo introduced on 2009-12-31.
* m4/spawn_h.m4 (gl_SPAWN_H): Check for the declaration of
posix_spawn_file_actions_adddup2.
2010-03-17 Bert Wesarg <bert.wesarg@googlemail.com> (tiny change)
and Eric Blake <eblake@redhat.com>
test-vc-list-files-git: make more robust
* tests/test-vc-list-files-git.sh: Unset problematic environment
variables. Chain commands together.
2010-03-17 Ludovic Courtès <ludo@gnu.org> (tiny change)
* m4/pty.m4: Unset $ac_cv_have_decl_forkpty before the second
`AC_CHECK_DECL' invocation.
2010-03-15 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/inttostr.c (inttostr): Make sure the invocation of verify
appears before executable statements. Suggested by Petr Sumbera
<Petr.Sumbera@Sun.COM>.
2010-03-14 Bruno Haible <bruno@clisp.org>
* tests/test-flock.c (test_exclusive): Comment out a test that causes
portability problems. Instead use a simpler test.
(main): Check that invalid arguments are rejected only on Linux.
2010-03-14 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2009-12-31.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Invoke
gl_PREREQ_SYS_H_WINSOCK2 always.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. Remove
SYS_SOCKET_H variable.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Remove test for flock.
Update comments.
* m4/ctype.m4 (gl_CTYPE_H): Update comments.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise.
2010-03-14 Bruno Haible <bruno@clisp.org>
Fix values returned by sinl, cosl.
* lib/trigl.h: Add specification comments.
* lib/sincosl.c (kernel_sinl, kernel_cosl): Fix comments and formula
that combines the values from the precomputed table with the values of
the Chebyshev polynomials.
2010-03-14 Bruno Haible <bruno@clisp.org>
Fix compilation error when modules 'posix_spawn[p]' are not used.
* m4/spawn_h.m4 (gl_SPAWN_H): Set HAVE_POSIX_SPAWN here.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): ... not here.
2010-03-14 Bruno Haible <bruno@clisp.org>
Fix compilation error on mingw when module 'time_r' is not used.
* lib/time.in.h (localtime_r, gmtime_r): Declare only if GNULIB_TIME_R
is 1.
* tests/test-time-c++.cc (localtime_r, gmtime_r): Likewise.
* modules/time_r (configure.ac): Invoke gl_TIME_MODULE_INDICATOR.
* modules/time (Makefile.am): Substitute GNULIB_TIME_R.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_TIME_R.
2010-03-14 Bruno Haible <bruno@clisp.org>
Fix compilation error with Sun C.
* lib/strtol.c: Use LLONG_MIN instead of GCC specific LONG_LONG_MIN.
Use LLONG_MAX instead of GCC specific LONG_LONG_MAX. Use ULLONG_MAX
instead of GCC specific ULONG_LONG_MAX.
* lib/xstrtoll.c: Likewise.
* lib/xstrtoull.c: Likewise.
2010-03-13 Bruno Haible <bruno@clisp.org>
Allow the user to disable C++ code and tests.
* m4/ansi-c++.m4 (gl_CXX_CHOICE): New macro.
(gl_PROG_ANSI_CXX): Require it.
2010-03-13 Bruno Haible <bruno@clisp.org>
* DEPENDENCIES (libtool): Mention libtool 2.2.x requirement in special
cases.
2010-03-13 Bruno Haible <bruno@clisp.org>
Test that gnulib does not break the standard C++ headers.
* tests/test-locale-c++2.cc: New file.
* modules/locale-tests (Files): Add it.
(Makefile.am): Compile it for test-locale-c++.
* tests/test-math-c++2.cc: New file.
* modules/math-tests (Files): Add it.
(Makefile.am): Compile it for test-math-c++.
* tests/test-signal-c++2.cc: New file.
* modules/signal-tests (Files): Add it.
(Makefile.am): Compile it for test-signal-c++.
* tests/test-stdio-c++2.cc: New file.
* modules/stdio-tests (Files): Add it.
(Makefile.am): Compile it for test-stdio-c++.
* tests/test-stdlib-c++2.cc: New file.
* modules/stdlib-tests (Files): Add it.
(Makefile.am): Compile it for test-stdlib-c++.
* tests/test-string-c++2.cc: New file.
* modules/string-tests (Files): Add it.
(Makefile.am): Compile it for test-string-c++.
* tests/test-time-c++2.cc: New file.
* modules/time-tests (Files): Add it.
(Makefile.am): Compile it for test-time-c++.
Reported by John W. Eaton <jwe@gnu.org>.
2010-03-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Clarify which options are available for
--create-testdir and --create-megatestdir.
2010-03-13 Bruno Haible <bruno@clisp.org>
Fix compilation error with glibc >= 2.10 and g++ >= 4.4.
* build-aux/warn-on-use.h (_GL_WARN_ON_USE_CXX): New macro.
* build-aux/c++defs.h (_GL_CXXALIASWARN1): New macro.
* lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk,
strstr, strcasestr): Use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN
when appropriate.
Reported by Jim Meyering.
2010-03-12 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_import): Explain origin of code.
2010-03-12 Bruno Haible <bruno@clisp.org>
Fix problem with automake's definition of CXXLINK.
* gnulib-tool (func_create_testdir): After LT_INIT, also use LT_LANG.
Reported by Simon Josefsson and Ludovic Courtès.
2010-03-12 Bruno Haible <bruno@clisp.org>
* doc/gnulib-intro.texi (Steady Development): Mention Ian Beckwith's
stable releases.
2010-03-11 Bruno Haible <bruno@clisp.org>
Fix problems with overloaded C++ definitions of memchr, strpbrk, etc.
* build-aux/c++defs.h (_GL_CXXALIAS_SYS_CAST2): Make it work regardless
whether the system provides one variant or multiple variants of the
function.
* lib/string.in.h (memchr, strpbrk): Use _GL_CXXALIAS_SYS_CAST2 for all
C++ compilers.
(memrchr, rawmemchr, strchrnul, strstr, strcasestr): Use
_GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS.
Reported by Jim Meyering.
2010-03-09 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (LIBTOOLPATH): Fix cut'n'paste bug.
2010-03-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Add support for --libtool in --create-testdir.
* gnulib-tool (LIBTOOLPATH, LIBTOOLIZE): New variables.
(func_create_testdir): Emit LT_INIT invocations. Invoke LIBTOOLIZE.
2010-03-08 Eric Blake <eblake@redhat.com>
gnulib-tool.texi: mention possibility of git submodule
* doc/gnulib-tool.texi (VCS Issues): Add details about using git
submodules.
* doc/.gitignore: Ignore another generated file.
2010-03-08 Karl Berry <karl@gnu.org>
* doc/gnulib-tool.texi (VCS Issues): Mention third option
of committing gnulib files while skipping others.
2010-03-07 Bruno Haible <bruno@clisp.org>
Tests of module 'wctype' in C++ mode.
* tests/test-wctype-c++.cc: New file.
* modules/wctype-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-wctype-c++.
Tests of module 'wchar' in C++ mode.
* tests/test-wchar-c++.cc: New file.
* modules/wchar-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-wchar-c++.
* m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'unistd' in C++ mode.
* tests/test-unistd-c++.cc: New file.
* modules/unistd-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-unistd-c++.
* m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'time' in C++ mode.
* tests/test-time-c++.cc: New file.
* modules/time-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-time-c++.
* m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR.
Tests of module 'sys_time' in C++ mode.
* tests/test-sys_time-c++.cc: New file.
* modules/sys_time-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-sys_time-c++.
* m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'sys_stat' in C++ mode.
* tests/test-sys_stat-c++.cc: New file.
* modules/sys_stat-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-sys_stat-c++.
* m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'sys_socket' in C++ mode.
* tests/test-sys_socket-c++.cc: New file.
* modules/sys_socket-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-sys_socket-c++.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'sys_select' in C++ mode.
* tests/test-sys_select-c++.cc: New file.
* modules/sys_select-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-sys_select-c++.
* m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'sys_ioctl' in C++ mode.
* tests/test-sys_ioctl-c++.cc: New file.
* modules/sys_ioctl-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-sys_ioctl-c++.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'string' in C++ mode.
* tests/test-string-c++.cc: New file.
* modules/string-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-string-c++.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'stdlib' in C++ mode.
* tests/test-stdlib-c++.cc: New file.
* modules/stdlib-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-stdlib-c++.
* m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'stdio' in C++ mode.
* tests/test-stdio-c++.cc: New file.
* modules/stdio-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-stdio-c++.
* m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'spawn' in C++ mode.
* tests/test-spawn-c++.cc: New file.
* modules/spawn-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-spawn-c++.
* m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'signal' in C++ mode.
* tests/test-signal-c++.cc: New file.
* modules/signal-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-signal-c++.
* m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'search' in C++ mode.
* tests/test-search-c++.cc: New file.
* modules/search-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-search-c++.
* m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'math' in C++ mode.
* tests/test-math-c++.cc: New file.
* modules/math-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-math-c++.
* m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR.
Tests of module 'locale' in C++ mode.
* tests/test-locale-c++.cc: New file.
* modules/locale-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-locale-c++.
* m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'langinfo' in C++ mode.
* tests/test-langinfo-c++.cc: New file.
* modules/langinfo-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-langinfo-c++.
* m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'iconv-h' in C++ mode.
* tests/test-iconv-h-c++.cc: New file.
* modules/iconv-h-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-iconv-h-c++.
Tests of module 'glob' in C++ mode.
* tests/test-glob-c++.cc: New file.
* modules/glob-tests (Files): Add it.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-glob-c++.
Tests of module 'fcntl-h' in C++ mode.
* tests/test-fcntl-h-c++.cc: New file.
* modules/fcntl-h-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-fcntl-h-c++.
* m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
Tests of module 'dirent' in C++ mode.
* tests/test-dirent-c++.cc: New file.
* modules/dirent-tests (Files): Add it and tests/signature.h.
(Depends-on): Add ansi-c++-opt.
(Makefile.am): Arrange to compile and run test-dirent-c++.
* m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR.
New module 'ansi-c++-opt'.
* modules/ansi-c++-opt: New file.
* m4/ansi-c++.m4: New file, from GNU gettext with modifications.
Document C++ namespace mode.
* doc/gnulib.texi (A C++ namespace for gnulib): New section.
wctype: Avoid #define replacements in C++ mode.
* lib/wctype.in.h: Include c++defs.h, warn-on-use.h.
(iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower,
iswprint, iswpunct, iswspace, iswupper, iswxdigit, towlower, towupper):
In C++, define a namespaced alias symbol.
* m4/wctype_h.m4 (gl_WCTYPE_H): Don't set WCTYPE_H.
* modules/wctype (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Provide a wctype.h replacement always. Update wctype.h
rule.
wchar: Avoid #define replacements in C++ mode.
* lib/wchar.in.h: Include c++defs.h.
(btowc, wctob, mbsinit, mbrtowc, mbrlen, mbsrtowcs, mbsnrtowcs,
wcrtomb, wcsrtombs, wcsnrtombs): In C++, define a namespaced alias
symbol.
(wcwidth): Likewise. Fix prototype to be POSIX compliant.
* modules/wchar (Depends-on): Add c++defs.
(Makefile.am): Update wchar.h rule.
unistd: Avoid #define replacements in C++ mode.
* lib/unistd.in.h: Include c++defs.h.
(chown, close, dup, dup2, dup3, euidaccess, faccessat, fchdir,
fchownat, fsync, ftruncate, getcwd, getdomainname, getdtablesize,
getgroups, gethostname, getlogin, getlogin_r, getpagesize,
getusershell, setusershell, endusershell, lchown, link, linkat, lseek,
pipe2, pread, readlink, readlinkat, rmdir, sleep, symlink, symlinkat,
unlink, unlinkat, usleep, write): In C++, define a namespaced alias
symbol.
(environ): Update.
* modules/unistd (Depends-on): Add c++defs.
(Makefile.am): Update unistd.h rule.
time: Avoid #define replacements in C++ mode.
* lib/time.in.h: Include c++defs.h, warn-on-use.h.
(nanosleep, mktime, localtime_r, gmtime_r, strptime, timegm): In C++,
define a namespaced alias symbol.
* m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): New macro.
(gl_HEADER_TIME_H_DEFAULTS): Initialize also GNULIB_MKTIME,
GNULIB_NANOSLEEP, GNULIB_STRPTIME, GNULIB_TIMEGM.
* modules/time (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Update time.h rule.
* modules/mktime (configure.ac): Invoke gl_TIME_MODULE_INDICATOR.
* modules/nanosleep (configure.ac): Likewise.
* modules/strptime (configure.ac): Likewise.
* modules/timegm (configure.ac): Likewise.
sys_time: Avoid #define replacements in C++ mode.
* lib/sys_time.in.h: Include c++defs.h.
(gettimeofday): In C++, define a namespaced alias symbol.
* modules/sys_time (Depends-on): Add c++defs.
(Makefile.am): Update sys/time.h rule.
sys_stat: Avoid #define replacements in C++ mode.
* lib/sys_stat.in.h: Include c++defs.h.
(fchmodat, fstat, fstatat, futimens, lchmod, lstat, mkdir, mkdirat,
mkfifo, mkfifoat, mknod, mknodat, utimensat): In C++, define a
namespaced alias symbol.
In C++, define a namespaced alias symbol.
* modules/sys_stat (Depends-on): Add c++defs.
(Makefile.am): Update sys/stat.h rule.
sys_socket: Avoid #define replacements in C++ mode.
* lib/sys_socket.in.h: Handle the case of recursive include on Cygwin.
Include c++defs.h. Include warn-on-use.h earlier. Enable the function
definitions also when the system has a <sys/socket.h>.
(socket, connect, accept, bind, getpeername, getsockname, getsockopt,
listen, recv, send, recvfrom, sendto, setsockopt, shutdown, accept4):
In C++, define a namespaced alias symbol.
* modules/sys_socket (Depends-on): Add c++defs.
(Makefile.am): Update sys/socket.h rule.
sys_select: Avoid #define replacements in C++ mode.
* lib/sys_select.in.h: Include c++defs.h. Enable the function
definitions also when the system has a <sys/select.h>.
(select): In C++, define a namespaced alias symbol.
* modules/sys_select (Depends-on): Add c++defs.
(Makefile.am): Update sys/select.h rule.
sys_ioctl: Avoid #define replacements in C++ mode.
* lib/sys_ioctl.in.h: Include c++defs.h.
(ioctl): In C++, define a namespaced alias symbol.
* modules/sys_ioctl (Depends-on): Add c++defs.
(Makefile.am): Update sys/ioctl.h rule.
string: Avoid #define replacements in C++ mode.
* lib/string.in.h: Include c++defs.h.
(stpncpy): Define to rpl_stpncpy, not gnu_stpncpy.
(memchr, memmem, mempcpy, memrchr, rawmemchr, stpcpy, stpncpy,
strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strstr,
strcasestr, strtok_r, mbslen, mbschr, mbsrchr, mbspbrk, strerror,
strsignal, strverscmp): In C++, define a namespaced alias symbol.
* modules/string (Depends-on): Add c++defs.
(Makefile.am): Update string.h rule.
stdlib: Avoid #define replacements in C++ mode.
* lib/stdlib.in.h: Include c++defs.h.
(atoll, calloc, canonicalize_file_name, getloadavg, getsubopt, malloc,
mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps, putenv, random_r,
srandom_r, initstate_r, setstate_r, realloc, realpath, rpmatch, setenv,
strtod, strtoll, strtoull, unsetenv): In C++, define a namespaced alias
symbol.
* modules/stdlib (Depends-on): Add c++defs.
(Makefile.am): Update stdlib.h rule.
stdio: Avoid #define replacements in C++ mode.
* lib/stdio.in.h: Include c++defs.h.
(dprintf, fclose, fflush, fopen, fprintf, fpurge, fputc, fputs,
freopen, fseek, fseeko, ftell, ftello, fwrite, getdelim, getline,
obstack_printf, obstack_vprintf, perror, popen, printf, fputc, putchar,
puts, remove, rename, renameat, snprintf, sprintf, asprintf, vasprintf,
vdprintf, vfprintf, vprintf, vsnprintf, vsprintf): In C++, define a
namespaced alias symbol.
* modules/stdio (Depends-on): Add c++defs.
(Makefile.am): Update stdio.h rule.
spawn: Avoid #define replacements in C++ mode.
* lib/spawn.in.h: Include c++defs.h.
(posix_spawn, posix_spawnp, posix_spawnattr_init,
posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
posix_spawnattr_setsigmask, posix_spawnattr_getflags,
posix_spawnattr_setflags, posix_spawnattr_getpgroup,
posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy,
posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam,
posix_spawnattr_setschedparam, posix_spawn_file_actions_init,
posix_spawn_file_actions_destroy, posix_spawn_file_actions_addopen,
posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2):
In C++, define a namespaced alias symbol.
* modules/spawn (Depends-on): Add c++defs.
(Makefile.am): Update spawn.h rule.
signal: Avoid #define replacements in C++ mode.
* lib/signal.in.h: Include c++defs.h.
(sigismember, sigemptyset, sigaddset, sigdelset, sigfillset,
sigpending, sigprocmask, signal, raise, sigaction): In C++, define a
namespaced alias symbol.
* modules/signal (Depends-on): Add c++defs.
(Makefile.am): Update signal.h rule.
search: Avoid #define replacements in C++ mode.
* lib/search.in.h: Include c++defs.h.
(_gl_search_compar_fn, _gl_search_action_fn): New types.
(tsearch, tfind, tdelete, twalk): In C++, define a namespaced alias
symbol.
* modules/search (Depends-on): Add c++defs.
(Makefile.am): Update search.h rule.
math: Avoid #define replacements in C++ mode.
* lib/math.in.h: Include c++defs.h.
(frexp, acosl, asinl, atanl, ceilf, ceill, cosl, expl, floorf, floorl,
frexpl, ldexpl, logl, roundf, round, roundl, sinl, sqrtl, tanl, truncf,
trunc, truncl): In C++, define a namespaced alias symbol.
* modules/math (Depends-on): Add c++defs.
(Makefile.am): Update math.h rule.
locale: Avoid #define replacements in C++ mode.
* lib/locale.in.h: Include c++defs.h.
(duplocale): In C++, define a namespaced alias symbol.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize HAVE_DUPLOCALE.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Set HAVE_DUPLOCALE.
* modules/locale (Depends-on): Add c++defs.
(Makefile.am): Update locale.h rule. Substitute HAVE_DUPLOCALE.
langinfo: Avoid #define replacements in C++ mode.
* lib/langinfo.in.h: Include c++defs.h.
(nl_langinfo): In C++, define a namespaced alias symbol.
* modules/langinfo (Depends-on): Add c++defs.
(Makefile.am): Update langinfo.h rule.
iconv-h: Avoid #define replacements in C++ mode.
* lib/iconv.in.h: Include c++defs.h, warn-on-use.h.
(iconv_open, iconv, iconv_close): In C++, define a namespaced alias
symbol.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Invoke gl_REPLACE_ICONV_H
whenever iconv is present.
* modules/iconv-h (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Update iconv.h rule.
glob: Avoid #define replacements in C++ mode.
* lib/glob.in.h: Include c++defs.h, warn-on-use.h.
(_gl_glob_errfunc_fn): New type.
(glob, globfree, glob_pattern_p): In C++, define a namespaced alias
symbol.
* modules/glob (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Update glob.h rule.
fcntl-h: Avoid #define replacements in C++ mode.
* lib/fcntl.in.h: Include c++defs.h.
(fcntl, open, openat): In C++, define a namespaced alias symbol.
* modules/fcntl-h (Depends-on): Add c++defs.
(Makefile.am): Update fcntl.h rule.
dirent: Avoid #define replacements in C++ mode.
* lib/dirent.in.h: Include c++defs.h.
(closedir, fdopendir, opendir, scandir, alphasort): In C++, define a
namespaced alias symbol.
(dirfd): Update declaration.
* modules/dirent (Depends-on): Add c++defs.
(Makefile.am): Update dirent.h rule.
ctype: Make it usable in C++ code.
* lib/ctype.in.h: Include c++defs.h.
(isblank): Declare as extern "C".
* modules/ctype (Depends-on): Add c++defs.
(Makefile.am): Update ctype.h rule.
New module 'c++defs'.
* modules/c++defs: New file.
* build-aux/c++defs.h: New file.
Reported by John W. Eaton <jwe@gnu.org>.
2010-03-07 Bruno Haible <bruno@clisp.org>
logb: Provide missing declaration for Cygwin.
* lib/math.in.h (logb): New declaration.
* m4/logb.m4: New file.
* modules/logb (Files): Add m4/logb.m4.
(Depends-on): Add math.
(configure.ac): Invoke gl_FUNC_LOGB, gl_MATH_MODULE_INDICATOR.
* m4/math_h.m4 (gl_MATH_H): Check also for logb declaration.
(gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGB, HAVE_DECL_LOGB.
* modules/math (Makefile.am): Substitute GNULIB_LOGB, HAVE_DECL_LOGB.
* doc/posix-functions/logb.texi: Mention the Cygwin bug.
2010-03-07 Bruno Haible <bruno@clisp.org>
Fix test-cond link error.
* tests/test-cond.c: Include <stdio.h>.
2010-03-07 Bruno Haible <bruno@clisp.org>
Fix test-dirent-safer link error.
* modules/dirent-safer-tests (Makefile.am): Define
test_dirent_safer_LDADD.
2010-03-07 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Don't use 'lib-ignore' module
among default module list.
2010-03-07 Bruno Haible <bruno@clisp.org>
Fix link error on platforms with GNU libiconv.
* modules/unistr/u8-strcoll-tests (Makefile): Define
test_u8_strcoll_LDADD.
* modules/unistr/u16-strcoll-tests (Makefile): Define
test_u16_strcoll_LDADD.
* modules/unistr/u32-strcoll-tests (Makefile): Define
test_u32_strcoll_LDADD.
2010-03-07 Bruno Haible <bruno@clisp.org>
Use POSIX declarations for socket functions.
* lib/sys_socket.in.h (rpl_connect, rpl_accept, rpl_bind,
rpl_getpeername, rpl_getsockname, rpl_recv, rpl_send, rpl_recvfrom,
rpl_sendto): Change declaration to match POSIX.
* lib/connect.c (rpl_connect): Likewise.
* lib/accept.c (rpl_accept): Likewise.
* lib/bind.c (rpl_bind): Likewise.
* lib/getpeername.c (rpl_getpeername): Likewise.
* lib/getsockname.c (rpl_getsockname): Likewise.
* lib/recv.c (rpl_recv): Likewise.
* lib/send.c (rpl_send): Likewise.
* lib/recvfrom.c (rpl_recvfrom): Likewise.
* lib/sendto.c (rpl_sendto): Likewise.
2010-03-06 Bruno Haible <bruno@clisp.org>
Clarify access, euidaccess, faccessat.
* doc/posix-functions/faccessat.texi: Mention security problem under
"Other problems", not "Portability problems".
* doc/posix-functions/access.texi: Likewise. Mention a related security
problem.
* doc/glibc-functions/euidaccess.texi: Mention security problems.
* lib/euidaccess.c: Add comments about platforms.
* lib/unistd.in.h (access, euidaccess): Add warnings.
2010-03-07 Bruno Haible <bruno@clisp.org>
Ensure posix_spawnattr_{get,set}sched{policy,param} are defined.
* lib/spawn.in.h (POSIX_SPAWN_SETSCHEDPARAM): Define fallback.
(POSIX_SPAWN_SETSCHEDULER): Likewise.
(POSIX_SPAWN_USEVFORK): Define in a way that works when
POSIX_SPAWN_SETSCHEDPARAM and POSIX_SPAWN_SETSCHEDULER are zero.
(posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy): Also
declare when POSIX_SPAWN_SETSCHEDULER is zero.
(posix_spawnattr_getschedparam, posix_spawnattr_setschedparam): Also
declare when POSIX_SPAWN_SETSCHEDPARAM is zero.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether
POSIX_SPAWN_SETSCHEDULER or POSIX_SPAWN_SETSCHEDPARAM are zero.
* modules/posix_spawnattr_getschedparam (configure.ac): Enable the
replacement also when POSIX_SPAWN_SETSCHEDPARAM is zero.
* modules/posix_spawnattr_setschedparam (configure.ac): Likewise.
* modules/posix_spawnattr_getschedpolicy (configure.ac): Enable the
replacement also when POSIX_SPAWN_SETSCHEDULER is zero.
* modules/posix_spawnattr_setschedpolicy (configure.ac): Likewise.
* lib/spawnattr_getschedparam.c (posix_spawnattr_getschedparam): Do
nothing if POSIX_SPAWN_SETSCHEDPARAM is zero.
* lib/spawnattr_setschedparam.c (posix_spawnattr_setschedparam):
Likewise.
* lib/spawnattr_getschedpolicy.c (posix_spawnattr_getschedpolicy): Do
nothing if POSIX_SPAWN_SETSCHEDULER is zero.
* lib/spawnattr_setschedpolicy.c (posix_spawnattr_setschedpolicy):
Likewise.
* tests/test-spawn.c (main): Make it work when
POSIX_SPAWN_SETSCHEDPARAM and POSIX_SPAWN_SETSCHEDULER are zero.
2010-03-07 Bruno Haible <bruno@clisp.org>
Fix incorrect Makefile.am generation in German locale.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Execute sed command with character range in C locale.
2010-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'iconv-h'.
* modules/iconv-h-tests: New file.
* tests/test-iconv-h.c: New file.
New module 'iconv-h'.
* modules/iconv-h: New file.
* modules/iconv_open (Files): Remove lib/iconv.in.h, m4/iconv_h.m4.
(Depends-on): Add iconv-h. Remove include_next, arg-nonnull.
(configure.ac): Remove gl_ICONV_H.
(Makefile.am): Remove rule for iconv.h.
2010-03-06 Bruno Haible <bruno@clisp.org>
More consistent naming of *.m4 files.
* m4/wctype_h.m4: Renamed from m4/wctype.m4.
* modules/wctype (Files): Update.
More consistent naming of *.m4 files.
* m4/wchar_h.m4: Renamed from m4/wchar.m4.
* modules/wchar (Files): Update.
2010-03-06 Jim Meyering <meyering@redhat.com>
euidaccess: relax license to LGPLv2+
* modules/euidaccess (License): Relax to LGPLv2+.
2010-03-06 Bruno Haible <bruno@clisp.org>
Prefer lib_SOURCES over unconditional AC_LIBOBJ.
* modules/exitfail (configure.ac): Remove AC_LIBOBJ invocation.
(Makefile.am): Augment lib_SOURCES instead.
2010-03-04 Jim Meyering <meyering@redhat.com>
utime: remove obsolete module
This module, like autoconf's AC_FUNC_UTIME_NULL macro, has been
unnecessary for years, and has been marked as obsolete for 10 months.
* modules/utime: Remove file.
* lib/utime.c: Remove file.
* m4/utime.m4: Remove file.
* m4/utimes-null.m4: Remove file.
* doc/posix-functions/utime.texi (utime): Remove reference to
the module. Move the sole "fixed by gnulib" item into the
"problems not fixed by Gnulib" list.
* MODULES.html.sh (func_all_modules): Remove reference to "utime".
2010-03-05 Simon Josefsson <simon@josefsson.org>
* modules/exit (License): Relax license to LGPLv2+.
(Status): Mark as obsolete.
* NEWS: Mention deprecated 'exit' module.
* doc/posix-functions/exit.texi: Recommend 'stdlib' module instead
of now obsolete 'exit'.
2010-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
fts-lgpl: remove unused module
* modules/fts-lgpl: Remove.
* MODULES.html.sh (func_all_modules): Adjust.
* check-module (find_included_lib_files): Adjust.
* m4/fts.m4 (gl_FUNC_FTS_LGPL): Remove.
2010-03-02 Ben Walton <bwalton@artsci.utoronto.ca> (tiny change)
copy-acl: enhance Solaris ACL error handling
* lib/copy-acl.c (qcopy_acl): Also ignore EOPNOTSUPP.
* lib/set-mode-acl.c (qset_acl): Likewise.
2010-03-02 Bruno Haible <bruno@clisp.org>
spawn: Don't override the system defined values on FreeBSD 8.
* lib/spawn.in.h (POSIX_SPAWN_RESETIDS, POSIX_SPAWN_SETPGROUP,
POSIX_SPAWN_SETSIGDEF, POSIX_SPAWN_SETSIGMASK,
POSIX_SPAWN_SETSCHEDPARAM, POSIX_SPAWN_SETSCHEDULER): Don't redefine
if HAVE_POSIX_SPAWN is 1.
Reported by Johan van Selst <johans@stack.nl> via Eric Blake.
2010-03-01 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Initial import): Clarify the requirements
regarding Automake.
2010-02-25 Bruno Haible <bruno@clisp.org>
Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21.
* gnulib-tool: Define 'echo' as a function only before the ksh alias
setting, not afterwards.
Reported by Ben Walton <bwalton@artsci.utoronto.ca>.
2010-02-24 Eric Blake <eblake@redhat.com>
bootstrap, git-version-gen: use timestamp
* build-aux/git-version-gen (scriptversion): Force UTC.
* build-aux/bootstrap (scriptversion): New variable.
bootstrap: allow older git
* build-aux/bootstrap (GNULIB_SRCDIR): Add fallback if git is
older than 1.6.4. Requested by the libvirt project.
2010-02-23 Eric Blake <eblake@redhat.com>
warn-on-use: work with old autoconf
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Accomodate older
AS_VAR semantics of autoconf 2.60.
Reported by Bruno Haible.
bootstrap: improve some comments
* build-aux/bootstrap: Drop unneeded emacs hint. Add some
clarification comments.
gettimeofday: provide correct function
* lib/gettimeofday.c (gettimeofday): Provide rpl_gettimeofday only
when replacement is declared, otherwise provide gettimeofday.
Reported by Michael Goffioul.
2010-02-23 Jim Meyering <meyering@redhat.com>
lib-ignore: relax license to "unlimited", not LGPLv2+
* modules/lib-ignore (License): Relax to "unlimited".
2010-02-23 Jim Meyering <meyering@redhat.com>
lib-ignore: relax license to LGPLv2+
* modules/lib-ignore (License): Relax to LGPLv2+.
2010-02-22 Eric Blake <eblake@redhat.com>
lseek: avoid bash 3.2 broken pipe bug
* m4/lseek.m4 (gl_FUNC_LSEEK): Drain pipe, to avoid spurious
warning from bash 3.2.
Reported by Ben Pfaff, with analysis from Bruno Haible.
bootstrap: support non-FSF copyright holder
* build-aux/bootstrap (COPYRIGHT_HOLDER, with_gettext): Allow
bootstrap.conf override of COPYRIGHT_HOLDER.
(MSGID_BUGS_ADDRESS): Allow URL rather than email.
bootstrap: interoperate with gettext 0.14.1
* build-aux/bootstrap (slurp): Fix typo when using older gettext.
bootstrap: allow for alternate submodule location
* build-aux/bootstrap (gnulib_path): New variable; use instead of
hardcoding submodule location.
(gnulib_mk): Allow direct use of Makefile.am.
bootstrap: use GNULIB_SRCDIR to reduce disk usage
* build-aux/bootstrap (GNULIB_SRCDIR): If set, use as a reference,
rather than reconfiguring where the submodule points.
gettimeofday: restore support for platforms that lack function
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Also compile
replacement if function is missing.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): New witness.
* modules/sys_time (Makefile.am): Substitute it.
* lib/sys_time.in.h (gettimeofday): Check it.
Reported by Michael Goffioul.
2010-02-21 Bruno Haible <bruno@clisp.org>
* lib/stdio.in.h (obstack_printf): Fix typo.
2010-02-21 Jose E. Marchesi <jemarch@gnu.org>
vc-list-files: use bzr ls's -R option
* build-aux/vc-list-files: Invoke bazaar to generate a recursive
list of versioned files based on 'dir' (usage of -R in 'bzr ls').
2010-02-21 Jim Meyering <meyering@redhat.com>
init.sh: fix EXEEXT shims to work also for names like test-prog
* tests/init.sh: Re-exec a better shell, when needed.
If the current shell lacks support for posix $(...), an init.sh-using
test will now try to find a shell that supports that. If EXEEXT is
nonempty, we also require support for hyphen-in-alias-name and shell
substitutions like ${var#glob}. Failure to find such a shell results
in a skipped test.
2010-02-21 Bruno Haible <bruno@clisp.org>
Really work around "broken pipe" error message from bash 3.2.
* gnulib-tool (func_reset_sigpipe): Remove function.
(echo): In bash 3.2, define to a function that uses printf.
Analyzed by Ralf Wildenhues, Chet Ramey, Ben Pfaff.
2010-02-20 Bruno Haible <bruno@clisp.org>
Restore support for automake 1.9.6 with autoconf 2.61.
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P): Ensure MKDIR_P is AC_SUBSTed.
Reported by James Youngman <jay@gnu.org>.
2010-02-20 Bruno Haible <bruno@clisp.org>
Improve *printf warning condition.
* lib/stdio.in.h (fprintf, printf, vfprintf, vprintf): Emit warning
also if GNULIB_POSIXCHECK is defined, the *-posix module is not used,
and the function is overridden due to SIGPIPE emulation.
2010-02-20 Bruno Haible <bruno@clisp.org>
* lib/stdio.in.h: Tweak comments.
2010-02-19 Bruno Haible <bruno@clisp.org>
Make it easier to find modules. New gnulib-tool option '--find'.
* gnulib-tool: New option --find.
(func_usage): Document it.
(func_sanitize_modulelist): New function, extracted from
func_all_modules.
(func_all_modules): Invoke it.
* doc/gnulib-tool.texi (Which modules?): New node.
2010-02-18 Markus Duft <mduft@gentoo.org> (tiny change)
* lib/sys_select.in.h: Provide select replacement even if
sys/select.h exists on a system, for Interix.
2010-02-18 Jim Meyering <meyering@redhat.com>
init.sh: don't use $(...) just yet
* tests/init.sh (create_exe_shim_functions_): Use `...`, not $(...),
to accommodate e.g., Solaris' /bin/sh.
2010-02-17 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/netdb.texi: Mention NetBSD 5.0 problem.
Reported by Ludovic Courtès <ludo@gnu.org>.
2010-02-16 Simon Josefsson <simon@josefsson.org>
* modules/userspec-tests (test_userspec_LDADD): Add variable, for
linking with -lintl.
2010-02-17 Simon Josefsson <simon@josefsson.org>
* lib/netdb.in.h (AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG): Define to 0
if not provided by the system's netdb.h. Reported by
ludo@gnu.org (Ludovic Courtès).
2010-02-15 Jim Meyering <meyering@redhat.com>
init.sh: improve portability and efficiency
* tests/init.sh (find_exe_basenames_): Remove unnecessary use of
"dummy" in a for loop.
Use '!', not '^' to select the complement of a character set used
in a "case" statement.
Use shell variable manipulation, a la ${...%.exe}, rather than sed.
Suggestions from Eric Blake.
init.sh: automatically accommodate programs with the .exe suffix
Automatically arrange for an invocation of "prog" to execute the
program named "prog$EXEEXT" (usually prog.exe). Thus, all invocations
may use the simpler "prog", yet still work when built on a system
that requires specifying the added suffix.
Do this by constructing a function named "prog" that invokes
"prog.exe" for each .exe file in selected directories.
* tests/init.sh (find_exe_basenames_): New function.
(create_exe_shim_functions_): New function.
(path_prepend_): Use it.
maint.mk: mark syntax-check sc_*.m rules as .PHONY
* top/maint.mk ($(syntax-check-rules)): Add .PHONY, so that
"make -t syntax-check" doesn't create a ton of sc_*.m files.
2010-02-14 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit inclusion of "hash-pjw.h" without_use
* top/maint.mk (sc_prohibit_hash_without_use): Re-add "@".
(sc_prohibit_hash_pjw_without_use): New rule.
maint.mk: allow the default upload destination dir to be overridden
* top/maint.mk (upload_dest_dir_): Define with a default that
preserves the status quo.
(emit_upload_commands): Use it, rather than hard-coding $(PACKAGE).
Reported by Peter Simons.
maint.mk: prohibit inclusion of "hash.h" without_use
* top/maint.mk (sc_prohibit_hash_without_use): New rule.
2010-02-10 Jim Meyering <meyering@redhat.com>
maint.mk: prohibit inclusion of "ignore-value.h" without_use
* top/maint.mk (sc_prohibit_ignore_value_without_use): New rule.
2010-02-09 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
obstack-printf-posix: ensure declaration
* m4/obstack-printf.m4 (gl_DECL_OBSTACK_PRINTF): New macro,
extracted from gl_FUNC_OBSTACK_PRINTF.
(gl_FUNC_OBSTACK_PRINTF): Invoke it.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX):
Likewise.
* lib/stdio.in.h (obstack_printf, obstack_vprintf): Declare also
if GNULIB_OBSTACK_PRINTF_POSIX is 1 and GNULIB_OBSTACK_PRINTF is
0.
2010-02-08 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix typo in 2010-02-07 commit.
* gnulib-tool (func_get_dependencies): Fix typo in last commit.
Reported by Eric Blake.
2010-02-07 Bruno Haible <bruno@clisp.org>
gnulib-tool: Fix up caching patches.
* gnulib-tool: New options --cache-modules, --no-cache-modules. Remove
option --no-cache. Use associative arrays when supported by the shell.
(sed_comments): New variable.
(modcache): Renamed from do_cache.
(sed_extract_field_header): Renamed from sed_extract_cache_prog. Don't
abbreviate unnecessarily.
(have_associative): New variable.
(func_cache_var): Define correctly for bash 1.x. Define in an optimized
way also for ksh and zsh.
(func_init_sed_convert_to_cache_statements): New function, extracted
from func_cache_lookup_module. Add support for associative arrays.
Don't set the c_MODULE_cached variable here. Ignore all lines before
the first field header. Remove only the final newline, not all trailing
newlines. Support empty fields correctly. Limit the use of 'eval' to
assignments.
(func_get_description, func_get_status, func_get_notice,
func_get_applicability, func_get_filelist, func_get_dependencies,
func_get_autoconf_early_snippet, func_get_autoconf_snippet,
func_get_automake_snippet, func_get_include_directive,
func_get_link_directive, func_get_license, func_get_maintainer):
Update documentation. List the unoptimized code first. Add support for
associative arrays. Limit the use of 'eval' to assignments.
(func_get_applicability): Undo stylistic pessimisations.
(func_get_automake_snippet, func_get_include_directive): Reduce code
duplication.
(func_modules_transitive_closure, func_modules_add_dummy,
func_modules_notice, func_modules_to_filelist, func_add_file,
func_update_file, func_emit_lib_Makefile_am, func_emit_po_Makevars,
func_emit_po_POTFILES_in, func_emit_tests_Makefile_am, func_import,
func_create_testdir, func_create_megatestdir): Update documentation.
2010-01-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_cache_lookup_module): Store the module name
belonging to the cache variable; error out if two different
module names map to the same cache variable name.
2010-01-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
gnulib-tool: Make caching optional.
* gnulib-tool: Accept option --no-cache, turning off $do_cache.
Update matching short versions of --no-changelog.
(func_usage): Update.
(sed_extract_cache_prog): Renamed from ...
(sed_extract_prog): ... this; revert to old extraction script.
(func_get_description, func_get_status)
(func_get_notice, func_get_applicability, func_get_filelist)
(func_get_dependencies, func_get_autoconf_early_snippet)
(func_get_autoconf_snippet, func_get_automake_snippet)
(func_get_include_directive, func_get_link_directive)
(func_get_license, func_get_maintainer): If $do_cache is false,
use old, non-caching extraction scripts.
Suggestion by Bruno Haible.
2010-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
gnulib-tool: cache module metainformation.
* gnulib-tool (sed_extract_prog): Match newline before each
header, and rewrite header to a shell variable suffix.
(func_cache_var, func_cache_lookup_module): New functions,
to turn a module name into a cache variable prefix, and to
look up and cache module metainformation.
(func_get_description, func_get_status)
(func_get_notice, func_get_applicability, func_get_filelist)
(func_get_dependencies, func_get_autoconf_early_snippet)
(func_get_autoconf_snippet, func_get_automake_snippet)
(func_get_include_directive, func_get_link_directive)
(func_get_license, func_get_maintainer): Use
func_cache_lookup_module.
2010-02-07 Bruno Haible <bruno@clisp.org>
fnctl: Fix missing dependency.
* modules/fcntl (Depends-on): Add getdtablesize.
Reported by John W. Eaton <jwe@gnu.org>.
2010-02-05 Sergey Poznyakoff <gray@gnu.org.ua>
Argp: fix recognition of short alias options.
* lib/argp-parse.c (convert_options): Fix improper use of
`|' between character values.
* tests/test-argp.c (group1_option): New alias option
--read (-r).
(group1_parser): Special handling for 'r'.
(test15): New test case.
(test_fun): Add test15.
* tests/test-argp-2.sh: Update expected --help and --usage
outputs.
2010-02-05 Sergey Poznyakoff <gray@gnu.org.ua>
* tests/test-argp.c: Fix indentation.
2010-02-04 Eric Blake <ebb9@byu.net>
gettimeofday: expose type of second argument
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Do better detection
of glibc extension signature, and define GETTIMEOFDAY_TIMEZONE.
* tests/test-gettimeofday.c: Use it to silence warning.
* doc/posix-functions/gettimeofday.texi (gettimeofday): Document
the issue.
2010-02-03 Jim Meyering <meyering@redhat.com>
regcomp.c: avoid the sole warning from gcc's -Wtype-limits
* lib/regcomp.c (TYPE_SIGNED): Define.
(parse_dup_op): Use it to avoid the sole warning from -Wtype-limits.
regcomp.c: avoid a new -Wshadow warning
* lib/regcomp.c (create_initial_state): Do not shadow local "err".
2010-02-01 Jim Meyering <meyering@redhat.com>
removing useless parentheses in cpp #define directives
For motivation, see commit c0221df4, "define STREQ(a,b)
consistently, removing useless parentheses"
* lib/memcmp.c (CMP_LT_OR_GT): Remove useless parentheses.
* lib/mountlist.c (MNT_IGNORE): Likewise.
* lib/trim.h (trim, trim_trailing, trim_leading): Likewise.
2010-02-01 Eric Blake <ebb9@byu.net>
sys_time: use link-warning
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Split defaults...
(gl_HEADER_SYS_TIME_H_DEFAULTS): ...into new macro.
(gl_SYS_TIME_MODULE_INDICATOR): New macro.
* modules/sys_time (Depends-on): Add warn-on-use.
(Makefile.am): Always build replacement.
(configure.ac): Update substitutions.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY)
(gl_FUNC_GETTIMEOFDAY_CLOBBER): Include defaults, and no longer
bother with SYS_TIME_H.
* modules/gettimeofday (configure.ac): Declare indicator.
* lib/sys_time.in.h (gettimeofday): Warn if gnulib module is not
in use.
closein-tests: silence compiler warning
* tests/test-closein.c (main): Ignore fread result.
* modules/closein-tests (Depends-on): Add ignore-value.
tests: silence warning about system return
* tests/test-areadlink-with-size.c (main): Ignore system result.
* tests/test-areadlink.c (main): Likewise.
* tests/test-areadlinkat-with-size.c (main): Likewise.
* tests/test-areadlinkat.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-chown.c (main): Likewise.
* tests/test-fchownat.c (main): Likewise.
* tests/test-fdutimensat.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-futimens.c (main): Likewise.
* tests/test-lchown.c (main): Likewise.
* tests/test-link.c (main): Likewise.
* tests/test-linkat.c (main): Likewise.
* tests/test-lstat.c (main): Likewise.
* tests/test-mkdir.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-mkfifo.c (main): Likewise.
* tests/test-mkfifoat.c (main): Likewise.
* tests/test-mknod.c (main): Likewise.
* tests/test-readlink.c (main): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-rename.c (main): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-rmdir.c (main): Likewise.
* tests/test-symlink.c (main): Likewise.
* tests/test-symlinkat.c (main): Likewise.
* tests/test-unlink.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-utimens.c (main): Likewise.
* tests/test-utimensat.c (main): Likewise.
* modules/areadlink-tests (Depends-on): Add ignore-value.
* modules/areadlink-with-size-tests (Depends-on): Likewise.
* modules/areadlinkat-tests (Depends-on): Likewise.
* modules/areadlinkat-with-size-tests (Depends-on): Likewise.
* modules/canonicalize-lgpl-tests (Depends-on): Likewise.
* modules/canonicalize-tests (Depends-on): Likewise.
* modules/chown-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
* modules/lchown-tests (Depends-on): Likewise.
* modules/link-tests (Depends-on): Likewise.
* modules/linkat-tests (Depends-on): Likewise.
* modules/lstat-tests (Depends-on): Likewise.
* modules/mkdir-tests (Depends-on): Likewise.
* modules/mkfifo-tests (Depends-on): Likewise.
* modules/mkfifoat-tests (Depends-on): Likewise.
* modules/mknod-tests (Depends-on): Likewise.
* modules/openat-tests (Depends-on): Likewise.
* modules/readlink-tests (Depends-on): Likewise.
* modules/remove-tests (Depends-on): Likewise.
* modules/rename-tests (Depends-on): Likewise.
* modules/renameat-tests (Depends-on): Likewise.
* modules/rmdir-tests (Depends-on): Likewise.
* modules/symlink-tests (Depends-on): Likewise.
* modules/symlinkat-tests (Depends-on): Likewise.
* modules/unlink-tests (Depends-on): Likewise.
* modules/utimens-tests (Depends-on): Likewise.
* modules/utimensat-tests (Depends-on): Likewise.
2010-01-31 Bruno Haible <bruno@clisp.org>
Perform the same test for many <math.h> functions.
* m4/mathfunc.m4 (gl_COMMON_DOUBLE_MATHFUNC,
gl_COMMON_DOUBLE_MATHFUNC_TEST): New macros.
* m4/sqrt.m4 (gl_FUNC_SQRT): Invoke gl_COMMON_DOUBLE_MATHFUNC instead
of gl_MATHFUNC.
* modules/acos (configure.ac): Likewise.
* modules/asin (configure.ac): Likewise.
* modules/atan (configure.ac): Likewise.
* modules/atan2 (configure.ac): Likewise.
* modules/cbrt (configure.ac): Likewise.
* modules/copysign (configure.ac): Likewise.
* modules/cos (configure.ac): Likewise.
* modules/cosh (configure.ac): Likewise.
* modules/erf (configure.ac): Likewise.
* modules/erfc (configure.ac): Likewise.
* modules/exp (configure.ac): Likewise.
* modules/fmod (configure.ac): Likewise.
* modules/hypot (configure.ac): Likewise.
* modules/j0 (configure.ac): Likewise.
* modules/j1 (configure.ac): Likewise.
* modules/jn (configure.ac): Likewise.
* modules/lgamma (configure.ac): Likewise.
* modules/log (configure.ac): Likewise.
* modules/log10 (configure.ac): Likewise.
* modules/log1p (configure.ac): Likewise.
* modules/pow (configure.ac): Likewise.
* modules/remainder (configure.ac): Likewise.
* modules/sin (configure.ac): Likewise.
* modules/sinh (configure.ac): Likewise.
* modules/tan (configure.ac): Likewise.
* modules/tanh (configure.ac): Likewise.
* modules/y0 (configure.ac): Likewise.
* modules/y1 (configure.ac): Likewise.
* modules/yn (configure.ac): Likewise.
Suggested by Paolo Bonzini.
2010-01-31 Bruno Haible <bruno@clisp.org>
* m4/getline.m4 (gl_FUNC_GETLINE): Add comment about REPLACE_GETLINE.
2010-01-31 Bruno Haible <bruno@clisp.org>
Work around getdelim() bug on FreeBSD 8.0.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Test whether getdelim supports an
initially NULL line. Set REPLACE_GETDELIM if getdelim exists but does
not work.
* lib/stdio.in.h (getdelim): Define as an alias if REPLACE_GETDELIM
is 1.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize REPLACE_GETDELIM.
* modules/stdio (Makefile.am): Also substitute REPLACE_GETDELIM.
* tests/test-getdelim.c (main): Also test result for a NULL buffer and
a non-zero size.
* doc/posix-functions/getdelim.texi: Mention the FreeBSD bug.
2010-01-31 Bruno Haible <bruno@clisp.org>
Work around getline() bug on FreeBSD 8.0.
* m4/getline.m4 (gl_FUNC_GETLINE): Also test result for a NULL buffer
and a non-zero size.
* tests/test-getline.c (main): Likewise.
* doc/posix-functions/getline.texi: Mention the FreeBSD bug.
Reported by Dennis <noordsij@cs.helsinki.fi> via Eric Blake.
2010-01-28 Eric Blake <ebb9@byu.net>
regex: fix build failure
* lib/regex_internal.h (__GNUC_PREREQ): Define for non-glibc
platforms.
2010-01-28 Jim Meyering <meyering@redhat.com>
regex: do not ignore memory allocation failure
* lib/regex_internal.c (create_cd_newstate): Detect
re_node_set_init_copy failure. Extracted from glibc commit
2da42bc06566bc89785e580fa1ac89b4c9f2a63c.
regex: sync more white-space changes from libc
* lib/regex_internal.c: White-space only changes.
* lib/regexec.c: Likewise.
regex: add many uses of __attribute_warn_unused_result__
* lib/regex_internal.c: Use __attribute_warn_unused_result__.
* lib/regexec.c: Likewise.
Extracted from a messy glibc commit.
regcomp.c: spelling and merge-artifact from glibc
* lib/regcomp.c: Merge remainder of glibc's
2da42bc06566bc89785e580fa1ac89b4c9f2a63c.
regcomp.c: sync white-space changes from glibc
* lib/regcomp.c: Merge to accommodate white space
changes from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c.
regcomp.c: do not ignore internal return values
* lib/regcomp.c: Do not ignore internal return values.
This is from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c,
but without its white-space changes and spelling fixes.
regex_internal.h: define __attribute_warn_unused_result__
* lib/regex_internal.h (__attribute_warn_unused_result__): Define.
maint: add a syntax-check rule to check for vulnerable Makefile.in
* top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): New rule.
2010-01-27 Jim Meyering <meyering@redhat.com>
ncftpput-ftp: clean up spaces
* build-aux/ncftpput-ftp: Make Copyright line consistent.
Remove trailing blanks.
2010-01-27 Simon Josefsson <simon@josefsson.org>
* build-aux/git-version-gen: Fix copyright statement.
* build-aux/gnupload: Likewise.
* tests/test-arcfour.c: Likewise.
* tests/test-arctwo.c: Likewise.
* tests/test-count-one-bits.c: Likewise.
* tests/test-crc.c: Likewise.
* tests/test-des.c: Likewise.
* tests/test-gc-arcfour.c: Likewise.
* tests/test-gc-arctwo.c: Likewise.
* tests/test-gc-des.c: Likewise.
* tests/test-gc-hmac-md5.c: Likewise.
* tests/test-gc-hmac-sha1.c: Likewise.
* tests/test-gc-md2.c: Likewise.
* tests/test-gc-md4.c: Likewise.
* tests/test-gc-md5.c: Likewise.
* tests/test-gc-pbkdf2-sha1.c: Likewise.
* tests/test-gc-rijndael.c: Likewise.
* tests/test-gc-sha1.c: Likewise.
* tests/test-gc.c: Likewise.
* tests/test-gethostname.c: Likewise.
* tests/test-gettimeofday.c: Likewise.
* tests/test-hash.c: Likewise.
* tests/test-hmac-md5.c: Likewise.
* tests/test-hmac-sha1.c: Likewise.
* tests/test-md2.c: Likewise.
* tests/test-md4.c: Likewise.
* tests/test-md5.c: Likewise.
* tests/test-memchr.c: Likewise.
* tests/test-memchr2.c: Likewise.
* tests/test-memcmp.c: Likewise.
* tests/test-memmem.c: Likewise.
* tests/test-memrchr.c: Likewise.
* tests/test-rawmemchr.c: Likewise.
* tests/test-read-file.c: Likewise.
* tests/test-rijndael.c: Likewise.
* tests/test-sockets.c: Likewise.
* tests/test-strchrnul.c: Likewise.
* tests/test-strstr.c: Likewise.
* tests/test-strtod.c: Likewise.
* build-aux/ncftpput-ftp: Likewise.
2010-01-26 Eric Blake <ebb9@byu.net>
ignore-value: update recommended header name
* modules/ignore-value (Include): Only use <> for headers that
exist in glibc.
2010-01-26 Jim Meyering <meyering@redhat.com>
test-userspec.c: avoid compiler warnings
* tests/test-userspec.c (main): Avoid shadowing ("uid"),
and "initialization discards qualifiers..." warnings.
Put the first "uid" in its own scope, and make char* members "const".
2010-01-25 Bruno Haible <bruno@clisp.org>
gnulib-tool: Make warning diagnostics consistent.
* gnulib-tool (func_warning): New function.
Use it everywhere where gnulib-tool produces output to stderr and it is
not a fatal error.
2010-01-25 Bruno Haible <bruno@clisp.org>
Fix test dependencies.
* modules/xstrtol-tests (Depends-on): Add inttypes.
* modules/xstrtoll-tests (Depends-on): Likewise. Remove xstrtoll.
2010-01-25 Pádraig Brady <P@draigBrady.com>
syntax-check: detect incorrect boolean macro values in config.h
* modules/maintainer-makefile (configure.ac): Parameterize the location
of config.h which will be available to makefiles as $(CONFIG_INCLUDE).
The logic is from Eric Blake and the location indicated by Jim Meyering.
Note the more natural CONFIG_HEADER name is prohibited by automake
for backwards compatibility reasons.
* top/maint.mk (sc_Wundef_boolean): New rule.
2010-01-25 Jim Meyering <meyering@redhat.com>
bootstrap: detect MacOS 10.6's shasum, too
* build-aux/bootstrap: Also recognize MacOS 10.6's shasum.
Suggested by Thomas Treichl <Thomas.Treichl@gmx.net>.
2010-01-23 Jim Meyering <meyering@redhat.com>
xstrtoll: new module
* modules/xstrtoll: New file.
* MODULES.html.sh (Numeric conversion functions): Add xstrtoll.
* lib/xstrtol.h [HAVE_LONG_LONG_INT]: Declare xstrtoll and xstrtoull.
* lib/xstrtoll.c, lib/xstrtoull.c: New files.
./configure fails if you use this module and lack "long long".
* modules/xstrtoll-tests: New module.
* tests/test-xstrtoll.c, tests/test-xstrtoull.c: New files.
* tests/test-xstrtoll.sh: Like test-xstrtol.c, but use the
new init.sh-based test framework.
2010-01-24 Bruno Haible <bruno@clisp.org>
Tests for module 'yn'.
* modules/yn-tests: New file.
* tests/test-yn.c: New file.
Tests for module 'y1'.
* modules/y1-tests: New file.
* tests/test-y1.c: New file.
Tests for module 'y0'.
* modules/y0-tests: New file.
* tests/test-y0.c: New file.
Tests for module 'tanh'.
* modules/tanh-tests: New file.
* tests/test-tanh.c: New file.
Tests for module 'tan'.
* modules/tan-tests: New file.
* tests/test-tan.c: New file.
Tests for module 'sqrt'.
* modules/sqrt-tests: New file.
* tests/test-sqrt.c: New file.
Tests for module 'sinh'.
* modules/sinh-tests: New file.
* tests/test-sinh.c: New file.
Tests for module 'sin'.
* modules/sin-tests: New file.
* tests/test-sin.c: New file.
Tests for module 'rint'.
* modules/rint-tests: New file.
* tests/test-rint.c: New file.
Tests for module 'remainder'.
* modules/remainder-tests: New file.
* tests/test-remainder.c: New file.
Tests for module 'pow'.
* modules/pow-tests: New file.
* tests/test-pow.c: New file.
Tests for module 'nextafter'.
* modules/nextafter-tests: New file.
* tests/test-nextafter.c: New file.
Tests for module 'modf'.
* modules/modf-tests: New file.
* tests/test-modf.c: New file.
Tests for module 'logb'.
* modules/logb-tests: New file.
* tests/test-logb.c: New file.
Tests for module 'log1p'.
* modules/log1p-tests: New file.
* tests/test-log1p.c: New file.
Tests for module 'log10'.
* modules/log10-tests: New file.
* tests/test-log10.c: New file.
Tests for module 'log'.
* modules/log-tests: New file.
* tests/test-log.c: New file.
Tests for module 'lgamma'.
* modules/lgamma-tests: New file.
* tests/test-lgamma.c: New file.
Tests for module 'ldexp'.
* modules/ldexp-tests: New file.
* tests/test-ldexp.c: New file.
Tests for module 'jn'.
* modules/jn-tests: New file.
* tests/test-jn.c: New file.
Tests for module 'j1'.
* modules/j1-tests: New file.
* tests/test-j1.c: New file.
Tests for module 'j0'.
* modules/j0-tests: New file.
* tests/test-j0.c: New file.
Tests for module 'hypot'.
* modules/hypot-tests: New file.
* tests/test-hypot.c: New file.
Tests for module 'fmod'.
* modules/fmod-tests: New file.
* tests/test-fmod.c: New file.
Tests for module 'fabs'.
* modules/fabs-tests: New file.
* tests/test-fabs.c: New file.
Tests for module 'exp'.
* modules/exp-tests: New file.
* tests/test-exp.c: New file.
Tests for module 'erfc'.
* modules/erfc-tests: New file.
* tests/test-erfc.c: New file.
Tests for module 'erf'.
* modules/erf-tests: New file.
* tests/test-erf.c: New file.
Tests for module 'cosh'.
* modules/cosh-tests: New file.
* tests/test-cosh.c: New file.
Tests for module 'cos'.
* modules/cos-tests: New file.
* tests/test-cos.c: New file.
Tests for module 'copysign'.
* modules/copysign-tests: New file.
* tests/test-copysign.c: New file.
Tests for module 'cbrt'.
* modules/cbrt-tests: New file.
* tests/test-cbrt.c: New file.
Tests for module 'atan2'.
* modules/atan2-tests: New file.
* tests/test-atan2.c: New file.
Tests for module 'atan'.
* modules/atan-tests: New file.
* tests/test-atan.c: New file.
Tests for module 'asin'.
* modules/asin-tests: New file.
* tests/test-asin.c: New file.
Tests for module 'acos'.
* modules/acos-tests: New file.
* tests/test-acos.c: New file.
2010-01-24 Bruno Haible <bruno@clisp.org>
Fix tests for common <math.h> functions.
* m4/mathfunc.m4 (gl_MATHFUNC): Take two additional parameters. Use a
code snippet that references the function pointer, rather than merely
calling the function. Substitute the FUNC_LIBM variable.
* m4/sqrt.m4 (gl_FUNC_SQRT): Update gl_MATHFUNC invocation.
* modules/acos (configure.ac): Likewise.
* modules/asin (configure.ac): Likewise.
* modules/atan (configure.ac): Likewise.
* modules/atan2 (configure.ac): Likewise.
* modules/cbrt (configure.ac): Likewise.
* modules/copysign (configure.ac): Likewise.
* modules/cos (configure.ac): Likewise.
* modules/cosh (configure.ac): Likewise.
* modules/erf (configure.ac): Likewise.
* modules/erfc (configure.ac): Likewise.
* modules/exp (configure.ac): Likewise.
* modules/fabs (configure.ac): Likewise.
* modules/fmod (configure.ac): Likewise.
* modules/hypot (configure.ac): Likewise.
* modules/j0 (configure.ac): Likewise.
* modules/j1 (configure.ac): Likewise.
* modules/jn (configure.ac): Likewise.
* modules/ldexp (configure.ac): Likewise.
* modules/lgamma (configure.ac): Likewise.
* modules/log (configure.ac): Likewise.
* modules/log10 (configure.ac): Likewise.
* modules/log1p (configure.ac): Likewise.
* modules/logb (configure.ac): Likewise.
* modules/modf (configure.ac): Likewise.
* modules/nextafter (configure.ac): Likewise.
* modules/pow (configure.ac): Likewise.
* modules/remainder (configure.ac): Likewise.
* modules/rint (configure.ac): Likewise.
* modules/sin (configure.ac): Likewise.
* modules/sinh (configure.ac): Likewise.
* modules/tan (configure.ac): Likewise.
* modules/tanh (configure.ac): Likewise.
* modules/y0 (configure.ac): Likewise.
* modules/y1 (configure.ac): Likewise.
* modules/yn (configure.ac): Likewise.
2010-01-24 Bruno Haible <bruno@clisp.org>
Tests: Defeat inlining of math functions by GCC >= 4.3.0.
* tests/test-acosl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-asinl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-atanl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-cosl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-expl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-logl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-sinl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-sqrtl.c (x): New variable.
(main): Store argument in x and fetch it from x.
* tests/test-tanl.c (x): New variable.
(main): Store argument in x and fetch it from x.
2010-01-24 Bruno Haible <bruno@clisp.org>
Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
* gnulib-tool (func_emit_tests_Makefile_am): Add EXEEXT and srcdir
assignments to the initial TESTS_ENVIRONMENT.
* doc/gnulib.texi (Unit test modules): Document it.
* modules/acl-tests (Makefile.am): Drop EXEEXT assignment from
TESTS_ENVIRONMENT.
* modules/btowc-tests (Makefile.am): Likewise.
* modules/c-stack-tests (Makefile.am): Likewise.
* modules/c-strcase-tests (Makefile.am): Likewise.
* modules/copy-file-tests (Makefile.am): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Likewise.
* modules/mbmemcasecoll-tests (Makefile.am): Likewise.
* modules/mbrtowc-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsinit-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbsnrtowcs-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsrtowcs-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/nl_langinfo-tests (Makefile.am): Likewise.
* modules/unicase/locale-language-tests (Makefile.am): Likewise.
* modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/uniwbrk/ulc-wordbreaks-tests (Makefile.am): Likewise.
* modules/vasnprintf-posix-tests (Makefile.am): Likewise.
* modules/wcrtomb-tests (Makefile.am): Likewise.
* modules/wcsnrtombs-tests (Makefile.am): Likewise.
* modules/wcsrtombs-tests (Makefile.am): Likewise.
* modules/quotearg-tests (Makefile.am): Drop EXEEXT and srcdir
assignments from TESTS_ENVIRONMENT.
* modules/argp-tests (Makefile.am): Drop TESTS_ENVIRONMENT
augmentation.
* modules/argp-version-etc-tests (Makefile.am): Likewise.
* modules/atexit-tests (Makefile.am): Likewise.
* modules/binary-io-tests (Makefile.am): Likewise.
* modules/closein-tests (Makefile.am): Likewise.
* modules/dprintf-posix-tests (Makefile.am): Likewise.
* modules/exclude-tests (Makefile.am): Likewise.
* modules/fflush-tests (Makefile.am): Likewise.
* modules/fpending-tests (Makefile.am): Likewise.
* modules/fprintf-posix-tests (Makefile.am): Likewise.
* modules/freadahead-tests (Makefile.am): Likewise.
* modules/freadptr-tests (Makefile.am): Likewise.
* modules/freadseek-tests (Makefile.am): Likewise.
* modules/fseek-tests (Makefile.am): Likewise.
* modules/fseeko-tests (Makefile.am): Likewise.
* modules/ftell-tests (Makefile.am): Likewise.
* modules/ftello-tests (Makefile.am): Likewise.
* modules/idpriv-drop-tests (Makefile.am): Likewise.
* modules/idpriv-droptemp-tests (Makefile.am): Likewise.
* modules/lseek-tests (Makefile.am): Likewise.
* modules/parse-duration-tests (Makefile.am): Likewise.
* modules/perror-tests (Makefile.am): Likewise.
* modules/pipe-filter-gi-tests (Makefile.am): Likewise.
* modules/pipe-filter-ii-tests (Makefile.am): Likewise.
* modules/pipe-tests (Makefile.am): Likewise.
* modules/pread-tests (Makefile.am): Likewise.
* modules/printf-posix-tests (Makefile.am): Likewise.
* modules/select-tests (Makefile.am): Likewise.
* modules/sigpipe-tests (Makefile.am): Likewise.
* modules/tsearch-tests (Makefile.am): Likewise.
* modules/unicase/ulc-casecmp-tests (Makefile.am): Likewise.
* modules/unicase/ulc-casecoll-tests (Makefile.am): Likewise.
* modules/uniname/uniname-tests (Makefile.am): Likewise.
* modules/uniwidth/width-tests (Makefile.am): Likewise.
* modules/vdprintf-posix-tests (Makefile.am): Likewise.
* modules/version-etc-tests (Makefile.am): Likewise.
* modules/vfprintf-posix-tests (Makefile.am): Likewise.
* modules/vprintf-posix-tests (Makefile.am): Likewise.
* modules/xalloc-die-tests (Makefile.am): Likewise.
* modules/xprintf-posix-tests (Makefile.am): Likewise.
* modules/xstrtoimax-tests (Makefile.am): Likewise.
* modules/xstrtol-tests (Makefile.am): Likewise.
* modules/xstrtoumax-tests (Makefile.am): Likewise.
* modules/yesno-tests (Makefile.am): Likewise.
Suggested by Jim Meyering.
2010-01-24 Bruno Haible <bruno@clisp.org>
More documentation.
* doc/gnulib.texi (Writing modules): New chapter.
(Miscellaneous Notes): Move sections "Comments" and "Header files" to
the new chapter.
2010-01-24 Jim Meyering <meyering@redhat.com>
maint.mk: do not prepend "./" after filtering
* top/maint.mk (_prepend_srcdir_prefix): New variable
(VC_LIST_EXCEPT): Use it to avoid prepending (post-filter)
"./" when $(srcdir) is ".".
define STREQ(a,b) consistently, removing useless parentheses
#define STREQ(a, b) (strcmp ((a), (b)) == 0) is over-parenthesized,
since the only risk is that "a" or "b" contains an unparenthesized
comma, but if either did that, STREQ would have 3 or more arguments.
Hence, #define STREQ(a, b) (strcmp (a, b) == 0) is better.
* lib/fts.c (STREQ): Remove unnecessary parentheses.
* lib/hash-triple.c (STREQ): Likewise.
* tests/test-argv-iter.c (STREQ): Use a and b, not s1 and s2.
* lib/getugroups.c (STREQ): Likewise.
2010-01-23 Jim Meyering <meyering@redhat.com>
maint.mk: fix syntax-check in a non-srcdir build directory
* top/maint.mk (_dot_escaped_srcdir): Remove erroneous backslash,
introduced in my 2010-01-21 commit, a6da6c45. Reported by Eric Blake.
2010-01-22 Jim Meyering <meyering@redhat.com>
userspec: add unit tests
* tests/test-userspec.c: New file.
* modules/userspec-tests: Likewise.
2010-01-21 Jim Meyering <meyering@redhat.com>
maint.mk: handle source file names containing "." robustly
* top/maint.mk (_dot_escaped_srcdir): Define.
(VC_LIST): Use it in LHS of sed substitution.
2010-01-21 Jiri Denemark <jdenemar@redhat.com>
maint.mk: fix VC_LIST_EXCEPT for srcdir != builddir
* top/maint.mk (VC_LIST_EXCEPT): Preprocess the output of
$(VC_LIST) to remove a prefix of '$(srcdir)/', so that it works
from a non-srcdir build.
2010-01-20 Eric Blake <ebb9@byu.net>
warn-on-use: use instead of link-warning
* modules/stdio (Depends-on, Makefile.am): Drop link-warning.
* modules/unistd (Depends-on, Makefile.am): Likewise.
* modules/arpa_inet (Depends-on): Replace link-warning with
warn-on-use.
(Makefile.am): Update rules accordingly.
* modules/ctype (Depends-on, Makefile.am): Likewise.
* modules/dirent (Depends-on, Makefile.am): Likewise.
* modules/fcntl-h (Depends-on, Makefile.am): Likewise.
* modules/inttypes (Depends-on, Makefile.am): Likewise.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/math (Depends-on, Makefile.am): Likewise.
* modules/search (Depends-on, Makefile.am): Likewise.
* modules/signal (Depends-on, Makefile.am): Likewise.
* modules/spawn (Depends-on, Makefile.am): Likewise.
* modules/stdlib (Depends-on, Makefile.am): Likewise.
* modules/string (Depends-on, Makefile.am): Likewise.
* modules/strings (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Depends-on, Makefile.am): Likewise.
* modules/sys_ioctl (Depends-on, Makefile.am): Likewise.
* modules/sys_select (Depends-on, Makefile.am): Likewise.
* modules/sys_socket (Depends-on, Makefile.am): Likewise.
* modules/sys_stat (Depends-on, Makefile.am): Likewise.
* modules/sys_times (Depends-on, Makefile.am): Likewise.
* modules/sys_utsname (Depends-on, Makefile.am): Likewise.
* modules/wchar (Depends-on, Makefile.am): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions
should be poisoned.
* m4/ctype.m4 (gl_CTYPE_H): Likewise.
* m4/dirent_h.m4 (gl_DIRENT_H): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of
GL_LINK_WARNING.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
2010-01-20 Bruno Haible <bruno@clisp.org>
Avoid duplicate -lm.
* m4/isnan.m4 (gl_ISNAN): Avoid duplicate -lm in $ISNAN_LIBM.
* m4/round.m4 (gl_FUNC_ROUND): Avoid duplicate -lm in $ROUND_LIBM.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Avoid duplicate -lm in $ROUNDF_LIBM.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Avoid duplicate -lm in $ROUNDL_LIBM.
* m4/acosl.m4 (gl_FUNC_ACOSL): Avoid duplicate -lm in $ACOSL_LIBM.
* m4/cosl.m4 (gl_FUNC_COSL): Avoid duplicate -lm in $COSL_LIBM.
* m4/logl.m4 (gl_FUNC_LOGL): Avoid duplicate -lm in $LOGL_LIBM.
* m4/sinl.m4 (gl_FUNC_SINL): Avoid duplicate -lm in $SINL_LIBM.
* m4/sqrtl.m4 (gl_FUNC_SQRTL): Avoid duplicate -lm in $SQRTL_LIBM.
* m4/tanl.m4 (gl_FUNC_TANL): Avoid duplicate -lm in $TANL_LIBM.
* m4/asinl.m4 (gl_FUNC_ASINL): Same change, for consistency.
* m4/atanl.m4 (gl_FUNC_ATANL): Likewise.
Reported by Paolo Bonzini.
2010-01-19 Bruno Haible <bruno@clisp.org>
langinfo, nl_langinfo: Relicense under LGPLv2+.
* modules/langinfo (License): Change to LGPLv2+.
* modules/nl_langinfo (License): Likewise.
Patch by David Lutterkort <lutter@redhat.com>.
2010-01-19 Bruno Haible <bruno@clisp.org>
Avoid compilation error with cc on OSF/1 5.1.
* lib/fcntl.in.h: Include <unistd.h> after the #include_next <fcntl.h>
statement, not before.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2010-01-18 Bruno Haible <bruno@clisp.org>
Avoid a link error due to the __printf__ symbol.
* lib/stdio.in.h (__attribute__): Define to empty also for gcc 2.5.x
and 2.6.x.
(__format__, __printf__): Remove definitions.
* lib/argp-fmtstream.h: Likewise.
* lib/argp.h: Likewise.
* lib/error.h: Likewise.
* lib/vasnprintf.h: Likewise.
* lib/xprintf.h: Likewise.
* lib/xvasprintf.h: Likewise.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2010-01-18 Bruno Haible <bruno@clisp.org>
Tests for module 'tanl'.
* modules/tanl-tests: New file.
* tests/test-tanl.c: New file.
Tests for module 'sqrtl'.
* modules/sqrtl-tests: New file.
* tests/test-sqrtl.c: New file.
Tests for module 'sinl'.
* modules/sinl-tests: New file.
* tests/test-sinl.c: New file.
Tests for module 'logl'.
* modules/logl-tests: New file.
* tests/test-logl.c: New file.
Tests for module 'expl'.
* modules/expl-tests: New file.
* tests/test-expl.c: New file.
Tests for module 'cosl'.
* modules/cosl-tests: New file.
* tests/test-cosl.c: New file.
Tests for module 'atanl'.
* modules/atanl-tests: New file.
* tests/test-atanl.c: New file.
Tests for module 'asinl'.
* modules/asinl-tests: New file.
* tests/test-asinl.c: New file.
Tests for module 'acosl'.
* modules/acosl-tests: New file.
* tests/test-acosl.c: New file.
New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
* lib/math.in.h (acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl,
tanl): Use the standard gnulib idiom.
* lib/cosl.c: Don't include trigl.c and sincosl.c.
* lib/sinl.c: Likewise.
* lib/tanl.c: Don't include trigl.c.
(kernel_tanl): Make static.
* lib/sincosl.c: Include trigl.h first.
* lib/trigl.c: Likewise.
* m4/acosl.m4: New file.
* m4/asinl.m4: New file.
* m4/atanl.m4: New file.
* m4/cosl.m4: New file.
* m4/expl.m4: New file.
* m4/logl.m4: New file.
* m4/sinl.m4: New file.
* m4/sqrtl.m4: New file.
* m4/tanl.m4: New file.
* m4/mathl.m4: Remove file.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_* and HAVE_*
variables for acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl.
Don't initialize GNULIB_MATHL.
* modules/acosl: New file.
* modules/asinl: New file.
* modules/atanl: New file.
* modules/cosl: New file.
* modules/expl: New file.
* modules/logl: New file.
* modules/sinl: New file.
* modules/sqrtl: New file.
* modules/tanl: New file.
* modules/math (Makefile.am): Substitute GNULIB_* and HAVE_* variables
for acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl. Don't
substitute GNULIB_MATHL.
* modules/mathl: Rewritten.
* doc/posix-functions/acosl.texi: Mention the 'acosl' module.
* doc/posix-functions/asinl.texi: Mention the 'asinl' module.
* doc/posix-functions/atanl.texi: Mention the 'atanl' module.
* doc/posix-functions/cosl.texi: Mention the 'cosl' module.
* doc/posix-functions/expl.texi: Mention the 'expl' module.
* doc/posix-functions/logl.texi: Mention the 'logl' module.
* doc/posix-functions/sinl.texi: Mention the 'sinl' module.
* doc/posix-functions/sqrtl.texi: Mention the 'sqrtl' module.
* doc/posix-functions/tanl.texi: Mention the 'tanl' module.
2010-01-18 Bruno Haible <bruno@clisp.org>
sqrt: Make gl_FUNC_SQRT requirable.
* m4/sqrt.m4: New file.
* modules/sqrt (Files): Add it.
(configure.ac): Invoke gl_FUNC_SQRT.
2010-01-18 Bruno Haible <bruno@clisp.org>
New modules for common <math.h> functions.
* m4/mathfunc.m4: New file.
* modules/acos: New file.
* modules/asin: New file.
* modules/atan: New file.
* modules/atan2: New file.
* modules/cbrt: New file.
* modules/copysign: New file.
* modules/cos: New file.
* modules/cosh: New file.
* modules/erf: New file.
* modules/erfc: New file.
* modules/exp: New file.
* modules/fabs: New file.
* modules/fmod: New file.
* modules/hypot: New file.
* modules/j0: New file.
* modules/j1: New file.
* modules/jn: New file.
* modules/ldexp: New file.
* modules/lgamma: New file.
* modules/log: New file.
* modules/log10: New file.
* modules/log1p: New file.
* modules/logb: New file.
* modules/modf: New file.
* modules/nextafter: New file.
* modules/pow: New file.
* modules/remainder: New file.
* modules/rint: New file.
* modules/sin: New file.
* modules/sinh: New file.
* modules/sqrt: New file.
* modules/tan: New file.
* modules/tanh: New file.
* modules/y0: New file.
* modules/y1: New file.
* modules/yn: New file.
* doc/posix-functions/acos.texi: Mention the 'acos' module.
* doc/posix-functions/asin.texi: Mention the 'asin' module.
* doc/posix-functions/atan.texi: Mention the 'atan' module.
* doc/posix-functions/atan2.texi: Mention the 'atan2' module.
* doc/posix-functions/cbrt.texi: Mention the 'cbrt' module.
* doc/posix-functions/copysign.texi: Mention the 'copysign' module.
* doc/posix-functions/cos.texi: Mention the 'cos' module.
* doc/posix-functions/cosh.texi: Mention the 'cosh' module.
* doc/posix-functions/erf.texi: Mention the 'erf' module.
* doc/posix-functions/erfc.texi: Mention the 'erfc' module.
* doc/posix-functions/exp.texi: Mention the 'exp' module.
* doc/posix-functions/fabs.texi: Mention the 'fabs' module.
* doc/posix-functions/fmod.texi: Mention the 'fmod' module.
* doc/posix-functions/hypot.texi: Mention the 'hypot' module.
* doc/posix-functions/j0.texi: Mention the 'j0' module.
* doc/posix-functions/j1.texi: Mention the 'j1' module.
* doc/posix-functions/jn.texi: Mention the 'jn' module.
* doc/posix-functions/ldexp.texi: Mention the 'ldexp' module.
* doc/posix-functions/lgamma.texi: Mention the 'lgamma' module.
* doc/posix-functions/log.texi: Mention the 'log' module.
* doc/posix-functions/log10.texi: Mention the 'log10' module.
* doc/posix-functions/log1p.texi: Mention the 'log1p' module.
* doc/posix-functions/logb.texi: Mention the 'logb' module.
* doc/posix-functions/modf.texi: Mention the 'modf' module.
* doc/posix-functions/nextafter.texi: Mention the 'nextafter' module.
* doc/posix-functions/pow.texi: Mention the 'pow' module.
* doc/posix-functions/remainder.texi: Mention the 'remainder' module.
* doc/posix-functions/rint.texi: Mention the 'rint' module.
* doc/posix-functions/sin.texi: Mention the 'sin' module.
* doc/posix-functions/sinh.texi: Mention the 'sinh' module.
* doc/posix-functions/sqrt.texi: Mention the 'sqrt' module.
* doc/posix-functions/tan.texi: Mention the 'tan' module.
* doc/posix-functions/tanh.texi: Mention the 'tanh' module.
* doc/posix-functions/y0.texi: Mention the 'y0' module.
* doc/posix-functions/y1.texi: Mention the 'y1' module.
* doc/posix-functions/yn.texi: Mention the 'yn' module.
2010-01-18 Jim Meyering <meyering@redhat.com>
ignore-value: relax license to LGPLv2+
* modules/ignore-value (License): Relax to LGPLv2+.
getdate: don't leak when TZ contains two or more '"'s
* lib/getdate.y (get_date): Don't leak a copy of TZ for each
double quote in TZ after the first one.
readtokens: do not leak internal token_lengths buffer
* lib/readtokens.c (readtokens): Free the local, lengths,
when the supplied "token_lengths" parameter is NULL.
2010-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix a couple of missing LIBTHREAD link failures on AIX.
* modules/git-merge-changelog (git_merge_changelog_LDADD): Add
$(LIBTHREAD).
* modules/strsignal-tests (test_strsignal_LDADD): Likewise.
Link test-poll against INET_PTON_LIB.
* modules/poll-tests (test_poll_LDADD): Add $(INET_PTON_LIB),
for inet_pton on Solaris 10.
2010-01-17 Bruno Haible <bruno@clisp.org>
unistdio/*-sprintf: Fix typo in module description.
* modules/unistdio/u8-sprintf (Depends-on): Fix typo.
* modules/unistdio/u8-u8-sprintf (Depends-on): Likewise.
* modules/unistdio/u16-sprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-sprintf (Depends-on): Likewise.
* modules/unistdio/u32-sprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-sprintf (Depends-on): Likewise.
* modules/unistdio/ulc-sprintf (Depends-on): Likewise.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2010-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
gnulib-tool: fix filelist for AIX, HP-UX ksh.
* gnulib-tool (func_filter_filelist): Do not quote possibly-empty
variables in shell case patterns, for AIX and HP-UX ksh.
Split large sed scripts, for HP-UX sed.
* modules/stdio: Split sed scripts around 50 sed commands,
to avoid HP-UX limit of 99 commands, in the near future.
* modules/string: Likewise.
* modules/unistd: Likewise.
gnulib-tool: avoid writing in the current directory.
* gnulib-tool (func_emit_lib_Makefile_am)
(func_emit_tests_Makefile_am): Put temporary files in $tmp,
not in the current directory, so concurrent gnulib-tool
instances do not interfere.
2010-01-16 Jim Meyering <meyering@redhat.com>
doc: update users.txt
* users.txt: Add grep.
(diffutils, gzip): Update URLs.
2010-01-12 Bruno Haible <bruno@clisp.org>
posix_spawn: Avoid test failure on Cygwin.
* tests/test-posix_spawn3.c (DATA_FILENAME) [CYGWIN]: Use less risky
characters.
Reported by Simon Josefsson.
2010-01-12 Bruno Haible <bruno@clisp.org>
* tests/test-cond.c (main): When skipping the test, show the reason.
2010-01-12 Simon Josefsson <simon@josefsson.org>
* lib/striconv.c (str_cd_iconv): Avoid if before free.
2010-01-12 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (VC_LIST_EXCEPT): Filter list through
VC_LIST_ALWAYS_EXCLUDE_REGEX.
2010-01-12 Eric Blake <ebb9@byu.net>
build: guarantee AS_VAR_IF
* m4/warnings.m4 (gl_WARN_ADD): Use autoconf name.
(gl_AS_VAR_IF): Move...
* m4/gnulib-common.m4 (AS_VAR_IF): ...here.
Reported by Simon Josefsson.
2010-01-12 Simon Josefsson <simon@josefsson.org>
* lib/stdio.in.h: Fix typo.
2010-01-12 Simon Josefsson <simon@josefsson.org>
* m4/gc.m4: Check if linking to libgcrypt also needs linking to
libgpg-error.
2010-01-12 Simon Josefsson <simon@josefsson.org>
* tests/test-xalloc-die.sh: Use $EXEEXT.
2010-01-12 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
getlogin, getlogin_r: Avoid test failure.
* tests/test-getlogin.c: Include <stdio.h>.
(main): Skip the test when the function fails because stdin is not a
tty.
* tests/test-getlogin_r.c: Include <stdio.h>.
(main): Skip the test when the function fails because stdin is not a
tty.
2010-01-11 Eric Blake <ebb9@byu.net>
tests: avoid more large file warnings
* tests/test-fflush.c: Avoid warning about ftell use.
* tests/test-fseek.c: Avoid warning about fseek use.
2010-01-10 Bruno Haible <bruno@clisp.org>
nproc: Work better on Linux when /proc and /sys are not mounted.
* lib/nproc.c (num_processors): Use num_processors_via_affinity_mask ()
as lower bound when, on glibc/Linux systems,
sysconf (_SC_NPROCESSORS_CONF) returns 1.
Suggested by Pádraig Brady <P@draigbrady.com>.
Reported by Dmitry V. Levin <ldv@altlinux.org>.
nproc: Refactor.
* lib/nproc.c (num_processors_via_affinity_mask): New function,
extracted from num_processors.
(num_processors): Call it.
2010-01-11 Jim Meyering <meyering@redhat.com>
utimecmp: avoid new warning from upcoming gcc-4.5.0
* lib/utimecmp.c (BILLION): Define using #define rather than an
anonymous enum, to placate upcoming gcc-4.5.0's -Wenum-compare.
2010-01-11 Eric Blake <ebb9@byu.net>
math: add portability warnings for classification macros
* modules/math (Depends-on): Add warn-on-use.
(Makefile.am): Provide new substitutions.
* m4/math_h.m4 (gl_MATH_H): Require inline.
* lib/math.in.h (_GL_WARN_REAL_FLOATING_DECL)
(_GL_WARN_REAL_FLOATING_IMPL): New helper macros.
(isfinite, isinf, isnan, signbit) [GNULIB_POSIXCHECK]: Use them to
implement warnings.
unistd: warn on use of environ without module
* modules/unistd (Depends-on): Add warn-on-use.
(Makefile.am): Provide new substitutions.
* m4/unistd_h.m4 (gl_UNISTD_H): Check for inline and environ.
* lib/unistd.in.h (environ): Wrap with a warning helper function.
stdio: warn on suspicious uses
* modules/stdio (Depends-on): Add warn-on-use.
(Makefile.am): Provide new substitutions.
* m4/stdio_h.m4 (gl_STDIO_H): Check for inline, ftello, and
fseeko.
* lib/stdio.in.h (gets): Always warn on use.
(fseek, ftell): Adjust when warnings are issued, and honor
_GL_NO_LARGE_FILES as a way to silence the warning.
* tests/test-fpurge.c [!GNULIB_FSEEK]: Use new means to squelch
any warning about large file offsets.
* tests/test-freadable.c [!GNULIB_FSEEK]: Likewise.
* tests/test-freading.c [!GNULIB_FSEEK]: Likewise.
* tests/test-fseeko.c [!GNULIB_FSEEK]: Likewise.
* tests/test-ftell.c [!GNULIB_FSEEK]: Likewise.
* tests/test-ftello.c [!GNULIB_FSEEK]: Likewise.
* tests/test-fwritable.c [!GNULIB_FSEEK]: Likewise.
* tests/test-fwriting.c [!GNULIB_FSEEK]: Likewise.
* tests/test-getopt.c [!GNULIB_FTELL]: Likewise.
warn-on-use: new module
* modules/warn-on-use: New file.
* build-aux/warn-on-use.h: Likewise.
* m4/warn-on-use.m4: Likewise.
* MODULES.html.sh (Support for building): Mention it.
2010-01-10 Bruno Haible <bruno@clisp.org>
Tests for module 'unistr/u32-strdup'.
* modules/unistr/u32-strdup-tests: New file.
* tests/unistr/test-u32-strdup.c: New file.
Tests for module 'unistr/u16-strdup'.
* modules/unistr/u16-strdup-tests: New file.
* tests/unistr/test-u16-strdup.c: New file.
Tests for module 'unistr/u8-strdup'.
* modules/unistr/u8-strdup-tests: New file.
* tests/unistr/test-u8-strdup.c: New file.
* tests/unistr/test-strdup.h: New file.
Tests for module 'unistr/u32-strncmp'.
* modules/unistr/u32-strncmp-tests: New file.
* tests/unistr/test-u32-strncmp.c: New file.
Tests for module 'unistr/u16-strncmp'.
* modules/unistr/u16-strncmp-tests: New file.
* tests/unistr/test-u16-strncmp.c: New file.
Tests for module 'unistr/u8-strncmp'.
* modules/unistr/u8-strncmp-tests: New file.
* tests/unistr/test-u8-strncmp.c: New file.
* tests/unistr/test-strncmp.h: New file.
Tests for module 'unistr/u32-strcoll'.
* modules/unistr/u32-strcoll-tests: New file.
* tests/unistr/test-u32-strcoll.c: New file.
Tests for module 'unistr/u16-strcoll'.
* modules/unistr/u16-strcoll-tests: New file.
* tests/unistr/test-u16-strcoll.c: New file.
Tests for module 'unistr/u8-strcoll'.
* modules/unistr/u8-strcoll-tests: New file.
* tests/unistr/test-u8-strcoll.c: New file.
Tests for module 'unistr/u32-strcmp'.
* modules/unistr/u32-strcmp-tests: New file.
* tests/unistr/test-u32-strcmp.c: New file.
* tests/unistr/test-u32-strcmp.h: New file.
Tests for module 'unistr/u16-strcmp'.
* modules/unistr/u16-strcmp-tests: New file.
* tests/unistr/test-u16-strcmp.c: New file.
* tests/unistr/test-u16-strcmp.h: New file.
Tests for module 'unistr/u8-strcmp'.
* modules/unistr/u8-strcmp-tests: New file.
* tests/unistr/test-u8-strcmp.c: New file.
* tests/unistr/test-u8-strcmp.h: New file.
* tests/unistr/test-strcmp.h: New file.
Tests for module 'unistr/u32-strncat'.
* modules/unistr/u32-strncat-tests: New file.
* tests/unistr/test-u32-strncat.c: New file.
Tests for module 'unistr/u16-strncat'.
* modules/unistr/u16-strncat-tests: New file.
* tests/unistr/test-u16-strncat.c: New file.
Tests for module 'unistr/u8-strncat'.
* modules/unistr/u8-strncat-tests: New file.
* tests/unistr/test-u8-strncat.c: New file.
* tests/unistr/test-strncat.h: New file.
Tests for module 'unistr/u32-strcat'.
* modules/unistr/u32-strcat-tests: New file.
* tests/unistr/test-u32-strcat.c: New file.
Tests for module 'unistr/u16-strcat'.
* modules/unistr/u16-strcat-tests: New file.
* tests/unistr/test-u16-strcat.c: New file.
Tests for module 'unistr/u8-strcat'.
* modules/unistr/u8-strcat-tests: New file.
* tests/unistr/test-u8-strcat.c: New file.
* tests/unistr/test-strcat.h: New file.
Tests for module 'unistr/u32-stpncpy'.
* modules/unistr/u32-stpncpy-tests: New file.
* tests/unistr/test-u32-stpncpy.c: New file.
Tests for module 'unistr/u16-stpncpy'.
* modules/unistr/u16-stpncpy-tests: New file.
* tests/unistr/test-u16-stpncpy.c: New file.
Tests for module 'unistr/u8-stpncpy'.
* modules/unistr/u8-stpncpy-tests: New file.
* tests/unistr/test-u8-stpncpy.c: New file.
* tests/unistr/test-stpncpy.h: New file.
Tests for module 'unistr/u32-strncpy'.
* modules/unistr/u32-strncpy-tests: New file.
* tests/unistr/test-u32-strncpy.c: New file.
Tests for module 'unistr/u16-strncpy'.
* modules/unistr/u16-strncpy-tests: New file.
* tests/unistr/test-u16-strncpy.c: New file.
Tests for module 'unistr/u8-strncpy'.
* modules/unistr/u8-strncpy-tests: New file.
* tests/unistr/test-u8-strncpy.c: New file.
* tests/unistr/test-strncpy.h: New file.
Tests for module 'unistr/u32-stpcpy'.
* modules/unistr/u32-stpcpy-tests: New file.
* tests/unistr/test-u32-stpcpy.c: New file.
Tests for module 'unistr/u16-stpcpy'.
* modules/unistr/u16-stpcpy-tests: New file.
* tests/unistr/test-u16-stpcpy.c: New file.
Tests for module 'unistr/u8-stpcpy'.
* modules/unistr/u8-stpcpy-tests: New file.
* tests/unistr/test-u8-stpcpy.c: New file.
* tests/unistr/test-stpcpy.h: New file.
Tests for module 'unistr/u32-strcpy'.
* modules/unistr/u32-strcpy-tests: New file.
* tests/unistr/test-u32-strcpy.c: New file.
Tests for module 'unistr/u16-strcpy'.
* modules/unistr/u16-strcpy-tests: New file.
* tests/unistr/test-u16-strcpy.c: New file.
Tests for module 'unistr/u8-strcpy'.
* modules/unistr/u8-strcpy-tests: New file.
* tests/unistr/test-u8-strcpy.c: New file.
* tests/unistr/test-strcpy.h: New file.
Tests for module 'unistr/u32-strnlen'.
* modules/unistr/u32-strnlen-tests: New file.
* tests/unistr/test-u32-strnlen.c: New file.
Tests for module 'unistr/u16-strnlen'.
* modules/unistr/u16-strnlen-tests: New file.
* tests/unistr/test-u16-strnlen.c: New file.
Tests for module 'unistr/u8-strnlen'.
* modules/unistr/u8-strnlen-tests: New file.
* tests/unistr/test-u8-strnlen.c: New file.
* tests/unistr/test-strnlen.h: New file.
Tests for module 'unistr/u32-strlen'.
* modules/unistr/u32-strlen-tests: New file.
* tests/unistr/test-u32-strlen.c: New file.
Tests for module 'unistr/u16-strlen'.
* modules/unistr/u16-strlen-tests: New file.
* tests/unistr/test-u16-strlen.c: New file.
Tests for module 'unistr/u8-strlen'.
* modules/unistr/u8-strlen-tests: New file.
* tests/unistr/test-u8-strlen.c: New file.
Tests for module 'unistr/u32-prev'.
* modules/unistr/u32-prev-tests: New file.
* tests/unistr/test-u32-prev.c: New file.
Tests for module 'unistr/u16-prev'.
* modules/unistr/u16-prev-tests: New file.
* tests/unistr/test-u16-prev.c: New file.
Tests for module 'unistr/u8-prev'.
* modules/unistr/u8-prev-tests: New file.
* tests/unistr/test-u8-prev.c: New file.
Tests for module 'unistr/u32-next'.
* modules/unistr/u32-next-tests: New file.
* tests/unistr/test-u32-next.c: New file.
Tests for module 'unistr/u16-next'.
* modules/unistr/u16-next-tests: New file.
* tests/unistr/test-u16-next.c: New file.
Tests for module 'unistr/u8-next'.
* modules/unistr/u8-next-tests: New file.
* tests/unistr/test-u8-next.c: New file.
Tests for module 'unistr/u32-strmbtouc'.
* modules/unistr/u32-strmbtouc-tests: New file.
* tests/unistr/test-u32-strmbtouc.c: New file.
Tests for module 'unistr/u16-strmbtouc'.
* modules/unistr/u16-strmbtouc-tests: New file.
* tests/unistr/test-u16-strmbtouc.c: New file.
Tests for module 'unistr/u8-strmbtouc'.
* modules/unistr/u8-strmbtouc-tests: New file.
* tests/unistr/test-u8-strmbtouc.c: New file.
Tests for module 'unistr/u32-strmblen'.
* modules/unistr/u32-strmblen-tests: New file.
* tests/unistr/test-u32-strmblen.c: New file.
Tests for module 'unistr/u16-strmblen'.
* modules/unistr/u16-strmblen-tests: New file.
* tests/unistr/test-u16-strmblen.c: New file.
Tests for module 'unistr/u8-strmblen'.
* modules/unistr/u8-strmblen-tests: New file.
* tests/unistr/test-u8-strmblen.c: New file.
Tests for module 'unistr/u32-cpy-alloc'.
* modules/unistr/u32-cpy-alloc-tests: New file.
* tests/unistr/test-u32-cpy-alloc.c: New file.
Tests for module 'unistr/u16-cpy-alloc'.
* modules/unistr/u16-cpy-alloc-tests: New file.
* tests/unistr/test-u16-cpy-alloc.c: New file.
Tests for module 'unistr/u8-cpy-alloc'.
* modules/unistr/u8-cpy-alloc-tests: New file.
* tests/unistr/test-u8-cpy-alloc.c: New file.
* tests/unistr/test-cpy-alloc.h: New file.
Tests for module 'unistr/u32-mbsnlen'.
* modules/unistr/u32-mbsnlen-tests: New file.
* tests/unistr/test-u32-mbsnlen.c: New file.
Tests for module 'unistr/u16-mbsnlen'.
* modules/unistr/u16-mbsnlen-tests: New file.
* tests/unistr/test-u16-mbsnlen.c: New file.
Tests for module 'unistr/u8-mbsnlen'.
* modules/unistr/u8-mbsnlen-tests: New file.
* tests/unistr/test-u8-mbsnlen.c: New file.
Tests for module 'unistr/u32-chr'.
* modules/unistr/u32-chr-tests: New file.
* tests/unistr/test-u32-chr.c: New file.
Tests for module 'unistr/u16-chr'.
* modules/unistr/u16-chr-tests: New file.
* tests/unistr/test-u16-chr.c: New file.
Tests for module 'unistr/u8-chr'.
* modules/unistr/u8-chr-tests: New file.
* tests/unistr/test-u8-chr.c: New file.
* tests/unistr/test-chr.h: New file, based on tests/test-memchr.c.
Tests for module 'unistr/u32-cmp2'.
* modules/unistr/u32-cmp2-tests: New file.
* tests/unistr/test-u32-cmp2.c: New file.
Tests for module 'unistr/u16-cmp2'.
* modules/unistr/u16-cmp2-tests: New file.
* tests/unistr/test-u16-cmp2.c: New file.
Tests for module 'unistr/u8-cmp2'.
* modules/unistr/u8-cmp2-tests: New file.
* tests/unistr/test-u8-cmp2.c: New file.
* tests/unistr/test-cmp2.h: New file, based on tests/unistr/test-cmp.h.
Tests for module 'unistr/u32-cmp'.
* modules/unistr/u32-cmp-tests: New file.
* tests/unistr/test-u32-cmp.c: New file.
Tests for module 'unistr/u16-cmp'.
* modules/unistr/u16-cmp-tests: New file.
* tests/unistr/test-u16-cmp.c: New file.
Tests for module 'unistr/u8-cmp'.
* modules/unistr/u8-cmp-tests: New file.
* tests/unistr/test-u8-cmp.c: New file.
* tests/unistr/test-cmp.h: New file, based on tests/test-memcmp.c.
Tests for module 'unistr/u32-set'.
* modules/unistr/u32-set-tests: New file.
* tests/unistr/test-u32-set.c: New file.
Tests for module 'unistr/u16-set'.
* modules/unistr/u16-set-tests: New file.
* tests/unistr/test-u16-set.c: New file.
Tests for module 'unistr/u8-set'.
* modules/unistr/u8-set-tests: New file.
* tests/unistr/test-u8-set.c: New file.
* tests/unistr/test-set.h: New file.
Tests for module 'unistr/u32-move'.
* modules/unistr/u32-move-tests: New file.
* tests/unistr/test-u32-move.c: New file.
Tests for module 'unistr/u16-move'.
* modules/unistr/u16-move-tests: New file.
* tests/unistr/test-u16-move.c: New file.
Tests for module 'unistr/u8-move'.
* modules/unistr/u8-move-tests: New file.
* tests/unistr/test-u8-move.c: New file.
* tests/unistr/test-move.h: New file.
Tests for module 'unistr/u32-cpy'.
* modules/unistr/u32-cpy-tests: New file.
* tests/unistr/test-u32-cpy.c: New file.
Tests for module 'unistr/u16-cpy'.
* modules/unistr/u16-cpy-tests: New file.
* tests/unistr/test-u16-cpy.c: New file.
Tests for module 'unistr/u8-cpy'.
* modules/unistr/u8-cpy-tests: New file.
* tests/unistr/test-u8-cpy.c: New file.
* tests/unistr/test-cpy.h: New file.
2010-01-09 Bruno Haible <bruno@clisp.org>
Tests for module 'unistr/u32-uctomb'.
* modules/unistr/u32-uctomb-tests: New file.
* tests/unistr/test-u32-uctomb.c: New file.
Tests for module 'unistr/u16-uctomb'.
* modules/unistr/u16-uctomb-tests: New file.
* tests/unistr/test-u16-uctomb.c: New file.
Tests for module 'unistr/u8-uctomb'.
* modules/unistr/u8-uctomb-tests: New file.
* tests/unistr/test-u8-uctomb.c: New file.
Tests for module 'unistr/u32-mbtoucr'.
* modules/unistr/u32-mbtoucr-tests: New file.
* tests/unistr/test-u32-mbtoucr.c: New file.
Tests for module 'unistr/u16-mbtoucr'.
* modules/unistr/u16-mbtoucr-tests: New file.
* tests/unistr/test-u16-mbtoucr.c: New file.
Tests for module 'unistr/u8-mbtoucr'.
* modules/unistr/u8-mbtoucr-tests: New file.
* tests/unistr/test-u8-mbtoucr.c: New file.
Tests for module 'unistr/u32-mbtouc'.
* modules/unistr/u32-mbtouc-tests: New file.
* tests/unistr/test-u32-mbtouc.c: New file.
Tests for module 'unistr/u16-mbtouc'.
* modules/unistr/u16-mbtouc-tests: New file.
* tests/unistr/test-u16-mbtouc.c: New file.
Tests for module 'unistr/u8-mbtouc'.
* modules/unistr/u8-mbtouc-tests: New file.
* tests/unistr/test-u8-mbtouc.c: New file.
Tests for module 'unistr/u32-mbtouc-unsafe'.
* modules/unistr/u32-mbtouc-unsafe-tests: New file.
* tests/unistr/test-u32-mbtouc-unsafe.c: New file.
* tests/unistr/test-u32-mbtouc.h: New file.
Tests for module 'unistr/u16-mbtouc-unsafe'.
* modules/unistr/u16-mbtouc-unsafe-tests: New file.
* tests/unistr/test-u16-mbtouc-unsafe.c: New file.
* tests/unistr/test-u16-mbtouc.h: New file.
Tests for module 'unistr/u8-mbtouc-unsafe'.
* modules/unistr/u8-mbtouc-unsafe-tests: New file.
* tests/unistr/test-u8-mbtouc-unsafe.c: New file.
* tests/unistr/test-u8-mbtouc.h: New file.
Tests for module 'unistr/u32-mblen'.
* modules/unistr/u32-mblen-tests: New file.
* tests/unistr/test-u32-mblen.c: New file.
Tests for module 'unistr/u16-mblen'.
* modules/unistr/u16-mblen-tests: New file.
* tests/unistr/test-u16-mblen.c: New file.
Tests for module 'unistr/u8-mblen'.
* modules/unistr/u8-mblen-tests: New file.
* tests/unistr/test-u8-mblen.c: New file.
Tests for module 'unistr/u32-to-u16'.
* modules/unistr/u32-to-u16-tests: New file.
* tests/unistr/test-u32-to-u16.c: New file.
Tests for module 'unistr/u32-to-u8'.
* modules/unistr/u32-to-u8-tests: New file.
* tests/unistr/test-u32-to-u8.c: New file.
Tests for module 'unistr/u16-to-u32'.
* modules/unistr/u16-to-u32-tests: New file.
* tests/unistr/test-u16-to-u32.c: New file.
Tests for module 'unistr/u16-to-u8'.
* modules/unistr/u16-to-u8-tests: New file.
* tests/unistr/test-u16-to-u8.c: New file.
Tests for module 'unistr/u8-to-u32'.
* modules/unistr/u8-to-u32-tests: New file.
* tests/unistr/test-u8-to-u32.c: New file.
Tests for module 'unistr/u8-to-u16'.
* modules/unistr/u8-to-u16-tests: New file.
* tests/unistr/test-u8-to-u16.c: New file.
Tests for module 'unistr/u32-check'.
* modules/unistr/u32-check-tests: New file.
* tests/unistr/test-u32-check.c: New file.
Tests for module 'unistr/u16-check'.
* modules/unistr/u16-check-tests: New file.
* tests/unistr/test-u16-check.c: New file.
Tests for module 'unistr/u8-check'.
* modules/unistr/u8-check-tests: New file.
* tests/unistr/test-u8-check.c: New file.
* tests/unictype/test-categ_byname.c: Include <stdbool.h>.
(category_equals): New function.
(main): Add more tests.
* modules/unictype/category-byname-tests (Depends-on): Add stdbool.
* tests/unictype/test-bidi_byname.c (main): Add more tests.
2010-01-10 Bruno Haible <bruno@clisp.org>
unistr/u*-strcoll: Try harder to distinguish different strings.
* lib/unistr/u-strcoll.h (FUNC): When sl1 and sl2 are the same,
compare s1 and s2 to see if they are different.
2010-01-10 Bruno Haible <bruno@clisp.org>
unistr/u*-stpncpy: Fix the return value.
* lib/unistr.h (u8_stpncpy, u16_stpncpy, u32_stpncpy): Make the
description of the return value consistent with stpncpy in glibc.
* lib/unistr/u-stpncpy.h (FUNC): Return the pointer past the last
written non-NUL unit.
2010-01-10 Bruno Haible <bruno@clisp.org>
unistr/u*-next: Add missing dependencies.
* modules/unistr/u8-next (Depends-on): Add unistr/u8-strmbtouc.
* modules/unistr/u16-next (Depends-on): Add unistr/u16-strmbtouc.
* modules/unistr/u32-next (Depends-on): Add unistr/u32-strmbtouc.
2010-01-10 Bruno Haible <bruno@clisp.org>
unistr/u8-mbsnlen: Fix return value for incomplete character.
* lib/unistr/u8-mbsnlen.c (u8_mbsnlen): Use u8_mbtoucr instead of
u8_mblen.
* modules/unistr/u8-mbsnlen (Depends-on): Add unistr/u8-mbtoucr.
Remove unistr/u8-mblen.
* lib/unistr/u16-mbsnlen.c (u16_mbsnlen): Use u16_mbtoucr instead of
u16_mblen.
* modules/unistr/u16-mbsnlen (Depends-on): Add unistr/u16-mbtoucr.
Remove unistr/u16-mblen.
2010-01-10 Bruno Haible <bruno@clisp.org>
wchar: Fix compilation error when <wchar.h> is used from coreutils.
* lib/wchar.in.h: Treat __need_wint_t like __need_mbstate_t.
Reported by Brian Gough <bjg@gnu.org> and
Chris Clayton <chris2553@googlemail.com> via
Mike Frysinger <vapier@gentoo.org> and Jim Meyering <jim@meyering.net>.
2010-01-09 Bruno Haible <bruno@clisp.org>
unistr/u16-to-u32: Reject invalid input.
* lib/unistr/u16-to-u32.c (u16_to_u32): Call u16_mbtoucr instead of
u16_mbtouc.
* modules/unistr/u16-to-u32 (Depends-on): Add unistr/u16-mbtoucr.
Remove unistr/u16-mbtouc.
unistr/u16-to-u8: Reject invalid input.
* lib/unistr/u16-to-u8.c (u16_to_u8): Call u16_mbtoucr instead of
u16_mbtouc.
* modules/unistr/u16-to-u8 (Depends-on): Add unistr/u16-mbtoucr.
Remove unistr/u16-mbtouc.
unistr/u8-to-u32: Reject invalid input.
* lib/unistr/u8-to-u32.c (u8_to_u32): Call u8_mbtoucr instead of
u8_mbtouc.
* modules/unistr/u8-to-u32 (Depends-on): Add unistr/u8-mbtoucr.
Remove unistr/u8-mbtouc.
unistr/u8-to-u16: Reject invalid input.
* lib/unistr/u8-to-u16.c (u8_to_u16): Call u8_mbtoucr instead of
u8_mbtouc.
* modules/unistr/u8-to-u16 (Depends-on): Add unistr/u8-mbtoucr.
Remove unistr/u8-mbtouc.
2010-01-09 Bruno Haible <bruno@clisp.org>
Tests for module 'getlogin'.
* modules/getlogin-tests: New file.
* tests/test-getlogin.c: New file.
New module 'getlogin'.
* lib/unistd.in.h (getlogin): New declaration.
* lib/getlogin.c: New file.
* m4/getlogin.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETLOGIN,
HAVE_GETLOGIN.
* modules/unistd (Makefile.am): Substitute GNULIB_GETLOGIN,
HAVE_GETLOGIN.
* modules/getlogin: New file.
* doc/posix-functions/getlogin.texi: Mention the new module.
Reported by John W. Eaton <jwe@gnu.org>.
2010-01-09 Bruno Haible <bruno@clisp.org>
getlogin_r: Support for native Windows.
* lib/getlogin_r.c: Include <windows.h>
(getlogin_r): Implement for native Windows.
* tests/test-getlogin_r.c (main): Also test with a huge buffer.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>
via John W. Eaton <jwe@gnu.org>.
2010-01-09 Bruno Haible <bruno@clisp.org>
getlogin_r: Small fixes.
* lib/getlogin_r.c (getlogin_r): Don't set errno if the function
succeeds.
* m4/getlogin_r.m4 (gl_GETLOGIN_R): Require gl_USE_SYSTEM_EXTENSIONS
before testing whether getlogin_r is declared. No need to set
HAVE_DECL_GETLOGIN_R to 1.
(gl_PREREQ_GETLOGIN_R): Don't check for the getlogin_r declaration.
2010-01-09 Bruno Haible <bruno@clisp.org>
* lib/unistd.in.h (getlogin_r): Add comment.
2010-01-09 Bruno Haible <bruno@clisp.org>
Tests for module 'getlogin_r'.
* modules/getlogin_r-tests: New file.
* tests/test-getlogin_r.c: New file.
2010-01-09 Jim Meyering <meyering@redhat.com>
maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule
* top/maint.mk (sc_proper_name_utf8_requires_ICONV): Adapt to work
also when $(LIBICONV) is part of LDADD, rather than ${prog}_LDADD.
2010-01-08 Simon Josefsson <simon@josefsson.org>
* lib/dup2.c (rpl_dup2): Improve comment.
2010-01-08 Eric Blake <ebb9@byu.net>
maint.mk: allow packages to add makefile @@ exceptions
* top/maint.mk (_makefile_at_at_check_exceptions): New hook.
(sc_makefile_check): Rename...
(sc_makefile_at_at_check): ...to this, and use hook.
dup2: work around mingw bug
* lib/dup2.c (rpl_dup2): Sanitize return value on mingw.
Reported by Simon Josefsson.
2010-01-07 John W. Eaton <jwe@octave.org> (tiny change)
glob: Fix C++ compilation.
* lib/glob.in.h [__cplusplus]: Define __BEGIN_DECLS and __END_DECLS for
C++.
2010-01-07 Bruno Haible <bruno@clisp.org>
Fix indentation of wctype.in.h, broken since 2007-01-06.
* lib/wctype.in.h: Fix indentation of preprocessor directives.
2010-01-07 Bruno Haible <bruno@clisp.org>
mbslen: Avoid collision with system function.
* lib/string.in.h [MirBSD]: Include <wchar.h>.
(mbslen): Undefine first. Alias mbslen to rpl_mbslen.
* m4/mbslen.m4: New file.
* modules/mbslen (Files): Add it.
(configure.ac): Invoke gl_MBSLEN.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_MBSLEN.
* modules/string (Makefile.am): Substitute HAVE_MBSLEN.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu>
via Ian Beckwith <ianb@erislabs.net>.
2010-01-07 Bruno Haible <bruno@clisp.org>
dirent: Document the last fix.
* doc/posix-headers/dirent.texi: Document the bug of missing 'ino_t'.
2010-01-07 Bruno Haible <bruno@clisp.org>
stdio: Ensure <stdio.h> defines off_t, ssize_t, va_list.
* lib/stdio.in.h: Include <sys/types.h> unconditionally.
* tests/test-stdio.c: Verify that fpos_t, off_t, size_t, ssize_t,
va_list are defined.
* doc/posix-headers/stdio.texi: Document the bug of missing types.
Reported by Eric Blake.
2010-01-07 Bruno Haible <bruno@clisp.org>
xlist, xoset: Fix missing dependency bug, introduced on 2009-12-13.
* modules/xlist (Depends-on): Add 'list',
* modules/xoset (Depends-on): Add 'oset'.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2010-01-07 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/strcasecmp.texi: Clarify the platforms.
* doc/posix-functions/strncasecmp.texi: Likewise.
2010-01-07 Bruno Haible <bruno@clisp.org>
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Simplify logic.
2010-01-07 John W. Eaton <jwe@octave.org>
wctype: allow C++ use
* lib/wctype.in.h: Add extern "C" block for C++.
2010-01-06 Eric Blake <ebb9@byu.net>
maint.mk: detect incorrect GFDL usage
* top/maint.mk (_GFDL_regexp, sc_GFDL_version): New rule.
2010-01-06 Jim Meyering <meyering@redhat.com>
and Eric Blake <ebb9@byu.net>
maint.mk: ignore multi-line copyright in NEWS
* top/maint.mk (NEWS_hash): Add immunity to multi-line copyright.
2010-01-06 Eric Blake <ebb9@byu.net>
select: add missing dependency
* modules/select-tests (Depends-on): Move sockets dependency...
* modules/select (Depends-on): ...here.
Reported by Ian Beckwith.
doc: regenerate INSTALL
* doc/INSTALL: Reflect recent autoconf update.
* doc/INSTALL.ISO: Likewise.
* doc/INSTALL.UTF-8: Likewise.
pread: fix compilation on glibc
* m4/pread.m4 (gl_FUNC_PREAD): Request all interfaces.
Reported by Ralf Wildenhues.
dirent: fix test failure
* lib/dirent.in.h (includes): Guarantee ino_t.
Reported by Ralf Wildenhues.
2010-01-06 Petr Salinger <Petr.Salinger@seznam.cz> (tiny change)
linkat, renameat: avoid bad free
* lib/at-func2.c (at_func2): Fix typo.
Reported via Ian Beckwith, from http://bugs.debian.org/561117.
2010-01-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
cleanup after gl_FUNC_READLINK, for gl_FUNC_SYMLINK test
* m4/readlink.m4 (gl_FUNC_READLINK): Remove conftest.lnk2,
to avoid failure of symlink test later.
2010-01-06 Eric Blake <ebb9@byu.net>
stdio, unistd: guarantee ssize_t
* lib/unistd.in.h (includes): Ensure that types required by POSIX
2008 are exposed when needed.
* lib/stdio.in.h (includes): Likewise.
Reported by Ralf Wildenhues.
2010-01-06 Paolo Bonzini <bonzini@gnu.org>
nl_langinfo: do not call AC_CHECK_FUNC_ONCE inside if.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Do not call
AC_CHECK_FUNC_ONCE inside if, do not adjust ac_cv_func_nl_langinfo.
2010-01-06 Jim Meyering <meyering@redhat.com>
readtokens: this module *does* require xalloc.h
It uses only functions that were omitted by the old syntax-check rule.
* lib/readtokens.c: Include "xalloc.h" once again.
* modules/readtokens (Depends-on): Add xalloc.
This reverts part of 0e0f8f12ec241c0f1c1f21f960bb5cf908a0fa3c.
2010-01-05 Eric Blake <ebb9@byu.net>
maint: support 'make announcement' from a VPATH build
* top/maint.mk (announcement): Look for correct NEWS file.
2010-01-05 Aurelien Jarno <aurelien@aurel32.net> (tiny change)
utimens (fdutimens): ignore a negative FD, per contract
* lib/utimens.c (fdutimens) [HAVE_FUTIMENS]: Call futimens only
when we have a valid file descriptor. Otherwise, using a brand
new glibc (with just-patched futimens that now fails with EBADF)
would cause this function to fail with ENOSYS.
Reported by Guillaume Ayoub in http://bugs.debian.org/563726.
See also http://bugzilla.redhat.com/552320.
2010-01-05 Eric Blake <ebb9@byu.net>
strcase: document what it provides
* doc/posix-functions/strcasecmp.texi (strcasecmp): Mention the
gnulib module.
* doc/posix-functions/strncasecmp.texi (strncasecmp): Likewise.
Reported by Dilyan Palauzov <Dilyan.Palauzov@aegee.org>.
2010-01-05 Jim Meyering <meyering@redhat.com>
maint: remove useless inclusions of "xalloc.h"
* lib/getloadavg.c: Remove useless inclusion of "xalloc.h".
* lib/readtokens.c: Likewise.
* lib/same.c: Likewise.
* modules/getloadavg (Depends-on): Remove xalloc.
* modules/readtokens: Likewise.
* modules/same: Likewise.
maint.mk: include 4 more function names in alloca.h-checking regexp
* top/maint.mk (sc_prohibit_xalloc_without_use): Use more complete
regexp. Before, we would give a false-positive (saying alloca.h
is included unnecessarily) when the only uses involved omitted symbols.
xalloc.h: use consistent formatting
* lib/xalloc.h: Move declarations to start in the first column.
2010-01-05 Eric Blake <ebb9@byu.net>
mkdir: avoid xalloc
* lib/mkdir.c (includes): Drop unused header.
Reported by John W. Eaton.
2010-01-04 Jim Meyering <meyering@redhat.com>
nl_langinfo: avoid configure-time syntax error
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): When we've already tested
for nl_langinfo.h, AC_CHECK_FUNCS_ONCE([nl_langinfo]) expands to
the empty string. Don't let that provoke a shell syntax error.
regcomp, regexec, fnmatch: avoid array bounds read error
* lib/regcomp.c (build_equiv_class): From glibc:
Use only the low 24 bits of a findidx return value as an index
into the weights array. Patch by Ulrich Drepper:
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=b7d1c5fa30
* lib/regexec.c (check_node_accept_bytes): Likewise.
* lib/fnmatch_loop.c (FCT): Likewise.
regcomp: skip collseq lookup when there are no rules
* lib/regcomp.c (lookup_collation_sequence_value): From glibc:
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a532a41df58
regcomp: recognize ill-formed { } expressions
* lib/regcomp.c (parse_dup_op): From glibc:
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a87cd2894cb
regcomp: fix typo in comment
* lib/regcomp.c (duplicate_node_closure): Sync from glibc.
s/satisfy/satisfies/.
regcomp: sync from glibc: remove dead store
* lib/regcomp.c (duplicate_node_closure): Remove useless
search_duplicated_node call and dead store.
regcomp: sync from glibc; always use nl_langinfo
* lib/regcomp.c (init_dfa) [!LIBC]: Always use nl_langinfo (CODESET),
now that gnulib provides it. Recognize UTF8 as well as UTF-8.
* modules/regex (Depends-on): Add nl_langinfo.
2010-01-04 Eric Blake <ebb9@byu.net>
fdopendir: fix configure test
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for existing file.
2010-01-01 Bruno Haible <bruno@clisp.org>
wchar: Remove unused configure check.
* m4/wchar.m4 (gl_WCHAR_H): Don't test whether <wchar.h> is standalone.
2010-01-01 Eric Blake <ebb9@byu.net>
headers: make check of system header explicit
* m4/netdb_h.m4 (gl_HEADER_NETDB): Don't exploit knowledge of
gl_CHECK_NEXT_HEADER internals, but call AC_CHECK_HEADERS_ONCE
ourselves.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise, for gt_INTTYPES_PRI
internals.
* m4/wchar.m4 (gl_WCHAR_H): Skip followup test if header is
missing.
Suggested by Bruno Haible.
2010-01-01 Jim Meyering <meyering@redhat.com>
ChangeLog: tweak to eliminate unnecessary copyright line
* ChangeLog: Remove a copyright line that was mistakenly updated
by today's update-copyright run. Reported by Eric Blake.
test-update-copyright: don't let envvar setting cause test failure
* tests/test-update-copyright.sh: Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH.
2010-01-01 Bruno Haible <bruno@clisp.org>
localename: Avoid gcc warning.
* lib/localename.c (gl_locale_name_thread_unsafe): Don't define this
function if it is not used.
2010-01-01 Jim Meyering <meyering@redhat.com>
update nearly all FSF copyright year lists to include 2010
Use the same procedure as for 2009, outlined in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
version-etc: set COPYRIGHT_YEAR to 2010
* lib/version-etc.c (COPYRIGHT_YEAR): Manually update the enum.
2009-12-31 Eric Blake <ebb9@byu.net>
doc: correct availability of cygwin 1.5.x getopt
* doc/posix-functions/optarg.texi (optarg): Cygwin supplies getopt
variables.
* doc/posix-functions/opterr.texi (opterr): Likewise.
* doc/posix-functions/optind.texi (optind): Likewise.
* doc/posix-functions/optopt.texi (optopt): Likewise.
* doc/posix-functions/tzname.texi (tzname): Likewise.
openat: update maintainer
* modules/openat (Maintainer): Add myself.
utimens: avoid shadowing warning
* lib/utimens.c (fdutimens, lutimens): Consolidate separate stat
buffers into one, to avoid shadowing, as well as avoiding a
redundant stat.
Reported by Jim Meyering.
test-dup2: avoid compiler warning
* tests/test-dup2.c (is_inheritable): Only define if used.
2010-01-01 Bruno Haible <bruno@clisp.org>
vasnprintf: Avoid passing an 'rpl_mbstate_t *' to the system's wcrtomb.
* lib/vasnprintf.c (VASNPRINTF): If GNULIB_defined_mbstate_t is
defined, use wctomb instead of wcrtomb.
2010-01-01 Bruno Haible <bruno@clisp.org>
iconv: Reject native Solaris iconv.
* m4/iconv.m4 (AM_ICONV_LINK): Recognize native Solaris iconv() bug.
* doc/posix-functions/iconv.texi: Document native Solaris iconv() bug.
2009-12-31 Bruno Haible <bruno@clisp.org>
* tests/test-signal.c (main): Remove test of 'SIG'.
2009-12-31 Bruno Haible <bruno@clisp.org>
spawn: Fix incomplete fix.
* lib/spawn.in.h (posix_spawnattr_getflags, posix_spawnattr_setflags,
posix_spawnattr_getpgroup, posix_spawnattr_setpgroup): Correct the link
warnings for GNULIB_POSIXCHECK again.
Reported by Eric Blake.
2009-12-31 Bruno Haible <bruno@clisp.org>
Avoid namespace pollution on glibc systems.
* lib/spawn.in.h: Don't include <sched.h>, <signal.h> on glibc systems.
* lib/sys_times.in.h: Don't include <time.h> on glibc systems.
* lib/wchar.in.h: Don't include <stddef.h>, <stdio.h>, <time.h> on
glibc systems.
2009-12-31 Bruno Haible <bruno@clisp.org>
* m4/wchar.m4 (gl_WCHAR_H): Remove gl_STDDEF_H invocation.
(gl_REPLACE_WCHAR_H): Turn into a no-op.
* m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Likewise.
* m4/dirent_h.m4 (gl_REPLACE_DIRENT_H): Likewise.
* m4/locale_h.m4 (gl_REPLACE_LOCALE_H): Likewise.
* m4/spawn_h.m4 (gl_REPLACE_SPAWN_H): Likewise.
* m4/sys_ioctl_h.m4 (gl_REPLACE_SYS_IOCTL_H): Likewise.
2009-12-31 Bruno Haible <bruno@clisp.org>
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Invoke
gl_CHECK_NEXT_HEADERS before testing ac_cv_header_sys_select_h, not
afterwards.
2009-12-31 Bruno Haible <bruno@clisp.org>
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H_DEFAULTS): Don't set
SYS_UTSNAME_H.
2009-12-31 Bruno Haible <bruno@clisp.org>
spawn: Fix misapplied patch.
* lib/spawn.in.h (posix_spawnattr_getflags, posix_spawnattr_setflags,
posix_spawnattr_getpgroup, posix_spawnattr_setpgroup): Correct the link
warnings for GNULIB_POSIXCHECK.
2009-12-31 Bruno Haible <bruno@clisp.org>
times: Update after sys_times changed.
* m4/times.m4: New file, extracted from modules/times. Set HAVE_TIMES.
* modules/times (Files): Add it.
(configure.ac): Invoke gl_FUNC_TIMES.
2009-12-31 Bruno Haible <bruno@clisp.org>
Use AC_C_INLINE where necessary.
* m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Require AC_C_INLINE.
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Likewise.
* m4/mbchar.m4 (gl_MBCHAR): Likewise.
* m4/mbfile.m4 (gl_MBFILE): Likewise.
* m4/mbiter.m4 (gl_MBITER): Likewise.
* m4/regex.m4 (gl_PREREQ_REGEX): Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/wait-process.m4 (gl_WAIT_PROCESS): Likewise.
* modules/u64 (configure.ac): Likewise.
2009-12-31 Bruno Haible <bruno@clisp.org>
Use AC_C_INLINE instead of module 'inline' where possible.
* modules/inline (Description): Clarify purpose.
* m4/count-one-bits.m4 (gl_COUNT_ONE_BITS): Require AC_C_INLINE.
* modules/count-one-bits (Depends-on): Remove inline.
* m4/openat.m4 (gl_PREREQ_OPENAT): Require AC_C_INLINE.
* modules/openat (Depends-on): Remove inline.
* modules/fdutimensat (Depends-on, configure.ac): Require AC_C_INLINE
instead of depending on module 'inline'.
* modules/filevercmp (Depends-on, configure.ac): Likewise.
* modules/unicase/cased (Depends-on, configure.ac): Likewise.
* modules/unicase/ignorable (Depends-on, configure.ac): Likewise.
* modules/unictype/category-of (Depends-on, configure.ac): Likewise.
* modules/unictype/category-test (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-alnum (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-alpha (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-blank (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-cntrl (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-digit (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-graph (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-lower (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-print (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-punct (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-space (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-upper (Depends-on, configure.ac): Likewise.
* modules/unictype/ctype-xdigit (Depends-on, configure.ac): Likewise.
* modules/unictype/property-alphabetic (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-ascii-hex-digit (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-arabic-digit (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-arabic-right-to-left (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-block-separator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-boundary-neutral (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-common-separator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-control (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-bidi-embedding-or-override (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-eur-num-separator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-eur-num-terminator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-european-digit (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-hebrew-right-to-left (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-left-to-right (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-non-spacing-mark (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-other-neutral (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-pdf (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-bidi-segment-separator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-bidi-whitespace (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-combining (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-composite (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-currency-symbol (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-dash (Depends-on, configure.ac): Likewise.
* modules/unictype/property-decimal-digit (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-default-ignorable-code-point (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-deprecated (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-diacritic (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-extender (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-format-control (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-grapheme-base (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-grapheme-extend (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-grapheme-link (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-hex-digit (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-hyphen (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-id-continue (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-id-start (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-ideographic (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-ids-binary-operator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-ids-trinary-operator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-ignorable-control (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-iso-control (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-join-control (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-left-of-pair (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-line-separator (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-logical-order-exception (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-lowercase (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-math (Depends-on, configure.ac): Likewise.
* modules/unictype/property-non-break (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-not-a-character (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-numeric (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-other-alphabetic (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-other-default-ignorable-code-point
(Depends-on, configure.ac): Likewise.
* modules/unictype/property-other-grapheme-extend (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-other-id-continue (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-other-id-start (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-other-lowercase (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-other-math (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-other-uppercase (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-paired-punctuation (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-paragraph-separator (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-pattern-syntax (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-pattern-white-space (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-private-use (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-punctuation (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-quotation-mark (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-radical (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-sentence-terminal (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-soft-dotted (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-space (Depends-on, configure.ac): Likewise.
* modules/unictype/property-terminal-punctuation (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-titlecase (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-unassigned-code-value (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-unified-ideograph (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-uppercase (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-variation-selector (Depends-on,
configure.ac): Likewise.
* modules/unictype/property-white-space (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-xid-continue (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-xid-start (Depends-on, configure.ac):
Likewise.
* modules/unictype/property-zero-width (Depends-on, configure.ac):
Likewise.
* modules/unictype/syntax-c-ident (Depends-on, configure.ac): Likewise.
* modules/unictype/syntax-java-ident (Depends-on, configure.ac):
Likewise.
2009-12-31 Bruno Haible <bruno@clisp.org>
Remove unnecessary AC_C_INLINE invocation.
* m4/popen.m4 (gl_PREREQ_POPEN): Don't invoke AC_C_INLINE. Not needed
since 2009-08-21.
2009-12-31 Jim Meyering <meyering@redhat.com>
maint.mk: don't require explicit gpg_key_ID in cfg.mk
* top/maint.mk (gpg_key_ID): Derive key ID from signed release tag.
With this change, we can all remove the gpg_key_ID = ... definition
from our respective cfg.mk files.
maint.mk: create announcement template in ~/, not in /tmp
* top/maint.mk (emit_upload_commands): Adjust.
(release-prep): Emit into ~/announce-..., not /tmp/announce-...
Remove temporary file, .ci-msg.
2009-12-31 Eric Blake <ebb9@byu.net>
link-warning: always build headers with link warnings
* modules/arpa_inet (Makefile.am): Always build replacement
header.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET)
(gl_ARPA_INET_H_DEFAULTS): Drop unneeded variable.
* m4/ctype.m4 (gl_CTYPE_H_DEFAULTS): Likewise.
* m4/isblank.m4 (gl_FUNC_ISBLANK): Likewise.
* m4/dirent_h.m4 (gl_REPLACE_DIRENT_H, gl_DIRENT_H_DEFAULTS):
Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise.
* m4/locale_h.m4 (gl_REPLACE_LOCALE_H, gl_LOCALE_H_DEFAULTS):
Likewise.
* m4/spawn_h.m4 (gl_REPLACE_SPAWN_H, gl_SPAWN_H_DEFAULTS):
Likewise.
* m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Likewise.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H, gl_REPLACE_SYS_IOCTL_H)
(gl_SYS_IOCTL_H_DEFAULTS): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H)
(gl_SYS_UTSNAME_H_DEFAULTS): Likewise.
* m4/wchar.m4 (gl_WCHAR_H, gl_REPLACE_WCHAR_H)
(gl_WCHAR_H_DEFAULTS): Likewise.
2009-12-31 Eric Blake <ebb9@byu.net>
signal, spawn: use link warnings
* lib/signal.in.h (sigset_t): Make unconditional.
(sigismember, sigemptyset, sigaddset, sigdelset, sigfillset)
(sigpending, sigprocmask, sigaction): Add link warnings.
* lib/spawn.in.h (posix_spawn, posix_spawnp, posix_spawnattr_init)
(posix_spawnattr_destroy, posix_spawnattr_getsigdefault)
(posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask)
(posix_spawnattr_setsigmask, posix_spawnattr_getflags)
(posix_spawnattr_setflags, posix_spawnattr_getpgroup)
(posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy)
(posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam)
(posix_spawnattr_setschedparam, posix_spawn_file_actions_init)
(posix_spawn_file_actions_destroy)
(posix_spawn_file_actions_addopen)
(posix_spawn_file_actions_addclose)
(posix_spawn_file_actions_adddup2): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Guarantee uid_t.
* tests/test-signal.c (main): Enhance test.
spawn: improve wrapper support
* m4/spawn_h.m4 (gl_SPAWN_H): Check for type existence.
(gl_SPAWN_H_DEFAULTS): New defaults.
* modules/spawn (Makefile.am): Substitute them.
* lib/spawn.in.h: (posix_spawnattr_t, posix_spawn_file_actions_t):
Only declare if missing or broken.
sys_times, sys_utsname: use include_next
* m4/sys_times_h.m4 (gl_SYS_TIMES_H): Support wrapping an existing
header.
(gl_SYS_TIMES_H_DEFAULTS): Add another variable.
* m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H)
(gl_SYS_UTSNAME_H_DEFAULTS): Likewise.
* modules/sys_times (Depends-on): Add include_next.
(Makefile.am): Substitute additional values.
* modules/sys_utsname (Depends-on, Makefile.am): Likewise.
* lib/sys_times.in.h (includes): Include native header, if
available.
* lib/sys_utsname.in.h (includes): Likewise.
* tests/test-sys_times.c (main): Enhance test.
fdutimensat: revert prior patch
* modules/fdutimensat (Depends-on): Re-add inline; it is needed by
utimens.h.
Reported by Bruno Haible.
2009-12-30 Eric Blake <ebb9@byu.net>
sys_wait: drop link-warning dependency
* modules/sys_wait (Depends-on, Makefile.am): Drop unneeded
link-warning efforts.
* lib/sys_wait.in.h: Likewise.
fdutimensat: remove bogus dependency
* modules/fdutimensat (Depends-on): Drop inline.
unistd: fix typo
* lib/unistd.in.h (linkat) [GNULIB_POSIXCHECK]: Fix typo.
2009-12-30 Bruno Haible <bruno@clisp.org>
Fix compilation error with Solaris cc.
* lib/unicase/u8-is-invariant.c: Include <stdbool.h>.
* lib/unicase/u16-is-invariant.c: Likewise.
* lib/unicase/u32-is-invariant.c: Likewise.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.
2009-12-30 Bruno Haible <bruno@clisp.org>
Fix test crash.
* tests/test-localename.c (test_locale_name_thread): Skip unavailable
locales.
Reported by Simon Josefsson <simon@josefsson.org>.
2009-12-30 Bruno Haible <bruno@clisp.org>
Fix compilation error on most platforms.
* tests/test-localename.c (categories): Define only if HAVE_NEWLOCALE.
Reported by Simon Josefsson <simon@josefsson.org>
and Nelson H. F. Beebe <beebe@math.utah.edu>.
2009-12-30 Eric Blake <ebb9@byu.net>
futimens, utimensat: work around ntfs-3g bug
* lib/utimensat.c (rpl_utimensat): Drop attempts to cache whether
a ctime bug is present, and expand workaround to cover ntfs-3g.
* lib/utimens.c (fdutimens, lutimens): Likewise.
(utimensat_ctime_really, detect_ctime_bug): Drop cache mechanism.
(validate_timespec): Adjust return value.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Update comment.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
Reported by ctrn3e8 <ctrn3e8@gmail.com>.
2009-12-29 Eric Blake <ebb9@byu.net>
link-warning: make usage consistent
* modules/ctype (Depends-on): Add link-warning.
(Makefile.am): Update rules accordingly.
* modules/langinfo (Depends-on, Makefile.am): Likewise.
* modules/locale (Depends-on, Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Delete unused link warning
efforts.
* lib/ctype.in.h (GL_LINK_WARNING): Ensure definition before use.
* lib/langinfo.in.h (GL_LINK_WARNING): Likewise.
* lib/locale.in.h (GL_LINK_WARNING): Likewise.
* lib/sys_file.in.h (GL_LINK_WARNING): Likewise.
stdio: remove unused variables
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Remove unused variables.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Likewise.
* m4/ftello.m4 (gl_FUNC_FTELLO): Likewise.
tests: test more substitute headers
* modules/ctype-tests: New file.
* modules/dirent-tests: Likewise.
* modules/spawn-tests: Likewise.
* modules/sys_file-tests: Likewise.
* modules/sys_ioctl-tests: Likewise.
* modules/sys_wait-tests: Likewise.
* tests/test-ctype.c: Likewise.
* tests/test-dirent.c: Likewise.
* tests/test-spawn.c: Likewise.
* tests/test-sys_file.c: Likewise.
* tests/test-sys_ioctl.c: Likewise.
* tests/test-sys_wait.c: Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Replace header if it is missing.
* lib/sys_file.in.h (LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB): Provide
whether or not flock is in use.
tests: remove License section from module
* modules/arpa_inet-tests: Remove unneeded section.
* modules/byteswap-tests: Likewise.
* modules/ceilf-tests: Likewise.
* modules/ceill-tests: Likewise.
* modules/crypto/des-tests: Likewise.
* modules/crypto/gc-arcfour-tests: Likewise.
* modules/crypto/gc-arctwo-tests: Likewise.
* modules/crypto/gc-des-tests: Likewise.
* modules/crypto/gc-hmac-md5-tests: Likewise.
* modules/crypto/gc-hmac-sha1-tests: Likewise.
* modules/crypto/gc-md2-tests: Likewise.
* modules/crypto/gc-md4-tests: Likewise.
* modules/crypto/gc-md5-tests: Likewise.
* modules/crypto/gc-pbkdf2-sha1-tests: Likewise.
* modules/crypto/gc-rijndael-tests: Likewise.
* modules/crypto/gc-sha1-tests: Likewise.
* modules/crypto/gc-tests: Likewise.
* modules/crypto/md2-tests: Likewise.
* modules/crypto/md4-tests: Likewise.
* modules/fcntl-h-tests: Likewise.
* modules/floorf-tests: Likewise.
* modules/floorl-tests: Likewise.
* modules/frexp-nolibm-tests: Likewise.
* modules/frexp-tests: Likewise.
* modules/frexpl-nolibm-tests: Likewise.
* modules/frexpl-tests: Likewise.
* modules/getaddrinfo-tests: Likewise.
* modules/inttypes-tests: Likewise.
* modules/isfinite-tests: Likewise.
* modules/isinf-tests: Likewise.
* modules/ldexpl-tests: Likewise.
* modules/locale-tests: Likewise.
* modules/math-tests: Likewise.
* modules/netdb-tests: Likewise.
* modules/netinet_in-tests: Likewise.
* modules/printf-frexp-tests: Likewise.
* modules/printf-frexpl-tests: Likewise.
* modules/priv-set-tests: Likewise.
* modules/random_r-tests: Likewise.
* modules/round-tests: Likewise.
* modules/roundf-tests: Likewise.
* modules/roundl-tests: Likewise.
* modules/search-tests: Likewise.
* modules/select-tests: Likewise.
* modules/signal-tests: Likewise.
* modules/stdbool-tests: Likewise.
* modules/stddef-tests: Likewise.
* modules/stdint-tests: Likewise.
* modules/stdio-tests: Likewise.
* modules/stdlib-tests: Likewise.
* modules/string-tests: Likewise.
* modules/strings-tests: Likewise.
* modules/sys_select-tests: Likewise.
* modules/sys_socket-tests: Likewise.
* modules/sys_stat-tests: Likewise.
* modules/sys_time-tests: Likewise.
* modules/sys_utsname-tests: Likewise.
* modules/sysexits-tests: Likewise.
* modules/time-tests: Likewise.
* modules/trunc-tests: Likewise.
* modules/truncf-tests: Likewise.
* modules/truncl-tests: Likewise.
* modules/tsearch-tests: Likewise.
* modules/unistd-tests: Likewise.
* modules/wchar-tests: Likewise.
* modules/wctype-tests: Likewise.
tests: fix license on several tests
* tests/test-des.c: Update to GPLv3+.
* tests/test-flock.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-futimens.h: Likewise.
* tests/test-gc-arcfour.c: Likewise.
* tests/test-gc-arctwo.c: Likewise.
* tests/test-gc-des.c: Likewise.
* tests/test-gc-hmac-md5.c: Likewise.
* tests/test-gc-hmac-sha1.c: Likewise.
* tests/test-gc-md2.c: Likewise.
* tests/test-gc-md4.c: Likewise.
* tests/test-gc-md5.c: Likewise.
* tests/test-gc-pbkdf2-sha1.c: Likewise.
* tests/test-gc-rijndael.c: Likewise.
* tests/test-gc-sha1.c: Likewise.
* tests/test-gc.c: Likewise.
* tests/test-getcwd.c: Likewise.
* tests/test-link.c: Likewise.
* tests/test-link.h: Likewise.
* tests/test-lutimens.h: Likewise.
* tests/test-md2.c: Likewise.
* tests/test-md4.c: Likewise.
* tests/test-mkdir.h: Likewise.
* tests/test-rename.c: Likewise.
* tests/test-rename.h: Likewise.
* tests/test-safe-alloc.c: Likewise.
* tests/test-utimens-common.h: Likewise.
* tests/test-utimens.h: Likewise.
maint: sync license texts
* config/srclist.txt: Add gpl-1.3.texi, lgpl-1.3.texi.
* doc/gpl-3.0.texi: Revert copyright year update.
* doc/lgpl-3.0.texi: Likewise.
2009-12-29 Jim Meyering <meyering@redhat.com>
update nearly all FSF copyright year lists to include 2009
The files named by the following are exempted:
grep -v '^#' config/srclist.txt|grep -v '^$' | while read src dst; do
test -f "$dst" && { echo "$dst"; continue; }
test -d "$dst" || continue
echo "$dst"/$(basename "$src")
done > exempt
git ls-files tests/unictype >> exempt
In the remaining files, convert to all-interval notation if
- there is already at least one year interval like 2000-2003
- the file is maintained by me
- the file is in lib/uni*/, where that style already prevails
Otherwise, use update-copyright's default.
2009-12-29 Simon Josefsson <simon@josefsson.org>
and Eric Blake <ebb9@byu.net>
tests: don't require debug system() to pass
* tests/test-lstat.h (test_lstat_func): Move debug cleanup...
* tests/test-rmdir.h (test_rmdir_func): Likewise.
* tests/test-unlink.h (test_unlink_func): Likewise.
* tests/test-fstatat.c (main): ...into callers.
* tests/test-lstat.c (main): Likewise.
* tests/test-rmdir.c (main): Likewise.
* tests/test-unlink.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-areadlink-with-size.c (main): Don't require a
debug-only system call to pass, aiding cross-testing to mingw.
* tests/test-areadlink.c (main): Likewise.
* tests/test-areadlinkat-with-size.c (main): Likewise.
* tests/test-areadlinkat.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-chown.c (main): Likewise.
* tests/test-fchownat.c (main): Likewise.
* tests/test-lchown.c (main): Likewise.
* tests/test-fdutimensat.c (main): Likewise.
* tests/test-futimens.c (main): Likewise.
* tests/test-link.c (main): Likewise.
* tests/test-linkat.c (main): Likewise.
* tests/test-mkdir.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-mkfifo.c (main): Likewise.
* tests/test-mkfifoat.c (main): Likewise.
* tests/test-mknod.c (main): Likewise.
* tests/test-readlink.c (main): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-rename.c (main): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-symlink.c (main): Likewise.
* tests/test-symlinkat.c (main): Likewise.
* tests/test-utimens.c (main): Likewise.
* tests/test-utimensat.c (main): Likewise.
2009-12-29 Simon Josefsson <simon@josefsson.org>
* modules/selinux-h (selinux/selinux.h, selinux/context.h): Depend
on $(UNUSED_PARAMETER_H) to avoid build failure.
2009-12-28 Jim Meyering <meyering@redhat.com>
update-copyright: you may specify a max. line length other than 72
* build-aux/update-copyright: Honor $UPDATE_COPYRIGHT_MAX_LINE_LENGTH.
maint: use consistent FSF copyright line syntax
* lib/posixtm.c: Add missing comma in FSF copyright line.
* lib/posixtm.h: Likewise.
* lib/getugroups.c: Add missing ", Inc.".
pmccabe2html: emit consistent FSF copyright; remove trailing blanks
* build-aux/pmccabe2html: Insert comma before "Inc." in emitted
FSF copyright line. Remove trailing blanks.
2009-12-28 Eric Blake <ebb9@byu.net>
test-dup2: reduce dependencies
* modules/cloexec (Configure.ac): Set witness.
* modules/dup2-tests (Depends-on): Drop cloexec.
* tests/test-dup2.c (main): Skip portion of test if cloexec module
not present.
Suggested by Bruno Haible.
2009-12-26 Bruno Haible <bruno@clisp.org>
Remove an unneeded dependency.
* modules/fseterr (Depends-on): Remove dup2.
2009-12-26 Eric Blake <ebb9@byu.net>
tests: use macros.h in more places
* tests/macros.h (ASSERT): Depend on ASSERT_STREAM.
(ASSERT_STREAM): Provide default of stderr.
* tests/test-dirent-safer.c: Include macros.h, using alternate
stream for assertions.
* tests/test-dup-safer.c: Likewise.
* tests/test-freopen-safer.c: Likewise.
* tests/test-getopt.c: Likewise.
* tests/test-openat-safer.c: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-popen-safer.c: Likewise.
* modules/dirent-safer-tests (Files): Include macros.h.
* modules/unistd-safer-tests (Files): Likewise.
* modules/freopen-safer-tests (Files): Likewise.
* modules/getopt-posix-tests (Files): Likewise.
* modules/openat-safer-tests (Files): Likewise.
* modules/pipe-tests (Files): Likewise.
2009-12-26 Bruno Haible <bruno@clisp.org>
javacomp-script: Portability fix.
* m4/javacomp.m4 (gt_JAVACOMP): Fix creation of conftestver.class so
that it also works on Solaris.
2009-12-26 Bruno Haible <bruno@clisp.org>
localename: Fix storage allocation of gl_locale_name_thread's result.
* lib/localename.c (SIZE_BITS, string_hash, struct hash_node,
HASH_TABLE_SIZE, struniq_hash_table, struniq_lock, struniq): Define on
all platforms that have 'uselocale'.
(gl_locale_name_thread_unsafe): New function, extracted from
gl_locale_name_thread.
(gl_locale_name_thread): Call struniq on all platforms that have
'uselocale'.
* tests/test-localename.c (test_locale_name_thread): Check that the
resulting strings are permanently allocated.
* modules/localename-tests (Depends-on): Add strdup.
2009-12-26 Bruno Haible <bruno@clisp.org>
* tests/test-localename.c (categories): Fill in the strings.
2009-12-26 Jim Meyering <meyering@redhat.com>
isdir: complete the removal of m4/isdir.m4
* modules/isdir (configure.ac): Remove reference to gl_ISDIR.
isdir: clean up, since at least grep still uses it
* lib/isdir.c: Include "isdir.h".
(S_ISDIR): Remove now-unneeded definition.
* modules/isdir (Files): Add lib/isdir.h.
* lib/isdir.h: New file, with declaration.
* m4/isdir.m4: Remove file -- unneeded.
2009-12-25 Bruno Haible <bruno@clisp.org>
selinux-h: Make generated .h files standalone.
* lib/se-context.in.h: Arrange to include _GL_UNUSED_PARAMETER
definition. Use _GL_UNUSED_PARAMETER instead of _GL_UNUSED.
* lib/se-selinux.in.h: Likewise.
* modules/selinux-h (Depends-on): Add unused-parameter.
(Makefile.am): Insert definition of _GL_UNUSED_PARAMETER into
selinux/selinux.h and selinux/context.h.
Suggested by Eric Blake.
2009-12-25 Bruno Haible <bruno@clisp.org>
Move gl_FCNTL_O_FLAGS to a separate .m4 file.
* m4/fcntl-o.m4: New file, extracted from m4/fcntl_h.m4.
* m4/fcntl_h.m4 (gl_FCNTL_O_FLAGS): Remove macro.
* modules/fcntl-h (Files): Add m4/fcntl-o.m4.
* modules/localcharset (Files): Likewise. Remove m4/fcntl_h.m4.
2009-12-24 Bruno Haible <bruno@clisp.org>
openat: Fix warning.
* lib/openat-proc.c: Include <unistd.h>.
2009-12-24 Bruno Haible <bruno@clisp.org>
New module 'unused-parameter'.
* build-aux/unused-parameter.h: New file, extracted from earlier
gnulib-common.m4.
* modules/unused-parameter: New file.
* lib/unistr.h: Include unused-parameter.h.
(u32_mbtouc_unsafe, u32_mbtouc): Use _GL_UNUSED_PARAMETER instead of
_GL_UNUSED.
* modules/unistr/base (Depends-on): Add unused-parameter.
2009-12-24 Bruno Haible <bruno@clisp.org>
Add missing dependencies to 'extensions' module.
* m4/extensions.m4: Add comment.
* modules/accept4 (Depends-on): Add extensions.
* modules/dup3 (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/futimens (Depends-on): Likewise.
* modules/mknod (Depends-on): Likewise.
* modules/pipe2 (Depends-on): Likewise.
* modules/stat-time (Depends-on): Likewise.
* modules/strcasestr-simple (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/localcharset (Depends-on): Likewise. Needed because of
gl_FCNTL_O_FLAGS.
* modules/wcrtomb (Depends-on): Likewise. Needed because of
AC_TYPE_MBSTATE_T.
* modules/wcsnrtombs (Depends-on): Likewise.
* modules/wcsrtombs (Depends-on): Likewise.
2009-12-24 Bruno Haible <bruno@clisp.org>
binary-io: Avoid gcc warning due to SET_BINARY.
* lib/binary-io.h (SET_BINARY): Cast the result to void.
Reported by Jim Meyering <jim@meyering.net>. Suggestion by Eric Blake.
2009-12-24 Bruno Haible <bruno@clisp.org>
Avoid future namespace pollution on glibc systems.
* lib/arpa_inet.in.h: Don't include <sys/socket.h> on glibc systems.
* lib/sys_ioctl.in.h: Don't include <unistd.h> on glibc systems.
* lib/sys_select.in.h: Don't include <sys/time.h> and <string.h> on
glibc systems.
2009-12-24 Bruno Haible <bruno@clisp.org>
Refactor common macros used in tests.
* tests/macros.h: New file.
* tests/test-areadlink.c: Include macros.h. Don't include <stdio.h>
and/or <stdlib.h>, if appropriate.
(ASSERT, SIZEOF): Remove macros.
* tests/test-areadlink-with-size.c: Likewise.
* tests/test-areadlinkat.c: Likewise.
* tests/test-areadlinkat-with-size.c: Likewise.
* tests/test-argmatch.c: Likewise.
* tests/test-argv-iter.c: Likewise.
* tests/test-array-mergesort.c: Likewise.
* tests/test-array_list.c: Likewise.
* tests/test-array_oset.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-avltree_oset.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-base64.c: Likewise.
* tests/test-binary-io.c: Likewise.
* tests/test-bitrotate.c: Likewise.
* tests/test-btowc.c: Likewise.
* tests/test-byteswap.c: Likewise.
* tests/test-c-ctype.c: Likewise.
* tests/test-c-stack.c: Likewise.
* tests/test-c-strcasecmp.c: Likewise.
* tests/test-c-strcasestr.c: Likewise.
* tests/test-c-strncasecmp.c: Likewise.
* tests/test-c-strstr.c: Likewise.
* tests/test-canonicalize-lgpl.c: Likewise.
* tests/test-canonicalize.c: Likewise.
* tests/test-carray_list.c: Likewise.
* tests/test-ceilf1.c: Likewise.
* tests/test-ceilf2.c: Likewise.
* tests/test-ceill.c: Likewise.
* tests/test-chown.c: Likewise.
* tests/test-cloexec.c: Likewise.
* tests/test-copy-acl.c: Likewise.
* tests/test-copy-file.c: Likewise.
* tests/test-count-one-bits.c: Likewise.
* tests/test-dprintf-posix.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-duplocale.c: Likewise.
* tests/test-fbufmode.c: Likewise.
* tests/test-fchdir.c: Likewise.
* tests/test-fchownat.c: Likewise.
* tests/test-fcntl-safer.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-fdopendir.c: Likewise.
* tests/test-fdutimensat.c: Likewise.
* tests/test-fflush2.c: Likewise.
* tests/test-file-has-acl.c: Likewise.
* tests/test-filevercmp.c: Likewise.
* tests/test-flock.c: Likewise.
* tests/test-floorf1.c: Likewise.
* tests/test-floorf2.c: Likewise.
* tests/test-floorl.c: Likewise.
* tests/test-fnmatch.c: Likewise.
* tests/test-fopen.h: Likewise.
* tests/test-fpending.c: Likewise.
* tests/test-fprintf-posix.c: Likewise.
* tests/test-fpurge.c: Likewise.
* tests/test-freadable.c: Likewise.
* tests/test-freadahead.c: Likewise.
* tests/test-freading.c: Likewise.
* tests/test-freadptr.c: Likewise.
* tests/test-freadptr2.c: Likewise.
* tests/test-freadseek.c: Likewise.
* tests/test-freopen.c: Likewise.
* tests/test-frexp.c: Likewise.
* tests/test-frexpl.c: Likewise.
* tests/test-fseek.c: Likewise.
* tests/test-fseeko.c: Likewise.
* tests/test-fstatat.c: Likewise.
* tests/test-fstrcmp.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-ftell.c: Likewise.
* tests/test-ftello.c: Likewise.
* tests/test-func.c: Likewise.
* tests/test-futimens.c: Likewise.
* tests/test-fwritable.c: Likewise.
* tests/test-fwriting.c: Likewise.
* tests/test-getcwd.c: Likewise.
* tests/test-getdate.c: Likewise.
* tests/test-getdelim.c: Likewise.
* tests/test-getdtablesize.c: Likewise.
* tests/test-getgroups.c: Likewise.
* tests/test-getline.c: Likewise.
* tests/test-getndelim2.c: Likewise.
* tests/test-glob.c: Likewise.
* tests/test-hash.c: Likewise.
* tests/test-i-ring.c: Likewise.
* tests/test-iconv-utf.c: Likewise.
* tests/test-iconv.c: Likewise.
* tests/test-idpriv-drop.c: Likewise.
* tests/test-idpriv-droptemp.c: Likewise.
* tests/test-inet_ntop.c: Likewise.
* tests/test-inet_pton.c: Likewise.
* tests/test-isblank.c: Likewise.
* tests/test-isfinite.c: Likewise.
* tests/test-isinf.c: Likewise.
* tests/test-isnan.c: Likewise.
* tests/test-isnand.h: Likewise.
* tests/test-isnanf.h: Likewise.
* tests/test-isnanl.h: Likewise.
* tests/test-lchown.c: Likewise.
* tests/test-ldexpl.c: Likewise.
* tests/test-link.c: Likewise.
* tests/test-linkat.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-lseek.c: Likewise.
* tests/test-lstat.c: Likewise.
* tests/test-mbmemcasecmp.c: Likewise.
* tests/test-mbmemcasecoll.c: Likewise.
* tests/test-mbrtowc.c: Likewise.
* tests/test-mbscasecmp.c: Likewise.
* tests/test-mbscasestr1.c: Likewise.
* tests/test-mbscasestr2.c: Likewise.
* tests/test-mbscasestr3.c: Likewise.
* tests/test-mbscasestr4.c: Likewise.
* tests/test-mbschr.c: Likewise.
* tests/test-mbscspn.c: Likewise.
* tests/test-mbsinit.c: Likewise.
* tests/test-mbsncasecmp.c: Likewise.
* tests/test-mbsnrtowcs.c: Likewise.
* tests/test-mbspbrk.c: Likewise.
* tests/test-mbspcasecmp.c: Likewise.
* tests/test-mbsrchr.c: Likewise.
* tests/test-mbsrtowcs.c: Likewise.
* tests/test-mbsspn.c: Likewise.
* tests/test-mbsstr1.c: Likewise.
* tests/test-mbsstr2.c: Likewise.
* tests/test-mbsstr3.c: Likewise.
* tests/test-memchr.c: Likewise.
* tests/test-memchr2.c: Likewise.
* tests/test-memcmp.c: Likewise.
* tests/test-memmem.c: Likewise.
* tests/test-memrchr.c: Likewise.
* tests/test-mkdir.c: Likewise.
* tests/test-mkdirat.c: Likewise.
* tests/test-mkfifo.c: Likewise.
* tests/test-mkfifoat.c: Likewise.
* tests/test-mknod.c: Likewise.
* tests/test-nanosleep.c: Likewise.
* tests/test-nl_langinfo.c: Likewise.
* tests/test-obstack-printf.c: Likewise.
* tests/test-open.c: Likewise.
* tests/test-openat.c: Likewise.
* tests/test-pipe-filter-gi1.c: Likewise.
* tests/test-pipe-filter-gi2-main.c: Likewise.
* tests/test-pipe-filter-ii1.c: Likewise.
* tests/test-pipe-filter-ii2-main.c: Likewise.
* tests/test-pipe2.c: Likewise.
* tests/test-popen.h: Likewise.
* tests/test-posixtm.c: Likewise.
* tests/test-pread.c: Likewise.
* tests/test-printf-frexp.c: Likewise.
* tests/test-printf-frexpl.c: Likewise.
* tests/test-printf-posix.c: Likewise.
* tests/test-priv-set.c: Likewise.
* tests/test-quotearg.c: Likewise.
* tests/test-random_r.c: Likewise.
* tests/test-rawmemchr.c: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
* tests/test-readlink.c: Likewise.
* tests/test-remove.c: Likewise.
* tests/test-rename.c: Likewise.
* tests/test-renameat.c: Likewise.
* tests/test-rmdir.c: Likewise.
* tests/test-round1.c: Likewise.
* tests/test-roundf1.c: Likewise.
* tests/test-roundl.c: Likewise.
* tests/test-safe-alloc.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-set-mode-acl.c: Likewise.
* tests/test-setenv.c: Likewise.
* tests/test-sigaction.c: Likewise.
* tests/test-signbit.c: Likewise.
* tests/test-sleep.c: Likewise.
* tests/test-snprintf-posix.c: Likewise.
* tests/test-snprintf.c: Likewise.
* tests/test-sprintf-posix.c: Likewise.
* tests/test-stat-time.c: Likewise.
* tests/test-stat.c: Likewise.
* tests/test-strcasestr.c: Likewise.
* tests/test-strchrnul.c: Likewise.
* tests/test-strerror.c: Likewise.
* tests/test-striconv.c: Likewise.
* tests/test-striconveh.c: Likewise.
* tests/test-striconveha.c: Likewise.
* tests/test-strsignal.c: Likewise.
* tests/test-strstr.c: Likewise.
* tests/test-strtod.c: Likewise.
* tests/test-strverscmp.c: Likewise.
* tests/test-symlink.c: Likewise.
* tests/test-symlinkat.c: Likewise.
* tests/test-trunc1.c: Likewise.
* tests/test-trunc2.c: Likewise.
* tests/test-truncf1.c: Likewise.
* tests/test-truncf2.c: Likewise.
* tests/test-truncl.c: Likewise.
* tests/test-uname.c: Likewise.
* tests/test-unlink.c: Likewise.
* tests/test-unlinkat.c: Likewise.
* tests/test-unsetenv.c: Likewise.
* tests/test-usleep.c: Likewise.
* tests/test-utimens.c: Likewise.
* tests/test-utimensat.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasnprintf-posix2.c: Likewise.
* tests/test-vasnprintf.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* tests/test-vasprintf.c: Likewise.
* tests/test-vdprintf-posix.c: Likewise.
* tests/test-vfprintf-posix.c: Likewise.
* tests/test-vprintf-posix.c: Likewise.
* tests/test-vsnprintf-posix.c: Likewise.
* tests/test-vsnprintf.c: Likewise.
* tests/test-vsprintf-posix.c: Likewise.
* tests/test-wcrtomb.c: Likewise.
* tests/test-wcsnrtombs.c: Likewise.
* tests/test-wcsrtombs.c: Likewise.
* tests/test-wctype.c: Likewise.
* tests/test-wcwidth.c: Likewise.
* tests/test-xfprintf-posix.c: Likewise.
* tests/test-xmemdup0.c: Likewise.
* tests/test-xprintf-posix.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
* tests/unicase/test-locale-language.c: Likewise.
* tests/unicase/test-mapping-part1.h: Likewise.
* tests/unicase/test-predicate-part1.h: Likewise.
* tests/unicase/test-u8-casecmp.c: Likewise.
* tests/unicase/test-u8-casecoll.c: Likewise.
* tests/unicase/test-u8-casefold.c: Likewise.
* tests/unicase/test-u8-is-cased.c: Likewise.
* tests/unicase/test-u8-is-casefolded.c: Likewise.
* tests/unicase/test-u8-is-lowercase.c: Likewise.
* tests/unicase/test-u8-is-titlecase.c: Likewise.
* tests/unicase/test-u8-is-uppercase.c: Likewise.
* tests/unicase/test-u8-tolower.c: Likewise.
* tests/unicase/test-u8-totitle.c: Likewise.
* tests/unicase/test-u8-toupper.c: Likewise.
* tests/unicase/test-u16-casecmp.c: Likewise.
* tests/unicase/test-u16-casecoll.c: Likewise.
* tests/unicase/test-u16-casefold.c: Likewise.
* tests/unicase/test-u16-is-cased.c: Likewise.
* tests/unicase/test-u16-is-casefolded.c: Likewise.
* tests/unicase/test-u16-is-lowercase.c: Likewise.
* tests/unicase/test-u16-is-titlecase.c: Likewise.
* tests/unicase/test-u16-is-uppercase.c: Likewise.
* tests/unicase/test-u16-tolower.c: Likewise.
* tests/unicase/test-u16-totitle.c: Likewise.
* tests/unicase/test-u16-toupper.c: Likewise.
* tests/unicase/test-u32-casecmp.c: Likewise.
* tests/unicase/test-u32-casecoll.c: Likewise.
* tests/unicase/test-u32-casefold.c: Likewise.
* tests/unicase/test-u32-is-cased.c: Likewise.
* tests/unicase/test-u32-is-casefolded.c: Likewise.
* tests/unicase/test-u32-is-lowercase.c: Likewise.
* tests/unicase/test-u32-is-titlecase.c: Likewise.
* tests/unicase/test-u32-is-uppercase.c: Likewise.
* tests/unicase/test-u32-tolower.c: Likewise.
* tests/unicase/test-u32-totitle.c: Likewise.
* tests/unicase/test-u32-toupper.c: Likewise.
* tests/unicase/test-ulc-casecmp.c: Likewise.
* tests/unicase/test-ulc-casecoll.c: Likewise.
* tests/uniconv/test-u8-conv-from-enc.c: Likewise.
* tests/uniconv/test-u8-conv-to-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u16-conv-from-enc.c: Likewise.
* tests/uniconv/test-u16-conv-to-enc.c: Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u32-conv-from-enc.c: Likewise.
* tests/uniconv/test-u32-conv-to-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c: Likewise.
* tests/unictype/test-bidi_byname.c: Likewise.
* tests/unictype/test-bidi_name.c: Likewise.
* tests/unictype/test-bidi_of.c: Likewise.
* tests/unictype/test-bidi_test.c: Likewise.
* tests/unictype/test-block_list.c: Likewise.
* tests/unictype/test-block_of.c: Likewise.
* tests/unictype/test-block_test.c: Likewise.
* tests/unictype/test-categ_and.c: Likewise.
* tests/unictype/test-categ_and_not.c: Likewise.
* tests/unictype/test-categ_byname.c: Likewise.
* tests/unictype/test-categ_name.c: Likewise.
* tests/unictype/test-categ_none.c: Likewise.
* tests/unictype/test-categ_of.c: Likewise.
* tests/unictype/test-categ_or.c: Likewise.
* tests/unictype/test-categ_test_withtable.c: Likewise.
* tests/unictype/test-combining.c: Likewise.
* tests/unictype/test-decdigit.c: Likewise.
* tests/unictype/test-digit.c: Likewise.
* tests/unictype/test-mirror.c: Likewise.
* tests/unictype/test-numeric.c: Likewise.
* tests/unictype/test-pr_byname.c: Likewise.
* tests/unictype/test-pr_test.c: Likewise.
* tests/unictype/test-predicate-part1.h: Likewise.
* tests/unictype/test-scripts.c: Likewise.
* tests/unictype/test-sy_c_ident.c: Likewise.
* tests/unictype/test-sy_java_ident.c: Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c: Likewise.
* tests/unilbrk/test-u8-width-linebreaks.c: Likewise.
* tests/unilbrk/test-u16-possible-linebreaks.c: Likewise.
* tests/unilbrk/test-u16-width-linebreaks.c: Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c: Likewise.
* tests/unilbrk/test-u32-width-linebreaks.c: Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c: Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c: Likewise.
* tests/uninorm/test-canonical-decomposition.c: Likewise.
* tests/uninorm/test-compat-decomposition.c: Likewise.
* tests/uninorm/test-composition.c: Likewise.
* tests/uninorm/test-decomposing-form.c: Likewise.
* tests/uninorm/test-decomposition.c: Likewise.
* tests/uninorm/test-u8-nfc.c: Likewise.
* tests/uninorm/test-u8-nfd.c: Likewise.
* tests/uninorm/test-u8-nfkc.c: Likewise.
* tests/uninorm/test-u8-nfkd.c: Likewise.
* tests/uninorm/test-u8-normcmp.c: Likewise.
* tests/uninorm/test-u8-normcoll.c: Likewise.
* tests/uninorm/test-u16-nfc.c: Likewise.
* tests/uninorm/test-u16-nfd.c: Likewise.
* tests/uninorm/test-u16-nfkc.c: Likewise.
* tests/uninorm/test-u16-nfkd.c: Likewise.
* tests/uninorm/test-u16-normcmp.c: Likewise.
* tests/uninorm/test-u16-normcoll.c: Likewise.
* tests/uninorm/test-u32-nfc.c: Likewise.
* tests/uninorm/test-u32-nfd.c: Likewise.
* tests/uninorm/test-u32-nfkc.c: Likewise.
* tests/uninorm/test-u32-nfkd.c: Likewise.
* tests/uninorm/test-u32-normalize-big.c: Likewise.
* tests/uninorm/test-u32-normcmp.c: Likewise.
* tests/uninorm/test-u32-normcoll.c: Likewise.
* tests/uninorm/test-uninorm-filter-nfc.c: Likewise.
* tests/unistdio/test-u8-asnprintf1.c: Likewise.
* tests/unistdio/test-u8-vasnprintf1.c: Likewise.
* tests/unistdio/test-u8-vasnprintf2.c: Likewise.
* tests/unistdio/test-u8-vasnprintf3.c: Likewise.
* tests/unistdio/test-u8-vasprintf1.c: Likewise.
* tests/unistdio/test-u8-vsnprintf1.c: Likewise.
* tests/unistdio/test-u8-vsprintf1.c: Likewise.
* tests/unistdio/test-u16-asnprintf1.c: Likewise.
* tests/unistdio/test-u16-vasnprintf1.c: Likewise.
* tests/unistdio/test-u16-vasnprintf2.c: Likewise.
* tests/unistdio/test-u16-vasnprintf3.c: Likewise.
* tests/unistdio/test-u16-vasprintf1.c: Likewise.
* tests/unistdio/test-u16-vsnprintf1.c: Likewise.
* tests/unistdio/test-u16-vsprintf1.c: Likewise.
* tests/unistdio/test-u32-asnprintf1.c: Likewise.
* tests/unistdio/test-u32-vasnprintf1.c: Likewise.
* tests/unistdio/test-u32-vasnprintf2.c: Likewise.
* tests/unistdio/test-u32-vasnprintf3.c: Likewise.
* tests/unistdio/test-u32-vasprintf1.c: Likewise.
* tests/unistdio/test-u32-vsnprintf1.c: Likewise.
* tests/unistdio/test-u32-vsprintf1.c: Likewise.
* tests/unistdio/test-ulc-asnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vasnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vasnprintf2.c: Likewise.
* tests/unistdio/test-ulc-vasnprintf3.c: Likewise.
* tests/unistdio/test-ulc-vasprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsprintf1.c: Likewise.
* tests/uniwbrk/test-u8-wordbreaks.c: Likewise.
* tests/uniwbrk/test-u16-wordbreaks.c: Likewise.
* tests/uniwbrk/test-u32-wordbreaks.c: Likewise.
* tests/uniwbrk/test-ulc-wordbreaks.c: Likewise.
* tests/uniwidth/test-u8-strwidth.c: Likewise.
* tests/uniwidth/test-u8-width.c: Likewise.
* tests/uniwidth/test-u16-strwidth.c: Likewise.
* tests/uniwidth/test-u16-width.c: Likewise.
* tests/uniwidth/test-u32-strwidth.c: Likewise.
* tests/uniwidth/test-u32-width.c: Likewise.
* tests/uniwidth/test-uc_width.c: Likewise.
* tests/uniwidth/test-uc_width2.c: Likewise.
* modules/acl-tests (Files): Add tests/macros.h.
* modules/areadlink-tests (Files): Likewise.
* modules/areadlink-with-size-tests (Files): Likewise.
* modules/areadlinkat-tests (Files): Likewise.
* modules/areadlinkat-with-size-tests (Files): Likewise.
* modules/argmatch-tests (Files): Likewise.
* modules/argv-iter-tests (Files): Likewise.
* modules/array-list-tests (Files): Likewise.
* modules/array-mergesort-tests (Files): Likewise.
* modules/array-oset-tests (Files): Likewise.
* modules/avltree-list-tests (Files): Likewise.
* modules/avltree-oset-tests (Files): Likewise.
* modules/avltreehash-list-tests (Files): Likewise.
* modules/base64-tests (Files): Likewise.
* modules/binary-io-tests (Files): Likewise.
* modules/bitrotate-tests (Files): Likewise.
* modules/btowc-tests (Files): Likewise.
* modules/byteswap-tests (Files): Likewise.
* modules/c-ctype-tests (Files): Likewise.
* modules/c-stack-tests (Files): Likewise.
* modules/c-strcase-tests (Files): Likewise.
* modules/c-strcasestr-tests (Files): Likewise.
* modules/c-strstr-tests (Files): Likewise.
* modules/canonicalize-lgpl-tests (Files): Likewise.
* modules/canonicalize-tests (Files): Likewise.
* modules/carray-list-tests (Files): Likewise.
* modules/ceilf-tests (Files): Likewise.
* modules/ceill-tests (Files): Likewise.
* modules/chown-tests (Files): Likewise.
* modules/cloexec-tests (Files): Likewise.
* modules/copy-file-tests (Files): Likewise.
* modules/count-one-bits-tests (Files): Likewise.
* modules/dprintf-posix-tests (Files): Likewise.
* modules/dup2-tests (Files): Likewise.
* modules/dup3-tests (Files): Likewise.
* modules/duplocale-tests (Files): Likewise.
* modules/fbufmode-tests (Files): Likewise.
* modules/fchdir-tests (Files): Likewise.
* modules/fcntl-safer-tests (Files): Likewise.
* modules/fcntl-tests (Files): Likewise.
* modules/fdopendir-tests (Files): Likewise.
* modules/fdutimensat-tests (Files): Likewise.
* modules/fflush-tests (Files): Likewise.
* modules/filevercmp-tests (Files): Likewise.
* modules/flock-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/fnmatch-tests (Files): Likewise.
* modules/fopen-safer-tests (Files): Likewise.
* modules/fopen-tests (Files): Likewise.
* modules/fpending-tests (Files): Likewise.
* modules/fprintf-posix-tests (Files): Likewise.
* modules/fpurge-tests (Files): Likewise.
* modules/freadable-tests (Files): Likewise.
* modules/freadahead-tests (Files): Likewise.
* modules/freading-tests (Files): Likewise.
* modules/freadptr-tests (Files): Likewise.
* modules/freadseek-tests (Files): Likewise.
* modules/freopen-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/fseek-tests (Files): Likewise.
* modules/fseeko-tests (Files): Likewise.
* modules/fstrcmp-tests (Files): Likewise.
* modules/fsync-tests (Files): Likewise.
* modules/ftell-tests (Files): Likewise.
* modules/ftello-tests (Files): Likewise.
* modules/func-tests (Files): Likewise.
* modules/futimens-tests (Files): Likewise.
* modules/fwritable-tests (Files): Likewise.
* modules/fwriting-tests (Files): Likewise.
* modules/getcwd-tests (Files): Likewise.
* modules/getdate-tests (Files): Likewise.
* modules/getdelim-tests (Files): Likewise.
* modules/getdtablesize-tests (Files): Likewise.
* modules/getgroups-tests (Files): Likewise.
* modules/getline-tests (Files): Likewise.
* modules/getndelim2-tests (Files): Likewise.
* modules/glob-tests (Files): Likewise.
* modules/hash-tests (Files): Likewise.
* modules/i-ring-tests (Files): Likewise.
* modules/iconv-tests (Files): Likewise.
* modules/iconv_open-utf-tests (Files): Likewise.
* modules/idpriv-drop-tests (Files): Likewise.
* modules/idpriv-droptemp-tests (Files): Likewise.
* modules/inet_ntop-tests (Files): Likewise.
* modules/inet_pton-tests (Files): Likewise.
* modules/isblank-tests (Files): Likewise.
* modules/isfinite-tests (Files): Likewise.
* modules/isinf-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/lchown-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/link-tests (Files): Likewise.
* modules/linkat-tests (Files): Likewise.
* modules/linked-list-tests (Files): Likewise.
* modules/linkedhash-list-tests (Files): Likewise.
* modules/localename-tests (Files): Likewise.
* modules/lseek-tests (Files): Likewise.
* modules/lstat-tests (Files): Likewise.
* modules/mbmemcasecmp-tests (Files): Likewise.
* modules/mbmemcasecoll-tests (Files): Likewise.
* modules/mbrtowc-tests (Files): Likewise.
* modules/mbscasecmp-tests (Files): Likewise.
* modules/mbscasestr-tests (Files): Likewise.
* modules/mbschr-tests (Files): Likewise.
* modules/mbscspn-tests (Files): Likewise.
* modules/mbsinit-tests (Files): Likewise.
* modules/mbsncasecmp-tests (Files): Likewise.
* modules/mbsnrtowcs-tests (Files): Likewise.
* modules/mbspbrk-tests (Files): Likewise.
* modules/mbspcasecmp-tests (Files): Likewise.
* modules/mbsrchr-tests (Files): Likewise.
* modules/mbsrtowcs-tests (Files): Likewise.
* modules/mbsspn-tests (Files): Likewise.
* modules/mbsstr-tests (Files): Likewise.
* modules/memchr-tests (Files): Likewise.
* modules/memchr2-tests (Files): Likewise.
* modules/memcmp-tests (Files): Likewise.
* modules/memmem-tests (Files): Likewise.
* modules/memrchr-tests (Files): Likewise.
* modules/mkdir-tests (Files): Likewise.
* modules/mkfifo-tests (Files): Likewise.
* modules/mkfifoat-tests (Files): Likewise.
* modules/mknod-tests (Files): Likewise.
* modules/nanosleep-tests (Files): Likewise.
* modules/nl_langinfo-tests (Files): Likewise.
* modules/obstack-printf-tests (Files): Likewise.
* modules/open-tests (Files): Likewise.
* modules/openat-tests (Files): Likewise.
* modules/pipe-filter-gi-tests (Files): Likewise.
* modules/pipe-filter-ii-tests (Files): Likewise.
* modules/pipe2-tests (Files): Likewise.
* modules/popen-safer-tests (Files): Likewise.
* modules/popen-tests (Files): Likewise.
* modules/posixtm-tests (Files): Likewise.
* modules/pread-tests (Files): Likewise.
* modules/printf-frexp-tests (Files): Likewise.
* modules/printf-frexpl-tests (Files): Likewise.
* modules/printf-posix-tests (Files): Likewise.
* modules/priv-set-tests (Files): Likewise.
* modules/quotearg-tests (Files): Likewise.
* modules/random_r-tests (Files): Likewise.
* modules/rawmemchr-tests (Files): Likewise.
* modules/rbtree-list-tests (Files): Likewise.
* modules/rbtree-oset-tests (Files): Likewise.
* modules/rbtreehash-list-tests (Files): Likewise.
* modules/readlink-tests (Files): Likewise.
* modules/remove-tests (Files): Likewise.
* modules/rename-tests (Files): Likewise.
* modules/renameat-tests (Files): Likewise.
* modules/rmdir-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/safe-alloc-tests (Files): Likewise.
* modules/setenv-tests (Files): Likewise.
* modules/sigaction-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/sleep-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/snprintf-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/stat-tests (Files): Likewise.
* modules/stat-time-tests (Files): Likewise.
* modules/strcasestr-tests (Files): Likewise.
* modules/strchrnul-tests (Files): Likewise.
* modules/strerror-tests (Files): Likewise.
* modules/striconv-tests (Files): Likewise.
* modules/striconveh-tests (Files): Likewise.
* modules/striconveha-tests (Files): Likewise.
* modules/strsignal-tests (Files): Likewise.
* modules/strstr-tests (Files): Likewise.
* modules/strtod-tests (Files): Likewise.
* modules/strverscmp-tests (Files): Likewise.
* modules/symlink-tests (Files): Likewise.
* modules/symlinkat-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/uname-tests (Files): Likewise.
* modules/unicase/cased-tests (Files): Likewise.
* modules/unicase/ignorable-tests (Files): Likewise.
* modules/unicase/locale-language-tests (Files): Likewise.
* modules/unicase/tolower-tests (Files): Likewise.
* modules/unicase/totitle-tests (Files): Likewise.
* modules/unicase/toupper-tests (Files): Likewise.
* modules/unicase/u8-casecmp-tests (Files): Likewise.
* modules/unicase/u8-casecoll-tests (Files): Likewise.
* modules/unicase/u8-casefold-tests (Files): Likewise.
* modules/unicase/u8-is-cased-tests (Files): Likewise.
* modules/unicase/u8-is-casefolded-tests (Files): Likewise.
* modules/unicase/u8-is-lowercase-tests (Files): Likewise.
* modules/unicase/u8-is-titlecase-tests (Files): Likewise.
* modules/unicase/u8-is-uppercase-tests (Files): Likewise.
* modules/unicase/u8-tolower-tests (Files): Likewise.
* modules/unicase/u8-totitle-tests (Files): Likewise.
* modules/unicase/u8-toupper-tests (Files): Likewise.
* modules/unicase/u16-casecmp-tests (Files): Likewise.
* modules/unicase/u16-casecoll-tests (Files): Likewise.
* modules/unicase/u16-casefold-tests (Files): Likewise.
* modules/unicase/u16-is-cased-tests (Files): Likewise.
* modules/unicase/u16-is-casefolded-tests (Files): Likewise.
* modules/unicase/u16-is-lowercase-tests (Files): Likewise.
* modules/unicase/u16-is-titlecase-tests (Files): Likewise.
* modules/unicase/u16-is-uppercase-tests (Files): Likewise.
* modules/unicase/u16-tolower-tests (Files): Likewise.
* modules/unicase/u16-totitle-tests (Files): Likewise.
* modules/unicase/u16-toupper-tests (Files): Likewise.
* modules/unicase/u32-casecmp-tests (Files): Likewise.
* modules/unicase/u32-casecoll-tests (Files): Likewise.
* modules/unicase/u32-casefold-tests (Files): Likewise.
* modules/unicase/u32-is-cased-tests (Files): Likewise.
* modules/unicase/u32-is-casefolded-tests (Files): Likewise.
* modules/unicase/u32-is-lowercase-tests (Files): Likewise.
* modules/unicase/u32-is-titlecase-tests (Files): Likewise.
* modules/unicase/u32-is-uppercase-tests (Files): Likewise.
* modules/unicase/u32-tolower-tests (Files): Likewise.
* modules/unicase/u32-totitle-tests (Files): Likewise.
* modules/unicase/u32-toupper-tests (Files): Likewise.
* modules/unicase/ulc-casecmp-tests (Files): Likewise.
* modules/unicase/ulc-casecoll-tests (Files): Likewise.
* modules/uniconv/u8-conv-from-enc-tests (Files): Likewise.
* modules/uniconv/u8-conv-to-enc-tests (Files): Likewise.
* modules/uniconv/u8-strconv-from-enc-tests (Files): Likewise.
* modules/uniconv/u8-strconv-to-enc-tests (Files): Likewise.
* modules/uniconv/u16-conv-from-enc-tests (Files): Likewise.
* modules/uniconv/u16-conv-to-enc-tests (Files): Likewise.
* modules/uniconv/u16-strconv-from-enc-tests (Files): Likewise.
* modules/uniconv/u16-strconv-to-enc-tests (Files): Likewise.
* modules/uniconv/u32-conv-from-enc-tests (Files): Likewise.
* modules/uniconv/u32-conv-to-enc-tests (Files): Likewise.
* modules/uniconv/u32-strconv-from-enc-tests (Files): Likewise.
* modules/uniconv/u32-strconv-to-enc-tests (Files): Likewise.
* modules/unictype/bidicategory-byname-tests (Files): Likewise.
* modules/unictype/bidicategory-name-tests (Files): Likewise.
* modules/unictype/bidicategory-of-tests (Files): Likewise.
* modules/unictype/bidicategory-test-tests (Files): Likewise.
* modules/unictype/block-list-tests (Files): Likewise.
* modules/unictype/block-of-tests (Files): Likewise.
* modules/unictype/block-test-tests (Files): Likewise.
* modules/unictype/category-C-tests (Files): Likewise.
* modules/unictype/category-Cc-tests (Files): Likewise.
* modules/unictype/category-Cf-tests (Files): Likewise.
* modules/unictype/category-Cn-tests (Files): Likewise.
* modules/unictype/category-Co-tests (Files): Likewise.
* modules/unictype/category-Cs-tests (Files): Likewise.
* modules/unictype/category-L-tests (Files): Likewise.
* modules/unictype/category-Ll-tests (Files): Likewise.
* modules/unictype/category-Lm-tests (Files): Likewise.
* modules/unictype/category-Lo-tests (Files): Likewise.
* modules/unictype/category-Lt-tests (Files): Likewise.
* modules/unictype/category-Lu-tests (Files): Likewise.
* modules/unictype/category-M-tests (Files): Likewise.
* modules/unictype/category-Mc-tests (Files): Likewise.
* modules/unictype/category-Me-tests (Files): Likewise.
* modules/unictype/category-Mn-tests (Files): Likewise.
* modules/unictype/category-N-tests (Files): Likewise.
* modules/unictype/category-Nd-tests (Files): Likewise.
* modules/unictype/category-Nl-tests (Files): Likewise.
* modules/unictype/category-No-tests (Files): Likewise.
* modules/unictype/category-P-tests (Files): Likewise.
* modules/unictype/category-Pc-tests (Files): Likewise.
* modules/unictype/category-Pd-tests (Files): Likewise.
* modules/unictype/category-Pe-tests (Files): Likewise.
* modules/unictype/category-Pf-tests (Files): Likewise.
* modules/unictype/category-Pi-tests (Files): Likewise.
* modules/unictype/category-Po-tests (Files): Likewise.
* modules/unictype/category-Ps-tests (Files): Likewise.
* modules/unictype/category-S-tests (Files): Likewise.
* modules/unictype/category-Sc-tests (Files): Likewise.
* modules/unictype/category-Sk-tests (Files): Likewise.
* modules/unictype/category-Sm-tests (Files): Likewise.
* modules/unictype/category-So-tests (Files): Likewise.
* modules/unictype/category-Z-tests (Files): Likewise.
* modules/unictype/category-Zl-tests (Files): Likewise.
* modules/unictype/category-Zp-tests (Files): Likewise.
* modules/unictype/category-Zs-tests (Files): Likewise.
* modules/unictype/category-and-not-tests (Files): Likewise.
* modules/unictype/category-and-tests (Files): Likewise.
* modules/unictype/category-byname-tests (Files): Likewise.
* modules/unictype/category-name-tests (Files): Likewise.
* modules/unictype/category-none-tests (Files): Likewise.
* modules/unictype/category-of-tests (Files): Likewise.
* modules/unictype/category-or-tests (Files): Likewise.
* modules/unictype/category-test-withtable-tests (Files): Likewise.
* modules/unictype/combining-class-tests (Files): Likewise.
* modules/unictype/ctype-alnum-tests (Files): Likewise.
* modules/unictype/ctype-alpha-tests (Files): Likewise.
* modules/unictype/ctype-blank-tests (Files): Likewise.
* modules/unictype/ctype-cntrl-tests (Files): Likewise.
* modules/unictype/ctype-digit-tests (Files): Likewise.
* modules/unictype/ctype-graph-tests (Files): Likewise.
* modules/unictype/ctype-lower-tests (Files): Likewise.
* modules/unictype/ctype-print-tests (Files): Likewise.
* modules/unictype/ctype-punct-tests (Files): Likewise.
* modules/unictype/ctype-space-tests (Files): Likewise.
* modules/unictype/ctype-upper-tests (Files): Likewise.
* modules/unictype/ctype-xdigit-tests (Files): Likewise.
* modules/unictype/decimal-digit-tests (Files): Likewise.
* modules/unictype/digit-tests (Files): Likewise.
* modules/unictype/mirror-tests (Files): Likewise.
* modules/unictype/numeric-tests (Files): Likewise.
* modules/unictype/property-alphabetic-tests (Files): Likewise.
* modules/unictype/property-ascii-hex-digit-tests (Files): Likewise.
* modules/unictype/property-bidi-arabic-digit-tests (Files): Likewise.
* modules/unictype/property-bidi-arabic-right-to-left-tests (Files):
Likewise.
* modules/unictype/property-bidi-block-separator-tests (Files):
Likewise.
* modules/unictype/property-bidi-boundary-neutral-tests (Files):
Likewise.
* modules/unictype/property-bidi-common-separator-tests (Files):
Likewise.
* modules/unictype/property-bidi-control-tests (Files): Likewise.
* modules/unictype/property-bidi-embedding-or-override-tests (Files):
Likewise.
* modules/unictype/property-bidi-eur-num-separator-tests (Files):
Likewise.
* modules/unictype/property-bidi-eur-num-terminator-tests (Files):
Likewise.
* modules/unictype/property-bidi-european-digit-tests (Files): Likewise.
* modules/unictype/property-bidi-hebrew-right-to-left-tests (Files):
Likewise.
* modules/unictype/property-bidi-left-to-right-tests (Files): Likewise.
* modules/unictype/property-bidi-non-spacing-mark-tests (Files):
Likewise.
* modules/unictype/property-bidi-other-neutral-tests (Files): Likewise.
* modules/unictype/property-bidi-pdf-tests (Files): Likewise.
* modules/unictype/property-bidi-segment-separator-tests (Files):
Likewise.
* modules/unictype/property-bidi-whitespace-tests (Files): Likewise.
* modules/unictype/property-byname-tests (Files): Likewise.
* modules/unictype/property-combining-tests (Files): Likewise.
* modules/unictype/property-composite-tests (Files): Likewise.
* modules/unictype/property-currency-symbol-tests (Files): Likewise.
* modules/unictype/property-dash-tests (Files): Likewise.
* modules/unictype/property-decimal-digit-tests (Files): Likewise.
* modules/unictype/property-default-ignorable-code-point-tests (Files):
Likewise.
* modules/unictype/property-deprecated-tests (Files): Likewise.
* modules/unictype/property-diacritic-tests (Files): Likewise.
* modules/unictype/property-extender-tests (Files): Likewise.
* modules/unictype/property-format-control-tests (Files): Likewise.
* modules/unictype/property-grapheme-base-tests (Files): Likewise.
* modules/unictype/property-grapheme-extend-tests (Files): Likewise.
* modules/unictype/property-grapheme-link-tests (Files): Likewise.
* modules/unictype/property-hex-digit-tests (Files): Likewise.
* modules/unictype/property-hyphen-tests (Files): Likewise.
* modules/unictype/property-id-continue-tests (Files): Likewise.
* modules/unictype/property-id-start-tests (Files): Likewise.
* modules/unictype/property-ideographic-tests (Files): Likewise.
* modules/unictype/property-ids-binary-operator-tests (Files): Likewise.
* modules/unictype/property-ids-trinary-operator-tests (Files):
Likewise.
* modules/unictype/property-ignorable-control-tests (Files): Likewise.
* modules/unictype/property-iso-control-tests (Files): Likewise.
* modules/unictype/property-join-control-tests (Files): Likewise.
* modules/unictype/property-left-of-pair-tests (Files): Likewise.
* modules/unictype/property-line-separator-tests (Files): Likewise.
* modules/unictype/property-logical-order-exception-tests (Files):
Likewise.
* modules/unictype/property-lowercase-tests (Files): Likewise.
* modules/unictype/property-math-tests (Files): Likewise.
* modules/unictype/property-non-break-tests (Files): Likewise.
* modules/unictype/property-not-a-character-tests (Files): Likewise.
* modules/unictype/property-numeric-tests (Files): Likewise.
* modules/unictype/property-other-alphabetic-tests (Files): Likewise.
* modules/unictype/property-other-default-ignorable-code-point-tests
(Files): Likewise.
* modules/unictype/property-other-grapheme-extend-tests (Files):
Likewise.
* modules/unictype/property-other-id-continue-tests (Files): Likewise.
* modules/unictype/property-other-id-start-tests (Files): Likewise.
* modules/unictype/property-other-lowercase-tests (Files): Likewise.
* modules/unictype/property-other-math-tests (Files): Likewise.
* modules/unictype/property-other-uppercase-tests (Files): Likewise.
* modules/unictype/property-paired-punctuation-tests (Files): Likewise.
* modules/unictype/property-paragraph-separator-tests (Files): Likewise.
* modules/unictype/property-pattern-syntax-tests (Files): Likewise.
* modules/unictype/property-pattern-white-space-tests (Files): Likewise.
* modules/unictype/property-private-use-tests (Files): Likewise.
* modules/unictype/property-punctuation-tests (Files): Likewise.
* modules/unictype/property-quotation-mark-tests (Files): Likewise.
* modules/unictype/property-radical-tests (Files): Likewise.
* modules/unictype/property-sentence-terminal-tests (Files): Likewise.
* modules/unictype/property-soft-dotted-tests (Files): Likewise.
* modules/unictype/property-space-tests (Files): Likewise.
* modules/unictype/property-terminal-punctuation-tests (Files):
Likewise.
* modules/unictype/property-test-tests (Files): Likewise.
* modules/unictype/property-titlecase-tests (Files): Likewise.
* modules/unictype/property-unassigned-code-value-tests (Files):
Likewise.
* modules/unictype/property-unified-ideograph-tests (Files): Likewise.
* modules/unictype/property-uppercase-tests (Files): Likewise.
* modules/unictype/property-variation-selector-tests (Files): Likewise.
* modules/unictype/property-white-space-tests (Files): Likewise.
* modules/unictype/property-xid-continue-tests (Files): Likewise.
* modules/unictype/property-xid-start-tests (Files): Likewise.
* modules/unictype/property-zero-width-tests (Files): Likewise.
* modules/unictype/scripts-tests (Files): Likewise.
* modules/unictype/syntax-c-ident-tests (Files): Likewise.
* modules/unictype/syntax-c-whitespace-tests (Files): Likewise.
* modules/unictype/syntax-java-ident-tests (Files): Likewise.
* modules/unictype/syntax-java-whitespace-tests (Files): Likewise.
* modules/unilbrk/u8-possible-linebreaks-tests (Files): Likewise.
* modules/unilbrk/u8-width-linebreaks-tests (Files): Likewise.
* modules/unilbrk/u16-possible-linebreaks-tests (Files): Likewise.
* modules/unilbrk/u16-width-linebreaks-tests (Files): Likewise.
* modules/unilbrk/u32-possible-linebreaks-tests (Files): Likewise.
* modules/unilbrk/u32-width-linebreaks-tests (Files): Likewise.
* modules/unilbrk/ulc-possible-linebreaks-tests (Files): Likewise.
* modules/unilbrk/ulc-width-linebreaks-tests (Files): Likewise.
* modules/uninorm/canonical-decomposition-tests (Files): Likewise.
* modules/uninorm/compat-decomposition-tests (Files): Likewise.
* modules/uninorm/composition-tests (Files): Likewise.
* modules/uninorm/decomposing-form-tests (Files): Likewise.
* modules/uninorm/decomposition-tests (Files): Likewise.
* modules/uninorm/filter-tests (Files): Likewise.
* modules/uninorm/nfc-tests (Files): Likewise.
* modules/uninorm/nfd-tests (Files): Likewise.
* modules/uninorm/nfkc-tests (Files): Likewise.
* modules/uninorm/nfkd-tests (Files): Likewise.
* modules/uninorm/u8-normcmp-tests (Files): Likewise.
* modules/uninorm/u8-normcoll-tests (Files): Likewise.
* modules/uninorm/u16-normcmp-tests (Files): Likewise.
* modules/uninorm/u16-normcoll-tests (Files): Likewise.
* modules/uninorm/u32-normcmp-tests (Files): Likewise.
* modules/uninorm/u32-normcoll-tests (Files): Likewise.
* modules/unistdio/u8-asnprintf-tests (Files): Likewise.
* modules/unistdio/u8-vasnprintf-tests (Files): Likewise.
* modules/unistdio/u8-vasprintf-tests (Files): Likewise.
* modules/unistdio/u8-vsnprintf-tests (Files): Likewise.
* modules/unistdio/u8-vsprintf-tests (Files): Likewise.
* modules/unistdio/u16-asnprintf-tests (Files): Likewise.
* modules/unistdio/u16-vasnprintf-tests (Files): Likewise.
* modules/unistdio/u16-vasprintf-tests (Files): Likewise.
* modules/unistdio/u16-vsnprintf-tests (Files): Likewise.
* modules/unistdio/u16-vsprintf-tests (Files): Likewise.
* modules/unistdio/u32-asnprintf-tests (Files): Likewise.
* modules/unistdio/u32-vasnprintf-tests (Files): Likewise.
* modules/unistdio/u32-vasprintf-tests (Files): Likewise.
* modules/unistdio/u32-vsnprintf-tests (Files): Likewise.
* modules/unistdio/u32-vsprintf-tests (Files): Likewise.
* modules/unistdio/ulc-asnprintf-tests (Files): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Files): Likewise.
* modules/unistdio/ulc-vasprintf-tests (Files): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Files): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Files): Likewise.
* modules/uniwbrk/u8-wordbreaks-tests (Files): Likewise.
* modules/uniwbrk/u16-wordbreaks-tests (Files): Likewise.
* modules/uniwbrk/u32-wordbreaks-tests (Files): Likewise.
* modules/uniwbrk/ulc-wordbreaks-tests (Files): Likewise.
* modules/uniwidth/u8-strwidth-tests (Files): Likewise.
* modules/uniwidth/u8-width-tests (Files): Likewise.
* modules/uniwidth/u16-strwidth-tests (Files): Likewise.
* modules/uniwidth/u16-width-tests (Files): Likewise.
* modules/uniwidth/u32-strwidth-tests (Files): Likewise.
* modules/uniwidth/u32-width-tests (Files): Likewise.
* modules/uniwidth/width-tests (Files): Likewise.
* modules/unlink-tests (Files): Likewise.
* modules/unsetenv-tests (Files): Likewise.
* modules/usleep-tests (Files): Likewise.
* modules/utimens-tests (Files): Likewise.
* modules/utimensat-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasnprintf-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* modules/vasprintf-tests (Files): Likewise.
* modules/vdprintf-posix-tests (Files): Likewise.
* modules/vfprintf-posix-tests (Files): Likewise.
* modules/vprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/wcrtomb-tests (Files): Likewise.
* modules/wcsnrtombs-tests (Files): Likewise.
* modules/wcsrtombs-tests (Files): Likewise.
* modules/wctype-tests (Files): Likewise.
* modules/wcwidth-tests (Files): Likewise.
* modules/xmemdup0-tests (Files): Likewise.
* modules/xprintf-posix-tests (Files): Likewise.
* modules/xvasprintf-tests (Files): Likewise.
2009-12-24 Eric Blake <ebb9@byu.net>
test-nanosleep: fix typo
* tests/test-nanosleep.c (SIGNATURE_CHECK): Fix typo in previous
patch.
Reported by Bruno Haible.
2009-12-24 Bruno Haible <bruno@clisp.org>
Reduce namespace pollution on glibc systems.
* lib/inttypes.in.h: Don't include <stdint.h> on glibc systems.
* lib/stdlib.in.h: Don't include <stdint.h>, <unistd.h> on glibc
systems.
* lib/unistd.in.h: Don't include <stdio.h>, <fcntl.h>, <stdlib.h>,
<getopt.h> on glibc systems.
* lib/fcntl.in.h: Don't include <sys/stat.h>, <unistd.h> on glibc
systems.
* lib/fcntl.c: Include <unistd.h> here instead.
2009-12-24 Bruno Haible <bruno@clisp.org>
* lib/stdlib.in.h (includes): Fix typo in today's commit.
2009-12-24 Eric Blake <ebb9@byu.net>
tests: add signature checks
* tests/signature.h (SIGNATURE_CHECK): New file.
* modules/atexit-tests (Files): Use it.
* modules/btowc-tests (Files): Likewise.
* modules/canonicalize-lgpl-tests (Files): Likewise.
* modules/ceilf-tests (Files): Likewise.
* modules/ceill-tests (Files): Likewise.
* modules/chown-tests (Files): Likewise.
* modules/dprintf-posix-tests (Files): Likewise.
* modules/dup2-tests (Files): Likewise.
* modules/dup3-tests (Files): Likewise.
* modules/duplocale-tests (Files): Likewise.
* modules/fchdir-tests (Files): Likewise.
* modules/fcntl-tests (Files): Likewise.
* modules/fdopendir-tests (Files): Likewise.
* modules/fflush-tests (Files): Likewise.
* modules/flock-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/fnmatch-tests (Files): Likewise.
* modules/fopen-tests (Files): Likewise.
* modules/fprintf-posix-tests (Files): Likewise.
* modules/freopen-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/fseek-tests (Files): Likewise.
* modules/fseeko-tests (Files): Likewise.
* modules/fsync-tests (Files): Likewise.
* modules/ftell-tests (Files): Likewise.
* modules/ftello-tests (Files): Likewise.
* modules/futimens-tests (Files): Likewise.
* modules/getaddrinfo-tests (Files): Likewise.
* modules/getcwd-tests (Files): Likewise.
* modules/getdelim-tests (Files): Likewise.
* modules/getdtablesize-tests (Files): Likewise.
* modules/getgroups-tests (Files): Likewise.
* modules/gethostname-tests (Files): Likewise.
* modules/getline-tests (Files): Likewise.
* modules/getopt-posix-tests (Files): Likewise.
* modules/gettimeofday-tests (Files): Likewise.
* modules/glob-tests (Files): Likewise.
* modules/iconv-tests (Files): Likewise.
* modules/inet_ntop-tests (Files): Likewise.
* modules/inet_pton-tests (Files): Likewise.
* modules/isblank-tests (Files): Likewise.
* modules/lchown-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/link-tests (Files): Likewise.
* modules/linkat-tests (Files): Likewise.
* modules/lseek-tests (Files): Likewise.
* modules/lstat-tests (Files): Likewise.
* modules/mbrtowc-tests (Files): Likewise.
* modules/mbsinit-tests (Files): Likewise.
* modules/mbsnrtowcs-tests (Files): Likewise.
* modules/mbsrtowcs-tests (Files): Likewise.
* modules/memchr-tests (Files): Likewise.
* modules/memcmp-tests (Files): Likewise.
* modules/memmem-tests (Files): Likewise.
* modules/memrchr-tests (Files): Likewise.
* modules/mkdir-tests (Files): Likewise.
* modules/mkfifo-tests (Files): Likewise.
* modules/mkfifoat-tests (Files): Likewise.
* modules/mknod-tests (Files): Likewise.
* modules/nanosleep-tests (Files): Likewise.
* modules/nl_langinfo-tests (Files): Likewise.
* modules/obstack-printf-tests (Files): Likewise.
* modules/open-tests (Files): Likewise.
* modules/openat-tests (Files): Likewise.
* modules/perror-tests (Files): Likewise.
* modules/pipe2-tests (Files): Likewise.
* modules/poll-tests (Files): Likewise.
* modules/popen-tests (Files): Likewise.
* modules/posix_spawn-tests (Files): Likewise.
* modules/posix_spawnp-tests (Files): Likewise.
* modules/pread-tests (Files): Likewise.
* modules/printf-posix-tests (Files): Likewise.
* modules/pty-tests (Files): Likewise.
* modules/random_r-tests (Files): Likewise.
* modules/rawmemchr-tests (Files): Likewise.
* modules/readlink-tests (Files): Likewise.
* modules/remove-tests (Files): Likewise.
* modules/rename-tests (Files): Likewise.
* modules/renameat-tests (Files): Likewise.
* modules/rmdir-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/select-tests (Files): Likewise.
* modules/setenv-tests (Files): Likewise.
* modules/sigaction-tests (Files): Likewise.
* modules/sleep-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/snprintf-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/stat-tests (Files): Likewise.
* modules/strcasestr-tests (Files): Likewise.
* modules/strchrnul-tests (Files): Likewise.
* modules/strerror-tests (Files): Likewise.
* modules/strsignal-tests (Files): Likewise.
* modules/strstr-tests (Files): Likewise.
* modules/strtod-tests (Files): Likewise.
* modules/strverscmp-tests (Files): Likewise.
* modules/symlink-tests (Files): Likewise.
* modules/symlinkat-tests (Files): Likewise.
* modules/times-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/tsearch-tests (Files): Likewise.
* modules/uname-tests (Files): Likewise.
* modules/unlink-tests (Files): Likewise.
* modules/unsetenv-tests (Files): Likewise.
* modules/usleep-tests (Files): Likewise.
* modules/utimensat-tests (Files): Likewise.
* modules/vasprintf-tests (Files): Likewise.
* modules/vdprintf-posix-tests (Files): Likewise.
* modules/vfprintf-posix-tests (Files): Likewise.
* modules/vprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/wcrtomb-tests (Files): Likewise.
* modules/wcsnrtombs-tests (Files): Likewise.
* modules/wcsrtombs-tests (Files): Likewise.
* modules/wcwidth-tests (Files): Likewise.
* tests/test-isfinite.c (isfinite): Ensure macro declaration.
* tests/test-isinf.c (isinf): Likewise.
* tests/test-isnan.c (isnan): Likewise.
* tests/test-signbit.c (signbit): Likewise.
* tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Ensure
declaration, either as macro or with correct signature.
(select): Ensure function under test is declared with correct
signature in correct header.
* tests/test-atexit.c (atexit): Likewise.
* tests/test-btowc.c (btowc): Likewise.
* tests/test-canonicalize-lgpl.c (realpath)
(canonicalize_file_name): Likewise.
* tests/test-ceilf1.c (ceilf): Likewise.
* tests/test-ceill.c (ceill): Likewise.
* tests/test-chown.c (chown): Likewise.
* tests/test-dprintf-posix.c (dprintf): Likewise.
* tests/test-dup2.c (dup2): Likewise.
* tests/test-dup3.c (dup3): Likewise.
* tests/test-duplocale.c (duplocale): Likewise.
* tests/test-fchdir.c (fchdir): Likewise.
* tests/test-fchownat.c (fchownat): Likewise.
* tests/test-fcntl.c (fcntl): Likewise.
* tests/test-fdopendir.c (fdopendir): Likewise.
* tests/test-fflush.c (fflush): Likewise.
* tests/test-flock.c (flock): Likewise.
* tests/test-floorf1.c (floorf): Likewise.
* tests/test-floorl.c (floorl): Likewise.
* tests/test-fnmatch.c (fnmatch): Likewise.
* tests/test-fopen.c (fopen): Likewise.
* tests/test-fprintf-posix.c (fprintf): Likewise.
* tests/test-freopen.c (freopen): Likewise.
* tests/test-frexp.c (frexp): Likewise.
* tests/test-frexpl.c (frexpl): Likewise.
* tests/test-fseek.c (fseek): Likewise.
* tests/test-fseeko.c (fseeko): Likewise.
* tests/test-fstatat.c (fstatat): Likewise.
* tests/test-fsync.c (fsync): Likewise.
* tests/test-ftell.c (ftell): Likewise.
* tests/test-ftello.c (ftello): Likewise.
* tests/test-futimens.c (futimens): Likewise.
* tests/test-getaddrinfo.c (getaddrinfo, freeaddrinfo)
(gai_strerror): Likewise.
* tests/test-getcwd.c (getcwd): Likewise.
* tests/test-getdelim.c (getdelim): Likewise.
* tests/test-getdtablesize.c (getdtablesize): Likewise.
* tests/test-getgroups.c (getgroups): Likewise.
* tests/test-gethostname.c (gethostname): Likewise.
* tests/test-getline.c (getline): Likewise.
* tests/test-getopt.c (getopt, getopt_long, getopt_long_only):
Likewise.
* tests/test-gettimeofday.c (gettimeofday): Likewise.
* tests/test-glob.c (glob, globfree): Likewise.
* tests/test-iconv.c (iconv, iconv_open, iconv_close): Likewise.
* tests/test-inet_ntop.c (inet_ntop): Likewise.
* tests/test-inet_pton.c (inet_pton): Likewise.
* tests/test-isblank.c (isblank): Likewise.
* tests/test-lchown.c (lchown): Likewise.
* tests/test-ldexpl.c (ldexpl): Likewise.
* tests/test-link.c (link): Likewise.
* tests/test-linkat.c (linkat): Likewise.
* tests/test-lseek.c (lseek): Likewise.
* tests/test-lstat.c (lstat): Likewise.
* tests/test-mbrtowc.c (mbrtowc): Likewise.
* tests/test-mbsinit.c (mbsinit): Likewise.
* tests/test-mbsnrtowcs.c (mbsnrtowcs): Likewise.
* tests/test-mbsrtowcs.c (mbsrtowcs): Likewise.
* tests/test-memchr.c (memchr): Likewise.
* tests/test-memcmp.c (memcmp): Likewise.
* tests/test-memmem.c (memmem): Likewise.
* tests/test-memrchr.c (memrchr): Likewise.
* tests/test-mkdir.c (mkdir): Likewise.
* tests/test-mkdirat.c (mkdirat): Likewise.
* tests/test-mkfifo.c (mkfifo): Likewise.
* tests/test-mkfifoat.c (mkfifoat, mknodat): Likewise.
* tests/test-mknod.c (mknod): Likewise.
* tests/test-nanosleep.c (nanosleep): Likewise.
* tests/test-nl_langinfo.c (nl_langinfo): Likewise.
* tests/test-obstack-printf.c (obstack_printf, obstack_vprintf):
Likewise.
* tests/test-open.c (open): Likewise.
* tests/test-openat.c (openat): Likewise.
* tests/test-perror.c (perror): Likewise.
* tests/test-pipe2.c (pipe2): Likewise.
* tests/test-poll.c (poll): Likewise.
* tests/test-popen.c (popen, pclose): Likewise.
* tests/test-posix_spawn1.c (posix_spawnp, posix_spawnattr_init)
(posix_spawnattr_destroy, posix_spawnattr_setsigmask)
(posix_spawnattr_setflags, posix_spawn_file_actions_init)
(posix_spawn_file_actions_destroy)
(posix_spawn_file_actions_addclose)
(posix_spawn_file_actions_addopen)
(posix_spawn_file_actions_adddup2): Likewise.
* tests/test-posix_spawn3.c (posix_spawn): Likewise.
* tests/test-pread.c (pread): Likewise.
* tests/test-printf-posix.c (printf): Likewise.
* tests/test-pty.c (openpty, forkpty): Likewise.
* tests/test-random_r.c (srandom_r, initstate_r, setstate_r)
(random_r): Likewise.
* tests/test-rawmemchr.c (rawmemchr): Likewise.
* tests/test-readlink.c (readlink): Likewise.
* tests/test-remove.c (remove): Likewise.
* tests/test-rename.c (rename): Likewise.
* tests/test-renameat.c (renameat): Likewise.
* tests/test-rmdir.c (rmdir): Likewise.
* tests/test-round1.c (round): Likewise.
* tests/test-roundf1.c (roundf): Likewise.
* tests/test-roundl.c (roundl): Likewise.
* tests/test-setenv.c (setenv): Likewise.
* tests/test-sigaction.c (sigaction): Likewise.
* tests/test-sleep.c (sleep): Likewise.
* tests/test-snprintf.c (snprintf): Likewise.
* tests/test-sprintf-posix.c (sprintf): Likewise.
* tests/test-stat.c (stat): Likewise.
* tests/test-stpncpy.c (stpncpy): Likewise.
* tests/test-strcasestr.c (strcasestr): Likewise.
* tests/test-strchrnul.c (strchrnul): Likewise.
* tests/test-strerror.c (strerror): Likewise.
* tests/test-strsignal.c (strsignal): Likewise.
* tests/test-strstr.c (strstr): Likewise.
* tests/test-strtod.c (strtod): Likewise.
* tests/test-strverscmp.c (strverscmp): Likewise.
* tests/test-symlink.c (symlink): Likewise.
* tests/test-symlinkat.c (symlinkat, readlinkat): Likewise.
* tests/test-times.c (times): Likewise.
* tests/test-trunc1.c (trunc): Likewise.
* tests/test-truncf1.c (truncf): Likewise.
* tests/test-truncl.c (truncl): Likewise.
* tests/test-tsearch.c (tdelete, tfind, tsearch, twalk):
Likewise.
* tests/test-uname.c (uname): Likewise.
* tests/test-unlink.c (unlink): Likewise.
* tests/test-unlinkat.c (unlinkat): Likewise.
* tests/test-unsetenv.c (unsetenv): Likewise.
* tests/test-usleep.c (usleep): Likewise.
* tests/test-utimensat.c (utimensat): Likewise.
* tests/test-vasprintf.c (asprintf, vasprintf): Likewise.
* tests/test-vdprintf-posix.c (vdprintf): Likewise.
* tests/test-vfprintf-posix.c (vfprintf): Likewise.
* tests/test-vprintf-posix.c (vprintf): Likewise.
* tests/test-vsnprintf.c (vsnprintf): Likewise.
* tests/test-vsprintf-posix.c (vsprintf): Likewise.
* tests/test-wcrtomb.c (wcrtomb): Likewise.
* tests/test-wcsnrtombs.c (wcsnrtombs): Likewise.
* tests/test-wcsrtombs.c (wcsrtombs): Likewise.
* tests/test-wcwidth.c (wcwidth): Likewise.
build: pull in conditional headers during GNULIB_POSIXCHECK
* lib/stdio.in.h (includes): Using GNULIB_POSIXCHECK also requires
definitions from any conditionally-included headers.
* lib/stdlib.in.h (includes): Likewise.
* lib/unistd.in.h (includes): Likewise.
2009-12-24 Bruno Haible <bruno@clisp.org>
* tests/test-argv-iter.c: Include header file being tested immediately
after config.h.
* tests/test-base64.c: Likewise.
* tests/test-flock.c: Likewise.
* tests/test-fsync.c: Likewise.
* tests/test-getdate.c: Likewise.
* tests/test-getndelim2.c: Likewise.
* tests/test-isfinite.c: Likewise.
* tests/test-isinf.c: Likewise.
* tests/test-strerror.c: Likewise.
* tests/test-strsignal.c: Likewise.
2009-12-23 Eric Blake <ebb9@byu.net>
unistd: work around cygwin bug
* lib/unistd.in.h (includes): Pick up headers needed for cygwin.
* doc/posix-functions/unlinkat.texi (unlinkat): Document the bug.
* doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
2009-12-23 Bruno Haible <bruno@clisp.org>
localename: More tests.
* tests/test-localename.c (SIZEOF): New macro.
(categories): New variable.
(test_locale_name, test_locale_name_posix, test_locale_name_environ,
test_locale_name_default): Add test w.r.t. thread locale.
(test_locale_name_thread): New function.
(main): Invoke it.
localename: Make aware of thread locale.
* lib/localename.h (gl_locale_name_thread): New declaration.
(gl_locale_name, gl_locale_name_posix, gl_locale_name_default): Clarify
behaviour with respect to thread locale.
* lib/localename.c: Include <limits.h>, <stddef.h>, <xlocale.h>,
<langinfo.h>, glthread/lock.h.
(SIZE_BITS): New macro.
(string_hash): New function.
(struct hash_node): New type.
(HASH_TABLE_SIZE): New macro.
(struniq_hash_table, struniq_lock): New variables.
(struniq): New function.
(gl_locale_name_thread): New function.
(gl_locale_name): Invoke it.
* m4/localename.m4 (gl_LOCALENAME): Test for uselocale function.
* modules/localename (Depends-on): Add lock.
Reported by Mike Gran <spk121@yahoo.com>.
2009-12-23 Eric Blake <ebb9@byu.net>
va-args: new module
* modules/va-args: New file.
* m4/va-args.m4 (gl_VA_ARGS): Likewise.
* MODULES.html.sh (Core language properties): Mention it.
gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_
* m4/gnulib-common.m4 (gl_COMMON): Create a more-appropriately
named alias for __attribute__((__unused__)).
* lib/chown.c: Update client.
* lib/fchmodat.c: Likewise.
* lib/fts.c: Likewise.
* lib/getdate.y: Likewise.
* lib/getgroups.c: Likewise.
* lib/getopt.c: Likewise.
* lib/getugroups.c: Likewise.
* lib/mkdir.c: Likewise.
* lib/mkfifo.c: Likewise.
* lib/mkfifoat.c: Likewise.
* lib/mknod.c: Likewise.
* lib/mknodat.c: Likewise.
* lib/readlink.c: Likewise.
* lib/se-context.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/sockets.c: Likewise.
* lib/symlink.c: Likewise.
* lib/symlinkat.c: Likewise.
* lib/unicodeio.c: Likewise.
* lib/unistr.h: Likewise.
* tests/test-areadlink.c: Likewise.
* tests/test-areadlinkat.c: Likewise.
* tests/test-filenamecat.c: Likewise.
* tests/test-fseeko.c: Likewise.
* tests/test-ftello.c: Likewise.
* tests/test-getdate.c: Likewise.
* tests/test-getgroups.c: Likewise.
* tests/test-gethostname.c: Likewise.
* tests/test-quotearg.c: Likewise.
* tests/test-version-etc.c: Likewise.
* tests/test-xalloc-die.c: Likewise.
* tests/test-xfprintf-posix.c: Likewise.
* tests/test-xprintf-posix.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
tests: avoid compiler warnings
* tests/test-fcntl.c (main): Delete unused parameters.
* tests/test-freopen-safer.c (main): Likewise.
* tests/test-xalloc-die.c (main): Mark unused parameters.
* tests/test-fseeko.c (main): Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-nanosleep.c (main): Avoid declaration warning.
* tests/test-sleep.c (main): Likewise.
* tests/test-unsetenv.c (main): Silence warning about string
literal.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise.
2009-12-23 Bruno Haible <bruno@clisp.org>
* tests/test-localename.c (test_locale_name): New function, extracted
from main. Also test mixed situations.
(test_locale_name_posix, test_locale_name_environ,
test_locale_name_default): New functions.
(main): Invoke them all.
* modules/localename-tests (configure.ac): Test for newlocale.
2009-12-23 Bruno Haible <bruno@clisp.org>
unistd: Ensure getcwd gets declared before being overridden.
* lib/unistd.in.h: Conditionally include <io.h>.
2009-12-22 Bruno Haible <bruno@clisp.org>
wchar: Diagnose broken combination of glibc and gcc versions and flags.
* m4/wchar.m4 (gl_WCHAR_H_INLINE_OK): New macro.
(gl_WCHAR_H): Invoke it.
* m4/btowc.m4 (gl_FUNC_BTOWC): Require it.
* doc/posix-headers/wchar.texi: Mention the interoperability problem.
Reported by Karl Berry <karl@freefriends.org>.
2009-12-22 Eric Blake <ebb9@byu.net>
math, unistd: avoid redundant includes
* lib/math.in.h (isnan): No need to re-include <math.h>.
* lib/unistd.in.h (getcwd): Likewise, for <stdlib.h>.
getsubopt: work around cygwin bug
* lib/stdlib.in.h (includes): Move unistd inclusion sooner, to
avoid conflicting with system getsubopt.
* doc/posix-functions/getsubopt.texi (getsubopt): Document the
bug.
getopt: synchronize from glibc
* lib/getopt.c (_getopt_initialize, _getopt_internal_r): Swap
parameter order. Adjust all callers.
(_getopt_internal_r, main): Adjust quoting in error messages.
Drop considerations for outdated POSIX 1003.2 error message.
* lib/getopt1.c (_getopt_long_r, _getopt_long_only_r): Adjust
callers.
* lib/getopt_int.h (_getopt_internal_r): Adjust prototype.
test-getopt: test stderr behavior
* modules/getopt-posix-tests (Depends-on): Add dup2.
* tests/test-getopt.c (ASSERT): Avoid stderr.
(main): Move stderr to a temporary file.
* tests/test-getopt.h (getopt_loop): No longer manipulate opterr.
Instead, add parameter to inform caller if output occurred.
(test_getopt): Adjust all existing tests to expect silence, and
add new tests of leading ":".
* doc/glibc-functions/getopt_long.texi (getopt_long): Document
glibc shortcomings with leading "-:" or "+:" in optstring.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
* doc/posix-functions/getopt.texi (getopt): Likewise.
test-getopt: enhance test
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Require that getopt_long
supports optind=0.
* tests/test-getopt.c (OPTIND_MIN): Move...
* tests/test-getopt.h (OPTIND_MIN): ...here.
* tests/test-getopt_long.h (test_getopt_long): Add more coverage.
Require that optind=0 works, since modern BSD supports it in
addition to optreset, and since coreutils expects it.
(test_getopt_long_only): New test.
* doc/glibc-functions/getopt_long.texi (getopt_long): Document
glibc shortcomings with 'W;', and enforcement of optind=0.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
2009-12-21 Bruno Haible <bruno@clisp.org>
localename: Improvements for MacOS X and Cygwin.
* lib/localename.h (gl_locale_name_environ): New declaration.
* lib/localename.c (gl_locale_name_environ): New function, extracted from
gl_locale_name_posix. Ignore dummy LANG values on MacOS X and Cygwin.
(gl_locale_name_posix): Invoke it.
(gl_locale_name_default): Add comments. Use Windows native API also on
Cygwin.
2009-12-21 Bruno Haible <bruno@clisp.org>
Update list of Win32 locale ids.
* lib/localename.c (LANG_ROMANSH): Renamed from LANG_RHAETO_ROMANCE.
(LANG_SAMI): Renamed from LANG_SAAMI.
(LANG_BASHKIR, LANG_LUXEMBOURGISH, LANG_GREENLANDIC,
LANG_MAPUDUNGUN, LANG_MOHAWK, LANG_BRETON, LANG_OCCITAN, LANG_CORSICAN,
LANG_ALSATIAN, LANG_YAKUT, LANG_KICHE, LANG_KINYARWANDA, LANG_WOLOF,
LANG_DARI, LANG_SCOTTISH_GAELIC): New macros.
(SUBLANG_AFRIKAANS_SOUTH_AFRICA, SUBLANG_ALBANIAN_ALBANIA,
SUBLANG_ALSATIAN_FRANCE, SUBLANG_AMHARIC_ETHIOPIA,
SUBLANG_ARMENIAN_ARMENIA, SUBLANG_ASSAMESE_INDIA,
SUBLANG_BASHKIR_RUSSIA, SUBLANG_BASQUE_BASQUE,
SUBLANG_BELARUSIAN_BELARUS, SUBLANG_BRETON_FRANCE,
SUBLANG_BULGARIAN_BULGARIA, SUBLANG_CAMBODIAN_CAMBODIA,
SUBLANG_CATALAN_SPAIN, SUBLANG_CORSICAN_FRANCE,
SUBLANG_CZECH_CZECH_REPUBLIC, SUBLANG_DANISH_DENMARK,
SUBLANG_DARI_AFGHANISTAN, SUBLANG_DIVEHI_MALDIVES,
SUBLANG_DUTCH_SURINAM, SUBLANG_ESTONIAN_ESTONIA,
SUBLANG_FAEROESE_FAROE_ISLANDS, SUBLANG_FARSI_IRAN,
SUBLANG_FINNISH_FINLAND, SUBLANG_FRISIAN_NETHERLANDS,
SUBLANG_GALICIAN_SPAIN, SUBLANG_GEORGIAN_GEORGIA,
SUBLANG_GREEK_GREECE, SUBLANG_GREENLANDIC_GREENLAND,
SUBLANG_GUJARATI_INDIA, SUBLANG_HAUSA_NIGERIA_LATIN,
SUBLANG_HEBREW_ISRAEL, SUBLANG_HINDI_INDIA, SUBLANG_HUNGARIAN_HUNGARY,
SUBLANG_ICELANDIC_ICELAND, SUBLANG_IGBO_NIGERIA,
SUBLANG_INDONESIAN_INDONESIA, SUBLANG_INUKTITUT_CANADA,
SUBLANG_INUKTITUT_CANADA_LATIN, SUBLANG_IRISH_IRELAND,
SUBLANG_JAPANESE_JAPAN, SUBLANG_KANNADA_INDIA,
SUBLANG_KAZAK_KAZAKHSTAN, SUBLANG_KICHE_GUATEMALA,
SUBLANG_KINYARWANDA_RWANDA, SUBLANG_KONKANI_INDIA,
SUBLANG_KYRGYZ_KYRGYZSTAN, SUBLANG_LAO_LAOS, SUBLANG_LATVIAN_LATVIA,
SUBLANG_LITHUANIAN_LITHUANIA, SUBLANG_LOWER_SORBIAN_GERMANY,
SUBLANG_LUXEMBOURGISH_LUXEMBOURG, SUBLANG_MACEDONIAN_MACEDONIA,
SUBLANG_MALAYALAM_INDIA, SUBLANG_MALTESE_MALTA,
SUBLANG_MAORI_NEW_ZEALAND, SUBLANG_MAPUDUNGUN_CHILE,
SUBLANG_MARATHI_INDIA, SUBLANG_MOHAWK_CANADA, SUBLANG_NEPALI_NEPAL,
SUBLANG_OCCITAN_FRANCE, SUBLANG_ORIYA_INDIA,
SUBLANG_PASHTO_AFGHANISTAN, SUBLANG_POLISH_POLAND,
SUBLANG_ROMANSH_SWITZERLAND, SUBLANG_SAMI_NORTHERN_NORWAY,
SUBLANG_SAMI_NORTHERN_SWEDEN, SUBLANG_SAMI_NORTHERN_FINLAND,
SUBLANG_SAMI_LULE_NORWAY, SUBLANG_SAMI_LULE_SWEDEN,
SUBLANG_SAMI_SOUTHERN_NORWAY, SUBLANG_SAMI_SOUTHERN_SWEDEN,
SUBLANG_SAMI_SKOLT_FINLAND, SUBLANG_SAMI_INARI_FINLAND,
SUBLANG_SANSKRIT_INDIA, SUBLANG_SINHALESE_SRI_LANKA,
SUBLANG_SLOVAK_SLOVAKIA, SUBLANG_SLOVENIAN_SLOVENIA,
SUBLANG_SOTHO_SOUTH_AFRICA, SUBLANG_SWAHILI_KENYA,
SUBLANG_SWEDISH_SWEDEN, SUBLANG_SYRIAC_SYRIA,
SUBLANG_TAGALOG_PHILIPPINES, SUBLANG_TAJIK_TAJIKISTAN,
SUBLANG_TAMIL_INDIA, SUBLANG_TATAR_RUSSIA, SUBLANG_TELUGU_INDIA,
SUBLANG_THAI_THAILAND, SUBLANG_TSWANA_SOUTH_AFRICA,
SUBLANG_TURKISH_TURKEY, SUBLANG_TURKMEN_TURKMENISTAN,
SUBLANG_UKRAINIAN_UKRAINE, SUBLANG_UPPER_SORBIAN_GERMANY,
SUBLANG_VIETNAMESE_VIETNAM, SUBLANG_WELSH_UNITED_KINGDOM,
SUBLANG_WOLOF_SENEGAL, SUBLANG_XHOSA_SOUTH_AFRICA,
SUBLANG_YAKUT_RUSSIA, SUBLANG_YI_PRC, SUBLANG_YORUBA_NIGERIA,
SUBLANG_ZULU_SOUTH_AFRICA): New macros.
(gl_locale_name_from_win32_LANGID): Handle also the territory neutral
locale ids. Add support for Alsatian, Bashkir, Breton, Corsican, Dari,
Greenlandic, K'iche', Kinyarwanda, Luxembourgish, Mapudungun, Mohawk,
Occitan, Scottish Gaelic, Wolof, Yakut. Change language code for Yi.
Add more languages and countries for Sami, Sorbian. Add more countries
for Serbian, Dutch. Add more scripts for Inuktitut. Be more precise
for Pashto. Change country for Syriac, Tswana.
2009-12-21 Eric Blake <ebb9@byu.net>
test-utimens: avoid spurious failure
* tests/test-chown.h (nap): Factor...
* tests/nap.h: ...into new file.
* tests/test-lchown.h (nap): Avoid duplication.
* tests/test-utimens-common.h (nap): Use shared implementation,
necessary on file systems with 1-second resolution.
* modules/chown-tests (Files): Include new file.
* modules/fdutimensat-tests (Files): Likewise.
* modules/futimens-tests (Files): Likewise.
* modules/lchown-tests (Files): Likewise.
* modules/openat-tests (Files): Likewise.
* modules/utimens-tests (Files): Likewise.
* modules/utimensat-tests (Files): Likewise.
2009-12-19 Eric Blake <ebb9@byu.net>
futimens, utimensat: work around Linux bug
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect ctime bug.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
* lib/utimensat.c (rpl_utimensat): Work around it.
* lib/futimens.c (rpl_futimens): Adjust comment.
utimens: work around Linux ctime bug
* lib/utimens.c (detect_ctime_bug): New helper function.
(update_timespec): Differentiate between workaround needed for
this bug vs. what is needed for systems that lack utimensat.
(fdutimens, lutimens): Work around bug.
utimens: check for ctime update
* tests/test-utimens-common.h (check_ctime): Define.
* tests/test-utimens.h (test_utimens): Expose the Linux bug.
* tests/test-futimens.h (test_futimens): Likewise.
* tests/test-lutimens.h (test_lutimens): Likewise.
* doc/posix-functions/futimens.texi (futimens): Document the bug.
* doc/posix-functions/utimensat.texi (utimensat): Likewise.
2009-12-19 Bruno Haible <bruno@clisp.org>
dprintf-posix: Check against memory leak fixed on 2009-12-15.
* tests/test-dprintf-posix2.sh: New file.
* tests/test-dprintf-posix2.c: New file.
* modules/dprintf-posix-tests (Files): Add them.
(configure.ac): Check for getrlimit and setrlimit.
(Makefile.am): Augment TESTS and CHECK_PROGRAMS.
2009-12-19 Bruno Haible <bruno@clisp.org>
fprintf-posix: Check against memory leak fixed on 2009-12-15.
* tests/test-fprintf-posix3.sh: New file.
* tests/test-fprintf-posix3.c: New file.
* modules/fprintf-posix-tests (Files): Add them.
(Makefile.am): Augment TESTS and CHECK_PROGRAMS.
2009-12-19 Eric Blake <ebb9@byu.net>
dirfd: fix prototype
* lib/dirent.in.h (dirfd): Argument is not const, per POSIX.
* lib/dirfd.c (dirfd): Likewise.
canonicalize: reduce memory usage
* lib/canonicalize.c (canonicalize_filename_mode): Trim the
allocation to size.
Reported by Solar Designer <solar@openwall.com>.
2009-12-19 Bruno Haible <bruno@clisp.org>
New module attribute 'Applicability'.
* modules/TEMPLATE-EXTENDED: New field 'Applicability'.
* gnulib-tool: New option --extract-applicability.
(func_usage): Document it.
(sed_extract_prog): Recognize it.
(func_get_applicability): New function.
(func_import): Generalize handling of 'link-warning' module.
* modules/link-warning (Applicability): New section.
* modules/arg-nonnull (Applicability): New section.
Repoted by Simon Josefsson <simon@josefsson.org>.
2009-12-19 Bruno Haible <bruno@clisp.org>
fflush: tweak
* lib/fflush.c (update_fpos_cache): Don't use fpos_t on Cygwin.
* lib/fseeko.c (rpl_fseeko): Likewise.
2009-12-16 José E. Marchesi <jemarch@gnu.org> (tiny change)
* lib/gl_list.h: Fix typo in comment.
2009-12-16 Eric Blake <ebb9@byu.net>
fcntl: use to simplify other modules
* modules/cloexec (Depends-on): Add fcntl.
* modules/fchdir (Depends-on): Likewise.
* modules/fd-safer-flag (Depends-on): Likewise.
* modules/unistd-safer (Depends-on): Likewise.
* modules/dup3 (configure.ac): Set module indicator.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Replace fcntl if fchdir is
missing.
* lib/fchdir.c (_gl_register_dup): Fix comment.
* lib/cloexec.c (dup_cloexec): Simplify, by relying on fcntl.
* lib/dup-safer.c (dup_safer): Likewise.
* lib/dup-safer-flag.c (dup_safer_flag): Likewise.
* lib/dup3.c (dup3): Likewise.
* tests/test-fchdir.c (main): Enhance test.
Fixes a dup_cloexec bug reported by Ondřej Vašík.
fcntl: port portions of fcntl to mingw
* m4/fcntl.m4 (gl_FUNC_FCNTL): Also build fcntl.c on mingw.
* lib/fcntl.c (fcntl) <F_DUPFD, F_DUPFD_CLOEXEC, F_GETFD>: Provide
replacement for mingw.
* modules/fcntl (Description): Update.
(Depends-on): Add dup2.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness.
* modules/fcntl-h (Makefile.am): Substitute it.
* lib/fcntl.in.h (fcntl): Update declaration.
(F_DUPFD, F_GETFD): New macros, when needed.
* doc/posix-headers/fcntl.texi (fcntl.h): Update documentation.
* doc/posix-functions/fcntl.texi (fcntl): Likewise.
* tests/test-fcntl.c (check_flags, main): Enhance test for items
we now guarantee.
fcntl: work around cygwin bug in F_DUPFD
* m4/fcntl.m4 (gl_REPLACE_FCNTL): New macro.
(gl_FUNC_FCNTL): Use it. Test for F_DUPFD bug.
* lib/fcntl.c (rpl_fcntl) <F_DUPFD>: Work around it.
<F_DUPFD_CLOEXEC>: Reduce calls to _gl_register_dup.
* doc/posix-functions/fcntl.texi (fcntl): Document it.
fcntl: support F_DUPFD_CLOEXEC on systems with fcntl
* modules/fcntl (Files): List new files.
(configure.ac): Run a test.
* m4/fcntl.m4 (gl_FUNC_FCNTL): New file.
* lib/fcntl.c (rpl_fcntl): Likewise.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness defaults.
(gl_FCNTL_H): Always replace fcntl.h.
* modules/fcntl-h (Makefile.am): Substitute witnesses.
* lib/fcntl.in.h (fcntl): Declare replacement.
(F_DUPFD_CLOEXEC, GNULIB_defined_F_DUPFD_CLOEXEC): New macro when
needed, plus a witness.
* doc/posix-functions/fcntl.texi (fcntl): Document this.
* doc/posix-headers/fcntl.texi (fcntl.h): Likewise.
* tests/test-fcntl.c: New file.
* modules/fcntl-tests: Likewise.
binary-io: avoid potential compilation warning
* lib/binary-io.h [__DJGPP__]: Avoid null preprocessor
directives.
fflush: avoid compilation error on NetBSD
* lib/fflush.c (update_fpos_cache): Use a union to safely convert
between off_t and fpos_t, since the latter is sometimes a struct.
* lib/fseeko.c (rpl_fseeko): Likewise.
Reported by Alexander Nasonov <alnsn@yandex.ru>.
2009-12-15 Eric Blake <ebb9@byu.net>
fcntl-h, stdio, sys_ioctl: fix declarations
* lib/stdio.in.h (dprintf): Use of link warning on a variadic
function must not take arguments.
* lib/sys_ioctl.in.h (ioctl): Likewise.
* lib/fcntl.in.h (openat): Likewise. Declare extern.
(open): Add a link warning.
2009-12-15 Jim Meyering <meyering@redhat.com>
areadlink, areadlink-with-size: relax license to LGPLv2+
* modules/areadlink (License): Relax to LGPLv2+.
* modules/areadlink-with-size (License): Likewise.
2009-12-15 Joel E. Denny <jdenny@clemson.edu>
Bruno Haible <bruno@clisp.org>
*printf: Fix memory leak.
* lib/fprintf.c (fprintf): Free memory allocated by vasnprintf.
* lib/vfprintf.c (vfprintf): Likewise.
* lib/dprintf.c (dprintf): Likewise.
* lib/vdprintf.c (vdprintf): Likewise.
2009-12-14 Eric Blake <ebb9@byu.net>
accept4: adjust module dependencies
* modules/accept4 (Depends-on): Use fcntl-h, not fcntl.
utimens: one more try at avoiding compiler warning
* lib/utimens.c (lutimens): Lower scope of result.
2009-12-13 Bruno Haible <bruno@clisp.org>
Move the malloc checking from module 'list' to new module 'xlist'.
* modules/xlist: New file.
* lib/gl_xlist.h: New file.
* lib/gl_xlist.c: New file.
* lib/gl_list.h (gl_list_create_empty, gl_list_create,
gl_list_node_set_value, gl_list_set_at, gl_list_add_first,
gl_list_add_last, gl_list_add_before, gl_list_add_after,
gl_list_nx_add_at, gl_sortedlist_add): Disable declarations.
(gl_list_nx_create_empty, gl_list_nx_create, gl_list_node_nx_set_value,
gl_list_nx_set_at, gl_list_nx_add_first, gl_list_nx_add_last,
gl_list_nx_add_before, gl_list_nx_add_after, gl_list_nx_add_at,
gl_sortedlist_nx_add): New declarations.
(struct gl_list_implementation): Rename and change methods accordingly.
(gl_list_nx_create_empty): Renamed from gl_list_create_empty.
(gl_list_nx_create): Renamed from gl_list_create.
(gl_list_node_nx_set_value): Renamed from gl_list_node_set_value.
(gl_list_nx_set_at): Renamed from gl_list_set_at.
(gl_list_nx_add_first): Renamed from gl_list_add_first.
(gl_list_nx_add_last): Renamed from gl_list_add_last.
(gl_list_nx_add_before): Renamed from gl_list_add_before.
(gl_list_nx_add_after): Renamed from gl_list_add_after.
(gl_list_nx_add_at): Renamed from gl_list_add_at.
(gl_sortedlist_nx_add): Renamed from gl_sortedlist_add.
* lib/gl_list.c (gl_list_nx_create_empty): Renamed from
gl_list_create_empty.
(gl_list_nx_create): Renamed from gl_list_create.
(gl_list_node_nx_set_value): Renamed from gl_list_node_set_value.
(gl_list_nx_set_at): Renamed from gl_list_set_at.
(gl_list_nx_add_first): Renamed from gl_list_add_first.
(gl_list_nx_add_last): Renamed from gl_list_add_last.
(gl_list_nx_add_before): Renamed from gl_list_add_before.
(gl_list_nx_add_after): Renamed from gl_list_add_after.
(gl_list_nx_add_at): Renamed from gl_list_add_at.
(gl_sortedlist_nx_add): Renamed from gl_sortedlist_add.
* lib/gl_array_list.c: Don't include xalloc.h.
(gl_array_nx_create_empty): Renamed from gl_array_create_empty. Return
NULL upon out-of-memory.
(gl_array_nx_create): Renamed from gl_array_create. Return NULL upon
out-of-memory.
(gl_array_node_nx_set_value): Renamed from gl_array_node_set_value.
Change return type to 'int'.
(gl_array_nx_set_at): Renamed from gl_array_set_at.
(grow): Change return type to 'int'. Return -1 upon out-of-memory.
(gl_array_nx_add_first): Renamed from gl_array_add_first. Return NULL
upon out-of-memory.
(gl_array_nx_add_last): Renamed from gl_array_add_last. Return NULL
upon out-of-memory.
(gl_array_nx_add_before): Renamed from gl_array_add_before. Return NULL
upon out-of-memory.
(gl_array_nx_add_after): Renamed from gl_array_add_after. Return NULL
upon out-of-memory.
(gl_array_nx_add_at): Renamed from gl_array_add_at. Return NULL upon
out-of-memory.
(gl_array_sortedlist_nx_add): Renamed from gl_array_sortedlist_add.
Update.
(gl_array_list_implementation): Update.
* lib/gl_carray_list.c: Don't include xalloc.h.
(gl_carray_nx_create_empty): Renamed from gl_carray_create_empty.
Return NULL upon out-of-memory.
(gl_carray_nx_create): Renamed from gl_carray_create. Return NULL upon
out-of-memory.
(gl_carray_node_nx_set_value): Renamed from gl_carray_node_set_value.
Change return type to 'int'.
(gl_carray_nx_set_at): Renamed from gl_carray_set_at.
(grow): Change return type to 'int'. Return -1 upon out-of-memory.
(gl_carray_nx_add_first): Renamed from gl_carray_add_first. Return NULL
upon out-of-memory.
(gl_carray_nx_add_last): Renamed from gl_carray_add_last. Return NULL
upon out-of-memory.
(gl_carray_nx_add_at): Renamed from gl_carray_add_at. Return NULL upon
out-of-memory.
(gl_carray_nx_add_before): Renamed from gl_carray_add_before. Update.
(gl_carray_nx_add_after): Renamed from gl_carray_add_after. Update.
(gl_carray_sortedlist_nx_add): Renamed from gl_carray_sortedlist_add.
Update.
(gl_carray_list_implementation): Update.
* lib/gl_anyhash_list2.h (hash_resize): Do nothing upon out-of-memory.
* lib/gl_anylinked_list2.h (gl_linked_nx_create_empty): Renamed from
gl_linked_create_empty. Return NULL upon out-of-memory.
(gl_linked_nx_create): Renamed from gl_linked_create. Return NULL upon
out-of-memory.
(gl_linked_node_nx_set_value): Renamed from gl_linked_node_set_value.
Change return type to 'int'. Return -1 upon out-of-memory.
(gl_linked_nx_set_at): Renamed from gl_linked_set_at. Return NULL upon
out-of-memory.
(gl_linked_nx_add_first): Renamed from gl_linked_add_first. Return NULL
upon out-of-memory.
(gl_linked_nx_add_last): Renamed from gl_linked_add_last. Return NULL
upon out-of-memory.
(gl_linked_nx_add_before): Renamed from gl_linked_add_before. Return
NULL upon out-of-memory.
(gl_linked_nx_add_after): Renamed from gl_linked_add_after. Return NULL
upon out-of-memory.
(gl_linked_nx_add_at): Renamed from gl_linked_add_at. Return NULL upon
out-of-memory.
(gl_linked_sortedlist_nx_add): Renamed from gl_linked_sortedlist_add.
Update.
* lib/gl_linked_list.c: Don't include xalloc.h.
(gl_linked_list_implementation): Update.
* lib/gl_linkedhash_list.c: Don't include xalloc.h.
(add_to_bucket): Change return type to 'int'.
(gl_linkedhash_list_implementation): Update.
* lib/gl_anytree_list1.h (free_subtree): New function.
* lib/gl_anytree_list2.h (gl_tree_nx_create_empty): Renamed from
gl_tree_create_empty. Return NULL upon out-of-memory.
(gl_tree_node_nx_set_value): Renamed from gl_tree_node_set_value.
Change return type to 'int'. Return -1 upon out-of-memory.
(gl_tree_nx_set_at): Renamed from gl_tree_set_at. Return NULL upon
out-of-memory.
(gl_tree_nx_add_at): Renamed from gl_tree_add_at. Update.
(gl_tree_remove_node): New function, moved here from
lib/gl_anyavltree_list2.h and lib/gl_anyrbtree_list2.h.
(gl_tree_sortedlist_nx_add): Renamed from gl_tree_sortedlist_add.
Update.
* lib/gl_anyavltree_list2.h (create_subtree_with_contents): Use
malloc, not xmalloc. Return NULL upon out-of-memory.
(gl_tree_nx_create): Renamed from gl_tree_create. Return NULL upon
out-of-memory.
(gl_tree_remove_node_from_tree): New function, extracted from
gl_tree_remove_node.
(gl_tree_nx_add_first): Renamed from gl_tree_add_first. Return NULL
upon out-of-memory.
(gl_tree_nx_add_last): Renamed from gl_tree_add_last. Return NULL upon
out-of-memory.
(gl_tree_nx_add_before): Renamed from gl_tree_add_before. Return NULL
upon out-of-memory.
(gl_tree_nx_add_after): Renamed from gl_tree_add_after. Return NULL
upon out-of-memory.
(gl_tree_remove_node): Remove function. Moved to gl_anytree_list2.h.
* lib/gl_anyrbtree_list2.h (create_subtree_with_contents): Use malloc,
not xmalloc. Return NULL upon out-of-memory.
(gl_tree_nx_create): Renamed from gl_tree_create. Return NULL upon
out-of-memory.
(gl_tree_remove_node_from_tree): New function, extracted from
gl_tree_remove_node.
(gl_tree_nx_add_first): Renamed from gl_tree_add_first. Return NULL
upon out-of-memory.
(gl_tree_nx_add_last): Renamed from gl_tree_add_last. Return NULL upon
out-of-memory.
(gl_tree_nx_add_before): Renamed from gl_tree_add_before. Return NULL
upon out-of-memory.
(gl_tree_nx_add_after): Renamed from gl_tree_add_after. Return NULL
upon out-of-memory.
(gl_tree_remove_node): Remove function. Moved to gl_anytree_list2.h.
* lib/gl_avltree_list.c: Don't include xalloc.h. Include
gl_anytree_list1.h before gl_anyavltree_list2.h.
(gl_avltree_list_implementation): Update.
* lib/gl_rbtree_list.c: Don't include xalloc.h. Include
gl_anytree_list1.h before gl_anyavltree_list2.h.
(gl_rbtree_list_implementation): Update.
* lib/gl_anytreehash_list1.h (add_to_bucket, add_nodes_to_buckets):
Change return type to 'int'. Return -1 upon out-of-memory. Use
__builtin_expect.
* lib/gl_avltreehash_list.c: Don't include xalloc.h.
(gl_avltreehash_list_implementation): Update.
* lib/gl_rbtreehash_list.c: Don't include xalloc.h.
(gl_rbtreehash_list_implementation): Update.
* modules/array-list (Depends-on): Remove xalloc.
* modules/carray-list (Depends-on): Likewise.
* modules/linked-list (Depends-on): Likewise.
* modules/linkedhash-list (Depends-on): Likewise.
* modules/avltree-list (Depends-on): Likewise.
* modules/rbtree-list (Depends-on): Likewise.
* modules/avltreehash-list (Depends-on): Likewise.
* modules/rbtreehash-list (Depends-on): Likewise.
* modules/xsublist: New file.
* lib/gl_xsublist.h: New file.
* lib/gl_xsublist.c: New file.
* lib/gl_sublist.h (gl_sublist_create): Disable declaration.
(gl_sublist_nx_create): New declaration.
* lib/gl_sublist.c: Don't include xalloc.h.
(gl_sublist_nx_create_empty): Renamed from gl_sublist_create_empty.
(gl_sublist_nx_create_fill): Renamed from gl_sublist_create_fill.
(gl_sublist_node_nx_set_value): Renamed from gl_sublist_node_set_value.
Change return type to 'int'. Return -1 upon out-of-memory.
(gl_sublist_nx_set_at): Renamed from gl_sublist_set_at. Return NULL
upon out-of-memory.
(gl_sublist_nx_add_first): Renamed from gl_sublist_add_first. Return
NULL upon out-of-memory.
(gl_sublist_nx_add_last): Renamed from gl_sublist_add_last. Return NULL
upon out-of-memory.
(gl_sublist_nx_add_before): Renamed from gl_sublist_add_before. Return
NULL upon out-of-memory.
(gl_sublist_nx_add_after): Renamed from gl_sublist_add_after. Return
NULL upon out-of-memory.
(gl_sublist_nx_add_at): Renamed from gl_sublist_add_at. Return NULL
upon out-of-memory.
(gl_sublist_sortedlist_nx_add): Renamed from gl_sublist_sortedlist_add.
(gl_sublist_list_implementation): Update.
(gl_sublist_nx_create): Renamed from gl_sublist_create. Return NULL
upon out-of-memory.
* modules/sublist (Depends-on): Remove xalloc.
* tests/test-array_list.c: Use gl_list_nx_* functions where possible.
* tests/test-carray_list.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
* modules/array-list-tests (Makefile.am): Don't link with @LIBINTL@.
* modules/carray-list-tests (Makefile.am): Likewise.
* modules/linked-list-tests (Makefile.am): Likewise.
* modules/linkedhash-list-tests (Makefile.am): Likewise.
* modules/avltree-list-tests (Makefile.am): Likewise.
* modules/rbtree-list-tests (Makefile.am): Likewise.
* modules/avltreehash-list-tests (Makefile.am): Likewise.
* modules/rbtreehash-list-tests (Makefile.am): Likewise.
* NEWS: Mention the changes.
* lib/clean-temp.c: Include gl_xlist.h.
* modules/clean-temp (Depends-on): Add xlist.
* lib/git-merge-changelog.c: Include gl_xlist.h instead of gl_list.h.
* modules/git-merge-changelog (Depends-on): Add xlist. Remove list.
* tests/test-array_oset.c: Include gl_xlist.h.
* modules/array-oset-tests (Depends-on): Add xlist.
Reported by José E. Marchesi <jemarch@gnu.org>.
2009-12-13 Bruno Haible <bruno@clisp.org>
Move the malloc checking from module 'oset' to new module 'xoset'.
* modules/xoset: New file.
* lib/gl_xoset.h: New file.
* lib/gl_xoset.c: New file.
* lib/gl_oset.h (gl_oset_create_empty, gl_oset_add): Disable
declarations.
(gl_oset_nx_create_empty, gl_oset_nx_add): New declarations.
(struct gl_oset_implementation): Rename and change methods accordingly.
(gl_oset_nx_create_empty): Renamed from gl_oset_create_empty.
(gl_oset_nx_add): Renamed from gl_oset_add. Change return type to
'int'. Mark as __warn_unused_result__.
* lib/gl_oset.c (gl_oset_nx_create_empty): Renamed from
gl_oset_create_empty.
(gl_oset_nx_add): Renamed from gl_oset_add. Change return type to
'int'.
* lib/gl_array_oset.c: Don't include xalloc.h.
(gl_array_nx_create_empty): Renamed from gl_array_create_empty. Use
malloc, not xmalloc.
(grow): Change return type to 'int'. Don't call xalloc_die.
(gl_array_nx_add_at): Renamed from gl_array_add_at. Change return type
to 'int'.
(gl_array_nx_add): Renamed from gl_array_add. Change return type to
'int'.
(gl_array_oset_implementation): Update.
* lib/gl_anytree_oset.h (gl_tree_nx_create_empty): Renamed from
gl_tree_create_empty.
(gl_tree_nx_add): Renamed from gl_tree_add. Change return type to
'int'.
* lib/gl_avltree_oset.c: Don't include xalloc.h.
(gl_tree_nx_add_first): Renamed from gl_tree_add_first. Use malloc, not
xmalloc.
(gl_tree_nx_add_before): Renamed from gl_tree_add_before. Use malloc,
not xmalloc.
(gl_tree_nx_add_after): Renamed from gl_tree_add_after. Use malloc, not
xmalloc.
(gl_avltree_oset_implementation): Update.
* lib/gl_rbtree_oset.c: Don't include xalloc.h.
(gl_tree_nx_add_first): Renamed from gl_tree_add_first. Use malloc, not
xmalloc.
(gl_tree_nx_add_before): Renamed from gl_tree_add_before. Use malloc,
not xmalloc.
(gl_tree_nx_add_after): Renamed from gl_tree_add_after. Use malloc, not
xmalloc.
(gl_rbtree_oset_implementation): Update.
* modules/array-oset (Depends-on): Remove xalloc.
* modules/avltree-oset (Depends-on): Likewise.
* modules/rbtree-oset (Depends-on): Likewise.
* tests/test-array_oset.c: Use gl_oset_nx_* functions where possible.
* tests/test-avltree_oset.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* lib/gl_anytreehash_list1.h (add_to_bucket): Likewise.
* modules/avltree-oset-tests (Makefile.am): Don't link with @LIBINTL@.
* modules/rbtree-oset-tests (Makefile.am): Likewise.
* NEWS: Mention the change.
2009-12-05 Alfred M. Szmidt <ams@gnu.org>
maint.mk: allow a project to override release-prep commands
* top/maint.mk (alpha, beta, stable): Move release-preparatory
commands into a new rule.
(release-prep): New rule.
(release-prep-hook): New overridable variable.
2009-12-13 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (locale_charset): Fix comment about use of GetACP.
2009-12-13 Jim Meyering <meyering@redhat.com>
maint.mk (null_AM_MAKEFLAGS, built_programs): remove unused definitions
* top/maint.mk (null_AM_MAKEFLAGS, built_programs): Remove definitions.
2009-12-12 Bruno Haible <bruno@clisp.org>
duplocale: Tweak.
* lib/duplocale.c (rpl_duplocale): Mark categories array as 'const'.
2009-12-12 Karl Berry <karl@gnu.org>
* config/srclist.txt (strtoll.c): tab changes, no more sync.
2009-12-12 Bruno Haible <bruno@clisp.org>
* m4/po.m4: Undo incorrect untabification.
2009-12-12 Bruno Haible <bruno@clisp.org>
c-strtod, c-strtold: Use multithread-safe implementation on MacOS X.
* modules/c-strtod (Depends-on): Add locale.
* modules/c-strtold (Depends-on): Likewise.
2009-12-12 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (locale_charset): Add comment about use of GetACP.
2009-12-11 Eric Blake <ebb9@byu.net>
setenv: relax requirement in light of POSIX ruling
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test handling of "" but
not NULL.
* tests/test-setenv.c (main): Relax test.
* tests/test-unsetenv.c (main): Likewise.
* doc/posix-functions/setenv.texi (setenv): Document this.
* doc/posix-functions/unsetenv.texi (unsetenv): Likewise.
2009-12-11 Bruno Haible <bruno@clisp.org>
New module 'fd-safer-flag'.
* lib/dup-safer-flag.c: New file, extracted from lib/dup-safer.c.
* lib/dup-safer.c (dup_safer_flag): Remove function.
* lib/fd-safer-flag.c: New file, extracted from lib/fd-safer.c.
* lib/fd-safer.c (fd_safer_flag): Remove function.
* lib/unistd-safer.h (dup_safer_flag, fd_safer_flag): Update condition.
* modules/cloexec (configure.ac): Drop indicator macro.
* modules/fd-safer-flag: New file.
* modules/pipe2-safer (Depends-on): Add fd-safer-flag. Remove cloexec.
* modules/stdlib-safer (Depends-on): Add fd-safer-flag.
* modules/unistd-safer-tests (Depends-on): Add fd-safer-flag.
2009-12-11 Bruno Haible <bruno@clisp.org>
Tests for module 'nl_langinfo'.
* modules/nl_langinfo-tests: New file.
* tests/test-nl_langinfo.sh: New file.
* tests/test-nl_langinfo.c: New file.
New module 'nl_langinfo'.
* lib/nl_langinfo.c: New file.
* m4/nl_langinfo.m4: New file.
* modules/nl_langinfo: New file.
* doc/posix-functions/nl_langinfo.texi: Mention the new module.
2009-12-11 Bruno Haible <bruno@clisp.org>
Tests for module 'langinfo'.
* modules/langinfo-tests: New file.
* tests/test-langinfo.c: New file.
New module 'langinfo'.
* lib/langinfo.in.h: New file.
* m4/langinfo_h.m4: New file.
* modules/langinfo: New file.
* doc/posix-headers/langinfo.texi: Mention the new module.
2009-12-11 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Untabify.
2009-12-11 Bruno Haible <bruno@clisp.org>
* modules/unistd-safer (configure.ac): Drop indicator macro.
2009-12-11 Bruno Haible <bruno@clisp.org>
Move pipe2-safer code to its own file.
* lib/pipe2-safer.c: New file, extracted from lib/pipe-safer.c.
* lib/pipe-safer.c (pipe2_safer): Remove function.
* modules/pipe2-safer (Files): Add lib/pipe2-safer.c.
(Makefile.am): Add it to lib_SOURCES.
2009-12-10 Bruno Haible <bruno@clisp.org>
* lib/recvfrom.c (rpl_recvfrom): Allow the from argument to be NULL.
2009-12-10 Bruno Haible <bruno@clisp.org>
Declare which arguments expect non-NULL values, for GCC and clang.
* build-aux/arg-nonnull.h: New file.
* modules/arg-nonnull: New file.
* lib/arpa_inet.in.h (_GL_ARG_NONNULL): New placeholder.
(inet_ntop, inet_pton): Use it.
* lib/dirent.in.h (_GL_ARG_NONNULL): New placeholder.
(closedir, dirfd, opendir, scandir, alphasort): Use it.
* lib/fcntl.in.h (_GL_ARG_NONNULL): New placeholder.
(open, openat): Use it.
* lib/fnmatch.in.h (_GL_ARG_NONNULL): New placeholder.
(fnmatch): Use it.
* lib/getopt.in.h (_GL_ARG_NONNULL): New placeholder.
(getopt, getopt_long, getopt_long_only): Use it.
* lib/glob.in.h (_GL_ARG_NONNULL): New placeholder.
* lib/glob-libc.h (glob, globfree, glob64, globfree64, glob_pattern_p):
Use it.
* lib/iconv.in.h (_GL_ARG_NONNULL): New placeholder.
(iconv_open): Use it.
* lib/inttypes.in.h (_GL_ARG_NONNULL): New placeholder.
(strtoimax, strtoumax): Use it.
* lib/locale.in.h (_GL_ARG_NONNULL): New placeholder.
(duplocale): Use it.
* lib/math.in.h (_GL_ARG_NONNULL): New placeholder.
(frexp, frexpl): Use it.
* lib/netdb.in.h (_GL_ARG_NONNULL): New placeholder.
(getaddrinfo, freeaddrinfo, getnameinfo): Use it.
* lib/search.in.h (_GL_ARG_NONNULL): New placeholder.
(tsearch, tfind, tdelete, twalk): Use it.
* lib/signal.in.h (_GL_ARG_NONNULL): New placeholder.
(sigismember, sigemptyset, sigaddset, sigdelset, sigfillset,
sigpending): Use it.
* lib/spawn.in.h (_GL_ARG_NONNULL): New placeholder.
(posix_spawn, posix_spawnp, posix_spawnattr_init,
posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
posix_spawnattr_setsigmask, posix_spawnattr_getflags,
posix_spawnattr_setflags, posix_spawnattr_getpgroup,
posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy,
posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam,
posix_spawnattr_setschedparam, posix_spawn_file_actions_init,
posix_spawn_file_actions_destroy, posix_spawn_file_actions_addopen,
posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2):
Use it.
* lib/stdio.in.h (_GL_ARG_NONNULL): New placeholder.
(dprintf, fclose, fopen, fprintf, fpurge, fputc, fputs, freopen,
rpl_fseek, fseeko, rpl_ftell, ftello, fwrite, getdelim, getline,
obstack_printf, obstack_vprintf, popen, printf, putc, puts, remove,
rename, renameat, snprintf, sprintf, asprintf, vasprintf, vdprintf,
vfprintf, vprintf, vsnprintf, vsprintf): Use it.
* lib/stdlib.in.h (_GL_ARG_NONNULL): New placeholder.
(atoll, canonicalize_file_name, getloadavg, getsubopt, mkdtemp,
mkostemp, mkostemps, mkstemp, mkstemps, putenv, srandom_r, initstate_r,
setstate_r, random_r, realpath, rpmatch, setenv, strtod, strtoll,
strtoull, unsetenv): Use it.
* lib/string.in.h (_GL_ARG_NONNULL): New placeholder.
(memchr, memmem, mempcpy, memrchr, rawmemchr, stpcpy, stpncpy,
strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strstr,
strcasestr, strtok_r, mbslen, mbsnlen, mbschr, mbsrchr, mbsstr,
mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk,
mbsspn, mbssep, mbstok_r, strverscmp): Use it.
* lib/strings.in.h (_GL_ARG_NONNULL): New placeholder.
(strcasecmp, strncasecmp): Use it.
* lib/sys_socket.in.h (_GL_ARG_NONNULL): New placeholder.
(rpl_connect, rpl_bind, rpl_getpeername, rpl_getsockname,
rpl_getsockopt, rpl_recv, rpl_send, rpl_recvfrom, rpl_sendto,
rpl_setsockopt): Use it.
* lib/sys_stat.in.h (_GL_ARG_NONNULL): New placeholder.
(fchmodat, fstat, fstatat, lchmod, rpl_lstat, mkdir, mkdirat, mkfifo,
mkfifoat, mknod, mknodat, stat, utimensat): Use it.
* lib/sys_time.in.h (_GL_ARG_NONNULL): New placeholder.
(gettimeofday): Use it.
* lib/sys_times.in.h (_GL_ARG_NONNULL): New placeholder.
(times): Use it.
* lib/sys_utsname.in.h (_GL_ARG_NONNULL): New placeholder.
(uname): Use it.
* lib/time.in.h (_GL_ARG_NONNULL): New placeholder.
(nanosleep, mktime, localtime_r, gmtime_r, strptime, timegm): Use it.
* lib/unistd.in.h (_GL_ARG_NONNULL): New placeholder.
(chown, euidaccess, faccessat, _gl_register_fd, fchownat,
getdomainname, gethostname, getlogin_r, lchown, link, linkat, pipe2,
pread, readlink, readlinkat, rmdir, symlink, symlinkat, unlink,
unlinkat, write): Use it.
* lib/wchar.in.h (_GL_ARG_NONNULL): New placeholder.
(mbsrtowcs, mbsnrtowcs, wcsrtombs, wcsnrtombs): Use it.
* lib/argv-iter.h: Include arg-nonnull.h.
(_ATTRIBUTE_NONNULL_): Remove macro.
(argv_iter_init_argv, argv_iter_init_stream, argv_iter,
argv_iter_n_args, argv_iter_free): Use _GL_ARG_NONNULL.
* lib/canonicalize-lgpl.c (_GL_ARG_NONNULL): Define, to defeat gcc
optimization.
* lib/getaddrinfo.c (_GL_ARG_NONNULL): Likewise.
* lib/getdelim.c (_GL_ARG_NONNULL): Likewise.
* lib/glob.c (_GL_ARG_NONNULL): Likewise.
* lib/random_r.c (_GL_ARG_NONNULL): Likewise.
* lib/setenv.c (_GL_ARG_NONNULL): Likewise.
* lib/strtod.c (_GL_ARG_NONNULL): Likewise.
* lib/tsearch.c (_GL_ARG_NONNULL): Likewise.
* lib/unsetenv.c (_GL_ARG_NONNULL): Likewise.
* modules/arpa_inet (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into arpa/inet.h.
* modules/dirent (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into dirent.h.
* modules/fcntl-h (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into fcntl.h.
* modules/fnmatch (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into fnmatch.h.
* modules/getopt-posix (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into getopt.h.
* modules/glob (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into glob.h.
* modules/iconv_open (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into iconv.h.
* modules/inttypes (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into inttypes.h.
* modules/locale (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into locale.h.
* modules/math (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into math.h.
* modules/netdb (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into netdb.h.
* modules/search (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into search.h.
* modules/signal (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into signal.h.
* modules/spawn (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into spawn.h.
* modules/stdio (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into stdio.h.
* modules/stdlib (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into stdlib.h.
* modules/string (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into string.h.
* modules/strings (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into strings.h.
* modules/sys_socket (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into sys/socket.h.
* modules/sys_stat (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into sys/stat.h.
* modules/sys_time (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into sys/time.h.
* modules/sys_times (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into sys/times.h.
* modules/sys_utsname (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into sys/utsname.h.
* modules/time (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into time.h.
* modules/unistd (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into unistd.h.
* modules/wchar (Depends-on): Add arg-nonnull.
(Makefile.am): Insert arg-nonnull.h into wchar.h.
* modules/argv-iter (Depends-on): Add arg-nonnull.
* tests/test-canonicalize.c (null_ptr): New function.
(main): Use it.
* tests/test-canonicalize-lgpl.c (null_ptr): New function.
(main): Use it.
* tests/test-memmem.c (null_ptr): New function.
(main): Use it.
Reported by Jim Meyering.
2009-12-10 Bruno Haible <bruno@clisp.org>
Use spaces for indentation, not tabs.
* lib/**/*.[hcy] except lib/reg*.[hc]: Untabify.
* m4/*.m4: Untabify.
* build-aux/*.h: Untabify.
* tests/**/*.[hc]: Untabify.
* README: New section "Indent with spaces, not TABs", based on
coreutils/HACKING and comments by Pádraig Brady and Paolo Bonzini.
* NEWS: Mention the change.
2009-12-10 Bruno Haible <bruno@clisp.org>
pty test: Fix link error.
* modules/pty-tests (Makefile.am): Add the default LDADD value to
test_pty_LDADD.
2009-12-07 Simon Josefsson <simon@josefsson.org>
* modules/pty: New file.
* modules/pty-tests: New file.
* m4/pty.m4: New file.
* tests/test-pty.c: New file.
* doc/glibc-headers/pty.texi: Modified.
* doc/glibc-functions/forkpty.texi: Modified.
* doc/glibc-functions/openpty.texi: Modified.
2009-12-10 Bruno Haible <bruno@clisp.org>
Avoid syntax error in C++ mode.
* lib/stdio.in.h (rename): Don't use parameter name 'new'.
2009-12-10 Bruno Haible <bruno@clisp.org>
Use sed with option -e.
* gnulib-tool (func_version, func_emit_copyright_notice,
func_emit_initmacro_end, func_import, func_create_testdir): Pass
option -e to sed.
* modules/link-warning (Makefile.am): Likewise.
2009-12-10 Jim Meyering <meyering@redhat.com>
mgetgroups: do not write bytes beyond end of malloc'd buffer
* lib/mgetgroups.c: Fix an off-by-one error. When we have no
username, we call getgroups with a one-element-shorter buffer,
but still told it the length was original, max_n_groups.
2009-12-09 Eric Blake <ebb9@byu.net>
cloexec: relax license
* modules/cloexec (Maintainer): Add myself.
(License): Use LGPL, not GPL.
link-warning: optimize generation
* modules/link-warning (Makefile.am): Reduce process usage.
2009-12-09 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/unsetenv.texi: Mention Solaris 10 bug for which a
workaround was added on 2009-11-17.
2009-12-09 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
link-warning: Allow extra lines at the top of build-aux/link-warning.h.
* modules/link-warning (Makefile.am): Make the comment-removing sed
command more robust in the face of bootstrap-prepended comment lines.
2009-12-09 Bruno Haible <bruno@clisp.org>
* lib/mgetgroups.c (mgetgroups): Don't remove duplicates if there is at
most one group.
2009-12-09 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* build-aux/link-warning.h: Add copyright notice.
* modules/link-warning (Makefile.am): Generate link-warning.h from
build-aux/link-warning.h. Update LINK_WARNING_H accordingly.
* NEWS: Mention change in link-warning module.
* modules/arpa_inet (Makefile.am): Add dependency to arpa/inet.h.
* modules/dirent (Makefile.am): Add dependency to dirent.h.
* modules/fcntl-h (Makefile.am): Add dependency to fcntl.h.
* modules/getopt-posix (Makefile.am): Add dependency to getopt.h.
* modules/inttypes (Makefile.am): Add dependency to inttypes.h.
* modules/math (Makefile.am): Add dependency to math.h.
* modules/search (Makefile.am): Add dependency to search.h.
* modules/signal (Makefile.am): Add dependency to signal.h.
* modules/spawn (Makefile.am): Add dependency to spawn.h.
* modules/stdio (Makefile.am): Add dependency to stdio.h.
* modules/stdlib (Makefile.am): Add dependency to stdlib.h.
* modules/string (Makefile.am): Add dependency to string.h.
* modules/strings (Makefile.am): Add dependency to strings.h.
* modules/sys_ioctl (Makefile.am): Add dependency to sys/ioctl.h.
* modules/sys_select (Makefile.am): Add dependency to sys/select.h.
* modules/sys_socket (Makefile.am): Add dependency to sys/socket.h.
* modules/sys_stat (Makefile.am): Add dependency to sys/stat.h.
* modules/sys_times (Makefile.am): Add dependency to sys/times.h.
* modules/sys_utsname (Makefile.am): Add dependency to sys/utsname.h.
* modules/sys_wait (Makefile.am): Add dependency to sys/wait.h.
* modules/unistd (Makefile.am): Add dependency to unistd.h.
* modules/wchar (Makefile.am): Add dependency to wchar.h.
2009-12-09 Bruno Haible <bruno@clisp.org>
fchdir: Optimize away rpl_fstat when possible.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Set REPLACE_FSTAT only together with
REPLACE_OPEN_DIRECTORY.
* lib/fchdir.c (rpl_fstat): Define only when REPLACE_OPEN_DIRECTORY.
2009-12-09 Bruno Haible <bruno@clisp.org>
* lib/fchdir.c: Update comment.
2009-12-09 Bruno Haible <bruno@clisp.org>
* lib/cloexec.c (set_cloexec_flag): Clarify intent of dup2 call.
2009-12-08 Eric Blake <ebb9@byu.net>
fchdir: avoid memory leak on re-registration.
* lib/fchdir.c (ensure_dirs_slot): Avoid memory leak.
2009-12-08 Jim Meyering <meyering@redhat.com>
init.sh: avoid Solaris 10 /bin/sh portability problem
Solaris 10's /bin/sh does not pass '.' arguments 2.. to the
sourced script:
$ printf 'echo "$@"\n' > f; /bin/sh -c '. ./f bar'
$ printf 'echo "$@"\n' > f; /bin/bash -c '. ./f bar'
bar
tests/init.sh relied on that, accepting a --set-path=DIR argument,
and two tests used that idiom.
* tests/init.sh: Update suggested usage comments.
(path_prepend_): New function, to be used in place
of the --src-path=DIR option.
(setup_): Move PATH-prepending code into path_prepend_.
* tests/test-pread.sh: Adapt to new usage.
* tests/test-xalloc-die.sh: Likewise.
2009-12-08 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (Glibc pty.h): Add.
* doc/glibc-functions/forkpty.texi: Add.
* doc/glibc-functions/openpty.texi: Add.
Suggested by Bruno Haible.
2009-12-08 Eric Blake <ebb9@byu.net>
fchdir: fix logic bugs
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Fix logic bug.
* tests/test-fchdir.c (main): Enhance test.
* lib/fchdir.c (rpl_fstat): Always provide if fchdir replacement
is in use.
dup2: fix logic bugs
* lib/dup2.c (dup2): Fix logic bugs. Use HAVE_DUP2 rather than
REPLACE_DUP2 to decide when rpl_dup2 is needed.
* m4/dup2.m4 (gl_REPLACE_DUP2): Only define REPLACE_DUP2 when dup2
exists.
(gl_FUNC_DUP2): Drop unneeded AC_DEFINE.
2009-12-07 Eric Blake <ebb9@byu.net>
unlink: fix m4 detection
* m4/unlink.m4 (gl_FUNC_UNLINK): Include correct header.
unistd-safer: add unit test
* modules/unistd-safer-tests: New file.
* tests/test-dup-safer.c: Likewise.
* tests/test-cloexec.c (setmode): Avoid compiler warning.
* tests/test-dup2.c (setmode): Likewise.
* lib/cloexec.c (dup_cloexec): Fix mingw compile error.
cloexec: preserve text vs. binary across dup_cloexec
* lib/cloexec.c (dup_cloexec) [W32]: Query and use translation
mode.
* modules/dup2-tests (Depends-on): Add binary-io.
* modules/cloexec-tests (Depends-on): Likewise.
* tests/test-dup2.c (setmode, is_mode): New helpers.
(main): Add tests that translation mode is preserved.
* tests/test-cloexec.c (setmode, is_mode, main): Likewise.
Reported by Bruno Haible.
mgetgroups: reduce duplicate listings
* lib/mgetgroups.c (mgetgroups): Reduce duplicates from the
resulting array.
* tests/test-chown.h (test_chown): Simplify client.
* tests/test-lchown.h (test_lchown): Likewise.
2009-12-06 Bruno Haible <bruno@clisp.org>
* lib/cloexec.c (dup_cloexec): Fix handling of _gl_register_dup return
value.
2009-12-06 Bruno Haible <bruno@clisp.org>
* lib/progname.c: Include stdio.h, stdlib.h.
(set_program_name): Reject a NULL argument.
2009-12-05 Eric Blake <ebb9@byu.net>
pipe2-safer: new module
* modules/pipe2-safer: New file.
* lib/unistd-safer.h (pipe2_safer): New prototype.
* lib/unistd--.h (pipe2): New wrapper.
* lib/pipe-safer.c (pipe2_safer): New function.
* modules/pipe (Depends-on): Add pipe2-safer.
* lib/pipe.c (create_pipe) [WIN32]: Let pipe2_safer do the work.
stdlib-safer: preserve cloexec flag for mkostemp[s]
* lib/mkstemp-safer.c (mkostemp_safer, mkostemps_safer): Use new
fd_safer_flag.
unistd-safer: allow preservation of cloexec status via flag
* lib/unistd-safer.h (dup_safer_flag, fd_safer_flag): New
prototypes.
* lib/dup-safer.c (dup_safer_flag): New function.
* lib/fd-safer.c (fd_safer_flag): Likewise.
* modules/cloexec (configure.ac): Set witness.
test-dup2: enhance test
* modules/dup2-tests (Depends-on): Add cloexec.
* tests/test-dup2.c (main): Enhance test.
cloexec: add dup_cloexec
* lib/cloexec.h (dup_cloexec): New prototype. Add copyright
header and comments.
* lib/cloexec.c (set_cloexec_flag): Add comments.
(dup_cloexec): New function, with mingw implementation borrowed
from...
* lib/w32spawn.h (dup_noinherit): ...here.
* modules/execute (Depends-on): Add cloexec.
* modules/pipe (Depends-on): Likewise.
* modules/cloexec (Depends-on): Add dup2.
* modules/cloexec-tests (Files): New file.
* tests/test-cloexec.c: Likewise.
test-xalloc-die: fix test for mingw
* modules/xalloc-die-tests (Files): Add tests/init.sh.
* tests/test-xalloc-die.sh: Rewrite to use init.sh. Strip
directory and .exe suffix off argv[0] output.
test-fseeko: fix test for mingw
* tests/test-fseeko.c (fseek): Redefine GL_LINK_WARNING, rather
than undefining fseek, so test will pass on mingw.
2009-12-05 Bruno Haible <bruno@clisp.org>
* lib/progname.h (set_program_name): Clarify specification.
* lib/progname.c (set_program_name): Likewise.
Reported by Jim Meyering.
2009-12-05 Jim Meyering <meyering@redhat.com>
maint.mk: backslash-escape parens in default regexp
* top/maint.mk (news-check-regexp): Now that we're using grep -E,
backslash-escape the literal parentheses.
maint.mk: news-date-check: use grep -E
* top/maint.mk (today): Define a Make variable, not a...
(news-date-check): ...shell variable.
(news-date-regexp): Use the Make variable.
Use grep's -E option. Change the failing diagnostic to mention
the variable, $(news-date-regexp).
2009-12-04 Alfred M. Szmidt <ams@gnu.org>
maintainer-makefile: allow customization of NEWS entry format
* top/maint.mk (news-date-regexp): New overridable variable.
(news-date-check): Use it.
2009-12-04 Eric Blake <ebb9@byu.net>
mgetgroups: add xgetgroups, and avoid ENOSYS failures
* lib/mgetgroups.h (xgetgroups): New prototype.
* lib/mgetgroups.c (xgetgroups): New wrapper.
(mgetgroups): Handle ENOSYS.
* modules/mgetgroups (Depends-on): Add realloc.
Reported by Scott Harrison <scott.gnu.2009@scottrix.co.uk>.
mgetgroups: avoid argument promotion issues with -1
* lib/mgetgroups.c (mgetgroups): A cast is required when checking
for invalid gid_t.
* tests/test-chown.h (getegid, test_chown): Likewise.
* tests/test-lchown.h (getegid, test_lchown): Likewise.
2009-12-03 Paolo Bonzini <bonzini@gnu.org>
exclude: Fix header file problems.
* lib/exclude.h: Add multiple inclusion guards and include stdbool.h.
2009-12-01 Jim Meyering <meyering@redhat.com>
fts: fts_open: do not let an empty string cause immediate failure
This is required in support of GNU rm, for which the command
"rm A '' B" must process and remove both A and B, in spite of
the empty string argument.
* lib/fts.c (fts_open): Do not let the presence of an empty string
cause fts_open to fail immediately. Most fts-using tools must be
able to process all arguments, in order, and can be expected to
diagnose such arguments themselves.
2009-11-30 Eric Blake <ebb9@byu.net>
utimens: fix compilation error
* lib/utimens.c (lutimens) [!HAVE_UTIMENSAT && HAVE_LUTIMES]:
Declare variable at right scope.
2009-11-29 Jim Meyering <meyering@redhat.com>
bootstrap: handle perl-5.11's changed --version output
* build-aux/bootstrap (get_version): Handle perl separately,
since perl-5.11's --version output is different.
2009-11-28 Jim Meyering <meyering@redhat.com>
userspec: depend on the inttostr module, too
* modules/userspec (Depends-on): Add inttostr.
userspec: disallow an ID that maps to (uid_t)-1 or (gid_t)-1
* lib/userspec.c (parse_with_separator): Do not accept a user ID
number of MAXUID when it evaluates to (uid_t) -1.
Likewise for group ID. Reported by Matt McCutchen in
<http://savannah.gnu.org/bugs/?28113>
userspec: reformat to use spaces, not TABs
* lib/userspec.c: Expand TABs to spaces.
Add Emacs' "indent-tabs-mode: nil" hint.
2009-11-27 Eric Blake <ebb9@byu.net>
getopt-gnu: flush out another BSD bug
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Test for the bug.
* tests/test-getopt.c (main): Check POSIXLY_CORRECT first, to
flush out BSD bug.
* tests/test-getopt.h (test_getopt): End lists with NULL.
* tests/test-getopt_long.h (test_getopt_long): Likewise.
(test_getopt_long_posix): Enhance test.
* modules/getopt-posix-tests (Depends-on): Add stdbool.
* doc/glibc-functions/getopt_long.texi (getopt_long): Mention
getopt-gnu.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
2009-11-27 Simon Josefsson <simon@josefsson.org>
* modules/idpriv-droptemp-tests (Notice): Fix text.
2009-11-27 Jim Meyering <meyering@redhat.com>
test-xalloc-die: avoid spurious failure due to libtool argv difference
In a libtool-enabled project, this test would fail due to a difference
in the emitted program name, e.g.,
-test-xalloc-die: memory exhausted
+/tmp/.../tests/.libs/lt-test-xalloc-die: memory exhausted
Use program to avoid that.
* modules/xalloc-die-tests (Depends-on): Add progname.
* tests/test-xalloc-die.c: Include progname.h".
(program_name): Remove decl.
(main): Call set_program_name.
* tests/test-xalloc-die.sh (compare): Remove unnecessary ${EXE}.
2009-11-26 Richard Jones <rjones@redhat.com>
w32sock: leave win32 error in place.
* lib/w32sock.h (set_winsock_errno): Do not call WSASetLastError.
2009-11-26 Eric Blake <ebb9@byu.net>
init.sh: suggest to use skip_ and fail_ functions in comments
* tests/init.sh: Add a sentence.
2009-11-25 Bruno Haible <bruno@clisp.org>
init.sh: add documentation in comments
* tests/init.sh: Add some developer and user documentation.
2009-11-26 Jim Meyering <meyering@redhat.com>
init.sh: accommodate even those who specify bogus srcdir manually
* tests/init.sh: Normally, srcdir is guaranteed by automake and
configure-time tests to be sanitized, so that there is no need to
use "$srcdir" in Makefile rules and shell scripts. Using $srcdir
(with no double quotes) suffices. However, since tests may be
invoked manually, and since you may explicitly set srcdir to the
name of a directory containing spaces, do quote its uses here.
* tests/test-pread.sh: Likewise.
Suggested by Bruno Haible.
test-pread.sh: avoid diagnostics for those who ignore SIGPIPE
* tests/test-pread.sh: Write no data into the pipe, because
test-pread actually reads none. This avoids a diagnostic,
"bash: echo: write error: Broken pipe", that arises in the unusual
event something is ignoring SIGPIPE, and might be interpreted
as some sort of failure. Reported by Bruno Haible.
2009-11-25 Jim Meyering <meyering@redhat.com>
test-pread: cover failure with ESPIPE and EINVAL
* tests/test-pread.c (main): Test for failure, too.
* tests/test-pread.sh: Invoke with stdin on a pipe.
Suggested by Eric Blake.
pread: improvement and fix
* modules/pread (Depends-on): Depend on lseek, for portability to
e.g., mingw. Suggested by Eric Blake.
* lib/pread.c (__libc_read): Define. Reported by Richard W.M. Jones.
unistd.in.h: correct declaration of pread
* lib/unistd.in.h: Correct type of "buf" parameter: void*, not char*
Reported by Richard W.M. Jones.
test-pread.sh: distribute the test script
* modules/pread-tests (Files): Include test-pread.sh.
test-pread.sh: clean up
* tests/test-pread.sh: Don't refer to $builddir. Just use equivalent ".".
* modules/pread-tests (TESTS_ENVIRONMENT): Don't export builddir.
That is unnecessary, since it's always ".".
Suggestion from Eric Blake.
test-pread.sh: make executable
* tests/test-pread.sh: Set executable bit.
Reported by Eric Blake.
correct typo in test-pread.sh
* tests/test-pread.sh: Add #! line.
test pread
* tests/test-pread.c: New file.
* tests/test-pread.sh: Likewise.
* modules/pread-tests: Likewise.
pread: new module
* modules/pread: New file.
* lib/unistd.in.h (pread): Define/declare.
* lib/pread.c (pread): New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Define defaults.
* modules/unistd (Makefile.am): Substitute witnesses.
* doc/posix-functions/pread.texi (pread): Update.
* MODULES.html.sh: Add pread.
2009-11-25 Jim Meyering <meyering@redhat.com>
tests/init.sh: new file to be used via most *.sh tests
* tests/init.sh: New file.
2009-11-25 Eric Blake <ebb9@byu.net>
utimens: work around older Linux failure with symlinks
* lib/utimens.c (lutimensat_works_really): New variable.
(fdutimens, lutimens): Use it to manage kernels that support
nanosecond times on files, but not on symlinks.
Reported by Ondřej Vašík.
utimes: fix configure grammar
* m4/utimes.m4 (gl_FUNC_UTIMES): Delete spurious word.
2009-11-25 Paolo Bonzini <bonzini@gnu.org>
regex: Fix fastmap for multibyte character ranges.
* lib/regcomp.c (re_compute_fastmap_iter): Add all multibyte lead
characters when a multibyte character range is included.
2009-11-22 Andy Wingo <wingo@pobox.com>
version-etc: work also with AM_INIT_AUTOMAKE's no-define option
* lib/version-etc.c [!defined PACKAGE]: Define to PACKAGE_TARNAME.
2009-11-24 Bruno Haible <bruno@clisp.org>
doc: Most *_l functions exist in MacOS X 10.5.
* doc/posix-functions/duplocale.texi: Update platforms list.
* doc/posix-functions/freelocale.texi: Likewise.
* doc/posix-functions/newlocale.texi: Likewise.
* doc/posix-functions/uselocale.texi: Likewise.
* doc/posix-functions/isalnum_l.texi: Likewise.
* doc/posix-functions/isalpha_l.texi: Likewise.
* doc/posix-functions/isblank_l.texi: Likewise.
* doc/posix-functions/iscntrl_l.texi: Likewise.
* doc/posix-functions/isdigit_l.texi: Likewise.
* doc/posix-functions/isgraph_l.texi: Likewise.
* doc/posix-functions/islower_l.texi: Likewise.
* doc/posix-functions/isprint_l.texi: Likewise.
* doc/posix-functions/ispunct_l.texi: Likewise.
* doc/posix-functions/isspace_l.texi: Likewise.
* doc/posix-functions/isupper_l.texi: Likewise.
* doc/posix-functions/iswalnum_l.texi: Likewise.
* doc/posix-functions/iswalpha_l.texi: Likewise.
* doc/posix-functions/iswblank_l.texi: Likewise.
* doc/posix-functions/iswcntrl_l.texi: Likewise.
* doc/posix-functions/iswctype_l.texi: Likewise.
* doc/posix-functions/iswdigit_l.texi: Likewise.
* doc/posix-functions/iswgraph_l.texi: Likewise.
* doc/posix-functions/iswlower_l.texi: Likewise.
* doc/posix-functions/iswprint_l.texi: Likewise.
* doc/posix-functions/iswpunct_l.texi: Likewise.
* doc/posix-functions/iswspace_l.texi: Likewise.
* doc/posix-functions/iswupper_l.texi: Likewise.
* doc/posix-functions/iswxdigit_l.texi: Likewise.
* doc/posix-functions/isxdigit_l.texi: Likewise.
* doc/posix-functions/nl_langinfo_l.texi: Likewise.
* doc/posix-functions/strcasecmp_l.texi: Likewise.
* doc/posix-functions/strcoll_l.texi: Likewise.
* doc/posix-functions/strfmon_l.texi: Likewise.
* doc/posix-functions/strftime_l.texi: Likewise.
* doc/posix-functions/strncasecmp_l.texi: Likewise.
* doc/posix-functions/strxfrm_l.texi: Likewise.
* doc/posix-functions/tolower_l.texi: Likewise.
* doc/posix-functions/toupper_l.texi: Likewise.
* doc/posix-functions/towctrans_l.texi: Likewise.
* doc/posix-functions/towlower_l.texi: Likewise.
* doc/posix-functions/towupper_l.texi: Likewise.
* doc/posix-functions/wcscoll_l.texi: Likewise.
* doc/posix-functions/wcsxfrm_l.texi: Likewise.
* doc/posix-functions/wctrans_l.texi: Likewise.
* doc/posix-functions/wctype_l.texi: Likewise.
* doc/glibc-functions/strptime_l.texi: Likewise.
* doc/glibc-functions/strtod_l.texi: Likewise.
* doc/glibc-functions/strtof_l.texi: Likewise.
* doc/glibc-functions/strtol_l.texi: Likewise.
* doc/glibc-functions/strtold_l.texi: Likewise.
* doc/glibc-functions/strtoll_l.texi: Likewise.
* doc/glibc-functions/strtoul_l.texi: Likewise.
* doc/glibc-functions/strtoull_l.texi: Likewise.
* doc/glibc-functions/wcsftime_l.texi: Likewise.
* doc/glibc-functions/wcstod_l.texi: Likewise.
* doc/glibc-functions/wcstof_l.texi: Likewise.
* doc/glibc-functions/wcstol_l.texi: Likewise.
* doc/glibc-functions/wcstold_l.texi: Likewise.
* doc/glibc-functions/wcstoll_l.texi: Likewise.
* doc/glibc-functions/wcstoul_l.texi: Likewise.
* doc/glibc-functions/wcstoull_l.texi: Likewise.
2009-11-24 Bruno Haible <bruno@clisp.org>
duplocale: Fix logic bug.
* lib/duplocale.c: Don't include <langinfo.h>.
(_NL_LOCALE_NAME): Remove macro.
(rpl_duplocale): Use setlocale instead of nl_langinfo.
* tests/test-duplocale.c (main): Also test duplocale after uselocale.
2009-11-23 Jim Meyering <meyering@redhat.com>
test-update-copyright: don't hard-code /usr/bin/perl
* tests/test-update-copyright.sh (YEAR): Use date +%Y, rather than
perl to print the current year. Gilles Espinasse reported that
the replaced use of perl was hard-coded as /usr/bin/perl.
2009-11-23 Bruno Haible <bruno@clisp.org>
duplocale: Add support for glibc 2.3.x.
* lib/duplocale.c (rpl_duplocale): Add fallback code for glibc 2.3.x.
2009-11-22 Bruno Haible <bruno@clisp.org>
vasnprintf: Tiny optimization.
* lib/vasnprintf.c (decimal_point_char): Choose the fast path also on
MacOS X.
2009-11-22 Bruno Haible <bruno@clisp.org>
Tests for module 'duplocale'.
* modules/duplocale-tests: New file.
* tests/test-duplocale.c: New file.
New module 'duplocale'.
* m4/duplocale.m4: New file.
* lib/locale.in.h (duplocale): New declaration.
* lib/duplocale.c: New file.
* m4/locale_h.m4 (gl_REPLACE_LOCALE_H, gl_LOCALE_MODULE_INDICATOR,
gl_LOCALE_H_DEFAULTS): New macros.
(gl_LOCALE_H): Require gl_LOCALE_H_DEFAULTS. Invoke
gl_CHECK_NEXT_HEADERS unconditionally. Invoke gl_REPLACE_LOCALE_H.
* modules/locale (Makefile.am): Substitute also GNULIB_DUPLOCALE,
REPLACE_DUPLOCALE.
* modules/duplocale: New file.
* doc/posix-functions/duplocale.texi: Mention the glibc bug.
2009-11-22 Bruno Haible <bruno@clisp.org>
* modules/locale-tests (configure.ac): Test for newlocale function.
* tests/test-locale.c: When the system has extended locale functions,
verify that <locale.h> defines locale_t and LC_GLOBAL_LOCALE.
locale: Make locale_t available when possible.
* lib/locale.in.h: Include <xlocale.h> when it exists.
* m4/locale_h.m4 (gl_LOCALE_H): Check for <xlocale.h> and arrange to
replace <locale.h> if it does not define locale_t but <xlocale.h> does.
* modules/locale (Depends-on): Add extensions.
(Makefile.am): Also substitute HAVE_XLOCALE_H.
* doc/posix-headers/locale.texi: Document the problem with locale_t.
2009-11-22 Bruno Haible <bruno@clisp.org>
Add comments.
* m4/dirent_h.m4 (gl_DIRENT_H): Add comment about gl_CHECK_NEXT_HEADERS
invocation.
* m4/iconv_h.m4 (gl_ICONV_H): Likewise.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
2009-11-22 Bruno Haible <bruno@clisp.org>
error: account for the possibility of freopen (stdout).
* lib/error.c: Include <unistd.h>.
(flush_stdout): New function, extracted from error and error_at_line.
Determine stdout's fd dynamically.
(error, error_at_line): Invoke flush_stdout.
* m4/error.m4 (gl_PREREQ_ERROR): Require AC_C_INLINE.
* modules/error (Depends-on): Add unistd.
2009-11-22 Bruno Haible <bruno@clisp.org>
diffseq: Add comment.
* lib/diffseq.h (IF_LINT): Add comment about pitfall.
2009-11-22 Jim Meyering <meyering@redhat.com>
c-stack: avoid defining an unused static function
* lib/c-stack.c (find_stack_direction): Do not define this function
when it will not be used.
diffseq: avoid spurious gcc warnings
* lib/diffseq.h (IF_LINT2): Define.
(compareseq): Use it to initialize two members of "part".
This avoids two used-uninitialized warnings.
2009-11-21 Jim Meyering <meyering@redhat.com>
c-stack: avoid "ignoring return value of `write'" warning
* lib/c-stack.c: Include "ignore-value.h".
(die): Explicitly ignore each write return value.
* modules/c-stack (Depends-on): Add ignore-value.
2009-11-21 Bruno Haible <bruno@clisp.org>
diffseq: reduce scope of variable 'best'.
* lib/diffseq.h (diag) [USE_HEURISTIC]: Reduce scope of 'best'
variable, earlier used for two different purposes.
2009-11-21 Jim Meyering <meyering@redhat.com>
diffseq: remove useless assignment to "best"
* lib/diffseq.h (diag) [USE_HEURISTIC]: Remove useless "best = 0"
assignment. At that point "best" is already guaranteed to be zero.
2009-11-20 Eric Blake <ebb9@byu.net>
build: mention ftp redirector in release announcements
* top/maint.mk (gnu_rel_host, url_dir_list): Provide defaults for
values that used to come from cfg.mk; mention FTP redirect URL.
* build-aux/announce-gen: Mention the mirror list.
Suggested by Karl Berry.
nanosleep: improve port to mingw
* lib/nanosleep.c (rpl_nanosleep): Reject invalid arguments.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Incorporate LIBSOCKET into
LIB_NANOSLEEP, but only when needed.
* modules/select (Link): Document LIBSOCKET.
* m4/select.m4 (gl_FUNC_SELECT): Ensure LIBSOCKET is defined early
enough.
nanosleep: work around cygwin bug
* lib/nanosleep.c (rpl_nanosleep) [HAVE_BUG_BIG_NANOSLEEP]:
Fix logic bug when nanosleep fails. Work around cygwin 1.5.x
bug.
(getnow): Delete, not needed.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): No longer require
LIB_CLOCK_GETTIME.
* modules/nanosleep (Depends-on): Add intprops and verify. Drop
clock-time, gettime.
* doc/posix-functions/nanosleep.texi (nanosleep): Document the
bug.
* modules/nanosleep-tests: New test.
* tests/test-nanosleep.c: New file.
sleep: work around cygwin bug
* lib/sleep.c (rpl_sleep): Work around the bug.
* m4/sleep.m4 (gl_FUNC_SLEEP): Detect the bug.
(gl_PREREQ_SLEEP): Delete unused macro.
* modules/sleep (Depends-on): Add verify.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add default.
* modules/unistd (Makefile.am): Substitute witness.
* lib/unistd.in.h (sleep): Update prototype.
* doc/posix-functions/sleep.texi (sleep): Document the bug.
* tests/test-sleep.c (main) [HAVE_DECL_ALARM]: Test it.
* modules/sleep-tests (Depends-on): Check for alarm.
2009-11-20 Jim Meyering <meyering@redhat.com>
maint.mk: improve sc_prohibit_magic_number_exit
* top/maint.mk (sc_prohibit_magic_number_exit): Tighten regexp
so it does not match uses like System.exit(1).
Add comments showing how to correct all offenders.
2009-11-19 Eric Blake <ebb9@byu.net>
xalloc-die-tests: add missing library
* modules/xalloc-die-tests (Makefile.am): Add LDADD line.
test-xvasprintf: silence compiler warnings
* tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Mask
empty string from gcc.
2009-11-19 Jim Meyering <meyering@redhat.com>
xfreopen: new module, from coreutils
* modules/xfreopen: New module.
* lib/xfreopen.c: New file.
* lib/xfreopen.h: New file.
* MODULES.html.sh (File stream based Input/Output"): Add it.
2009-11-19 Eric Blake <ebb9@byu.net>
manywarnings: depend on warnings
* modules/manywarnings (Depends-on): Add warnings.
build: avoid compiler warnings
* lib/select.c (rpl_select): Delete unused variable.
* lib/setsockopt.c (rpl_setsockopt): Avoid incompatible pointer.
2009-11-18 Eric Blake <ebb9@byu.net>
tests: avoid false negative with --with-packager
* tests/test-version-etc.sh: Discard packager information.
* tests/test-argp-version-etc-1.sh: Likewise.
Reported by Mike Frysinger.
utimens: fix regression on Solaris
* m4/utimens.m4 (gl_UTIMENS): Check for BSD bug.
* lib/utimens.c (fdutimens): Revert 2009-11-08 change; Solaris 10
can only change fd timestamps via futimesat. Instead, use an
additional witness macro to avoid BSD bug.
Reported by Jim Meyering.
2009-11-17 Eric Blake <ebb9@byu.net>
usleep: use it to simplify tests
* modules/stat-time-tests (Depends-on): Add usleep.
(configure.ac): Drop usleep check.
* modules/chown-tests (Depends-on, configure.ac): Likewise.
* modules/lchown-tests (Depends-on, configure.ac): Likewise.
* modules/fdutimensat-tests (Depends-on, configure.ac): Likewise.
* modules/futimens-tests (Depends-on, configure.ac): Likewise.
* modules/openat-tests (Depends-on, configure.ac): Likewise.
* modules/utimens-tests (Depends-on, configure.ac): Likewise.
* modules/utimensat-tests (Depends-on, configure.ac): Likewise.
* modules/pipe-filter-gi-tests (Depends-on, configure.ac):
Likewise.
* tests/test-chown.h (nap): Rely on nicer usleep semantics.
* tests/test-lchown.h (nap): Likewise.
* tests/test-pipe-filter-gi2-main.c (small_nap): Likewise.
* tests/test-stat-time.c (nap): Likewise.
* tests/test-utimens-common.h (nap): Update comments.
usleep: new module
* modules/usleep: New file.
* m4/usleep.m4 (gl_FUNC_USLEEP): Likewise.
* lib/usleep.c (usleep): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add defaults.
* modules/unistd (Makefile.am): Substitute witnesses.
* lib/unistd.in.h (usleep): Add declaration.
* doc/pastposix-functions/usleep.texi (usleep): Document this.
* MODULES.html.sh (Date and time): Likewise.
* modules/usleep-tests (Depends-on): New test.
* tests/test-usleep.c: New file.
chown: work around OpenBSD bug
* lib/chown.c (rpl_chown): Work around the bug.
* lib/lchown.c (rpl_lchown): Attempt to do likewise.
* m4/chown.m4 (gl_FUNC_CHOWN): Test for ctime bug.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Check for lchmod.
* modules/chown (Depends-on): Add stdbool.
* modules/lchown (Depends-on): Likewise.
* doc/posix-functions/chown.texi (chown): Document the bug.
* doc/posix-functions/lchown.texi (lchown): Likewise.
* tests/test-lchown.h (test_chown): Relax test.
mkstemp: avoid conflict with C++ keyword template
* lib/mkdtemp.c (mkdtemp): Change spelling of template.
* lib/mkostemp.c (mkostemp): Likewise.
* lib/mkostemps.c (mkostemps): Likewise.
* lib/mkstemp.c (mkstemp): Likewise.
* lib/mkstemps.c (mkstemps): Likewise.
xalloc-die-tests: optimize
* tests/test-xalloc-die.sh: Reduce number of processes.
2009-11-17 Simon Josefsson <simon@josefsson.org>
* gnulib-tool: Support LGPLv3+ licenses in module files. Tiny
patch from ludo@gnu.org (Ludovic Courtès).
2009-11-17 Jim Meyering <meyering@redhat.com>
version-etc: use proper license string
* modules/version-etc (License): Use LGPL, not LGPLv3+.
* modules/version-etc-fsf: Likewise.
2009-11-17 Simon Josefsson <simon@josefsson.org>
* tests/test-xalloc-die.sh: Add license. Check that nothing is
printed to stdout. Deal with EOL differences.
2009-11-17 Eric Blake <ebb9@byu.net>
unsetenv: work around Solaris bug
* m4/setenv.m4 (gl_FUNC_UNSETENV): Check for bug.
* lib/unsetenv.c (rpl_unsetenv): Work around it.
Reported by Jim Meyering.
vasnprintf: avoid compiler warnings
* lib/vasnprintf.c (VASNPRINTF): Avoid shadowing our own local
variables.
* lib/printf-args.c (PRINTF_FETCHARGS): Avoid type mismatch.
2009-11-17 Simon Josefsson <simon@josefsson.org>
* modules/xalloc-die-tests (Makefile.am): Drop XFAIL_TESTS
settings since xalloc-die is no longer the self test,
xalloc-die.sh is.
2009-11-17 Jim Meyering <meyering@redhat.com>
test-xalloc-die.sh: make the code agree with the commit log
* tests/test-xalloc-die.sh: Put "." at the front of $PATH, not
at the end, just in case you happen to have a test-xalloc-die
program in some other PATH directory.
test-xalloc-die.sh: fix a portability bug
* tests/test-xalloc-die.sh: Do not invoke via ./test-xalloc-die.
Instead, set PATH to start with "." and invoke via "test-xalloc-die".
Otherwise, argv[0] (as often seen in diagnostics) would be too
system-dependent, sometimes with, and sometimes without the leading "./".
version-etc-fsf: relax license to LGPLv3+
* modules/version-etc-fsf (License): Relax license.
2009-11-16 Eric Blake <ebb9@byu.net>
xalloc-die-tests: avoid printing null pointer
* modules/xalloc-die-tests (Files, Makefile.am): Wrap execution in
shell script.
* tests/test-xalloc-die.c (program_name): Declare.
* tests/test-xalloc-die.sh (tmpfiles): New file.
setenv, unsetenv: work around various bugs
* lib/setenv.c (setenv) [!HAVE_SETENV]: Resync from glibc.
(setenv) [HAVE_SETENV]: Work around bugs.
* lib/unsetenv.c (unsetenv) [HAVE_UNSETENV]: Work around bugs.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE, gl_FUNC_UNSETENV): Check
for bugs.
(gl_FUNC_SETENV): Write in terms of gl_FUNC_SETENV_SEPARATE.
* m4/environ.m4 (gl_ENVIRON): Avoid expand-before-require.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Update defaults.
* modules/stdlib (Makefile.am): Update substitutions.
* lib/stdlib.in.h (setenv, unsetenv): Update prototypes.
* doc/posix-functions/setenv.texi (setenv): Document the bugs.
* doc/posix-functions/unsetenv.texi (unsetenv): Likewise.
* modules/setenv-tests: New test.
* modules/unsetenv-tests: Likewise.
* tests/test-setenv.c: New file.
* tests/test-unsetenv.c: Likewise.
2009-11-16 Jim Meyering <meyering@redhat.com>
version-etc: relax license to LGPLv3+
* modules/version-etc (License): Relax license.
better AC_REQUIRE expanded-before-required-warning avoidance
* m4/chown.m4 (gl_FUNC_CHOWN, gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Define
with AC_DEFUN_ONCE, rather than AC_DEFUN, to avoid AC_REQUIRE warnings.
Suggested by Eric Blake. This change also reverts commit 1b712ba8,
which is no longer needed.
2009-11-16 Eric Blake <ebb9@byu.net>
test-freading: clean up temporary file
* tests/test-freading.c (main): Remove file on success, and use
ASSERT more liberally.
Reported by Jim Meyering.
2009-11-16 Jim Meyering <meyering@redhat.com>
avoid new AC_REQUIRE expanded-before-required warnings
* modules/chown (configure.ac): Require gl_FUNC_CHOWN, rather than
merely using it.
* modules/euidaccess (configure.ac): Likewise for gl_FUNC_EUIDACCESS.
* modules/faccessat (configure.ac): Likewise for gl_FUNC_FACCESSAT.
2009-11-15 Simon Josefsson <simon@josefsson.org>
* tests/test-xalloc-die.c: New file.
* modules/xalloc-die-tests: New file.
* gnulib-tool (func_emit_tests_Makefile_am): Also initialize
XFAIL_TESTS so it can be appended by modules.
2009-11-15 Simon Josefsson <simon@josefsson.org>
* lib/gc-pbkdf2-sha1.c: Remove comments from RFC 2898. Reported
by Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>.
2009-11-14 Eric Blake <ebb9@byu.net>
fnmatch: avoid compiler warning
* lib/fnmatch_loop.c (NEW_PATTERN): Coerce addition to unsigned,
to silence compiler warning about mismatch signedness in ?:.
Reported by Robert Millan.
intprops: add double-inclusion guard
* lib/intprops.h: Allow idempotent includes.
Suggested by Bruce Korb.
openat: detect Solaris fchownat bug
* lib/fchownat.c (rpl_fchownat): Work around Solaris bug. Avoid
penalizing glibc chownat when only lchownat is broken.
* m4/openat.m4 (gl_FUNC_FCHOWNAT): Replace fchownat if there are
trailing slash bugs.
* doc/posix-functions/fchownat.texi (fchownat): Document the bug.
* modules/openat-tests (Files): Include more files.
(Depends-on): Add mgetgroups, sleep, stat-time.
(configure.ac): Add additional checks.
(Makefile.am): Build new test.
* tests/test-fchownat.c: New file.
lchown: detect Solaris and FreeBSD bug
* lib/lchown.c (rpl_lchown): Work around bug.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Check for trailing slash bugs.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Populate it.
* lib/unistd.in.h (lchown): Update declaration.
* doc/posix-functions/lchown.texi (lchown): Document the bug.
* modules/lchown-tests: New file.
* tests/test-lchown.h (test_lchown): Likewise.
* tests/test-lchown.c (main): Likewise.
chown: detect Solaris and FreeBSD bug
* lib/chown.c (rpl_chown): Work around bug.
* m4/chown.m4 (gl_FUNC_CHOWN): Check for trailing slash bugs.
(gl_PREREQ_CHOWN): Delete.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Populate it.
* lib/unistd.in.h (chown): Update declaration.
* lib/lchown.c (chown): Update client.
* modules/lchown (Depends-on): Add lstat.
* doc/posix-functions/chown.texi (chown): Document the bug.
* doc/posix-functions/getgroups.texi (getgroups): Document
getgroups pitfall.
* modules/chown-tests: New file.
* tests/test-chown.h (test_chown): Likewise.
* tests/test-chown.c (main): Likewise.
2009-11-14 Robert Millan <rmh.grub@aybabtu.com> (tiny change)
gnulib-tool: correctly detect absence of m4 directories
* gnulib-tool: Avoid extra newline on data passed to wc -l.
2009-11-14 Jim Meyering <meyering@redhat.com>
maint.mk: Prohibit inclusion of "xalloc.h" without use.
* top/maint.mk (sc_prohibit_close_stream_without_use): New rule.
2009-11-14 John W. Eaton <jwe@gnu.org>
strftime.h: wrap function declaration in extern "C" block
* lib/strftime.h (nstrftime) [__cplusplus]: Wrap declaration.
2009-11-13 Eric Blake <ebb9@byu.net>
getgroups: avoid compiler warning
* lib/getgroups.c (rpl_getgroups): Delete shadowed variable.
getgroups: work around FreeBSD bug
* lib/getgroups.c (rpl_getgroups): Work around the bug.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Detect the bug.
* doc/posix-functions/getgroups.texi (getgroups): Document it.
* tests/test-getgroups.c (main): Fix buffer overrun.
getgroups: avoid compilation failure
* lib/getgroups.c (includes): Include <stdint.h> for SIZE_MAX.
* modules/getgroups (Depends-on): Add stdint.
2009-11-13 Jim Meyering <meyering@redhat.com>
test-getgroups: avoid compilation failure
* tests/test-getgroups.c: Include <stdint.h> for use of SIZE_MAX.
2009-11-13 Eric Blake <ebb9@byu.net>
mgetgroups: new module, taken from coreutils
* modules/mgetgroups: New file.
* lib/mgetgroups.h: Likewise.
* lib/mgetgroups.c (mgetgroups): Likewise.
* m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise.
* MODULES.html.sh (Users and groups): Mention it.
getgroups: don't expose GETGROUPS_T to user
* lib/getgroups.c (rpl_getgroups): Change signature. Copy array
an element at a time if GETGROUPS_T is wrong size.
* lib/getugroups.h (getugroups): Change signature.
* lib/unistd.in.h (getgroups): Likewise.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Use replacement if
signature needs fixing.
* m4/getugroups.m4 (gl_GETUGROUPS): No longer need
AC_TYPE_GETGROUPS.
* modules/group-member (Depends-on): Add getgroups.
* lib/group-member.c (group_info, get_group_info): Use gid_t.
(group_member): Rely on getgroups replacement.
* lib/getugroups.c (getugroups): Use gid_t.
* tests/test-getgroups.c (main): Likewise.
* NEWS: Mention the signature change.
* doc/posix-functions/getgroups.texi (getgroups): Mention the
problem with signature.
* doc/glibc-functions/setgroups.texi (setgroups): Mention that
GETGROUPS_T is still useful for setgroups.
getgroups, getugroups: provide stubs for mingw
* lib/getgroups.c (getgroups): Provide ENOSYS stub for mingw.
* lib/getugroups.c (getugroups): Likewise.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Check for missing
function. Modernize replacement scheme.
(gl_PREREQ_GETGROUPS): Delete.
* m4/getugroups.m4 (gl_GETUGROUPS): Check for <grp.h>.
* modules/getgroups (configure.ac): Declare witness.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add default.
* modules/unistd (Depends-on): Substitute witness.
* lib/unistd.in.h (getgroups): Declare replacement.
getgroups: avoid calling exit
* modules/getgroups (Depends-on): Add malloc-posix and unistd,
drop xalloc.
* modules/getgroups-tests (Depends-on, Makefile.am): Drop unneeded
dependencies.
* lib/getgroups.c (rpl_getgroups): Fail with ENOMEM rather than
exiting, in the rare case of malloc failure.
getgroups: fix logic error
* lib/getgroups.c (rpl_getgroups): Don't fail if current process
has more than 20 groups.
* modules/getgroups-tests: New test.
* tests/test-getgroups.c: New file.
2009-11-13 Simon Josefsson <simon@josefsson.org>
* tests/test-base64.c: Improve.
2009-11-13 Simon Josefsson <simon@josefsson.org>
* tests/test-xvasprintf.c: Fix memory leak, suggested by Eric
Blake <ebb9@byu.net>.
2009-11-13 Simon Josefsson <simon@josefsson.org>
* tests/test-xvasprintf.c: Add %s%s related checks.
2009-11-12 Eric Blake <ebb9@byu.net>
version-etc: match standards.texi style
* lib/version-etc.c (emit_bug_reporting_address): Drop periods,
and use <> only for URLs.
2009-11-10 Kamil Dudka <kdudka@redhat.com>
fts: do not fail on a submount during traversal
* lib/fts.c (fts_build): Read the stat info again after opening
a directory if the FTS_TIGHT_CYCLE_CHECK flag is set.
Original report at http://bugzilla.redhat.com/501848.
2009-11-12 Jim Meyering <meyering@redhat.com>
bootstrap: sync from coreutils
* build-aux/bootstrap (bootstrap_epilogue): New function.
Use git_modules_config in one more place. This make bootstrap's
--gnulib-srcdir option more useful for testing.
bootstrap: generalize autoheader check
* build-aux/bootstrap: Look for AC_CONFIG_HEADER as well as
AC_CONFIG_HEADERS.
2009-11-11 Eric Blake <ebb9@byu.net>
mkfifoat: use new modules for Solaris and BSD bugs
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Simplify.
* lib/mkfifoat.c (mknodat): Split...
* lib/mknodat.c (mknodat): ...into new file.
* modules/mkfifoat (Files): Ship new file.
(Depends-on): Add mkfifo, mknod.
* modules/mkfifoat-tests (Files): Reuse mkfifo tests.
(Depends-on): Add symlink.
* tests/test-mkfifoat.c (main): Enhance test. Drop portions now
redundant with test_mkfifo.h.
(do_mkfifoat, do_mknodat): New helpers.
mknod: new module
* modules/mknod: New file.
* m4/mknod.m4 (gl_FUNC_MKNOD): Likewise.
* lib/mknod.c (mknod): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness
defaults.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (mknod): Declare replacement.
* MODULES.html.sh (Support for systems lacking POSIX:2008):
Document it.
* doc/posix-functions/mknod.texi (mknod): Likewise.
* modules/mknod-tests: New test.
* tests/test-mknod.c: Likewise.
mkfifo: new module
* modules/mkfifo: New file.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
* lib/mkfifo.c (mkfifo): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness
defaults.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (mkfifo): Declare replacement.
* MODULES.html.sh (Support for systems lacking POSIX:2008):
Document it.
* doc/posix-functions/mkfifo.texi (mkfifo): Likewise.
* modules/mkfifo-tests: New test.
* tests/test-mkfifo.h (test_mkfifo): New file, borrowed in part
from test-mkfifoat.c.
* tests/test-mkfifo.c: New file.
readlink: detect FreeBSD bug
* m4/readlink.m4 (gl_FUNC_READLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/readlink.texi (readlink): Document the bug.
* tests/test-readlink.h (test_readlink): Enhance test.
symlink: detect FreeBSD bug
* m4/symlink.m4 (gl_FUNC_SYMLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/symlink.texi (symlink): Document the bug.
* tests/test-symlink.h (test_symlink): Enhance test.
2009-11-10 Eric Blake <ebb9@byu.net>
link: detect FreeBSD bug
* m4/link.m4 (gl_FUNC_LINK): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/link.texi (link): Document the bug.
* tests/test-link.h (test_link): Enhance test.
* tests/test-linkat.c (main): Update caller.
unlink, remove: detect FreeBSD bug
* m4/unlink.m4 (gl_FUNC_UNLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/unlink.texi (unlink): Document the bug.
* doc/posix-functions/remove.texi (remove): Likewise.
* tests/test-unlink.h (test_unlink): Enhance test.
* tests/test-remove.c (main): Likewise.
2009-11-09 Eric Blake <ebb9@byu.net>
rename: detect FreeBSD bug
* m4/rename.m4 (gl_FUNC_RENAME): Also detect FreeBSD bug with
slash on symlink.
* modules/renameat-tests (Depends-on): Add filenamecat.
* tests/test-rename.h (test_rename): Allow one more errno.
* tests/test-renameat.c (main): Likewise.
* doc/posix-functions/rename.texi (rename): Document the bug.
open: detect FreeBSD bug
* m4/open.m4 (gl_FUNC_OPEN): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/open.texi (open): Document the bug.
* doc/posix-functions/utimes.texi (utimes): Likewise.
* tests/test-open.h (test_open): Add parameters, and test symlink
handling.
* tests/test-open.c (main): Adjust caller.
* tests/test-fcntl-safer.c (main): Likewise.
* modules/open-tests (Depends-on): Add stdbool, symlink.
* modules/fcntl-safer-tests (Depends-on): Likewise.
* tests/test-openat.c (main): Add test-open tests.
stat: detect FreeBSD bug
* m4/stat.m4 (gl_FUNC_STAT): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/stat.texi (stat): Document the bug.
* tests/test-stat.h (test_stat_func): Add argument.
* tests/test-stat.c (main): Adjust caller.
* tests/test-fstatat.c (main): Likewise.
* modules/stat-tests (Depends-on): Add stdbool, symlink.
Reported by Jim Meyering.
2009-11-09 James Youngman <jay@gnu.org>
strftime.c: include ignore-value.h only when FPRINTFTIME is defined
* lib/strftime.c: Correct placement of #include "ignore-value.h".
2009-11-08 Jim Meyering <meyering@redhat.com>
utimens: remove invalid futimesat call
* lib/utimens.c (fdutimens): Remove invalid futimesat call.
It used the file descriptor of the target file as the DIR_FD
parameter and NULL as the file name. That caused failure with
errno == EFAULT on FreeBSD-8.0-rc2
2009-11-07 Eric Blake <ebb9@byu.net>
fflush, freadseek: use fseeko, not fseek
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(clear_ungetc_buffer): Avoid potential problems on large files.
* lib/freadseek.c (freadseek): Likewise.
* modules/freadseek (Depends-on): Add fseeko.
* modules/fseek (configure.ac): Set a witness.
* tests/test-fflush.c (main): Use fseeko.
* tests/test-fpurge.c (fseek): Disable link warning.
* tests/test-freadable.c (fseek): Likewise.
* tests/test-freading.c (fseek): Likewise.
* tests/test-fseeko.c (fseek): Likewise.
* tests/test-ftell.c (fseek): Likewise.
* tests/test-ftello.c (fseek): Likewise.
* tests/test-fwritable.c (fseek): Likewise.
* tests/test-fwriting.c (fseek): Likewise.
2009-11-06 Simon Josefsson <simon@josefsson.org>
* modules/memchr (Depends-on): Drop getpagesize dependency.
2009-11-06 Simon Josefsson <simon@josefsson.org>
* build-aux/pmccabe2html: Disable execute bit. Suggested by
Reported by Ludovic Courtès.
* build-aux/pmccabe2html: Improve example usage.
* build-aux/pmccabe2html: Drop #! header. Doc fix.
2009-11-06 Jim Meyering <meyering@redhat.com>
do-release-commit-and-tag: New module.
Automate the release-commit and tag process.
* build-aux/do-release-commit-and-tag: New script, from coreutils.
* modules/do-release-commit-and-tag: New file.
* MODULES.html.sh (Support for maintaining and releasing): Add it.
2009-11-06 Simon Josefsson <simon@josefsson.org>
* modules/select-tests (test_select_LDADD): Add $(INET_PTON_LIB)
because test-select.c uses inet_pton.
2009-11-06 Simon Josefsson <simon@josefsson.org>
* m4/getaddrinfo.m4: Add content of INET_NTOP_LIB to
GETADDRINFO_LIB. Bump serial number.
* modules/getaddrinfo (Link): Only mention GETADDRINFO_LIB again.
Suggested by Eric Blake <ebb9@byu.net>.
2009-11-05 Eric Blake <ebb9@byu.net>
strtod: detect darwin bug
* m4/strtod.m4 (gl_FUNC_STRTOD): Filter out darwin bug on "nan(".
Reported by Leo Davis.
freopen-safer: new module
* modules/freopen-safer: New module.
* m4/stdio-safer.m4 (gl_FREOPEN_SAFER): New macro.
* lib/freopen-safer.c (freopen_safer): New file.
* lib/stdio-safer.h (freopen_safer): New declaration.
* lib/stdio--.h (freopen): New override.
* MODULES.html.sh (File stream based Input/Output): Mention it.
* doc/posix-functions/freopen.texi (freopen): Mention pitfalls and
freopen-safer module.
* doc/posix-functions/stderr.texi (stderr): Likewise.
* doc/posix-functions/stdin.texi (stdin): Likewise.
* doc/posix-functions/stdout.texi (stdout): Likewise.
* modules/freopen-safer-tests: New test.
* tests/test-reopen-safer.c: New file.
2009-11-05 Jim Meyering <meyering@redhat.com>
maint.mk: Prohibit inclusion of "close-stream.h" without use.
* top/maint.mk (sc_prohibit_close_stream_without_use): New rule.
2009-11-05 Simon Josefsson <simon@josefsson.org>
* modules/pmccabe2html (configure.ac): Check for pmccabe tool.
2009-11-05 Simon Josefsson <simon@josefsson.org>
* modules/getaddrinfo (Link): Add $(INET_NTOP_LIB).
2009-11-05 Simon Josefsson <simon@josefsson.org>
Fix link error.
* m4/inet_ntop.m4 (gl_INET_NTOP): Fix test of AC_SEARCH_LIBS result.
* m4/inet_pton.m4 (gl_INET_PTON): Likewise.
2009-11-05 Simon Josefsson <simon@josefsson.org>
* tests/test-func.c: Also test value of __func__.
2009-11-05 Simon Josefsson <simon@josefsson.org>
* tests/test-sys_socket.c: Use smaller constant value, sa_family_t
may be an 8-bit type. Reported by Bruno Haible <bruno@clisp.org>.
2009-11-05 Bruno Haible <bruno@clisp.org>
Fix link error.
* m4/inet_ntop.m4 (gl_INET_NTOP): Fix test of AC_SEARCH_LIBS result.
* m4/inet_pton.m4 (gl_INET_PTON): Likewise.
Reported by Brad Hards <bradh@frogmouth.net> via Simon Josefsson.
2009-11-05 Bruno Haible <bruno@clisp.org>
Tests for module 'inet_pton'.
* modules/inet_pton-tests: New file.
* tests/test-inet_pton.c: New file.
2009-11-05 Bruno Haible <bruno@clisp.org>
Tests for module 'inet_ntop'.
* modules/inet_ntop-tests: New file.
* tests/test-inet_ntop.c: New file.
2009-11-04 Eric Blake <ebb9@byu.net>
stdlib-safer: wrap all mkstemp variants
* modules/mkostemp (configure.ac): Set witness.
* modules/mkostemps (configure.ac): Likewise.
* modules/mkstemps (configure.ac): Likewise.
* lib/stdlib-safer.h (mkostemp_safer, mkostemps_safer)
(mkstemps_safer): Wrap more functions.
* lib/stdlib--.h (mkostemp, mkostemps, mkstemps): Default the
wrapping.
* lib/mkstemp-safer.c (mkostemp_safer, mkostemps_safer)
(mkstemps_safer): Implement the wrappers.
mkstemps, mkostemps: new modules
* modules/mkostemps: New module.
* modules/mkstemps: Likewise.
* lib/mkostemps.c (mkostemps): New file.
* lib/mkstemps.c (mkstemps): Likewise.
* m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Likewise.
* m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add witnesses.
* modules/stdlib (Makefile.am): Substitute them.
* lib/stdlib.in.h (mkostemps, mkstemps): Declare them.
* doc/glibc-functions/mkstemps.texi (mkstemps): New file.
* doc/glibc-functions/mkostemps.texi (mkostemps): Likewise.
* doc/gnulib.texi (Glibc stdlib.h): Include them.
* MODULES.html.sh (File system functions): Mention them.
tempname: resync from glibc
* lib/tempname.c (__gen_tempname): Add suffixlen argument. Use
same values for __GT_FILE as glibc. Abort even when assertions
are disabled.
* lib/tempname.h (GT_FILE): Use glibc __GT_FILE, if available, and
match its value otherwise. Allow idempotent inclusion.
* lib/mkdtemp.c (mkdtemp): Adjust caller.
* lib/mkostemp.c (mkostemp): Likewise.
* lib/mkstemp.c (mkstemp): Likewise.
* lib/tmpfile.c (tmpfile): Likewise.
* NEWS: Document this.
utimens: fix use of futimens on older Linux
* lib/utimens.c (fdutimens): Use updated, rather than original,
timespec to avoid bug in older Linux kernel.
Reported by Simon Josefsson.
2009-11-04 Bruno Haible <bruno@clisp.org>
Make num_processors more flexible and consistent.
* lib/nproc.h (enum nproc_query): New type.
(num_processors): Add a 'query' argument.
* lib/nproc.c: Include <stdlib.h>, <sched.h>, c-ctype.h.
(num_processors): Add a 'query' argument. Test the value of the
OMP_NUM_THREADS environment variable if requested. On Linux, NetBSD,
mingw, count the number of CPUs available for the current process.
* m4/nproc.m4 (gl_PREREQ_NPROC): Require AC_USE_SYSTEM_EXTENSIONS.
Check for sched_getaffinity and sched_getaffinity_np.
* modules/nproc (Depends-on): Add c-ctype, extensions.
* NEWS: Mention the change.
2009-11-03 Bruno Haible <bruno@clisp.org>
* NEWS: Document the new library dependencies of inet_ntop, inet_pton.
2009-11-03 Jim Meyering <meyering@redhat.com>
test-getaddrinfo: avoid compilation failure on FreeBSD 7.2
* tests/test-getaddrinfo.c (simple): Test for EAI_NODATA only
if it is defined.
2009-11-02 Eric Blake <ebb9@byu.net>
mktime, timegm: share common declaration
* lib/mktime-internal.h: New file.
* lib/mktime.c: Use it rather than open-coding a declaration.
* lib/timegm.c: Likewise.
* modules/mktime (Files): Ship it.
* modules/timegm (Files): Likewise.
Suggested by Bruno Haible.
test-update-copyright: update test to match script changes
* tests/test-update-copyright.sh: Avoid hard-coding perl
location. Don't update *.bak created by earlier runs.
2009-11-02 Paul Eggert <eggert@cs.ucla.edu>
Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
Fix link error on Solaris 8.
* m4/inet_pton.m4 (gl_INET_PTON): Search for the function inet_pton
also in libnsl. Define also INET_PTON_LIB.
* modules/inet_pton (Link): New section.
2009-11-02 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* m4/inet_ntop.m4 (gl_INET_NTOP): Define also INET_NTOP_LIB.
* modules/inet_ntop (Link): New section.
Reported by Boyan Kasarov <bkasarov@gmail.com>.
2009-11-02 Eric Blake <ebb9@byu.net>
maint: avoid compiler warnings in m4 macros
* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Avoid unused variable.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Include correct header.
2009-11-02 Simon Josefsson <simon@josefsson.org>
* m4/pmccabe2html.m4: Remove file.
* modules/pmccabe2html: Drop pmccabe2html.m4. Don't call m4
function. Change maintainer.
* build-aux/pmccabe2html: Use /bin/sh with magic instead of
hard-coding path to awk. Tiny patch from ludo@gnu.org (Ludovic
Courtès).
2009-10-31 Eric Blake <ebb9@byu.net>
fseeko: fix m4 regression
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Use modern macro. Fixes
regression from 2009-10-27.
Reported by Ralf Wildenhues.
2009-10-31 Jim Meyering <meyering@redhat.com>
inttostr: aesthetics and improved (compile-time) safety
Define inttype_is_signed rather than inttype_is_unsigned,
since the sole use is via "#if inttype_is_signed".
* lib/imaxtostr.c (inttype_is_signed): Define this, rather than
inttype_is_unsigned.
* lib/offtostr.c (inttype_is_signed): Likewise.
* lib/uinttostr.c (inttype_is_signed): Likewise.
* lib/umaxtostr.c (inttype_is_signed): Likewise.
* lib/inttostr.c (inttostr): Use verify to cross-check the
inttype_is_signed value and the signedness of the actual type.
* modules/inttostr (Depends-on): Add verify.
2009-10-30 Eric Blake <ebb9@byu.net>
build: avoid compiler warnings
* lib/fchmodat.c (lchmod): Mark unused variables.
* lib/getopt.c (_getopt_initialize): Likewise.
* lib/mktime.c (__mktime_internal): Provide prototype.
* lib/inttostr.c (inttostr): Avoid compiler warning even with
older gcc that do not understand #pragma GCC diagnostic.
* lib/uinttostr.c (inttype_is_unsigned): Define.
* lib/umaxtostr.c (inttype_is_unsigned): Likewise.
2009-10-30 Michael Haubenwallner <michael.haubenwallner@salomon.at>
stat: fix compilation on AIX
* lib/sys_stat.in.h (stat): Work with fact that large files on AIX
only see struct stat64.
2009-10-30 Eric Blake <ebb9@byu.net>
exclude: make more robust
* lib/exclude.c (excluded_file_name): Abort on unexpected value,
rather than masking a coding bug.
Suggested by Bruno Haible.
2009-10-30 Jim Meyering <meyering@redhat.com>
perl scripts: remove #!/usr/bin/perl in favor of more portable...
Rather than putting #!/usr/bin/perl on the first line,
start with a variant of what's recommended by "man perlrun" that
invokes the first "perl" program from your shell's search path.
* build-aux/gitlog-to-changelog: Replace #!... as above.
Add a "Local Variables" perl mode setting.
Prompted by a patch from Ludovic Courtès.
Improved by Eric Blake.
* build-aux/useless-if-before-free: Likewise.
* build-aux/announce-gen: Likewise.
* build-aux/update-copyright: Likewise.
2009-10-29 Eric Blake <ebb9@byu.net>
filenamecat-lgpl: adjust clients
* modules/linkat (Depends-on): Use filenamecat-lgpl, not
filenamecat.
* modules/renameat (Depends-on): Likewise.
filenamecat: split into filenamecat-lgpl
* modules/filenamecat-lgpl: New module.
* modules/filenamecat (Files): Move library-safe files into
filenamecat-lgpl.
(Depends-on): Add filenamecat-lgpl.
(configure.ac): Declare witness.
* lib/filenamecat.h (file_name_concat): Only declare when using
GPL module.
* lib/filenamecat.c (longest_relative_suffix, mfile_name_concat):
Move...
* lib/filenamecat-lgpl.c: ...into new file.
* m4/filenamecat.m4 (gl_FILE_NAME_CONCAT_LGPL): New macro.
(gl_FILE_NAME_CONCAT): Use it.
* MODULES.html.sh (File system functions): Mention new module.
argp: avoid memory leak
* modules/argp (Depends-on): Use dirname-lgpl, not dirname.
* lib/argp-namefrob.h (__argp_base_name): Use last_component, not
base_name, since the latter malloc()s and can call exit().
Leak introduced 2006-07-03.
dirname-lgpl: adjust clients that don't need full dirname
* modules/backupfile (Depends-on): Use dirname-lgpl, not dirname.
* modules/filenamecat (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/mkancesdirs (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
(License): Relax license.
* modules/mkdir-tests (Depends-on): Drop progname.
(Makefile.am): Delete unneeded LDADD.
* modules/rename-tests (Depends-on, Makefile.am): Likewise.
dirname: split into dirname-lgpl
* modules/dirname-lgpl: New module.
* modules/dirname (Files): Move library-safe files into
dirname-lgpl.
(Depends-on): Add dirname-lgpl.
(configure.ac): Declare witness.
* modules/double-slash-root (License): Relax license.
* lib/dirname.h (base_name, dir_name): Only declare when using GPL
module.
* lib/dirname.c (dir_len, mdir_name): Move...
* lib/dirname-lgpl.c: ...into new file.
* lib/basename.c (last_component, base_len): Move...
* lib/basename-lgpl.c: ...into new file.
* m4/dirname.m4 (gl_DIRNAME_LGPL): New macro.
(gl_DIRNAME): Use it.
* MODULES.html.sh (Enhancements for POSIX:2008 functions):
Mention new module.
* modules/dirname-tests (Depends-on): Add progname.
* tests/test-dirname.c (program_name): Delete.
mkdir: make safe for libraries
* modules/mkdir (Depends-on): Drop xalloc.
* lib/mkdir.c (rpl_mkdir): Fail with ENOMEM rather than calling
exit.
tests: avoid some compiler warnings
* tests/test-getaddrinfo.c (simple): Mark static, and allow string
literals.
* tests/test-memchr.c (main): Avoid type mismatch.
* tests/test-arpa_inet.c (main): Avoid unused parameters.
* tests/test-base64.c (main): Likewise.
* tests/test-getdelim.c (main): Likewise.
* tests/test-gethostname.c (main): Likewise.
* tests/test-getline.c (main): Likewise.
* tests/test-netinet_in.c (main): Likewise.
* tests/test-select.c (open_server_socket, main): Likewise.
* tests/test-select-stdin.c (main): Likewise.
* tests/test-sockets.c (main): Likewise.
* tests/test-strsignal.c (main): Likewise.
* tests/test-sys_select.c (main): Likewise.
* tests/test-sys_socket.c (main): Likewise.
* tests/test-u64.c (main): Likewise.
* tests/test-xfprintf-posix.c (main): Likewise.
* tests/test-xvasprintf.c (test_xvasprintf, main): Likewise.
sockets: avoid compiler warning
* lib/sockets.c (gl_sockets_startup): Mark unused parameter.
maint: detect usage(1) and other suspicious exits
* top/maint.mk (sc_prohibit_magic_number_exit): New rule.
2009-10-29 Jim Meyering <meyering@redhat.com>
timespec: long-to-int truncation could make timespec_cmp malfunction
* lib/timespec.h (timespec_cmp): Do not interpret a difference of
a multiple of 2^32 nanoseconds as no difference.
2009-10-28 Jim Meyering <meyering@redhat.com>
fprintftime: wrap macro code argument in "do {...} while(0)"
* lib/strftime.c (cpy) [FPRINTFTIME]: The second argument to the
cpy macro must be a statement that can be followed by a semicolon.
Now that the else clause contains a comment and is hence longer
than one line, I require curly braces. That in turn requires
that we wrap this code block in the standard do...while(0).
fprintftime: remove stray semicolon from previous change
* lib/strftime.c (cpy) [FPRINTFTIME]: Remove trailing semicolon.
fprintftime: avoid a warning about ignored fwrite return value
* lib/strftime.c [FPRINTFTIME]: Include "ignore-value.h".
(cpy) [FPRINTFTIME]: Ignore fwrite failure, even though technically,
that is unsafe.
* modules/fprintftime (Depends-on): Add ignore-value.
exclude: avoid an unwarranted warning
* lib/exclude.c (excluded_file_name): Initialize "rc" before switch.
2009-10-27 Eric Blake <ebb9@byu.net>
fseek: avoid compilation failure when fflush is replaced
* m4/fseek.m4 (gl_REPLACE_FSEEK): New macro.
* m4/fseeko.m4 (gl_REPLACE_FSEEKO): Also replace fseek, if fseek
module is in use.
* lib/stdio.in.h (GNULIB_FSEEKO): Only poison fseek if fseek
module is not in use; since REPLACE_FSEEK worked otherwise.
(GNULIB_FTELLO): Likewise for ftell.
Reported by Ian Beckwith and others.
2009-10-27 Bruno Haible <bruno@clisp.org>
* lib/isnan.c (rpl_isnan[fdl]): Repeat the specification declaration.
Reported by Jim Meyering.
2009-10-27 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org>
Avoid warning despite dropping the return value of fwrite.
* lib/unicodeio.c: Include ignore-value.h.
(fwrite_success_callback): Explicitly ignore fwrite's return value.
* modules/unicodeio (Depends-on): Add ignore-value.
2009-10-26 Eric Blake <ebb9@byu.net>
areadlinkat: fix fallback path
* lib/at-func.c (AT_FUNC_NAME): Avoid signed comparison between
pointer and zero.
2009-10-22 Pádraig Brady <P@draigBrady.com>
Use a better IO block size for modern systems
* lib/copy-file.c (copy_file_preserving): Used a 32KiB malloced buffer.
* lib/md2.c: Likewise.
* lib/md4.c: Likewise.
* lib/md5.c: Likewise.
* lib/sha1.c: Likewise.
* lib/sha256.c: Likewise.
* lib/sha512.c: Likewise.
2009-10-22 Eric Blake <ebb9@byu.net>
tests: avoid several compiler warnings
* tests/test-getcwd.c (main): Avoid buffer underflow.
* tests/test-getdate.c (main): String literals are not safe with
putenv, so use setenv. Declare unused argument.
* modules/getdate-tests (Depends-on): Add setenv.
* tests/test-argv-iter.c (main): Declare unused argument. Avoid
problems with string literals in char *.
* tests/test-hash.c (main): Avoid shadowing declaration.
(insert_new): Treat string literals as char const *.
* tests/test-getopt.h (test_getopt): Likewise.
(getopt_loop): Alter types to minimize casting elsewhere.
* tests/test-getopt_long.h (test_getopt_long, getopt_long_loop)
(test_getopt_long_posix): Likewise.
(do_getopt_long): Add wrapper to minimize casting.
* tests/test-atexit.c (clear_temp_file): Use void.
* tests/test-areadlink-with-size.c (main): Declare unused
arguments.
* tests/test-areadlink.c (main): Likewise.
* tests/test-areadlinkat-with-size.c (main): Likewise.
* tests/test-areadlinkat.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-dirent-safer.c (main): Likewise.
* tests/test-dirname.c (main): Likewise.
* tests/test-dup2.c (main): Likewise.
* tests/test-fchdir.c (main): Likewise.
* tests/test-fcntl-h.c (main): Likewise.
* tests/test-fcntl-safer.c (main): Likewise.
* tests/test-fdopendir.c (main): Likewise.
* tests/test-fdutimensat.c (main): Likewise.
* tests/test-fflush.c (main): Likewise.
* tests/test-filenamecat.c (main): Likewise.
* tests/test-filevercmp.c (main): Likewise.
* tests/test-fopen-safer.c (main): Likewise.
* tests/test-fopen.c (main): Likewise.
* tests/test-fpending.c (main): Likewise.
* tests/test-fpurge.c (main): Likewise.
* tests/test-freading.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-fsync.c (main): Likewise.
* tests/test-futimens.c (main): Likewise.
* tests/test-getndelim2.c (main): Likewise.
* tests/test-gettimeofday.c (main): Likewise.
* tests/test-getopt.c (main): Likewise.
* tests/test-i-ring.c (main): Likewise.
* tests/test-inttypes.c (main): Likewise.
* tests/test-link.c (main): Likewise.
* tests/test-lstat.c (main): Likewise.
* tests/test-math.c (main): Likewise.
* tests/test-md5.c (main): Likewise.
* tests/test-memchr2.c (main): Likewise.
* tests/test-memrchr.c (main): Likewise.
* tests/test-mkdir.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-mkfifoat.c (main): Likewise.
* tests/test-open.c (main): Likewise.
* tests/test-openat-safer.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-quotearg.c (main): Likewise.
* tests/test-rawmemchr.c (main): Likewise.
* tests/test-readlink.c (main): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-rename.c (main): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-rmdir.c (main): Likewise.
* tests/test-sha1.c (main): Likewise.
* tests/test-signal.c (main): Likewise.
* tests/test-sigaction.c (main): Likewise.
* tests/test-stat.c (main): Likewise.
* tests/test-stat-time.c (main): Likewise.
* tests/test-stddef.c (main): Likewise.
* tests/test-stdint.c (main): Likewise.
* tests/test-stdio.c (main): Likewise.
* tests/test-stdlib.c (main): Likewise.
* tests/test-strchrnul.c (main): Likewise.
* tests/test-strerror.c (main): Likewise.
* tests/test-string.c (main): Likewise.
* tests/test-strtod.c (main): Likewise.
* tests/test-strverscmp.c (main): Likewise.
* tests/test-symlink.c (main): Likewise.
* tests/test-symlinkat.c (main): Likewise.
* tests/test-sys_stat.c (main): Likewise.
* tests/test-sys_time.c (main): Likewise.
* tests/test-time.c (main): Likewise.
* tests/test-unistd.c (main): Likewise.
* tests/test-unlink.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-utimens.c (main): Likewise.
* tests/test-utimensat.c (main): Likewise.
* tests/test-version-etc.c (main): Likewise.
* tests/test-wchar.c (main): Likewise.
* tests/test-wctype.c (main): Likewise.
* tests/test-xprintf-posix.c (main): Likewise.
* tests/test-posixtm.c (main): Likewise.
(STREQ): Delete unused macro.
* tests/test-linkat.c (main): Declare unused arguments. Avoid
shadowed variables.
* tests/test-memchr.c (main): Likewise.
2009-10-21 Eric Blake <ebb9@byu.net>
areadlinkat: avoid failure on older glibc
* lib/at-func.c (AT_FUNC_NAME): Check for explicit FUNC_FAIL,
rather than mis-comparing 0 against FUNC_RESULT of char*.
2009-10-21 Bruno Haible <bruno@clisp.org>
* modules/stpncpy (License): Relicense under LGPLv2+.
Reported by David Lutterkort <lutter@redhat.com>.
2009-10-20 Eric Blake <ebb9@byu.net>
utimensat: work around Solaris 9 bug
* lib/utimens.c (fdutimens, lutimens): Force a stat if platform
has trailing slash bugs.
* tests/test-lutimens.h (test_lutimens): Enhance test.
* tests/test-utimens.h (test_utimens): Likewise.
* doc/posix-functions/utime.texi (utime): Enhance documentation.
* doc/posix-functions/utimes.texi (utimes): Likewise.
* doc/posix-functions/utimensat.texi (utimensat): Likewise.
* doc/glibc-functions/futimesat.texi (futimesat): Likewise.
* doc/glibc-functions/lutimes.texi (lutimes): Likewise.
* doc/posix-functions/futimens.texi (futimens): Likewise.
fdutimensat: new module
* modules/fdutimensat: New file.
* lib/fdutimensat.c (fdutimensat): Likewise.
* lib/utimens.h (fdutimensat, lutimensat): Declare new functions.
* MODULES.html.sh (File system functions): Mention module.
* modules/fdutimensat-tests: New test.
* tests/test-fdutimensat.c: Likewise.
doc: regenerate INSTALL
* doc/INSTALL: Reflect recent autoconf update.
* doc/INSTALL.ISO: Likewise.
* doc/INSTALL.UTF-8: Likewise.
2009-10-20 Pádraig Brady <P@draigBrady.com>
acl: warn if ACL support is not detected
* m4/acl.m4 (gl_FUNC_ACL): Output a warning if ACL support is not found.
2009-10-19 Giuseppe Scrivano <gscrivano@gnu.org>
* lib/nproc.h: Add extern "C" block for C++.
2009-10-18 Reuben Thomas <rrt@sc3d.org>
Bruno Haible <bruno@clisp.org>
* doc/posix-functions/isascii.texi: Document the 2 alternative APIs.
* doc/posix-functions/isalnum.texi: Document the 4 alternative APIs.
* doc/posix-functions/isalpha.texi: Likewise.
* doc/posix-functions/isblank.texi: Likewise.
* doc/posix-functions/iscntrl.texi: Likewise.
* doc/posix-functions/isdigit.texi: Likewise.
* doc/posix-functions/isgraph.texi: Likewise.
* doc/posix-functions/islower.texi: Likewise.
* doc/posix-functions/isprint.texi: Likewise.
* doc/posix-functions/ispunct.texi: Likewise.
* doc/posix-functions/isspace.texi: Likewise.
* doc/posix-functions/isupper.texi: Likewise.
* doc/posix-functions/isxdigit.texi: Likewise.
2009-10-18 Bruno Haible <bruno@clisp.org>
Tests for module 'isblank'.
* modules/isblank-tests: New file.
* tests/test-isblank.c: New file.
New module 'isblank'.
* lib/isblank.c: New file.
* m4/isblank.m4: New file.
* modules/isblank: New file.
* doc/posix-functions/isblank.texi: Mention the new module.
2009-10-18 Bruno Haible <bruno@clisp.org>
New module 'ctype'.
* lib/ctype.in.h: New file.
* m4/ctype.m4: New file.
* modules/ctype: New file.
* doc/posix-headers/ctype.texi: Mention the new module.
2009-10-18 Jim Meyering <meyering@redhat.com>
m4: stylistic-only: hoist AC_SUBST to be adjacent to initialization
Declare a variable like LIB_CLOCK_GETTIME to be AC_SUBSTituted
right after its initialization, rather than farther down.
Keeping these in close proximity makes it easier to ensure
that each such variable is initialized. E.g.,
LIB_CLOCK_GETTIME=
AC_SUBST([LIB_CLOCK_GETTIME])
This change also increments these serial numbers.
* m4/clock_time.m4 (gl_CLOCK_TIME): Hoist AC_SUBST use.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
2009-10-18 Bruno Haible <bruno@clisp.org>
Don't let environment variables perturb build.
* m4/gethrxtime.m4 (gl_GETHRXTIME): Initialize LIB_GETHRXTIME here...
(gl_PREREQ_GETHRXTIME): ... not here.
2009-10-18 Bruno Haible <bruno@clisp.org>
Avoid symlink attack in localcharset module.
* lib/localcharset.c: Include <fcntl.h>, <unistd.h>.
(O_NOFOLLOW): Define fallback.
(get_charset_aliases): Don't open the file if it is a symbolic link.
* m4/fcntl_h.m4 (gl_FCNTL_O_FLAGS): New macro, extracted from
gl_FCNTL_H.
(gl_FCNTL_H): Require it.
* m4/localcharset.m4 (gl_LOCALCHARSET): Likewise.
* modules/localcharset (Files): Add m4/fcntl_h.m4.
Reported by Fergal Glynn <fglynn@veracode.com>.
2009-10-18 Bruno Haible <bruno@clisp.org>
Implement nproc for mingw.
* lib/nproc.c: Include <windows.h>
(num_processors): On native Windows platforms, try GetSystemInfo.
2009-10-18 Bruno Haible <bruno@clisp.org>
Implement nproc for IRIX.
* lib/nproc.c: Include <sys/sysmp.h>.
(num_processors): On IRIX systems, try sysmp.
* m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/sysmp.h and sysmp.
2009-10-18 Bruno Haible <bruno@clisp.org>
Implement nproc for HP-UX.
* lib/nproc.c: Include <sys/pstat.h>
(num_processors): On HP-UX systems, try pstat_getdynamic.
* m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/pstat.h and
pstat_getdynamic.
2009-10-18 Giuseppe Scrivano <gscrivano@gnu.org>
Bruno Haible <bruno@clisp.org>
Implement nproc for NetBSD, OpenBSD.
* lib/nproc.c: Include <sys/types.h>, <sys/param.h>, <sys/sysctl.h>.
(ARRAY_SIZE): New macro.
(num_processors): On BSD systems, try sysctl of HW_NCPU.
* m4/nproc.m4: New file.
* modules/nproc (Files): Add m4/nproc.m4.
(configure.ac): Invoke gl_NPROC. Remove AC_LIBOBJ invocation.
(Makefile.am): Instead, augment lib_SOURCES.
2009-10-18 Bruno Haible <bruno@clisp.org>
Fix recognition of sys/sysctl.h on OpenBSD 4.0.
* m4/physmem.m4 (gl_PHYSMEM): Before including sys/sysctl.h, include
sys/param.h.
2009-10-16 Eric Blake <ebb9@byu.net>
utimensat: new module
* modules/utimensat: New file.
* lib/utimensat.c (utimensat): Likewise.
* m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
* lib/utimens.c (utimensat): Avoid recursion into rpl_utimensat,
so we can work around Linux bugs.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (utimensat): Declare it.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/utimensat.texi (utimensat): Likewise.
* modules/utimensat-tests: New test.
* tests/test-utimensat.c: Likewise.
utimens: let lutimens work on non-symlinks
* lib/utimens.c (lutimens): Fall back to utimens rather than
failing with ENOSYS, when file is not a symlink.
(utimens): Reduce redirection.
* tests/test-lutimens.h (test_lutimens): Update test to cover
non-symlinks.
* tests/test-utimens.h (test_utimens): Update test to cover
symlinks.
* tests/test-utimens.c (main): Update caller.
utimens: cache whether utimensat syscall works
* lib/utimens.c (utimensat_works_really): New cache variable.
(fdutimens, lutimens): Use it to avoid failing syscall.
test-stat-time, test-utimens: improve portability
* tests/test-stat-time.c (nap): Lengthen delay to 20ms, for
ext4 on alpha, and for cygwin.
* tests/test-utimens-common.h: New file.
(nap): Factor delays into single function.
* tests/test-lutimens.h (test_lutimens): Use new header.
* tests/test-futimens.h (test_futimens): Likewise.
* tests/test-utimens.h (test_utimens): Likewise. Also, force NFS
timestamps to occur from same machine, as was done previously for
test_utimens.
* modules/utimens-tests (Files): Ship new file.
* modules/futimens-tests (Files): Likewise.
Reported in part by Jim Meyering.
sys_stat: sort replacement declarations
* lib/sys_stat.in.h: Sort declarations.
* lib/futimens.c (futimens): Fix typo.
2009-10-15 Jim Meyering <meyering@redhat.com>
don't let environment settings perturb build
Setting the envvars, LIB_CLOCK_GETTIME, LIB_EACCESS or LIB_NANOSLEEP
could cause a configure-time and/or build-time malfunction.
Typically, a configure-time function-in-library test is performed
via code like this:
LIB_VAR=
AC_SUBST([LIB_VAR])
prefix_saved_LIBS=$LIBS
AC_SEARCH_LIBS([FUNC], [LIB_NAME],
[test "$ac_cv_search_FUNC" = "none required" ||
LIB_VAR=$ac_cv_search_FUNC])
LIBS=$prefix_saved_LIBS
However, in each of the files affected by this change, the LIB_VAR=
initialization was omitted. Thus, when set in the environment, its
value would propagate into generated Makefiles when FUNC is not found
in LIB_NAME.
* m4/clock_time.m4 (gl_CLOCK_TIME): Initialize AC_SUBST'd var.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
2009-10-14 Eric Blake <ebb9@byu.net>
fchdir: avoid infinite recursion in mingw
* lib/fchdir.c (rpl_fstat): Call system fstat, rather than
recursing.
test-stat-time: port to mingw
* tests/test-stat-time.c (force_unlink): Return a value.
(test_ctime) [W32]: Fix compilation error.
(nap): Don't call usleep with too large an argument. Use
force_unlink.
* doc/pastposix-functions/usleep.texi (usleep): Document the
portability issue.
2009-10-13 Jim Meyering <meyering@redhat.com>
use AC_CHECK_FUNCS_ONCE, not AC_CHECK_FUNCS in modules/*
* modules/pipe-filter-gi: Use AC_CHECK_FUNCS_ONCE, not AC_CHECK_FUNCS.
* modules/pipe-filter-ii: Likewise.
* modules/sys_socket-tests: Likewise.
* modules/tsearch-tests: Likewise.
* Makefile (sc_prefer_ac_check_funcs_once): New rule.
(check): Depend on it.
2009-10-12 Eric Blake <ebb9@byu.net>
utimens-tests: port to NFS file systems
* tests/test-utimens.h (test_utimens): Refactor utimecmp
comparisons to avoid spurious failures from timestamp drift
between NFS machines.
2009-10-12 Eric Blake <ebb9@byu.net>
stat-time-tests: minor cleanups
* modules/stat-time-tests (configure.ac): Use AC_CHECK_FUNCS_ONCE.
* tests/test-stat-time.c (nap): Separate assignment from call.
Suggested by Paolo Bonzini and Bruno Haible.
sys_stat: guarantee struct timespec
* lib/sys_stat.in.h (includes): Always include <time.h>
* modules/sys_stat (Depends-on): Add time.
* tests/test-sys_stat.c: Guarantee struct timespec, as well as
mode_t permission values.
* doc/posix-headers/sys_stat.texi (sys/stat.h): Document how to
get at subsecond timestamps.
2009-10-10 Eric Blake <ebb9@byu.net>
futimens: new module
* modules/futimens: New file.
* lib/futimens.c (futimens): Likewise.
* m4/futimens.m4 (gl_FUNC_FUTIMENS): Likewise.
* lib/utimens.c (futimens): Avoid recursion into rpl_futimens, so
we can work around Linux bugs.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (futimens): Declare it.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/futimens.texi (futimens): Likewise.
* modules/futimens-tests: New test.
* tests/test-futimens.c: Likewise.
utimens: introduce fdutimens
* lib/utimens.h (fdutimens): New prototype.
* lib/utimens.c (gl_futimens): Move guts...
(fdutimens): ...to new interface.
* tests/test-utimens.c (do_fdutimens): Use it.
utimens: add UTIME_NOW and UTIME_OMIT support
* lib/utimens.c (validate_timespec, update_timespec): New helper
functions.
(gl_futimens, lutimens): Use them.
* modules/utimens (Depends-on): Add gettime, lstat, stat-time,
stdbool, sys_stat.
(Link): Mention resulting library dependency.
* modules/utimecmp (Link): Likewise.
* modules/utimens-tests (Depends-on): Drop stat-time, stdbool.
(Makefile.am): Pick up library dependency.
* lib/sys_stat.in.h (UTIME_NOW, UTIME_OMIT): Guarantee a
definition.
* tests/test-sys_stat.c: Test the definitions.
* doc/posix-headers/sys_stat.texi (sys/stat.h): Document this.
* NEWS: Document library dependency.
utimecmp: support symlink timestamps
* lib/utimecmp.c (utimecmp): Use new interface. Skip effort of
hashing when possible. Use pathconf when available.
(SYSCALL_RESOLUTION): Recognize tighter resolution.
* modules/utimecmp (Depends-on): Add lstat.
utimens: add lutimens interface
* lib/utimens.c (lutimens): New function.
* m4/utimens.m4 (gl_UTIMENS): Check for lutimes.
* lib/utimens.h (lutimens): Declare new interface.
* tests/test-utimens.c (main): Enhance test.
* tests/test-lutimens.h (test_lutimens): New file.
* modules/utimens-tests (Files): Distribute it.
(Depends-on): Add symlink.
(configure.ac): Check for usleep.
utimens: validate futimens usage
* lib/utimens.c (gl_futimens): Require valid fd up front, using
fewer syscalls on failure later on. Avoid compiler warning on
mingw.
* modules/utimens (Depends-on): Add dup2.
utimens: add test
* modules/utimens-tests: New test.
* tests/test-utimens.h: New file.
* tests/test-futimens.h: Likewise.
* tests/test-utimens.c: Likewise.
doc: mention timestamp portability issues
* doc/glibc-functions/lutimes.texi (lutimes): Refer to utimensat
instead.
* doc/posix-functions/utime.texi (utime): Likewise.
* doc/posix-functions/utimes.texi (utimes): Likewise.
* doc/glibc-functions/futimes.texi (futimes): Refer to futimens
instead.
* doc/posix-functions/futimens.texi (futimens): Mention utimens
module.
* doc/posix-functions/utimensat.texi (utimensat): Likewise.
Mention weakness with symlink timestamps.
* doc/glibc-functions/futimesat.texi (futimesat): New file; refer
to utimensat/futimens instead.
* doc/gnulib.texi (Glibc sys/time.h): Include new file.
test-dup2: enhance test
* tests/test-dup2.c (main): Also check AT_FDCWD.
test-stat-time: avoid more spurious failures
* tests/test-stat-time.c (nap): Wait for 15ms rather than 2ms, for
xfs; and avoid race if the two timestamps cross quantization edge.
relocatable: prefer 'file system' over 'filesystem'
* m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Use AS_HELP_STRING.
(gl_RELOCATABLE_LIBRARY_BODY): Fix spelling.
* doc/relocatable-maint.texi (Supporting Relocation): Likewise.
* doc/relocatable.texi (Enabling Relocatability): Likewise.
* lib/relocatable.c (compute_curr_prefix): Likewise.
2009-10-10 Jim Meyering <meyering@redhat.com>
stat-time-tests: check for the usleep function
* modules/stat-time-tests (configure.ac): Now that we test HAVE_USLEEP.
2009-10-10 Bruno Haible <bruno@clisp.org>
* modules/xnanosleep: Put the Link section after the Include section.
2009-10-09 Eric Blake <ebb9@byu.net>
dup2: work around FreeBSD 6.1 bug
* m4/dup2.m4 (gl_FUNC_DUP2): Detect bug.
* doc/posix-functions/dup2.texi (dup2): Document it.
Reported by Nelson H. F. Beebe and Jim Meyering.
test-stat-time: port to buggy NFS clients
* tests/test-stat-time.c (main) [W32]: Reduce ifdefs.
(test_ctime): Also skip test if mtime and ctime are skewed.
maint: prefer 'file system' over 'filesystem'
* doc/posix-functions/fstatat.texi (fstatat): Likewise.
* doc/posix-functions/lstat.texi (lstat): Likewise.
* lib/file-has-acl.c (file_has_acl): Likewise.
* lib/fwriteerror.c [TEST]: Likewise.
* tests/test-areadlink.h (test_areadlink): Likewise.
* tests/test-areadlinkat-with-size.c (main): Likewise.
* tests/test-areadlinkat.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-linkat.c (main): Likewise.
* tests/test-lstat.h (test_lstat_func): Likewise.
* tests/test-mkdir.h (test_mkdir): Likewise.
* tests/test-readlink.h (test_readlink): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-rename.h (test_rename): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-rmdir.h (test_rmdir_func): Likewise.
* tests/test-symlink.h (test_symlink): Likewise.
* tests/test-symlinkat.c (main): Likewise.
* tests/test-unlink.h (test_unlink_func): Likewise.
* tests/test-unlinkat.c (main): Likewise.
maint: make realtime library usage explicit
* modules/gethrxtime (Link): Mention LIB_GETHRXTIME.
* modules/gettime (Link): Mention LIB_CLOCK_GETTIME.
* modules/settime (Link): Likewise.
* modules/xnanosleep (Link): Mention LIB_NANOSLEEP.
test-stat-time: speed up execution
* tests/test-stat-time.c (test_ctime) [!W32]: Avoid compiler
warning on mingw.
(nap): New helper function.
(prepare_test): Use it to reduce sleep time.
(test_mtime, test_ctime, test_birthtime): Allow for subsecond
execution.
* modules/stat-time-tests (configure.ac): Check for usleep.
2009-10-09 Jim Meyering <meyering@redhat.com>
selinux-h: always use getfilecon wrappers
* lib/getfilecon.c: New file.
* lib/se-selinux.in.h: Use a better inclusion guard symbol name.
[HAVE_SELINUX_SELINUX_H]: Include-next <selinux/selinux.h>.
[!HAVE_SELINUX_SELINUX_H]: Use better parameter names.
(fgetfilecon): Provide a stub.
* m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Don't
AC_SUBST SELINUX_SELINUX_H, since now we're generating that
file unconditionally.
When <selinux/selinux.h> is found, arrange to use wrappers.
* modules/selinux-h (Files): Add getfilecon.c.
(Makefile.am): Substitute include-next-related bits
into the now-always-generated selinux/selinux.h file.
* doc/glibc-functions/lgetfilecon.texi: New file.
* doc/glibc-functions/fgetfilecon.texi: New file.
* doc/glibc-functions/getfilecon.texi: New file.
* doc/glibc-functions/getfilecon-desc.texi: New file.
* doc/gnulib.texi (Glibc selinux/selinux.h): New section, by
which to pull in the new files.
* MODULES.html.sh (Misc): Add selinux-h.
2009-10-08 Jim Meyering <meyering@redhat.com>
unistd: fix comment typo
* lib/unistd.in.h (euidaccess): Fix a comment typo.
2009-10-08 Eric Blake <ebb9@byu.net>
areadlink: use SIZE_MAX consistently
* modules/areadlink (Depends-on): Add stdint.
* modules/areadlink-with-size (Depends-on): Likewise.
* lib/areadlink-with-size.c (includes): Drop stdio, since stdlib
gives NULL; drop sys/types, since unistd gives size_t; and add
stdint for SIZE_MAX.
(SIZE_MAX): Rely on headers.
* lib/areadlinkat-with-size.c (includes): Drop stdio, sys/types,
and add stdint.
* lib/areadlink.c (includes): Drop sys/types, and add stdint.
(SIZE_MAX): Likewise.
(INITIAL_BUF_SIZE): Turn into enum.
* lib/areadlinkat.c (INITIAL_BUF_SIZE): Likewise.
2009-10-08 Jim Meyering <meyering@redhat.com>
areadlinkat: avoid compilation failure
* lib/areadlinkat.c: Include <stdint.h> for use of SIZE_MAX.
Fix typo in comment.
2009-10-07 Eric Blake <ebb9@byu.net>
areadlinkat-with-size: new module
* modules/areadlinkat-with-size: New module.
* lib/areadlinkat-with-size.c (areadlinkat_with_size): New file.
* lib/areadlink.h (areadlinkat): Declare it.
* MODULES.html.sh (File system functions): Mention it.
* modules/areadlinkat-with-size-tests: New test.
* tests/test-areadlinkat-with-size.c: New file.
xreadlinkat: new module
* modules/xreadlinkat: New module.
* lib/xreadlinkat.c (xreadlinkat): New file.
* lib/xreadlink.h (xreadlinkat): Declare it.
* MODULES.html.sh (File system functions): Mention it.
areadlinkat: new module
* lib/at-func.c (FUNC_FAIL): New define.
(AT_FUNC_NAME, VALIDATE_FLAG): Use it rather than raw -1.
* modules/areadlinkat: New module.
* lib/linkat.c (areadlinkat): Move...
* lib/areadlinkat.c (areadlinkat): ...to new file.
* lib/areadlink.h (areadlinkat): Declare it.
* modules/linkat (Depends-on): Add areadlinkat.
* MODULES.html.sh (File system functions): Mention it.
* modules/areadlinkat-tests: New test.
* tests/test-areadlinkat.c: New file.
areadlink, areadlink-with-size: add tests
* modules/areadlink-tests: New test.
* modules/areadlink-with-size-tests: Likewise.
* tests/test-areadlink.h: New file.
* tests/test-areadlink.c: Likewise.
* tests/test-areadlink-with-size.c: Likewise.
maint: minor cleanups
* lib/fts.c (ATTRIBUTE_UNUSED): Delete; use gnulib-guaranteed
_UNUSED_PARAMETER_ instead.
* lib/getdate.y (ATTRIBUTE_UNUSED): Likewise.
* lib/utimens.c (ATTRIBUTE_UNUSED): Likewise.
* modules/linkat-tests (Files): Distribute test-link.h.
openat, utimens: whitespace cleanup
* lib/openat.c: Prefer space throughout, rather than mix of 8
spaces vs. tabs.
* lib/at-func.c: Likewise.
* lib/utimens.c: Likewise.
openat: avoid using wrong fd
* lib/openat.c (openat_permissive): Reject user's fd if saving the
working directory chooses same fd.
* lib/at-func.c (AT_FUNC_NAME): Likewise.
mkdir, mkdirat: fix cygwin 1.5.x bug
* lib/mkdir.c (rpl_mkdir) [FUNC_MKDIR_DOT_BUG]: Work around bug.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Move...
* m4/mkdir.m4 (gl_FUNC_MKDIR): ...here, and add check for cygwin
bug.
(gl_PREREQ_MKDIR): Delete unused macro.
* modules/mkdir (Files): Track file rename.
(configure.ac): Update macro name.
* modules/openat (Depends-on): Add mkdir.
* doc/posix-functions/mkdir.texi (mkdir): Document the bug.
mkdir, mkdirat: add tests
* modules/mkdir-tests: New test.
* tests/test-mkdir.h: New file.
* tests/test-mkdir.c: Likewise.
* tests/test-mkdirat.c: Likewise.
* modules/openat-tests (Files): Add new files.
(Makefile.am): Run new test.
2009-10-06 Eric Blake <ebb9@byu.net>
doc: tweak *at function documentation
* doc/posix-functions/faccessat.texi (faccessat): Mention
known issue with replacement.
* doc/posix-functions/fchdir.texi (fchdir): Likewise.
* doc/posix-functions/linkat.texi (linkat): Likewise.
* doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
* doc/posix-functions/mknodat.texi (mknodat): Likewise.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* doc/posix-functions/renameat.texi (renameat): Likewise.
* doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
openat: fix GNU/Hurd bug in unlinkat
* m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is
broken.
* doc/posix-functions/unlink.texi (unlink): Document this.
* doc/posix-functions/unlinkat.texi (unlinkat): Likewise.
fdopendir: fix GNU/Hurd bug
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in
allowing non-directory fds.
* lib/fdopendir.c (rpl_fdopendir): Work around it.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness.
* modules/dirent (Makefile.am): Substitute it.
* lib/dirent.in.h (fdopendir): Declare replacement.
* doc/posix-functions/fdopendir.texi (fdopendir): Document this.
* tests/test-fdopendir.c (main): Test something other than
/dev/null, since on Hurd that behaves like a directory.
test-symlink: port to GNU/Hurd
* tests/test-symlink.h (test_symlink): Relax expected errno.
doc: tweak more cygwin information
* doc/glibc-headers/getopt.texi (getopt.h): Cygwin 1.7 getopt is
now compatible with glibc.
* doc/posix-functions/getopt.texi (getopt): Likewise.
getopt-gnu: add another test
* tests/test-getopt_long.h (test_getopt_long_posix): New test, to
guarantee behavior relied on by m4.
* tests/test-getopt.c (main): Use it.
* modules/getopt-posix-tests (Depends-on): Add setenv.
See http://lists.gnu.org/r/bug-m4/2006-09/msg00028.html.
getopt: fix compilation on darwin
* lib/getopt.in.h (includes): Leave breadcrumbs during system
include.
* lib/unistd.in.h (getopt): Use them to avoid recursive include.
Reported by Ludovic Courtès.
2009-10-06 Bruno Haible <bruno@clisp.org>
* modules/size_max (Description): Discourage its use.
Reported by Simon Josefsson.
2009-10-06 Jim Meyering <meyering@redhat.com>
linkat: avoid compilation failure
* lib/linkat.c: Include <stdint.h> for use of SIZE_MAX.
2009-10-05 Eric Blake <ebb9@byu.net>
linkat: support Linux 2.6.17
* m4/linkat.m4 (gl_FUNC_LINKAT): Default to always replacing
linkat on Linux, but allow cache variable override.
* lib/linkat.c (rpl_linkat): Define override.
* modules/linkat (Depends-on): Add symlinkat.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add new default.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (linkat): Declare replacement.
Reported by Pádraig Brady.
quotearg: port test to systems with C.UTF-8 locale
* tests/test-quotearg.c (struct result_strings): Add another
member, differentiating between C.ASCII and C.UTF-8 handling.
(compare_strings): Add parameter.
(main): Adjust all callers.
getopt: avoid clash with FreeBSD _getopt_internal
* lib/getopt.in.h (_getopt_internal): Override the name.
* lib/getopt_int.h (includes): Pick up any overrides.
Reported by Reuben Thomas.
hash: allow C89 compilation
* lib/hash.c (check_tuning): Move declaration before statement.
Reported by Reuben Thomas.
2009-10-05 Karl Berry <karl@gnu.org>
* doc/gnulib.texi: @include execvpe.texi, missing for several days.
2009-10-04 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/uname.c (uname): Use a table-driven algorithm to compute
Windows NT versions.
2009-10-04 Bruno Haible <bruno@clisp.org>
* lib/progname.c (set_program_name): Also remove the "lt-" prefix from
program_invocation_short_name.
* modules/progname (configure.ac): Test for presence of
program_invocation_short_name.
Reported by Sergey Poznyakoff <gray@gnu.org.ua>.
2009-10-04 Bruno Haible <bruno@clisp.org>
* lib/progname.c (set_program_name): Fix comment.
Reported by Jim Meyering.
2009-10-03 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/uname.c: Include <string.h>.
(uname): Do only one call to GetVersionEx in the common case.
2009-10-03 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/uname.c (VER_PLATFORM_WIN32_CE, PROCESSOR_ARCHITECTURE_AMD64,
PROCESSOR_ARCHITECTURE_IA32_ON_WIN64): Define fallbacks.
(uname): Add support for Windows CE and various non-x86 CPU types.
2009-10-03 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Conditionally emit AM_PROG_CC_C_O
invocation to tests/configure.ac.
Reported by Ian Beckwith <ianb@erislabs.net>.
2009-10-02 Eric Blake <ebb9@byu.net>
fchdir: avoid compiler warning
* lib/fchdir.c (canonicalize_file_name)
[!HAVE_CANONICALIZE_FILE_NAME]: Avoid compiler warning on mingw.
test-open: support mingw errno values
* tests/test-open.h (test_open): Relax test.
* tests/test-fopen.h (test_fopen): Likewise.
* tests/test-openat-safer.c (main): Likewise.
open: fix opening directory on mingw
* lib/open.c (open) [REPLACE_OPEN_DIRECTORY]: Correct typo.
test-open: on GNU/Hurd, /dev/null is a directory
* tests/test-fopen.h (main): Rename...
(test_fopen): ...to this. Use a guaranteed non-directory when
confirming open behavior on trailing slash.
* tests/test-openat-safer.c (main): Likewise.
* tests/test-open.h (main): Likewise....
(test_open): ...to this.
* tests/test-fopen.c (main): Adjust caller.
* tests/test-fopen-safer.c (main): Likewise.
* tests/test-open.c (main): Likewise.
* tests/test-fcntl-safer.c (main): Likewise.
Reported by Samuel Thibault.
rename, fchdir: don't ignore chdir failure
* lib/fchdir.c (get_name): Abort on unexpected chdir failure.
* lib/rename.c (rpl_rename) [W32]: Likewise.
(rpl_rename) [RENAME_DEST_EXISTS_BUG]: Avoid one case of losing
an empty destination directory if source cannot be renamed,
although there is still possibility for failure.
* doc/posix-functions/rename.texi (rename): Document the race.
Reported by Jim Meyering.
maint: cleanup whitespace in recent commits
* lib/rename.c (rpl_rename): Remove tabs.
* tests/test-link.h (test_link): Likewise.
* lib/fchdir.c (get_name): Likewise.
Reported by Jim Meyering.
2009-10-02 Ben Pfaff <blp@gnu.org>
relocatable-prog-wrapper: Add missing dependency on
double-slash-root.
* modules/relocatable-prog-wrapper: Add dependency.
Reported by Ian Beckwith <ianb@erislabs.net>.
2009-10-02 Eric Blake <ebb9@byu.net>
renameat: fix Solaris bugs
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Replace renameat if rename
needed fixing.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): New witness.
* modules/stdio (Makefile.am): Substitute it.
* lib/stdio.in.h (renameat): Declare replacement.
* lib/renameat.c (rpl_renameat): Implement fix.
renameat: new module
* modules/renameat: New file.
* lib/renameat.c (renameat): Likewise.
* m4/renameat.m4 (gl_FUNC_RENAMEAT): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add witnesses.
* modules/stdio (Makefile.am): Substitute them.
* lib/stdio.in.h (renameat): Declare it.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/renameat.texi (renameat): Likewise.
* modules/renameat-tests: New test.
* tests/test-renameat.c: Likewise.
rename: fix mingw bugs
* lib/rename.c (rpl_rename) [W32]: Fix trailing slash and
directory overwrite bugs.
rename: fix another cygwin 1.5 bug
* m4/rename.m4 (gl_FUNC_RENAME): Split cygwin bugs into two
checks.
* lib/rename.c (rpl_rename): Don't penalize NetBSD with
unnecessary cygwin workarounds. Also work around bug with moving
full directory onto an empty one.
* modules/rename (Depends-on): Add canonicalize-lgpl, rmdir.
rename-dest-slash: merge into rename module
* modules/rename-dest-slash (Status): Mark obsolete.
(Depends-on): Add rename.
(Files): Let rename do it all.
* m4/rename.m4 (gl_FUNC_RENAME): Also test for NetBSD bugs,
subsuming the test from gl_FUNC_RENAME_TRAILING_DEST_SLASH...
* m4/rename-dest-slash.m4: ...so this file can be deleted.
* lib/rename-dest-slash.c (rpl_rename_dest_slash): Delete.
* lib/rename.c (rpl_rename): Update comments.
rename: fix cygwin 1.5.x bugs
* m4/rename.m4 (gl_FUNC_RENAME): Detect cygwin bugs.
* lib/rename.c (rpl_rename): Work around them.
* modules/rename (Depends-on): Add same-inode.
rename: fix Solaris 10 bug
* m4/rename.m4 (gl_FUNC_RENAME): Detect Solaris bug.
* lib/rename.c (rpl_rename): Don't cripple POSIX behavior if this
was the only bug.
rename: fix Solaris 9 bug
* lib/rename.c (rpl_rename): Rewrite to recognize trailing slash
on non-directory. Avoid calling exit.
* modules/rename (Depends-on): Drop xalloc; add lstat, stdbool,
strdup.
* modules/rename-tests (Depends-on): Drop lstat.
* m4/rename.m4 (gl_FUNC_RENAME): Detect Solaris bug.
(gl_PREREQ_RENAME): Delete unused macro.
rename-dest-slash: fix NetBSD bug
* lib/rename-dest-slash.c (rpl_rename_dest_slash): Detect hard
links.
* modules/rename-dest-slash (Depends-on): Add same-inode.
rename-tests: new test, exposes several platform bugs
* modules/rename-tests: New file.
* tests/test-rename.h: Likewise.
* tests/test-rename.c: Likewise.
* doc/posix-functions/rename.texi (rename): Improve documentation,
including bugs that will eventually be fixed in gnulib.
2009-10-02 Paolo Bonzini <bonzini@gnu.org>
* lib/uname.c: Include <stdlib.h>
(uname): Assume version info is available.
2009-10-02 Jim Meyering <meyering@redhat.com>
gnu-web-doc-update: correct --help output
* build-aux/gnu-web-doc-update: Make --help output relevant.
gnu-web-doc-update: add standard options
* build-aux/gnu-web-doc-update: Add --help, --version, etc.
gnu-web-doc-update: New module.
Use this script to automatically update the on-line web documentation
for your GNU project at http://www.gnu.org/software/$pkg/manual/
* modules/gnu-web-doc-update: New file, from coreutils.
* build-aux/gnu-web-doc-update: New script.
2009-10-01 Paolo Bonzini <bonzini@gnu.org>
link: LoadLibrary is not needed.
* lib/link.c: Use GetModuleHandle.
2009-10-01 Eric Blake <ebb9@byu.net>
getopt: bump serial number
* m4/getopt.m4: Increment serial number, to account for 2009-09-24
change.
tests: tighten link, rmdir, and remove tests
* tests/test-link.h (includes): No need to use <config.h> here.
Clean up if directory hard link was created, otherwise test for
trailing '.'.
* tests/test-linkat.c (main): Simplify.
* tests/test-remove.c (main): Enhance test for trailing '.'.
* tests/test-rmdir.h (test_rmdir_func): Likewise.
2009-10-01 Jim Meyering <meyering@redhat.com>
maint.mk: requiring "make major" was annoying, for a "minor" release.
What is intended is "stable", to contrast with alpha and beta,
so require "make stable", not "make major".
* build-aux/announce-gen (%valid_release_types): s/major/stable/.
(get_tool_versions): Likewise.
* top/maint.mk (ALL_RECURSIVE_TARGETS): s/major/stable/
2009-09-30 Ben Pfaff <blp@gnu.org>
Fix broken build of replacement for Windows tmpfile().
* lib/tmpfile.c (tmpfile): Fix call to gen_tempname() to provide
flags argument added along with the 'mkostemp' module.
2009-09-28 Bruno Haible <bruno@clisp.org>
Avoid identifier clash with POSIX function 'remove' defined as a macro.
* lib/gl_list.h (struct gl_list_implementation): Rename field 'remove'
to 'remove_elt'.
(gl_list_remove): Update.
* lib/gl_list.c (gl_list_remove): Update.
* lib/gl_oset.h (struct gl_oset_implementation): Rename field 'remove'
to 'remove_elt'.
(gl_oset_remove): Update.
* lib/gl_list.c (gl_oset_remove): Update.
Reported by Eric Blake.
2009-09-28 Eric Blake <ebb9@byu.net>
doc: mention yet more cygwin 1.7 status
* doc/posix-functions/fexecve.texi (fexecve): Now implemented in
cygwin.
* doc/glibc-functions/execvpe.texi (execvpe): New file.
* doc/gnulib.texi (Glibc unistd.h): Mention it.
argp: fix test failure
* lib/argp-help.c (hol_entry_cmp): Don't use _tolower on values
that are not upper-case. Pass correct range to tolower.
2009-09-27 Jim Meyering <meyering@redhat.com>
test-yesno: work around sparc-dash here-document infelicity
Without this change, the literal \177 byte in a here document
would make dash 0.5.5.1-3 access uninitialized memory.
* tests/test-yesno.sh: Don't put the \177 byte in the here document.
Instead, use a marker, "@", and filter through tr to create the desired
contents. Reported as <http://bugs.debian.org/548493> by Kurt Roeckx.
2009-09-27 Bruno Haible <bruno@clisp.org>
Disable untested support for new flavours of ACLs on AIX.
* lib/file-has-acl.c (file_has_acl): Mark newer AIX code as work in
progress.
* lib/set-mode-acl.c (qset_acl): Likewise.
2008-12-07 Bruno Haible <bruno@clisp.org>
Add support for new flavours of ACLs on AIX. (Untested.)
* lib/file-has-acl.c [AIX] (acl_nfs4_nontrivial): New function.
(file_has_acl): Add support for newer AIX.
* lib/set-mode-acl.c (qset_acl): Likewise.
* tests/test-sameacls.c (main): Fix use of aclx_get function. Hint by
Rainer Tammer <tammer@tammer.net>.
2009-09-26 Eric Blake <ebb9@byu.net>
argp: fix compilation of getopt
* lib/getopt.in.h (includes): Use different guard than glibc.
Reported by Sergey Poznyakoff.
doc: mention more cygwin 1.7 status
* doc/posix-functions/access.texi (access): Mention cygwin 1.5
bug.
* doc/posix-functions/execl.texi (execl): Likewise.
* doc/posix-functions/execle.texi (execle): Likewise.
* doc/posix-functions/execlp.texi (execlp): Likewise.
* doc/posix-functions/execv.texi (execv): Likewise.
* doc/posix-functions/execve.texi (execve): Likewise.
* doc/posix-functions/execvp.texi (execvp): Likewise.
* doc/glibc-functions/canonicalize_file_name.texi
(canonicalize_file_name): Cygwin 1.7 now provides this.
* doc/glibc-functions/euidaccess.texi (euidaccess): Likewise.
* doc/posix-functions/fchmodat.texi (fchmodat): Mention limitation
on AT_SYMLINK_NOFOLLOW.
2009-09-24 Eric Blake <ebb9@byu.net>
test-linkat: make test more robust
* tests/test-linkat.c (main): Avoid collision with EEXIST.
getopt: fix inclusion guards for cygwin
* modules/getopt-posix (Depends-on): Add include-next.
(Makefile.am): Substitute more items in replacement header.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Also check for native
<getopt.h>.
* lib/getopt.in.h (includes): Use split inclusion guard, and
prefer <getopt.h> over include <unistd.h> when one is present.
(option): Also override name of 'struct option'.
same-inode: revert prior change; it is not yet ready
* NEWS: Undo mention of this change.
* lib/same-inode.h (same-inode.h): Undo tri-state change.
* lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Update caller.
* lib/cycle-check.c (cycle_check): Likewise.
* lib/same.c (same_name): Likewise.
* lib/at-func2.c (at_func2): Likewise.
2009-09-23 Eric Blake <ebb9@byu.net>
linkat: new module
* modules/linkat: New file.
* lib/at-func2.c (at_func2): Likewise.
* lib/linkat.c (linkat): Likewise.
* m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
* lib/openat-priv.h (at_func2): Add declaration.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
* modules/unistd (Makefile.am): Substitute them.
* lib/unistd.in.h (linkat): Declare it.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/linkat.texi (linkat): Likewise.
* doc/posix-functions/link.texi (link): Tweak wording.
* tests/test-link.c (main): Move guts...
* tests/test-link.h (test_link): ...into new file.
* modules/linkat-tests: New test.
* tests/test-linkat.c: Likewise.
* modules/link-tests (Files): Ship new file.
(Depends-on): Add stdbool.
dirname: add library-safe mdir_name
* lib/dirname.h (mdir_name): New prototype.
* lib/dirname.c (dir_name): Move guts...
(mdir_name): ...to new function that avoids xalloc_die.
fchdir: another mingw fix
* modules/fchdir (Depends-on): Drop canonicalize-lgpl.
* lib/fchdir.c (get_name): New helper method; skips canonicalize
on mingw (where it has not yet been ported), and make it optional
elsewhere.
(_gl_register_fd): Use it.
same-inode: make SAME_INODE tri-state, to port to mingw
* NEWS: Mention this change.
* lib/same-inode.h (same-inode.h): Recognize mingw limitation of
st_ino always being 0.
* lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Update caller.
* lib/cycle-check.c (cycle_check): Likewise.
* lib/same.c (same_name): Likewise.
lstat: avoid mingw compilation error
* m4/lstat.m4 (gl_FUNC_LSTAT): Avoid duplicate calls to
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, and deal with missing
lstat ourselves.
* lib/lstat.c [!HAVE_LSTAT]: Do nothing if <sys/stat.h> override
was adequate.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Let lstat module handle
the checks for lstat.
(gl_SYS_STAT_H_DEFAULTS): Set default for HAVE_LSTAT.
link: fix test failure on Solaris 9
* lib/link.c (rpl_link): Don't assume link will catch bogus
trailing slash on source.
test-symlinkat: enhance test
* tests/test-readlink.c (main): Move guts...
* tests/test-readlink.h (test_readlink): ...into new file.
* tests/test-symlink.c (main): Move guts...
* tests/test-symlink.h (test_symlink): ...into new file.
* tests/test-symlinkat.c (main): Use new files for further
coverage.
(do_symlink, do_readlink): New helper functions.
* modules/symlink-tests (Files): Ship new file.
(Depends-on): Add stdbool.
* modules/readlink-tests (Files): Ship new file.
(Depends-on): Add stdbool.
* modules/symlinkat-tests (Files): Use new files.
2009-09-23 Eric Blake <ebb9@byu.net>
readlink: document portability issue with symlink length
* doc/posix-functions/lstat.texi (lstat): Mention that some file
systems have bogus st_size on symlinks, and mention the
areadlink-with-size module.
* doc/posix-functions/fstatat.texi (fstatat): Likewise.
* doc/posix-functions/readlink.texi (readlink): Mention the
areadlink module, and ERANGE failure.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* tests/test-readlink.c (main): Relax test for AIX, HP-UX.
readlink: fix Solaris 9 bug with trailing slash
* lib/readlink.c (rpl_readlink): Work around trailing slash bug.
* m4/readlink.m4 (gl_FUNC_READLINK): Detect the bug.
* doc/posix-functions/readlink.texi (readlink): Document this.
* modules/readlink-tests: New test.
* tests/test-readlink.c: Likewise.
readlink: fix cygwin 1.5.x bug with return type
* m4/readlink.m4 (gl_FUNC_READLINK): Require correct signature.
* lib/unistd.in.h (readlink): Use ssize_t.
* lib/readlink.c (readlink): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (readlink): Declare replacement.
* doc/posix-functions/readlink.texi (readlink): Document this.
symlink: use throughout gnulib
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Omit symlink check.
* lib/symlinkat.c (symlinkat) [!HAVE_SYMLINK]: Document why
symlink is not used.
* modules/symlinkat (Depends-on): Add symlink.
* modules/canonicalize-lgpl-tests (Depends-on): Likewise.
* modules/canonicalize-tests (Depends-on): Likewise.
* modules/lstat-tests (Depends-on): Likewise.
* modules/openat-tests (Depends-on): Likewise.
* modules/remove-tests (Depends-on): Likewise.
* modules/rmdir-tests (Depends-on): Likewise.
* modules/unlink-tests (Depends-on): Likewise.
* tests/test-canonicalize-lgpl.c (symlink): Delete stub.
* tests/test-canonicalize.c (symlink): Likewise.
* tests/test-fstatat.c (symlink): Likewise.
* tests/test-lstat.c (symlink): Likewise.
* tests/test-remove.c (symlink): Likewise.
* tests/test-rmdir.c (symlink): Likewise.
* tests/test-unlink.c (symlink): Likewise.
* tests/test-unlinkat.c (symlink): Likewise.
symlink: new module, for Solaris 9 bug
* modules/symlink: New file.
* m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
* lib/symlink.c: Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add defaults.
* modules/unistd (Makefile.am): Substitute them.
* lib/unistd.in.h (symlink): Declare replacement.
* MODULES.html.sh (File system functions): Mention it.
* doc/posix-functions/symlink.texi (symlink): Likewise.
* modules/symlink-tests: New test.
* tests/test-symlink.c: Likewise.
2009-09-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Add 'link-warning' to testsrelated_modules
when needed.
Test case: gnulib-tool --import --with-tests atexit inttypes.
Reported by Pauli Miettinen <pauli.miettinen@cs.helsinki.fi>.
2009-09-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Set uses_subdirs in a
subcommand, not in a subshell.
2009-09-22 Eric Blake <ebb9@byu.net>
unistd: sort replacement declarations
* lib/unistd.in.h: Sort declarations.
open, openat: minor optimization
* lib/open.c (open): If open succeeded, len is non-zero.
* lib/openat.c (rpl_openat): Likewise.
link-follow: ensure correct result
* m4/fcntl_h.m4 (gl_FCNTL_H): Clean up temporary file.
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise, and
distinguish between possible failures.
2009-09-21 Eric Blake <ebb9@byu.net>
fts: avoid compiler warning
* lib/fts.c (dirent_inode_sort_may_be_useful)
(leaf_optimization_applies) [!__linux__]: Mark unused parameters.
2009-09-19 Bruno Haible <bruno@clisp.org>
* lib/progreloc.c (canonicalize_file_name): New declaration.
2009-09-19 Eric Blake <ebb9@byu.net>
link: fix quoting
* m4/link.m4 (gl_FUNC_LINK): Fix shell quoting.
openat: fix openat bugs on Solaris 9
* lib/openat.c (rpl_openat): Work around Solaris 9 bug.
* m4/openat.m4 (gl_FUNC_OPENAT): Also replace openat on Solaris.
* modules/openat (Depends-on): Add open.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide new default.
* modules/fcntl-h (Makefile.am): Substitute it.
* lib/fcntl.in.h (openat): Declare replacement.
* doc/posix-functions/openat.texi (openat): Document this.
openat: move fstatat and unlinkat into correct files
* m4/openat.m4 (gl_FUNC_OPENAT): Adjust which files will be
compiled.
* lib/openat.c (fstatat, unlinkat): Move...
* lib/fstatat.c (fstatat): ...into correct files.
* lib/unlinkat.c (unlinkat): Likewise.
openat: fix unlinkat bugs on Solaris 9
* lib/unlinkat.c (unlinkat): New file.
* modules/openat (Depends-on): Add unlink.
(Files): Distribute it.
* m4/openat.m4 (gl_FUNC_OPENAT): Mark unlinkat for replacement if
trailing slash behavior is broken.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (unlinkat): Declare replacement.
* doc/posix-functions/unlinkat.texi (unlinkat): Document this.
openat: fix fstatat bugs on Solaris 9
* lib/fstatat.c (rpl_fstatat): Copy recent fixes from lstat and
stat.
* doc/posix-functions/fstatat.texi (fstatat): Document this.
test-unlinkat: enhance test, to expose Solaris 9 bug
* tests/test-unlink.c (main): Factor guts...
* tests/test-unlink.h (test_rmdir_func): ...into new file.
* tests/test-rmdir.h (test_rmdir_func): Add parameter.
* tests/test-rmdir.c (main): Adjust caller.
* tests/test-unlinkat.c (main): Likewise. Add unlink tests.
(unlinker): New helper function.
(rmdirat): Enhance check.
* modules/rmdir-tests (Depends-on): Add stdbool.
* modules/unlink-tests (Depends-on): Likewise.
(Files): Add test-unlink.h.
* modules/openat-tests (Files): Likewise.
(Depends-on): Add unlinkdir.
test-fstatat: new test, to expose Solaris 9 bugs
* tests/test-stat.c (main): Factor guts...
* tests/test-stat.h (test_stat_func): ...into new file.
* tests/test-lstat.c (main): Factor guts...
* tests/test-lstat.h (test_lstat_func): ...into new file.
* tests/test-fstatat.c: New file.
* modules/stat-tests (Files): Add test-stat.h.
* modules/lstat-tests (Files): Add test-lstat.h.
(Depends-on): Add stdbool.
* modules/openat-tests (Depends-on): Add pathmax.
(Files): Add test-lstat.h, test-stat.h, test-fstatat.c.
(Makefile.am): Run new test.
remove: new module, for mingw and Solaris 9 bugs
* modules/remove: New file.
* lib/remove.c: Likewise.
* m4/remove.m4 (gl_FUNC_REMOVE): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add witnesses.
* modules/stdio (Makefile.am): Use them.
* lib/stdio.in.h (remove): Declare replacement.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/remove.texi (remove): Likewise.
* modules/remove-tests: New test.
* tests/test-remove.c: Likewise.
unlink: new module, for Solaris 9 bug
* modules/unlink: New file.
* lib/unlink.c: Likewise.
* m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
* modules/unistd (Makefile.am): Use them.
* lib/unistd.in.h (stat): Declare replacement.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/unlink.texi (unlink): Likewise.
* modules/unlink-tests: New test.
* tests/test-unlink.c: Likewise.
lstat: fix Solaris 9 bug
* lib/lstat.c (lstat): Also check for trailing slash on
non-symlink, non-directories. Use stat module to simplify logic.
* doc/posix-functions/lstat.texi (lstat): Document it.
* modules/lstat-tests (Depends-on): Add errno, same-inode.
(configure.ac): Check for symlink.
* tests/test-lstat.c (main): Add more tests.
stat: add as dependency to other modules
* modules/chown (Depends-on): Add stat.
* modules/euidaccess (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/isdir (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/modechange (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/same (Depends-on): Likewise.
stat: fix Solaris 9 bug
* m4/stat.m4 (gl_FUNC_STAT): Detect Solaris 9 bug with trailing
slash.
* lib/stat.c (rpl_stat): Work around it.
* doc/posix-functions/stat.texi (stat): Update documentation.
stat: new module, for mingw bug
* modules/stat: New file.
* lib/stat.c: Likewise.
* m4/stat.m4 (gl_FUNC_STAT): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
* modules/sys_stat (Makefile.am): Use them.
* lib/sys_stat.in.h (stat): Declare replacement.
* lib/openat.c (fstatat): Deal with lstat and stat being function
macros.
* modules/openat (Depends-on): Add inline.
* MODULES.html.sh (systems lacking POSIX:2008): Mention module.
* doc/posix-functions/stat.texi (stat): Likewise.
* modules/stat-tests: New test.
* tests/test-stat.c: Likewise.
2009-09-19 Jim Meyering <meyering@redhat.com>
syntax-check: detect unnecessary inclusion of canonicalize.h
* top/maint.mk (sc_prohibit_canonicalize_without_use): New rule.
2009-09-19 Eric Blake <ebb9@byu.net>
canonicalize-lgpl: adjust clients to use correct header
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE)
(gl_CANONICALIZE_LGPL): Use correct shell quoting.
* modules/relocatable-prog-wrapper (Files): Drop canonicalize.h.
* lib/fchdir.c (includes): Use <stdlib.h>, not "canonicalize.h".
* lib/progreloc.c (includes): Likewise.
2009-09-19 Jim Meyering <meyering@redhat.com>
test-posixtm.c: correct a comment
* tests/test-posixtm.c: Correct first-line comment.
Spotted by Eric Blake.
2009-09-16 Jim Meyering <meyering@redhat.com>
posixtm-tests: make T const-correct; add a test case
* tests/test-posixtm.c (T): Declare const.
Add a test for -(2^31+1).
Remove useless can-succeed-only-in-2002 test.
posixtm-tests: adjust the sole failing test
* tests/test-posixtm.c: Correct 0000-01-01 00:00:00 test so that
expected output matches what mktime now produces. Cross-checked via
erlang's calendar:datetime_to_gregorian_seconds({{1970,1,1},{0,0,0}})
posixtm: move #ifdef'd tests into a new module
* lib/posixtm.c (posixtime): Remove #ifdef'd tests. Move to...
* tests/test-posixtm.c: ... this new file.
* modules/posixtm-tests: New module.
2009-09-19 Eric Blake <ebb9@byu.net>
openat: simplify use of at-func.c
* lib/at-func.c (includes): Include prerequisites here, to
simplify requirements on client files.
* lib/openat-priv.h: Add double-inclusion guard.
* lib/faccessat.c (includes): Simplify.
* lib/fchmodat.c (includes): Likewise.
* lib/fchownat.c (includes): Likewise.
* lib/mkdirat.c (includes): Likewise.
* lib/mkfifoat.c (includes): Likewise.
* lib/symlinkat.c (includes): Likewise.
openat: allow return of fd 0
* modules/chdir-long (Depends-on): Relax openat-safer to openat.
* modules/save-cwd (Depends-on): Replace fcntl-safer with
unistd-safer.
* lib/chdir-long.c (includes): Replace "fcntl--.h" with
<fcntl.h>; this module does not leak fds.
* lib/openat.c (includes): Do not use "fcntl_safer"; plain openat
must be allowed to return 0, leaving openat_safer to add the
safety.
(openat_permissive): Avoid writing to just-opened fd 2 if
restoring the current directory fails.
* lib/openat-die.c (openat_restore_fail): Add comment.
* lib/save-cwd.c (includes): Make "fcntl--.h" conditional.
(save_cwd): Guarantee safe fd, but without use of open_safer.
* tests/test-openat.c: New test.
* modules/openat-tests (Files, Makefile.am): Distribute and build
new file.
relocatable-prog-wrapper: fix build
* modules/relocatable-prog-wrapper (Files): Update name of
canonicalize m4 file, broken on 2009-09-17.
Reported by emad hajjar <aleppos@hotmail.com>.
2009-09-19 Bruno Haible <bruno@clisp.org>
* lib/safe-alloc.h: Use the standard header with GPL copyright.
* lib/safe-alloc.c: Likewise.
Reported by Ian Beckwith <ianb@erislabs.net>.
2009-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Add advice to "cannot find configure.ac" error message.
Reported by <erobles@sensacd.com.mx>.
2009-09-17 Eric Blake <ebb9@byu.net>
canonicalize: in CAN_ALL_BUT_LAST, allow trailing slash
* lib/canonicalize.c (canonicalize_filename_mode): Skip trailing
slashes when checking if last component is missing.
* tests/test-canonicalize.c (main): Test this.
canonicalize, canonicalize-lgpl: honor // if distinct from /
* modules/canonicalize (Files): Add double-slash-root.m4.
* modules/canonicalize-lgpl (Files): Likewise.
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE)
(gl_CANONICALIZE_LGPL_SEPARATE): Add dependency.
* lib/canonicalize.c (DOUBLE_SLASH_IS_DISTINCT_ROOT): Provide
fallback definition.
(canonicalize_filename_mode): Use it to protect //.
* lib/canonicalize-lgpl.c (DOUBLE_SLASH_IS_DISTINCT_ROOT)
(__realpath): Likewise.
* tests/test-canonicalize.c (main): Test this.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* modules/canonicalize-tests (Depends-on): Add same-inode.
* modules/canonicalize-lgpl-tests (Depends-on): Likewise.
canonicalize-lgpl: fix glibc bug with trailing slash
* m4/canonicalize-lgpl.m4: Move contents...
* m4/canonicalize.m4: ...here.
(gl_CANONICALIZE_LGPL): Factor realpath check...
(gl_FUNC_REALPATH_WORKS): ...into new macro. Enhance to catch
glibc 2.3.5 bug, fixed 2005-04-27.
(gl_FUNC_CANONICALIZE_FILENAME_MODE): Use it.
(gl_PREREQ_CANONICALIZE_LGPL): Inline...
(gl_CANONICALIZE_LGPL_SEPARATE): ...into this macro.
* modules/canonicalize-lgpl (Files): Manage file rename.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default.
* modules/stdlib (Makefile.am): Substitute witness.
* lib/stdlib.in.h (canonicalize_file_name): Declare if replacement
is needed.
* lib/canonicalize-lgpl.c: Also compile if canonicalize_file_name
replacement is required.
* lib/canonicalize.c (canonicalize_file_name): Likewise.
* doc/glibc-functions/canonicalize_file_name.texi
(canonicalize_file_name): Document this.
* doc/posix-functions/realpath.texi (realpath): Likewise.
canonicalize-lgpl: reject non-directory with trailing slash
* lib/canonicalize-lgpl.c (__realpath): Synchronize with glibc.
* tests/test-canonicalize-lgpl.c (main): Enhance test. This
catches failures in glibc 2.3.5.
* tests/test-canonicalize.c (main): Likewise.
canonicalize-lgpl: use native realpath if it works
* lib/canonicalize-lgpl.c (realpath): Guard with
FUNC_REALPATH_WORKS.
* lib/stdlib.in.h (realpath): Make declaration optional based on
HAVE_REALPATH.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Check whether
native realpath works.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default.
* modules/stdlib (Makefile.am): Substitute witness.
canonicalize, canonicalize-lgpl: use <stdlib.h>
* modules/canonicalize-lgpl (Files): Drop canonicalize.h.
(Include): Mention <stdlib.h>.
(configure.ac): Mention functions we provide.
* modules/canonicalize (configure.ac): Likewise.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Always replace
realpath if canonicalize_file_name is missing.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide defaults.
* modules/stdlib (Makefile.am): Substitute witnesses.
* lib/stdlib.in.h (canonicalize_file_name, realpath): Declare.
* lib/canonicalize-lgpl.c (includes): Adjust accordingly.
* lib/canonicalize.h (canonicalize_file_name): Drop declaration.
* NEWS: Document this.
* doc/glibc-functions/canonicalize_file_name.texi
(canonicalize_file_name): Likewise.
* doc/posix-functions/realpath.texi (realpath): Likewise.
* tests/test-canonicalize-lgpl.c (includes): Use <stdlib.h>.
test-canonicalize: consolidate into single C program
* tests/test-canonicalize.sh: Delete; move setup into...
* tests/test-canonicalize.c (main): ...the program, making it
easier to run in debugger. Add some tests.
* modules/canonicalize-tests (Files): Remove unused file.
(Depends-on): Add progname.
(configure.ac, Makefile.am): Simplify.
test-canonicalize-lgpl: consolidate into single C program
* tests/test-canonicalize-lgpl.sh: Delete; move setup into...
* tests/test-canonicalize-lgpl.c (main): ...the program, making it
easier to run in debugger. Add some tests.
* modules/canonicalize-lgpl-tests (Files): Remove unused file.
(configure.ac, Makefile.am): Simplify.
canonicalize: avoid resolvepath
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Delete
unnecessary checks.
* lib/canonicalize.c (includes): Simplify.
(canonicalize_file_name): Drop resolvepath implementation.
* modules/canonicalize (Depends-on): Drop filenamecat.
canonicalize: don't lose errno
* lib/canonicalize.c (canonicalize_filename_mode): Protect errno
over calls to free.
canonicalize: simplify errno handling
* lib/canonicalize.c (__set_errno): Delete macro, and use direct
assignment.
canonicalize, canonicalize-lgpl: update module dependencies
* modules/canonicalize (Depends-on): Add extensions, lstat,
pathmax, stdlib.
(Files): Drop pathmax.h.
(configure.ac): Adjust macro name.
* modules/canonicalize-lgpl (Depends-on): Add errno, extensions,
lstat, stdlib, sys_stat.
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Rename...
(gl_FUNC_CANONICALIZE_FILENAME_MODE): ...to this, and require
extensions.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL)
(gl_CANONICALIZE_LGPL_SEPARATE): Require extensions.
(gl_PREREQ_CANONICALIZE_LGPL): Assume unistd.h.
* lib/canonicalize.h (canonicalize_file_name): Use <stdlib.h>
declaration, if available.
* lib/canonicalize-lgpl.c [HAVE_READLINK]: Delete this condition;
we can rely on the readlink module.
(MAXSYMLINKS): Also consult SYMLOOP_MAX.
(includes): Use <unistd.h> unconditionally.
2009-09-17 Eric Blake <ebb9@byu.net>
maint: make Include sections of modules consistent
* modules/alloca: Use only header name; no need to list #include.
* modules/alloca-opt: Likewise.
* modules/arpa_inet: Likewise.
* modules/canon-host: Likewise.
* modules/configmake: Likewise.
* modules/dirent: Likewise.
* modules/eealloc: Likewise.
* modules/environ: Likewise.
* modules/fchdir: Likewise.
* modules/fcntl: Likewise.
* modules/fcntl-h: Likewise.
* modules/gethrxtime: Likewise.
* modules/gettime: Likewise.
* modules/ignore-value: Likewise.
* modules/inet_ntop: Likewise.
* modules/inet_pton: Likewise.
* modules/inttypes: Likewise.
* modules/isnand-nolibm: Likewise.
* modules/isnanf-nolibm: Likewise.
* modules/mbchar: Likewise.
* modules/mbfile: Likewise.
* modules/mbiter: Likewise.
* modules/mbuiter: Likewise.
* modules/netdb: Likewise.
* modules/netinet_in: Likewise.
* modules/nproc: Likewise.
* modules/pagealign_alloc: Likewise.
* modules/poll: Likewise.
* modules/printf-frexp: Likewise.
* modules/pthread: Likewise.
* modules/putenv: Likewise.
* modules/random_r: Likewise.
* modules/relocatable-prog: Likewise.
* modules/search: Likewise.
* modules/select: Likewise.
* modules/selinux-h: Likewise.
* modules/settime: Likewise.
* modules/signal: Likewise.
* modules/size_max: Likewise.
* modules/socklen: Likewise.
* modules/ssize_t: Likewise.
* modules/stdarg: Likewise.
* modules/stdbool: Likewise.
* modules/stddef: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/string: Likewise.
* modules/strings: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
* modules/sysexits: Likewise.
* modules/time: Likewise.
* modules/times: Likewise.
* modules/tmpfile: Likewise.
* modules/trim: Likewise.
* modules/unistd: Likewise.
* modules/wchar: Likewise.
* modules/wctype: Likewise.
2009-09-17 Bruno Haible <bruno@clisp.org>
Make getdate.y compile on QNX and NetBSD 5 / i386.
* m4/getdate.m4 (gl_GETDATE): Conditionally define
TIME_T_FITS_IN_LONG_INT.
* lib/getdate.y (long_time_t): New type.
(relative_time): Change type of 'seconds' field to long_time_t.
(get_date): Update types of local variables. Check against overflow
during conversion from long_time_t to time_t.
Reported by Matt Kraai <kraai@ftbfs.org>
and Hasso Tepper <hasso@netbsd.org>.
2009-09-17 Bruno Haible <bruno@clisp.org>
* modules/COPYING: Update copyright years.
* modules/README: Likeiwse.
* doc/gnulib-intro.texi (Copyright): Use a wildcard year.
Reported by Ian Beckwith <ianb@erislabs.net>.
2009-09-17 Ian Beckwith <ianb@erislabs.net> (tiny change)
* users.txt: Update references for gnuit package.
2009-09-17 Ian Beckwith <ianb@erislabs.net> (tiny change)
* m4/getdelim.m4: Fix typo in copyright line.
2009-09-17 Bruno Haible <bruno@clisp.org>
* lib/atoll.c: Use the standard header with GPL copyright.
* lib/argz.in.h: Likewise.
* lib/glob.c: Likewise.
* lib/glob-libc.h: Likewise.
* lib/random_r.c: Likewise.
* lib/siglist.h: Likewise.
* lib/strsignal.c: Likewise.
Reported by Ian Beckwith <ianb@erislabs.net>.
2009-09-17 Eric Blake <ebb9@byu.net>
rmdir: ensure correct dependency order
* m4/rmdir.m4 (gl_FUNC_RMDIR): Require unistd defaults.
2009-09-17 Bruno Haible <bruno@clisp.org>
Disable assertion that fails on NetBSD 5 / i386.
* lib/mktime.c (ydhms_diff): Disable assertion about time_t size.
Reported by Sam Steingold <sds@gnu.org>
and Hasso Tepper <hasso@netbsd.org>.
2009-09-16 Eric Blake <ebb9@byu.net>
unlinkdir: port to mingw
* m4/unlinkdir.m4 (gl_UNLINKDIR): Add mingw to list of platforms
on which no one can unlink a directory.
stdlib: sort witness names
* modules/stdlib (Makefile.am): Sort replacements.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise.
* lib/stdlib.in.h: Likewise.
parse-duration-tests: avoid link failure
* modules/parse-duration-tests (test_parse_duration_LDADD): Add
LIBINTL.
Reported by Tom G. Christensen.
openat-tests: ensure unlinkat behaves like rmdir
* tests/test-rmdir.c (main): Factor guts...
* tests/test-rmdir.h (test_rmdir_func): ...into new file.
* modules/rmdir-tests (Files): Ship new file.
* modules/openat-tests: New test.
* tests/test-unlinkat.c: Likewise.
rmdir-errno: mark obsolete, it is unsafe for cross-compilation
* modules/rmdir-errno (Status, Notice): Now obsolete.
rmdir: work around cygwin 1.5.x and mingw bugs
* m4/rmdir.m4 (gl_FUNC_RMDIR): Detect the bugs.
* lib/rmdir.c (rmdir): Work around it.
* modules/rmdir (Status, Notice): No longer obsolete.
(Files): Add dos.m4.
(Depends-on): Add unistd.
(configure.ac): Set witnesses.
(License): Relax to LGPLv2+.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set defaults.
* modules/unistd (Makefile.am): Substitute witnesses.
* lib/unistd.in.h (rmdir): Declare replacement.
* doc/posix-functions/rmdir.texi (rmdir): Document this.
* modules/rmdir-tests: New tests.
* tests/test-rmdir.c: Likewise.
2009-09-15 Eric Blake <ebb9@byu.net>
fchdir: improve use of replacement functions
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Set appropriate witnesses.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add REPLACE_FSTAT.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add REPLACE_OPENDIR,
REPLACE_CLOSEDIR.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_DUP.
* modules/sys_stat (Makefile.am): Substitute correct witness.
* modules/dirent (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* lib/dirent.in.h (opendir, closedir): Use better witnesses.
* lib/unistd.in.h (dup): Likewise.
* lib/sys_stat.in.h (fstat): Likewise.
maint: ignore gnulib-tool temp files
* .gitignore: Ignore files created during gnulib-tool --test.
2009-09-13 Jim Meyering <meyering@redhat.com>
posixtm: don't reject a time that specify "60" as the number of seconds
* lib/posixtm.c (posixtime): The code to reject invalid dates
would also reject a time specified with the .60 suffix.
But POSIX allows that, in order to accommodate leap seconds.
So don't reject it.
(main): Adjust tests accordingly.
* modules/posixtm (Depends-on): Add stpcpy.
2009-09-11 Jim Meyering <meyering@redhat.com>
announce-gen: include [$release_type] in emitted Subject:
* build-aux/announce-gen (get_tool_versions): Include [$release_type],
e.g., [stable] in the emitted Subject: line.
2009-09-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Remove obsolete macros from several modules.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Replace
obsolete Autoconf macros with their modern counterparts.
* m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Likewise.
* m4/gc-camellia.m4 (gl_GC_CAMELLIA): Likewise.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise.
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
* m4/poll.m4 (gl_FUNC_POLL): Likewise.
* m4/readline.m4 (gl_FUNC_READLINE): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/select.m4 (gl_FUNC_SELECT): Likewise.
* m4/sockets.m4 (gl_SOCKETS): Likewise.
* m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Likewise.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Likewise.
* m4/sysexits.m4 (gl_SYSEXITS): Likewise.
* m4/time_r.m4 (gl_TIME_R): Likewise.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
* m4/vararrays.m4 (AC_C_VARARRAYS): Likewise.
* m4/wctype.m4 (gl_WCTYPE_H): Likewise.
Fix copyright header in build-aux scripts.
* build-aux/git-version-gen: Fix copyright header to match GPLv3
recommendation.
* build-aux/ncftpput-ftp: Likewise.
* build-aux/update-copyright: Likewise.
2009-09-09 Eric Blake <ebb9@byu.net>
test-link: allow Linux choice of errno
* tests/test-link.c (main): Relax test for alternate error.
strndup: fix improper m4 caching
* m4/strndup.m4 (gl_FUNC_STRNDUP): Rework to avoid side effects
inside AC_CACHE_CHECK. Use REPLACE_STRNDUP, not HAVE_STRNDUP.
(gl_PREREQ_STRNDUP): Delete.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Update default.
* modules/string (Makefile.am): Substitute it.
* lib/string.in.h (strndup): Modernize prototype.
getcwd: port to mingw
* m4/getcwd.m4 (gl_FUNC_GETCWD): Mingw directories are very
different from the POSIX assumptions made throughout the getcwd
module; fortunately, the mingw getcwd does not need replacement.
(gl_FUNC_GETCWD_NULL): Skip test on mingw.
* modules/getcwd-tests: New test.
* tests/test-getcwd.c: Likewise.
link: fix platform bugs
* m4/link.m4 (gl_FUNC_LINK): Detect Solaris and Cygwin bugs.
* lib/link.c (link): Work around them. Fix related mingw bug.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_LINK.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (link): Declare replacement.
* doc/posix-functions/link.texi (link): Document this.
* modules/link (Depends-on): Add strdup-posix, sys_stat.
test-link: consolidate into single C program, test more cases
* tests/test-link.sh: Delete.
* tests/test-link.c: Test more error conditions. Exposes bugs on
at least Cygwin and Solaris.
* modules/link-tests (Files): Remove unused file.
(Depends-on): Add errno, sys_stat.
(Makefile.am): Simplify.
2009-09-08 Bruno Haible <bruno@clisp.org>
Work around towlower, towupper bug on mingw.
* lib/wctype.in.h (towlower, towupper) [__MINGW32__]: New replacements.
* m4/wctype.m4 (gl_WCTYPE_H): Replace <wctype.h> also on mingw.
* doc/posix-functions/towlower.texi: Mention the mingw bug.
* doc/posix-functions/towupper.texi: Likewise.
Reported by Eric Blake.
2009-09-08 Jim Meyering <meyering@redhat.com>
build: don't try to run autoheader if we don't use it
* build-aux/bootstrap: Define AUTOHEADER=true when AC_CONFIG_HEADERS
is not used in configure.ac.
2009-09-08 Eric Blake <ebb9@byu.net>
euidaccess: fix compilation error
* lib/euidaccess.c (includes): Add <fcntl.h>, for AT_EACCESS.
rawmemchr: relax license
* modules/rawmemchr (License): Derived from glibc, so LGPLv2+ is
okay.
Reported by Jim Meyering.
mkfifoat: new module
* modules/mkfifoat: New file.
* lib/mkfifoat.c: Likewise.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
* modules/sys_stat (Makefile.am): Use them.
* lib/sys_stat.in.h (mkfifoat, mknodat): Declare them.
* MODULES.html.sh (File system functions): Mention module.
* doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
* doc/posix-functions/mknodat.texi (mknodat): Likewise.
* modules/mkfifoat-tests: New test.
* tests/test-mkfifoat.c: Likewise.
strchrnul: relax license
* modules/strchrnul (License): Derived from glibc, so LGPLv2+ is
okay.
Reported by Jim Meyering.
2009-09-08 Eric Blake <ebb9@byu.net>
fstatat: fix compilation on Solaris
* lib/fstatat.c (includes): Add fcntl.h.
Reported by Pádraig Brady.
2009-09-07 Eric Blake <ebb9@byu.net>
rename: modernize replacement
* modules/rename (Depends-on): Add stdio.
(configure.ac): Declare witness.
* m4/rename.m4 (gl_FUNC_RENAME): Ensure dependency order, and let
stdio take care of replacement.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults.
* modules/stdio (Makefile.am): Substitute them.
* lib/stdio.in.h (rename): Declare replacement.
* lib/rename.c (includes): Allow cross-compilation to non-windows
machines.
* doc/posix-functions/rename.texi (rename): Improve
documentation.
stdio: sort witness names
* modules/stdio (Makefile.am): Sort replacements.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* lib/stdio.in.h: Likewise.
getcwd: minor cleanups
* lib/getcwd.c (AT_FDCWD): Delete; rely on <fcntl.h> instead.
(is_ENAMETOOLONG): Delete; ENAMETOOLONG is portable.
openat: provide more convenience names
* modules/faccessat (configure.ac): Add C witness.
* lib/unistd.in.h (readlinkat): Fix typo.
* lib/openat.h (statat, lstatat, accessat, euidaccessat): New
convenience wrappers.
* top/maint.mk (sc_prohibit_openat_without_use): Allow these
wrappers in syntax checks.
2009-09-06 Eric Blake <ebb9@byu.net>
doc: fix comments in recent patches
* lib/faccessat.c: Mention correct function.
* lib/fchmodat.c: Likewise.
* lib/fchownat.c: Likewise.
* lib/symlinkat.c: Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Cygwin 1.7 has AT_*
constants.
faccessat, symlinkat: continue cleanup of previous patch
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Ensure dependency order.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
* modules/unistd (Makefile.am): Substitute GNULIB_READLINKAT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Offer GNULIB_READLINKAT.
* modules/symlinkat (configure.ac): Set GNULIB_READLINKAT.
* lib/unistd.in.h (readlinkat): Declare if GNULIB_READLINKAT is
set.
2009-09-06 Bruno Haible <bruno@clisp.org>
* lib/sys_stat.in.h (fchmodat): Declare if GNULIB_FCHMODAT is set.
(fstatat): Declare if GNULIB_FSTATAT is set.
(mkdirat): Declare if GNULIB_MKDIRAT is set.
* lib/unistd.in.h (fchownat): Declare if GNULIB_FCHOWNAT is set.
(unlinkat): Declare if GNULIB_UNLINKAT is set.
* modules/fcntl-h (Files): Remove m4/openat.m4.
* modules/sys_stat (Files): Remove m4/openat.m4.
(Makefile.am): Substitute GNULIB_FCHMODAT, GNULIB_FSTATAT,
GNULIB_MKDIRAT instead of GNULIB_OPENAT.
* modules/unistd (Files): Remove m4/openat.m4.
(Makefile.am): Substitute GNULIB_FCHOWNAT, GNULIB_UNLINKAT instead of
GNULIB_OPENAT.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_OPENAT,
HAVE_OPENAT here. Don't require gl_OPENAT_DEFAULTS.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize
GNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_MKDIRAT, HAVE_FCHMODAT,
HAVE_FSTATAT, HAVE_MKDIRAT, REPLACE_FSTATAT here. Don't require
gl_OPENAT_DEFAULTS.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_FCHOWNAT,
GNULIB_UNLINKAT, HAVE_FCHOWNAT, HAVE_UNLINKAT, REPLACE_FCHOWNAT here.
Don't require gl_OPENAT_DEFAULTS.
* m4/openat.m4 (gl_FUNC_OPENAT): Require gl_FCNTL_H_DEFAULTS,
gl_SYS_STAT_H_DEFAULTS, gl_UNISTD_H_DEFAULTS. Set GNULIB_FCHMODAT,
GNULIB_FSTATAT, GNULIB_MKDIRAT, GNULIB_FCHOWNAT, GNULIB_UNLINKAT.
(gl_OPENAT_DEFAULTS): Remove macro.
2009-09-06 Bruno Haible <bruno@clisp.org>
* modules/openat (configure.ac): Remove unneeded witness.
2009-09-06 Bruno Haible <bruno@clisp.org>
Set errno to ENOSYS when a function is entirely unsupported.
* lib/chown.c (rpl_chown) [!HAVE_CHOWN]: Set errno to ENOSYS instead of
EOPNOTSUPP.
* lib/lchown.c (lchown) [!HAVE_CHOWN]: Likewise.
* modules/chown (Depends-on): Remove errno.
2009-09-06 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/fcntl.texi (AT_*): Mention affected platforms.
2009-09-06 Bruno Haible <bruno@clisp.org>
* lib/sys_stat.in.h: Fix preprocessor command indentation.
2009-09-06 Ben Pfaff <blp@gnu.org>
Bruno Haible <bruno@clisp.org>
Work around a glibc bug in strtok_r.
* lib/string.in.h (strtok_r): Replace if REPLACE_STRTOK_R is set.
Undefine if UNDEFINE_STRTOK_R is set.
* lib/strtok_r.c (strtok_r, __strtok_r) [!_LIBC]: Don't undefine.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STRTOK_R and UNDEFINE_STRTOK_R.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Check against the glibc bug.
* modules/string (Makefile.am): Substitute REPLACE_STRTOK_R,
UNDEFINE_STRTOK_R.
* doc/posix-functions/strtok_r.texi: Mention the glibc 2.7 bug.
2009-09-06 Sergey Poznyakoff <gray@gnu.org.ua>
exclude: minor fix
* lib/exclude.c: Include wctype.h
2009-09-06 Akim Demaille <demaille@gostai.com>
bootstrap: improve error message
* build-aux/bootstrap (find_tool): Upon failure, report the list
of candidates.
Honor the initial value of the envvar.
2009-09-05 Eric Blake <ebb9@byu.net>
symlinkat: new module
* modules/symlinkat: New file.
* lib/symlinkat.c: Likewise.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
* modules/unistd (Makefile.am): Use them.
* lib/unistd.in.h (symlinkat, readlinkat): Declare them.
(faccessat) [GNULIB_POSIXCHECK]: Fix typo.
* lib/at-func.c (FUNC_RESULT): New macro, defaulting to int.
* MODULES.html.sh (File system functions): Mention module.
* doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* modules/symlinkat-tests: New test.
* tests/test-symlinkat.c: Likewise.
test-openat-safer: add more checks
* tests/test-openat-safer.c (main): Check more code paths.
2009-09-05 Jim Meyering <meyering@redhat.com>
syntax-check: detect unnecessary inclusion of openat.h
* top/maint.mk (sc_prohibit_openat_without_use): New rule.
2009-09-05 Bruno Haible <bruno@clisp.org>
Support towlower, towupper.
* doc/posix-functions/towlower.texi: Mention module wctype.
* doc/posix-functions/towupper.texi: Likewise.
* lib/wctype.in.h (towlower, towupper): New functions.
* tests/test-wctype.c: Include stdio.h, stdlib.h.
(ASSERT): New macro.
(e): New variable.
(main): Test also towlower, towupper. Test WEOF argument.
Reported by Alan Hourihane <alanh@fairlite.co.uk>.
2009-09-05 Bruno Haible <bruno@clisp.org>
Fix conversion behaviour when the input is invalid.
* lib/striconveh.c (mem_cd_iconveh_internal): Fix storing of question
mark occurring in first pass of indirect conversion.
* tests/test-striconveh.c (main): Test conversion of invalid ASCII
input.
Found by clang's static analyzer.
2009-09-05 Bruno Haible <bruno@clisp.org>
* tests/test-striconveh.c (main): Test indirect conversion on platforms
where direct conversion is possible.
2009-09-04 Eric Blake <ebb9@byu.net>
openat: fail with ENOENT on empty name
* lib/openat-proc.c (openat_proc_name): Special-case the empty
buffer.
link-follow: fix logic bug in prior patch
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Fix bug that
reversed sense of yes and no in prior patch. Avoid confusing
compilation failure with desired semantics.
link-follow: accommodate mingw and cross-compilation
* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Rename...
(gl_FUNC_LINK_FOLLOWS_SYMLINK): ...to this. Change
cross-compilation results to -1, to make linkat easier to
implement when cross-compiling. Trivially support mingw.
* modules/link-follow (configure.ac): Call new name.
* NEWS: Mention this.
2009-09-03 Eric Blake <ebb9@byu.net>
faccessat: compile replacement
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Build replacement when
needed.
fts: fix compilation error
* lib/fts.c (includes): Re-add "openat.h", for
openat_needs_fchdir.
faccessat: new module
* modules/faccessat: New file.
* lib/faccessat.c: Likewise.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Use it.
* lib/unistd.in.h (faccessat): Declare it.
(F_OK, X_OK, W_OK, R_OK): Provide definitions.
* lib/fcntl.in.h (AT_SYMLINK_FOLLOW, AT_EACCESS): Likewise.
* MODULES.html.sh (File system functions): Mention it.
* doc/posix-functions/faccessat.texi (faccessat): Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Likewise.
euidaccess: prefer POSIX over non-standard implementation
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat.
* lib/euidaccess.c (euidaccess): Use it if available.
openat: make template easier to use
* lib/at-func.c (CALL_FUNC): Allow AT_FUNC_USE_F1_COND and
AT_FUNC_F2 to be undefined.
(VALIDATE_FLAG): New macro; use it to reject bad flags.
(AT_FUNC_USE_F1_COND): Change sense to just flag bit.
* lib/fchmodat.c (AT_FUNC_USE_F1_COND): Adjust.
* lib/fchownat.c (AT_FUNC_USE_F1_COND): Likewise.
* lib/openat.c (AT_FUNC_USE_F1_COND) [fstatat, unlinkat]:
Likewise.
* lib/mkdirat.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND): Delete.
* lib/selinux-at.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND)
[getfileconat, lgetfileconat, setfileconat, lsetfileconat]:
Likewise.
openat: declare in POSIX headers
* NEWS: Mention this.
* modules/openat (configure.ac): Declare witnesses.
(Depends-on): Add fcntl-h, sys_stat, unistd.
(Include): Mention correct headers.
* modules/fcntl-h (Depends-on): Add link-warning.
(Files): Add openat.m4.
(Makefile.am): Substitute witnesses.
* modules/sys_stat (Files, Makefile.am): Likewise.
* modules/unistd (Files, Makefile.am): Likewise.
* m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses.
(gl_OPENAT_DEFAULTS): New macro.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
(SYS_STAT_H): Remove unused variable.
* doc/posix-headers/fcntl.texi (fcntl.h): Update content.
* lib/fcntl--.h (includes): Remove unneeded header.
* lib/openat-safer.c (includes): Likewise.
* lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
(openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to
appropriate headers.
(__OPENAT_PREFIX): Delete.
* lib/fcntl.in.h (openat): Provide declaration.
(AT_FDCWD): Fix Solaris bug.
(AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros.
* lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration.
* lib/fchmodat.c (includes): Adjust to find declaration.
* lib/fchownat.c (includes): Likewise.
* lib/mkdirat.c (includes): Likewise.
* lib/fstatat.c (includes): Likewise. Ensure original fstatat is
still visible.
2009-09-02 Eric Blake <ebb9@byu.net>
errno: use consistently
* lib/c-stack.c (ENOTSUP): <errno.h> guarantees a definition.
* lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise.
* lib/canonicalize.c (ELOOP): Likewise.
* lib/inet_ntop.c (EAFNOSUPPORT): Likewise.
* lib/inet_pton.c (EAFNOSUPPORT): Likewise.
* lib/lchown.c (EOPNOTSUPP): Likewise.
* lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise.
* lib/savewd.c (ESTALE): Likewise.
* lib/settime.c (ENOSYS): Likewise.
* lib/utimens.c (ENOSYS): Likewise.
* lib/xgethostname.c (ENAMETOOLONG): Likewise.
* lib/chdir-safer.c (ELOOP): Likewise.
(chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness.
* modules/c-stack (Depends-on): Add errno.
* modules/canonicalize (Depends-on): Likewise.
* modules/chdir-safer (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink.
fts: avoid leaking fds
* modules/fts (Depends-on): Add cloexec.
* lib/fts.c (opendirat, diropen, fts_build): Set close-on-exec
flag.
fts: make directory fds more robust
* lib/fts.c (O_DIRECTORY): Let <fcntl.h> take care of this.
(opendirat): Specify O_DIRECTORY, and add fallbacks for safety.
backupfile, chdir-long, fts, savedir: make safer
* lib/backupfile.c (includes): Use "dirent--.h", since
numbered_backup can write to stderr during readdir.
* lib/savedir.c (includes): Likewise.
* lib/chdir-long.c (includes): Use "fcntl--.h", since openat
emulation can write to stderr on failure.
* lib/fts.c (includes) [!_LIBC]: Likewise for opendir and openat.
* lib/getcwd.c: Document why opendir_safer is unused.
* lib/glob.c: Likewise.
* lib/scandir.c: Likewise.
* lib/openat-proc.c: Likewise, for open_safer.
* modules/backupfile (Depends-on): Add dirent-safer.
* modules/savedir (Depends-on): Likewise.
* modules/fts (Depends-on): Add dirent-safer and openat-safer.
* modules/chdir-long (Depends-on): Add openat-safer.
openat-safer: new module
* modules/openat-safer: New file.
* lib/openat-safer.c: Likewise.
* m4/fcntl-safer.m4 (gl_OPENAT_SAFER): New macro.
* lib/fcntl-safer.h (openat_safer): Declare.
* lib/fcntl--.h (openat): Override.
* MODULES.html.sh (File descriptor based I/O): Mention it.
* lib/openat.h: Add double-inclusion guards.
* lib/openat.c (includes): Only include "fcntl-safer.h", not
"fcntl--.h", so we can implement openat.
* modules/openat-safer-tests: New test.
* tests/test-openat-safer.c: New file.
dirent-safer: new module
* modules/dirent-safer: New file.
* lib/dirent--.h: Likewise.
* lib/dirent-safer.h: Likewise.
* lib/opendir-safer.c: Likewise.
* m4/dirent-safer.m4: Likewise.
* MODULES.html.sh (Enhancements for POSIX:2008): Mention it.
* modules/dirent-safer-tests: New test.
* tests/test-dirent-safer.c: New file.
* lib/fdopendir.c (includes): Ensure fdopendir is also safe.
fdopendir: optimize on mingw
* lib/unistd.in.h (_gl_directory_name): New prototype.
* lib/fchdir.c (_gl_directory_name): Implement it.
(fchdir): Use it to simplify implementation.
* lib/fdopendir.c (fdopendir) [REPLACE_FCHDIR]: Use metadata from
fchdir, when available, to avoid calling [f]chdir().
fdopendir: split into its own module
* lib/openat.c (fdopendir): Move...
* lib/fdopendir.c: ...into new file.
* modules/fdopendir: New module.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): New file.
* modules/openat (Depends-on): Add fdopendir.
* m4/openat.m4 (gl_FUNC_OPENAT): No longer need to check for
fdopendir here.
* modules/savedir (Depends-on): Only need fdopendir, not full
openat.
* lib/savedir.c (include): Use <dirent.h>, not "openat.h".
* lib/openat.h (fdopendir): Drop prototype.
* lib/dirent.in.h (fdopendir): Provide prototype.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add replacements.
* modules/dirent (Makefile.am): Substitute them.
* MODULES.html.sh (File system functions): Mention it.
* doc/posix-functions/fdopendir.texi (fdopendir): Likewise.
* modules/fdopendir-tests: New file.
* tests/test-fdopendir.c: Likewise.
fchdir: use more consistent macro convention
* lib/fcntl.in.h (_gl_register_fd): Move declaration to unistd.
* lib/sys_stat.in.h (rpl_fstat): Declare via make-time
REPLACE_FCHDIR, rather than relying on config.h macros.
* lib/unistd.in.h (fchdir): Move all fchdir internal declarations
inside a single make-time REPLACE_FCHDIR block, rather than using
the config.h FCHDIR_REPLACEMENT.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): REPLACE_FCHDIR was already
AC_SUBST'd, also AC_DEFINE it. Don't define FCHDIR_REPLACEMENT.
Manage fstat replacement.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Pick up
REPLACE_FCHDIR.
* modules/sys_stat (Files): Add m4/unistd_h.m4.
(Makefile.am): Substitute REPLACE_FCHDIR.
* lib/close.c (rpl_close): Use REPLACE_FCHDIR, not
FCHDIR_REPLACEMENT.
* lib/dup-safer.c (dup_safer): Likewise.
* lib/dup2.c (rpl_dup2): Likewise.
* lib/dup3.c (rpl_dup3): Likewise.
* lib/open.c (rpl_open): Likewise.
fchdir: simplify error handling, and support dup3
* modules/fchdir (Depends-on): Use strdup-posix, not strdup. Add
stdbool, malloc-posix, realloc-posix.
* lib/fchdir.c (struct dir_info_t): Delete saved_errno.
(ensure_dirs_slot): Return false on allocation failure.
(rpl_dup2): Delete.
(_gl_register_dup): New function.
(_gl_unregister_fd, rpl_opendir, rpl_dup): Update callers.
(_gl_register_fd): Close fd on allocation failure.
* lib/fcntl.in.h (_gl_register_fd): Update signature.
* lib/unistd.in.h (_gl_register_dup) [FCHDIR_REPLACEMENT]: New
prototype.
(rpl_dup2_fchdir): Delete prototype.
* lib/open.c (open): Update caller.
* lib/dup2.c (dup2): Track fchdir metadata.
* lib/dup3.c (dup3): Likewise.
* m4/dup2.m4 (gl_REPLACE_DUP2): New macro.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Use it.
2009-09-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_create_testdir, func_create_megatestdir): Use
AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER. Use AC_CONFIG_FILES and
don't pass arguments to AC_OUTPUT.
2009-09-02 Bruno Haible <bruno@clisp.org>
* modules/mkdtemp (License): Relicense under LGPLv2+.
Reported by Paolo Bonzini.
2009-09-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Replace uses of obsolete autoconf macros in Jim's modules.
The Autoconf macros AC_TRY_CPP, AC_TRY_COMPILE, AC_TRY_LINK and
AC_TRY_RUN have been obsolete since Autoconf 2.55, and each use
can evoke a warning from autoconf when run with -Wobsolete
enabled. They were declared obsolete for good reasons (see
the `AC_FOO_IFELSE vs AC_TRY_FOO' node in the Autoconf manual,
recently renamed to `AC_ACT_IFELSE vs AC_TRY_ACT'), and we
should not continue using the deprecated macros.
* m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Replace
obsolete Autoconf macros with modern counterparts.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/dos.m4 (gl_AC_DOS): Likewise.
* m4/fpending.m4 (gl_FUNC_FPENDING): Likewise.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Likewise.
* m4/jm-winsz1.m4 (gl_WINSIZE_IN_PTEM): Likewise.
* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Likewise.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Likewise.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Likewise.
* m4/mode_t.m4 (gl_PROMOTED_TYPE_MODE_T): Likewise.
* m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH):
Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Likewise.
* m4/st_dm_mode.m4 (AC_STRUCT_ST_DM_MODE): Likewise.
* m4/stat-time.m4 (gl_STAT_TIME): Likewise.
* m4/utimes-null.m4 (gl_FUNC_UTIMES_NULL): Likewise.
2009-09-01 Eric Blake <ebb9@byu.net>
fchdir: fix off-by-one bug in previous patch
* lib/fchdir.c (rpl_fstat): Use correct bounds.
(_gl_unregister_fd): Delete useless if.
2009-09-01 Daniel P. Berrange <berrange@redhat.com>
maint.mk: sort the list of syntax-check rules
* top/maint.mk (syntax-check-rules): Sort syntax-check rules, so it's
easier to get a sense of progress when the rules are run sequentially
and take a long time.
2009-09-01 Simon Josefsson <simon@josefsson.org>
* modules/arpa_inet: Use $(MKDIR_P) instead of @MKDIR_P@.
* modules/netinet_in: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
2009-09-01 Jim Meyering <meyering@redhat.com>
fts: help ensure that return values are not ignored
* lib/fts_.h (__GNUC_PREREQ): Define.
(__attribute_warn_unused_result__): Define.
(fts_children, fts_close, fts_open, fts_read): Declare with
__attribute_warn_unused_result__.
fts: fts_close now fails also when closing a dir file descriptor fails
* lib/fts.c (fts_close): Detect close failure, not just fchdir failure,
and propagate to caller, along with errno.
announce-gen: correct formatting in --help output
* build-aux/announce-gen (usage): Move the one-line description in
--help output "up", to where it belongs, just after Usage:.
2009-08-31 Eric Blake <ebb9@byu.net>
fchdir: port to mingw
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Check for mingw bug.
* lib/open.c (open) [FCHDIR_REPLACEMENT]: If directories can't be
opened, then use a substitute.
* lib/sys_stat.in.h (fstat) [REPLACE_OPEN_DIRECTORY]: Declare
replacement.
* lib/fchdir.c (fstat) [REPLACE_OPEN_DIRECTORY]: Implement it.
(_gl_register_fd): No need to check stat if open already filters
all directories.
(fchdir): Fix error condition to match POSIX.
* modules/fchdir (Depends-on): Add sys_stat.
* doc/posix-functions/open.texi (open): Document the limitation.
* modules/fchdir-tests: New file.
* tests/test-fchdir.c: Likewise.
canonicalize: allow cross-testing from cygwin to mingw
* modules/canonicalize-tests (configure.ac): Define HAVE_SYMLINK.
(Makefile.am): Pass it through TESTS_ENVIRONMENT.
* modules/canonicalize-lgpl-tests (configure.ac, Makefile.am):
Likewise.
* tests/test-canonicalize.sh: Also skip test if 'ln -s' works, but
target does not support symlinks.
* tests/test-canonicalize-lgpl.sh: Likewise.
chown: avoid compilation warning on mingw
* m4/chown.m4 (gl_FUNC_CHOWN): Recognize missing chown.
* lib/chown.c (rpl_chown) [!HAVE_CHOWN]: Always return failure on
mingw.
* lib/lchown.c (lchown) [!HAVE_CHOWN]: Likewise.
* modules/chown (Depends-on): Add errno.
2009-08-31 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
* gnulib-tool: Fix test whether $CONFIG_SHELL has a working 'echo'
command.
2009-08-31 Jim Meyering <meyering@redhat.com>
canonicalize: remove useless initialization
* lib/canonicalize.c (canonicalize_filename_mode): Remove useless
initialization of local, "end".
2009-08-30 Bruno Haible <bruno@clisp.org>
Fix an unnecessary error on Solaris 10 on NFSv3 file systems.
* lib/set-mode-acl.c (qset_acl) [Solaris 10 new]: Treat EOPNOTSUPP like
ENOSYS.
2009-08-30 Bruno Haible <bruno@clisp.org>
* tests/test-pipe-filter-ii1.sh: Prefer /usr/xpg6/bin/tr over
/usr/xpg4/bin/tr when it exists.
* tests/test-pipe-filter-gi1.sh: Likewise.
2009-08-30 Bruno Haible <bruno@clisp.org>
Work around deficient /usr/bin/id program on Solaris.
* tests/test-file-has-acl.sh (ID): New variable.
* tests/test-set-mode-acl.sh (ID): Likewise.
* tests/test-copy-acl.sh (ID): Likewise.
* tests/test-copy-file.sh (ID): Likewise.
2009-08-30 Bruno Haible <bruno@clisp.org>
New module 'xstriconveh'.
* lib/xstriconveh.h: New file.
* lib/xstriconveh.c: New file.
* modules/xstriconveh: New file.
2009-08-30 Bruno Haible <bruno@clisp.org>
Make it easier to use mem_cd_iconveh.
* lib/striconveh.h (iconveh_t): New type.
(iconveh_open, iconveh_close): New declarations.
(mem_cd_iconveh, str_cd_iconveh): Replace the three iconv_t arguments
with a single 'const iconveh_t *' argument.
* lib/striconveh.c (iconveh_open, iconveh_close): New functions.
(mem_cd_iconveh, str_cd_iconveh): Replace the three iconv_t arguments
with a single 'const iconveh_t *' argument.
(mem_iconveh, str_iconveh): Use iconveh_open, iconveh_close.
* tests/test-striconveh.c (main): Update.
* NEWS: Mention the change.
2009-08-30 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/iconv_open.texi: Mention indirect conversion
problem.
2009-08-30 Bruno Haible <bruno@clisp.org>
Work around iconv_open problem on Solaris.
* lib/iconv_open-solaris.gperf: New file.
* lib/iconv_open.c (ICONV_FLAVOR_SOLARIS): New macro.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Also handle Solaris.
* modules/iconv_open (Files): Add lib/iconv_open-solaris.gperf.
(Makefile.am): Add rule for iconv_open-solaris.h. Augment
BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST.
* doc/posix-functions/iconv_open.texi: Mention the Solaris problem.
2009-08-29 Jim Meyering <meyering@redhat.com>
maint.mk: remove more coreutils-specific targets; XZ_OPT=-9ev
* top/maint.mk (cvs-check): Remove target; it was just an alias
to the better-named vc-diff-check.
(maintainer-distcheck): Remove rule. It was used only from
the (alpha/beta/major) target, and all of its commands but one
were coreutils-specific.
(vc-dist): Remove rule.
(alpha beta major): Run "$(MAKE) distcheck" explicitly.
Run vc-diff-check, not vc-dist.
Run $(MAKE) dist with XZ_OPT=-9ev. Note spelling, with "-".
2009-08-27 Bruno Haible <bruno@clisp.org>
* tests/test-bitrotate.c (main): Remove test that uses a shift count
of 0.
2009-08-27 Bruno Haible <bruno@clisp.org>
* tests/test-func.c (main): Don't verify sizeof __func__ on SunPRO C
compilers.
* doc/func.texi: Document the SunPRO C bug.
2009-08-27 Bruno Haible <bruno@clisp.org>
Fix link error on Solaris.
* tests/test-parse-duration.c (xstrdup): Remove function.
2009-08-26 Pádraig Brady <P@draigbrady.com>
ignore-value: handle pointer types, too
* lib/ignore-value.h (__attribute__): Remove definition.
(ignore_value): Remove use of "__attribute__ ((unused))" in favor
of a more concise and more-often effective "(void) i" statement.
(ignore_ptr): New function to suppress warnings from functions that
return pointers, and to make it explicit that one function doesn't
handle all cases.
2009-08-25 Bruno Haible <bruno@clisp.org>
dup2: work around a Linux bug.
* m4/dup2.m4 (gl_FUNC_DUP2): Test for the Linux bug.
* lib/dup2.c (rpl_dup2): Correct the return value if it is -EBADF.
* doc/posix-functions/dup2.texi: Mention the Linux bug.
Reported by Simon Josefsson.
2009-08-25 Jim Meyering <meyering@redhat.com>
libguestfs uses gnulib
* users.txt: Add libguestfs.
2009-08-24 Eric Blake <ebb9@byu.net>
dup2, pipe2: fix some recent test failures on cygwin 1.5.x
* lib/pipe2.c (includes): Add binary-io.h.
* lib/dup2.c (rpl_dup2): Correct buggy errno value.
2009-08-24 Bruno Haible <bruno@clisp.org>
Tolerate declared but missing accept4 syscall.
* lib/accept4.c (accept4): Invoke original accept4 function first, if
available.
* lib/sys_socket.in.h (accept4): If the function is already present,
override it.
* m4/accept4.m4 (gl_FUNC_ACCEPT4): Remove AC_LIBOBJ invocation.
* modules/accept4 (Makefile.am): Compile accept4.c always.
Reported by Paolo Bonzini and Eric Blake.
2009-08-23 Bruno Haible <bruno@clisp.org>
New module 'accept4'.
* lib/sys_socket.in.h (accept4): New declaration.
* lib/accept4.c: New file.
* m4/accept4.m4: New file.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Initialize
GNULIB_ACCEPT4, HAVE_ACCEPT4.
* modules/sys_socket (Makefile.am): Substitute GNULIB_ACCEPT4,
HAVE_ACCEPT4.
* modules/accept4: New file.
* doc/glibc-functions/accept4.texi: Mention the new module.
2009-08-24 Jim Meyering <meyering@redhat.com>
progname: also set global program_invocation_name, when possible
Before this change, a libtool-enabled program that calls glibc's
error function would report the program name as
"/abs/dir/.libs/lt-program_name" rather than the desired program_name.
* modules/progname (configure.ac): Check for a declaration of
program_invocation_name.
* lib/progname.c: Include <errno.h>.
(set_program_name) [HAVE_DECL_PROGRAM_INVOCATION_NAME]:
Set program_invocation_name.
2009-08-23 Bruno Haible <bruno@clisp.org>
* lib/dup3.c: Include <string.h>.
2009-08-23 Bruno Haible <bruno@clisp.org>
* lib/dup3.c (dup3): Test only once whether the system actually exists.
* lib/pipe2.c (pipe2): Likewise.
Suggested by Eric Blake.
2009-08-23 Bruno Haible <bruno@clisp.org>
Tolerate declared but missing dup3 syscall.
* lib/dup3.c (dup3): Invoke original dup3 function first, if available.
* lib/unistd.in.h (dup3): If the function is already present,
override it.
* m4/dup3.m4 (gl_FUNC_DUP3): Remove AC_LIBOBJ invocation.
* modules/dup3 (Makefile.am): Compile dup3.c always.
Reported by Paolo Bonzini.
2009-08-23 Bruno Haible <bruno@clisp.org>
Tolerate declared but missing pipe2 syscall.
* lib/pipe2.c (pipe2): Invoke original pipe2 function first, if
available.
* lib/unistd.in.h (pipe2): If the function is already present,
override it.
* m4/pipe2.m4 (gl_FUNC_PIPE2): Remove AC_LIBOBJ invocation.
* modules/pipe2 (Makefile.am): Compile pipe2.c always.
Reported by Paolo Bonzini.
2009-08-23 Bruno Haible <bruno@clisp.org>
* lib/pipe2.c (pipe2): Move #ifs inside function.
2009-08-22 Joel E. Denny <jdenny@clemson.edu>
quotearg: document limitations of quote_these_too
* lib/quotearg.c (quotearg_buffer_restyled): Add comments where
those limitations are created.
* lib/quotearg.h (set_char_quoting): Document that digits and
letters that are special after backslash are not permitted.
(quotearg_char): Cross-reference set_char_quoting documentation.
2009-08-23 Joel E. Denny <jdenny@clemson.edu>
quotearg: implement custom_quoting_style
* lib/quotearg.c: (struct quoting_options): Add left_quote and
right_quote fields.
(set_custom_quoting): New public function.
(quotearg_buffer_restyled): Add left_quote and right_quote
arguments, handle them very much like locale quoting, and update
all uses.
(quotearg_n_custom): New public function.
(quotearg_n_custom_mem): New public function.
(quotearg_custom): New public function.
(quotearg_custom_mem): New public function.
* lib/quotearg.h: Prototype and document new public functions.
(enum quoting_style): For escape_quoting_style and
clocale_quoting_style, comment that QA_SPLIT_TRIGRAPHS is
ignored even though they're otherwise like c_quoting_style.
Add custom_quoting_style member and document with comparison to
clocale_quoting_style.
* tests/test-quotearg.c (custom_quotes): New array.
(custom_results): New array.
(main): Extend to test custom quoting.
2009-08-22 Joel E. Denny <jdenny@clemson.edu>
quotearg: fix right quote escaping when it's in quote_these_too
* lib/quotearg.c (quotearg_buffer_restyled): Upon seeing a right
quote, be sure to prepend only one backslash.
* tests/test-quotearg.c (use_quote_double_quotes): New function.
(main): Test it.
2009-08-22 Joel E. Denny <jdenny@clemson.edu>
quotearg-tests: test escaping of embedded locale quotes
* tests/test-quotearg.c (struct result_strings): Add member for
new input.
(LQ_ENC, RQ_ENC, RQ_ESC): New macros.
(inputs): Add new input.
(results_g): Add expected results.
(flag_results): Likewise.
(locale_results): Likewise.
(compare_strings): Check those.
2009-08-23 Bruno Haible <bruno@clisp.org>
Tests for module 'dup3'.
* modules/dup3-tests: New file.
* tests/test-dup3.c: New file.
New module 'dup3'.
* lib/unistd.in.h (dup3): New declaration.
* lib/dup3.c: New file.
* m4/dup3.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_DUP3 and
HAVE_DUP3.
* modules/unistd (Makefile.am): Substitute GNULIB_DUP3 and HAVE_DUP3.
* modules/dup3: New file.
* doc/glibc-functions/dup3.texi: Mention the new module.
2009-08-23 Bruno Haible <bruno@clisp.org>
Tweak the dup2 test.
* tests/test-dup2.c (main): Create the test file empty. Verify that an
out-of-range fd yields EBADF. Verify that after writing to /dev/null,
the test file is still empty. Fix argument order of lseek.
2009-08-23 Bruno Haible <bruno@clisp.org>
Avoid test link errors when the modules getopt-gnu, gettext are used.
* modules/getopt-posix-tests (Makefile.am): Define test_getopt_LDADD.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-08-23 Bruno Haible <bruno@clisp.org>
Fix getdtablesize() on mingw.
* lib/getdtablesize.c (getdtablesize): Implement differently.
* lib/unistd.in.h (getdtablesize): Improve comment.
2009-08-23 Bruno Haible <bruno@clisp.org>
New module 'mkostemp'.
Based on Ulrich Drepper's 2007-08-10 change in glibc.
* lib/stdlib.in.h (mksotemp): New declaration.
* lib/mkostemp.c: New file, from glibc with modifications.
* lib/tempname.h (GT_FILE): Remove outdated comment.
(gen_tempname): Add flags argument.
* lib/tempname.c (__GT_BIGFILE): Remove macro.
(__GT_FILE): Map to 1.
(small_open, large_open): Remove macros.
(__gen_tempname): Add flags argument. Remove code for __GT_BIGFILE.
* lib/mkstemp.c (mkstemp): Update.
* lib/mkdtemp.c (mkdtemp): Likewise.
* m4/mkostemp.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MKOSTEMP,
HAVE_MKOSTEMP.
* modules/stdlib (Makefile.am): Substitute GNULIB_MKOSTEMP,
HAVE_MKOSTEMP.
* modules/mkostemp: New file, based on modules/mkstemp.
* doc/glibc-functions/mkostemp.texi: Mention the new module.
* NEWS: Mention the change.
2009-08-23 Bruno Haible <bruno@clisp.org>
* lib/pipe2.c (pipe2): Support O_TEXT, O_BINARY on all platforms.
Reported by Eric Blake.
2009-08-23 Bruno Haible <bruno@clisp.org>
* lib/pipe2.c (pipe2): Fix test of fcntl's return value.
Reported by Eric Blake.
2009-08-23 Bruno Haible <bruno@clisp.org>
* modules/fchdir (Depends-on): Use fcntl-h instead of fcntl.
* modules/pipe2 (Depends-on): Likewise.
2009-08-23 Eric Blake <ebb9@byu.net>
fcntl-h: add O_TTY_INIT support
* lib/fcntl.in.h (O_TTY_INIT): Support another POSIX macro.
* tests/test-fcntl-h.c (o): Test it.
* doc/posix-headers/fcntl.texi (fcntl.h): Update documentation.
fcntl-h: rename from fcntl, in preparation for fcntl(2)
* modules/fcntl: Move <fcntl.h> header replacement...
* modules/fcntl-h: ...to new name, so as not to collide with
like-named function.
* tests/test-fcntl.c: Rename...
* tests/test-fcntl-h.c: ...to this. Test FD_CLOEXEC.
* modules/fcntl-tests: Rename...
* modules/fcntl-h-tests: ...to this. Update test file name.
* modules/chdir-long (Depends-on): Update clients.
* modules/chdir-safer (Depends-on): Likewise.
* modules/fcntl-safer (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/mkancesdirs (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* MODULES.html.sh (systems lacking POSIX:2008): Update name.
* doc/posix-headers/fcntl.texi (fcntl.h): Update documentation.
2009-08-22 Bruno Haible <bruno@clisp.org>
* modules/binary-io (License): Relicense under LGPL.
* modules/pipe2 (License): Likewise.
2009-08-22 Bruno Haible <bruno@clisp.org>
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Fix test of fcntl's
return value.
* lib/pipe-filter-gi.c (filter_init): Likewise.
Reported by Eric Blake.
2009-08-22 Bruno Haible <bruno@clisp.org>
* lib/pipe.c (create_pipe): Use pipe2 instead of _pipe.
* modules/pipe (Depends-on): Add pipe2.
2009-08-22 Bruno Haible <bruno@clisp.org>
Tests for module 'pipe2'.
* modules/pipe2-tests: New file.
* tests/test-pipe2.c: New file.
New module 'pipe2'.
* lib/unistd.in.h (pipe2): New declaration.
* lib/pipe2.c: New file.
* m4/pipe2.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_PIPE2 and
HAVE_PIPE2.
* modules/unistd (Makefile.am): Substitute GNULIB_PIPE2 and HAVE_PIPE2.
* modules/pipe2: New file.
* doc/glibc-functions/pipe2.texi: Mention the new module.
2009-08-22 Bruno Haible <bruno@clisp.org>
Reference some new glibc functions.
* doc/glibc-functions/accept4.texi: New file.
* doc/glibc-functions/dup3.texi: New file.
* doc/glibc-functions/mkostemp.texi: New file.
* doc/glibc-functions/pipe2.texi: New file.
* doc/gnulib.texi (Glibc stdlib.h): Refer to mkostemp.
(Glibc sys/socket.h): Refer to accept4.
(Glibc unistd.h): Refer to dup3, pipe2.
Reported by Eric Blake.
2009-08-22 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
annotate automake snippets with $(AM_V_GEN) and $(AM_V_at)
This makes it so packages using automake-1.11's silent-rules option
can print e.g., a single "GEN configmake.h" line, rather than
the 30+ statements that perform the job. If you want to see the
actual commands, you can still run "make V=1".
* modules/alloca-opt: Add $(AM_V_GEN) and $(AM_V_at) prefixes
so that make output is abbreviated when those variables are defined
appropriately.
* modules/argz: Likewise.
* modules/arpa_inet: Likewise.
* modules/byteswap: Likewise.
* modules/configmake: Likewise.
* modules/dirent: Likewise.
* modules/errno: Likewise.
* modules/fcntl: Likewise.
* modules/float: Likewise.
* modules/fnmatch: Likewise.
* modules/getopt-posix: Likewise.
* modules/glob: Likewise.
* modules/iconv_open: Likewise.
* modules/inttypes: Likewise.
* modules/localcharset: Likewise.
* modules/locale: Likewise.
* modules/math: Likewise.
* modules/netdb: Likewise.
* modules/netinet_in: Likewise.
* modules/poll: Likewise.
* modules/posix_spawnp-tests: Likewise.
* modules/sched: Likewise.
* modules/search: Likewise.
* modules/selinux-h: Likewise.
* modules/signal: Likewise.
* modules/spawn: Likewise.
* modules/stdarg: Likewise.
* modules/stdbool: Likewise.
* modules/stddef: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/string: Likewise.
* modules/strings: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
* modules/sysexits: Likewise.
* modules/time: Likewise.
* modules/unistd: Likewise.
* modules/wchar: Likewise.
* modules/wctype: Likewise.
2009-08-22 Jim Meyering <meyering@redhat.com>
announce-gen: detect write failure
* build-aux/announce-gen: Add Coda at end.
Remove equivalent-but-more-verbose block at top.
2009-08-19 Akim Demaille <demaille@gostai.com>
bootstrap: --help to stdout.
* bootstrap (usage): Don't send --help to stderr.
Use a here doc instead of a long string.
2009-08-21 Eric Blake <ebb9@byu.net>
test-popen-safer: split from test-popen
* tests/test-popen.c (main): Move...
* tests/test-popen.h: ...into new file.
* tests/test-popen-safer2.c: New file.
* modules/popen-tests (Files): Add test-popen.h.
* modules/popen-safer-tests (Files): Add test-popen-safer2.c.
Suggested by Bruno Haible.
test-fcntl-safer: split from test-open
* tests/test-open.c (main): Move...
* tests/test-open.h: ...into new file.
* tests/test-fcntl-safer.c: New file.
* modules/open-tests (Files): Add test-open.h.
* modules/fcntl-safer-tests: New file.
Suggested by Bruno Haible.
test-fopen-safer: split from test-fopen
* tests/test-fopen.c (main): Move...
* tests/test-fopen.h: ...into new file.
* tests/test-fopen-safer.c: New file.
* modules/fopen-tests (Files): Add test-fopen.h.
* modules/fopen-safer-tests: New file.
Suggested by Bruno Haible.
2009-08-21 Paolo Bonzini <bonzini@gnu.org>
popen-safer: test O_CLOEXEC at run-time.
* lib/popen-safer.c: Test O_CLOEXEC at run-time.
2009-08-21 Paolo Bonzini <bonzini@gnu.org>
fcntl: move more flags to the header
* lib/cloexec.c: Do not define FD_CLOEXEC here.
* lib/popen-safer.c: Do not alias O_NOINHERIT to O_CLOEXEC here.
* lib/fcntl.in.h: Do both things here.
2009-08-21 Jim Meyering <meyering@redhat.com>
consistently remove $@-t before redirecting to it
* modules/argz: Remove $@-t and $@ before redirecting to the former.
* modules/alloca-opt: Likewise.
* modules/byteswap: Likewise.
* modules/fnmatch: Likewise.
* modules/getopt-posix: Likewise.
* modules/glob: Likewise.
* modules/poll: Likewise.
* modules/posix_spawnp-tests: Likewise.
* modules/sys_socket: Likewise.
* modules/sysexits: Likewise.
2009-08-21 Eric Blake <ebb9@byu.net>
popen: simplify access to original popen
* lib/popen.c (rpl_popen): No need to worry about popen being a
macro.
Reported by Bruno Haible.
2009-08-20 Eric Blake <ebb9@byu.net>
build: avoid some compiler warnings
* lib/selinux-at.h: Use dir_fd, not dirfd, to avoid shadowing.
* lib/exclude.c (fnmatch_pattern_has_wildcards): Use correct
type.
(new_exclude_segment, excluded_file_pattern_p)
(excluded_file_name_p): Reduce scope.
* lib/vasnprintf.c (decimal_point_char): Avoid warning on
old-style declaration.
2009-08-20 Simon Josefsson <simon@josefsson.org>
* tests/test-exclude1.sh: Handle Windows EOL.
* tests/test-exclude2.sh: Likewise.
* tests/test-exclude3.sh: Likewise.
* tests/test-exclude4.sh: Likewise.
* tests/test-exclude5.sh: Likewise.
* tests/test-exclude6.sh: Likewise.
* tests/test-exclude7.sh: Likewise.
2009-08-19 Akim Demaille <demaille@gostai.com>
bootstrap: find sha1sum when named gsha1sum.
* bootstrap (find_tool): New.
($SHA1SUM): New.
Use it.
2009-08-20 Jim Meyering <meyering@redhat.com>
maint.mk: _header_without_use: fix a quoting bug and remove a bash'ism
* top/maint.mk (_header_without_use): Use "\\\\", not "\\" in the sed
expression that converts "." in a file name to "\." in the resulting
regexp. Start with a dummy statement, so that prior shell variable
definitions are expanded portably. Reported by Simon Josefsson.
2009-08-20 Paolo Bonzini <bonzini@gnu.org>
Fix polling for writeability of a screen buffer.
* lib/poll.c: Distinguish input and screen buffers for the
Win32 implementation.
* lib/select.c: Likewise.
2009-08-19 Eric Blake <ebb9@byu.net>
popen-safer: prevent popen from clobbering std descriptors
* modules/popen-safer: New file.
* lib/popen-safer.c: Likewise.
* m4/stdio-safer.m4 (gl_POPEN_SAFER): New macro.
* lib/stdio--.h (popen): Provide override.
* lib/stdio-safer.h (popen_safer): Provide declaration.
* tests/test-popen.c (includes): Partially test this.
* modules/popen-safer-tests: New file, for more tests.
* tests/test-popen-safer.c: Likewise.
* MODULES.html.sh (file stream based Input/Output): Mention it.
tests: test some of the *-safer modules
* modules/fopen-safer (Depends-on): Add fopen.
* modules/fcntl-safer (Depends-on): Add fcntl.
* modules/stdlib-safer (Depends-on): Add stdlib.
(configure.ac): Set indicator.
* modules/unistd-safer (configure.ac): Likewise.
* modules/tmpfile-safer (configure.ac): Likewise.
(Depends-on): Add tmpfile.
* lib/stdio--.h (fopen, tmpfile): Don't override unless module is
active.
* tests/test-fopen.c (includes): Test safer versions when they are
in use.
* tests/test-open.c (includes): Likewise.
popen: fix cygwin 1.5 bug when stdin closed
* doc/posix-functions/popen.texi (popen): Document cygwin bugs.
* modules/popen: New file.
* modules/popen-tests: Likewise.
* tests/test-popen.c: Likewise.
* m4/popen.m4: Likewise.
* lib/popen.c: Likewise.
* lib/stdio.in.h (popen): New declaration.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add popen.
* modules/stdio (Makefile.am): Likewise.
* MODULES.html.sh (systems lacking POSIX:2008): Mention it.
2009-08-17 Joel E. Denny <jdenny@clemson.edu>
maint.mk: give full control over update-copyright exclusions
* top/maint.mk (VC_LIST_EXCEPT): Instead of ChangeLog, use
${VC_LIST_EXCEPT_DEFAULT-ChangeLog} as the default exclusion.
(update-copyright): Don't force inclusion of top-level
ChangeLog. Don't force exclusion of all COPYING files, but make
them the default exclusion instead.
2009-08-16 Bruno Haible <bruno@clisp.org>
Fix test failures on Solaris 10.
* tests/uniconv/test-u8-conv-from-enc.c (main): Disable autodetect_jp
tests when Solaris iconv() is used.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
2009-08-16 Bruno Haible <bruno@clisp.org>
Fix test failures on Solaris 10.
* tests/test-pipe-filter-ii1.sh: Determine the filename of a working
'tr' program and pass it as first argument.
* tests/test-pipe-filter-gi1.sh: Likewise.
* tests/test-pipe-filter-ii1.c (main): Except the filename of a 'tr'
program as first argument.
* tests/test-pipe-filter-gi1.c (main): Likewise.
2009-08-16 Eric Blake <ebb9@byu.net>
fpurge: fix previous commits
* modules/fpurge (Makefile.am): Make replacement conditional,
partially reverting 2007-04-29 change; missed in previous
attempt.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Also compile fpurge.c when fpurge
is missing.
2009-08-16 Bruno Haible <bruno@clisp.org>
Clarify fpurge's effect on the file position.
* lib/stdio.in.h (fpurge): Specify the file position after fpurge.
* tests/test-fpurge.c (main): Make a second pass for checking the file
position.
2009-08-16 Bruno Haible <bruno@clisp.org>
* m4/fpurge.m4 (gl_FUNC_FPURGE): Don't compile fpurge.c if only the
declaration of fpurge is missing.
* tests/test-fpurge.c (main): Check that the file has not more contents
than expected. Close the file before removing it.
2009-08-15 Eric Blake <ebb9@byu.net>
fpurge: don't wrap working cygwin implementation
* lib/fpurge.c (fpurge): Fix comment typo.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Detect BSD bug, allowing cygwin
1.7 to avoid replacement.
* tests/test-fpurge.c (main): Enhance test.
2009-08-15 Eric Blake <ebb9@byu.net>
and Jim Meyering <meyering@redhat.com>
test-update-copyright: skip if perl is insufficient
* tests/test-update-copyright.sh: Failure to run maintainer tool
should not cause testsuite failure on cygwin 1.5.
2009-08-14 Eric Blake <ebb9@byu.net>
doc: mention more functions added in cygwin 1.7.0
* doc/posix-headers/limits.texi (limits.h): Update for recent
cygwin additions.
* doc/posix-headers/wordexp.texi (wordexp.h): Likewise.
* doc/posix-functions/wordexp.texi (wordexp): Likewise.
* doc/posix-functions/wordfree.texi (wordfree): Likewise.
* doc/posix-functions/setlocale.texi (setlocale): Likewise.
* doc/posix-functions/nl_langinfo.texi (nl_langinfo): Likewise.
2009-08-14 Eric Blake <ebb9@byu.net>
maint.mk: simplify update-copyright rule
* top/maint.mk (update-copyright-local): Delete, and document how
to do it in cfg.mk instead.
(update-copyright-exclude-regexp): Delete, and document how to do
it in .x-update-copyright instead.
(update-copyright): Simplify, thanks to VC_LIST_EXCEPT. Don't
exclude ChangeLog.
2009-08-14 Bruno Haible <bruno@clisp.org>
* m4/wchar.m4 (gl_WCHAR_H): Undo invalid optimization in last commit.
2009-08-14 Joel E. Denny <jdenny@clemson.edu>
maint.mk: support update-copyright-env
* top/maint.mk (update-copyright-env): Define place-holder.
(update-copyright): Expand $(update-copyright-env) before
invoking update-copyright.
2009-08-14 Joel E. Denny <jdenny@clemson.edu>
update-copyright: implement forced reformatting
* build-aux/update-copyright: Implement and document
UPDATE_COPYRIGHT_FORCE.
* tests/test-update-copyright.sh: Test it.
2009-08-14 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
stddef: fix NetBSD 5.0 NULL bug, rather than working around it
* tests/test-locale.c: Revert previous patch related to NULL.
* tests/test-stdio.c: Likewise.
* tests/test-stdlib.c: Likewise.
* tests/test-string.c: Likewise.
* tests/test-unistd.c: Likewise.
* modules/time-tests (Depends-on): Add verify.
* modules/wchar-tests (Depends-on): Likewise.
* tests/test-time.c: Test for NULL compliance.
* tests/test-wchar.c: Likewise.
* modules/locale (Depends-on): Add stddef.
* modules/stdio (Depends-on): Likewise.
* modules/stdlib (Depends-on): Likewise.
* modules/string (Depends-on): Likewise.
* modules/time (Depends-on): Likewise.
* modules/unistd (Depends-on): Likewise.
* modules/wchar (Depends-on): Likewise.
* lib/locale.in.h (includes): Use <stddef.h> to fix NULL.
* lib/stdlib.in.h (includes): Likewise.
* lib/string.in.h (includes): Likewise.
* lib/time.in.h (includes): Likewise.
* lib/unistd.in.h (includes): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Replace locale.h if stddef.h was
replaced.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* m4/stddef_h.m4: New file.
* modules/stddef: Likewise.
* lib/stddef.in.h: Likewise.
* modules/stddef-tests: Likewise.
* tests/test-stddef.c: Likewise.
* MODULES.html.sh (Basic types <stddef.h>): Mention new module.
* doc/posix-headers/stddef.texi (stddef.h): Document the bug.
* doc/posix-headers/locale.texi (locale.h): Likewise.
* doc/posix-headers/stdio.texi (stdio.h): Likewise.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.
* doc/posix-headers/string.texi (string.h): Likewise.
* doc/posix-headers/time.texi (time.h): Likewise.
* doc/posix-headers/unistd.texi (unistd.h): Likewise.
* doc/posix-headers/wchar.texi (wchar.h): Likewise.
2009-08-14 Eric Blake <ebb9@byu.net>
doc: improve git diff of texinfo files
* .gitattributes: Add rule for *.texi files, with hint on how to
use it.
Copied from m4, and based on a report by Bruno Haible.
2009-08-14 Bruno Haible <bruno@clisp.org>
Disable multithread support by default on Cygwin 1.5.x for real.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Fix last commit.
2009-08-14 Joel E. Denny <jdenny@clemson.edu>
update-copyright: much ado about intervals
* build-aux/update-copyright: Implement and document
UPDATE_COPYRIGHT_USE_INTERVALS to control expansion and collapse
of copyright year intervals.
Also, document UPDATE_COPYRIGHT_YEAR.
* tests/test-update-copyright.sh: Test it.
update-copyright: convert 2-digit to 4-digit years
* build-aux/update-copyright: Implement and document.
* tests/test-update-copyright.sh: Update.
2009-08-14 Jim Meyering <meyering@redhat.com>
test-exclude: avoid coreutils "make check" failure
* tests/test-exclude.c (ARGMATCH_DIE_DECL) [ARGMATCH_DIE_DECL]: Define,
just as in test-argmatch.c.
2009-08-13 Eric Blake <ebb9@byu.net>
test-dup2: fix bad assumption
* tests/test-dup2.c (main): Tolerate leaked fds from environment.
Reported by Peter Breitenlohner <peb@mppmu.mpg.de>.
test-version-etc: fix CRLF portability issue
* tests/test-version-etc.sh: Use tr, not sed, as not all sed
recognize \r.
* tests/test-argp-version-etc-1.sh: Likewise.
getopt: update client modules
* modules/argp (Depends-on): Use getopt-gnu.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/long-options (Depends-on): Likewise.
* modules/xstrtol (Depends-on): Likewise.
2009-08-13 Simon Josefsson <simon@josefsson.org>
* tests/test-version-etc.sh: Don't fail on different
project/version. Don't fail on CRLF differences. Rewrite to use
multiple -e instead of multiple sed forks, suggested by Eric Blake
<ebb9@byu.net>.
* tests/test-argp-version-etc-1.sh: Likewise.
2009-08-13 Simon Josefsson <simon@josefsson.org>
* tests/test-version-etc.sh: Don't fail on different
project/version.
2009-08-12 Bruno Haible <bruno@clisp.org>
Tests for modules 'getopt-posix', 'getopt-gnu'.
* modules/getopt-posix-tests: New file.
* tests/test-getopt.c: New file.
* tests/test-getopt.h: New file.
* tests/test-getopt_long.h: New file.
New modules 'getopt-posix', 'getopt-gnu'.
* modules/getopt-gnu: New file, renamed from modules/getopt.
* modules/getopt-posix: New file.
* modules/getopt: Turn into an obsolete alias for getopt-gnu.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_FUNC_GETOPT_GNU): New macros.
(gl_GETOPT): Remove macro.
(gl_GETOPT_CHECK_HEADERS): Do some checks only for gl_FUNC_GETOPT_GNU.
Disable the test against BSD systems that declare optreset. Test
against mingw bug. Test against lack of support of optional arguments
on many platforms.
* doc/glibc-headers/getopt.texi: Update module name and list of
relevant platforms.
* doc/posix-functions/getopt.texi: Mention modules 'getopt-posix' and
'getopt-gnu' and more portability problems.
* NEWS: Mention the changes.
2009-08-12 Bruno Haible <bruno@clisp.org>
Ensure that optarg etc. get declared by <unistd.h>.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Require
AC_USE_SYSTEM_EXTENSIONS.
* modules/getopt (Depends-on): Add 'extensions'.
2009-08-12 Bruno Haible <bruno@clisp.org>
Avoid test link errors.
* modules/pipe-filter-ii-tests (Makefile.am): Define
test_pipe_filter_ii1_LDADD and test_pipe_filter_ii2_main_LDADD.
* modules/pipe-filter-gi-tests (Makefile.am): Define
test_pipe_filter_gi1_LDADD and test_pipe_filter_gi2_main_LDADD.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-08-12 Bruno Haible <bruno@clisp.org>
* m4/getopt.m4 (gl_REPLACE_GETOPT): New macro, was called
gl_GETOPT_SUBSTITUTE before.
(gl_GETOPT): Use it.
* m4/argp.m4 (gl_ARGP): Update.
Reported by Sergey Poznyakoff.
* m4/getopt.m4: Reorder macros.
(gl_GETOPT): Inline gl_GETOPT_SUBSTITUTE.
(gl_GETOPT_SUBSTITUTE): Remove macro.
2009-08-12 Sergey Poznyakoff <gray@gnu.org.ua>
Minor improvement in gitlog-to-changelog
* build-aux/gitlog-to-changelog: New option `--format' makes
output format string configurable.
2009-08-12 Sergey Poznyakoff <gray@gnu.org.ua>
Optimize exclude: use hash tables for non-wildcard patterns.
* lib/exclude.c: Include hash.h and mbuiter.h
(struct exclude_pattern, exclude_segment): New data types.
(struct exclude): Rewrite.
(fnmatch_pattern_has_wildcards): New function.
(new_exclude_segment, free_exclude_segment): New functions.
(excluded_file_pattern_p, excluded_file_name_p): New functions.
(excluded_file_name, add_exclude): Rewrite using new struct exclude.
* lib/exclude.h (is_fnmatch_pattern): New prototype.
* modules/exclude: Depend on hash and mbuiter.
* modules/exclude-tests: New file.
* tests/test-exclude.c: New file.
* tests/test-exclude1.sh: New file.
* tests/test-exclude2.sh: New file.
* tests/test-exclude3.sh: New file.
* tests/test-exclude4.sh: New file.
* tests/test-exclude5.sh: New file.
* tests/test-exclude6.sh: New file.
* tests/test-exclude7.sh: New file.
2009-08-12 Bruno Haible <bruno@clisp.org>
Ensure that getopt() gets declared by <unistd.h>.
* lib/unistd.in.h: Conditionally include getopt.h.
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): Require gl_UNISTD_H_DEFAULTS.
Set GNULIB_UNISTD_H_GETOPT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
GNULIB_UNISTD_H_GETOPT.
* modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_GETOPT.
2009-08-12 Bruno Haible <bruno@clisp.org>
Clarify logic.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS, gl_GETOPT_IFELSE): Use
gl_replace_getopt instead of GETOPT_H.
2009-08-12 Bruno Haible <bruno@clisp.org>
* m4/getopt.m4: Add comments.
2009-08-12 Bruno Haible <bruno@clisp.org>
Disable multithread support by default on Cygwin 1.5.x.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): On Cygwin 1.5.x and older,
set gl_use_threads=no if not specified otherwise.
2009-08-11 Bruno Haible <bruno@clisp.org>
Avoid compilation error on NetBSD 5.0.
* tests/test-locale.c: Write sizeof (NULL) instead of sizeof NULL.
* tests/test-stdio.c: Likewise.
* tests/test-stdlib.c: Likewise.
* tests/test-string.c: Likewise.
* tests/test-unistd.c: Likewise.
Reported by Greg Troxel <gdt@ir.bbn.com>
at <https://savannah.gnu.org/support/?106973>.
2009-08-11 Bruno Haible <bruno@clisp.org>
* modules/dup2-tests (Depends-on): Remove close.
Undo 2009-07-19 commit.
* modules/acl-tests (Depends-on): Remove close.
* modules/binary-io-tests (Depends-on): Likewise.
* modules/closein-tests (Depends-on): Likewise.
* modules/flock-tests (Depends-on): Likewise.
* modules/fsync-tests (Depends-on): Likewise.
* modules/lseek-tests (Depends-on): Likewise.
* modules/pipe-tests (Depends-on): Likewise.
* modules/posix_spawn-tests (Depends-on): Likewise.
* modules/posix_spawnp-tests (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/yesno-tests (Depends-on): Likewise.
2009-08-10 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (DCHAR_SET): Undefine at the end.
2009-08-10 Bruno Haible <bruno@clisp.org>
Fix a gcc warning.
* lib/write.c (rpl_write): Cast result of _get_osfhandle.
2009-08-10 Bruno Haible <bruno@clisp.org>
Don't optimize AC_LIBOBJs, as they may appear in different contexts.
* m4/close.m4 (gl_REPLACE_CLOSE): Execute AC_LIBOBJ unconditionally,
not only the first time.
* m4/fclose.m4 (gl_REPLACE_FCLOSE): Likewise.
* m4/open.m4 (gl_REPLACE_OPEN): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Execute AC_LIBOBJ when REPLACE_STRSTR
is 1, not only the first time.
2009-08-10 Bruno Haible <bruno@clisp.org>
Make it possible to use module 'gethostname' without module 'close'.
* lib/unistd.in.h (close): Evoke a link error only if
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS is set.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS.
* modules/unistd (Makefile.am): Substitute
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS.
* lib/sys_ioctl.in.h (ioctl): Evoke a link error only if
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS is set.
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Initialize
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS.
* modules/sys_ioctl (Makefile.am): Substitute
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS.
* modules/socket (configure.ac): On native Windows, set
UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS and
SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS.
Reported by Sam Steingold <sds@gnu.org>.
2009-08-10 Bruno Haible <bruno@clisp.org>
* m4/close.m4 (gl_FUNC_CLOSE): Add comment.
* modules/ioctl (configure.ac): Likewise.
2009-08-10 Bruno Haible <bruno@clisp.org>
Avoid collision between gnulib wrapper and libintl wrapper.
* lib/stdio-write.c (printf): Don't define if a printf wrapper is
already defined in intl/printf.c.
(vprintf): Test REPLACE_VPRINTF_POSIX, not REPLACE_VFPRINTF_POSIX.
(vfprintf): Test REPLACE_VFPRINTF_POSIX, not REPLACE_VPRINTF_POSIX.
2009-08-09 Bruno Haible <bruno@clisp.org>
Make <sys/select.h> really self-contained, also on Solaris 10.
* lib/sys_select.in.h: Include <string.h>.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Test also against
Solaris 10 problem.
* tests/test-sys_select.c (main): Add check that FD_ZERO can be used.
* doc/posix-headers/sys_select.texi: Mention the Solaris 10 problem.
Reported by Jim Meyering.
2009-08-09 Bruno Haible <bruno@clisp.org>
Avoid warnings from 'aclocal' that are due to a use of macro name
AM_XGETTEXT_OPTION that is not defined in automake.
* modules/argp (configure.ac): Hide use of AM_XGETTEXT_OPTION from
automake.
* modules/error (configure.ac): Likewise.
* modules/propername (configure.ac): Likewise.
* modules/vasprintf (configure.ac): Likewise.
* modules/verror (configure.ac): Likewise.
* modules/xprintf (configure.ac): Likewise.
* modules/xvasprintf (configure.ac): Likewise.
2009-08-08 Bruno Haible <bruno@clisp.org>
Avoid compilation error in C++ mode.
* lib/gettimeofday.c (rpl_gettimeofday): Cast timezone argument.
Reported by Sam Steingold <sds@gnu.org>.
2009-08-08 Bruno Haible <bruno@clisp.org>
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Define HOST_NAME_MAX also
for the various Unix platforms.
* doc/posix-headers/limits.texi: Update platforms list regarding
HOST_NAME_MAX.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-08-07 Jim Meyering <meyering@redhat.com>
selinux-at: fix typo in a comment
* lib/selinux-at.h: s/getfileconat/getfilecon/ in a comment.
Spotted by Paolo Bonzini.
selinux-at: remove redundant m4 code, add documentation
* modules/selinux-at (configure.ac): Remove redundant code.
LIB_SELINUX is already set via the dependent module, selinux-h.
(Include): Add quotes around selinux-at.h.
* lib/selinux-at.h: Add documentation.
Reported by Bruno Haible in
http://marc.info/?l=gnulib-bug&m=124958988300749
2009-08-07 Bruno Haible <bruno@clisp.org>
Avoid link error on MacOS X 10.3 and 10.4.
* lib/argp-ba.c (argp_program_bug_address): Explicitly zero-initialize
on non-ELF systems.
* lib/argp-pv.c (argp_program_version): Likewise.
Reported by Simon Josefsson.
2009-08-07 Simon Josefsson <simon@josefsson.org>
* tests/test-version-etc.sh: Use $EXEEXT.
2009-08-06 Joel E. Denny <jdenny@clemson.edu>
update-copyright: update documentation to point to maint.mk
* build-aux/update-copyright: Here.
2009-08-06 Jim Meyering <meyering@redhat.com>
maint.mk: support update-copyright-local
* top/maint.mk (update-copyright-local): Define place-holder.
(update-copyright): Depend on $(update-copyright-local).
2009-08-06 Jim Meyering <meyering@redhat.com>
selinux-at: new module
Initially written for coreutils, this module will soon be
used by findutils, too.
* MODULES.html.sh [Misc]: Add selinux-at.
* lib/selinux-at.h: New file, from coreutils.
* lib/selinux-at.c: Likewise.
* modules/selinux-at: Likewise.
(License): Change from LGPL to GPL, since it depends
on the GPL'd openat module.
doc: update README
* README: Remove references to cogito.
Remove cvs-repo-updating instructions from 2007.
Don't imply that CVS is better if you have limited disk space.
2009-08-05 Joel E. Denny <jdenny@clemson.edu>
update-copyright: support C-style comments
* build-aux/update-copyright: Implement and document.
* tests/test-update-copyright.sh: Test.
2009-08-05 Joel E. Denny <jdenny@clemson.edu>
update-copyright: support omitted "(C)"
* build-aux/update-copyright: Implement and document. Also,
allow variable whitespace before "(C)".
* tests/test-update-copyright.sh: Test.
2009-08-05 Joel E. Denny <jdenny@clemson.edu>
update-copyright: don't trip on non-FSF copyright statements
* build-aux/update-copyright: Fix so that the first correctly
formatted FSF copyright statement is recognized no matter what
appears before it. Update documentation.
* tests/test-update-copyright.sh: Test that.
2009-08-05 Joel E. Denny <jdenny@clemson.edu>
update-copyright: clean up code a little
* build-aux/update-copyright: Append "_re" to the name of any
variable holding a regular expression.
Replace "old" and "new" with "stmt" in variable names.
Do not accept 2-digit UPDATE_COPYRIGHT_YEAR, which was not
handled correctly.
Format code more consistently.
2009-08-05 Joel E. Denny <jdenny@clemson.edu>
update-copyright-tests: improve portability
* tests/test-update-copyright.sh: Use cmp if diff cannot handle
-u or /dev/null. Suggested by Jim Meyering and Eric Blake.
2009-08-03 Joel E. Denny <jdenny@clemson.edu>
update-copyright: support @copyright{} and ©
* build-aux/update-copyright: Implement and document.
* tests/test-update-copyright.sh: Test.
2009-08-04 Jim Meyering <meyering@redhat.com>
update-copyright-tests: correctly test EOL=\r\n handling
* tests/test-update-copyright.sh: Put \r at the end of some lines
for the dos-eol tests. Based on a patch by Joel E. Denny.
maint.mk: make update-copyright exclusion list more configurable
* top/maint.mk (update-copyright): Default to excluding COPYING,
but allow an override, in case someone does want to update that file.
maint.mk: don't update copyright date in COPYING
* top/maint.mk (update-copyright): Exclude COPYING.
maint.mk: add a copyright-updating rule
* top/maint.mk (update-copyright): New rule.
Derived from coreutils/Makefile.am.
update-copyright: rename some variables
* build-aux/update-copyright: Rename a few variables for clarity.
Tweak syntax. List Joel E. Denny as coauthor.
2009-08-03 Joel E. Denny <jdenny@clemson.edu>
update-copyright: fix bug for 2-digit last year and add tests
* build-aux/update-copyright: Fix bug.
Use UPDATE_COPYRIGHT_YEAR from environment as current year if
specified.
* modules/update-copyright-tests: New
* tests/test-update-copyright.sh: New.
2009-07-31 Joel E. Denny <jdenny@clemson.edu>
update-copyright: handle leading tabs in line prefix
* build-aux/update-copyright: Count leading tabs as 8 spaces
when computing margin. This helps with the formatting of
ChangeLogs, for example.
Fix documentation a little.
2009-07-31 Joel E. Denny <jdenny@clemson.edu>
update-copyright: support EOL=\r\n
* build-aux/update-copyright: Implement that.
2009-07-31 Joel E. Denny <jdenny@clemson.edu>
update-copyright: automatically format copyright statements
* build-aux/update-copyright: Implement that.
Also, be a little more predictable and safer by always failing
when the full copyright format is not perfectly recognized as an
unbroken whole. Discussed at
<http://lists.gnu.org/r/bug-gnulib/2009-07/msg00131.html>.
Rewrite documentation.
2009-08-03 Bruno Haible <bruno@clisp.org>
* m4/iconv.m4 (AM_ICONV): Fix displayed message with autoconf-2.64.
2009-08-02 Bruno Haible <bruno@clisp.org>
Tests for module 'uname'.
* modules/uname-tests: New file.
* tests/test-uname.c: New file.
New module 'uname'.
* lib/uname.c: New file.
* m4/uname.m4: New file.
* modules/uname: New file.
* doc/posix-functions/uname.texi: Mention the new module.
2009-08-02 Bruno Haible <bruno@clisp.org>
Tests for module 'sys_utsname'.
* modules/sys_utsname-tests: New file.
* tests/test-sys_utsname.c: New file.
New module 'sys_utsname'.
* lib/sys_utsname.in.h: New file, based on glibc's <sys/utsname.h>.
* m4/sys_utsname_h.m4: New file.
* modules/sys_utsname: New file.
* doc/posix-headers/sys_utsname.texi: Mention the new module.
2009-08-02 Bruno Haible <bruno@clisp.org>
Implicitly initialize the sockets library.
* lib/gethostname.c: Include sockets.h.
(rpl_gethostname): Invoke gl_sockets_startup.
* lib/socket.c: Include sockets.h.
(rpl_socket): Invoke gl_sockets_startup.
* modules/gethostname (Depends-on): Add sockets.
* modules/socket (Depends-on): Likewise.
* tests/test-poll.c: Don't include sockets.h.
(main): Don't invoke gl_sockets_startup.
* tests/test-select.c: Don't include sockets.h.
(main): Don't invoke gl_sockets_startup.
2009-08-02 Bruno Haible <bruno@clisp.org>
Allow multiple calls to gl_sockets_startup.
* lib/sockets.c (initialized_sockets_version): New variable.
(gl_sockets_startup): Do nothing if already called for this or a higher
version.
(gl_sockets_cleanup): Reset initialized_sockets_version.
2009-08-03 Simon Josefsson <simon@josefsson.org>
* tests/test-argp-version-etc-1.sh: Use EXEEXT. Don't fail on
different project/version.
2009-08-02 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
Tests for module 'pipe-filter-gi'.
* modules/pipe-filter-gi-tests: New file.
* tests/test-pipe-filter-gi1.sh: New file.
* tests/test-pipe-filter-gi1.c: New file.
* tests/test-pipe-filter-gi2.sh: New file.
* tests/test-pipe-filter-gi2-main.c: New file.
* tests/test-pipe-filter-gi2-child.c: New file.
New module 'pipe-filter-gi'.
* lib/pipe-filter-gi.c: New file.
* modules/pipe-filter-gi: New file.
2009-08-02 Bruno Haible <bruno@clisp.org>
Paolo Bonzini <bonzini@gnu.org>
Tests for module 'pipe-filter-ii'.
* modules/pipe-filter-ii-tests: New file.
* tests/test-pipe-filter-ii1.sh: New file.
* tests/test-pipe-filter-ii1.c: New file.
* tests/test-pipe-filter-ii2.sh: New file.
* tests/test-pipe-filter-ii2-main.c: New file.
* tests/test-pipe-filter-ii2-child.c: New file.
New module 'pipe-filter-ii'.
* lib/pipe-filter.h: New file.
* lib/pipe-filter-ii.c: New file.
* lib/pipe-filter-aux.h: New file.
* modules/pipe-filter-ii: New file.
2009-08-02 Simon Josefsson <simon@josefsson.org>
* lib/gc-libgcrypt.c: Change copyright to FSF.
* lib/gc-gnulib.c: Likewise.
2009-08-02 Martin Lambers <marlam@marlam.de> (tiny change)
* lib/gethostname.c: Include limits.h.
2009-08-02 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
Ensure HOST_NAME_MAX as part of the gethostname module.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): On native Windows platforms,
define also HOST_NAME_MAX.
* tests/test-gethostname.c: Include <limits.h>.
(main): Check also HOST_NAME_MAX.
* doc/posix-headers/limits.texi: Document the mingw problem.
2009-08-02 Bruno Haible <bruno@clisp.org>
* lib/gethostname.c (gethostname): Fix handling of large len argument.
Add comments.
2009-03-31 Simon Josefsson <simon@josefsson.org>
* lib/gethostname.c: Add Windows wrapper.
* m4/gethostname.m4: Look for gethostname in -lws2_32.
* modules/gethostname: Depend on sys_socket & errno, for also
added lib/w32sock.h. Add GETHOSTNAME_LIB link directive.
* modules/gethostname-tests: Link to @GETHOSTNAME_LIB@.
2009-07-31 Jim Meyering <meyering@redhat.com>
getloadavg: fix symbol name in comment
* lib/getloadavg.c: Correct a typo I introduced when adding
comments to Matt's change: s/NLIST_POINTER/N_NAME_POINTER/.
Matt Kraai spotted the problem.
2009-07-29 Matt Kraai <mkraai@beckman.com>
getloadavg: check whether n_name is a pointer, for QNX 6.4.1
* lib/getloadavg.c (getloadavg): Use the strcpy-into-nlist.n_name
code also if ! defined N_NAME_POINTER.
* m4/getloadavg.m4 (gl_GETLOADAVG): Add a link-test for N_NAME_POINTER.
This is required on QNX 6.4.1, where /usr/include/nlist.h exists,
but the n_name member is a 12-byte array.
2009-07-29 Joel E. Denny <jdenny@clemson.edu>
update-copyright: generalize comment handling
* build-aux/update-copyright: Handle copyright statements
within more comment styles.
Document usage.
Report any file with an external copyright holder or parse failure.
2009-07-29 Jim Meyering <meyering@redhat.com>
mktime: correct setting of REPLACE_MKTIME
* m4/mktime.m4 (gl_FUNC_MKTIME): Set REPLACE_MKTIME=0, when required.
update-copyright: new module
* modules/update-copyright: New file.
* build-aux/update-copyright: New file.
* MODULES.html.sh (maint+release support): Add update-copyright.
2009-07-27 Bruno Haible <bruno@clisp.org>
Fix compilation error when <ctime> is used and mktime is replaced.
* lib/time.in.h (mktime): New declaration.
* m4/mktime.m4 (gl_FUNC_MKTIME): Require gl_HEADER_TIME_H_DEFAULTS. Set
REPLACE_MKTIME instead of defining mktime in config.h.
* m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize REPLACE_MKTIME.
* modules/time (Makefile.am): Substitute REPLACE_MKTIME.
Reported by Ross McFarland <rwmcfa1@neces.com>.
2009-07-27 Bruno Haible <bruno@clisp.org>
* lib/math.in.h (cosl, logl, sinl): Undefine before declaring it.
Reported by Matt Kraai <mkraai@beckman.com>.
2009-07-25 Jim Meyering <meyering@redhat.com>
maint.mk: avoid warnings about missing files
* top/maint.mk (PREV_VERSION): Suppress stderr, to hide a
diagnostic when .prev-version does not exist.
(_cfg_mk): Define, so it can be empty when cfg.mk does not exist.
(syntax-check-rules): Use $(_cfg_mk) to avoid a diagnostic about
nonexistent cfg.mk.
Suggestions from Simon Josefsson.
2009-07-25 Bruno Haible <bruno@clisp.org>
* lib/math.in.h (cosl, logl, sinl): Don't declare if they are already
defined as macros. Needed on QNX 6.4.1.
Reported by Matt Kraai <mkraai@beckman.com>.
2009-07-23 Jim Meyering <meyering@redhat.com>
maint.mk: invoke "make dist" with a working value of XZ_OPT
* top/maint.mk (vc-dist): Use no "-" in the value of XZ_OPT.
2009-07-22 Matt Kraai <mkraai@beckman.com> (tiny change)
Make fseeko.c compile on QNX.
* lib/fseeko.c (rpl_fseeko): Use the numerical value of _MWRITE.
2009-07-22 Peter Simons <simons@cryp.to>
C++: wrap md2,md5,sha1,etc. function declarations in extern "C" scope
* lib/md2.h [__cplusplus]: Wrap declarations in extern "C" scope.
* lib/md4.h: Likewise.
* lib/md5.h: Likewise.
* lib/sha1.h: Likewise.
* lib/sha256.h: Likewise.
* lib/sha512.h: Likewise.
tests-sha1: don't assign literal string to 'char *' variable
* tests/test-sha1.c (main): Declare locals with "const" to match
attributes of the right hand side.
2009-07-21 Eric Blake <ebb9@byu.net>
dup2: fix more mingw problems
* lib/dup2.c (rpl_dup2) [_WIN32]: Avoid hanging when duplicating
fd to itself.
* doc/posix-functions/dup2.texi (dup2): Document the bug.
* lib/unistd.in.h (dup2) [REPLACE_FCHDIR]: Avoid name collision.
* lib/fchdir.c (dup2): Manage preprocessor macros correctly.
(rpl_dup2_fchdir): Rename from rpl_dup2, and let dup2 module take
care of mingw bugs.
2009-07-21 Jim Meyering <meyering@redhat.com>
vc-list-files: avoid failure when /bin/sh is dash
* build-aux/vc-list-files: Avoid a shell portability problem with dash.
On some Debian based systems, /bin/sh is a symlink to dash, and running
this command would omit the "/" following each 'tests' prefix:
dash -x build-aux/vc-list-files -C . tests
That is because bash and dash work differently:
$ for i in bash dash; do $i -c 'a=odd; a=ok b=$a; echo '$i' $b'; done
bash ok
dash odd
2009-07-21 Eric Blake <ebb9@byu.net>
dup2-tests: test previous patch
* modules/dup2-tests: New file.
* tests/test-dup2.c: Likewise.
* tests/test-open.c (main): Avoid unspecified behavior.
* tests/test-pipe.c (child_main): Use dup2 semantics to simplify
test.
dup2: work around mingw and cygwin 1.5 bug
* m4/dup2.m4 (gl_FUNC_DUP2): Detect mingw bug.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (dup2): Declare the replacement.
* lib/dup2.c (dup2) [REPLACE_DUP2]: Implement it.
* doc/posix-functions/dup2.texi (dup2): Document the bugs.
* lib/fchdir.c (rpl_dup2): Don't collide with mingw replacement.
* modules/execute (Depends-on): Add dup2.
* modules/fseterr (Depends-on): Likewise.
* modules/pipe (Depends-on): Likewise.
* modules/posix_spawn-internal (Depends-on): Likewise.
2009-07-21 Bruno Haible <bruno@clisp.org>
* modules/.gitattributes: New file.
2009-07-20 Bruno Haible <bruno@clisp.org>
* tests/test-pipe.c (BACKUP_STDERR_FILENO): New macro.
(main): Use it.
2009-07-20 Eric Blake <ebb9@byu.net>
test-pipe: make a bit more robust.
* tests/test-pipe.c (myerr): Allow error messages regardless of
what we do to stderr.
(test_pipe): Rearrange to avoid deadlock.
(child_main): Try a larger read, to ensure we avoided deadlock.
* lib/pipe.c (create_pipe) [_WIN32]: Fix comment.
* lib/pipe.h (create_pipe_bidi): Document potential for deadlock
if misused.
2009-07-19 Jim Meyering <meyering@redhat.com>
fts: avoid false-positive cycle-detection
* lib/fts.c (fts_read): Reinitialize cycle-detection data structures
for each new command line argument.
2009-07-19 Bruno Haible <bruno@clisp.org>
Fix build error on mingw with the modules sys_select and unistd.
* modules/acl-tests (Depends-on): Add close.
* modules/binary-io-tests (Depends-on): Likewise.
* modules/closein-tests (Depends-on): Likewise.
* modules/flock-tests (Depends-on): Likewise.
* modules/fsync-tests (Depends-on): Likewise.
* modules/lseek-tests (Depends-on): Likewise.
* modules/pipe-tests (Depends-on): Likewise.
* modules/posix_spawn-tests (Depends-on): Likewise.
* modules/posix_spawnp-tests (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/yesno-tests (Depends-on): Likewise.
2009-07-19 Bruno Haible <bruno@clisp.org>
Unify conditionals.
* lib/pipe.h: Detect native Win32 by looking at _WIN32 and __WIN32__
macros, not at the compiler macros.
* lib/pipe.c: Likewise.
* lib/execute.c: Likewise.
* lib/spawni.c: Likewise.
2009-07-19 Bruno Haible <bruno@clisp.org>
Fix handling of closed stdin/stdout/stderr on mingw.
* lib/w32spawn.h: Include unistd.h.
(dup_noinherit): Return -1 if the old handle is invalid. Allocate new
file descriptor with O_NOINHERIT flag.
(fd_safer_noinherit): New function, based on fd-safer.c.
(dup_safer_noinherit): New function, based on dup-safer.c.
(undup_safer_noinherit): New function.
* lib/execute.c (execute) [WIN32]: Use dup_safer_noinherit instead of
dup_noinherit. Use undup_safer_noinherit instead of dup2 and close.
* lib/pipe.c (create_pipe) [WIN32]: Likewise. Use fd_safer_noinherit
instead of fd_safer.
* tests/test-pipe.c: Include <windows.h>.
(child_main) [WIN32]: Test the handle of STDERR_FILENO, not its close()
result.
* tests/test-pipe.c (child_main, parent_main): New functions, extracted
from main.
(test_pipe): Pass an extra argument for disambiguation.
(main): Invoke parent_main or child_main.
* tests/test-pipe.c (test_pipe): Pass slave_process = true argument
consistently.
2009-07-18 Eric Blake <ebb9@byu.net>
test-pipe: fix mingw build
* tests/test-pipe.c (main): Avoid fcntl on mingw.
2009-07-18 Bruno Haible <bruno@clisp.org>
* modules/pipe-tests (Makefile.am): Fix typo.
2009-07-18 Eric Blake <ebb9@byu.net>
error: fix mingw build
* lib/error.c (error, error_at_line): Avoid fcntl on mingw.
Reported by Bruno Haible.
error: avoid undefined use of stdout
* lib/error.c (error, error_at_line): Check that fd 1 is open
before flushing stdout. Avoids a crash on cygwin when libsigsegv
is handling faults and the close_stdout module wants to report the
detection of closed stdout as an error.
2009-07-17 Eric Blake <ebb9@byu.net>
pipe: be robust in face of closed fds
* lib/pipe.c (create_pipe): Closed standard descriptors in parent
should cause child to misbehave.
* modules/pipe-tests: New module.
* tests/test-pipe.c: New file.
* tests/test-pipe.sh: New file.
Reported by Akim Demaille.
2009-07-14 Bruno Haible <bruno@clisp.org>
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Guess it works on glibc systems.
Reported by anonymous kc.
2009-07-07 Jim Meyering <meyering@redhat.com>
maint.mk: don't look for translatable strings in *.m4 or *.mk
* top/maint.mk (sc_po_check): Skip *.m4 and *.mk files,
when searching for translatable strings.
2009-07-05 Jim Meyering <meyering@redhat.com>
remove superfluous parentheses in STREQ definition
* tests/test-argv-iter.c (STREQ): Remove redundant parentheses.
* lib/getugroups.c (STREQ): Likewise.
* lib/fnmatch.c (STREQ): Likewise.
Spotted by Bruno Haible.
2009-07-04 Jim Meyering <meyering@redhat.com>
argv-iter: new module
* MODULES.html.sh: Add argv-iter.
* lib/argv-iter.c, lib/argv-iter.h: New files.
* modules/argv-iter: New file.
* modules/argv-iter-tests: New file.
* tests/test-argv-iter.c: Test it.
2009-07-04 Bruno Haible <bruno@clisp.org>
Fix assertion.
* lib/git-merge-changelog.c (compute_mapping): In the case where file1
contains more exact copies of a given entry than file2, leave the extra
copies unpaired rather than aborting.
Reported by Eric Blake.
2009-07-02 Bruno Haible <bruno@clisp.org>
Speedup git-merge-changelog for git cherry-pick.
* lib/git-merge-changelog.c (struct entries_mapping): New type.
(entries_mapping_get): New function, extracted from compute_mapping.
(entries_mapping_reverse_get): New function.
(compute_mapping): Add a 'full' argument. Return the result in a
'struct entries_mapping'.
(main): Update. Access the mappings through entries_mapping_get.
Reported by Eric Blake.
2009-07-02 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c (compute_mapping): Fix determination of
best_i.
2009-07-02 Bruno Haible <bruno@clisp.org>
Speed up approximate search for matching ChangeLog entries.
* lib/git-merge-changelog.c (entry_fstrcmp): Add a lower_bound
argument. Call fstrcmp_bounded instead of fstrcmp.
(compute_mapping, try_split_merged_entry, main): Update callers.
2009-07-02 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c (main): Add comment about git cherry-pick.
2009-06-30 Bruno Haible <bruno@clisp.org>
Reduce the number of uc_is_cased calls.
* lib/unicase.h (casing_suffix_context_t): Add
'first_char_except_ignorable' field.
* lib/unicase/context.h (SCC_FINAL_SIGMA_MASK): Remove macro.
(SCC_MORE_ABOVE_MASK, SCC_BEFORE_DOT_MASK): Update.
* lib/unicase/empty-suffix-context.c (unicase_empty_suffix_context):
Update initializer.
* lib/unicase/u-casemap.h (FUNC): Don't invoke uc_is_cased on
case-ignorable characters.
* lib/unicase/u-ct-totitle.h (FUNC): Likewise.
* lib/unicase/u-suffix-context.h (FUNC2): Don't call uc_is_cased here.
* modules/unicase/u8-suffix-context (Depends-on): Remove unicase/cased.
* modules/unicase/u16-suffix-context (Depends-on): Likewise.
* modules/unicase/u32-suffix-context (Depends-on): Likewise.
2009-06-30 Bruno Haible <bruno@clisp.org>
Tests for module 'unicase/ignorable'.
* modules/unicase/ignorable-tests: New file.
* tests/unicase/test-ignorable.c: New file, generated by
gen-uni-tables.
Tests for module 'unicase/cased'.
* modules/unicase/cased-tests: New file.
* tests/unicase/test-cased.c: New file, generated by gen-uni-tables.
* tests/unicase/test-predicate-part1.h: New file, derived from
tests/unictype/test-predicate-part1.h.
* tests/unicase/test-predicate-part2.h: New file, same as
tests/unictype/test-predicate-part2.h.
Fix evaluation of "Before C" condition of FINAL_SIGMA.
* lib/gen-uni-tables.c (is_cased, is_case_ignorable): New functions.
(output_casing_properties): New function.
(main): Call it.
* lib/unicase/cased.h: New file, generated by gen-uni-tables.
* lib/unicase/cased.c: Include unictype/bitmap.h.
(uc_is_cased): Define through a bitmap lookup.
* lib/unicase/ignorable.h: New file, generated by gen-uni-tables.
* lib/unicase/ignorable.c: Include unictype/bitmap.h.
(uc_is_case_ignorable): Define through a bitmap lookup.
* modules/unicase/cased (Files): Add lib/unicase/cased.h,
lib/unictype/bitmap.h.
(Depends-on): Add inline. Clean up.
* modules/unicase/ignorable (Files): Add lib/unicase/ignorable.h,
lib/unictype/bitmap.h.
(Depends-on): Add inline. Clean up.
* tests/unicase/test-u8-tolower.c (main): Add more tests of FINAL_SIGMA
recognition.
* tests/unicase/test-u16-tolower.c (main): Likewise.
* tests/unicase/test-u32-tolower.c (main): Likewise.
2009-06-30 Bruno Haible <bruno@clisp.org>
* lib/unicase/u8-casemap.c: Don't include uniwbrk.h.
* lib/unicase/u16-casemap.c: Likewise.
* lib/unicase/u32-casemap.c: Likewise.
2009-06-29 Bruno Haible <bruno@clisp.org>
Define u32_casefold as a wrapper around u32_ct_casefold.
* lib/unicase/u32-casefold.c: Update.
* modules/unicase/u32-casefold (Depends-on): Add
unicase/u32-ct-casefold, unicase/empty-prefix-context,
unicase/empty-suffix-context. Clean up.
Define u16_casefold as a wrapper around u16_ct_casefold.
* lib/unicase/u16-casefold.c: Update.
* modules/unicase/u16-casefold (Depends-on): Add
unicase/u16-ct-casefold, unicase/empty-prefix-context,
unicase/empty-suffix-context. Clean up.
Define u8_casefold as a wrapper around u8_ct_casefold.
* lib/unicase/u-casefold.h (FUNC): Delegate to U_CT_CASEFOLD.
* lib/unicase/u8-casefold.c: Update.
* modules/unicase/u8-casefold (Depends-on): Add unicase/u8-ct-casefold,
unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
Define u32_totitle as a wrapper around u32_ct_totitle.
* lib/unicase/u32-totitle.c: Update.
* modules/unicase/u32-totitle (Depends-on): Add unicase/u32-ct-totitle,
unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
Define u16_totitle as a wrapper around u16_ct_totitle.
* lib/unicase/u16-totitle.c: Update.
* modules/unicase/u16-totitle (Depends-on): Add unicase/u16-ct-totitle,
unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
Define u8_totitle as a wrapper around u8_ct_totitle.
* lib/unicase/u-totitle.h (is_cased, is_case_ignorable): Remove
functions.
(FUNC): Delegate to U_CT_TOTITLE.
* lib/unicase/u8-totitle.c: Update.
* modules/unicase/u8-totitle (Depends-on): Add unicase/u8-ct-totitle,
unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up.
* lib/unicase/u32-tolower.c (u32_tolower): Update u32_casemap
invocation.
* modules/unicase/u32-tolower (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
* lib/unicase/u16-tolower.c (u16_tolower): Update u16_casemap
invocation.
* modules/unicase/u16-tolower (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
* lib/unicase/u8-tolower.c (u8_tolower): Update u8_casemap invocation.
* modules/unicase/u8-tolower (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
* lib/unicase/u32-toupper.c (u32_toupper): Update u32_casemap
invocation.
* modules/unicase/u32-toupper (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
* lib/unicase/u16-toupper.c (u16_toupper): Update u16_casemap
invocation.
* modules/unicase/u16-toupper (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
* lib/unicase/u8-toupper.c (u8_toupper): Update u8_casemap invocation.
* modules/unicase/u8-toupper (Depends-on): Add
unicase/empty-prefix-context, unicase/empty-suffix-context.
New module 'unicase/u32-ct-casefold'.
* lib/unicase/u32-ct-casefold.c: New file.
* modules/unicase/u32-ct-casefold: New file.
New module 'unicase/u16-ct-casefold'.
* lib/unicase/u16-ct-casefold.c: New file.
* modules/unicase/u16-ct-casefold: New file.
New module 'unicase/u8-ct-casefold'.
* lib/unicase/u8-ct-casefold.c: New file.
* lib/unicase/u-ct-casefold.h: New file, derived from
lib/unicase/u-casefold.h.
* modules/unicase/u8-ct-casefold: New file.
New module 'unicase/u32-ct-totitle'.
* lib/unicase/u32-ct-totitle.c: New file.
* modules/unicase/u32-ct-totitle: New file.
New module 'unicase/u16-ct-totitle'.
* lib/unicase/u16-ct-totitle.c: New file.
* modules/unicase/u16-ct-totitle: New file.
New module 'unicase/u8-ct-totitle'.
* lib/unicase/u8-ct-totitle.c: New file.
* lib/unicase/u-ct-totitle.h: New file, derived from
lib/unicase/u-totitle.h.
* modules/unicase/u8-ct-totitle: New file.
New module 'unicase/u32-ct-tolower'.
* lib/unicase/u32-ct-tolower.c: New file.
* modules/unicase/u32-ct-tolower: New file.
New module 'unicase/u16-ct-tolower'.
* lib/unicase/u16-ct-tolower.c: New file.
* modules/unicase/u16-ct-tolower: New file.
New module 'unicase/u8-ct-tolower'.
* lib/unicase/u8-ct-tolower.c: New file.
* modules/unicase/u8-ct-tolower: New file.
New module 'unicase/u32-ct-toupper'.
* lib/unicase/u32-ct-toupper.c: New file.
* modules/unicase/u32-ct-toupper: New file.
New module 'unicase/u16-ct-toupper'.
* lib/unicase/u16-ct-toupper.c: New file.
* modules/unicase/u16-ct-toupper: New file.
New module 'unicase/u8-ct-toupper'.
* lib/unicase/u8-ct-toupper.c: New file.
* modules/unicase/u8-ct-toupper: New file.
Add context arguments to u*_casemap functions.
* lib/unicase/unicasemap.h: Include unicase.h.
(u8_casemap, u16_casemap, u32_casemap): Add prefix_context and
suffix_context arguments.
* lib/unicase/u-casemap.h (is_cased, is_case_ignorable): Remove
functions.
(FUNC): Add prefix_context and suffix_context arguments. Use
uc_is_cased and uc_is_case_ignorable.
* lib/unicase/u8-casemap.c: Include caseprop.h and context.h.
* lib/unicase/u16-casemap.c: Likewise.
* lib/unicase/u32-casemap.c: Likewise.
* modules/unicase/u8-casemap (Files): Add lib/unicase/context.h.
(Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
* modules/unicase/u16-casemap (Files): Add lib/unicase/context.h.
(Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
* modules/unicase/u32-casemap (Files): Add lib/unicase/context.h.
(Depends-on): Add unicase/cased, unicase/ignorable. Clean up.
New module 'unicase/u32-suffix-context'.
* lib/unicase/u32-suffix-context.c: New file.
* modules/unicase/u32-suffix-context: New file.
New module 'unicase/u16-suffix-context'.
* lib/unicase/u16-suffix-context.c: New file.
* modules/unicase/u16-suffix-context: New file.
New module 'unicase/u8-suffix-context'.
* lib/unicase/u8-suffix-context.c: New file.
* lib/unicase/u-suffix-context.h: New file.
* modules/unicase/u8-suffix-context: New file.
New module 'unicase/empty-suffix-context'.
* lib/unicase/empty-suffix-context.c: New file.
* modules/unicase/empty-suffix-context: New file.
New module 'unicase/u32-prefix-context'.
* lib/unicase/u32-prefix-context.c: New file.
* modules/unicase/u32-prefix-context: New file.
New module 'unicase/u16-prefix-context'.
* lib/unicase/u16-prefix-context.c: New file.
* modules/unicase/u16-prefix-context: New file.
New module 'unicase/u8-prefix-context'.
* lib/unicase/u8-prefix-context.c: New file.
* lib/unicase/u-prefix-context.h: New file.
* lib/unicase/context.h: New file.
* modules/unicase/u8-prefix-context: New file.
New module 'unicase/empty-prefix-context'.
* lib/unicase/empty-prefix-context.c: New file.
* modules/unicase/empty-prefix-context: New file.
New module 'unicase/ignorable'.
* lib/unicase/ignorable.c: New file.
* modules/unicase/ignorable: New file.
New module 'unicase/cased'.
* lib/unicase/caseprop.h: New file.
* lib/unicase/cased.c: New file.
* modules/unicase/cased: New file.
New functions for case mapping of substrings.
* lib/unicase.h (casing_prefix_context_t): New type.
(unicase_empty_prefix_context): New variable.
(u8_casing_prefix_context, u16_casing_prefix_context,
u32_casing_prefix_context, u8_casing_prefixes_context,
u16_casing_prefixes_context, u32_casing_prefixes_context): New
declarations.
(casing_suffix_context_t): New type.
(unicase_empty_suffix_context): New variable.
(u8_casing_suffix_context, u16_casing_suffix_context,
u32_casing_suffix_context, u8_casing_suffixes_context,
u16_casing_suffixes_context, u32_casing_suffixes_context,
u8_ct_toupper, u16_ct_toupper, u32_ct_toupper, u8_ct_tolower,
u16_ct_tolower, u32_ct_tolower, u8_ct_totitle, u16_ct_totitle,
u32_ct_totitle, u8_ct_casefold, u16_ct_casefold, u32_ct_casefold): New
declarations.
2009-06-28 Jim Meyering <meyering@redhat.com>
boostrap: indent only with spaces
* build-aux/bootstrap: Indent only with spaces, never TABs.
bootstrap: split long lines
* build-aux/bootstrap: Keep line length < 80.
bootstrap: sync from coreutils
* build-aux/bootstrap: Honor variables like $ACLOCAL, etc.,
just as autoreconf does. Verify a list of prerequisite
package-name,version-number pairs if defined in bootstrap.conf.
Refer to README-prereq, if prerequisites are not satisfied.
2009-06-27 Eric Blake <ebb9@byu.net>
tests: add test for bogus NULL definition
* tests/test-stdio.c: Ensure POSIX 2008 requirement on NULL.
* tests/test-stdlib.c: Likewise.
* tests/test-string.c: Likewise.
* tests/test-locale.c: Likewise.
* tests/test-unistd.c: Likewise.
* modules/stdio-tests (Depends-on): Add verify.
* modules/stdlib-tests (Depends-on): Likewise.
* modules/string-tests (Depends-on): Likewise.
* modules/locale-tests (Depends-on): Likewise.
* modules/unistd-tests (Depends-on): Likewise.
2009-06-27 Paolo Bonzini <bonzini@gnu.org>
* m4/selinux-context-h (gl_HEADERS_SELINUX_CONTEXT_H): Remove
self-explaining comment.
* m4/selinux-selinux-h: Update serial.
(gl_LIBSELINUX): New macro, adding a warning for missing development
packages to code extracted from...
(gl_HEADERS_SELINUX_SELINUX_H): ... this one. Require gl_LIBSELINUX.
Add warning for missing development packages here, too.
2009-06-26 Paolo Bonzini <bonzini@gnu.org>
* build-aux/bootstrap: Do not use GIT_CONFIG_LOCAL.
2009-06-25 Eric Blake <ebb9@byu.net>
version-etc: fix regression
* lib/version-etc.h (ATTRIBUTE_SENTINEL): Define for new enough
gcc.
(version_etc): Use it, to catch bugs with trailing NULL.
* lib/version-etc.c (version_etc_arn): Delete unused argument.
(version_etc_va): Fix logic bug.
* modules/version-etc-tests: Add test.
* tests/test-version-etc.c: New file.
* tests/test-version-etc.sh: Likewise.
2009-06-25 Sam Steingold <sds@gnu.org>
* mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): Include <stdlib.h>, for the
mbtowc declaration.
2009-06-25 Eric Blake <ebb9@byu.net>
fpurge: migrate into <stdio.h>
* lib/fpurge.h: Delete...
* lib/stdio.in.h (fpurge): ...and declare here, instead.
* lib/fpurge.c (fpurge): Change declaring header.
* modules/fpurge (Files): Drop deleted file.
(Depends-on): Add stdio.
(configure.ac): Set witness.
* modules/stdio (Makefile.am): Support fpurge macros.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Set appropriate variables.
* lib/fflush.c: Update client.
* tests/test-fpurge.c: Likewise.
* NEWS: Mention the change.
2009-06-25 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-version-etc.c (program_authors): Add const
qualifier.
* lib/version-etc.c: Fix typos in the comments.
* modules/argp-version-etc: Depends on version-etc.
2009-06-25 Sergey Poznyakoff <gray@gnu.org.ua>
argp-version-etc: new module.
* lib/argp-version-etc.c: New file.
* lib/argp-version-etc.h: New file.
* modules/argp-version-etc: New file.
* modules/argp-version-etc-tests: New file.
* tests/test-argp-version-etc.c: New test.
* tests/test-argp-version-etc-1.sh: New test.
2009-06-25 Sergey Poznyakoff <gray@gnu.org.ua>
Provide additional interfaces and documentation for version-etc
module.
* lib/version-etc.c (version_etc_arn, version_etc_ar): New
interfaces.
* lib/version-etc.h (version_etc_arn, version_etc_ar): New
prototypes.
2009-06-24 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Fix description of
HAVE_LIB${NAME} macro.
Reported by Sam Steingold <sds@gnu.org>.
2009-06-23 Simon Josefsson <simon@josefsson.org>
* modules/hash-tests (test_hash_LDADD): Link to libintl when
needed.
2009-06-21 Bruno Haible <bruno@clisp.org>
Make two consecutive identical invocations of AC_LIB_HAVE_LINKFLAGS
work.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Reset HAVE_LIB${NAME}
together with LIB${NAME}, LTLIB${NAME}.
Reported by Sam Steingold <sds@gnu.org>.
2009-06-20 Jim Meyering <meyering@redhat.com>
tests: make sc_require_test_exit_idiom more generic
* top/maint.mk (Exit_witness_file): New overridable variable.
(sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh.
Relax test for /^Exit \$fail$$/ to just /^Exit ./.
2009-06-19 Jim Meyering <meyering@redhat.com>
hash: reverse order of src/dst parameters in an internal interface
* lib/hash.c (transfer_entries): Reverse order of parameters to
put DST before SRC. Adjust callers.
tests: test-hash: avoid wholesale duplication
* tests/test-hash.c (main): Don't copy/paste a 60-line loop.
Instead, use a loop and add a single conditional.
tests: test-hash: allow seed selection via a command line argument
* tests/test-hash.c (get_seed): New function.
(main): Use it.
2009-06-19 Eric Blake <ebb9@byu.net>
hash: avoid memory leak on allocation failure
* lib/hash.c: (hash_rehash): Avoid memory leak on allocation
failure. Factor repeated algorithm...
(transfer_entries): ...into new helper routine.
(hash_delete): React to hash_rehash return value.
hash: reduce memory pressure in hash_rehash no-op case
* lib/hash.c (next_prime): Avoid overflow.
(hash_initialize): Factor bucket size computation...
(compute_bucket_size): ...into new helper function.
(hash_rehash): Use new function and open coding to reduce memory
pressure, and avoid a memory leak in USE_OBSTACK code.
Reported by Jim Meyering.
2009-06-18 Eric Blake <ebb9@byu.net>
hash: make rotation more obvious
* modules/hash (Depends-on): Add bitrotate and stdint.
* lib/bitrotate.h (rotl_sz, rotr_sz): New functions.
* lib/hash.c (headers): Drop limits.h. Add stdint.h.
(SIZE_MAX): Rely on headers for definition.
(hash_string) [USE_DIFF_HASH]: Use rotl_sz.
(raw_hasher): Use rotr_sz.
Suggested by Jim Meyering.
hash: fix memory leak in last patch
* lib/hash.c (hash_rehash): Avoid memory leak.
hash: avoid no-op rehashing
* lib/hash.c (hash_rehash): Recognize useless rehash attempts.
hash: provide default callback functions
* lib/hash.c (raw_hasher, raw_comparator): New functions.
(hash_initialize): Use them as defaults.
* tests/test-hash.c (main): Test this.
hash: minor optimization
* lib/hash.c (hash_lookup, hash_find_entry): Avoid function call
when possible.
(hash_initialize): Document this promise.
(hash_do_for_each, hash_clear, hash_free): Use C89 syntax.
* tests/test-hash.c (hash_compare_strings): Test this.
2009-06-18 Bruno Haible <bruno@clisp.org>
* m4/strstr.m4 (gl_FUNC_STRSTR): Skip linear time test if strstr is
going to be replaced anyway.
2009-06-18 Bruno Haible <bruno@clisp.org>
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only
in one place.
(gl_FUNC_STRCASESTR): Skip linear time test if strcasestr is going to
be replaced anyway.
2009-06-18 Eric Blake <ebb9@byu.net>
hash: check for resize before insertion
* lib/hash.c (hash_insert): Check whether bucket usage exceeds
threshold before insertion, so that a pathological hash_rehash
that fills every bucket can still trigger another rehash.
2009-06-18 Jim Meyering <meyering@redhat.com>
hash-tests: add a loop around the small tests
* tests/test-hash.c (main): Repeat small tests with selected
small initial table sizes.
2009-06-17 Eric Blake <ebb9@byu.net>
hash: minor cleanups
* lib/hash.h (hash_entry): Make opaque, by moving...
* lib/hash.c (hash_entry): ...here.
(hash_insert): Clarify restrictions on what can be inserted.
(hash_get_next): Clarify when it is safe to remove an element
during traversal.
(check_tuning): Skip verification when tuning is known safe.
(hash_initialize): Clarify restrictions on tuning.
2009-06-17 Jim Meyering <jim@meyering.net>
and Eric Blake <ebb9@byu.net>
hash-tests: new module
* modules/hash-tests: New file.
* tests/test-hash.c: New file.
2009-06-17 Eric Blake <ebb9@byu.net>
strstr-simple: document new module
* MODULES.html.sh: Document new module.
strstr, strcasestr: replace on platforms with broken memchr
* modules/strstr: Split into...
* modules/strstr-simple: ...new module that does not care about
performance, but does care about glibc bug.
* m4/strstr.m4 (gl_FUNC_STRSTR): Split...
(gl_FUNC_STRSTR_SIMPLE): ...into new macro, which replaces strstr
if platform memchr is broken, per Debian bug 521737.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): React to broken
memchr.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Only expand once.
* doc/posix-functions/strstr.texi (strstr): Document the fix.
* doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
* modules/mountlist (Depends-on): Add strstr-simple.
* modules/gen-uni-tables (Depends-on): Likewise.
* modules/argz (Depends-on): Add strstr.
2009-06-17 Bruno Haible <bruno@clisp.org>
* modules/posix_spawn-internal (Depends-on): Add errno.
2009-06-17 Bruno Haible <bruno@clisp.org>
Define missing ESTALE on Interix 3.5.
* lib/errno.in.h (ESTALE): Assign a value if missing.
* lib/strerror.c (rpl_strerror): Handle missing ESTALE and ECANCELED.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether ESTALE is
missing.
* doc/posix-headers/errno.texi: Mention the Interix bug.
Reported by Jay Krell <jay.krell@cornell.edu> via Eric Blake.
2009-06-15 Eric Blake <ebb9@byu.net>
memchr, memchr2: add valgrind exception
* lib/memchr.valgrind: New file.
* lib/memchr2.valgrind: New file.
* modules/memchr (Files): Distribute valgrind file.
* modules/memchr2 (Files): Likewise.
docs: memchr is no longer obsolete
* MODULES.html.sh: Move memchr from obsolete to string.h section.
* lib/string.in.h (memchr): Simplify logic.
2009-06-14 Jim Meyering <meyering@redhat.com>
link-follow: fix the "checking..." message to not mention trailing slash
* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): This test has
never considered trailing slashes.
2009-06-14 Bruno Haible <bruno@clisp.org>
* m4/memchr.m4: Mention also the bug on IA-64.
* doc/posix-functions/memchr.texi: Likewise.
2009-06-12 Eric Blake <ebb9@byu.net>
memchr: detect broken x86_64 and alpha implementations
* modules/memchr-tests (Depends-on): Move mmap detection...
* modules/memchr (Depends-on): ...here.
(configure.ac): Set indicator.
* lib/string.in.h (memchr): Declare replacement.
* modules/string (Makefile.am): Trigger replacement.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Use mmap to detect platform
bugs.
* doc/posix-functions/memchr.texi (memchr): Document the bug.
* modules/getpagesize (License): Relax license.
2009-06-11 Bruno Haible <bruno@clisp.org>
* lib/idpriv.h: Add more references.
2009-06-08 Bruno Haible <bruno@clisp.org>
Tests for module 'idpriv-droptemp'.
* modules/idpriv-droptemp-tests: New file.
* tests/test-idpriv-droptemp.sh: New file.
* tests/test-idpriv-droptemp.su.sh: New file.
* tests/test-idpriv-droptemp.c: New file.
New module 'idpriv-droptemp'.
* lib/idpriv-droptemp.c: New file.
* modules/idpriv-droptemp: New file.
2009-06-08 Bruno Haible <bruno@clisp.org>
Tests for module 'idpriv-drop'.
* modules/idpriv-drop-tests: New file.
* tests/test-idpriv-drop.sh: New file.
* tests/test-idpriv-drop.su.sh: New file.
* tests/test-idpriv-drop.c: New file.
New module 'idpriv-drop'.
* lib/idpriv.h: New file.
* lib-idpriv-drop.c: New file.
* m4/idpriv.m4: New file.
* modules/idpriv-drop: New file.
2009-06-08 Bruno Haible <bruno@clisp.org>
* modules/unistdio/u8-vasnprintf (Depends-on): Add memchr.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2009-06-08 Eric Blake <ebb9@byu.net>
test-strstr: use memory fence, when possible
* tests/test-strstr.c (main): Use memory fence, in order to be
more likely to trigger Debian bug 521737.
* modules/strstr-tests (Files): Pull in additional files.
memchr: no longer obsolete, for wider field testing
* modules/memchr (Status, Notice): Delete, this module is no
longer obsolete.
* modules/vasnprintf (Depends-on): Add memchr.
2009-06-07 Jim Meyering <meyering@redhat.com>
hash: declare some functions with the warn_unused_result attribute
* lib/hash.h (__attribute__, ATTRIBUTE_WUR): Define.
2009-06-07 Bruno Haible <bruno@clisp.org>
* tests/test-alignof.c: Don't test int64_t if it does not exist.
Reported by Eric Blake.
2009-06-06 Eric Blake <ebb9@byu.net>
test-alignof: fix typo with long double
* tests/test-alignof.c (CHECK): Use longdouble typedef to avoid
compiler error.
2009-06-06 Neil Jerram <neil@ossau.uklinux.net> (tiny change)
Escape non-texinfo { and }s.
* doc/ld-output-def.texi (Visual Studio Compatibility): Fix
markup error.
2009-06-04 Jim Meyering <meyering@redhat.com>
gitlog-to-changelog: don't infloop on an empty commit log
* build-aux/gitlog-to-changelog: Warn about an empty log message.
Reported by Boris Petersen <transacid@centerim.org>.
2009-06-03 Mike Frysinger <vapier@gentoo.org>
version-etc: extend for packagers
Add three new configure options, intended for packagers:
--with-packager="packager name"
--with-packager-version="packager-specific version"
--with-packager-bug-reports="packager bug reporting"
An example with coreutils:
$ ./configure \
--with-packager=Gentoo \
--with-packager-bug-report=http://bugs.gentoo.org/ \
--with-packager-version="patchset 1.6"
$ ./src/ls --version | head -n2
ls (GNU coreutils) 7.1-dirty
Packaged by Gentoo (patchset 1.6)
Note that the bug reporting info via --help doesn't show up because
coreutils uses its own custom emit_bug_reporting_address() implementation
in src/system.h. If it didn't, it'd look like:
$ ./src/ls --help | tail -n4
Report bugs to <bug-coreutils@gnu.org>.
Report Gentoo bugs to <http://bugs.gentoo.org/>.
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
* lib/version-etc.c: Print new information, if provided.
* m4/version-etc.m4: New file.
* modules/version-etc (Files): Add m4/version-etc.m4.
(configure.ac): Add gl_VERSION_ETC.
2009-05-31 Bruno Haible <bruno@clisp.org>
* tests/test-alignof.c: Include <stdint.h>. Check also 'long double'
and 'int64_t'.
* modules/alignof-tests (Dependencies): Add stdint.
Reported by Eric Blake.
2009-05-31 Bruno Haible <bruno@clisp.org>
* lib/alignof.h (alignof_slot, alignof_type, alignof): Document
restriction due to compiler bugs.
Reported by Eric Blake.
2009-05-31 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
Fix test-alignof failure.
* lib/alignof.h (alignof_slot): New macro.
(alignof_type): New macro, with the same semantics as the previous
'alignof'.
(alignof): Alias to alignof_slot.
* tests/test-alignof.c (CHECK): Check alignof_slot, not alignof. Also
check that the results are usable as constant expressions.
2009-05-31 Bruno Haible <bruno@clisp.org>
* tests/zerosize-ptr.h (zerosize_ptr): Specify more details.
* tests/test-memchr.c (main): Check that memchr does not read past the
first occurrence of the byte.
* tests/test-strstr.c (main): Update comment.
Suggested by Eric Blake.
2009-05-30 Bruno Haible <bruno@clisp.org>
* doc/ld-output-def.texi (Visual Studio Compatibility): Explain in more
detail how to use dumpbin.
Reported by David Byron <dbyron@dbyron.com>.
2009-06-02 Simon Josefsson <simon@josefsson.org>
* tests/test-parse-duration.sh: Don't use non-portable 'read -u3'.
2009-06-02 Simon Josefsson <simon@josefsson.org>
* m4/manywarnings.m4: Add GCC 4.4 warnings.
2009-05-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Don't do HAVE_CONFIG_H replacements on
build-aux/ files.
2009-05-28 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_import): Transform license on build-aux/ files too.
2009-05-27 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (sed_transform_main_lib_file)
(sed_transform_testsrelated_lib_file): : Don't use non-POSIX
regexps.
2009-05-26 Simon Josefsson <simon@josefsson.org>
* tests/test-strstr.c: Add another self-test.
* tests/test-strstr.c: Rewrite to use malloc/strcpy instead of
strdup. Suggested by Eric Blake <ebb9@byu.net>.
2009-05-23 Bruno Haible <bruno@clisp.org>
* doc/havelib.texi (AC_LIB_HAVE_LINKFLAGS): Update for 2009-04-26
change.
2009-05-21 Bruno Haible <bruno@clisp.org>
Simplify use of mode_t varargs.
* lib/open.c (open): Use PROMOTED_MODE_T instead of a conditional that
uses 'mode_t' or 'int'.
* lib/openat.c (openat): Likewise.
* lib/open-safer.c (open_safer): Likewise.
* m4/mode_t.m4: New file.
* m4/open.m4 (gl_PREREQ_OPEN): Require gl_PROMOTED_TYPE_MODE_T.
* m4/openat.m4 (gl_PREREQ_OPENAT): Likewise.
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Likewise.
* modules/open (Files): Add m4/mode_t.m4.
* modules/openat (Files): Likewise.
* modules/fcntl-safer (Files): Likewise.
Suggested by Eric Blake.
2009-05-21 Pádraig Brady <P@draigbrady.com>
* doc/glibc-functions/fallocate.texi: New file.
* doc/gnulib.texi: Include it.
2009-05-21 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Remove redundant m4_quote
invocations.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
2009-05-21 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
Second attempt to work around an AIX 5.3, 6.1 compiler bug with
include_next. Fix of 2008-11-20 commit.
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Also set
NEXT_AS_FIRST_DIRECTIVE_FOO_H.
* lib/math.in.h: Use NEXT_AS_FIRST_DIRECTIVE_MATH_H instead of
NEXT_MATH_H.
* modules/math (Makefile.am): Substitute NEXT_AS_FIRST_DIRECTIVE_MATH_H
instead of NEXT_MATH_H.
2009-05-21 Bruno Haible <bruno@clisp.org>
Avoid redefinition warnings for SIZE_MAX.
* m4/size_max.m4 (gl_SIZE_MAX): Avoid redefining SIZE_MAX in config.h.
Reported by Simon Josefsson.
2009-05-21 Bruno Haible <bruno@clisp.org>
* m4/size_max.m4 (gl_SIZE_MAX): Use AC_CACHE_CHECK instead of
AC_CACHE_VAL.
2009-05-20 Bruno Haible <bruno@clisp.org>
Make zeroptr.h work on mingw.
* tests/zerosize-ptr.h: Test for the presence of <sys/mman.h> and
mprotect.
* modules/memchr-tests (configure.ac): Also test for sys/mman.h.
* modules/memchr2-tests (configure.ac): Likewise.
* modules/memcmp-tests (configure.ac): Likewise.
* modules/memmem-tests (configure.ac): Likewise.
* modules/memrchr-tests (configure.ac): Likewise.
Reported by Simon Josefsson.
2009-05-20 Simon Josefsson <simon@josefsson.org>
* tests/test-glob.c: Include string.h for strcmp prototype.
2009-05-20 Simon Josefsson <simon@josefsson.org>
* modules/getdelim (Depends-on): Add explicit stdint, although it
was implicitly already pulled in via realloc-posix.
* lib/getdelim.c: Get SIZE_MAX from stdint.h.
2009-05-20 Simon Josefsson <simon@josefsson.org>
MinGW and IRIX does not have sa_family_t type. Reported by "Tom
G. Christensen" <tgc@jupiterrise.com>.
* m4/sys_socket_h.m4: Check for sa_family_t.
* lib/sys_socket.in.h: Typedef sa_family_t when needed.
* modules/sys_socket: Substitute HAVE_SA_FAMILY_T.
* tests/test-sys_socket.c: Check that sa_family_t works.
2009-05-18 Eric Blake <ebb9@byu.net>
maint.mk: allow gnulib_dir in VPATH build
* top/maint.mk (gnulib_dir): Make relative to $(srcdir).
2009-05-15 Jim Meyering <meyering@redhat.com>
maint.mk: Give gnulib_dir a default definition.
* top/maint.mk (gnulib_dir): Define to 'gnulib', by default.
Thus, most packages no longer need to specify this variable in cfg.mk
2009-05-14 Tom Prince <tom.prince@ualberta.net> (tiny change)
rename.m4: fix typos that would make non-mingw cross-configure fail
* m4/rename.m4 (gl_FUNC_RENAME): Fix typos.
2009-05-13 Eric Blake <ebb9@byu.net>
mmap-anon: avoid out-of-order autoconf expansion
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Use correct
SYSTEM_EXTENSIONS macro to silence warnings from autoconf 2.63b.
* modules/memchr-tests (Depends-on): Add extensions.
* modules/memchr2-tests (Depends-on): Add extensions.
* modules/memcmp-tests (Depends-on): Add extensions.
* modules/memmem-tests (Depends-on): Add extensions.
* modules/memrchr-tests (Depends-on): Add extensions.
2009-05-13 Bruno Haible <bruno@clisp.org>
Make some tests ISO C 99 compliant.
* tests/zerosize-ptr.h: New file.
* tests/test-memchr.c: Include zerosize-ptr.h.
(main): Use a zero-size object pointer instead of NULL.
* tests/test-memchr2.c: Include zerosize-ptr.h.
(main): Use a zero-size object pointer instead of NULL.
* tests/test-memcmp.c: Include zerosize-ptr.h.
(main): Use a zero-size object pointer instead of NULL.
* tests/test-memmem.c: Include zerosize-ptr.h.
(main): Use a zero-size object pointer instead of NULL.
* tests/test-memrchr.c: Include zerosize-ptr.h.
(main): Use a zero-size object pointer instead of NULL.
* modules/memchr-tests (Files): Add tests/zerosize-ptr.h,
m4/mmap-anon.m4.
(Depends-on): Add getpagesize.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect.
* modules/memchr2-tests (Files): Add tests/zerosize-ptr.h,
m4/mmap-anon.m4.
(Depends-on): Add getpagesize.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect.
* modules/memcmp-tests (Files): Add tests/zerosize-ptr.h,
m4/mmap-anon.m4.
(Depends-on): Add getpagesize.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect.
* modules/memmem-tests (Files): Add tests/zerosize-ptr.h,
m4/mmap-anon.m4.
(Depends-on): Add getpagesize.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect.
* modules/memrchr-tests (Files): Add tests/zerosize-ptr.h,
m4/mmap-anon.m4.
(Depends-on): Add getpagesize.
(configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect.
2009-05-12 Bruno Haible <bruno@clisp.org>
Tests for module 'alignof'.
* modules/alignof-tests: New file.
* tests/test-alignof.c: New file.
2009-05-12 Bruno Haible <bruno@clisp.org>
Fix alignof macro.
* lib/alignof.h (alignof): Remove special cases for AIX and HP-UX
vendor compilers that are always correct.
2009-05-12 Bruno Haible <bruno@clisp.org>
Make the MAP_ANONYMOUS detection work on HP-UX 11.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Check whether mmap exists, but
not whether its fully works.
2009-05-12 Bruno Haible <bruno@clisp.org>
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Add comments.
2009-05-12 Jim Meyering <meyering@redhat.com>
* top/maint.mk: Adjust backslash alignment.
2009-05-11 Simon Josefsson <simon@josefsson.org>
* top/maint.mk: Make $(srcdir)/build-aux configurable.
2009-05-11 Eric Blake <ebb9@byu.net>
argp: avoid undefined behavior
* lib/argp-fmtstream.c (weak_alias): Pass correct types to ctype
macros.
2009-05-08 Simon Josefsson <simon@josefsson.org>
* tests/test-vc-list-files-git.sh: Do git config of user.email and
user.name to prevent git commit from complaining.
2009-05-10 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir, copy-file): Change
sed_rewrite_old_files, sed_rewrite_new_files, sed_rewrite_files so that
it rewrites every file name only once.
Reported by Simon Josefsson. Helped by Ralf Wildenhues.
2009-05-08 Bruno Haible <bruno@clisp.org>
* lib/sys_socket.in.h (_SS_PADSIZE): Use a conditional expression
instead of 'max'.
2009-05-08 Simon Josefsson <simon@josefsson.org>
* m4/sys_socket_h.m4: Test for ws2tcpip.h earlier, needed for
sockaddr_storage test.
2009-05-07 Simon Josefsson <simon@josefsson.org>
* modules/sys_socket (Makefile.am): Substitute
HAVE_STRUCT_SOCKADDR_STORAGE. Depend on alignof.
* m4/sys_socket_h.m4: Check for sockaddr_storage.
* lib/sys_socket.in.h (sockaddr_storage): Define when needed.
* tests/test-sys_socket.c: Check sockaddr_storage.
2009-05-08 Bruno Haible <bruno@clisp.org>
New module 'alignof'.
* lib/alignof.h: New file.
* modules/alignof: New file.
2009-05-04 David Bartley <dtbartle@csclub.uwaterloo.ca>
Bruno Haible <bruno@clisp.org>
Fix test-file-has-acl on FreeBSD.
* tests/test-file-has-acl.sh: Also test a directory. On FreeBSD, the
mask is implicitly added.
* tests/test-file-has-acl.c: Include <signal.h>.
(main): Terminate the test after 5 seconds.
* modules/acl-tests (configure.ac): Check for alarm function.
2009-05-04 Bruno Haible <bruno@clisp.org>
Exploit new semantics of AC_DEFUN_ONCE available since 2009-01-26.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Remove outdated comment.
* modules/errno (configure.ac): Drop AC_REQUIRE.
* m4/multiarch.m4 (gl_MULTIARCH): Remove outdated comment.
* modules/multiarch (configure.ac): Drop AC_REQUIRE.
2009-05-04 Simon Josefsson <simon@josefsson.org>
* modules/glob-tests: New module.
* tests/test-glob.c: Add.
2009-05-04 Simon Josefsson <simon@josefsson.org>
* modules/fnmatch-tests: New module.
* tests/test-fnmatch.c: Add.
2009-05-04 Eric Blake <ebb9@byu.net>
maint: make the new no-submodule-changes rule VPATH-safe
* top/maint.mk (no-submodule-changes): Don't assume a srcdir build.
2009-05-04 David Bartley <dtbartle@csclub.uwaterloo.ca>
Bruno Haible <bruno@clisp.org>
acl: Fix infinite loop on FreeBSD.
* lib/acl_entries.c (acl_entries) [Linux, FreeBSD]: Fix interpretation
of return value from acl_get_entry.
* lib/file-has-acl.c (acl_access_nontrivial) [Linux, FreeBSD]:
Likewise.
2009-05-03 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h (acl_entries): Clarify return value.
* lib/acl_entries.c (acl_entries): Likewise.
2009-05-04 David Bartley <dtbartle@csclub.uwaterloo.ca>
Bug fix in acl module.
* lib/set-mode-acl.c: Use correct struct with ACL_SETACL.
2009-05-03 Bruno Haible <bruno@clisp.org>
Create gperf-generated file in the source dir, not in the build dir.
* modules/iconv_open (iconv_open-aix.h, iconv_open-hpux.h,
iconv_open-irix.h, iconv_open-osf.h): Create file in the source tree.
* modules/unicase/locale-language (unicase/locale-languages.h):
Likewise.
* modules/unicase/special-casing (unicase/special-casing-table.h):
Likewise.
* modules/unictype/property-byname (unictype/pr_byname.h): Likewise.
* modules/unictype/scripts (unictype/scripts_byname.h): Likewise.
* modules/uninorm/composition (uninorm/composition-table.h): Likewise.
Reported by Ralf Wildenhues.
2009-05-03 Bruno Haible <bruno@clisp.org>
* modules/fnmatch (Description, configure.ac): Taken from
fnmatch-posix.
* modules/fnmatch-posix: Turn into a symbolic reference to the
'fnmatch' module, and deprecate.
* doc/posix-functions/fnmatch.texi: Mention the fnmatch module.
2009-05-03 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF,
gl_PREREQ_VASNPRINTF_LONG_DOUBLE): Define through AC_DEFUN_ONCE.
Reported by Ralf Wildenhues.
2009-05-04 Simon Josefsson <simon@josefsson.org>
* m4/fnmatch.m4: Fix fnmatch re-define.
2009-04-27 David Bartley <dtbartle@csclub.uwaterloo.ca>
priv-set: new module and tests; adapt write-any-file
* lib/priv-set.c: New file.
* lib/priv-set.h: New file.
* lib/unlinkdir.c: Make cannot_unlink_dir thread-safe.
* lib/write-any-file.c: Simplify by using priv-set module.
* m4/priv-set.m4: New file.
* modules/priv-set: New file.
* modules/unlinkdir: Add dependency on priv-set module.
* modules/write-any-file: Likewise.
Tests for module 'priv-set'.
* modules/priv-set-tests: New file.
* tests/test-priv-set.c: New file.
2009-05-03 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
* lib/propername.c (proper_name_utf8): Ignore no-op translations;
use the converted UTF-8 variant of the name instead.
2009-05-03 Jim Meyering <meyering@redhat.com>
tests: tighten some getdate tests
* tests/test-getdate.c (main): Tighten tests: require equality,
not just greater than. Set TZ envvar to UTC0.
2009-05-03 Giuseppe Scrivano <gscrivano@gnu.org>
getdate: correctly interpret "next monday" when run on a Monday
* lib/getdate.y (get_date): Correct the calculation of tm_mday so
that e.g., "next tues" (when run on a tuesday) results in a date
that is one week in the future, and not today's date.
I.e., add a week when the wday is the same as the current one.
Reported by Tom Broadhurst in http://savannah.gnu.org/bugs/?25406,
and earlier by Martin Bernreuther and Jan Minář.
* tests/test-getdate.c (main): Check that "next DAY" is always in
the future and that "last DAY" is always in the past.
2009-05-02 Jim Meyering <meyering@redhat.com>
build: ensure that a release build fails when a submodule is unclean
* top/maint.mk (no-submodule-changes): New rule.
(alpha beta major): Depend on it.
2009-05-02 Bruno Haible <bruno@clisp.org>
Remove incompatibility between modules fnmatch-posix and fnmatch-gnu.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX, gl_FUNC_FNMATCH_GNU): Use a
shell variable gl_fnmatch_required to detect which variant is
requested.
(_AC_FUNC_FNMATCH_IF, _AC_LIBOBJ_FNMATCH): Remove macros. Inlined into
gl_FUNC_FNMATCH_POSIX.
* gnulib-tool (func_create_testdir, func_create_megatestdir): Don't
exclude fnmatch-posix.
2009-05-02 Bruno Haible <bruno@clisp.org>
Relicense mbsrtowcs and strnlen1 under LGPLv2+.
* modules/mbsrtowcs (License): Change to LGPLv2+.
* modules/strnlen1 (License): Likewise.
Reported by Simon Josefsson.
2009-05-02 Bruno Haible <bruno@clisp.org>
* m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Say "guessing no" instead of
"cross".
(gl_FUNC_FNMATCH_POSIX, gl_FUNC_FNMATCH_GNU): Update. Don't assume that
gnulib-tool was called with option --source-base=lib.
2009-05-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Use automake *-local hooks without commands, for extensibility.
* modules/localcharset (Makefile.am): Rename install-exec-local
rule to install-exec-localcharset, and make it a prerequisite of
install-exec-local. Likewise, rename the uninstall-local rule to
uninstall-localcharset, and make it a prerequisite of the former.
2009-05-01 Bruno Haible <bruno@clisp.org>
* lib/wchar.in.h (wcsnrtombs): Define if REPLACE_WCSNRTOMBS is 1.
* m4/wcsnrtombs.m4 (gl_FUNC_WCSRTOMBS): Invoke gl_MBSTATE_T_BROKEN, and
set REPLACE_WCSNRTOMBS if mbstate_t must be replaced.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSNRTOMBS.
* modules/wchar (Makefile.am): Substitute REPLACE_WCSNRTOMBS.
* modules/wcsnrtombs (Files): Add m4/mbrtowc.m4, m4/locale-ja.m4,
m4/locale-zh.m4, m4/codeset.m4.
* m4/wcsrtombs.m4 (gl_FUNC_WCSNRTOMBS): Invoke gl_MBSTATE_T_BROKEN, and
set REPLACE_WCSRTOMBS if mbstate_t must be replaced.
* modules/wcsrtombs (Files): Add m4/mbrtowc.m4, m4/locale-ja.m4,
m4/locale-zh.m4.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Invoke gl_MBSTATE_T_BROKEN, and set
REPLACE_WCRTOMB if mbstate_t must be replaced.
* modules/wcrtomb (Files): Add m4/mbrtowc.m4.
Reported by Jens Rehsack <rehsack@googlemail.com> via Eric Blake.
2009-05-01 Bruno Haible <bruno@clisp.org>
Avoid compiler warnings when redefining macros defined by <libintl.h>.
* lib/gettext.h [!ENABLE_NLS] (gettext, dgettext, dcgettext, ngettext,
dngettext, dcngettext, textdomain, bindtextdomain,
bind_textdomain_codeset): Undefine before redefining.
2009-04-30 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2009-04-25.
* lib/math.in.h (gl_signbitf_OPTIMIZED_MACRO,
gl_signbitd_OPTIMIZED_MACRO, gl_signbitl_OPTIMIZED_MACRO): New macros.
* lib/signbitf.c (gl_signbitd): Undefine if gl_signbitf_OPTIMIZED_MACRO
is defined.
* lib/signbitd.c (gl_signbitd): Undefine if gl_signbitd_OPTIMIZED_MACRO
is defined.
* lib/signbitl.c (gl_signbitd): Undefine if gl_signbitl_OPTIMIZED_MACRO
is defined.
Reported by Elbert_Pol <elbert.pol@gmail.com>.
2009-04-28 Bruno Haible <bruno@clisp.org>
Comment tweaks.
* lib/unistr.h (u*_cmp2): Clarify what memcmp2 is.
* lib/uninorm.h (u*_normxfrm): Fix description of return value.
* lib/unicase.h (u*_casexfrm): Likewise.
Reported by Paolo Bonzini.
2009-04-28 Bruno Haible <bruno@clisp.org>
Fix a compilation error.
* lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state): Fix initializer.
* lib/wcsrtombs-state.c (_gl_wcsrtombs_state): Likewise.
Reported by Jim Meyering.
2009-04-27 Bruno Haible <bruno@clisp.org>
New module 'libunistring'.
* modules/libunistring: New file.
* m4/libunistring.m4: New file.
* MODULES.html.sh (Unicode string functions): Add it.
2009-04-27 Eric Blake <ebb9@byu.net>
maint.mk: allow package-specific header to provide <config.h>
* top/maint.mk (sc_require_config_h): New variable.
(sc_require_config_h, sc_require_config_h_first): Use it.
2009-04-27 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (sc_avoid_if_before_free): Except
useless-if-before-free script.
2009-04-27 Eric Blake <ebb9@byu.net>
maintainer-makefile: depend on all required helper scripts
* modules/maintainer-makefile (Depends-on): Add vc-list-files and
useless-if-before-free.
* top/maint.mk (VC_LIST, sc_avoid_if_before_free): Use local
version, rather than assuming gnulib checkout is available.
Reported by Simen Josefsson.
2009-04-26 Bruno Haible <bruno@clisp.org>
Make the lib vs. lib64 recognition work on openSUSE 11 with "gcc -m32".
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Ignore paths that end in
"../" or "..".
2009-04-26 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Accept a fifth argument.
* m4/libsigsegv.m4 (gl_LIBSIGSEGV): Simplify by using
AC_LIB_HAVE_LINKFLAGS.
2009-04-26 Bruno Haible <bruno@clisp.org>
Simplify calling convention of u*_conv_from_encoding.
* lib/uniconv.h (u8_conv_from_encoding, u16_conv_from_encoding,
u32_conv_from_encoding): Expect a resultbuf argument and return the
result directly as a pointer.
* lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Likewise.
* lib/uniconv/u-conv-from-enc.h (FUNC): Likewise.
* lib/uniconv/u-strconv-from-enc.h (FUNC): Update.
* lib/unicase/ulc-casecmp.c (ulc_u8_casefold): Update.
* lib/unicase/ulc-casexfrm.c (ulc_casexfrm): Update.
* lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks):
Update.
* lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Update.
* lib/uniwbrk/ulc-wordbreaks.c (ulc_wordbreaks): Update.
* lib/vasnprintf.c (VASNPRINTF): Update.
* tests/uniconv/test-u8-conv-from-enc.c (main): Update.
* tests/uniconv/test-u16-conv-from-enc.c (main): Update.
* tests/uniconv/test-u32-conv-from-enc.c (main): Update.
* NEWS: Mention the change.
2009-04-26 Bruno Haible <bruno@clisp.org>
Simplify calling convention of u*_conv_to_encoding.
* lib/uniconv.h (u8_conv_to_encoding, u16_conv_to_encoding,
u32_conv_to_encoding): Expect a resultbuf argument and return the
result directly as a pointer.
* lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise.
* lib/uniconv/u-conv-to-enc.h (FUNC): Likewise. Preserve errno while
freeing scaled_offsets if mem_iconveha failed.
* lib/unicase/u-casexfrm.h (FUNC): Update.
* lib/uninorm/u-normxfrm.h (FUNC): Update.
* lib/vasnprintf.c (VASNPRINTF): Update.
* tests/uniconv/test-u8-conv-to-enc.c (main): Update.
* tests/uniconv/test-u16-conv-to-enc.c (main): Update.
* tests/uniconv/test-u32-conv-to-enc.c (main): Update.
* NEWS: Mention the change.
2009-04-26 Bruno Haible <bruno@clisp.org>
Avoid test failures on AIX and OSF/1.
* lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Avoid calling
malloc(0).
* lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise.
* lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks):
Likewise.
* lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Likewise.
* lib/uniwbrk/ulc-wordbreaks.c (ulc_wordbreaks): Likewise.
* lib/uniconv/u-conv-to-enc.h (FUNC): Likewise. Fix memory leak.
* lib/unistr/u-cpy-alloc.h (FUNC): Call malloc(1) instead of malloc(0).
* doc/posix-functions/malloc.texi: Document the portability problem
related to malloc(0).
2009-04-26 Bruno Haible <bruno@clisp.org>
* modules/unistr/u8-cpy-alloc (Depends-on): Add malloc-posix.
* modules/unistr/u16-cpy-alloc (Depends-on): Likewise.
* modules/unistr/u32-cpy-alloc (Depends-on): Likewise.
2009-04-25 Bruno Haible <bruno@clisp.org>
Avoid link error when creating a namespace clean library.
* lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Don't define
as macro with arguments if already defined as an alias.
* lib/signbitf.c (gl_signbitf): Don't undefine.
* lib/signbitd.c (gl_signbitd): Don't undefine.
* lib/signbitl.c (gl_signbitl): Don't undefine.
2009-04-25 Jim Meyering <meyering@redhat.com>
vc-list-files: fix another quoting bug
* build-aux/vc-list-files: Avoid sed backslash expansion
of pathological directory names.
2009-04-25 Eric Blake <ebb9@byu.net>
vc-list-files: fix shell quoting error
* build-aux/vc-list-files: Protect against $ in $dir. Normalize
timestamp.
2009-04-25 Jim Meyering <meyering@redhat.com>
vc-list-files: restore lost functionality with subdir argument
* build-aux/vc-list-files: When given a non-"." sub-directory
argument, substitute the $dir/ prefix back onto each resulting name.
Otherwise, coreutils' root_tests check would fail.
2009-04-24 Eric Blake <ebb9@byu.net>
vc-list-files: ignore git symlinks
* build-aux/vc-list-files (.git): Use ls-tree and a filter, rather
than ls-files, to ignore git symlinks.
maint.mk: import improvements from m4
* top/maint.mk (VC-tag): Use signing key from cfg.mk.
(move_if_change): Delete unused macro.
(news-date-check, vc-diff-check): Support VPATH builds.
(announcement): Likewise. Split --bootstrap-tools list...
(boostrap-tools): ...into separate list, which can be overridden
in cfg.mk.
(sc_avoid_if_before_free): Point to $(gnulib_dir), rather than
requiring dependency on useless-if-before-free module.
(VC_LIST, VC_LIST_EXCEPT): Likewise for vc-list-files module.
Support VPATH builds.
2009-04-24 Jim Meyering <meyering@redhat.com>
maint.mk: remove coreutils-specific rules and variables
* top/maint.mk (bin, taint-distcheck, coreutils-path-check, t): Remove.
(fake_home, install-transform-check, my-instcheck, pfx, TMPDIR): Remove.
(t_prefix, t_taint, tp, warn_cflags, write_loser, my-distcheck): Remove.
maint.mk: remove obsolete rule
* top/maint.mk (rel-check): Remove rule.
(WGET, WGETFLAGS): Remove now-unused variables.
2009-04-24 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (makefile-check): Renamed to sc_makefile_check for
consistency.
* modules/vc-list-files-tests (TESTS_ENVIRONMENT): Use
'$(PATH_SEPARATOR)' instead of ':'.
2009-04-24 Simon Josefsson <simon@josefsson.org>
* lib/getopt1.c (main): Use 'const' for static array.
2009-04-24 Simon Josefsson <simon@josefsson.org>
* top/maint.mk: Sync with coreutils.
* NEWS: Explain incompatibilities.
2009-04-22 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
Fix cross-compilation results.
* m4/btowc.m4 (gl_FUNC_BTOWC): Use no-op statement, rather than empty
statement, as third argument of AC_TRY_RUN.
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK,
gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL):
Likewise.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
* m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL):
Likewise.
* m4/wctob.m4 (gl_FUNC_WCTOB): Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. Update for AIX 4.3.
* doc/posix-functions/wcrtomb.texi: Mention the bug on AIX 4.3.
2009-04-20 Bruno Haible <bruno@clisp.org>
Avoid test failure on mingw.
* tests/uniwidth/test-uc_width2.sh: Convert newlines in output.
2009-04-20 Bruno Haible <bruno@clisp.org>
Avoid compilation error on mingw.
* modules/localename-tests (Depends-on): Add locale.
2009-04-19 Bruno Haible <bruno@clisp.org>
Support for building a shared library on Windows platforms.
* tests/uninorm/test-nfc.c (n): Don't define if WOE32DLL.
(main): Test the presence of UNINORM_NFC here.
* tests/uninorm/test-nfd.c (n): Don't define if WOE32DLL.
(main): Test the presence of UNINORM_NFD here.
* tests/uninorm/test-nfkc.c (n): Don't define if WOE32DLL.
(main): Test the presence of UNINORM_NFKC here.
* tests/uninorm/test-nfkd.c (n): Don't define if WOE32DLL.
(main): Test the presence of UNINORM_NFKD here.
2009-04-19 Bruno Haible <bruno@clisp.org>
Avoid a compiler warning.
* tests/uninorm/test-u32-normalize-big.c (read_normalization_test_file):
Change type of variable 'sequence'.
2009-04-19 Bruno Haible <bruno@clisp.org>
* modules/configmake (Makefile.am): When the contents of configmake.h
does not change, arrange to preserve its modification time.
2009-04-17 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (PO_DOMAIN): New variable, allows overriding of
gettext domain.
2009-04-16 Jim Meyering <meyering@redhat.com>
useless-if-before-free: improve conversion code
* build-aux/useless-if-before-free: Adjust code-in-comment to match
"...!= 0" as well as "...!= NULL". emacs has one of the former.
2009-04-14 Bruno Haible <bruno@clisp.org>
* modules/fcntl (Depends-on): Add extensions.
* m4/fcntl_h.m4 (gl_FCNTL_H): Add a comment.
2009-04-12 Ben Pfaff <blp@gnu.org>
Make fcntl module detect O_NOATIME, O_NOFOLLOW on GNU/Linux.
* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_USE_SYSTEM_EXTENSIONS.
2009-03-20 Ben Pfaff <blp@gnu.org>
Make rename replace existing destinations on Windows.
* m4/rename.m4: Add test for Mingw.
* lib/rename.c: Add rename replacement that uses MoveFileEx with
MOVEFILE_REPLACE_EXISTING to replace existing destination files.
* doc/posix-functions/rename.texi: Document.
2009-04-10 Bruno Haible <bruno@clisp.org>
New include file "iconveh.h".
* lib/iconveh.h: New file, extracted from lib/striconveh.h.
* lib/striconveh.h: Include it.
(enum iconv_ilseq_handler): Remove definition.
* lib/striconveha.h: Include <stddef.h> and iconveh.h instead of
striconveh.h.
* lib/striconveha.c: Include striconveh.h.
* lib/uniconv.h: Include iconveh.h instead of striconveh.h.
* modules/striconveh (Files): Add lib/iconveh.h.
* modules/uniconv/base (Files): Add lib/iconveh.h. Remove
lib/striconveh.h.
2009-04-10 Bruno Haible <bruno@clisp.org>
* lib/uniconv.h: Update comment.
2009-04-10 Bruno Haible <bruno@clisp.org>
* lib/unistr/u8-mbtouc-aux.c: Inside libunistring, define the function
always.
* lib/unistr/u8-mbtouc-unsafe-aux.c: Likewise.
* lib/unistr/u16-mbtouc-aux.c: Likewise.
* lib/unistr/u16-mbtouc-unsafe-aux.c: Likewise.
* lib/unistr/u8-mbtouc.c: Inside libunistring, include
"unistring-notinline.h", so that the function gets defined always.
* lib/unistr/u8-mbtouc-unsafe.c: Likewise.
* lib/unistr/u8-uctomb.c: Likewise.
* lib/unistr/u16-mbtouc.c: Likewise.
* lib/unistr/u16-mbtouc-unsafe.c: Likewise.
* lib/unistr/u16-uctomb.c: Likewise.
* lib/unistr/u32-mbtouc.c: Likewise.
* lib/unistr/u32-mbtouc-unsafe.c: Likewise.
* lib/unistr/u32-uctomb.c: Likewise.
2009-04-10 Bruno Haible <bruno@clisp.org>
Mark 'utime' obsolete.
* modules/utime (Status, Notice): New sections.
Suggested by Jim Meyering.
Fix cross-compile guess for utime test.
* m4/utime.m4 (AC_FUNC_UTIME_NULL): Add definition from newest unstable
autoconf.
* doc/posix-functions/utime.texi: Give more precisions.
Reported by Jan <ipif@ymail.com>.
2009-04-09 Kamil Dudka <kdudka@redhat.com>
filevercmp: correct today's change
* lib/filevercmp.c: Also handle coreutils' test inputs.
* tests/test-filevercmp.c: Add inputs from one of coreutils' test scripts.
Fix regression in 'filevercmp' module. Thanks Sven Joachim
for reporting it.
* lib/filevercmp.c: Special handle for "", "." and "..".
* tests/test-filevercmp.c: Enlarge the set suite.
2009-04-07 Jim Meyering <meyering@redhat.com>
useless-if-before-free: show how to remove braced useless free, too
* build-aux/useless-if-before-free: still only in a comment, though.
2009-04-07 Reuben Thomas <rrt@sc3d.org>
maint.mk: import changes to syntax-check macros from coreutils
* top/maint.mk (_prohibit_regexp, _header_without_use): Define.
Use them in the relevant macros.
2009-04-06 Bruno Haible <bruno@clisp.org>
Fix unportable use of bit-fields.
* lib/unicase/special-casing.h (struct special_casing_rule): Change the
bit-field type from 'int' to 'signed int'. Otherwise Solaris cc,
AIX xlc, and OSF/1 cc interpret it as 'unsigned int'.
2009-04-06 Bruno Haible <bruno@clisp.org>
Avoid test failures on AIX and OSF/1.
* tests/unicase/test-u8-casefold.c (check): Account for the possibility
that malloc(0) = NULL.
* tests/unicase/test-u8-tolower.c (check): Likewise.
* tests/unicase/test-u8-totitle.c (check): Likewise.
* tests/unicase/test-u8-toupper.c (check): Likewise.
* tests/unicase/test-u16-casefold.c (check): Likewise.
* tests/unicase/test-u16-tolower.c (check): Likewise.
* tests/unicase/test-u16-totitle.c (check): Likewise.
* tests/unicase/test-u16-toupper.c (check): Likewise.
* tests/unicase/test-u32-casefold.c (check): Likewise.
* tests/unicase/test-u32-tolower.c (check): Likewise.
* tests/unicase/test-u32-totitle.c (check): Likewise.
* tests/unicase/test-u32-toupper.c (check): Likewise.
* tests/uninorm/test-u8-nfc.c (check): Likewise.
* tests/uninorm/test-u8-nfd.c (check): Likewise.
* tests/uninorm/test-u8-nfkc.c (check): Likewise.
* tests/uninorm/test-u8-nfkd.c (check): Likewise.
* tests/uninorm/test-u16-nfc.c (check): Likewise.
* tests/uninorm/test-u16-nfd.c (check): Likewise.
* tests/uninorm/test-u16-nfkc.c (check): Likewise.
* tests/uninorm/test-u16-nfkd.c (check): Likewise.
* tests/uninorm/test-u32-nfc.c (check): Likewise.
* tests/uninorm/test-u32-nfd.c (check): Likewise.
* tests/uninorm/test-u32-nfkc.c (check): Likewise.
* tests/uninorm/test-u32-nfkd.c (check): Likewise.
2009-04-05 Bruno Haible <bruno@clisp.org>
Work around an autoconf limitation.
* gnulib-tool (func_emit_lib_Makefile_am): Omit the "Reproduce by"
comment line if it would be longer than 3 KB.
2009-04-05 Bruno Haible <bruno@clisp.org>
Avoid test failure with libiconv-1.13.
* tests/test-striconveh.c (main): Allow result of libiconv 1.13 as one
of the expected test results.
2009-04-05 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Don't add the library to
noinst_LTLIBRARIES if the Makefile.am in the same directory specifies
that it should be installed.
2009-04-05 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New option --copy-file.
(func_usage): Document it.
(func_dest_tmpfilename): Moved out of func_import.
(func_add_file, func_update_file): New functions, extracted from
func_import.
(func_import): Update.
2009-04-05 Karl Berry <karl@gnu.org>
* README: prominently mention gnulib-tool.
Rearrange sections so getting the code is near the top.
2009-04-05 Bruno Haible <bruno@clisp.org>
* lib/unicase.h: Mention u*_cmp2.
* lib/unicase/u-casecmp.h (FUNC): Invoke U_CMP2 instead of U_CMP.
* lib/unicase/u8-casecmp.c: Use u8_cmp2 instead of u8_cmp.
* lib/unicase/ulc-casecmp.c: Likewise.
* lib/unicase/u16-casecmp.c: Use u16_cmp2 instead of u16_cmp.
* lib/unicase/u32-casecmp.c: Use u32_cmp2 instead of u32_cmp.
* modules/unicase/u8-casecmp (Depends-on): Add unistr/u8-cmp2, remove
unistr/u8-cmp.
* modules/unicase/ulc-casecmp (Depends-on): Likewise.
* modules/unicase/u16-casecmp (Depends-on): Add unistr/u16-cmp2, remove
unistr/u16-cmp.
* modules/unicase/u32-casecmp (Depends-on): Add unistr/u32-cmp2, remove
unistr/u32-cmp.
* lib/uninorm.h: Mention u*_cmp2.
* lib/uninorm/u-normcmp.h (FUNC): Invoke U_CMP2 instead of U_CMP.
* lib/uninorm/u8-normcmp.c: Use u8_cmp2 instead of u8_cmp.
* lib/uninorm/u16-normcmp.c: Use u16_cmp2 instead of u16_cmp.
* lib/uninorm/u32-normcmp.c: Use u32_cmp2 instead of u32_cmp.
* modules/uninorm/u8-normcmp (Depends-on): Add unistr/u8-cmp2, remove
unistr/u8-cmp.
* modules/uninorm/u16-normcmp (Depends-on): Add unistr/u16-cmp2, remove
unistr/u16-cmp.
* modules/uninorm/u32-normcmp (Depends-on): Add unistr/u32-cmp2, remove
unistr/u32-cmp.
New module 'unistr/u32-cmp2'.
* lib/unistr/u32-cmp2.c: New file.
* modules/unistr/u32-cmp2: New file.
New module 'unistr/u16-cmp2'.
* lib/unistr/u16-cmp2.c: New file.
* modules/unistr/u16-cmp2: New file.
New module 'unistr/u8-cmp2'.
* lib/unistr.h (u8_cmp2, u16_cmp2, u32_cmp2): New declarations.
* lib/unistr/u8-cmp2.c: New file.
* lib/unistr/u-cmp2.h: New file.
* modules/unistr/u8-cmp2: New file.
2009-04-05 Bruno Haible <bruno@clisp.org>
* lib/unictype.h (uc_property_is_valid): New macro.
* tests/unictype/test-pr_byname.c (main): Use it.
* lib/unistr.h: Doc fixes.
* lib/uniconv.h: Doc fixes.
* lib/unictype.h: Doc fixes.
2009-04-03 Paul Eggert <eggert@cs.ucla.edu>
Port coreutils 7.2 to Solaris 8.
* modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h.
* m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl,
for Solaris 8. This is a bit of a hack, as it means it's the
caller's responsibility to add -lnsl if needed, but most likely it
won't be needed since only getaddrinfo uses this and getaddrinfo
isn't needed on Solaris 8.
* modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting
problem to Solaris 8 encountered with coreutils 7.2, which
resulted in a message "fnmatch.c:292: warning: passing argument 4
of 'mbsrtowcs' from incompatible pointer type". Also, add mbsinit
at the suggestion of Bruno Haible, since fnmatch uses mbsinit.
2009-04-03 Simon Josefsson <simon@josefsson.org>
* m4/ld-version-script.m4: Add FIXME comment.
2009-04-02 Simon Josefsson <simon@josefsson.org>
* doc/ld-output-def.texi: Use DLL_VERSION instead of confusing
SOVERSION variable.
2009-04-02 Bruno Haible <bruno@clisp.org>
* Makefile (info, html, dvi, pdf): Combine the rules.
Suggested by Jim Meyering.
2009-04-01 Bruno Haible <bruno@clisp.org>
* Makefile (info, html, dvi, pdf): New targets.
Reported by Reuben Thomas <rrt@sc3d.org>.
2009-04-01 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Invoking gnulib-tool): Document how gnulib-tool
can be put into PATH.
Reported by Reuben Thomas <rrt@sc3d.org>. Suggested by Karl Berry.
2009-04-01 Bruno Haible <bruno@clisp.org>
* doc/lib-symbol-visibility.texi: Follow texinfo style conventions.
2009-04-01 Bruno Haible <bruno@clisp.org>
Rename module 'visibility'.
* modules/lib-symbol-visibility: Renamed from modules/visibility.
* doc/lib-symbol-visibility.texi: Renamed from visibility.texi.
* doc/gnulib.texi: Update.
* MODULES.html.sh (Misc): Update.
* NEWS: Mention the change.
2009-04-01 Simon Josefsson <simon@josefsson.org>
* modules/lib-msvc-compat: New module. Thanks to Bruno Haible
<bruno@clisp.org>, Ralf Wildenhues <Ralf.Wildenhues@gmx.de>, and
Eric Blake <ebb9@byu.net> for review.
* MODULES.html.sh: Add lib-msvc-compat.
* doc/gnulib.texi: Link to new section.
* m4/ld-output-def.m4: New file.
* doc/ld-output-def.texi: New file.
2009-04-01 Simon Josefsson <simon@josefsson.org>
Rename ld-version-script to lib-symbol-versions. Suggested by
Bruno Haible <bruno@clisp.org>.
* modules/ld-version-script: Renamed to lib-symbol-versions.
* doc/ld-version-script.texi: Fix module name.
* MODULES.html.sh: Add lib-symbol-versions.
2009-03-31 Simon Josefsson <simon@josefsson.org>
* modules/u64-tests: New file.
* tests/test-u64.c: New file.
2009-03-04 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh: Mention u64.
* modules/u64: New module.
* modules/crypto/sha512: Depend on u64 module instead of providing
u64.h.
2009-03-27 Eric Blake <ebb9@byu.net>
test-strerror: make debugging EAI_SYSTEM easier
* modules/getaddrinfo-tests (Depends-on): Add strerror.
* test-getaddrinfo.c (simple) [ENABLE_DEBUGGING]: Report errno if
failure was EAI_SYSTEM.
2009-03-25 Bruno Haible <bruno@clisp.org>
Fix a problem with --enable-relocatable on Solaris 7.
* modules/relocatable-prog-wrapper (Depends-on): Add environ. Needed
since 2008-02-24.
2009-03-25 Eric Blake <ebb9@byu.net>
test-sockets: avoid gcc warning
* tests/test-sockets.c (main): Silence compiler warning.
2009-03-25 Paul Eggert <eggert@cs.ucla.edu>
New modules nproc, pthread, contributed by Glen Lenker.
* MODULES.html.sh: Add pthread, nproc.
* lib/nproc.c: New file.
* lib/nproc.h: New file.
* lib/pthread.in.h: New file.
* m4/pthread.m4: New file.
* modules/nproc: New file.
* modules/pthread: New file.
2009-03-24 Simon Josefsson <simon@josefsson.org>
* modules/unicase/locale-language-tests (test_locale_language_LDADD):
New variable.
2009-03-24 Kamil Dudka <kdudka@redhat.com>
filevercmp: handle simple~ and numbered.~3~ backup suffixes
* lib/filevercmp.c: Handle simple~ and numbered.~3~ backup suffixes.
* tests/test-filevercmp.c: Add tests for backup suffixes.
2009-03-24 Simon Josefsson <simon@josefsson.org>
* modules/stdlib (Depends-on): Add stdint, needed when defining
struct random_data on, for example, HP-UX 10.20. Reported by
Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2009-03-24 Simon Josefsson <simon@josefsson.org>
* lib/readline.c (readline): Call fflush on stdout after printing
prompt.
2009-03-20 Bruno Haible <bruno@clisp.org>
Remove dependency from 'close' module to -lws2_32 on native Windows.
* lib/close-hook.h: New file.
* lib/close-hook.c: New file.
* lib/close.c: Include close-hook.h. Don't include <sys/socket.h>,
w32sock.h.
(_gl_close_fd_maybe_socket): Remove function.
(rpl_close): Invoke execute_all_close_hooks instead of
_gl_close_fd_maybe_socket.
* lib/sockets.c: Include close-hook.h, w32sock.h.
(close_fd_maybe_socket): New function, essentially from lib/close.c.
(close_sockets_hook): New variable.
(gl_sockets_startup): Register close_fd_maybe_socket as a hook.
(gl_sockets_cleanup): Unregister it.
* lib/unistd.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET): Remove macro.
* m4/close.m4 (gl_REPLACE_CLOSE): Undo 2009-02-05 change.
* modules/close-hook: New file.
* modules/close (Files): Remove lib/w32sock.h.
(Depends-on): Add close-hook.
(Link): Remove section.
* modules/sockets (Files): Add lib/w32sock.h.
(Depends-on): Add close-hook.
* modules/sys_socket (configure.ac): Remove gl_MODULE_INDICATOR
invocation.
* NEWS: Mention that LIB_CLOSE is gone.
2009-03-23 Eric Blake <ebb9@byu.net>
signal-tests: test previous patch
* tests/test-signal.c: New file.
* modules/signal-tests: Likewise.
signal.h: always support 'volatile sig_atomic_t'
* m4/signal_h.m4 (gl_SIGNAL_H): Check for AIX limitation.
(gl_SIGNAL_H_DEFAULTS): Add a default.
* modules/signal (Makefile.am): Substitute if needed.
* lib/signal.in.h (sig_atomic_t): Redefine if needed, so that
users can blindly add volatile.
* doc/posix-headers/signal.texi (signal.h): Document it.
Reported by Matthew Woehlke.
2009-03-23 Jim Meyering <meyering@redhat.com>
pathmax: PATH_MAX: use pathconf only when available
* lib/pathmax.h (PATH_MAX): Select the pathconf-using definition
only if HAVE_PATHCONF is defined. Patch by Sylvain Beucler.
* m4/pathmax.m4 (gl_PATHMAX): Check for pathconf.
This avoids a link failure in a PSP cross-compilation environment
described in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/17048
* lib/vasnprintf.c (divide): Fix typo in comment.
2009-03-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_filter_filelist): Fix comment.
2009-03-20 Bruno Haible <bruno@clisp.org>
Make sockets.h self-contained.
* lib/sockets.c: Include sockets.h first.
* lib/sockets.h: Include <sys/socket.h> before using the SOCKET type.
2009-03-19 Eric Blake <ebb9@byu.net>
doc: mention more functions added in cygwin 1.7.0
* doc/posix-functions/log2.texi: Mention recent cygwin 1.7.0
addition.
* doc/posix-functions/log2f.texi: Likewise.
2009-03-19 Jim Meyering <meyering@redhat.com>
fsusage: avoid syntax error due to statement-before-declaration
* lib/fsusage.c (get_fs_usage): Put warning-avoidance statement
after all declarations. Reported by Matthew Woehlke in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/16231
2009-03-18 Eric Blake <ebb9@byu.net>
build-aux/compile: sync from automake
* build-aux/compile: New file, from automake.
* config/srclist.txt: Mention build-aux/compile.
2009-03-17 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c: Fix typo in comment.
Reported by Reuben Thomas <rrt@sc3d.org>.
2009-03-17 Reuben Thomas <rrt@sc3d.org>
* m4/regex.m4: update and improve help for
--without-included-regex.
2009-03-17 Simon Josefsson <simon@josefsson.org>
* modules/isnanl-nolibm-tests (Files): Add tests/nan.h to avoid
failure on missing include files.
2009-03-17 Eric Blake <ebb9@byu.net>
doc: mention more functions added in cygwin 1.7.0
* doc/posix-functions/fwprintf.texi: Mention recent cygwin 1.7.0
addition.
* doc/posix-functions/fwscanf.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/swscanf.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vfwscanf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vswscanf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/vwscanf.texi: Likewise.
* doc/posix-functions/wcscasecmp.texi: Likewise.
* doc/posix-functions/wcsdup.texi: Likewise.
* doc/posix-functions/wcsftime.texi: Likewise.
* doc/posix-functions/wcsncasecmp.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/wscanf.texi: Likewise.
* doc/glibc-functions/gethostbyname2.texi: Likewise.
2009-03-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
maint.mk: really add $(AM_MAKEFLAGS)
* top/maint.mk (init-coverage, build-coverage): `$(AM_MAKEFLAGS)'
was inadvertently omitted in the last commit.
Spotted by Bruno Haible.
maint.mk: use $(MAKE) $(AM_MAKEFLAGS) not make
* top/maint.mk (init-coverage, build-coverage): Use `$(MAKE)
$(AM_MAKEFLAGS)' rather than plain `make'.
gnulib-tool: execute $MAKE not make
* gnulib-tool: Default $MAKE to 'make'.
(func_create_testdir, func_create_megatestdir): Use $MAKE rather
than make. Initialize $MAKE in the do-autobuild script.
gnulib-tool: use $MAKE not make in generated files
* gnulib-tool (func_create_megatestdir): Use $MAKE rather than
make, in generated files. Initialize $MAKE in the do-autobuild
script.
* top/GNUmakefile (_have-git-version-gen): Fix typo.
GNUmakefile: disable parallelism only for multiple, recursive targets
* top/GNUmakefile (ALL_RECURSIVE_TARGETS): New macro; allow user
additions in the Makefile.
(AM_RECURSIVE_TARGETS): New macro, override only if not provided
by Automake.
(.NOTPARALLEL): Only disable parallel builds if multiple targets
are listed on the command line and at least one of them is
listed in $(ALL_RECURSIVE_TARGETS).
2009-03-14 Bruno Haible <bruno@clisp.org>
* modules/unilbrk/u8-possible-linebreaks (Depends-on): Replace
utf8-ucs4-unsafe with unistr/u8-mbtouc-unsafe.
* modules/unilbrk/u8-width-linebreaks (Depends-on): Likewise.
* modules/unilbrk/u16-possible-linebreaks (Depends-on): Replace
utf16-ucs4-unsafe with unistr/u16-mbtouc-unsafe.
* modules/unilbrk/u16-width-linebreaks (Depends-on): Likewise.
* modules/unistr/u8-chr (Depends-on): Replace ucs4-utf8 with
unistr/u8-uctomb.
* modules/unistr/u8-strchr (Depends-on): Likewise.
* modules/unistr/u8-strrchr (Depends-on): Likewise.
* modules/unistr/u16-chr (Depends-on): Replace ucs4-utf16 with
unistr/u16-uctomb.
* modules/unistr/u16-strchr (Depends-on): Likewise.
* modules/unistr/u16-strrchr (Depends-on): Likewise.
2009-03-12 Bruno Haible <bruno@clisp.org>
Work around select() bug on Interix 3.5.
* lib/sys_select.in.h (select): Also replace if REPLACE_SELECT is 1.
* lib/select.c (rpl_select): Add an implementation for Unix platforms.
* m4/select.m4: New file.
* m4/sys_select_h.m4 (gl_SYS_SELECT_H_DEFAULTS): Initialize REPLACE_SELECT.
* modules/sys_select (Makefile.am): Substitute REPLACE_SELECT.
* modules/select (Files): Add m4/select.m4.
(configure.ac): Move conditional to m4/select.m4. Invoke gl_FUNC_SELECT.
* modules/nanosleep (Depends-on): Add select.
* modules/poll (Depends-on): Likewise.
* doc/posix-functions/select.texi: Mention the Interix bug.
Reported by Markus Duft <mduft@gentoo.org>.
* lib/select.c: Renamed from lib/winsock-select.c.
* modules/select (Files): Add lib/select.c, remove
lib/winsock-select.c.
(configure.ac): Update.
2009-03-12 Jim Meyering <meyering@redhat.com>
avoid gcc warnings about unused macro definitions
* lib/readtokens.c (STREQ): Remove unused definition.
* lib/xmalloc.c (SIZE_MAX): Likewise.
* lib/openat-die.c (N_): Likewise.
* lib/mountlist.c (SIZE_MAX): Remove definition.
Instead, include <stdint.h>.
* lib/readutmp.c: Likewise.
* modules/readutmp (Depends-on): Add stdint.
* modules/mountlist (Depends-on): Add stdint.
* lib/userspec.c (ISDIGIT): Move definition into #if block where used.
2009-03-10 Bruno Haible <bruno@clisp.org>
Tests for module 'mbmemcasecoll'.
* modules/mbmemcasecoll-tests: New file.
* tests/test-mbmemcasecoll1.sh: New file.
* tests/test-mbmemcasecoll2.sh: New file.
* tests/test-mbmemcasecoll3.sh: New file.
* tests/test-mbmemcasecoll.c: New file.
New module 'mbmemcasecoll'.
* lib/mbmemcasecoll.h: New file.
* lib/mbmemcasecoll.c: New file.
* modules/mbmemcasecoll: New file.
* tests/test-mbmemcasecmp.h: New file, extracted from
tests/test-mbmemcasecmp.c.
* tests/test-mbmemcasecmp.c: Include test-mbmemcasecmp.h.
(test_ascii, test_iso_8859_1, test_utf_8): Remove functions.
(main): Update.
* modules/mbmemcasecmp-tests (Files): Add tests/test-mbmemcasecmp.h.
2009-03-09 Bruno Haible <bruno@clisp.org>
Tests for module 'mbmemcasecmp'.
* modules/mbmemcasecmp-tests: New file.
* tests/test-mbmemcasecmp1.sh: New file.
* tests/test-mbmemcasecmp2.sh: New file.
* tests/test-mbmemcasecmp3.sh: New file.
* tests/test-mbmemcasecmp.c: New file.
New module 'mbmemcasecmp'.
* lib/mbmemcasecmp.h: New file.
* lib/mbmemcasecmp.c: New file.
* modules/mbmemcasecmp: New file.
2009-03-09 Bruno Haible <bruno@clisp.org>
Tests for module 'unicase/ulc-casecoll'.
* modules/unicase/ulc-casecoll-tests: New file.
* tests/unicase/test-ulc-casecoll1.sh: New file.
* tests/unicase/test-ulc-casecoll2.sh: New file.
* tests/unicase/test-ulc-casecoll.c: New file.
New module 'unicase/ulc-casecoll'.
* lib/unicase.h (ulc_casecoll): New declaration.
* lib/unicase/ulc-casecoll.c: New file.
* modules/unicase/ulc-casecoll: New file.
New module 'unicase/ulc-casexfrm'.
* lib/unicase.h (ulc_casexfrm): New declaration.
* lib/unicase/ulc-casexfrm.c: New file.
* modules/unicase/ulc-casexfrm: New file.
2009-03-09 Bruno Haible <bruno@clisp.org>
Followup to 2008-12-22 commit: Remove unnecessary AC_FUNC_MBRTOWC
invocations.
* m4/mbscasecmp.m4: Remove file.
* modules/mbscasecmp (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSCASECMP invocation.
* m4/mbscasestr.m4: Remove file.
* modules/mbscasestr (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSCASESTR invocation.
* m4/mbschr.m4: Remove file.
* modules/mbschr (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSCHR invocation.
* m4/mbscspn.m4: Remove file.
* modules/mbscspn (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSCSPN invocation.
* m4/mbslen.m4: Remove file.
* modules/mbslen (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSLEN invocation.
* m4/mbsncasecmp.m4: Remove file.
* modules/mbsncasecmp (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSNCASECMP invocation.
* m4/mbsnlen.m4: Remove file.
* modules/mbsnlen (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSNLEN invocation.
* m4/mbspbrk.m4: Remove file.
* modules/mbspbrk (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSPBRK invocation.
* m4/mbspcasecmp.m4: Remove file.
* modules/mbspcasecmp (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSPCASECMP invocation.
* m4/mbsrchr.m4: Remove file.
* modules/mbsrchr (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSRCHR invocation.
* m4/mbssep.m4: Remove file.
* modules/mbssep (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSSEP invocation.
* m4/mbsspn.m4: Remove file.
* modules/mbsspn (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSSPN invocation.
* m4/mbsstr.m4: Remove file.
* modules/mbsstr (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSSTR invocation.
* m4/mbstok_r.m4: Remove file.
* modules/mbstok_r (Files): Remove it and m4/mbrtowc.m4
(configure.ac): Remove gl_FUNC_MBSTOK_R invocation.
* m4/mbswidth.m4 (gl_MBSWIDTH): Remove AC_FUNC_MBRTOWC invocation.
* m4/quotearg.m4 (gl_QUOTEARG): Remove mbsinit test and
AC_TYPE_MBSTATE_T, AC_FUNC_MBRTOWC invocations.
* modules/trim (configure.ac): Remove AC_FUNC_MBRTOWC invocation.
2009-03-08 Bruno Haible <bruno@clisp.org>
Tests for module 'unicase/ulc-casecmp'.
* modules/unicase/ulc-casecmp-tests: New file.
* tests/unicase/test-ulc-casecmp1.sh: New file.
* tests/unicase/test-ulc-casecmp2.sh: New file.
* tests/unicase/test-ulc-casecmp.c: New file.
New module 'unicase/ulc-casecmp'.
* lib/unicase.h (ulc_casecmp): New declaration.
* lib/unicase/ulc-casecmp.c: New file.
* lib/unicase/u-casecmp.h (FUNC): Change argument types to
'const SRC_UNIT *'.
* lib/unicase/u8-casecmp.c (SRC_UNIT): Define like UNIT.
* lib/unicase/u16-casecmp.c (SRC_UNIT): Likewise.
* lib/unicase/u32-casecmp.c (SRC_UNIT): Likewise.
* modules/unicase/ulc-casecmp: New file.
Tests for module 'unicase/u32-is-cased'.
* modules/unicase/u32-is-cased-tests: New file.
* tests/unicase/test-u32-is-cased.c: New file.
Tests for module 'unicase/u16-is-cased'.
* modules/unicase/u16-is-cased-tests: New file.
* tests/unicase/test-u16-is-cased.c: New file.
Tests for module 'unicase/u8-is-cased'.
* modules/unicase/u8-is-cased-tests: New file.
* tests/unicase/test-u8-is-cased.c: New file.
* tests/unicase/test-is-cased.h: New file.
New module 'unicase/u32-is-cased'.
* lib/unicase/u32-is-cased.c: New file.
* modules/unicase/u32-is-cased: New file.
New module 'unicase/u16-is-cased'.
* lib/unicase/u16-is-cased.c: New file.
* modules/unicase/u16-is-cased: New file.
New module 'unicase/u8-is-cased'.
* lib/unicase/u8-is-cased.c: New file.
* lib/unicase/u-is-cased.h: New file.
* modules/unicase/u8-is-cased: New file.
Tests for module 'unicase/u32-is-casefolded'.
* modules/unicase/u32-is-casefolded-tests: New file.
* tests/unicase/test-u32-is-casefolded.c: New file.
Tests for module 'unicase/u16-is-casefolded'.
* modules/unicase/u16-is-casefolded-tests: New file.
* tests/unicase/test-u16-is-casefolded.c: New file.
Tests for module 'unicase/u8-is-casefolded'.
* modules/unicase/u8-is-casefolded-tests: New file.
* tests/unicase/test-u8-is-casefolded.c: New file.
* tests/unicase/test-is-casefolded.h: New file.
New module 'unicase/u32-is-casefolded'.
* lib/unicase/u32-is-casefolded.c: New file.
* modules/unicase/u32-is-casefolded: New file.
New module 'unicase/u16-is-casefolded'.
* lib/unicase/u16-is-casefolded.c: New file.
* modules/unicase/u16-is-casefolded: New file.
New module 'unicase/u8-is-casefolded'.
* lib/unicase/u8-is-casefolded.c: New file.
* modules/unicase/u8-is-casefolded: New file.
Tests for module 'unicase/u32-is-titlecase'.
* modules/unicase/u32-is-titlecase-tests: New file.
* tests/unicase/test-u32-is-titlecase.c: New file.
Tests for module 'unicase/u16-is-titlecase'.
* modules/unicase/u16-is-titlecase-tests: New file.
* tests/unicase/test-u16-is-titlecase.c: New file.
Tests for module 'unicase/u8-is-titlecase'.
* modules/unicase/u8-is-titlecase-tests: New file.
* tests/unicase/test-u8-is-titlecase.c: New file.
* tests/unicase/test-is-titlecase.h: New file.
New module 'unicase/u32-is-titlecase'.
* lib/unicase/u32-is-titlecase.c: New file.
* modules/unicase/u32-is-titlecase: New file.
New module 'unicase/u16-is-titlecase'.
* lib/unicase/u16-is-titlecase.c: New file.
* modules/unicase/u16-is-titlecase: New file.
New module 'unicase/u8-is-titlecase'.
* lib/unicase/u8-is-titlecase.c: New file.
* modules/unicase/u8-is-titlecase: New file.
Tests for module 'unicase/u32-is-lowercase'.
* modules/unicase/u32-is-lowercase-tests: New file.
* tests/unicase/test-u32-is-lowercase.c: New file.
Tests for module 'unicase/u16-is-lowercase'.
* modules/unicase/u16-is-lowercase-tests: New file.
* tests/unicase/test-u16-is-lowercase.c: New file.
Tests for module 'unicase/u8-is-lowercase'.
* modules/unicase/u8-is-lowercase-tests: New file.
* tests/unicase/test-u8-is-lowercase.c: New file.
* tests/unicase/test-is-lowercase.h: New file.
New module 'unicase/u32-is-lowercase'.
* lib/unicase/u32-is-lowercase.c: New file.
* modules/unicase/u32-is-lowercase: New file.
New module 'unicase/u16-is-lowercase'.
* lib/unicase/u16-is-lowercase.c: New file.
* modules/unicase/u16-is-lowercase: New file.
New module 'unicase/u8-is-lowercase'.
* lib/unicase/u8-is-lowercase.c: New file.
* modules/unicase/u8-is-lowercase: New file.
Tests for module 'unicase/u32-is-uppercase'.
* modules/unicase/u32-is-uppercase-tests: New file.
* tests/unicase/test-u32-is-uppercase.c: New file.
Tests for module 'unicase/u16-is-uppercase'.
* modules/unicase/u16-is-uppercase-tests: New file.
* tests/unicase/test-u16-is-uppercase.c: New file.
Tests for module 'unicase/u8-is-uppercase'.
* modules/unicase/u8-is-uppercase-tests: New file.
* tests/unicase/test-u8-is-uppercase.c: New file.
* tests/unicase/test-is-uppercase.h: New file.
New module 'unicase/u32-is-uppercase'.
* lib/unicase/u32-is-uppercase.c: New file.
* modules/unicase/u32-is-uppercase: New file.
New module 'unicase/u16-is-uppercase'.
* lib/unicase/u16-is-uppercase.c: New file.
* modules/unicase/u16-is-uppercase: New file.
New module 'unicase/u8-is-uppercase'.
* lib/unicase/u8-is-uppercase.c: New file.
* modules/unicase/u8-is-uppercase: New file.
New module 'unicase/u32-is-invariant'.
* lib/unicase/u32-is-invariant.c: New file.
* modules/unicase/u32-is-invariant: New file.
New module 'unicase/u16-is-invariant'.
* lib/unicase/u16-is-invariant.c: New file.
* modules/unicase/u16-is-invariant: New file.
New module 'unicase/u8-is-invariant'.
* lib/unicase/u8-is-invariant.c: New file.
* lib/unicase/invariant.h: New file.
* lib/unicase/u-is-invariant.h: New file.
* modules/unicase/u8-is-invariant: New file.
Tests for module 'unicase/u32-casecoll'.
* modules/unicase/u32-casecoll-tests: New file.
* tests/unicase/test-u32-casecoll.c: New file.
Tests for module 'unicase/u16-casecoll'.
* modules/unicase/u16-casecoll-tests: New file.
* tests/unicase/test-u16-casecoll.c: New file.
Tests for module 'unicase/u8-casecoll'.
* modules/unicase/u8-casecoll-tests: New file.
* tests/unicase/test-u8-casecoll.c: New file.
New module 'unicase/u32-casecoll'.
* lib/unicase/u32-casecoll.c: New file.
* modules/unicase/u32-casecoll: New file.
New module 'unicase/u16-casecoll'.
* lib/unicase/u16-casecoll.c: New file.
* modules/unicase/u16-casecoll: New file.
New module 'unicase/u8-casecoll'.
* lib/unicase/u8-casecoll.c: New file.
* lib/unicase/u-casecoll.h: New file.
* modules/unicase/u8-casecoll: New file.
New module 'unicase/u32-casexfrm'.
* lib/unicase/u32-casexfrm.c: New file.
* modules/unicase/u32-casexfrm: New file.
New module 'unicase/u16-casexfrm'.
* lib/unicase/u16-casexfrm.c: New file.
* modules/unicase/u16-casexfrm: New file.
New module 'unicase/u8-casexfrm'.
* lib/unicase/u8-casexfrm.c: New file.
* lib/unicase/u-casexfrm.h: New file.
* modules/unicase/u8-casexfrm: New file.
Tests for module 'unicase/u32-casecmp'.
* modules/unicase/u32-casecmp-tests: New file.
* tests/unicase/test-u32-casecmp.c: New file.
Tests for module 'unicase/u16-casecmp'.
* modules/unicase/u16-casecmp-tests: New file.
* tests/unicase/test-u16-casecmp.c: New file.
Tests for module 'unicase/u8-casecmp'.
* modules/unicase/u8-casecmp-tests: New file.
* tests/unicase/test-u8-casecmp.c: New file.
* tests/unicase/test-casecmp.h: New file.
New module 'unicase/u32-casecmp'.
* lib/unicase/u32-casecmp.c: New file.
* modules/unicase/u32-casecmp: New file.
New module 'unicase/u16-casecmp'.
* lib/unicase/u16-casecmp.c: New file.
* modules/unicase/u16-casecmp: New file.
New module 'unicase/u8-casecmp'.
* lib/unicase/u8-casecmp.c: New file.
* lib/unicase/u-casecmp.h: New file.
* modules/unicase/u8-casecmp: New file.
Tests for module 'unicase/u32-casefold'.
* modules/unicase/u32-casefold-tests: New file.
* tests/unicase/test-u32-casefold.c: New file.
Tests for module 'unicase/u16-casefold'.
* modules/unicase/u16-casefold-tests: New file.
* tests/unicase/test-u16-casefold.c: New file.
Tests for module 'unicase/u8-casefold'.
* modules/unicase/u8-casefold-tests: New file.
* tests/unicase/test-u8-casefold.c: New file.
New module 'unicase/u32-casefold'.
* lib/unicase/u32-casefold.c: New file.
* modules/unicase/u32-casefold: New file.
New module 'unicase/u16-casefold'.
* lib/unicase/u16-casefold.c: New file.
* modules/unicase/u16-casefold: New file.
New module 'unicase/u8-casefold'.
* lib/unicase/u8-casefold.c: New file.
* lib/unicase/u-casefold.h: New file.
* modules/unicase/u8-casefold: New file.
New module 'unicase/tocasefold'.
* lib/unicase/casefold.h: New file.
* lib/unicase/tocasefold.c: New file.
* lib/unicase/tocasefold.h: New file, generated by gen-uni-tables.c.
* modules/unicase/tocasefold: New file.
Tests for module 'unicase/u32-totitle'.
* modules/unicase/u32-totitle-tests: New file.
* tests/unicase/test-u32-totitle.c: New file.
Tests for module 'unicase/u16-totitle'.
* modules/unicase/u16-totitle-tests: New file.
* tests/unicase/test-u16-totitle.c: New file.
Tests for module 'unicase/u8-totitle'.
* modules/unicase/u8-totitle-tests: New file.
* tests/unicase/test-u8-totitle.c: New file.
New module 'unicase/u32-totitle'.
* lib/unicase/u32-totitle.c: New file.
* modules/unicase/u32-totitle: New file.
New module 'unicase/u16-totitle'.
* lib/unicase/u16-totitle.c: New file.
* modules/unicase/u16-totitle: New file.
New module 'unicase/u8-totitle'.
* lib/unicase/u8-totitle.c: New file.
* lib/unicase/u-totitle.h: New file.
* modules/unicase/u8-totitle: New file.
Tests for module 'unicase/u32-tolower'.
* modules/unicase/u32-tolower-tests: New file.
* tests/unicase/test-u32-tolower.c: New file.
Tests for module 'unicase/u16-tolower'.
* modules/unicase/u16-tolower-tests: New file.
* tests/unicase/test-u16-tolower.c: New file.
Tests for module 'unicase/u8-tolower'.
* modules/unicase/u8-tolower-tests: New file.
* tests/unicase/test-u8-tolower.c: New file.
New module 'unicase/u32-tolower'.
* lib/unicase/u32-tolower.c: New file.
* modules/unicase/u32-tolower: New file.
New module 'unicase/u16-tolower'.
* lib/unicase/u16-tolower.c: New file.
* modules/unicase/u16-tolower: New file.
New module 'unicase/u8-tolower'.
* lib/unicase/u8-tolower.c: New file.
* modules/unicase/u8-tolower: New file.
Tests for module 'unicase/u32-toupper'.
* modules/unicase/u32-toupper-tests: New file.
* tests/unicase/test-u32-toupper.c: New file.
Tests for module 'unicase/u16-toupper'.
* modules/unicase/u16-toupper-tests: New file.
* tests/unicase/test-u16-toupper.c: New file.
Tests for module 'unicase/u8-toupper'.
* modules/unicase/u8-toupper-tests: New file.
* tests/unicase/test-u8-toupper.c: New file.
New module 'unicase/u32-toupper'.
* lib/unicase/u32-toupper.c: New file.
* modules/unicase/u32-toupper: New file.
New module 'unicase/u16-toupper'.
* lib/unicase/u16-toupper.c: New file.
* modules/unicase/u16-toupper: New file.
New module 'unicase/u8-toupper'.
* lib/unicase/u8-toupper.c: New file.
* modules/unicase/u8-toupper: New file.
New module 'unicase/u32-casemap'.
* lib/unicase/u32-casemap.c: New file.
* modules/unicase/u32-casemap: New file.
New module 'unicase/u16-casemap'.
* lib/unicase/u16-casemap.c: New file.
* modules/unicase/u16-casemap: New file.
New module 'unicase/u8-casemap'.
* lib/unicase/unicasemap.h: New file.
* lib/unicase/u8-casemap.c: New file.
* lib/unicase/u-casemap.h: New file.
* modules/unicase/u8-casemap: New file.
New module 'unicase/special-casing'.
* lib/unicase/special-casing.h: New file.
* lib/unicase/special-casing.c: New file.
* lib/unicase/special-casing-table.gperf: New file, generated by
gen-uni-tables.c.
* modules/unicase/special-casing: New file.
Tests for module 'unicase/locale-language'.
* modules/unicase/locale-language-tests: New file.
* tests/unicase/test-locale-language.sh: New file.
* tests/unicase/test-locale-language.c: New file.
New module 'unicase/locale-language'.
* lib/unicase/locale-language.c: New file.
* lib/unicase/locale-languages.gperf: New file.
* modules/unicase/locale-language: New file.
Generate more tables for case conversion and case folding.
* lib/gen-uni-tables.c (SCC_*): New enum items.
(struct special_casing_rule): New type.
(casing_rules, num_casing_rules, allocated_casing_rules): New
variables.
(add_casing_rule, fill_casing_rules): New functions.
(struct casefold_rule): New type.
(casefolding_rules, num_casefolding_rules,
allocated_casefolding_rules): New variables.
(fill_casefolding_rules): New function.
(unicode_casefold): New variable.
(to_casefold, redistribute_casefolding_rules, compare_casing_rules,
sort_casing_rules, output_casing_rules): New functions.
(main): Accept to more arguments: SpecialCasing.txt and
CaseFolding.txt. Invoke fill_casing_rules, fill_casefolding_rules,
redistribute_casefolding_rules, sort_casing_rules, output_casing_rules.
Output mapping for casefolding.
* lib/unicase.h: Include stdbool.h, uninorm.h.
(u8_toupper, u16_toupper, u32_toupper, u8_tolower, u16_tolower,
u32_tolower, u8_totitle, u16_totitle, u32_totitle): Add nf argument.
(u8_casefold, u16_casefold, u32_casefold): Add iso639_language and nf
arguments.
(u8_casecmp, u16_casecmp, u32_casecmp): Add iso639_language, nf,
resultp arguments.
(u8_casexfrm, u16_casexfrm, u32_casexfrm): New declarations.
(u8_casecoll, u16_casecoll, u32_casecoll): Add iso639_language, nf,
resultp arguments.
(u8_is_uppercase, u16_is_uppercase, u32_is_uppercase, u8_is_lowercase,
u16_is_lowercase, u32_is_lowercase, u8_is_titlecase, u16_is_titlecase,
u32_is_titlecase, u8_is_casefolded, u16_is_casefolded,
u32_is_casefolded, u8_is_cased, u16_is_cased, u32_is_cased): New
declarations.
* modules/unicase/base (Depends-on): Add uninorm/base, stdbool.
2009-03-08 Bruno Haible <bruno@clisp.org>
* lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll,
u16_normcoll, u32_normcoll): Rename argument 'result' to 'resultp'.
* lib/uninorm/u-normcmp.h (FUNC): Likewise.
* lib/uninorm/u-normcoll.h (FUNC): Likewise.
2009-03-07 Bruno Haible <bruno@clisp.org>
Adjust u*_normcmp, u*_normcoll API.
* lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll,
u16_normcoll, u32_normcoll): Change failure conventions.
* lib/uninorm/u-normcmp.h (FUNC): Upon failure, store the error code in
errno and return -1.
* lib/uninorm/u-normcoll.h (FUNC): Likewise.
2009-03-07 Bruno Haible <bruno@clisp.org>
Tests for module 'uninorm/u32-normcoll'.
* modules/uninorm/u32-normcoll-tests: New file.
* tests/uninorm/test-u32-normcoll.c: New file.
Tests for module 'uninorm/u16-normcoll'.
* modules/uninorm/u16-normcoll-tests: New file.
* tests/uninorm/test-u16-normcoll.c: New file.
Tests for module 'uninorm/u8-normcoll'.
* modules/uninorm/u8-normcoll-tests: New file.
* tests/uninorm/test-u8-normcoll.c: New file.
2009-03-07 Bruno Haible <bruno@clisp.org>
* tests/uninorm/test-u32-normcmp.h: New file, extracted from
tests/uninorm/test-u32-normcmp.c.
* tests/uninorm/test-u32-normcmp.c: Include it.
(test_nonascii): New function, extracted from main. Add some more
tests.
(main): Invoke test_ascii and test_nonascii.
* modules/uninorm/u32-normcmp-tests (Files): Add
tests/uninorm/test-u32-normcmp.h.
(Depends-on): Remove uninorm/u32-normcmp.
* tests/uninorm/test-u16-normcmp.h: New file, extracted from
tests/uninorm/test-u16-normcmp.c.
* tests/uninorm/test-u16-normcmp.c: Include it.
(test_nonascii): New function, extracted from main. Add some more
tests.
(main): Invoke test_ascii and test_nonascii.
* modules/uninorm/u16-normcmp-tests (Files): Add
tests/uninorm/test-u16-normcmp.h.
(Depends-on): Remove uninorm/u16-normcmp.
* tests/uninorm/test-u8-normcmp.h: New file, extracted from
tests/uninorm/test-u8-normcmp.c.
* tests/uninorm/test-u8-normcmp.c: Include it.
(test_nonascii): New function, extracted from main. Add some more
tests.
(main): Invoke test_ascii and test_nonascii.
* modules/uninorm/u8-normcmp-tests (Files): Add
tests/uninorm/test-u8-normcmp.h.
(Depends-on): Remove uninorm/u8-normcmp.
2009-03-07 Bruno Haible <bruno@clisp.org>
New module 'uninorm/u32-normcoll'.
* lib/uninorm/u32-normcoll.c: New file.
* modules/uninorm/u32-normcoll: New file.
New module 'uninorm/u16-normcoll'.
* lib/uninorm/u16-normcoll.c: New file.
* modules/uninorm/u16-normcoll: New file.
New module 'uninorm/u8-normcoll'.
* lib/uninorm.h (u8_normcoll, u16_normcoll, u32_normcoll): New
declarations.
* lib/uninorm/u8-normcoll.c: New file.
* lib/uninorm/u-normcoll.h: New file.
* modules/uninorm/u8-normcoll: New file.
New module 'uninorm/u32-normxfrm'.
* lib/uninorm/u32-normxfrm.c: New file.
* modules/uninorm/u32-normxfrm: New file.
New module 'uninorm/u16-normxfrm'.
* lib/uninorm/u16-normxfrm.c: New file.
* modules/uninorm/u16-normxfrm: New file.
New module 'uninorm/u8-normxfrm'.
* lib/uninorm.h (u8_normxfrm, u16_normxfrm, u32_normxfrm): New
declarations.
* lib/uninorm/u8-normxfrm.c: New file.
* lib/uninorm/u-normxfrm.h: New file.
* modules/uninorm/u8-normxfrm: New file.
2009-03-07 Bruno Haible <bruno@clisp.org>
* modules/uninorm/u8-normcmp (Depends-on): Add uninorm/base.
* modules/uninorm/u16-normcmp (Depends-on): Likewise.
* modules/uninorm/u32-normcmp (Depends-on): Likewise.
2009-03-07 Bruno Haible <bruno@clisp.org>
New module 'memxfrm'.
* lib/memxfrm.h: New file.
* lib/memxfrm.c: New file.
* modules/memxfrm: New file.
2009-03-07 Bruno Haible <bruno@clisp.org>
New module 'memcmp2'.
* lib/memcmp2.h: New file.
* lib/memcmp2.c: New file.
* modules/memcmp2: New file.
2009-03-07 Bruno Haible <bruno@clisp.org>
Tests for module 'uninorm/decomposing-form'.
* modules/uninorm/decomposing-form-tests: New file.
* tests/uninorm/test-decomposing-form.c: New file.
New module 'uninorm/decomposing-form'.
* lib/uninorm.h (uninorm_decomposing_form): New declaration.
* lib/uninorm/normalize-internal.h (struct unicode_normalization_form):
Add 'decomposing_variant' field.
* lib/uninorm/decomposing-form.c: New file.
* lib/uninorm/nfc.c (uninorm_nfc): Update.
* lib/uninorm/nfd.c (uninorm_nfd): Update.
* lib/uninorm/nfkc.c (uninorm_nfkc): Update.
* lib/uninorm/nfkd.c (uninorm_nfkd): Update.
* modules/uninorm/decomposing-form: New file.
* modules/uninorm/nfc (Depends-on): Add uninorm/nfd.
* modules/uninorm/nfkc (Depends-on): Add uninorm/nfkd.
2009-03-07 Bruno Haible <bruno@clisp.org>
* lib/uninorm/u-normcmp.h (FUNC): Use stack=allocated buffers for small
strings.
2009-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'uninorm/u32-normcmp'.
* tests/uninorm/test-u32-normcmp.c: New file.
* modules/uninorm/u32-normcmp-tests: New file.
Tests for module 'uninorm/u16-normcmp'.
* tests/uninorm/test-u16-normcmp.c: New file.
* modules/uninorm/u16-normcmp-tests: New file.
Tests for module 'uninorm/u8-normcmp'.
* tests/uninorm/test-u8-normcmp.c: New file.
* modules/uninorm/u8-normcmp-tests: New file.
New module 'uninorm/u32-normcmp'.
* lib/uninorm/u32-normcmp.c: New file.
* modules/uninorm/u32-normcmp: New file.
New module 'uninorm/u16-normcmp'.
* lib/uninorm/u16-normcmp.c: New file.
* modules/uninorm/u16-normcmp: New file.
New module 'uninorm/u8-normcmp'.
* lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp): New
declarations.
* lib/uninorm/u8-normcmp.c: New file.
* lib/uninorm/u-normcmp.h: New file.
* modules/uninorm/u8-normcmp: New file.
2009-03-06 Bruno Haible <bruno@clisp.org>
* lib/w32spawn.h (dup_noinherit): Add cast, to avoid gcc warning.
Reported by Eric Blake.
2009-03-06 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
* lib/spawni.c (__spawni) [WIN32_NATIVE]: Define as a stub.
* modules/posix_spawn-tests (configure.ac): Define POSIX_SPAWN_PORTED
condition.
(Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false.
* modules/posix_spawnp-tests (configure.ac): Define POSIX_SPAWN_PORTED
condition.
(Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false.
2009-03-06 Eric Blake <ebb9@byu.net>
* lib/execute.c (execute) [WIN32_NATIVE]: Cast arguments of spawnvpe,
to avoid compiler warnings.
* lib/pipe.c (create_pipe) [WIN32_NATIVE]: Likewise.
2009-03-05 Bruno Haible <bruno@clisp.org>
* tests/test-ftell.c (main): Disable test beyond end of file on
FreeMiNT.
Patch by Alan Hourihane <alanh@fairlite.co.uk>.
2009-03-05 Kamil Dudka <kdudka@redhat.com>
* lib/filevercmp.c: Move hidden files up in ordering.
* tests/test-filevercmp.c: Add tests for hidden files.
2009-03-04 Bruno Haible <bruno@clisp.org>
* modules/visibility (Makefile.am): Augment AM_CFLAGS.
* gnulib-tool (func_emit_lib_Makefile_am): Emit initialization of
AM_CFLAGS.
Reported by Simon Josefsson.
2009-03-03 Bruno Haible <bruno@clisp.org>
* doc/visibility.texi: Recommend to use HAVE_VISIBILITY as a C macro.
Reported by Simon Josefsson.
* doc/ld-version-script.texi: Update node reference.
2009-03-03 Bruno Haible <bruno@clisp.org>
* modules/visibility (License): Change to 'unlimited'.
Suggested by Simon Josefsson.
2009-03-03 Jim Meyering <meyering@redhat.com>
unlinkdir: cannot_unlink_dir may modify process state
* lib/unlinkdir.c (cannot_unlink_dir): Add a comment warning that
it's neither thread-safe nor appropriate for use in a library.
2009-03-03 Eric Blake <ebb9@byu.net>
test-closein: silence test under Darwin
* tests/test-closein.sh: Ignore stderr from cat, since we don't
care if it dies from EPIPE or EBADF.
2009-03-03 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Include visibility.texi and ld-version-script.texi
earlier.
* doc/visibility.texi: Fix @node and @section.
2009-03-03 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi: Link to sections for ld version script and
visibility.
* doc/visibility.texi: Add @node and @section.
* modules/ld-version-script: New module.
* m4/ld-version-script.m4: New file.
* doc/ld-version-script.texi: New file.
2009-03-02 David Lutterkort <lutter@redhat.com>
* lib/safe-alloc.h (__GNUC_PREREQ): New macro.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-03-02 Bruno Haible <bruno@clisp.org>
* doc/visibility.texi: Mention libtool's -export-symbols option.
2009-03-02 Jim Meyering <meyering@redhat.com>
announce-gen: new option: --no-print-checksums
* build-aux/announce-gen (usage): Describe it.
(print_checksums): Print a newline here, not in the [*] footnote.
(main): Honor it.
2009-03-01 Bruno Haible <bruno@clisp.org>
Use socklen_t in the native Windows replacements prototypes.
* lib/sys_socket.in.h (rpl_getsockopt, rpl_setsockopt): Use socklen_t
instead of 'int'.
* lib/getsockopt.c (rpl_getsockopt): Likewise.
* lib/setsockopt.c (rpl_setsockopt): Likewise.
* modules/getsockopt (Depends-on): Add socklen.
* modules/setsockopt (Depends-on): Add socklen.
2009-03-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (sed): Do alias as "sed --posix" if sed's version is at
least 4.2.
2009-03-01 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
* lib/wait-process.h (wait_subprocess): Describe effect of termsigp on
error messages.
* lib/wait-process.c (wait_subprocess): Omit error message about
deadly signal sent to the child of termsigp != NULL.
2009-03-01 Eric Blake <ebb9@byu.net>
* lib/wait-process.c (wait_subprocess): Remove unnecessary cast.
2009-03-01 Bruno Haible <bruno@clisp.org>
Avoid a gcc warning.
* tests/test-sched.c (b): Make global.
Reported by Eric Blake.
2009-01-19 Martin Lambers <marlam@marlam.de>
Provide POSIX semantics for socket timeout options on W32.
* lib/setsockopt.c: Convert struct timeval to milliseconds on W32.
* lib/getsockopt.c: Convert milliseconds to struct timeval on W32.
* modules/setsockopt: Depend on sys_time module for struct timeval.
* modules/getsockopt: Depend on sys_time module for struct timeval.
2009-03-01 Simon Josefsson <simon@josefsson.org>
* lib/gai_strerror.c (values): Use EAI_INPROGRESS instead of
__USE_GNU, for consistency with netdb.in.h.
Reported by Alan Hourihane <alanh@fairlite.co.uk>.
2009-03-01 Bruno Haible <bruno@clisp.org>
More support for FreeMiNT.
* lib/fseeko.c (rpl_fseeko): Complete last commit.
Reported by Alan Hourihane <alanh@fairlite.co.uk>.
2009-03-01 Bruno Haible <bruno@clisp.org>
More support for FreeMiNT.
* lib/fpurge.c (fpurge): Correct last commit.
Reported by Alan Hourihane <alanh@fairlite.co.uk>.
2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix unportable awk script in vc-list-files.
* build-aux/vc-list-files: In the replacement awk script, use
substr with a second argument of 1, not zero.
Report by Simon Josefsson.
2009-02-28 Bruno Haible <bruno@clisp.org>
More support for FreeMiNT.
* lib/freading.c (freading) [__MINT__]: Use new macros that were added
to FreeMiNT today.
* lib/fwriting.c (fwriting): Likewise.
Based on patch by Alan Hourihane <alanh@fairlite.co.uk>.
2009-02-28 Bruno Haible <bruno@clisp.org>
* tests/test-freadseek.c (main): Disable test beyond end of file on
FreeMiNT.
* tests/test-ftello.c (main): Likewise.
Patch by Alan Hourihane <alanh@fairlite.co.uk>.
2009-02-28 Bruno Haible <bruno@clisp.org>
Add tentative support for FreeMiNT.
* lib/fbufmode.c (fbufmode) [__MINT__]: Add conditional code.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* lib/freadahead.c (freadahead): Likewise, based on code by Alan
Hourihane.
Reported by Alan Hourihane <alanh@fairlite.co.uk>.
2009-02-28 Bruno Haible <bruno@clisp.org>
* lib/wait-process.h (wait_subprocess): Clarify restriction regarding
SIGCHLD.
Reported by Jim Meyering.
2009-02-28 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Separate the two first tests.
Mention the results of these tests on various platforms.
* doc/posix-functions/fprintf.texi: Mention platforms in canonical
order.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/snprintf.texi: Likewise.
* doc/posix-functions/sprintf.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* doc/posix-functions/vsnprintf.texi: Likewise.
* doc/posix-functions/vsprintf.texi: Likewise.
* doc/glibc-functions/obstack_printf.texi: Likewise.
* doc/glibc-functions/obstack_vprintf.texi: Likewise.
2009-02-28 Bruno Haible <bruno@clisp.org>
* build-aux/po/Makefile.in.in: Update from GNU gettext 0.17.
Reported by Loïc Minier <lool@dooz.org>.
2009-02-27 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Make the sed expression used to create the
sed script for updating the .gitignore file POSIX compliant.
Reported by Eric Blake.
2009-02-27 Bruno Haible <bruno@clisp.org>
* gnulib-tool (sed): Don't alias as "sed --posix".
Reported by Eric Blake.
2009-02-27 Bruno Haible <bruno@clisp.org>
Avoid test link errors.
* modules/uninorm/nfc-tests (test_u32_nfc_big_LDADD): New variable.
* modules/uninorm/nfd-tests (test_u32_nfd_big_LDADD): New variable.
* modules/uninorm/nfkc-tests (test_u32_nfkc_big_LDADD): New variable.
* modules/uninorm/nfkd-tests (test_u32_nfkd_big_LDADD): New variable.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-02-27 Bruno Haible <bruno@clisp.org>
Avoid spurious "(cached)" in configure output.
* m4/gnulib-common.m4 (gl_CACHE_VAL_SILENT): New macro.
* m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Use it instead of AC_CACHE_VAL.
* m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise.
* m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise.
* m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Likewise.
* m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise.
* m4/stdarg.m4 (gl_STDARG_H): Likewise.
Reported by Eric Blake.
2009-02-27 Eric Blake <ebb9@byu.net>
printf: fix regression in previous patch
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Fix compilation error.
2009-02-27 Bruno Haible <bruno@clisp.org>
* lib/inttypes.in.h: Test merely whether _LP64 is defined, not its
value.
* lib/stdint.in.h: Likewise.
Suggested by Eric Blake. Reported by Peter Bray <pdb_ml@yahoo.com.au>.
2009-02-27 Eric Blake <ebb9@byu.net>
doc: mention more functions added in cygwin 1.7.0
* doc/posix-functions/mbsnrtowcs.texi: Mention recent cygwin 1.7.0
addition.
* doc/posix-functions/open_wmemstream.texi: Likewise.
* doc/posix-functions/wcsnlen.texi: Likewise.
* doc/posix-functions/wcsnrtombs.texi: Likewise.
* doc/posix-functions/wcstod.texi: Likewise.
* doc/posix-functions/wcstof.texi: Likewise.
* doc/posix-functions/wcstoimax.texi: Likewise.
* doc/posix-functions/wcstok.texi: Likewise.
* doc/posix-functions/wcstoumax.texi: Likewise.
Detect bug in cygwin 1.5.x *printf on 1-character %ls.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Enhance filter.
* doc/posix-functions/fprintf.texi: Update.
* doc/posix-functions/printf.texi: Update.
* doc/posix-functions/snprintf.texi: Update.
* doc/posix-functions/sprintf.texi: Update.
* doc/posix-functions/vfprintf.texi: Update.
* doc/posix-functions/vprintf.texi: Update.
* doc/posix-functions/vsnprintf.texi: Update.
* doc/posix-functions/vsprintf.texi: Update.
* doc/glibc-functions/obstack_printf.texi: Update.
* doc/glibc-functions/obstack_vprintf.texi: Update.
2009-02-26 Eric Blake <ebb9@byu.net>
avoid gcc 3.4.3 bug on long double NaN on Irix 6.5
* tests/nan.h (NaNl): Rewrite as function on Irix, to avoid
compilation bug by using runtime conversion.
* m4/isfinite.m4 (gl_ISFINITE): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL): Likewise.
* modules/ceill-tests (Files): Use nan.h.
* modules/floorl-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* tests/test-ceill.c (main): Use a working NaN.
* tests/test-floorl.c (main): Likewise.
* tests/test-frexpl.c (main): Likewise.
* tests/test-isnan.c (test_long_double): Likewise.
* tests/test-isnanl.h (main): Likewise.
* tests/test-ldexpl.h (main): Likewise.
* tests/test-roundl.h (main): Likewise.
* tests/test-truncl.h (main): Likewise.
See http://lists.gnu.org/r/bug-gnulib/2009-02/msg00190.html.
2009-02-26 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
Work around a *printf bug with %ls on Solaris.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Also test whether, when a
precision is specified, sprintf stops converting the wide string
argument when the number of bytes that have been produced by this
conversion equals or exceeds the precision.
* doc/posix-functions/fprintf.texi: Update.
* doc/posix-functions/printf.texi: Update.
* doc/posix-functions/snprintf.texi: Update.
* doc/posix-functions/sprintf.texi: Update.
* doc/posix-functions/vfprintf.texi: Update.
* doc/posix-functions/vprintf.texi: Update.
* doc/posix-functions/vsnprintf.texi: Update.
* doc/posix-functions/vsprintf.texi: Update.
* doc/glibc-functions/obstack_printf.texi: Update.
* doc/glibc-functions/obstack_vprintf.texi: Update.
2009-02-26 Eric Blake <ebb9@byu.net>
stdlib: favor compiler check of random.h
* m4/stdlib_h.m4 (gl_STDLIB_H): Skip preprocessor check. Needed
to avoid an ObjC random.h installed by Swarm.
2009-02-26 Bruno Haible <bruno@clisp.org>
Work around *printf bug with %g directive and 0.0 on HP-UX 10.20.
* m4/printf.m4 (gl_PRINTF_INFINITE): Also test for %g output of -0.0.
Reported by Gary V. Vaughan <gary@gnu.org>.
2009-02-26 Bruno Haible <bruno@clisp.org>
Fix *printf behaviour regarding the %ls directive.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): New macro.
* lib/vasnprintf.c (local_wcslen, VASNPRINTF): Handle
NEED_PRINTF_DIRECTIVE_LS.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_LS): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_LS and test its result. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_LS.
* m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Likewise.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* doc/posix-functions/fprintf.texi: Update.
* doc/posix-functions/printf.texi: Update.
* doc/posix-functions/snprintf.texi: Update.
* doc/posix-functions/sprintf.texi: Update.
* doc/posix-functions/vfprintf.texi: Update.
* doc/posix-functions/vprintf.texi: Update.
* doc/posix-functions/vsnprintf.texi: Update.
* doc/posix-functions/vsprintf.texi: Update.
* doc/glibc-functions/obstack_printf.texi: Update.
* doc/glibc-functions/obstack_vprintf.texi: Update.
Reported by Eric Blake.
2009-02-25 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4 (gl_MBRTOWC_NUL_RETVAL): Update guess for Solaris 8
with known value.
Reported by Gary V. Vaughan <gary@gnu.org>.
2009-02-25 Bruno Haible <bruno@clisp.org>
Work around mbrtowc bug in zh_CN.GB18030 locale on Solaris 8.
* m4/mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): New macro.
(gl_MBSTATE_T_BROKEN): Invoke it. Replace mbstate_t when it says "no".
* doc/posix-functions/mbrtowc.texi: Document the Solaris 8 bug.
Reported by Gary V. Vaughan <gary@gnu.org>.
2009-02-25 Bruno Haible <bruno@clisp.org>
Work around broken INT8_MAX, UINT8_MAX etc. values on HP-UX 11.23.
* m4/stdint.m4 (gl_STDINT_H): Also check whether the expansions of
INT8_MAX, UINT8_MAX etc. contain casts to elementary types.
* doc/posix-headers/stdint.texi: Mention the HP-UX bug.
Reported by Gary V. Vaughan <gary@gnu.org>.
2009-02-25 Eric Blake <ebb9@byu.net>
tests: skip fseek/ftell tests if ungetc is broken
* m4/ungetc.m4: New file.
* modules/fseek-tests: Split test, so ungetc dependency is
separate from rest of test.
* modules/fseeko-tests: Likewise.
* modules/ftell-tests: Likewise.
* modules/ftello-tests: Likewise.
* tests/test-fseek.c (main): Isolate ungetc dependency.
* tests/test-fseeko.c (main): Likewise.
* tests/test-ftell.c (main): Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-fseek2.sh: New file.
* tests/test-fseeko2.sh: Likewise.
* tests/test-ftell2.sh: Likewise.
* tests/test-ftello2.sh: Likewise.
2009-02-25 Ondřej Vašík <ovasik@redhat.com>
test-getaddrinfo: fix usage of skip return code 77
* tests/test-gettaddrinfo.c: Return skip code 77 only
for first occurrence of skip (4x77 is not 77)
2009-02-25 Gary V. Vaughan <gary@gnu.org>
strtod: avoid C99 decl-after-statement
* m4/strtod.m4 (gl_FUNC_STRTOD): Rearrange declaration.
2009-02-24 Eric Blake <ebb9@byu.net>
strtod: detect HP-UX 11.31 bug
* m4/strtod.m4 (gl_FUNC_STRTOD): Detect errno handling bug.
Reported by Gary V. Vaughan.
2009-02-23 Bruno Haible <bruno@clisp.org>
Fix invalid read past end of memory block.
* lib/vasnprintf.c (DCHAR_SET): Define.
(local_wcslen): Define only when needed.
(local_strnlen, local_wcsnlen): New functions.
(VASNPRINTF) [!USE_SNPRINTF && HAVE_WCHAR_T]: Implement the %s and %ls
directives that involve a conversion ourselves.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Also check for strnlen,
wcsnlen, mbrtowc, wcrtomb.
* tests/test-vasnprintf-posix.c (test_function): Add tests for %.*s.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2009-02-22 Bruno Haible <bruno@clisp.org>
Implement new clarified decomposition of Hangul syllables.
* lib/uninorm/decomposition.c (uc_decomposition): For Hangul syllables
of type LTV, return only a pairwise decomposition.
* lib/uninorm/canonical-decomposition.c (uc_canonical_decomposition):
Likewise.
* tests/uninorm/test-decomposition.c (main): Updated expected result.
* tests/uninorm/test-canonical-decomposition.c (main): Likewise.
* tests/uninorm/test-compat-decomposition.c (main): Likewise.
2009-02-22 Bruno Haible <bruno@clisp.org>
* lib/uninorm/u-normalize-internal.h (FUNC): At the end, handle
zero-length results and shrink excess allocated memory.
* tests/uninorm/test-u8-nfc.c (test_u8_nfc): Check empty string result.
* tests/uninorm/test-u8-nfd.c (test_u8_nfd): Likewise.
* tests/uninorm/test-u8-nfkc.c (test_u8_nfkc): Likewise.
* tests/uninorm/test-u8-nfkd.c (test_u8_nfkd): Likewise.
* tests/uninorm/test-u16-nfc.c (test_u16_nfc): Likewise.
* tests/uninorm/test-u16-nfd.c (test_u16_nfd): Likewise.
* tests/uninorm/test-u16-nfkc.c (test_u16_nfkc): Likewise.
* tests/uninorm/test-u16-nfkd.c (test_u16_nfkd): Likewise.
* tests/uninorm/test-u32-nfc.c (test_u32_nfc): Likewise.
* tests/uninorm/test-u32-nfd.c (test_u32_nfd): Likewise.
* tests/uninorm/test-u32-nfkc.c (test_u32_nfkc): Likewise.
* tests/uninorm/test-u32-nfkd.c (test_u32_nfkd): Likewise.
2009-02-21 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Include safe-alloc.texi earlier.
* doc/safe-alloc.texi: Terminate sentences with a period. Use two
spaces after a period. Put a space between a macro name and its
argument list. Trivial rewordings.
* lib/safe-alloc.c: Include safe-alloc.h right after config.h.
* tests/test-safe-alloc.c: Likewise. Include stdlib.h.
(main): Return 0 explicitly.
2009-02-21 Bruno Haible <bruno@clisp.org>
Tests for module 'uninorm/filter'.
* tests/uninorm/test-uninorm-filter-nfc.c: New file.
* modules/uninorm/filter-tests: New file.
New module 'uninorm/filter'.
* lib/uninorm.h (uninorm_filter_create, uninorm_filter_write,
uninorm_filter_flush, uninorm_filter_free): New declarations.
* lib/uninorm/uninorm-filter.c: New file.
* modules/uninorm/filter: New file.
2009-02-21 Bruno Haible <bruno@clisp.org>
Tests for module 'uninorm/nfkc'.
* tests/uninorm/test-nfkc.c: New file.
* tests/uninorm/test-u8-nfkc.c: New file.
* tests/uninorm/test-u16-nfkc.c: New file.
* tests/uninorm/test-u32-nfkc.c: New file.
* tests/uninorm/test-u32-nfkc-big.sh: New file.
* tests/uninorm/test-u32-nfkc-big.c: New file.
* modules/uninorm/nfkc-tests: New file.
New module 'uninorm/nfkc'.
* lib/uninorm/nfkc.c: New file.
* modules/uninorm/nfkc: New file.
Tests for module 'uninorm/nfkd'.
* tests/uninorm/test-nfkd.c: New file.
* tests/uninorm/test-u8-nfkd.c: New file.
* tests/uninorm/test-u16-nfkd.c: New file.
* tests/uninorm/test-u32-nfkd.c: New file.
* tests/uninorm/test-u32-nfkd-big.sh: New file.
* tests/uninorm/test-u32-nfkd-big.c: New file.
* modules/uninorm/nfkd-tests: New file.
New module 'uninorm/nfkd'.
* lib/uninorm/nfkd.c: New file.
* modules/uninorm/nfkd: New file.
Tests for module 'uninorm/nfc'.
* tests/uninorm/test-nfc.c: New file.
* tests/uninorm/test-u8-nfc.c: New file.
* tests/uninorm/test-u16-nfc.c: New file.
* tests/uninorm/test-u32-nfc.c: New file.
* tests/uninorm/test-u32-nfc-big.sh: New file.
* tests/uninorm/test-u32-nfc-big.c: New file.
* modules/uninorm/nfc-tests: New file.
New module 'uninorm/nfc'.
* lib/uninorm/nfc.c: New file.
* modules/uninorm/nfc: New file.
Tests for module 'uninorm/nfd'.
* tests/uninorm/test-nfd.c: New file.
* tests/uninorm/test-u8-nfd.c: New file.
* tests/uninorm/test-u16-nfd.c: New file.
* tests/uninorm/test-u32-nfd.c: New file.
* tests/uninorm/test-u32-nfd-big.sh: New file.
* tests/uninorm/test-u32-nfd-big.c: New file.
* tests/uninorm/test-u32-normalize-big.h: New file.
* tests/uninorm/test-u32-normalize-big.c: New file.
* tests/uninorm/NormalizationTest.txt: New file, created from
Unicode 5.1.0 NormalizationTest.txt.
* modules/uninorm/nfd-tests: New file.
New module 'uninorm/nfd'.
* lib/uninorm/nfd.c: New file.
* modules/uninorm/nfd: New file.
New module 'uninorm/u32-normalize'.
* lib/uninorm/u32-normalize.c: New file.
* modules/uninorm/u32-normalize: New file.
New module 'uninorm/u16-normalize'.
* lib/uninorm/u16-normalize.c: New file.
* modules/uninorm/u16-normalize: New file.
New module 'uninorm/u8-normalize'.
* lib/uninorm/u8-normalize.c: New file.
* lib/uninorm/normalize-internal.h: New file.
* lib/uninorm/u-normalize-internal.h: New file.
* modules/uninorm/u8-normalize: New file.
New module 'uninorm/decompose-internal'.
* lib/uninorm/decompose-internal.c: New file.
* modules/uninorm/decompose-internal: New file.
Tests for module 'uninorm/composition'.
* tests/uninorm/test-composition.c: New file.
* modules/uninorm/composition-tests: New file.
New module 'uninorm/composition'.
* lib/uninorm/composition.c: New file.
* lib/uninorm/composition-table.gperf: New file, generated by
gen-uni-tables.
* modules/uninorm/composition: New file.
Tests for module 'uninorm/compat-decomposition'.
* tests/uninorm/test-compat-decomposition.c: New file.
* modules/uninorm/compat-decomposition-tests: New file.
New module 'uninorm/compat-decomposition'.
* lib/uninorm/decompose-internal.h: New file.
* lib/uninorm/compat-decomposition.c: New file.
* modules/uninorm/compat-decomposition: New file.
Tests for module 'uninorm/canonical-decomposition'.
* tests/uninorm/test-canonical-decomposition.c: New file.
* modules/uninorm/canonical-decomposition-tests: New file.
New module 'uninorm/canonical-decomposition'.
* lib/uninorm/canonical-decomposition.c: New file.
* modules/uninorm/canonical-decomposition: New file.
Tests for module 'uninorm/decomposition'.
* tests/uninorm/test-decomposition.c: New file.
* modules/uninorm/decomposition-tests: New file.
New module 'uninorm/decomposition'.
* lib/uninorm/decomposition.c: New file.
* modules/uninorm/decomposition: New file.
New module 'uninorm/decomposition-table'.
* lib/uninorm/decomposition-table.h: New file.
* lib/uninorm/decomposition-table.c: New file.
* lib/uninorm/decomposition-table1.h: New file, generated by
gen-uni-tables.
* lib/uninorm/decomposition-table2.h: New file, generated by
gen-uni-tables.
* modules/uninorm/decomposition-table: New file.
* lib/gen-uni-tables.c (MAX_DECOMP_LENGTH): New macro.
(UC_DECOMP_*): New enumeration items.
(get_decomposition): New function.
(struct decomp_table): New type.
(output_decomposition, output_decomposition_tables): New functions.
(unicode_composition_exclusions): New variable.
(fill_composition_exclusions, debug_output_composition_tables): New
functions.
(main): Accept one more argument. Invoke fill_composition_exclusions.
Output decomposition and composition tables.
New module 'uninorm/base'.
* lib/uninorm.h: New file.
* lib/unictype.h: Update comment.
* modules/uninorm/base: New file.
2009-02-21 David Lutterkort <lutter@redhat.com>
Tests for module 'safe-alloc'.
* tests/test-safe-alloc.c: New file.
* modules/safe-alloc-tests: New file.
New module 'safe-alloc'.
* lib/safe-alloc.h: New file.
* lib/safe-alloc.c: New file.
* m4/safe-alloc.m4: New file.
* modules/safe-alloc: New file.
* doc/safe-alloc.texi: New file.
* doc/gnulib.texi: Include it.
* MODULES.html.sh (Memory management functions <stdlib.h>): Add
safe-alloc.
2009-02-18 Bruno Haible <bruno@clisp.org>
Fix link error on non-glibc systems.
* modules/uniwbrk/ulc-wordbreaks-tests (test_ulc_wordbreaks_LDADD): New
variable.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2009-02-18 Jim Meyering <meyering@redhat.com>
fts: avoid used-uninitialized error due to recent change
* lib/fts.c (fts_read): Guard uses of the new member,
parent->fts_n_dirs_remaining, since it's not relevant for
the parent of a directory specified on the command-line.
2009-02-17 James Youngman <jay@gnu.org>
Bruno Haible <bruno@clisp.org>
* m4/include_next.m4: Reformulate comment.
2009-02-16 Jim Meyering <meyering@redhat.com>
fts: add #if guards so that the fts_lgpl module still builds
* lib/fts.c: Guard just-added hash-table-using parts with
#if GNULIB_FTS, so as not to break builds of the fts_lgpl module.
Reported by Simon Josefsson.
2009-02-15 Bruno Haible <bruno@clisp.org>
* modules/array-mergesort-tests: New file.
* tests/test-array-mergesort.c: New file.
New module 'array-mergesort'.
* modules/array-mergesort: New file.
* lib/array-mergesort.h: New file.
2009-02-15 Bruno Haible <bruno@clisp.org>
Fix 2009-02-07 commit.
* lib/gen-uni-tables.c (output_predicate, output_category,
output_combclass, output_bidi_category, output_decimal_digit,
output_digit, output_numeric, output_mirror, output_scripts,
output_ident_category, output_simple_mapping): Fix format directives.
(output_lbp, output_wbp): Don't convert -1 to a size_t implicitly.
2009-02-15 Albert Chin-A-Young <china@thewrittenword.com>
* m4/include_next.m4: Update comment about IBM C 9.0/10.1 bug, now that
fixes are available from IBM.
2009-02-13 Jim Meyering <meyering@redhat.com>
fts: arrange not to stat non-directories in more cases
This makes GNU find (when it doesn't need to stat each file)
*much* more efficient at traversing reiserfs file systems.
* lib/fts_.h (struct ftsent) [fts_n_dirs_remaining]: New member.
(struct FTS) [fts_leaf_optimization_works_ht]: Add member.
* lib/fts.c (fts_close): Free ->fts_leaf_optimization_works_ht.
(S_MAGIC_REISERFS, S_MAGIC_PROC): Define.
(leaf_optimization_applies): New function.
(LCO_hash, LCO_compare): New helper functions.
(link_count_optimize_ok): New function.
(fts_stat): Initialize new member (if dir).
(fts_read): Decrement parent's fts_n_dirs_remaining count if
we've just stat'ed a directory. Skip the stat call when possible.
---
Note this AFS-related exchange:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=143111
and note find's pioctl call in find/fstype.c.
But that is necessary only if you want to enable the
optimization for AFS, and for now, I don't.
fts: move a function definition "up" (no semantic change)
* lib/fts.c (dirent_inode_sort_may_be_useful): Move definition
"up" to precede upcoming use of a related function.
2009-02-11 Jim Meyering <meyering@redhat.com>
fts: correct internal computation of nlinks (optimization-related)
* lib/fts.c (fts_build): ISSET(FTS_NOSTAT) has no bearing on
whether the current entry is a directory, so don't test it.
2009-02-10 Bruno Haible <bruno@clisp.org>
Tests for module 'uniwbrk/ulc-wordbreaks'.
* modules/uniwbrk/ulc-wordbreaks-tests: New file.
* tests/uniwbrk/test-ulc-wordbreaks.sh: New file.
* tests/uniwbrk/test-ulc-wordbreaks.c: New file.
Tests for module 'uniwbrk/u32-wordbreaks'.
* modules/uniwbrk/u32-wordbreaks-tests: New file.
* tests/uniwbrk/test-u32-wordbreaks.c: New file.
Tests for module 'uniwbrk/u16-wordbreaks'.
* modules/uniwbrk/u16-wordbreaks-tests: New file.
* tests/uniwbrk/test-u16-wordbreaks.c: New file.
Tests for module 'uniwbrk/u8-wordbreaks'.
* modules/uniwbrk/u8-wordbreaks-tests: New file.
* tests/uniwbrk/test-u8-wordbreaks.c: New file.
2009-02-10 Bruno Haible <bruno@clisp.org>
* modules/uniwbrk/u8-wordbreaks (Depends-on): Add uniwbrk/wordbreak
property.
* modules/uniwbrk/u16-wordbreaks (Depends-on): Likewise.
* modules/uniwbrk/u32-wordbreaks (Depends-on): Likewise.
* modules/uniwbrk/ulc-wordbreaks (Depends-on): Add localcharset.
2009-02-10 Simon Josefsson <simon@josefsson.org>
* m4/sockets.m4: Call AC_C_INLINE since sockets.h now can use
inline keywords. Reported by Bruno Haible <bruno@clisp.org>.
2009-02-10 Bruno Haible <bruno@clisp.org>
* lib/unilbrk/lbrktables.h: Renamed from lib/unilbrk/tables.h.
* lib/unilbrk/lbrktables.c: Renamed from lib/unilbrk/tables.c.
* modules/unilbrk/tables (Files, Makefile.am, Include): Update.
* lib/unilbrk/u8-possible-linebreaks.c: Update.
* lib/unilbrk/u16-possible-linebreaks.c: Likewise.
* lib/unilbrk/u32-possible-linebreaks.c: Likewise.
2009-02-09 Simon Josefsson <simon@josefsson.org>
* lib/sockets.h (gl_fd_to_handle): New function.
* tests/test-sockets.c: Call gl_fd_to_handle.
2009-02-09 Bruno Haible <bruno@clisp.org>
* doc/havelib.texi: Document the conventions on bi-arch systems.
2009-02-08 Bruno Haible <bruno@clisp.org>
Document the AC_LIB_LINKFLAGS macro.
* doc/havelib.texi: New file, mostly written on 2005-05-24.
* doc/gnulib.texi: Include it.
2009-02-08 Bruno Haible <bruno@clisp.org>
Fix wrong order of sections, compared to TOC.
* doc/gnulib.texi: Include relocatable-maint.texi after the
"Regular expressions" node, not before.
2009-02-08 Bruno Haible <bruno@clisp.org>
Tests for module 'unicase/totitle'.
* modules/unicase/totitle-tests: New file.
Tests for module 'unicase/tolower'.
* modules/unicase/tolower-tests: New file.
Tests for module 'unicase/toupper'.
* modules/unicase/toupper-tests: New file.
* tests/unicase/test-mapping-part1.h: New file.
* tests/unicase/test-mapping-part2.h: New file.
New module 'unicase/totitle'.
* modules/unicase/totitle: New file.
* lib/unicase/totitle.c: New file.
New module 'unicase/tolower'.
* modules/unicase/tolower: New file.
* lib/unicase/tolower.c: New file.
New module 'unicase/toupper'.
* modules/unicase/toupper: New file.
* lib/unicase/toupper.c: New file.
* lib/unicase/simple-mapping.h: New file.
* lib/gen-uni-tables.c (output_simple_mapping_test): New function.
(mapping_table): New structure.
(output_simple_mapping): New function.
(main): Invoke output_simple_mapping_test and output_simple_mapping.
* modules/gen-uni-tables (Description): Update.
* lib/unicase/toupper.h: New file, automatically generated by
gen-uni-tables.
* lib/unicase/tolower.h: New file, automatically generated by
gen-uni-tables.
* lib/unicase/totitle.h: New file, automatically generated by
gen-uni-tables.
* tests/unicase/test-uc_toupper.c: New file, automatically generated by
gen-uni-tables.
* tests/unicase/test-uc_tolower.c: New file, automatically generated by
gen-uni-tables.
* tests/unicase/test-uc_totitle.c: New file, automatically generated by
gen-uni-tables.
New module 'unicase/base'.
* modules/unicase/base: New file.
* lib/unicase.h: New file.
2009-02-08 Bruno Haible <bruno@clisp.org>
New module 'uniwbrk/ulc-wordbreaks'.
* modules/uniwbrk/ulc-wordbreaks: New file.
* lib/uniwbrk/ulc-wordbreaks.c: New file.
New module 'uniwbrk/u32-wordbreaks'.
* modules/uniwbrk/u32-wordbreaks: New file.
* lib/uniwbrk/u32-wordbreaks.c: New file.
New module 'uniwbrk/u16-wordbreaks'.
* modules/uniwbrk/u16-wordbreaks: New file.
* lib/uniwbrk/u16-wordbreaks.c: New file.
New module 'uniwbrk/u8-wordbreaks'.
* modules/uniwbrk/u8-wordbreaks: New file.
* lib/uniwbrk/u8-wordbreaks.c: New file.
* lib/uniwbrk/u-wordbreaks.h: New file.
New module 'uniwbrk/table'.
* modules/uniwbrk/table: New file.
* lib/uniwbrk/wbrktable.h: New file.
* lib/uniwbrk/wbrktable.c: New file.
New module 'uniwbrk/wordbreak-property'.
* modules/uniwbrk/wordbreak-property: New file.
* lib/uniwbrk/wordbreak-property.c: New file.
* lib/gen-uni-tables.c (WBP_*): New enum items.
(get_wbp, debug_output_wbp, debug_output_wbrk_tables): New functions.
(unicode_org_wbp): New variable.
(fill_org_wbp, debug_output_org_wbp, debug_output_org_wbrk_tables):
New functions.
(wbp_table): New structure.
(output_wbp, output_wbrk_tables): New functions.
(main): Accept additional argument. Invoke fill_org_wbp,
debug_output_wbrk_tables, debug_output_org_wbrk_tables,
output_wbrk_tables.
* modules/gen-uni-tables (Description): Update.
* lib/uniwbrk/wbrkprop.h: New file, automatically generated by
gen-uni-tables.
New module 'uniwbrk/base'.
* modules/uniwbrk/base: New file.
* lib/uniwbrk.h: New file.
2009-02-08 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.1.0.
* lib/gen-uni-tables.c (is_property_alphabetic): Include
U+2185..U+2188.
(is_property_default_ignorable_code_point): Don't include characters
of category Cc or Cs and not-a-characters.
(get_lbp): Assume REVISION_22. Special handling of U+0609, U+060A,
U+0D79, U+109E, U+109F, U+A60C.
* lib/unictype/bidi_of.h: Regenerated.
* lib/unictype/blocks.h: Regenerated.
* lib/unictype/categ_C.h: Regenerated.
* lib/unictype/categ_Cf.h: Regenerated.
* lib/unictype/categ_Cn.h: Regenerated.
* lib/unictype/categ_L.h: Regenerated.
* lib/unictype/categ_Ll.h: Regenerated.
* lib/unictype/categ_Lm.h: Regenerated.
* lib/unictype/categ_Lo.h: Regenerated.
* lib/unictype/categ_Lu.h: Regenerated.
* lib/unictype/categ_M.h: Regenerated.
* lib/unictype/categ_Mc.h: Regenerated.
* lib/unictype/categ_Me.h: Regenerated.
* lib/unictype/categ_Mn.h: Regenerated.
* lib/unictype/categ_N.h: Regenerated.
* lib/unictype/categ_Nd.h: Regenerated.
* lib/unictype/categ_Nl.h: Regenerated.
* lib/unictype/categ_No.h: Regenerated.
* lib/unictype/categ_P.h: Regenerated.
* lib/unictype/categ_Pd.h: Regenerated.
* lib/unictype/categ_Pe.h: Regenerated.
* lib/unictype/categ_Pf.h: Regenerated.
* lib/unictype/categ_Pi.h: Regenerated.
* lib/unictype/categ_Po.h: Regenerated.
* lib/unictype/categ_Ps.h: Regenerated.
* lib/unictype/categ_S.h: Regenerated.
* lib/unictype/categ_Sk.h: Regenerated.
* lib/unictype/categ_Sm.h: Regenerated.
* lib/unictype/categ_So.h: Regenerated.
* lib/unictype/categ_of.h: Regenerated.
* lib/unictype/combining.h: Regenerated.
* lib/unictype/ctype_alnum.h: Regenerated.
* lib/unictype/ctype_alpha.h: Regenerated.
* lib/unictype/ctype_graph.h: Regenerated.
* lib/unictype/ctype_lower.h: Regenerated.
* lib/unictype/ctype_print.h: Regenerated.
* lib/unictype/ctype_punct.h: Regenerated.
* lib/unictype/ctype_upper.h: Regenerated.
* lib/unictype/decdigit.h: Regenerated.
* lib/unictype/digit.h: Regenerated.
* lib/unictype/mirror.h: Regenerated.
* lib/unictype/numeric.h: Regenerated.
* lib/unictype/pr_alphabetic.h: Regenerated.
* lib/unictype/pr_bidi_arabic_digit.h: Regenerated.
* lib/unictype/pr_bidi_arabic_right_to_left.h: Regenerated.
* lib/unictype/pr_bidi_boundary_neutral.h: Regenerated.
* lib/unictype/pr_bidi_eur_num_terminator.h: Regenerated.
* lib/unictype/pr_bidi_left_to_right.h: Regenerated.
* lib/unictype/pr_bidi_non_spacing_mark.h: Regenerated.
* lib/unictype/pr_bidi_other_neutral.h: Regenerated.
* lib/unictype/pr_combining.h: Regenerated.
* lib/unictype/pr_dash.h: Regenerated.
* lib/unictype/pr_decimal_digit.h: Regenerated.
* lib/unictype/pr_default_ignorable_code_point.h: Regenerated.
* lib/unictype/pr_deprecated.h: Regenerated.
* lib/unictype/pr_diacritic.h: Regenerated.
* lib/unictype/pr_extender.h: Regenerated.
* lib/unictype/pr_format_control.h: Regenerated.
* lib/unictype/pr_grapheme_base.h: Regenerated.
* lib/unictype/pr_grapheme_extend.h: Regenerated.
* lib/unictype/pr_grapheme_link.h: Regenerated.
* lib/unictype/pr_id_continue.h: Regenerated.
* lib/unictype/pr_id_start.h: Regenerated.
* lib/unictype/pr_ideographic.h: Regenerated.
* lib/unictype/pr_ignorable_control.h: Regenerated.
* lib/unictype/pr_lowercase.h: Regenerated.
* lib/unictype/pr_math.h: Regenerated.
* lib/unictype/pr_numeric.h: Regenerated.
* lib/unictype/pr_other_alphabetic.h: Regenerated.
* lib/unictype/pr_other_default_ignorable_code_point.h: Regenerated.
* lib/unictype/pr_other_grapheme_extend.h: Regenerated.
* lib/unictype/pr_other_id_continue.h: Regenerated.
* lib/unictype/pr_other_lowercase.h: Regenerated.
* lib/unictype/pr_other_math.h: Regenerated.
* lib/unictype/pr_punctuation.h: Regenerated.
* lib/unictype/pr_sentence_terminal.h: Regenerated.
* lib/unictype/pr_soft_dotted.h: Regenerated.
* lib/unictype/pr_terminal_punctuation.h: Regenerated.
* lib/unictype/pr_unassigned_code_value.h: Regenerated.
* lib/unictype/pr_unified_ideograph.h: Regenerated.
* lib/unictype/pr_uppercase.h: Regenerated.
* lib/unictype/pr_xid_continue.h: Regenerated.
* lib/unictype/pr_xid_start.h: Regenerated.
* lib/unictype/pr_zero_width.h: Regenerated.
* lib/unictype/scripts.h: Regenerated.
* lib/unictype/scripts_byname.gperf: Regenerated.
* lib/unictype/sy_java_ident.h: Regenerated.
* lib/unilbrk/lbrkprop1.h: Regenerated.
* lib/unilbrk/lbrkprop2.h: Regenerated.
* tests/unictype/test-categ_C.c: Regenerated.
* tests/unictype/test-categ_Cf.c: Regenerated.
* tests/unictype/test-categ_Cn.c: Regenerated.
* tests/unictype/test-categ_L.c: Regenerated.
* tests/unictype/test-categ_Ll.c: Regenerated.
* tests/unictype/test-categ_Lm.c: Regenerated.
* tests/unictype/test-categ_Lo.c: Regenerated.
* tests/unictype/test-categ_Lu.c: Regenerated.
* tests/unictype/test-categ_M.c: Regenerated.
* tests/unictype/test-categ_Mc.c: Regenerated.
* tests/unictype/test-categ_Me.c: Regenerated.
* tests/unictype/test-categ_Mn.c: Regenerated.
* tests/unictype/test-categ_N.c: Regenerated.
* tests/unictype/test-categ_Nd.c: Regenerated.
* tests/unictype/test-categ_Nl.c: Regenerated.
* tests/unictype/test-categ_No.c: Regenerated.
* tests/unictype/test-categ_P.c: Regenerated.
* tests/unictype/test-categ_Pd.c: Regenerated.
* tests/unictype/test-categ_Pe.c: Regenerated.
* tests/unictype/test-categ_Pf.c: Regenerated.
* tests/unictype/test-categ_Pi.c: Regenerated.
* tests/unictype/test-categ_Po.c: Regenerated.
* tests/unictype/test-categ_Ps.c: Regenerated.
* tests/unictype/test-categ_S.c: Regenerated.
* tests/unictype/test-categ_Sk.c: Regenerated.
* tests/unictype/test-categ_Sm.c: Regenerated.
* tests/unictype/test-categ_So.c: Regenerated.
* tests/unictype/test-ctype_alnum.c: Regenerated.
* tests/unictype/test-ctype_alpha.c: Regenerated.
* tests/unictype/test-ctype_graph.c: Regenerated.
* tests/unictype/test-ctype_lower.c: Regenerated.
* tests/unictype/test-ctype_print.c: Regenerated.
* tests/unictype/test-ctype_punct.c: Regenerated.
* tests/unictype/test-ctype_upper.c: Regenerated.
* tests/unictype/test-decdigit.h: Regenerated.
* tests/unictype/test-digit.h: Regenerated.
* tests/unictype/test-numeric.h: Regenerated.
* tests/unictype/test-pr_alphabetic.c: Regenerated.
* tests/unictype/test-pr_bidi_arabic_digit.c: Regenerated.
* tests/unictype/test-pr_bidi_arabic_right_to_left.c: Regenerated.
* tests/unictype/test-pr_bidi_boundary_neutral.c: Regenerated.
* tests/unictype/test-pr_bidi_eur_num_terminator.c: Regenerated.
* tests/unictype/test-pr_bidi_left_to_right.c: Regenerated.
* tests/unictype/test-pr_bidi_non_spacing_mark.c: Regenerated.
* tests/unictype/test-pr_bidi_other_neutral.c: Regenerated.
* tests/unictype/test-pr_combining.c: Regenerated.
* tests/unictype/test-pr_dash.c: Regenerated.
* tests/unictype/test-pr_decimal_digit.c: Regenerated.
* tests/unictype/test-pr_default_ignorable_code_point.c: Regenerated.
* tests/unictype/test-pr_deprecated.c: Regenerated.
* tests/unictype/test-pr_diacritic.c: Regenerated.
* tests/unictype/test-pr_extender.c: Regenerated.
* tests/unictype/test-pr_format_control.c: Regenerated.
* tests/unictype/test-pr_grapheme_base.c: Regenerated.
* tests/unictype/test-pr_grapheme_extend.c: Regenerated.
* tests/unictype/test-pr_grapheme_link.c: Regenerated.
* tests/unictype/test-pr_id_continue.c: Regenerated.
* tests/unictype/test-pr_id_start.c: Regenerated.
* tests/unictype/test-pr_ideographic.c: Regenerated.
* tests/unictype/test-pr_ignorable_control.c: Regenerated.
* tests/unictype/test-pr_lowercase.c: Regenerated.
* tests/unictype/test-pr_math.c: Regenerated.
* tests/unictype/test-pr_numeric.c: Regenerated.
* tests/unictype/test-pr_other_alphabetic.c: Regenerated.
* tests/unictype/test-pr_other_default_ignorable_code_point.c:
Regenerated.
* tests/unictype/test-pr_other_grapheme_extend.c: Regenerated.
* tests/unictype/test-pr_other_id_continue.c: Regenerated.
* tests/unictype/test-pr_other_lowercase.c: Regenerated.
* tests/unictype/test-pr_other_math.c: Regenerated.
* tests/unictype/test-pr_punctuation.c: Regenerated.
* tests/unictype/test-pr_sentence_terminal.c: Regenerated.
* tests/unictype/test-pr_soft_dotted.c: Regenerated.
* tests/unictype/test-pr_terminal_punctuation.c: Regenerated.
* tests/unictype/test-pr_unassigned_code_value.c: Regenerated.
* tests/unictype/test-pr_unified_ideograph.c: Regenerated.
* tests/unictype/test-pr_uppercase.c: Regenerated.
* tests/unictype/test-pr_xid_continue.c: Regenerated.
* tests/unictype/test-pr_xid_start.c: Regenerated.
* tests/unictype/test-pr_zero_width.c: Regenerated.
Update to Unicode 5.1.0.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+0487,
U+0616..U+061A, U+0A51, U+0A75, U+0B44, U+0B62..U+0B63, U+0C62..U+0C63,
U+0D44, U+0D62..U+0D63, U+1033..U+1035, U+103A, U+103D..U+103E,
U+105E..U+1060, U+1071..U+1074, U+1082, U+1085..U+1086, U+108D,
U+1B80..U+1B81, U+1BA2..U+1BA5, U+1BA8..U+1BA9, U+1C2C..U+1C33,
U+1C36..U+1C37, U+1DCB..U+1DE6, U+2064, U+20F0, U+2DE0..U+2DFF,
U+A66F..U+A672, U+A67C..U+A67D, U+A8C4, U+A926..U+A92D, U+A947..U+A951,
U+AA29..U+AA2E, U+AA31..U+AA32, U+AA35..U+AA36, U+AA43, U+AA4C,
U+FE24..U+FE26, U+101FD. Remove U+1929..U+192B.
(nonspacing_table_ind): Update.
* tests/uniwidth/test-uc_width2.sh: Update expected result.
Update to Unicode 5.1.0.
* lib/uniname/gen-uninames.lisp (main): Add the range 0x1Fxxx to the
code transform.
* lib/uniname/uniname.c (unicode_character_name,
unicode_name_character): Add the range 0x1Fxxx to the code transform.
* lib/uniname/uninames.h: Regenerated.
* tests/uniname/UnicodeDataNames.txt: Update to Unicode 5.1.0.
2009-02-07 Bruno Haible <bruno@clisp.org>
Merge gen-ctype and gen-lbrk into a single program.
* lib/gen-uni-tables.c: New file, incorporating
lib/unictype/gen-ctype.c and lib/unilbrk/gen-lbrk.c.
Add directory prefixes to the names of the generated files.
* lib/unictype/gen-ctype.c: Remove file.
* lib/unilbrk/gen-lbrk.c: Remove file.
* modules/gen-uni-tables: New file.
* modules/unictype/gen-ctype: Remove file.
* modules/unilbrk/gen-lbrk: Remove file.
2009-02-07 Bruno Haible <bruno@clisp.org>
* lib/unistr.h (u8_strcoll, u16_strcoll, u32_strcoll): New declations.
New module 'unistr/u32-strcoll'.
* modules/unistr/u32-strcoll: New file.
* lib/unistr/u32-strcoll.c: New file.
New module 'unistr/u16-strcoll'.
* modules/unistr/u16-strcoll: New file.
* lib/unistr/u16-strcoll.c: New file.
New module 'unistr/u8-strcoll'.
* modules/unistr/u8-strcoll: New file.
* lib/unistr/u8-strcoll.c: New file.
* lib/unistr/u-strcoll.h: New file.
2009-02-07 Bruno Haible <bruno@clisp.org>
* test-mbrtowc4.sh (LOCALE_ZH_CN): Fix default value.
* test-mbsnrtowcs4.sh (LOCALE_ZH_CN): Likewise.
* test-mbsrtowcs4.sh (LOCALE_ZH_CN): Likewise.
* test-wcrtomb.sh (LOCALE_ZH_CN): Likewise.
* test-wcsnrtombs4.sh (LOCALE_ZH_CN): Likewise.
* test-wcsrtombs4.sh (LOCALE_ZH_CN): Likewise.
2009-02-07 Bruno Haible <bruno@clisp.org>
Make 64-bit clean.
* lib/unictype/gen-ctype.c (output_predicate, output_category,
output_combclass, output_bidi_category, output_decimal_digit,
output_digit, output_numeric, output_mirror, output_scripts,
output_ident_category): Use proper width specifier in format strings.
2009-02-07 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/dirfd.texi: Clarify situation on mingw. Document
failure behaviour.
2009-02-07 Jim Meyering <meyering@redhat.com>
regex: avoid compilation failure with upcoming gcc-4.4
* lib/regex_internal.h: Revert e48d8b47fb3eee81d341b71c3e006efe9e3433a7
[workaround for PGC prior to 6.1-2]. Otherwise, we'd get this:
"... error: integer overflow in preprocessor expression".
2009-02-05 Ben Pfaff <blp@gnu.org>
Fix link errors on Windows when close module is used.
* modules/close: Add $(LIB_CLOSE) to Link section.
* m4/close.m4 (gl_REPLACE_CLOSE): Substitute -lws2_32 into
$(LIB_CLOSE) on Windows.
2009-02-05 Jim Meyering <meyering@redhat.com>
still avoid unused-parameter warnings, but do it cleanly
* lib/fsusage.c (UNUSED_PARAM): Remove definition.
(get_fs_usage): Cast to void instead.
* lib/mountlist.c (UNUSED_PARAM): Remove definition.
(dev_from_mount_options, read_file_system_list): Cast to void.
Prompted by Bruno Haible.
2009-02-04 Jim Meyering <meyering@redhat.com>
fsusage.c: correct copyright year
* lib/fsusage.c: Reflect year in which the change is pushed into
avoid misc. warnings
* lib/fsusage.c (UNUSED_PARAM): Define.
(get_fs_usage): Mark parameter "disk" as unused.
* lib/getugroups.c (getgrent): Use "void" in prototype.
* lib/mountlist.c: Mark unused parameters.
(read_file_system_list): Declare a local with "const".
* lib/nanosleep.c (getnow): Declare static.
* lib/strftime.c: Include strftime.h, for declaration of nstrftime.
dirfd: set errno upon failure
* lib/dirfd.c: Include <errno.h>.
Set errno to ENOTSUP when returning -1.
* modules/dirfd (Depends-on): Add errno.
Suggested by John Kodis <kodis@comcast.net>.
2009-02-01 Bruno Haible <bruno@clisp.org>
Don't assume sizeof (long) >= sizeof (void *).
* lib/memcmp.c: Include stdint.h.
(memcmp_bytes): Change argument types to op_t. Change type of srcp1,
srcp2 to 'const byte *'.
(memcmp_common_alignment, memcmp_not_common_alignment): Change argument
types to uintptr_t.
(rpl_memcmp): Change type of srcp1, srcp2 to 'uintptr_t'.
* modules/memcmp (Depends-on): Add stdint.
Reported by Ozkan Sezer <sezeroz@gmail.com>.
2009-01-30 Eric Blake <ebb9@byu.net>
fix more require-before-expand issues
* m4/pmccabe2html.m4 (gl_PMCCABE2HTML): Require, rather than
expand, AC_PROG_AWK.
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P): Use AC_DEFUN_ONCE.
2009-01-28 Eric Blake <ebb9@byu.net>
version-etc: use consistent URL formatting
* lib/version-etc.c (emit_bug_reporting_address, version_etc_va):
Improve formatting. Use fputs for string without %.
2009-01-28 Jim Meyering <meyering@redhat.com>
00gnulib.m4: add m4 quotes in shell comment to avoid autoconf warning
* m4/00gnulib.m4 (AC_DEFUN_ONCE): Add quotes to avoid an
"underquoted definition of NAME" from autoconf-2.59.
2009-01-28 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Add "Obsolete modules" to index.
2009-01-28 Jim Meyering <meyering@redhat.com>
useless-if-before-free: recognize more variants
* build-aux/useless-if-before-free: Also recognize e.g.,
if (NULL != p) free (p);
2009-01-27 Mark McLoughlin <markmc@redhat.com>
test-getaddrinfo: skip (don't fail) this test when there's no network
* tests/test-getaddrinfo.c: Skip test upon failure with EAI_AGAIN,
on the presumption that it means you lack network access.
2009-01-26 Jim Meyering <meyering@redhat.com>
fflush: avoid warnings on modern systems
* lib/fflush.c (rpl_fflush): Move declarations of locals,
pos and result, into scopes where they're used.
2009-01-26 Eric Blake <ebb9@byu.net>
Silence warning reintroduced by recent extensions patch.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS)
(gl_USE_SYSTEM_EXTENSIONS): Use AC_DEFUN_ONCE to silence newer
autoconf.
Backport improved autoconf semantics of AC_DEFUN_ONCE.
* m4/00gnulib.m4: New file.
* gnulib-tool (func_get_filelist): Always use it.
* m4/gnulib-common.m4 (gl_COMMON): Force the file to be used.
Reported by Bruno Haible, with suggestions from Paolo Bonzini.
2009-01-25 Bruno Haible <bruno@clisp.org>
Make test-quotearg work on MacOS X and AIX.
* tests/test-quotearg.sh: New file.
* tests/locale/fr/LC_MESSAGES/test-quotearg.po: New file.
* tests/locale/fr/LC_MESSAGES/test-quotearg.mo: New file.
* tests/test-quotearg.c: Include <locale.h> and gettext.h. Don't
include <libintl.h>.
(fake_locale): Remove variable.
(gettext, dgettext, dcgettext): Remove functions.
(main): Instead of setting a fake locale, set a real locale. Call
textdomain and bindtextdomain.
* modules/quotearg-tests (Files): Add the new files.
(Depends-on): Add gettext, setenv, unsetenv.
(configure.ac): Invoke gt_LOCALE_FR and gt_LOCALE_FR_UTF8.
(Makefile.am): Add test-quotearg.sh to TESTS, remove test-quotearg.
Augment TESTS_ENVIRONMENT.
2009-01-25 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR): Remove special code that hid the
fr_FR.ISO8859-1 locale on MacOS X.
* m4/locale-ja.m4 (gt_LOCALE_JA): Remove special code that hid the
ja_JP.eucJP locale on MacOS X.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Remove special code that hid the
zh_CN.GB18030 locale on MacOS X.
2009-01-25 Bruno Haible <bruno@clisp.org>
Avoid link errors on MacOS X 10.3.
* lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state): Add initializer.
* lib/wcsrtombs-state.c (_gl_wcsrtombs_state): Likewise.
2009-01-25 Bruno Haible <bruno@clisp.org>
* lib/pipe.c: On Unix, assume HAVE_POSIX_SPAWN and use posix_spawnp.
* m4/pipe.m4 (gl_PIPE): Remove tests for vfork() based code.
* modules/pipe (Files): Remove m4/posix_spawn.m4.
(Depends-on): Add spawn, posix_spawnp, posix_spawn_file_actions_init,
posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2,
posix_spawn_file_actions_addopen, posix_spawn_file_actions_destroy,
posix_spawnattr_init, posix_spawnattr_setsigmask,
posix_spawnattr_setflags, posix_spawnattr_destroy.
* lib/execute.c: On Unix, assume HAVE_POSIX_SPAWN and use posix_spawnp.
* m4/execute.m4 (gl_EXECUTE): Remove tests for vfork() based code.
* modules/execute (Files): Remove m4/posix_spawn.m4.
(Depends-on): Add spawn, posix_spawnp, posix_spawn_file_actions_init,
posix_spawn_file_actions_addopen, posix_spawn_file_actions_destroy,
posix_spawnattr_init, posix_spawnattr_setsigmask,
posix_spawnattr_setflags, posix_spawnattr_destroy.
2009-01-25 Bruno Haible <bruno@clisp.org>
* lib/glthread/threadlib.c: Include <stdlib.h>.
2009-01-25 Bruno Haible <bruno@clisp.org>
* lib/glthread/threadlib.c (dummy): New declaration.
2009-01-25 Bruno Haible <bruno@clisp.org>
* lib/mbrtowc.c (mbrtowc): Distinguish invalid and incomplete
multibyte characters also for the GB18030 encoding. Don't crash when
the encoding is unknown and nstate = 0. Needed on OSF/1 5.1.
2009-01-25 Bruno Haible <bruno@clisp.org>
Avoid redefining 'struct random_data' on OSF/1 5.1.
* lib/stdlib.in.h: Include <random.h> if it exists.
* m4/stdlib_h.m4 (gl_STDLIB_H): Test whether <random.h> exists. Set
HAVE_RANDOM_H. Include <random.h> when testing whether
'struct random_data' exists.
* modules/stdlib (Makefile.am): Substitute HAVE_RANDOM_H.
2009-01-25 Bruno Haible <bruno@clisp.org>
Don't install charset.alias on MacOS X >= 10.3.
* lib/localcharset.c (DARWIN7): New macro.
(get_charset_aliases): Hardcode the result for Darwin7.
* modules/localcharset (install-exec-local): Don't install
charset.alias on MacOS X >= 10.3, if the file does not yet exist.
2009-01-25 Bruno Haible <bruno@clisp.org>
Don't install charset.alias on mingw and Cygwin.
* modules/localcharset (install-exec-local): Don't install
charset.alias on mingw and Cygwin, if the file does not yet exist.
The result for these platforms is hardcoded in localcharset.c.
2009-01-25 Bruno Haible <bruno@clisp.org>
Make it possible again to use AC_GNU_SOURCE together with gnulib.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_GNU_SOURCE
before requiring AC_USE_SYSTEM_EXTENSIONS.
2009-01-25 Jim Meyering <meyering@redhat.com>
c-strtod: avoid warnings
* lib/c-strtod.c (C_STRTOD): Cast nptr to (char *) to avoid
"assignment discards qualifiers from pointer target type" warnings.
2009-01-24 Bruno Haible <bruno@clisp.org>
Add support for non-UTF-8 locales on MacOS X.
* lib/config.charset: Add CP1131, ARMSCII-8, PT154 to the list of
canonical encodings. For Darwin 7 and newer, don't map traditional
encodings to UTF-8.
Reported by Vincent Lefevre <vincent@vinc17.org>
at <http://savannah.gnu.org/bugs/?25235>.
2009-01-24 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi (Obsolete modules): New section.
Reported by Mike Frysinger <vapier@gentoo.org>.
2009-01-24 Bruno Haible <bruno@clisp.org>
* doc/Makefile (%.pdf): Clarify where to find texmf.cnf.
(%.dvi): New rule.
2009-01-24 Bruno Haible <bruno@clisp.org>
* lib/c-strtod.h (c_strtod, c_strtold): Adjust specification.
Reported by Eric Blake.
2009-01-24 Bruno Haible <bruno@clisp.org>
* lib/c-stack.c (segv_handler): If !HAVE_XSI_STACK_OVERFLOW_HEURISTIC,
set signo = 0 also if info->si_code <= 0. Needed on HP-UX 11.11.
Reported by Gary V. Vaughan <gary@gnu.org>.
2009-01-24 Bruno Haible <bruno@clisp.org>
* lib/c-strtod.h (c_strtod, c_strtold): Add specification.
2009-01-23 Bruno Haible <bruno@clisp.org>
Make c-strtod, c-strtold usable in libraries.
* lib/c-strtod.c: Include string.h instead of xalloc.h.
(C_STRTOD): Call strdup instead of xstrdup.
* modules/c-strtod (Depends-on): Add strdup-posix, remove xalloc.
* modules/c-strtold (Depends-on): Likewise.
* doc/c-strtod.texi: Remove the sentence mentioning xalloc_die.
* NEWS: Mention the change.
Reported by Michael Gold <mgold@ncf.ca>.
2009-01-23 Jim Meyering <meyering@redhat.com>
c-strtod: when ENDPTR is non-NULL, set *ENDPTR in new failure path
* lib/c-strtod.c (C_STRTOD) [LC_ALL_MASKC]: Ensure that when
ENDPTR is non-NULL, *ENDPTR is set to NPTR upon failure.
2009-01-23 Simon Josefsson <simon@josefsson.org>
* lib/version-etc.c: Add emit_bug_reporting_address, inspired by
GNU CoreUtils.
* lib/version-etc.h: Add prototype for emit_bug_reporting_address.
* modules/version-etc (Description): Update.
2009-01-22 Bruno Haible <bruno@clisp.org>
Cache the C locale object.
* lib/c-strtod.c (c_locale_cache): New variable.
(c_locale): New function.
(C_STRTOD): Use it, and don't call freelocale.
* m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOLD): Require AC_C_INLINE.
Suggested by Paolo Bonzini.
2009-01-21 Bruno Haible <bruno@clisp.org>
* lib/getloadavg.c (getloadavg): Check c_strtod result against error
conditions other than overflow.
2009-01-21 Bruno Haible <bruno@clisp.org>
* lib/c-strtod.c: Include errno.h.
(C_STRTOD): Check against NULL return from newlocale. Preserve errno
value from STRTOD_L and STRTOD.
2009-01-21 Bruno Haible <bruno@clisp.org>
and Jim Meyering <meyering@redhat.com>
nanosleep: skip configure test (fail it) for apple universal builds
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require gl_MULTIARCH. In Apple
universal builds, assume that nanosleep does not work.
* modules/nanosleep (Depends-on): Add multiarch.
mktime: skip configure test (fail it) for apple universal builds
* m4/mktime.m4 (AC_FUNC_MKTIME): Require gl_MULTIARCH. In Apple
universal builds, assume that mktime does not work.
* modules/mktime (Depends-on): Add multiarch.
2009-01-21 Eric Blake <ebb9@byu.net>
multiarch: avoid expand-before-require warning
* modules/multiarch (configure.ac): Require, rather than expand,
gl_MULTIARCH.
* m4/multiarch.m4 (gl_MULTIARCH_BODY): Merge...
(gl_MULTIARCH): ...into this macro, and use AC_DEFUN_ONCE to
enforce that all clients require it. Partial reversion of
2008-12-29 patch.
error: avoid expand-before-require warning
* modules/errno (configure.ac): Require, rather than expand,
gl_HEADER_ERRNO_H.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Merge...
(gl_HEADER_ERRNO_H): ...into this macro, and use AC_DEFUN_ONCE to
enforce that all clients require it.
gnulib-tool: avoid warnings from using obsolete AC_GNU_SOURCE
* gnulib-tool (func_dest_tmpfilename, func_create_testdir): Using
obsolete AC_GNU_SOURCE causes out-of-order expansion; avoid it,
and rely solely on gl_USE_SYSTEM_EXTENSIONS.
2009-01-21 Paolo Bonzini <bonzini@gnu.org>
Revert:
2009-01-20 Paolo Bonzini <bonzini@gnu.org>
regex: do not depend on obsolete modules.
* modules/regex: Remove memcmp and memmove.
2009-01-20 Bruno Haible <bruno@clisp.org>
Make the 'link' module link on Windows NT 4.
* lib/link.c (_WIN32_WINNT): Don't define.
(CreateHardLinkFuncType): New type.
(CreateHardLinkFunc, initialized): New variables.
(initialize): New function.
(link): Invoke CreateHardLink indirectly through the function pointer.
2009-01-20 Bruno Haible <bruno@clisp.org>
Fix compilation failure on mingw.
* tests/test-link.c (main): Don't assume that EOPNOTSUPP exists.
2009-01-20 Michael Gold <mgold@ncf.ca> (tiny change)
* doc/c-strtod.texi: Mention a couple of restrictions.
2009-01-20 Jim Meyering <meyering@redhat.com>
gettimeofday: move more declarations out of functions
* lib/gettimeofday.c: Move extern declarations of tzset and
gmtime out of containing functions. Prompted by Bruno Haible.
2009-01-20 Paolo Bonzini <bonzini@gnu.org>
regex: do not depend on obsolete modules.
* modules/regex: Remove memcmp and memmove.
2009-01-19 Bruno Haible <bruno@clisp.org>
Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
* modules/uniconv/u16-conv-from-enc (configure.ac): Require
gl_BIGENDIAN, not AC_C_BIGENDIAN.
* modules/uniconv/u16-conv-to-enc (configure.ac): Likewise.
* modules/uniconv/u16-strconv-to-enc (configure.ac): Likewise.
2009-01-19 Bruno Haible <bruno@clisp.org>
* tests/test-link.c: Include <errno.h>.
(main): Exit with code 77 when a hard link cannot be created due to
the file system.
* tests/test-link.sh: Skip test when a hard link cannot be created due
to the file system.
Suggested by Eric Blake.
2009-01-19 Martin Lambers <marlam@marlam.de>
* modules/link-tests: New file.
* tests/test-link.sh: New file.
* tests/test-link.c: New file.
2009-01-19 Eric Blake <ebb9@byu.net>
doc: mention another function added in cygwin 1.7.0
* doc/glibc-functions/glob_pattern_p.texi (glob_pattern_p):
Another new function in cygwin 1.7.
2009-01-19 Bruno Haible <bruno@clisp.org>
Don't use AC_REQUIRE([AC_C_BIGENDIAN]).
* m4/gnulib-common.m4 (gl_BIGENDIAN): New macro.
* m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Require
gl_BIGENDIAN, not AC_C_BIGENDIAN.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
* m4/isinf.m4 (gl_ISINFL_WORKS): Likewise.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
* m4/md4.m4 (gl_MD4): Likewise.
* m4/md5.m4 (gl_MD5): Likewise.
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Likewise.
* m4/sha1.m4 (gl_SHA1): Likewise.
* m4/sha256.m4 (gl_SHA256): Likewise.
* m4/sha512.m4 (gl_SHA512): Likewise.
2009-01-19 Bruno Haible <bruno@clisp.org>
* modules/uniname/uniname-tests (Depends-on): Add progname.
* tests/uniname/test-uninames.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u8-vsprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u8-vsprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u8-vsnprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u8-vsnprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u16-vsprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u16-vsprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u16-vsnprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u16-vsnprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u32-vsprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u32-vsprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/u32-vsnprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-u32-vsnprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/ulc-vsprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-ulc-vsprintf1.c: Include progname.h.
(main): Call set_program_name.
* modules/unistdio/ulc-vsnprintf-tests (Depends-on): Add progname.
* tests/unistdio/test-ulc-vsnprintf1.c: Include progname.h.
(main): Call set_program_name.
2009-01-19 Eric Blake <ebb9@byu.net>
test-unistd: test previous patch
* tests/test-unistd.c: Test *_FILENO macros.
unistd: guarantee STDIN_FILENO here, for OS/2 EMX
* lib/unistd.in.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
Guarantee a definition.
* doc/posix-headers/unistd.texi (unistd.h): Document the bug.
* modules/unistd-safer (Depends-on): Add dependency on unistd.
* lib/c-stack.c (STDERR_FILENO): Rely on <unistd.h>.
* lib/dup-safer.c (STDERR_FILENO): Likewise.
* lib/execute.c (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
Likewise.
* lib/fd-safer.c (STDIN_FILENO, STDERR_FILENO): Likewise.
* lib/fopen-safer.c (STDERR_FILENO): Likewise.
* lib/pipe.c (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
Likewise.
* lib/tmpfile-safer.c (STDERR_FILENO): Likewise.
* tests/test-posix_spawn1.c (STDIN_FILENO, STDOUT_FILENO)
(STDERR_FILENO): Likewise.
* tests/test-posix_spawn2.c (STDIN_FILENO, STDOUT_FILENO)
(STDERR_FILENO): Likewise.
* tests/test-posix_spawn3.c (STDIN_FILENO, STDOUT_FILENO)
(STDERR_FILENO): Likewise.
Reported by Elbert Pol.
2009-01-19 Eric Blake <ebb9@byu.net>
doc: mention more functions added in cygwin 1.7.0
* doc/posix-functions/abort.texi (abort): Update wording related
to cygwin.
* doc/posix-functions/daylight.texi (daylight): Likewise.
* doc/posix-functions/optarg.texi (optarg): Likewise.
* doc/posix-functions/optarg.texi (opterr): Likewise.
* doc/posix-functions/optarg.texi (optind): Likewise.
* doc/posix-functions/optarg.texi (optopt): Likewise.
* doc/posix-functions/wprintf.texi (wprintf): Cygwin wprintf never
worked in 1.5.x, and was withdrawn in 1.7.
* doc/posix-functions/vwprintf.texi (vwprintf): Likewise.
* doc/posix-functions/fprintf.texi (fprintf): Tighten mention of
cygwin versions.
* doc/posix-functions/perror.texi (perror): Likewise.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/snprintf.texi (snprintf): Likewise.
* doc/posix-functions/sprintf.texi (sprintf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* doc/posix-functions/vsprintf.texi (vsprintf): Likewise.
* doc/glibc-functions/obstack_printf.texi (obstack_printf):
Likewise.
* doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf):
Likewise.
* doc/glibc-functions/cfmakeraw.texi (cfmakeraw): Cygwin 1.7 adds
this function.
* doc/glibc-functions/in6addr_any.texi (in6addr_any): Likewise.
* doc/glibc-functions/in6addr_loopback.texi (in6addr_loopback):
Likewise.
* doc/glibc-functions/updwtmpx.texi (updwtmpx): Likewise.
* doc/posix-functions/_Exit_C99.texi (_Exit): Likewise.
* doc/posix-functions/confstr.texi (confstr): Likewise.
* doc/posix-functions/dprintf.texi (dprintf): Likewise.
* doc/posix-functions/fgetwc.texi (fgetwc): Likewise.
* doc/posix-functions/fgetws.texi (fgetws): Likewise.
* doc/posix-functions/fputwc.texi (fputwc): Likewise.
* doc/posix-functions/fputws.texi (fputws): Likewise.
* doc/posix-functions/fwide.texi (fwide): Likewise.
* doc/posix-functions/getwc.texi (getwc): Likewise.
* doc/posix-functions/getwchar.texi (getwchar): Likewise.
* doc/posix-functions/putwc.texi (putwc): Likewise.
* doc/posix-functions/putwchar.texi (putwchar): Likewise.
* doc/posix-functions/sigignore.texi (sigignore): Likewise.
* doc/posix-functions/ungetwc.texi (ungetwc): Likewise.
* doc/posix-functions/vdprintf.texi (vdprintf): Likewise.
* doc/posix-functions/wcpcpy.texi (wcpcpy): Likewise.
* doc/posix-functions/wcpncpy.texi (wcpncpy): Likewise.
* doc/posix-functions/wcstol.texi (wcstol): Likewise.
* doc/posix-functions/wcstoll.texi (wcstoll): Likewise.
* doc/posix-functions/wcstoul.texi (wcstoul): Likewise.
* doc/posix-functions/wcstoull.texi (wcstoull): Likewise.
* doc/posix-functions/wcsxfrm.texi (wcsxfrm): Likewise.
2009-01-19 Daniel P. Berrange <berrange@redhat.com>
ioctl: avoid warning: no previous prototype for 'rpl_ioctl'
* lib/ioctl.c: Include <sys/ioctl.h>.
2009-01-19 Simon Josefsson <simon@josefsson.org>
* modules/getdate-tests (Depends-on): Add progname.
* tests/test-getdate.c: Use progname module, to avoid link errors
on non-glibc systems.
2009-01-18 Simon Josefsson <simon@josefsson.org>
* modules/filenamecat-tests (Depends-on): Add progname.
* modules/fstrcmp-tests (Depends-on): Likewise.
* tests/test-filenamecat.c: Use progname module, to avoid link
errors on non-glibc systems.
* tests/test-fstrcmp.c: Likewise.
2009-01-19 Daniel P. Berrange <berrange@redhat.com>
gettimeofday: avoid warning: nested extern declaration of 'localtime'
* lib/gettimeofday.c: Move extern declaration out of function.
2009-01-18 Bruno Haible <bruno@clisp.org>
* m4/strftime.m4 (gl_FUNC_STRFTIME): Don't test for mblen and mbrlen.
* lib/strftime.c (HAVE_MBLEN, HAVE_MBRLEN): Remove macros.
(MULTIBYTE_IS_FORMAT_SAFE): Define to 1 on all platforms except OSF/1.
2009-01-18 Bruno Haible <bruno@clisp.org>
* lib/strftime.c (MEMPCPY): Remove unused macro.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Don't test for mempcpy.
2009-01-18 Martin Lambers <marlam@marlam.de>
New module 'link'.
* lib/unistd.in.h (link): New declaration.
* lib/link.c: New file.
* m4/link.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_LINK,
HAVE_LINK.
* modules/unistd (Makefile.am): Substitute GNULIB_LINK, HAVE_LINK.
* modules/link: New file.
* doc/posix-functions/link.texi: Mention the new module.
2009-01-18 Bruno Haible <bruno@clisp.org>
* tests/test-avltree_list.c (main): Call set_program_name.
* tests/test-avltree_oset.c (main): Likewise.
* tests/test-obstack-printf.c: Include progname.h.
(main): Call set_program_name.
* tests/test-quotearg.c: Include progname.h.
(main): Call set_program_name.
* tests/test-xmemdup0.c: Include progname.h.
(main): Call set_program_name.
2009-01-18 Bruno Haible <bruno@clisp.org>
New module 'alphasort'.
* lib/dirent.in.h (alphasort): New declaration.
* lib/alphasort.c: New file, from glibc with modifications.
* m4/alphasort.m4: New file.
* modules/alphasort: New file.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_ALPHASORT,
HAVE_ALPHASORT.
* modules/dirent (Makefile.am): Substitute GNULIB_ALPHASORT,
HAVE_ALPHASORT.
* doc/posix-functions/alphasort.texi: Mention the new module and the
portability problems.
2009-01-18 Bruno Haible <bruno@clisp.org>
New module 'scandir'.
* lib/dirent.in.h (scandir): New declaration.
* lib/scandir.c: New file, from glibc with modifications.
* m4/scandir.m4: New file.
* modules/scandir: New file.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_SCANDIR,
HAVE_SCANDIR.
* modules/dirent (Makefile.am): Substitute GNULIB_SCANDIR,
HAVE_SCANDIR.
* doc/posix-functions/scandir.texi: Mention the new module and the
portability problems.
2009-01-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_remove_prefix): Escape all dots in the prefix.
Update documentation.
(func_remove_suffix): Escape all dots in the suffix. Update
documentation.
(func_filter_filelist): Update documentation.
Reported by Ralf Wildenhues.
2009-01-17 Bruno Haible <bruno@clisp.org>
* modules/dprintf-posix-tests: New file.
* tests/test-dprintf-posix.sh: New file.
* tests/test-dprintf-posix.c: New file.
New modules 'dprintf', 'dprintf-posix'.
* lib/stdio.in.h (dprintf): New declaration.
* lib/dprintf.c: New file.
* m4/dprintf.m4: New file.
* m4/dprintf-posix.m4: New file.
* modules/dprintf: New file.
* modules/dprintf-posix: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_DPRINTF,
HAVE_DPRINTF, REPLACE_DPRINTF.
* modules/stdio (Makefile.am): Substitute also GNULIB_DPRINTF,
HAVE_DPRINTF, REPLACE_DPRINTF.
* doc/posix-functions/dprintf.texi: Mention the new modules.
2009-01-17 Bruno Haible <bruno@clisp.org>
* modules/vdprintf-posix-tests: New file.
* tests/test-vdprintf-posix.sh: New file.
* tests/test-vdprintf-posix.c: New file.
New modules 'vdprintf', 'vdprintf-posix'.
* lib/stdio.in.h (vdprintf): New declaration.
* lib/vdprintf.c: New file.
* m4/vdprintf.m4: New file.
* m4/vdprintf-posix.m4: New file.
* modules/vdprintf: New file.
* modules/vdprintf-posix: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_VDPRINTF,
HAVE_VDPRINTF, REPLACE_VDPRINTF.
* modules/stdio (Makefile.am): Substitute also GNULIB_VDPRINTF,
HAVE_VDPRINTF, REPLACE_VDPRINTF.
* doc/posix-functions/vdprintf.texi: Mention the new modules.
2009-01-17 Bruno Haible <bruno@clisp.org>
Fix replacement of fopen on mingw.
* m4/fopen.m4 (gl_FUNC_FOPEN): Define FOPEN_TRAILING_SLASH_BUG also on
mingw.
2009-01-17 Bruno Haible <bruno@clisp.org>
Fix compilation error on HP-UX 11.00, present since 2008-09-24.
* lib/fopen.c: Include <sys/types.h> and <sys/types.h>.
2009-01-17 Bruno Haible <bruno@clisp.org>
Avoid test-fflush2.sh failure on mingw.
* tests/test-fflush2.c: Include binary-io.h.
(main): Put standard input into binary mode.
* modules/fflush-tests (Depends-on): Add binary-io.
2009-01-17 Bruno Haible <bruno@clisp.org>
* lib/wchar.in.h: In another particular situation, include only the
system's <wchar.h> file.
(_GL_ALREADY_INCLUDING_WCHAR_H): New macro.
Reported by Albert Chin-A-Young <china@thewrittenword.com>
and Thomas Guyot-Sionnest <dermoth@aei.ca>.
2009-01-17 Bruno Haible <bruno@clisp.org>
Support for stripping executables in --enable-relocatable.
* build-aux/install-reloc: Expect one more argument, or an environment
variable RELOC_STRIP_PROG. If set, strip the destination program and
its wrapper.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): In INSTALL_PROGRAM_ENV, set
RELOC_STRIP_PROG.
* doc/relocatable-maint.texi (Supporting Relocation): Mention the need
to set RELOCATABLE_STRIP.
* NEWS: Mention the new Makefile requirement.
2009-01-17 Bruno Haible <bruno@clisp.org>
* build-aux/install-reloc: Remove debugging information left over by
C compiler on MacOS X.
2009-01-17 Bruno Haible <bruno@clisp.org>
Update use of _NSGetExecutablePath after API change in MacOS X 10.4.
* lib/progreloc.c (find_executable): Fix type of pointer passed to
_NSGetExecutablePath.
2009-01-16 Jim Meyering <meyering@redhat.com>
strerror: avoid warnings about discarding "const"
* lib/strerror.c (rpl_strerror): Instead of returning a const
string from each and every "case", use a variable, and add a single
cast after the switch.
2009-01-16 Albert Chin-A-Young <china@thewrittenword.com>
* lib/arpa_inet.in.h: Add extern "C" block for C++.
2009-01-16 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_SNPRINTF_SIZE1, gl_VSNPRINTF_ZEROSIZE_C99): Use an
array initializer syntax that also works in C++ mode.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2009-01-16 Jim Meyering <meyering@redhat.com>
poll: suppress a warning
* lib/poll.c: Use #pragma GCC diagnostic ignored "-Wtype-limits"
to ignore "...unsigned expression < 0 is always false" warnings.
2009-01-16 Daniel P. Berrange <berrange@redhat.com>
poll: remove declarations of unused variables
* lib/poll.c (poll) [WIN32_NATIVE]: Remove declarations of unused
sockbuf and optlen.
2009-01-15 Bruno Haible <bruno@clisp.org>
Make fflush-after-ungetc POSIX compliant on BSD systems.
* lib/fflush.c (clear_ungetc_buffer_preserving_position): New function.
(clear_ungetc_buffer): Implement also for other systems.
(rpl_fflush): On glibc systems, invoke
clear_ungetc_buffer_preserving_position. Otherwise, invoke
clear_ungetc_buffer after fetching the stream's position, not before.
2009-01-15 Bruno Haible <bruno@clisp.org>
Make fflush-after-ungetc POSIX compliant on glibc systems.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Test also the behaviour of fflush
after ungetc.
* lib/fflush.c (clear_ungetc_buffer): Implement for glibc systems.
(rpl_fflush): On glibc systems, simply call the system's fflush
function after clearing the ungetc buffer.
* lib/fseeko.c (rpl_fseeko): Don't try to lseek past the end of file.
Instead, lseek only to the end of file, then use the system's fseeko
for the rest. On glibc systems, reset the EOF indicator bit.
2009-01-15 Jim Meyering <meyering@redhat.com>
openmp.m4: revert quote-adding change, for portability to older autoconf
* m4/openmp.m4: Remove the quotes added on 2009-01-14.
This reverts part of 42d1eda5dcce2d68deab7a642e7f29bcd7144a0d.
Simon Josefsson noticed the problem when using autoconf-2.61.
2009-01-15 Bruno Haible <bruno@clisp.org>
* tests/test-fflush2.sh: Invoke test-fflush2 twice.
* tests/test-fflush2.c (ASSERT): Always fail.
(main): Add two tests for fflush() after ungetc(), taking into account
the Austin Group's clarification.
Suggested by Eric Blake.
2009-01-15 Albert Chin-A-Young <china@thewrittenword.com>
mktime.m4: remove K&R-style function prototypes
* m4/mktime.m4 (AC_FUNC_MKTIME): Remove K&R-style function prototypes
for the Sun C++ compiler.
2009-01-14 Bruno Haible <bruno@clisp.org>
* lib/stdint.in.h (_GL_JUST_INCLUDE_SYSTEM_WCHAR_H): New macro, defined
while including <wchar.h>.
* lib/wchar.in.h: In two particular situations on HP-UX, include only
the system's <wchar.h> file.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2009-01-14 Bruno Haible <bruno@clisp.org>
* m4/csharp.m4: Don't mention gettext on the serial number line.
* m4/csharpexec.m4: Likewise.
* m4/eaccess.m4: Likewise.
* m4/javaexec.m4: Likewise.
* m4/sig_atomic_t.m4: Likewise.
* m4/tmpdir.m4: Likewise.
* m4/intldir.m4: Bump gettext version.
* m4/lib-ld.m4: Likewise.
2009-01-14 Bruno Haible <bruno@clisp.org>
* lib/progname.c (set_program_name): Add more comments.
Reported by Sergey Poznyakoff <gray@gnu.org.ua>.
2009-01-14 Simon Josefsson <simon@josefsson.org>
* lib/sys_stat.in.h: Include sys/types.h for nlink_t on systems
were sys/stat.h does not define it.
2009-01-14 Jim Meyering <meyering@redhat.com>
many *.m4 files: improve m4 quoting
99% of this change was performed by running the following commands:
git ls-files | grep '\.m4$' | xargs perl -pi \
-e 's/(AC_\w+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){1})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){3})([^,[()]+?)([,)])/$1\[$2]$3/g'
perl -pi -e 's/\[\.\.\.\]/.../' m4/onceonly.m4
The remainder were to add Copyright dates, increment serial numbers,
undo some changes in comments, exclude m4/intl.m4, and add quotes
around the "1" in ",1" where the unusual spacing prohibited the
above regexps from doing the job. For more details, see
<http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16175>.
* m4/acl.m4: Modified.
* m4/afs.m4: Likewise.
* m4/alloca.m4: Likewise.
* m4/argp.m4: Likewise.
* m4/argz.m4: Likewise.
* m4/atexit.m4: Likewise.
* m4/bison-i18n.m4: Likewise.
* m4/bison.m4: Likewise.
* m4/byteswap.m4: Likewise.
* m4/c-stack.m4: Likewise.
* m4/c-strtod.m4: Likewise.
* m4/calloc.m4: Likewise.
* m4/canonicalize-lgpl.m4: Likewise.
* m4/chown.m4: Likewise.
* m4/clock_time.m4: Likewise.
* m4/codeset.m4: Likewise.
* m4/copy-file.m4: Likewise.
* m4/csharp.m4: Likewise.
* m4/csharpcomp.m4: Likewise.
* m4/csharpexec.m4: Likewise.
* m4/d-ino.m4: Likewise.
* m4/d-type.m4: Likewise.
* m4/dirfd.m4: Likewise.
* m4/double-slash-root.m4: Likewise.
* m4/eaccess.m4: Likewise.
* m4/eealloc.m4: Likewise.
* m4/environ.m4: Likewise.
* m4/errno_h.m4: Likewise.
* m4/euidaccess.m4: Likewise.
* m4/execute.m4: Likewise.
* m4/fatal-signal.m4: Likewise.
* m4/fchdir.m4: Likewise.
* m4/fcntl_h.m4: Likewise.
* m4/fileblocks.m4: Likewise.
* m4/filenamecat.m4: Likewise.
* m4/findprog.m4: Likewise.
* m4/flexmember.m4: Likewise.
* m4/fnmatch.m4: Likewise.
* m4/fopen.m4: Likewise.
* m4/fpending.m4: Likewise.
* m4/fprintf-posix.m4: Likewise.
* m4/free.m4: Likewise.
* m4/frexp.m4: Likewise.
* m4/frexpl.m4: Likewise.
* m4/fsusage.m4: Likewise.
* m4/ftruncate.m4: Likewise.
* m4/gc-camellia.m4: Likewise.
* m4/gc-random.m4: Likewise.
* m4/gc.m4: Likewise.
* m4/getaddrinfo.m4: Likewise.
* m4/getcwd-abort-bug.m4: Likewise.
* m4/getcwd-path-max.m4: Likewise.
* m4/getdate.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/gethostname.m4: Likewise.
* m4/gethrxtime.m4: Likewise.
* m4/getline.m4: Likewise.
* m4/getloadavg.m4: Likewise.
* m4/getndelim2.m4: Likewise.
* m4/getpass.m4: Likewise.
* m4/gettext.m4: Likewise.
* m4/gettime.m4: Likewise.
* m4/gettimeofday.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/group-member.m4: Likewise.
* m4/host-os.m4: Likewise.
* m4/iconv.m4: Likewise.
* m4/iconv_open.m4: Likewise.
* m4/inet_ntop.m4: Likewise.
* m4/inet_pton.m4: Likewise.
* m4/inline.m4: Likewise.
* m4/intldir.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/intmax.m4: Likewise.
* m4/intmax_t.m4: Likewise.
* m4/inttypes.m4: Likewise.
* m4/inttypes_h.m4: Likewise.
* m4/inttypes-pri.m4: Likewise.
* m4/isapipe.m4: Likewise.
* m4/isnand.m4: Likewise.
* m4/isnanf.m4: Likewise.
* m4/isnanl.m4: Likewise.
* m4/javacomp.m4: Likewise.
* m4/javaexec.m4: Likewise.
* m4/jm-winsz1.m4: Likewise.
* m4/jm-winsz2.m4: Likewise.
* m4/lchown.m4: Likewise.
* m4/lcmessage.m4: Likewise.
* m4/ldexpl.m4: Likewise.
* m4/lib-ld.m4: Likewise.
* m4/lib-link.m4: Likewise.
* m4/libsigsegv.m4: Likewise.
* m4/link-follow.m4: Likewise.
* m4/localcharset.m4: Likewise.
* m4/locale-fr.m4: Likewise.
* m4/locale-ja.m4: Likewise.
* m4/locale-tr.m4: Likewise.
* m4/locale-zh.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/longlong.m4: Likewise.
* m4/ls-mntd-fs.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/mathl.m4: Likewise.
* m4/mbrtowc.m4: Likewise.
* m4/mbstate_t.m4: Likewise.
* m4/mbswidth.m4: Likewise.
* m4/memchr.m4: Likewise.
* m4/memcmp.m4: Likewise.
* m4/memcpy.m4: Likewise.
* m4/memmem.m4: Likewise.
* m4/memmove.m4: Likewise.
* m4/mempcpy.m4: Likewise.
* m4/memrchr.m4: Likewise.
* m4/memset.m4: Likewise.
* m4/minmax.m4: Likewise.
* m4/mkdir-slash.m4: Likewise.
* m4/mkdtemp.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/mmap-anon.m4: Likewise.
* m4/mountlist.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/nls.m4: Likewise.
* m4/nocrash.m4: Likewise.
* m4/open.m4: Likewise.
* m4/openat.m4: Likewise.
* m4/openmp.m4: Likewise.
* m4/pathmax.m4: Likewise.
* m4/perl.m4: Likewise.
* m4/physmem.m4: Likewise.
* m4/pipe.m4: Likewise.
* m4/po.m4: Likewise.
* m4/poll.m4: Likewise.
* m4/posixtm.m4: Likewise.
* m4/posixver.m4: Likewise.
* m4/printf-frexp.m4: Likewise.
* m4/printf-frexpl.m4: Likewise.
* m4/printf-posix.m4: Likewise.
* m4/printf-posix-rpl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/progtest.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/readline.m4: Likewise.
* m4/readlink.m4: Likewise.
* m4/readutmp.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/relocatable.m4: Likewise.
* m4/relocatable-lib.m4: Likewise.
* m4/rename-dest-slash.m4: Likewise.
* m4/rename.m4: Likewise.
* m4/rmdir-errno.m4: Likewise.
* m4/rmdir.m4: Likewise.
* m4/roundf.m4: Likewise.
* m4/roundl.m4: Likewise.
* m4/rpmatch.m4: Likewise.
* m4/save-cwd.m4: Likewise.
* m4/selinux-selinux-h.m4: Likewise.
* m4/setenv.m4: Likewise.
* m4/settime.m4: Likewise.
* m4/sig2str.m4: Likewise.
* m4/sig_atomic_t.m4: Likewise.
* m4/signalblocking.m4: Likewise.
* m4/signbit.m4: Likewise.
* m4/sigpipe.m4: Likewise.
* m4/sockets.m4: Likewise.
* m4/sockpfaf.m4: Likewise.
* m4/st_dm_mode.m4: Likewise.
* m4/stat-time.m4: Likewise.
* m4/stdbool.m4: Likewise.
* m4/stdint.m4: Likewise.
* m4/stdint_h.m4: Likewise.
* m4/stpcpy.m4: Likewise.
* m4/stpncpy.m4: Likewise.
* m4/strcase.m4: Likewise.
* m4/strchrnul.m4: Likewise.
* m4/strcspn.m4: Likewise.
* m4/strdup.m4: Likewise.
* m4/strftime.m4: Likewise.
* m4/strndup.m4: Likewise.
* m4/strnlen.m4: Likewise.
* m4/strpbrk.m4: Likewise.
* m4/strptime.m4: Likewise.
* m4/strsep.m4: Likewise.
* m4/strtod.m4: Likewise.
* m4/strtoimax.m4: Likewise.
* m4/strtok_r.m4: Likewise.
* m4/strtol.m4: Likewise.
* m4/strtoll.m4: Likewise.
* m4/strtoul.m4: Likewise.
* m4/strtoull.m4: Likewise.
* m4/strtoumax.m4: Likewise.
* m4/strverscmp.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/timegm.m4: Likewise.
* m4/tm_gmtoff.m4: Likewise.
* m4/tmpdir.m4: Likewise.
* m4/tmpfile.m4: Likewise.
* m4/tzset.m4: Likewise.
* m4/uintmax_t.m4: Likewise.
* m4/unlinkdir.m4: Likewise.
* m4/unlocked-io.m4: Likewise.
* m4/uptime.m4: Likewise.
* m4/userspec.m4: Likewise.
* m4/utimbuf.m4: Likewise.
* m4/utime.m4: Likewise.
* m4/utimes-null.m4: Likewise.
* m4/utimes.m4: Likewise.
* m4/vararrays.m4: Likewise.
* m4/vasnprintf.m4: Likewise.
* m4/vfprintf-posix.m4: Likewise.
* m4/vprintf-posix.m4: Likewise.
* m4/wait-process.m4: Likewise.
* m4/wchar_t.m4: Likewise.
* m4/wint_t.m4: Likewise.
* m4/write-any-file.m4: Likewise.
* m4/yield.m4: Likewise.
2009-01-13 Bruno Haible <bruno@clisp.org>
Avoid test-copy-file.sh failures when ACL support insufficient.
* modules/copy-file-tests (Makefile.am): Pass USE_ACL in
TESTS_ENVIRONMENT.
* tests/test-copy-file.sh: Skip the ACL comparisons if USE_ACL is 0.
Reported by Jim Meyering.
2009-01-13 Bruno Haible <bruno@clisp.org>
* modules/unistdio/u-printf-args (Files): Add m4/stdint_h.m4 and
m4/inttypes_h.m4, needed by m4/intmax_t.m4.
* modules/unistdio/u8-printf-parse (Files): Likewise.
* modules/unistdio/u32-printf-parse (Files): Likewise.
* modules/unistdio/ulc-printf-parse (Files): Likewise.
2009-01-13 Simon Josefsson <simon@josefsson.org>
* modules/unistdio/u16-printf-parse (Files): Add m4/stdint_h.m4
and m4/inttypes_h.m4 too.
2009-01-12 Eric Blake <ebb9@byu.net>
tests: IRIX 6.2 cc can't compile -0.0 into .data
* tests/test-ceill.c (minus_zero): Compute -0.0L at runtime,
rather than at compile-time.
* tests/test-floorl.c (minus_zero): Likewise.
* tests/test-frexpl.c (minus_zero): Likewise.
* tests/test-isnan.c (minus_zerol): Likewise.
* tests/test-isnanl.h (minus_zero): Likewise.
* tests/test-ldexpl.c (minus_zero): Likewise.
* tests/test-roundl.c (minus_zero): Likewise.
* tests/test-signbit.c (minus_zerol): Likewise.
* tests/test-snprintf-posix.h (minus_zerol): Likewise.
* tests/test-sprintf-posix.h (minus_zerol): Likewise.
* tests/test-truncl.c (minus_zero): Likewise.
* tests/test-vasnprintf-posix.c (minus_zerol): Likewise.
* tests/test-vasprintf-posix.c (minus_zerol): Likewise.
Reported by Tom G. Christensen and Nelson H. F. Beebe.
2009-01-09 Paolo Bonzini <bonzini@gnu.org>
regex: fix glibc bug 9697
* lib/regcomp.c (re_compile_fastmap_iter): Rewrite COMPLEX_BRACKET
handling.
2009-01-09 Paolo Bonzini <bonzini@gnu.org>
regex: fix glibc bug 697
* lib/regexec.c (prune_impossible_nodes): Handle sifted_states[0]
being NULL also if there are no backreferences.
2009-01-09 Paolo Bonzini <bonzini@gnu.org>
regex: merge glibc changes
* lib/regcomp.c (re_compile_fastmap_iter): Use __mbrtowc.
* lib/regex_internal.c (build_wcs_buffer, build_wcs_upper_buffer,
re_string_skip_chars, re_string_reconstruct): Likewise.
* lib/regex_internal.h [!_LIBC] (__mbrtowc): New #define.
2009-01-07 Jim Meyering <meyering@redhat.com>
poll: filter through cppi
* lib/poll.c: Indent cpp directives to reflect nesting.
2009-01-07 Daniel P. Berrange <berrange@redhat.com>
poll: don't return uninitialized
* lib/poll.c (poll) [WIN32_NATIVE]: Initialize "rc".
2009-01-06 Jeremy Olexa <darkside@gentoo.org> (tiny change)
avoid compile failure on AIX 6.1
* lib/getloadavg.c [HAVE_LIBPERFSTAT]: Include <sys/protosw.h>.
Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15465
2009-01-04 Jim Meyering <meyering@redhat.com>
remove duplicate inclusion of <stdio.h>
* tests/test-fprintf-posix.c: Likewise.
* tests/test-printf-posix.c: Likewise.
* tests/test-snprintf-posix.c: Likewise.
* tests/test-sprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* tests/test-vfprintf-posix.c: Likewise.
* tests/test-vprintf-posix.c: Likewise.
* tests/test-vsnprintf-posix.c: Likewise.
* tests/test-vsprintf-posix.c: Likewise.
2009-01-03 Jim Meyering <meyering@redhat.com>
gnulib-tool: fix sed-based filtering
* gnulib-tool (func_filter_filelist): Remove extra backslash
in sed_fff_filter definition.
2009-01-02 Jim Meyering <meyering@redhat.com>
strftime: avoid compilation failure on Solaris 2.6
* modules/strftime (Depends-on): Add mbrlen and mbsinit.
* lib/strftime.c [DO_MULTIBYTE]: Include <wchar.h> unconditionally.
Don't #define mbrlen or mbsinit, since now they're guaranteed to
be available. Reported by Tom G. Christensen. Details in
<http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16180>.
2009-01-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
Speed up gnulib-tool by doing more string processing through shell
built-ins.
* gnulib-tool (fast_func_append): New variable.
(func_remove_prefix, func_remove_suffix): New functions.
(fast_func_remove_prefix, fast_func_remove_suffix): New variables.
(func_filter_filelist): New function.
(func_get_dependencies): Use func_remove_suffix instead of sed.
(func_get_automake_snippet): Use func_filter_filelist instead of a
subshell and sed invocation.
2009-01-01 Bruno Haible <bruno@clisp.org>
Fix a security bug.
* gnulib-tool (func_import, import, update): Don't allow the characters
'"', '$', '`', '\' in macro arguments that become part of commands that
are evaluated.
2009-01-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_reset_sigpipe): Add more comments.
2009-01-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_modules_add_dummy, func_emit_lib_Makefile_am,
func_emit_tests_Makefile_am, func_import): Abort loops early if we
already know the answer.
2009-01-01 Jim Meyering <meyering@redhat.com>
* lib/version-etc.c (version_etc_va): Update copyright year.
2008-12-30 Bruno Haible <bruno@clisp.org>
* m4/lib-prefix.m4 (AC_LIB_LINKFLAGS_BODY): Don't overwrite
LIB${NAME}_PREFIX when considering the dependencies of lib${name}.
Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>.
2008-12-29 Eric Blake <ebb9@byu.net>
multiarch: avoid autoconf AC_REQUIRE bug
* m4/multiarch.m4 (gl_MULTIARCH): Split body...
(gl_MULTIARCH_BODY): ...into new macro, to work around bug in Autoconf
2.63 and older.
Reported by Bruno Haible, and analyzed in
http://lists.gnu.org/r/bug-autoconf/2008-12/msg00039.html
2008-12-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): When generating sed-ignore-removed, handle
files in subdirectories correctly.
Reported by Ralf Wildenhues.
2008-12-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_update_ignorelist): Use 'join - FILE'
rather than 'join FILE -', for Solaris join.
2008-12-29 Bruno Haible <bruno@clisp.org>
* m4/codeset.m4 (AM_LANGINFO_CODESET): More systematic m4 argument
quoting.
* m4/gettext.m4 (AM_GNU_GETTEXT): Likewise.
* m4/glibc2.m4 (gt_GLIBC2): Likewise.
* m4/glibc21.m4 (gl_GLIBC21): Likewise.
* m4/iconv.m4 (AM_ICONV_LINK, AM_ICONV): Likewise.
* m4/intdiv0.m4 (gt_INTDIV0): Likewise.
* m4/intlmacosx.m4 (gt_INTL_MACOSX): Likewise.
* m4/intmax.m4 (gt_TYPE_INTMAX_T): Likewise.
* m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Likewise.
* m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise.
* m4/lcmessage.m4 (gt_LC_MESSAGES): Likewise.
* m4/nls.m4 (AM_NLS): Likewise.
* m4/po.m4 (AM_PO_SUBDIRS): Likewise.
* m4/printf-posix.m4 (gt_PRINTF_POSIX): Likewise.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise.
* m4/size_max.m4 (gl_SIZE_MAX): Likewise.
* m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise.
* m4/uintmax_t.m4 (gl_AC_TYPE_UINTMAX_T): Likewise.
* m4/visibility.m4 (gl_VISIBILITY): Likewise.
* m4/wchar_t.m4 (gt_TYPE_WCHAR_T): Likewise.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise.
* m4/xsize.m4 (gl_XSIZE): Likewise.
Suggested by Jim Meyering.
2008-11-17 Bruce Korb <bkorb@gnu.org>
* lib/parse-duration.h: non-iso form accepts years, months weeks, too
* lib/parse-duration.c: use a switch instead of cascading if's.
2008-12-29 Eric Blake <ebb9@byu.net>
wchar.h: supply WEOF on Irix 5.3
* lib/wchar.in.h (wint_t): Also supply WEOF.
* lib/wctype.in.h (wint_t): Likewise.
* doc/posix-headers/wchar.texi (wchar.h): Document the bug.
* doc/posix-headers/wctype.texi (wctype.h): Likewise.
Reported by Tom G. Christensen.
2008-12-26 Bruno Haible <bruno@clisp.org>
* m4/multiarch.m4 (gl_MULTIARCH): Recognize also the architecture names
i486, i586, i686.
2008-12-26 Bruno Haible <bruno@clisp.org>
* lib/stdlib.in.h (struct random_data): Fix indentation of comments.
2008-12-26 Bruno Haible <bruno@clisp.org>
* lib/stdint.in.h: Move the include of <wchar.h> down until after all
the types are defined. Also conditionalize it on __STDC_LIMIT_MACROS,
not __STDC_CONSTANT_MACROS.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu> via Eric Blake.
2008-12-25 Bruno Haible <bruno@clisp.org>
Add support for universal builds to vasnprintf.
* m4/printf.m4 (gl_PRINTF_ENOMEM): Require gl_MULTIARCH. In Apple
universal builds, guess no.
* modules/vasnprintf-posix (Depends-on): Add multiarch.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
Add support for universal builds to <inttypes.h>.
* lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX,
_SCNu64_PREFIX): In Apple
universal builds, define directly, using _LP64.
* m4/inttypes.m4 (gl_INTTYPES_H): In Apple universal builds, set
INT64_MAX_EQ_LONG_MAX and UINT64_MAX_EQ_ULONG_MAX to -1.
* modules/inttypes (Depends-on): Add multiarch.
(Makefile.am): Substitute APPLE_UNIVERSAL_BUILD.
Add support for universal builds to <stdint.h>.
* lib/stdint.in.h (PDFDIFF_MIN, PTRDIFF_MAX, SIZE_MAX): In Apple
universal builds, define directly, using _LP64.
* m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Require gl_MULTIARCH. In
Apple universal builds, don't test for the size and suffix of ptrdiff_t
and size_t.
* modules/stdint (Depends-on): Add multiarch.
(Makefile.am): Substitute APPLE_UNIVERSAL_BUILD.
New module 'multiarch'.
* modules/multiarch: New file.
* m4/multiarch.m4: New file.
2008-12-25 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Avoid failure of mv command.
2008-12-25 Bruno Haible <bruno@clisp.org>
* modules/btowc (License): Relicense under LGPLv2+.
* modules/mbsinit (License): Likewise.
* modules/mbrtowc (License): Likewise.
* modules/wcrtomb (License): Likewise.
* modules/streq (License): Likewise.
Reported by David Lutterkort <lutter@redhat.com>.
2008-12-23 Bruno Haible <bruno@clisp.org>
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Fix conditional and comment.
2008-12-23 Bruno Haible <bruno@clisp.org>
Module getaddrinfo requires linking with $(GETADDRINFO_LIB).
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Put link options into
GETADDRINFO_LIB, not in LIBS.
* modules/getaddrinfo (Link): Set to $(GETADDRINFO_LIB).
* modules/canon-host (Link): Likewise.
* NEWS: Mention the change.
* modules/getaddrinfo-tests (test_getaddrinfo_LDADD): Add the
GETADDRINFO_LIB.
2008-12-22 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/iswalnum_l.texi: Mention limitation of wchar_t.
* doc/posix-functions/iswalpha_l.texi: Likewise.
* doc/posix-functions/iswblank_l.texi: Likewise.
* doc/posix-functions/iswcntrl_l.texi: Likewise.
* doc/posix-functions/iswctype_l.texi: Likewise.
* doc/posix-functions/iswdigit_l.texi: Likewise.
* doc/posix-functions/iswgraph_l.texi: Likewise.
* doc/posix-functions/iswlower_l.texi: Likewise.
* doc/posix-functions/iswprint_l.texi: Likewise.
* doc/posix-functions/iswpunct_l.texi: Likewise.
* doc/posix-functions/iswspace_l.texi: Likewise.
* doc/posix-functions/iswupper_l.texi: Likewise.
* doc/posix-functions/iswxdigit_l.texi: Likewise.
* doc/posix-functions/mbsnrtowcs.texi: Likewise.
* doc/posix-functions/open_wmemstream.texi: Likewise.
* doc/posix-functions/swscanf.texi: Likewise.
* doc/posix-functions/towctrans_l.texi: Likewise.
* doc/posix-functions/towlower.texi: Likewise.
* doc/posix-functions/towlower_l.texi: Likewise.
* doc/posix-functions/towupper.texi: Likewise.
* doc/posix-functions/towupper_l.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vfwscanf.texi: Likewise.
* doc/posix-functions/vswscanf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/vwscanf.texi: Likewise.
* doc/posix-functions/wcpcpy.texi: Likewise.
* doc/posix-functions/wcpncpy.texi: Likewise.
* doc/posix-functions/wcscasecmp.texi: Likewise.
* doc/posix-functions/wcscasecmp_l.texi: Likewise.
* doc/posix-functions/wcscoll_l.texi: Likewise.
* doc/posix-functions/wcsdup.texi: Likewise.
* doc/posix-functions/wcsncasecmp.texi: Likewise.
* doc/posix-functions/wcsncasecmp_l.texi: Likewise.
* doc/posix-functions/wcsnlen.texi: Likewise.
* doc/posix-functions/wcsnrtombs.texi: Likewise.
* doc/posix-functions/wcsxfrm_l.texi: Likewise.
* doc/posix-functions/wctrans_l.texi: Likewise.
* doc/posix-functions/wctype_l.texi: Likewise.
* doc/glibc-functions/fgetwc_unlocked.texi: Likewise.
* doc/glibc-functions/fgetws_unlocked.texi: Likewise.
* doc/glibc-functions/fputwc_unlocked.texi: Likewise.
* doc/glibc-functions/fputws_unlocked.texi: Likewise.
* doc/glibc-functions/getwc_unlocked.texi: Likewise.
* doc/glibc-functions/getwchar_unlocked.texi: Likewise.
* doc/glibc-functions/putwc_unlocked.texi: Likewise.
* doc/glibc-functions/putwchar_unlocked.texi: Likewise.
* doc/glibc-functions/wcschrnul.texi: Likewise.
* doc/glibc-functions/wcsftime_l.texi: Likewise.
* doc/glibc-functions/wcstod_l.texi: Likewise.
* doc/glibc-functions/wcstof_l.texi: Likewise.
* doc/glibc-functions/wcstol_l.texi: Likewise.
* doc/glibc-functions/wcstold_l.texi: Likewise.
* doc/glibc-functions/wcstoll_l.texi: Likewise.
* doc/glibc-functions/wcstoq.texi: Likewise.
* doc/glibc-functions/wcstoul_l.texi: Likewise.
* doc/glibc-functions/wcstoull_l.texi: Likewise.
* doc/glibc-functions/wcstouq.texi: Likewise.
* doc/glibc-functions/wmempcpy.texi: Likewise.
2008-12-22 Ingo Weinhold <ingo_weinhold@gmx.de> (tiny change)
Eric Blake <ebb9@byu.net>
Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
Make c-stack work on Haiku.
* lib/c-stack.c (SA_ONSTACK): Define fallback.
(c_stack_action): Use SA_ONSTACK flag.
2008-12-22 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR_UTF8): Treat Haiku like BeOS.
2008-12-22 Bruno Haible <bruno@clisp.org>
Work around mbrlen() bugs on AIX, HP-UX, OSF/1, Solaris.
* m4/mbrlen.m4 (gl_FUNC_MBRLEN): Set REPLACE_MBRLEN if mbrtowc is
being overridden.
(gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL):
New macros.
* lib/wchar.in.h (mbrlen): Override if REPLACE_MBRLEN is set.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBRLEN.
* modules/wchar (Makefile.am): Substitute REPLACE_MBRLEN.
* doc/posix-functions/mbrlen.texi: Mention the various platform bugs.
2008-12-22 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Remove unused variable
from test code.
2008-12-22 Eric Blake <ebb9@byu.net>
Avoid gcc warnings on cygwin.
* lib/regex_internal.c (re_string_reconstruct) [!RE_ENABLE_I18N]:
Avoid unused variable.
* lib/regexec.c (check_arrival_add_next_nodes) [!RE_ENABLE_I18N]:
Likewise.
2008-12-22 Bruno Haible <bruno@clisp.org>
Remove HAVE_MBRTOWC conditionals.
* lib/mbscasecmp.c: Include mbuiter.h unconditionally.
(mbscasecmp): Assume mbrtowc function.
* lib/mbscasestr.c: Include mbuiter.h unconditionally.
(knuth_morris_pratt_multibyte, mbscasestr): Assume mbrtowc function.
* lib/mbschr.c: Include mbuiter.h unconditionally.
(mbschr): Assume mbrtowc function.
* lib/mbscspn.c: Include mbuiter.h unconditionally.
(mbscspn): Assume mbrtowc function.
* lib/mbslen.c: Include mbuiter.h unconditionally.
(mbslen): Assume mbrtowc function.
* lib/mbsncasecmp.c: Include mbuiter.h unconditionally.
(mbsncasecmp): Assume mbrtowc function.
* lib/mbsnlen.c: Include mbiter.h unconditionally.
(mbsnlen): Assume mbrtowc function.
* lib/mbspbrk.c: Include mbuiter.h unconditionally.
(mbspbrk): Assume mbrtowc function.
* lib/mbspcasecmp.c: Include mbuiter.h unconditionally.
(mbspcasecmp): Assume mbrtowc function.
* lib/mbsrchr.c: Include mbuiter.h unconditionally.
(mbsrchr): Assume mbrtowc function.
* lib/mbssep.c: Include mbuiter.h unconditionally.
(mbssep): Assume mbrtowc function.
* lib/mbsspn.c: Include mbuiter.h unconditionally.
(mbsspn): Assume mbrtowc function.
* lib/mbsstr.c: Include mbuiter.h unconditionally.
(knuth_morris_pratt_multibyte, mbsstr): Assume mbrtowc function.
* lib/mbstok_r.c: Include mbuiter.h unconditionally.
(mbstok_r): Assume mbrtowc function.
* lib/propername.c: Include mbuiter.h unconditionally.
(mbsstr_trimmed_wordbounded): Assume mbrtowc function.
* lib/trim.c: Include mbchar.h, mbiter.h unconditionally.
(trim2): Assume mbrtowc function.
* lib/mbswidth.c (mbsinit): Remove fallback definition.
(mbsnwidth): Assume mbrtowc function.
* modules/mbswidth (Depends-on): Add mbrtowc, mbsinit.
* lib/quotearg.c (MB_CUR_MAX, mbstate_t, mbrtowc, iswprint): Remove
fallback definitions.
* modules/quotearg (Depends-on): Add mbrtowc, mbsinit.
2008-12-22 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/mbtowc.texi: Mention a glibc bug.
2008-12-22 Paolo Bonzini <bonzini@gnu.org>
* modules/regex: Request emulations for the mb*/wc* functions we need.
* m4/regex.m4: Don't look for those functions here.
* lib/regex_internal.h: Do not check HAVE_WCRTOMB and HAVE_MBRTOWC.
2008-12-22 Bruno Haible <bruno@clisp.org>
* modules/fnmatch (Depends-on): Remove duplicated dependency.
2008-12-21 Bruno Haible <bruno@clisp.org>
Make mbiter.h, mbuiter.h, mbfile.h usable unconditionally.
* modules/mbiter (Depends-on): Add mbrtowc, mbsinit.
(Include): Remove conditionalization.
* modules/mbuiter (Depends-on): Add mbrtowc, mbsinit.
(Include): Remove conditionalization.
* modules/mbfile (Depends-on): Add mbrtowc, mbsinit.
(Include): Remove conditionalization.
* m4/mbiter.m4 (gl_MBITER): Deprecate the use of AC_FUNC_MBRTOWC.
* m4/mbfile.m4 (gl_MBFILE): Likewise.
* NEWS: Mention the change.
Reported by Alan Hourihane <alanh@fairlite.co.uk>
via Sergey Poznyakoff <gray@gnu.org.ua>.
2008-12-21 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Extended multibyte and wide character utilities
<wchar.h>): Add btowc, wctob, mbsinit, mbrlen, mbrtowc, mbsrtowcs,
wcrtomb, wcsrtombs.
(Support for systems lacking POSIX:2008): Add accept, bind, close,
connect, fclose, getpeername, getsockname, getsockopt, hostent, listen,
mbsnrtowcs, posix_spawn*, recv, recvfrom, sched, select, send, sendto,
setsockopt, shutdown, socket, spawn, sys_wait, wcsnrtombs, write.
2008-12-21 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Change section titles to refer to POSIX:2008.
2008-12-21 Bruno Haible <bruno@clisp.org>
* modules/wcsnrtombs-tests: New file.
* tests/test-wcsnrtombs1.sh: New file.
* tests/test-wcsnrtombs2.sh: New file.
* tests/test-wcsnrtombs3.sh: New file.
* tests/test-wcsnrtombs4.sh: New file.
* tests/test-wcsnrtombs.c: New file.
New module 'wcsnrtombs'.
* lib/wchar.in.h (wcsnrtombs): New declaration.
* lib/wcsnrtombs.c: New file.
* lib/wcsrtombs-state.c: New file.
* lib/wcsrtombs.c: Refer to _gl_wcsrtombs_state.
(internal_state): Remove variable.
* m4/wcsnrtombs.m4: New file.
* m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): Add wcsrtombs-state.c to the
compilation units.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNRTOMBS,
HAVE_WCSNRTOMBS.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSNRTOMBS,
HAVE_WCSNRTOMBS.
* modules/wcsnrtombs: New file.
* modules/wcsrtombs (Files): Add lib/wcsrtombs-state.c.
* doc/posix-functions/wcsnrtombs.texi: Mention the new module.
2008-12-21 Bruno Haible <bruno@clisp.org>
* modules/wcsrtombs-tests: New file.
* tests/test-wcsrtombs1.sh: New file.
* tests/test-wcsrtombs2.sh: New file.
* tests/test-wcsrtombs3.sh: New file.
* tests/test-wcsrtombs4.sh: New file.
* tests/test-wcsrtombs.c: New file.
New module 'wcsrtombs'.
* lib/wchar.in.h (wcsrtombs): New declaration.
* lib/wcsrtombs.c: New file.
* m4/wcsrtombs.m4: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRTOMBS,
HAVE_WCSRTOMBS, REPLACE_WCSRTOMBS.
* modules/wchar (Makefile.am): Substitute GNULIB_WCSRTOMBS,
HAVE_WCSRTOMBS, REPLACE_WCSRTOMBS.
* modules/wcsrtombs: New file.
* doc/posix-functions/wcsrtombs.texi: Mention the new module and the
bugs.
2008-12-21 Bruno Haible <bruno@clisp.org>
Work around a wcrtomb() bug on Solaris 10 and OSF/1 5.1.
* lib/wchar.in.h (wcrtomb): Override if REPLACE_WCRTOMB is set.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Test the return value of wcrtomb
with NULL destination argument in various locales. Set REPLACE_WCRTOMB
if not correct.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCRTOMB.
* modules/wchar (Makefile.am): Substitute REPLACE_WCRTOMB.
* modules/wcrtomb (Files): Add m4/locale-fr.m4, m4/locale-ja.m4,
m4/locale-zh.m4, m4/codeset.m4.
* doc/posix-functions/wcrtomb.texi: Document the bug.
2008-12-21 Bruno Haible <bruno@clisp.org>
Work around a btowc() bug on IRIX 6.5.
* lib/wchar.in.h (btowc): Override if REPLACE_BTOWC is set.
* m4/btowc.m4 (gl_FUNC_BTOWC): Test whether btowc(EOF) is correct. Set
REPLACE_WTOBC if not.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_BTOWC.
* modules/wchar (Makefile.am): Substitute REPLACE_BTOWC.
* doc/posix-functions/btowc.texi: Mention the IRIX bug.
2008-12-21 Bruno Haible <bruno@clisp.org>
* modules/wcrtomb-tests: New file.
* tests/test-wcrtomb.sh: New file.
* tests/test-wcrtomb.c: New file.
New module 'wcrtomb'.
* lib/wchar.in.h (wcrtomb): New declaration.
* lib/wcrtomb.c: New file.
* m4/wcrtomb.m4: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCRTOMB,
HAVE_WCRTOMB.
* modules/wchar (Makefile.am): Substitute GNULIB_WCRTOMB,
HAVE_WCRTOMB.
* modules/wcrtomb: New file.
* doc/posix-functions/wcrtomb.texi: Mention the new module.
2008-12-21 Bruno Haible <bruno@clisp.org>
* modules/mbrtowc (Files): Add m4/codeset.m4, needed by m4/locale-fr.m4.
* modules/mbsrtowcs (Files): Likewise.
* modules/wctob (Files): Likewise.
* modules/c-strcase-tests (Files): Likewise.
* modules/unistdio/u8-vasnprintf-tests (Files): Likewise.
* modules/unistdio/u16-vasnprintf-tests (Files): Likewise.
* modules/unistdio/u32-vasnprintf-tests (Files): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
2008-12-21 William Pursell <bill.pursell@gmail.com>
gitlog-to-changelog: pass all command-line arguments to git-log
* build-aux/gitlog-to-changelog: When producing a ChangeLog,
it is sometimes convenient to filter the commits in various ways.
gitlog-to-changelog only allows --since to specify a start date,
but git-log itself supports many other filtering mechanisms.
At the moment, I want to filter by branch name. Rather than
adding a --branch option to gitlog-to-changelog, it seems more
flexible to simply pass all options directly to git-log and let
git do the work. Notice that this effectively makes --since a
redundant option for gitlog-to-changelog, but removing it would
require current usage to change since calls would then require
an additional '--'.
2008-12-21 Bruno Haible <bruno@clisp.org>
* modules/mbsnrtowcs-tests: New file.
* tests/test-mbsnrtowcs1.sh: New file.
* tests/test-mbsnrtowcs2.sh: New file.
* tests/test-mbsnrtowcs3.sh: New file.
* tests/test-mbsnrtowcs4.sh: New file.
* tests/test-mbsnrtowcs.c: New file.
New module 'mbsnrtowcs'.
* lib/wchar.in.h (mbsnrtowcs): New declaration.
* lib/mbsnrtowcs.c: New file.
* lib/mbsrtowcs-state.c: New file.
* lib/mbsrtowcs.c: Refer to _gl_mbsrtowcs_state.
(internal_state): Remove variable.
* m4/mbsnrtowcs.m4: New file.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Add mbsrtowcs-state.c to the
compilation units.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSNRTOWCS,
HAVE_MBSNRTOWCS, REPLACE_MBSNRTOWCS.
* modules/wchar (Makefile.am): Substitute GNULIB_MBSNRTOWCS,
HAVE_MBSNRTOWCS, REPLACE_MBSNRTOWCS.
* modules/mbsnrtowcs: New file.
* modules/mbsrtowcs (Files): Add lib/mbsrtowcs-state.c.
* doc/posix-functions/mbsnrtowcs.texi: Mention the new module and a
portability problem.
2008-12-21 Bruno Haible <bruno@clisp.org>
Work around mbsrtowcs bug.
* m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): New macro.
(gl_FUNC_MBSRTOWCS): Invoke it.
* modules/mbsrtowcs (Files): Add m4/locale-fr.m4, m4/locale-ja.m4,
m4/locale-zh.m4.
* doc/posix-functions/mbsrtowcs.texi: Document the bug.
2008-12-21 Bruno Haible <bruno@clisp.org>
* tests/test-mbsrtowcs.c (main): Execute the loop also for unlimited=1.
2008-12-21 Bruno Haible <bruno@clisp.org>
Update doc for AIX.
* doc/pastposix-functions/wcswcs.texi: Mention that AIX has only a
16-bit wchar_t type.
* doc/posix-functions/btowc.texi: Likewise.
* doc/posix-functions/fgetwc.texi: Likewise.
* doc/posix-functions/fgetws.texi: Likewise.
* doc/posix-functions/fputwc.texi: Likewise.
* doc/posix-functions/fputws.texi: Likewise.
* doc/posix-functions/fwide.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/fwscanf.texi: Likewise.
* doc/posix-functions/getwchar.texi: Likewise.
* doc/posix-functions/getwc.texi: Likewise.
* doc/posix-functions/iswalnum.texi: Likewise.
* doc/posix-functions/iswalpha.texi: Likewise.
* doc/posix-functions/iswblank.texi: Likewise.
* doc/posix-functions/iswcntrl.texi: Likewise.
* doc/posix-functions/iswctype.texi: Likewise.
* doc/posix-functions/iswdigit.texi: Likewise.
* doc/posix-functions/iswgraph.texi: Likewise.
* doc/posix-functions/iswlower.texi: Likewise.
* doc/posix-functions/iswprint.texi: Likewise.
* doc/posix-functions/iswpunct.texi: Likewise.
* doc/posix-functions/iswspace.texi: Likewise.
* doc/posix-functions/iswupper.texi: Likewise.
* doc/posix-functions/iswxdigit.texi: Likewise.
* doc/posix-functions/mbrtowc.texi: Likewise.
* doc/posix-functions/mbsrtowcs.texi: Likewise.
* doc/posix-functions/mbstowcs.texi: Likewise.
* doc/posix-functions/mbtowc.texi: Likewise.
* doc/posix-functions/putwchar.texi: Likewise.
* doc/posix-functions/putwc.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/tolower.texi: Likewise.
* doc/posix-functions/toupper.texi: Likewise.
* doc/posix-functions/towctrans.texi: Likewise.
* doc/posix-functions/ungetwc.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/wcrtomb.texi: Likewise.
* doc/posix-functions/wcscat.texi: Likewise.
* doc/posix-functions/wcschr.texi: Likewise.
* doc/posix-functions/wcscmp.texi: Likewise.
* doc/posix-functions/wcscoll.texi: Likewise.
* doc/posix-functions/wcscpy.texi: Likewise.
* doc/posix-functions/wcscspn.texi: Likewise.
* doc/posix-functions/wcsftime.texi: Likewise.
* doc/posix-functions/wcslen.texi: Likewise.
* doc/posix-functions/wcsncat.texi: Likewise.
* doc/posix-functions/wcsncmp.texi: Likewise.
* doc/posix-functions/wcsncpy.texi: Likewise.
* doc/posix-functions/wcspbrk.texi: Likewise.
* doc/posix-functions/wcsrchr.texi: Likewise.
* doc/posix-functions/wcsrtombs.texi: Likewise.
* doc/posix-functions/wcsspn.texi: Likewise.
* doc/posix-functions/wcsstr.texi: Likewise.
* doc/posix-functions/wcstod.texi: Likewise.
* doc/posix-functions/wcstof.texi: Likewise.
* doc/posix-functions/wcstoimax.texi: Likewise.
* doc/posix-functions/wcstok.texi: Likewise.
* doc/posix-functions/wcstold.texi: Likewise.
* doc/posix-functions/wcstoll.texi: Likewise.
* doc/posix-functions/wcstol.texi: Likewise.
* doc/posix-functions/wcstombs.texi: Likewise.
* doc/posix-functions/wcstoull.texi: Likewise.
* doc/posix-functions/wcstoul.texi: Likewise.
* doc/posix-functions/wcstoumax.texi: Likewise.
* doc/posix-functions/wcswidth.texi: Likewise.
* doc/posix-functions/wcsxfrm.texi: Likewise.
* doc/posix-functions/wctob.texi: Likewise.
* doc/posix-functions/wctomb.texi: Likewise.
* doc/posix-functions/wctrans.texi: Likewise.
* doc/posix-functions/wctype.texi: Likewise.
* doc/posix-functions/wcwidth.texi: Likewise.
* doc/posix-functions/wmemchr.texi: Likewise.
* doc/posix-functions/wmemcmp.texi: Likewise.
* doc/posix-functions/wmemcpy.texi: Likewise.
* doc/posix-functions/wmemmove.texi: Likewise.
* doc/posix-functions/wmemset.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/wscanf.texi: Likewise.
2008-12-21 Bruno Haible <bruno@clisp.org>
Update doc for HP-UX 11.11.
* doc/posix-functions/btowc.texi: Clarify that the function is missing
in HP-UX version 11.00, not in all versions of HP-UX 11.
* doc/posix-functions/fwide.texi: Likewise.
* doc/posix-functions/fwprintf.texi: Likewise.
* doc/posix-functions/fwscanf.texi: Likewise.
* doc/posix-functions/inet_ntop.texi: Likewise.
* doc/posix-functions/inet_pton.texi: Likewise.
* doc/posix-functions/mbrlen.texi: Likewise.
* doc/posix-functions/mbrtowc.texi: Likewise.
* doc/posix-functions/mbsinit.texi: Likewise.
* doc/posix-functions/mbsrtowcs.texi: Likewise.
* doc/posix-functions/swprintf.texi: Likewise.
* doc/posix-functions/swscanf.texi: Likewise.
* doc/posix-functions/towctrans.texi: Likewise.
* doc/posix-functions/vfwprintf.texi: Likewise.
* doc/posix-functions/vswprintf.texi: Likewise.
* doc/posix-functions/vwprintf.texi: Likewise.
* doc/posix-functions/wcrtomb.texi: Likewise.
* doc/posix-functions/wcsrtombs.texi: Likewise.
* doc/posix-functions/wcsstr.texi: Likewise.
* doc/posix-functions/wctob.texi: Likewise.
* doc/posix-functions/wctrans.texi: Likewise.
* doc/posix-functions/wmemchr.texi: Likewise.
* doc/posix-functions/wmemcmp.texi: Likewise.
* doc/posix-functions/wmemcpy.texi: Likewise.
* doc/posix-functions/wmemmove.texi: Likewise.
* doc/posix-functions/wmemset.texi: Likewise.
* doc/posix-functions/wprintf.texi: Likewise.
* doc/posix-functions/wscanf.texi: Likewise.
2008-12-21 Bruno Haible <bruno@clisp.org>
Work around a portability problem.
* tests/test-mbsrtowcs.c (main): Use a temporary conversion state.
* doc/posix-functions/mbsrtowcs.texi: Document the portability problem.
2008-12-20 Bruno Haible <bruno@clisp.org>
* lib/wchar.in.h (mbsrtowcs): Redefine if REPLACE_MBSRTOWCS is set.
* m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Invoke gl_MBSTATE_T_BROKEN. Set
REPLACE_MBSRTOWCS if mbsrtowcs needs to be overridden.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBSRTOWCS.
* modules/wchar (Makefile.am): Substitute REPLACE_MBSRTOWCS.
Work around mbrtowc bugs on AIX, HP-UX, OSF/1, Solaris.
* lib/wchar.in.h (mbstate_t): Redefine also if REPLACE_MBSTATE_T is
set.
(GNULIB_defined_mbstate_t): New macro.
(mbsinit): Redefine if REPLACE_MBSINIT is set.
(mbrtowc): Redefine if REPLACE_MBRTOWC is set.
* lib/mbrtowc.c (rpl_mbrtowc): Add an alternative implementation that
reuses the system's mbrtowc function but works around the bugs.
* m4/mbrtowc.m4 (gl_MBSTATE_T_BROKEN, gl_MBRTOWC_INCOMPLETE_STATE,
gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL): New
macros.
(gl_FUNC_MBRTOWC): Invoke them. Set REPLACE_MBRTOWC if mbrtowc needs to
be overridden. Optionally define MBRTOWC_NULL_ARG_BUG,
MBRTOWC_RETVAL_BUG, MBRTOWC_NUL_RETVAL_BUG.
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Invoke gl_MBSTATE_T_BROKEN. Set
REPLACE_MBSINIT if mbsinit needs to be overridden.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBSTATE_T,
REPLACE_MBSINIT, REPLACE_MBRTOWC.
* modules/wchar (Makefile.am): Substitute REPLACE_MBSTATE_T,
REPLACE_MBSINIT, REPLACE_MBRTOWC.
* modules/mbrtowc (Files): Add m4/locale-fr.m4, m4/locale-ja.m4,
m4/locale-zh.m4.
(Depends): Add mbsinit.
* modules/mbsinit (Depends): Add mbrtowc.
* doc/posix-functions/mbrtowc.texi: Mention the various bugs.
2008-12-20 Bruno Haible <bruno@clisp.org>
* tests/test-mbrtowc.c (main): Change sample string in EUC-JP encoding
so that there are no conversion errors on AIX.
* tests/test-mbsrtowcs.c (main): LIkewise.
2008-12-20 Bruno Haible <bruno@clisp.org>
Work around wctob bug on Solaris <= 9.
* lib/wchar.in.h (wctob): Redefine if REPLACE_WCTOB is set.
* m4/wctob.m4 (gl_FUNC_WCTOB): Test whether wctob works.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCTOB.
* modules/wchar (Makefile.am): Substitute REPLACE_WCTOB.
* modules/wctob (Files): Add m4/locale-fr.m4.
* doc/posix-functions/wctob.texi: Mention the Solaris bug.
2008-12-20 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/select.texi: Mention Solaris 2.6 bug with
/dev/null.
* tests/test-select-in.sh: Likewise.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2008-12-20 Bruno Haible <bruno@clisp.org>
Don't pretend that Cygwin has a ja_JP.EUC-JP locale.
* m4/locale-ja.m4 (gt_LOCALE_JA): Add test for MB_CUR_MAX. Needed on
Cygwin 1.5.x.
2008-12-20 Bruno Haible <bruno@clisp.org>
Ensure mbstate_t is defined on HP-UX 11.11.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Require
AC_CANONICAL_HOST. On HP-UX, define _XOPEN_SOURCE to 500.
* m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Require
AC_USE_SYSTEM_EXTENSIONS.
* modules/fnmatch (Depends-on): Add extensions.
* modules/mbrlen (Depends-on): Likewise.
* modules/mbrtowc (Depends-on): Likewise.
* modules/mbsinit (Depends-on): Likewise.
* modules/mbsrtowcs (Depends-on): Likewise.
* modules/mbswidth (Depends-on): Likewise.
* modules/quotearg (Depends-on): Likewise.
* modules/strftime (Depends-on): Likewise.
2008-12-20 Bruno Haible <bruno@clisp.org>
Ensure wctob is declared on IRIX 6.5.
* lib/wchar.in.h (wctob): Declare also when HAVE_DECL_WCTOB is 0.
* m4/wctob.m4 (gl_FUNC_WCTOB): Set HAVE_DECL_WCTOB instead of
HAVE_WCTOB. Also test whether <wchar.h> declares wctob.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_DECL_WCTOB instead
of HAVE_WCTOB.
* modules/wchar (Makefile.am): Substitute HAVE_DECL_WCTOB instead of
HAVE_WCTOB.
* doc/posix-functions/wctob.texi: Mention missing declaration on IRIX.
2008-12-19 Bruno Haible <bruno@clisp.org>
* modules/mbsrtowcs-tests: New file.
* tests/test-mbsrtowcs1.sh: New file.
* tests/test-mbsrtowcs2.sh: New file.
* tests/test-mbsrtowcs3.sh: New file.
* tests/test-mbsrtowcs4.sh: New file.
* tests/test-mbsrtowcs.c: New file.
New module 'mbsrtowcs'.
* lib/wchar.in.h (mbsrtowcs): New declaration.
* lib/mbsrtowcs.c: New file.
* m4/mbsrtowcs.m4: New file.
* modules/mbsrtowcs: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSRTOWCS and
HAVE_MBSRTOWCS.
* modules/wchar (Makefile.am): Substitute GNULIB_MBSRTOWCS and
HAVE_MBSRTOWCS.
* doc/posix-functions/mbsrtowcs.texi: Document the new module.
2008-12-19 Bruno Haible <bruno@clisp.org>
New module 'mbrlen'.
* lib/wchar.in.h (mbrlen): New declaration.
* lib/mbrlen.c: New file.
* m4/mbrlen.m4: New file.
* modules/mbrlen: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBRLEN and
HAVE_MBRLEN.
* modules/wchar (Makefile.am): Substitute GNULIB_MBRLEN and
HAVE_MBRLEN.
* doc/posix-functions/mbrlen.texi: Document the new module.
2008-12-19 Bruno Haible <bruno@clisp.org>
* lib/mbrtowc.c: Include verify.h. Verify an assumption.
* modules/mbrtowc (Depends-on): Add verify.
Suggested by Paul Eggert.
2008-12-18 Bruno Haible <bruno@clisp.org>
* modules/mbsinit-tests: New file.
* tests/test-mbsinit.sh: New file.
* tests/test-mbsinit.c: New file.
2008-12-18 Bruno Haible <bruno@clisp.org>
* modules/mbrtowc-tests: New file.
* tests/test-mbrtowc1.sh: New file.
* tests/test-mbrtowc2.sh: New file.
* tests/test-mbrtowc3.sh: New file.
* tests/test-mbrtowc4.sh: New file.
* tests/test-mbrtowc.c: New file.
New module 'mbrtowc'.
* lib/wchar.in.h (mbstate_t): Override when the system does not have
mbsinit and mbrtowc.
(mbrtowc): New declaration.
* lib/mbrtowc.c: New file.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC, gl_PREREQ_MBRTOWC): New macros.
* modules/mbrtowc: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBRTOWC and
HAVE_MBRTOWC.
* modules/wchar (Makefile.am): Substitute GNULIB_MBRTOWC and
HAVE_MBRTOWC.
* doc/posix-functions/mbrtowc.texi: Document the new module.
2008-12-18 Bruno Haible <bruno@clisp.org>
New module 'wctob'.
* lib/wchar.in.h (wctob): New declaration.
* lib/wctob.c: New file.
* m4/wctob.m4: New file.
* modules/wctob: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCTOB and
HAVE_WCTOB.
* modules/wchar (Makefile.am): Substitute GNULIB_WCTOB and HAVE_WCTOB.
* doc/posix-functions/wctob.texi: Document the new module.
2008-12-18 Bruno Haible <bruno@clisp.org>
* m4/mbsinit.m4 (gl_FUNC_MBSINIT): Invoke gl_REPLACE_WCHAR_H.
* m4/btowc.m4 (gl_FUNC_BTOWC): Likewise.
2008-12-18 Simon Josefsson <simon@josefsson.org>
* lib/flock.c: Use proper #if symbol in check. Reported by "Tom
G. Christensen" <tgc@jupiterrise.com>.
* lib/flock.c: Need to include errno.h. Reported by "Tom
G. Christensen" <tgc@jupiterrise.com>.
* lib/flock.c: Need to include string.h. Reported by "Tom
G. Christensen" <tgc@jupiterrise.com> and Eric Blake
<ebb9@byu.net>.
2008-12-18 Bruno Haible <bruno@clisp.org>
* m4/locale-ja.m4: New file, from GNU gettext.
2008-12-17 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Don't override in autoconf >= 2.60.
Suggested by Eric Blake.
2008-12-17 Bruno Haible <bruno@clisp.org>
* m4/errno_h.m4 (AC_COMPUTE_INT): Provide fallback definition.
2008-12-17 Bruno Haible <bruno@clisp.org>
* lib/mbsinit.c: Include verify.h. Verify an assumption.
* modules/mbsinit (Depends-on): Add verify.
Suggested by Paul Eggert.
2008-12-17 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Renamed from gl_FUNC_MBRTOWC.
* m4/mbfile.m4 (gl_MBFILE): Use AC_FUNC_MBRTOWC instead of
gl_FUNC_MBRTOWC.
* m4/mbiter.m4 (gl_MBITER): LIkewise.
* m4/mbscasecmp.m4 (gl_PREREQ_MBSCASECMP): Likewise.
* m4/mbscasestr.m4 (gl_PREREQ_MBSCASESTR): Likewise.
* m4/mbschr.m4 (gl_PREREQ_MBSCHR): Likewise.
* m4/mbscspn.m4 (gl_PREREQ_MBSCSPN): Likewise.
* m4/mbslen.m4 (gl_PREREQ_MBSLEN): Likewise.
* m4/mbsncasecmp.m4 (gl_PREREQ_MBSNCASECMP): Likewise.
* m4/mbsnlen.m4 (gl_PREREQ_MBSNLEN): Likewise.
* m4/mbspbrk.m4 (gl_PREREQ_MBSPBRK): Likewise.
* m4/mbspcasecmp.m4 (gl_PREREQ_MBSPCASECMP): Likewise.
* m4/mbsrchr.m4 (gl_PREREQ_MBSRCHR): Likewise.
* m4/mbssep.m4 (gl_PREREQ_MBSSEP): Likewise.
* m4/mbsspn.m4 (gl_PREREQ_MBSSPN): Likewise.
* m4/mbsstr.m4 (gl_PREREQ_MBSSTR): Likewise.
* m4/mbstok_r.m4 (gl_PREREQ_MBSTOK_R): Likewise.
* m4/mbswidth.m4 (gl_MBSWIDTH): Likewise.
* m4/quotearg.m4 (gl_QUOTEARG): Likewise.
* modules/trim (configure.ac): Likewise.
2008-12-17 Bruno Haible <bruno@clisp.org>
* modules/btowc-tests: New file.
* tests/test-btowc1.sh: New file.
* tests/test-btowc2.sh: New file.
* tests/test-btowc.c: New file.
New module 'btowc'.
* lib/wchar.in.h (btowc): New declaration.
* lib/btowc.c: New file.
* m4/btowc.m4: New file.
* modules/btowc: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_BTOWC and
HAVE_BTOWC.
* modules/wchar (Makefile.am): Substitute GNULIB_BTOWC and HAVE_BTOWC.
* doc/posix-functions/btowc.texi: Document the new module.
2008-12-17 Bruno Haible <bruno@clisp.org>
New module 'mbsinit'.
* lib/wchar.in.h (mbsinit): New declaration.
* lib/mbsinit.c: New file.
* m4/mbsinit.m4: New file.
* modules/mbsinit: New file.
* m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSINIT and
HAVE_MBSINIT.
* modules/wchar (Makefile.am): Substitute GNULIB_MBSINIT and
HAVE_MBSINIT.
* doc/posix-functions/mbsinit.texi: Document the new module.
2008-12-16 Bruno Haible <bruno@clisp.org>
* lib/unistd.in.h: Add comment.
* tests/test-environ.c: Don't include <stdlib.h>.
2008-12-16 Bruno Haible <bruno@clisp.org>
* lib/parse-duration.h (parse_duration): Document return value
convention.
* lib/parse-duration.c: Include specification header first. Add
comments.
(_): Remove macro.
(parse_year_month_day, parse_hour_minute_second): Move side effects
outside of strchr call.
(parse_non_iso8601): Move side effects outside of isspace call.
(parse_duration): Don't test errno is res != BAD_TIME. Remove fprintf
call.
2008-12-16 Bruno Haible <bruno@clisp.org>
* tests/test-parse-duration.sh: Produce no output when the test
succeeds.
2008-12-16 Bruno Haible <bruno@clisp.org>
* tests/test-parse-duration.sh: Fix quoting of $tmp and $tmpf
expressions.
2008-12-15 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/fgetxattr.texi: Tweak wording.
* doc/glibc-functions/flistxattr.texi: Likewise.
* doc/glibc-functions/fopencookie.texi: Likewise.
* doc/glibc-functions/fremovexattr.texi: Likewise.
* doc/glibc-functions/fsetxattr.texi: Likewise.
* doc/glibc-functions/getxattr.texi: Likewise.
* doc/glibc-functions/lgetxattr.texi: Likewise.
* doc/glibc-functions/listxattr.texi: Likewise.
* doc/glibc-functions/llistxattr.texi: Likewise.
* doc/glibc-functions/lremovexattr.texi: Likewise.
* doc/glibc-functions/lsetxattr.texi: Likewise.
* doc/glibc-functions/removexattr.texi: Likewise.
* doc/glibc-functions/setxattr.texi: Likewise.
* doc/posix-functions/open_memstream.texi: Likewise.
2008-12-15 Eric Blake <ebb9@byu.net>
Update doc for cygwin 1.7.
* doc/posix-functions/faccessat.texi: Cygwin 1.7 added several new
functions.
* doc/posix-functions/fchmodat.texi: Likewise.
* doc/posix-functions/fchownat.texi: Likewise.
* doc/posix-functions/fdopendir.texi: Likewise.
* doc/posix-functions/fmemopen.texi: Likewise.
* doc/posix-functions/freeaddrinfo.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/futimens.texi: Likewise.
* doc/posix-functions/gai_strerror.texi: Likewise.
* doc/posix-functions/getaddrinfo.texi: Likewise.
* doc/posix-functions/getnameinfo.texi: Likewise.
* doc/posix-functions/if_freenameindex.texi: Likewise.
* doc/posix-functions/if_indextoname.texi: Likewise.
* doc/posix-functions/if_nameindex.texi: Likewise.
* doc/posix-functions/if_nametoindex.texi: Likewise.
* doc/posix-functions/insque.texi: Likewise.
* doc/posix-functions/linkat.texi: Likewise.
* doc/posix-functions/llrint.texi: Likewise.
* doc/posix-functions/llrintf.texi: Likewise.
* doc/posix-functions/llrintl.texi: Likewise.
* doc/posix-functions/lockf.texi: Likewise.
* doc/posix-functions/lrintl.texi: Likewise.
* doc/posix-functions/mkdirat.texi: Likewise.
* doc/posix-functions/mkfifoat.texi: Likewise.
* doc/posix-functions/mknodat.texi: Likewise.
* doc/posix-functions/mq_close.texi: Likewise.
* doc/posix-functions/mq_getattr.texi: Likewise.
* doc/posix-functions/mq_notify.texi: Likewise.
* doc/posix-functions/mq_open.texi: Likewise.
* doc/posix-functions/mq_receive.texi: Likewise.
* doc/posix-functions/mq_send.texi: Likewise.
* doc/posix-functions/mq_setattr.texi: Likewise.
* doc/posix-functions/mq_timedreceive.texi: Likewise.
* doc/posix-functions/mq_timedsend.texi: Likewise.
* doc/posix-functions/mq_unlink.texi: Likewise.
* doc/posix-functions/open_memstream.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/posix_fadvise.texi: Likewise.
* doc/posix-functions/posix_fallocate.texi: Likewise.
* doc/posix-functions/posix_madvise.texi: Likewise.
* doc/posix-functions/posix_memalign.texi: Likewise.
* doc/posix-functions/posix_openpt.texi: Likewise.
* doc/posix-functions/readlinkat.texi: Likewise.
* doc/posix-functions/remque.texi: Likewise.
* doc/posix-functions/renameat.texi: Likewise.
* doc/posix-functions/rintl.texi: Likewise.
* doc/posix-functions/sem_unlink.texi: Likewise.
* doc/posix-functions/shm_open.texi: Likewise.
* doc/posix-functions/shm_unlink.texi: Likewise.
* doc/posix-functions/signgam.texi: Likewise.
* doc/posix-functions/sigset.texi: Likewise.
* doc/posix-functions/stpcpy.texi: Likewise.
* doc/posix-functions/stpncpy.texi: Likewise.
* doc/posix-functions/strerror.texi: Likewise.
* doc/posix-functions/strtod.texi: Likewise.
* doc/posix-functions/symlinkat.texi: Likewise.
* doc/posix-functions/unlinkat.texi: Likewise.
* doc/posix-functions/utimensat.texi: Likewise.
* doc/glibc-functions/bindresvport.texi: Likewise.
* doc/glibc-functions/dn_expand.texi: Likewise.
* doc/glibc-functions/exp10.texi: Likewise.
* doc/glibc-functions/exp10f.texi: Likewise.
* doc/glibc-functions/fgetxattr.texi: Likewise.
* doc/glibc-functions/flistxattr.texi: Likewise.
* doc/glibc-functions/fopencookie.texi: Likewise.
* doc/glibc-functions/freeifaddrs.texi: Likewise.
* doc/glibc-functions/fremovexattr.texi: Likewise.
* doc/glibc-functions/fsetxattr.texi: Likewise.
* doc/glibc-functions/getifaddrs.texi: Likewise.
* doc/glibc-functions/getxattr.texi: Likewise.
* doc/glibc-functions/lgetxattr.texi: Likewise.
* doc/glibc-functions/listxattr.texi: Likewise.
* doc/glibc-functions/llistxattr.texi: Likewise.
* doc/glibc-functions/lremovexattr.texi: Likewise.
* doc/glibc-functions/lsetxattr.texi: Likewise.
* doc/glibc-functions/pow10.texi: Likewise.
* doc/glibc-functions/pow10f.texi: Likewise.
* doc/glibc-functions/rcmd_af.texi: Likewise.
* doc/glibc-functions/removexattr.texi: Likewise.
* doc/glibc-functions/res_init.texi: Likewise.
* doc/glibc-functions/res_mkquery.texi: Likewise.
* doc/glibc-functions/res_query.texi: Likewise.
* doc/glibc-functions/res_querydomain.texi: Likewise.
* doc/glibc-functions/res_send.texi: Likewise.
* doc/glibc-functions/rresvport_af.texi: Likewise.
* doc/glibc-functions/setxattr.texi: Likewise.
* doc/glibc-functions/strcasestr.texi: Likewise.
2008-12-15 Bruno Haible <bruno@clisp.org>
Fix compilation error on OSF/1 4.0.
* lib/sys_select.in.h: When invoked from OSF/1 <sys/types.h> or
<sys/time.h>, simply delegate to the system header.
Reported by Daniel Richard G. <oss@teragram.com>.
2008-12-15 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/openat.texi: Mention the 'openat' module.
* doc/posix-functions/fchmodat.texi: Likewise.
* doc/posix-functions/fchownat.texi: Likewise.
* doc/posix-functions/fdopendir.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/mkdirat.texi: Likewise.
* doc/posix-functions/unlinkat.texi: Likewise.
2008-12-14 Bruno Haible <bruno@clisp.org>
Update doc for POSIX:2008.
* doc/posix-functions/faccessat.texi: New file.
* doc/posix-functions/fchmodat.texi: New file.
* doc/posix-functions/fchownat.texi: New file.
* doc/posix-functions/fdopendir.texi: New file.
* doc/posix-functions/fstatat.texi: New file.
* doc/posix-functions/futimens.texi: New file.
* doc/posix-functions/linkat.texi: New file.
* doc/posix-functions/mkdirat.texi: New file.
* doc/posix-functions/mkfifoat.texi: New file.
* doc/posix-functions/mknodat.texi: New file.
* doc/posix-functions/open_wmemstream.texi: New file.
* doc/posix-functions/openat.texi: New file.
* doc/posix-functions/psiginfo.texi: New file.
* doc/posix-functions/pthread_mutex_consistent.texi: New file.
* doc/posix-functions/pthread_mutexattr_getrobust.texi: New file.
* doc/posix-functions/pthread_mutexattr_setrobust.texi: New file.
* doc/posix-functions/readlinkat.texi: New file.
* doc/posix-functions/renameat.texi: New file.
* doc/posix-functions/strerror_l.texi: New file.
* doc/posix-functions/symlinkat.texi: New file.
* doc/posix-functions/unlinkat.texi: New file.
* doc/posix-functions/utimensat.texi: New file.
* doc/gnulib.texi (Function Substitutes): Add these subsections.
2008-12-14 Bruno Haible <bruno@clisp.org>
Update doc for POSIX:2008.
* doc/posix-functions/alphasort.texi: Renamed from
doc/glibc-functions/alphasort.texi.
* doc/posix-functions/dirfd.texi: Renamed from
doc/glibc-functions/dirfd.texi.
* doc/posix-functions/dprintf.texi: Renamed from
doc/glibc-functions/dprintf.texi.
* doc/posix-functions/duplocale.texi: Renamed from
doc/glibc-functions/duplocale.texi.
* doc/posix-functions/fexecve.texi: Renamed from
doc/glibc-functions/fexecve.texi.
* doc/posix-functions/fmemopen.texi: Renamed from
doc/glibc-functions/fmemopen.texi.
* doc/posix-functions/freelocale.texi: Renamed from
doc/glibc-functions/freelocale.texi.
* doc/posix-functions/getdate_err.texi: Renamed from
doc/glibc-functions/getdate_err.texi.
* doc/posix-functions/isalnum_l.texi: Renamed from
doc/glibc-functions/isalnum_l.texi.
* doc/posix-functions/isalpha_l.texi: Renamed from
doc/glibc-functions/isalpha_l.texi.
* doc/posix-functions/isblank_l.texi: Renamed from
doc/glibc-functions/isblank_l.texi.
* doc/posix-functions/iscntrl_l.texi: Renamed from
doc/glibc-functions/iscntrl_l.texi.
* doc/posix-functions/isdigit_l.texi: Renamed from
doc/glibc-functions/isdigit_l.texi.
* doc/posix-functions/isgraph_l.texi: Renamed from
doc/glibc-functions/isgraph_l.texi.
* doc/posix-functions/islower_l.texi: Renamed from
doc/glibc-functions/islower_l.texi.
* doc/posix-functions/isprint_l.texi: Renamed from
doc/glibc-functions/isprint_l.texi.
* doc/posix-functions/ispunct_l.texi: Renamed from
doc/glibc-functions/ispunct_l.texi.
* doc/posix-functions/isspace_l.texi: Renamed from
doc/glibc-functions/isspace_l.texi.
* doc/posix-functions/isupper_l.texi: Renamed from
doc/glibc-functions/isupper_l.texi.
* doc/posix-functions/iswalnum_l.texi: Renamed from
doc/glibc-functions/iswalnum_l.texi.
* doc/posix-functions/iswalpha_l.texi: Renamed from
doc/glibc-functions/iswalpha_l.texi.
* doc/posix-functions/iswblank_l.texi: Renamed from
doc/glibc-functions/iswblank_l.texi.
* doc/posix-functions/iswcntrl_l.texi: Renamed from
doc/glibc-functions/iswcntrl_l.texi.
* doc/posix-functions/iswctype_l.texi: Renamed from
doc/glibc-functions/iswctype_l.texi.
* doc/posix-functions/iswdigit_l.texi: Renamed from
doc/glibc-functions/iswdigit_l.texi.
* doc/posix-functions/iswgraph_l.texi: Renamed from
doc/glibc-functions/iswgraph_l.texi.
* doc/posix-functions/iswlower_l.texi: Renamed from
doc/glibc-functions/iswlower_l.texi.
* doc/posix-functions/iswprint_l.texi: Renamed from
doc/glibc-functions/iswprint_l.texi.
* doc/posix-functions/iswpunct_l.texi: Renamed from
doc/glibc-functions/iswpunct_l.texi.
* doc/posix-functions/iswspace_l.texi: Renamed from
doc/glibc-functions/iswspace_l.texi.
* doc/posix-functions/iswupper_l.texi: Renamed from
doc/glibc-functions/iswupper_l.texi.
* doc/posix-functions/iswxdigit_l.texi: Renamed from
doc/glibc-functions/iswxdigit_l.texi.
* doc/posix-functions/isxdigit_l.texi: Renamed from
doc/glibc-functions/isxdigit_l.texi.
* doc/posix-functions/mbsnrtowcs.texi: Renamed from
doc/glibc-functions/mbsnrtowcs.texi.
* doc/posix-functions/mkdtemp.texi: Renamed from
doc/glibc-functions/mkdtemp.texi.
* doc/posix-functions/newlocale.texi: Renamed from
doc/glibc-functions/newlocale.texi.
* doc/posix-functions/nl_langinfo_l.texi: Renamed from
doc/glibc-functions/nl_langinfo_l.texi.
* doc/posix-functions/open_memstream.texi: Renamed from
doc/glibc-functions/open_memstream.texi.
* doc/posix-functions/opterr.texi: Renamed from
doc/glibc-functions/opterr.texi.
* doc/posix-functions/optind.texi: Renamed from
doc/glibc-functions/optind.texi.
* doc/posix-functions/optopt.texi: Renamed from
doc/glibc-functions/optopt.texi.
* doc/posix-functions/psignal.texi: Renamed from
doc/glibc-functions/psignal.texi.
* doc/posix-functions/scandir.texi: Renamed from
doc/glibc-functions/scandir.texi.
* doc/posix-functions/sched_get_priority_min.texi: Renamed from
doc/glibc-functions/sched_get_priority_min.texi.
* doc/posix-functions/signgam.texi: Renamed from
doc/glibc-functions/signgam.texi.
* doc/posix-functions/stpcpy.texi: Renamed from
doc/glibc-functions/stpcpy.texi.
* doc/posix-functions/stpncpy.texi: Renamed from
doc/glibc-functions/stpncpy.texi.
* doc/posix-functions/strcasecmp_l.texi: Renamed from
doc/glibc-functions/strcasecmp_l.texi.
* doc/posix-functions/strcoll_l.texi: Renamed from
doc/glibc-functions/strcoll_l.texi.
* doc/posix-functions/strfmon_l.texi: Renamed from
doc/glibc-functions/strfmon_l.texi.
* doc/posix-functions/strftime_l.texi: Renamed from
doc/glibc-functions/strftime_l.texi.
* doc/posix-functions/strncasecmp_l.texi: Renamed from
doc/glibc-functions/strncasecmp_l.texi.
* doc/posix-functions/strndup.texi: Renamed from
doc/glibc-functions/strndup.texi.
* doc/posix-functions/strnlen.texi: Renamed from
doc/glibc-functions/strnlen.texi.
* doc/posix-functions/strsignal.texi: Renamed from
doc/glibc-functions/strsignal.texi.
* doc/posix-functions/strxfrm_l.texi: Renamed from
doc/glibc-functions/strxfrm_l.texi.
* doc/posix-functions/timer_gettime.texi: Renamed from
doc/glibc-functions/timer_gettime.texi.
* doc/posix-functions/tolower_l.texi: Renamed from
doc/glibc-functions/tolower_l.texi.
* doc/posix-functions/toupper_l.texi: Renamed from
doc/glibc-functions/toupper_l.texi.
* doc/posix-functions/towctrans_l.texi: Renamed from
doc/glibc-functions/towctrans_l.texi.
* doc/posix-functions/towlower_l.texi: Renamed from
doc/glibc-functions/towlower_l.texi.
* doc/posix-functions/towupper_l.texi: Renamed from
doc/glibc-functions/towupper_l.texi.
* doc/posix-functions/uselocale.texi: Renamed from
doc/glibc-functions/uselocale.texi.
* doc/posix-functions/vdprintf.texi: Renamed from
doc/glibc-functions/vdprintf.texi.
* doc/posix-functions/wcpcpy.texi:
Renamed from doc/glibc-functions/wcpcpy.texi.
* doc/posix-functions/wcpncpy.texi: Renamed from
doc/glibc-functions/wcpncpy.texi.
* doc/posix-functions/wcscasecmp.texi: Renamed from
doc/glibc-functions/wcscasecmp.texi.
* doc/posix-functions/wcscasecmp_l.texi: Renamed from
doc/glibc-functions/wcscasecmp_l.texi.
* doc/posix-functions/wcscoll_l.texi: Renamed from
doc/glibc-functions/wcscoll_l.texi.
* doc/posix-functions/wcsdup.texi: Renamed from
doc/glibc-functions/wcsdup.texi.
* doc/posix-functions/wcsncasecmp.texi: Renamed from
doc/glibc-functions/wcsncasecmp.texi.
* doc/posix-functions/wcsncasecmp_l.texi: Renamed from
doc/glibc-functions/wcsncasecmp_l.texi.
* doc/posix-functions/wcsnlen.texi: Renamed from
doc/glibc-functions/wcsnlen.texi.
* doc/posix-functions/wcsnrtombs.texi: Renamed from
doc/glibc-functions/wcsnrtombs.texi.
* doc/posix-functions/wcsxfrm_l.texi: Renamed from
doc/glibc-functions/wcsxfrm_l.texi.
* doc/posix-functions/wctrans_l.texi: Renamed from
doc/glibc-functions/wctrans_l.texi.
* doc/posix-functions/wctype_l.texi: Renamed from
doc/glibc-functions/wctype_l.texi.
* doc/gnulib.texi (Function Substitutes): Add these subsections.
(Glibc ctype.h, Glibc dirent.h, Glibc getopt.h, Glibc math.h,
Glibc sched.h, Glibc signal.h, Glibc stdio.h, Glibc stdlib.h,
Glibc string.h, Glibc time.h, Glibc unistd.h, Glibc wchar.h): Remove
these subsections.
(Glibc langinfo.h, Glibc locale.h, Glibc monetary.h, Glibc wctype.h):
Remove sections.
2008-12-14 Bruno Haible <bruno@clisp.org>
Update doc for POSIX:2008.
* doc/posix-functions/*.texi: Update URL of POSIX specification.
2008-12-14 Bruno Haible <bruno@clisp.org>
Update doc for POSIX:2008.
* doc/pastposix-functions/bcmp.texi: Renamed from
doc/posix-functions/bcmp.texi.
* doc/pastposix-functions/bcopy.texi: Renamed from
doc/posix-functions/bcopy.texi.
* doc/pastposix-functions/bsd_signal.texi: Renamed from
doc/posix-functions/bsd_signal.texi.
* doc/pastposix-functions/bzero.texi: Renamed from
doc/posix-functions/bzero.texi.
* doc/pastposix-functions/ecvt.texi: Renamed from
doc/posix-functions/ecvt.texi.
* doc/pastposix-functions/fcvt.texi: Renamed from
doc/posix-functions/fcvt.texi.
* doc/pastposix-functions/ftime.texi: Renamed from
doc/posix-functions/ftime.texi.
* doc/pastposix-functions/gcvt.texi: Renamed from
doc/posix-functions/gcvt.texi.
* doc/pastposix-functions/getcontext.texi: Renamed from
doc/posix-functions/getcontext.texi.
* doc/pastposix-functions/gethostbyaddr.texi: Renamed from
doc/posix-functions/gethostbyaddr.texi.
* doc/pastposix-functions/gethostbyname.texi: Renamed from
doc/posix-functions/gethostbyname.texi.
* doc/pastposix-functions/getwd.texi: Renamed from
doc/posix-functions/getwd.texi.
* doc/pastposix-functions/h_errno.texi: Renamed from
doc/posix-functions/h_errno.texi.
* doc/pastposix-functions/index.texi: Renamed from
doc/posix-functions/index.texi.
* doc/pastposix-functions/makecontext.texi: Renamed from
doc/posix-functions/makecontext.texi.
* doc/pastposix-functions/mktemp.texi: Renamed from
doc/posix-functions/mktemp.texi.
* doc/pastposix-functions/pthread_attr_getstackaddr.texi: Renamed from
doc/posix-functions/pthread_attr_getstackaddr.texi.
* doc/pastposix-functions/pthread_attr_setstackaddr.texi: Renamed from
doc/posix-functions/pthread_attr_setstackaddr.texi.
* doc/pastposix-functions/rindex.texi: Renamed from
doc/posix-functions/rindex.texi.
* doc/pastposix-functions/scalb.texi: Renamed from
doc/posix-functions/scalb.texi.
* doc/pastposix-functions/setcontext.texi: Renamed from
doc/posix-functions/setcontext.texi.
* doc/pastposix-functions/swapcontext.texi: Renamed from
doc/posix-functions/swapcontext.texi.
* doc/pastposix-functions/ualarm.texi: Renamed from
doc/posix-functions/ualarm.texi.
* doc/pastposix-functions/usleep.texi: Renamed from
doc/posix-functions/usleep.texi.
* doc/pastposix-functions/vfork.texi: Renamed from
doc/posix-functions/vfork.texi.
* doc/pastposix-functions/wcswcs.texi: Renamed from
doc/posix-functions/wcswcs.texi.
* doc/gnulib.texi (Legacy Function Substitutes): New chapter.
(Function Substitutes): Update.
2008-12-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/relocatable-prog-wrapper (Depends-on): Add errno, needed by
m4/strerror.m4.
2008-12-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* modules/unilbrk/tables (Depends-on): Add unilbrk/base.
2008-12-13 Bruno Haible <bruno@clisp.org>
* modules/strtoull (Depends-on): Remove unistd.
2008-12-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/strtoull (Depends-on): Add stdlib.
2008-12-11 Simon Josefsson <simon@josefsson.org>
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add more warnings.
2008-12-10 Jim Meyering <meyering@redhat.com>
gl_ASSERT: don't say assertions are disabled when they're not
* m4/assert.m4 (gl_ASSERT): Do not make configure report
"checking whether to enable assertions... no", when they are in
fact enabled. This is solely a bug in the output of configure.
In spite of saying "no", NDEBUG was not defined in that case.
Also, as noted by Eric Blake, leave assertions enabled upon
--enable-assert=INVALID.
2008-12-10 Bruno Haible <bruno@clisp.org>
Change MODULES.html to refer to POSIX:2008 where possible.
* MODULES.html.sh (POSIX2008_URL): New variable.
(posix_headers): Remove sys/timeb, ucontext.
(posix2001_headers): New variable.
(posix_functions): Remove bcmp, bcopy, bsd_signal, bzero, ecvt, fcvt,
ftime, gcvt, getcontext, gethostbyaddr, gethostbyname, getwd, h_errno,
index, makecontext, mktemp, pthread_attr_getstackaddr,
pthread_attr_setstackaddr, rindex, scalb, setcontext, swapcontext,
ualarm, usleep, vfork, wcswcs. Add the new POSIX:2008 functions.
(posix2001_functions): New variable.
(func_module): Use URLs to POSIX:2008 where possible and to POSIX:2001
otherwise.
2008-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
add missing include to parse-duration.c
* lib/parse-duration.c: #include "xalloc.h", for xstrdup.
* modules/parse-duration (Depends-on): Add xalloc.
fix sed script reading maint.mk
* top/maint.mk (MYSELF): New macro, define as $(srcdir)/$(ME).
(syntax-check-rules): Use it.
2008-12-09 Bruno Haible <bruno@clisp.org>
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Add another check, that fails on
MacOS X 10.4/PowerPC.
Reported by Simon Josefsson.
2008-12-08 Jim Meyering <meyering@redhat.com>
work around mingw's lack of some S_IF definitions
* lib/fts.c (S_IFLNK, S_IFSOCK): Define if not already defined.
Reported by Simon Josefsson.
2008-12-08 Bruno Haible <bruno@clisp.org>
* m4/signbitl.m4 (gl_SIGNBIT_TEST_PROGRAM): Add a link check of signbit
applied to variables. Needed on MacOS X 10.4/PowerPC.
Reported by Simon Josefsson.
2008-12-08 William Pursell <bill.pursell@gmail.com> (tiny change)
and Eric Blake <ebb9@byu.net>
assert: honor --enable-assert
* m4/assert.m4 (gl_ASSERT): Synchronize with autoconf 2.64, in
order to honor --enable-assert, rather than treating it as a
synonym for --disable-assert.
2008-12-08 Jim Meyering <meyering@redhat.com>
* lib/posixtm.c: Remove now-useless declaration of mktime.
* build-aux/announce-gen (get_tool_versions): Accept .xz tarballs.
2008-12-07 Bruno Haible <bruno@clisp.org>
* tests/test-lock.c (test_lock, test_rwlock, test_recursive_lock,
test_once): Mark functions as static.
* tests/test-tls.c (test_tls): Likewise.
2008-12-07 Bruno Haible <bruno@clisp.org>
* lib/striconveha.h (uniconv_register_autodetect): Renamed from
iconv_register_autodetect.
2008-12-07 Jim Meyering <meyering@redhat.com>
posixtm.c: avoid a warning
* lib/posixtm.c (posixtime): Don't initialize tm0.
It's no longer needed to placate gcc4's -Wuninitialized,
and the attempt to placate would elicit a new warning.
unicodeio.c: mark unused parameters
* lib/unicodeio.c (exit_failure_callback): Mark unused parameter.
(fallback_failure_callback): Likewise.
2008-12-07 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): When building the tests
subdirectory, ignore the modules gnumakefile and maintainer-makefile.
Reported by Simon Josefsson.
2008-12-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/manywarnings.texi, doc/gnulib-intro.texi: Fix typos.
2008-12-06 Bruno Haible <bruno@clisp.org>
* lib/c-stack.h (c_stack_action): Clarify possible side effects.
Suggested by Eric Blake.
2008-12-06 Bruno Haible <bruno@clisp.org>
Fix a c-stack test failure on MacOS X.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Require
AC_CANONICAL_HOST. Define FAULT_YIELDS_SIGBUS. If set, install a signal
handler for SIGBUS as well.
* lib/c-stack.c (c_stack_action): If FAULT_YIELDS_SIGBUS is set,
install a signal handler for SIGBUS as well.
Reported by Bruce Dugan <bld0401@gmail.com> via Eric Blake.
2008-12-06 Bruno Haible <bruno@clisp.org>
Advocacy documentation.
* doc/gnulib-intro.texi (Benefits): New section.
* doc/gnulib.texi: Update.
2008-12-06 Bruno Haible <bruno@clisp.org>
Document the 'manywarnings' module.
* doc/manywarnings.texi: New file.
* doc/gnulib.texi: Include it.
2008-12-05 Eric Blake <ebb9@byu.net>
tests: silence some gcc warnings
* tests/test-getdate.c (LOG) [!DEBUG]: Mark no-op void.
* tests/uniwidth/test-uc_width2.c (finish_interval): Avoid printf
type mismatches.
2008-12-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* m4/openmp.m4 (AC_OPENMP): Do not define with Autoconf 2.62 or newer.
2008-11-29 Jim Meyering <meyering@redhat.com>
unicodeio.c: mark unused parameters
* lib/unicodeio.c (exit_failure_callback): Mark unused parameter.
(fallback_failure_callback): Likewise.
fts: fix a thinko
* lib/fts.c (s_ifmt_shift_bits): Remove function. Not needed after all.
(set_stat_type): Return S_IF*-valued "type" directly.
Prompted by James Youngman's spotting a related bug.
Confirmed by further testing through find.
fts: provide dirent.d_type via FTSENT.fts_statp, when possible
* lib/fts.c (D_TYPE): Define.
(DT_UNKNOWN, DT_BLK, DT_CHR) [HAVE_STRUCT_DIRENT_D_TYPE]: Define.
(DT_DIR, DT_FIFO, DT_LNK, DT_REG, DT_SOCK): Likewise.
(s_ifmt_shift_bits): New function.
(set_stat_type): New function.
(fts_build): When not calling fts_stat, call set_stat_type
to propagate dirent.d_type info to fts_read caller.
* lib/fts_.h (FTSENT) [FTS_DEFER_STAT]: Mention that
fts_statp->st_mode type information may be valid.
2008-11-28 Simon Josefsson <simon@josefsson.org>
* lib/sys_time.in.h: Add extern "C" block for C++. Suggested by
Brian Dessent <brian@dessent.net>. Reported by Sam Steingold
<sds@gnu.org>.
2008-11-20 Bruno Haible <bruno@clisp.org>
Attempt to work around an AIX 5.3, 6.1 compiler bug with include_next.
* lib/math.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE instead of
INCLUDE_NEXT.
* m4/include_next.m4 (gl_INCLUDE_NEXT): Set also
INCLUDE_NEXT_AS_FIRST_DIRECTIVE.
* modules/math (Makefile.am): Substitute
INCLUDE_NEXT_AS_FIRST_DIRECTIVE instead of INCLUDE_NEXT.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2008-11-18 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Bruno Haible <bruno@clisp.org>
* lib/stdint.in.h: Define all type macros so that their expansion is
a single typedef'ed token. Fixes a compilation failure in Boost which
does "using ::int8_t;".
2008-11-18 Simon Josefsson <simon@josefsson.org>
* m4/manywarnings.m4: New file with gl_MANYWARN_COMPLEMENT and
gl_MANYWARN_ALL_GCC.
* m4/warnings.m4: Removed gl_WARN_SUPPORTED and
gl_WARN_COMPLEMENT. Suggested by Bruno Haible <bruno@clisp.org>.
* modules/manywarnings: New file.
* MODULES.html.sh: Mention manywarnings module.
2008-11-18 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Unit tests): New section.
2008-11-18 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (refresh-po): Fix sed regexp to avoid problems with
paths like 'lib/po/foo.po'.
2008-11-17 Simon Josefsson <simon@josefsson.org>
* m4/warnings.m4: Improve code. Reported by Ralf Wildenhues
<Ralf.Wildenhues@gmx.de> and Paolo Bonzini <bonzini@gnu.org>.
2008-11-17 Simon Josefsson <simon@josefsson.org>
* m4/warnings.m4: Use CPPFLAGS to really check whether the
parameter works.
2008-11-17 Simon Josefsson <simon@josefsson.org>
* m4/warnings.m4: Add gl_WARN_COMPLEMENT and gl_WARN_SUPPORTED.
2008-11-17 Bruce Korb <bkorb@gnu.org>
* modules/parse-duration-tests: New file.
* tests/test-parse-duration.sh: New file.
* tests/test-parse-duration.c: New file.
New module 'parse-duration'.
* lib/parse-duration.h: New file.
* lib/parse-duration.c: New file.
* modules/parse-duration: New file.
2008-11-17 Bruno Haible <bruno@clisp.org>
* tests/test-select-out.sh: Comment out the first pipe test.
Reported by Simon Josefsson.
2008-11-17 Bruno Haible <bruno@clisp.org>
* modules/getaddrinfo (Depends-on): Add servent, hostent.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Use gl_SERVENT and
gl_HOSTENT.
2008-11-17 Bruno Haible <bruno@clisp.org>
* m4/sockets.m4 (gl_SOCKETS): After trying -lsocket, try also
-lnetwork and -lnet. Needed for Haiku and BeOS.
2008-11-16 Bruno Haible <bruno@clisp.org>
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix indentation.
2008-11-16 Bruno Haible <bruno@clisp.org>
Avoid test failure on Haiku.
* tests/test-fsync.c: Include <errno.h>.
(main): Don't require that fsync (0) fails.
2008-11-15 Bruno Haible <bruno@clisp.org>
New module 'hostent'.
* modules/hostent: New file.
* m4/hostent.m4: New file, based on code in m4/getaddrinfo.m4.
2008-11-15 Bruno Haible <bruno@clisp.org>
New module 'servent'.
* modules/servent: New file.
* m4/servent.m4: New file, based on code in m4/getaddrinfo.m4.
2008-11-15 Bruno Haible <bruno@clisp.org>
Avoid generating same test program with two different rules.
* modules/frexp-nolibm-tests (Makefile.am): Rename test program from
test-frexp to test-frexp-nolibm.
* modules/frexpl-nolibm-tests (Makefile.am): Rename test program from
test-frexpl to test-frexpl-nolibm.
2008-11-15 Bruno Haible <bruno@clisp.org>
* modules/frexpl-tests (Makefile.am): Link test-frexpl with
$(FREXPL_LIBM).
2008-11-15 Bruno Haible <bruno@clisp.org>
* lib/netdb.in.h: Activate the definitions also when the system's
<netdb.h> has 'struct addrinfo'.
* m4/netdb_h.m4 (gl_HEADER_NETDB): Replace netdb.h also when it lacks
EAI_OVERFLOW or AI_NUMERICSERV.
* doc/posix-headers/netdb.texi: Document the problem.
2008-11-15 Bruno Haible <bruno@clisp.org>
* tests/test-sched.c: Test also the existence of the SCHED_* macros.
Make the 'sched' module work on platforms where <sched.h> exists but
is incomplete (such as Haiku).
* lib/sched.in.h; Include the system's <sched.h> if it exists.
(SCHED_FIFO, SCHED_RR, SCHED_OTHER): New macros.
* m4/sched_h.m4 (gl_SCHED_H): Test whether <sched.h> exists and also
defines SCHED_FIFO, SCHED_RR, SCHED_OTHER. Set HAVE_SCHED_H,
HAVE_STRUCT_SCHED_PARAM.
* modules/sched (Depends-on): Add include_next.
(Makefile.am): Substitute HAVE_SCHED_H, INCLUDE_NEXT,
PRAGMA_SYSTEM_HEADER, NEXT_SCHED_H, HAVE_STRUCT_SCHED_PARAM.
* doc/posix-headers/sched.texi: Document the issue.
2008-11-13 Jim Meyering <meyering@redhat.com>
test-argp-2: avoid test failure when PACKAGE_BUGREPORT is defined
* tests/test-argp-2.sh: When PACKAGE_BUGREPORT was defined, this
test would fail due to the difference in the Report bugs to ...
line. The expected address is empty, "<>", while the actual
would contain e.g., "<bug-tar@gnu.org>". Filter out any address.
2008-11-12 Bruno Haible <bruno@clisp.org>
lstat: don't compile lstat.c on systems lacking lstat
* m4/lstat.m4 (gl_FUNC_LSTAT): Don't compile lstat.c on systems
which don't have lstat; this is handled by lib/sys_stat.in.h already.
Reported by Daniel P. Berrange via Jim Meyering.
2008-11-12 Jim Meyering <meyering@redhat.com>
* lib/unicodeio.c (unicode_to_mb): Correct spelling of u8_uctomb.
2008-11-12 Simon Josefsson <simon@josefsson.org>
* modules/warnings (configure.ac): Do AC_SUBST([WARN_CFLAGS]) here
instead.
2008-11-12 Bruno Haible <bruno@clisp.org>
* lib/unicodeio.c: Include unistr.h.
(utf8_wctomb): Remove function.
(unicode_to_mb): Use utf8_uctomb instead of utf8_wctomb.
2008-11-12 Simon Josefsson <simon@josefsson.org>
* m4/warnings.m4 (gl_WARN_INIT): Remove, suggested by Ralf
Wildenhues <Ralf.Wildenhues@gmx.de> and Bruno Haible
<bruno@clisp.org>.
* modules/warnings (configure.ac): Don't call gl_WARN_INIT.
2008-11-12 Simon Josefsson <simon@josefsson.org>
* doc/warnings.texi: New file, from Bruno Haible <bruno@clisp.org>.
* doc/gnulib.texi: Add section for warnings.
2008-11-11 Bruno Haible <bruno@clisp.org>
* lib/sockets.h: Add a comment.
2008-11-11 Karl Berry <karl@gnu.org>
* config/srclist.txt (fdl.texi): add, syncing from gnustandards.
2008-11-11 Eric Blake <ebb9@byu.net>
fdl.texi: avoid git symlinks
* doc/fdl.texi: Copy, rather than link, fdl-1.3.texi.
2008-11-11 Paolo Bonzini <bonzini@gnu.org>
* m4/warnings.m4 (gl_WARN_ADD): Don't AC_SUBST the empty string.
2008-11-11 Paolo Bonzini <bonzini@gnu.org>
* m4/warnings.m4 (gl_WARN_INIT): Substitute WARN_CFLAGS.
(gl_WARN_ADD): Substitute $2 if literal.
2008-11-11 Paolo Bonzini <bonzini@gnu.org>
* m4/warning.m4: Remove.
2008-11-11 Paolo Bonzini <bonzini@gnu.org>
* m4/warnings.m4: Almost complete rewrite. :-)
2008-11-10 Simon Josefsson <simon@josefsson.org>
* modules/warnings: New module.
* m4/warnings.m4: New file.
* MODULES.html.sh: Mention warnings module.
With review improvements from Paolo Bonzini <bonzini@gnu.org> and
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2008-11-10 Eric Blake <ebb9@byu.net>
fdl.texi: make a symlink to the latest version
* doc/standards.texi: Revert today's earlier change.
* doc/fdl-1.2.texi: Rename from old fdl.texi...
* doc/fdl.texi: ...and replace this with a symlink to the newer
fdl-1.3.texi.
2008-11-10 Bruno Haible <bruno@clisp.org>
* tests/test-select-fd.c (main): Accept the result file name as fourth
argument.
* tests/test-select-in.sh: Pass t-select-in.tmp as fourth argument.
* tests/test-select-out.sh: Pass t-select-out.tmp as fourth argument.
2008-11-10 Bruno Haible <bruno@clisp.org>
* lib/netdb.in.h: Use HAVE_STRUCT_ADDRINFO, HAVE_DECL_GETADDRINFO,
HAVE_DECL_FREEADDRINFO, HAVE_DECL_GAI_STRERROR, HAVE_DECL_GETNAMEINFO
as autoconf-substituted macros.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Initialize these variables to 1.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Require
gl_NETDB_H_DEFAULTS. Set these variables.
* modules/netdb (Makefile.am): Substitute these variables.
2008-11-10 Eric Blake <ebb9@byu.net>
standards.texi: include correct file for FDL 1.3
* doc/standards.texi (GNU Free Documentation License): Change
include file to pull in FDL 1.3, not 1.2.
fdl.texi: revert accidental change to license
* doc/fdl.texi: This is FDL 1.2, not 1.3.
2008-11-10 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_ENOMEM): Guess yes on Haiku. Use the
cross-compiling guesses also when the native compile gives no result.
2008-11-10 Bruno Haible <bruno@clisp.org>
* lib/spawni.c (__spawni): Force variable into the stack.
2008-11-10 Bruno Haible <bruno@clisp.org>
Add support for Haiku.
* lib/fbufmode.c (fbufmode): Test a symbol that is not only defined on
glibc and BeOS, but also on Haiku.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
Reported by Ingo Weinhold <ingo_weinhold@gmx.de>.
2008-11-10 Ingo Weinhold <ingo_weinhold@gmx.de>
* lib/config.charset: Treat Haiku like BeOS.
2008-11-10 Ingo Weinhold <ingo_weinhold@gmx.de>
* lib/binary-io.h (O_BINARY, O_TEXT): Treat Haiku like BeOS.
* lib/fcntl.in.h (O_BINARY, O_TEXT): Likewise.
2008-11-08 Bruno Haible <bruno@clisp.org>
* m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Avoid using AC_CHECK_DECL inside
AC_CACHE_CHECK.
2008-11-08 Bruno Haible <bruno@clisp.org>
* modules/select-tests (configure.ac): Check for unistd.h, sys/wait.h.
2008-11-08 Bruno Haible <bruno@clisp.org>
* tests/test-select-fd.c: New file.
* tests/test-select-in.sh: New file.
* tests/test-select-out.sh: New file.
* tests/test-select-stdin.c: New file.
* modules/select-tests (Files): Add the new files.
(Depends-on): Add gettimeofday.
(Makefile.am): Add test-select-in.sh, test-select-out.sh to TESTS.
Set TESTS_ENVIRONMENT. Add test-select-fd, test-select-stdin to
check_PROGRAMS. Define test_select_fd_LDADD, test_select_stdin_LDADD.
2008-11-06 Alexander V. Lukyanov <lav@netis.ru>
Bruno Haible <bruno@clisp.org>
* lib/sys_stat.in.h: Enclose function definitions in extern "C".
2008-10-12 Giuseppe Scrivano <gscrivano@gnu.org>
* build-aux/pmccabe2html: Added support for C++ source files.
2008-11-05 Ben Pfaff <blp@gnu.org>
Fix lib/close.c build on Windows.
* modules/close (Files): Add lib/w32sock.h.
2008-11-05 Joel E. Denny <jdenny@ces.clemson.edu>
Accept Bison's NEWS format.
* build-aux/announce-gen (print_news_deltas): Tweak
$re_prefix.
2008-11-04 Bruno Haible <bruno@clisp.org>
* modules/random_r (Maintainer): Add glibc.
2008-11-04 Simon Josefsson <simon@josefsson.org>
* doc/alloca-opt.texi: Change license to GFDLv1.3+, as suggested
by karl@freefriends.org (Karl Berry).
* doc/alloca.texi: Likewise.
* doc/c-ctype.texi: Likewise.
* doc/c-strcase.texi: Likewise.
* doc/c-strcaseeq.texi: Likewise.
* doc/c-strcasestr.texi: Likewise.
* doc/c-strstr.texi: Likewise.
* doc/c-strtod.texi: Likewise.
* doc/c-strtold.texi: Likewise.
* doc/ctime.texi: Likewise.
* doc/error.texi: Likewise.
* doc/fdl.texi: Likewise.
* doc/gcd.texi: Likewise.
* doc/getdate.texi: Likewise.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib-tool.texi: Likewise.
* doc/gnulib.texi: Likewise.
* doc/inet_ntoa.texi: Likewise.
* doc/maintain.texi: Likewise.
* doc/make-stds.texi: Likewise.
* doc/quote.texi: Likewise.
* doc/regexprops-generic.texi: Likewise.
* doc/standards.texi: Likewise.
* doc/verify.texi: Likewise.
* doc/visibility.texi: Likewise.
* doc/gnulib.texi (GNU Free Documentation License): Include
fdl-1.3.texi instead of fdl.texi.
2008-11-04 Simon Josefsson <simon@josefsson.org>
* doc/fdl-1.3.texi: New file, from
<http://www.gnu.org/licenses/fdl-1.3.texi>.
* modules/fdl-1.3: Add.
* MODULES.html.sh: Add fdl-1.3.
2008-11-03 Bruno Haible <bruno@clisp.org>
Make determination of absolute name of header file work with AIX xlc.
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Require
AC_CANONICAL_HOST. On AIX, use "$CPP -C" rather than "$CPP" for
preprocessing.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
Reported by Gary V. Vaughan <gary@thewrittenword.com>.
2008-11-03 Simon Josefsson <simon@josefsson.org>
* top/maint.mk (COVERAGE_CCOPTS): Use --coverage instead of
-fprofile-arcs -ftest-coverage. Suggested by Ludovic Courtès
<ludo@gnu.org>.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'strpbrk' obsolete.
* modules/strpbrk (Status, Notice): New sections.
* modules/strtok_r (Depends-on): Add strpbrk.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'strdup' obsolete.
* modules/strdup (Status, Notice): New sections.
* modules/findprog (Depends-on): Add strdup.
* modules/getaddrinfo (Depends-on): Likewise.
* modules/localename (Depends-on): Likewise.
* modules/relocatable-lib (Depends-on): Likewise.
* modules/relocatable-lib-lgpl (Depends-on): Likewise.
* modules/relocatable-prog (Depends-on): Likewise.
* modules/trim (Depends-on): Likewise.
* modules/unictype/gen-ctype (Depends-on): Likewise.
* modules/unilbrk/gen-lbrk (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'strcspn' obsolete.
* modules/strcspn (Status, Notice): New sections.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'rmdir' obsolete.
* modules/rmdir (Status, Notice): New sections.
* modules/clean-temp (Depends-on): Add rmdir.
* modules/openat (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'raise' obsolete.
* modules/raise (Status, Notice): New sections.
(Include): Specify <signal.h>.
* modules/stdio (Depends-on): Add raise.
* modules/write (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'memset' obsolete.
* modules/memset (Status, Notice): New sections.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'memmove' obsolete.
* modules/memmove (Status, Notice): New sections.
* modules/argp (Depends-on): Add memmove.
* modules/argz (Depends-on): Likewise.
* modules/canonicalize (Depends-on): Likewise.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/human (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/striconveh (Depends-on): Likewise.
* modules/trim (Depends-on): Likewise.
* modules/unistr/u8-move (Depends-on): Likewise.
* modules/unistr/u16-move (Depends-on): Likewise.
* modules/unistr/u32-move (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'memcpy' obsolete.
* modules/memcpy (Status, Notice): New sections.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'memcmp' obsolete.
* modules/memcmp (Status, Notice): New sections.
* modules/argmatch (Depends-on): Add memchr.
* modules/backupfile (Depends-on): Likewise.
* modules/c-strcasestr (Depends-on): Likewise.
* modules/crypto/des (Depends-on): Likewise.
* modules/csharpcomp (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/isnand (Depends-on): Likewise.
* modules/isnand-nolibm (Depends-on): Likewise.
* modules/isnanf (Depends-on): Likewise.
* modules/isnanf-nolibm (Depends-on): Likewise.
* modules/isnanl (Depends-on): Likewise.
* modules/isnanl-nolibm (Depends-on): Likewise.
* modules/mbchar (Depends-on): Likewise.
* modules/memcoll (Depends-on): Likewise.
* modules/quotearg (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/relocatable-prog (Depends-on): Likewise.
* modules/same (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/strcasestr-simple (Depends-on): Likewise.
* modules/unictype/gen-ctype (Depends-on): Likewise.
* modules/unilbrk/gen-lbrk (Depends-on): Likewise.
* modules/uniname/uniname (Depends-on): Likewise.
* modules/unistr/u8-cmp (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'memchr' obsolete.
* modules/memchr (Status, Notice): New sections.
* modules/argp (Depends-on): Add memchr.
* modules/base64 (Depends-on): Likewise.
* modules/c-strcasestr (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/strcasestr-simple (Depends-on): Likewise.
* modules/strnlen (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
Mark 'atexit' obsolete.
* modules/atexit (Status, Notice): New sections.
* modules/chdir-long (Depends-on): Add atexit.
* modules/wait-process (Depends-on): Likewise.
2008-11-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New option --with-obsolete.
(func_usage): Document it.
(func_modules_transitive_closure): Drop obsolete dependencies if
incobsolete is not true.
(func_import): Read and save the incobsolete variable to the cache.
2008-11-02 Bruno Haible <bruno@clisp.org>
* modules/TEMPLATE-EXTENDED: New field 'Status'.
* gnulib-tool: New option --extract-status.
(func_usage): Document it.
(sed_extract_prog): Recognize it.
(func_get_status): New function.
2008-10-30 Simon Josefsson <simon@josefsson.org>
* modules/sockets (License): Change from LGPL to LGPLv2+.
2008-10-28 Simon Josefsson <simon@josefsson.org>
* top/maint.mk: Add coverage rules, inspired by scripts in gnupdf.
2008-10-28 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh (Support for systems lacking POSIX:2001):
Mention times and sys_times.
* modules/sys_times, modules/sys_times-tests: New modules.
* modules/times, modules/times-tests: Likewise
* m4/sys_times_h.m4: New file.
* lib/sys_times.in.h: Likewise
* lib/times.c: Likewise.
* tests/test-sys_times.c: Likewise.
* tests/test-times.c: Likewise.
* doc/posix-headers/sys_times.texi: Update.
* doc/posix-functions/times.texi: Update.
2008-10-28 Jim Meyering <meyering@redhat.com>
* modules/tempname (Depends-on): Add lstat.
* modules/lstat (License): Relicense: LGPL -> LGPLv2+.
2008-10-28 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_emit_tests_Makefile_am): Revert last commit.
* modules/argp-tests (test_argp_LDADD): Set EXEEXT here instead,
using idiom used elsewhere in gnulib.
2008-10-27 Jim Meyering <meyering@redhat.com>
* modules/gethostname (License): Relicense: LGPL -> LGPLv2+.
2008-10-27 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_emit_tests_Makefile_am): Set EXEEXT in
TESTS_ENVIRONMENT, for shell scripts that needs to call built
programs.
* tests/test-argp-2.sh: Use $EXEEXT when needed.
2008-10-27 Simon Josefsson <simon@josefsson.org>
* lib/sys_stat.in.h (lstat): Fix declaration for mingw.
2008-10-27 Bruno Haible <bruno@clisp.org>
* tests/test-lstat.c: Include <stdio.h>.
2008-10-27 Simon Josefsson <simon@josefsson.org>
* modules/lstat-tests: New module.
* tests/test-lstat.c: New file.
2008-10-26 Jim Meyering <meyering@redhat.com>
* lib/mkdir.c (rpl_mkdir) [_WIN32...]: Mark mode as an unused parameter.
2008-10-26 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
Fix a clash between the type DATADIR on Windows and the macro DATADIR.
* modules/configmake (Include): Add a note that the include must come
after all system headers.
* lib/javaversion.c: Include configmake.h after all other includes.
2008-10-26 Bruno Haible <bruno@clisp.org>
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Set default of
HAVE_STRUCT_RANDOM_DATA to 1.
(gl_STDLIB_H): Simplify.
2008-10-26 Simon Josefsson <simon@josefsson.org>
* m4/stdlib_h.m4: Check for struct random_data. Initialize and
substitute HAVE_STRUCT_RANDOM_DATA.
* lib/stdlib.in.h [!HAVE_STRUCT_RANDOM_DATA]: Provide struct
random_data.
* modules/stdlib (Makefile.am): Substitute
HAVE_STRUCT_RANDOM_DATA.
2008-10-26 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (@copying): Use GFDLv1.2+.
* doc/gnulib-intro.texi (Copyright): Likewise.
2008-10-26 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (Header files): C++ fixes, based on Bruno's
findings.
2008-10-25 Ben Pfaff <blp@cs.stanford.edu>
Bruno Haible <bruno@clisp.org>
* lib/unistd.in.h: Include <winsock2.h>.
(socket, connect,accept, bind, getpeername, getsockname, getsockopt,
listen, recv, send, recvfrom, sendto, setsockopt, shutdown, select):
Provide dummy declarations.
(gethostname): Override.
* lib/sys_socket.in.h (gethostname): Provide dummy declaration.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Invoke
gl_PREREQ_SYS_H_WINSOCK2.
* modules/gethostname (Files): Add m4/sys_socket_h.m4.
* doc/posix-functions/gethostname.texi: More details.
2008-10-25 Bruno Haible <bruno@clisp.org>
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Require
gl_UNISTD_H_DEFAULTS, gl_SYS_IOCTL_H_DEFAULTS only if they exist.
* modules/sys_socket (Files): Remove m4/unistd_h.m4, m4/sys_ioctl_h.m4.
* lib/sys_socket.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET); Move macro from
here ...
* lib/unistd.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET); ... to here.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Remove invocation of
gl_UNISTD_H_DEFAULTS.
2008-10-25 Eric Blake <ebb9@byu.net>
signbit: avoid spurious compiler failure
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Move non-constant
declarations inside function.
2008-10-24 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* lib/stdlib.in.h (@GNULIB_RANDOM_R@): Include stdint.h.
* modules/random_r (Depends-on): Add stdint.
2008-10-24 Bruno Haible <bruno@clisp.org>
* modules/intprops (License): Change to LGPLv2+, with approval by Paul
Eggert.
* modules/strerror (License): Likewise.
2008-10-24 Jim Meyering <meyering@redhat.com>
sys_socket: fix typo that inhibited expansion of @GNULIB_SEND@
* modules/sys_socket (Depends-on) [Depends-on]: Fix typo.
2008-10-24 Eric Blake <ebb9@byu.net>
getgroups: fix compilation when getgroups is available
* lib/getgroups.c (includes): Include <unistd.h> for getgroups,
but with <config.h> override of getgroups disabled.
2008-10-24 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (Header files): Add note about C++ problems.
Explained by Bruno Haible <bruno@clisp.org>.
2008-10-23 Bruno Haible <bruno@clisp.org>
Define a dummy SA_NODEFER macro on Interix.
* lib/signal.in.h (SA_NODEFER): Define fallback.
Reported by Aleksey Cheusov <cheusov@tut.by> via
Thomas Klausner <wiz@netbsd.org> and Eric Blake.
2008-10-23 Bruno Haible <bruno@clisp.org>
* modules/freadahead (License): Change to LGPLv2+.
Suggested by Simon Josefsson.
2008-10-23 Jim Meyering <meyering@redhat.com>
random_r: new module
* modules/random_r: New file.
* m4/random_r.m4: New file.
* lib/random_r.c: New file, from glibc.
* modules/random_r-tests: New file.
* tests/test-random_r.c: New file.
* lib/stdlib.in.h (srandom_r, initstate_r, setstate_r, random_r):
Declare.
(RAND_MAX): Define.
* m4/stdlib_h.m4: Define and AC_SUBST GNULIB_RANDOM_R and HAVE_RANDOM_R.
* modules/stdlib: Substitute them, too.
* MODULES.html.sh (Extra functions based on POSIX:2001) [Misc]: Add it.
* doc/glibc-functions/initstate_r.texi: Mention the new module.
* doc/glibc-functions/random_r.texi: Likewise.
* doc/glibc-functions/setstate_r.texi: Likewise.
* doc/glibc-functions/srandom_r.texi: Likewise.
* config/srclist.txt: Mention it.
2008-10-23 David Lutterkort <lutter@redhat.com>
* modules/selinux-h: Search for LIB_SELINUX and mark it as a
link requirement
2008-10-23 Jim Meyering <meyering@redhat.com>
selinux-h: mark parameters of stub functions as intentionally unused
* lib/se-selinux.in.h: Mark parameters as _UNUSED_PARAMETER_.
* lib/se-context.in.h: Likewise.
2008-10-22 Simon Josefsson <simon@josefsson.org>
* lib/sys_socket.in.h (FD_ISSET): Fix warnings under mingw.
2008-10-22 Simon Josefsson <simon@josefsson.org>
* m4/getgroups.m4: Avoid invoking test with wrong parameters.
2008-10-22 Eric Blake <ebb9@byu.net>
glthread/thread: avoid compiler warning
* lib/glthread/thread.c (gl_thread_exit_func) [USE_WIN32_THREADS]:
Add unreachable abort to silence compiler.
2008-10-22 Eric Blake <ebb9@byu.net>
netdb: also supply struct addrinfo for cygwin 1.5.x
* m4/netdb_h.m4 (gl_HEADER_NETDB): Check for incomplete header on
older cygwin.
* lib/netdb.in.h [!HAVE_STRUCT_ADDRINFO]: Also supply contents for
cygwin.
* doc/posix-headers/netdb.texi (netdb.h): Document this.
2008-10-22 Bruno Haible <bruno@clisp.org>
* users.txt: Update entry about pspp.
2008-10-21 Bruno Haible <bruno@clisp.org>
Simplification.
* lib/sys_socket.in.h (_gl_close_fd_maybe_socket): Remove declaration.
* lib/close.c (_gl_close_fd_maybe_socket): Make static.
Simplification.
* lib/ioctl.c (ioctl): Don't undefine.
* lib/socket.c (socket): Don't undefine.
Remove unused module indicator macros.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Don't define
GNULIB_$1 as a C macro.
* doc/posix-functions/close.texi: Undo last change.
* doc/posix-functions/ioctl.texi: Merge the two paragraphs about
Windows platforms.
2008-10-21 Bruno Haible <bruno@clisp.org>
Add gethostname() declaration to <unistd.h>.
* lib/unistd.in.h (gethostname): New declaration.
* lib/gethostname.c: Include <unistd.h>.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Require
gl_UNISTD_H_DEFAULTS. Set HAVE_GETHOSTNAME.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETHOSTNAME
and HAVE_GETHOSTNAME.
* modules/gethostname (Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Specify <unistd.h>.
* modules/unistd (Makefile.am): Substitute GNULIB_GETHOSTNAME and
HAVE_GETHOSTNAME.
* tests/test-gethostname.c: Include <unistd.h> first.
2008-10-21 Bruno Haible <bruno@clisp.org>
* modules/poll-tests (Depends-on): Add sys_ioctl, ioctl.
* modules/select-tests (Depends-on): Likewise.
Reported by Simon Josefsson.
2008-10-21 Simon Josefsson <simon@josefsson.org>
* lib/close.c: Add _gl_close_fd_maybe_socket from winsock.c.
* lib/accept.c: New file, based on winsock.c.
* lib/bind.c: New file, based on winsock.c.
* lib/connect.c: New file, based on winsock.c.
* lib/getpeername.c: New file, based on winsock.c.
* lib/getsockname.c: New file, based on winsock.c.
* lib/getsockopt.c: New file, based on winsock.c.
* lib/ioctl.c: New file, based on winsock.c.
* lib/listen.c: New file, based on winsock.c.
* lib/recv.c: New file, based on winsock.c.
* lib/recvfrom.c: New file, based on winsock.c.
* lib/send.c: New file, based on winsock.c.
* lib/sendto.c: New file, based on winsock.c.
* lib/setsockopt.c: New file, based on winsock.c.
* lib/shutdown.c: New file, based on winsock.c.
* lib/socket.c: New file, based on winsock.c.
* lib/w32sock.h: New file, based on winsock.c.
* lib/winsock.c: Remove file.
* modules/accept: Likewise.
* modules/bind: Likewise.
* modules/connect: Likewise.
* modules/getpeername: Likewise.
* modules/getsockname: Likewise.
* modules/getsockopt: Likewise.
* modules/ioctl: Likewise.
* modules/listen: Likewise.
* modules/recv: Likewise.
* modules/recvfrom: Likewise.
* modules/send: Likewise.
* modules/sendto: Likewise.
* modules/setsockopt: Likewise.
* modules/shutdown: Likewise.
* modules/socket: Use socket.c instead of winsock.c.
* modules/sys_socket: Remove (unneeded?) dependency on winsock.c.
* doc/posix-functions/accept.texi: Doc fix.
* doc/posix-functions/bind.texi: Doc fix.
* doc/posix-functions/close.texi: Doc fix.
* doc/posix-functions/connect.texi: Doc fix.
* doc/posix-functions/getpeername.texi: Doc fix.
* doc/posix-functions/getsockname.texi: Doc fix.
* doc/posix-functions/getsockopt.texi: Doc fix.
* doc/posix-functions/ioctl.texi: Doc fix.
* doc/posix-functions/listen.texi: Doc fix.
* doc/posix-functions/recv.texi: Doc fix.
* doc/posix-functions/recvfrom.texi: Doc fix.
* doc/posix-functions/send.texi: Doc fix.
* doc/posix-functions/sendto.texi: Doc fix.
* doc/posix-functions/setsockopt.texi: Doc fix.
* doc/posix-functions/shutdown.texi: Doc fix.
* doc/posix-functions/socket.texi: Doc fix.
2008-10-20 Bruno Haible <bruno@clisp.org>
Take into account the role of SIGABRT_COMPAT on Windows 2008.
* lib/sigprocmask.c (SIGABRT_COMPAT, SIGABRT_COMPAT_MASK): New macros.
(sigismember, sigaddset, sigdelset, sigfillset, rpl_signal): Handle it
as an alias for SIGABRT.
* lib/sigaction.c (SIGABRT_COMPAT): New macro.
(sigaction): Map it to SIGABRT.
Reported by Ramiro Polla <ramiro.polla@gmail.com> via Eric Blake.
2008-10-20 Bruno Haible <bruno@clisp.org>
* lib/fts.c: Don't include lstat.h.
* lib/openat.c: Include <sys/stat.h> instead of lstat.h.
Move the lstat() declaration to <sys/stat.h>.
* lib/lstat.h: Remove file.
* lib/sys_stat.in.h: Add special invocation convention.
(lstat): New declaration.
* lib/lstat.c (orig_lstat): New function.
(rpl_lstat): Use orig_lstat instead of lstat.
* m4/lstat.m4 (gl_FUNC_LSTAT): Require gl_SYS_STAT_H_DEFAULTS and
AC_C_INLINE. Set REPLACE_LSTAT.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_LSTAT
and REPLACE_LSTAT.
* modules/lstat (Files): Remove lib/lstat.h.
(configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR.
(Include): Specify <sys/stat.h> instead of lstat.h.
* modules/sys_stat (Makefile.am): Substitute GNULIB_LSTAT and
REPLACE_LSTAT.
* NEWS: Mention the change.
2008-10-20 Bruno Haible <bruno@clisp.org>
* modules/posix_spawn-tests: New file.
* tests/test-posix_spawn3.c: New file.
2008-10-20 Bruno Haible <bruno@clisp.org>
* modules/posix_spawnp-tests (Depends-on): Add sys_wait.
* tests/test-posix_spawn1.c (WTERMSIG, WCOREDUMP, WEXITSTATUS,
WIFSIGNALED, WIFEXITED, WIFSTOPPED): Remove fallback definitions.
* tests/test-posix_spawn2.c (WTERMSIG, WCOREDUMP, WEXITSTATUS,
WIFSIGNALED, WIFEXITED, WIFSTOPPED): Likewise.
2008-10-20 Bruno Haible <bruno@clisp.org>
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Test against another bug
of posix_spawn on AIX 5.3.
2008-10-20 Bruno Haible <bruno@clisp.org>
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Make the check on MacOS X.
2008-10-20 Bruno Haible <bruno@clisp.org>
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Use AC_LANG_SOURCE instead
of AC_LANG_PROGRAM.
2008-10-20 Simon Josefsson <simon@josefsson.org>
* lib/netdb.in.h: Don't define GNU specific constants until they
are supported or needed. Reported by Bruno Haible
<bruno@clisp.org>.
2008-10-20 Simon Josefsson <simon@josefsson.org>
* lib/canon-host.c: Include netdb.h instead of getaddrinfo.h.
2008-10-20 Simon Josefsson <simon@josefsson.org>
* lib/getaddrinfo.h: Remove file.
* modules/getaddrinfo: Reflect move from getaddrinfo.h to netdb.h.
* m4/getaddrinfo.m4: Call gl_HEADER_NETDB. Don't check for netdb.h.
* lib/netdb.in.h: Add declarations from getaddrinfo.h.
* m4/netdb_h.m4: Initialize GNULIB_GETADDRINFO to 0.
* modules/netdb: Substitute GNULIB_GETADDRINFO.
* lib/getaddrinfo.c: Include netdb.h instead of getaddrinfo.h.
* tests/test-getaddrinfo.c: Likewise.
* lib/gai_strerror.c: Likewise. Also drop HAVE_NETDB_H check.
* NEWS: Mention change.
2008-10-19 Bruno Haible <bruno@clisp.org>
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Remove unneeded code.
2008-10-19 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c: Include simply <sys/wait.h>.
(waitpid, WTERMSIG, WCOREDUMP, WEXITSTATUS, WIFSIGNALED, WIFEXITED,
WIFSTOPPED): Remove fallback definitions.
* modules/wait-process (Depends-on): Add sys_wait.
New module 'sys_wait'.
* modules/sys_wait: New file.
* lib/sys_wait.in.h: New file, partially copied from
lib/wait-process.c.
* m4/sys_wait_h.m4: New file.
* doc/posix-headers/sys_wait.texi: Mention the new module.
2008-10-19 Bruno Haible <bruno@clisp.org>
* m4/wait-process.m4 (gl_WAIT_PROCESS): Remove test for unistd.h.
2008-10-19 Bruno Haible <bruno@clisp.org>
Assume that waitpid() fills an 'int' status, not a 'union wait'.
* lib/wait-process.c (WAIT_T): Remove type.
(WTERMSIG, WCOREDUMP, WEXITSTATUS): Define fallbacks using bit masks.
(wait_subprocess): Update.
2008-10-19 Bruno Haible <bruno@clisp.org>
New module 'atoll'.
* modules/atoll: New file.
* lib/stdlib.in.h (atoll): New declaration.
* lib/atoll.c: New file, from glibc with modifications.
* m4/atoll.m4: New file.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_ATOLL,
HAVE_ATOLL.
* modules/stdlib (Makefile.am): Substitute GNULIB_ATOLL, HAVE_ATOLL.
* doc/posix-functions/atoll.texi: Mention the new module.
2008-10-19 Bruno Haible <bruno@clisp.org>
Add strtoull() declaration to <stdlib.h>.
* lib/stdlib.in.h (strtoull): New declaration.
* m4/strtoull.m4 (gl_FUNC_STRTOLL): Require gl_STDLIB_H_DEFAULTS.
Set HAVE_STRTOULL.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOULL,
HAVE_STRTOULL.
* modules/strtoull (Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOULL,
HAVE_STRTOULL.
2008-10-19 Bruno Haible <bruno@clisp.org>
Add strtoll() declaration to <stdlib.h>.
* lib/stdlib.in.h (strtoll): New declaration.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Require gl_STDLIB_H_DEFAULTS.
Set HAVE_STRTOLL.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOLL,
HAVE_STRTOLL.
* modules/strtoll (Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
* modules/stdlib (Makefile.am): Substitute GNULIB_STRTOLL, HAVE_STRTOLL.
2008-10-19 Bruno Haible <bruno@clisp.org>
* modules/bcopy (Depends-on): Add strings.
(Include): Specify <strings.h>.
2008-10-19 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/atexit.texi: Update doc regarding mingw.
2008-10-19 Bruno Haible <bruno@clisp.org>
* lib/openat-die.c (openat_save_fail, openat_restore_fail): Rename
the parameter from 'errno' to 'errnum'. Fixes a compilation error on
mingw.
2008-10-19 Bruno Haible <bruno@clisp.org>
* lib/atanl.c: Don't include isnanl.h.
* lib/cosl.c: Likewise.
* lib/ldexpl.c: Likewise.
* lib/logl.c: Likewise.
* lib/sinl.c: Likewise.
* lib/sqrtl.c: Likewise.
* lib/tanl.c: Likewise.
Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
* lib/isnanf.h: Remove file.
* lib/isnand.h: Remove file.
* lib/isnanl.h: Remove file.
* lib/math.in.h: Include the contents of lib/isnanf.h, lib/isnand.h,
lib/isnanl.h. Use HAVE_ISNANF, HAVE_ISNAND, HAVE_ISNANL as substituted
macros.
* m4/isnanf.m4 (gl_FUNC_ISNANF): Require gl_MATH_H_DEFAULTS. Set
HAVE_ISNANF, don't define it as a C macro.
* m4/isnand.m4 (gl_FUNC_ISNAND): Require gl_MATH_H_DEFAULTS. Set
HAVE_ISNAND, don't define it as a C macro.
* m4/isnanl.m4 (gl_FUNC_ISNANL): Require gl_MATH_H_DEFAULTS. Set
HAVE_ISNANL, don't define it as a C macro.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_ISNAN[FDL] and
HAVE_ISNAN[FDL].
* modules/isnanf (Files): Remove lib/isnanf.h.
(Depends-on): Add math.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
(Include): Specify <math.h> instead of isnanf.h.
* modules/isnand (Files): Remove lib/isnand.h.
(Depends-on): Add math.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
(Include): Specify <math.h> instead of isnand.h.
* modules/isnanl (Files): Remove lib/isnanl.h.
(Depends-on): Add math.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
(Include): Specify <math.h> instead of isnanl.h.
* modules/math (Makefile.am): Substitute GNULIB_ISNAN[FDL] and
HAVE_ISNAN[FDL].
* tests/test-isnanf.c: Include <math.h> instead of isnanf.h.
* tests/test-isnand.c: Include <math.h> instead of isnand.h.
* tests/test-isnanl.c: Include <math.h> instead of isnanl.h.
* NEWS: Mention the change.
2008-10-18 Bruno Haible <bruno@clisp.org>
Add getusershell(), setusershell(), endusershell() declarations to
<unistd.h>.
* lib/unistd.in.h (getusershell, setusershell, endusershell): New
declarations.
* lib/getusershell.c: Include unistd.h.
* m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Require
gl_UNISTD_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set
HAVE_GETUSERSHELL.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETUSERSHELL
and HAVE_GETUSERSHELL.
* modules/getusershell (Depends-on): Add unistd, extensions.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Specify <unistd.h>.
* modules/unistd (Makefile.am): Substitute GNULIB_GETUSERSHELL and
HAVE_GETUSERSHELL.
2008-10-18 Bruno Haible <bruno@clisp.org>
Add a getloadavg() declaration to <stdlib.h>.
* lib/stdlib.in.h; Include <sys/loadavg.h> when needed for the
getloadavg declaration.
(getloadavg): New declaration.
* lib/getloadavg.c: Include <stdlib.h> first.
* m4/getloadavg.m4 (gl_GETLOADAVG): Require gl_STDLIB_H_DEFAULTS and
AC_USE_SYSTEM_EXTENSIONS. Test whether sys/loadavg.h exists. Set
HAVE_SYS_LOADAVG_H and HAVE_DECL_GETLOADAVG.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_GETLOADAVG,
HAVE_SYS_LOADAVG_H, HAVE_DECL_GETLOADAVG.
* modules/getloadavg (Depends-on): Add stdlib, extensions.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Include): Specify <stdlib.h>.
* modules/stdlib (Makefile.am): Substitute GNULIB_GETLOADAVG,
HAVE_SYS_LOADAVG_H, HAVE_DECL_GETLOADAVG.
2008-10-18 Bruno Haible <bruno@clisp.org>
* lib/dirchownmod.c: Don't include lchmod.h.
Move the lchmod() declaration to <sys/stat.h>.
* lib/lchmod.h: Remove file.
* lib/sys_stat.in.h: Add placeholder for GL_LINK_WARNING.
(lchmod): New declaration, moved here from lib/lchown.h.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Require gl_SYS_STAT_H_DEFAULTS and
AC_USE_SYSTEM_EXTENSIONS. Set HAVE_LCHMOD.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_LCHMOD
and HAVE_LCHMOD.
* modules/lchmod (Files): Remove lib/lchmod.h.
(Depends-on): Add sys_stat, extensions.
(configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR.
(Include): Specify <sys/stat.h> instead of lchmod.h.
* modules/sys_stat (Depends-on): Add link-warning.
(Makefile.am): Substitute GNULIB_LCHMOD, HAVE_LCHMOD, and the
definition of GL_LINK_WARNING.
* NEWS: Mention the change.
2008-10-18 Bruno Haible <bruno@clisp.org>
* lib/fchdir.c: Don't include dirfd.h.
* lib/fts.c: Likewise.
* lib/getcwd.c: Likewise.
* lib/glob.c: Likewise.
Move the dirfd() declaration to <dirent.h>.
* lib/dirfd.h: Remove file.
* lib/dirent.in.h: Add placeholder for GL_LINK_WARNING.
(dirfd): New declaration.
* lib/dirfd.c: Include <dirent.h> instead of dirfd.h.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Require gl_DIRENT_H_DEFAULTS and
AC_USE_SYSTEM_EXTENSIONS. Invoke gl_REPLACE_DIRENT_H. Set
HAVE_DECL_DIRFD.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_DIRFD and
HAVE_DECL_DIRFD.
* modules/dirfd (Files): Remove lib/dirfd.h.
(Depends-on): Add dirent, extensions.
(configure.ac): Invoke gl_DIRENT_MODULE_INDICATOR.
(Include): Specify <dirent.h> instead of dirfd.h.
* modules/dirent (Depends-on): Add link-warning.
(Makefile.am): Substitute GNULIB_DIRFD, HAVE_DECL_DIRFD, and
definition of GL_LINK_WARNING.
* NEWS: Mention the change.
2008-10-18 Bruno Haible <bruno@clisp.org>
Move the euidaccess() declaration to <unistd.h>.
* lib/euidaccess.h: Remove file.
* lib/unistd.in.h (euidaccess): New declaration.
* lib/euidaccess.c: Don't include euidaccess.h.
* m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Require gl_UNISTD_H_DEFAULTS.
Don't check whether euidaccess is declared. Set HAVE_EUIDACCESS.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_EUIDACCESS
and HAVE_EUIDACCESS.
* modules/euidaccess (Files): Remove lib/euidaccess.h.
(Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Specify <unistd.h> instead of euidaccess.h.
* modules/unistd (Makefile.am): Substitute GNULIB_EUIDACCESS and
HAVE_EUIDACCESS.
* NEWS: Mention the change.
2008-10-18 Bruno Haible <bruno@clisp.org>
* lib/xgetdomainname.c: Include <unistd.h> instead of getdomainname.h.
Move the getdomainname() declaration to <unistd.h>.
* lib/getdomainname.h: Remove file.
* lib/unistd.in.h (getdomainname): New declaration.
* lib/getdomainname.c: Include <unistd.h> instead of getdomainname.h.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require
gl_UNISTD_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set
HAVE_GETDOMAINNAME.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
GNULIB_GETDOMAINNAME and HAVE_GETDOMAINNAME.
* modules/getdomainname (Files): Remove lib/getdomainname.h.
(Depends-on): Add unistd, extensions.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Includes): Specify <unistd.h> instead of getdomainname.h.
* modules/unistd (Makefile.am): Substitute GNULIB_GETDOMAINNAME and
HAVE_GETDOMAINNAME.
* NEWS: Mention the change.
2008-10-18 Bruno Haible <bruno@clisp.org>
* modules/dirent: New file.
* m4/dirent_h.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_DIRENT_H_DEFAULTS.
Invoke gl_REPLACE_DIRENT_H. Don't assign DIRENT_H directly.
* modules/fchdir (Files): Remove lib/dirent.in.h.
(Depends-on): Add dirent.
(Makefile.am): Move rules to modules/dirent.
* doc/posix-headers/dirent.texi: Mention the new module.
2008-10-18 Bruno Haible <bruno@clisp.org>
Avoid -Wunused-parameter warnings in public gnulib header files.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _UNUSED_PARAMETER_ as a
macro.
* lib/unistr.h (u32_mbtouc_unsafe, u32_mbtouc): Use it.
2008-10-18 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/dirfd.texi: Mention the module 'dirfd'.
* doc/glibc-functions/error.texi: Mention the module 'error'.
* doc/glibc-functions/euidaccess.texi: Mention the module 'euidaccess'.
* doc/glibc-functions/getdomainname.texi: Mention the module
'getdomainname'.
* doc/glibc-functions/getloadavg.texi: Mention the module 'getloadavg'.
* doc/glibc-functions/getpagesize.texi: Mention the module
'getpagesize'.
* doc/glibc-functions/getusershell.texi: Mention the module
'getusershell'.
* doc/glibc-functions/isnanl.texi: Mention the module 'isnanl'.
* doc/glibc-functions/lchmod.texi: Mention the module 'lchmod'.
* doc/glibc-functions/mempcpy.texi: Mention the module 'mempcpy'.
* doc/glibc-functions/memrchr.texi: Mention the module 'memrchr'.
* doc/glibc-functions/mkdtemp.texi: Mention the module 'mkdtemp'.
* doc/glibc-functions/rpmatch.texi: Mention the module 'rpmatch'.
* doc/glibc-functions/stpcpy.texi: Mention the module 'stpcpy'.
* doc/glibc-functions/stpncpy.texi: Mention the module 'stpncpy'.
* doc/glibc-functions/strchrnul.texi: Mention the module 'strchrnul'.
* doc/glibc-functions/strndup.texi: Mention the module 'strndup'.
* doc/glibc-functions/strnlen.texi: Mention the module 'strnlen'.
* doc/glibc-functions/strsep.texi: Mention the module 'strsep'.
* doc/glibc-functions/timegm.texi: Mention the module 'timegm'.
* doc/glibc-functions/vasprintf.texi: Mention the module 'vasprintf'.
2008-10-17 Bruno Haible <bruno@clisp.org>
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): On platforms other than
HP-UX and IRIX, use -0.0L.
* tests/test-ceill.c (minus_zero): Likewise.
* tests/test-floorl.c (minus_zero): Likewise.
* tests/test-frexpl.c (minus_zero): Likewise.
* tests/test-isnan.c (minus_zerol): Likewise.
* tests/test-isnanl.h (minus_zero): Likewise.
* tests/test-ldexpl.c (minus_zero): Likewise.
* tests/test-roundl.c (minus_zero): Likewise.
* tests/test-signbit.c (minus_zerol): Likewise.
* tests/test-snprintf-posix.h (minus_zerol): Likewise.
* tests/test-sprintf-posix.h (minus_zerol): Likewise.
* tests/test-truncl.c (minus_zero): Likewise.
* tests/test-vasnprintf-posix.c (minus_zerol): Likewise.
* tests/test-vasprintf-posix.c (minus_zerol): Likewise.
Reported by Markus Armbruster <armbru@redhat.com> via Jim Meyering
and by Nelson H. F. Beebe <beebe@math.utah.edu> via Eric Blake.
2008-10-17 Bruno Haible <bruno@clisp.org>
Avoid gcc warnings because of #pragma GCC system_header on older gcc.
* lib/arpa_inet.in.h: Encloses reference to PRAGMA_SYSTEM_HEADER so
that it gets activated only for gcc >= 3.0.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2008-10-17 Jim Meyering <meyering@redhat.com>
ignore-value: don't depend on inline module
* modules/ignore-value (Depends-on): Remove 'inline'.
(configure.ac): Instead, add AC_REQUIRE([AC_C_INLINE]) here.
Suggestion from Bruno Haible.
2008-10-17 Bruno Haible <bruno@clisp.org>
New implementation of condition variables for Win32.
* lib/glthread/cond.h (struct gl_waitqueue_link): New type.
(gl_linked_waitqueue_t): New type.
(gl_cond_t): Use it.
* lib/glthread/cond.c (struct gl_waitqueue_element): New type.
(gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_remove,
gl_waitqueue_notify_first, gl_waitqueue_notify_all): New functions.
(glthread_cond_init_func, glthread_cond_wait_func,
glthread_cond_timedwait_func, glthread_cond_signal_func,
glthread_cond_broadcast_func, glthread_cond_destroy_func):
Reimplemented on the basis of gl_linked_waitqueue_t.
* lib/glthread/lock.h (gl_carray_waitqueue_t): Renamed from
gl_waitqueue_t.
(gl_rwlock_t): Update.
* lib/glthread/lock.c (gl_waitqueue_t): Alias to gl_carray_waitqueue_t.
2008-10-17 Simon Josefsson <simon@josefsson.org>
* modules/recvfrom (Depends-on): Add dependency on getpeername.
Reported by Yoann Vandoorselaere <yoann@prelude-ids.org>.
2008-10-17 Jim Meyering <meyering@redhat.com>
ignore-value: new module
* modules/ignore-value: New file.
* lib/ignore-value.h: New file.
* MODULES.html.sh (Compiler warning management): New section,
just for this module. More to come.
2008-10-16 Paul Eggert <eggert@cs.ucla.edu>
open-safer.c: avoid 'signed and unsigned in conditional...' warning
* lib/open-safer.c (open_safer): Use an "if/else" statement in place
of the ternary operator. Reported by Reuben Thomas <rrt@sc3d.org>.
2008-10-16 Jim Meyering <meyering@redhat.com>
openat-die.c: avoid 'no previous prototype' warning
* lib/openat-die.c: Include "openat.h".
Reported by Reuben Thomas <rrt@sc3d.org>.
2008-10-16 Simon Josefsson <simon@josefsson.org>
* m4/netdb_h.m4: Assume that if netdb.h exists, it works.
* lib/netdb.in.h: Fix typo.
Reported by Bruno Haible <bruno@clisp.org>
* lib/netdb.in.h: Include sys/socket.h for platforms without
netdb.h, to get structures like hostent on MinGW.
* modules/netdb (Depends-on): Add sys_socket.
2008-10-15 Simon Josefsson <simon@josefsson.org>
* modules/netdb, modules/netdb-tests: New file.
* m4/netdb_h.m4: New file.
* lib/netdb.in.h: Add, currently just an empty file pending
definitions.
* tests/test-netdb.c: New file.
* doc/posix-headers/netdb.texi: Mention that we replace it if
needed.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
netdb.
2008-10-15 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (Getaddrinfo and WINVER): Sync documentation
with code.
2008-10-13 Bruno Haible <bruno@clisp.org>
* lib/glthread/cond.c (glthread_cond_wait_func,
glthread_cond_timedwait_func): Add a comment.
2008-10-13 Yoann Vandoorselaere <yoann@prelude-ids.org>
* tests/test-poll.c: Include <sys/ioctl.h>, for ioctl().
* tests/test-select.c: Likewise,
2008-10-13 Bruno Haible <bruno@clisp.org>
* lib/glthread/cond.c (glthread_cond_wait_func,
glthread_cond_timedwait_func): Fix variable name.
Reported by Yoann Vandoorselaere <yoann@prelude-ids.org>.
2008-10-13 Paolo Bonzini <bonzini@gnu.org>
fix getaddrinfo emulation for systems with struct sockaddr.sa_len
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Detect
struct sockaddr.sa_len.
* lib/getaddrinfo.c (getaddrinfo): Set it if appropriate.
2008-10-13 Simon Josefsson <simon@josefsson.org>
* build-aux/pmccabe2html: Add css and css_url parameters.
2008-10-12 Bruno Haible <bruno@clisp.org>
* tests/test-sameacls.c (main) [AIX]: Clear type argument before
calling aclx_get.
Reported by Rainer Tammer <tammer@tammer.net>.
2008-10-12 Bruno Haible <bruno@clisp.org>
Use msvcrt aware primitives for creation/termination of Win32 threads.
* lib/glthread/thread.c: Include <process.h>.
(glthread_create_func): Use _beginthreadex instead of CreateThread.
(wrapper_func): Update signature.
(gl_thread_exit_func): Use _endthreadex instead of EndThread.
2008-10-11 Yoann Vandoorselaere <yoann@prelude-ids.org>
Bruno Haible <bruno@clisp.org>
Provide a Win32 implementation of the 'cond' module.
* lib/glthread/cond.h [USE_WIN32]: New implementation.
* lib/glthread/cond.c (glthread_cond_init_func,
glthread_cond_wait_func, glthread_cond_timedwait_func,
glthread_cond_signal_func, glthread_cond_broadcast_func,
glthread_cond_destroy_func) [USE_WIN32]: New functions.
* modules/cond (Dependencies): Add gettimeofday.
2008-10-11 Bruno Haible <bruno@clisp.org>
Make sleep work on older versions of mingw.
* m4/sleep.m4 (gl_FUNC_SLEEP): Test whether 'sleep' is declared, not
only whether it exists.
* doc/posix-functions/sleep.texi: Mention the problem with older
versions of mingw.
2008-10-11 Bruno Haible <bruno@clisp.org>
New module 'shutdown'.
* modules/shutdown: New file.
* lib/sys_socket.in.h (shutdown): New declaration.
* lib/winsock.c (shutdown): New function.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Initialize
GNULIB_SHUTDOWN.
* modules/sys_socket (Makefile.am): Substitute GNULIB_SHUTDOWN.
* doc/posix-functions/shutdown.texi: Document the new module.
2008-10-11 Jim Meyering <meyering@redhat.com>
* lib/fclose.c: Fix typo in comment: s/close/fclose/.
2008-10-11 Bruno Haible <bruno@clisp.org>
New module 'fclose'.
* modules/fclose: New file.
* lib/stdio.in.h (fclose): New declaration.
* lib/fclose.c: New file.
* m4/fclose.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FCLOSE,
REPLACE_FCLOSE.
* m4/close.m4 (gl_REPLACE_CLOSE): Invoke gl_REPLACE_FCLOSE.
* modules/stdio (Makefile.am): Substitute GNULIB_FCLOSE,
REPLACE_FCLOSE.
* modules/close (Depends-on): fclose.
* doc/posix-functions/fclose.texi: Mention the problem on Windows.
2008-10-11 Bruno Haible <bruno@clisp.org>
* lib/winsock.c (_gl_close_fd_maybe_socket): If closesocket fails,
set errno and don't call _close.
2008-10-10 Bruno Haible <bruno@clisp.org>
* lib/copy-acl.c (qcopy_acl) [CYGWIN]: Call chmod before setting the
ACL, not afterwards. Fixes test failure on Cygwin.
2008-10-09 Ben Pfaff <blp@gnu.org>
* build-aux/announce-gen: Fix gnulib version related part of usage
message. Die with a useful error message if no tarballs are
found.
2008-10-10 Jim Meyering <meyering@redhat.com>
bootstrap: use git's --depth=N option only if it's supported
* build-aux/bootstrap: Work with git-1.4.4.4, which does not
recognize the --depth option. Reported by Pádraig Brady.
2008-10-09 Bruno Haible <bruno@clisp.org>
New module 'ioctl'.
* modules/ioctl: New file.
* lib/sys_socket.in.h (ioctl): Remove declaration.
* lib/winsock.c: Include <sys/ioctl.h>.
(rpl_ioctl): Define only of the gnulib module 'ioctl' is present.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Require
gl_SYS_IOCTL_H_DEFAULTS. Set also SYS_IOCTL_H_HAVE_WINSOCK2_H.
* modules/sys_socket (Files): Add m4/sys_ioctl_h.m4.
* doc/posix-functions/ioctl.texi: Mention the new module.
2008-10-09 Bruno Haible <bruno@clisp.org>
New module 'sys_ioctl'.
* lib/sys_ioctl.in.h: New file.
* m4/sys_ioctl_h.m4: New file.
* modules/sys_ioctl: New file.
* doc/glibc-headers/sys_ioctl.texi: Mention the new module.
2008-10-09 Bruno Haible <bruno@clisp.org>
* lib/sys_socket.in.h (ioctl): Make signature POSIX compliant.
* lib/winsock.c: Include <stdarg.h>.
(rpl_ioctl): Change to second argument 'int' and then varargs.
2008-10-09 Bruno Haible <bruno@clisp.org>
* m4/close.m4 (gl_FUNC_CLOSE): Arrange to replace the close() function
when the sys_socket module is present and the system has <winsock2.h>.
2008-10-09 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/close.texi: Mention module 'close' instead of
module 'sys_socket'.
2008-10-09 Bruno Haible <bruno@clisp.org>
* doc/glibc-headers/sys_ioctl.texi: New file.
* doc/gnulib.texi: Include it.
2008-10-09 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
Combine the two replacements of 'close'.
* lib/sys_socket.in.h (close): Define to a reminder to include
<unistd.h>.
(_gl_close_fd_maybe_socket): New declaration.
(HAVE__GL_CLOSE_FD_MAYBE_SOCKET): New macro.
* lib/winsock.c (close): Remove undefinition.
(_gl_close_fd_maybe_socket): Renamed from rpl_close. Define only when
needed for the gnulib module 'close'.
* lib/unistd.in.h (close): If the gnulib module 'close' is not used,
define to an error symbol or to a warning, if suitable.
* lib/close.c: Include <sys/socket.h>.
(rpl_close): Invoke _gl_close_fd_maybe_socket when gnulib defines it.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Set also
UNISTD_H_HAVE_WINSOCK2_H.
(gl_SYS_SOCKET_H_DEFAULTS): Require gl_UNISTD_H_DEFAULTS.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
UNISTD_H_HAVE_WINSOCK2_H.
* modules/sys_socket (Files): Add m4/unistd_h.m4.
(configure.ac): Set a module indicator.
(Makefile.am): Substitute GNULIB_CLOSE.
* modules/unistd (Makefile.am): Substitute UNISTD_H_HAVE_WINSOCK2_H.
* modules/poll-tests (Depends-on): Add close.
* modules/select-tests (Depends-on): Likewise.
2008-10-09 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
New module 'close'.
* modules/close: New file.
* lib/unistd.in.h (close): Move declaration out of the
FCHDIR_REPLACEMENT scope.
(_gl_unregister_fd): New declaration.
* lib/close.c: New file.
* lib/fchdir.c (rpl_close): Remove function.
* m4/close.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): When replacing fchdir, also replace
close.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_CLOSE and
REPLACE_CLOSE.
* modules/unistd (Makefile.am): Substitute GNULIB_CLOSE and
REPLACE_CLOSE.
* modules/fchdir (Depends-on): Add close.
2008-10-09 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/fcntl.in.h (open): Simplify conditionals.
(_gl_register_fd): New declaration.
* lib/fchdir.c (rpl_open): Remove function.
* lib/open.c: When FCHDIR_REPLACEMENT is defined, compile the file
also.
(open): When FCHDIR_REPLACEMENT is defined, invoke _gl_register_fd.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): When replacing fchdir, also replace
open.
2008-10-09 Jim Meyering <meyering@redhat.com>
GNUmakefile: use the more name-space-friendly "_version"
* top/GNUmakefile (_dummy): Update.
(_version): Rename from "version".
2008-10-09 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/fchdir.c (_gl_unregister_fd): New functions, extracted from
rpl_close.
(_gl_register_fd): New function, extracted from rpl_open.
(rpl_close, rpl_closedir): Use _gl_unregister_fd.
(rpl_open, rpl_opendir): Use _gl_register_fd.
2008-10-09 Paolo Bonzini <bonzini@gnu.org>
Fix organization of 'open' replacement.
* m4/open.m4 (gl_REPLACE_OPEN): New macro.
(gl_FUNC_OPEN): Use it.
(gl_PREREQ_OPEN): Add a : to make the body non-empty.
2008-10-08 Bruno Haible <bruno@clisp.org>
* modules/getdate-tests (test_getdata_LDADD): Add LIBINTL.
2008-10-08 Simon Josefsson <simon@josefsson.org>
* m4/sys_socket_h.m4: Don't AC_LIBOBJ(winsock). The file is
AC_LIBOBJ'ed by each gnulib module that needs it (e.g., socket,
listen).
2008-10-08 Eric Blake <ebb9@byu.net>
GNUmakefile: add 'make version' target
* top/GNUmakefile (_curr-ver): Split version update rules...
(version): ...into a target.
2008-10-07 Bruno Haible <bruno@clisp.org>
Use a more portable replacement expression for -0.0L.
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Use -LDBL_MIN * LDBL_MIN
instead of -0.0L. Fix m4 quotation.
* tests/test-signbit.c: Include <float.h>.
(minus_zero): New variable.
(test_signbitl): Use minus_zero instead of -zero.
* modules/signbit-tests (Depends-on): Add float.
* tests/test-ceill.c: Include <float.h>.
(zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/ceill-tests (Depends-on): Add float.
* tests/test-floorl.c: Include <float.h>.
(zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/floorl-tests (Depends-on): Add float.
* tests/test-roundl.c: Include <float.h>.
(zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/roundl-tests (Depends-on): Add float.
* tests/test-truncl.c: Include <float.h>.
(zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/truncl-tests (Depends-on): Add float.
* tests/test-frexpl.c (zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/frexpl-tests (Depends-on): Add float.
* tests/test-isnan.c (zerol): Remove variable.
(minus_zerol): New variable.
(test_long_double): Use minus_zerol instead of -zerol.
* modules/isnan-tests (Depends-on): Add float.
* tests/test-isnanl.h (zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/isnanl-nolibm-tests (Depends-on): Add float.
* modules/isnanl-tests (Depends-on): Add float.
* tests/test-ldexpl.c (zero): Remove variable.
(minus_zero): New variable.
(main): Use minus_zero instead of -zero.
* modules/ldexpl-tests (Depends-on): Add float.
* tests/test-snprintf-posix.h (zerol): Remove variable.
(minus_zerol): New variable.
(test_function): Use minus_zerol instead of -zerol.
* modules/snprintf-posix-tests (Depends-on): Add float.
* modules/vsnprintf-posix-tests (Depends-on): Add float.
* tests/test-sprintf-posix.h (zerol): Remove variable.
(minus_zerol): New variable.
(test_function): Use minus_zerol instead of -zerol.
* modules/sprintf-posix-tests (Depends-on): Add float.
* modules/vsprintf-posix-tests (Depends-on): Add float.
* tests/test-vasnprintf-posix.c (zerol): Remove variable.
(minus_zerol): New variable.
(test_function): Use minus_zerol instead of -zerol.
* modules/vasnprintf-posix-tests (Depends-on): Add float.
* tests/test-vasprintf-posix.c (zerol): Remove variable.
(minus_zerol): New variable.
(test_function): Use minus_zerol instead of -zerol.
* modules/vasprintf-posix-tests (Depends-on): Add float.
2008-10-07 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh (Support for building documentation): Mention
pmccabe2html. Sort entries.
Add pmccabe2html module, from gnupdf.
* build-aux/pmccabe.css: New file.
* build-aux/pmccabe2html: New file.
* m4/pmccabe2html.m4: New file.
* modules/pmccabe2html: New file.
2008-10-07 Richard W.M. Jones <rjones@redhat.com>
flock: new module
* MODULES.html.sh: Add to list of modules.
* lib/flock.c: flock implementation for Windows and Unix systems
which have fcntl.
* doc/glibc-functions/flock.texi: Update documentation.
* lib/sys_file.in.h: <sys/file.h> header file.
* m4/flock.m4: M4 macros.
* m4/sys_file_h.m4: M4 macros for replacement sys/file.h.
* modules/flock: flock module.
* modules/flock-tests: flock tests module.
* modules/sys_file: sys/file.h module.
* tests/test-flock.c: test suite for flock.
2008-10-06 Jim Meyering <meyering@redhat.com>
bootstrap: check for LT_INIT more portably still ;-)
* build-aux/bootstrap: Don't rely on \>, since it's not portable.
Spotted by Bruno Haible.
2008-10-06 Eric Blake <ebb9@byu.net>
test-signbit: avoid tripping Irix cc bug on -0.0L
* tests/test-signbit.c (minus_zerol): Delete, and replace with
'-zerol'. This may break on HP-UX/hppa, but at least makes the
entire testsuite consistent and avoids an Irix 6.2 bug.
2008-10-05 Bruno Haible <bruno@clisp.org>
Jim Meyering <jim@meyering.net>
Add an option for ignoring EPIPE during close_stdout.
* lib/closeout.h: Include <stdbool.h>.
(close_stdout_set_ignore_EPIPE): New declaration.
* lib/closeout.c: Include <stdbool.h>.
(ignore_EPIPE): New variable.
(close_stdout_set_ignore_EPIPE): New function.
(close_stdout): Ignore EPIPE error if ignore_EPIPE is set.
* lib/close-stream.c (close_stream): Mention the possible EPIPE
failure.
* modules/closeout (Depends-on): Add stdbool.
2008-10-05 Bruno Haible <bruno@clisp.org>
* modules/accept: New file.
* modules/bind: New file.
* modules/connect: New file.
* modules/getpeername: New file.
* modules/getsockname: New file.
* modules/getsockopt: New file.
* modules/listen: New file.
* modules/recv: New file.
* modules/recvfrom: New file.
* modules/send: New file.
* modules/sendto: New file.
* modules/setsockopt: New file.
* modules/socket: New file.
* lib/sys_socket.in.h: Include the GL_LINK_WARNING definition.
(socket, connect, accept, bind, getpeername, getsockname, getsockopt,
listen, recv, send, recvfrom, sendto, setsockopt): Declare only when
the particular module is requested. Add a link warning when the
particular module is not requested.
* lib/winsock.c (rpl_socket, rpl_connect, rpl_accept, rpl_bind,
rpl_getpeername, rpl_getsockname, rpl_getsockopt, rpl_listen, rpl_recv,
rpl_send, rpl_recvfrom, rpl_sendto, rpl_setsockopt): Define only when
the particular module is requested.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR,
gl_SYS_SOCKET_H_DEFAULTS): New macros.
(gl_HEADER_SYS_SOCKET): Require gl_SYS_SOCKET_H_DEFAULTS.
* modules/sys_socket (Depends-on): Add link-warning.
(Makeifle.am): Substitute GNULIB_SOCKET, GNULIB_CONNECT, GNULIB_ACCEPT,
GNULIB_BIND, GNULIB_GETPEERNAME, GNULIB_GETSOCKNAME, GNULIB_GETSOCKOPT,
GNULIB_LISTEN, GNULIB_RECV, GNULIB_SEND, GNULIB_RECVFROM,
GNULIB_SENDTO, GNULIB_SETSOCKOPT, and the definition of
GL_LINK_WARNING.
* doc/posix-functions/accept.texi: Mention the new module 'accept'.
* doc/posix-functions/bind.texi: Mention the new module 'bind'.
* doc/posix-functions/connect.texi: Mention the new module 'connect'.
* doc/posix-functions/getpeername.texi: Mention the new module
'getpeername'.
* doc/posix-functions/getsockname.texi: Mention the new module
'getsockname'.
* doc/posix-functions/getsockopt.texi: Mention the new module
'getsockopt'.
* doc/posix-functions/listen.texi: Mention the new module 'listen'.
* doc/posix-functions/recv.texi: Mention the new module 'recv'.
* doc/posix-functions/recvfrom.texi: Mention the new module 'recvfrom'.
* doc/posix-functions/send.texi: Mention the new module 'send'.
* doc/posix-functions/sendto.texi: Mention the new module 'sendto'.
* doc/posix-functions/setsockopt.texi: Mention the new module
'setsockopt'.
* doc/posix-functions/socket.texi: Mention the new module 'socket'.
* modules/poll-tests (Depends-on): Add socket, bind, getsockopt,
listen, connect, accept.
* modules/select-tests (Depends-on): Likewise.
2008-10-05 Bruno Haible <bruno@clisp.org>
* lib/winsock.c (strerror): Remove unused #undef.
(rpl_close): Remove unused local variable.
* modules/sys_socket (Depends-on); Add errno.
2008-10-05 Bruno Haible <bruno@clisp.org>
* lib/sys_select.in.h: Include the GL_LINK_WARNING definition.
(select): Add a link warning when the 'select' module is not used.
* modules/sys_select (Depends-on): Add link-warning.
(Makefile.am): Substitute the definition of GL_LINK_WARNING.
Suggested by Paolo Bonzini.
2008-10-05 Jim Meyering <meyering@redhat.com>
bootstrap: check for LT_INIT more portably
* build-aux/bootstrap: Avoid using grep -E, since it's not
portable enough. Suggestion from Bruno Haible.
2008-10-05 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/sys_select.texi: Mention 'struct timeval' problem
as being fixed by gnulib.
2008-10-05 Bruno Haible <bruno@clisp.org>
* modules/select-tests: New file, mostly copied from
modules/sys_select-tests.
* tests/test-select.c: New file, mostly copied from
tests/test-sys_select.c.
* tests/test-sys_select.c: Move most of the code to tests/test-select.c.
* modules/sys_select-tests (Depends-on): Remove all dependencies.
(Makefile.am): Remove test_sys_select_LDADD.
* lib/sys_select.in.h (select): If GNULIB_SELECT is not set, define it
to an undefined symbol, for an error message.
* m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): New macro.
(gl_SYS_SELECT_H_DEFAULTS): New macro.
(gl_HEADER_SYS_SELECT): Require it. Don't require compilation of
winsock-select.c here.
* modules/sys_select (Files): Remove lib/winsock-select.c.
(Depends-on): Remove alloca.
(Makefile.am): Substitute GNULIB_SELECT.
* modules/select: New file.
* doc/posix-functions/select.texi: Update.
2008-10-05 Bruno Haible <bruno@clisp.org>
* lib/spawn_faction_addclose.c (__sysconf): Use getdtablesize always.
* lib/spawn_faction_adddup2.c (__sysconf): Likewise.
* lib/spawn_faction_addopen.c (__sysconf): Likewise.
* modules/posix_spawn_file_actions_addclose (Depends-on): Add
getdtablesize.
* modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on): Likewise.
2008-10-05 Bruno Haible <bruno@clisp.org>
* modules/getdtablesize-tests: New file.
* tests/test-getdtablesize.c: New file.
New module 'getdtablesize'.
* lib/unistd.in.h (getdtablesize): New declaration.
* lib/getdtablesize.c: New file.
* m4/getdtablesize.m4: New file.
* modules/getdtablesize: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
GNULIB_GETDTABLESIZE, HAVE_GETDTABLESIZE.
* modules/unistd (Makefile.am): Substitute GNULIB_GETDTABLESIZE,
HAVE_GETDTABLESIZE.
* doc/glibc-functions/getdtablesize.texi: Mention the new module.
2008-10-05 Bruno Haible <bruno@clisp.org>
* modules/sched (Makefile.am): Fix typo.
Reported by Simon Josefsson.
2008-10-05 Jim Meyering <meyering@redhat.com>
bootstrap: check for LT_INIT, too
* build-aux/bootstrap: Both AC_PROG_LIBTOOL and AM_PROG_LIBTOOL
are deprecated. Suggestion from Ralf Wildenhues.
2008-10-05 Bruno Haible <bruno@clisp.org>
* lib/spawn.in.h (POSIX_SPAWN_*): Use the system's values, rather than
overriding them by ours.
(POSIX_SPAWN_USEVFORK): Use the next free bit position.
2008-10-05 Jim Meyering <meyering@redhat.com>
bootstrap: check for AC_PROG_LIBTOOL as well as AM_PROG_LIBTOOL
* build-aux/bootstrap: Check for AC_PROG_LIBTOOL, as well as the
obsolete AM_PROG_LIBTOOL. Spotted by Debarshi Ray <rishi@gnu.org>.
2008-10-04 Bruno Haible <bruno@clisp.org>
* modules/dup2 (License): Change to LGPLv2+.
* modules/sleep (License): Likewise.
* modules/perror (License): Likewise.
* modules/fopen (License): Change to LGPLv2+, with approval by Eric
Blake.
* modules/signal (License): Likewise.
* modules/sigprocmask (License): Likewise.
* modules/raise (License): Change to LGPLv2+, with approval by Jim
Meyering.
2008-10-04 Bruno Haible <bruno@clisp.org>
* lib/spawn.in.h (POSIX_SPAWN_*): Undefine before redefining.
Reported by Rainer Tammer <tammer@tammer.net>.
2008-10-03 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/errno.in.h (EWOULDBLOCK) [win32]: Define to EAGAIN.
* lib/winsock.c (set_winsock_errno): Map WSAEWOULDBLOCK to EWOULDBLOCK.
* lib/strerror.c (rpl_strerror): Remove error string for EWOULDBLOCK.
2008-10-03 Kamil Dudka <kdudka@redhat.com>
filevercmp: new module
* lib/filevercmp.h: New function filevercmp comparing version strings.
* lib/filevercmp.c: Implementation of filevercmp function.
* modules/filevercmp: Module metadata.
* tests/test-filevercmp.c: Unit test for new module.
* modules/filevercmp-tests: Unit test metadata.
* MODULES.html.sh: Add filevercmp module.
2008-10-03 Bruno Haible <bruno@clisp.org>
* lib/c-ctype.h: Add comment.
Reported by Jim Meyering.
2008-10-02 Bruno Haible <bruno@clisp.org>
* modules/posix_spawn-internal (Depends-on): Add 'open'.
2008-10-02 Paolo Bonzini <bonzini@gnu.org>
* build-aux/bootstrap: Allow renaming bootstrap, and change the
name of bootstrap.conf accordingly.
2008-10-02 Paolo Bonzini <bonzini@gnu.org>
* build-aux/bootstrap: Install git-merge-changelog configuration
items into .gitconfig if needed.
2008-10-02 Paolo Bonzini <bonzini@gnu.org>
* build-aux/bootstrap: Recognize `gnulib' being a submodule in a
git repository, and initialize/update it accordingly.
2008-10-02 Richard W.M. Jones <rjones@redhat.com>
* modules/fsync-tests: New file.
* tests/test-fsync.c: New file.
New module 'fsync'.
* lib/fsync.c: New file.
* m4/fsync.m4: New file.
* modules/fsync: New file.
* lib/unistd.in.h (fsync): New declaration.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Define and AC_SUBST both
GNULIB_FSYNC and HAVE_FSYNC.
* modules/unistd: Substitute GNULIB_FSYNC and HAVE_FSYNC.
* MODULES.html.sh (posix_functions): Add fsync.
* doc/posix-functions/fsync.texi: Mention the new module.
2008-10-02 Jim Meyering <meyering@redhat.com>
fts.c: sync with similar code from coreutils' remove.c
* lib/fts.c (dirent_inode_sort_may_be_useful): Merge from coreutils.
Guard also with "#if defined __linux__", since for now at least,
this code is Linux-kernel-specific.
2008-10-02 Jim Meyering <meyering@redhat.com>
fts: bug fixes
* lib/fts.c: Remove unnecessary "defined" in cpp directive.
Include <sys/vfs.h>, not <sys/statfs.h>.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Fix typo s/vfs/vfs.h/.
Include <sys/vfs.h>, not <sys/statfs.h>.
2008-10-01 Bruno Haible <bruno@clisp.org>
Avoid the broken posix_spawn function on AIX 5.3 and 6.1.
* m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): New macro.
(gl_POSIX_SPAWN_BODY): Invoke it. Set REPLACE_POSIX_SPAWN if needed.
* doc/posix-functions/posix_spawn.texi: Mention the AIX bugs.
* doc/posix-functions/posix_spawnp.texi: Likewise.
* m4/execute.m4 (gl_EXECUTE): Invoke gl_POSIX_SPAWN_WORKS, to check
whether posix_spawn actually works.
* m4/pipe.m4 (gl_PIPE): Likewise.
* modules/execute (Files): Add m4/posix_spawn.m4.
* modules/pipe (Files): Add m4/posix_spawn.m4.
Reported and analyzed by Rainer Tammer <tammer@tammer.net>.
2008-10-01 Jim Meyering <meyering@redhat.com>
remove trailing spaces
* NEWS: Likewise.
* lib/poll.c (poll): Likewise.
* lib/sys_socket.in.h (SHUT_RDWR): Likewise.
* lib/winsock.c (rpl_close): Likewise.
* m4/memcmp.m4 (gl_FUNC_MEMCMP): Likewise.
* modules/yield: Likewise.
* tests/test-poll.c (connect_to_socket, poll1): Likewise.
* tests/test-sys_select.c (connect_to_socket): Likewise.
fts.c: adjust a new interface to be more generally useful
* lib/fts.c (dirent_inode_sort_may_be_useful): Take an FD parameter.
(fts_build): Adjust caller.
2008-09-30 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* modules/cond-tests: New file.
* tests/test-cond.c: New file.
2008-09-30 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* modules/cond (Dependencies): Add errno, time.
* lib/glthread/cond.h: Include <time.h>.
(gl_cond_define, gl_cond_define_initialized): Use the same definition
across platforms.
2008-09-30 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* m4/thread.m4 (gl_THREAD): Fix detection of pthread_atfork function.
2008-09-30 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* modules/tls-tests (Depends-on): Add thread, yield.
(configure.ac): Remove all checks.
(test_tls_LDADD): Use YIELD_LIB instead of LIBSCHED.
* tests/test-tls.c (gl_thread_t, gl_thread_join, gl_thread_yield,
gl_thread_self): Remove definitions. Include glthread/thread.h and
glthread/yield.h instead.
(test_tls): Pass an additional NULL argument to gl_thread_join.
2008-09-30 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* modules/lock-tests (Depends-on): Add thread, yield.
(configure.ac): Remove all checks.
(test_lock_LDADD): Use YIELD_LIB instead of LIBSCHED.
* tests/test-lock.c (gl_thread_t, gl_thread_join, gl_thread_yield,
gl_thread_self): Remove definitions. Include glthread/thread.h and
glthread/yield.h instead.
(test_lock, test_rwlock, test_recursive_lock, test_once): Pass an
additional NULL argument to gl_thread_join.
2008-09-30 Bruno Haible <bruno@clisp.org>
Fix the Win32 implementation of the 'thread' module.
* lib/glthread/thread.h [USE_WIN32_THREADS] (gl_thread_t): Change to a
pointer type.
(gl_thread_self): Invoke gl_thread_self_func.
(gl_thread_self_func): New declaration.
* lib/glthread/thread.c [USE_WIN32_THREADS] (self_key): New variable.
(do_init_self_key, init_self_key): New functions.
(struct gl_thread_struct): Renamed from 'struct thread_extra'.
Remove some fields.
(running_threads, running_lock): Remove variables.
(get_current_thread_handle): New function.
(gl_thread_self_func, wrapper_func, glthread_create_func,
glthread_join_func, gl_thread_exit_func): Largely rewritten and
simplified.
2008-09-30 Bruno Haible <bruno@clisp.org>
* lib/winsock-select.c (win32_poll_handle): Add shortcut for regular
files.
2008-09-30 Jim Meyering <meyering@redhat.com>
fts.m4: correct the test for statfs.f_type
* m4/fts.m4 (gl_FUNC_FTS_CORE): Include <sys/statfs.h>
when checking for statfs.f_type.
2008-09-15 Simon Josefsson <simon@josefsson.org>
tests: avoid some compiler warnings
* tests/test-memchr.c (main): Pass NULL indirectly.
* tests/test-getdate.c (main): Remove unused variable 'ret'.
2008-09-29 Ondřej Vašík <ovasik@redhat.com>
getdate.y: disallow countable dayshifts like "4 yesterday ago"
* lib/getdate.y (relative_time_table) [tDAY_SHIFT]: New type for
exactly specified dayshifts.
(dayshift): New rule.
(rel): Add dayshift.
(relative_time_table) [tomorrow, yesterday, today, now]:
Use tDAY_SHIFT in place of tDAY_UNIT.
* tests/test-getdate.c: Add tests for now-disallowed countable
dayshifts, e.g., "4 yesterday ago".
2008-09-29 Bruno Haible <bruno@clisp.org>
* tests/test-posix_spawn1.c: Renamed from tests/test-posix_spawn.c.
* tests/test-posix_spawn1.in.sh: Renamed from
tests/test-posix_spawn.in.sh.
* tests/test-posix_spawn2.c: New file.
* tests/test-posix_spawn2.in.sh: New file.
* modules/posix_spawnp-tests (Files): Update.
(Makefile.am): Update. Add test-posix_spawn2 to the tests.
2008-09-29 Bruno Haible <bruno@clisp.org>
Propagate effects of putenv/setenv/unsetenv to child processes.
* lib/execute.c (execute): Use spawnvpe instead of spawnvp.
* lib/pipe.c (create_pipe): Likewise.
2008-09-29 Bruno Haible <bruno@clisp.org>
Enable use of shell scripts as executables in mingw.
* lib/execute.c (execute): When spawnv fails with error ENOEXEC,
run the program as a shell script.
* lib/pipe.c (create_pipe): Likewise.
* lib/w32spawn.h (prepare_spawn): Add a hidden element in front of the
resulting array.
2008-09-29 Eric Blake <ebb9@byu.net>
* m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Fix typo.
2008-08-24 Paolo Bonzini <bonzini@gnu.org>
* doc/posix-functions/accept.texi: Update mingw problems.
* doc/posix-functions/bind.texi: Update mingw problems.
* doc/posix-functions/close.texi: Update mingw problems.
* doc/posix-functions/connect.texi: Update mingw problems.
* doc/posix-functions/getpeername.texi: Update mingw problems.
* doc/posix-functions/getsockname.texi: Update mingw problems.
* doc/posix-functions/getsockopt.texi: Update mingw problems.
* doc/posix-functions/ioctl.texi: Update mingw problems.
* doc/posix-functions/listen.texi: Update mingw problems.
* doc/posix-functions/recv.texi: Update mingw problems.
* doc/posix-functions/recvfrom.texi: Update mingw problems.
* doc/posix-functions/select.texi: Update mingw problems.
* doc/posix-functions/send.texi: Update mingw problems.
* doc/posix-functions/sendto.texi: Update mingw problems.
* doc/posix-functions/setsockopt.texi: Update mingw problems.
* doc/posix-functions/socket.texi: Update mingw problems.
2008-09-29 Paolo Bonzini <bonzini@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/sys_select.in.h: Include sys/time.h.
* m4/sys_select.h.m4: Test that struct timeval is fully defined.
* modules/sys_select: Depend on sys_time.
* tests/test-sys_select.c: Test that sys/select.h defines struct
timeval fully.
2008-09-29 Bruno Haible <bruno@clisp.org>
* lib/sys_socket.in.h: Wrap the definitions in 'extern "C"'.
* lib/sys_select.in.h: Likewise.
2008-09-29 Bruno Haible <bruno@clisp.org>
* lib/winsock.c (rpl_close, rpl_socket): Remove unused variables.
2008-09-29 Bruno Haible <bruno@clisp.org>
* m4/sockets.m4 (gl_SOCKETS): Check also for the need to use -lsocket.
Set LIBSOCKET instead of augmenting LIBS.
* modules/sockets (Link): New section.
* modules/sockets-tests (test_sockets_LDADD): New variable.
* modules/sys_select-tests (test_sys_select_LDADD): New variable.
* modules/poll-tests (test_poll_LDADD): New variable.
* NEWS: Document the change.
2008-09-29 Bruno Haible <bruno@clisp.org>
* m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): New macro.
* m4/inet_ntop.m4 (gl_INET_NTOP): Invoke it instead of assigning
ARPA_INET_H directly.
* m4/inet_pton.m4 (gl_INET_PTON): Likewise.
2008-09-28 Bruno Haible <bruno@clisp.org>
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): New macro, extracted
from gl_HEADER_SYS_SOCKET.
(gl_HEADER_SYS_SOCKET): Invoke it.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
2008-09-28 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/sys_select.texi: Mention 'struct timeval' problem.
* tests/test-sys_select.c: Include <sys/time.h>, for struct timeval.
Needed on OSF/1 4.0.
2008-09-28 Bruno Haible <bruno@clisp.org>
Override open more carefully.
* lib/open.c (orig_open): New function.
(rpl_open): Use orig_open instead of open.
* lib/fcntl.in.h: Add special invocation convention.
* m4/open.m4 (gl_PREREQ_OPEN): New macro.
(gl_FUNC_OPEN): Invoke it.
Override freopen more carefully.
* lib/freopen.c (orig_freopen): New function.
(rpl_freopen): Use orig_freopen instead of freopen.
* m4/freopen.m4 (gl_PREREQ_FREOPEN): New macro.
(gl_FUNC_FREOPEN): Invoke it.
Override fopen more carefully.
* lib/fopen.c (orig_fopen): New function.
(rpl_fopen): Use orig_fopen instead of fopen.
* m4/fopen.m4 (gl_PREREQ_FOPEN): New macro.
(gl_FUNC_FOPEN): Invoke it.
Needed on AIX. Reported by Rainer Tammer <tammer@tammer.net>.
2008-09-28 Bruno Haible <bruno@clisp.org>
* lib/pipe.h (create_pipe_out, create_pipe_bidi): Add comment about
SIGPIPE.
2008-09-28 Bruno Haible <bruno@clisp.org>
* tests/test-sigaction.c (handler, main): Disable the check whether
SA_RESETHAND has reverted the installed handler to SIG_DFL. Needed on
glibc systems with LinuxThreads.
2008-09-28 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/freopen.texi: Mention the trailing slash problem.
* lib/stdio.in.h (fopen, freopen): Undefine before redefining. Needed
with AIX xlc.
* lib/fcntl.in.h (open): Likewise.
Reported by Rainer Tammer <tammer@tammer.net>.
2008-09-28 Bruno Haible <bruno@clisp.org>
* modules/posix_spawnp-tests: New file.
* tests/test-posix_spawn.c: New file.
* tests/test-posix_spawn.in.sh: New file.
New module 'posix_spawnp'.
* modules/posix_spawnp: New file.
* lib/spawnp.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawnp.texi: Mention the new module.
New module 'posix_spawn'.
* modules/posix_spawn: New file.
* lib/spawn.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawn.texi: Mention the new module.
New module 'posix_spawnattr_destroy'.
* modules/posix_spawnattr_destroy: New file.
* lib/spawnattr_destroy.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawnattr_destroy.texi: Mention the new
module.
New module 'posix_spawnattr_setsigmask'.
* modules/posix_spawnattr_setsigmask: New file.
* lib/spawnattr_setsigmask.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_setsigmask.texi: Mention the
new module.
New module 'posix_spawnattr_getsigmask'.
* modules/posix_spawnattr_getsigmask: New file.
* lib/spawnattr_getsigmask.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_getsigmask.texi: Mention the
new module.
New module 'posix_spawnattr_setsigdefault'.
* modules/posix_spawnattr_setsigdefault: New file.
* lib/spawnattr_setdefault.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_setsigdefault.texi: Mention the
new module.
New module 'posix_spawnattr_getsigdefault'.
* modules/posix_spawnattr_getsigdefault: New file.
* lib/spawnattr_getdefault.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_getsigdefault.texi: Mention the
new module.
New module 'posix_spawnattr_setschedpolicy'.
* modules/posix_spawnattr_setschedpolicy: New file.
* lib/spawnattr_setschedpolicy.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_setschedpolicy.texi: Mention the
new module.
New module 'posix_spawnattr_getschedpolicy'.
* modules/posix_spawnattr_getschedpolicy: New file.
* lib/spawnattr_getschedpolicy.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_getschedpolicy.texi: Mention the
new module.
New module 'posix_spawnattr_setschedparam'.
* modules/posix_spawnattr_setschedparam: New file.
* lib/spawnattr_setschedparam.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_setschedparam.texi: Mention the
new module.
New module 'posix_spawnattr_getschedparam'.
* modules/posix_spawnattr_getschedparam: New file.
* lib/spawnattr_getschedparam.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_getschedparam.texi: Mention the
new module.
New module 'posix_spawnattr_setpgroup'.
* modules/posix_spawnattr_setpgroup: New file.
* lib/spawnattr_setpgroup.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_setpgroup.texi: Mention the new
module.
New module 'posix_spawnattr_getpgroup'.
* modules/posix_spawnattr_getpgroup: New file.
* lib/spawnattr_getpgroup.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawnattr_getpgroup.texi: Mention the new
module.
New module 'posix_spawnattr_setflags'.
* modules/posix_spawnattr_setflags: New file.
* lib/spawnattr_setflags.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawnattr_setflags.texi: Mention the new
module.
New module 'posix_spawnattr_getflags'.
* modules/posix_spawnattr_getflags: New file.
* lib/spawnattr_getflags.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawnattr_getflags.texi: Mention the new
module.
New module 'posix_spawnattr_init'.
* modules/posix_spawnattr_init: New file.
* lib/spawnattr_init.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawnattr_init.texi: Mention the new
module.
New module 'posix_spawn_file_actions_destroy'.
* modules/posix_spawn_file_actions_destroy: New file.
* lib/spawn_faction_destroy.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawn_file_actions_destroy.texi: Mention
the new module.
New module 'posix_spawn_file_actions_addopen'.
* modules/posix_spawn_file_actions_addopen: New file.
* lib/spawn_faction_addopen.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawn_file_actions_addopen.texi: Mention
the new module.
New module 'posix_spawn_file_actions_adddup2'.
* modules/posix_spawn_file_actions_adddup2: New file.
* lib/spawn_faction_adddup2.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Mention
the new module.
New module 'posix_spawn_file_actions_addclose'.
* modules/posix_spawn_file_actions_addclose: New file.
* lib/spawn_faction_addclose.c: New file, from GNU libc with
modifications.
* doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention
the new module.
New module 'posix_spawn_file_actions_init'.
* modules/posix_spawn_file_actions_init: New file.
* lib/spawn_faction_init.c: New file, from GNU libc with modifications.
* doc/posix-functions/posix_spawn_file_actions_init.texi: Mention the
new module.
New module 'posix_spawn-internal'.
* modules/posix_spawn-internal: New file.
* lib/spawn_int.h: New file, from GNU libc with modifications.
* lib/spawni.c: New file, from GNU libc with modifications.
* m4/posix_spawn.m4: New file.
New module 'spawn'.
* modules/spawn: New file.
* lib/spawn.in.h: New file, from GNU libc with modifications.
* m4/spawn_h.m4: New file.
* doc/posix-headers/spawn.texi: Mention the new module.
2008-09-28 Bruno Haible <bruno@clisp.org>
* modules/sched-tests: New file.
* tests/test-sched.c: New file.
New module 'sched'.
* modules/sched: New file.
* lib/sched.in.h: New file.
* m4/sched_h.m4: New file.
* doc/posix-headers/sched.texi: Mention the new module.
2008-09-27 Eric Blake <ebb9@byu.net>
Fix previous patch, and tweak references to $0.
* posix-modules: Call func_gnulib_dir before using $gnulib_dir.
(func_version, func_gnulib_dir): Don't call this program
gnulib-tool.
(func_gnulib_dir, func_tmpdir, func_fatal_error): Avoid shell bugs
with using $0 in function.
* gnulib-tool (func_gnulib_dir, func_tmpdir): Likewise.
(func_fatal_error): Reuse the name the user invoked us with.
2008-09-27 Bruno Haible <bruno@clisp.org>
* m4/iconv_h.m4 (gl_REPLACE_ICONV_H): New macro.
(gl_ICONV_H_DEFAULTS): Initialize ICONV_H here...
(gl_ICONV_H): Not here.
* m4/iconv_open.m4 (gl_REPLACE_ICONV_OPEN): Invoke gl_REPLACE_ICONV_H
instead of assigning ICONV_H directly.
* m4/wchar.m4 (gl_REPLACE_WCHAR_H): New macro.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Invoke it instead of assigning
WCHAR_H directly.
2008-09-27 Bruno Haible <bruno@clisp.org>
* lib/arpa_inet.in.h: Include the GL_LINK_WARNING anchor.
* modules/arpa_inet (Depends-on): Add link-warning.
(Makefile.am): Insert the definition of GL_LINK-WARNING.
* modules/unistd (Makefile.am): Likewise.
2008-09-26 Bruno Haible <bruno@clisp.org>
* posix-modules (cvsdatestamp, last_checkin_date, version): Remove
variables.
(func_version): Essentially copied from gnulib-tool.
(func_exit, func_gnulib_dir, func_tmpdir, func_fatal_error,
func_readlink): Copied from gnulib-tool.
2008-09-26 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_version): Change directory to $gnulib_dir before
invoking git-version-gen.
2008-09-26 Bruno Haible <bruno@clisp.org>
* posix-modules: Update to directory names changed on 2008-01-19.
Remove commas in output before splitting into words. No more need to
avoid 'ftruncate' since 2007-02-19.
2008-09-26 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/errno.texi: Remove mention of module 'EOVERFLOW'.
2008-09-26 Bruno Haible <bruno@clisp.org>
* lib/fwriteerror.c (do_fwriteerror): Ignore error EPIPE.
* modules/fwriteerror (Depends-on): Add errno.
2008-09-26 Bruno Haible <bruno@clisp.org>
* tests/test-vc-list-files-git.sh: Explain reason for skipping test.
* tests/test-vc-list-files-cvs.sh: Likewise.
2008-09-26 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/sys_resource.texi: Reorder items.
2008-09-26 Jim Meyering <meyering@redhat.com>
fts: tweak inode comparison function
* lib/fts.c (fts_compare_ino): Sort on increasing, not decreasing
inode numbers, as documented.
fts: sort dirent entries on inode number before traversing
This avoids a quadratic, seek-related performance penalty when
operating on a directory containing many entries (measurable at 10k;
3.5 hours at 2 million entries with a cold cache) on certain types
of file systems, including ext3 and ext4, but not tmpfs.
* lib/fts.c (DT_MUST_BE, NOT_AN_INODE_NUMBER, D_INO): Define.
(FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD): Define if not defined.
(S_MAGIC_TMPFS, S_MAGIC_NFS): Define.
(fs_handles_readdir_ordered_dirents_efficiently): New function.
(dirent_inode_sort_may_be_useful, fts_compare_ino): Likewise.
(fts_build): Set the stat.st_ino member from D_INO.
If it is likely to be useful, sort dirent entries on inode number.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Check for fstatfs, sys/vfs.h,
and the struct statfs.f_type member.
* modules/fts (Depends-on): Add d-ino.
2008-09-26 Bruno Haible <bruno@clisp.org>
* modules/sigpipe-die (Depends-on): Add sigpipe.
* lib/stdio.in.h (fprintf, vfprintf, printf, vprintf, fputc, putc,
putchar, fputs, puts, fwrite): Replace when REPLACE_STDIO_WRITE_FUNCS
and GNULIB_STDIO_H_SIGPIPE are set.
* lib/stdio-write.c: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FPRINTF, GNULIB_PRINTF,
GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
REPLACE_STDIO_WRITE_FUNCS.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_FPRINTF, GNULIB_PRINTF,
GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS.
* modules/stdio (Files): Add lib/stdio-write.c.
(Makefile.am): Substitute GNULIB_FPRINTF, GNULIB_PRINTF,
GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC,
GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE,
GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS.
* m4/fprintf-posix.m4 (gl_REPLACE_FPRINTF): Define
REPLACE_FPRINTF_POSIX.
* m4/printf-posix-rpl.m4 (gl_REPLACE_PRINTF): Define
REPLACE_PRINTF_POSIX.
* m4/vfprintf-posix.m4 (gl_REPLACE_VFPRINTF): Define
REPLACE_VFPRINTF_POSIX.
* m4/vprintf-posix.m4 (gl_REPLACE_VPRINTF): Define
REPLACE_VPRINTF_POSIX.
* doc/posix-functions/fprintf.texi: Mention the sigpipe module and the
SIGPIPE issue.
* doc/posix-functions/fputc.texi: Likewise.
* doc/posix-functions/fputs.texi: Likewise.
* doc/posix-functions/fwrite.texi: Likewise.
* doc/posix-functions/printf.texi: Likewise.
* doc/posix-functions/putc.texi: Likewise.
* doc/posix-functions/putchar.texi: Likewise.
* doc/posix-functions/puts.texi: Likewise.
* doc/posix-functions/vfprintf.texi: Likewise.
* doc/posix-functions/vprintf.texi: Likewise.
* modules/safe-write (Depends-on): Add write.
* modules/sigpipe-tests: New file.
* tests/test-sigpipe.c: New file.
* tests/test-sigpipe.sh: New file.
* modules/write: New file.
* lib/unistd.in.h: Include <sys/types.h>.
(write): New declaration.
* lib/write.c: New file.
* m4/write.m4: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
GNULIB_UNISTD_H_SIGPIPE, GNULIB_WRITE, REPLACE_WRITE.
* modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_SIGPIPE,
GNULIB_WRITE, REPLACE_WRITE.
* doc/posix-functions/write.texi: Mention the write, sigpipe modules
and the SIGPIPE issue.
* lib/signal.in.h (SIGPIPE): Define to a replacement value.
(raise): New declaration.
* lib/sigprocmask.c (SIGPIPE_handler): New variable.
(ext_signal): New function.
(rpl_raise): New function.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
GNULIB_SIGNAL_H_SIGPIPE.
* modules/signal (Makefile.am): Substitute GNULIB_SIGNAL_H_SIGPIPE.
* doc/posix-headers/signal.texi: Mention the SIGPIPE issue.
* modules/sigpipe: New file.
* m4/sigpipe.m4: New file.
2008-09-25 Derek Price <derek@ximbiot.com>
Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Report all license incompatibilities, not
just the first one.
2008-09-25 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): When computing the edits, consider not
only the Makefile.ams that exist but also those that will be generated.
2008-09-25 Simon Josefsson <simon@josefsson.org>
* modules/sys_select-tests (Depends-on): Remove sys_select itself,
fixes gnulib-tool --test warning about duplicate dependency.
2008-09-25 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Don't ask the user to perform edits in the generated
Makefile.ams.
(func_emit_lib_Makefile_am): Emit empty SUBDIRS. Execute edits that
apply to the Makefile.am being generated.
(func_emit_tests_Makefile_am): Execute edits that apply to the
Makefile.am being generated.
(func_import): Setup list of Makefile.am edits before emitting the
Makefile.ams, not at the end.
(func_create_testdir): Update.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2008-09-25 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* gnulib-tool (func_import): Store the --tests-base option in the
comment in gnulib-cache.m4.
2008-09-24 Paolo Bonzini <bonzini@gnu.org>
* NEWS: Document increased portability that sys_select now provides.
* lib/sys_select.in.h: Install select wrapper.
* lib/sys_socket.in.h: Use more descriptive name when there is no
select wrapper.
* lib/winsock-select.c: New.
* m4/sys_select_h.m4: Compile lib/winsock-select.c if WinSock is used.
Require gl_HEADER_SYS_SOCKET.
* modules/sys_select: Depend on alloca, add lib/winsock-select.c.
* modules/sys_select-tests: Copy dependencies from modules/poll-tests.
* tests/test-sys_select.c: Add functional tests.
2008-09-24 Eric Blake <ebb9@byu.net>
open, fopen: close fd leak in last patch
* lib/open.c (rpl_open): Close fd before returning error.
* lib/fopen.c (rpl_fopen): Close fd before returning error.
* doc/posix-functions/open.texi (open): Document that Irix also
has the bug.
* doc/posix-functions/fopen.texi (fopen): Likewise.
Reported by Paolo Bonzini.
2008-09-24 Bruno Haible <bruno@clisp.org>
Ensure that a filename ending in a slash cannot be used to access a
non-directory.
* lib/open.c (rpl_open): When the filename ends in a slash, use fstat()
to check whether it's really a directory.
* lib/fopen.c: Include fcntl.h, unistd.h.
(rpl_fopen): When the filename ends in a slash, use open(), fstat(),
and fdopen().
* modules/fopen (Depends-on): Add unistd.
* tests/test-open.c (main): Try to open "/dev/null/" as a directory.
* tests/test-fopen.c (main): Likewise.
* doc/posix-functions/open.texi: Mention the HP-UX, Solaris bug.
* doc/posix-functions/fopen.texi: Likewise.
Reported by Eric Blake.
2008-09-23 Eric Blake <ebb9@byu.net>
c-stack: avoid compiler optimizations when provoking overflow
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Make
recursion harder to optimize, to ensure a stack overflow occurs.
* tests/test-c-stack.c (recurse): Likewise.
Borrowed from libsigsegv.
c-stack: work around Irix sigaltstack bug
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Check
whether sigaltstack uses wrong end of stack_t (copied in part from
libsigsegv).
* lib/c-stack.c (c_stack_action) [!HAVE_LIBSIGSEGV]: Work around
Irix bug, without requiring an over-allocation.
* doc/posix-functions/sigaltstack.texi (sigaltstack): Document the
bug.
fopen: document mingw bug on directories
* doc/posix-functions/fopen.texi (fopen): Mention mingw bug for
not allowing a stream visiting a directory, even though reading
from such a stream is not portable.
2008-09-23 Paolo Bonzini <bonzini@gnu.org>
* lib/poll.c: Rewrite.
* modules/poll: Depend on alloca.
2008-09-23 Paolo Bonzini <bonzini@gnu.org>
* lib/sys_socket.in.h: Do not implement rpl_setsockopt here,
instead define prototypes for a full set of wrappers. Ensure
that Cygwin does not use the compatibility code, which is only
for MinGW.
* lib/winsock.c: New.
* m4/sys_socket_h.m4: Compile lib/winsock.c if WinSock is being used.
* modules/sys_socket: Add lib/winsock.c.
* modules/poll-tests: Add errno and perror.
* tests/test-poll.c: Use ioctl, not ioctlsocket.
2008-09-23 Paolo Bonzini <bonzini@gnu.org>
* tests/test-poll.c: Downgrade minimum needed Winsock version.
2008-09-23 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/*: Add info about functions missing on IRIX 5.3.
* doc/glibc-functions/*: Likewise.
2008-09-23 Simon Josefsson <simon@josefsson.org>
* tests/test-perror.sh (tmpfiles): Cleanup temporary files on
success.
2008-09-22 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
vasnprintf: fix x86/glibc regression on printf("%La", 0.0L)
* lib/vasnprintf.c (VASNPRINTF): Support 0.0 on platforms that
supply %A but mishandle pseudo-NaN.
Reported by Simon Josefsson.
2008-09-21 Bruno Haible <bruno@clisp.org>
* tests/test-lock.c (main): Tweak skip message.
* tests/test-tls.c (main): Likewise.
2008-09-21 Bruno Haible <bruno@clisp.org>
* m4/sigaction.m4 (gl_SIGACTION): Remove unnecessary AC_SUBST. Check
whether 'struct sigaction' has sa_sigaction here...
(gl_PREREQ_SIG_HANDLER_H): ... not here.
(gl_PREREQ_SIGACTION): Remove unnecessary AC_SUBST.
2008-09-21 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Support for obsolete systems lacking ANSI C 89): New
section.
(Support for systems lacking ANSI C 89): Move stdlib, exit, strtol,
strtoul, memchr, memcmp, memcpy, memmove, memset, strcspn, strpbrk to
the new section.
(Support for obsolete systems lacking POSIX:2001): New section.
(String handling <string.h>): Move strdup to the new section.
Suggested by Simon Josefsson and Paolo Bonzini.
2008-09-21 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Allow 3-digit
exponents in %e and %g results on 'long double'. Needed for mingw's
improved *printf functions.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
Reported by Eric Blake.
2008-09-21 Bruno Haible <bruno@clisp.org>
* tests/test-snprintf-posix.h (test_function): Remove useless ASSERTs.
* tests/test-sprintf-posix.h (test_function): Likewise.
2008-09-21 Bruno Haible <bruno@clisp.org>
* modules/getpass (Depends-on): Add strdup-posix.
New module 'strdup-posix'.
* modules/strdup-posix: New file.
* m4/strdup.m4 (gl_FUNC_STRDUP_POSIX): New macro.
* lib/string.in.h (strdup): Replace if REPLACE_STRDUP is 1.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STRDUP.
* modules/string (Makefile.am): Substitute REPLACE_STRDUP.
* doc/posix-functions/strdup.texi: Mention module strdup-posix.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
strdup-posix.
* modules/strdup (Depends-on): Remove malloc-posix.
2008-09-20 Bruno Haible <bruno@clisp.org>
* lib/fstrcmp.c: Add data about branch probabilities, from Ralf
Wildenhues.
2008-09-20 Bruno Haible <bruno@clisp.org>
Ensure that wint_t gets defined on IRIX 5.3.
* lib/wchar.in.h (wint_t): Define if not defined by the system.
* lib/wctype.in.h (wint_t): Likewise.
(__wctype_wint_t): Remove type.
(isw*): Use wint_t instead of __wctype_wint_t.
* m4/wchar.m4 (gl_WCHAR_H): Invoke gt_TYPE_WINT_T and set HAVE_WINT_T.
* modules/wchar (Files): Add m4/wint_t.m4.
(Makefile.am): Substitute HAVE_WINT_T.
* tests/test-wchar.c: Check that wchar_t and wint_t are defined.
* tests/test-wctype.c: Check that wint_t is defined.
* doc/posix-headers/wchar.texi: Mention the IRIX 5 problem.
* doc/posix-headers/wctype.texi: Likewise.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.
2008-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_exit): Update comment.
2008-09-18 Simon Josefsson <simon@josefsson.org>
* modules/getaddrinfo (Depends-on): Remove strdup, this module
assumes strdup exists and does not depend on strdup to return
ENOMEM on out of memory conditions.
2008-09-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): When printing ±0.0L in
NEED_PRINTF_INFINITE_LONG_DOUBLE case with 'e' format, always use two
digits for the exponent.
2008-09-18 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (decimal_point_char): Define also if
NEED_PRINTF_INFINITE_LONG_DOUBLE.
2008-09-16 Bruno Haible <bruno@clisp.org>
and Eric Blake <ebb9@byu.net>
vasnprintf: support Irix 5.3
* lib/vasnprintf.c (VASNPRINTF): Also handle -0.0L on platforms
that mishandle long double infinity.
Reported by Tom G. Christensen.
2008-09-16 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/scandir.texi: Mention the function is missing on
Solaris 9.
* doc/glibc-functions/alphasort.texi: Likewise.
Reported by Michael Haubenwallner <michael.haubenwallner@salomon.at>.
2008-09-16 Jim Meyering <meyering@redhat.com>
posix-shell.m4: reject opensolaris's "sh (AT&T Research) 1993-12-28 s+"
* m4/posix-shell.m4 (gl_POSIX_SHELL): Reject a shell that lets
a umask modification leak out of a subshell. Otherwise, the
opensolaris /bin/sh would be accepted and thus cause unwarranted
failures in the coreutils test suite.
2008-09-16 Paolo Bonzini <bonzini@gnu.org>
* tests/test-poll.c (connect_to_socket): Allow non-blocking connect
to succeed.
2008-09-16 Jim Meyering <meyering@redhat.com>
avoid spurious test failure when library is built without ACL support
* m4/acl.m4 (USE_ACL): Define as a shell variable, too, for...
* modules/acl-tests (Makefile.am) [TESTS_ENVIRONMENT]: Add USE_ACL.
* tests/test-file-has-acl.sh: Skip if USE_ACL == 0.
* tests/test-copy-acl.sh: Likewise.
2008-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/fstrcmp.c (fstrcmp_bounded): Use a second, less quick upper bound
based on character occurrence counts.
2008-09-15 Eric Blake <ebb9@byu.net>
tests: avoid some compiler warnings
* tests/test-memchr.c (main): Pass NULL indirectly.
* tests/test-closein.c (main): Avoid unused variable.
2008-09-15 Bruno Haible <bruno@clisp.org>
* m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test for all the macros that
are missing on OpenBSD 4.0 individually.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2008-09-15 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/errno.texi: Mention the Cygwin problem.
* doc/posix-functions/strerror.texi: Mention also Cygwin.
* doc/posix-functions/perror.texi: Likewise.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test also whether ECANCELED
is missing.
Reported by Eric Blake.
* lib/errno.in.h: Use replacement values >= 2000.
Reported by Eric Blake.
2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Add field 'edit_count_limit'.
(EARLY_ABORT): Return true when the edit_count has grown too beyond the
limit.
(fstrcmp_bounded): Initialize the edit_count_limit. Return 0 when
compareseq was aborted.
2008-09-14 Bruno Haible <bruno@clisp.org>
* lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Combine xvec_edit_count and
yvec_edit_count.
(NOTE_DELETE, NOTE_INSERT): Increment the combined edit count.
(fstrcmp_bounded): Simplify result computation accordingly.
2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/fstrcmp.h (fstrcmp_bounded): New declaration.
(fstrcmp): Define in terms of fstrcmp_bounded.
* lib/fstrcmp.c (fstrcmp_bounded): Renamed from fstrcmp. Add
lower_bound argument.
Return quickly if the result is certainly < lower_bound.
* tests/test-fstrcmp.c (check_fstrcmp): Test also fstrcmp_bounded.
2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/diffseq.h (EARLY_ABORT): New macro.
(compareseq): Change return type to bool. Return true when EARLY_ABORT
evaluates to true.
2008-09-14 Bruno Haible <bruno@clisp.org>
* modules/perror-tests: New file.
* tests/test-perror.sh: New file.
* tests/test-perror.c: New file.
New module 'perror'.
* lib/stdio.in.h (perror): New declaration.
* lib/perror.c: New file.
* m4/perror.m4: New file.
* modules/perror: New file.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add perror.
* doc/posix-functions/perror.texi: Mention the perror module.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_PERROR,
REPLACE_PERROR.
* modules/stdio (Makefile.am): Substitute GNULIB_PERROR,
REPLACE_PERROR.
2008-09-14 Bruno Haible <bruno@clisp.org>
* modules/stdio (Makefile.am): Reorder to match the order in
lib/stdio.in.h.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
2008-09-13 Bruno Haible <bruno@clisp.org>
* lib/sys_socket.in.h (EINPROGRESS, ...): Remove definitions.
2008-09-13 Bruno Haible <bruno@clisp.org>
Extend strerror to cover the added errno values.
* lib/strerror.c: Include errno.h and winsock2.h if it exists.
(rpl_strerror): Provide error messages for the added errno values and
for the WSA* values.
* m4/strerror.m4 (gl_FUNC_STRERROR): Test REPLACE_STRERROR.
(gl_FUNC_STRERROR_SEPARATE): If errno.h is replaced, always replace
strerror.
(gl_PREREQ_STRERROR): Test whether winsock2.h exists.
* modules/strerror (Depends-on): Add errno.
* doc/posix-functions/strerror.texi: Document the change.
* tests/test-strerror.c (main): Check also the string for ETIMEDOUT
and EOVERFLOW.
2008-09-13 Bruno Haible <bruno@clisp.org>
* modules/EOVERFLOW: Remove file.
* m4/eoverflow.m4: Remove file.
* modules/EOVERFLOW-tests: Remove file.
* tests/test-EOVERFLOW.c: Remove file.
* modules/fprintf-posix (Depends-on): Replace EOVERFLOW with errno.
* modules/ftell (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getugroups (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/snprintf (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/xvasprintf (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-vasprintf (Depends-on): Likewise.
* modules/unistdio/u8-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u8-vsprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vsprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vsprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasprintf (Depends-on): Likewise.
* modules/unistdio/u16-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vsprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasprintf (Depends-on): Likewise.
* modules/unistdio/u32-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vsprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vsnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vsprintf (Depends-on): Likewise.
* modules/unistdio/ulc-fprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vfprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vsnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vsprintf (Depends-on): Likewise.
* MODULES.html.sh: Remove EOVERFLOW.
* NEWS: Mention the change.
2008-09-13 Bruno Haible <bruno@clisp.org>
* modules/errno-tests: New file.
* tests/test-errno.c: New file, incorporating tests/test-EOVERFLOW.c.
* lib/errno.in.h: New file.
* m4/errno_h.m4: New file, borrowing from m4/eoverflow.m4.
* modules/errno: New file.
* doc/posix-headers/errno.texi: Update documentation.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add errno.
2008-09-13 Bruno Haible <bruno@clisp.org>
* tests/test-poll.c: Use #if for native Windows, rather than testing
__MSVCRT__.
2008-09-13 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* lib/glob.c: Don't include <pwd.h> on native Windows.
(WINDOWS32): New macro.
(glob) [WINDOW32]: Provide a reasonable replacement for getenv("HOME").
2008-09-13 Bruno Haible <bruno@clisp.org>
* lib/glthread/cond.h [USE_SOLARIS_THREADS]
(ETIMEDOUT): Remove macro.
(glthread_cond_timedwait_multithreaded): New declaration.
(glthread_cond_timedwait): Use it.
* lib/glthread/cond.c [USE_SOLARIS_THREADS]
(glthread_cond_timedwait_multithreaded): New function.
2008-09-12 Paolo Bonzini <bonzini@gnu.org>
* modules/poll-tests: Do not check for io.h.
* tests/test-poll.c: Check for __MSVCRT__ instead.
2008-09-12 Paolo Bonzini <bonzini@gnu.org>
* lib/sys_socket.in.h (EINPROGRESS): Define for Winsock case.
* modules/poll-tests: Add inet_pton, stdbool, sockets.
* tests/test-poll.c: Use them. Use _pipe on Windows.
2008-09-12 Paolo Bonzini <bonzini@gnu.org>
* modules/poll-tests: New.
* tests/test-poll.c: New.
2008-09-12 Eric Blake <ebb9@byu.net>
frexp: test for NetBSD failure on -0.0
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Enhance test, since some, but
not all, bugs from NetBSD 3.0 have been fixed.
* doc/posix-functions/frexp.texi (frexp): Document bug.
Reported by Thomas Klausner.
signbit: work around bug of HP-UX 10.20 cc with -0.0 literal
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Rewrite test to avoid
literal -0.0.
Reported by Jonathan C. Patschke <jp@centtech.com>.
2008-09-11 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/glthread/cond.h: Use dummy implementation also if
USE_WIN32_THREADS.
2008-09-11 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* modules/fnmatch-posix (License): Change to LGPLv2+.
* modules/fnmatch-gnu (License): Likewise.
2008-09-11 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/poll.c (poll): Fix polling unconnected server sockets on WIN32.
2008-09-11 Jim Meyering <meyering@redhat.com>
* users.txt: Add gtk-vnc.
2008-09-08 Simon Josefsson <simon@josefsson.org>
* tests/test-bitrotate.c: Test 8/16-bit rotates with 0 and maximum
rotate amounts.
* lib/bitrotate.h: Doc fix, mention that N can be wider than minimally
required for 16-bit and 8-bit rotates.
* lib/bitrotate.h (rotl64, rotr64, rotl32, rotl32, rotl16, rotr16,
rotl8, rotr8): Use UINT64_MAX, UINT32_MAX, UINT16_MAX, and
UINT8_MAX instead of hard-coded constants.
Suggested by Paul Eggert.
2008-09-07 Bruno Haible <bruno@clisp.org>
* tests/test-striconveh.c (main): Check behaviour when converting from
UTF-7.
Make striconveh work better with stateful encodings.
* lib/striconveh.c (iconv_carefully, iconv_carefully_1): Don't assume
that iconv does not increment the inptr when returning -1/EINVAL.
2008-09-07 Bruno Haible <bruno@clisp.org>
* build-aux/config.rpath: Update according to libtool-2.2.6.
* build-aux/config.libpath: Likewise.
2008-09-06 Bruno Haible <bruno@clisp.org>
* lib/freadahead.c (freadahead): Add conditional for SLOW_BUT_NO_HACKS.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
Reported by Simon Josefsson.
2008-09-06 Bruno Haible <bruno@clisp.org>
* modules/freadptr (License): Change to LGPLv2+.
* modules/freadseek (License): Likewise.
Suggested by Eric Blake.
* modules/memchr2 (License): Change to LGPLv2+.
Approved by Eric Blake.
2008-09-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
Make gnulib-tool work with native 'sed' on AIX.
* gnulib-tool (sed_noop): New variable.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am, func_import,
func_add_or_update, func_create_testdir): Use it to initialize sed
script variables.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2008-09-04 Albert Chin <bug-gnulib@mlists.thewrittenword.com>
Bruno Haible <bruno@clisp.org>
* m4/include_next.m4 (gl_INCLUDE_NEXT): Add check whether #include_next
also works after #include directives.
2008-09-04 Ondřej Vašík <ovasik@redhat.com>
getdate.y: reject an out-of-range timezone value
* lib/getdate.y (time_zone_hhmm): Reject any TZ offset that is outside
the range [-24...+24]. When specified with only one or two digits,
* tests/test-getdate.c: Tests for the fix.
* doc/getdate.texi: Document this change.
2008-09-03 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/strverscmp.texi: Mention the strverscmp module.
2008-09-02 Simon Josefsson <simon@josefsson.org>
* lib/bitrotate.h (rotl64, rotr64): Add. Suggested by Bruce Korb
<bruce.korb@gmail.com> with ideas from Ben Pfaff
<blp@cs.stanford.edu>, Bruno Haible <bruno@clisp.org> and Eric
Blake <ebb9@byu.net>.
* tests/test-bitrotate.c: Add more test vectors.
2008-09-02 Eric Blake <ebb9@byu.net>
vasnprintf-posix: handle large precision via %.*d
* lib/vasnprintf.c (VASNPRINTF): Don't pass precision to snprintf
when handling it ourselves.
* tests/test-vasnprintf-posix.c (test_function): Add test.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
Reported by Alain Guibert.
2008-09-01 Eric Blake <ebb9@byu.net>
c-stack: make configure-time check more robust
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Check for
successful sigaction call.
Reported by Tom G. Christensen.
2008-09-01 Bruno Haible <bruno@clisp.org>
New module 'findprog-lgpl'.
* modules/findprog-lgpl: New file.
* lib/findprog-lgpl.c: New file.
* lib/findprog.c: Compile nothing in findprog.c if findprog-lgpl.c is
also compiled. Consider the possibly defined symbol IN_FINDPROG_LGPL
to decide whether to use strdup or xstrdup, concatenated_filename or
xconcatenated_filename.
2008-09-01 Bruno Haible <bruno@clisp.org>
Split module 'concat-filename' into 'concat-filename' (LGPL) and
'xconcat-filename' (GPL).
* modules/concat-filename (Depends-on): Add malloc-posix, remove xalloc.
(License): Change to LGPLv2+.
* modules/xconcat-filename: New file.
* lib/concat-filename.h (concatenated_filename): Change specification.
(xconcatenated_filename): New declaration.
* lib/concat-filename.c: Include errno.h, stdlib.h, not xalloc.h.
(concatenated_filename): Use malloc instead of xalloc. Handle out-of-
memory situations.
* lib/xconcat-filename.c: New file.
* NEWS: Mention the change.
* lib/findprog.c: Include concat-filename.h, not filename.h.
(find_in_path): Use xconcatenated_filename instead of
concatenated_filename.
* lib/javacomp.c: Include concat-filename.h, not filename.h.
(is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable,
is_envjavac_oldgcj_14_13_usable, is_envjavac_nongcj_usable,
is_gcj_present, is_gcj43_usable, is_oldgcj_14_14_usable,
is_oldgcj_14_13_usable, is_javac_usable): Use xconcatenated_filename
instead of concatenated_filename.
* lib/javaexec.c: Include concat-filename.h, not filename.h.
(execute_java_class): Use xconcatenated_filename instead of
concatenated_filename.
* modules/findprog (Depends-on): Add xconcat-filename, remove filename.
* modules/javacomp (Depends-on): Likewise.
* modules/javaexec (Depends-on): Likewise.
2008-09-01 Bruno Haible <bruno@clisp.org>
Split module 'filename' into 'filename' and 'concat-filename'.
* modules/filename: Keep only lib/filename.h.
(License): Change to LGPLv2+.
* modules/concat-filename: New file, extracted from modules/filename.
* lib/filename.h (concatenated_filename): Remove declaration.
* lib/concat-filename.h: New file, extracted from lib/filename.h.
* lib/concat-filename.c: Include concat-filename.h.
* NEWS: Mention the change.
2008-09-01 Simon Josefsson <simon@josefsson.org>
* lib/bitrotate.h (rotl8, rotr8): Add.
* modules/bitrotate (configure.ac): Need
AC_REQUIRE([AC_C_INLINE]).
(Description): Mention stdint.h. Reported by Bruno Haible
<bruno@clisp.org>.
* lib/bitrotate.h (rotr16, rotl16): Fix mask value. Reported by
Paolo Bonzini <bonzini@gnu.org>.
2008-08-31 Bruno Haible <bruno@clisp.org>
Assume Solaris specific bi-arch conventions on Solaris systems.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On Solaris in 64-bit
mode, set acl_libdirstem to lib/64. Also set acl_libdirstem2.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): If acl_libdirstem does not
work, try acl_libdirstem2 as fallback. Otherwise treat acl_libdirstem2
like acl_libdirstem.
(AC_LIB_LINKFLAGS_FROM_LIBS): Treat acl_libdirstem2 like
acl_libdirstem.
* NEWS: Mention the change.
Reported by Ben Taylor <bentaylor.solx86@gmail.com>.
2008-08-31 Jim Meyering <meyering@redhat.com>
* lib/strftime.h: Add comments describing the two added arguments.
remove duplicate #include directives
* lib/chdir-long.c [TEST_CHDIR]: Remove duplicate #include <stdio.h>.
* lib/putenv.c: Remove duplicate #include <stdlib.h>.
2008-08-31 Bruno Haible <bruno@clisp.org>
New module 'sigpipe-die'.
* modules/sigpipe-die: New file.
* lib/sigpipe-die.h: New file.
* lib/sigpipe-die.c: New file.
* MODULES.html.sh (Signal handling): Add sigpipe-die.
2008-08-31 Bruno Haible <bruno@clisp.org>
Don't override previously installed signal handlers.
* lib/fatal-signal.c (saved_sigactions): New variable.
(uninstall_handlers): Reset the signal to the saved handler, not
to SIG_DFL (except when ignored).
(install_handlers): Save the previous handlers.
2008-08-30 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_reset_sigpipe): New function.
(func_get_automake_snippet, func_modules_transitive_closure,
func_import): Invoke it before a join command that reads from stdin,
to avoid "echo: write error: Broken pipe" error messages on stderr.
Reported by Sam Steingold <sds@gnu.org>.
2008-08-30 Bruno Haible <bruno@clisp.org>
* m4/fopen.m4 (gl_FUNC_FOPEN): Test against bug with trailing slash.
Code copied from m4/open.m4.
* lib/fopen.c (rpl_fopen): Return NULL if the mode specifies write
access and the filename ends in a slash. Code copied from lib/open.c.
* doc/posix-functions/fopen.texi: Document bug with trailing slash.
* tests/test-fopen.c (main): Check against bug with trailing slash.
2008-08-29 Bruno Haible <bruno@clisp.org>
Avoid some "gcc -pedantic" warnings.
* m4/include_next.m4 (gl_INCLUDE_NEXT): Set also PRAGMA_SYSTEM_HEADER.
* lib/arpa_inet.in.h: Use PRAGMA_SYSTEM_HEADER.
* lib/dirent.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* modules/arpa_inet (Makefile.am): Also substitute PRAGMA_SYSTEM_HEADER.
* modules/fchdir (Makefile.am): Likewise.
* modules/fcntl (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/iconv_open (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype (Makefile.am): Likewise.
Reported by Reuben Thomas <rrt@sc3d.org>.
2008-08-29 Bruno Haible <bruno@clisp.org>
* m4/include_next.m4 (gl_INCLUDE_NEXT): Don't define HAVE_INCLUDE_NEXT
any more.
2008-08-29 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh (Misc): Add bitrotate.
* modules/bitrotate: New file.
* lib/bitrotate.h: New file.
* modules/bitrotate-tests: New file.
* tests/test-bitrotate.c: New file.
* modules/crypto/gc-arctwo, modules/crypto/arctwo: Add dependency
on the bitrotate module.
* lib/arctwo.c: Use new bitrotate module.
2008-08-29 Jim Meyering <meyering@redhat.com>
bootstrap: merge changes from coreutils
* build-aux/bootstrap (cp_mark_as_generated): Preserve perms
of copied files. Remove a kludge, now that this is fixed.
* build-aux/bootstrap: Fix unportable expr usage. (by Ralf Wildenhues)
* build-aux/bootstrap: Remove $bt and $bt2 also when not using gettext.
* build-aux/bootstrap: Remove coreutils-specific SUBDIRS-related code.
2008-08-29 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Remove --cvs-urls option.
2008-08-28 Jose E. Marchesi <jemarch@gnu.org> (tiny change)
maint.mk: adjust to file name change
* top/maint.mk: s/Makefile.cfg/cfg.mk/.
2008-08-28 Jim Meyering <meyering@redhat.com>
* modules/getndelim2 (License): Relicense to LGPLv2+.
Approved by Richard Stallman for the version of 1995, and by
Paul Eggert, Bruno Haible, Eric Blake for their contributions.
2008-08-27 Paolo Bonzini <bonzini@gnu.org>
* lib/getdelim.c (flockfile, funlockfile): Make all of them
dummy if one is not available. Do not touch them if
USE_UNLOCKED_IO, instead letting unlocked-io.h do that.
(getc_maybe_unlocked): New.
* m4/getdelim.m4 (gl_PREREQ_GETDELIM): Check for getc_unlocked.
2008-08-26 Eric Blake <ebb9@byu.net>
doc/INSTALL: resync from autoconf
* doc/Makefile (INSTALL, INSTALL.ISO, INSTALL.UTF-8): Simplify.
(INSTALL_PRELUDE): Delete; this is done more efficiently by
moving...
* install.texi [!autoconf]: ...here. Resync from autoconf.
* INSTALL: Regenerate.
* INSTALL.ISO: New file.
* INSTALL.UTF-8: Likewise.
2008-08-26 Jim Meyering <meyering@redhat.com>
GNUmakefile: cfg.mk definitions override default autoreconf-rerun policy
* top/GNUmakefile (_is-dist-target, _is-install-target): Make
these definitions conditional, so that they may be overridden, too.
2008-08-26 Bruno Haible <bruno@clisp.org>
Generate INSTALL file variants with prettier quotes.
* doc/Makefile (INSTALL_PRELUDE): New macro.
(INSTALL): Use it.
(INSTALL.ISO, INSTALL.UTF-8): New rules.
2008-08-26 Bruno Haible <bruno@clisp.org>
Run makeinfo in an English locale.
* doc/Makefile (MAKEINFO): New variable.
2008-08-26 Bruno Haible <bruno@clisp.org>
* doc/Makefile (INSTALL): Use --no-validate instead of --no-warn.
Suggested by Eric Blake.
2008-08-25 Bruno Haible <bruno@clisp.org>
* doc/Makefile (INSTALL): Generate with @firstparagraphindent set.
2008-08-25 Eric Blake <ebb9@byu.net>
c-stack: test that stack overflow can be caught
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Also check
that platform allows handling stack overflow; at least OS/2 EMX
has sigaltstack, but crashes before transferring control to
handler on stack overflow.
* lib/c-stack.c [HAVE_SIGALTSTACK]: Adjust conditions to also
check for HAVE_STACK_OVERFLOW_HANDLING.
Reported by Elbert Pol.
2008-08-25 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/strftime.texi: Fix description of strftime
module.
2008-08-24 Bruno Haible <bruno@clisp.org>
* tests/uniwidth/test-uc_width2.c: New file.
* tests/uniwidth/test-uc_width2.sh: New file.
* modules/uniwidth/width-tests (Files): Add the new files.
(TESTS): Add uniwidth/test-uc_width2.sh.
(TESTS_ENVIRONMENT): New variable.
(check_PROGRAMS): Add test-uc_width2.
(test_uc_width2_SOURCES): New variable.
Fix uc_width(0x00AB) bug, introduced on 2007-07-08.
* lib/uniwidth/width.c (nonspacing_table_data): Set bit for 0x00AD,
not 0x00AB.
Reported by Alexander V. Lukyanov <lav@netis.ru>.
2008-08-22 Eric Blake <ebb9@byu.net>
test-lock, test-tls: mention why a test is skipped
* tests/test-lock.c (main) [!USE_*_THREADS]: Print why test is
skipped.
* tests/test-tls.c (main) [!USE_*_THREADS]: Likewise.
count-one-bits: relax license
* modules/count-one-bits (License): Relicense to LGPLv2+.
Suggested by Ludovic Courtès, approved by Ben Pfaff.
2008-08-22 Andreas Schwab <schwab@suse.de>
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX):
Remove spurious space in assignment.
2008-08-21 Simon Josefsson <simon@josefsson.org>
* m4/autobuild.m4: Use TZ=UTC0 instead of TZ=UTC. Reported by
Paul Eggert <eggert@CS.UCLA.EDU>.
2008-08-20 Paolo Bonzini <bonzini@gnu.org>
* modules/gettext: Add m4/threadlib.m4.
2008-08-19 Eric Blake <ebb9@byu.net>
test-c-stack: fix compilation failure on FreeBSD 5.0
* tests/test-c-stack.c [HAVE_SETRLIMIT]: Include prerequisite
headers before <sys/resource.h>.
* doc/posix-headers/sys_resource.texi (sys/resource.h): Document
the bug.
Reported by Nelson H. F. Beebe.
strverscmp: migrate from "strverscmp.h" to <string.h>
* modules/string (Makefile.am): Add new hooks.
* modules/strverscmp (Files): Remove strverscmp.h.
(Depends-on): Add string.
(configure.ac): Add indicator.
(Include): Mention new header.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Provide new
defaults.
* m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Inform string module of
results.
* lib/strverscmp.h: Delete.
* lib/string.in.h (strverscmp): Provide declaration, when needed.
* tests/test-strverscmp.c (includes): Adjust client.
* lib/check-version.c (includes): Likewise.
* NEWS: Document the change.
strverscmp: add unit test
* modules/strverscmp-tests: New file.
* tests/test-strverscmp.c: Likewise.
2008-08-19 Simon Josefsson <simon@josefsson.org>
* lib/gc-gnulib.c: Indentation cleanup. Add some comments
regarding Windows crypto stuff, from Mono.
2008-08-19 Adam Strzelecki <ono@java.pl> (tiny change)
* lib/gc-gnulib.c: Use CRYPT_VERIFY_CONTEXT. Try to use Intel CSP
if present, for intel RND. Return error on failures.
2008-08-18 Ben Pfaff <blp@gnu.org>
gitlog-to-changelog: give better diagnostic for failed pipe-open
* build-aux/gitlog-to-changelog: Improve error message: suggest
that the version of Git may be too old.
2008-08-18 Simon Josefsson <simon@josefsson.org>
* m4/autobuild.m4: Use TZ=UTC to avoid time zone complexity. Use
ISO 8601 format. Suggested by Greg Troxel <gdt@ir.bbn.com>.
2008-08-18 Bruno Haible <bruno@clisp.org>
* lib/glthread/thread.h [USE_SOLARIS_THREADS]: Use thread_in_use(), not
pthread_in_use().
2008-08-18 Bruno Haible <bruno@clisp.org>
* lib/glthread/threadlib.c: Include <pthread.h>.
2008-08-18 Bruno Haible <bruno@clisp.org>
* lib/glthread/lock.h [USE_SOLARIS_THREADS]: Fix
glthread_recursive_lock_* macros.
* lib/glthread/lock.c (glthread_recursive_lock_destroy_multithreaded):
Fix syntax error.
2008-08-18 Bruno Haible <bruno@clisp.org>
* lib/glthread/thread.c: Avoid forcing a context switch right after
thread creation.
2008-08-17 Bruno Haible <bruno@clisp.org>
* lib/glthread/thread.c: New file, based on code from tests/test-lock.c.
* lib/glthread/thread.h: Provide Win32 specific implementation.
* modules/thread (Files): Add lib/glthread/thread.c.
(Depends-on): Add lock.
(Makefile.am): Add glthread/thread.c to lib_SOURCES.
2008-08-17 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
New module 'yield'.
* modules/yield: New file.
* lib/glthread/yield.h: New file.
* m4/yield.m4: New file.
* MODULES.html.sh (Multithreading): Add yield.
2008-08-17 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
New module 'thread'.
* modules/thread: New file.
* lib/glthread/thread.h: New file.
* m4/thread.m4: New file.
* MODULES.html.sh (Multithreading): Add thread.
2008-08-17 Bruno Haible <bruno@clisp.org>
* lib/glthread/lock.h: Include <stdlib.h> always.
* lib/glthread/tls.h: Likewise.
* lib/glthread/cond.h: Likewise.
2008-08-17 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
New module 'cond'.
* modules/cond: New file.
* lib/glthread/cond.h: New file.
* lib/glthread/cond.c: New file.
* m4/cond.m4: New file.
* MODULES.html.sh (Multithreading): Add cond.
2008-08-16 Eric Blake <ebb9@byu.net>
c-stack: fix regression on Irix 5.3 from 2008-06-21
* m4/c-stack.m4 (gl_PREREQ_C_STACK): Move check for
sa_sigaction...
* m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): ...here.
(gl_PREREQ_SIGACTION): Depend on sig-handler.h prereq's.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Set the default.
* modules/signal (Makefile.am): Use the value.
* lib/signal.in.h (sa_sigaction) [HAVE_SIGACTION
&& !HAVE_STRUCT_SIGACTION_SA_SIGACTION]: Define.
* doc/posix-headers/signal.texi (signal.h): Document this
portability issue.
* doc/posix-functions/sigaction.texi (sigaction): Likewise.
Reported by Tom G. Christensen.
2008-08-17 Bruno Haible <bruno@clisp.org>
New module 'threadlib'.
* modules/threadlib: New file.
* lib/glthread/threadlib.c: New file, extracted from
lib/glthread/lock.c.
* lib/glthread/lock.c (dummy_thread_func, glthread_in_use): Remove
functions.
* m4/threadlib.m4: New file, from m4/lock.m4, renaming gl_LOCK to
gl_THREADLIB and gl_LOCK_EARLY to gl_THREADLIB_EARLY.
* m4/lock.m4 (gl_LOCK_EARLY, gl_LOCK_EARLY_BODY, gl_LOCK_BODY): Remove
macros.
(gl_LOCK): Just require gl_THREADLIB and perform checks for lock.h.
(gl_DISABLE_THREADS): Remove macro.
* modules/lock (Files): Remove build-aux/config.rpath.
(Depends-on): Remove havelib. Add threadlib.
(configure.ac-early): Remove section.
* m4/tls.m4 (gl_TLS): Require gl_THREADLIB instead of gl_LOCK.
* modules/tls (Depends-on): Remove lock. Add threadlib.
(Link): New section, copied from threadlib.
* MODULES.html.sh (Multithreading): Add threadlib.
2008-08-14 Bruno Haible <bruno@clisp.org>
* lib/glthread/lock.h (glthread_lock_lock, glthread_lock_unlock,
glthread_lock_destroy, glthread_rwlock_rdlock, glthread_rwlock_wrlock,
glthread_rwlock_unlock, glthread_rwlock_destroy,
glthread_recursive_lock_lock, glthread_recursive_lock_unlock,
glthread_recursive_lock_destroy): Define as macros always.
* lib/glthread/lock.c (glthread_lock_lock_func): Renamed from
glthread_lock_lock.
(glthread_lock_unlock_func): Renamed from glthread_lock_unlock.
(glthread_lock_destroy_func): Renamed from glthread_lock_destroy.
(glthread_rwlock_rdlock_func): Renamed from glthread_rwlock_rdlock.
(glthread_rwlock_wrlock_func): Renamed from glthread_rwlock_wrlock.
(glthread_rwlock_unlock_func): Renamed from glthread_rwlock_unlock.
(glthread_rwlock_destroy_func): Renamed from glthread_rwlock_destroy.
(glthread_recursive_lock_lock_func): Renamed from
glthread_recursive_lock_lock.
(glthread_recursive_lock_unlock_func): Renamed from
glthread_recursive_lock_unlock.
(glthread_recursive_lock_destroy_func): Renamed from
glthread_recursive_lock_destroy.
2008-08-14 Bruno Haible <bruno@clisp.org>
* lib/glthread/lock.h: Renamed from lib/lock.h.
* lib/glthread/lock.c: Renamed from lib/lock.c. Update includes.
* lib/glthread/tls.h: Renamed from lib/tls.h.
* lib/glthread/tls.c: Renamed from lib/tls.c. Update includes.
* lib/fstrcmp.c: Update includes.
* lib/strsignal.c: Update includes.
* modules/lock (Files, Makefile.am): Update.
(Include): Change to "glthread/lock.h".
* modules/tls (Files, Makefile.am): Update.
(Include): Change to "glthread/tls.h".
* tests/test-lock.c: Update includes.
* tests/test-tls.c: Update includes.
* NEWS: Mention the renamed header files.
2008-08-11 Jim Meyering <meyering@redhat.com>
* lib/fts_.h: Fix grammar (insert a missing "is") in a comment.
2008-08-11 Eric Blake <ebb9@byu.net>
test-c-stack: avoid C99-ism
* tests/test-c-stack.c (main): Fix whitespace, move declaration
before statement.
Reported by Alain Guibert.
2008-08-10 Jim Meyering <meyering@redhat.com>
ensure that return value of uinttostr et al are not ignored
* lib/inttostr.h (__GNUC_PREREQ): Define.
(__attribute_warn_unused_result__): Define.
(offtostr, imaxtostr, umaxtostr, uinttostr): Apply the attribute.
2008-08-07 Paolo Bonzini <bonzini@gnu.org>
* lib/lock.c (glthread_recursive_lock_init_multithreaded)
[!PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: Fix typo.
2008-08-07 Jim Meyering <meyering@redhat.com>
* m4/inet_pton.m4: Fix typo in comment: s/inet_ntop/inet_pton/.
* modules/mkstemp (License): Relicense under LGPLv2+.
* modules/tempname (License): Likewise.
2008-08-06 Bruno Haible <bruno@clisp.org>
* lib/poll.c (poll): Further micro-optimization.
2008-08-06 Jim Meyering <meyering@redhat.com>
inet_pton.c: use locale-independent tolower
* lib/inet_pton.c: Include <c-ctype.h> rather than <ctype.h>.
(inet_pton6): Use c_tolower rather than tolower.
* modules/inet_pton (Depends-on): Add c-ctype.
2008-08-06 Paolo Bonzini <bonzini@gnu.org>
* lib/poll.c (poll): Avoid division when timeout is 0, cache
_SC_OPEN_MAX, avoid repeated access to errno. Check for nfd < 0.
2008-08-06 Jim Meyering <meyering@redhat.com>
* modules/inet_pton (License): Relicense under LGPLv2+.
2008-08-03 Bruno Haible <bruno@clisp.org>
Additional non-aborting API for lock and tls.
* lib/lock.h: Include <errno.h>.
(glthread_lock_init): New macro/function.
(gl_lock_init): Define as wrapper around glthread_lock_init.
(glthread_lock_lock): New macro/function.
(gl_lock_lock): Define as wrapper around glthread_lock_lock.
(glthread_lock_unlock): New macro/function.
(gl_lock_unlock): Define as wrapper around glthread_lock_unlock.
(glthread_lock_destroy): New macro/function.
(gl_lock_destroy): Define as wrapper around glthread_lock_destroy.
(glthread_rwlock_init): New macro/function.
(gl_rwlock_init): Define as wrapper around glthread_rwlock_init.
(glthread_rwlock_rdlock): New macro/function.
(gl_rwlock_rdlock): Define as wrapper around glthread_rwlock_rdlock.
(glthread_rwlock_wrlock): New macro/function.
(gl_rwlock_wrlock): Define as wrapper around glthread_rwlock_wrlock.
(glthread_rwlock_unlock): New macro/function.
(gl_rwlock_unlock): Define as wrapper around glthread_rwlock_unlock.
(glthread_rwlock_destroy): New macro/function.
(gl_rwlock_destroy): Define as wrapper around glthread_rwlock_destroy.
(glthread_recursive_lock_init): New macro/function.
(gl_recursive_lock_init): Define as wrapper around
glthread_recursive_lock_init.
(glthread_recursive_lock_lock): New macro/function.
(gl_recursive_lock_lock): Define as wrapper around
glthread_recursive_lock_lock.
(glthread_recursive_lock_unlock): New macro/function.
(gl_recursive_lock_unlock): Define as wrapper around
glthread_recursive_lock_unlock.
(glthread_recursive_lock_destroy): New macro/function.
(gl_recursive_lock_destroy): Define as wrapper around
glthread_recursive_lock_destroy.
(glthread_once): New macro/function.
(gl_once): Define as wrapper around glthread_once.
Update function declarations.
* lib/lock.c (glthread_rwlock_init_multithreaded): Renamed from
glthread_rwlock_init. Return error code.
(glthread_rwlock_rdlock_multithreaded): Renamed from
glthread_rwlock_rdlock. Return error code.
(glthread_rwlock_wrlock_multithreaded): Renamed from
glthread_rwlock_wrlock. Return error code.
(glthread_rwlock_unlock_multithreaded): Renamed from
glthread_rwlock_unlock. Return error code.
(glthread_rwlock_destroy_multithreaded): Renamed from
glthread_rwlock_destroy. Return error code.
(glthread_recursive_lock_init_multithreaded): Renamed from
glthread_recursive_lock_init. Return error code.
(glthread_recursive_lock_lock_multithreaded): Renamed from
glthread_recursive_lock_lock. Return error code.
(glthread_recursive_lock_unlock_multithreaded): Renamed from
glthread_recursive_lock_unlock. Return error code.
(glthread_recursive_lock_destroy_multithreaded): Renamed from
glthread_recursive_lock_destroy. Return error code.
(glthread_once_call): Make static.
(glthread_once_multithreaded): Renamed from glthread_once.
* lib/tls.h: Include <errno.h>.
(glthread_tls_key_init): New macro/function.
(gl_tls_key_init): Define as wrapper around glthread_tls_key_init.
(glthread_tls_set): New macro/function.
(gl_tls_set): Define as wrapper around glthread_tls_set.
(glthread_tls_key_destroy): New macro/function.
(gl_tls_key_destroy): Define as wrapper around glthread_tls_key_destroy.
Update function declarations.
* lib/tls.c (glthread_tls_get_multithreaded): Renamed from
glthread_tls_get.
Suggested by Yoann Vandoorselaere <yoann@prelude-ids.org>.
2008-08-04 Eric Blake <ebb9@byu.net>
gnumakefile: use space, not TAB, outside of targets
* top/GNUmakefile (_dummy): Fix whitespace error in prior edit.
2008-08-02 Jim Meyering <meyering@redhat.com>
getdate.y: avoid locale-dependent date parsing failure
In Turkish locales, getdate would fail to recognize keywords
containing a lowercase "i". The solution is not to rely on
locale-sensitive case-conversion.
* lib/getdate.y: Include <c-ctype.h> rather than <ctype.h>.
(lookup_word): Use c_toupper in place of toupper.
(yylex, get_date): Use c_ prefixed variants of isspace and isalpha, too.
Reported by Vefa Bicakci <bicave@superonline.com> in
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14184>.
* modules/getdate (Depends-on): Add c-ctype.
2008-08-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): When updating or creating a .gitignore
file, prepend each added line with a slash, and ignore leading slashes
from the existing lines.
Reported by Joel E. Denny <jdenny@ces.clemson.edu>.
2008-08-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Portability fix for GNU make 3.79.1.
* top/GNUmakefile: Avoid 'else COND', which older GNU make
versions do not understand.
2008-08-01 Bruno Haible <bruno@clisp.org>
Work around bug of HP-UX 10.20 cc with -0.0 literal.
* tests/test-isnanf.h (zero): New variable.
(main): Avoid literal -0.0f.
* tests/test-isnand.h (zero): New variable.
(main): Avoid literal -0.0.
* tests/test-isnanl.h (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-isnan.c (zerof, zerod, zerol): New variables.
(test_float, test_double, test_long_double): Avoid literals -0.0f,
-0.0, -0.0L.
* tests/test-signbit.c (test_signbitf): Avoid literal -0.0f.
(test_signbitd): Avoid literal -0.0.
(test_signbitl): Avoid literal -0.0L.
* tests/test-ceilf1.c (zero): New variable.
(main): Avoid literal -0.0f.
* tests/test-ceill.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-floorf1.c (zero): New variable.
(main): Avoid literal -0.0f.
* tests/test-floorl.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-roundf1.c (zero): New variable.
(main): Avoid literal -0.0f.
* tests/test-round1.c (zero): New variable.
(main): Avoid literal -0.0.
* tests/test-roundl.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-truncf1.c (zero): New variable.
(main): Avoid literal -0.0f.
* tests/test-trunc1.c (zero): New variable.
(main): Avoid literal -0.0.
* tests/test-truncl.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-frexp.c (zero): New variable.
(main): Avoid literal -0.0.
* tests/test-frexpl.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-ldexpl.c (zero): New variable.
(main): Avoid literal -0.0L.
* tests/test-snprintf-posix.h (have_minus_zero): Avoid literal -0.0.
(zerod, zerol): New variables.
(test_function): Avoid literals -0.0, -0.0L.
* tests/test-sprintf-posix.h (have_minus_zero): Avoid literal -0.0.
(zerod, zerol): New variables.
(test_function): Avoid literals -0.0, -0.0L.
* tests/test-vasnprintf-posix.c (have_minus_zero): Avoid literal -0.0.
(zerod, zerol): New variables.
(test_function): Avoid literals -0.0, -0.0L.
* tests/test-vasprintf-posix.c (have_minus_zero): Avoid literal -0.0.
(zerod, zerol): New variables.
(test_function): Avoid literals -0.0, -0.0L.
* tests/test-strtod.c (zero): New variable.
(main): Avoid literal -0.0.
Reported by Jonathan C. Patschke <jp@centtech.com>.
2008-07-31 Jim Meyering <meyering@redhat.com>
sha256.h: correct definition of SHA224_DIGEST_SIZE
* lib/sha256.h (SHA224_DIGEST_SIZE): Define to 28, not 24.
Reported by Paulie Pena IV <paulie4@gmail.com>.
Define as 224 / 8, rather than as a literal.
(SHA256_DIGEST_SIZE): Define as 256/8 rather than equivalent literal.
* lib/sha512.h (SHA384_DIGEST_SIZE): Likewise, define as equiv: 384/8.
(SHA512_DIGEST_SIZE): Likewise, define as equivalent quotient: 512/8.
2008-07-31 Bruno Haible <bruno@clisp.org>
* lib/regex_internal.h (BITSET_WORD_BITS): Make first conditional work
on HP-UX 10.20 with "cc -Ae". Fix second conditional.
Reported by Jonathan Patschke <jp@centtech.com>.
2008-07-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Make change from 2008-06-23 more robust.
Reported by Paolo Bonzini <bonzini@gnu.org>.
2008-07-30 Eric Blake <ebb9@byu.net>
test-strtod: allow compilation without -lm
* tests/test-strtod.c (main): Avoid link dependence on fabs.
Reported by Dennis Clarke <blastwave@gmail.com>.
2008-07-28 Jim Meyering <meyering@redhat.com>
bootstrap: work also when there are no .po files in po/
* build-aux/bootstrap (update_po_files): Complete the change
that I began in bc960df8c789c878f1c1c54a28a3c2648dead8d9.
2008-07-27 Jim Meyering <meyering@redhat.com>
* users.txt: Add zile.
2008-07-26 Ben Pfaff <blp@gnu.org>
Add missing dependencies on new m4/exponent[fdl].m4 files.
* modules/isnanf-nolibm: Add m4/exponentf.m4.
* modules/isnand-nolibm: Add m4/exponentd.m4.
* modules/isnanl-nolibm: Add m4/exponentl.m4.
* modules/signbit-tests: Use m4/exponent[fdl].m4 instead of
m4/isnan[fdl].m4, because the macros actually used moved.
Reported by Jim Meyering.
2008-07-14 Ben Pfaff <blp@gnu.org>
Add isinf module.
* lib/isinf.c: New file.
* lib/math.in.h: Define isinf macro if we have decided to replace
it.
* m4/isinf.m4: New file.
* m4/math_h.m4: Initialize and substitute variables for isinf
module.
* modules/isinf: New file.
* modules/isinf-tests: New file.
* modules/math: Add substitutions for new module.
* tests/test-isinf.c: New file.
* doc/posix-functions/isinf.texi: Mention new module.
* MODULES.html.sh: Mention new module.
2008-07-14 Ben Pfaff <blp@gnu.org>
Factor out some macros for use by additional modules.
* m4/isnanf.m4 (gl_FLOAT_EXPONENT_LOCATION): Move into new file
exponentf.m4.
* m4/isnand.m4 (gl_DOUBLE_EXPONENT_LOCATION): Move into new file
exponentd.m4.
* m4/isnanl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Move into new
file exponentl.m4.
* m4/exponentf.m4: New file.
* m4/exponentd.m4: New file.
* m4/exponentl.m4: New file.
* modules/isnanf: Use new file m4/exponentf.m4.
* modules/isnand: Use new file m4/exponentd.m4.
* modules/isnanl: Use new file m4/exponentl.m4.
2008-07-23 Ulrich Drepper <drepper@redhat.com>
mktime.c: normalize tp->tm_isdst value to -1/0/1.
* lib/mktime.c (__mktime_internal): Normalize tp->tm_isdst value.
Reported by Michael Ringe <Michael.Ringe@gmx.de> in
<http://sourceware.org/bugzilla/show_bug.cgi?id=6723>.
* lib/canonicalize-lgpl.c (__realpath): Avoid buffer overflow after
readlink on platforms without PATH_MAX.
2008-07-21 Eric Blake <ebb9@byu.net>
Warn, not fail, on stale version.
* top/GNUmakefile (_curr-ver): Tone down previous patch.
Don't allow installation with stale devel version number.
* top/GNUmakefile (_is-install-target): New macro.
(_curr-ver): Forbid installation with stale version number.
2008-07-20 Bruno Haible <bruno@clisp.org>
* modules/c-stack-tests (Makefile.am): Add LIBSIGSEGV to
TESTS_ENVIRONMENT.
* tests/test-c-stack2.sh: React differently if LIBSIGSEGV is in use.
2008-07-20 Bruno Haible <bruno@clisp.org>
* lib/c-stack.h (c_stack_action): Add documentation.
* lib/c-stack.c (c_stack_action): Remove incomplete documentation.
2008-07-20 Bruno Haible <bruno@clisp.org>
* modules/canonicalize-lgpl (License): Relicense under LGPLv2+.
* modules/readlink (License): Likewise.
2008-07-17 Eric Blake <ebb9@byu.net>
* modules/c-stack (Link): Fix typo.
Make c-stack use libsigsegv, when available.
* modules/c-stack (Depends-on): Add libsigsegv.
* modules/c-stack-tests (Makefile.am): Link with libsigsegv, if
needed.
* lib/c-stack.c (SIGSTKSZ): Define fallback.
(segv_handler, overflow_handler, c_stack_action)
[HAVE_LIBSIGSEGV && !HAVE_XSI_STACK_OVERFLOW_HEURISTIC]: Add new
implementation when libsigsegv is available, but only when using
the library is necessary.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Add
comment, explaining why XSI check fails on Linux.
(gl_PREREQ_C_STACK): Supply LIBCSTACK, LTLIBCSTACK.
* tests/test-c-stack2.sh: Tweak skip message.
* NEWS: Document new link-time requirements.
2008-07-16 Eric Blake <ebb9@byu.net>
c-stack: Expose false positives when not using libsigsegv.
* modules/c-stack-tests (Files): Expand test.
* tests/test-c-stack.c (main): Add means to conditionally trigger
non-overflow SIGSEGV.
* tests/test-c-stack2.sh: New file.
2008-07-14 Bruno Haible <bruno@clisp.org>
* m4/libsigsegv.m4: Remove unneeded AC_PREREQ.
Reported by Eric Blake.
2008-07-14 Sam Steingold <sds@gnu.org>
Bruno Haible <bruno@clisp.org>
New module libsigsegv.
* modules/libsigsegv: New file.
* m4/libsigsegv.m4: New file, from GNU clisp sigsegv.m4 with
modifications.
* MODULES.html.sh (Signal handling): New section.
2008-07-14 Bruno Haible <bruno@clisp.org>
* modules/unictype/ctype-* (Description): Add the word "function".
Improves the resulting doc in MODULES.html.
2008-07-12 Ben Pfaff <blp@gnu.org>
Add longlong module.
* modules/longlong: New file.
2008-07-12 Bruno Haible <bruno@clisp.org>
* m4/isnan.m4 (gl_ISNAN): When the replacement is used, set ISNAN_LIBM
to empty.
2008-07-10 Ben Pfaff <blp@gnu.org>
Add isnan module.
* doc/posix-functions/isnan.texi: Mention new module.
* lib/math.in.h: Define isnan macro if we have decided to replace
it.
* m4/isnan.m4: New file.
* m4/isnanl.m4 (gl_FUNC_ISNANL): Factor out some code into new
macro gl_BUILD_ISNANL so that isnan.m4 can use that functionality
also.
(gl_FUNC_ISNANL_NO_LIBM): Factor out same code, to reduce
redundancy.
* m4/math_h.m4: Initialize and substitute variables for isnan
module.
* modules/isnan: New file.
* modules/isnan-tests: New file.
* modules/math: Add substitutions for new module.
* tests/test-isnan.c: New file.
* MODULES.html.sh: Mention new module.
2008-07-10 Ben Pfaff <blp@gnu.org>
Add isnanf module.
* lib/isnanf.m4: New file.
* m4/isnanf.m4 (gl_FUNC_ISNANF): New macro.
(gl_HAVE_ISNANF_IN_LIBM): New macro.
(gl_BUILD_ISNANF): New macro used by gl_FUNC_ISNANF,
gl_FUNC_ISNANF_NO_LIBM, and gl_FUNC_ISNAN.
* modules/isnanf: New file.
* modules/isnanf-tests: New file.
* modules/isnanf-nolibm-tests: Add tests/test-isnanf.h to list of
files.
* tests/test-isnanf-nolibm.c: factored most of its contents into
new file tests/test-isnanf.h.
* tests/test-isnanf.h: New file.
* tests/test-isnanf.c: New file.
* MODULES.html.sh: Mention new module.
* doc/glibc-functions/isnanf.texi: Mention new module.
2008-07-10 Ben Pfaff <blp@gnu.org>
Add isnand module.
* lib/isnand.h: New file.
* m4/isnand.m4 (gl_FUNC_ISNAND): New macro.
(gl_FUNC_ISNAND_NO_LIBM): Split partially into new macro
gl_HAVE_ISNAND_NO_LIBM so that gl_FUNC_ISNAND can use that
functionality also.
(gl_BUILD_ISNAND): New macro used by gl_FUNC_ISNAND,
gl_FUNC_ISNAND_NO_LIBM, and gl_FUNC_ISNAN.
(gl_HAVE_ISNAND_IN_LIBM): New macro.
* modules/isnand: New file.
* modules/isnand-tests: New file.
* modules/isnand-nolibm-tests: Add tests/test-isnand.h to list of
files.
* tests/test-isnand-nolibm.c: factored most of its contents into
new file tests/test-isnand.h.
* tests/test-isnand.h: New file.
* tests/test-isnand.c: New file.
* MODULES.html.sh: Mention new module.
2008-07-10 Ben Pfaff <blp@gnu.org>
* lib/isnanf.h: Rename lib/isnanf-nolibm.h.
* lib/isnand.h: Rename lib/isnand-nolibm.h.
* tests/test-isnanf.c: Rename tests/test-isnanf-nolibm.c.
* tests/test-isnand.c: Rename tests/test-isnand-nolibm.c.
* modules/isnanf-nolibm: Update references to renamed files.
* modules/isnand-nolibm: Likewise.
* modules/isnanf-nolibm-tests: Likewise.
* modules/isnand-nolibm-tests: Likewise.
* lib/frexp.c: Likewise.
* lib/isfinite.c: Likewise.
* lib/signbitd.c: Likewise.
* lib/signbitf.c: Likewise.
* lib/vasnprintf.c: Likewise.
* tests/test-ceilf1.c: Likewise.
* tests/test-ceilf2.c: Likewise.
* tests/test-floorf1.c: Likewise.
* tests/test-floorf2.c: Likewise.
* tests/test-frexp.c: Likewise.
* tests/test-round1.c: Likewise.
* tests/test-round2.c: Likewise.
* tests/test-roundf1.c: Likewise.
* tests/test-strtod.c: Likewise.
* tests/test-trunc1.c: Likewise.
* tests/test-trunc2.c: Likewise.
* tests/test-truncf1.c: Likewise.
* tests/test-truncf2.c: Likewise.
* NEWS: Mention the renamed header files.
2008-07-11 Jim Meyering <meyering@redhat.com>
vc-list-files: make the last-resort awk code more portable
* build-aux/vc-list-files: Don't rely on awk's "sub" command.
/bin/awk from OpenSolaris 11's SUNWesu version 2008.03.22.10.56
does not support it.
2008-07-10 Eric Blake <ebb9@byu.net>
Work with tar's bootstrap.
* gnulib-tool (func_emit_initmacro_end): Use m4_defn in the case
where LIBSOURCES_DIR contains .#bootmp but must not be treated as
an m4 comment.
2008-07-09 Jim Meyering <meyering@redhat.com>
posix-shell.m4: fix typo that made this test malfunction
* m4/posix-shell.m4: Remove capitalization in variable name.
2008-07-08 Bruno Haible <bruno@clisp.org>
* m4/onceonly.m4: Update comments.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2008-07-04 Jim Meyering <meyering@redhat.com>
* users.txt: Add vc-dwim.
(bison, coreutils): Use the gitweb URL.
2008-07-03 Jim Meyering <meyering@redhat.com>
* users.txt: Add libffcall. From Sam Steingold.
2008-07-03 Ondřej Vašík <ovasik@redhat.com>
getdate.y: do not ignore TZ with relative day, month or year offset
* lib/getdate.y (get_date): Move the tz-handling block to follow the
relative-date-handling, since otherwise, the latter would clobber the
sole output (an updated Start value) of the tz-handling block.
* tests/test-getdate.c: Tests for the fix
2008-07-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Recognize 'foo_LIBRARIES += libgnu.a'.
* gnulib-tool (func_emit_lib_Makefile_am): Recognize if a
makefile snippet has already specified an installation location,
also using '+='.
2008-07-02 Ondřej Vašík <ovasik@redhat.com>
getdate.y: factor out common actions
* lib/getdate.y (apply_relative_time, set_hhmmss): New functions.
Use them in place of open-coded actions.
2008-07-01 Simon Josefsson <simon@josefsson.org>
Add self-test for getdate module.
* modules/getdate-tests: New file.
* tests/test-getdate.c: New file.
2008-06-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Put gnulib-comp.m4 into .cvsignore or
.gitignore.
Reported by Sylvain Beucler <beuc@beuc.net>.
2008-06-29 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (VCS Issues): Mention --no-vc-files option.
* m4/gnulib-tool.m4: Update to match current gnulib-tool.
2008-06-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Recommend to put gnulib-cache.m4 into
EXTRA_DIST.
Reported by Sylvain Beucler <beuc@beuc.net>.
2008-06-26 Jim Meyering <meyering@redhat.com>
make several modules depend on the "open" module
This provides slightly increased consistency when opening-for-write
the name of a non-directory spelled with a trailing slash.
* modules/chdir-safer: Likewise.
* modules/chown: Likewise.
* modules/clean-temp: Likewise.
* modules/copy-file: Likewise.
* modules/fchdir: Likewise.
* modules/fcntl-safer: Likewise.
* modules/pipe: Likewise.
* modules/utime: Likewise.
Prompted by Eric Blake and Bruno Haible.
2008-06-24 Andreas Schwab <schwab@suse.de>
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Don't test whether compound
literals can be used as initializers for global variables.
2008-06-23 Eric Blake <ebb9@byu.net>
Make gnulib-cache.m4 easier to diff.
* gnulib-tool (func_import): Allow newlines when reading cached
gl_MODULES, and generate newlines when creating gnulib-cache.m4.
2008-06-23 Bruno Haible <bruno@clisp.org>
* m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): Remove macro.
(gl_PREREQ_SIGPROCMASK): Don't invoke it.
* m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): New macro, moved here from
m4/signalblocking.m4.
(gl_PREREQ_SIGACTION): Don't invoke it.
* m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Invoke
gl_PREREQ_SIG_HANDLER_H.
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise.
Don't check for sigaction here.
2008-06-23 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.c (fatal_signal_handler): Update comment.
(install_handlers): Don't set the SA_RESETHAND flag.
2008-06-23 Bruno Haible <bruno@clisp.org>
* m4/sigaction.m4: Comment fixes.
* lib/signal.in.h: Likewise.
2008-06-23 Eric Blake <ebb9@byu.net>
Fix typo.
* tests/test-sigaction.c (MASK_SA_FLAGS): Add missing operator.
Avoid SA_ namespace.
* tests/test-sigaction.c (MASK_SA_FLAGS): Rename from SA_MASK.
Reported by Ralf Wildenhues.
Avoid test failure due to SA_RESTORER.
* tests/test-sigaction.c (SA_MASK): New macro.
(main): Avoid failing due to extension flags being set.
Reported by Jim Meyering.
Revert use of sig-handler.h in sigprocmask.c.
* modules/sigprocmask (Files): Don't rely on sig-handler.h, since
it requires the existence of struct sigaction.
* lib/sigprocmask.c (handler_t): Restore typedef.
(rpl_signal, old_handlers): Use local type.
2008-06-22 Bruno Haible <bruno@clisp.org>
* tests/test-stdint.c: Disable the INTMAX_MAX preprocessor test
conditionally.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2008-06-22 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/siginterrupt.texi: Move note.
* lib/signal.in.h (SA_RESTART): New macro.
* lib/sigaction.c: Update comment.
* m4/sigaction.m4 (gl_SIGACTION): Require gl_SIGNAL_H_DEFAULTS.
* m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): New macro.
(gl_PREREQ_SIGPROCMASK): Invoke it.
* m4/sigaction.m4 (gl_PREREQ_SIGACTION): Likewise.
* lib/nanosleep.c (rpl_nanosleep): Setup newact only when it is needed.
* lib/sigprocmask.c: Update a comment.
2008-06-21 Eric Blake <ebb9@byu.net>
Use sigaction module rather than signal().
* modules/c-stack (Depends-on): Add sigaction.
* modules/fatal-signal (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/sigprocmask (Files): Add sig-handler.h.
* modules/sigaction (Files): Likewise.
* lib/sig-handler.h (get_handler): New file, suggested by Paul
Eggert.
* lib/c-stack.c (SIGACTION_WORKS): Simplify conditions.
(c_stack_action) [!SIGACTION_WORKS]: Use sigaction, not signal.
* lib/fatal-signal.c (uninstall_handlers, install_handlers)
(init_fatal_signals): Likewise.
* lib/nanosleep.c (rpl_nanosleep): Likewise.
(siginterrupt): Delete fallback.
* lib/sigprocmask.c (handler_t, old_handlers): Use sa_handler_t
instead.
* m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Drop check for
siginterrupt.
New module sigaction, for mingw.
* modules/sigaction: New module...
* modules/sigaction-tests: ...and its test.
* m4/sigaction.m4: New file.
* lib/sigaction.c: Likewise.
* tests/test-sigaction.c: Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Add sigaction variables.
* modules/signal (Makefile.am): Likewise.
* lib/signal.in.h (!@HAVE_SIGACTION@): Define replacements when
needed.
* doc/posix-headers/signal.texi (signal.h): Mention provided
types.
* doc/posix-functions/siginterrupt.texi (siginterrupt): Mention
that sigaction is preferable.
* doc/posix-functions/sigaction.texi (sigaction): Mention new
module.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
sigaction.
Improve robustness of sigprocmask by overriding signal.
* lib/signal.in.h (rpl_signal): Override signal when sigprocmask
is in use.
* lib/sigprocmask.c (blocked_handler): Reinstall block handler.
(SIGKILL, SIGSTOP): Provide fallbacks.
(rpl_signal): Implement.
(old_handlers, blocked_set): Mark volatile, since sigprocmask and
signal can be called inside handlers.
Fix nanosleep module on mingw.
* modules/nanosleep (Depends-on): Add sys_select.
* lib/nanosleep.c (HAVE_SYS_SELECT_H): Rely on gnulib module.
Fix licensing of sigprocmask.
* modules/raise (License): Relicense as LGPL.
2008-06-21 Bruno Haible <bruno@clisp.org>
* lib/propername.c (proper_name_utf8): Don't use the transliterated
result if it contains question marks.
Reported by Michael Geng <linux@michaelgeng.de>.
2008-06-19 Bruno Haible <bruno@clisp.org>
Fix CVS-ism.
* doc/gnulib.texi: Include updated-stamp.texi.
* doc/Makefile (GNULIB_TEXI_FILES): New variable.
(updated-stamp.texi): New rule.
(gnulib.info): Depend on it.
* doc/.gitignore: Add updated-stamp.texi.
Based on a patch by Thien-Thi Nguyen <ttn@gnuvola.org>.
2008-06-19 Bruno Haible <bruno@clisp.org>
* doc/Makefile (gnulib.info): Update and simplify dependencies.
Reported by Thien-Thi Nguyen <ttn@gnuvola.org>.
2008-06-19 Eric Blake <ebb9@byu.net>
Fix VPATH 'make dist' with GNU make and non-VCS tarball.
* top/GNUmakefile (_curr-ver): Don't use $(srcdir) unnecessarily.
Reported by Stepan Kasal.
2008-06-18 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.c (init_fatal_signals): Add comment.
Reported by Eric Blake.
2008-06-18 Eric Blake <ebb9@byu.net>
Work around cygwin 1.5.25 strsignal bug.
* tests/test-strsignal.c: Allow for const char *.
* doc/glibc-functions/strsignal.texi (strsignal): Document the bug.
2008-06-18 Simon Josefsson <simon@josefsson.org>
* users.txt: Update URL to article and add author/date
information.
2008-06-17 Bruno Haible <bruno@clisp.org>
New macro gl_DISABLE_THREADS.
* m4/lock.m4 (gl_LOCK_EARLY_BODY): Use value gl_use_threads_default
if the user did not pass --enable-threads or --disable-threads option.
(gl_DISABLE_THREADS): New macro.
Reported by Eric Blake <ebb9@byu.net>.
2008-06-17 Bruno Haible <bruno@clisp.org>
* lib/tls.h (gl_tls_key_init): Evaluate the destructor argument also
when the macro ignores it.
Based on a patch by Eric Blake <ebb9@byu.net>.
2008-06-17 Bruno Haible <bruno@clisp.org>
* modules/tls (License): Change to LGPLv2+.
Reported by Eric Blake.
2008-06-17 Eric Blake <ebb9@byu.net>
Simplify c-stack prerequisites.
* lib/c-stack.c (includes): Remove unused <sys/resource.h>.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Posix 200x
no longer requires <ucontext.h> to exist. Optimize setrlimit
check.
(gl_PREREQ_C_STACK): Remove check for unused getcontext and
<sys/resource.h>.
Move c-stack test into testsuite.
* modules/c-stack-tests: New file.
* lib/c-stack.c [DEBUG]: Move test program...
* tests/test-c-stack.c: ...into this new file. Skip rather than
fail test if sigaltstack is lacking.
* tests/test-c-stack.sh: New driver file.
2008-06-16 Eric Blake <ebb9@byu.net>
Use raise module consistently.
* modules/fatal-signal (Depends-on): Add raise.
* modules/sigprocmask (Depends-on): Likewise.
* lib/fatal-signal.c (fatal_signal_handler): Rely on raise.
* lib/sigprocmask.c (sigprocmask): Likewise.
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise.
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Likewise.
Fix compliance bug in sigpending.
* lib/sigprocmask.c (sigpending): Return pending array via
parameter, not return value.
2008-06-14 Eric Blake <ebb9@byu.net>
Improve obstack-printf test code.
* tests/test-obstack-printf.c (test_function): Fix comment, and
simplify usage of obstack_* in macros. Add a test for coverage.
Reported by Bruno Haible.
2008-06-14 Bruno Haible <bruno@clisp.org>
* lib/obstack_printf.c (obstack_vprintf): Define the stack-allocated
array size as a constant, not as a const variable.
* m4/obstack-printf.m4 (gl_FUNC_OBSTACK_PRINTF): Require
AC_USE_SYSTEM_EXTENSIONS.
* m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise.
Test whether the obstack_printf function actually exists.
* modules/obstack-printf (Depends-on): Add extensions.
(Include): Remove obstack.h.
* modules/obstack-printf-posix (Depends-on): Add extensions.
(Include): Remove obstack.h.
2008-06-13 Eric Blake <ebb9@byu.net>
Add obstack-printf and obstack-printf-posix modules.
* modules/obstack-printf: New file.
* modules/obstack-printf-posix: Likewise.
* MODULES.html.sh (Misc): Mention them.
* doc/glibc-functions/obstack_printf.texi (obstack_printf):
Likewise.
* doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf):
Likewise.
* modules/stdio (Makefile.am): Accomodate new modules.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* lib/stdio.in.h (rpl_obstack_printf, rpl_obstack_vprintf):
Declare.
* lib/obstack_printf.c (obstack_printf, obstack_vprintf): New
functions.
* m4/obstack-printf.m4 (gl_OBSTACK_PRINTF)
(gl_REPLACE_OBSTACK_PRINTF): New macros
* m4/obstack-printf-posix.m4 (gl_OBSTACK_PRINTF_POSIX): Likewise.
* tests/test-obstack-printf.c: New file.
* modules/obstack-printf-tests: Likewise.
* modules/obstack-printf-posix-tests: Likewise.
2008-06-11 Bruno Haible <bruno@clisp.org>
* m4/open.m4 (gl_FUNC_OPEN): Add test against trailing slash bug.
* lib/open.c: Include errno.h.
(open): Fail when attempting to write to a file that has a trailing
slash.
* tests/test-open.c (main): Test against trailing slash bug.
* doc/posix-functions/open.texi: Mention the trailing slash bug.
2008-06-10 Bruno Haible <bruno@clisp.org>
* tests/test-vc-list-files-git.sh: Make double use of 'exit'. Needed
for $? to work inside the trap command, with various /bin/sh-s.
* tests/test-vc-list-files-cvs.sh: Likewise.
2008-06-10 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h: Don't include gettext.h here.
* lib/set-mode-acl.c: Include gettext.h here.
* lib/copy-acl.c: Likewise.
2008-06-10 Bruno Haible <bruno@clisp.org>
* lib/wait-process.h (wait_subprocess): Add termsigp argument.
* lib/wait-process.c (wait_subprocess): Likewise.
* lib/execute.h (execute): Add termsigp argument.
* lib/execute.c (execute): Likewise.
* lib/csharpcomp.c (compile_csharp_using_pnet,
compile_csharp_using_mono, compile_csharp_using_sscli): Update.
* lib/csharpexec.c (execute_csharp_using_pnet,
execute_csharp_using_mono, execute_csharp_using_sscli): Update.
* lib/javacomp.c (compile_using_envjavac, compile_using_gcj,
compile_using_javac, compile_using_jikes, is_envjavac_gcj,
is_envjavac_gcj43, is_gcj_present, is_gcj_43, is_javac_present,
is_jikes_present): Update.
* lib/javaexec.c (execute_java_class): Update.
* lib/javaversion.c (execute_and_read_line): Update.
* NEWS: Document the changes.
Reported by Eric Blake.
2008-06-10 Eric Blake <ebb9@byu.net>
Add missing include.
* tests/test-strstr.c (includes): Add <signal.h>.
* tests/test-strcasestr.c (includes): Likewise.
* tests/test-memmem.c (includes): Likewise.
2008-06-10 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (wait_subprocess): Add an assertion.
2008-06-10 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (wait_subprocess): Try to fix waitid() based code.
2008-06-10 Bruno Haible <bruno@clisp.org>
* tests/test-memmem.c (main): Reset SIGALRM to default handling before
using alarm().
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
2008-06-09 Bruno Haible <bruno@clisp.org>
Work around the Solaris 10 ACE ACLs ABI change.
* lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial): Don't
declare if ACL_NO_TRIVIAL is present.
(ACE_ACCESS_ALLOWED_ACE_TYPE, ACE_ACCESS_DENIED_ACE_TYPE,
NEW_ACE_OWNER, NEW_ACE_GROUP, NEW_ACE_IDENTIFIER_GROUP, ACE_EVERYONE,
NEW_ACE_READ_DATA, NEW_ACE_WRITE_DATA, NEW_ACE_EXECUTE): New macros.
* lib/file-has-acl.c (acl_nontrivial, acl_ace_nontrivial): Don't
define if ACL_NO_TRIVIAL is present.
(acl_ace_nontrivial): Detect whether the old or new ABI is in use,
and use the current ABI.
(file_has_acl): Use same #if condition as elsewhere.
* lib/set-mode-acl.c (qset_acl): Detect whether the old or new ABI is
in use, and use the current ABI.
* doc/acl-resources.txt: More doc about newer Solaris 10 versions.
Reported by Jim Meyering.
2008-06-09 Eric Blake <ebb9@byu.net>
Work around environments that (stupidly) ignore SIGALRM.
* m4/strstr.m4 (gl_FUNC_STRSTR): Reset SIGALRM to default handling
before using alarm().
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
Reported by Ian Beckwith <ianb@erislabs.net>.
Produce autobuild blurb earlier in log.
* modules/autobuild (configure.ac-early): Move AB_INIT here.
2008-06-09 Jim Meyering <meyering@redhat.com>
and Ondřej Vašík <ovasik@redhat.com>
utimens.c: correct kernel bug work-around
Ondřej Vašík found that the invalid return value of 280 indicates
failure, not success, and the kernel bug we're trying to work
around affects not just the utimensat call, but also the fallback
futimens call.
* lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Simulate failure,
not success.
[HAVE_FUTIMENS]: Use the same work-around, here.
2008-06-09 Jim Meyering <meyering@redhat.com>
add more guards around definition of ACE_-related code
* lib/file-has-acl.c (acl_ace_nontrivial): Define only if
ALLOW and ACE_OWNER are also defined.
2008-06-08 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h: Add me as co-author.
* lib/file-has-acl.c: Likewise.
* lib/set-mode-acl.c: Likewise.
* lib/copy-acl.c: Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
Add support for AIX ACLs.
* lib/acl-internal.h (acl_nontrivial): New declaration.
* lib/file-has-acl.c (acl_nontrivial): New function.
(file_has_acl): Add implementation using AIX 4 ACL API.
* lib/set-mode-acl.c (qset_acl): Likewise.
* lib/copy-acl.c (qcopy_acl): Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
Add support for HP-UX ACLs.
* lib/acl-internal.h (acl_nontrivial): New declaration.
* lib/file-has-acl.c (acl_nontrivial): New function.
(file_has_acl): Add implementation using HP-UX 11 ACL API.
* lib/set-mode-acl.c (qset_acl): Likewise.
* lib/copy-acl.c (qcopy_acl): Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
Add support for Cygwin ACLs.
* lib/acl-internal.h (MODE_INSIDE_ACL): New macro for Solaris-like API.
* lib/set-mode-acl.c (qset_acl) [!MODE_INSIDE_ACL]: Don't optimize away
the chmod_or_fchmod call.
* lib/copy-acl.c (qcopy_acl) [!MODE_INSIDE_ACL]: Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
Fix bug with setuid modes in Solaris 10+ code.
* lib/set-mode-acl.c (qset_acl): Call chmod_or_fchmod when acl_set
succeeded, when the mode contains some special bits.
2008-06-08 Bruno Haible <bruno@clisp.org>
Add support for Solaris 7..10 ACLs.
* lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial): New
declarations.
* lib/file-has-acl.c (acl_nontrivial, acl_ace_nontrivial): New
functions.
(file_has_acl): Add implementation using Solaris 7..10 ACL API.
* lib/set-mode-acl.c (qset_acl): Likewise.
* lib/copy-acl.c (qcopy_acl): Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h (acl_extended_nontrivial) [MacOS X]: New
declaration.
* lib/file-has-acl.c (acl_extended_nontrivial) [MacOS X]: New function.
(acl_access_nontrivial): Remove MacOS X case.
(file_has_acl): Use acl_extended_nontrivial.
* lib/copy-acl.c (qcopy_acl): Likewise.
2008-06-08 Bruno Haible <bruno@clisp.org>
* lib/set-mode-acl.c (qset_acl): Trivial code simplifications.
2008-06-08 Jim Meyering <meyering@redhat.com>
* modules/acl (Maintainer): Add Bruno Haible.
2008-06-07 Bruno Haible <bruno@clisp.org>
Improve support for Tru64 ACLs.
* lib/file-has-acl.c (file_has_acl): Don't test the ACL_TYPE_DEFAULT
ACL on OSF/1.
2008-06-07 Bruno Haible <bruno@clisp.org>
Add support for MacOS X ACLs.
* lib/file-has-acl.c (file_has_acl): Use ACL_TYPE_EXTENDED instead of
ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT.
* lib/set-mode-acl.c (qset_acl): Likewise.
* lib/copy-acl.c (qcopy_acl): Likewise.
2008-06-07 Bruno Haible <bruno@clisp.org>
Fix memory leak introduced on 2008-05-22.
* lib/set-mode-acl.c (qset_acl) [!MODE_INSIDE_ACL]: Free ACLs after
use.
2008-06-07 Bruno Haible <bruno@clisp.org>
* lib/set-mode-acl.c (qset_acl): Use acl_init(), not acl_from_text(),
to construct an empty ACL.
2008-06-07 Bruno Haible <bruno@clisp.org>
* lib/set-mode-acl.c (chmod_or_fchmod): Document return value
precisely.
* lib/copy-acl.c (qcopy_acl): Trivial code simplifications.
2008-06-07 Bruno Haible <bruno@clisp.org>
* lib/copy-acl.c (qcopy_acl): Make the #if branches independent.
* lib/set-mode-acl.c (qset_acl): Choose better local variable names.
2008-06-07 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/_setjmp.texi: Explain the use of this function
regardless of POSIX.
* doc/posix-functions/_longjmp.texi: Likewise.
* doc/posix-functions/setjmp.texi: Mention HP-UX as not counting as a
SystemV platform in this case.
2008-06-06 Eric Blake <ebb9@byu.net>
Document abort() bugs.
* doc/posix-functions/abort.texi (abort): Mention anomalies.
* doc/posix-functions/setjmp.texi (setjmp): Mingw has setjmp.
* doc/posix-functions/sigsetjmp.texi (sigsetjmp): Cygwin has
sigsetjmp.
* doc/posix-functions/siglongjmp.texi (siglongjmp): Cygwin has
siglongjmp, but only as a macro.
* doc/posix-functions/_longjmp.texi (_longjmp): Mention that this
is obsolete.
* doc/posix-functions/_setjmp.texi (_setjmp): Likewise.
Tweak documentation to cover cygwin argz bugs.
* m4/argz.m4 (gl_FUNC_ARGZ): Mention date of last known cygwin
argz bug fix; no code change needed since no cygwin releases
occurred between the last fix and the bug being tested.
* doc/glibc-functions/argz_add.texi (argz_add): Document the argz
module and recently fixed cygwin bugs.
* doc/glibc-functions/argz_add_sep.texi (argz_add_sep): Likewise.
* doc/glibc-functions/argz_append.texi (argz_append): Likewise.
* doc/glibc-functions/argz_count.texi (argz_count): Likewise.
* doc/glibc-functions/argz_create.texi (argz_create): Likewise.
* doc/glibc-functions/argz_create_sep.texi (argz_create_sep):
Likewise.
* doc/glibc-functions/argz_delete.texi (argz_delete): Likewise.
* doc/glibc-functions/argz_extract.texi (argz_extract): Likewise.
* doc/glibc-functions/argz_insert.texi (argz_insert): Likewise.
* doc/glibc-functions/argz_next.texi (argz_next): Likewise.
* doc/glibc-functions/argz_replace.texi (argz_replace): Likewise.
* doc/glibc-functions/argz_stringify.texi (argz_stringify):
Likewise.
Avoid gcc warning on cygwin.
* lib/copy-acl.c (qcopy_acl) [!HAVE_ACL_GET_FILE &&
!ACL_NO_TRIVIAL]: Avoid unused variable.
2008-06-05 Eric Blake <ebb9@byu.net>
Be tolerant of UNKNOWN version in gnulib-tool test dir.
* top/GNUmakefile (_dummy): Warn rather than reconfigure if
git-version-gen fails to come up with a version.
Reported by Simon Josefsson.
2008-06-05 Jim Meyering <meyering@redhat.com>
Paul Eggert <eggert@cs.ucla.edu>
utimens.c: work around a probable Linux kernel bug
* lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Work around what
appears to be a kernel bug that causes utimensat to return 280
instead of 0, indicating success.
2008-06-04 Bruno Haible <bruno@clisp.org>
* lib/copy-acl.c (qcopy_acl): Call qset_acl, not set_acl. Fixes
2008-06-01 commit.
2008-06-04 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h (acl_access_nontrivial): New declaration.
* lib/file-has-acl.c (acl_access_nontrivial): New function.
(file_has_acl): Use it. Save errno afterwards.
* lib/copy-acl.c (qcopy_acl): Use acl_access_nontrivial.
2008-06-03 Bruno Haible <bruno@clisp.org>
* lib/file-has-acl.c (file_has_acl): Put Solaris 10 code after POSIX-
draft code. Simplify #ifs.
* lib/set-mode-acl.c (qset_acl): Don't test for symlink if !USE_ACL.
Put Solaris code after POSIX-draft code. Fix comments regarding
Solaris 10, HP-UX. Mention Cygwin.
* lib/copy-acl.c (qcopy_acl): Simplify #ifs.
2008-06-03 Eric Blake <ebb9@byu.net>
Provide fallback for older kernels.
* lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT, HAVE_FUTIMENS]:
Provide runtime fallback if kernel lacks support.
Reported by Mike Frysinger.
2008-06-02 Bruno Haible <bruno@clisp.org>
* lib/acl-internal.h (ACL_NOT_WELL_SUPPORTED): Include EOPNOTSUPP if
it exists.
2008-06-02 Bruno Haible <bruno@clisp.org>
* lib/acl_entries.c (acl_entries): Rewrite to use acl_get_entry.
* lib/copy-acl.c (qcopy_acl): Update comment.
2008-06-02 Bruno Haible <bruno@clisp.org>
* lib/acl-entries.h: Enclose most definitions in #ifs for POSIX-draft
like ACL APIs.
2008-06-02 Bruno Haible <bruno@clisp.org>
* tests/test-file-has-acl.sh: Use different code for Cygwin.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.
2008-06-02 Bruno Haible <bruno@clisp.org>
* tests/test-file-has-acl.sh: Remove unused code.
2008-06-01 Bruno Haible <bruno@clisp.org>
* lib/copy-acl.c (qcopy_acl): New function, extracted from copy_acl.
(copy_acl): Just a wrapper around qcopy_acl that emits the error
messages.
* lib/set-mode-acl.c (qset_acl): Document return value precisely.
2008-06-01 Bruno Haible <bruno@clisp.org>
* m4/acl.m4 (gl_FUNC_ACL): Separate the POSIX-like and the Solaris
tests. Test for libpacl, needed for OSF/1. Test for extended ACLs,
needed for MacOS X. Test for HP-UX API. Test for newer and older AIX
APIs.
* modules/acl-tests (configure.ac): Remove tests now contained in
m4/acl.m4.
2008-06-02 Jim Meyering <meyering@redhat.com>
announce-gen: use a better key-server host name
* build-aux/announce-gen (main): Recommend keys.gnupg.net, since
it may be more consistently reliable. Suggested by Werner Koch
in <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/13717>.
2008-06-01 Bruno Haible <bruno@clisp.org>
* lib/stdio-impl.h (fp_ub): Use fp_. Needed for DragonFly BSD.
Reported by Voroskoi Andras <voroskoi@gmail.com>.
2008-06-01 Voroskoi Andras <voroskoi@gmail.com> (tiny change)
* lib/stdio-impl.h [__DragonFly__]: Fix typo.
2008-06-01 Bruno Haible <bruno@clisp.org>
New ACL tests.
* tests/test-file-has-acl.sh: New file.
* tests/test-file-has-acl.c: New file.
* tests/test-set-mode-acl.sh: New file.
* tests/test-set-mode-acl.c: New file.
* tests/test-copy-acl.sh: New file, based on tests/test-copy-file.sh.
* tests/test-copy-acl.c: New file.
* modules/acl-tests: New file, based on modules/copy-file-tests.
* modules/copy-file-tests (Files): Remove tests/test-sameacls.c.
(Depends-on): Add acl-tests.
(configure.ac): Remove checks.
(Makefile.am): Don't create test-sameacls program here any more.
2008-06-01 Bruno Haible <bruno@clisp.org>
* tests/test-copy-file.sh: Portability fixes for Solaris, HP-UX, IRIX.
* tests/test-sameacls.c: Include progname.h.
(main): Invoke set_program_name. Portability fixes for MacOS X,
Solaris, HP-UX.
2008-06-01 Bruno Haible <bruno@clisp.org>
* lib/freadahead.c (freadahead) [__DragonFly__]: Use the __sreadahead
function.
Reported by VOROSKOI Andras <voroskoi@gmail.com>.
2008-06-01 Bruno Haible <bruno@clisp.org>
* modules/rpmatch (Depends-on): Add strdup.
2008-06-01 Bruno Haible <bruno@clisp.org>
* lib/pipe.c: Include unistd-safer.h.
(create_pipe): Ensure the returned file descriptors are not in {0,1,2}.
* modules/pipe (Depends-on): Add unistd-safer.
2008-05-30 Simon Josefsson <simon@josefsson.org>
* modules/autobuild (configure.ac): Call AB_INIT.
2008-05-30 Simon Josefsson <simon@josefsson.org>
* tests/test-getaddrinfo.c: Don't print debug messages by default.
Suggested by Bruno Haible <bruno@clisp.org>.
2008-05-30 Simon Josefsson <simon@josefsson.org>
* tests/test-base64.c: Cast size_t to unsigned long when invoking
printf. Use %lu instead of %d. Reported by Bruno Haible
<bruno@clisp.org>.
2008-05-29 Eric Blake <ebb9@byu.net>
Prefer new POSIX 200x interfaces over futimesat.
* m4/utimens.m4 (gl_UTIMENS): Check for futimens, utimensat.
* lib/utimens.c (gl_futimens): Use them for nanosecond resolution
when available.
[HAVE_BUGGY_NFS_TIME_STAMPS]: Allow C89 compilation.
2008-05-28 Bruno Haible <bruno@clisp.org>
* modules/stpcpy (License): Change to LGPLv2+.
Requested by David Lutterkort <dlutter@redhat.com>.
2008-05-27 Bruno Haible <bruno@clisp.org>
* lib/localename.c (SUBLANG_TIBETAN_BHUTAN): Force value 2. Needed for
current mingw.
Reported by Jose E. Marchesi <jemarch@gnu.org>.
2008-05-27 Bruno Haible <bruno@clisp.org>
* modules/iconv_open (Link): New section, from module 'iconv'.
* modules/striconv (Link): Likewise.
* modules/striconveh (Link): Likewise.
* modules/xstriconv (Link): Likewise.
* modules/unicodeio (Link): Likewise.
* modules/propername (Link): Likewise.
Reported by Jim Meyering.
2008-05-26 Jim Meyering <meyering@redhat.com>
sha256: do not artificially restrict buffer length to be < 2^32
* lib/sha256.h (struct sha256_ctx) [buflen]: Change type from
uint32_t to size_t.
* lib/sha256.c (sha256_conclude_ctx): Change type of a local
to match.
avoid unaligned access errors, e.g., on sparc
* lib/sha512.c (sha512_conclude_ctx): Use set_uint64 rather than
direct access through a possibly-unaligned uint64* pointer.
* lib/sha256.c (sha256_conclude_ctx): Use set_uint32 rather than
direct access through a possibly-unaligned uint32* pointer.
Prompted by this patch from Tom "spot" Callaway:
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13638
sha512.c: fix typo in comment
* lib/sha512.c (sha512_conclude_ctx): Length is 128-bit, not 64-bit.
2008-05-25 Bruno Haible <bruno@clisp.org>
* lib/set-mode-acl.c: Renamed from lib/acl.c.
* modules/acl (Files): Add lib/set-mode-acl.c, remove lib/acl.c.
(Makefile.am): Update lib_SOURCES.
2008-05-25 Bruno Haible <bruno@clisp.org>
* m4/acl.m4 (gl_FUNC_ACL): Don't set LIB_ACL_TRIVIAL.
2008-05-25 Jim Meyering <meyering@redhat.com>
useless-if-before-free: freed expr may have white-space differences
* build-aux/useless-if-before-free: Recognize cases in which the
freed expression differs from the tested one in embedded white
space, e.g., if (p[i + 1]) free(p[i+1]). Correct thinko in prev:
$1 was used, so we can't make any regexp shy. Improved tests now
detect this.
useless-if-before-free: accept white space in the expression.
* build-aux/useless-if-before-free: For now, any white space
in the expression must be identical in the free argument.
useless-if-before-free: efficiency tweak
* build-aux/useless-if-before-free: Make the expression-matching
regexp "shy".
Make the *outer* regexp shy, not the expr-matching one.
update code-in-comment to accept cast of free arg
* build-aux/useless-if-before-free: Update regexp.
2008-05-25 Bruno Haible <bruno@clisp.org>
* tests/test-sameacls.c: Renamed from tests/test-copy-file-sameacls.c.
* modules/copy-file-tests (Files, Makefile.am): Update.
* tests/test-copy-file.c (func_test_copy): Update.
2008-05-24 Andreas Färber <andreas.faerber@web.de> (tiny change)
* lib/stdbool.in.h [__HAIKU__]: Disable __BEOS__ workarounds.
2008-05-23 Bruno Haible <bruno@clisp.org>
Improve support for ACLs on OSF/1.
* lib/acl.c (qset_acl): For OSF/1, use a string that ends in a comma.
Remove fallback for unknown flavors of ACLs.
2008-05-22 Bruno Haible <bruno@clisp.org>
Add support for ACLs on OSF/1.
* lib/acl-internal.h (acl_get_fd, acl_set_fd): New inline function
replacements.
(acl_free_text): New macro fallback.
* lib/acl_entries.c (acl_entries): Use acl_free_text instead of
acl_free.
* m4/acl.m4 (gl_FUNC_ACL): Look also in libpacl library. Test for
acl_free_text function. Require AC_C_INLINE.
2008-05-22 Bruno Haible <bruno@clisp.org>
Make copy_acl work on MacOS X 10.5.
* lib/acl-internal.h (MODE_INSIDE_ACL): New macro.
(ACL_NOT_WELL_SUPPORTED): On MacOS X, also handle ENOENT.
* lib/acl.c (qset_acl): Add different code branch for !MODE_INSIDE_ACL.
If MODE_INSIDE_ACL, don't assume that every system has the same text
representation for ACLs as FreeBSD.
* lib/copy-acl.c (copy_acl): Add support for platforms with
!MODE_INSIDE_ACL.
* lib/file-has-acl.c (file_has_acl): Likewise.
* m4/acl.m4 (gl_FUNC_ACL): Test for some functions that are witness of
FreeBSD, MacOS X, or IRIX, respectively.
2008-05-22 Bruno Haible <bruno@clisp.org>
* lib/acl.h: Don't include <sys/acl.h>.
(GETACLCNT): Move fallback to lib/acl-internal.h.
* lib/acl-internal.h: Include <sys/acl.h> here.
(GETACLCNT): New macro fallback, moved here from lib/acl.h.
2008-05-22 Bruno Haible <bruno@clisp.org>
Split off copy_acl function to separate file.
* lib/copy-acl.c: New file, extracted from lib/acl.c.
* lib/acl.c (copy_acl): Moved function to separate file.
* m4/acl.m4 (gl_FUNC_ACL): Remove unconditional AC_LIBOBJs.
* modules/acl (Files): Add lib/copy-acl.c.
(Makefiles.am): Augment lib_SOURCES.
2008-05-22 Bruno Haible <bruno@clisp.org>
* modules/copy-file-tests: New file.
* tests/test-copy-file.sh: New file.
* tests/test-copy-file.c: New file.
* tests/test-copy-file-sameacls.c: New file.
2008-05-22 Eric Blake <ebb9@byu.net>
Avoid gcc warning.
* tests/test-memcmp.c (main): Pass NULL indirectly.
2008-05-21 Bruno Haible <bruno@clisp.org>
Add reference doc about ACLs.
* doc/acl-resources.txt: New file.
* doc/acl-cygwin.txt: New file.
2008-05-21 Bruno Haible <bruno@clisp.org>
Avoid one more warning from gcc.
* lib/vasnprintf.c (IF_LINT): Update comments.
(VASNPRINTF): Use it also for the 'prefix' array initializer.
2008-05-21 Jim Meyering <meyering@redhat.com>
avoid a warning from gcc
* lib/vasnprintf.c (IF_LINT): Define.
(scale10_round_decimal_long_double):
Use it to avoid a "may be used uninitialized" warning.
(scale10_round_decimal_double): Likewise.
2008-05-21 Simon Josefsson <simon@josefsson.org>
* m4/memcmp.m4: When cross-compiling, assume memcmp works if it is
declared.
2008-05-20 Bruno Haible <bruno@clisp.org>
* tests/test-memcmp.c (main): Test also the sign of the result. Test
against two known bugs; code taken from autoconf's AC_FUNC_MEMCMP.
2008-05-20 Simon Josefsson <simon@josefsson.org>
* modules/memcmp-tests: New file.
* tests/test-memcmp.c: New file.
2008-05-19 Bruno Haible <bruno@clisp.org>
* modules/propername (Notice, configure.ac): Put quoted "..." into
--keyword option.
* lib/propername.h: Update comments accordingly.
Reported by Eric Blake.
2008-05-19 Martin Lambers <marlam@marlam.de> (tiny change)
* modules/getpass-gnu (Depends-on): Add fseeko.
2008-05-19 Simon Josefsson <simon@josefsson.org>
* modules/base64-tests: New file.
2008-05-19 Bo Borgerson <gigabo@gmail.com>
* lib/base64.c (base64_decode_ctx): If a decode context structure
was passed in use it to ignore newlines. If a context structure
was _not_ passed in, continue to treat newlines as garbage (this
is the historical behavior). Formerly base64_decode.
(base64_decode_alloc_ctx): Formerly base64_decode_alloc. Now
takes a decode context structure.
* lib/base64.h (base64_decode): Macro for four-argument calls.
(base64_decode_alloc): Likewise.
* lib/base64.c (base64_decode_ctx): If a decode context structure
was passed in use it to ignore newlines. If a context structure
was _not_ passed in, continue to treat newlines as garbage (this
is the historical behavior). Formerly base64_decode.
(base64_decode_alloc_ctx): Formerly base64_decode_alloc. Now
takes a decode context structure.
* lib/base64.h (base64_decode): Macro for four-argument calls.
(base64_decode_alloc): Likewise.
2008-05-19 Jim Meyering <meyering@redhat.com>
avoid a warning from gcc
* lib/trim.c (IF_LINT): Define.
(trim2): Use it to avoid a "may be used uninitialized" warning.
Fix doc typo.
* doc/glibc-functions/getpass.texi (getpass): s/PATH_MAX/PASS_MAX/.
2008-05-19 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/getpass.texi: Document limits of other
implementations.
2008-05-19 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/getpass.texi: Document gnulib implementation.
2008-05-18 Bruno Haible <bruno@clisp.org>
* modules/propername: New file, from GNU gettext.
* lib/propername.h: New file, from GNU gettext.
* lib/propername.c: New file, from GNU gettext.
* MODULES.html.sh (Internationalization functions): Add propername.
2008-05-16 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
Avoid some warnings from "gcc -Wshadow".
* lib/vasnprintf.c (exp, remainder): Define to different identifiers.
2008-05-15 Eric Blake <ebb9@byu.net>
Extend previous patch to cygwin 1.7.0.
* m4/memmem.m4 (gl_FUNC_MEMMEM): When cross-compiling, assume a
fast implementation in cygwin >= 1.7.0.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
2008-05-15 Bruno Haible <bruno@clisp.org>
* m4/memmem.m4 (gl_FUNC_MEMMEM): When cross-compiling, assume a fast
implementation in glibc >= 2.9.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
2008-05-15 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Internationalization functions): Remove linebreak.
(Unicode string functions): Add unilbrk/*.
Reported by Karl Berry.
2008-05-15 Eric Blake <ebb9@byu.net>
Fix violation of <stdbool.h> replacement in regex.
* lib/regcomp.c (re_compile_internal): Avoid implicit cast to bool.
* lib/regexec.c (re_search_internal): Likewise.
Reported by Heinrich Mislik <Heinrich.Mislik@univie.ac.at>.
2008-05-15 Jim Meyering <meyering@redhat.com>
avoid distracting test output when git or cvs is not found
* tests/test-vc-list-files-cvs.sh: Suppress 'init' error output.
* tests/test-vc-list-files-git.sh: Likewise.
2008-05-15 Eric Blake <ebb9@byu.net>
Glibc finally accepted the memmem speedup code, bugzilla #5514.
* doc/glibc-functions/memmem.texi (memmem): Mention last broken
glibc version.
* doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
* doc/posix-functions/strstr.texi (strstr): Likewise.
* lib/str-two-way.h (MAX): Sychronize with glibc.
2008-05-15 Paolo Bonzini <bonzini@gnu.org>
* lib/regcomp.c (optimize_utf8): Add a note on why we test
opr.ctx_type.
(calc_first): Initialize constraint field.
(duplicate_node_closure): Use it instead of special casing ANCHORS.
Fix grammar.
(duplicate_node): Merge constraint field for all node types.
(calc_eclosure_iter): Look at constraint field for all node types.
* lib/regex_internal.c (create_cd_newstate): Don't look at
opr.ctx_type.
2008-05-14 Bruno Haible <bruno@clisp.org>
Help GCC to do better code generation.
* lib/eealloc.h (eemalloc) [GCC >= 3]: Declare with attribute 'malloc'.
* lib/pagealign_alloc.h (pagealign_alloc, pagealign_xalloc): Likewise.
* lib/xalloc.h (ATTRIBUTE_MALLOC): New macro.
(xmalloc, xzalloc, xcalloc, xmemdup, xstrdup, xnmalloc, xcharalloc):
Declare with attribute 'malloc' if supported.
2008-05-14 Lasse Collin <lasse.collin@tukaani.org>
use "echo STR|wc -c" rather than unportable "expr length STR"
* build-aux/mktempd (mktempd): Vendor-supplied expr from at least
OpenBSD 4.3 and Solaris 10 do not honor expr's "length" function.
2008-05-14 Jim Meyering <meyering@redhat.com>
use dd ibs=$n count=1 ... rather than less-portable head -c$n
* build-aux/mktempd (rand_bytes): head's -cN option is not accepted
by Solaris 10's /bin/head or by the one from HP-UX 11.x.
Reported in http://sourceforge.net/forum/message.php?msg_id=4960334
via Collin Lasse.
2008-05-14 Eric Blake <ebb9@byu.net>
Avoid quadratic growth in gl_LIBSOURCES.
* gnulib-tool (func_emit_initmacro_done): s/\(m4_append\)_uniq/\1/.
Suggested by Bruno Haible.
Test xmemdup0.
* modules/xmemdup0-tests: New file.
* tests/test-xmemdup0.c: Likewise.
2008-05-13 Eric Blake <ebb9@byu.net>
Split xmemdup0 into its own module.
* modules/xmemdup0: New file.
* lib/xmemdup0.h: Likewise.
* lib/xmemdup0.c: Likewise.
* MODULES.html.sh (Memory management functions): Add xmemdup0.
* lib/xalloc.h (xmemdup0): Remove.
* lib/xmalloc.c (xmemdup0): Likewise.
2008-05-13 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
Reduce number of forks required during autoconf.
* gnulib-tool (func_emit_initmacro_start): Prepare gl_LIBSOURCES_LIST
and gl_LIBSOURCES_DIR.
(func_emit_initmacro_end): Use them here in a single m4_syscmd...
(func_emit_initmacro_done) <gl_LIBSOURCES>: ...rather than in one
m4_syscmd per file.
<m4_foreach_w>: Move...
* m4/gnulib-common.m4 (m4_foreach_w): ...here.
2008-05-13 Eric Blake <ebb9@byu.net>
* gnulib-tool: Fix various comment typos.
2008-05-12 Bruno Haible <bruno@clisp.org>
Tailor the linebreaking algorithm.
* lib/unilbrk/tables.c (unilbrk_table): Change (IS,AL) entry.
2008-05-12 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.0.0.
* lib/unilbrk/tables.h (LBP_*): Add LBP_WJ, LBP_H2, LBP_H3, LBP_JL,
LBP_JV, LBP_JT. Redistribute values.
(unilbrk_table): Change size.
* lib/unilbrk/tables.c (unilbrk_table): Change size. Update to match
Unicode TR#14 rev. 22.
* lib/unilbrk/gen-lbrk.c (LBP_*): Add LBP_WJ, LBP_H2, LBP_H3, LBP_JL,
LBP_JV, LBP_JT. Redistribute values.
(get_lbp): Update to match Unicode TR#14 rev. 21/22 and Unicode 5.0.0.
(debug_output_lbp, fill_org_lbp, debug_output_org_lbp, output_lbp):
Update.
* lib/unilbrk/lbrkprop1.h: Regenerated.
* lib/unilbrk/lbrkprop2.h: Regenerated.
* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks):
Change handling of LBP_CM after LBP_ZW. Update for new value of LBP_BK.
* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
Likewise.
* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (main): Update expected
result.
* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u8-width-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u16-width-linebreaks.c (main): Likewise.
* tests/unilbrk/test-u32-width-linebreaks.c (main): Likewise.
2008-05-11 Bruno Haible <bruno@clisp.org>
* lib/unilbrk/gen-lbrk.c (output_lbp): Fix whitespace.
2008-05-11 Bruno Haible <bruno@clisp.org>
* lib/unilbrk/gen-lbrk.c: New file, from GNU gettext (gen-lbrkprop.c).
* modules/unilbrk/gen-lbrk: New file.
2008-05-11 Bruno Haible <bruno@clisp.org>
* m4/sha256.m4 (gl_SHA256): Require AC_C_INLINE.
* m4/sha512.m4 (gl_SHA512): Likewise.
2008-05-11 Jim Meyering <meyering@redhat.com>
New modules: crypto/sha256, crypto/sha512 (from coreutils)
* modules/crypto/sha256: New file.
* modules/crypto/sha512: Likewise.
* lib/sha256.c: Likewise.
* lib/sha256.h: Likewise.
* lib/sha512.c: Likewise.
* lib/sha512.h: Likewise.
* lib/u64.h: Likewise.
* m4/sha256.m4: Likewise.
* m4/sha512.m4: Likewise.
* MODULES.html.sh (Cryptographic computations (low-level)): List them.
2008-05-10 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Environment variables <stdlib.h>): Add unsetenv.
(Input/Output <stdio.h>): Add xprintf.
(Signal handling <signal.h>): Add strsignal.
(Cryptographic computations (high-level)): Add crypto/gc-camellia.
(Core language properties): Add func.
(Mathematics <math.h>): Add ceil, floor, frexp-nolibm.
(Support for systems lacking POSIX:2001): Add environ, EOVERFLOW,
strings.
(Enhancements for POSIX:2001 functions): Add iconv_open-utf.
(Input/output): New section.
(File system functions): Add openat-die, stat-macros.
(Networking functions): Add sockets.
(Unicode string functions): Add unictype/*.
(Support for building libraries and executables): Add gperf.
(Support for building documentation): Add agpl-3.0.
(Misc): Add nocrash.
2008-05-10 Bruno Haible <bruno@clisp.org>
* modules/unictype/gen-ctype: New file.
2008-05-10 Jim Meyering <meyering@redhat.com>
Make chdir-safer.c more efficient on a system with no symlinks.
* lib/chdir-safer.c (chdir_no_follow): Skip lstat and fstat calls
also if ELOOP is zero. Suggested by Bruno Haible.
Make chdir-safer.c slightly safer.
* lib/chdir-safer.c (chdir_no_follow): Test HAVE_WORKING_O_NOFOLLOW,
not O_NOFOLLOW, in case the latter is nonzero and open ignores it.
Avoid compile failure on systems without ELOOP (like mingw).
* lib/chdir-safer.c (ELOOP): Define if not already defined.
Reported by Bruno Haible.
2008-05-10 Bruno Haible <bruno@clisp.org>
* lib/unilbrk/ulc-common.c: Include c-strcaseeq.h instead of streq.h.
(is_utf8_encoding): Use a case-insensitive comparison.
* modules/unilbrk/ulc-common (Depends-on): Add c-strcaseeq. Remove
streq.
2008-05-10 Bruno Haible <bruno@clisp.org>
* lib/unilbrk/ulc-common.c: Don't include <stdlib.h>.
(iconv_string_length, iconv_string_keeping_offsets): Remove functions.
* lib/unilbrk/ulc-common.h (iconv_string_length,
iconv_string_keeping_offsets): Remove declarations.
* lib/unilbrk/ulc-possible-linebreaks.c: Include <string.h>, uniconv.h.
Don't include <iconv.h>, streq.h, xsize.h.
(ulc_possible_linebreaks): Use u8_conv_from_encoding for doing the
conversion.
* lib/unilbrk/ulc-width-linebreaks.c: Include uniconv.h. Don't include
<iconv.h>, streq.h, xsize.h.
(ulc_width_linebreaks): Use u8_conv_from_encoding for doing the
conversion.
* modules/unilbrk/ulc-common (Depends-on): Remove iconv.
* modules/unilbrk/ulc-possible-linebreaks (Depends-on): Add
uniconv/u8-conv-from-enc. Remove iconv_open, streq, xsize.
* modules/unilbrk/ulc-width-linebreaks (Depends-on): Likewise.
2008-05-10 Bruno Haible <bruno@clisp.org>
* modules/unilbrk/ulc-width-linebreaks-tests: New file.
* tests/unilbrk/test-ulc-width-linebreaks.c: New file.
* modules/unilbrk/u32-width-linebreaks-tests: New file.
* tests/unilbrk/test-u32-width-linebreaks.c: New file.
* modules/unilbrk/u16-width-linebreaks-tests: New file.
* tests/unilbrk/test-u16-width-linebreaks.c: New file.
* modules/unilbrk/u8-width-linebreaks-tests: New file.
* tests/unilbrk/test-u8-width-linebreaks.c: New file.
* modules/unilbrk/ulc-possible-linebreaks-tests: New file.
* tests/unilbrk/test-ulc-possible-linebreaks.c: New file.
* modules/unilbrk/u32-possible-linebreaks-tests: New file.
* tests/unilbrk/test-u32-possible-linebreaks.c: New file.
* modules/unilbrk/u16-possible-linebreaks-tests: New file.
* tests/unilbrk/test-u16-possible-linebreaks.c: New file.
* modules/unilbrk/u8-possible-linebreaks-tests: New file.
* tests/unilbrk/test-u8-possible-linebreaks.c: New file.
2008-05-10 Bruno Haible <bruno@clisp.org>
Split up 'linebreak' module.
* lib/unilbrk.h: New file, based on lib/linebreak.h.
* lib/unilbrk/lbrkprop1.h: New file, extracted from lib/lbrkprop.h.
* lib/unilbrk/lbrkprop2.h: New file, renamed from lib/lbrkprop.h with
modifications.
* lib/unilbrk/tables.h: New file, extracted from lib/linebreak.c.
* lib/unilbrk/tables.c: New file, extracted from lib/linebreak.c.
* lib/unilbrk/u8-possible-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/u16-possible-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/u32-possible-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/ulc-common.h: New file, extracted from lib/linebreak.c.
* lib/unilbrk/ulc-common.c: New file, extracted from lib/linebreak.c.
* lib/unilbrk/ulc-possible-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/u8-width-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/u16-width-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/u32-width-linebreaks.c: New file, extracted from
lib/linebreak.c.
* lib/unilbrk/ulc-width-linebreaks.c: New file, extracted from
lib/linebreak.c.
* modules/unilbrk/base: New file.
* modules/unilbrk/tables: New file.
* modules/unilbrk/u8-possible-linebreaks: New file.
* modules/unilbrk/u16-possible-linebreaks: New file.
* modules/unilbrk/u32-possible-linebreaks: New file.
* modules/unilbrk/ulc-common: New file.
* modules/unilbrk/ulc-possible-linebreaks: New file.
* modules/unilbrk/u8-width-linebreaks: New file.
* modules/unilbrk/u16-width-linebreaks: New file.
* modules/unilbrk/u32-width-linebreaks: New file.
* modules/unilbrk/ulc-width-linebreaks: New file.
* lib/linebreak.h: Remove file.
* lib/linebreak.c: Remove file.
* m4/linebreak.m4: Remove file.
* modules/linebreak: Remove file.
* NEWS: Mention the changes.
2008-05-09 Eric Blake <ebb9@byu.net>
Add xmemdup0.
* lib/xalloc.h (xmemdup0): New prototype and C++ typesafe
implementation.
* lib/xmalloc.c (xmemdup0): New C implementation.
2008-05-08 Bruno Haible <bruno@clisp.org>
* m4/wctype.m4 (gl_WCTYPE_H): Correct indentation.
2008-05-07 Eric Blake <ebb9@byu.net>
Support cross-compilation of <wctype.h>.
* m4/wctype.m4 (gl_WCTYPE_H): Fix improper nesting in
AC_CACHE_CHECK.
2008-05-06 Soren Hansen <soren@ubuntu.com> (tiny change)
* build-aux/vc-list-files: Add support for bzr.
2008-05-03 Jim Meyering <meyering@redhat.com>
avoid failed assertion with tight malloc
* tests/test-getndelim2.c: Correct an off-by-one assertion.
2008-05-03 Simon Josefsson <simon@josefsson.org>
* m4/inet_pton.m4: Set HAVE_DECL_INET_PTON to 0 when declarations
are needed from arpa/inet.h.
* m4/inet_ntop.m4: Likewise, for HAVE_DECL_INET_NTOP.
Reported by Bruno Haible.
2008-05-02 Jim Meyering <meyering@redhat.com>
avoid compilation error on FreeBSD 6
* tests/test-getaddrinfo.c [!defined EAI_NODATA] (EAI_NODATA): Define.
2008-05-01 Jim Meyering <meyering@redhat.com>
useless-if-before-free: correct --help's exit status description
* build-aux/useless-if-before-free (usage): Like grep, exit 0
for one or more matches, etc. Reported by Bruno Haible.
vc-list-files: make the stand-alone gnulib test work
* modules/vc-list-files-tests (configure.ac):
Define and AC_SUBST abs_aux_dir.
(Makefile.am) [TESTS_ENVIRONMENT]: Rather than passing
$(abs_top_srcdir) to each script and having each of them
duplicate the work of setting PATH, set PATH here, using
the new variable, abs_aux_dir instead.
* tests/test-vc-list-files-cvs.sh: Don't set PATH here.
* tests/test-vc-list-files-git.sh: Likewise.
Reported by Bruno Haible.
2008-05-01 Bruno Haible <bruno@clisp.org>
* lib/getndelim2.c (getndelim2): Fix newsize computation during
reallocation. Rename 'done' to 'found_delimiter'.
2008-05-01 Jim Meyering <meyering@redhat.com>
vc-list-files: accommodate /bin/sh like the one from Solaris 10
* build-aux/vc-list-files: Use `...`, not $(...).
2008-04-30 Jim Meyering <meyering@redhat.com>
add tests for vc-list-files
* modules/vc-list-files-tests: New module.
* tests/test-vc-list-files-cvs.sh: New file.
* tests/test-vc-list-files-git.sh: New file.
avoid a warning from gcc
* lib/getndelim2.c (IF_LINT): Define.
(getndelim2): Use it to avoid a "may be used uninitialized" warning.
vc-list-files: work properly with build-aux/cvsu, too
* build-aux/vc-list-files: Hoist the "./"-removing code to apply
to all cvs-based clauses.
vc-list-files: work properly in the CVS+awk case, too
* build-aux/vc-list-files: In the CVS+awk case, remove "./" prefix.
vc-list-files: avoid use of ${*-*} that fails when /bin/sh is dash
* build-aux/vc-list-files: Simplify ${*-*} to $dir, since we no longer
take more than one file argument, so . Add quotes, just in case $dir
ever contains a shell meta-character. Prompted by Soren Hansen in
<http://thread.gmane.org/gmane.comp.emulators.libvirt/6221/focus=6240>.
2008-04-29 Eric Blake <ebb9@byu.net>
Optimize getndelim2 to use block operations when possible.
* modules/getndelim2 (Depends-on): Add stdbool, freadptr,
freadseek, and memchr2.
* lib/getndelim2.c (getndelim2): Use them for block reads.
2008-04-29 Bruno Haible <bruno@clisp.org>
* m4/inet_ntop.m4 (gl_INET_NTOP): Require gl_USE_SYSTEM_EXTENSIONS.
* m4/inet_pton.m4 (gl_INET_PTON): Likewise.
* modules/inet_ntop (Depends-on): Add extensions.
* modules/inet_pton (Depends-on): Likewise.
Reported by Simon Josefsson.
2008-04-29 Jim Meyering <meyering@redhat.com>
When the is more than one match in a block, match all of them.
* build-aux/useless-if-before-free: Iterate through each block
until there are no more matches.
Fix broken useless-if-before-free script.
* build-aux/useless-if-before-free: Fix typo: missing "?" after
the expression to match cast of argument to free-like function.
2008-04-29 Eric Blake <ebb9@byu.net>
Use new header.
* lib/getaddrinfo.c (includes): s/"inet_ntop.h"/<arpa/inet.h>/.
2008-04-29 Jim Meyering <meyering@redhat.com>
Avoid test segfault on x86_64 due to lack of inet_ntop declaration.
* tests/test-getaddrinfo.c: Include <arpa/inet.h>, now guaranteed
by gnulib to exist and to declare e.g., inet_ntop.
Don't include "inet_ntop.h", now removed.
* m4/arpa_inet_h.m4: Remove trailing blanks.
2008-04-29 Eric Blake <ebb9@byu.net>
Silence valgrind on safe reads beyond potential array bounds.
* lib/rawmemchr.valgrind: New file.
* lib/strchrnul.valgrind: Likewise.
* modules/rawmemchr (Files): Distribute new file.
* modules/strchrnul (Files): Likewise.
Suggested by Bruno Haible.
2008-04-29 Bruno Haible <bruno@clisp.org>
* lib/arpa_inet.in.h: Include system's <arpa/inet.h> if it exists.
(inet_ntop, inet_pton): Change portability warning's wording.
* m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Set HAVE_ARPA_INET_H.
Invoke gl_CHECK_NEXT_HEADERS.
(gl_ARPA_INET_H_DEFAULTS): Initialize ARPA_INET_H.
* m4/inet_ntop.m4 (gl_INET_NTOP): Require gl_ARPA_INET_H_DEFAULTS and
set ARPA_INET_H.
* m4/inet_pton.m4 (gl_INET_PTON): Likewise.
* modules/arpa_inet (Description): No longer only for systems that
lack it.
(Depends-on): Add include_next.
(Makeile.am): Substitute INCLUDE_NEXT, NEXT_ARPA_INET_H,
HAVE_ARPA_INET_H.
2008-04-29 Jim Meyering <meyering@redhat.com>
* modules/mkdir (License): Re-license as LGPLv2+.
2008-04-29 Bruno Haible <bruno@clisp.org>
* modules/rawmemchr (Maintainer): Set to Eric.
* modules/strchrnul (Maintainer): Likewise.
2008-04-29 Simon Josefsson <simon@josefsson.org>
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Set
HAVE_DECL_INET_NTOP and HAVE_DECL_INET_PTON.
* modules/arpa_inet (arpa/inet.h): Use them.
2008-04-28 Eric Blake <ebb9@byu.net>
Test getndelim2.
* modules/getndelim2-tests: New file.
* tests/test-getndelim2.c: Likewise.
* lib/getndelim2.c (getndelim2): Never return 0. Lock the
stream.
* m4/getndelim2.m4 (gl_GETNDELIM2): Check for lock functions.
* MODULES.html.sh: Document new module.
2008-04-20 Bruno Haible <bruno@clisp.org>
* lib/c-stack.c (die): Use raise.
* modules/c-stack (Depends-on): Add raise.
2008-04-28 Bruno Haible <bruno@clisp.org>
Expect rpmatch to be declared.
* lib/yesno.c (rpmatch): Remove declaration.
Declare rpmatch.
* lib/stdlib.in.h (rpmatch): New declaration.
* lib/rpmatch.c: Include <stdlib.h> first.
* m4/rpmatch.m4 (gl_FUNC_RPMATCH): Require AC_USE_SYSTEM_EXTENSIONS and
gl_STDLIB_H_DEFAULTS. Set HAVE_RPMATCH.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_RPMATCH,
HAVE_RPMATCH.
* modules/rpmatch (Depends-on): Add stdlib, extensions.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Include): Set to <stdlib.h>.
* modules/stdlib (Makefile.am): Substitute GNULIB_RPMATCH and
HAVE_RPMATCH.
* NEWS: Document the change.
2008-04-28 Bruno Haible <bruno@clisp.org>
Change rpmatch to use nl_langinfo when appropriate.
* lib/rpmatch.c: Include stdbool.h, string.h, langinfo.h.
(N_): New macro.
(localized_pattern): New function/macro.
(try): Remove match, nomatch arguments. Copy the pattern into safe
memory before caching it.
(rpmatch): Use localized_pattern. Add translator comments.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Test for nl_langinfo and YESEXPR.
Suggested by Eric Blake.
* modules/rpmatch (Depends-on): Add stdbool.
2008-04-28 Eric Blake <ebb9@byu.net>
Add rawmemchr module, matching glibc.
* modules/string (Makefile.am): New indicator.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Set it.
* lib/string.in.h (rawmemchr): Declare when appropriate.
* modules/rawmemchr: New file.
* m4/rawmemchr.m4: Likewise.
* lib/rawmemchr.c: Likewise.
* modules/rawmemchr-tests: Likewise.
* tests/test-rawmemchr.c: Likewise.
* doc/glibc-functions/rawmemchr.texi (rawmemchr): Document
module.
* modules/strchrnul (Depends-on): Add rawmemchr.
* lib/strchrnul.c (strchrnul): Optimize a corner case.
Whitespace cleanup.
* tests/test-strchrnul.c: Reindent.
* lib/strchrnul.c: Likewise.
Optimize and test strchrnul.
* lib/strchrnul.c (strchrnul): Rewrite to do parallel search.
* modules/strchrnul-tests: New file.
* tests/test-strchrnul.c: Likewise.
Remove intprops dependency.
* modules/memchr (Depends-on): Remove intprops.
* modules/memrchr (Depends-on): Likewise.
* modules/memchr2 (Depends-on): Likewise.
* lib/memchr.c (__memchr): Hand-inline the TYPE_MAXIMUM check.
* lib/memrchr.c (__memrchr): Likewise.
* lib/memrchr2.c (memchr2): Likewise.
Reported by Simon Josefsson.
2008-04-28 Simon Josefsson <simon@josefsson.org>
* m4/sys_socket_h.m4: Move AC_REQUIRE([AC_C_INLINE]) to top.
Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2008-04-28 Simon Josefsson <simon@josefsson.org>
* lib/inet_ntop.h, lib/inet_pton.h: Remove files.
* lib/inet_ntop.c: Include arpa/inet.h instead of inet_ntop.h.
* lib/inet_pton.c: Include arpa/inet.h instead of inet_pton.h.
* lib/arpa_inet.in.h [@GNULIB_INET_NTOP@]: Inline inet_ntop.h
declarations.
[@GNULIB_INET_PTON@]: Inline inet_pton.h declarations.
* m4/inet_pton.m4: Don't check for header files.
* m4/inet_ntop.m4: Don't check for header files.
2008-04-28 Simon Josefsson <simon@josefsson.org>
* m4/sys_socket_h.m4: Require AC_C_INLINE when necessary.
* lib/sys_socket.in.h (setsockopt): Use proper win32 tests (don't
trigger for cygwin).
Reported by Bruno Haible <bruno@clisp.org>.
2008-04-28 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/strdup.texi: Mention mingw problem.
2008-04-27 Bruno Haible <bruno@clisp.org>
* modules/stat-time-tests (Depends-on): Add sleep.
* tests/test-stat-time.c (force_unlink): New function.
(cleanup): Use it.
(test_mtime): Remove the ctime related tests.
(test_ctime): New function, containing the ctime related tests.
(main): Call test_ctime, except on native Windows platforms.
2008-04-27 Bruno Haible <bruno@clisp.org>
* lib/rpmatch.c (rpmatch): Add some comments.
Reported by James Youngman <jay@gnu.org>.
2008-04-27 Bruno Haible <bruno@clisp.org>
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Also test the behaviour on
quiet NaNs.
2008-04-27 Bruno Haible <bruno@clisp.org>
Make test-yesno.sh work on mingw.
* tests/test-yesno.sh: Postprocess the output to convert CR/LF to LF.
* tests/test-yesno.c: Include yesno.h first. Include binary-io.h.
(main): Set stdin to binary mode.
* modules/yesno-tests (Depends-on): Add binary-io.
2008-04-27 Bruno Haible <bruno@clisp.org>
Fix 'isfinite' on x86, x86_64, ia64 platforms.
* tests/test-isfinite.c (test_isfinitel): Also test the behavior on
argument that lie outside the IEEE 854 domain.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): New macro.
(gl_ISFINITE): Use it.
* doc/posix-functions/isfinite.texi: Document the fixed bugs.
2008-04-27 Bruno Haible <bruno@clisp.org>
Allow local renaming in config.h.
* lib/memrchr.c (memrchr): Don't undefine outside libc.
2008-04-27 Bruno Haible <bruno@clisp.org>
* lib/memchr.c (__memchr): Change type of 'i'.
* lib/memchr2.c (memchr2): Likewise.
2008-04-26 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
Optimize and test memrchr.
* modules/memrchr (Depends-on): Add intprops.
* lib/memrchr.c (__memrchr): Avoid false positives in loop.
* modules/memrchr-tests: New file.
* tests/test-memrchr.c: New file.
2008-04-26 Bruno Haible <bruno@clisp.org>
Add tentative support for DragonFly BSD.
* lib/stdio-impl.h: Add macros for DragonFly BSD.
* lib/fbufmode.c (fbufmode): Update conditionals. Use fp_ instead of
fp.
* lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization,
restore_seek_optimization, update_fpos_cache, rpl_fflush: Likewise.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freaadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
2008-04-26 Bruno Haible <bruno@clisp.org>
* lib/stdio-impl.h: New file.
* lib/fbufmode.c: Include stdio-impl.h.
(fbufmode): Use fp_, remove redundant #defines.
* lib/fflush.c: Include stdio-impl.h.
(clear_ungetc_buffer): Remove redundant #defines.
* lib/fpurge.c: Include stdio-impl.h.
(fpurge): Remove redundant #defines.
* lib/freadable.c: Include stdio-impl.h.
(freadable): Remove redundant #defines.
* lib/freadahead.c: Include stdio-impl.h.
(freadahead): Remove redundant #defines.
* lib/freading.c: Include stdio-impl.h.
(freading): Remove redundant #defines.
* lib/freadptr.c: Include stdio-impl.h.
(freadptr): Remove redundant #defines.
* lib/freadseek.c: Include stdio-impl.h.
(freadptrinc): Remove redundant #defines.
* lib/fseeko.c: Include stdio-impl.h.
(rpl_fseeko): Remove redundant #defines.
* lib/fseterr.c: Include stdio-impl.h.
(fseterr): Remove redundant #defines.
* lib/fwritable.c: Include stdio-impl.h.
(fwritable: Remove redundant #defines.
* lib/fwriting.c: Include stdio-impl.h.
(fwriting): Remove redundant #defines.
* modules/fbufmode (Files): Add lib/stdio-impl.h.
* modules/fflush (Files): Likewise.
* modules/fpurge (Files): Likewise.
* modules/freadable (Files): Likewise.
* modules/freadahead (Files): Likewise.
* modules/freading (Files): Likewise.
* modules/freadptr (Files): Likewise.
* modules/freadseek (Files): Likewise.
* modules/fseeko (Files): Likewise.
* modules/fseterr (Files): Likewise.
* modules/fwritable (Files): Likewise.
* modules/fwriting (Files): Likewise.
2008-04-26 Bruno Haible <bruno@clisp.org>
* lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization,
restore_seek_optimization, update_fpos_cache): New functions, extracted
from rpl_fflush.
(rpl_fflush): Use them.
* m4/fflush.m4 (gl_PREREQ_FFLUSH): New macro.
(gl_REPLACE_FFLUSH): Use it.
2008-04-26 Bruno Haible <bruno@clisp.org>
* tests/test-xstrtol.sh: Work around limitation of an old 'tr' program
on Solaris.
* tests/test-xstrtoimax.sh: Likewise.
* tests/test-xstrtoumax.sh: Likewise.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2008-04-26 Bruno Haible <bruno@clisp.org>
* modules/memchr-tests: New file.
* tests/test-memchr.c; New file, based on tests/test-memchr2.c.
2008-04-26 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
* lib/memchr.c: Include intprops.h.
(__memchr): Optimize parallel detection of matching bytes. Rename local
variables. Add explanatory comments.
2008-04-26 Bruno Haible <bruno@clisp.org>
Fix module 'memchr', broken since 2000-10-28.
* lib/memchr.c: Outside glibc, define memchr, not __memchr.
2008-04-26 Bruno Haible <bruno@clisp.org>
* lib/memchr2.c (memchr2): Rename local variables. Add explanatory
comments.
2008-04-25 Eric Blake <ebb9@byu.net>
Use native fstatat on cygwin 1.7.0.
* m4/openat.m4 (gl_FUNC_OPENAT): Make sure lstat check is made
first.
2008-04-23 Eric Blake <ebb9@byu.net>
Improve memchr2 performance.
* lib/memchr2.c (memchr2): Further optimize parallel detection of
NUL bytes.
* modules/memchr2 (Depends-on): Use intprops.h.
2008-04-23 Simon Josefsson <simon@josefsson.org>
* lib/sys_socket.in.h (setsockopt): Be more type safe by declaring
an inline function instead of a CPP macro. Patch by Ben Pfaff
<blp@cs.stanford.edu>.
2008-04-23 Simon Josefsson <simon@josefsson.org>
* lib/arpa_inet.in.h: New file.
* modules/arpa_inet (Files): Add lib/arpa_inet.in.h.
(Makefile.am): Sed in substitute header file.
* m4/arpa_inet_h.m4: Add gl_ARPA_INET_H_DEFAULTS and
gl_ARPA_INET_MODULE_INDICATOR. Use them.
* modules/inet_ntop (configure.ac): Use
gl_ARPA_INET_MODULE_INDICATOR.
* modules/inet_pton (configure.ac): Use
gl_ARPA_INET_MODULE_INDICATOR.
2008-04-22 Jim Meyering <meyering@redhat.com>
* modules/verify (License): Re-license as LGPLv2+.
2008-04-22 Simon Josefsson <simon@josefsson.org>
* lib/sys_socket.in.h: Define setsockopt macro to cast fourth
parameter to void* as per POSIX standard (MinGW uses char*).
2008-04-21 Bruno Haible <bruno@clisp.org>
* lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit):
Define to replacements if REPLACE_ISWCNTRL is 1.
* m4/wctype.m4 (gl_WCTYPE_H): Test whether the isw* functions work.
If not, set WCTYPE_H to nonempty and REPLACE_ISWCNTRL to 1.
* modules/wctype (Makefile.am): Substitute REPLACE_ISWCNTRL.
* doc/posix-functions/iswalnum.texi: Mention the 'wctype' module and
what it fixes.
* doc/posix-functions/iswalpha.texi: Likewise.
* doc/posix-functions/iswblank.texi: Likewise.
* doc/posix-functions/iswcntrl.texi: Likewise.
* doc/posix-functions/iswdigit.texi: Likewise.
* doc/posix-functions/iswgraph.texi: Likewise.
* doc/posix-functions/iswlower.texi: Likewise.
* doc/posix-functions/iswprint.texi: Likewise.
* doc/posix-functions/iswpunct.texi: Likewise.
* doc/posix-functions/iswspace.texi: Likewise.
* doc/posix-functions/iswupper.texi: Likewise.
* doc/posix-functions/iswxdigit.texi: Likewise.
Reported by Alain Guibert.
2008-04-21 Bruno Haible <bruno@clisp.org>
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Fix typo in last commit.
Patch by Alain Guibert.
2008-04-21 Bruno Haible <bruno@clisp.org>
Fix test failures on mingw.
* tests/test-xstrtol.c (print_no_progname): New function.
(main): Install it in error_print_progname hook.
* tests/test-xstrtol.sh: Convert CR/LF to NL in output.
* tests/test-xstrtoimax.sh: Likewise.
* tests/test-xstrtoumax.sh: Likewise.
2008-04-21 Bruno Haible <bruno@clisp.org>
Fix test failure on mingw.
* tests/test-argp-2.sh (func_compare): Remove CRs from sed's output.
2008-04-21 Bruno Haible <bruno@clisp.org>
* lib/localename.c (SUBLANG_TIBETAN_PRC, SUBLANG_TIBETAN_BHUTAN):
Actually assign a value.
2008-04-20 Bruno Haible <bruno@clisp.org>
Fix conflict between modules 'canonicalize' and 'canonicalize-lgpl',
take 2.
* lib/canonicalize.c (canonicalize_file_name): Elide if the
'canonicalize-lgpl' module is also used.
* lib/canonicalize-lgpl.c: Undo last change.
* modules/canonicalize-lgpl (configure.ac): Invoke gl_MODULE_INDICATOR.
2008-04-20 Bruno Haible <bruno@clisp.org>
* lib/mkdir.c (mkdir): Undefine after the includes, not right after
config.h. Provide _mkdir based fallback for mingw.
* lib/sys_stat.in.h (mkdir): Define through an 'extern' declaration
if REPLACE_MKDIR is 1. Otherwise, test for mingw directly.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Require
gl_SYS_STAT_H_DEFAULTS. When doing the replacement, set REPLACE_MKDIR
rather than defining mkdir in config.h.
* m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): New macro.
(gl_SYS_STAT_H_DEFAULTS): New macro.
(gl_HEADER_SYS_STAT_H): Require it. Don't set HAVE_DECL_MKDIR and
HAVE_IO_H any more.
* modules/sys_stat (Makefile.am): Substitute REPLACE_MKDIR instead of
HAVE_DECL_MKDIR and HAVE_IO_H.
2008-04-20 Bruno Haible <bruno@clisp.org>
* lib/isapipe.c: Port to native Windows platforms.
2008-04-20 Bruno Haible <bruno@clisp.org>
* lib/gc-gnulib.c: Include <windows.h> before <wincrypt.h>.
2008-04-21 Eric Blake <ebb9@byu.net>
Work around preprocessors that don't handle UINTMAX_MAX.
* lib/memchr2.c (memchr2): Avoid embedded #if.
Reported by Alain Guibert, fix suggested by Bruno Haible.
2008-04-21 Simon Josefsson <simon@josefsson.org>
* doc/posix-functions/strftime.texi (strftime): Explain better
Windows incompatibility. Suggested by Micah Cowan
<micah@cowan.name>.
2008-04-20 Bruno Haible <bruno@clisp.org>
* modules/uniconv/u32-conv-to-enc (Depends-on): Add unistr/u32-mblen,
unistr/u8-mblen.
2008-04-20 Bruno Haible <bruno@clisp.org>
Fix test failure on platforms with non-GNU iconv.
* lib/uniconv/u16-conv-to-enc.c (u16_to_u8_lenient): New function.
(U_TO_U8): Use it, rather than u16_to_u8.
* lib/uniconv/u-conv-to-enc.h (FUNC): Allow an incomplete sequence of
units at the end of the input string.
* modules/uniconv/u16-conv-to-enc (Depends-on): Update.
2008-04-20 Bruno Haible <bruno@clisp.org>
* tests/uniconv/test-u8-conv-to-enc.c (main): Accept result == NULL
when the resulting length is 0.
* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
2008-04-20 Bruno Haible <bruno@clisp.org>
* m4/roundf.m4 (gl_FUNC_ROUNDF): Add test whether roundf actually
works.
* doc/posix-functions/roundf.texi: Mention roundf bug on mingw.
2008-04-20 Bruno Haible <bruno@clisp.org>
* tests/test-tsearch.c (main): Don't use initstate if it is missing.
* modules/tsearch-tests (configure.ac): Test for initstate function.
2008-04-20 Bruno Haible <bruno@clisp.org>
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Also provided a substitute
for nlink_t if missing.
* tests/test-sys_stat.c: Check the existence of the nlink_t type.
2008-04-19 Bruno Haible <bruno@clisp.org>
Work around snprintf bug on Linux libc5.
* m4/printf.m4 (gl_SNPRINTF_SIZE1): New macro.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
gl_SNPRINTF_SIZE1.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/snprintf.m4 (gl_FUNC_SNPRINTF): Likewise. Replace snprintf if
that test failed.
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise.
* lib/vasnprintf.c (USE_SNPRINTF): Set to 0 on Linux libc5 systems.
* modules/snprintf (Files): Add m4/printf.m4.
* modules/vsnprintf (Files): Likewise.
* doc/posix-functions/snprintf.texi: Document Linux libc5 problem.
* doc/posix-functions/vsnprintf.texi: Likewise.
2008-04-19 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (floorlog10l, floorlog10): Reduce maximum error
from 0.0058 to less than 10^-7.
2008-04-19 Bruno Haible <bruno@clisp.org>
Fix rounding when a precision is given.
* lib/vasnprintf.c (is_borderline): New function.
(VASNPRINTF): For %e and %g, consider replacing the digits 10....0 with
9...9x.
* tests/test-vasnprintf-posix.c (test_function): Test rounding with %f,
%e, %g.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.h (test_function): Test rounding with %f.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-printf-posix.output: Update.
Reported by John Darrington <john@darrington.wattle.id.au> via
Ben Pfaff <blp@cs.stanford.edu>.
2008-04-18 Simon Josefsson <simon@josefsson.org>
* doc/posix-functions/strftime.texi (strftime): Clarify platform.
Suggested by Bruno Haible <bruno@clisp.org>.
2008-04-17 Bruno Haible <bruno@clisp.org>
* lib/lock.h (gl_lock_destroy, gl_rwlock_destroy,
gl_recursive_lock_destroy): Provide no-op definitions for the dummy
implementation.
Patch by Bruce Merry <bmerry@gmail.com>.
2008-04-17 Simon Josefsson <simon@josefsson.org>
* doc/posix-functions/strftime.texi (strftime): Mention that %e
doesn't work under Windows.
2008-04-16 Bruno Haible <bruno@clisp.org>
* lib/localename.c (LANG_MAORI, LANG_QUECHUA, LANG_SOTHO, LANG_UIGHUR):
New macros.
(SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN,
SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC,
SUBLANG_CROATIAN_CROATIA, SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN,
SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA, SUBLANG_MONGOLIAN_PRC,
SUBLANG_QUECHUA_BOLIVIA, SUBLANG_QUECHUA_ECUADOR, SUBLANG_QUECHUA_PERU,
SUBLANG_RUSSIAN_RUSSIA, SUBLANG_RUSSIAN_MOLDAVIA, SUBLANG_SPANISH_US,
SUBLANG_TIBETAN_PRC, SUBLANG_TIBETAN_BHUTAN, SUBLANG_UIGHUR_PRC): New
macros.
(gl_locale_name_from_win32_LANGID): Refine code for Croatian/Bosnian,
Mongolian, Russian, Spanish, Tibetan. Add code for Maori, Quechua,
Northern Sotho, Uighur.
2008-04-16 Bruno Haible <bruno@clisp.org>
* lib/localename.c (SUBLANG_SINDHI_INDIA): New macro.
(SUBLANG_SINDHI_PAKISTAN): Change value from 1 to 2.
(gl_locale_name_from_win32_LANGID): Fix code for Sindhi.
Reported by Daniel Bergström <daniel@octocode.com>.
2007-12-25 KJK::Hyperion <hackbunny@reactos.com>
Bruno Haible <bruno@clisp.org>
* lib/localename.c (gl_locale_name_canonicalize) [WIN32_NATIVE]: New
function.
(gl_locale_name_from_win32_LANGID, gl_locale_name_from_win32_LCID):
New functions, mostly extracted from gl_locale_name_default.
(gl_locale_name_default): Use gl_locale_name_from_win32_LCID.
2008-04-16 Eric Blake <ebb9@byu.net>
Adjust strtod detection to catch glibc 2.7 bug.
* m4/strtod.m4 (gl_FUNC_STRTOD): Test "nan()" behavior.
Reported by John Gatewood Ham.
2008-04-16 Bruno Haible <bruno@clisp.org>
Add tentative support for Linux libc5.
* lib/fbufmode.c (fbufmode) [__GNU_LIBRARY__==1]: Reuse glibc2 code.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
Reported by Alain Guibert <alguibert+bts@free.fr>.
2008-04-15 Bruno Haible <bruno@clisp.org>
* modules/mathl (configure.ac): Define module indicator.
2008-04-15 Bruno Haible <bruno@clisp.org>
* lib/logl.c (logl): Remove unused variables.
2008-04-15 Bruno Haible <bruno@clisp.org>
* lib/uniconv/u-conv-to-enc.h (FUNC): Fix return value when U_TO_U8
fails.
2008-04-15 Bruno Haible <bruno@clisp.org>
* lib/trim.c (trim2): Fix argument of isspace() macro.
2008-04-15 Paolo Bonzini <bonzini@gnu.org>
* lib/tanl.c (kernel_tanl): Rename flag to invert, initialize it
to 0.
* lib/trigl.c (ieee754_rem_pio2l): Fix range checks.
2008-04-14 Bruno Haible <bruno@clisp.org>
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Fix underquoting of
AC_LANG_PROGRAM argument.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise.
* m4/gethrxtime.m4 (gl_ARITHMETIC_HRTIME_T): Likewise.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise.
* m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/stdint.m4 (gl_INTEGER_TYPE_SUFFIX): Likewise.
* m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Likewise.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
2008-04-14 Jim Meyering <meyering@redhat.com>
test-strtod: fix typos: s/abs/fabs/
* tests/test-strtod.c (main): Use fabs, not narrowing-to-int "abs".
2008-04-13 Bruno Haible <bruno@clisp.org>
Fix conflict between modules 'canonicalize' and 'canonicalize-lgpl'.
* lib/canonicalize-lgpl.c: Elide the contents if the 'canonicalize'
module is also used and while not building the reloc-wrapper.
2008-04-13 Bruno Haible <bruno@clisp.org>
* tests/test-getaddrinfo.c (simple): Ignore EAI_NODATA error.
2008-04-13 Bruno Haible <bruno@clisp.org>
Fix AIX compilation failure introduced on 2008-04-02.
* tests/test-frexp.c (exp): Undefine before redefining.
* tests/test-frexpl.c (exp): Likewise.
2008-04-13 Bruno Haible <bruno@clisp.org>
Work around a HP-UX stdio bug.
* tests/test-ftell.c (main): Disable the fseek/ftell test on HP-UX.
* tests/test-ftello.c (main): Likewise.
* doc/posix-functions/ftell.texi: Mention HP-UX bug.
* doc/posix-functions/ftello.texi: Likewise.
2008-04-13 Bruno Haible <bruno@clisp.org>
Make test-signbit pass on HP-UX/hppa.
* tests/test-signbit.c (minus_zerol): New variable.
(test_signbitl): Use it.
2008-04-13 Bruno Haible <bruno@clisp.org>
Make truncl work on OSF/1 4.0.
* m4/truncl.m4 (gl_FUNC_TRUNCL): Test whether truncl actually works.
Set REPLACE_TRUNCL, not HAVE_DECL_TRUNCL.
* lib/math.in.h (truncl): Test REPLACE_TRUNCL, not HAVE_DECL_TRUNCL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNCL, not
HAVE_DECL_TRUNCL.
* modules/math (Makefile.am): Substitute REPLACE_TRUNCL, not
HAVE_DECL_TRUNCL.
* doc/posix-functions/truncl.texi: Document the OSF/1 4.0 problem.
2008-04-13 Bruno Haible <bruno@clisp.org>
* lib/unictype.h: Remove trailing comma from enumeration definitions.
2008-04-13 Bruno Haible <bruno@clisp.org>
* lib/count-one-bits.h (COUNT_ONE_BITS): Rewrite verification
expression, so as to avoid HP-UX 11 cc compiler bug.
2008-04-13 Bruno Haible <bruno@clisp.org>
* m4/regex.m4 (gl_PREREQ_REGEX): Also check for <libintl.h>.
2008-04-13 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c: Remove empty declaration outside of
functions.
2008-04-13 Bruno Haible <bruno@clisp.org>
* modules/quotearg-tests (Makefile.am): Define test_quotearg_LDADD.
2008-04-13 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/sys_socket.texi: Document the problem on EMX.
* lib/sys_socket.in.h (SHUT_RD, SHUT_WR, SHUT_RDWR): Define if missing.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Replace <sys/socket.h>
also if it exists but lacks definitions of the SHUT_* macros.
* modules/sys_socket (Description): Update.
Reported by Elbert Pol <e.pol@chello.nl>.
2008-04-13 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (OS2): Don't redefine if already defined.
Reported by Elbert Pol <e.pol@chello.nl>.
2008-04-13 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h [__EMX__]: Include <io.h>.
Reported by Elbert Pol <e.pol@chello.nl>.
2008-04-12 Bruno Haible <bruno@clisp.org>
* lib/fpucw.h: Enable the definitions also for x86_64.
Needed for NetBSD/x86_64.
Reported by Thomas Klausner <tk@giga.or.at>.
2008-04-12 Bruno Haible <bruno@clisp.org>
* tests/test-strtod.c: Include isnand.h.
(main): Use isnand instead of isnan.
Reported by Jim Meyering.
2008-04-12 Bruno Haible <bruno@clisp.org>
* m4/isnanf.m4 (gl_ISNANF_WORKS): Add a test for a special NaN.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.
2008-04-12 Jim Meyering <meyering@redhat.com>
* m4/math_h.m4 (gl_MATH_H): Fix typos.
2008-04-12 Bruno Haible <bruno@clisp.org>
* lib/freadptr.c (freadptr) [__EMX__]: Fix wrong assertion.
Reported by Elbert Pol <e.pol@chello.nl>.
2008-04-12 Eric Blake <ebb9@byu.net>
Work around Solaris 10 math.h bug.
* m4/math_h.m4 (gl_MATH_H): Check for bug.
(gl_MATH_H_DEFAULTS): Set up default.
* modules/math (Makefile.am): Replace new indicators.
* lib/math.in.h (NAN, HUGE_VAL): Provide replacements.
* tests/test-math.c (main): Test this.
* m4/strtod.m4 (gl_FUNC_STRTOD): Don't rely on HUGE_VAL.
* doc/posix-headers/math.texi (math.h): Mention bug.
Reported by Nelson H. F. Beebe and Jim Meyering.
2008-04-11 Bruno Haible <bruno@clisp.org>
Adapt to future versions of Apple GCC.
* lib/argp-fmtstream.h (ARGP_FS_EI): Don't test __GNUC_GNU_INLINE__.
Reported by Peter O'Gorman <peter@pogma.com>.
2008-04-11 Bruno Haible <bruno@clisp.org>
* tests/test-getaddrinfo.c (simple): Ignore EAI_NONAME error.
2008-04-11 Bruno Haible <bruno@clisp.org>
* modules/strsignal-tests (Makefile.am): Define test_strsignal_LDADD.
* modules/getaddrinfo-tests (Makefile.am): Define
test_getaddrinfo_LDADD.
2008-04-11 Bruno Haible <bruno@clisp.org>
* lib/strsignal.c (_sys_siglist): Don't declare if already declared.
(init): Fix syntax error.
* m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Check whether _sys_siglist
is declared.
2008-04-11 Bruno Haible <bruno@clisp.org>
* lib/glob.c: Include <stdbool.h>. Needed at least with IRIX cc.
* modules/glob (Depends-on): Add stdbool.
2008-04-11 Bruno Haible <bruno@clisp.org>
* lib/trim.c: Include <string.h>.
2008-04-11 Eric Blake <ebb9@byu.net>
Avoid compile failure on OS/2.
* lib/regex_internal.h (internal_function): Disable optimization
on OS/2 (__EMX__), where it caused compiler error.
Reported by Elbert Pol.
2008-04-11 Bruno Haible <bruno@clisp.org>
Flush the standard error stream before aborting. Needed on mingw.
* tests/test-argmatch.c (ASSERT): Call fflush(stderr) before abort().
* tests/test-array_list.c (ASSERT): Likewise.
* tests/test-array_oset.c (ASSERT): Likewise.
* tests/test-avltree_list.c (ASSERT): Likewise.
* tests/test-avltree_oset.c (ASSERT): Likewise.
* tests/test-avltreehash_list.c (ASSERT): Likewise.
* tests/test-binary-io.c (ASSERT): Likewise.
* tests/test-byteswap.c (ASSERT): Likewise.
* tests/test-c-ctype.c (ASSERT): Likewise.
* tests/test-c-strcasecmp.c (ASSERT): Likewise.
* tests/test-c-strcasestr.c (ASSERT): Likewise.
* tests/test-c-strncasecmp.c (ASSERT): Likewise.
* tests/test-c-strstr.c (ASSERT): Likewise.
* tests/test-canonicalize-lgpl.c (ASSERT): Likewise.
* tests/test-canonicalize.c (ASSERT): Likewise.
* tests/test-carray_list.c (ASSERT): Likewise.
* tests/test-ceilf1.c (ASSERT): Likewise.
* tests/test-ceilf2.c (ASSERT): Likewise.
* tests/test-ceill.c (ASSERT): Likewise.
* tests/test-count-one-bits.c (ASSERT): Likewise.
* tests/test-fbufmode.c (ASSERT): Likewise.
* tests/test-fflush2.c (ASSERT): Likewise.
* tests/test-floorf1.c (ASSERT): Likewise.
* tests/test-floorf2.c (ASSERT): Likewise.
* tests/test-floorl.c (ASSERT): Likewise.
* tests/test-fopen.c (ASSERT): Likewise.
* tests/test-fpending.c (ASSERT): Likewise.
* tests/test-fprintf-posix.c (ASSERT): Likewise.
* tests/test-fpurge.c (ASSERT): Likewise.
* tests/test-freadable.c (ASSERT): Likewise.
* tests/test-freadahead.c (ASSERT): Likewise.
* tests/test-freading.c (ASSERT): Likewise.
* tests/test-freadptr.c (ASSERT): Likewise.
* tests/test-freadptr2.c (ASSERT): Likewise.
* tests/test-freadseek.c (ASSERT): Likewise.
* tests/test-freopen.c (ASSERT): Likewise.
* tests/test-frexp.c (ASSERT): Likewise.
* tests/test-frexpl.c (ASSERT): Likewise.
* tests/test-fseek.c (ASSERT): Likewise.
* tests/test-fseeko.c (ASSERT): Likewise.
* tests/test-fstrcmp.c (ASSERT): Likewise.
* tests/test-ftell.c (ASSERT): Likewise.
* tests/test-ftello.c (ASSERT): Likewise.
* tests/test-func.c (ASSERT): Likewise.
* tests/test-fwritable.c (ASSERT): Likewise.
* tests/test-fwriting.c (ASSERT): Likewise.
* tests/test-getdelim.c (ASSERT): Likewise.
* tests/test-getline.c (ASSERT): Likewise.
* tests/test-i-ring.c (ASSERT): Likewise.
* tests/test-iconv-utf.c (ASSERT): Likewise.
* tests/test-iconv.c (ASSERT): Likewise.
* tests/test-isfinite.c (ASSERT): Likewise.
* tests/test-isnand.c (ASSERT): Likewise.
* tests/test-isnanf.c (ASSERT): Likewise.
* tests/test-isnanl.h (ASSERT): Likewise.
* tests/test-ldexpl.c (ASSERT): Likewise.
* tests/test-linked_list.c (ASSERT): Likewise.
* tests/test-linkedhash_list.c (ASSERT): Likewise.
* tests/test-localename.c (ASSERT): Likewise.
* tests/test-lseek.c (ASSERT): Likewise.
* tests/test-mbscasecmp.c (ASSERT): Likewise.
* tests/test-mbscasestr1.c (ASSERT): Likewise.
* tests/test-mbscasestr2.c (ASSERT): Likewise.
* tests/test-mbscasestr3.c (ASSERT): Likewise.
* tests/test-mbscasestr4.c (ASSERT): Likewise.
* tests/test-mbschr.c (ASSERT): Likewise.
* tests/test-mbscspn.c (ASSERT): Likewise.
* tests/test-mbsncasecmp.c (ASSERT): Likewise.
* tests/test-mbspbrk.c (ASSERT): Likewise.
* tests/test-mbspcasecmp.c (ASSERT): Likewise.
* tests/test-mbsrchr.c (ASSERT): Likewise.
* tests/test-mbsspn.c (ASSERT): Likewise.
* tests/test-mbsstr1.c (ASSERT): Likewise.
* tests/test-mbsstr2.c (ASSERT): Likewise.
* tests/test-mbsstr3.c (ASSERT): Likewise.
* tests/test-memchr2.c (ASSERT): Likewise.
* tests/test-memmem.c (ASSERT): Likewise.
* tests/test-open.c (ASSERT): Likewise.
* tests/test-printf-frexp.c (ASSERT): Likewise.
* tests/test-printf-frexpl.c (ASSERT): Likewise.
* tests/test-printf-posix.c (ASSERT): Likewise.
* tests/test-quotearg.c (ASSERT): Likewise.
* tests/test-rbtree_list.c (ASSERT): Likewise.
* tests/test-rbtree_oset.c (ASSERT): Likewise.
* tests/test-rbtreehash_list.c (ASSERT): Likewise.
* tests/test-round1.c (ASSERT): Likewise.
* tests/test-roundf1.c (ASSERT): Likewise.
* tests/test-roundl.c (ASSERT): Likewise.
* tests/test-signbit.c (ASSERT): Likewise.
* tests/test-sleep.c (ASSERT): Likewise.
* tests/test-snprintf-posix.c (ASSERT): Likewise.
* tests/test-snprintf.c (ASSERT): Likewise.
* tests/test-sprintf-posix.c (ASSERT): Likewise.
* tests/test-stat-time.c (ASSERT): Likewise.
* tests/test-strcasestr.c (ASSERT): Likewise.
* tests/test-strerror.c (ASSERT): Likewise.
* tests/test-striconv.c (ASSERT): Likewise.
* tests/test-striconveh.c (ASSERT): Likewise.
* tests/test-striconveha.c (ASSERT): Likewise.
* tests/test-strsignal.c (ASSERT): Likewise.
* tests/test-strstr.c (ASSERT): Likewise.
* tests/test-strtod.c (ASSERT): Likewise.
* tests/test-trunc1.c (ASSERT): Likewise.
* tests/test-trunc2.c (ASSERT): Likewise.
* tests/test-truncf1.c (ASSERT): Likewise.
* tests/test-truncf2.c (ASSERT): Likewise.
* tests/test-truncl.c (ASSERT): Likewise.
* tests/test-vasnprintf-posix.c (ASSERT): Likewise.
* tests/test-vasnprintf-posix2.c (ASSERT): Likewise.
* tests/test-vasnprintf.c (ASSERT): Likewise.
* tests/test-vasprintf-posix.c (ASSERT): Likewise.
* tests/test-vasprintf.c (ASSERT): Likewise.
* tests/test-vfprintf-posix.c (ASSERT): Likewise.
* tests/test-vprintf-posix.c (ASSERT): Likewise.
* tests/test-vsnprintf-posix.c (ASSERT): Likewise.
* tests/test-vsnprintf.c (ASSERT): Likewise.
* tests/test-vsprintf-posix.c (ASSERT): Likewise.
* tests/test-wcwidth.c (ASSERT): Likewise.
* tests/test-xfprintf-posix.c (ASSERT): Likewise.
* tests/test-xprintf-posix.c (ASSERT): Likewise.
* tests/test-xvasprintf.c (ASSERT): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u16-conv-to-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u32-conv-to-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u8-conv-to-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (ASSERT): Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c (ASSERT): Likewise.
* tests/unictype/test-bidi_byname.c (ASSERT): Likewise.
* tests/unictype/test-bidi_name.c (ASSERT): Likewise.
* tests/unictype/test-bidi_of.c (ASSERT): Likewise.
* tests/unictype/test-bidi_test.c (ASSERT): Likewise.
* tests/unictype/test-block_list.c (ASSERT): Likewise.
* tests/unictype/test-block_of.c (ASSERT): Likewise.
* tests/unictype/test-block_test.c (ASSERT): Likewise.
* tests/unictype/test-categ_and.c (ASSERT): Likewise.
* tests/unictype/test-categ_and_not.c (ASSERT): Likewise.
* tests/unictype/test-categ_byname.c (ASSERT): Likewise.
* tests/unictype/test-categ_name.c (ASSERT): Likewise.
* tests/unictype/test-categ_none.c (ASSERT): Likewise.
* tests/unictype/test-categ_of.c (ASSERT): Likewise.
* tests/unictype/test-categ_or.c (ASSERT): Likewise.
* tests/unictype/test-categ_test_withtable.c (ASSERT): Likewise.
* tests/unictype/test-combining.c (ASSERT): Likewise.
* tests/unictype/test-decdigit.c (ASSERT): Likewise.
* tests/unictype/test-digit.c (ASSERT): Likewise.
* tests/unictype/test-mirror.c (ASSERT): Likewise.
* tests/unictype/test-numeric.c (ASSERT): Likewise.
* tests/unictype/test-pr_byname.c (ASSERT): Likewise.
* tests/unictype/test-pr_test.c (ASSERT): Likewise.
* tests/unictype/test-predicate-part1.h (ASSERT): Likewise.
* tests/unictype/test-scripts.c (ASSERT): Likewise.
* tests/unictype/test-sy_c_ident.c (ASSERT): Likewise.
* tests/unictype/test-sy_java_ident.c (ASSERT): Likewise.
* tests/unistdio/test-u16-asnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vasnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vasnprintf2.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vasnprintf3.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vasprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vsnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u16-vsprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u32-asnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vasnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vasnprintf2.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vasnprintf3.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vasprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vsnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u32-vsprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u8-asnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vasnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vasnprintf2.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vasnprintf3.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vasprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vsnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-u8-vsprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-asnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vasnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vasnprintf2.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vasnprintf3.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vasprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vsnprintf1.c (ASSERT): Likewise.
* tests/unistdio/test-ulc-vsprintf1.c (ASSERT): Likewise.
* tests/uniwidth/test-u16-strwidth.c (ASSERT): Likewise.
* tests/uniwidth/test-u16-width.c (ASSERT): Likewise.
* tests/uniwidth/test-u32-strwidth.c (ASSERT): Likewise.
* tests/uniwidth/test-u32-width.c (ASSERT): Likewise.
* tests/uniwidth/test-u8-strwidth.c (ASSERT): Likewise.
* tests/uniwidth/test-u8-width.c (ASSERT): Likewise.
* tests/uniwidth/test-uc_width.c (ASSERT): Likewise.
Reported by Eric Blake.
2008-04-11 Bruno Haible <bruno@clisp.org>
* lib/wchar.in.h: Tweak comment.
2008-04-11 Bruno Haible <bruno@clisp.org>
Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
* gnulib-tool (func_emit_initmacro_start): Emit an invocation of
gl_COMMON.
* m4/gnulib-common.m4 (gl_COMMON, gl_COMMON_BODY): New macros.
2008-04-11 Bruno Haible <bruno@clisp.org>
* modules/git-merge-changelog (git_merge_changelog_LDADD): Add LIBINTL.
2008-04-11 Simon Josefsson <simon@josefsson.org>
* lib/gc-gnulib.c: On Windows, use CryptGenRandom from CSP instead
of attempting to use nonexistent /dev/*random. Based on patch
from Adam Strzelecki <ono@java.pl> in
<http://lists.gnu.org/r/help-gsasl/2008-02/msg00000.html>.
2008-04-08 Bruno Haible <bruno@clisp.org>
Add tentative support for emx+gcc.
* lib/fbufmode.c (fbufmode) [__EMX__]: Add conditional code.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* m4/fpending.m4 (gl_FUNC_FPENDING): Add a variant for emx+gcc.
2008-04-09 Eric Blake <ebb9@byu.net>
Avoid some autoconf warnings.
* m4/regex.m4 (gl_REGEX): s/AC_HELP_STRING/AS_HELP_STRING/.
* m4/acl.m4 (gl_FUNC_ACL): Likewise.
* m4/afs.m4 (gl_AFS): Likewise.
* m4/gc-random.m4 (gl_GC_RANDOM): Likewise.
* m4/include_next.m4 (gl_INCLUDE_NEXT): s/AC_FOREACH/m4_foreach_w/.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
* m4/stdint.m4 (gl_STDINT_BITSIZEOF, gl_CHECK_TYPES_SIGNED)
(gl_INTEGER_TYPE_SUFFIX): Likewise.
* m4/onceonly_2_57.m4 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE)
(AC_CHECK_DECLS_ONCE): Likewise.
Rename file...
* m4/onceonly.m4: ...to this, and delete 2.54 variant, now that
gnulib-tool requires autoconf 2.59 or better.
* gnulib-tool (func_get_filelist): s/\(onceonly\)_2_57.m4/\1.m4/.
2008-04-08 Eric Blake <ebb9@byu.net>
Use 'git describe --match' if present (added in git 1.5.5).
* build-aux/git-version-gen: Limit result to tags that match 'v*'
if possible.
2008-04-08 Bruno Haible <bruno@clisp.org>
Add tentative support for OpenServer.
* lib/fbufmode.c (fbufmode): Add conditional define for _flag, _base,
_ptr, _cnt.
* lib/fpurge.c (fpurge): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/freadahead.c (freadahead): Likewise.
* lib/freading.c (freading): Likewise.
* lib/freadptr.c (freadptr): Likewise.
* lib/freadseek.c (freadptrinc): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/fwriting.c (fwriting): Likewise.
Reported by Roger Cornelius <rac@tenzing.org> and
Brian K. White <brian@aljex.com>.
2008-04-06 Jim Meyering <meyering@redhat.com>
* gnulib-tool (func_add_or_update): s/backuped/backed up/ in diagnostic
2008-04-06 Bruno Haible <bruno@clisp.org>
Avoid possible error with non-ASCII bytes in UTF-8 locales.
* tests/test-fprintf-posix.sh: Use "LC_ALL=C tr" instead of "tr".
* tests/test-printf-posix.sh: Likewise.
* tests/test-vfprintf-posix.sh: Likewise.
* tests/test-vprintf-posix.sh: Likewise.
* tests/test-xprintf-posix.sh: Likewise.
2008-04-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/double-slash-root.m4 (gl_DOUBLE_SLASH_ROOT): Fix quoting,
hide error from 'ls', needed on OS/2.
Report by Elbert Pol <elbert.pol@gmail.com>.
2008-04-04 Eric Blake <ebb9@byu.net>
Make test-fseeko.c failures meaningful.
* tests/test-fseeko.c: Print line number on failure.
* tests/test-fseek.c: Likewise.
Reported by Nelson H. F. Beebe.
Improve strtod bug detection check.
* m4/strtod.m4 (gl_FUNC_STRTOD): Also check for hex-float parsing,
required for Solaris 10.
Reported by Bob Friesenhahn and Nelson H. F. Beebe.
2008-04-04 Bruno Haible <bruno@clisp.org>
* modules/relocatable-prog-wrapper (Files): Add m4/environ.m4. Needed
by m4/setenv.m4.
2008-04-03 Eric Blake <ebb9@byu.net>
Ensure sane .version contents.
* top/GNUmakefile (_dummy): Also delete .version when rebuilding
version string.
* build-aux/git-version-gen: Improve documentation.
Make GNU make output nicer.
* top/GNUmakefile [!_have-Makefile]: Add dependency on
MAKECMDGOALS to enforce message for all command line targets. Set
srcdir for use in maint.mk.
Another maintainer tweak.
* top/GNUmakefile (_is-dist-target): Allow maintainer-distcheck as
a target that regenerates version.
2008-04-03 Jim Meyering <meyering@redhat.com>
vc-list-files: don't cause coreutils "make po-check" failure
* build-aux/vc-list-files: Skip postprocessing when $2 is '.'
2008-04-03 Eric Blake <ebb9@byu.net>
Allow VPATH usage of vc-list-files.
* build-aux/vc-list-files (scriptversion): Add timestamp.
(options): Add --help, --version, -C.
(CVS): Support installed cvsu.
2008-04-02 Bruno Haible <bruno@clisp.org>
Avoid some "statement with no effect" warnings from gcc.
* tests/test-wctype.c (main): Explicitly ignore unused values.
Reported by Jim Meyering.
2008-04-02 Jim Meyering <meyering@redhat.com>
Avoid some warnings from "gcc -Wshadow".
* tests/test-frexp.c (exp): Define to a different identifier.
* tests/test-frexpl.c (exp): Likewise.
2008-04-03 Jim Meyering <meyering@redhat.com>
bootstrap: remove dangling *.[ch] symlinks from lib
* build-aux/bootstrap [dangling symlink removal]: Move find's
-depth option to precede all others, to avoid a warning.
Remove *.[ch] files too, and from "$source_base" (usually lib/).
2008-04-02 Bruno Haible <bruno@clisp.org>
Avoid some warnings from "gcc -Wshadow".
* tests/tests-vfprintf-posix.c (my_fprintf): Move after test_function.
* tests/tests-vprintf-posix.c (my_printf): Move after test_function.
* tests/tests-vsnprintf-posix.c (my_snprintf): Move after test_function.
* tests/tests-vsprintf-posix.c (my_sprintf): Move after test_function.
Reported by Jim Meyering.
2008-04-01 Bruno Haible <bruno@clisp.org>
Fix test to work on IRIX 6.5 with cc.
* tests/test-math.c (numeric_equal): New function.
(main): Use it.
2008-04-01 Bruno Haible <bruno@clisp.org>
* doc/posix-headers/math.texi: Refine documentation of NAN problem.
2008-04-01 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c: Include nan.h instead of <math.h>.
(test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L.
* modules/vasnprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* tests/test-vasprintf-posix.c: Include nan.h instead of <math.h>.
(test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L.
* modules/vasprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* tests/test-snprintf-posix.h: Include nan.h instead of <math.h>.
(test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L.
* modules/snprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* modules/vsnprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* tests/test-sprintf-posix.h: Include nan.h instead of <math.h>.
(test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L.
* modules/sprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* modules/vsprintf-posix-tests (Files): Add tests/nan.h.
(Depends-on): Remove math.
* tests/test-round1.c: Include nan.h.
(main): Use NaNd instead of NAN.
* modules/round-tests (Files): Add tests/nan.h.
* tests/test-trunc1.c: Include nan.h.
(main): Use NaNd instead of NAN.
* modules/trunc-tests (Files): Add tests/nan.h.
* tests/test-roundf1.c: Include nan.h.
(main): Use NaNf instead of NAN.
* modules/roundf-tests (Files): Add tests/nan.h.
* tests/test-truncf1.c: Include nan.h.
(main): Use NaNf instead of NAN.
* modules/truncf-tests (Files): Add tests/nan.h.
* tests/test-ceilf1.c: Include nan.h.
(main): Use NaNf instead of NAN.
* modules/ceilf-tests (Files): Add tests/nan.h.
* tests/test-floorf1.c: Include nan.h.
(main): Use NaNf instead of NAN.
* modules/floorf-tests (Files): Add tests/nan.h.
* tests/test-isnanf.c: Include nan.h instead of <math.h>.
(main): Use NaNf instead of NAN.
* modules/isnanf-nolibm-tests (Files): Add tests/nan.h.
* tests/test-isnand.c: Include nan.h instead of <math.h>.
(main): Use NaNd instead of NAN.
* modules/isnand-nolibm-tests (Files): Add tests/nan.h.
* tests/test-frexp.c: Include nan.h.
(main): Use NaNd instead of NAN.
* modules/frexp-tests (Files): Add tests/nan.h.
* lib/isnan.c: Don't include <math.h>.
(FUNC): Don't use NAN macro.
* modules/isnand-nolibm (Depends-on): Remove math.
* modules/isnanf-nolibm (Depends-on): Remove math.
* modules/isnanl (Depends-on): Remove math.
* modules/isnanl-nolibm (Depends-on): Remove math.
* tests/nan.h: New file.
2008-04-01 Eric Blake <ebb9@byu.net>
Fix typos.
* tests/test-strtod.c (main): s/FLT_/DBL_/ for minimum and epsilon
values to be the right type.
For now, cater to gnulib strtod inaccuracies.
* tests/test-strtod.c (main): Allow 1-ulp error on expected
fractional results. While not as nice from a QoI perspective, it
is a quicker patch than correctly implementing decimal to binary
rounding.
2008-03-31 Eric Blake <ebb9@byu.net>
Guarantee a definition of NAN.
* lib/math.in.h (NAN): Define if missing.
* tests/test-math.c (main): Test it.
* doc/posix-headers/math.texi (math.h): Document this.
* lib/isnan.c (rpl_isnand): Use it.
* tests/test-ceilf1.c (NaN): Delete, and use NAN instead.
* tests/test-floorf1.c (NaN): Likewise.
* tests/test-frexp.c (NaN): Likewise.
* tests/test-isnand.c (NaN): Likewise.
* tests/test-isnanf.c (NaN): Likewise.
* tests/test-round1.c (NaN): Likewise.
* tests/test-roundf1.c (NaN): Likewise.
* tests/test-snprintf-posix.h (NaN): Likewise.
* tests/test-sprintf-posix.h (NaN): Likewise.
* tests/test-trunc1.c (NaN): Likewise.
* tests/test-truncf1.c (NaN): Likewise.
* tests/test-vasnprintf-posix.c (NaN): Likewise.
* tests/test-vasprintf-posix.c (NaN): Likewise.
* modules/isnand-nolibm (Depends-on): Add math.
* modules/isnanf-nolibm (Depends-on): Likewise.
* modules/isnanl (Depends-on): Likewise.
* modules/isnanl-nolibm (Depends-on): Likewise.
* modules/snprintf-posix-tests (Depends-on): Likewise.
* modules/sprintf-posix-tests (Depends-on): Likewise.
* modules/vsnprintf-posix-tests (Depends-on): Likewise.
* modules/vsprintf-posix-tests (Depends-on): Likewise.
* modules/vasnprintf-posix-tests (Depends-on): Likewise.
* modules/vasprintf-posix-tests (Depends-on): Likewise.
2008-03-31 Bruno Haible <bruno@clisp.org>
* tests/test-strtod.c (main): Update results for OSF/1 platforms.
* doc/posix-functions/strtod.texi: Likewise.
2008-03-31 Bruno Haible <bruno@clisp.org>
* tests/test-strtod.c (main): Don't use C99 syntax.
2008-03-31 Bruno Haible <bruno@clisp.org>
* tests/test-strtod.c (main): Don't test NAN macro. Needed for Solaris.
Reported by Eric Blake.
2008-03-31 Jim Meyering <meyering@redhat.com>
Don't compare actual signbit return values.
* tests/test-strtod.c (main): Rather, compare only their
zero/non-zero nature.
2008-03-31 Eric Blake <ebb9@byu.net>
More strtod documentation.
* doc/posix-functions/strtod.texi (strtod): Interpret more test
failures as distinct bugs.
2008-03-30 Paul Eggert <eggert@cs.ucla.edu>
* lib/wchar.in.h [defined __need_mbstate_t]: Just include <wchar.h>.
Problem reported by Erik Benada in
<http://lists.gnu.org/r/bug-gnulib/2008-03/msg00249.html>.
2008-03-30 Bruno Haible <bruno@clisp.org>
* tests/test-strtod.c: Add comments about which assertion fails on which
platform.
* doc/posix-functions/strtod.texi: Add info about many more platforms.
2008-03-30 Eric Blake <ebb9@byu.net>
Test signbit behavior on zeros.
* tests/test-signbit.c (test_signbitf): Add tests for zero.
(test_signbitd, test_signbitl): Likewise.
More strtod touchups.
* tests/test-strtod.c (main): Ignore tests for signbit on NaN, and
sign of negative underflow, for now. Use .5, not .1.
* doc/posix-functions/strtod.texi (strtod): Mention these
limitations.
Reported by Jim Meyering.
2008-03-30 Bruno Haible <bruno@clisp.org>
* lib/striconveh.h (mem_iconveh, str_iconveh): Optimize the conversion
from UTF-8 to UTF-8//TRANSLIT in the same way as from UTF-8 to UTF-8.
2008-03-30 Bruno Haible <bruno@clisp.org>
Avoid failure when attempting to return empty iconv results on some
platforms.
* lib/striconveh.c (mem_cd_iconveh_internal): In the final memory
allocation, don't report ENOMEM when the resulting string is empty.
2008-03-30 Bruno Haible <bruno@clisp.org>
Fix buffer overrun.
* lib/vasnprintf.c (VASNPRINTF): If !USE_SNPRINTF && pad_ourselves:
Don't consider the width for tmp_length. Check count against tmp_length
before doing the padding. Ensure enough allocation during padding.
2008-03-30 Eric Blake <ebb9@byu.net>
strtod touchups.
* lib/strtod.c (strtod): Avoid compiler warnings.
Reported by Jim Meyering.
2008-03-30 Bruno Haible <bruno@clisp.org>
* lib/unistdio/u-vsprintf.h (EOVERFLOW): Remove fallback.
* modules/unistdio/ulc-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-u8-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-u16-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-vsprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-u32-vsprintf (Depends-on): Add EOVERFLOW.
* lib/unistdio/u-vsnprintf.h (EOVERFLOW): Remove fallback.
* modules/unistdio/ulc-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-u8-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-u16-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-vsnprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-u32-vsnprintf (Depends-on): Add EOVERFLOW.
* lib/unistdio/u-vasprintf.h (EOVERFLOW): Remove fallback.
* modules/unistdio/ulc-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-u8-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-u16-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-vasprintf (Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-u32-vasprintf (Depends-on): Add EOVERFLOW.
* lib/unistdio/ulc-vfprintf.c (EOVERFLOW): Remove fallback.
* modules/unistdio/ulc-vfprintf (Depends-on): Add EOVERFLOW.
* lib/unistdio/ulc-fprintf.c (EOVERFLOW): Remove fallback.
* modules/unistdio/ulc-fprintf (Depends-on): Add EOVERFLOW.
* lib/xvasprintf.c (EOVERFLOW): Remove fallback.
* modules/xvasprintf (Depends-on): Add EOVERFLOW.
* lib/vsprintf.c (EOVERFLOW): Remove fallback.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/vsprintf-posix (Depends-on): Add EOVERFLOW.
* lib/vsnprintf.c (EOVERFLOW): Remove fallback.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/vsnprintf (Depends-on): Add EOVERFLOW.
* lib/vfprintf.c (EOVERFLOW): Remove fallback.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/vfprintf-posix (Depends-on): Add EOVERFLOW.
* lib/vasprintf.c (EOVERFLOW): Remove fallback.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/vasprintf (Depends-on): Add EOVERFLOW.
* lib/vasnprintf.c (EOVERFLOW): Remove fallback.
* m4/vasnprintf.m4 (gl_FUNC_VASNPRINTF): Drop gl_EOVERFLOW.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/ulc-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u8-u8-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u16-u16-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* modules/unistdio/u32-u32-vasnprintf (Files): Remove m4/eoverflow.m4.
(Depends-on): Add EOVERFLOW.
* lib/sprintf.c (EOVERFLOW): Remove fallback.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/sprintf-posix (Depends-on): Add EOVERFLOW.
* lib/snprintf.c (EOVERFLOW): Remove fallback.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/snprintf (Depends-on): Add EOVERFLOW.
* lib/poll.c (EOVERFLOW): Remove fallback.
* modules/poll (Depends-on): Add EOVERFLOW.
* lib/getugroups.c (EOVERFLOW): Remove fallback.
* modules/getugroups (Depends-on): Add EOVERFLOW.
* lib/getdelim.c (EOVERFLOW): Remove fallback.
* modules/getdelim (Depends-on): Add EOVERFLOW.
* lib/ftell.c (EOVERFLOW): Remove fallback.
* modules/ftell (Depends-on): Add EOVERFLOW.
* lib/fprintf.c (EOVERFLOW): Remove fallback.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Drop gl_EOVERFLOW.
* modules/fprintf-posix (Depends-on): Add EOVERFLOW.
* lib/c-stack.c (EOVERFLOW): Remove unused fallback.
* modules/EOVERFLOW-tests: New file.
* tests/test-EOVERFLOW.c: New file.
* modules/EOVERFLOW: New file.
* doc/posix-headers/errno.texi: Mention EOVERFLOW portability problem.
2008-03-30 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2007-06-10.
* lib/vasnprintf.c (VASNPRINTF): When performing zero-padding, use
spaces instead of 0 digits for 's' also when ENABLE_UNISTDIO.
2008-03-30 Bruno Haible <bruno@clisp.org>
Improve freadseek's efficiency after ungetc.
* lib/freadseek.c: Include freadahead.h.
(freadptrinc): New function, extracted from freadseek.
(freadseek): Use it in a loop. Use freadahead to determine the number
of loop iterations.
* modules/freadseek (Depends-on): Add freadahead.
(configure.ac): Require AC_C_INLINE.
2008-03-30 Bruno Haible <bruno@clisp.org>
* lib/freadseek.c (freadseek): Don't ignore the return value of
freadptr.
2008-03-29 Eric Blake <ebb9@byu.net>
Add hex float support.
* modules/strtod (Depends-on): Add c-ctype.
(Link): Mention POW_LIB.
* lib/strtod.c (strtod): Recognize hex floats. Don't allow
whitespace between 'e' and exponent.
* tests/test-strtod.c (main): Enable hex float tests.
* doc/posix-functions/strtod.texi (strtod): Document what gnulib
now provides.
Document various strtod bugs, with some fixes.
* doc/posix-functions/strtod.texi (strtod): Document bugs with
"-0x", "inf", "nan", and hex constants.
* doc/posix-functions/atof.texi (atof): Likewise.
* modules/stdlib (Makefile.am): Support strtod.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Fit in stdlib framework, and
detect additional strtod bugs.
* lib/stdlib.in.h (rpl_strtod): Add declarations.
* lib/strtod.c (strtod): Return -0.0 on negative underflow. Use
bool where appropriate. Parse 'inf' and 'nan'.
* tests/test-strtod.c: New file.
* modules/strtod (Depends-on): Add stdbool, stdlib.
(configure.ac): Turn on module indicator.
* modules/strtod-tests: New module.
2008-03-29 Eric Blake <ebb9@byu.net>
Fix ftell on mingw.
* lib/ftell.c (EOVERFLOW): Define if the system lacks it.
* modules/ftell-tests (Depends-on): Add binary-io.
* modules/ftello-tests (Depends-on): Likewise.
* tests/test-ftell.c (main): Enhance test to cover behavior after
ungetc. Enforce binary mode.
* tests/test-ftello.c (main): Likewise.
Pass test-freadseek on cygwin.
* modules/freadseek (Depends-on): Use freadptr, not freadahead.
* lib/freadseek.c (freadseek): Don't increment beyond bounds of
ungetc buffer.
* tests/test-fflush2.c (main): Fix typo.
2008-03-29 Bruno Haible <bruno@clisp.org>
* tests/test-fflush2.c (main): Temporarily disable the contents of
this test.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Add a TODO.
Reported by Eric Blake.
2008-03-28 Simon Josefsson <simon@josefsson.org>
* lib/gc.h (enum Gc_hash): Add GC_SHA224.
(GC_SHA224_DIGEST_SIZE): Add.
* lib/gc-libgcrypt.c (gc_hash_open): Handle SHA-224.
(gc_hash_digest_length): Likewise.
(gc_hash_buffer): Likewise.
2008-03-25 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (gettextize and autopoint): Explain in more
detail which gettext release to use.
Reported by Simon Josefsson.
2008-03-26 Jim Meyering <meyering@redhat.com>
gnumakefile: remove file from $(top_builddir), not from $(top_srcdir)
* modules/gnumakefile (clean-GNUmakefile): Also, use
test ... && ... || : syntax rather than if-then ... fi.
gnumakefile: Don't double-quote-expand $(VPATH) value.
* modules/gnumakefile (clean-GNUmakefile): Use single quotes.
2008-03-24 Eric Blake <ebb9@byu.net>
Alter GNUmakefile to install into top directory.
* modules/maintainer-makefile: Split, and add dependency...
* modules/gnumakefile: to this new module.
* build-aux/GNUmakefile: Move...
* top/GNUmakefile: ...here.
* build-aux/maint.mk: Move...
* top/maint.mk: ...here.
* MODULES.html.sh (Support for maintaining...): Document new
module.
2008-03-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New options --vc-files, --no-vc-files.
(func_usage): Document them.
(vc_files): New variable.
(func_import): Consider vc_files.
(func_create_testdir): Set vc_files to empty.
Suggested by Jim Meyering and Karl Berry.
2008-03-23 Bruno Haible <bruno@clisp.org>
Fix regex compilation error on HP-UX 11.
* m4/regex.m4 (gl_PREREQ_REGEX): Require AC_TYPE_MBSTATE_T.
* modules/regex (Files): Add m4/mbstate_t.m4.
Reported by Ton Voon <ton.voon@altinity.com>.
2008-03-23 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (gettextize and autopoint): New section.
2008-03-23 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
Install files from top/ in the destination directory.
* gnulib-tool (func_get_automake_snippet): Synthesize an EXTRA_DIST
augmentation also for the files from top/.
(func_import, func_create_testdir): Rewrite file names:
top/filename -> filename.
2008-03-23 Bruno Haible <bruno@clisp.org>
Tweak "gnulib --version" output.
* gnulib-tool (func_version): Replace "-dirty" suffix with "-modified".
2008-03-23 Bruno Haible <bruno@clisp.org>
Tweak "gnulib --version" output.
* gnulib-tool (func_version): Use date of last commit to ChangeLog,
rather than contents of ChangeLog, when possible.
2008-03-21 Eric Blake <ebb9@byu.net>
More --version tweaks.
* gnulib-tool (func_version): Obey GNU Coding Standards. Output
date of last ChangeLog entry.
2008-03-21 Jim Meyering <meyering@redhat.com>
* build-aux/GNUmakefile (_have-git-version-gen): Split long line.
2008-03-20 Eric Blake <ebb9@byu.net>
VPATH fix.
* build-aux/GNUmakefile (_have_git-version-gen): Look in correct dir.
2008-03-20 Simon Josefsson <simon@josefsson.org>
* build-aux/GNUmakefile: Make git-version-gen optional. Add
_build-aux variable. Suggested by Eric Blake <ebb9@byu.net>.
2008-03-20 Eric Blake <ebb9@byu.net>
Sync GNUmakefile with coreutils.
* build-aux/GNUmakefile (have-Makefile): Rename...
(_have-Makefile): ...to this, for namespace consideration.
(GNUmakefile.cfg): Include, if present.
(_autoreconf): Define a default.
(_is-dist-target): New rule for rebuilds to pick up intra-release
version.
(maint-cfg.mk): Rename...
(cfg.mk): ...to this.
2008-03-18 Jim Meyering <meyering@redhat.com>
New script and module: mktempd
* MODULES.html.sh (maint+release support): Add mktempd.
* build-aux/mktempd: New file.
* modules/mktempd: New file.
2008-03-15 Jim Meyering <meyering@redhat.com>
Undo last change.
* lib/sha1.c, lib/md5.c: 63 != ~63.
Reported by Andreas Schwab.
sha1.c, md5.c: Hoist a redundant expression.
* lib/sha1.c (sha1_process_bytes): AND-off the low bits in
"ctx->buflen" only once, before calling *_process_block.
* lib/md5.c (md5_process_bytes): Likewise.
2008-03-14 Eric Blake <ebb9@byu.net>
Bump copyright year in files generated by gnulib-tool.
* gnulib-tool (func_emit_copyright_notice): Extract copyright from
gnulib-tool, rather than hard-coding it.
Fix 'gnulib-tool --version' output to work with git.
* gnulib-tool (func_gnulib_dir): New function, extracted from...
(startup): ...here.
(func_version): Use it to invoke git-version-gen, rather than
relying on CVS keyword expansion. Modernize wording.
(cvsdatestamp, last_checkin_date, version): Kill unused
variables.
2008-03-12 Jim Meyering <meyering@redhat.com>
Recognize optional cast of the argument to free.
* build-aux/useless-if-before-free: Update regexps.
* build-aux/bootstrap (gnulib_tool): Remove trailing blanks.
2008-03-11 Bruno Haible <bruno@clisp.org>
Extend AC_LIB_LINKFLAGS to the situation of several libraries provided
by a single package.
* m4/lib-link.m4 (AC_LIB_FROMPACKAGE): New macro.
(AC_LIB_LINKFLAGS_BODY): Use the information stored by
AC_LIB_FROMPACKAGE. Use AC_ARG_WITH instead of AC_LIB_ARG_WITH.
Reported by Sam Steingold <sds@gnu.org>.
2008-03-12 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap (version_controlled_file): Adapt for SVN
repositories.
2008-03-11 Bruno Haible <bruno@clisp.org>
Avoid conflicts between local macro definitions.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS,
AC_LIB_LINKFLAGS_BODY): Use pushdef/popdef instead of define/undefine.
2008-03-10 Peter O'Gorman <bug-gnulib@mlists.thewrittenword.com>
Bruno Haible <bruno@clisp.org>
Make va_copy work with some version of xlc on AIX 5.1.
* lib/stdarg.in.h: New file.
* m4/stdarg.m4 (gl_STDARG_H): Initialize STDARG_H and NEXT_STDARG_H.
On AIX, use a <stdarg.h> file substitute.
* modules/stdarg (Files): Add lib/stdarg.in.h.
(Depends-on): Add include_next.
(Makefile.am): Build a stdarg.h substitute if requested.
* doc/posix-functions/va_copy.texi: Document the platforms lacking it.
2008-03-10 Bruno Haible <bruno@clisp.org>
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Document a restriction.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
Reported by Peter O'Gorman <bug-gnulib@mlists.thewrittenword.com>.
2008-03-10 Bruno Haible <bruno@clisp.org>
* modules/stdlib (Depends-on): Add include_next, remove
absolute-header.
2008-03-09 Bruno Haible <bruno@clisp.org>
* lib/freadahead.h (freadahead): Document more precisely.
* lib/freadahead.c (freadahead): When an ungetc is in effect, return
the sum of both buffer sizes.
* tests/test-freadahead.c (main): Also test behaviour after ungetc.
* NEWS: Document the change.
2008-03-09 Bruno Haible <bruno@clisp.org>
Extend freadptr to return also the buffer size.
* lib/freadptr.h (freadptr): Add sizep argument.
* lib/freadptr.c: Include freadptr.h, not freadahead.h.
(freadptr): Add sizep argument. Determine buffer size like freadahead
does.
* tests/test-freadptr.c: Don't include freadahead.h.
(main): Adapt for new calling convention of freadptr.
* tests/test-freadptr2.c: New file, based on tests/test-freadahead.c.
* tests/test-freadptr2.sh: New file, based on tests/test-freadahead.sh.
* modules/freadptr-tests (Files): Add tests/test-freadptr2.c,
tests/test-freadptr2.sh.
(Depends): Remove freadahead.
(TESTS): Add test-freadptr2.sh.
(check_PROGRAMS): Add test-freadptr2.
2008-03-09 Bruno Haible <bruno@clisp.org>
* doc/Makefile (%.pdf): Explain how to remedy the save_size error.
Report and solution by Simon Josefsson.
2008-03-06 Bruno Haible <bruno@clisp.org>
Make fflush after ungetc work on BSD platforms.
* lib/fflush.c (rpl_fflush): Discard ungetc buffer if possible.
* tests/test-fflush2.c: New file.
* tests/test-fflush2.sh: New file.
* modules/fflush-tests (Files): Add tests/test-fflush2.sh,
tests/test-fflush2.c.
(Makefile.am): Build test-fflush2 and run test-fflush2.sh.
* doc/posix-functions/fflush.texi: Document fflush after ungetc bug.
2008-03-06 Eric Blake <ebb9@byu.net>
Likewise for ftello.
* modules/ftello (Dependencies): Add extensions.
* m4/ftello.m4 (gl_FUNC_FTELLO): Require AC_USE_SYSTEM_EXTENSIONS.
2008-03-06 Bruno Haible <bruno@clisp.org>
* modules/fseeko (Dependencies): Add extensions.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Require AC_USE_SYSTEM_EXTENSIONS.
Needed on glibc systems.
2008-03-06 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (@nosuchmodulenote): Avoid line break inside
email address.
Reported by Thien-Thi Nguyen <ttn@gnuvola.org>.
2008-03-06 Bruno Haible <bruno@clisp.org>
* users.txt: Add libgnupdf.
2008-03-06 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
* doc/gnulib-tool.texi (@nosuchmodulenote): New macro.
(Header File Substitutes, Function Substitutes,
Glibc Header File Substitutes, Glibc Function Substitutes): Use it.
(Build robot for gnulib): Fix typo.
2008-03-06 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (VCS Issues): Small updates.
Reported by Thien-Thi Nguyen <ttn@gnuvola.org>.
2008-03-06 Bruno Haible <bruno@clisp.org>
* doc/func.texi: New file, extracted from doc/gnulib.texi.
* doc/gnulib.texi: Include it.
2008-03-06 Simon Josefsson <simon@josefsson.org>
* modules/func (License): Change license to unlimited; there was
no LGPL parts in the module anyway.
2008-03-06 Simon Josefsson <simon@josefsson.org>
* modules/__func__: Renamed to modules/func.
* modules/__func__-tests: Renamed to modules/func-tests.
* tests/test-__func__.c: Renamed to tests/test-func.c.
* m4/__func__.m4: Renamed to m4/func.m4.
* doc/gnulib.texi (__func__): Section renamed to func.
Suggested by Eric Blake <ebb9@byu.net>.
2008-03-06 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (__func__): Use C99 terminology when talking
about __func__. Make example self-contained. Suggested by Eric
Blake <ebb9@byu.net>.
* tests/test-__func__.c (main): Avoid extraneous () around __func.
Suggested by Eric Blake <ebb9@byu.net>.
2008-03-06 Simon Josefsson <simon@josefsson.org>
* modules/__func__: New file.
* modules/__func__-tests: New file.
* tests/test-__func__.c: New file.
* m4/__func__.m4: New file.
* doc/gnulib.texi (__func__): Document __func__ module.
2008-03-05 Simon Josefsson <simon@josefsson.org>
* modules/byteswap (License): Re-license as LGPLv2+.
2008-03-05 Simon Josefsson <simon@josefsson.org>
* doc/Makefile: Add pdf target.
2008-03-05 Simon Josefsson <simon@josefsson.org>
* modules/inline (License): Use 'unlimited', since there are only
*.m4 files in this module.
2008-03-03 John E. Malmberg <wb8tyw@qsl.net> (tiny change)
Bruno Haible <bruno@clisp.org>
Add support for HP C 7.1 on OpenVMS 8.3.
* lib/alloca.in.h (alloca): Define as alias for DEC C on VMS.
2008-03-03 John E. Malmberg <wb8tyw@qsl.net> (tiny change)
Update VMS specifics.
* lib/getopt.c [VMS]: Remove include of unixlib.h.
2008-03-02 Jim Meyering <meyering@redhat.com>
Remove the last dependency on the "free" module.
* m4/readutmp.m4 (gl_READUTMP): Don't require gl_FUNC_FREE.
Reported by Bob Proulx.
* lib/getdelim.c (getdelim): Don't leak memory upon failed realloc.
Remove useless "if" tests before free. Deprecate "free" module.
* doc/posix-functions/free.texi: Mention that this
module is no longer useful.
* modules/free (Notice): Say this module is obsolete.
* modules/readutmp (Depends-on): Remove free.
* lib/save-cwd.c (free_cwd): Remove useless "if" before free.
* lib/putenv.c (putenv): Likewise.
* lib/gc-gnulib.c (gc_cipher_close): Likewise.
* lib/getaddrinfo.c (freeaddrinfo): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-mbscasestr1.c (main): Likewise.
* tests/test-mbscasestr2.c (main): Likewise.
* tests/test-mbsstr1.c (main): Likewise.
* tests/test-mbsstr2.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-striconv.c (main): Likewise.
* tests/test-striconveh.c (main): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
* build-aux/git-version-gen: Adjust a comment and the Usage string.
bootstrap: sync from coreutils again
* build-aux/bootstrap: Remove dangling m4/*.m4 symlinks.
2008-03-01 Jim Meyering <meyering@redhat.com>
bootstrap: sync from coreutils
* build-aux/bootstrap (update_po_files): Copy a .po file into place
also when the target doesn't exist.
2008-03-01 Eric Blake <ebb9@byu.net>
Fix bugs in last patch.
* lib/memchr2.c (memchr2): Fix typo.
* tests/test-memchr2.c: Test previous bug, and don't use GNU
extension.
Reported by Bruce Korb.
New module 'memchr2'.
* modules/memchr2: New file.
* modules/memchr2-tests: Likewise.
* lib/memchr2.h: Likewise.
* lib/memchr2.c: Likewise, based on memchr.c.
* tests/test-memchr2.c: New test.
* MODULES.html.sh (String handling): Add memchr2.
2008-02-29 Bruno Haible <bruno@clisp.org>
* modules/freadseek-tests: New file.
* tests/test-freadseek.sh: New file.
* tests/test-freadseek.c: New file.
New module 'freadseek'.
* modules/freadseek: New file.
* lib/freadseek.h: New file.
* lib/freadseek.c: New file.
* MODULES.html.sh (File stream based Input/Output): Add freadseek.
2008-02-29 Sergey Poznyakoff <gray@gnu.org.ua>
* users.txt: Add anubis, cpio, mailfromd, mailutils, radius,
wydawca.
* m4/argp.m4 (gl_ARGP): Use AC_TRY_LINK to test if
program_invocation_name and program_invocation_short_name are
present.
2008-02-28 Bruno Haible <bruno@clisp.org>
* tests/test-freadptr.c: Add a test for behaviour after ungetc.
* tests/test-freadptr.sh: Also test non-seekable stdin.
2008-02-28 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap (source_base, m4_base)
(doc_base, tests_base): New variables.
(gnulib_tool_options): Do not hardcode base directories, use
the above variables instead.
2008-02-28 Atsushi SAKAI <sakaia@jp.fujitsu.com>
* lib/xsize.h: Fix typo in comment: s/tupe/type/.
2008-02-28 Bruno Haible <bruno@clisp.org>
* modules/freadptr-tests: New file.
* tests/test-freadptr.sh: New file.
* tests/test-freadptr.c: New file.
New module 'freadptr'.
* modules/freadptr: New file.
* lib/freadptr.h: New file.
* lib/freadptr.c: New file.
* MODULES.html.sh (File stream based Input/Output): Add freadptr.
2008-02-26 Karl Berry <karl@freefriends.org>
Sync from Libtool:
* libltdl/argz.c (argz_add, argz_count): New functions.
* libltdl/argz.in.h: Declare them.
Report by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
2008-02-22 Bruno Haible <bruno@clisp.org>
* m4/time_r.m4 (gl_TIME_R): Also check that localtime_r's return type
is a pointer type. Needed for HP-UX 10.
* doc/posix-functions/localtime_r.texi: Mention HP-UX 10.
* doc/posix-functions/gmtime_r.texi: Likewise.
Reported by Peter O'Gorman <bug-gnulib@mlists.thewrittenword.com>.
2008-02-24 Bruno Haible <bruno@clisp.org>
* modules/environ-tests: New file.
* tests/test-environ.c: New file.
New module 'environ'.
* modules/environ: New file.
* lib/unistd.in.h (environ): New declaration.
* m4/environ.m4: New file.
(gt_CHECK_VAR_DECL): Moved here from m4/setenv.m4. Undefine gt_cv_var
after use.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ENVIRON and
HAVE_DECL_ENVIRON.
* modules/unistd (Makefile.am): Substitute also GNULIB_ENVIRON and
HAVE_DECL_ENVIRON.
* doc/posix-functions/environ.texi: Mention module 'environ'. Remove
wrong claim that 'environ' is missing on some systems.
* modules/execute (Depends-on): Add environ.
* lib/execute.c (environ): Remove fallback declaration.
* modules/pipe (Depends-on): Add environ.
* lib/pipe.c (environ): Remove fallback declaration.
* modules/setenv (Depends-on): Add environ.
* lib/setenv.c (environ): Remove fallback declaration.
* modules/unsetenv (Depends-on): Add environ.
* lib/unsetenv.c (environ): Remove fallback declaration.
* m4/setenv.m4 (gt_CHECK_VAR_DECL): Remove macro. Moved to
m4/environ.m4.
(gl_PREREQ_SETENV): Require gl_ENVIRON instead of testing for environ.
(gl_PREREQ_UNSETENV): Likewise.
2008-02-24 Bruno Haible <bruno@clisp.org>
* doc/posix-functions/environ.texi: Document the MacOS X problem.
2008-02-20 Bob Proulx <bob@proulx.com>
Enable use of older two part flavor 'git describe'.
* build-aux/git-version-gen: If using the older two part flavor of
git version then recreate the third part now present in the
newer three part flavor of git describe.
2008-02-20 Martin Buchholz <martin@xemacs.org> (tiny change)
* lib/fts.c (fts_build): Typo correction to comment.
2008-02-17 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c (main) [split_merged_entry]: Avoid
generating no-op conflicts.
2008-02-17 Bruno Haible <bruno@clisp.org>
Speed up by 10%.
* lib/git-merge-changelog.c (main): Use the iterator to iterate through
result_entries, rather than an index-based loop.
2008-02-17 Bruno Haible <bruno@clisp.org>
Speed up by 25%.
* lib/git-merge-changelog.c (struct entry): New fields 'hashcode',
'hashcode_cached'.
(entry_create): New function.
(entry_hashcode): Use the cached hashcode if possible.
(read_changelog_file, try_split_merged_entry): Use entry_create.
2008-02-17 Bruno Haible <bruno@clisp.org>
Speed up from O(n^2) to O(n) for long ChangeLog files.
* lib/git-merge-changelog.c: Include gl_rbtreehash_list.h.
(read_changelog_file): Change implementation of entries_reversed list
to rbtreehash.
* modules/git-merge-changelog (Depends-on): Add rbtreehash-list.
2008-02-17 Bruno Haible <bruno@clisp.org>
New option --split-merged-entry.
* lib/git-merge-changelog.c (FSTRCMP_STRICTER_THRESHOLD): New macro.
(find_paragraph_end, try_split_merged_entry): New functions.
(long_options): Add option --split-merged-entry.
(usage): Document option --split-merged-entry.
(main): Implement option --split-merged-entry.
Reported by Eric Blake.
2008-02-17 Bruno Haible <bruno@clisp.org>
* lib/git-merge-changelog.c: Include c-strstr.h.
(main): Support the "git pull --rebase" situation.
* modules/git-merge-changelog (Depends-on): Add c-strstr.
Reported by Eric Blake.
2008-02-16 Eric Blake <ebb9@byu.net>
Avoid doubling \ in common case of "c-maybe" quoting style.
* lib/quotearg.c (quotearg_buffer_restyled): Don't escape \ when
eliding outer quotes.
* lib/quotearg.h: Document this.
* tests/test-quotearg.c (result_strings, inputs, results_g)
(flag_results, locale_results): Test it by adding a new string to
each test group.
(compare_strings): Test new string.
2008-02-13 Eric Blake <ebb9@byu.net>
Avoid trigraph quoting in default output.
* lib/quotearg.h (enum quoting_flags): Add QA_SPLIT_TRIGRAPHS.
* lib/quotearg.c (quotearg_buffer_restyled): Don't quote trigraphs
unless explicitly requested.
* tests/test-quotearg.c (flag_results, main): Add additional tests.
2008-02-13 Lasse Collin <lasse.collin@tukaani.org>
Don't rely on signed integer overflowing to negative value.
* lib/getugroups.c (getugroups): Include <limits.h>.
Instead, compare against INT_MAX, and increment only if the test passes.
2008-02-13 Jim Meyering <meyering@redhat.com>
and Eric Blake <ebb9@byu.net>
Avoid shadowing warning and compile errors on Linux.
* tests/test-quotearg.c [ENABLE_NLS]: Disable <libintl.h>
forwarding macros on Linux.
(dcgettext): Define a stub, for Linux.
(results_g, main): Avoid warnings.
2008-02-12 Eric Blake <ebb9@byu.net>
Silence warning in last patch.
* lib/quotearg.c (quotearg_buffer_restyled): Add missing const.
Quotearg part 4: add tests, fix c-maybe colon quoting.
* lib/quotearg.h: Improve documentation.
* lib/quotearg.c (quotearg_buffer_restyled): Don't add extra
escapes when adding outer quotes. When quoting trigraphs, use
valid C notation. When quoting NUL, omit extra characters if next
character is not digit. Alter prototype.
(quotearg_buffer, quotearg_alloc_mem, quotearg_n_options): Adjust
callers.
* modules/quotearg-tests: New module.
* tests/test-quotearg.c: New test.
2008-02-07 Eric Blake <ebb9@byu.net>
Quotearg part 3: add flag to control outer quote elision.
* lib/quotearg.h (c_maybe_quoting_style): New style.
(enum quoting_flags): Better documentation of flags.
* lib/quotearg.c (quoting_style_args, quoting_style_vals): Add
c-maybe style.
(quotearg_buffer_restyled): Handle new flag to elide outer
quotes.
Quotearg part 2: add flag that can control NUL elision.
* lib/quotearg.h (set_quoting_flags): New prototype.
* lib/quotearg.c (struct quoting_options): Add flag field.
(set_quoting_flags): New function.
(quotearg_buffer_restyled): Add flags parameter.
(quotearg_alloc_mem): Set the flag if length cannot be returned.
(quotearg_n_options): Set the flag, since length cannot be
returned.
(quoting_options_from_style): Default flags correctly.
Quotearg part 1: more wrappers, restore quotearg_char state.
* lib/quotearg.h (quotearg_alloc_mem, quotearg_n_mem)
(quotearg_mem, quotearg_style_mem, quotearg_char_mem)
(quotearg_colon_mem): New wrappers.
* lib/quotearg.c (quotearg_alloc, quotearg_char): Rewrite...
(quotearg_alloc_mem, quotearg_char_mem): ...in terms of these new
functions.
(quotearg_n_mem, quotearg_mem, quotearg_style_mem)
(quotearg_colon_mem): New functions.
2008-02-11 Bruno Haible <bruno@clisp.org>
* modules/git-merge-changelog (Makefile.am): Don't use -L and -l for a
library in the current directory: it does not work with parallel make.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2008-02-11 Bruno Haible <bruno@clisp.org>
* .gitattributes: New file.
2008-02-11 Jim Meyering <meyering@redhat.com>
useless-if-before-free: Fix reversed exit values.
* build-aux/useless-if-before-free: Use correct values
for EXIT_MATCH and EXIT_NO_MATCH.
* build-aux/useless-if-before-free: Close stdout carefully.
2008-02-10 Bruno Haible <bruno@clisp.org>
New module 'git-merge-changelog'.
* modules/git-merge-changelog: New file.
* lib/git-merge-changelog.c: New file.
2008-02-10 Jim Meyering <meyering@redhat.com>
useless-if-before-free: New option: --list (-l).
useless-if-before-free: Don't exit immediately upon open failure.
* build-aux/useless-if-before-free: Exit 2 for errors.
Upon failure to open a file, don't exit immediately.
Rather, just warn and continue with any remaining files.
2008-02-10 Bruno Haible <bruno@clisp.org>
New abstract list operation 'node_set_value'.
* lib/gl_list.h (gl_list_node_set_value): New function.
(struct gl_list_implementation): New field node_set_value.
* lib/gl_list.c (gl_list_node_set_value): New function.
* lib/gl_array_list.c (gl_array_node_set_value): New function.
(gl_array_list_implementation): Update.
* lib/gl_carray_list.c (gl_carray_node_set_value): New function.
(gl_carray_list_implementation): Update.
* lib/gl_anylinked_list2.h (gl_linked_node_set_value): New function.
* lib/gl_linked_list.c (gl_linked_list_implementation): Update.
* lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update.
* lib/gl_anytree_list2.h (gl_tree_node_set_value): New function.
* lib/gl_avltree_list.c (gl_avltree_list_implementation): Update.
* lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation):
Update.
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Update.
* lib/gl_sublist.c (gl_sublist_node_set_value): New function.
(gl_sublist_list_implementation): Update.
2008-02-10 Bruno Haible <bruno@clisp.org>
* lib/diffseq.h: Write "ELEMENT const" instead of "const ELEMENT".
Needed when ELEMENT is #defined to 'some_type *'.
2008-02-10 Jim Meyering <meyering@redhat.com>
New script and module: useless-if-before-free
* MODULES.html.sh (maint+release support): Add useless-if-before-free.
* build-aux/useless-if-before-free: New file.
* modules/useless-if-before-free: New file.
* build-aux/gitlog-to-changelog: Use committer date, not author date.
xstrtol_error: Fix typo.
* lib/xstrtol-error.c (xstrtol_error): The parameter was unused:
s/exit_failure/exit_status/.
2008-02-09 Jim Meyering <meyering@redhat.com>
New script and module: gitlog-to-changelog
* MODULES.html.sh (maint+release support): Add gitlog-to-changelog.
* modules/gitlog-to-changelog: New file.
* build-aux/gitlog-to-changelog: New file.
2008-02-08 Jim Meyering <meyering@redhat.com>
Avoid two "parameter unused" warnings.
* lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime):
Mark "st" as used.
Use "git COMMAND", not "git-COMMAND".
* build-aux/bootstrap (version_controlled_file): s/git-rm/git-rm/.
* build-aux/announce-gen (get_tool_versions): Correct a diagnostic.
* build-aux/git-version-gen: Use "git status", not "git-status".
2008-02-07 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Don't use %n on native Woe32 systems.
Avoids a crash on Windows Vista.
Reported by Adam Strzelecki <ono@java.pl> via
Simon Josefsson <simon@josefsson.org>.
2008-02-06 Bruno Haible <bruno@clisp.org>
Fix *printf behaviour regarding the left-adjust flag on HP-UX 10.20.
* m4/printf.m4 (gl_PRINTF_FLAG_LEFTADJUST): New macro.
* lib/vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_FLAG_LEFTADJUST.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_FLAG_LEFTADJUST and test its result. Invoke
gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Add testcases for the
left-adjust flag.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/posix-functions/fprintf.texi: Update.
* doc/posix-functions/printf.texi: Update.
* doc/posix-functions/snprintf.texi: Update.
* doc/posix-functions/sprintf.texi: Update.
* doc/posix-functions/vfprintf.texi: Update.
* doc/posix-functions/vprintf.texi: Update.
* doc/posix-functions/vsnprintf.texi: Update.
* doc/posix-functions/vsprintf.texi: Update.
Reported by Peter Fales <psfales@alcatel-lucent.com>.
2008-02-06 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2008-01-26.
* lib/isnan.c (FUNC): Set to rpl_isnand, not rpl_isnan.
2008-02-06 Bruno Haible <bruno@clisp.org>
Fix bug introduced on 2007-06-10.
* lib/vasnprintf.c (VASNPRINTF): Perform zero-padding also if
!NEED_PRINTF_FLAG_ZERO.
2008-02-05 Peter O'Gorman <pogma@thewrittenword.com>
getloadavg: use libperfstat on AIX5
* lib/getloadavg.c, m4/getloadavg.m4 [aix]: Use libperfstat
2008-02-03 Bruno Haible <bruno@clisp.org>
* lib/diffseq.h: Add comments about required #includes.
Reported by Michael Biggs <gnulib@doubleplum.net>.
2008-02-01 Bruno Haible <bruno@clisp.org>
* users.txt: Add gnuit.
2008-01-31 Bruno Haible <bruno@clisp.org>
* lib/md4.c (set_uint32): Mark as inline.
* lib/md5.c (set_uint32): Likewise.
* lib/sha1.c (set_uint32): Likewise.
* m4/md4.m4 (gl_MD4): Require AC_C_INLINE.
* m4/md5.m4 (gl_MD5): Likewise.
* m4/sha1.m4 (gl_SHA1): Likewise.
2008-01-31 Jim Meyering <meyering@redhat.com>
Use "sizeof VAR", rather than a literal "4".
* lib/md5.c (md5_read_ctx): Use sizeof ctx->A, not 4.
* lib/md4.c (md4_read_ctx): Likewise.
* lib/sha1.c (sha1_read_ctx): Likewise.
2008-01-31 Simon Josefsson <simon@josefsson.org>
* tests/test-sha1.c: New file, based on test-md5.c.
* modules/crypto/sha1-tests: New file.
2008-01-31 Simon Josefsson <simon@josefsson.org>
* lib/sha1.h (SHA1_DIGEST_SIZE): Define.
2008-01-31 Jim Meyering <meyering@redhat.com>
Prefer "sizeof v" over the equivalent "4".
* lib/md4.c (set_uint32): Use "sizeof v" as memcpy length, not 4.
* lib/md5.c (set_uint32): Likewise.
* lib/sha1.c (set_uint32): Likewise.
2008-01-31 Simon Josefsson <simon@josefsson.org>
* lib/sha1.c (set_uint32): Mark function as static.
2008-01-31 Simon Josefsson <simon@josefsson.org>
md2: clarify comments to say that alignment is not required.
* lib/md2.h: Remove warning about alignment in comment.
* lib/md2.c (md2_read_ctx, md2_finish_ctx): Doc fix, alignment has
never been required.
2008-01-31 Simon Josefsson <simon@josefsson.org>
md4: adapt alignment constraint fix from sha1.
* lib/md4.c (set_uint32): New function, from sha1.c
(md4_read_ctx): Use it.
(md4_finish_ctx): Doc fix.
* lib/md4.h: Doc fix.
2008-01-31 Simon Josefsson <simon@josefsson.org>
md5: adapt alignment constraint fix from sha1.
* lib/md5.c (set_uint32): New function, from sha1.c
(md5_read_ctx): Use it.
(md5_finish_ctx): Doc fix.
* lib/md5.h: Doc fix.
2008-01-30 Peter Palfrader <weasel@debian.org>
sha1: remove the result buffer alignment constraint
* lib/sha1.c (set_uint32): New function.
(sha1_read_ctx): Rewrite to remove the result buffer alignment
constraint.
(sha1_finish_ctx): Remove comment warning about alignment constraint.
* lib/sha1.h: Likewise.
2008-01-30 Andreas Schwab <schwab@suse.de>
Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Include <float.h> and ensure a
correct definition of LDBL_MIN_EXP.
2008-01-30 Karl Berry <karl@gnu.org>
* config/srclist-update: try to preserve x bit on updates.
* config/srclistvars.sh: update for karl.
2008-01-29 Jim Meyering <meyering@redhat.com>
vasnprintf.c: Avoid warning about unused label
* lib/vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Guard the
"overflow" label definition and associated code with the
same cpp condition that guards the sole use of that label.
2008-01-26 Bruno Haible <bruno@clisp.org>
* m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM,
gl_FUNC_ISNANL_WORKS): Test the GCC >= 4.0 built-in.
* lib/isnanl.h (isnanl): Use the GCC >= 4.0 built-in.
* lib/isnanl-nolibm.h (isnanl): Likewise.
Reported by Paul Eggert <eggert@cs.ucla.edu>.
2008-01-26 Bruno Haible <bruno@clisp.org>
* m4/isnand.m4 (gl_FUNC_ISNAND_NO_LIBM): Test the GCC >= 4.0 built-in.
* lib/isnand.h (isnand): Use the GCC >= 4.0 built-in.
2008-01-26 Bruno Haible <bruno@clisp.org>
* m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_ISNANF_WORKS): Test the
GCC >= 4.0 built-in.
* lib/isnanf.h (isnanf): Use the GCC >= 4.0 built-in.
2008-01-26 Bruno Haible <bruno@clisp.org>
Rename isnan, applicable to 'double' only, to isnand.
* modules/isnand-nolibm: Renamed from modules/isnan-nolibm.
(Files): Add lib/isnand.h, lib/isnand.c. Remove lib/isnan.h.
(configure.ac): Update.
(Include): Replace "isnan.h" with "isnand.h".
* m4/isnand.m4: Renamed from m4/isnan.m4.
(gl_FUNC_ISNAND_NO_LIBM): Renamed from gl_FUNC_ISNAN_NO_LIBM. Set
HAVE_ISNAND_IN_LIBC instead of HAVE_ISNAN_IN_LIBC. Build isnand.c
instead of isnan.c.
* lib/isnand.h: Renamed from lib/isnan.h. Test HAVE_ISNAND_IN_LIBC
instead of HAVE_ISNAN_IN_LIBC.
(isnand): Renamed from isnan.
* lib/isnand.c: New file.
* modules/isnand-nolibm-tests: Renamed from modules/isnan-nolibm-tests.
(Files): Add tests/test-isnand.c. Remove tests/test-isnan.c.
(Makefile.am): Update.
* tests/test-isnand.c: Renamed from tests/test-isnan.c.
Include isnand.h instead of isnan.h.
(main): Test isnand instead of isnan.
* modules/fprintf-posix (Depends-on): Add isnand-nolibm, remove
isnan-nolibm.
* modules/frexp (Depends-on): Likewise.
* modules/frexp-tests (Depends-on): Likewise.
* modules/frexp-nolibm (Depends-on): Likewise.
* modules/frexp-nolibm-tests (Depends-on): Likewise.
* modules/isfinite (Depends-on): Likewise.
* modules/round-tests (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/signbit-tests (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/trunc-tests (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* lib/frexp.c: Include isnand.h instead of isnan.h.
(ISNAN): Set to isnand instead of isnan.
* lib/isfinite.c: Include isnand.h instead of isnan.h.
(gl_isfinited): Use isnand instead of isnan.
* lib/signbitd.c: Include isnand.h instead of isnan.h.
(gl_signbitd): Use isnand instead of isnan.
* lib/vasnprintf.c: Include isnand.h instead of isnan.h.
(is_infinite_or_zero, VASNPRINTF): Use isnand instead of isnan.
* tests/test-frexp.c: Include isnand.h instead of isnan.h.
(main): Use isnand instead of isnan.
* tests/test-round1.c: Include isnand.h.
(main): Use isnand instead of isnan.
* tests/test-round2.c: Include isnand.h instead of isnan.h.
(ISNAN): Set to isnand instead of isnan.
* tests/test-trunc1.c: Include isnand.h.
(main): Use isnand instead of isnan.
* tests/test-trunc2.c: Include isnand.h instead of isnan.h.
(equal): Use isnand instead of isnan.
* MODULES.html.sh (Mathematics <math.h>): Replace isnan-nolibm with
isnand-nolibm.
* NEWS: Mention the change.
2008-01-25 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* m4/signbit.m4 (gl_SIGNBIT): Require a macro definition. Test whether
the GCC builtins for signbits are present and set
REPLACE_SIGNBIT_USING_GCC if so.
* lib/math.in.h (signbit): Define using GCC builtins if
REPLACE_SIGNBIT_USING_GCC is set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize
REPLACE_SIGNBIT_USING_GCC.
* modules/math (Makefile.am): Substitute REPLACE_SIGNBIT_USING_GCC.
2008-01-25 Jim Meyering <meyering@redhat.com>
Prefer <config.h> over "config.h". See autoconf doc for explanation.
* lib/poll.c: Include <config.h>, not "config.h".
* tests/test-getaddrinfo.c: Likewise.
2008-01-25 Simon Josefsson <simon@josefsson.org>
* modules/sockets-tests: New file.
2008-01-24 Simon Josefsson <simon@josefsson.org>
* modules/sockets: New module, can be used to call WSA_Startup and
WSA_Cleanup when needed.
* lib/sockets.h, lib/sockets.c: New files.
* m4/sockets.m4: New file.
* tests/test-sockets.c: New file.
2008-01-19 Bruno Haible <bruno@clisp.org>
* doc/posix-headers: Renamed from doc/headers.
* doc/posix-functions: Renamed from doc/functions.
* doc/gnulib.texi: Update.
2008-01-19 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/strcasestr.texi: Include contents of
doc/functions/strcasestr.texi, fixing the list of platforms.
* doc/functions/strcasestr.texi: Remove file.
2008-01-19 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/memmem.texi: Include contents of
doc/functions/memmem.texi.
* doc/functions/memmem.texi: Remove file.
2008-01-18 Bruno Haible <bruno@clisp.org>
* doc/glibc-functions/*.texi: New files.
* doc/gnulib.texi (Glibc Function Substitutes): Completely rewritten
to use the new files.
2008-01-17 Bruno Haible <bruno@clisp.org>
* tests/test-gethostname.c (main): Fix printf statement.
2008-01-17 Simon Josefsson <simon@josefsson.org>
* modules/gethostname-tests: New file.
* tests/test-gethostname.c: New file.
2008-01-17 Simon Josefsson <simon@josefsson.org>
* lib/gethostname.c: Include string.h unconditionally, strncpy is
used by the UNAME case. Reported by Bruno Haible
<bruno@clisp.org>.
2008-01-17 Eric Blake <ebb9@byu.net>
Convert c-strcasestr to be more efficient.
* modules/c-strcasestr (Files): Use Two-Way, not KMP.
(Depends-on): Add c-strcase, remove malloca, strnlen.
* tests/test-c-strcasestr.c (main): Enhance test.
* lib/c-strcasestr.c (c_strcasestr): Rewrite to new algorithm.
2007-01-16 Paolo Bonzini <bonzini@gnu.org>
* build-aux/bootstrap (MSGID_BUGS_ADDRESS): New overridable variable.
Use it in creating po/Makevars.
2008-01-15 Simon Josefsson <simon@josefsson.org>
* lib/gc-libgcrypt.c (gc_init): Disable secure memory by default.
Applications that requires it should initialize libgcrypt
manually.
2008-01-16 Simon Josefsson <simon@josefsson.org>
* lib/gethostname.c [!HAVE_UNAME]: Need string.h for strcpy.
2008-01-15 Paul Eggert <eggert@cs.ucla.edu>
Fix problem with getdate on mingw32 reported by Simon Josefsson
in <http://lists.gnu.org/r/bug-gnulib/2008-01/msg00192.html>.
* lib/getdate.y (get_date): Check "HAVE_DECL_TZNAME", not "defined
tzname", when deciding whether to declare tzname.
* lib/strftime.c (tzname): Likewise.
2008-01-15 Bruno Haible <bruno@clisp.org>
Work around a MacOS X 10.5 bug in frexpl().
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Also check denormalized numbers.
* doc/functions/frexpl.texi: Document the bug.
Reported by Elias Pipping <pipping@gentoo.org>.
2008-01-14 Eric Blake <ebb9@byu.net>
Touch up previous patch.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Fix typo.
* doc/functions/strcasestr.texi (strcasestr): Document OpenBSD bug.
Convert strcasestr module to use Two-Way algorithm.
* modules/strcasestr-simple: New module, based on the old
strcasestr, but with Two-Way rather than KMP.
* modules/strcasestr (Depends-on): Change to strcasestr-simple.
* lib/string.in.h (rpl_strcasestr): Declare.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Check for linear
performance.
* lib/strcasestr.c (strcasestr): Simplify, and avoid malloc.
* modules/string (Makefile.am): Support strcasestr.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
* modules/strcasestr-tests (Depends-on): Check for alarm.
* tests/test-strcasestr.c: Augment test.
* lib/str-two-way.h: Clean up stray macro.
* NEWS: Document new module.
* MODULES.html.sh (string handling): Likewise.
* doc/functions/strcasestr.texi: New file.
* doc/gnulib.texi (Function Substitutes): New node. Move memmem
here, since it is not a POSIX function.
2008-01-14 Colin Watson <cjwatson@debian.org>
Bruno Haible <bruno@clisp.org>
* m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Also check whether strsignal
works fine; if not, set REPLACE_STRSIGNAL.
(gl_PREREQ_STRSIGNAL): Require AC_DECL_SYS_SIGLIST.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
REPLACE_STRSIGNAL.
* lib/string.in.h (strsignal): Consider REPLACE_STRSIGNAL.
* modules/string (Makefile.am): Substitute REPLACE_STRSIGNAL.
* tests/test-strsignal.c (main): Check out-of-range signal numbers.
2008-01-14 Bruno Haible <bruno@clisp.org>
* modules/strsignal (Include): Change to <string.h>.
2008-01-14 Colin Watson <cjwatson@debian.org>
* modules/argp (Notice): Add a notice recommending to change
XGETTEXT_OPTIONS.
(configure.ac): Invoke AM_XGETTEXT_OPTION if it exists.
2008-01-13 Colin Watson <cjwatson@debian.org>
* modules/strsignal-tests: New file.
* tests/test-strsignal.c: New file.
* lib/strsignal.c: New file, from glibc with modifications.
* lib/siglist.h: New file, from glibc with modifications.
* lib/string.in.h (strsignal): New declaration.
* m4/strsignal.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
GNULIB_STRSIGNAL and HAVE_DECL_STRSIGNAL.
* modules/strsignal: New file.
* modules/string (Makefile.am): Substitute GNULIB_STRSIGNAL and
HAVE_DECL_STRSIGNAL.
2008-01-13 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Check that the
locale encoding is not ASCII. Needed for OpenBSD 4.0.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
2008-01-13 Bruno Haible <bruno@clisp.org>
* lib/argp-fmtstream.h (__attribute__): Don't redefine if
__STRICT_ANSI__ is set: it's not needed by any version of gcc.
* lib/argp.h (__attribute__): Likewise.
* lib/c-stack.c (__attribute__): Likewise.
* lib/error.h (__attribute__): Likewise.
* lib/fts.c (__attribute__): Likewise.
* lib/openat.h (__attribute__): Likewise.
* lib/stdio.in.h (__attribute__): Likewise.
* lib/string.in.h (__attribute__): Likewise.
* lib/utimens.c (__attribute__): Likewise.
* lib/vasnprintf.h (__attribute__): Likewise.
* lib/xalloc.h (__attribute__): Likewise.
* lib/xprintf.h (__attribute__): Likewise.
* lib/xstrtol.h (__attribute__): Likewise.
* lib/xvasprintf.h (__attribute__): Likewise.
2008-01-12 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi (Glibc Header File Substitutes): New chapter.
* doc/glibc-headers/a.out.texi: New file.
* doc/glibc-headers/aliases.texi: New file.
* doc/glibc-headers/alloca.texi: New file.
* doc/glibc-headers/ar.texi: New file.
* doc/glibc-headers/argp.texi: New file.
* doc/glibc-headers/argz.texi: New file.
* doc/glibc-headers/byteswap.texi: New file.
* doc/glibc-headers/crypt.texi: New file.
* doc/glibc-headers/endian.texi: New file.
* doc/glibc-headers/envz.texi: New file.
* doc/glibc-headers/err.texi: New file.
* doc/glibc-headers/error.texi: New file.
* doc/glibc-headers/execinfo.texi: New file.
* doc/glibc-headers/fpu_control.texi: New file.
* doc/glibc-headers/fstab.texi: New file.
* doc/glibc-headers/fts.texi: New file.
* doc/glibc-headers/getopt.texi: New file.
* doc/glibc-headers/ieee754.texi: New file.
* doc/glibc-headers/ifaddrs.texi: New file.
* doc/glibc-headers/libintl.texi: New file.
* doc/glibc-headers/mcheck.texi: New file.
* doc/glibc-headers/mntent.texi: New file.
* doc/glibc-headers/obstack.texi: New file.
* doc/glibc-headers/paths.texi: New file.
* doc/glibc-headers/printf.texi: New file.
* doc/glibc-headers/pty.texi: New file.
* doc/glibc-headers/resolv.texi: New file.
* doc/glibc-headers/shadow.texi: New file.
* doc/glibc-headers/sysexits.texi: New file.
* doc/glibc-headers/ttyent.texi: New file.
2008-01-12 Jim Meyering <meyering@redhat.com>
announce-gen: emit Gnulib's git-based version string.
* build-aux/announce-gen: Remove option: --gnulib-snapshot-time-stamp=S.
New option --gnulib-version=V, where V is expected to be
the output of running git describe in the gnulib directory.
(get_tool_versions): Request feedback on xdelta. I suspect it's
not useful, and plan to stop publishing an xdelta file with each
coreutils release.
* build-aux/announce-gen: Also check for lzma-compressed files.
2008-01-11 Bruno Haible <bruno@clisp.org>
* tests/test-memmem.c (main): Increase maximum allowed time.
* tests/test-strstr.c (main): Likewise.
2008-01-11 Bruno Haible <bruno@clisp.org>
* doc/functions/memmem.texi: Add more precisions about platforms.
* doc/functions/strstr.texi: Likewise.
2008-01-10 Eric Blake <ebb9@byu.net>
* m4/strstr.m4: Delete cruft from copy-n-paste.
Reported by Bruno Haible.
2008-01-10 Bruno Haible <bruno@clisp.org>
Make c-strstr rely on strstr.
* lib/c-strstr.c: Don't include str-kmp.h.
(c_strstr): Define in terms of strstr.
* modules/c-strstr (Files): Remove lib/str-kmp.h.
(Depends-on): Remove stdbool, malloca, strnlen. Add strstr.
2008-01-10 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi (String Functions in C Locale): New section.
* doc/c-ctype.texi: New file.
* doc/c-strcase.texi: New file.
* doc/c-strcaseeq.texi: New file.
* doc/c-strcasestr.texi: New file.
* doc/c-strstr.texi: New file.
* doc/c-strtod.texi: New file.
* doc/c-strtold.texi: New file.
2008-01-10 Eric Blake <ebb9@byu.net>
* lib/relocatable.h: Fix a comment.
2008-01-10 Eric Blake <ebb9@byu.net>
Share two-way algorithm.
* lib/str-two-way.h: New file, merged from...
* lib/memmem.c: ...here...
* lib/strstr.c: ...and here.
* modules/memmem (Files): Use it.
* modules/strstr (Files): Likewise.
Avoid quadratic strstr implementations.
* lib/strstr.c: New file.
* m4/strstr.m4: Likewise.
* modules/strstr: Likewise.
* modules/strstr-tests: Likewise.
* tests/test-strstr.c: Likewise.
* lib/string.in.h (rpl_strstr): Declare.
(memmem) [GNULIB_POSIXCHECK]: Document speed issue.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Support strstr.
* modules/string (Makefile.am): Likewise.
* MODULES.html.sh (string handling): Mention new module.
* doc/functions/strstr.texi (strstr): Document the bug.
2008-01-10 Bruno Haible <bruno@clisp.org>
* lib/relocatable.h (relocate): State whether result is freshly
allocated or not.
* lib/relocatable.c (relocate): Return a freshly allocated string
instead of a pointer to a privately held string.
Reported by Sylvain Beucler <beuc@gnu.org>.
2008-01-10 Colin Watson <cjwatson@debian.org>
* lib/canonicalize-lgpl.c [!_LIBC]: Fix typo in #if directive:
s/S_ISNLK/S_ISLNK/.
2008-01-09 Bruno Haible <bruno@clisp.org>
* doc/functions/memmem.texi: Use the same structure as snprintf.texi
and other files.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Say "guessing no" instead of "no"
if it's only a guess.
* modules/memmem: Simplify by depending on memmem-simple.
2008-01-09 Bruno Haible <bruno@clisp.org>
Work around OpenBSD 4.0 tdelete() bug.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Also check tdelete's return value.
* lib/search.in.h: If REPLACE_TSEARCH is 1, define tsearch etc. as
macros and don't redefine the enum values.
* m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize REPLACE_TSEARCH.
* modules/search (Makefile.am): Also substitute REPLACE_TSEARCH.
* doc/functions/tdelete.texi: Document the OpenBSD 4.0 bug.
2008-01-09 Bruno Haible <bruno@clisp.org>
* tests/test-wcwidth.c: Include <string.h> and localcharset.h.
(main): Don't perform the tests if setlocale did not install a UTF-8
locale. Needed on OpenBSD 4.0.
* modules/wcwidth-tests (Depends-on): Add localcharset.
2008-01-09 Paul Eggert <eggert@cs.ucla.edu>
gl_FUNC_ALLOCA no longer defines HAVE_ALLOCA_H unconditionally.
See <http://lists.gnu.org/r/bug-gnulib/2007-12/msg00149.html>.
* NEWS: announce this.
* m4/alloca.m4 (gl_FUNC_ALLOCA): Don't define HAVE_ALLOCA_H.
2008-01-09 Simon Josefsson <simon@josefsson.org>
and Eric Blake <ebb9@byu.net>
Add memmem-simple module.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): New macro.
(gl_FUNC_MEMMEM): Separate performance from presence checks.
* modules/memmem-simple: New file.
* modules/memmem (Description): Tweak.
* MODULES.html.sh (string handling): Mention new module.
* doc/functions/memmem.texi (memmem): Distinguish which flaws are
addressed by memmem-simple.
* NEWS: Document the difference.
2008-01-09 Eric Blake <ebb9@byu.net>
Give gcc some memmem optimization hints.
* lib/string.in.h (memmem, memrchr, strchrnul, strnlen, strpbrk)
(strcasestr): Declare as pure.
* modules/memmem (Maintainer): Claim my implementation.
2008-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Support AIX 6.1 and higher.
* build-aux/config.libpath: Likewise.
* build-aux/config.rpath: Likewise.
2008-01-08 Jim Meyering <meyering@redhat.com>
Bruno Haible <bruno@clisp.org>
* lib/printf-parse.c (PRINTF_PARSE): Handle a size specifier "q"
on MacOS X and a size specifier "I64" on mingw. Needed for PRIdMAX.
Reported by Peter Fales in
<http://lists.gnu.org/r/bug-coreutils/2007-12/msg00148.html>.
2008-01-08 Bruno Haible <bruno@clisp.org>
* modules/unictype/category-of (Depends-on): Add
unictype/category-none.
* modules/unictype/category-and-tests (Depends-on): Add
unictype/category-{L,N,Lu,Nd}.
* modules/unictype/category-and-not-tests (Depends-on): Likewise.
* modules/unictype/category-or-tests (Depends-on): Add
unictype/category-{L,N}.
* modules/unictype/category-name-tests (Depends-on): Add
unictype/category-{Z,Nl}.
Reported by Simon Josefsson.
2008-01-08 Bruno Haible <bruno@clisp.org>
* lib/str-kmp.h (knuth_morris_pratt_unibyte): Document the calling
convention better.
* lib/mbsstr.c (knuth_morris_pratt_multibyte): Likewise.
* lib/mbscasestr.c (knuth_morris_pratt_multibyte): Likewise.
Reported by Peter Miller <millerp@canb.auug.org.au>.
2008-01-08 Eric Blake <ebb9@byu.net>
Rewrite memmem to guarantee linear complexity without malloc.
* lib/memmem.c (memmem): Use Two-Way rather than
Knuth-Morris-Pratt, to allow O(1) space usage.
(critical_factorization, two_way_short_needle)
(two_way_long_needle): New functions.
(knuth_morris_pratt): Delete.
* modules/memmem (Depends-on): No longer need malloca or stdbool.
Add stdint.
* tests/test-memmem.c (main): Add tests for periodic needle and
sublinear performance.
* doc/functions/memmem.texi (memmem): Document other deficiencies
in cygwin and older glibc.
2008-01-08 Bruno Haible <bruno@clisp.org>
* modules/memmem-tests (Makefile.am): Remove TESTS_ENVIRONMENT
augmentation.
2008-01-08 Mike Frysinger <vapier@gentoo.org>
Add a configure time option: --disable-acl.
* m4/acl.m4 (gl_FUNC_ACL): Wrap all ACL logic in a call to
AC_ARG_ENABLE(acl).
2008-01-06 Simon Josefsson <simon@josefsson.org>
* tests/test-localename.c: Don't include obsolete "setenv.h".
* modules/localename-tests (Depends-on): Need unsetenv.
2008-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* DEPENDENCIES: Require Texinfo version 4.6 or newer.
2008-01-06 Colin Watson <cjwatson@debian.org>
* users.txt: Add man-db.
2008-01-07 Bruno Haible <bruno@clisp.org>
* doc/gnulib-intro.texi (Library vs Reusable Code): Restore the
previous section name.
2008-01-07 Bruno Haible <bruno@clisp.org>
* lib/progname.c (set_program_name): Don't strip off a leading
"lt-" prefix outside a .libs directory.
Suggested by Paul Eggert.
2008-01-01 Sylvain Beucler <beuc@gnu.org>
Bruno Haible <bruno@clisp.org>
Improve memory cleanup in 'relocatable' module.
* lib/relocatable.h (compute_curr_prefix): Change return type to
'char *'.
* lib/relocatable.c (compute_curr_prefix): Change return type to
'char *'. Free curr_installdir after use.
(relocate): Free curr_prefix_better after use.
* lib/progreloc.c (prepare_relocate): Free curr_prefix after use.
2008-01-01 Bruno Haible <bruno@clisp.org>
* tests/test-wcwidth.c (main): Relax test of U+2060. Avoids a test
failure on older glibc systems.
Reported by Peter Fales <psfales@alcatel-lucent.com>.
2008-01-05 Eric Blake <ebb9@byu.net>
Avoid quadratic system memmem.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Check for quadratic memmem.
Reported by Ralf Wildenhues.
Fix memmem test for mingw.
* modules/memmem-tests (configure.ac): Check for alarm.
* tests/test-memmem.c (main): Avoid alarm on platforms that lack
it.
* doc/functions/memmem.texi: New file.
* doc/gnulib.texi (Function Substitutes): Add memmem.
Reported by Bruno Haible.
2008-01-04 Bruno Haible <bruno@clisp.org>
* m4/strcase.m4 (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP):
Require gl_HEADER_STRINGS_H_DEFAULTS, not
gl_HEADER_STRING_H_DEFAULTS.
2008-01-04 Eric Blake <ebb9@byu.net>
Shorten duration of memmem test.
* tests/test-memmem.c (main): Use alarm to declare failure if test
is taking too long.
Reported by Ralf Wildenhues.
2007-12-21 Simon Josefsson <simon@josefsson.org>
* modules/relocatable-prog-wrapper (Depends-on): Add intprops and
string, needed by strerror.
2008-01-03 Colin Watson <cjwatson@debian.org>
Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Localization): New section.
2008-01-02 Bruno Haible <bruno@clisp.org>
* lib/memmem.c (knuth_morris_pratt, memmem): Change all 'char *'
variables to 'unsigned char *' type.
Reported by Paul Eggert.
2008-01-02 Jim Meyering <jim@meyering.net>
* lib/version-etc.c (COPYRIGHT_YEAR): Increase for new year.
2007-12-31 Jim Meyering <jim@meyering.net>
Avoid use of private FTS type name.
* lib/fts.c (fts_sort): Use FTSENT rather than "struct _ftsent".
2007-12-30 Karl Berry <karl@gnu.org>
* doc/gnulib.texi (Library vs. Reusable Code): remove period, to
work around defect in Texinfo and/or the standalone Info browser.
2007-12-30 Bruno Haible <bruno@clisp.org>
Unify 5 copies of the KMP code.
* lib/str-kmp.h: New file.
* lib/c-strcasestr.c: Include str-kmp.h.
(knuth_morris_pratt): Remove function.
(c_strcasestr): Update.
* lib/c-strstr.c: Include str-kmp.h.
(knuth_morris_pratt): Remove function.
(c_strcasestr): Update.
* lib/mbscasestr.c: Include str-kmp.h.
(knuth_morris_pratt_unibyte): Remove function.
* lib/mbsstr.c: Include str-kmp.h.
(knuth_morris_pratt_unibyte): Remove function.
* lib/strcasestr.c: Include str-kmp.h.
(knuth_morris_pratt): Remove function.
(strcasestr): Update.
* modules/c-strcasestr (Files): Add lib/str-kmp.h.
* modules/c-strstr (Files): Likewise.
* modules/mbscasestr (Files): Likewise.
* modules/mbsstr (Files): Likewise.
* modules/strcasestr (Files): Likewise.
Suggested by Paul Eggert.
2007-12-30 Bruno Haible <bruno@clisp.org>
* lib/xmalloca.c (xmmalloca): Don't define if HAVE_ALLOCA is not
defined.
2007-12-30 Bruno Haible <bruno@clisp.org>
* lib/xmalloca.h: Include xalloc.h.
(xnmalloca): New macro.
2007-12-30 Bruno Haible <bruno@clisp.org>
* lib/malloca.h (nmalloca): New macro.
* lib/c-strcasestr.c (knuth_morris_pratt): Use it.
* lib/c-strstr.c (knuth_morris_pratt): Likewise.
* lib/mbscasestr.c (knuth_morris_pratt_unibyte,
knuth_morris_pratt_multibyte): Likewise.
* lib/mbsstr.c (knuth_morris_pratt_unibyte,
knuth_morris_pratt_multibyte): Likewise.
* lib/memmem.c (knuth_morris_pratt): Likewise.
* lib/strcasestr.c (knuth_morris_pratt): Likewise.
2007-12-25 Bruno Haible <bruno@clisp.org>
Fixup after 2007-10-17 commit. Ensure that 'glob' stays under LGPLv2+.
* lib/glob.c: Don't include openat.h.
(link_exists2_p): Add back the code that deals with the
!GLOB_ALTDIRFUNC case.
(link_exists_p) [!_LIBC && !HAVE_FSTATAT]: Just call link_exists2_p and
let it do the filename concatenation.
* m4/glob.m4 (gl_PREREQ_GLOB): Add check for fstatat.
* modules/glob (Depends-on): Remove openat.
2007-12-31 Bruno Haible <bruno@clisp.org>
* modules/dirfd (License): Change to LGPLv2+.
Approved by Jim Meyering.
2007-12-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/memmem.c (knuth_morris_pratt): Check for size_t overflow
when multiplying M by sizeof (size_t).
2007-12-10 Martin Lambers <marlam@marlam.de>
Override getpagesize on mingw.
* lib/getpagesize.c: New file.
* m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Enable replacement on mingw.
* modules/getpagesize (Files): Add lib/getpagesize.c.
* lib/unistd.in.h (getpagesize): Declare if we are using a replacement.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
REPLACE_GETPAGESIZE.
* modules/unistd (Makefile.am): Substitute REPLACE_GETPAGESIZE.
2007-12-25 Bruno Haible <bruno@clisp.org>
* modules/localcharset (Notice): New field.
(configure.ac): Define LOCALCHARSET_TESTS_ENVIRONMENT.
Suggested by Ben Pfaff <blp@cs.stanford.edu>.
2007-12-25 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
Avoid using the syntax symbol() in formatted documentation.
* MODULES.html.sh (func_module): When replacing symbol() with a
hyperlink, remove the parentheses. Show an error if some remain.
Recognize and render the '...' syntax.
* doc/alloca-opt.texi: Remove parentheses from symbol reference.
Rework. Add paragraph about GCC's inlining.
* doc/alloca.texi: Likewise.
* doc/error.texi: Remove parentheses from symbol reference.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib.texi (alloca, alloca-opt): New nodes.
* modules/fnmatch (Description): Reword to say "the ... function".
* modules/full-read (Description): Likewise.
* modules/full-write (Description): Likewise.
* modules/safe-read (Description): Likewise.
* modules/safe-write (Description): Likewise.
* modules/strchrnul (Description): Likewise.
* modules/trim (Description): Likewise.
* modules/error (Description): Remove parentheses from symbol
references.
* modules/verror (Description): Likewise.
Reported by Karl Berry.
2007-12-25 Bruno Haible <bruno@clisp.org>
Fixup after 2007-10-16 commit.
* lib/glob.c (glob_in_dir): Don't use ISO C99 syntax.
2007-12-24 Bruno Haible <bruno@clisp.org>
Make --enable-relocatable work with DESTDIR.
* build-aux/install-reloc: Accept another argument 'destdir'. Use it
to compute installdir from destprog.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): In INSTALL_PROGRAM_ENV,
also set the RELOC_DESTDIR variable.
Reported by Левашев Иван <octagram@bluebottle.com>.
2007-12-24 Bruno Haible <bruno@clisp.org>
Fix link error due to xalloc_die().
* lib/progreloc.c: When NO_XMALLOC is defined, use areadlink instead
of xreadlink.
* lib/relocwrapper.c: Update comments.
* build-aux/install-reloc: Remove xreadlink.c from file list.
* modules/relocatable-prog-wrapper (Files): Remove xreadlink.h and
xreadlink.c.
Reported by Левашев Иван <octagram@bluebottle.com>.
2007-12-24 Bruno Haible <bruno@clisp.org>
Split setenv module into setenv and unsetenv. Get rid of setenv.h.
* lib/setenv.h: Remove file.
* lib/stdlib.in.h (setenv, unsetenv): New declarations, moved here from
lib/setenv.h.
* modules/setenv (Files): Remove lib/setenv.h, lib/unsetenv.c.
(Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. Don't invoke
gl_FUNC_UNSETENV.
(Include): Replace setenv.h with <stdlib.h>.
* modules/unsetenv: New file.
* lib/setenv.c: Include <stdlib.h> first, after alloca.h.
* lib/unsetenv.c: Include <stdlib.h> first.
* m4/setenv.m4 (gl_FUNC_SETENV, gl_FUNC_SETENV_SEPARATE): Require
gl_STDLIB_H_DEFAULTS. Conditionally set HAVE_SETENV to 0.
(gl_FUNC_UNSETENV): Require gl_STDLIB_H_DEFAULTS. Conditionally set
HAVE_UNSETENV to 0. Set VOID_UNSETENV as an AC_SUBSTed variable.
* modules/stdlib (Makefile.am): Substitute also GNULIB_SETENV,
HAVE_SETENV, GNULIB_UNSETENV, HAVE_UNSETENV, VOID_UNSETENV.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_SETENV,
HAVE_SETENV, GNULIB_UNSETENV, HAVE_UNSETENV, VOID_UNSETENV.
* doc/functions/unsetenv.texi: Update.
* modules/xsetenv (Depends-on): Add unsetenv.
* modules/getdate (Depends-on): Likewise.
* lib/xsetenv.h: Include <stdlib.h> instead of setenv.h.
* lib/xsetenv.c: Don't include setenv.h.
* lib/getdate.y: Likewise.
* lib/relocwrapper.c: Likewise.
* modules/relocatable-prog-wrapper (Files): Remove lib/setenv.h.
(Depends-on): Add stdlib.
* NEWS: Mention the changes.
Reported by Левашев Иван <octagram@bluebottle.com>.
2007-12-23 Bruno Haible <bruno@clisp.org>
* lib/memmem.c (memmem): Use lowercase variable names. Tab
indentation.
2007-12-23 Bruno Haible <bruno@clisp.org>
* lib/c-strcasestr.c: Add more comments.
* lib/c-strstr.c: Likewise.
* lib/mbscasestr.c: Likewise.
* lib/mbsstr.c: Likewise.
* lib/strcasestr.c: Likewise.
* lib/memmem.c: Likewise.
2007-12-23 Bruno Haible <bruno@clisp.org>
* tests/test-memmem.c: Include <string.h> first.
2007-12-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Change $auxdir while generating
the contents of $testsbase.
Reported by Ralf Wildenhues.
2007-12-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Replace local_ldadd with
two variables local_ldadd_before, local_ldadd_last.
2007-12-20 Eric Blake <ebb9@byu.net>
Work around circular library issue when cross-compiling.
* lib/progname.c (set_program_name): Use strncmp, not memcmp, so
that progname.o does not need to pull in rpl_memcmp.
2007-12-19 Eric Blake <ebb9@byu.net>
Fix memmem to avoid O(n^2) worst-case complexity.
* lib/memmem.c (knuth_morris_pratt): New function.
(memmem): Use it if first few naive iterations fail.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Detect cygwin bug.
* modules/memcmp (License): Set to LGPLv2+, not LGPL.
* modules/memchr (License): Likewise.
* modules/memmem (Depends-on): Add memcmp, memchr, stdbool, and
malloca.
* tests/test-memmem.c: Rewrite, borrowing ideas from
test-mbsstr1.c; the old version wouldn't even compile!
* modules/memmem-tests: New file.
* lib/string.in.h (rpl_memmem): Add declaration.
* modules/string (Makefile.am): Substitute REPLACE_MEMMEM.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Default for
REPLACE_MEMMEM.
2007-12-18 Paul Eggert <eggert@cs.ucla.edu>
Fix problem with _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H on VMS.
* lib/stdint.in.h (_GL_JUST_INCLUDE_SYSTEM_INTTYPES_H): Define
before any system include files, and undef after them all. This
should fix a problem on VMS reported by John E. Malmberg in
<http://lists.gnu.org/r/bug-gnulib/2007-12/msg00118.html>.
2007-12-17 Eric Blake <ebb9@byu.net>
Revert addition of verify, for BSD/OS.
* lib/fseeko.c [!HAVE_FSEEKO]: Allow off_t > long, even though it
can't handle large files, for the sake of obsolete platforms.
* modules/fseeko (Depends-on): Remove verify.
* doc/functions/fseeko.texi (fseeko): Document BSD/OS limitation.
* doc/functions/ftello.texi (ftello): Likewise.
* doc/functions/fgetpos.texi (fgetpos): Likewise.
Reported by Larry Jones.
2007-12-17 Petr Salinger <Petr.Salinger@seznam.cz>
getcwd.c: Use a more readable witness: HAVE_OPENAT_SUPPORT
* lib/getcwd.c: Define and use HAVE_OPENAT_SUPPORT, in place of AT_FDCWD.
2007-12-17 Jim Meyering <meyering@redhat.com>
Port to GNU/kFreeBSD - FreeBSD kernel + GNU libc,
which has no openat syscall, yet <fcntl.h> does define AT_FDCWD.
* lib/getcwd.c: Undef AT_FDCWD if there is no openat function.
* modules/getcwd (Depends-on): Add openat.
Reported by Petr Salinger.
2007-12-17 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Use GL_NOCRASH to
avoid a segmentation fault of the configure test on x86_64 systems.
2007-12-15 Jim Meyering <meyering@redhat.com>
* build-aux/gnupload (GPG): Don't hard-code absolute name of gpg binary.
2007-12-13 Eric Blake <ebb9@byu.net>
Another fseek test.
* tests/test-fseek.c (main): Also test ungetc handling.
* tests/test-fseeko.c (main): Likewise.
* modules/fseeko (Depends-on): Add verify.
* lib/fseeko.c [!HAVE_FSEEKO]: Verify that off_t is not too
large.
Reported by Larry Jones.
Fix fseeko on mingw.
* lib/fseeko.c (rpl_fseeko) [_IOERR]: Reset EOF flag on successful
seek.
Beef up fseek tests.
* tests/test-fseek.c (main): Also test eof handling.
* tests/test-fseeko.c (main): Likewise.
Reported by Larry Jones.
2007-12-13 Larry Jones <lawrence.jones@siemens.com> (tiny change)
Fix fseeko on BSD-based platforms.
* lib/fseeko.c (rpl_fseeko) [__sferror]: Reset EOF flag on
successful seek.
2007-12-12 Eric Blake <ebb9@byu.net>
Allow circular dependency of separate libtests.a
* gnulib-tool (func_emit_tests_Makefile_am): Add AM_LIBTOOLFLAGS
when use_libtests.
2007-12-11 Eric Blake <ebb9@byu.net>
Fix bug with -0.0L in previous patch.
* lib/isnan.c (rpl_isnanl): Make robust to -0.0L and pad bits.
* tests/test-isnan.c (main): Also test on zeroes.
* tests/test-isnanf.c (main): Likewise.
* tests/test-isnanl.h (main): Likewise.
Detect pseudo-denormals on x86 even when cross-compiling.
* lib/isnan.c (rpl_isnanl) [!KNOWN_EXPBIT0_LOCATION
&& USE_LONG_DOUBLE && x86]: Add one more check to filter out
invalid bit patterns that happen to satisfy ==.
Avoid link failures with separate libtests.a.
* gnulib-tool (func_emit_tests_Makefile_am): Also list local_ldadd
last, to satisfy circular dependencies.
2007-12-11 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
Fix OpenBSD 4.0 <float.h> handling of long double.
* m4/float_h.m4 (gl_FLOAT_H): Also claim OpenBSD is broken.
* lib/float.in.h [__OpenBSD__]: Add fixes for OpenBSD.
* doc/headers/float.texi (float.h): Document OpenBSD bug.
2007-12-11 Jim Meyering <meyering@redhat.com>
* users.txt: Add libvirt.
Support versions of autoconf prior to 2.59c.
* gnulib-tool (func_emit_initmacro_done): Define m4_foreach_w
if it is not already defined.
2007-12-09 Bruno Haible <bruno@clisp.org>
Let 'gnulib-tool --import' collect sources needed for the tests in
tests/ rather than in lib/.
* gnulib-tool (func_emit_tests_Makefile_am): Accept use_libtests
argument. If true, add rules to generate libtests.a, and put libtests.a
into $(LDADD). Consider source files in subdirectories and set
uses_subdirs.
(func_emit_initmacro_start, func_emit_initmacro_end,
func_emit_initmacro_done): Pass all arguments explicitly.
(func_import): Determine two module lists main_modules,
testsrelated_modules. Determine use_libtests. Determine two variables
sed_transform_main_lib_file, sed_transform_testsrelated_lib_file
instead of just sed_transform_lib_file. Determine two variables
main_files and testsrelated_files. Compute 'files' as the union of
both. Adjust sed_rewrite_old_files, sed_rewrite_new_files,
func_add_or_update. In the generated gnulib-comp.m4, collect the
object files for tests/ in different variables than those for lib/.
Substitute LIBTESTS_LIBDEPS.
(func_create_testdir): Combine the uses_subdirs results from
func_emit_lib_Makefile_am and from func_emit_tests_Makefile_am.
2007-12-09 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Expand references to
the build-aux directory.
2007-12-09 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Remove redundant code
introduced on 2006-09-09.
2007-12-07 Jim Meyering <meyering@redhat.com>
Let these macros work also with autoconf-2.59.
* m4/getline.m4 (gl_FUNC_GETLINE): Require only autoconf-2.59. 2.60
is not needed, since gnulib now permits use of AC_CHECK_DECLS_ONCE.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
2007-12-06 Jim Meyering <meyering@redhat.com>
Avoid a configure-time syntax error in gl_FUNC_ACL.
* m4/acl.m4 (gl_FUNC_ACL): Be careful to check for the acl_trivial
function in each branch, before testing the cache variable.
2007-12-04 Eric Blake <ebb9@byu.net>
Make scripts executable.
* build-aux/config.guess: Add execute permissions.
* build-aux/config.sub: Likewise.
* build-aux/gendocs.sh: Likewise.
Fix frexp on mingw.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Detect mingw bug when
cross-compiling.
* doc/functions/frexp.texi (frexp): Document the bug.
Make cygwin fseeko check more reliable.
* m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET) [__CYGWIN__]: Use cygwin
version numbers, rather than unrelated feature check.
* doc/functions/fseeko.texi (fseeko): Tweak failure report.
* doc/functions/ftello.texi (ftello): Likewise.
Reported by Bruno Haible.
* m4/strerror.m4: Bump version number.
2007-12-03 Bruno Haible <bruno@clisp.org>
* doc/functions/mprotect.texi: Mention the mingw problem.
2007-12-03 Eric Blake <ebb9@byu.net>
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Ensure
REPLACE_STRERROR is initialized before this macro.
2007-12-03 Paul Eggert <eggert@cs.ucla.edu>
Add support for Solaris 10 ACLs. Also, ACLs are Gnulib, not Autoconf.
* modules/acl (configure.ac): Rename AC_FUNC_ACL to gl_FUNC_ACL.
* m4/acl.m4 (gl_FUNC_ACL): Renamed from AC_FUNC_ACL. On Solaris,
put -lsec in even for programs other than 'ls'. This fixes a problem
for gettext reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2007-12/msg00007.html>.
* lib/acl.c (copy_acl, qset_acl) [USE_ACL && defined ACL_NO_TRIVIAL]:
Add support for Solaris 10. This isn't efficient, but should get the
job done for now.
2007-12-03 James Youngman <jay@gnu.org>
* doc/regexprops-generic.texi: change "an close-group" to "a
close-group" and "illegal" to "not allowed".
2007-11-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/unictype/pr_byname.c: Include unictype/pr_byname.h instead of
pr_byname.h. Needed for the rare case when the maintainer has done
"make maintainer-clean" in the source directory and then attempts a
build outside the source directory.
* lib/unictype/scripts.c: Include unictype/scripts_byname.h instead of
scripts_byname.h.
2007-12-02 Martin Lambers <marlam@marlam.de>
Bruno Haible <bruno@clisp.org>
* lib/getpagesize.h: Remove file.
* lib/unistd.in.h: Include declaration of getpagesize here.
* m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Renamed from gl_GETPAGESIZE.
Invoke gl_UNISTD_H_DEFAULTS. Set HAVE_GETPAGESIZE, HAVE_OS_H,
HAVE_SYS_PARAM_H.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETPAGESIZE,
HAVE_GETPAGESIZE, HAVE_OS_H, HAVE_SYS_PARAM_H.
* modules/getpagesize (Files): Remove lib/getpagesize.h.
(Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Use <unistd.h> instead of getpagesize.h.
* modules/unistd (Makefile.am): Substitute also GNULIB_GETPAGESIZE,
HAVE_GETPAGESIZE, HAVE_OS_H, HAVE_SYS_PARAM_H.
* m4/pagealign_alloc.m4 (gl_PREREQ_PAGEALIGN_ALLOC): Remove
gl_GETPAGESIZE invocation, already handled by module dependency.
* lib/pagealign_alloc.c: Don't include getpagesize.h.
2007-12-02 Bruno Haible <bruno@clisp.org>
* modules/strings-tests: New file.
* tests/test-strings.c: New file.
Move declarations of str{,n}casecmp from <string.h> to <strings.h>.
* lib/strings.in.h: New file.
* lib/string.in.h (strcasecmp, strncasecmp): Remove declarations.
* m4/strings_h.m4: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Remove initialization
of HAVE_STRCASECMP, HAVE_DECL_STRNCASECMP.
* modules/strings: New file.
* modules/string (Makefile.am): Update.
* modules/strcase (Include): Mention <strings.h>, not <string.h>.
Reported by Karl Berry.
2007-12-01 Eric Blake <ebb9@byu.net>
* m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET) [__CYGWIN__]: Rewrite to
accommodate fix in cygwin 1.5.25.
2007-12-01 Jim Meyering <meyering@redhat.com>
Fix a bug that inhibited much of the utf8-optimization in regcomp.c.
* lib/regcomp.c (optimize_utf8): Fix a typo, s/idx/ctx_type/,
that would inhibit utf8-optimization of a regexp containing line-
or buffer-anchors, e.g., `^', `$'.
2007-11-30 Bruno Haible <bruno@clisp.org>
* lib/lock.h (gl_recursive_lock_init) [PTHREAD &&
PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: Call
glthread_recursive_lock_init.
* lib/lock.c (glthread_recursive_lock_init)
[PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: New function.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2007-11-28 Paul Eggert <eggert@cs.ucla.edu>
New function qset_acl, like set_acl but with syscall semantics.
* lib/acl.h (qset_acl): New decl.
* lib/acl.c (qset_acl): New function.
(set_acl): Use new function. Use more-consistent diagnostics.
2007-11-28 Jim Meyering <meyering@redhat.com>
* modules/physmem (License): Change from GPL to LGPLv2+.
2007-11-26 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (decode_long_double): Don't abort if the
'long double' type has excess precision.
Reported by Jim Meyering in
<http://lists.gnu.org/r/bug-gnulib/2007-11/msg00120.html>.
2007-11-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/fdl.texi, doc/gpl-3.0.texi, doc/lgpl-3.0.texi:
Sync from <http://gnu.org/licenses>.
* modules/agpl-3.0, doc/agpl-3.0.texi: New module,
with license text from same location.
* doc/maintain.texi, doc/standards.texi: Sync from
<http://savannah.gnu.org/projects/gnustandards>.
2007-11-22 Ondřej Vašík <ovasik@redhat.com>
and Jim Meyering <meyering@redhat.com>
Adjust getdate' grammar to accept a slightly more regular language.
E.g., accept "YYYYMMDD +N days" as well as "YYYYMMDD N days".
Before, the former was rejected.
* lib/getdate.y (digits_to_date_time): New function, factored
out of ...
(number): ...here. Just call digits_to_date_time.
(hybrid): New non-terminal to handle an <unsigned number,
signed relative offset> sequence consistently.
2007-11-18 Jim Meyering <meyering@redhat.com>
Pull my changes from coreutils:
bootstrap: fix typo to enable use of $gnulib_tool_option_extras.
* build-aux/bootstrap (gnulib_tool_options): Add a space before the
use of $gnulib_tool_option_extras, so that it's separated from the
preceding argument.
Fix bootstrap failure to handle files like lib/uniwidth/cjk.h.
* build-aux/bootstrap (cp_mark_as_generated): Create any required
parent destination directories before copying a file into place.
2007-11-18 Sergey Poznyakoff <gray@gnu.org.ua>
bootstrap: work also with 4-argument variant of AC_INIT
* build-aux/bootstrap (gnulib_extra_files): Adjust sed command.
2007-11-16 Paul Eggert <eggert@cs.ucla.edu>
Port test-getaddrinfo to Solaris.
Problem reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2007-03/msg00171.html>.
* tests/test-getaddrinfo.c (simple): Add a comment asking for an
explanation of setting 'hints'.
Don't reject an implementation merely because it returns EAI_SERVICE.
(EAI_SERVICE): Define to 0 if not defined.
2007-11-15 Paul Eggert <eggert@cs.ucla.edu>
The license of gnu-make and posix-shell is now "GPLed build tool".
* modules/gnu-make (License): Likewise.
* modules/posix-shell (License): Likewise.
New module posix-shell, for determining a POSIX shell
or perhaps something that is close enough to a POSIX shell.
* m4/posix-shell.m4: New file.
* modules/posix-shell: New file.
* MODULES.html.sh: Mention new module.
New module gnu-make, for determining whether we're using GNU Make.
* m4/gnu-make.m4: New file.
* modules/gnu-make: New file.
* MODULES.html.sh: Mention new module.
2007-11-14 Jim Meyering <meyering@redhat.com>
Define a sometimes-link-required function using ARGMATCH_DIE_DECL.
* tests/test-argmatch.c (ARGMATCH_DIE_DECL): When defined,
use this macro to create a function _definition_.
Remove useless "#undef ARGMATCH_DIE".
2007-11-14 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Update for OpenBSD 4.1.
Reported and helped by Ben Pfaff <blp@cs.stanford.edu>.
2007-11-12 Paul Eggert <eggert@cs.ucla.edu>
Document 64-bit #if problems in stdint.texi.
* doc/headers/stdint.texi (stdint.h): Mention problems with
64-bit-#if, and how to work around them.
Don't insist on 'long long int' support in the preprocessor. It
breaks too many things. For example, PRIdMAX still uses a 'long
long int' format with the latest Sun compiler, even though
HAVE_LONG_LONG_INT isn't defined due to that compiler's
preprocessor problem. This causes the latest coreutils to dump
core on Solaris 10 sparc with the Sun C compiler.
Instead, fix the 2007-10-16 problem in a different way, by evaluating
the troublesome expressions at configure-time, not at #if-time.
* m4/longlong.m4 (_AC_TYPE_LONG_LONG_SNIPPET): Don't test the
preprocessor.
* m4/inttypes.m4 (gl_INTTYPES_H): Move the #if checks into
compile-time C checks, done at 'configure'-time.
(gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION): New macro.
* modules/inttypes (Makefile): Substitute the new symbols that
gl_INTTYPES_H now generates.
* lib/inttypes.in.h: Don't use constants wider than 'long' in #if.
2007-11-12 Bruno Haible <bruno@clisp.org>
Tests for Unicode character classification functions.
* modules/unictype/bidicategory-byname-tests: New file.
* modules/unictype/bidicategory-name-tests: New file.
* modules/unictype/bidicategory-of-tests: New file.
* modules/unictype/bidicategory-test-tests: New file.
* modules/unictype/block-list-tests: New file.
* modules/unictype/block-of-tests: New file.
* modules/unictype/block-test-tests: New file.
* modules/unictype/category-C-tests: New file.
* modules/unictype/category-Cc-tests: New file.
* modules/unictype/category-Cf-tests: New file.
* modules/unictype/category-Cn-tests: New file.
* modules/unictype/category-Co-tests: New file.
* modules/unictype/category-Cs-tests: New file.
* modules/unictype/category-L-tests: New file.
* modules/unictype/category-Ll-tests: New file.
* modules/unictype/category-Lm-tests: New file.
* modules/unictype/category-Lo-tests: New file.
* modules/unictype/category-Lt-tests: New file.
* modules/unictype/category-Lu-tests: New file.
* modules/unictype/category-M-tests: New file.
* modules/unictype/category-Mc-tests: New file.
* modules/unictype/category-Me-tests: New file.
* modules/unictype/category-Mn-tests: New file.
* modules/unictype/category-N-tests: New file.
* modules/unictype/category-Nd-tests: New file.
* modules/unictype/category-Nl-tests: New file.
* modules/unictype/category-No-tests: New file.
* modules/unictype/category-P-tests: New file.
* modules/unictype/category-Pc-tests: New file.
* modules/unictype/category-Pd-tests: New file.
* modules/unictype/category-Pe-tests: New file.
* modules/unictype/category-Pf-tests: New file.
* modules/unictype/category-Pi-tests: New file.
* modules/unictype/category-Po-tests: New file.
* modules/unictype/category-Ps-tests: New file.
* modules/unictype/category-S-tests: New file.
* modules/unictype/category-Sc-tests: New file.
* modules/unictype/category-Sk-tests: New file.
* modules/unictype/category-Sm-tests: New file.
* modules/unictype/category-So-tests: New file.
* modules/unictype/category-Z-tests: New file.
* modules/unictype/category-Zl-tests: New file.
* modules/unictype/category-Zp-tests: New file.
* modules/unictype/category-Zs-tests: New file.
* modules/unictype/category-and-not-tests: New file.
* modules/unictype/category-and-tests: New file.
* modules/unictype/category-byname-tests: New file.
* modules/unictype/category-name-tests: New file.
* modules/unictype/category-none-tests: New file.
* modules/unictype/category-of-tests: New file.
* modules/unictype/category-or-tests: New file.
* modules/unictype/category-test-withtable-tests: New file.
* modules/unictype/combining-class-tests: New file.
* modules/unictype/ctype-alnum-tests: New file.
* modules/unictype/ctype-alpha-tests: New file.
* modules/unictype/ctype-blank-tests: New file.
* modules/unictype/ctype-cntrl-tests: New file.
* modules/unictype/ctype-digit-tests: New file.
* modules/unictype/ctype-graph-tests: New file.
* modules/unictype/ctype-lower-tests: New file.
* modules/unictype/ctype-print-tests: New file.
* modules/unictype/ctype-punct-tests: New file.
* modules/unictype/ctype-space-tests: New file.
* modules/unictype/ctype-upper-tests: New file.
* modules/unictype/ctype-xdigit-tests: New file.
* modules/unictype/decimal-digit-tests: New file.
* modules/unictype/digit-tests: New file.
* modules/unictype/mirror-tests: New file.
* modules/unictype/numeric-tests: New file.
* modules/unictype/property-alphabetic-tests: New file.
* modules/unictype/property-ascii-hex-digit-tests: New file.
* modules/unictype/property-bidi-arabic-digit-tests: New file.
* modules/unictype/property-bidi-arabic-right-to-left-tests: New file.
* modules/unictype/property-bidi-block-separator-tests: New file.
* modules/unictype/property-bidi-boundary-neutral-tests: New file.
* modules/unictype/property-bidi-common-separator-tests: New file.
* modules/unictype/property-bidi-control-tests: New file.
* modules/unictype/property-bidi-embedding-or-override-tests: New file.
* modules/unictype/property-bidi-eur-num-separator-tests: New file.
* modules/unictype/property-bidi-eur-num-terminator-tests: New file.
* modules/unictype/property-bidi-european-digit-tests: New file.
* modules/unictype/property-bidi-hebrew-right-to-left-tests: New file.
* modules/unictype/property-bidi-left-to-right-tests: New file.
* modules/unictype/property-bidi-non-spacing-mark-tests: New file.
* modules/unictype/property-bidi-other-neutral-tests: New file.
* modules/unictype/property-bidi-pdf-tests: New file.
* modules/unictype/property-bidi-segment-separator-tests: New file.
* modules/unictype/property-bidi-whitespace-tests: New file.
* modules/unictype/property-byname-tests: New file.
* modules/unictype/property-combining-tests: New file.
* modules/unictype/property-composite-tests: New file.
* modules/unictype/property-currency-symbol-tests: New file.
* modules/unictype/property-dash-tests: New file.
* modules/unictype/property-decimal-digit-tests: New file.
* modules/unictype/property-default-ignorable-code-point-tests: New file.
* modules/unictype/property-deprecated-tests: New file.
* modules/unictype/property-diacritic-tests: New file.
* modules/unictype/property-extender-tests: New file.
* modules/unictype/property-format-control-tests: New file.
* modules/unictype/property-grapheme-base-tests: New file.
* modules/unictype/property-grapheme-extend-tests: New file.
* modules/unictype/property-grapheme-link-tests: New file.
* modules/unictype/property-hex-digit-tests: New file.
* modules/unictype/property-hyphen-tests: New file.
* modules/unictype/property-id-continue-tests: New file.
* modules/unictype/property-id-start-tests: New file.
* modules/unictype/property-ideographic-tests: New file.
* modules/unictype/property-ids-binary-operator-tests: New file.
* modules/unictype/property-ids-trinary-operator-tests: New file.
* modules/unictype/property-ignorable-control-tests: New file.
* modules/unictype/property-iso-control-tests: New file.
* modules/unictype/property-join-control-tests: New file.
* modules/unictype/property-left-of-pair-tests: New file.
* modules/unictype/property-line-separator-tests: New file.
* modules/unictype/property-logical-order-exception-tests: New file.
* modules/unictype/property-lowercase-tests: New file.
* modules/unictype/property-math-tests: New file.
* modules/unictype/property-non-break-tests: New file.
* modules/unictype/property-not-a-character-tests: New file.
* modules/unictype/property-numeric-tests: New file.
* modules/unictype/property-other-alphabetic-tests: New file.
* modules/unictype/property-other-default-ignorable-code-point-tests: New file.
* modules/unictype/property-other-grapheme-extend-tests: New file.
* modules/unictype/property-other-id-continue-tests: New file.
* modules/unictype/property-other-id-start-tests: New file.
* modules/unictype/property-other-lowercase-tests: New file.
* modules/unictype/property-other-math-tests: New file.
* modules/unictype/property-other-uppercase-tests: New file.
* modules/unictype/property-paired-punctuation-tests: New file.
* modules/unictype/property-paragraph-separator-tests: New file.
* modules/unictype/property-pattern-syntax-tests: New file.
* modules/unictype/property-pattern-white-space-tests: New file.
* modules/unictype/property-private-use-tests: New file.
* modules/unictype/property-punctuation-tests: New file.
* modules/unictype/property-quotation-mark-tests: New file.
* modules/unictype/property-radical-tests: New file.
* modules/unictype/property-sentence-terminal-tests: New file.
* modules/unictype/property-soft-dotted-tests: New file.
* modules/unictype/property-space-tests: New file.
* modules/unictype/property-terminal-punctuation-tests: New file.
* modules/unictype/property-test-tests: New file.
* modules/unictype/property-titlecase-tests: New file.
* modules/unictype/property-unassigned-code-value-tests: New file.
* modules/unictype/property-unified-ideograph-tests: New file.
* modules/unictype/property-uppercase-tests: New file.
* modules/unictype/property-variation-selector-tests: New file.
* modules/unictype/property-white-space-tests: New file.
* modules/unictype/property-xid-continue-tests: New file.
* modules/unictype/property-xid-start-tests: New file.
* modules/unictype/property-zero-width-tests: New file.
* modules/unictype/scripts-tests: New file.
* modules/unictype/syntax-c-ident-tests: New file.
* modules/unictype/syntax-c-whitespace-tests: New file.
* modules/unictype/syntax-java-ident-tests: New file.
* modules/unictype/syntax-java-whitespace-tests: New file.
* tests/unictype/test-bidi_byname.c: New file.
* tests/unictype/test-bidi_name.c: New file.
* tests/unictype/test-bidi_of.c: New file.
* tests/unictype/test-bidi_test.c: New file.
* tests/unictype/test-block_list.c: New file.
* tests/unictype/test-block_of.c: New file.
* tests/unictype/test-block_test.c: New file.
* tests/unictype/test-categ_and.c: New file.
* tests/unictype/test-categ_and_not.c: New file.
* tests/unictype/test-categ_byname.c: New file.
* tests/unictype/test-categ_name.c: New file.
* tests/unictype/test-categ_none.c: New file.
* tests/unictype/test-categ_of.c: New file.
* tests/unictype/test-categ_or.c: New file.
* tests/unictype/test-categ_test_withtable.c: New file.
* tests/unictype/test-combining.c: New file.
* tests/unictype/test-decdigit.c: New file.
* tests/unictype/test-digit.c: New file.
* tests/unictype/test-mirror.c: New file.
* tests/unictype/test-numeric.c: New file.
* tests/unictype/test-pr_byname.c: New file.
* tests/unictype/test-pr_test.c: New file.
* tests/unictype/test-predicate-part1.h: New file.
* tests/unictype/test-predicate-part2.h: New file.
* tests/unictype/test-scripts.c: New file.
* tests/unictype/test-sy_c_ident.c: New file.
* tests/unictype/test-sy_java_ident.c: New file.
* tests/unictype/test-categ_C.c: New file, generated by gen-ctype.c
for Unicode 5.0.0.
* tests/unictype/test-categ_Cc.c: Likewise.
* tests/unictype/test-categ_Cf.c: Likewise.
* tests/unictype/test-categ_Cn.c: Likewise.
* tests/unictype/test-categ_Co.c: Likewise.
* tests/unictype/test-categ_Cs.c: Likewise.
* tests/unictype/test-categ_L.c: Likewise.
* tests/unictype/test-categ_Ll.c: Likewise.
* tests/unictype/test-categ_Lm.c: Likewise.
* tests/unictype/test-categ_Lo.c: Likewise.
* tests/unictype/test-categ_Lt.c: Likewise.
* tests/unictype/test-categ_Lu.c: Likewise.
* tests/unictype/test-categ_M.c: Likewise.
* tests/unictype/test-categ_Mc.c: Likewise.
* tests/unictype/test-categ_Me.c: Likewise.
* tests/unictype/test-categ_Mn.c: Likewise.
* tests/unictype/test-categ_N.c: Likewise.
* tests/unictype/test-categ_Nd.c: Likewise.
* tests/unictype/test-categ_Nl.c: Likewise.
* tests/unictype/test-categ_No.c: Likewise.
* tests/unictype/test-categ_P.c: Likewise.
* tests/unictype/test-categ_Pc.c: Likewise.
* tests/unictype/test-categ_Pd.c: Likewise.
* tests/unictype/test-categ_Pe.c: Likewise.
* tests/unictype/test-categ_Pf.c: Likewise.
* tests/unictype/test-categ_Pi.c: Likewise.
* tests/unictype/test-categ_Po.c: Likewise.
* tests/unictype/test-categ_Ps.c: Likewise.
* tests/unictype/test-categ_S.c: Likewise.
* tests/unictype/test-categ_Sc.c: Likewise.
* tests/unictype/test-categ_Sk.c: Likewise.
* tests/unictype/test-categ_Sm.c: Likewise.
* tests/unictype/test-categ_So.c: Likewise.
* tests/unictype/test-categ_Z.c: Likewise.
* tests/unictype/test-categ_Zl.c: Likewise.
* tests/unictype/test-categ_Zp.c: Likewise.
* tests/unictype/test-categ_Zs.c: Likewise.
* tests/unictype/test-ctype_alnum.c: Likewise.
* tests/unictype/test-ctype_alpha.c: Likewise.
* tests/unictype/test-ctype_blank.c: Likewise.
* tests/unictype/test-ctype_cntrl.c: Likewise.
* tests/unictype/test-ctype_digit.c: Likewise.
* tests/unictype/test-ctype_graph.c: Likewise.
* tests/unictype/test-ctype_lower.c: Likewise.
* tests/unictype/test-ctype_print.c: Likewise.
* tests/unictype/test-ctype_punct.c: Likewise.
* tests/unictype/test-ctype_space.c: Likewise.
* tests/unictype/test-ctype_upper.c: Likewise.
* tests/unictype/test-ctype_xdigit.c: Likewise.
* tests/unictype/test-decdigit.h: Likewise.
* tests/unictype/test-digit.h: Likewise.
* tests/unictype/test-numeric.h: Likewise.
* tests/unictype/test-pr_alphabetic.c: Likewise.
* tests/unictype/test-pr_ascii_hex_digit.c: Likewise.
* tests/unictype/test-pr_bidi_arabic_digit.c: Likewise.
* tests/unictype/test-pr_bidi_arabic_right_to_left.c: Likewise.
* tests/unictype/test-pr_bidi_block_separator.c: Likewise.
* tests/unictype/test-pr_bidi_boundary_neutral.c: Likewise.
* tests/unictype/test-pr_bidi_common_separator.c: Likewise.
* tests/unictype/test-pr_bidi_control.c: Likewise.
* tests/unictype/test-pr_bidi_embedding_or_override.c: Likewise.
* tests/unictype/test-pr_bidi_eur_num_separator.c: Likewise.
* tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise.
* tests/unictype/test-pr_bidi_european_digit.c: Likewise.
* tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise.
* tests/unictype/test-pr_bidi_left_to_right.c: Likewise.
* tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise.
* tests/unictype/test-pr_bidi_other_neutral.c: Likewise.
* tests/unictype/test-pr_bidi_pdf.c: Likewise.
* tests/unictype/test-pr_bidi_segment_separator.c: Likewise.
* tests/unictype/test-pr_bidi_whitespace.c: Likewise.
* tests/unictype/test-pr_combining.c: Likewise.
* tests/unictype/test-pr_composite.c: Likewise.
* tests/unictype/test-pr_currency_symbol.c: Likewise.
* tests/unictype/test-pr_dash.c: Likewise.
* tests/unictype/test-pr_decimal_digit.c: Likewise.
* tests/unictype/test-pr_default_ignorable_code_point.c: Likewise.
* tests/unictype/test-pr_deprecated.c: Likewise.
* tests/unictype/test-pr_diacritic.c: Likewise.
* tests/unictype/test-pr_extender.c: Likewise.
* tests/unictype/test-pr_format_control.c: Likewise.
* tests/unictype/test-pr_grapheme_base.c: Likewise.
* tests/unictype/test-pr_grapheme_extend.c: Likewise.
* tests/unictype/test-pr_grapheme_link.c: Likewise.
* tests/unictype/test-pr_hex_digit.c: Likewise.
* tests/unictype/test-pr_hyphen.c: Likewise.
* tests/unictype/test-pr_id_continue.c: Likewise.
* tests/unictype/test-pr_id_start.c: Likewise.
* tests/unictype/test-pr_ideographic.c: Likewise.
* tests/unictype/test-pr_ids_binary_operator.c: Likewise.
* tests/unictype/test-pr_ids_trinary_operator.c: Likewise.
* tests/unictype/test-pr_ignorable_control.c: Likewise.
* tests/unictype/test-pr_iso_control.c: Likewise.
* tests/unictype/test-pr_join_control.c: Likewise.
* tests/unictype/test-pr_left_of_pair.c: Likewise.
* tests/unictype/test-pr_line_separator.c: Likewise.
* tests/unictype/test-pr_logical_order_exception.c: Likewise.
* tests/unictype/test-pr_lowercase.c: Likewise.
* tests/unictype/test-pr_math.c: Likewise.
* tests/unictype/test-pr_non_break.c: Likewise.
* tests/unictype/test-pr_not_a_character.c: Likewise.
* tests/unictype/test-pr_numeric.c: Likewise.
* tests/unictype/test-pr_other_alphabetic.c: Likewise.
* tests/unictype/test-pr_other_default_ignorable_code_point.c: Likewise.
* tests/unictype/test-pr_other_grapheme_extend.c: Likewise.
* tests/unictype/test-pr_other_id_continue.c: Likewise.
* tests/unictype/test-pr_other_id_start.c: Likewise.
* tests/unictype/test-pr_other_lowercase.c: Likewise.
* tests/unictype/test-pr_other_math.c: Likewise.
* tests/unictype/test-pr_other_uppercase.c: Likewise.
* tests/unictype/test-pr_paired_punctuation.c: Likewise.
* tests/unictype/test-pr_paragraph_separator.c: Likewise.
* tests/unictype/test-pr_pattern_syntax.c: Likewise.
* tests/unictype/test-pr_pattern_white_space.c: Likewise.
* tests/unictype/test-pr_private_use.c: Likewise.
* tests/unictype/test-pr_punctuation.c: Likewise.
* tests/unictype/test-pr_quotation_mark.c: Likewise.
* tests/unictype/test-pr_radical.c: Likewise.
* tests/unictype/test-pr_sentence_terminal.c: Likewise.
* tests/unictype/test-pr_soft_dotted.c: Likewise.
* tests/unictype/test-pr_space.c: Likewise.
* tests/unictype/test-pr_terminal_punctuation.c: Likewise.
* tests/unictype/test-pr_titlecase.c: Likewise.
* tests/unictype/test-pr_unassigned_code_value.c: Likewise.
* tests/unictype/test-pr_unified_ideograph.c: Likewise.
* tests/unictype/test-pr_uppercase.c: Likewise.
* tests/unictype/test-pr_variation_selector.c: Likewise.
* tests/unictype/test-pr_white_space.c: Likewise.
* tests/unictype/test-pr_xid_continue.c: Likewise.
* tests/unictype/test-pr_xid_start.c: Likewise.
* tests/unictype/test-pr_zero_width.c: Likewise.
* tests/unictype/test-sy_c_whitespace.c: Likewise.
* tests/unictype/test-sy_java_whitespace.c: Likewise.
2007-11-12 Bruno Haible <bruno@clisp.org>
Unicode character classification functions.
* lib/unictype.h: New file.
* modules/unictype/base: New file.
* modules/unictype/category-L: New file.
* modules/unictype/category-Lu: New file.
* modules/unictype/category-Ll: New file.
* modules/unictype/category-Lt: New file.
* modules/unictype/category-Lm: New file.
* modules/unictype/category-Lo: New file.
* modules/unictype/category-M: New file.
* modules/unictype/category-Mn: New file.
* modules/unictype/category-Mc: New file.
* modules/unictype/category-Me: New file.
* modules/unictype/category-N: New file.
* modules/unictype/category-Nd: New file.
* modules/unictype/category-Nl: New file.
* modules/unictype/category-No: New file.
* modules/unictype/category-P: New file.
* modules/unictype/category-Pc: New file.
* modules/unictype/category-Pd: New file.
* modules/unictype/category-Ps: New file.
* modules/unictype/category-Pe: New file.
* modules/unictype/category-Pi: New file.
* modules/unictype/category-Pf: New file.
* modules/unictype/category-Po: New file.
* modules/unictype/category-S: New file.
* modules/unictype/category-Sm: New file.
* modules/unictype/category-Sc: New file.
* modules/unictype/category-Sk: New file.
* modules/unictype/category-So: New file.
* modules/unictype/category-Z: New file.
* modules/unictype/category-Zs: New file.
* modules/unictype/category-Zl: New file.
* modules/unictype/category-Zp: New file.
* modules/unictype/category-C: New file.
* modules/unictype/category-Cc: New file.
* modules/unictype/category-Cf: New file.
* modules/unictype/category-Cs: New file.
* modules/unictype/category-Co: New file.
* modules/unictype/category-Cn: New file.
* modules/unictype/category-or: New file.
* modules/unictype/category-of: New file.
* modules/unictype/category-test: New file.
* modules/unictype/category-test-withtable: New file.
* modules/unictype/category-byname: New file.
* modules/unictype/category-none: New file.
* modules/unictype/category-and: New file.
* modules/unictype/category-and-not: New file.
* modules/unictype/category-name: New file.
* modules/unictype/combining-class: New file.
* modules/unictype/category-all: New file.
* modules/unictype/bidicategory-all: New file.
* modules/unictype/bidicategory-byname: New file.
* modules/unictype/bidicategory-name: New file.
* modules/unictype/bidicategory-of: New file.
* modules/unictype/bidicategory-test: New file.
* modules/unictype/decimal-digit: New file.
* modules/unictype/digit: New file.
* modules/unictype/numeric: New file.
* modules/unictype/mirror: New file.
* modules/unictype/property-white-space: New file.
* modules/unictype/property-alphabetic: New file.
* modules/unictype/property-other-alphabetic: New file.
* modules/unictype/property-not-a-character: New file.
* modules/unictype/property-default-ignorable-code-point: New file.
* modules/unictype/property-other-default-ignorable-code-point: New
file.
* modules/unictype/property-deprecated: New file.
* modules/unictype/property-logical-order-exception: New file.
* modules/unictype/property-variation-selector: New file.
* modules/unictype/property-private-use: New file.
* modules/unictype/property-unassigned-code-value: New file.
* modules/unictype/property-uppercase: New file.
* modules/unictype/property-other-uppercase: New file.
* modules/unictype/property-lowercase: New file.
* modules/unictype/property-other-lowercase: New file.
* modules/unictype/property-titlecase: New file.
* modules/unictype/property-soft-dotted: New file.
* modules/unictype/property-id-start: New file.
* modules/unictype/property-other-id-start: New file.
* modules/unictype/property-id-continue: New file.
* modules/unictype/property-other-id-continue: New file.
* modules/unictype/property-xid-start: New file.
* modules/unictype/property-xid-continue: New file.
* modules/unictype/property-pattern-white-space: New file.
* modules/unictype/property-pattern-syntax: New file.
* modules/unictype/property-join-control: New file.
* modules/unictype/property-grapheme-base: New file.
* modules/unictype/property-grapheme-extend: New file.
* modules/unictype/property-other-grapheme-extend: New file.
* modules/unictype/property-grapheme-link: New file.
* modules/unictype/property-bidi-control: New file.
* modules/unictype/property-bidi-left-to-right: New file.
* modules/unictype/property-bidi-hebrew-right-to-left: New file.
* modules/unictype/property-bidi-arabic-right-to-left: New file.
* modules/unictype/property-bidi-european-digit: New file.
* modules/unictype/property-bidi-eur-num-separator: New file.
* modules/unictype/property-bidi-eur-num-terminator: New file.
* modules/unictype/property-bidi-arabic-digit: New file.
* modules/unictype/property-bidi-common-separator: New file.
* modules/unictype/property-bidi-block-separator: New file.
* modules/unictype/property-bidi-segment-separator: New file.
* modules/unictype/property-bidi-whitespace: New file.
* modules/unictype/property-bidi-non-spacing-mark: New file.
* modules/unictype/property-bidi-boundary-neutral: New file.
* modules/unictype/property-bidi-pdf: New file.
* modules/unictype/property-bidi-embedding-or-override: New file.
* modules/unictype/property-bidi-other-neutral: New file.
* modules/unictype/property-hex-digit: New file.
* modules/unictype/property-ascii-hex-digit: New file.
* modules/unictype/property-ideographic: New file.
* modules/unictype/property-unified-ideograph: New file.
* modules/unictype/property-radical: New file.
* modules/unictype/property-ids-binary-operator: New file.
* modules/unictype/property-ids-trinary-operator: New file.
* modules/unictype/property-zero-width: New file.
* modules/unictype/property-space: New file.
* modules/unictype/property-non-break: New file.
* modules/unictype/property-iso-control: New file.
* modules/unictype/property-format-control: New file.
* modules/unictype/property-dash: New file.
* modules/unictype/property-hyphen: New file.
* modules/unictype/property-punctuation: New file.
* modules/unictype/property-line-separator: New file.
* modules/unictype/property-paragraph-separator: New file.
* modules/unictype/property-quotation-mark: New file.
* modules/unictype/property-sentence-terminal: New file.
* modules/unictype/property-terminal-punctuation: New file.
* modules/unictype/property-currency-symbol: New file.
* modules/unictype/property-math: New file.
* modules/unictype/property-other-math: New file.
* modules/unictype/property-paired-punctuation: New file.
* modules/unictype/property-left-of-pair: New file.
* modules/unictype/property-combining: New file.
* modules/unictype/property-composite: New file.
* modules/unictype/property-decimal-digit: New file.
* modules/unictype/property-numeric: New file.
* modules/unictype/property-diacritic: New file.
* modules/unictype/property-extender: New file.
* modules/unictype/property-ignorable-control: New file.
* modules/unictype/property-test: New file.
* modules/unictype/property-byname: New file.
* modules/unictype/property-all: New file.
* modules/unictype/scripts: New file.
* modules/unictype/scripts-all: New file.
* modules/unictype/block-of: New file.
* modules/unictype/block-test: New file.
* modules/unictype/block-list: New file.
* modules/unictype/block-all: New file.
* modules/unictype/syntax-c-whitespace: New file.
* modules/unictype/syntax-java-whitespace: New file.
* modules/unictype/syntax-c-ident: New file.
* modules/unictype/syntax-java-ident: New file.
* modules/unictype/ctype-alnum: New file.
* modules/unictype/ctype-alpha: New file.
* modules/unictype/ctype-cntrl: New file.
* modules/unictype/ctype-digit: New file.
* modules/unictype/ctype-graph: New file.
* modules/unictype/ctype-lower: New file.
* modules/unictype/ctype-print: New file.
* modules/unictype/ctype-punct: New file.
* modules/unictype/ctype-space: New file.
* modules/unictype/ctype-upper: New file.
* modules/unictype/ctype-xdigit: New file.
* modules/unictype/ctype-blank: New file.
* lib/unictype/bidi_byname.c: New file.
* lib/unictype/bidi_name.c: New file.
* lib/unictype/bidi_of.c: New file.
* lib/unictype/bidi_test.c: New file.
* lib/unictype/bitmap.h: New file.
* lib/unictype/block_test.c: New file.
* lib/unictype/blocks.c: New file.
* lib/unictype/categ_C.c: New file.
* lib/unictype/categ_Cc.c: New file.
* lib/unictype/categ_Cf.c: New file.
* lib/unictype/categ_Cn.c: New file.
* lib/unictype/categ_Co.c: New file.
* lib/unictype/categ_Cs.c: New file.
* lib/unictype/categ_L.c: New file.
* lib/unictype/categ_Ll.c: New file.
* lib/unictype/categ_Lm.c: New file.
* lib/unictype/categ_Lo.c: New file.
* lib/unictype/categ_Lt.c: New file.
* lib/unictype/categ_Lu.c: New file.
* lib/unictype/categ_M.c: New file.
* lib/unictype/categ_Mc.c: New file.
* lib/unictype/categ_Me.c: New file.
* lib/unictype/categ_Mn.c: New file.
* lib/unictype/categ_N.c: New file.
* lib/unictype/categ_Nd.c: New file.
* lib/unictype/categ_Nl.c: New file.
* lib/unictype/categ_No.c: New file.
* lib/unictype/categ_P.c: New file.
* lib/unictype/categ_Pc.c: New file.
* lib/unictype/categ_Pd.c: New file.
* lib/unictype/categ_Pe.c: New file.
* lib/unictype/categ_Pf.c: New file.
* lib/unictype/categ_Pi.c: New file.
* lib/unictype/categ_Po.c: New file.
* lib/unictype/categ_Ps.c: New file.
* lib/unictype/categ_S.c: New file.
* lib/unictype/categ_Sc.c: New file.
* lib/unictype/categ_Sk.c: New file.
* lib/unictype/categ_Sm.c: New file.
* lib/unictype/categ_So.c: New file.
* lib/unictype/categ_Z.c: New file.
* lib/unictype/categ_Zl.c: New file.
* lib/unictype/categ_Zp.c: New file.
* lib/unictype/categ_Zs.c: New file.
* lib/unictype/categ_and.c: New file.
* lib/unictype/categ_and_not.c: New file.
* lib/unictype/categ_byname.c: New file.
* lib/unictype/categ_name.c: New file.
* lib/unictype/categ_none.c: New file.
* lib/unictype/categ_of.c: New file.
* lib/unictype/categ_or.c: New file.
* lib/unictype/categ_test.c: New file.
* lib/unictype/combining.c: New file.
* lib/unictype/ctype_alnum.c: New file.
* lib/unictype/ctype_alpha.c: New file.
* lib/unictype/ctype_blank.c: New file.
* lib/unictype/ctype_cntrl.c: New file.
* lib/unictype/ctype_digit.c: New file.
* lib/unictype/ctype_graph.c: New file.
* lib/unictype/ctype_lower.c: New file.
* lib/unictype/ctype_print.c: New file.
* lib/unictype/ctype_punct.c: New file.
* lib/unictype/ctype_space.c: New file.
* lib/unictype/ctype_upper.c: New file.
* lib/unictype/ctype_xdigit.c: New file.
* lib/unictype/decdigit.c: New file.
* lib/unictype/digit.c: New file.
* lib/unictype/identsyntaxmap.h: New file.
* lib/unictype/mirror.c: New file.
* lib/unictype/numeric.c: New file.
* lib/unictype/pr_alphabetic.c: New file.
* lib/unictype/pr_ascii_hex_digit.c: New file.
* lib/unictype/pr_bidi_arabic_digit.c: New file.
* lib/unictype/pr_bidi_arabic_right_to_left.c: New file.
* lib/unictype/pr_bidi_block_separator.c: New file.
* lib/unictype/pr_bidi_boundary_neutral.c: New file.
* lib/unictype/pr_bidi_common_separator.c: New file.
* lib/unictype/pr_bidi_control.c: New file.
* lib/unictype/pr_bidi_embedding_or_override.c: New file.
* lib/unictype/pr_bidi_eur_num_separator.c: New file.
* lib/unictype/pr_bidi_eur_num_terminator.c: New file.
* lib/unictype/pr_bidi_european_digit.c: New file.
* lib/unictype/pr_bidi_hebrew_right_to_left.c: New file.
* lib/unictype/pr_bidi_left_to_right.c: New file.
* lib/unictype/pr_bidi_non_spacing_mark.c: New file.
* lib/unictype/pr_bidi_other_neutral.c: New file.
* lib/unictype/pr_bidi_pdf.c: New file.
* lib/unictype/pr_bidi_segment_separator.c: New file.
* lib/unictype/pr_bidi_whitespace.c: New file.
* lib/unictype/pr_byname.c: New file.
* lib/unictype/pr_byname.gperf: New file.
* lib/unictype/pr_combining.c: New file.
* lib/unictype/pr_composite.c: New file.
* lib/unictype/pr_currency_symbol.c: New file.
* lib/unictype/pr_dash.c: New file.
* lib/unictype/pr_decimal_digit.c: New file.
* lib/unictype/pr_default_ignorable_code_point.c: New file.
* lib/unictype/pr_deprecated.c: New file.
* lib/unictype/pr_diacritic.c: New file.
* lib/unictype/pr_extender.c: New file.
* lib/unictype/pr_format_control.c: New file.
* lib/unictype/pr_grapheme_base.c: New file.
* lib/unictype/pr_grapheme_extend.c: New file.
* lib/unictype/pr_grapheme_link.c: New file.
* lib/unictype/pr_hex_digit.c: New file.
* lib/unictype/pr_hyphen.c: New file.
* lib/unictype/pr_id_continue.c: New file.
* lib/unictype/pr_id_start.c: New file.
* lib/unictype/pr_ideographic.c: New file.
* lib/unictype/pr_ids_binary_operator.c: New file.
* lib/unictype/pr_ids_trinary_operator.c: New file.
* lib/unictype/pr_ignorable_control.c: New file.
* lib/unictype/pr_iso_control.c: New file.
* lib/unictype/pr_join_control.c: New file.
* lib/unictype/pr_left_of_pair.c: New file.
* lib/unictype/pr_line_separator.c: New file.
* lib/unictype/pr_logical_order_exception.c: New file.
* lib/unictype/pr_lowercase.c: New file.
* lib/unictype/pr_math.c: New file.
* lib/unictype/pr_non_break.c: New file.
* lib/unictype/pr_not_a_character.c: New file.
* lib/unictype/pr_numeric.c: New file.
* lib/unictype/pr_other_alphabetic.c: New file.
* lib/unictype/pr_other_default_ignorable_code_point.c: New file.
* lib/unictype/pr_other_grapheme_extend.c: New file.
* lib/unictype/pr_other_id_continue.c: New file.
* lib/unictype/pr_other_id_start.c: New file.
* lib/unictype/pr_other_lowercase.c: New file.
* lib/unictype/pr_other_math.c: New file.
* lib/unictype/pr_other_uppercase.c: New file.
* lib/unictype/pr_paired_punctuation.c: New file.
* lib/unictype/pr_paragraph_separator.c: New file.
* lib/unictype/pr_pattern_syntax.c: New file.
* lib/unictype/pr_pattern_white_space.c: New file.
* lib/unictype/pr_private_use.c: New file.
* lib/unictype/pr_punctuation.c: New file.
* lib/unictype/pr_quotation_mark.c: New file.
* lib/unictype/pr_radical.c: New file.
* lib/unictype/pr_sentence_terminal.c: New file.
* lib/unictype/pr_soft_dotted.c: New file.
* lib/unictype/pr_space.c: New file.
* lib/unictype/pr_terminal_punctuation.c: New file.
* lib/unictype/pr_test.c: New file.
* lib/unictype/pr_titlecase.c: New file.
* lib/unictype/pr_unassigned_code_value.c: New file.
* lib/unictype/pr_unified_ideograph.c: New file.
* lib/unictype/pr_uppercase.c: New file.
* lib/unictype/pr_variation_selector.c: New file.
* lib/unictype/pr_white_space.c: New file.
* lib/unictype/pr_xid_continue.c: New file.
* lib/unictype/pr_xid_start.c: New file.
* lib/unictype/pr_zero_width.c: New file.
* lib/unictype/scripts.c: New file.
* lib/unictype/sy_c_ident.c: New file.
* lib/unictype/sy_c_whitespace.c: New file.
* lib/unictype/sy_java_ident.c: New file.
* lib/unictype/sy_java_whitespace.c: New file.
* lib/unictype/bidi_of.h: New file, generated by gen-ctype.c for
Unicode 5.0.0.
* lib/unictype/blocks.h: Likewise.
* lib/unictype/categ_C.h: Likewise.
* lib/unictype/categ_Cc.h: Likewise.
* lib/unictype/categ_Cf.h: Likewise.
* lib/unictype/categ_Cn.h: Likewise.
* lib/unictype/categ_Co.h: Likewise.
* lib/unictype/categ_Cs.h: Likewise.
* lib/unictype/categ_L.h: Likewise.
* lib/unictype/categ_Ll.h: Likewise.
* lib/unictype/categ_Lm.h: Likewise.
* lib/unictype/categ_Lo.h: Likewise.
* lib/unictype/categ_Lt.h: Likewise.
* lib/unictype/categ_Lu.h: Likewise.
* lib/unictype/categ_M.h: Likewise.
* lib/unictype/categ_Mc.h: Likewise.
* lib/unictype/categ_Me.h: Likewise.
* lib/unictype/categ_Mn.h: Likewise.
* lib/unictype/categ_N.h: Likewise.
* lib/unictype/categ_Nd.h: Likewise.
* lib/unictype/categ_Nl.h: Likewise.
* lib/unictype/categ_No.h: Likewise.
* lib/unictype/categ_P.h: Likewise.
* lib/unictype/categ_Pc.h: Likewise.
* lib/unictype/categ_Pd.h: Likewise.
* lib/unictype/categ_Pe.h: Likewise.
* lib/unictype/categ_Pf.h: Likewise.
* lib/unictype/categ_Pi.h: Likewise.
* lib/unictype/categ_Po.h: Likewise.
* lib/unictype/categ_Ps.h: Likewise.
* lib/unictype/categ_S.h: Likewise.
* lib/unictype/categ_Sc.h: Likewise.
* lib/unictype/categ_Sk.h: Likewise.
* lib/unictype/categ_Sm.h: Likewise.
* lib/unictype/categ_So.h: Likewise.
* lib/unictype/categ_Z.h: Likewise.
* lib/unictype/categ_Zl.h: Likewise.
* lib/unictype/categ_Zp.h: Likewise.
* lib/unictype/categ_Zs.h: Likewise.
* lib/unictype/categ_of.h: Likewise.
* lib/unictype/combining.h: Likewise.
* lib/unictype/ctype_alnum.h: Likewise.
* lib/unictype/ctype_alpha.h: Likewise.
* lib/unictype/ctype_blank.h: Likewise.
* lib/unictype/ctype_cntrl.h: Likewise.
* lib/unictype/ctype_digit.h: Likewise.
* lib/unictype/ctype_graph.h: Likewise.
* lib/unictype/ctype_lower.h: Likewise.
* lib/unictype/ctype_print.h: Likewise.
* lib/unictype/ctype_punct.h: Likewise.
* lib/unictype/ctype_space.h: Likewise.
* lib/unictype/ctype_upper.h: Likewise.
* lib/unictype/ctype_xdigit.h: Likewise.
* lib/unictype/decdigit.h: Likewise.
* lib/unictype/digit.h: Likewise.
* lib/unictype/mirror.h: Likewise.
* lib/unictype/numeric.h: Likewise.
* lib/unictype/pr_alphabetic.h: Likewise.
* lib/unictype/pr_ascii_hex_digit.h: Likewise.
* lib/unictype/pr_bidi_arabic_digit.h: Likewise.
* lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_block_separator.h: Likewise.
* lib/unictype/pr_bidi_boundary_neutral.h: Likewise.
* lib/unictype/pr_bidi_common_separator.h: Likewise.
* lib/unictype/pr_bidi_control.h: Likewise.
* lib/unictype/pr_bidi_embedding_or_override.h: Likewise.
* lib/unictype/pr_bidi_eur_num_separator.h: Likewise.
* lib/unictype/pr_bidi_eur_num_terminator.h: Likewise.
* lib/unictype/pr_bidi_european_digit.h: Likewise.
* lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise.
* lib/unictype/pr_bidi_left_to_right.h: Likewise.
* lib/unictype/pr_bidi_non_spacing_mark.h: Likewise.
* lib/unictype/pr_bidi_other_neutral.h: Likewise.
* lib/unictype/pr_bidi_pdf.h: Likewise.
* lib/unictype/pr_bidi_segment_separator.h: Likewise.
* lib/unictype/pr_bidi_whitespace.h: Likewise.
* lib/unictype/pr_combining.h: Likewise.
* lib/unictype/pr_composite.h: Likewise.
* lib/unictype/pr_currency_symbol.h: Likewise.
* lib/unictype/pr_dash.h: Likewise.
* lib/unictype/pr_decimal_digit.h: Likewise.
* lib/unictype/pr_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_deprecated.h: Likewise.
* lib/unictype/pr_diacritic.h: Likewise.
* lib/unictype/pr_extender.h: Likewise.
* lib/unictype/pr_format_control.h: Likewise.
* lib/unictype/pr_grapheme_base.h: Likewise.
* lib/unictype/pr_grapheme_extend.h: Likewise.
* lib/unictype/pr_grapheme_link.h: Likewise.
* lib/unictype/pr_hex_digit.h: Likewise.
* lib/unictype/pr_hyphen.h: Likewise.
* lib/unictype/pr_id_continue.h: Likewise.
* lib/unictype/pr_id_start.h: Likewise.
* lib/unictype/pr_ideographic.h: Likewise.
* lib/unictype/pr_ids_binary_operator.h: Likewise.
* lib/unictype/pr_ids_trinary_operator.h: Likewise.
* lib/unictype/pr_ignorable_control.h: Likewise.
* lib/unictype/pr_iso_control.h: Likewise.
* lib/unictype/pr_join_control.h: Likewise.
* lib/unictype/pr_left_of_pair.h: Likewise.
* lib/unictype/pr_line_separator.h: Likewise.
* lib/unictype/pr_logical_order_exception.h: Likewise.
* lib/unictype/pr_lowercase.h: Likewise.
* lib/unictype/pr_math.h: Likewise.
* lib/unictype/pr_non_break.h: Likewise.
* lib/unictype/pr_not_a_character.h: Likewise.
* lib/unictype/pr_numeric.h: Likewise.
* lib/unictype/pr_other_alphabetic.h: Likewise.
* lib/unictype/pr_other_default_ignorable_code_point.h: Likewise.
* lib/unictype/pr_other_grapheme_extend.h: Likewise.
* lib/unictype/pr_other_id_continue.h: Likewise.
* lib/unictype/pr_other_id_start.h: Likewise.
* lib/unictype/pr_other_lowercase.h: Likewise.
* lib/unictype/pr_other_math.h: Likewise.
* lib/unictype/pr_other_uppercase.h: Likewise.
* lib/unictype/pr_paired_punctuation.h: Likewise.
* lib/unictype/pr_paragraph_separator.h: Likewise.
* lib/unictype/pr_pattern_syntax.h: Likewise.
* lib/unictype/pr_pattern_white_space.h: Likewise.
* lib/unictype/pr_private_use.h: Likewise.
* lib/unictype/pr_punctuation.h: Likewise.
* lib/unictype/pr_quotation_mark.h: Likewise.
* lib/unictype/pr_radical.h: Likewise.
* lib/unictype/pr_sentence_terminal.h: Likewise.
* lib/unictype/pr_soft_dotted.h: Likewise.
* lib/unictype/pr_space.h: Likewise.
* lib/unictype/pr_terminal_punctuation.h: Likewise.
* lib/unictype/pr_titlecase.h: Likewise.
* lib/unictype/pr_unassigned_code_value.h: Likewise.
* lib/unictype/pr_unified_ideograph.h: Likewise.
* lib/unictype/pr_uppercase.h: Likewise.
* lib/unictype/pr_variation_selector.h: Likewise.
* lib/unictype/pr_white_space.h: Likewise.
* lib/unictype/pr_xid_continue.h: Likewise.
* lib/unictype/pr_xid_start.h: Likewise.
* lib/unictype/pr_zero_width.h: Likewise.
* lib/unictype/scripts.h: Likewise.
* lib/unictype/scripts_byname.gperf: Likewise.
* lib/unictype/sy_c_ident.h: Likewise.
* lib/unictype/sy_c_whitespace.h: Likewise.
* lib/unictype/sy_java_ident.h: Likewise.
* lib/unictype/sy_java_whitespace.h: Likewise.
* lib/unictype/Makefile: New file.
* lib/unictype/gen-ctype.c: New file, based on gen-unicode-ctype.c in
glibc.
* lib/unictype/3level.h: New file, copied from glibc.
* lib/unictype/3levelbit.h: New file.
2007-11-11 Bruno Haible <bruno@clisp.org>
* modules/gperf: New file.
* modules/iconv_open (Depends-on): Add it.
(Makefile.am): Remove the GPERF definition.
2007-11-11 Bruno Haible <bruno@clisp.org>
* m4/round.m4 (gl_FUNC_ROUND): Test against NetBSD 3.0 bug.
* doc/functions/round.texi: Mention the NetBSD 3.0 bug.
2007-11-11 Bruno Haible <bruno@clisp.org>
* tests/test-argmatch.c (ARGMATCH_DIE): Undefine.
(usage): Remove function.
2007-11-11 Bruno Haible <bruno@clisp.org>
* m4/roundf.m4 (gl_FUNC_ROUNDF): Use gl_FUNC_FLOORF_LIBS and
gl_FUNC_CEILF_LIBS.
* m4/round.m4 (gl_FUNC_ROUND): Use gl_FUNC_FLOOR_LIBS and
gl_FUNC_CEIL_LIBS.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Use gl_FUNC_FLOORL_LIBS and
gl_FUNC_CEILL_LIBS.
* modules/roundf (Files): Add m4/floorf.m4, m4/ceilf.m4.
* modules/round (Files): Add m4/floor.m4, m4/ceil.m4.
* modules/roundl (Files): Add m4/floorl.m4, m4/ceill.m4.
2007-11-11 Bruno Haible <bruno@clisp.org>
* m4/roundf.m4 (gl_FUNC_ROUNDF): Handle the case that floorf and
roundf were declared but do not exist on functions.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Handle the case that floorl and
roundl were declared but do not exist on functions.
* lib/round.c (HAVE_FLOOR_AND_CEIL): Use HAVE_FLOORF_AND_CEILF and
HAVE_FLOORL_AND_CEILL, respectively.
Needed for Sun C on Solaris 10.
2007-11-11 Bruno Haible <bruno@clisp.org>
* m4/roundf.m4 (gl_FUNC_ROUNDF): Set REPLACE_ROUNDF instead of
HAVE_DECL_ROUNDF. Remove redundant AC_SUBST.
* m4/round.m4 (gl_FUNC_ROUND): Set REPLACE_ROUND instead of
HAVE_DECL_ROUND. Remove redundant AC_SUBST.
* m4/roundl.m4 (gl_FUNC_ROUNDL): Set REPLACE_ROUNDL instead of
HAVE_DECL_ROUNDL. Remove redundant AC_SUBST.
* lib/math.in.h (roundf): Use REPLACE_ROUNDF instead of
HAVE_DECL_ROUNDF.
(round): Use REPLACE_ROUND instead of HAVE_DECL_ROUND.
(roundl): Use REPLACE_ROUNDL instead of HAVE_DECL_ROUNDL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_ROUND* instead
of HAVE_DECL_ROUND*.
* modules/math (Makefile.am): Update.
2007-11-10 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Use same check for
ptrdiff_t as m4/intl.m4.
2007-11-10 Jim Meyering <meyering@redhat.com>
Avoid link failure for the argmatch test.
* tests/test-argmatch.c (usage): Define function to avoid a link
failure: argmatch_die requires a usage function.
2007-11-09 Bruno Haible <bruno@clisp.org>
* doc/functions/snprintf.texi: Mention BeOS deficiency.
* doc/functions/vsnprintf.texi: Likewise.
* lib/vasnprintf.c (VASNPRINTF): Ensure that we never call snprintf
with a size argument < 2.
2007-11-09 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Increase reallocation of snprintf
buffer. Fixes an inefficiency introduced on 2007-11-03.
2007-11-09 Bruno Haible <bruno@clisp.org>
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8) [BeOS]: Make this test return
none instead of tr_TR. Fixes a failure of test-c-strcasecmp.c.
2007-11-08 Jim Meyering <meyering@redhat.com>
Change cache variable name prefix "jm_" to "gl_" everywhere.
* m4/d-type.m4, m4/jm-winsz1.m4, m4/jm-winsz2.m4, m4/link-follow.m4:
* m4/putenv.m4, m4/strtoimax.m4, m4/strtoumax.m4, m4/unlink-busy.m4:
* m4/uptime.m4: s/gl_/jm_/
2007-11-07 Bruno Haible <bruno@clisp.org>
Update to GNU gettext 0.17.
* m4/intl.m4: Update to GNU gettext 0.17.
* m4/po.m4: Likewise.
* modules/gettext (Files): Remove m4/ulonglong.m4.
(configure.ac): Require gettext infrastructure from version 0.17.
2007-11-06 Bruno Haible <bruno@clisp.org>
* lib/fbufmode.c (fbufmode) [QNX]: Use numerical values for flags; the
symbolic values are not defined in a public header.
* lib/freadable.c (freadable) [QNX]: Likewise.
* lib/freadahead.c (freadahead) [QNX]: Likewise.
* lib/freading.c (freading) [QNX]: Likewise.
* lib/fseterr.c (fseterr) [QNX]: Likewise.
* lib/fwritable.c (fwritable) [QNX]: Likewise.
* lib/fwriting.c (fwriting) [QNX]: Likewise.
* lib/fpurge.c (fpurge) [QNX]: Likewise. Add a return statement.
Reported by Alain Magloire.
* m4/fpending.m4 (gl_FUNC_FPENDING): Add a variant for QNX.
2007-11-05 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Expand the NEED_PRINTF_DIRECTIVE_A
code when NEED_PRINTF_LONG_DOUBLE or NEED_PRINTF_DOUBLE is set.
Needed on Cygwin, where !NEED_PRINTF_DIRECTIVE_A && NEED_PRINTF_DOUBLE.
Reported by Eric Blake.
2007-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* modules/malloc (configure.ac): Define GNULIB_MALLOC_GNU always.
* modules/realloc (configure.ac): Define GNULIB_REALLOC_GNU always.
* lib/realloc.c (SYSTEM_MALLOC_GLIBC_COMPATIBLE): New macro.
(malloc): Undefine also before including <stdlib.h>.
(rpl_realloc): Turn malloc(0) into malloc(1) if necessary.
Needed on OSF/1 4.0.
2007-11-05 Jim Meyering <meyering@redhat.com>
git-version-gen: sync from coreutils.
* build-aux/git-version-gen: Add comments.
Change the first '-' to '.' in the snapshot version string,
e.g., 6.9-377-08144 -> 6.9.377-08144
Remove first parameter.
Don't declare a version "-dirty" merely because a time
stamp has changed.
2007-11-04 Bruno Haible <bruno@clisp.org>
* lib/lock.h: Protect all macro definitions containing an 'if'
statement through a "do { ... } while (0)".
* lib/tls.h: Likewise.
2007-11-04 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (DCHAR_IS_TCHAR, DCHAR_CPY): Undefine at the end.
2007-11-04 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_ENOMEM): Use GL_NOCRASH.
* modules/fprintf-posix (Depends-on): Add nocrash.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/unistdio/u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
* modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
2007-11-04 Bruno Haible <bruno@clisp.org>
* modules/nocrash: New file.
* m4/nocrash.m4: New file, taken from GNU clisp. Code taken from
GNU libsigsegv, with permission of GNU libsigsegv's copyright holders.
2007-11-04 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Add some tests of
precision handling.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
Fix *printf behaviour for large precisions on mingw and BeOS.
* m4/printf.m4 (gl_PRINTF_PRECISION): New macro.
* lib/vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_UNBOUNDED_PRECISION.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_PRECISION): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_PRECISION and test its result. Invoke
gl_PREREQ_VASNPRINTF_PRECISION.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-11-04 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (scale10_round_decimal_decoded): Fix shift loop.
2007-11-04 Bruno Haible <bruno@clisp.org>
* modules/relocatable-prog (Files): Add m4/lib-ld.m4.
Reported by Sylvain Beucler <beuc@gnu.org>.
2007-11-03 Bruno Haible <bruno@clisp.org>
* tests/test-fprintf-posix2.sh: New file.
* tests/test-fprintf-posix2.c: New file.
* modules/fprintf-posix-tests (Files): Add them.
(TESTS): Add test-fprintf-posix2.sh.
(configure.ac): Check for getrlimit and setrlimit.
(check_PROGRAMS): Add test-fprintf-posix2.
* tests/test-printf-posix2.sh: New file.
* tests/test-printf-posix2.c: New file.
* modules/printf-posix-tests (Files): Add them.
(TESTS): Add test-printf-posix2.sh.
(configure.ac): Check for getrlimit and setrlimit.
(check_PROGRAMS): Add test-printf-posix2.
Fix *printf behaviour in out-of-memory situations on MacOS X and *BSD.
* m4/printf.m4 (gl_PRINTF_ENOMEM): New macro.
* lib/vasnprintf.c: Implement NEED_PRINTF_DOUBLE.
(decode_double): New function, copied from decode_long_double.
(scale10_round_decimal_decoded): New function, extracted from
scale10_round_decimal_long_double.
(scale10_round_decimal_long_double): Use it.
(scale10_round_decimal_double): New function.
(floorlog10): New function.
(VASNPRINTF): Handle NEED_PRINTF_DOUBLE case.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_ENOMEM): New macro.
(gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_ENOMEM and test its result. Invoke
gl_PREREQ_VASNPRINTF_ENOMEM.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* modules/fprintf-posix (Depends-on): Add frexp-nolibm.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-11-03 Bruno Haible <bruno@clisp.org>
* modules/frexp-nolibm-tests: New file.
* modules/frexp-nolibm: New file.
* m4/frexp.m4 (gl_FUNC_FREXP_NO_LIBM): New macro.
2007-11-03 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's return
value is C99 compliant.
Needed for OSF/1 5.1.
2007-11-03 Bruno Haible <bruno@clisp.org>
Fix out-of-memory handling of vasnprintf.
* lib/printf-parse.c: Include <errno.h>.
(PRINTF_PARSE): When failing, set errno to EINVAL or ENOMEM.
* lib/vasnprintf.c (VASNPRINTF): When PRINTF_PARSE fails, assume errno
is already set.
2007-11-02 Eric Blake <ebb9@byu.net>
Fix tests on cygwin.
* modules/xprintf-posix-tests (Makefile.am): Link against -lintl.
2007-11-01 Bruno Haible <bruno@clisp.org>
* lib/stdlib.in.h (putenv): Remove the "not POSIX compliant everywhere"
warning.
* doc/functions/putenv.texi: Clarify that the 'putenv' module is not
needed for POSIX compatibility.
2007-11-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/putenv.m4 (gl_FUNC_PUTENV): Also mention that we're checking
for compatibility with GNU.
2007-11-01 Bruno Haible <bruno@clisp.org>
* lib/putenv.c: Include <stdlib.h>. Remove rpl_putenv declaration.
(putenv): Renamed from rpl_putenv. Change argument type from
'const char *' to 'char *'.
* m4/putenv.m4 (gl_FUNC_PUTENV): Require gl_STDLIB_H_DEFAULTS. Instead
of defining putenv in config.h, just set REPLACE_PUTENV.
* modules/putenv (Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Include): Use <stdlib.h>.
* lib/stdlib.in.h (putenv): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_PUTENV and
REPLACE_PUTENV.
* modules/stdlib (Makefile.am): Substitute GNULIB_PUTENV and
REPLACE_PUTENV.
Needed for MacOS X 10.5.0.
Reported by Peter O'Gorman <peter@pogma.com>.
2007-11-01 Jim Meyering <meyering@redhat.com>
Treat an empty date string exactly like "0".
* lib/getdate.y (get_date): Once any isspace or TZ= prefix is consumed,
if the remaining date string (to be parsed) is empty, use "0".
Reported by Mischa Molhoek and discussed in this thread:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/11726>.
2007-10-31 Bruno Haible <bruno@clisp.org>
* m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Use
AC_TYPE_LONG_LONG_INT instead of gl_AC_TYPE_LONG_LONG.
* m4/uintmax_t.m4 (gl_AC_TYPE_UINTMAX_T): Use
AC_TYPE_UNSIGNED_LONG_LONG_INT instead of gl_AC_TYPE_UNSIGNED_LONG_LONG.
* m4/longlong.m4 (gl_AC_TYPE_LONG_LONG): Remove macro.
* m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG): Remove macro.
2007-10-31 Bruno Haible <bruno@clisp.org>
* m4/longlong.m4 (_AC_TYPE_LONG_LONG_SNIPPET): New macro, extracted
from AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT.
(AC_TYPE_LONG_LONG_INT): Use it.
(AC_TYPE_UNSIGNED_LONG_LONG_INT): Moved here from m4/ulonglong.m4. Use
it as well.
* m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Remove macro; moved
to m4/longlong.m4.
* modules/stdint (Files): Remove m4/ulonglong.m4.
* modules/strtoull (Files): Use m4/longlong.m4 instead of
m4/ulonglong.m4.
* modules/strtoumax (Files): Likewise.
2007-10-30 Bruno Haible <bruno@clisp.org>
* modules/xvasprintf-posix: New file.
Suggested by Eric Blake.
2007-10-30 Bruno Haible <bruno@clisp.org>
* modules/xprintf-posix-tests: New file.
* tests/test-xprintf-posix.sh: New file.
* tests/test-xprintf-posix.c: New file.
* tests/test-xfprintf-posix.c: New file.
* modules/xprintf-posix: New file.
2007-10-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/fbufmode-tests (MOSTLYCLEANFILES): Remove temp files.
* modules/freadable-tests (MOSTLYCLEANFILES): Likewise.
* modules/fwritable-tests (MOSTLYCLEANFILES): Likewise.
2007-10-29 Bruno Haible <bruno@clisp.org>
* m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Rename the cache variable to
contain the special marker '_cv_'.
* m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise.
* m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise.
* m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise.
Reported by Ralf Wildenhues.
2007-10-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): When --lgpl is not specified, set
sed_transform_lib_file to convert LGPL and GPLv2+ copyright headers to
GPLv3.
Reported by Simon Josefsson.
2007-10-28 Bruno Haible <bruno@clisp.org>
* lib/math.in.h: Test REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE.
* m4/isfinite.m4 (gl_ISFINITE): Initialize REPLACE_ISFINITE instead of
HAVE_DECL_ISFINITE.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Update.
* modules/math (Makefile.am): Substitute REPLACE_ISFINITE instead of
HAVE_DECL_ISFINITE.
2007-10-28 Bruno Haible <bruno@clisp.org>
* lib/stdint.in.h (_STDINT_MAX): Subtract 1 from an unused signed
integer shift in the signed case. Fixes warnings with OSF/1 5.1 cc.
2007-10-28 Bruno Haible <bruno@clisp.org>
Fix link errors with Sun C 5.0 on Solaris 10.
* m4/floorf.m4 (gl_FUNC_FLOORF): Consider also the case that the
function is declared but not present in the compiler's libm.
* m4/floorl.m4 (gl_FUNC_FLOORL): Likewise.
* m4/ceilf.m4 (gl_FUNC_CEILF): Likewise.
* m4/ceill.m4 (gl_FUNC_CEILL: Likewise.
* lib/math.in.h: Test REPLACE_CEILF instead of HAVE_DECL_CEILF.
Test REPLACE_CEILL instead of HAVE_DECL_CEILL.
Test REPLACE_FLOORF instead of HAVE_DECL_FLOORF.
Test REPLACE_FLOORL instead of HAVE_DECL_FLOORL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Update.
* modules/math (Makefile.am): Substitute REPLACE_CEILF instead of
HAVE_DECL_CEILF, REPLACE_CEILL instead of HAVE_DECL_CEILL,
REPLACE_FLOORF instead of HAVE_DECL_FLOORF, REPLACE_FLOORL instead of
HAVE_DECL_FLOORL.
2007-10-28 Bruno Haible <bruno@clisp.org>
* m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): New macro, extracted from
gl_FUNC_FLOORL. Cache the result.
(gl_FUNC_FLOORL): Use it.
* m4/ceill.m4 (gl_FUNC_CEILL_LIBS): New macro, extracted from
gl_FUNC_CEILL. Cache the result.
(gl_FUNC_CEILL): Use it.
* m4/floor.m4 (gl_FUNC_FLOOR_LIBS): New macro, extracted from
gl_FUNC_FLOOR. Cache the result.
(gl_FUNC_FLOOR): Use it.
* m4/ceil.m4 (gl_FUNC_CEIL_LIBS): New macro, extracted from
gl_FUNC_CEIL. Cache the result.
(gl_FUNC_CEIL): Use it.
* m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): New macro, extracted from
gl_FUNC_FLOORF. Cache the result.
(gl_FUNC_FLOORF): Use it.
* m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): New macro, extracted from
gl_FUNC_CEILF. Cache the result.
(gl_FUNC_CEILF): Use it.
2007-10-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Allow specifying the LGPL version number through
--lgpl=2 or --lgpl=3.
(func_usage): Document --lgpl with argument.
Handle --lgpl=... arguments.
(func_import): Recognize also gl_LGPL calls with an argument. When
--lgpl=2 is used and the module's license is just LGPL, report an
error. Set sed_transform_lib_file according to the lgpl variable. In
the generated files, use --lgpl or gl_LGPL invocations with argument,
if necessary.
* doc/gnulib-intro.texi (Copyright): Explain how to get modules under
an LGPv2+ license.
* doc/gnulib-tool.texi (Modified imports): Update explanation of
gl_LGPL macro.
2007-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* lib/unistr.h (u8_uctomb_aux): Declare also if !HAVE_INLINE.
(u16_uctomb_aux): Likewise.
* lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Define also if
!HAVE_INLINE.
* lib/unistr/u16-uctomb-aux.c (u16_uctomb_aux): Likewise
2007-10-28 Bruno Haible <bruno@clisp.org>
* modules/error: Add a notice recommending to change XGETTEXT_OPTIONS.
Invoke AM_GETTEXT_OPTION if it exists.
* modules/vasprintf: Likewise.
* modules/verror: Likewise.
* modules/xprintf: Likewise.
* modules/xvasprintf: Likewise.
2007-10-27 Ben Pfaff <blp@gnu.org>
* lib/math.in.h: Define isfinite macro and prototypes for
gl_isfinitef, gl_isfinited, gl_isfinitel if we are providing
implementations.
* m4/math_h.m4: New substitutions for isfinite module.
* lib/isfinite.c: New file.
* m4/isfinite.m4: New file.
* modules/math: Replace isfinite-related @VARS@ in math.in.h.
* modules/isfinite: New file.
* modules/isfinite-tests: New file.
* tests/tests-isfinite.c: New file.
* doc/functions/isfinite.texi: Mention isfinite module.
* MODULES.html.sh: Mention new module.
2007-10-27 Ben Pfaff <blp@gnu.org>
Ralf Wildenhues reported that Tru64 4.0D declares the round
functions but does not have definitions.
* m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): If the target function
cannot be found in any library, set the output variable to
"missing" instead of "".
* m4/round.m4: Also use our substitute if we cannot find round in
any library, even if it is declared.
* m4/roundf.m4: Likewise for roundf.
* m4/roundl.m4: Likewise for roundl.
* lib/math.in.h: Undefine roundf, round, roundl before defining
their replacements, to allow for hypothetical systems where these
may be defined as macros but not available in libraries.
2007-10-27 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Invoke @firstparagraphindent.
* doc/gnulib-tool.texi (Simple update): Mention possible incompatible
changes in gnulib.
(Source changes): New section.
2007-10-26 Bruno Haible <bruno@clisp.org>
* m4/gnulib-common.m4 (AC_C_RESTRICT): New overriding definition,
borrowed from autoconf.
2007-10-26 Bruno Haible <bruno@clisp.org>
* lib/strerror.c (rpl_strerror): Return "Unknown error ..." also if
strerror returned the empty string. Needed on HP-UX 11.00.
2007-10-24 Micah Cowan <micah@cowan.name>
Remove vestiges of cvs-gnulib-checkout process. Now we use git.
* build-aux/bootstrap: Remove support for now-unnecessary option,
--cvs-user, and envvars CVS_USER, CVS_RSH.
2007-10-24 Jim Meyering <meyering@redhat.com>
Avoid diagnostics from sha1sum when there is no cached checksum.
* build-aux/bootstrap (update_po_files): Skip the sha1sum check
if the po.s1 file hasn't been created yet.
* build-aux/bootstrap: Sync from coreutils:
2007-10-24 Jim Meyering <meyering@redhat.com>
Get gnulib from the git repository, not from an obsolete cvs one.
* build-aux/bootstrap: Suggestion from Micah Cowan.
2007-10-04 Jim Meyering <jim@meyering.net>
* build-aux/bootstrap (slurp): Adapt to _.h -> .in.h name change.
(update_po_files): Work also when there are no .po files in po/.
2007-10-24 Paul Eggert <eggert@cs.ucla.edu>
* README: Append ".git" to git and cg examples.
Problem reported by Benoit Sigoure.
2007-10-23 Micah Cowan <micah@cowan.name>
* users.txt: Add wget.
2007-10-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix linking of some unistdio tests on FreeBSD.
* modules/unistdio/u16-vsnprintf-tests
(test_u16_vsprintf1_LDADD): Add @LIBINTL@.
* modules/unistdio/u16-vsprintf-tests
(test_u16_vsnprintf1_LDADD): Likewise.
* modules/unistdio/u32-vsnprintf-tests
(test_u32_vsnprintf1_LDADD): Likewise.
* modules/unistdio/u32-vsprintf-tests
(test_u32_vsprintf1_LDADD): Likewise.
* modules/unistdio/u8-vsnprintf-tests
(test_u8_vsnprintf1_LDADD): Likewise.
* modules/unistdio/u8-vsprintf-tests
(test_u8_vsprintf1_LDADD): Likewise.
* modules/unistdio/ulc-vsnprintf-tests
(test_ulc_vsnprintf1_LDADD): Likewise.
* modules/unistdio/ulc-vsprintf-tests
(test_ulc_vsprintf1_LDADD): Likewise.
Fix linking of some uniconv tests on FreeBSD.
* modules/uniconv/u16-conv-from-enc-tests
(test_u16_conv_from_enc_LDADD): Link $(LDADD) before @LIBICONV@.
* modules/uniconv/u16-conv-to-enc-tests
(test_u16_conv_to_enc_LDADD): Likewise.
* modules/uniconv/u16-strconv-from-enc-tests
(test_u16_strconv_from_enc_LDADD): Likewise.
* modules/uniconv/u16-strconv-to-enc-tests
(test_u16_strconv_to_enc_LDADD): Likewise.
* modules/uniconv/u32-conv-from-enc-tests
(test_u32_conv_from_enc_LDADD): Likewise.
* modules/uniconv/u32-conv-to-enc-tests
(test_u32_conv_to_enc_LDADD): Likewise.
* modules/uniconv/u32-strconv-from-enc-tests
(test_u32_strconv_from_enc_LDADD): Likewise.
* modules/uniconv/u32-strconv-to-enc-tests
(test_u32_strconv_to_enc_LDADD): Likewise.
* modules/uniconv/u8-conv-from-enc-tests
(test_u8_conv_from_enc_LDADD): Likewise.
* modules/uniconv/u8-conv-to-enc-tests
(test_u8_conv_to_enc_LDADD): Likewise.
* modules/uniconv/u8-strconv-from-enc-tests
(test_u8_strconv_from_enc_LDADD): Likewise.
* modules/uniconv/u8-strconv-to-enc-tests
(test_u8_strconv_to_enc_LDADD): Likewise.
2007-10-22 Bruno Haible <bruno@clisp.org>
* lib/stdint.in.h: Add check that intmax_t and uintmax_t have the same
size.
2007-10-22 Eric Blake <ebb9@byu.net>
Tweak x*printf documentation.
* lib/xprintf.c (xprintf, xvprintf, xfprintf, xvfprintf): Adjust
variable name and comments.
Suggested by Bruno Haible.
2007-10-22 Bruno Haible <bruno@clisp.org>
* lib/acl.c (copy_acl): Fix file name in comment.
2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
Fix Tru64 problem with stdbool.h.
* lib/stdbool.in.h (false, true):
[! (defined __cplusplus || defined __BEOS__) && !defined __GNUC__]:
Don't declare as an enum in this situation; it runs afoul of Tru64.
Problem reported by Steven M. Schweda in
<http://lists.gnu.org/r/bug-autoconf/2007-10/msg00019.html>.
2007-10-22 Eric Blake <ebb9@byu.net>
Also wrap vf?printf.
* lib/xprintf.h (xvprintf, xvfprintf): New declarations.
* lib/xprintf.c (xprintf, xfprintf): Work for C89.
(xvprintf, xvfprintf): New functions.
2007-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/fstrcmp-tests (test_fstrcmp_LDADD): New, add
@LIBINTL@ for FreeBSD 6.2, $(LIBTHREAD) for AIX 4.3.3.
* lib/uniconv/u16-conv-to-enc.c (U_MBLEN): Define.
* lib/uniconv/u32-conv-to-enc.c (U_MBLEN): Likewise.
2007-10-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported
by Bruno Haible.
2007-10-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/getloadavg.c
[defined (__osf__) && (defined (__alpha) || defined (__alpha__)]:
Undef `sys' after including sys/table.h, for Tru64 4.0D.
* tests/test-i-ring.c: Work for C89.
2007-10-22 Bruno Haible <bruno@clisp.org>
* m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Use -1ull, not
-1u, in preprocessor expression, so that we don't test for the bug
in HP-UX 11.00 cpp. Testing for this bug caused problems; see
<http://lists.gnu.org/r/bug-gnulib/2007-10/msg00329.html>.
2007-10-22 Eric Blake <ebb9@byu.net>
* tests/test-yesno.sh: Silence stderr during test.
2007-10-22 Simon Josefsson <simon@josefsson.org>
* modules/crypto/gc-camellia: New file.
* m4/gc-camellia.m4: New file.
* lib/gc-libgcrypt.c (gc_cipher_open): Support Camellia.
* lib/gc.h (enum Gc_cipher): Add GC_CAMELLIA128, GC_CAMELLIA256.
2007-10-22 Simon Josefsson <simon@josefsson.org>
* build-aux/maint.mk (gzip_rsyncable): Don't fail if gzip sends
--help to stdout. Reported by sms@antinode.org (Steven
M. Schweda).
2007-10-22 Simon Josefsson <simon@josefsson.org>
* users.txt: Fix link to libksba.
2007-10-21 Ben Pfaff <blp@gnu.org>
* modules/roundf-tests: Add dependency on floorf, ceilf to allow
round.c roundf implementation that depends on floorf and ceilf to
be tested unconditionally.
2007-10-21 Ben Pfaff <blp@gnu.org>
* m4/check-libm-func.m4: Removed.
* m4/check-math-lib.m4: New file.
* m4/round.m4: Rewrite to use gl_CHECK_MATH_LIB.
* m4/roundf.m4: Ditto, and fix lack of HAVE_DECL_ROUNDF
definition and lack of AC_LIBOBJ([roundf]).
* m4/roundl.m4: Ditto, and similarly for roundl.
* modules/round: Reference new m4 file.
* modules/roundf: Ditto.
* modules/roundl: Ditto.
* tests/test-round2.c (main): Use ROUND instead of round.
Bug report from Bruno Haible.
2007-10-21 Bruno Haible <bruno@clisp.org>
* lib/printf-parse.c: Don't assume <stdint.h> exists in IN_LIBASPRINTF
context.
2007-10-21 Bruno Haible <bruno@clisp.org>
* tests/test-wcwidth.c (main): Allow negative result for some control
characters.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check also the width of U+200B.
Needed on OSF/1 5.1.
2007-10-21 Bruno Haible <bruno@clisp.org>
* tests/test-floorf1.c: Include isnanf.h.
(main): Use isnanf() instead of isnan().
* tests/test-ceilf1.c: Include isnanf.h.
(main): Use isnanf() instead of isnan().
* tests/test-truncf1.c: Include isnanf.h.
(main): Use isnanf() instead of isnan().
* tests/test-roundf1.c: Include isnanf.h.
(main): Use isnanf() instead of isnan().
2007-10-21 Eric Blake <ebb9@byu.net>
* users.txt: Update URL for m4.
2007-10-21 Bruno Haible <bruno@clisp.org>
* users.txt: Add clisp. Update URLs to Simon Josefsson's projects.
2007-10-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_megatestdir): Determine the cvsdate from
Git's management files if the CVS files are not present.
2007-10-20 Bruno Haible <bruno@clisp.org>
* lib/count-one-bits.h (COUNT_ONE_BITS): Use the builtin also for
gcc-3.4.x.
2007-10-20 Ben Pfaff <blp@gnu.org>
* lib/math.in.h: Declare round, roundf, roundl if we are providing
implementations.
* m4/math_h.m4: New substitutions for round, roundf, roundl modules.
* lib/round.c: New file.
* lib/roundf.c: New file.
* lib/roundl.c: New file.
* m4/round.m4: New file.
* m4/roundf.m4: New file.
* m4/roundl.m4: New file.
* m4/check-libm-func-m4: New file.
* modules/math: Replace round, roundf, roundl related @VARS@ in
math.in.h.
* modules/round: New file.
* modules/round-tests: New file.
* modules/roundf: New file.
* modules/roundf-tests: New file.
* modules/roundl: New file.
* modules/roundl-tests: New file.
* tests/test-round1.c: New file.
* tests/test-round2.c: New file.
* tests/test-roundf1.c: New file.
* tests/test-roundf2.c: New file.
* tests/test-roundl.c: New file.
* doc/functions/round.texi: Mention round module.
* doc/functions/roundf.texi: Mention roundf module.
* doc/functions/roundl.texi: Mention roundl module.
* MODULES.html.sh: Mention new modules.
Thanks to Bruno Haible for suggestions.
2007-10-20 Jim Meyering <meyering@redhat.com>
* lib/xprintf.c: Include <config.h> unconditionally.
Change xprintf's license to GPL.
* modules/xprintf (License): s/LGPL/GPL/, since this module
depends on modules (exit and exitfail) which are GPL.
Suggestion from Bruno Haible.
xprintf fixes.
* lib/xprintf.c (xprintf, xfprintf): Use va_end.
Use a clearer diagnostic.
Patch from Bruno Haible.
2007-10-20 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Don't report overflow if the available
length is INT_MAX and sizeof (DCHAR_T) > sizeof (TCHAR_T).
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2007-10-20 Bruno Haible <bruno@clisp.org>
* tests/test-floorf2.c (correct_result_p): Don't rely on excess
precision in the comparison result > x - 1 or similar.
* tests/test-ceilf2.c (correct_result_p): Likewise.
* tests/test-truncf2.c (correct_result_p): Likewise.
* tests/test-trunc2.c (correct_result_p): Likewise.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2007-10-20 Bruno Haible <bruno@clisp.org>
* modules/ceil: New file.
* m4/ceil.m4: New file.
* doc/functions/ceil.texi: Mention the 'ceil' module.
2007-10-20 Bruno Haible <bruno@clisp.org>
* modules/floor: New file.
* m4/floor.m4: New file.
* doc/functions/floor.texi: Mention the 'floor' module.
2007-10-20 Bruno Haible <bruno@clisp.org>
* modules/ceilf-tests (Depends-on): Add fprintf-posix. Needed for use
of %a.
* modules/floorf-tests (Depends-on): Likewise.
* modules/truncf-tests (Depends-on): Likewise.
* modules/trunc-tests (Depends-on): Likewise.
Reported by Ben Pfaff.
2007-10-19 Jim Meyering <meyering@redhat.com>
* lib/xprintf.c (xprintf, xfprintf): Test err < 0, not just "err".
Don't bother testing specific errno values. Just test ferror.
New module: xprintf
* modules/xprintf, lib/xprintf.c, lib/xprintf.h: New files.
2007-10-19 Bruno Haible <bruno@clisp.org>
* modules/csharpexec (Makefile.am): Use @FOO@ syntax instead of $(FOO)
syntax.
* modules/javaexec (Makefile.am): Likewise.
* modules/relocatable-prog (Makefile.am): Likewise.
Suggested by Jim Meyering.
2007-10-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Don't use %n on glibc >= 2.3 systems.
Reported by Jim Meyering.
2007-10-18 Eric Blake <ebb9@byu.net>
* modules/filenamecat-tests (Makefile.am): Link against -lintl.
2007-10-18 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N): Put
the format string into writable memory. Needed in Fortify conditions.
2007-10-18 Colin Watson <cjwatson@debian.org> (tiny change)
Bruno Haible <bruno@clisp.org>
* lib/trim.c: Include config.h unconditionally. Include trim.h always.
Include ctype.h always. Include stdlib.h, not mbuiter.h, for MB_CUR_MAX.
* modules/trim (Depends-on): Add mbchar.
(configure.ac): Add gl_FUNC_MBRTOWC.
(Makefile.am): Augment lib_SOURCES.
2007-10-17 Paul Eggert <eggert@cs.ucla.edu>
Modify glob.c to use fstatat and dirfd, to simplify it.
Suggested by Eric Blake.
* lib/glob.c (__fxstatat64) [!_LIBC]: New macro.
Don't include <stdbool.h>; not used.
(link_exists2_p, glob_in_dir) [!_LIBC]: No longer a special case.
(link_exists_p): Simplify implementation, since we can now assume
dirfd and fstatat.
* modules/glob (Depends-on): Add dirfd, openat. Remove stdbool.
2007-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_get_dependencies): Fix sed script to
match only tests.
2007-10-17 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): On Cygwin, don't
allow locale names without encoding suffix.
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
2007-10-16 Bruno Haible <bruno@clisp.org>
* lib/getcwd.c (__getcwd): Define with explicit rpl_ prefix.
* lib/getgroups.c (getgroups): Likewise.
* lib/gettimeofday.c (localtime, gmtime, tzset): Likewise.
2007-10-16 Bruno Haible <bruno@clisp.org>
* modules/absolute-header (License): Change from LGPL to LGPLv2+.
* modules/malloc-posix (License): Likewise.
* modules/realloc-posix (License): Likewise.
* modules/calloc-posix (License): Likewise.
* modules/intprops (License): Change from GPL to LGPL, with
Paul Eggert's approval.
2007-10-16 Paul Eggert <eggert@cs.ucla.edu>
Merge glibc changes into lib/glob.c.
* lib/glob.c (glob_in_dir): Sync with glibc/posix/glob.c, dated
2007-10-15 04:59:03 UTC. Here are the changes:
2007-10-14 Ulrich Drepper <drepper@redhat.com>
* lib/glob.c: Reimplement link_exists_p to use fstatat64.
* lib/glob.c: Add some branch prediction throughout.
2007-10-07 Ulrich Drepper <drepper@redhat.com>
[BZ #5103]
* lib/glob.c (glob): Recognize patterns starting \/.
2007-02-14 Jakub Jelinek <jakub@redhat.com>
[BZ #3996]
* lib/glob.c (attribute_hidden): Define if not defined.
(glob): Unescape dirname, filename or username when needed and not
GLOB_NOESCAPE. Handle \/ correctly. Handle GLOB_MARK if filename
is NULL. Handle unescaped [ in pattern without closing ].
Don't pass GLOB_CHECK down to recursive glob for directories.
(__glob_pattern_type): New function.
(__glob_pattern_p): Implement using __glob_pattern_type.
(glob_in_dir): Handle GLOB_NOCHECK patterns containing no meta
characters and backslashes if not GLOB_NOESCAPE or unterminated [.
Remove unreachable code.
2006-09-30 Ulrich Drepper <drepper@redhat.com>
* lib/glob.c (glob_in_dir): Add some comments and asserts to
explain why there are no leaks.
2006-09-25 Jakub Jelinek <jakub@redhat.com>
[BZ #3253]
* lib/glob.c (glob_in_dir): Don't alloca one struct globlink at a
time, rather allocate increasingly bigger arrays of pointers, if
possible with alloca, if too large with malloc.
2007-10-16 Paul Eggert <eggert@cs.ucla.edu>
Check for 64-bit int errors in HP-UX 10.20 preprocessor.
Problem reported by H.Merijn Brand in
<http://lists.gnu.org/r/bug-tar/2007-10/msg00018.html>.
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Check preprocessor too.
* m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.
2007-10-15 Bruno Haible <bruno@clisp.org>
* lib/fchdir.c (close, open, closedir, opendir, dup, dup2): Define
with explicit rpl_ prefix.
* lib/fopen.c (fopen): Likewise.
* lib/freopen.c (freopen): Likewise.
* lib/iconv.c (iconv): Likewise.
* lib/iconv_close.c (iconv_close): Likewise.
2007-10-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/iconv_open (gl_FUNC_ICONV_OPEN_UTF): Fix cache variable name.
2007-10-15 Bruno Haible <bruno@clisp.org>
* m4/getaddrinfo.m4 (gl_GETADDRINFO, gl_PREREQ_GETADDRINFO): Use
<stddef.h> instead of <stdlib.h> since we only need NULL.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2007-10-15 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Initial import): Swap order of -I directives.
Replace paragraph talking about LIBOBJS.
Reported by Colin Watson <cjwatson@debian.org>.
2007-10-15 Bruno Haible <bruno@clisp.org>
* m4/getaddrinfo.m4 (gl_GETADDRINFO, gl_PREREQ_GETADDRINFO): Include
<stdlib.h> before using NULL.
2007-10-15 Simon Josefsson <simon@josefsson.org>
* m4/getaddrinfo.m4: Use NULL rather than 0 for pointers.
Reported by Albert Chin <china@thewrittenword.com>.
2007-10-14 Bruno Haible <bruno@clisp.org>
* modules/iconv_open-utf-tests: New file.
* tests/test-iconv-utf.c: New file.
Enhance iconv_open to support UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE.
* modules/iconv_open-utf: New file.
* lib/iconv.in.h (_ICONV_UTF8_UTF*, _ICONV_UTF*_UTF8): New macros.
(iconv, iconv_close): New declarations.
* lib/iconv_open.c: Include c-strcase.h. Don't require ICONV_FLAVOR to
be defined.
(iconv_open): Add special handling of conversion between UTF-8 and
UTF-{16,32}{BE,LE}.
* lib/iconv.c: New file, incorporating code from GNU libiconv 1.11.
* lib/iconv_close.c: New file.
* m4/iconv_open.m4 (gl_REPLACE_ICONV_OPEN): New macro, extracted from
gl_FUNC_ICONV_OPEN.
(gl_FUNC_ICONV_OPEN): Use it.
(gl_FUNC_ICONV_OPEN_UTF): New macro.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Initialize also REPLACE_ICONV
and REPLACE_ICONV_UTF.
* modules/iconv_open (Depends-on): Add c-strcase.
(Makefile.am): Substitute also REPLACE_ICONV, REPLACE_ICONV_UTF,
ICONV_CONST.
* doc/functions/iconv_open.texi: Mention the iconv_open-utf module.
2007-10-13 Albert Chin <china@thewrittenword.com>
Bruno Haible <bruno@clisp.org>
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Perform the test for getaddrinfo
through a link check that includes <netdb.h>. Needed for OSF/1 5.1.
2007-10-13 Bruno Haible <bruno@clisp.org>
* lib/argp-fmtstream.h (ARGP_FS_EI): If __GNUC_STDC_INLINE__ is
defined, use the ISO C99 inline semantics.
* lib/argp.h (ARGP_EI): Likewise.
2007-10-13 Bruno Haible <bruno@clisp.org>
Handle 'inline' change in gcc 4.3.0.
* lib/argp-fmtstream.h (argp_fmtstream_putc, argp_fmtstream_puts,
argp_fmtstream_write, argp_fmtstream_set_lmargin,
argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin,
argp_fmtstream_point): Disable 'extern' declaration if the function
definition is going to be provided inline.
(ARGP_FS_EI): If __GNUC_STDC_INLINE__ is defined, use the GNU C inline
semantics, not the ISO C99 inline semantics.
* lib/argp.h (argp_usage, _option_is_short, _option_is_end): Disable
'extern' declaration if the function definition is going to be provided
inline.
(ARGP_EI): Don't assume GNU C. If __GNUC_STDC_INLINE__ is defined, use
the GNU C inline semantics, not the ISO C99 inline semantics. With
GCC 4.2, avoid a warning.
2007-10-13 Bruno Haible <bruno@clisp.org>
* lib/freading.h (freading): Enable the use of __freading for
glibc >= 2.7.
* lib/freading.c (freading): Likewise.
2007-10-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-fmtstream.h (ARGP_FS_EI): Work around GCC 4.2.1 diagnostic
"warning: C99 inline functions are not supported; using GNU89".
2007-10-12 Bruno Haible <bruno@clisp.org>
* lib/ceil.c (FUNC): Avoid rounding errors for values near a power
of 2.
* tests/test-ceilf2.c: New file.
* modules/ceilf-tests: (Files, Depends-on, Makefile.am): Add new test.
* tests/test-ceilf1.c: Renamed from tests/test-ceilf.c.
* modules/ceilf-tests: Update.
2007-10-12 Bruno Haible <bruno@clisp.org>
* lib/floor.c (FUNC): Avoid rounding errors for values near a power
of 2.
* tests/test-floorf2.c: New file.
* modules/floorf-tests: (Files, Depends-on, Makefile.am): Add new test.
* tests/test-floorf1.c: Renamed from tests/test-floorf.c.
* modules/floorf-tests: Update.
2007-10-12 Bruno Haible <bruno@clisp.org>
* tests/test-trunc2.c: New file.
* modules/trunc-tests: (Files, Depends-on, Makefile.am): Add new test.
* tests/test-trunc1.c: Renamed from tests/test-trunc.c.
* modules/trunc-tests: Update.
2007-10-12 Bruno Haible <bruno@clisp.org>
* lib/trunc.c (FUNC): Avoid rounding errors for values near a power
of 2.
* tests/test-truncf2.c: New file.
* modules/truncf-tests: (Files, Depends-on, Makefile.am): Add new test.
* tests/test-truncf1.c: Renamed from tests/test-truncf.c.
* modules/truncf-tests: Update.
2007-10-11 Eric Blake <ebb9@byu.net>
Don't claim strerror is broken on Interix.
* doc/functions/strerror.texi (strerror): Known broken systems are
now Solaris 8, and not Interix.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): No longer filter out
Interix on cross-compile.
Reported by Martin Koeppe in
http://lists.gnu.org/r/bug-gnulib/2007-10/msg00005.html.
2007-10-11 Bruno Haible <bruno@clisp.org>
* modules/i-ring-tests: New file.
* tests/test-i-ring.c: Renamed from lib/i-ring-test.c. Use ASSERT
instead of assert.
2007-10-11 Bruno Haible <bruno@clisp.org>
* modules/filenamecat-tests: New file.
* tests/test-filenamecat.c: New file, extracted from lib/filenamecat.c.
* lib/filenamecat.c: Remove test code.
2007-10-11 Paul Eggert <eggert@cs.ucla.edu>
Simplify and modernize strerror substitute, partly to fix Solaris 8 bug.
* lib/strerror.c: Include <string.h> always, to test interface,
and to remove the need for the dummy.
Include intprops.h to compute width instead of doing it ourselves
and missing a CHAR_BIT declaration, which broke tar 1.19 on Solaris 8.
(strerror): Define it to return NULL if there's no system strerror.
(rpl_strerror): Use INT_STRLEN_BOUND to compute bound.
Omit !HAVE_STRERROR code. We don't need to worry about supporting
ancient pre-strerror Unix systems well any more. Saying "unknown
system error" is enough.
* lib/string.in.h (strerror): Simplify the ifdef to reflect the
simpler strerror.c implementation.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE, gl_PREREQ_STDERROR):
Simplify the tests to reflect the simpler strerror implementation.
* modules/strerror (Depends-on): Add intprops.
2007-10-09 Eric Blake <ebb9@byu.net>
Silence test-fpending.
* modules/fpending-tests (Files): Add wrapper script.
* tests/test-fpending.sh: New file.
2007-10-09 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_module): Don't create a hyperlink for
function names like 'printf_frexp'.
(Misc): Add crc, memxor.
(Characteristics of floating types): New section.
(Mathematics): Add ceilf, ceill, floorf, floorl, frexpl-nolibm,
isnanf-nolibm, signbit, trunc, truncf, truncl.
(Enhancements for ISO C 99 functions): New subsection Input/output.
(Support for systems lacking POSIX:2001): Add arpa_inet, calloc-posix,
fcntl, fopen, freopen, fseek, fseeko, ftell, ftello, iconv_open,
locale, malloc-posix, netinet_in, open, realloc-posix, signal, sleep.
(Compatibility checks for POSIX:2001 functions): Add clock-time.
(Enhancements for POSIX:2001 functions): Add chdir-long.
(File system functions): Add areadlink, chdir-safer, read-file.
Remove cycle-check.
(File system as inode set): New section.
(Date and time): Add gethrxtime.
(Multithreading): Add openmp.
(Internationalization functions): Add localename.
(Unicode string functions): Add unistr/u*-mbsnlen.
(Support for maintaining and releasing projects): Add git-version-gen.
(Lone files): Remove directories.
2007-10-08 Ben Pfaff <blp@gnu.org>
* lib/xmalloca.h: Fix typo in comment.
2007-10-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/xnanosleep.c (xnanosleep): Don't assume GCC 4.3.0 behavior
when avoiding problems with integer overflow. Use a portable test
instead.
2007-10-08 Simon Josefsson <simon@josefsson.org>
* modules/dummy (License): Change to LGPLv2+.
* modules/float (License): Likewise
* modules/realloc (License): Likewise
* modules/stdlib (License): Likewise
2007-10-07 Bruno Haible <bruno@clisp.org>
* trunc.c (TWO_MANT_DIG): Change type to DOUBLE.
* floor.c (TWO_MANT_DIG): Likewise.
* ceil.c (TWO_MANT_DIG): Likewise.
Reported by Ben Pfaff.
2007-10-07 Bruno Haible <bruno@clisp.org>
Avoid gcc warnings "declaration of 'exp' shadows a global declaration".
* lib/math.in.h (frexp, frexpl): Change parameter name to 'expptr'.
* lib/frexp.c (FUNC): Likewise.
* lib/printf-frexp.h (printf_frexp): Likewise.
* lib/printf-frexpl.h (printf_frexpl): Likewise.
* lib/printf-frexp.c (FUNC): Likewise.
Suggested by Jim Meyering.
2007-10-07 Jim Meyering <meyering@redhat.com>
Make xnanosleep's integer overflow test more robust.
* lib/xnanosleep.c (xnanosleep): Declare a temporary to be "volatile",
so that gcc-4.3.0 doesn't optimize away this test for overflow.
2007-10-07 Bruno Haible <bruno@clisp.org>
* NEWS: Mention the license change.
* doc/gnulib-intro.texi (Copyright): Update the meaning of the license
abbreviations in the modules files.
Change copyright notice from GPLv2+ to GPLv3+.
* README: Change copyright notice.
* MODULES.html.sh: Likewise.
* build-aux/bootstrap.conf: Likewise.
* build-aux/config.libpath: Likewise.
* build-aux/csharpcomp.sh.in: Likewise.
* build-aux/csharpexec.sh.in: Likewise.
* build-aux/install-reloc: Likewise.
* build-aux/javacomp.sh.in: Likewise.
* build-aux/javaexec.sh.in: Likewise.
* build-aux/ldd.sh.in: Likewise.
* build-aux/reloc-ldflags: Likewise.
* build-aux/relocatable.sh.in: Likewise.
* build-aux/x-to-1.in: Likewise.
* check-module: Likewise.
* config/srclistvars.sh: Likewise.
* gnulib-tool: Likewise.
* lib/acl-internal.h: Likewise.
* lib/acl.c: Likewise.
* lib/acl.h: Likewise.
* lib/acl_entries.c: Likewise.
* lib/areadlink-with-size.c: Likewise.
* lib/areadlink.c: Likewise.
* lib/areadlink.h: Likewise.
* lib/argmatch.c: Likewise.
* lib/argmatch.h: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-eexst.c: Likewise.
* lib/argp-fmtstream.c: Likewise.
* lib/argp-fmtstream.h: Likewise.
* lib/argp-fs-xinl.c: Likewise.
* lib/argp-help.c: Likewise.
* lib/argp-namefrob.h: Likewise.
* lib/argp-parse.c: Likewise.
* lib/argp-pin.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/argp-pvh.c: Likewise.
* lib/argp-xinl.c: Likewise.
* lib/argp.h: Likewise.
* lib/at-func.c: Likewise.
* lib/atanl.c: Likewise.
* lib/backupfile.c: Likewise.
* lib/backupfile.h: Likewise.
* lib/basename.c: Likewise.
* lib/binary-io.h: Likewise.
* lib/byteswap.in.h: Likewise.
* lib/c-stack.c: Likewise.
* lib/c-stack.h: Likewise.
* lib/c-strcasestr.c: Likewise.
* lib/c-strcasestr.h: Likewise.
* lib/c-strstr.c: Likewise.
* lib/c-strstr.h: Likewise.
* lib/c-strtod.c: Likewise.
* lib/calloc.c: Likewise.
* lib/canon-host.c: Likewise.
* lib/canon-host.h: Likewise.
* lib/canonicalize-lgpl.c: Likewise.
* lib/canonicalize.c: Likewise.
* lib/canonicalize.h: Likewise.
* lib/ceil.c: Likewise.
* lib/ceilf.c: Likewise.
* lib/ceill.c: Likewise.
* lib/chdir-long.c: Likewise.
* lib/chdir-long.h: Likewise.
* lib/chdir-safer.c: Likewise.
* lib/chdir-safer.h: Likewise.
* lib/chown.c: Likewise.
* lib/classpath.c: Likewise.
* lib/classpath.h: Likewise.
* lib/clean-temp.c: Likewise.
* lib/clean-temp.h: Likewise.
* lib/cloexec.c: Likewise.
* lib/close-stream.c: Likewise.
* lib/closein.c: Likewise.
* lib/closein.h: Likewise.
* lib/closeout.c: Likewise.
* lib/closeout.h: Likewise.
* lib/concat-filename.c: Likewise.
* lib/copy-file.c: Likewise.
* lib/copy-file.h: Likewise.
* lib/count-one-bits.h: Likewise.
* lib/crc.c: Likewise.
* lib/crc.h: Likewise.
* lib/creat-safer.c: Likewise.
* lib/csharpcomp.c: Likewise.
* lib/csharpcomp.h: Likewise.
* lib/csharpexec.c: Likewise.
* lib/csharpexec.h: Likewise.
* lib/cycle-check.c: Likewise.
* lib/cycle-check.h: Likewise.
* lib/diacrit.c: Likewise.
* lib/diacrit.h: Likewise.
* lib/diffseq.h: Likewise.
* lib/dirchownmod.c: Likewise.
* lib/dirent.in.h: Likewise.
* lib/dirfd.c: Likewise.
* lib/dirfd.h: Likewise.
* lib/dirname.c: Likewise.
* lib/dirname.h: Likewise.
* lib/dummy.c: Likewise.
* lib/dup-safer.c: Likewise.
* lib/dup2.c: Likewise.
* lib/eealloc.h: Likewise.
* lib/error.c: Likewise.
* lib/error.h: Likewise.
* lib/euidaccess.c: Likewise.
* lib/exclude.c: Likewise.
* lib/exclude.h: Likewise.
* lib/execute.c: Likewise.
* lib/execute.h: Likewise.
* lib/exitfail.c: Likewise.
* lib/exitfail.h: Likewise.
* lib/expl.c: Likewise.
* lib/fatal-signal.c: Likewise.
* lib/fatal-signal.h: Likewise.
* lib/fbufmode.c: Likewise.
* lib/fbufmode.h: Likewise.
* lib/fchdir.c: Likewise.
* lib/fchmodat.c: Likewise.
* lib/fchownat.c: Likewise.
* lib/fcntl--.h: Likewise.
* lib/fcntl-safer.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/fd-safer.c: Likewise.
* lib/fflush.c: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/file-set.c: Likewise.
* lib/file-type.c: Likewise.
* lib/file-type.h: Likewise.
* lib/fileblocks.c: Likewise.
* lib/filemode.c: Likewise.
* lib/filemode.h: Likewise.
* lib/filename.h: Likewise.
* lib/filenamecat.c: Likewise.
* lib/filenamecat.h: Likewise.
* lib/findprog.c: Likewise.
* lib/findprog.h: Likewise.
* lib/float.in.h: Likewise.
* lib/floor.c: Likewise.
* lib/floorf.c: Likewise.
* lib/floorl.c: Likewise.
* lib/fopen-safer.c: Likewise.
* lib/fopen.c: Likewise.
* lib/fpending.c: Likewise.
* lib/fpending.h: Likewise.
* lib/fprintf.c: Likewise.
* lib/fprintftime.h: Likewise.
* lib/fpucw.h: Likewise.
* lib/fpurge.c: Likewise.
* lib/fpurge.h: Likewise.
* lib/freadable.c: Likewise.
* lib/freadable.h: Likewise.
* lib/freadahead.c: Likewise.
* lib/freadahead.h: Likewise.
* lib/freading.c: Likewise.
* lib/freading.h: Likewise.
* lib/free.c: Likewise.
* lib/freopen.c: Likewise.
* lib/frexp.c: Likewise.
* lib/frexpl.c: Likewise.
* lib/fseek.c: Likewise.
* lib/fseterr.c: Likewise.
* lib/fseterr.h: Likewise.
* lib/fstatat.c: Likewise.
* lib/fstrcmp.c: Likewise.
* lib/fstrcmp.h: Likewise.
* lib/fsusage.c: Likewise.
* lib/fsusage.h: Likewise.
* lib/ftell.c: Likewise.
* lib/ftello.c: Likewise.
* lib/fts-cycle.c: Likewise.
* lib/fts.c: Likewise.
* lib/fts_.h: Likewise.
* lib/full-read.c: Likewise.
* lib/full-read.h: Likewise.
* lib/full-write.c: Likewise.
* lib/full-write.h: Likewise.
* lib/fwritable.c: Likewise.
* lib/fwritable.h: Likewise.
* lib/fwriteerror.c: Likewise.
* lib/fwriteerror.h: Likewise.
* lib/fwriting.c: Likewise.
* lib/fwriting.h: Likewise.
* lib/gcd.c: Likewise.
* lib/gcd.h: Likewise.
* lib/getcwd.c: Likewise.
* lib/getdate.h: Likewise.
* lib/getdate.y: Likewise.
* lib/getdomainname.c: Likewise.
* lib/getdomainname.h: Likewise.
* lib/getgroups.c: Likewise.
* lib/gethostname.c: Likewise.
* lib/gethrxtime.c: Likewise.
* lib/gethrxtime.h: Likewise.
* lib/getloadavg.c: Likewise.
* lib/getndelim2.c: Likewise.
* lib/getndelim2.h: Likewise.
* lib/getnline.c: Likewise.
* lib/getnline.h: Likewise.
* lib/getopt.c: Likewise.
* lib/getopt.in.h: Likewise.
* lib/getopt1.c: Likewise.
* lib/getopt_int.h: Likewise.
* lib/getpagesize.h: Likewise.
* lib/getsubopt.c: Likewise.
* lib/gettime.c: Likewise.
* lib/getugroups.c: Likewise.
* lib/getugroups.h: Likewise.
* lib/getusershell.c: Likewise.
* lib/gl_anyavltree_list1.h: Likewise.
* lib/gl_anyavltree_list2.h: Likewise.
* lib/gl_anyhash_list1.h: Likewise.
* lib/gl_anyhash_list2.h: Likewise.
* lib/gl_anylinked_list1.h: Likewise.
* lib/gl_anylinked_list2.h: Likewise.
* lib/gl_anyrbtree_list1.h: Likewise.
* lib/gl_anyrbtree_list2.h: Likewise.
* lib/gl_anytree_list1.h: Likewise.
* lib/gl_anytree_list2.h: Likewise.
* lib/gl_anytree_oset.h: Likewise.
* lib/gl_anytreehash_list1.h: Likewise.
* lib/gl_anytreehash_list2.h: Likewise.
* lib/gl_array_list.c: Likewise.
* lib/gl_array_list.h: Likewise.
* lib/gl_array_oset.c: Likewise.
* lib/gl_array_oset.h: Likewise.
* lib/gl_avltree_list.c: Likewise.
* lib/gl_avltree_list.h: Likewise.
* lib/gl_avltree_oset.c: Likewise.
* lib/gl_avltree_oset.h: Likewise.
* lib/gl_avltreehash_list.c: Likewise.
* lib/gl_avltreehash_list.h: Likewise.
* lib/gl_carray_list.c: Likewise.
* lib/gl_carray_list.h: Likewise.
* lib/gl_linked_list.c: Likewise.
* lib/gl_linked_list.h: Likewise.
* lib/gl_linkedhash_list.c: Likewise.
* lib/gl_linkedhash_list.h: Likewise.
* lib/gl_list.c: Likewise.
* lib/gl_list.h: Likewise.
* lib/gl_oset.c: Likewise.
* lib/gl_oset.h: Likewise.
* lib/gl_rbtree_list.c: Likewise.
* lib/gl_rbtree_list.h: Likewise.
* lib/gl_rbtree_oset.c: Likewise.
* lib/gl_rbtree_oset.h: Likewise.
* lib/gl_rbtreehash_list.c: Likewise.
* lib/gl_rbtreehash_list.h: Likewise.
* lib/gl_sublist.c: Likewise.
* lib/gl_sublist.h: Likewise.
* lib/group-member.c: Likewise.
* lib/group-member.h: Likewise.
* lib/hard-locale.c: Likewise.
* lib/hard-locale.h: Likewise.
* lib/hash-pjw.c: Likewise.
* lib/hash-pjw.h: Likewise.
* lib/hash-triple.c: Likewise.
* lib/hash.c: Likewise.
* lib/hash.h: Likewise.
* lib/human.c: Likewise.
* lib/human.h: Likewise.
* lib/i-ring.c: Likewise.
* lib/i-ring.h: Likewise.
* lib/idcache.c: Likewise.
* lib/imaxabs.c: Likewise.
* lib/imaxdiv.c: Likewise.
* lib/inet_pton.c: Likewise.
* lib/inet_pton.h: Likewise.
* lib/intprops.h: Likewise.
* lib/inttostr.c: Likewise.
* lib/inttostr.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/isapipe.c: Likewise.
* lib/isdir.c: Likewise.
* lib/isnan.c: Likewise.
* lib/isnan.h: Likewise.
* lib/isnanf.c: Likewise.
* lib/isnanf.h: Likewise.
* lib/isnanl-nolibm.h: Likewise.
* lib/isnanl.c: Likewise.
* lib/isnanl.h: Likewise.
* lib/javacomp.c: Likewise.
* lib/javacomp.h: Likewise.
* lib/javaexec.c: Likewise.
* lib/javaexec.h: Likewise.
* lib/javaversion.c: Likewise.
* lib/javaversion.h: Likewise.
* lib/javaversion.java: Likewise.
* lib/lbrkprop.h: Likewise.
* lib/lchmod.h: Likewise.
* lib/lchown.c: Likewise.
* lib/ldexpl.c: Likewise.
* lib/linebreak.c: Likewise.
* lib/linebreak.h: Likewise.
* lib/linebuffer.c: Likewise.
* lib/linebuffer.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/logl.c: Likewise.
* lib/long-options.c: Likewise.
* lib/long-options.h: Likewise.
* lib/lstat.c: Likewise.
* lib/lstat.h: Likewise.
* lib/math.in.h: Likewise.
* lib/mbchar.c: Likewise.
* lib/mbchar.h: Likewise.
* lib/mbfile.h: Likewise.
* lib/mbiter.h: Likewise.
* lib/mbscasecmp.c: Likewise.
* lib/mbscasestr.c: Likewise.
* lib/mbschr.c: Likewise.
* lib/mbscspn.c: Likewise.
* lib/mbslen.c: Likewise.
* lib/mbsncasecmp.c: Likewise.
* lib/mbsnlen.c: Likewise.
* lib/mbspbrk.c: Likewise.
* lib/mbspcasecmp.c: Likewise.
* lib/mbsrchr.c: Likewise.
* lib/mbssep.c: Likewise.
* lib/mbsspn.c: Likewise.
* lib/mbsstr.c: Likewise.
* lib/mbstok_r.c: Likewise.
* lib/mbswidth.c: Likewise.
* lib/mbswidth.h: Likewise.
* lib/mbuiter.h: Likewise.
* lib/memcasecmp.c: Likewise.
* lib/memcasecmp.h: Likewise.
* lib/memchr.c: Likewise.
* lib/memcmp.c: Likewise.
* lib/memcoll.c: Likewise.
* lib/memcoll.h: Likewise.
* lib/memcpy.c: Likewise.
* lib/memrchr.c: Likewise.
* lib/mkancesdirs.c: Likewise.
* lib/mkdir-p.c: Likewise.
* lib/mkdir-p.h: Likewise.
* lib/mkdir.c: Likewise.
* lib/mkdirat.c: Likewise.
* lib/mkdtemp.c: Likewise.
* lib/mkstemp-safer.c: Likewise.
* lib/mkstemp.c: Likewise.
* lib/modechange.c: Likewise.
* lib/modechange.h: Likewise.
* lib/mountlist.c: Likewise.
* lib/mountlist.h: Likewise.
* lib/mpsort.c: Likewise.
* lib/nanosleep.c: Likewise.
* lib/obstack.c: Likewise.
* lib/obstack.h: Likewise.
* lib/open-safer.c: Likewise.
* lib/open.c: Likewise.
* lib/openat-die.c: Likewise.
* lib/openat-priv.h: Likewise.
* lib/openat-proc.c: Likewise.
* lib/openat.c: Likewise.
* lib/openat.h: Likewise.
* lib/pagealign_alloc.c: Likewise.
* lib/pagealign_alloc.h: Likewise.
* lib/physmem.c: Likewise.
* lib/physmem.h: Likewise.
* lib/pipe-safer.c: Likewise.
* lib/pipe.c: Likewise.
* lib/pipe.h: Likewise.
* lib/posixtm.c: Likewise.
* lib/posixtm.h: Likewise.
* lib/posixver.c: Likewise.
* lib/printf-frexp.c: Likewise.
* lib/printf-frexp.h: Likewise.
* lib/printf-frexpl.c: Likewise.
* lib/printf-frexpl.h: Likewise.
* lib/printf.c: Likewise.
* lib/progname.c: Likewise.
* lib/progname.h: Likewise.
* lib/progreloc.c: Likewise.
* lib/putenv.c: Likewise.
* lib/quote.c: Likewise.
* lib/quote.h: Likewise.
* lib/quotearg.c: Likewise.
* lib/quotearg.h: Likewise.
* lib/raise.c: Likewise.
* lib/readline.c: Likewise.
* lib/readline.h: Likewise.
* lib/readlink.c: Likewise.
* lib/readtokens.c: Likewise.
* lib/readtokens.h: Likewise.
* lib/readtokens0.c: Likewise.
* lib/readtokens0.h: Likewise.
* lib/readutmp.c: Likewise.
* lib/readutmp.h: Likewise.
* lib/realloc.c: Likewise.
* lib/relocwrapper.c: Likewise.
* lib/rename-dest-slash.c: Likewise.
* lib/rename.c: Likewise.
* lib/rmdir.c: Likewise.
* lib/rpmatch.c: Likewise.
* lib/safe-read.c: Likewise.
* lib/safe-read.h: Likewise.
* lib/safe-write.c: Likewise.
* lib/safe-write.h: Likewise.
* lib/same-inode.h: Likewise.
* lib/same.c: Likewise.
* lib/same.h: Likewise.
* lib/save-cwd.c: Likewise.
* lib/save-cwd.h: Likewise.
* lib/savedir.c: Likewise.
* lib/savedir.h: Likewise.
* lib/savewd.c: Likewise.
* lib/savewd.h: Likewise.
* lib/search.in.h: Likewise.
* lib/setenv.c: Likewise.
* lib/setenv.h: Likewise.
* lib/settime.c: Likewise.
* lib/sh-quote.c: Likewise.
* lib/sh-quote.h: Likewise.
* lib/sig2str.c: Likewise.
* lib/sig2str.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/signbitd.c: Likewise.
* lib/signbitf.c: Likewise.
* lib/signbitl.c: Likewise.
* lib/sigprocmask.c: Likewise.
* lib/sincosl.c: Likewise.
* lib/sleep.c: Likewise.
* lib/sprintf.c: Likewise.
* lib/sqrtl.c: Likewise.
* lib/stat-time.h: Likewise.
* lib/stdio--.h: Likewise.
* lib/stdio-safer.h: Likewise.
* lib/stdlib--.h: Likewise.
* lib/stdlib-safer.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/stpcpy.c: Likewise.
* lib/stpncpy.c: Likewise.
* lib/strchrnul.c: Likewise.
* lib/strcspn.c: Likewise.
* lib/strerror.c: Likewise.
* lib/strftime.c: Likewise.
* lib/strftime.h: Likewise.
* lib/striconveh.c: Likewise.
* lib/striconveh.h: Likewise.
* lib/striconveha.c: Likewise.
* lib/striconveha.h: Likewise.
* lib/stripslash.c: Likewise.
* lib/strnlen1.c: Likewise.
* lib/strnlen1.h: Likewise.
* lib/strtod.c: Likewise.
* lib/strtoimax.c: Likewise.
* lib/strtok_r.c: Likewise.
* lib/strtol.c: Likewise.
* lib/strtoll.c: Likewise.
* lib/strtoul.c: Likewise.
* lib/strtoull.c: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/tempname.c: Likewise.
* lib/tempname.h: Likewise.
* lib/timespec.h: Likewise.
* lib/tls.c: Likewise.
* lib/tls.h: Likewise.
* lib/tmpdir.c: Likewise.
* lib/tmpdir.h: Likewise.
* lib/tmpfile-safer.c: Likewise.
* lib/tmpfile.c: Likewise.
* lib/trigl.c: Likewise.
* lib/trigl.h: Likewise.
* lib/trim.c: Likewise.
* lib/trim.h: Likewise.
* lib/trunc.c: Likewise.
* lib/truncf.c: Likewise.
* lib/truncl.c: Likewise.
* lib/tsearch.c: Likewise.
* lib/unicodeio.c: Likewise.
* lib/unicodeio.h: Likewise.
* lib/unistd--.h: Likewise.
* lib/unistd-safer.h: Likewise.
* lib/unistdio/ulc-fprintf.c: Likewise.
* lib/unistdio/ulc-vfprintf.c: Likewise.
* lib/unlinkdir.c: Likewise.
* lib/unlinkdir.h: Likewise.
* lib/unlocked-io.h: Likewise.
* lib/unsetenv.c: Likewise.
* lib/userspec.c: Likewise.
* lib/utime.c: Likewise.
* lib/utimecmp.c: Likewise.
* lib/utimecmp.h: Likewise.
* lib/utimens.c: Likewise.
* lib/verify.h: Likewise.
* lib/verror.c: Likewise.
* lib/verror.h: Likewise.
* lib/version-etc-fsf.c: Likewise.
* lib/version-etc.c: Likewise.
* lib/version-etc.h: Likewise.
* lib/vfprintf.c: Likewise.
* lib/vprintf.c: Likewise.
* lib/vsprintf.c: Likewise.
* lib/w32spawn.h: Likewise.
* lib/wait-process.c: Likewise.
* lib/wait-process.h: Likewise.
* lib/wcwidth.c: Likewise.
* lib/write-any-file.c: Likewise.
* lib/xalloc-die.c: Likewise.
* lib/xalloc.h: Likewise.
* lib/xasprintf.c: Likewise.
* lib/xgetcwd.c: Likewise.
* lib/xgetcwd.h: Likewise.
* lib/xgetdomainname.c: Likewise.
* lib/xgetdomainname.h: Likewise.
* lib/xgethostname.c: Likewise.
* lib/xmalloc.c: Likewise.
* lib/xmalloca.c: Likewise.
* lib/xmalloca.h: Likewise.
* lib/xmemcoll.c: Likewise.
* lib/xnanosleep.c: Likewise.
* lib/xreadlink.c: Likewise.
* lib/xreadlink.h: Likewise.
* lib/xsetenv.c: Likewise.
* lib/xsetenv.h: Likewise.
* lib/xstriconv.c: Likewise.
* lib/xstriconv.h: Likewise.
* lib/xstrndup.c: Likewise.
* lib/xstrndup.h: Likewise.
* lib/xstrtod.c: Likewise.
* lib/xstrtod.h: Likewise.
* lib/xstrtol-error.c: Likewise.
* lib/xstrtol.c: Likewise.
* lib/xstrtol.h: Likewise.
* lib/xtime.h: Likewise.
* lib/xvasprintf.c: Likewise.
* lib/xvasprintf.h: Likewise.
* lib/yesno.c: Likewise.
* lib/yesno.h: Likewise.
* posix-modules: Likewise.
* tests/test-alloca-opt.c: Likewise.
* tests/test-arcfour.c: Likewise.
* tests/test-arctwo.c: Likewise.
* tests/test-argmatch.c: Likewise.
* tests/test-argp-2.sh: Likewise.
* tests/test-argp.c: Likewise.
* tests/test-arpa_inet.c: Likewise.
* tests/test-array_list.c: Likewise.
* tests/test-array_oset.c: Likewise.
* tests/test-atexit.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-avltree_oset.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-base64.c: Likewise.
* tests/test-binary-io.c: Likewise.
* tests/test-byteswap.c: Likewise.
* tests/test-c-ctype.c: Likewise.
* tests/test-c-strcasecmp.c: Likewise.
* tests/test-c-strcasestr.c: Likewise.
* tests/test-c-strncasecmp.c: Likewise.
* tests/test-c-strstr.c: Likewise.
* tests/test-canonicalize-lgpl.c: Likewise.
* tests/test-canonicalize.c: Likewise.
* tests/test-carray_list.c: Likewise.
* tests/test-ceilf.c: Likewise.
* tests/test-ceill.c: Likewise.
* tests/test-count-one-bits.c: Likewise.
* tests/test-crc.c: Likewise.
* tests/test-dirname.c: Likewise.
* tests/test-fbufmode.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-fflush.c: Likewise.
* tests/test-floorf.c: Likewise.
* tests/test-floorl.c: Likewise.
* tests/test-fopen.c: Likewise.
* tests/test-fprintf-posix.c: Likewise.
* tests/test-fprintf-posix.h: Likewise.
* tests/test-fpurge.c: Likewise.
* tests/test-freadable.c: Likewise.
* tests/test-freadahead.c: Likewise.
* tests/test-freading.c: Likewise.
* tests/test-freopen.c: Likewise.
* tests/test-frexp.c: Likewise.
* tests/test-frexpl.c: Likewise.
* tests/test-fseek.c: Likewise.
* tests/test-fseeko.c: Likewise.
* tests/test-fseterr.c: Likewise.
* tests/test-fstrcmp.c: Likewise.
* tests/test-ftell.c: Likewise.
* tests/test-ftello.c: Likewise.
* tests/test-fwritable.c: Likewise.
* tests/test-fwriting.c: Likewise.
* tests/test-getaddrinfo.c: Likewise.
* tests/test-getpass.c: Likewise.
* tests/test-gettimeofday.c: Likewise.
* tests/test-hmac-md5.c: Likewise.
* tests/test-hmac-sha1.c: Likewise.
* tests/test-iconv.c: Likewise.
* tests/test-iconvme.c: Likewise.
* tests/test-inttypes.c: Likewise.
* tests/test-isnan.c: Likewise.
* tests/test-isnanf.c: Likewise.
* tests/test-isnanl-nolibm.c: Likewise.
* tests/test-isnanl.c: Likewise.
* tests/test-isnanl.h: Likewise.
* tests/test-ldexpl.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-locale.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-lseek.c: Likewise.
* tests/test-malloca.c: Likewise.
* tests/test-math.c: Likewise.
* tests/test-mbscasecmp.c: Likewise.
* tests/test-mbscasestr1.c: Likewise.
* tests/test-mbscasestr2.c: Likewise.
* tests/test-mbscasestr3.c: Likewise.
* tests/test-mbscasestr4.c: Likewise.
* tests/test-mbschr.c: Likewise.
* tests/test-mbscspn.c: Likewise.
* tests/test-mbsncasecmp.c: Likewise.
* tests/test-mbspbrk.c: Likewise.
* tests/test-mbspcasecmp.c: Likewise.
* tests/test-mbsrchr.c: Likewise.
* tests/test-mbsspn.c: Likewise.
* tests/test-mbsstr1.c: Likewise.
* tests/test-mbsstr2.c: Likewise.
* tests/test-mbsstr3.c: Likewise.
* tests/test-md5.c: Likewise.
* tests/test-memmem.c: Likewise.
* tests/test-netinet_in.c: Likewise.
* tests/test-open.c: Likewise.
* tests/test-printf-frexp.c: Likewise.
* tests/test-printf-frexpl.c: Likewise.
* tests/test-printf-posix.c: Likewise.
* tests/test-printf-posix.h: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
* tests/test-read-file.c: Likewise.
* tests/test-rijndael.c: Likewise.
* tests/test-search.c: Likewise.
* tests/test-signbit.c: Likewise.
* tests/test-sleep.c: Likewise.
* tests/test-snprintf-posix.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-snprintf.c: Likewise.
* tests/test-sprintf-posix.c: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-stat-time.c: Likewise.
* tests/test-stdbool.c: Likewise.
* tests/test-stdint.c: Likewise.
* tests/test-stdio.c: Likewise.
* tests/test-stdlib.c: Likewise.
* tests/test-stpncpy.c: Likewise.
* tests/test-strcasestr.c: Likewise.
* tests/test-striconv.c: Likewise.
* tests/test-striconveh.c: Likewise.
* tests/test-striconveha.c: Likewise.
* tests/test-string.c: Likewise.
* tests/test-sys_select.c: Likewise.
* tests/test-sys_socket.c: Likewise.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_time.c: Likewise.
* tests/test-sysexits.c: Likewise.
* tests/test-time.c: Likewise.
* tests/test-tls.c: Likewise.
* tests/test-trunc.c: Likewise.
* tests/test-truncf.c: Likewise.
* tests/test-truncl.c: Likewise.
* tests/test-unistd.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasnprintf-posix2.c: Likewise.
* tests/test-vasnprintf.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* tests/test-vasprintf.c: Likewise.
* tests/test-verify.c: Likewise.
* tests/test-vfprintf-posix.c: Likewise.
* tests/test-vprintf-posix.c: Likewise.
* tests/test-vsnprintf-posix.c: Likewise.
* tests/test-vsnprintf.c: Likewise.
* tests/test-vsprintf-posix.c: Likewise.
* tests/test-wchar.c: Likewise.
* tests/test-wctype.c: Likewise.
* tests/test-wcwidth.c: Likewise.
* tests/test-xstrtol.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
* tests/uniconv/test-u16-conv-from-enc.c: Likewise.
* tests/uniconv/test-u16-conv-to-enc.c: Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u32-conv-from-enc.c: Likewise.
* tests/uniconv/test-u32-conv-to-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u8-conv-from-enc.c: Likewise.
* tests/uniconv/test-u8-conv-to-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c: Likewise.
* tests/uniname/test-uninames.c: Likewise.
* tests/unistdio/test-u16-asnprintf1.c: Likewise.
* tests/unistdio/test-u16-asnprintf1.h: Likewise.
* tests/unistdio/test-u16-printf1.h: Likewise.
* tests/unistdio/test-u16-vasnprintf1.c: Likewise.
* tests/unistdio/test-u16-vasnprintf2.c: Likewise.
* tests/unistdio/test-u16-vasnprintf3.c: Likewise.
* tests/unistdio/test-u16-vasprintf1.c: Likewise.
* tests/unistdio/test-u16-vsnprintf1.c: Likewise.
* tests/unistdio/test-u16-vsprintf1.c: Likewise.
* tests/unistdio/test-u32-asnprintf1.c: Likewise.
* tests/unistdio/test-u32-asnprintf1.h: Likewise.
* tests/unistdio/test-u32-printf1.h: Likewise.
* tests/unistdio/test-u32-vasnprintf1.c: Likewise.
* tests/unistdio/test-u32-vasnprintf2.c: Likewise.
* tests/unistdio/test-u32-vasnprintf3.c: Likewise.
* tests/unistdio/test-u32-vasprintf1.c: Likewise.
* tests/unistdio/test-u32-vsnprintf1.c: Likewise.
* tests/unistdio/test-u32-vsprintf1.c: Likewise.
* tests/unistdio/test-u8-asnprintf1.c: Likewise.
* tests/unistdio/test-u8-asnprintf1.h: Likewise.
* tests/unistdio/test-u8-printf1.h: Likewise.
* tests/unistdio/test-u8-vasnprintf1.c: Likewise.
* tests/unistdio/test-u8-vasnprintf2.c: Likewise.
* tests/unistdio/test-u8-vasnprintf3.c: Likewise.
* tests/unistdio/test-u8-vasprintf1.c: Likewise.
* tests/unistdio/test-u8-vsnprintf1.c: Likewise.
* tests/unistdio/test-u8-vsprintf1.c: Likewise.
* tests/unistdio/test-ulc-asnprintf1.c: Likewise.
* tests/unistdio/test-ulc-asnprintf1.h: Likewise.
* tests/unistdio/test-ulc-printf1.h: Likewise.
* tests/unistdio/test-ulc-vasnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vasnprintf2.c: Likewise.
* tests/unistdio/test-ulc-vasnprintf3.c: Likewise.
* tests/unistdio/test-ulc-vasprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsprintf1.c: Likewise.
* tests/uniwidth/test-u16-strwidth.c: Likewise.
* tests/uniwidth/test-u16-width.c: Likewise.
* tests/uniwidth/test-u32-strwidth.c: Likewise.
* tests/uniwidth/test-u32-width.c: Likewise.
* tests/uniwidth/test-u8-strwidth.c: Likewise.
* tests/uniwidth/test-u8-width.c: Likewise.
* tests/uniwidth/test-uc_width.c: Likewise.
* config/srclist-update: Likewise.
(fixlicense): Update to GPLv3+.
Change copyright notice from LGPLv2.1+ to LGPLv3+.
* tests/test-tsearch.c: Change copyright notice.
Change copyright notice from LGPLv2.0+ to LGPLv3+.
* lib/c-strcaseeq.h: Change copyright notice.
* lib/streq.h: Likewise.
* lib/uniconv.h: Likewise.
* lib/uniconv/u-conv-from-enc.h: Likewise.
* lib/uniconv/u-conv-to-enc.h: Likewise.
* lib/uniconv/u-strconv-from-enc.h: Likewise.
* lib/uniconv/u-strconv-to-enc.h: Likewise.
* lib/uniconv/u16-conv-from-enc.c: Likewise.
* lib/uniconv/u16-conv-to-enc.c: Likewise.
* lib/uniconv/u16-strconv-from-enc.c: Likewise.
* lib/uniconv/u16-strconv-from-locale.c: Likewise.
* lib/uniconv/u16-strconv-to-enc.c: Likewise.
* lib/uniconv/u16-strconv-to-locale.c: Likewise.
* lib/uniconv/u32-conv-from-enc.c: Likewise.
* lib/uniconv/u32-conv-to-enc.c: Likewise.
* lib/uniconv/u32-strconv-from-enc.c: Likewise.
* lib/uniconv/u32-strconv-from-locale.c: Likewise.
* lib/uniconv/u32-strconv-to-enc.c: Likewise.
* lib/uniconv/u32-strconv-to-locale.c: Likewise.
* lib/uniconv/u8-conv-from-enc.c: Likewise.
* lib/uniconv/u8-conv-to-enc.c: Likewise.
* lib/uniconv/u8-strconv-from-enc.c: Likewise.
* lib/uniconv/u8-strconv-from-locale.c: Likewise.
* lib/uniconv/u8-strconv-to-enc.c: Likewise.
* lib/uniconv/u8-strconv-to-locale.c: Likewise.
* lib/uniname.h: Likewise.
* lib/uniname/uniname.c: Likewise.
* lib/unistdio.h: Likewise.
* lib/unistdio/u-asnprintf.h: Likewise.
* lib/unistdio/u-asprintf.h: Likewise.
* lib/unistdio/u-printf-args.c: Likewise.
* lib/unistdio/u-printf-args.h: Likewise.
* lib/unistdio/u-printf-parse.h: Likewise.
* lib/unistdio/u-snprintf.h: Likewise.
* lib/unistdio/u-sprintf.h: Likewise.
* lib/unistdio/u-vasprintf.h: Likewise.
* lib/unistdio/u-vsnprintf.h: Likewise.
* lib/unistdio/u-vsprintf.h: Likewise.
* lib/unistdio/u16-asnprintf.c: Likewise.
* lib/unistdio/u16-asprintf.c: Likewise.
* lib/unistdio/u16-printf-parse.c: Likewise.
* lib/unistdio/u16-snprintf.c: Likewise.
* lib/unistdio/u16-sprintf.c: Likewise.
* lib/unistdio/u16-u16-asnprintf.c: Likewise.
* lib/unistdio/u16-u16-asprintf.c: Likewise.
* lib/unistdio/u16-u16-snprintf.c: Likewise.
* lib/unistdio/u16-u16-sprintf.c: Likewise.
* lib/unistdio/u16-u16-vasnprintf.c: Likewise.
* lib/unistdio/u16-u16-vasprintf.c: Likewise.
* lib/unistdio/u16-u16-vsnprintf.c: Likewise.
* lib/unistdio/u16-u16-vsprintf.c: Likewise.
* lib/unistdio/u16-vasnprintf.c: Likewise.
* lib/unistdio/u16-vasprintf.c: Likewise.
* lib/unistdio/u16-vsnprintf.c: Likewise.
* lib/unistdio/u16-vsprintf.c: Likewise.
* lib/unistdio/u32-asnprintf.c: Likewise.
* lib/unistdio/u32-asprintf.c: Likewise.
* lib/unistdio/u32-printf-parse.c: Likewise.
* lib/unistdio/u32-snprintf.c: Likewise.
* lib/unistdio/u32-sprintf.c: Likewise.
* lib/unistdio/u32-u32-asnprintf.c: Likewise.
* lib/unistdio/u32-u32-asprintf.c: Likewise.
* lib/unistdio/u32-u32-snprintf.c: Likewise.
* lib/unistdio/u32-u32-sprintf.c: Likewise.
* lib/unistdio/u32-u32-vasnprintf.c: Likewise.
* lib/unistdio/u32-u32-vasprintf.c: Likewise.
* lib/unistdio/u32-u32-vsnprintf.c: Likewise.
* lib/unistdio/u32-u32-vsprintf.c: Likewise.
* lib/unistdio/u32-vasnprintf.c: Likewise.
* lib/unistdio/u32-vasprintf.c: Likewise.
* lib/unistdio/u32-vsnprintf.c: Likewise.
* lib/unistdio/u32-vsprintf.c: Likewise.
* lib/unistdio/u8-asnprintf.c: Likewise.
* lib/unistdio/u8-asprintf.c: Likewise.
* lib/unistdio/u8-printf-parse.c: Likewise.
* lib/unistdio/u8-snprintf.c: Likewise.
* lib/unistdio/u8-sprintf.c: Likewise.
* lib/unistdio/u8-u8-asnprintf.c: Likewise.
* lib/unistdio/u8-u8-asprintf.c: Likewise.
* lib/unistdio/u8-u8-snprintf.c: Likewise.
* lib/unistdio/u8-u8-sprintf.c: Likewise.
* lib/unistdio/u8-u8-vasnprintf.c: Likewise.
* lib/unistdio/u8-u8-vasprintf.c: Likewise.
* lib/unistdio/u8-u8-vsnprintf.c: Likewise.
* lib/unistdio/u8-u8-vsprintf.c: Likewise.
* lib/unistdio/u8-vasnprintf.c: Likewise.
* lib/unistdio/u8-vasprintf.c: Likewise.
* lib/unistdio/u8-vsnprintf.c: Likewise.
* lib/unistdio/u8-vsprintf.c: Likewise.
* lib/unistdio/ulc-asnprintf.c: Likewise.
* lib/unistdio/ulc-asprintf.c: Likewise.
* lib/unistdio/ulc-printf-parse.c: Likewise.
* lib/unistdio/ulc-snprintf.c: Likewise.
* lib/unistdio/ulc-sprintf.c: Likewise.
* lib/unistdio/ulc-vasnprintf.c: Likewise.
* lib/unistdio/ulc-vasprintf.c: Likewise.
* lib/unistdio/ulc-vsnprintf.c: Likewise.
* lib/unistdio/ulc-vsprintf.c: Likewise.
* lib/unistr.h: Likewise.
* lib/unistr/u-cpy-alloc.h: Likewise.
* lib/unistr/u-cpy.h: Likewise.
* lib/unistr/u-endswith.h: Likewise.
* lib/unistr/u-move.h: Likewise.
* lib/unistr/u-set.h: Likewise.
* lib/unistr/u-startswith.h: Likewise.
* lib/unistr/u-stpcpy.h: Likewise.
* lib/unistr/u-stpncpy.h: Likewise.
* lib/unistr/u-strcat.h: Likewise.
* lib/unistr/u-strcpy.h: Likewise.
* lib/unistr/u-strcspn.h: Likewise.
* lib/unistr/u-strdup.h: Likewise.
* lib/unistr/u-strlen.h: Likewise.
* lib/unistr/u-strncat.h: Likewise.
* lib/unistr/u-strncpy.h: Likewise.
* lib/unistr/u-strnlen.h: Likewise.
* lib/unistr/u-strpbrk.h: Likewise.
* lib/unistr/u-strspn.h: Likewise.
* lib/unistr/u-strstr.h: Likewise.
* lib/unistr/u-strtok.h: Likewise.
* lib/unistr/u16-check.c: Likewise.
* lib/unistr/u16-chr.c: Likewise.
* lib/unistr/u16-cmp.c: Likewise.
* lib/unistr/u16-cpy-alloc.c: Likewise.
* lib/unistr/u16-cpy.c: Likewise.
* lib/unistr/u16-endswith.c: Likewise.
* lib/unistr/u16-mblen.c: Likewise.
* lib/unistr/u16-mbsnlen.c: Likewise.
* lib/unistr/u16-mbtouc-aux.c: Likewise.
* lib/unistr/u16-mbtouc-unsafe-aux.c: Likewise.
* lib/unistr/u16-mbtouc-unsafe.c: Likewise.
* lib/unistr/u16-mbtouc.c: Likewise.
* lib/unistr/u16-mbtoucr.c: Likewise.
* lib/unistr/u16-move.c: Likewise.
* lib/unistr/u16-next.c: Likewise.
* lib/unistr/u16-prev.c: Likewise.
* lib/unistr/u16-set.c: Likewise.
* lib/unistr/u16-startswith.c: Likewise.
* lib/unistr/u16-stpcpy.c: Likewise.
* lib/unistr/u16-stpncpy.c: Likewise.
* lib/unistr/u16-strcat.c: Likewise.
* lib/unistr/u16-strchr.c: Likewise.
* lib/unistr/u16-strcmp.c: Likewise.
* lib/unistr/u16-strcpy.c: Likewise.
* lib/unistr/u16-strcspn.c: Likewise.
* lib/unistr/u16-strdup.c: Likewise.
* lib/unistr/u16-strlen.c: Likewise.
* lib/unistr/u16-strmblen.c: Likewise.
* lib/unistr/u16-strmbtouc.c: Likewise.
* lib/unistr/u16-strncat.c: Likewise.
* lib/unistr/u16-strncmp.c: Likewise.
* lib/unistr/u16-strncpy.c: Likewise.
* lib/unistr/u16-strnlen.c: Likewise.
* lib/unistr/u16-strpbrk.c: Likewise.
* lib/unistr/u16-strrchr.c: Likewise.
* lib/unistr/u16-strspn.c: Likewise.
* lib/unistr/u16-strstr.c: Likewise.
* lib/unistr/u16-strtok.c: Likewise.
* lib/unistr/u16-to-u32.c: Likewise.
* lib/unistr/u16-to-u8.c: Likewise.
* lib/unistr/u16-uctomb-aux.c: Likewise.
* lib/unistr/u16-uctomb.c: Likewise.
* lib/unistr/u32-check.c: Likewise.
* lib/unistr/u32-chr.c: Likewise.
* lib/unistr/u32-cmp.c: Likewise.
* lib/unistr/u32-cpy-alloc.c: Likewise.
* lib/unistr/u32-cpy.c: Likewise.
* lib/unistr/u32-endswith.c: Likewise.
* lib/unistr/u32-mblen.c: Likewise.
* lib/unistr/u32-mbsnlen.c: Likewise.
* lib/unistr/u32-mbtouc-unsafe.c: Likewise.
* lib/unistr/u32-mbtouc.c: Likewise.
* lib/unistr/u32-mbtoucr.c: Likewise.
* lib/unistr/u32-move.c: Likewise.
* lib/unistr/u32-next.c: Likewise.
* lib/unistr/u32-prev.c: Likewise.
* lib/unistr/u32-set.c: Likewise.
* lib/unistr/u32-startswith.c: Likewise.
* lib/unistr/u32-stpcpy.c: Likewise.
* lib/unistr/u32-stpncpy.c: Likewise.
* lib/unistr/u32-strcat.c: Likewise.
* lib/unistr/u32-strchr.c: Likewise.
* lib/unistr/u32-strcmp.c: Likewise.
* lib/unistr/u32-strcpy.c: Likewise.
* lib/unistr/u32-strcspn.c: Likewise.
* lib/unistr/u32-strdup.c: Likewise.
* lib/unistr/u32-strlen.c: Likewise.
* lib/unistr/u32-strmblen.c: Likewise.
* lib/unistr/u32-strmbtouc.c: Likewise.
* lib/unistr/u32-strncat.c: Likewise.
* lib/unistr/u32-strncmp.c: Likewise.
* lib/unistr/u32-strncpy.c: Likewise.
* lib/unistr/u32-strnlen.c: Likewise.
* lib/unistr/u32-strpbrk.c: Likewise.
* lib/unistr/u32-strrchr.c: Likewise.
* lib/unistr/u32-strspn.c: Likewise.
* lib/unistr/u32-strstr.c: Likewise.
* lib/unistr/u32-strtok.c: Likewise.
* lib/unistr/u32-to-u16.c: Likewise.
* lib/unistr/u32-to-u8.c: Likewise.
* lib/unistr/u32-uctomb.c: Likewise.
* lib/unistr/u8-check.c: Likewise.
* lib/unistr/u8-chr.c: Likewise.
* lib/unistr/u8-cmp.c: Likewise.
* lib/unistr/u8-cpy-alloc.c: Likewise.
* lib/unistr/u8-cpy.c: Likewise.
* lib/unistr/u8-endswith.c: Likewise.
* lib/unistr/u8-mblen.c: Likewise.
* lib/unistr/u8-mbsnlen.c: Likewise.
* lib/unistr/u8-mbtouc-aux.c: Likewise.
* lib/unistr/u8-mbtouc-unsafe-aux.c: Likewise.
* lib/unistr/u8-mbtouc-unsafe.c: Likewise.
* lib/unistr/u8-mbtouc.c: Likewise.
* lib/unistr/u8-mbtoucr.c: Likewise.
* lib/unistr/u8-move.c: Likewise.
* lib/unistr/u8-next.c: Likewise.
* lib/unistr/u8-prev.c: Likewise.
* lib/unistr/u8-set.c: Likewise.
* lib/unistr/u8-startswith.c: Likewise.
* lib/unistr/u8-stpcpy.c: Likewise.
* lib/unistr/u8-stpncpy.c: Likewise.
* lib/unistr/u8-strcat.c: Likewise.
* lib/unistr/u8-strchr.c: Likewise.
* lib/unistr/u8-strcmp.c: Likewise.
* lib/unistr/u8-strcpy.c: Likewise.
* lib/unistr/u8-strcspn.c: Likewise.
* lib/unistr/u8-strdup.c: Likewise.
* lib/unistr/u8-strlen.c: Likewise.
* lib/unistr/u8-strmblen.c: Likewise.
* lib/unistr/u8-strmbtouc.c: Likewise.
* lib/unistr/u8-strncat.c: Likewise.
* lib/unistr/u8-strncmp.c: Likewise.
* lib/unistr/u8-strncpy.c: Likewise.
* lib/unistr/u8-strnlen.c: Likewise.
* lib/unistr/u8-strpbrk.c: Likewise.
* lib/unistr/u8-strrchr.c: Likewise.
* lib/unistr/u8-strspn.c: Likewise.
* lib/unistr/u8-strstr.c: Likewise.
* lib/unistr/u8-strtok.c: Likewise.
* lib/unistr/u8-to-u16.c: Likewise.
* lib/unistr/u8-to-u32.c: Likewise.
* lib/unistr/u8-uctomb-aux.c: Likewise.
* lib/unistr/u8-uctomb.c: Likewise.
* lib/unitypes.h: Likewise.
* lib/uniwidth.h: Likewise.
* lib/uniwidth/cjk.h: Likewise.
* lib/uniwidth/u16-strwidth.c: Likewise.
* lib/uniwidth/u16-width.c: Likewise.
* lib/uniwidth/u32-strwidth.c: Likewise.
* lib/uniwidth/u32-width.c: Likewise.
* lib/uniwidth/u8-strwidth.c: Likewise.
* lib/uniwidth/u8-width.c: Likewise.
* lib/uniwidth/width.c: Likewise.
2007-10-07 Bruno Haible <bruno@clisp.org>
* lib/inttypes.in.h: Change copyright notice from LGPL to GPL.
The file is still under LGPL (see modules/inttypes).
2007-10-06 Bruno Haible <bruno@clisp.org>
* modules/trunc (Dependencies): Add 'extensions'.
* m4/trunc.m4 (gl_FUNC_TRUNC): Require gl_USE_SYSTEM_EXTENSIONS.
Reported by Ben Pfaff <blp@gnu.org>.
2007-10-06 Bruno Haible <bruno@clisp.org>
* modules/freopen-tests: New file.
* tests/test-freopen.c: New file.
* modules/fopen-tests: New file.
* tests/test-fopen.c: New file.
* modules/fopen: New file.
* lib/fopen.c: New file.
* m4/fopen.m4: New file.
* modules/freopen: New file.
* lib/freopen.c: New file.
* m4/freopen.m4: New file.
* lib/stdio.in.h (fopen, freopen): New declarations.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize also GNULIB_FOPEN,
GNULIB_FREOPEN, REPLACE_FOPEN, REPLACE_FREOPEN.
* modules/stdio (Makefile.am): Substitute also GNULIB_FOPEN,
GNULIB_FREOPEN, REPLACE_FOPEN, REPLACE_FREOPEN.
* doc/functions/fopen.texi: Mention the 'fopen' module.
* doc/functions/freopen.texi: Mention the 'freopen' module.
2007-10-06 Bruno Haible <bruno@clisp.org>
* modules/open-tests: New file.
* tests/test-open.c: New file.
* modules/open: New file.
* lib/open.c: New file.
* m4/open.m4: New file.
* lib/fchdir.c (open): If the gnulib module 'open' is used, do what
lib/open.c does.
* lib/fcntl.in.h (open): Declare also if replaced by the 'open' module.
* m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR, gl_FCNTL_H_DEFAULTS): New
macros.
(gl_FCNTL_H): Require gl_FCNTL_H_DEFAULTS.
* modules/fcntl (Makefile.am): Also substitute GNULIB_OPEN and
REPLACE_OPEN.
* doc/functions/open.texi: Mention the 'open' module.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/ceill-tests: New file.
* tests/test-ceill.c: New file.
* modules/ceill: New file.
* lib/ceill.c: Replace entire file.
* m4/ceill.m4: New file.
* lib/math.in.h (ceill): Replace declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEILL.
* modules/math (Makefile.am): Substitute also GNULIB_CEILL.
* doc/functions/ceill.texi: Mention the 'ceill' module.
* modules/mathl (Files): Remove lib/ceill.c.
(Depends-on): Add ceill.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/ceilf-tests: New file.
* tests/test-ceilf.c: New file.
* modules/ceilf: New file.
* lib/ceil.c: New file.
* lib/ceilf.c: New file.
* m4/ceilf.m4: New file.
* lib/math.in.h (ceilf): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEILF and
HAVE_DECL_CEILF.
* modules/math (Makefile.am): Substitute also GNULIB_CEILF and
HAVE_DECL_CEILF.
* doc/functions/ceilf.texi: Mention the 'ceilf' module.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/floorl-tests: New file.
* tests/test-floorl.c: New file.
* modules/floorl: New file.
* lib/floorl.c: Replace entire file.
* m4/floorl.m4: New file.
* lib/math.in.h (floorl): Replace declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOORL.
* modules/math (Makefile.am): Substitute also GNULIB_FLOORL.
* doc/functions/floorl.texi: Mention the 'floorl' module.
* modules/mathl (Files): Remove lib/floorl.c.
(Depends-on): Add floorl.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/floorf-tests: New file.
* tests/test-floorf.c: New file.
* modules/floorf: New file.
* lib/floor.c: New file.
* lib/floorf.c: New file.
* m4/floorf.m4: New file.
* lib/math.in.h (floorf): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOORF and
HAVE_DECL_FLOORF.
* modules/math (Makefile.am): Substitute also GNULIB_FLOORF and
HAVE_DECL_FLOORF.
* doc/functions/floorf.texi: Mention the 'floorf' module.
2007-10-04 Benoit Sigoure <tsuna@lrde.epita.fr>
Bruno Haible <bruno@clisp.org>
Advertise for the Git server instead of the CVS server.
* doc/gnulib-intro.texi (Steady Development): Mention the Git
repository instead of the CVS one.
* doc/gnulib-tool.texi (VCS Issues): Renamed from "CVS Issues". Talk
about all VCS systems generically.
* doc/gnulib.texi (Introduction): Capitalize `Git'.
2007-10-04 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi (Function Substitutes): Explain what an absent module
means.
Reported by Benoît Sigoure <tsuna@lrde.epita.fr>.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/truncl-tests: New file.
* tests/test-truncl.c: New file.
* modules/truncl: New file.
* lib/truncl.c: New file.
* m4/truncl.m4: New file.
* lib/math.in.h (truncl): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNCL and
HAVE_DECL_TRUNCL.
* modules/math (Makefile.am): Substitute also GNULIB_TRUNCL and
HAVE_DECL_TRUNCL.
* doc/functions/truncl.texi: Mention the 'truncl' module.
2007-10-04 Bruno Haible <bruno@clisp.org>
* modules/truncf-tests: New file.
* tests/test-truncf.c: New file.
* modules/truncf: New file.
* lib/trunc.c: Make paramerizable through USE_* macros.
* lib/truncf.c: New file.
* m4/truncf.m4: New file.
* lib/math.in.h (truncf): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNCF and
HAVE_DECL_TRUNCF.
* modules/math (Makefile.am): Substitute also GNULIB_TRUNCF and
HAVE_DECL_TRUNCF.
* doc/functions/truncf.texi: Mention the 'truncf' module.
2007-10-03 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Synthesize an EXTRA_DIST
augmentation also for tests modules.
* modules/argp-tests (Makefile.am): Remove EXTRA_DIST augmentation.
* modules/atexit-tests (Makefile.am): Likewise.
* modules/binary-io-tests (Makefile.am): Likewise.
* modules/c-strcase-tests (Makefile.am): Likewise.
* modules/canonicalize-lgpl-tests (Makefile.am): Likewise.
* modules/canonicalize-tests (Makefile.am): Likewise.
* modules/closein-tests (Makefile.am): Likewise.
* modules/fprintf-posix-tests (Makefile.am): Likewise.
* modules/freadahead-tests (Makefile.am): Likewise.
* modules/fseek-tests (Makefile.am): Likewise.
* modules/fseeko-tests (Makefile.am): Likewise.
* modules/ftell-tests (Makefile.am): Likewise.
* modules/ftello-tests (Makefile.am): Likewise.
* modules/isnanl-nolibm-tests (Makefile.am): Likewise.
* modules/isnanl-tests (Makefile.am): Likewise.
* modules/lseek-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/printf-posix-tests (Makefile.am): Likewise.
* modules/snprintf-posix-tests (Makefile.am): Likewise.
* modules/sprintf-posix-tests (Makefile.am): Likewise.
* modules/tsearch-tests (Makefile.am): Likewise.
* modules/uniname/uniname-tests (Makefile.am): Likewise.
* modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/vasnprintf-posix-tests (Makefile.am): Likewise.
* modules/vfprintf-posix-tests (Makefile.am): Likewise.
* modules/vprintf-posix-tests (Makefile.am): Likewise.
* modules/vsnprintf-posix-tests (Makefile.am): Likewise.
* modules/vsprintf-posix-tests (Makefile.am): Likewise.
* modules/xstrtoimax-tests (Makefile.am): Likewise.
* modules/xstrtol-tests (Makefile.am): Likewise.
* modules/xstrtoumax-tests (Makefile.am): Likewise.
* modules/yesno-tests (Makefile.am): Likewise.
2007-10-03 Bruno Haible <bruno@clisp.org>
* modules/trunc-tests: New file.
* tests/test-trunc.c: New file.
* modules/trunc: New file.
* lib/trunc.c: New file.
* m4/trunc.m4: New file.
* lib/math.in.h (trunc): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNC and
HAVE_DECL_TRUNC.
* modules/math (Makefile.am): Substitute also GNULIB_TRUNC and
HAVE_DECL_TRUNC.
* doc/functions/trunc.texi: Mention the 'trunc' module.
2007-10-03 Bruno Haible <bruno@clisp.org>
* tests/test-fpending.c: New file, mostly copied
from coreutils/lib/t-fpending.c.
* modules/fpending-tests: New file.
2007-10-03 Bruno Haible <bruno@clisp.org>
Port the stdio extensions to QNX (untested).
* lib/fseterr.c (fseterr): Add support for QNX.
* lib/fbufmode.c (fbufmode): Likewise.
* lib/freadable.c (freadable): Likewise.
* lib/fwritable.c (fwritable): Likewise.
* lib/freading.c (freading): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* lib/freadahead.c (freadahed): Likewise.
* lib/fpurge.c (fpurge): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
2007-10-03 Bruno Haible <bruno@clisp.org>
Jim Meyering <jim@meyering.net>
Eric Blake <ebb9@byu.net>
* doc/relocatable.texi: Use @command instead of @program.
2007-10-02 Jim Meyering <jim@meyering.net>
Perform one more "_.h" -> ".in.h" substitution.
* modules/unistd (Makefile.am) [unistd.h]: Use unistd.h.in
instead of unistd_.h here, too.
2007-10-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_initmacro_done): Special case for alloca.c.
Needed for the alloca-opt module.
2007-09-30 Bruno Haible <bruno@clisp.org>
* lib/alloca.in.h: Renamed from lib/alloca_.h.
* modules/alloca-opt (Files, Makefile.am): Use alloca.in.h instead of
alloca_.h.
* lib/argz.in.h: Renamed from lib/argz_.h.
* modules/argz (Files, Makefile.am): Use argz.in.h instead of argz_.h.
* lib/byteswap.in.h: Renamed from lib/byteswap_.h.
* modules/byteswap (Files, Makefile.am): Use byteswap.in.h instead of
byteswap_.h.
* lib/dirent.in.h: Renamed from lib/dirent_.h.
* modules/fchdir (Files, Makefile.am): Use dirent.in.h instead of
dirent_.h.
* lib/fcntl.in.h: Renamed from lib/fcntl_.h.
* modules/fcntl (Files, Makefile.am): Use fcntl.in.h instead of
fcntl_.h.
* lib/float.in.h: Renamed from lib/float_.h.
* modules/float (Files, Makefile.am): Use float.in.h instead of
float_.h.
* lib/fnmatch.in.h: Renamed from lib/fnmatch_.h.
* modules/fnmatch (Files, Makefile.am): Use fnmatch.in.h instead of
fnmatch_.h.
* lib/getopt.in.h: Renamed from lib/getopt_.h.
* modules/getopt (Files, Makefile.am): Use getopt.in.h instead of
getopt_.h.
* lib/glob.in.h: Renamed from lib/glob_.h.
* modules/glob (Files, Makefile.am): Use glob.in.h instead of glob_.h.
* lib/iconv.in.h: Renamed from lib/iconv_.h.
* modules/iconv_open (Files, Makefile.am): Use iconv.in.h instead of
iconv_.h.
* lib/inttypes.in.h: Renamed from lib/inttypes_.h.
* modules/inttypes (Files, Makefile.am): Use inttypes.in.h instead of
inttypes_.h.
* lib/locale.in.h: Renamed from lib/locale_.h.
* modules/locale (Files, Makefile.am): Use locale.in.h instead of
locale_.h.
* lib/math.in.h: Renamed from lib/math_.h.
* modules/math (Files, Makefile.am): Use math.in.h instead of math_.h.
* lib/netinet_in.in.h: Renamed from lib/netinet_in_.h.
* modules/netinet_in (Files, Makefile.am): Use netinet_in.in.h instead
of netinet_in_.h. Add dependency.
* lib/poll.in.h: Renamed from lib/poll_.h.
* modules/poll (Files, Makefile.am): Use poll.in.h instead of poll_.h.
* lib/search.in.h: Renamed from lib/search_.h.
* modules/search (Files, Makefile.am): Use search.in.h instead of
search_.h.
* lib/signal.in.h: Renamed from lib/signal_.h.
* modules/signal (Files, Makefile.am): Use signal.in.h instead of
_signal.h.
* lib/stdbool.in.h: Renamed from lib/stdbool_.h.
* modules/stdbool (Files, Makefile.am): Use stdbool.in.h instead of
stdbool_.h.
* lib/stdint.in.h: Renamed from lib/stdint_.h.
* modules/stdint (Files, Makefile.am): Use stdint.in.h instead of
stdint_.h.
* lib/stdio.in.h: Renamed from lib/stdio_.h.
* modules/stdio (Files, Makefile.am): Use stdio.in.h instead of
stdio_.h.
* lib/stdlib.in.h: Renamed from lib/stdlib_.h.
* modules/stdlib (Files, Makefile.am): Use stdlib.in.h instead of
stdlib_.h.
* lib/string.in.h: Renamed from lib/string_.h.
* modules/string (Files, Makefile.am): Use string.in.h instead of
string_.h.
* doc/gnulib-tool.texi (Initial import): Update.
* lib/sys_select.in.h: Renamed from lib/sys_select_.h.
* modules/sys_select (Files, Makefile.am): Use sys_select.in.h instead
of sys_select_.h. Add dependency.
* lib/sys_socket.in.h: Renamed from lib/sys_socket_.h.
* modules/sys_socket (Files, Makefile.am): Use sys_socket.in.h instead
of sys_socket_.h.
* lib/sys_stat.in.h: Renamed from lib/sys_stat_.h.
* modules/sys_stat (Files, Makefile.am): Use sys_stat.in.h instead of
sys_stat_.h.
* lib/sys_time.in.h: Renamed from lib/sys_time_.h.
* modules/sys_time (Files, Makefile.am): Use sys_time.in.h instead of
sys_time_.h.
* lib/sysexits.in.h: Renamed from lib/sysexits_.h.
* modules/sysexits (Files, Makefile.am): Use sysexits.in.h instead of
sysexits_.h.
* lib/time.in.h: Renamed from lib/time_.h.
* modules/time (Files, Makefile.am): Use time.in.h instead of time_.h.
* lib/unistd.in.h: Renamed from lib/unistd_.h.
* modules/unistd (Files, Makefile.am): Use unistd.in.h instead of
unistd_.h.
* lib/wchar.in.h: Renamed from lib/wchar_.h.
* modules/wchar (Files, Makefile.am): Use wchar.in.h instead of
wchar_.h.
* lib/wctype.in.h: Renamed from lib/wctype_.h.
* modules/wctype (Files, Makefile.am): Use wctype.in.h instead of
wctype_.h.
* build-aux/bootstrap (slurp): Update.
* lib/.cppi-disable: Update.
2007-09-30 Bruno Haible <bruno@clisp.org>
* tests/test-getaddrinfo.c (AF_UNSPEC): Provide a fallback definition.
Needed on BeOS.
2007-09-30 Bruno Haible <bruno@clisp.org>
* modules/dirname-tests (check_PROGRAMS): Renamed from noinst_PROGRAMS.
2007-09-29 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (getdelim, getline): Add identifiers. Doc tweak.
2007-09-29 Bruno Haible <bruno@clisp.org>
* lib/xreadlink.c (xreadlink): Simplify to a wrapper around areadlink.
* modules/xreadlink (Depends-on): Add areadlink, remove readlink etc.
* build-aux/install-reloc: Compile also areadlink.c.
* modules/relocatable-prog-wrapper (Files): Add lib/areadlink.[hc].
2007-09-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_initmacro_done): Indentation.
2007-09-29 Bruno Haible <bruno@clisp.org>
* README: Add CVS checkout update instructions.
Info from Bob Proulx <bob@proulx.com>.
2007-09-28 Eric Blake <ebb9@byu.net>
Provide move-if-change.
* build-aux/move-if-change: New file, based on best practice
rather than any canonical upstream location.
2007-09-28 Jim Meyering <jim@meyering.net>
Fix canonicalize loop-detection corner case.
Do not attempt to stat the symlink values stored via seen_triple.
Without this, coreutils' tests/misc/readlink-fp-loop test would fail
on linux-2.6.18, (but not 2.6.22).
* lib/canonicalize.c (seen_triple): Use triple_compare_ino_str, not
triple_compare. The former compares dev,ino,filename, while the latter
would actually stat dirname(filename) when dev and ino were equal.
* lib/hash-triple.c: Install <string.h>.
(STREQ): Define.
(triple_compare_ino_str): New function.
* lib/hash-triple.h (triple_compare_ino_str): Declare it.
2007-09-28 Eric Blake <ebb9@byu.net>
Enforce that AC_REPLACE_FUNCS files exist.
* gnulib-tool (func_emit_initmacro_done): Make AC_LIBSOURCES
override check for typos.
Fix test-closein on Solaris 10.
* tests/test-closein.c (main): Don't assume stdin can be inherited
closed on all systems.
* tests/test-closein.sh: Likewise.
Reported by Piotr Tarnowski.
2007-09-28 Jim Meyering <jim@meyering.net>
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Fix typo in comment.
2007-09-27 Jim Meyering <jim@meyering.net>
canonicalize: Avoid a false-positive cycle failure.
* modules/canonicalize (Depends-on): Add file-set and hash-triple.
Sort. Remove cycle-check.
* lib/canonicalize.c: Include file-set.h and hash-triple.h,
not cycle-check.h.
(seen_triple): New function.
(canonicalize_filename_mode): Use it instead of cycle-check.
* tests/test-canonicalize.c: Add a test for this bug.
* tests/test-canonicalize.sh: Set up and run the test.
New module, file-set, from coreutils.
* modules/file-set: Define it.
* lib/file-set.c, lib/file-set.h: Implement.
New module, hash-triple, from coreutils.
* modules/hash-triple: Define it.
* lib/hash-triple.c, lib/hash-triple.h: Implement.
2007-09-25 Eric Blake <ebb9@byu.net>
Fix strerror on Interix.
* lib/string_.h (strerror): Declare replacement.
* doc/functions/strerror.texi (strerror): Document the Interix
shortcoming.
* modules/string (Makefile.am): Support new hooks.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add new hooks.
* m4/strerror.m4 (gl_FUNC_STRERROR): Defer to
gl_FUNC_STRERROR_SEPARATE.
(gl_FUNC_STRERROR_SEPARATE): Check for Interix bug.
* lib/strerror.c (rpl_strerror): Provide replacement.
* modules/strerror (Depends-on): Add string.
(configure.ac): Detect use of module.
* tests/test-strerror.c: New file.
* modules/strerror-tests: New test module.
* modules/argp (Depends-on): Add strerror.
* modules/error (Depends-on): Likewise.
Reported by Martin Koeppe.
2007-09-24 Bruno Haible <bruno@clisp.org>
* README: Update git instructions.
2007-09-24 Eric Blake <ebb9@byu.net>
Revert fpending breakage from 2007-09-08.
* m4/fpending.m4 (gl_FUNC_FPENDING): Don't require existence of
__fpending.c.
2007-09-24 Jim Meyering <jim@meyering.net>
filenamecat.c: Add a test.
* lib/filenamecat.c (main) [TEST_FILE_NAME_CONCAT]: Add a test
showing how the function works when DIR is the empty string.
2007-09-21 Simon Josefsson <simon@josefsson.org>
* tests/test-canonicalize.sh: Turn on executable bit.
2007-09-19 Eric Blake <ebb9@byu.net>
* README: Update CVS instructions.
2007-09-18 Bruno Haible <bruno@clisp.org>
* modules/areadlink: New file.
* lib/areadlink.h (areadlink): New declaration.
* lib/areadlink.c: New file, based on lib/xreadlink.c.
2007-09-17 Jim Meyering <jim@meyering.net>
* lib/savewd.c (ESTALE) [!defined]: Define.
Reported to be required on Interix by Martin Koeppe.
2007-09-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_version): Use $version.
2007-09-16 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_LONG_DOUBLE, gl_PRINTF_INFINITE,
gl_PRINTF_INFINITE_LONG_DOUBLE): Increase buf's size from 100 to 10000.
Needed on glibc-2.6.1 with -fstack-protector -D_FORTIFY_SOURCE=2.
Reported by Greg Schafer <gschafer@zip.com.au>.
2007-09-15 Bruno Haible <bruno@clisp.org>
* gnulib-tool (sed): Try a little harder to make bash understand the
alias.
Reported by Bruce Korb <bruce.korb@gmail.com>.
2007-09-13 Eric Blake <ebb9@byu.net>
* ChangeLog: Remove conflict markers.
2007-09-13 Simon Josefsson <simon@josefsson.org>
* lib/gc-gnulib.c (gc_hash_open): Catch NULL calloc return value.
Reported by Bruno Haible <bruno@clisp.org>.
2007-09-12 Bruno Haible <bruno@clisp.org>
* m4/lock.m4: Don't provide an AC_USE_SYSTEM_EXTENSIONS definition.
(gl_LOCK_EARLY_BODY): Use AC_GNU_SOURCE when AC_USE_SYSTEM_EXTENSIONS
is not defined.
2007-09-12 Eric Blake <ebb9@byu.net>
Track CVS Autoconf on AC_USE_SYSTEM_EXTENSIONS.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Update to CVS
Autoconf definition.
* modules/euidaccess (Depends-on): Add extensions, for
AC_USE_SYSTEM_EXTENSIONS with autoconf <= 2.59.
* modules/fnmatch (Depends-on): Likewise.
* modules/getaddrinfo (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getline (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/gettext (Depends-on): Likewise.
* modules/group-member (Depends-on): Likewise.
* modules/mbchar (Depends-on): Likewise.
* modules/memmem (Depends-on): Likewise.
* modules/mempcpy (Depends-on): Likewise.
* modules/memrchr (Depends-on): Likewise.
* modules/pagealign_alloc (Depends-on): Likewise.
* modules/readutmp (Depends-on): Likewise.
* modules/stpcpy (Depends-on): Likewise.
* modules/stpncpy (Depends-on): Likewise.
* modules/strchrnul (Depends-on): Likewise.
* modules/strndup (Depends-on): Likewise.
* modules/strsep (Depends-on): Likewise.
* modules/strverscmp (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
* m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): AC_GNU_SOURCE will be
obsolete in Autoconf 2.62; use AC_USE_SYSTEM_EXTENSIONS instead.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_GNU): Likewise.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDR_INFO): Likewise.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Likewise.
* m4/glob.m4 (gl_PREREQ_GLOB): Likewise.
* m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Likewise.
* m4/mbchar.m4 (gl_MBCHAR): Likewise.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Likewise.
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Likewise.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise.
* m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): Likewise.
* m4/readutmp.m4 (gl_READUTMP): Likewise.
* m4/regex.m4 (gl_PREREQ_REGEX): Likewise.
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Likewise.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Likewise.
* m4/strsep.m4 (gl_FUNC_STRSEP): Likewise.
* m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Likewise.
* m4/vasprintf.m4 (gl_PREREQ_VASPRINTF_H): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
* m4/lock.m4 (gl_LOCK_EARLY_BODY): Likewise, but provide fallback,
so that lock.m4 can be used in gettext without extensions module.
2007-09-11 Bruno Haible <bruno@clisp.org>
* m4/isc-posix.m4: Remove file.
Suggested by Eric Blake.
2007-09-11 Eric Blake <ebb9@byu.net>
* ChangeLog: Restore lines accidentally truncated 2007-04-06.
2007-09-10 Bruno Haible <bruno@clisp.org>
* posix-modules: Fix typo in error message.
Reported by Matt <mkraai@beckman.com>.
2007-09-09 Bruno Haible <bruno@clisp.org>
* doc/functions/getdelim.texi: Update list of platforms lacking the
function.
* doc/functions/getline.texi: Likewise.
2007-09-09 Jim Meyering <jim@meyering.net>
* lib/hash.c (hash_initialize): Detect calloc failure.
Reported by Bruno Haible.
2007-09-09 Bruno Haible <bruno@clisp.org>
* lib/canonicalize-lgpl.c (__realpath): Set errno to ENOMEM when
malloc or realloc fails.
2007-09-09 Bruno Haible <bruno@clisp.org>
* modules/getcwd (Depends-on): Add malloc-posix.
* modules/glob (Depends-on): Likewise.
* modules/putenv (Depends-on): Likewise.
* modules/strdup (Depends-on): Likewise.
* modules/getdelim (Depends-on): Add realloc-posix.
* modules/read-file (Depends-on): Likewise.
2007-09-09 Bruno Haible <bruno@clisp.org>
* m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): New macro.
(gl_FUNC_MALLOC_POSIX): Require it.
* m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Likewise.
* m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Likewise.
* modules/realloc (Files): Add m4/malloc.m4.
* modules/calloc (Files): Likewise.
2007-09-09 Bruno Haible <bruno@clisp.org>
* modules/malloc-posix: New file.
* modules/malloc (Depends-on): Add malloc-posix.
* lib/malloc.c: Include errno.h.
(rpl_malloc): Merge the requirements of a glibc-compatible malloc
and a POSIX-compatible malloc into a single function. Set ENOMEM
when returning NULL.
* m4/malloc.m4: New file.
* doc/functions/malloc.texi: Mention the malloc-posix module.
* lib/stdlib_.h (malloc): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
GNULIB_MALLOC_POSIX and HAVE_MALLOC_POSIX.
* modules/stdlib (stdlib.h): Substitute also GNULIB_MALLOC_POSIX
and HAVE_MALLOC_POSIX.
2007-09-09 Bruno Haible <bruno@clisp.org>
* modules/realloc-posix: New file.
* modules/realloc (Depends-on): Add realloc-posix.
* lib/realloc.c: Include errno.h.
(rpl_realloc): Merge the requirements of a glibc-compatible realloc
and a POSIX-compatible realloc into a single function. Set ENOMEM
when returning NULL.
* m4/realloc.m4: New file.
* doc/functions/realloc.texi: Mention the realloc-posix module.
* lib/stdlib_.h (realloc): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
GNULIB_REALLOC_POSIX and HAVE_REALLOC_POSIX.
* modules/stdlib (stdlib.h): Substitute also GNULIB_REALLOC_POSIX
and HAVE_REALLOC_POSIX.
2007-09-09 Bruno Haible <bruno@clisp.org>
* modules/calloc-posix: New file.
* modules/calloc (Depends-on): Add calloc-posix.
* lib/calloc.c: Include errno.h.
(rpl_calloc): Merge the requirements of a glibc-compatible calloc
and a POSIX-compatible calloc into a single function. Set ENOMEM
when returning NULL.
* m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): New macro.
* doc/functions/calloc.texi: Mention the calloc-posix module.
* lib/stdlib_.h (calloc): New declaration.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
GNULIB_CALLOC_POSIX and HAVE_CALLOC_POSIX.
* modules/stdlib (stdlib.h): Substitute also GNULIB_CALLOC_POSIX
and HAVE_CALLOC_POSIX.
2007-09-09 Bruno Haible <bruno@clisp.org>
Allow for modules to show an arbitrary notice.
* modules/TEMPLATE-EXTENDED: Add 'Notice' field.
* gnulib-tool: New option --extract-notice.
(func_usage): Document it.
(sed_extract_prog): Update.
(func_get_notice): New function.
(func_modules_notice): New function.
(func_import, func_create_testdir): Invoke it.
Suggested by Jim Meyering.
2007-09-09 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New options --verbose, --quiet.
(func_usage): Document them.
(verbose): New variable.
(func_execute_command): New function.
(func_import): Don't show the module list and the file list if
$verbose < 0.
(func_create_testdir): Likewise. Use func_execute_command.
(func_create_megatestdir): Use func_execute_command.
2007-09-08 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Prefer rsync over wget when available,
for fetching the PO files.
2007-09-08 Bruno Haible <bruno@clisp.org>
* posix-modules: New file. Portions copied from gnulib-tool.
* doc/gnulib.texi (POSIX Substitutes Library): New chapter.
2007-09-08 Jim Meyering <jim@meyering.net>
Rename __fpending.c -> fpending.c and __fpending.h -> fpending.h
* lib/fpending.h: Rename from __fpending.h.
* lib/fpending.c: Rename from __fpending.c.
Include "fpending.h", not "__fpending.h".
* lib/__fpending.h, lib/__fpending.c: Remove files.
* modules/fpending (Files): Reflect new file names.
* lib/close-stream.c: Include "fpending.h", not "__fpending.h".
2007-09-08 Bruno Haible <bruno@clisp.org>
* m4/inttypes-h.m4: Remove stub file.
2007-09-07 Simon Josefsson <simon@josefsson.org>
* doc/headers/stdint.texi: Discuss #include_next issue.
2007-09-06 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/bootstrap: Remove obsolete comment about wget --help.
2007-09-06 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Fix misspelling
in variable name.
2007-09-03 Jim Meyering <jim@meyering.net>
New module: git-version-gen.
* modules/git-version-gen: New file.
Import changes from coreutils for bootstrap script.
* build-aux/bootstrap (WGET_COMMAND): Remove code to set this variable.
bootstrap: uses rsync to download the .po files
* build-aux/bootstrap (po_download_command_format): New global.
(download_po_files): Use rsync.
(update_po_files): Don't remove .po files after download,
so future rsync runs can take advantage of the copies.
* build-aux/bootstrap (gnulib_tool): Make sha1sum check quietly.
Solve the unnecessary-.po-file-regeneration problem once and for all.
* build-aux/bootstrap (download_po_files): New function, renamed from
get_translations. Now, downloads, but doesn't update LINGUAS.
(update_po_files): New function.
bootstrap: Ignore more.
* build-aux/bootstrap (symlink_to_dir): Add a directory name like
uniwidth to e.g., lib/.gitignore.
(slurp): Handle the sys_stat_.h -> sys mapping, too.
* build-aux/bootstrap: New setting: vc_ignore.
(insert_sorted_if_absent): Create $file if absent.
Adapt to new, possibly empty, list: $vc_ignore.
bootstrap: generate more ignorable names
* build-aux/bootstrap (slurp): When generating ignorable names,
also map .sin to .sed, .gperf to .c, and .y to .c.
2007-09-03 Jim Meyering <jim@meyering.net>
* build-aux/git-version-gen: New file, from coreutils. For details, see
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=bfe49f506
2007-09-02 Bruno Haible <bruno@clisp.org>
Fix mis-recognition of 'mcs' on QNX 6.
* m4/csharpcomp.m4 (gt_CSHARPCOMP): Test whether the "mcs --version"
output contains the string "Mono".
* lib/csharpcomp.c (compile_csharp_using_mono): Likewise.
Reported by <kraai@ftbfs.org> at <https://savannah.gnu.org/bugs/?18337>.
2007-09-01 Bruno Haible <bruno@clisp.org>
Fix collision between uniwidth/* and linebreak modules.
* lib/linebreak.h (locale_charset, uc_width, u8_width, u16_width,
u32_width): Remove declarations.
* lib/linebreak.c: Include uniwidth.h, uniwidth/cjk.h, streq.h.
(u32_mbtouc_unsafe, streq9, streq8, streq7, streq6, streq5, streq4,
streq3, streq2, streq1, streq0): Remove functions.
(STREQ): Remove macro.
(is_cjk_encoding): Remove function.
(nonspacing_table_data, nonspacing_table_ind): Remove constants.
(uc_width, u8_width, u16_width, u32_width): Remove functions.
* modules/linebreak (Depends-on): Add streq, uniwidth/width.
* NEWS: Document the change.
2007-09-01 Bruno Haible <bruno@clisp.org>
* lib/streq.h: Add double-inclusion guard.
2007-09-01 Karl Berry <karl@gnu.org>
* MODULES.html.sh: Rename mreadlink_with_size to areadlink_with_size.
2007-08-28 Jim Meyering <jim@meyering.net>
Rename mreadlink_with_size to areadlink_with_size.
* NEWS: Document the change.
* lib/mreadlink-with-size.c (mreadlink_with_size): Rename this to...
* lib/areadlink-with-size.c (areadlink_with_size): ...this.
* lib/mreadlink.h: Rename this to...
* lib/areadlink.h: ...this.
* modules/mreadlink-with-size: Rename this to...
* modules/areadlink-with-size: ...this.
* lib/canonicalize.c: Reflect the renaming.
* modules/canonicalize: Likewise.
2007-08-26 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): When deciding which files to remove,
consider also dangling symbolic links.
Reported by Eric Blake.
2007-08-26 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_ln_if_changed): Use "test -h", not "test -L".
2007-08-23 Simon Josefsson <simon@josefsson.org>
* lib/readline.c: Don't include getline.h, the prototype is now
found in stdio.h.
2007-08-23 Jim Meyering <jim@meyering.net>
Getdelim touchup.
* lib/getdelim.c (getdelim): Don't bother to save/restore errno
around the funlockfile call, since funlockfile never sets errno.
Don't set errno upon failed realloc.
2007-08-22 Eric Blake <ebb9@byu.net>
Getline touchups.
* lib/getdelim.c (getdelim): Revert regression that required *n to
be 0 when *lineptr is NULL. Preserve errno across funlockfile.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Check for declaration of
getdelim, rather than whether implementation is missing.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise for getline.
* lib/stdio_.h (getline): Also declare if replacement is
required.
* doc/functions/getdelim.texi: New file.
* doc/functions/getline.texi: Likewise.
* doc/gnulib.texi (Function Substitutes): Add new files.
Reported by Bruno Haible.
2007-08-22 Ludovic Courtès <ludo@gnu.org>
* users.txt: Add Guile.
2007-08-22 Eric Blake <ebb9@byu.net>
* tests/test-getdelim.c (main): Use remove, not unlink.
* tests/test-getline.c (main): Likewise.
Move getline and getdelim into stdio.h, per POSIX 200x.
* modules/getline (Files): Remove getline.h.
(Depends-on): Add stdio.
(configure.ac): Add module indicator.
* modules/getdelim (Files): Remove getdelim.h.
(Depends-on): Add stdio.
(configure.ac): Add module indicator.
* modules/stdio (Makefile.am): Work with new indicators.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Work with stdio needs.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* lib/getdelim.h: Delete.
* lib/getline.h: Delete.
* lib/stdio_.h (getdelim, getline): Declare.
* modules/getdelim-tests: New module.
* modules/getline-tests: Likewise.
* tests/test-getdelim.c: New file.
* tests/test-getline.c: Likewise.
* NEWS: Document the change.
* lib/getline.c: Update choice of header.
* lib/csharpcomp.c: Likewise.
* lib/getpass.c: Likewise.
* lib/javacomp.c: Likewise.
* lib/javaversion.c: Likewise.
* lib/yesno.c: Likewise.
* lib/getdelim.c: Likewise.
(getdelim): Set errno on failure, and avoid memory leak.
2007-08-19 Bruno Haible <bruno@clisp.org>
* modules/closein (Depends-on): Add freadahead.
* lib/closein.c: Include freadahead.h.
(close_stdin): Skip the fseeko and fflush calls if freadahead(stdin)
is zero.
2007-08-19 Bruno Haible <bruno@clisp.org>
* modules/freadahead-tests: New file.
* tests/test-freadahead.sh: New file.
* tests/test-freadahead.c: New file.
* modules/freadahead: New file.
* lib/freadahead.h: New file.
* lib/freadahead.c: New file.
* MODULES.html.sh (File stream based Input/Output): Add freadahead,
fbufmode, fpurge, freadable, fwritable.
2007-08-19 Eric Blake <ebb9@byu.net>
Test yesno in combination with closein.
* lib/yesno.c (yesno): Document use of stdin.
* modules/yesno-tests (Files): New module.
* tests/test-yesno.c (main): New file.
* tests/test-yesno.sh: Likewise.
2007-08-19 Bruno Haible <bruno@clisp.org>
* lib/fbufmode.c (fbufmode): Add tentative support for Solaris/AMD64.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
2007-08-19 Bruno Haible <bruno@clisp.org>
* tests/test-lseek.c (main): Disable a test for BeOS.
* doc/functions/lseek.texi: Document the BeOS bug.
2007-08-19 Bruno Haible <bruno@clisp.org>
Eric Blake <ebb9@byu.net>
* lib/lseek.c: Include <sys/stat.h>.
(rpl_lseek): Add workaround code also for Unix platforms.
Needed for BeOS.
* m4/lseek.m4 (gl_FUNC_LSEEK): When cross-compiling, fail on BeOS.
* doc/functions/lseek.texi: Document BeOS definiency.
2007-08-18 Bruno Haible <bruno@clisp.org>
* modules/fstrcmp-tests: New file.
* tests/test-fstrcmp.c: New file.
2007-08-18 Bruno Haible <bruno@clisp.org>
* modules/fstrcmp: New file, from GNU gettext with modifications.
* lib/fstrcmp.h: New file, from GNU gettext.
* lib/fstrcmp.c: New file, from GNU gettext.
* MODULES.html.sh (String handling): Add fstrcmp.
2007-08-18 Bruno Haible <bruno@clisp.org>
* lib/diffseq.h (struct context): Change type of 'heuristic' field to
'bool'.
(diag, compareseq): Remove const from the ctxt argument.
(USE_HEURISTIC): Undefine at the end.
2007-08-18 Jim Meyering <jim@meyering.net>
New file: lib/idcache.h
* NEWS: Mention the addition.
* modules/idcache (Files): Add lib/idcache.h
* lib/idcache.c: Include "idcache.h".
Don't include <sys/types.h>.
Add a FIXME comment.
Move file-scoped "static" declarations to the top.
* lib/idcache.h: New file. Include <sys/types.h> here, instead.
2007-08-17 Bruno Haible <bruno@clisp.org>
and Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: Add diffseq.
* modules/diffseq: New file.
* lib/diffseq.h: New file, from GNU gettext with a few minor changes,
extracted from GNU gettext's fstrcmp.c and GNU diff's analyze.c.
2007-08-15 Paul Eggert <eggert@cs.ucla.edu>
Import changes from coreutils for bootstrap script.
2007-07-21 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/bootstrap (slurp): Work even in environments where
"ls" defaults to "ls -A". Put in a FIXME, though, since the
current code does not slurp files whose names start with ".", and
this looks like it might be a troublesome area.
2007-07-11 Jim Meyering <jim@meyering.net>
If there's a GPL vN copyright comment, require that N == 3.
2007-07-08 Jim Meyering <jim@meyering.net>
Run the coreutils-specific code only if tests/Makefile.am.in exists.
* build-aux/bootstrap (mam_template): Move definition out of loop.
Create symlinks for gl/{lib,m4}/*, just as for gnulib/{lib,m4}/*.
* build-aux/bootstrap (symlink_to_dir): Rename function from
symlink_to_gnulib. Add a directory parameter. Update all
callers.
(cp_mark_as_generated): Also check for -- and link to -- files in
gl/.
2007-07-08 Jim Meyering <jim@meyering.net>
Adapt to deeper hierarchy in gnulib.
* build-aux/bootstrap (symlink_to_dir): If the destination
directory doesn't exist, create it. This is required at least for
"lib/uniwidth/cjk.h".
2007-05-15 Jim Meyering <jim@meyering.net>
* build-aux/bootstrap: Now that generated Makefile.am files
are no longer under version control, they must be created at
bootstrap time.
2007-08-14 Ben Pfaff <blp@gnu.org>
* lib/count-one-bits.h: Add comments. From Bruno Haible.
2007-08-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/count-one-bits.h: Don't include <limits.h>; no longer needed
given the changes below.
(COUNT_ONE_BITS): Use 'verify' rather than 'verify_true'. Work
even on hosts that have padding bits beyond the supported 64.
2007-08-10 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: In xstrtol, remove STRTOL_FATAL_ERROR and add xstrtol_fatal.
* lib/xstrtol.h: Don't include exitfail.h; that's now internal to
xstrtol.c. Include getopt.h, since xstrtol_fatal's signature
depends on it.
(xstrtol_error): Remove.
(xstrtol_fatal): New decl, replacing the functionality of xstrtol_error
but with a different signature.
(ATTRIBUTE_NORETURN, __attribute__): New macros.
* lib/xstrtol-error.c: Include exitfail.h.
(xstrtol_fatal): New function, with a different signature from the
old xstrtol_error, so that the caller need not worry about passing
in an exit status, or about storage management of the option argument.
(xstrtol_error): Now a static function. Redo signature to
implement xstrtol_fatal. Output the correct number of hyphens in
front of the option so that the caller need not worry about
storage management.
(N_): New macro.
(_): Remove; not used now.
* modules/xstrtol: Depend on getopt.
* tests/test-xstrtol.c (main): Use new xstrtol_error function instead
of old STRTOL_FATAL_ERROR macro.
* tests/test-xstrtol.sh (t-xstrtol.xo): Adjust to match new behavior
of test program.
* tests/test-xstrtoimax.sh (t-xstrtoimax.xo): Likewise.
* tests/test-xstrtoumax.sh (t-xstrtoumax.xo): Likewise.
2007-08-08 Eric Blake <ebb9@byu.net>
* lib/xstrtol-error.c: Add missing include.
Move xstrtol messages into gnulib domain, when --pobase is used.
* lib/xstrtol.h (_STRTOL_ERROR): Move messages out of macro...
* lib/xstrtol-error.c (xstrtol_error): ...into new file.
* modules/xstrtol (Files): Distribute new file.
* m4/xstrtol.m4 (gl_XSTRTOL): Build new file.
* lib/xstrtol.c (TESTING_XSTRTO): Move tests...
* tests/test-xstrtol.c: ...into new file.
* tests/test-xstrtoul.c: Also test xstrtoul.
* tests/test-xstrtoimax.c: Also test xstrtoimax.
* tests/test-xstrtoumax.c: Also test xstrtoumax.
* tests/test-xstrtol.sh: Drive the tests.
* tests/test-xstrtoimax.sh: Likewise.
* tests/test-xstrtoumax.sh: Likewise.
* modules/xstrtol-tests: New module.
* modules/xstrtoimax-tests: Likewise.
* modules/xstrtoumax-tests: Likewise.
2007-08-08 Jim Meyering <jim@meyering.net>
New function: mfile_name_concat.
* lib/filenamecat.c (mfile_name_concat): New function, just like
file_name_concat, but return NULL upon failure rather than exiting
with a diagnostic.
* lib/filenamecat.h: Declare it.
2007-08-07 Bruno Haible <bruno@clisp.org>
* m4/inttypes.m4 (gl_INTTYPES_H): Use GL_TRIGGER_STDC_LIMIT_MACROS
instead of __STDC_LIMIT_MACROS_TRIGGER. This avoids a redefinition
warning from gcc.
Reported by Eric Blake.
2007-08-07 Simon Josefsson <simon@josefsson.org>
* modules/crypto/arctwo (License): Use the synonymous term "LGPLv2+".
* modules/crypto/arcfour (License): Likewise.
* modules/crypto/des-tests (License): Likewise.
* modules/crypto/gc-arctwo-tests (License): Likewise.
* modules/crypto/gc-des-tests (License): Likewise.
* modules/crypto/gc-hmac-md5-tests (License): Likewise.
* modules/crypto/gc-hmac-sha1-tests (License): Likewise.
* modules/crypto/gc-md2-tests (License): Likewise.
* modules/crypto/gc-md4-tests (License): Likewise.
* modules/crypto/gc-md5-tests (License): Likewise.
* modules/crypto/gc-pbkdf2-sha1-tests (License): Likewise.
* modules/crypto/gc-rijndael-tests (License): Likewise.
* modules/crypto/gc-sha1-tests (License): Likewise.
* modules/crypto/gc-tests (License): Likewise.
* modules/crypto/hmac-md5 (License): Likewise.
* modules/crypto/hmac-sha1 (License): Likewise.
* modules/crypto/md2-tests (License): Likewise.
* modules/crypto/md4-tests (License): Likewise.
* modules/crypto/md5 (License): Likewise.
* modules/crypto/rijndael (License): Likewise.
* modules/crypto/sha1 (License): Likewise.
* modules/memxor (License): Likewise.
2007-08-06 Paul Eggert <eggert@cs.ucla.edu>
and Bruno Haible <bruno@clisp.org>
* NEWS: Describe interface changes to human, xstrtol.
* lib/human.h: Include <xstrtol.h>.
(human_options): Return enum strtol_error, not int. Remove
bool arg; take int * instead.
* lib/human.c: Don't include "gettext.h".
(_): Remove; no longer used.
Don't include <xstrtol.h>, since human.h does it.
(human_options): Adjust to abovementioned interface changes.
Do not report error to stderr; that's now the caller's
responsibility.
* lib/xstrtol.c (main) [defined TESTING_XSTRTO]: Adjust to
interface change.
* lib/xstrtol.h (_STRTOL_ERROR): Take Option, Arg rather than
Str, Argument_type_string. All uses changed. Put " argument"
in diagnostics to make them clearer. Change wording of suffix
message for clarity.
(STRTOL_FATAL_ERROR): Take Option, Arg rather than Str,
Argument_type_string.
(STRTOL_FATAL_WARN): Remove; no longer used.
* modules/human (Depends-on): Remove gettext-h.
2007-08-06 Simon Josefsson <simon@josefsson.org>
* build-aux/maint.mk, build-aux/GNUmakefile: Relicense to GPLv3+.
2007-07-31 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Test whether WCHAR_MIN and WCHAR_MAX
are defined by <stdint.h> (as opposed to <wchar.h>, as on Dragonfly).
Reported by Joerg Sonnenberger <joerg@britannica.bec.de>.
2007-07-31 Bruno Haible <bruno@clisp.org>
* lib/fflush.c (rpl_fflush): On BSD systems, use the __SNPT flag.
Suggested by Joerg Sonnenberger <joerg@britannica.bec.de>.
2007-07-30 Bruno Haible <bruno@clisp.org>
* modules/base64 (License): Use the synonymous term "LGPLv2+".
* modules/c-ctype (License): Likewise.
* modules/c-strcase (License): Likewise.
* modules/check-version (License): Likewise.
* modules/iconv (License): Likewise.
* modules/iconv_open (License): Likewise.
* modules/read-file (License): Likewise.
* modules/striconv (License): Likewise.
* modules/strverscmp (License): Likewise.
* modules/vasprintf (License): Likewise.
* modules/crypto/des (License): Likewise.
* modules/crypto/gc (License): Likewise.
* modules/crypto/gc-arcfour (License): Likewise.
* modules/crypto/gc-arctwo (License): Likewise.
* modules/crypto/gc-des (License): Likewise.
* modules/crypto/gc-hmac-md5 (License): Likewise.
* modules/crypto/gc-hmac-sha1 (License): Likewise.
* modules/crypto/gc-md2 (License): Likewise.
* modules/crypto/gc-md4 (License): Likewise.
* modules/crypto/gc-md5 (License): Likewise.
* modules/crypto/gc-pbkdf2-sha1 (License): Likewise.
* modules/crypto/gc-random (License): Likewise.
* modules/crypto/gc-rijndael (License): Likewise.
* modules/crypto/gc-sha1 (License): Likewise.
* modules/crypto/md2 (License): Likewise.
* modules/crypto/md4 (License): Likewise.
2007-07-30 Jim Meyering <jim@meyering.net>
* lib/fts.c (fts_read): Upon failure to chdir into a subdirectory,
set fts_info to FTS_DNR, not to FTS_ERR, so that the caller knows
it has valid stat data. This bug would cause du not to count the
sizes of inaccessible directories.
Patch by Bryan Mason <bmason@redhat.com>, via Jose Maria Plans
in <http://bugzilla.redhat.com/250077>.
2007-07-25 Peter O'Gorman <peter@pogma.com>
Bruno Haible <bruno@clisp.org>
* m4/include_next.m4 (gl_INCLUDE_NEXT): Test whether #include_next
really works. Needed because AIX 4.3 "xlc -E" doesn't understand
#include_next, gives a diagnostic about it, but reports no error in
the exit code.
Reported by Gary V. Vaughan <gary@thewrittenword.com>.
2007-07-24 Ben Pfaff <blp@gnu.org>
Improve name: "count-one-bits" is better than "popcount".
* MODULES.html.sh: Update name.
* lib/popcount.h: Renamed lib/count-one-bits.h.
(popcount): Renamed count_one_bits.
(popcountl): Renamed count_one_bits_l.
(popcountll): Renamed count_one_bits_ll.
* m4/popcount.m4: Renamed m4/count-one-bits.m4.
* modules/popcount: Renamed module/count-one-bits.
* modules/popcount-tests: Renamed module/count-one-bits-tests.
* tests/test-popcount.c: Renamed tests/test-count-one-bits.c.
2007-07-23 Ben Pfaff <blp@gnu.org>
* lib/popcount.h (popcount32): Reduce size of constants, to allow
better code generation, and add U to large constants to avoid
warnings, in non-GCC case.
Suggested by Bruno Haible.
2007-07-23 Ben Pfaff <blp@gnu.org>
* lib/popcount.h: Use verify_true instead of if...abort.
* modules/popcount: Depend on verify module.
Suggested by Jim Meyering.
2007-07-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Create a .cvsignore file also when the
directory is not yet in CVS but the toplevel directory is. When
creating a .cvsignore file, add ".deps" and ".dirstamp" to it.
Reported by Karl Berry.
2007-07-22 Ben Pfaff <blp@gnu.org>
* lib/popcount.h: Use faster, branchless algorithm for non-GCC
case.
Suggested by Eric Blake.
2007-07-22 Ben Pfaff <blp@gnu.org>
New module: popcount.
* MODULES.html.sh: Add popcount.
* modules/popcount: New file.
* modules/popcount-tests: New file.
* tests/test-popcount.c: New file.
* lib/popcount.h: New file.
* m4/popcount.m4: New file.
2007-07-22 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/announce-gen: Update to GPLv3.
* build-aux/config.guess: Update from config.
2007-07-21 Bruno Haible <bruno@clisp.org>
* lib/error.c (_) [ENABLE_NLS]: Define to gettext.
* lib/verror.c (_) [ENABLE_NLS]: Likewise.
2007-07-20 Jim Meyering <jim@meyering.net>
* check-module: Diagnose a self-dependency.
2007-07-19 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Don't abort if pobase or po_domain is
empty.
Reported by Eric Blake.
2007-07-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New options --po-base, --po-domain.
(func_usage): Document them.
(pobase, po_domain): New variables.
(func_emit_lib_Makefile_am): Augment AM_CPPFLAGS, defining
DEFAULT_TEXT_DOMAIN.
(func_emit_po_Makevars, func_emit_po_POTFILES_in): New functions.
(func_import): Consider pobase and po_domain. Create a po/ directory.
(func_create_testdir): Set pobase and po_domain to empty.
* build-aux/po/Makefile.in.in: New file, from GNU gettext 0.16.1.
* build-aux/po/remove-potcdate.sin: New file, from GNU gettext 0.16.1.
2007-07-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Synthesize also an
EXTRA_DIST augmentation for files in build-aux/.
2007-07-16 Bruno Haible <bruno@clisp.org>
* modules/lseek (License): Use the synonymous term "LGPLv2+".
* modules/getdelim (License): Likewise.
2007-07-16 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* modules/arpa_inet (License): Use the synonymous term LGPLv2+.
* modules/d-type (License): Likewise.
* modules/extensions (License): Likewise.
* modules/fnmatch (License): Likewise.
* modules/fseeko (License): Likewise.
* modules/getaddrinfo (License): Likewise.
* modules/getline (License): Likewise.
* modules/getlogin_r (License): Likewise.
* modules/getpass (License): Likewise.
* modules/gettimeofday (License): Likewise.
* modules/glob (License): Likewise.
* modules/inet_ntop (License): Likewise.
* modules/malloc (License): Likewise.
* modules/malloca (License): Likewise.
* modules/memmem (License): Likewise.
* modules/mempcpy (License): Likewise.
* modules/memset (License): Likewise.
* modules/minmax (License): Likewise.
* modules/mktime (License): Likewise.
* modules/netinet_in (License): Likewise.
* modules/pathmax (License): Likewise.
* modules/poll (License): Likewise.
* modules/regex (License): Likewise.
* modules/snprintf (License): Likewise.
* modules/stdbool (License): Likewise.
* modules/stdint (License): Likewise.
* modules/stdio (License): Likewise.
* modules/strcase (License): Likewise.
* modules/strcasestr (License): Likewise.
* modules/strdup (License): Likewise.
* modules/string (License): Likewise.
* modules/strndup (License): Likewise.
* modules/strnlen (License): Likewise.
* modules/strpbrk (License): Likewise.
* modules/strptime (License): Likewise.
* modules/strsep (License): Likewise.
* modules/sys_select (License): Likewise.
* modules/sys_socket (License): Likewise.
* modules/sys_stat (License): Likewise.
* modules/sys_time (License): Likewise.
* modules/time (License): Likewise.
* modules/time_r (License): Likewise.
* modules/timegm (License): Likewise.
* modules/unistd (License): Likewise.
* modules/vsnprintf (License): Likewise.
* modules/wctype (License): Likewise.
2007-07-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/argz (License): LGPLv2+.
2007-07-15 Karl Berry <karl@gnu.org>
* doc/gnulib.texi: revise node structure per new fdl.texi.
2007-07-14 Bruno Haible <bruno@clisp.org>
* lib/uniname/gen-uninames.lisp (main): Emit a "do not edit" line to
the output file.
* lib/uniname/uninames.h: Regenerated.
2007-07-14 Karl Berry <karl@gnu.org>
* doc/*gpl*.texi, doc/fdl.texi: new versions, consistently
omitting sectioning and index commands.
2007-07-13 Bruno Haible <bruno@clisp.org>
New gnulib-tool option --more-symlinks.
* gnulib-tool (func_usage): Document --more-symlinks.
(do_copyrights): New variable.
Recognize option --more-symlinks.
(func_import): Don't add a copyright notice transform to
sed_transform_lib_file if do_copyrights is empty.
2007-07-13 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (decimal_point_char): Define also if
(NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE)
&& !NEED_PRINTF_DIRECTIVE_A.
Reported by Clemens Koller <clemens.koller@anagramm.de> via
Gary V. Vaughan <gary@gnu.org>.
2007-07-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/inttypes_.h: Undo previous change, since it was fixed
in a different way in the 2007-07-02 fix to m4/inttypes.m4.
2007-07-13 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Fix typo: _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H was
misspelled as _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H.
2007-07-13 Jim Meyering <jim@meyering.net>
df: Don't fail for Tru64's "file-on-file mount".
* m4/fsusage.m4 (gl_FSUSAGE): Reject Tru64's buggy statvfs,
so we fall through and use statfs instead. Details here:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/10878>
Reported by Albert Chin.
2007-07-13 Bruno Haible <bruno@clisp.org>
* modules/alloca-opt (License): Use the synonymous term "LGPLv2+".
* modules/configmake (License): Likewise.
* modules/gettext (License): Likewise.
* modules/gettext-h (License): Likewise.
* modules/include_next (License): Likewise.
* modules/link-warning (License): Likewise.
* modules/localcharset (License): Likewise.
* modules/localename (License): Likewise.
* modules/lock (License): Likewise.
* modules/relocatable-lib-lgpl (License): Likewise.
* modules/size_max (License): Likewise.
* modules/vasnprintf (License): Likewise.
* modules/wchar (License): Likewise.
* modules/xsize (License): Likewise.
2007-07-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Treat LGPLv2 as synonymous to LGPL.
(func_create_testdir): Handle copying terms "GPLv2+" and "LGPLv2+".
2007-07-12 Bruno Haible <bruno@clisp.org>
* doc/gnulib-intro.texi (Copyright): Clarify the license abbreviations
in the modules files.
2007-07-11 Karl Berry <karl@gnu.org>
* MODULES.html.sh (func_module): use
sed -e '\|^'"${includefile}"'$|d'
instead of /.../d, to avoid errors on $includefile's containing /.
2007-07-10 Sergey Poznyakoff <gray@gnu.org.ua>
* gnulib-tool (func_import): Avoid duplication of --avoid
statements
(func_dest_tmpfilename,func_create_testdir): Translate `-' in file
names to `_' in variable names.
2007-07-10 Eric Blake <ebb9@byu.net>
* lib/version-etc.c (version_etc_va): Default to GPLv3+.
* NEWS: Document this change.
2007-07-08 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.0.
* lib/uniwidth/width.c (nonspacing_table_data): Add U+00AD,
U+0350..U+035F, U+05A2, U+05BA, U+05C5, U+05C7, U+0600..U+0603,
U+0610..U+0615, U+0656..U+065E, U+07EB..U+07F3, U+0A01, U+0AE2..U+0AE3,
U+0CBC. Remove U+0CBF, U+0CC6. Add U+0CE2..U+0CE3, U+135F,
U+17B4..U+17B5, U+17DD. Remove U+180E. Add U+1920..U+1922,
U+1927..U+192B, U+1932, U+1939..U+193B, U+1A17..U+1A18, U+1B00..U+1B03,
U+1B34, U+1B36..U+1B3A, U+1B3C, U+1B42, U+1B6B..U+1B73, U+1DC0..U+1DCA,
U+1DFE..U+1DFF, U+20EB..U+20EF, U+A802, U+A806, U+A80B, U+A825..U+A826,
U+10A01..U+10A03, U+10A05..U+10A06, U+10A0C..U+10A0F, U+10A38..U+10A3A,
U+10A3F, U+1D242..U+1D244.
(nonspacing_table_ind): Update.
(uc_width): Assign width 0 to U+E0100..U+E01EF. Assign width 1 to
U+4DC0..U+4DFF. Assign width 2 to U+2329..U+232A, U+FE10..U+FE1F.
2007-07-08 Bruno Haible <bruno@clisp.org>
Update to Unicode 5.0.
* lib/uniname/gen-uninames.lisp (main): Add the range 0x12xxx to the
code transform. Extend the name index field of unicode_name_to_code and
unicode_code_to_name from 16 to 24 bits.
* lib/uniname/uniname.c (unicode_character_name,
unicode_name_character): Add the range 0x12xxx to the code transform.
* lib/uniname/uninames.h: Regenerated.
* tests/uniname/UnicodeDataNames.txt: Update to Unicode 5.0.
2007-07-07 Bruno Haible <bruno@clisp.org>
* modules/wcwidth-tests: New file.
* tests/test-wcwidth.c: New file.
Work around MacOS X wcwidth() bug.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test against MacOS X 10.3 bug.
* lib/wcwidth.c: Include localcharset.h, streq.h, uniwidth.h.
(rpl_wcwidth): Special-case the UTF-8 locales. Fall back to the
original wcwidth in non-UTF-8 locales.
* modules/wcwidth (Depends-on): Add localcharset, streq,
uniwidth/width.
* doc/functions/wcwidth.texi: Update.
2007-07-07 Bruno Haible <bruno@clisp.org>
* lib/wchar_.h: Include the GL_LINK_WARNING macro.
(wcwidth): New declaration.
* m4/wchar.m4 (gl_WCHAR_MODULE_INDICATOR, gl_WCHAR_H_DEFAULTS): New
macros.
(gl_WCHAR_H): Require gl_WCHAR_H_DEFAULTS. Don't set WCHAR_H to empty
here. Prepare for creating <wchar.h> unconditionally.
* modules/wchar (Depends-on): Add link-warning.
(Makefile.am): Substitute also GNULIB_WCWIDTH, HAVE_DECL_WCWIDTH,
REPLACE_WCWIDTH, and GL_LINK_WARNING.
* lib/wcwidth.h: Remove file.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Require gl_WCHAR_H_DEFAULTS. Set
HAVE_DECL_WCWIDTH, REPLACE_WCWIDTH, WCHAR_H.
* modules/wcwidth (Files): Remove lib/wcwidth.h.
(configure.ac): Invoke gl_WCHAR_MODULE_INDICATOR.
(Include): Replace wcwidth.h with <wchar.h>.
* lib/wcwidth.c: Include <wchar.h> instead of wcwidth.h.
* lib/mbchar.h: Don't include wcwidth.h.
* lib/mbswidth.c: Likewise.
* NEWS: Mention the change.
2007-07-07 Bruno Haible <bruno@clisp.org>
* lib/wcwidth.c: New file, extracted from lib/wcwidth.h.
* lib/wcwidth.h: Don't include wctype.h. Replace inline function
definition with an external declaration.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Use wcwidth.c when wcwidth is not
defined as a function. Remove AC_C_INLINE requirement.
* modules/wcwidth (Files): Add lib/wcwidth.c.
(Makefile.am): Remove redundant statement.
2007-07-07 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Unicode string functions): Add the new modules.
* tests/uniwidth/test-u32-strwidth.c: New file.
* modules/uniwidth/u32-strwidth-tests: New file.
* lib/uniwidth/u32-strwidth.c: New file.
* modules/uniwidth/u32-strwidth: New file.
* tests/uniwidth/test-u16-strwidth.c: New file.
* modules/uniwidth/u16-strwidth-tests: New file.
* lib/uniwidth/u16-strwidth.c: New file.
* modules/uniwidth/u16-strwidth: New file.
* tests/uniwidth/test-u8-strwidth.c: New file.
* modules/uniwidth/u8-strwidth-tests: New file.
* lib/uniwidth/u8-strwidth.c: New file.
* modules/uniwidth/u8-strwidth: New file.
* tests/uniwidth/test-u32-width.c: New file.
* modules/uniwidth/u32-width-tests: New file.
* lib/uniwidth/u32-width.c: New file.
* modules/uniwidth/u32-width: New file.
* tests/uniwidth/test-u16-width.c: New file.
* modules/uniwidth/u16-width-tests: New file.
* lib/uniwidth/u16-width.c: New file.
* modules/uniwidth/u16-width: New file.
* tests/uniwidth/test-u8-width.c: New file.
* modules/uniwidth/u8-width-tests: New file.
* lib/uniwidth/u8-width.c: New file.
* modules/uniwidth/u8-width: New file.
* tests/uniwidth/test-uc_width.c: New file.
* modules/uniwidth/width-tests: New file.
* lib/uniwidth/width.c: New file, from GNU libiconv.
* lib/uniwidth/cjk.h: New file, from GNU libiconv.
* modules/uniwidth/width: New file.
* lib/uniwidth.h: New file, from GNU libiconv.
* modules/uniwidth/base: New file.
2007-07-07 Bruno Haible <bruno@clisp.org>
* lib/uniname.h: New file, from GNU gettext.
* lib/uniname/gen-uninames.lisp: New file, from GNU gettext.
* lib/uniname/uninames.h: New file, from GNU gettext.
* lib/uniname/uniname.c: New file, from GNU gettext.
* tests/uniname/test-uninames.sh: New file.
* tests/uniname/test-uninames.c: New file, from GNU gettext.
* tests/uniname/UnicodeDataNames.txt: New file, from GNU gettext.
* modules/uniname/base: New file.
* modules/uniname/uniname: New file.
* modules/uniname/uniname-tests: New file.
* MODULES.html.sh (Unicode string functions): Add the new modules.
2007-07-06 Bruno Haible <bruno@clisp.org>
* doc/Makefile (TEXI2HTML): Specify a --reference-limit.
2007-07-06 Bruno Haible <bruno@clisp.org>
* lib/sys_time_.h: Use a recursion-safe inclusion guard rather than
a split double-inclusion guard. Needed for cygwin, where <sys/time.h>
includes <cygwin/sys_time.h> which includes <sys/select.h> which
include <sys/time.h>.
Reported by Eric Blake.
2007-07-06 Eric Blake <ebb9@byu.net>
Fix testing canonicalize on cygwin.
* modules/canonicalize-lgpl-tests (test_canonicalize_lgpl_LDADD):
Revert patch from 2007-06-19.
* tests/test-canonicalize-lgpl.c (main): Instead, skip test when
canonicalize module is also in use.
* tests/test-canonicalize.c: New file.
* tests/test-canonicalize.sh: Likewise.
* modules/canonicalize-tests: Likewise.
2007-07-06 Jim Meyering <jim@meyering.net>
* lib/getugroups.c (getugroups): Detect getgrent failure.
Adjust comment to reflect reality: this function may return -1.
2007-07-05 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap (TP_URL,get_translations): Update to use
the new TP address.
(usage): Fix typo
(gnulib_mk): New variable.
2007-07-05 Jim Meyering <jim@meyering.net>
Don't let endgrent clobber errno, no matter how improbable.
* lib/getugroups.c (getugroups): Save and restore errno around
endgrent call.
Close the group DB even when failing with 2^31 or more members.
* lib/getugroups.c (getugroups): Don't return without calling endgrent.
2007-07-04 Jim Meyering <jim@meyering.net>
* lib/getugroups.h: New file.
* lib/getugroups.c: Include "getugroups.h".
Remove uses of "register" keyword.
Move local variable, "cp", down into scope where used.
Give "username" parameter the "const" attribute.
* modules/getugroups (Files): Add lib/getugroups.h
2007-07-04 Karl Berry <karl@gnu.org>
* MODULES.html.sh (func_all_modules): Complete rename of
gpl/lgpl to gpl-2.0 and lgpl-2.1, and add gpl-3.0.
2007-07-02 Bruno Haible <bruno@clisp.org>
* m4/inttypes.m4 (gl_INTTYPES_H): Define __STDC_LIMIT_MACROS in C++
mode, when inttypes.h comes from gnulib.
Reported by Joel E. Denny <jdenny@ces.clemson.edu>.
2007-07-02 Simon Josefsson <simon@josefsson.org>
* NEWS: Mention lgpl module name change.
* modules/lgpl-2.1: Renamed from lgpl.
* NEWS: Mention gpl module name change.
* modules/gpl-3.0: New file, based on gpl-2.0.
* modules/gpl-2.0: Renamed from gpl.
* modules/gpl: Fix filename, doc/gpl.texi is now found at
doc/gpl-2.0.texi.
2007-07-02 Paul Eggert <eggert@cs.ucla.edu>
* lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]:
#define __STDC_LIMIT_MACROS temporarily while including
<stdint.h>, so that __STDC_LIMIT_MACROS is defined.
Problem reported by Joel E. Denny in
<http://lists.gnu.org/r/bug-gnulib/2007-07/msg00008.html>.
2007-07-01 Bruno Haible <bruno@clisp.org>
* lib/unistdio.h: New file.
* lib/unistdio/u-asnprintf.h: New file.
* lib/unistdio/u-asprintf.h: New file.
* lib/unistdio/u-printf-args.c: New file.
* lib/unistdio/u-printf-args.h: New file.
* lib/unistdio/u-printf-parse.h: New file.
* lib/unistdio/u-snprintf.h: New file.
* lib/unistdio/u-sprintf.h: New file.
* lib/unistdio/u-vasprintf.h: New file.
* lib/unistdio/u-vsnprintf.h: New file.
* lib/unistdio/u-vsprintf.h: New file.
* lib/unistdio/ulc-asnprintf.c: New file.
* lib/unistdio/ulc-asprintf.c: New file.
* lib/unistdio/ulc-fprintf.c: New file, based on lib/fprintf.c.
* lib/unistdio/ulc-printf-parse.c: New file.
* lib/unistdio/ulc-snprintf.c: New file.
* lib/unistdio/ulc-sprintf.c: New file.
* lib/unistdio/ulc-vasnprintf.c: New file.
* lib/unistdio/ulc-vasprintf.c: New file.
* lib/unistdio/ulc-vfprintf.c: New file, based on lib/vfprintf.c.
* lib/unistdio/ulc-vsnprintf.c: New file.
* lib/unistdio/ulc-vsprintf.c: New file.
* lib/unistdio/u8-asnprintf.c: New file.
* lib/unistdio/u8-asprintf.c: New file.
* lib/unistdio/u8-printf-parse.c: New file.
* lib/unistdio/u8-snprintf.c: New file.
* lib/unistdio/u8-sprintf.c: New file.
* lib/unistdio/u8-vasnprintf.c: New file.
* lib/unistdio/u8-vasprintf.c: New file.
* lib/unistdio/u8-vsnprintf.c: New file.
* lib/unistdio/u8-vsprintf.c: New file.
* lib/unistdio/u8-u8-asnprintf.c: New file.
* lib/unistdio/u8-u8-asprintf.c: New file.
* lib/unistdio/u8-u8-snprintf.c: New file.
* lib/unistdio/u8-u8-sprintf.c: New file.
* lib/unistdio/u8-u8-vasnprintf.c: New file.
* lib/unistdio/u8-u8-vasprintf.c: New file.
* lib/unistdio/u8-u8-vsnprintf.c: New file.
* lib/unistdio/u8-u8-vsprintf.c: New file.
* lib/unistdio/u16-asnprintf.c: New file.
* lib/unistdio/u16-asprintf.c: New file.
* lib/unistdio/u16-printf-parse.c: New file.
* lib/unistdio/u16-snprintf.c: New file.
* lib/unistdio/u16-sprintf.c: New file.
* lib/unistdio/u16-vasnprintf.c: New file.
* lib/unistdio/u16-vasprintf.c: New file.
* lib/unistdio/u16-vsnprintf.c: New file.
* lib/unistdio/u16-vsprintf.c: New file.
* lib/unistdio/u16-u16-asnprintf.c: New file.
* lib/unistdio/u16-u16-asprintf.c: New file.
* lib/unistdio/u16-u16-snprintf.c: New file.
* lib/unistdio/u16-u16-sprintf.c: New file.
* lib/unistdio/u16-u16-vasnprintf.c: New file.
* lib/unistdio/u16-u16-vasprintf.c: New file.
* lib/unistdio/u16-u16-vsnprintf.c: New file.
* lib/unistdio/u16-u16-vsprintf.c: New file.
* lib/unistdio/u32-asnprintf.c: New file.
* lib/unistdio/u32-asprintf.c: New file.
* lib/unistdio/u32-printf-parse.c: New file.
* lib/unistdio/u32-snprintf.c: New file.
* lib/unistdio/u32-sprintf.c: New file.
* lib/unistdio/u32-vasnprintf.c: New file.
* lib/unistdio/u32-vasprintf.c: New file.
* lib/unistdio/u32-vsnprintf.c: New file.
* lib/unistdio/u32-vsprintf.c: New file.
* lib/unistdio/u32-u32-asnprintf.c: New file.
* lib/unistdio/u32-u32-asprintf.c: New file.
* lib/unistdio/u32-u32-snprintf.c: New file.
* lib/unistdio/u32-u32-sprintf.c: New file.
* lib/unistdio/u32-u32-vasnprintf.c: New file.
* lib/unistdio/u32-u32-vasprintf.c: New file.
* lib/unistdio/u32-u32-vsnprintf.c: New file.
* lib/unistdio/u32-u32-vsprintf.c: New file.
* tests/unistdio/test-ulc-asnprintf1.c: New file.
* tests/unistdio/test-ulc-asnprintf1.h: New file.
* tests/unistdio/test-ulc-printf1.h: New file.
* tests/unistdio/test-ulc-vasnprintf1.c: New file.
* tests/unistdio/test-ulc-vasnprintf2.c: New file.
* tests/unistdio/test-ulc-vasnprintf2.sh: New file.
* tests/unistdio/test-ulc-vasnprintf3.c: New file.
* tests/unistdio/test-ulc-vasnprintf3.sh: New file.
* tests/unistdio/test-ulc-vasprintf1.c: New file.
* tests/unistdio/test-ulc-vsnprintf1.c: New file.
* tests/unistdio/test-ulc-vsprintf1.c: New file.
* tests/unistdio/test-u8-asnprintf1.c: New file.
* tests/unistdio/test-u8-asnprintf1.h: New file.
* tests/unistdio/test-u8-printf1.h: New file.
* tests/unistdio/test-u8-vasnprintf1.c: New file.
* tests/unistdio/test-u8-vasnprintf2.c: New file.
* tests/unistdio/test-u8-vasnprintf2.sh: New file.
* tests/unistdio/test-u8-vasnprintf3.c: New file.
* tests/unistdio/test-u8-vasnprintf3.sh: New file.
* tests/unistdio/test-u8-vasprintf1.c: New file.
* tests/unistdio/test-u8-vsnprintf1.c: New file.
* tests/unistdio/test-u8-vsprintf1.c: New file.
* tests/unistdio/test-u16-asnprintf1.c: New file.
* tests/unistdio/test-u16-asnprintf1.h: New file.
* tests/unistdio/test-u16-printf1.h: New file.
* tests/unistdio/test-u16-vasnprintf1.c: New file.
* tests/unistdio/test-u16-vasnprintf2.c: New file.
* tests/unistdio/test-u16-vasnprintf2.sh: New file.
* tests/unistdio/test-u16-vasnprintf3.c: New file.
* tests/unistdio/test-u16-vasnprintf3.sh: New file.
* tests/unistdio/test-u16-vasprintf1.c: New file.
* tests/unistdio/test-u16-vsnprintf1.c: New file.
* tests/unistdio/test-u16-vsprintf1.c: New file.
* tests/unistdio/test-u32-asnprintf1.c: New file.
* tests/unistdio/test-u32-asnprintf1.h: New file.
* tests/unistdio/test-u32-printf1.h: New file.
* tests/unistdio/test-u32-vasnprintf1.c: New file.
* tests/unistdio/test-u32-vasnprintf2.c: New file.
* tests/unistdio/test-u32-vasnprintf2.sh: New file.
* tests/unistdio/test-u32-vasnprintf3.c: New file.
* tests/unistdio/test-u32-vasnprintf3.sh: New file.
* tests/unistdio/test-u32-vasprintf1.c: New file.
* tests/unistdio/test-u32-vsnprintf1.c: New file.
* tests/unistdio/test-u32-vsprintf1.c: New file.
* modules/unistdio/base: New file.
* modules/unistdio/u-printf-args: New file.
* modules/unistdio/ulc-asnprintf: New file.
* modules/unistdio/ulc-asprintf: New file.
* modules/unistdio/ulc-fprintf: New file.
* modules/unistdio/ulc-printf-parse: New file.
* modules/unistdio/ulc-snprintf: New file.
* modules/unistdio/ulc-sprintf: New file.
* modules/unistdio/ulc-vasnprintf: New file.
* modules/unistdio/ulc-vasprintf: New file.
* modules/unistdio/ulc-vfprintf: New file.
* modules/unistdio/ulc-vsnprintf: New file.
* modules/unistdio/ulc-vsprintf: New file.
* modules/unistdio/u8-asnprintf: New file.
* modules/unistdio/u8-asprintf: New file.
* modules/unistdio/u8-printf-parse: New file.
* modules/unistdio/u8-snprintf: New file.
* modules/unistdio/u8-sprintf: New file.
* modules/unistdio/u8-vasnprintf: New file.
* modules/unistdio/u8-vasprintf: New file.
* modules/unistdio/u8-vsnprintf: New file.
* modules/unistdio/u8-vsprintf: New file.
* modules/unistdio/u8-u8-asnprintf: New file.
* modules/unistdio/u8-u8-asprintf: New file.
* modules/unistdio/u8-u8-snprintf: New file.
* modules/unistdio/u8-u8-sprintf: New file.
* modules/unistdio/u8-u8-vasnprintf: New file.
* modules/unistdio/u8-u8-vasprintf: New file.
* modules/unistdio/u8-u8-vsnprintf: New file.
* modules/unistdio/u8-u8-vsprintf: New file.
* modules/unistdio/u16-asnprintf: New file.
* modules/unistdio/u16-asprintf: New file.
* modules/unistdio/u16-printf-parse: New file.
* modules/unistdio/u16-snprintf: New file.
* modules/unistdio/u16-sprintf: New file.
* modules/unistdio/u16-vasnprintf: New file.
* modules/unistdio/u16-vasprintf: New file.
* modules/unistdio/u16-vsnprintf: New file.
* modules/unistdio/u16-vsprintf: New file.
* modules/unistdio/u16-u16-asnprintf: New file.
* modules/unistdio/u16-u16-asprintf: New file.
* modules/unistdio/u16-u16-snprintf: New file.
* modules/unistdio/u16-u16-sprintf: New file.
* modules/unistdio/u16-u16-vasnprintf: New file.
* modules/unistdio/u16-u16-vasprintf: New file.
* modules/unistdio/u16-u16-vsnprintf: New file.
* modules/unistdio/u16-u16-vsprintf: New file.
* modules/unistdio/u32-asnprintf: New file.
* modules/unistdio/u32-asprintf: New file.
* modules/unistdio/u32-printf-parse: New file.
* modules/unistdio/u32-snprintf: New file.
* modules/unistdio/u32-sprintf: New file.
* modules/unistdio/u32-vasnprintf: New file.
* modules/unistdio/u32-vasprintf: New file.
* modules/unistdio/u32-vsnprintf: New file.
* modules/unistdio/u32-vsprintf: New file.
* modules/unistdio/u32-u32-asnprintf: New file.
* modules/unistdio/u32-u32-asprintf: New file.
* modules/unistdio/u32-u32-snprintf: New file.
* modules/unistdio/u32-u32-sprintf: New file.
* modules/unistdio/u32-u32-vasnprintf: New file.
* modules/unistdio/u32-u32-vasprintf: New file.
* modules/unistdio/u32-u32-vsnprintf: New file.
* modules/unistdio/u32-u32-vsprintf: New file.
* modules/unistdio/ulc-asnprintf-tests: New file.
* modules/unistdio/ulc-vasnprintf-tests: New file.
* modules/unistdio/ulc-vasprintf-tests: New file.
* modules/unistdio/ulc-vsnprintf-tests: New file.
* modules/unistdio/ulc-vsprintf-tests: New file.
* modules/unistdio/u8-asnprintf-tests: New file.
* modules/unistdio/u8-vasnprintf-tests: New file.
* modules/unistdio/u8-vasprintf-tests: New file.
* modules/unistdio/u8-vsnprintf-tests: New file.
* modules/unistdio/u8-vsprintf-tests: New file.
* modules/unistdio/u16-asnprintf-tests: New file.
* modules/unistdio/u16-vasnprintf-tests: New file.
* modules/unistdio/u16-vasprintf-tests: New file.
* modules/unistdio/u16-vsnprintf-tests: New file.
* modules/unistdio/u16-vsprintf-tests: New file.
* modules/unistdio/u32-asnprintf-tests: New file.
* modules/unistdio/u32-vasnprintf-tests: New file.
* modules/unistdio/u32-vasprintf-tests: New file.
* modules/unistdio/u32-vsnprintf-tests: New file.
* modules/unistdio/u32-vsprintf-tests: New file.
* MODULES.html.sh (Unicode string functions): Add the new modules.
2007-07-01 Bruno Haible <bruno@clisp.org>
* lib/sprintf.c (sprintf): Limit the available length estimation,
to avoid address wraparound.
* lib/vsprintf.c (vsprintf): Likewise.
* modules/sprintf-posix (Dependencies): Add stdint.
* modules/vsprintf-posix (Dependencies): Likewise.
2007-07-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (self_abspathname): Determine PATH_SEPARATOR and handle
Windows PATH as well. Conservative double-quoting. Comments.
2007-07-01 Bruno Haible <bruno@clisp.org>
Eric Blake <ebb9@byu.net>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (self_abspathname): Fix algorithm to cope with
empty components in $PATH, denoting '.'.
2007-07-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool: Fix indentation.
(func_create_megatestdir): Likewise.
Report by Bruno Haible.
2007-06-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from Automake.
* build-aux/gnupload: Fix shell portability issues with for loops.
Report by Karl Berry.
2007-06-29 Simon Josefsson <simon@josefsson.org>
* build-aux/maint.mk (POURL): Use translationproject.org.
2007-06-27 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Require gl_HEADER_SYS_SOCKET
before using HAVE_WS2TCPIP_H. Check for gai_strerror through an
explicit link test, rather than AC_REPLACE_FUNCS - for mingw.
(gl_PREREQ_GETADDRINFO): Require gl_HEADER_SYS_SOCKET before using
HAVE_SYS_SOCKET_H and HAVE_WS2TCPIP_H.
2007-06-27 Bruno Haible <bruno@clisp.org>
* build-aux/config.rpath: Upgrade to libtool-1.5.24.
* build-aux/config.libpath: Upgrade to libtool-1.5.24.
2007-06-26 Karl Berry <karl@gnu.org>
* MODULES.html.sh: remove xreadlink-with-size.
2007-06-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/time_.h: Port to Solaris 8 with Sun Studio 11, using a
method that I hope also handles the double-include problem noted
by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2007-05/msg00186.html>.
2007-06-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Don't let the 'mostlyclean' target fail if the last subdirectory could
not be removed.
Reported by Karl Berry.
2007-06-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (echo): Add a speedier workaround for ksh.
* tests/test-echo.sh: Likewise.
2007-06-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (echo): Add workarounds also for bash versions < 2.04.
* tests/test-echo.sh: Likewise.
2007-06-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (IFS): Initialize early, so we don't set it to
empty later.
(self_abspathname): Rewrite algorithm to set it, reindent.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am)
(func_create_megatestdir): Merge some sed scripts.
2007-06-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Check some typos
exposed by Sun Studio 11 cc on Solaris 8.
2007-06-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (echo): Ensure the echo primitive does not interpret
backslashes.
* tests/test-echo.sh: New file.
2007-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_add_or_update, func_create_testdir): Do not
simplify `sed_replace_build_aux' scripts, they are portable but
echoing them with `echo' is not.
Report and analysis by Fernando Ferreira <fernando.prog@netcabo.pt>.
2007-06-21 Karl Berry <karl@gnu.org>
* config/srclist.txt: guess we can't handle the licenses via
srclist at the moment.
2007-06-21 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: Add include_next.
* modules/include_next: New file.
2007-06-20 Paul Eggert <eggert@cs.ucla.edu>
* m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST
INCLUDE_NEXT.
(gl_CHECK_NEXT_HEADERS): New macro.
* m4/fcntl_h.m4 (gl_FCNTL_H): use gl_CHECK_NEXT_HEADERS instead of
the obsolescent gl_ABSOLUTE_HEADER.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/float_h.m4 (gl_FLOAT_H): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/math_h.m4 (gl_MATH_H): Likewise.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise.
* m4/search_h.m4 (gl_SEARCH_H): Likewise.
* m4/signal_h.m4 (gl_SIGNAL_H): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H): Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise.
* m4/sysexits.m4 (gl_SYSEXITS): Likewise.
* m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H): Likewise.
* m4/wchar.m4 (gl_WCHAR_H): Likewise.
* m4/wctype.m4 (gl_WCTYPE_H): Likewise.
* m4/inttypes.m4 (gl_INTTYPES_H): Define
_GL_JUST_INCLUDE_SYSTEM_INTTYPES_H to avoid the problem of unclean
builds, since ABSOLUTE_INTTYPES_H is no longer being defined.
* m4/stdint.m4 (gl_STDINT_H): Likewise, for
_GL_JUST_INCLUDE_SYSTEM_STDINT_H.
* lib/fcntl_.h: Use @INCLUDE_NEXT@ @NEXT_foo_H@
rather than @HAVE_INCLUDE_NEXT@ and @ABSOLUTE_foo_H@.
* lib/float_.h: Likewise.
* lib/inttypes_.h: Likewise.
* lib/math_.h: Likewise.
* lib/search_.h: Likewise.
* lib/signal_.h: Likewise.
* lib/stdint_.h: Likewise.
* lib/stdio_.h: Likewise.
* lib/stdlib_.h: Likewise.
* lib/string_.h: Likewise.
* lib/sys_stat_.h: Likewise.
* lib/sys_time_.h: Likewise.
* lib/time_.h: Likewise.
* lib/unistd_.h: Likewise.
* lib/wchar_.h: Likewise.
* lib/wctype_.h: Likewise.
* lib/dirent_.h: Likewise.
* lib/iconv_.h: Likewise.
* lib/locale_.h: Likewise.
* lib/netinet_in_.h: Likewise.
* lib/sys_select_.h: Likewise.
* lib/sys_socket_.h: Likewise.
* lib/sysexits_.h: Likewise.
* modules/fcntl (Depends-on): Depend on include_next, not
absolute_header.
(Makefile): Substitute INCLUDE_NEXT and NEXT_foo_H, not
HAVE_INCLUDE_NEXT and ABSOLUTE_foo_H.
* modules/fchdir: Likewise.
* modules/float: Likewise.
* modules/iconv_open: Likewise.
* modules/inttypes: Likewise.
* modules/locale: Likewise.
* modules/math: Likewise.
* modules/netinet_in: Likewise.
* modules/search: Likewise.
* modules/signal: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/string: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sysexits: Likewise.
* modules/time: Likewise.
* modules/unistd: Likewise.
* modules/wchar: Likewise.
* modules/wctype: Likewise.
* modules/sys_stat: Change maintainer to "all".
* modules/unistd: Likewise.
2007-06-20 Karl Berry <karl@gnu.org>
* config/srclist.txt: track www changes in license files.
2007-06-20 Sergey Poznyakoff <gray@gnu.org.ua>
* build-aux/bootstrap: Remove stray dot.
Make sure build_aux settings are honored when linking
gnulib_extra_files.
2007-06-19 Eric Blake <ebb9@byu.net>
* modules/canonicalize-lgpl-tests (test_canonicalize_lgpl_LDADD):
Allow compilation on cygwin.
2007-06-19 Jim Meyering <jim@meyering.net>
xreadlink-with-size: Remove module. No longer used.
Ex-callers now use xreadlink or mreadlink-with-size.
* modules/xreadlink-with-size: Remove module.
* lib/xreadlink-with-size.c: Remove file.
* lib/xreadlink.h (xreadlink_with_size): Remove prototype.
(xreadlink): Remove inaccurate comment. The one in xreadlink.c,
just before the function definition *is* accurate.
Eliminate one way canonicalize_filename_mode could exit.
* lib/canonicalize.c (canonicalize_filename_mode):
Use mreadlink_with_size, not xreadlink_with_size.
2007-06-18 Paul Eggert <eggert@cs.ucla.edu>
Detect porting problems to FreeBSD/arm, which has time_t wider than
long int. Original problem reported for GNU diff by Xin Li in
<http://lists.gnu.org/r/bug-gnu-utils/2007-06/msg00091.html>.
* modules/getdate (Depends-on): Add intprops, verify.
* lib/getdate.y: Include intprops.h, verify.h. Verify that time_t
is an integer type no wider than long int.
2007-06-18 Jim Meyering <jim@meyering.net>
New module: mreadlink-with-size.
* MODULES.html.sh: Add mreadlink-with-size.
* modules/mreadlink-with-size: New module
* modules/canonicalize (Depends-on): Depend on mreadlink-with-size,
not xreadlink-with-size.
* lib/mreadlink-with-size.c, lib/mreadlink.h: New files.
2007-06-16 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Catch the MacOS X 10.4 bug.
* doc/functions/frexpl.texi: Document the MacOS X 10.4 bug.
Reported by Gary V. Vaughan <gary@gnu.org>.
2007-06-15 Paul Eggert <eggert@cs.ucla.edu>
Revamp lchown so that it lives in unistd.h where it belongs.
* lib/lchown.h: Remove.
* lib/dirchownmod.c: Don't include lib/lchown.h.
* lib/fchownat.c: Likewise.
* lib/openat.c: Likewise.
* lib/lchown.c (REPLACE_CHOWN): Define to 0 if the system chown
does not follow symlinks.
(EOPNOTSUPP): Define if not defined.
* lib/unistd_.h (chown): Do not replace if REPLADE_CHOWN
is defined to 0.
(lchown): New decl.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Require gl_UNISTD_H_DEFAULTS.
Do not check for lchown decl.
Set REPLACE_LCHOWN.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set GNULIB_LCHOWN,
REPLACE_LCHOWN.
* modules/chown: Make it clear it follows symlinks.
* modules/lchown: Make it clear it doesn't follow symlinks.
(Files): Remove lib/lchown.h
(Depends-on): Add unistd.
(configure.ac): Add gl_UNISTD_MODULE_INDICATOR([lchown]).
(Include): Include <unistd.h>, not "lchown.h".
* modules/unistd (unistd.h): Substitude GNULIB_LCHOWN and
REPLACE_LCHOWN.
2007-06-15 Jim Meyering <jim@meyering.net>
Change license (GPL to LGPL) of fsusage and dependents.
* modules/fsusage (License): Change to LGPL.
* modules/full-read (License): Likewise.
* modules/full-write (License): Likewise.
* modules/safe-read (License): Likewise.
* modules/safe-write (License): Likewise.
2007-06-14 Ben Pfaff <blp@gnu.org>
Missing part of allocsa -> malloca transition.
* modules/relocatable-prog-wrapper: gl_ALLOCSA should be
gl_MALLOCA.
2007-06-12 Bruno Haible <bruno@clisp.org>
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Guess no when cross-compiling
to ia64, x86_64, i386.
Reported by Eric Blake.
2007-06-12 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Guess no also when
cross-compiling to x86_64.
2007-06-12 Paul Eggert <eggert@cs.ucla.edu>
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Fix POSIX sed portability
glitch reported by Ralf Wildenhues in
<http://lists.gnu.org/r/bug-gnulib/2007-06/msg00114.html>.
* m4/regex.m4 (gl_REGEX): Catch a bug with [[:alnum:]_-] reported by
Vin Shelton.
2007-06-11 Bruno Haible <bruno@clisp.org>
* lib/printf-args.c (PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Fix NULL
replacement string.
Reported by Eric Blake.
2007-06-10 Bruno Haible <bruno@clisp.org>
Prepare vasnprintf code for use with Unicode strings.
* lib/printf-args.h (PRINTF_FETCHARGS): New macro.
(arg_type) [ENABLE_UNISTDIO]: Define TYPE_U8_STRING, TYPE_U16_STRING,
TYPE_U32_STRING.
(argument) [ENABLE_UNISTDIO]: Add a_u8_string, a_u16_string,
a_u32_string variants.
(PRINTF_FETCHARGS): Renamed from printf_fetchargs.
* lib/printf-args.c: Don't include config.h and the specification
header if PRINTF_FETCHARGS is already defined.
(PRINTF_FETCHARGS): Renamed from printf_fetchargs.
(PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Add code for TYPE_U8_STRING,
TYPE_U16_STRING, TYPE_U32_STRING.
* lib/printf-parse.h [ENABLE_UNISTDIO] (u8_directive, u8_directives,
u16_directive, u16_directives, u32_directive, u32_directives): New
types.
(ulc_printf_parse, u8_printf_parse, u16_printf_parse, u32_printf_parse):
New declarations.
* lib/printf-parse.c: Don't include config.h and the specification
header if PRINTF_PARSE is already defined. Eliminate the set of
parameters for WIDE_CHAR_VERSION; the user of this file must provide
them now. Include c-ctype.h.
(PRINTF_PARSE) [ENABLE_UNISTDIO]: Add code implementing the 'U'
directive and CHAR_T_ONLY_ASCII.
* lib/vasnprintf.c: Don't include config.h and the specification header
if VASNPRINTF is already defined.
(DCHAR_IS_TCHAR, DCHAR_CPY): New macros.
(VASNPRINTF): Use PRINTF_FETCHARGS instead of printf_fetchargs. Use
DCHAR_CPY. Handle the case that DCHAR_T and FCHAR_T are not the same
type. Handle the case that TCHAR_T and FCHAR_T are not of the same
size. Handle the case that DCHAR_T and TCHAR_T are not the same type,
add a conversion from TCHAR_T[] to DCHAR_T[], and rework the padding
code accordingly.
(VASNPRINTF) [ENABLE_UNISTDIO]: Implement the 'U' directive. Enable
pad_ourselves also in this case, with the 'c' and 's' directives, and
with a different notion of "width".
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): New macros.
2007-06-10 Bruno Haible <bruno@clisp.org>
* modules/unistr/u32-mbsnlen: New file.
* lib/unistr/u32-mbsnlen.c: New file.
* modules/unistr/u16-mbsnlen: New file.
* lib/unistr/u16-mbsnlen.c: New file.
* modules/unistr/u8-mbsnlen: New file.
* lib/unistr/u8-mbsnlen.c: New file.
* lib/unistr.h (u8_mbsnlen, u16_mbsnlen, u32_mbsnlen): New
declarations.
2007-06-10 Bruno Haible <bruno@clisp.org>
* lib/string_.h (mbsnlen): New declaration.
* lib/mbsnlen.c: New file.
* m4/mbsnlen.m4: New file.
* modules/mbsnlen: New file.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Set GNULIB_MBSNLEN.
* modules/string (string.h): Substitute GNULIB_MBSNLEN.
* MODULES.html.sh (Internationalization functions): Add mbsnlen.
2007-06-10 Bruno Haible <bruno@clisp.org>
* lib/mbslen.c: Include <stdlib.h>, needed for MB_CUR_MAX.
2007-06-10 Bruno Haible <bruno@clisp.org>
* lib/mbiter.h: Include <stddef.h>, needed for ptrdiff_t.
* lib/mbuiter.h: Likewise.
2007-06-10 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Check for _snprintf
declaration.
2007-06-10 Karl Berry <karl@gnu.org>
* config/srclist.txt: remove gettext entries, Bruno prefers
to update individually.
2007-06-10 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Remove variable
'maxlen'. Ensure only length + width bytes are allocated, not
length + 1 + width.
2007-06-09 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (FCHAR_T, DCHAR_T, TCHAR_T): New macros.
(CHAR_T): Remove macro.
(VASNPRINTF): Update.
2007-06-09 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Unicode string functions): Add the new modules.
* modules/uniconv/u32-conv-to-enc: New file.
* lib/uniconv/u32-conv-to-enc.c: New file.
* modules/uniconv/u32-conv-to-enc-tests: New file.
* tests/uniconv/test-u32-conv-to-enc.c: New file.
* modules/uniconv/u16-conv-to-enc: New file.
* lib/uniconv/u16-conv-to-enc.c: New file.
* lib/uniconv/u-conv-to-enc.h: New file.
* modules/uniconv/u16-conv-to-enc-tests: New file.
* tests/uniconv/test-u16-conv-to-enc.c: New file.
* modules/uniconv/u8-conv-to-enc: New file.
* lib/uniconv/u8-conv-to-enc.c: New file.
* modules/uniconv/u8-conv-to-enc-tests: New file.
* tests/uniconv/test-u8-conv-to-enc.c: New file.
* lib/uniconv.h (u8_conv_to_encoding, u16_conv_to_encoding,
u32_conv_to_encoding): New declarations.
2007-06-09 Bruno Haible <bruno@clisp.org>
* tests/uniconv/test-u32-strconv-to-enc.c (main): Remove unused code.
2007-06-09 Bruno Haible <bruno@clisp.org>
Rename 'allocsa' -> 'malloca', 'freesa' -> 'freea'.
* modules/malloca: Renamed from modules/allocsa, updated.
* lib/malloca.h: Renamed from lib/allocsa.h, updated.
* lib/malloca.c: Renamed from lib/allocsa.c, updated.
* lib/malloca.valgrind: Renamed from lib/allocsa.valgrind, updated.
* m4/malloca.m4: Renamed from m4/allocsa.m4, updated.
* modules/malloca-tests: Renamed from modules/allocsa-tests, updated.
* tests/test-malloca.c: Renamed from tests/test-allocsa.c, updated.
* modules/xmalloca: Renamed from modules/xallocsa, updated.
* lib/xmalloca.h: Renamed from lib/xallocsa.h, updated.
* lib/xmalloca.c: Renamed from lib/xallocsa.c, updated.
* modules/c-strcasestr (Depends-on): Update.
* lib/c-strcasestr.c: Update.
* modules/c-strstr (Depends-on): Update.
* lib/c-strstr.c: Update.
* modules/canonicalize-lgpl (Depends-on): Update.
* lib/canonicalize-lgpl.c: Update.
* modules/clean-temp (Depends-on): Update.
* lib/clean-temp.c: Update.
* modules/csharpcomp (Depends-on): Update.
* lib/csharpcomp.c: Update.
* modules/csharpexec (Depends-on): Update.
* lib/csharpexec.c: Update.
* modules/javacomp (Depends-on): Update.
* lib/javacomp.c: Update.
* modules/javaexec (Depends-on): Update.
* lib/javaexec.c: Update.
* modules/mbscasestr (Depends-on): Update.
* lib/mbscasestr.c: Update.
* modules/mbsstr (Depends-on): Update.
* lib/mbsstr.c: Update.
* modules/setenv (Depends-on): Update.
* lib/setenv.c: Update.
* modules/strcasestr (Depends-on): Update.
* lib/strcasestr.c: Update.
* modules/striconveha (Depends-on): Update.
* lib/striconveha.c: Update.
* modules/relocatable-prog-wrapper (Files): Update.
* lib/relocwrapper.c: Update.
* build-aux/install-reloc: Update.
* MODULES.html.sh (Memory management functions <stdlib.h>): Update.
2007-06-08 Bruno Haible <bruno@clisp.org>
Port to uClibc.
* lib/fbufmode.c (fbufmode): Add special code for uClibc.
* lib/fpurge.c (fpurge): Likewise.
* lib/freading.c (freading): Likewise.
* lib/fseeko.c (rpl_fseeko): Likewise.
* lib/fseterr.c (fseterr): Likewise.
* lib/fwriting.c (fwriting): Likewise.
* tests/test-fflush.c (main): Avoid a failure on uClibc.
2007-06-08 Bruno Haible <bruno@clisp.org>
* m4/intlmacosx.m4: New file, extracted from gettext.m4.
* m4/gettext.m4 (gt_INTL_MACOSX): Remove macro, moved to intlmacosx.m4.
* modules/gettext (Files): Add m4/intlmacosx.m4.
2007-06-07 Bruno Haible <bruno@clisp.org>
* modules/localename-tests: New file.
* tests/test-localename.c: New file.
New module 'localename'.
* lib/localename.h: New file.
* lib/localename.c: New file, from GNU gettext.
* m4/localename.m4: New file.
* modules/localename: New file.
2007-06-07 Bruno Haible <bruno@clisp.org>
Work around the lack of <wchar.h> on some builds of uClibc.
* doc/headers/wchar.texi: Update.
* lib/wchar_.h: Include <wchar.h> only if it exists.
* m4/wchar.m4 (gl_WCHAR_H): Check for <wchar.h>. Set HAVE_WCHAR_H.
* m4/stdint.m4 (gl_STDINT_H): Check for <wchar.h>.
(gl_STDINT_TYPE_PROPERTIES): Don't try to include <wchar.h> if it
doesn't exist.
* modules/wchar (wchar.h): Substitute HAVE_WCHAR_H.
* modules/mbfile (Depends-on): Add wchar.
* modules/mbiter (Depends-on): Likewise.
* modules/mbuiter (Depends-on): Likewise.
Reported by Simon Josefsson.
2007-06-06 Paul Eggert <eggert@cs.ucla.edu>
Work around problem reported by Steven M. Schweda in
<http://lists.gnu.org/r/bug-tar/2007-06/msg00002.html>:
Tru64 5.1B with the Compaq compiler environment installed declares
an 'isblank' function but does not define it in the C library.
* lib/fnmatch.c (isblank): Check for HAVE_ISBLANK, too.
* lib/regex_internal.h (isblank): Likewise.
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for isblank existence.
* m4/regex.m4 (gl_PREREQ_REGEX): Likewise.
2007-06-05 Bruno Haible <bruno@clisp.org>
Fix *printf so that it recognizes non-IEEE numbers on i386, x86_64,
ia64.
* modules/printf-safe: New file.
* modules/fprintf-posix (Depends-on): Add printf-safe.
* modules/printf-posix (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Require
AC_C_BIGENDIAN. Define CHECK_PRINTF_SAFE if printf-safe is used. Test
non-IEEE numbers on i386, x86_64, ia64. When cross-compiling, guess
"no" on i386, x86_64, ia64.
* tests/test-snprintf-posix.h (LDBL80_WORDS): New macro.
(test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers
on i386, x86_64, ia64.
* tests/test-sprintf-posix.h (LDBL80_WORDS): New macro.
(test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers
on i386, x86_64, ia64.
* tests/test-vasnprintf-posix.c: Include float.h.
(LDBL80_WORDS): New macro.
(test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers
on i386, x86_64, ia64.
* tests/test-vasprintf-posix.c: Include float.h.
(LDBL80_WORDS): New macro.
(test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers
on i386, x86_64, ia64.
* tests/test-snprintf-posix.c: Include float.h.
* tests/test-sprintf-posix.c: Likewise.
* tests/test-vsnprintf-posix.c: Likewise.
* tests/test-vsprintf-posix.c: Likewise.
2007-06-05 Bruno Haible <bruno@clisp.org>
Fix isnanl so that it recognizes non-IEEE numbers on i386, x86_64, ia64.
* m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Require AC_C_BIGENDIAN. Test
non-IEEE numbers on i386, x86_64, ia64.
(gl_LONG_DOUBLE_EXPONENT_LOCATION): Require AC_C_BIGENDIAN.
* lib/isnan.c (FUNC): Add special code for i386, x86_64, ia64.
* tests/test-isnanl.h: Include float.h.
(main): Check also non-IEEE numbers on i386, x86_64, ia64.
2007-06-05 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Do the extra handling of NaN and Inf
also the %a / %A. Handle the %a / %A code before this extra handling.
2007-06-05 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c [NEED_PRINTF_LONG_DOUBLE ||
NEED_PRINTF_INFINITE_LONG_DOUBLE]: Include fpucw.h.
2007-06-05 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE): Fix
typo in variable name.
2007-06-05 Eric Blake <ebb9@byu.net>
* m4/lseek.m4 (gl_FUNC_LSEEK): Work when cross-compiling.
Reported by Simon Josefsson.
2007-06-04 Bruno Haible <bruno@clisp.org>
Avoid test failures on some PowerPC platforms.
* tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP):
Define differently for PowerPC.
* tests/test-frexpl.c (MIN_NORMAL_EXP): Likewise.
Reported by Gary V. Vaughan <gary@gnu.org>.
2007-06-02 Bruno Haible <bruno@clisp.org>
Fix test-stdint failure on FreeBSD/ia64.
* m4/stdint.m4 (gl_STDINT_H): Check the values of PTRDIFF_MIN,
PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, SIZE_MAX, WCHAR_MIN,
WCHAR_MAX, WINT_MIN, WINT_MAX entirely, not only for plausibility.
* doc/headers/stdint.texi: Update.
2007-06-01 Bruno Haible <bruno@clisp.org>
* tests/test-binary-io.c (main): Pass a third argument to open().
Reported by Gary V. Vaughan <gary@gnu.org>.
2007-06-01 Bruno Haible <bruno@clisp.org>
* doc/functions/frexpl.texi: Update for mingw.
2007-06-01 Bruno Haible <bruno@clisp.org>
* tests/test-lseek.c (main): Disable test of errno for invalid third
argument.
* doc/functions/lseek.texi: Update.
Reported by Gary V. Vaughan <gary@gnu.org>.
2007-05-28 Bruno Haible <bruno@clisp.org>
* m4/intl.m4 (AM_INTL_SUBDIR): Substitute variables WOE32, WINDRES.
2007-05-31 Eric Blake <ebb9@byu.net>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Guess no on mingw when
cross compiling.
2007-05-30 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
Work around mingw test failures exposed by m4-1.4.9b.
* m4/stdint.m4 (gl_STDINT_H): Detect mingw bug.
* tests/test-unistd.c: Disable uid_t and git_t tests for the
moment.
2007-05-30 Bruno Haible <bruno@clisp.org>
* tests/test-lseek.c: Explicitly close file descriptors 0 and 1 before
assuming that they are closed. Needed on HP-UX 11.
2007-05-29 Bruno Haible <bruno@clisp.org>
Fix a problem with #include_next.
* lib/dirent_.h: Split the double-inclusion guard.
* lib/fcntl_.h: Likewise.
* lib/float_.h: Likewise.
* lib/iconv_.h: Likewise.
* lib/inttypes_.h: Likewise.
* lib/locale_.h: Likewise.
* lib/math_.h: Likewise.
* lib/netinet_in_.h: Likewise.
* lib/search_.h: Likewise.
* lib/signal_.h: Likewise.
* lib/stdint_.h: Likewise.
* lib/stdio_.h: Likewise.
* lib/stdlib_.h: Likewise.
* lib/string_.h: Likewise.
* lib/sys_select_.h: Likewise.
* lib/sys_socket_.h: Likewise.
* lib/sys_stat_.h: Likewise.
* lib/sys_time_.h: Likewise.
* lib/sysexits_.h: Likewise.
* lib/time_.h: Likewise.
* lib/unistd_.h: Likewise.
* lib/wchar_.h: Likewise.
* lib/wctype_.h: Likewise.
2007-05-29 Bruno Haible <bruno@clisp.org>
* tests/test-unistd.c: Disable the tests for useconds_t and intptr_t
for the moment.
2007-05-29 Bruno Haible <bruno@clisp.org>
* m4/isnan.m4 (gl_DOUBLE_EXPONENT_LOCATION): Silence the AC_C_BIGENDIAN
invocation.
Reported by Eric Blake.
2007-05-29 Bruno Haible <bruno@clisp.org>
* m4/isnanf.m4 (gl_FLOAT_EXPONENT_LOCATION): Fix typo in cross-
compiling case.
2007-05-29 Eric Blake <ebb9@byu.net>
Bruno Haible <bruno@clisp.org>
* m4/isnanf.m4 (gl_FUNC_ISNANF_NO_LIBM): Avoid syntax error on
cross compiles.
2007-05-28 Eric Blake <ebb9@byu.net>
* modules/closein-tests (test_closein_LDADD): Support test on
cygwin with libtool.
2007-05-28 Bruno Haible <bruno@clisp.org>
* tests/uniconv/test-u16-conv-from-enc.c: Remove #ifdef HAVE_CONFIG_H.
* tests/uniconv/test-u16-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u32-conv-from-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c: Likewise.
* tests/uniconv/test-u8-conv-from-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c: Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c: Likewise.
2007-05-28 Eric Blake <ebb9@byu.net>
Unconditionally include <config.h> in unit tests.
* tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H.
* tests/test-allocsa.c, tests/test-arcfour.c,
tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c,
tests/test-array_list.c, tests/test-array_oset.c,
tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c,
test-avltreehash_list.c, test-base64.c, test-binary-io.c,
test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c,
test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c,
test-carray_list.c, test-crc.c, test-des.c, test-dirname.c,
test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c,
test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c,
test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c,
test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c,
test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c,
test-iconv.c, test-linked_list.c, test-linkedhash_list.c,
test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c,
test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c,
test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c,
test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c,
test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c,
test-md5.c, test-memmem.c, test-printf-posix.c,
test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c,
test-read-file.c, test-rijndael.c, test-snprintf-posix.c,
test-snprintf.c, test-sprintf-posix.c, test-stdint.c,
test-strcasestr.c, test-striconv.c, test-striconveh.c,
test-striconveha.c, test-tls.c, test-vasnprintf-posix.c,
test-vasnprintf-posix2.c, test-vasnprintf.c,
test-vasprintf-posix.c, test-vasprintf.c, test-verify.c,
test-vfprintf-posix.c, test-vprintf-posix.c,
test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c,
test-xvasprintf.c: Likewise.
2007-05-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Remember the --with-tests command-line
option through the macro gl_WITH_TESTS in the gnulib-cache.m4.
Reported by Eric Blake.
2007-05-28 Bruno Haible <bruno@clisp.org>
* modules/ftell-tests: New file.
* tests/test-ftell.c: New file, based on tests/test-ftello.c.
* tests/test-ftell.sh: New file, based on tests/test-ftello.sh.
* lib/ftell.c: New file.
* modules/ftell: New file.
* m4/ftell.m4: New file.
* doc/functions/ftell.texi: Update.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FTELL,
REPLACE_FTELL.
* lib/stdio_.h (rpl_ftell): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_FTELL,
REPLACE_FTELL.
2007-05-28 Eric Blake <ebb9@byu.net>
* lib/allocsa.h (safe_alloca): Avoid compiler warning.
2007-05-28 Bruno Haible <bruno@clisp.org>
* modules/fseek-tests: New file.
* tests/test-fseek.c: New file, based on tests/test-fseeko.c.
* tests/test-fseek.sh: New file, based on tests/test-fseeko.sh.
* lib/fseek.c: New file.
* modules/fseek: New file.
* m4/fseek.m4: New file.
* doc/functions/fseek.texi: Update.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FSEEK,
REPLACE_FSEEK.
* lib/stdio_.h (rpl_fseek): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_FSEEK,
REPLACE_FSEEK.
2007-05-28 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (fflush): More comments.
2007-05-28 Bruno Haible <bruno@clisp.org>
* m4/lseek.m4 (gl_FUNC_LSEEK): When not cross-compiling, perform a real
runtime test.
2007-05-28 Eric Blake <ebb9@byu.net>
Improve lseek module.
* lib/lseek.c (rpl_lseek): Detect EBADF on mingw.
* lib/unistd_.h (lseek): Scale back link warning message.
* tests/test-lseek.c: Beef up test.
* tests/test-lseek.sh: Exercise more facets of lseek.
Reported by Bruno Haible.
2007-05-28 Bruno Haible <bruno@clisp.org>
* tests/test-unistd.c: Test all the types that <unistd.h> is expected
to define.
2007-05-27 Bruno Haible <bruno@clisp.org>
* m4/iconv.m4 (AM_ICONV_LINK): Fix 2007-03-31 patch.
2007-05-27 Bruno Haible <bruno@clisp.org>
* modules/openmp: New file.
* m4/openmp.m4: New file, taken from autoconf's CVS with changes by
Noah Misch.
2007-05-26 Bruno Haible <bruno@clisp.org>
* modules/chdir-long (Depends-on): Add fchdir.
* modules/chdir-safer (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/fts-lgpl (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
2007-05-24 Eric Blake <ebb9@byu.net>
Fix lseek on mingw.
* modules/lseek: New module.
* m4/lseek.m4: New file.
* lib/lseek.c: New file.
* modules/lseek-tests: New file.
* tests/test-lseek.c: New file.
* tests/test-lseek.sh: New file.
* MODULES.html.sh: Document lseek module.
* modules/fflush (Depends-on): Add lseek, fseeko.
* modules/fseeko (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Replace fseek[o] if lseek is
broken.
* m4/ftello.m4 (gl_FUNC_FTELLO): Replace ftell[o] if lseek is
broken.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Trigger fseeko module.
* lib/fseeko.c (rpl_fseeko): Quit early on non-seekable files.
* lib/ftello.c (rpl_ftello): Likewise.
* tests/test-fseeko.c (main): Test this.
* tests/test-fseeko.sh: Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-ftello.sh: Likewise.
* lib/stdio_.h (fseek, ftell): Simplify, since missing fseeko now
implies replacing fseek.
* modules/stdio (Makefile.am): No longer need HAVE_FSEEKO,
HAVE_FTELLO.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add lseek info.
* modules/unistd (Makefile.am): Likewise.
* lib/unistd_.h (lseek): Declare a replacement.
* doc/functions/lseek.texi (lseek): Document this fix.
* doc/functions/fseek.texi (fseek): Likewise.
* doc/functions/ftell.texi (ftell): Likewise.
2007-05-24 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Allow up to 50 bytes
in the printed representation of a NaN.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
Reported by Eric Blake.
2007-05-23 Eric Blake <ebb9@byu.net>
Fix fseeko/ftello on cygwin 1.5.24.
* doc/functions/fseeko.texi (fseeko): Document the fix.
* doc/functions/ftello.texi (ftello): Document the fix.
* doc/functions/stdin.texi (stdin): Document the cygwin bug.
* doc/functions/stdout.text (stdout): New file.
* doc/functions/stderr.text (stderr): New file.
* doc/gnulib.texi (Function Substitutes): Use new files.
* tests/test-fseeko.c (main): Check for broken fseeko on cygwin
prior to 1.7.0.
* tests/test-ftello.c (main): Likewise for ftello.
* tests/test-fseeko.sh: New file.
* tests/test-ftello.sh: New file.
* modules/fseeko-tests (Makefile.am): Ensure test-fseeko is run
with seekable stdin.
* modules/ftello-tests (Makefile.am): Likewise for test-ftello.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Detect the cygwin bug.
(gl_REPLACE_FSEEKO): New macro.
* m4/ftello.m4 (gl_FUNC_FTELLO, gl_REPLACE_FTELLO): Likewise.
* modules/fseeko (Files): Distribute fseeko.c.
* modules/ftello (Files): Distribute ftello.c.
* lib/fseeko.c (rpl_fseeko) [__CYGWIN__]: Convert stdin to 64-bit
mode.
* lib/ftello.c (rpl_ftello): New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Allow replacement of
fseeko, ftello.
(gl_STDIN_LARGE_OFFSET): New macro.
* modules/stdio (Makefile.am): Perform the replacement.
* lib/stdio_.h (rpl_fseeko, rpl_ftello): Define when needed.
2007-05-23 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (fseeko, ftello): Provide a link warning only if
GNULIB_POSIXCHECK is defined.
2007-05-21 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE):
Check also the output for NaN arguments. When cross-compiling, guess
no on IRIX.
* lib/vasnprintf.c: Update comments.
* tests/test-vasnprintf-posix.c (strisnan): New function.
(test_function): Use it.
* tests/test-vasprintf-posix.c (strisnan): New function.
(test_function): Use it.
* tests/test-snprintf-posix.h (strisnan): New function.
(test_function): Use it.
* tests/test-sprintf-posix.h (strisnan): New function.
(test_function): Use it.
Reported by Eric Blake.
2007-05-20 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Add test for large finite
numbers that fails on BeOS.
* doc/functions/frexpl.texi: Update.
2007-05-20 Jim Meyering <jim@meyering.net>
* NEWS: Mention the incompatible change (s/futimens/gl_futimens/)
forced upon us by glibc-2.6.
2007-05-20 Bruno Haible <bruno@clisp.org>
Fix *printf result for NaN, Inf on AIX, Solaris, OSF/1.
* m4/printf.m4 (gl_PRINTF_INFINITE): Update cross-compiling guesses.
(gl_PRINTF_INFINITE_LONG_DOUBLE): New macro.
* lib/vasnprintf.c: Use NEED_PRINTF_INFINITE_DOUBLE instead of
NEED_PRINTF_INFINITE.
(is_infinitel): New function.
(VASNPRINTF): Handle NEED_PRINTF_INFINITE_LONG_DOUBLE case.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE): Renamed from
gl_PREREQ_VASNPRINTF_INFINITE.
(gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_INFINITE_LONG_DOUBLE and test its result. Invoke
gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE and
gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE instead of
gl_PREREQ_VASNPRINTF_INFINITE.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-05-20 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): Set REPLACE_FREXPL if frexpl
was not found in libc.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise.
2007-05-20 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Allow NaN to be
printed as "-nan" instead of "nan".
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
Needed for HP-UX 11.
2007-05-20 Jim Meyering <jim@meyering.net>
Fix buggy test for the fchownat-deref bug.
* m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Create the dangling
symlink required for the run-test. Without it, this test would
always declare that fchownat doesn't work, and client code would
unnecessarily use the replacement function with fixed libc.
(gl_FUNC_FCHOWNAT): Eliminate a variable that wasn't initialized.
Reported by Greg Schafer.
2007-05-19 Bruno Haible <bruno@clisp.org>
* m4/isnanf.m4 (gl_ISNANF_WORKS): New macro.
(gl_FUNC_ISNANF_NO_LIBM): Invoke it.
* lib/isnan.c (FUNC): Use run-time expressions for SGI compiler.
Needed for IRIX 6.5 and Solaris 2.5.1.
2007-05-19 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (have_minus_zero): New function.
(test_function): Skip tests involving -0.0 on platforms where
-0.0 = 0.0.
* tests/test-vasprintf-posix.c (have_minus_zero): New function.
(test_function): Skip tests involving -0.0 on platforms where
-0.0 = 0.0.
* tests/test-snprintf-posix.h (have_minus_zero): New function.
(test_function): Skip tests involving -0.0 on platforms where
-0.0 = 0.0.
* tests/test-sprintf-posix.h (have_minus_zero): New function.
(test_function): Skip tests involving -0.0 on platforms where
-0.0 = 0.0.
* tests/test-fprintf-posix.h (test_function): Remove all -0.0 related
tests.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-printf-posix.output: Remove all -0.0 related results.
Needed for IRIX 6.5.
2007-05-19 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Allow NaN to be
printed as "nan0x7fffffff" instead of "nan".
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.h (NaN): Remove macro.
(test_function): Remove all NaN related tests.
* tests/test-printf-posix.h (NaN): Remove macro.
(test_function): Remove all NaN related tests.
* tests/test-printf-posix.output: Remove all NaN related results.
Needed for IRIX 6.5.
2007-05-19 Bruno Haible <bruno@clisp.org>
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Fix C89 syntax error in test code.
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
2007-05-19 Bruno Haible <bruno@clisp.org>
* lib/float_.h: New file.
* m4/float_h.m4: New file.
* modules/float: New file.
* modules/isnanl (Dependencies): Add float.
* modules/isnanl-nolibm (Dependencies): Likewise.
* modules/mathl (Dependencies): Likewise.
* modules/printf-frexpl (Dependencies): Likewise.
* modules/signbit (Dependencies): Likewise.
* modules/vasnprintf (Dependencies): Likewise.
* doc/headers/float.texi: Update.
2007-05-19 Jim Meyering <jim@meyering.net>
* lib/utimens.c (gl_futimens): Rename from futimens,
now that glibc-2.6 declares futimens.
* lib/utimens.h: Likewise.
2007-05-19 Bruno Haible <bruno@clisp.org>
Avoid test failures on mingw.
* tests/test-fprintf-posix.sh: Convert CR/LF to LF in output.
* tests/test-printf-posix.sh: Likewise.
* tests/test-vfprintf-posix.sh: Likewise.
* tests/test-vprintf-posix.sh: Likewise.
2007-05-19 Bruno Haible <bruno@clisp.org>
Fix *printf result for NaN, Inf, -0.0 on mingw.
* m4/printf.m4 (gl_PRINTF_INFINITE): New macro.
* lib/vasnprintf.c: Include math.h and isnan.h.
(is_infinite_or_zero): New function.
(VASNPRINTF): Fix also the handling of infinite or zero 'double'
values in the %f, %F, %e, %E, %g, %G directives.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_INFINITE and test its result. Invoke
gl_PREREQ_VASNPRINTF_INFINITE.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-05-19 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (convert_to_decimal): Add an extra_zeroes argument.
(scale10_round_decimal_long_double): Inline scale10_round_long_double.
Instead of multiplying with 10^k, set extra_zeroes to k.
(scale10_round_long_double): Remove function.
2007-05-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Fix logic bug
introduced on 2007-05-06.
2007-05-18 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Also test the %e and
%g directives.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
2007-05-18 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (SIZEOF): New macro.
(strmatch): New function.
(test_function): Test the %f directive on numbers of various exponents.
* tests/test-vasprintf-posix.c (SIZEOF): New macro.
(strmatch): New function.
(test_function): Test the %f directive on numbers of various exponents.
* tests/test-snprintf-posix.h (strmatch): New function.
(test_function): Test the %f directive on numbers of various exponents.
* tests/test-sprintf-posix.h (strmatch): New function.
(test_function): Test the %f directive on numbers of various exponents.
* tests/test-snprintf-posix.c (SIZEOF): New macro.
* tests/test-sprintf-posix.c (SIZEOF): New macro.
* tests/test-vsnprintf-posix.c (SIZEOF): New macro.
* tests/test-vsprintf-posix.c (SIZEOF): New macro.
2007-05-18 Bruno Haible <bruno@clisp.org>
Add support for 'long double' number output.
* m4/printf.m4 (gl_PRINTF_LONG_DOUBLE): New macro.
* lib/vasnprintf.c: Include math.h and float+.h.
(mp_limb_t): New type.
(GMP_LIMB_BITS): New macro.
(mp_twolimb_t): New type.
(GMP_TWOLIMB_BITS): New macro.
(mpn_t): New type.
(multiply, divide, convert_to_decimal, decode_long_double,
scale10_round_long_double, scale10_round_decimal_long_double,
floorlog10l): New functions.
(VASNPRINTF) [NEED_PRINTF_LONG_DOUBLE]: Implement 'long double' support
for the %f, %F, %e, %E, %g, %G directives.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_LONG_DOUBLE): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_LONG_DOUBLE and test its result. Invoke
gl_PREREQ_VASNPRINTF_LONG_DOUBLE.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* modules/fprintf-posix (Depends-on): Add frexpl-nolibm.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/vasnprintf (Files): Add lib/float+.h.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-05-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (USE_SNPRINTF): Define to 0 on BeOS.
2007-05-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF) [WIN32]: Use %I64d instead of %lld
for printing 64-bit integers. Needed for mingw.
2007-05-18 Bruno Haible <bruno@clisp.org>
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke
gl_FUNC_FREXPL_WORKS.
* modules/printf-frexpl (Files): Add m4/frexpl.m4.
2007-05-18 Bruno Haible <bruno@clisp.org>
* modules/frexpl-nolibm-tests: New file.
* modules/frexpl-nolibm: New file.
* m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): New macro.
2007-05-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/dirent_.h: Prefer #include_next <foo.h> to #include
@ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with
GCC 4.2, which otherwise issues a lot of warnings.
* lib/iconv_.h, lib/locale_.h, lib/netinet_in_.h, lib/sys_select_.h:
* lib/sys_socket_.h, lib/sys_stat_.h, lib/sysexits_.h, lib/unistd_.h:
Likewise.
* modules/fchdir (dirent.h): Substitute @HAVE_INCLUDE_NEXT@.
* modules/iconv_open (iconv.h): Likewise.
* modules/locale (locale.h): Likewise.
* modules/netinet_in (netinet/in.h): Likewise.
* modules/sys_select (sys_select.h): Likewise.
* modules/sys_socket (sys/socket.h): Likewise.
* modules/sys_stat (sys/stat.h): Likewise.
* modules/sysexits (sysexits.h): Likewise.
* modules/unistd (unistd.h): Likewise.
2007-05-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/closein-tests (Makefile.am): Distribute
`test-closein.sh'.
2007-05-17 Bruno Haible <bruno@clisp.org>
* tests/test-printf-posix.output: Renamed from
tests/test-fprintf-posix.out.
* modules/fprintf-posix-tests: Update.
* modules/printf-posix-tests: Update.
* modules/vfprintf-posix-tests: Update.
* modules/vprintf-posix-tests: Update.
* tests/test-fprintf-posix.sh: Update.
* tests/test-printf-posix.sh: Update.
* tests/test-vfprintf-posix.sh: Update.
* tests/test-vprintf-posix.sh: Update.
Reported by Ralf Wildenhues.
2007-05-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/fcntl_.h: Prefer #include_next <foo.h> to #include
@ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with
GCC 4.2, which otherwise issues a lot of warnings.
* lib/inttypes_.h, lib/math_.h, lib/search_.h, lib/signal_.h:
* lib/stdint_.h, lib/stdio_.h, lib/stdlib_.h, lib/string_.h:
* lib/sys_time_.h, lib/time_.h, lib/wchar_.h, lib/wctype_.h: Likewise.
* lib/stdlib_.h: Don't bother with #pragma GCC system_header, as
it should no longer be needed.
* lib/string_.h: Likewise.
* modules/absolute-header (HAVE_INCLUDE_NEXT): New 'make' define.
* modules/fcntl (fcntl.h): Substitute @HAVE_INCLUDE_NEXT@.
* modules/inttypes (inttypes.h): Likewise.
* modules/math (math.h): Likewise.
* modules/search (search.h): Likewise.
* modules/signal (signal.h): Likewise.
* modules/stdint (stdint.h): Likewise.
* modules/stdio (stdio.h): Likewise.
* modules/stdlib (stdlib.h): Likewise.
* modules/string (string.h): Likewise.
* modules/sys_time (sys/time.h): Likewise.
* modules/time (time.h): Likewise.
* modules/wchar (wchar.h): Likewise.
* modules/wctype (wtype.h): Likewise.
2007-05-16 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
* doc/gnulib-tool.texi (CVS Issues): Fix typo.
2007-05-13 Bruno Haible <bruno@clisp.org>
* stpcpy.m4 (gl_FUNC_STPCPY): Require AC_C_RESTRICT.
* stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* strsep.m4 (gl_FUNC_STRSEP): Likewise.
* strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise.
(gl_PREREQ_STRTOK_R): Don't require it here.
2007-05-13 Bruno Haible <bruno@clisp.org>
* lib/stdlib_.h (mkdtemp, mkstemp): Comment out argument name. Needed
when used in C++ mode.
2007-05-12 Bruno Haible <bruno@clisp.org>
* lib/linebuffer.h: Tweak doc.
* lib/linebuffer.c: Likewise.
2007-05-12 James Youngman <jay@gnu.org>
* lib/linebuffer.c (readlinebuffer_delim): New function,
like readlinebuffer, but use a caller-specified delimiter.
(readlinebuffer): Just call readlinebuffer_delim with '\n'
as the delimiter.
* lib/linebuffer.h (readlinebuffer_delim): Declare it.
2007-05-12 Sergey Poznyakoff <gray@gnu.org.ua>
* m4/openat.m4 (gl_FUNC_OPENAT): Do not require openat-die.
* modules/openat (Files): Remove openat-die.c.
(Depends-on): Add openat-die.
* modules/openat-die: New module.
2007-05-06 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_FLAG_GROUPING, gl_VSNPRINTF_ZEROSIZE_C99):
Update with info about Cygwin.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
Reported by Eric Blake.
2007-05-06 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Perform the
padding ourselves for the floating-point directives.
* m4/printf.m4 (gl_PRINTF_FLAG_ZERO): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_ZERO): New macro.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
gl_PRINTF_FLAG_ZERO and test its result. Invoke
gl_PREREQ_VASNPRINTF_FLAG_ZERO.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Also check the width
and some flags in the %f directive.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-05-06 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_GROUPING]: Don't
pass the ' flag character to sprintf or snprintf.
* m4/printf.m4 (gl_PRINTF_FLAG_GROUPING): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_GROUPING): New macro.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
gl_PRINTF_FLAG_GROUPING and test its result. Invoke
gl_PREREQ_VASNPRINTF_FLAG_GROUPING.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
* tests/test-snprintf-posix.h (test_function): Also check the grouping
flag.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* doc/functions/fprintf.texi: Update.
* doc/functions/printf.texi: Update.
* doc/functions/snprintf.texi: Update.
* doc/functions/sprintf.texi: Update.
* doc/functions/vfprintf.texi: Update.
* doc/functions/vprintf.texi: Update.
* doc/functions/vsnprintf.texi: Update.
* doc/functions/vsprintf.texi: Update.
2007-05-01 Bruno Haible <bruno@clisp.org>
* tests/test-argp-2.sh (func_compare): Drop .exe suffix.
2007-05-03 Paul Eggert <eggert@cs.ucla.edu>
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Use better
comment for D_INO_IN_DIRENT. Problem reported by James Youngman.
2007-05-02 Paul Eggert <eggert@cs.ucla.edu>
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Test whether
readdir returns garbage in d_ino. Problem reported by Kaz Sasayama in
<http://lists.gnu.org/r/bug-gnulib/2007-05/msg00021.html>.
2007-05-02 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (struct hol_entry): New member `ord'.
(HOL_ENTRY_PTRCMP): Use ord for comparison
(hol_sort): Initialize ord.
2007-05-01 Bruno Haible <bruno@clisp.org>
* doc/functions/_Exit_C99.texi: Renamed from doc/functions/_Exit.texi.
Reported by Eric Blake.
* doc/gnulib.texi (Function Substitutes): Update.
2007-05-01 Bruno Haible <bruno@clisp.org>
* doc/functions.texi: Remove file, now redundant through
doc/functions/*.texi.
2007-05-01 Bruno Haible <bruno@clisp.org>
* modules/argp (Depends-on): Add sleep.
2007-05-01 Bruno Haible <bruno@clisp.org>
* modules/sleep-tests: New file.
* tests/test-sleep.c: New file.
* modules/sleep: New file.
* lib/sleep.c: New file.
* m4/sleep.m4: New file.
* lib/unistd_.h (sleep): New declaration.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_SLEEP,
HAVE_SLEEP.
* modules/unistd (Makefile.am): Substitute GNULIB_SLEEP, HAVE_SLEEP.
* doc/functions/sleep.texi: Document the sleep module.
2007-05-01 Bruno Haible <bruno@clisp.org>
* lib/sigprocmask.h: Remove file.
* lib/signal_.h: Incorporate the previous contents of sigprocmask.h.
* lib/sigprocmask.c: Include <signal.h> instead of sigprocmask.h.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Substitute GNULIB_SIGPROCMASK,
HAVE_POSIX_SIGNALBLOCKING, HAVE_SIGSET_T.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
gl_SIGNAL_H_DEFAULTS. Set HAVE_POSIX_SIGNALBLOCKING as a shell variable.
(gl_PREREQ_SIGPROCMASK): Require gl_SIGNAL_H_DEFAULTS. Set
HAVE_SIGSET_T as a shell variable.
* modules/signal (Makefile.am): Substitute GNULIB_SIGPROCMASK,
HAVE_POSIX_SIGNALBLOCKING, HAVE_SIGSET_T into signal.h.
* modules/sigprocmask (Files): Remove lib/sigprocmask.h.
(Depends-on): Add signal. Remove verify.
(configure.ac): Invoke gl_SIGNAL_MODULE_INDICATOR.
(Include): Mention <signal.h> instead of sigprocmask.h.
* NEWS: Mention the change.
* lib/fatal-signal.c: Don't include sigprocmask.h.
2007-05-01 Bruno Haible <bruno@clisp.org>
* modules/signal: New file.
* lib/signal_.h: New file.
* m4/signal_h.m4: New file.
2007-05-01 Bruno Haible <bruno@clisp.org>
* lib/wctype_.h: Test HAVE_ISWCNTRL at configure time.
* m4/wctype.m4 (gl_WCTYPE_H): Substitute HAVE_ISWCNTRL.
* modules/wctype (Makefile.am): Substitute HAVE_ISWCNTRL instead of
HAVE_WCTYPE_CTMP_BUG into wctype.h.
2007-05-01 Bruno Haible <bruno@clisp.org>
* lib/sys_stat_.h: Test HAVE_LSTAT, HAVE_DECL_MKDIR, HAVE_IO_H at
configure time.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Substitute HAVE_LSTAT,
HAVE_DECL_MKDIR, HAVE_IO_H via AC_SUBST.
* modules/sys_stat (Makefile.am): Substitute their values into
sys/stat.h.
2007-05-01 Bruno Haible <bruno@clisp.org>
* lib/glob_.h: Test HAVE_SYS_CDEFS_H at configure time.
* m4/glob.m4 (gl_PREREQ_GLOB): Substitute HAVE_SYS_CDEFS_H via AC_SUBST.
* modules/glob (Makefile.am): Put HAVE_SYS_CDEFS_H value into glob.h.
2007-05-01 Bruno Haible <bruno@clisp.org>
* doc/header/assert.texi: Undo last change: don't mention the gnulib
'assert' module here.
2007-05-01 Bruno Haible <bruno@clisp.org>
* doc/functions/*.texi: New files.
* doc/functions/google-ranking.txt: New file.
* doc/gnulib.texi (Function Substitutes): New chapter.
(ctime, inet_ntoa): Remove sections.
* doc/ctime.texi: Remove file.
* doc/inet_ntoa.texi: Remove file.
* doc/Makefile (gnulib.info, gnulib.html, gnulib.dvi): Update
dependencies.
(%.info): New rule, specifying a --reference-limit.
2007-05-01 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (posix_functions): Remove 'exec', 'toc'.
2007-05-01 Bruno Haible <bruno@clisp.org>
* modules/mkdir (Depends-on): Add sys_stat, because sys_stat provides
the portability of 'mkdir' to mingw systems.
2007-05-01 Bruno Haible <bruno@clisp.org>
* doc/headers/google-ranking.txt: New file.
2007-04-30 Eric Blake <ebb9@byu.net>
Prefer fseeko to fseek.
* modules/getpass (Depends-on): Add fseeko.
* lib/getpass.c (getpass): Use fseeko, not fseek.
2007-04-30 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (hol_entry_cmp): Option sorting algorithm
assumes the sorting is stable, while most qsort implementations
are not. Use argument addresses to ensure they never compare as
equal.
* tests/test-argp-2.sh (usage-indent test): Fix output
(func_compare): Restore diff options
* tests/test-argp.c: Restore #include "progname.h"
2007-04-29 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_VSNPRINTF_ZEROSIZE_C99): New macro.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
gl_VSNPRINTF_ZEROSIZE_C99. Test gl_cv_func_vsnprintf_zerosize_c99.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* modules/snprintf-posix-tests (Files): Add tests/test-snprintf.c.
(configure.ac): Define CHECK_SNPRINTF_POSIX.
(TESTS, check_PROGRAMS): Add test-snprintf.
* modules/vsnprintf-posix-tests (Files): Add tests/test-vsnprintf.c.
(configure.ac): Define CHECK_VSNPRINTF_POSIX.
(TESTS, check_PROGRAMS): Add test-vsnprintf.
* tests/test-snprintf.c (main) [!CHECK_SNPRINTF_POSIX]: Disable
assertions that fail on HP-UX, OSF/1, or IRIX.
* tests/test-vsnprintf.c (main) [!CHECK_VSNPRINTF_POSIX]: Likewise.
2007-04-29 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (posix_functions): Remove 'contents'.
2007-04-29 Karl Berry <karl@gnu.org>
* config/srclist.txt (gendocs_template_min): new entry.
2007-04-29 Bruno Haible <bruno@clisp.org>
Work around fpurge bug on BSD systems.
* modules/fpurge (Makefile.am): Compile fpurge.c unconditionally.
* m4/fpurge.m4 (gl_FUNC_FPURGE): Don't invoke AC_LIBOBJ.
* lib/fpurge.h (fpurge): Don't handle __fpurge wrapper here. Define
fpurge to rpl_fpurge if the system already has this function.
* lib/fpurge.c (fpurge): Handle also the __fpurge wrapper case and
the case where the system already has this function. Correct invariants
on BSD systems.
* lib/fseeko.c (rpl_fseeko): Update recognition of preceding fflush on
BSD systems.
2007-04-29 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (hol_cluster_cmp): Reverse comparison. Change
proposed by Sven Verdoolaege.
* tests/test-argp.c: Fix option ordering. Test deeply clustered
options.
* tests/test-argp-2.sh (func_compare): Use diff instead of cmp.
(usage and help tests): Update
2007-04-29 Bruno Haible <bruno@clisp.org>
* tests/test-fflush.c (main): Use a file of size 17, not 10.
Print more information in case of failure. Disable a test on BeOS.
2007-04-29 Bruno Haible <bruno@clisp.org>
* tests/**/test-*.[hc] (ASSERT): Use fprintf to show the line number.
This helps debugging on systems on which no gdb is available.
2007-04-29 Bruno Haible <bruno@clisp.org>
* lib/freading.h: Improve comments.
* lib/fwriting.h: Likewise.
* tests/test-freading.c (main): Don't check freading immediately after
repositioning. Needed for glibc.
2007-04-29 Bruno Haible <bruno@clisp.org>
* lib/freading.c (freading): Trivial simplification.
2007-04-28 Bruno Haible <bruno@clisp.org>
* tests/test-fwriting.c (main): Also test the interaction between
fflush and fwriting.
* modules/fwriting-tests (Depends-on): Add fflush.
* tests/test-freading.c (main): Also test the interaction between
fflush and freading.
* modules/freading-tests (Depends-on): Add fflush.
2007-04-28 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (fseek, ftell): Provide link warnings suggesting to use
fseeko and ftello.
Suggested by Eric Blake.
2007-04-28 Jim Meyering <jim@meyering.net>
Avoid false-negative in gl_STDINT_H's C99 conformance test.
* m4/stdint.m4 (gl_STDINT_H): When checking whether stdint.h conforms
to C99, include all of gl_STDINT_INCLUDES, not just <stddef.h>.
2007-04-27 Eric Blake <ebb9@byu.net>
* doc/headers/assert.texi (assert.h): Document assert module use.
2007-04-27 Bruno Haible <bruno@clisp.org>
* doc/headers/*.texi: New files.
* doc/gnulib.texi (Header File Substitutes): New chapter.
* doc/Makefile (gnulib.info, gnulib.html, gnulib.dvi): Specify
dependencies.
(standards.info ,standards.html, standards.dvi): Update dependencies.
(mostlyclean, clean): New targets.
2007-04-27 Bruno Haible <bruno@clisp.org>
* lib/sysexits_.h: Renamed from lib/sysexit_.h.
* modules/sysexits (Files, Makefile.am): Update.
* lib/sys_socket_.h: Renamed from lib/socket_.h.
* modules/sys_socket (Files, Makefile.am): Update.
* lib/sys_stat_.h: Renamed from lib/stat_.h.
* modules/sys_stat (Files, Makefile.am): Update.
2007-04-27 Eric Blake <ebb9@byu.net>
* lib/freading.h: Improve comments.
* lib/fwriting.h: Likewise.
* lib/fflush.c: Likewise.
Fix closein for mingw.
* modules/closein-tests: Add tests for closein.
* tests/test-closein.c: New file.
* tests/test-closein.sh: Likewise.
* lib/unistd_.h [!SEEK_CUR]: Mingw also needs stdlib.h for _exit.
* lib/closein.c (close_stdin): Don't fflush non-seekable streams.
2007-04-27 Bruno Haible <bruno@clisp.org>
* lib/inttypes_.h [_DECC]: Don't use #include_next if the compiler
version is < 6.
* lib/math_.h [__DECC]: Likewise.
* lib/stdio_.h [__DECC]: Likewise.
* lib/stdlib_.h [__DECC]: Likewise.
* lib/string_.h [__DECC]: Likewise.
* lib/time_.h [__DECC]: Likewise.
* lib/wchar_.h [__DECC]: Likewise.
* lib/wctype_.h [__DECC]: Likewise.
2007-04-27 Bruno Haible <bruno@clisp.org>
* tests/test-fbufmode.c (main): Relax test, to avoid failure on mingw.
2007-04-27 Bruno Haible <bruno@clisp.org>
* lib/fflush.c: Add comments.
* modules/fpurge-tests (Depends-on): Add fflush.
* modules/freadable-tests (Depends-on): Likewise.
* modules/fwritable-tests (Depends-on): Likewise.
2007-04-27 Charles Wilson <libtool@cwilson.fastmail.fm>
* m4/argz.m4 (gl_FUNC_ARGZ): Use !HAVE_WORKING_ARGZ instead of
SYSTEM_ARGZ_IS_BROKEN. Also, minor stylistic improvements.
Report by Bruno Haible <bruno@clisp.org>.
2007-04-26 Eric Blake <ebb9@byu.net>
Fix fflush on mingw.
* modules/fflush (Depends-on): Add freading.
* lib/fflush.c (rpl_fflush): Use freading to avoid losing buffered
but unread data.
2007-04-26 Eric Blake <ebb9@byu.net>
and Bruno Haible <bruno@clisp.org>
Implement freading and fwriting.
* lib/freading.c: New file.
* lib/freading.h: Likewise.
* m4/freading.m4: Likewise.
* modules/freading: Likewise.
* modules/freading-tests: Likewise.
* tests/test-freading.c: Likewise.
* lib/fwriting.c: New file.
* lib/fwriting.h: Likewise.
* m4/fwriting.m4: Likewise.
* modules/fwriting: Likewise.
* modules/fwriting-tests: Likewise.
* tests/test-fwriting.c: Likewise.
* MODULES.html.sh (File stream based Input/Output): Mention them.
2007-04-26 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (fseeko, ftello): Check that off_t has the same size as
'long' when we assume it.
Suggested by Eric Blake.
2007-04-26 Bruno Haible <bruno@clisp.org>
Ensure fseeko, ftello are declared on glibc systems.
* modules/fflush (configure.ac-early): Require AC_FUNC_FSEEKO.
* modules/fseeko (configure.ac-early): Likewise.
* modules/ftello (configure.ac-early): Likewise.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Don't define HAVE_FSEEKO, rely on
AC_FUNC_FSEEKO for this.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Inline gl_CHECK_FSEEKO.
(gl_CHECK_FSEEKO): Remove macro.
2007-04-26 Bruno Haible <bruno@clisp.org>
* tests/test-fflush.c (main): Also check the ftell result after
fflush and fseek/fseeko.
* lib/fflush.c (rpl_fflush): For BSD implementations, update the
file descriptor position cache in the stream.
* lib/fseeko.c (rpl_fseeko): Likewise.
2007-04-26 Bruno Haible <bruno@clisp.org>
* modules/fflush-tests (Depends-on): Add fseeko.
2007-04-25 Charles Wilson <libtool@cwilson.fastmail.fm>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/argz_.h: ensure error_t definition is obtained in same
mechanism system argz.h would have.
* m4/argz.m4 (gl_FUNC_ARGZ): add new test to check if $host's
argz facilities are known bad. Err on the side of caution if
cross-compiling.
2007-04-25 Eric Blake <ebb9@byu.net>
* lib/fpurge.c (includes): Use stdlib.h for free.
* tests/test-fflush.c (main): Also test fflush-fseeko.
2007-04-25 Bruno Haible <bruno@clisp.org>
Make fflush+fseek POSIX-compliant on FreeBSD and MacOS X.
* lib/fseeko.c: New file.
* lib/stdio_.h: Include <sys/types.h> when off_t is needed.
(fseeko, fseek): Define to replacements if REPLACE_FFLUSH.
* m4/fseeko.m4 (gl_CHECK_FSEEKO): New macro, extracted from
gl_FUNC_FSEEKO.
(gl_FUNC_FSEEKO): Invoke it.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Arrange to compile fseeko.c. Invoke
gl_CHECK_FSEEKO. Define HAVE_FSEEKO.
* modules/fflush (Files): Add lib/fseeko.c, m4/fseeko.m4.
2007-04-25 Bruno Haible <bruno@clisp.org>
* modules/fflush (Depends-on): Add ftello.
2007-04-25 Bruno Haible <bruno@clisp.org>
* modules/ftello-tests: New file.
* tests/test-ftello.c: New file.
* modules/ftello: New file.
* m4/ftello.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FTELLO,
HAVE_FTELLO.
* lib/stdio_.h (ftello): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_FTELLO,
HAVE_FTELLO.
2007-04-25 Bruno Haible <bruno@clisp.org>
* modules/fseeko-tests: New file.
* tests/test-fseeko.c: New file.
* modules/fseeko: New file.
* m4/fseeko.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FSEEKO,
HAVE_FSEEKO.
* lib/stdio_.h (fseeko): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_FSEEKO,
HAVE_FSEEKO.
2007-04-25 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (fflush): Add support for GNULIB_POSIXCHECK.
2007-04-25 Bruno Haible <bruno@clisp.org>
* lib/unistd_.h: Include <stdio.h> if needed to get the SEEK_* macros.
* tests/test-stdio.c: Check that the various SEEK_* macros are defined.
* tests/test-unistd.c: Likewise.
* tests/test-fcntl.c: Likewise.
2007-04-23 Eric Blake <ebb9@byu.net>
* lib/fflush.c: Fix missing include.
Reported by Bruno Haible.
2007-04-23 Bruno Haible <bruno@clisp.org>
* lib/fpurge.c (fpurge) [glibc, BSD]: Free a malloc()ed ungetc buffer.
Reported by Eric Blake.
2007-04-23 Bruno Haible <bruno@clisp.org>
* lib/fbufmode.c (fbufmode): Port to Solaris/SPARC64.
2007-04-23 Bruno Haible <bruno@clisp.org>
* lib/fseterr.c (fseterr): Don't hardcode the value of _IOERR.
2007-04-23 Bruno Haible <bruno@clisp.org>
* tests/test-fbufmode.c (main): Be prepared to a failure of setvbuf.
Needed on HP-UX 11.
2007-04-16 Eric Blake <ebb9@byu.net>
Make fflush rely on fpurge.
* lib/fflush.c (rpl_fflush): Rely on fpurge module, rather than
open coding all variants.
* modules/fflush (Depends-on): Add fpurge and unistd.
* modules/fflush-tests (Depends-on): Unistd is no longer extra.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Simplify.
Fix --with-tests compilation on cygwin.
* modules/argmatch-tests (Makefile.am): List gnulib library first
in LDADD.
* modules/argp-tests (Makefile.am): Likewise.
* modules/array-list-tests (Makefile.am): Likewise.
* modules/array-oset-tests (Makefile.am): Likewise.
* modules/avltree-list-tests (Makefile.am): Likewise.
* modules/avltree-oset-tests (Makefile.am): Likewise.
* modules/avltreehash-list-tests (Makefile.am): Likewise.
* modules/carray-list-tests (Makefile.am): Likewise.
* modules/dirname-tests (Makefile.am): Likewise.
* modules/frexp-tests (Makefile.am): Likewise.
* modules/isnanl-tests (Makefile.am): Likewise.
* modules/linked-list-tests (Makefile.am): Likewise.
* modules/linkedhash-list-tests (Makefile.am): Likewise.
* modules/lock-tests (Makefile.am): Likewise.
* modules/rbtree-list-tests (Makefile.am): Likewise.
* modules/rbtree-oset-tests (Makefile.am): Likewise.
* modules/rbtreehash-list-tests (Makefile.am): Likewise.
* modules/tls-tests (Makefile.am): Likewise.
* modules/tsearch-tests (Makefile.am): Likewise.
* modules/xvasprintf-tests (Makefile.am): Likewise.
Fix fpurge for cygwin.
* lib/fpurge.c (fpurge): Fix order of operation flub, and return a
value.
* modules/fpurge-tests (Depends-on): Clean up trash.
2007-04-16 Simon Josefsson <simon@josefsson.org>
* lib/gc-libgcrypt.c (gc_hash_open): Shut up compiler warnings.
* m4/autobuild.m4: Re-indent.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/fpurge-tests: New file.
* tests/test-fpurge.c: New file.
* modules/fpurge: New file.
* lib/fpurge.h: New file.
* lib/fpurge.c: New file.
* m4/fpurge.m4: New file.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/fbufmode-tests: New file.
* tests/test-fbufmode.c: New file.
* modules/fbufmode: New file.
* lib/fbufmode.h: New file.
* lib/fbufmode.c: New file.
* m4/fbufmode.m4: New file.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/fwritable-tests: New file.
* tests/test-fwritable.c: New file.
* modules/fwritable: New file.
* lib/fwritable.h: New file.
* lib/fwritable.c: New file.
* m4/fwritable.m4: New file.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/freadable-tests: New file.
* tests/test-freadable.c: New file.
* modules/freadable: New file.
* lib/freadable.h: New file.
* lib/freadable.c: New file.
* m4/freadable.m4: New file.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/fflush-tests (Makefile.am): Remove EXTRA_DIST. Augment
MOSTLYCLEANFILES.
2007-04-13 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/bootstrap (gnulib_tool_option_extras): New var, used by
gzip bootstrap.conf to avoid dragging in i18n machinery.
(gnulib_tool_option): Use it.
2007-04-13 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Add tests for %f and
%F directives.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.h (test_function): Likewise.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.out: Likewise.
2007-04-13 Bruno Haible <bruno@clisp.org>
* modules/lock-tests (configure.ac): For LIBSCHED, try also -lposix4.
* modules/tls-tests (configure.ac): Likewise.
Reported by Arto C. Nirkko <anirkko@insel.ch>.
2007-04-13 Bruno Haible <bruno@clisp.org>
* lib/tls.c (glthread_tls_get): Fix return type.
Patch by Arto C. Nirkko <anirkko@insel.ch>.
2007-04-12 Eric Blake <ebb9@byu.net>
* modules/gettime (Depends-on): Remove gettime.
Reported by Dmitry V. Levin.
2007-04-12 Bruno Haible <bruno@clisp.org>
* modules/fflush (Include): Mention <stdio.h>.
* modules/strtoimax (Include): Mention <inttypes.h>.
* modules/strtoumax (Include): Likewise.
2007-04-12 Eric Blake <ebb9@byu.net>
* .cvsignore: New file.
* .gitignore: Likewise.
2007-04-12 Bruno Haible <bruno@clisp.org>
* modules/iconv-tests (test_iconv_LDADD): Mention -liconv after LDADD,
not before, since $(LDADD) often contains libgnu.a.
* modules/striconv-tests (test_striconv_LDADD): Likewise.
* modules/striconveh-tests (test_striconveh_LDADD): Likewise.
* modules/striconveha-tests (test_striconveha_LDADD): Likewise.
Needed on Cygwin.
2007-04-12 Eric Blake <ebb9@byu.net>
Work around glibc's failure to flush stdin on fclose.
* lib/closein.c (close_stdin): Flush stdin before closing.
Work around glibc's failure to reset seekable stdin on exit.
* modules/closein: New module.
* lib/closein.c: New file.
* lib/closein.h: Likewise.
* m4/closein.m4: Likewise.
* MODULES.html.sh (File stream based Input/Output): Document it.
2007-04-12 Simon Josefsson <simon@josefsson.org>
* gnulib-tool: Rename generated 'autobuild' script to
'do-autobuild' in --create-megatestdir output.
* doc/gnulib.texi (Build robot for gnulib): Fix.
2007-04-12 Simon Josefsson <simon@josefsson.org>
* modules/sysexits (Depends-on): Add absolute-header.
2007-04-12 Eric Blake <ebb9@byu.net>
No need to preserve errno on success.
* lib/fflush.c (rpl_fflush): Simplify errno tracking.
Reported by Bruno Haible.
2007-04-12 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh (Support for maintaining and releasing
projects): Add autobuild. Suggested by Eric Blake <ebb9@byu.net>.
2007-04-12 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_modules_add_dummy): Respect --avoid=dummy.
2007-04-12 Simon Josefsson <simon@josefsson.org>
* modules/autobuild: New module.
* m4/autobuild.m4: New file.
2007-04-11 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Implement the %F directive using the
%f directive, if NEED_PRINTF_DIRECTIVE_F is defined.
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_F): New macro.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_F): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Invoke
gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke
gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement.
Reported by Eric Blake.
2007-04-11 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Fix test. It always failed.
2007-04-10 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Add a test for correct result
for NaN and Infinity. Needed on FreeBSD 6.1.
* tests/test-vasnprintf-posix.c (test_function): Undo last change
regarding results for "%010a" of Infinity and NaN.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.h (test_function): Likewise.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.out: Likewise.
2007-04-10 Bruno Haible <bruno@clisp.org>
* modules/locale-tests: New file.
* tests/test-locale.c: New file.
* modules/locale: New file.
* lib/locale_.h: New file.
* m4/locale_h.m4: New file.
2007-04-10 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* m4/signbit.m4 (gl_SIGNBIT): When the sign bit position could not
be determined, test for availability of the copysignf, copysign,
copysignl functions.
* lib/signbitf.c (gl_signbitf): Use copysignf if available in libc.
* lib/signbitd.c (gl_signbitd): Use copysign if available in libc.
* lib/signbitl.c (gl_signbitl): Use copysignl if available in libc.
2007-04-09 Eric Blake <ebb9@byu.net>
* lib/stdio_.h [REPLACE_FFLUSH]: Declare rpl_fflush.
* modules/stdio (Makefile.am): Support fflush.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* modules/fflush: New file.
* lib/fflush.c: Likewise.
* m4/fflush.m4: Likewise.
* modules/fflush-tests: New test.
* tests/test-fflush.c: Likewise.
* MODULES.html.sh (Input/output <stdio.h>): Document new module.
2007-04-06 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c: Include <math.h>. Don't include float+.h.
(VASNPRINTF): Use signbit for faster determination whether to print a
minus sign.
* modules/vasnprintf (Files): Remove lib/float+.h.
* modules/fprintf-posix (Depends-on): Add signbit.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
2007-04-06 Bruno Haible <bruno@clisp.org>
* tests/test-frexp.c (main): Test also the sign bit of zero results.
* tests/test-frexpl.c (main): Likewise.
* tests/test-ldexpl.c (main): Likewise.
* modules/frexp-tests (Depends-on): Add signbit.
* modules/frexpl-tests (Depdends-on): Likewise.
* modules/ldexpl-tests (Depdends-on): Likewise.
2007-04-06 Bruno Haible <bruno@clisp.org>
* modules/signbit-tests: New file.
* tests/test-signbit.c: New file.
* modules/signbit: New file.
* lib/signbitf.c: New file.
* lib/signbitd.c: New file.
* lib/signbitl.c: New file.
* m4/signbit.m4: New file.
* lib/math_.h (gl_signbitf, gl_signbitd, gl_signbitl): New declarations.
(signbit): New macro.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_SIGNBIT and
REPLACE_SIGNBIT.
* modules/math (Makefile.am): Substitute also GNULIB_SIGNBIT and
REPLACE_FREXPL into math.h.
2007-04-06 Bruno Haible <bruno@clisp.org>
* modules/isnanf-nolibm-tests: New file.
* tests/test-isnanf.c: New file.
* modules/isnanf-nolibm: New file.
* lib/isnanf.h: New file.
* lib/isnanf.c: New file.
* lib/isnan.c: Consider the USE_FLOAT macro.
* m4/isnanf.m4: New file.
2007-04-06 Bruno Haible <bruno@clisp.org>
* modules/gettext-h (configure.ac): AC_SUBST LIBINTL and LTLIBINTL.
(Link): New section.
* modules/canonicalize-lgpl-tests (Makefile.am): Undo last change.
2007-04-06 Bruno Haible <bruno@clisp.org>
Assume the 'long double' type.
* m4/longdouble.m4: Remove file.
* config/srclist.txt: Don't mention longdouble.m4.
* lib/allocsa.h: Assume HAVE_LONG_DOUBLE to be true.
* lib/float+.h: Likewise.
* lib/frexp.c: Likewise.
* lib/printf-args.h: Likewise.
* lib/printf-args.c: Likewise.
* lib/printf-frexp.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/vasnprintf.c: Likewise.
* m4/allocsa.m4: Remove gt_TYPE_LONGDOUBLE invocation.
* m4/intl.m4: Likewise.
* m4/isnanl.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/printf-frexpl.m4: Likewise.
* m4/vasnprintf.m4: Likewise.
* modules/allocsa (Files): Remove m4/longdouble.m4.
* modules/gettext (Files): Likewise.
* modules/relocatable-prog-wrapper (Files): Likewise.
* modules/vasnprintf (Files): Likewise.
* modules/isnanl (Files): Likewise.
(Include): Simplify.
* modules/isnanl-nolibm (Files): Remove m4/longdouble.m4.
(Include): Simplify.
* modules/printf-frexpl (Files): Remove m4/longdouble.m4.
(Include): Simplify.
* modules/snprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* modules/sprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* modules/vasnprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* modules/vasprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* modules/vsnprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* modules/vsprintf-posix-tests (Files): Remove m4/longdouble.m4.
(configure.ac): Remove gt_TYPE_LONGDOUBLE invocation.
* tests/test-isnanl-nolibm.c: Assume HAVE_LONG_DOUBLE to be true.
* tests/test-isnanl.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasnprintf-posix2.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
2007-04-06 Bruno Haible <bruno@clisp.org>
Fix problem with Compaq (ex-DEC) Desktop C compiler on Tru64.
* lib/math_.h [__DECC]: Include the overridden include file through
#include_next, outside the double-inclusion guard.
* lib/stdio_.h [__DECC]: Likewise.
* lib/stdlib_.h [__DECC]: Likewise.
* lib/string_.h [__DECC]: Likewise.
* lib/time_.h [__DECC]: Likewise.
* lib/wchar_.h [__DECC]: Likewise.
* lib/wctype_.h [__DECC]: Likewise.
* lib/inttypes_.h [__DECC]: Likewise.
Reported by Albert Chin <china@thewrittenword.com> in
<http://lists.gnu.org/r/bug-gnulib/2007-04/msg00088.html>.
2007-04-04 Eric Blake <ebb9@byu.net>
* m4/stdint.m4 (gl_STDINT_H): Detect WINT_MAX bug in cygwin
1.5.x.
2007-04-04 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Add a test for correct
rounding. Don't assume that FreeBSD 6 and NetBSD 4 pass this test.
2007-04-04 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix.c (test_function): Allow two possible
results for "%010a" of Infinity and NaN.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.h (test_function): Remove these tests.
* tests/test-printf-posix.h (test_function): Likewise.
* tests/test-fprintf-posix.out: Update.
Needed for FreeBSD 6.1.
2007-04-04 Bruno Haible <bruno@clisp.org>
* DEPENDENCIES: Remove mentions of tar and gzip, since they are not
directly used by the gnulib modules nor by gnulib-tool.
2007-04-04 Paul Eggert <eggert@cs.ucla.edu>
* DEPENDENCIES: Give overall description of version dependency
desirability. Use more-typical names for apps.
Add shell, coreutils, diffutils, grep, tar, gzip.
2007-04-04 Simon Josefsson <simon@josefsson.org>
* MODULES.html.sh: Rename crypto modules. Remove iconvme.
2007-04-04 Karl Berry <karl@gnu.org>
* MODULES.html.sh (func_module): missing '.
2007-04-03 Bruno Haible <bruno@clisp.org>
* modules/argmatch-tests (Makefile.am): New variable
test_argmatch_LDADD.
* modules/argp-tests (Makefile.am): New variable test_argp_LDADD.
* modules/array-list-tests (Makefile.am): New variable
test_array_list_LDADD.
* modules/array-oset-tests (Makefile.am): New variable
test_array_oset_LDADD.
* modules/avltree-list-tests (Makefile.am): New variable
test_avltree_list_LDADD.
* modules/avltree-oset-tests (Makefile.am): New variable
test_avltree_oset_LDADD.
* modules/avltreehash-list-tests (Makefile.am): New variable
test_avltreehash_list_LDADD.
* modules/canonicalize-lgpl-tests (Makefile.am): New variable
test_canonicalize_lgpl_LDADD.
* modules/carray-list-tests (Makefile.am): New variable
test_carray_list_LDADD.
* modules/dirname-tests (Makefile.am): New variable
test_dirname_LDADD.
* modules/linked-list-tests (Makefile.am): New variable
test_linked_list_LDADD.
* modules/linkedhash-list-tests (Makefile.am): New variable
test_linkedhash_list_LDADD.
* modules/rbtree-list-tests (Makefile.am): New variable
test_rbtree_list_LDADD.
* modules/rbtree-oset-tests (Makefile.am): New variable
test_rbtree_oset_LDADD.
* modules/rbtreehash-list-tests (Makefile.am): New variable
test_rbtreehash_list_LDADD.
* modules/xvasprintf-tests (Makefile.am): New variable
test_xvasprintf_LDADD.
Reported by Eric Blake.
2007-04-03 Eric Blake <ebb9@byu.net>
* DEPENDENCIES: Weaken m4 requirements.
2007-04-03 Bruno Haible <bruno@clisp.org>
* modules/frexp-tests (configure.ac): Remove AC_SUBST.
* modules/isnanl-tests (configure.ac): Likewise.
2007-04-03 Ben Pfaff <blp@gnu.org>
* modules/iconv_open: Add $(srcdir)/ to source directory
references in Makefile fragments that call gperf, to fix VPATH
builds.
2007-04-03 Bruno Haible <bruno@clisp.org>
* modules/ldexpl (Depends-on): Add isnanl, remove isnanl-nolibm.
* lib/ldexpl.c: Undo last change.
2007-04-03 Bruno Haible <bruno@clisp.org>
* modules/printf-frexpl (Depends-on): Undo last change.
(Files): Add m4/ldexpl.m4.
2007-04-03 Bruno Haible <bruno@clisp.org>
* m4/isnanl.m4 (gl_FUNC_ISNANL): Substitute ISNANL_LIBM.
* modules/isnanl (Link): New section.
* m4/frexp.m4 (gl_FUNC_FREXP): Substitute FREXP_LIBM.
* modules/frexp (Link): New section.
* m4/frexpl.m4 (gl_FUNC_FREXPL): Substitute FREXPL_LIBM.
* modules/frexpl (Link): New section.
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Substitute LDEXPL_LIBM.
* modules/ldexpl (Link): New section.
2007-04-03 Bruno Haible <bruno@clisp.org>
* modules/TEMPLATE-EXTENDED: New file.
* gnulib-tool (func_all_modules, func_verify_module): Exclude it.
2007-04-03 Bruno Haible <bruno@clisp.org>
* DEPENDENCIES: New file.
Suggested by Simon Josefsson.
2007-04-03 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Escape @.
2007-04-03 James Youngman <jay@gnu.org>
and Paul Eggert <eggert@cs.ucla.edu>
* lib/stat-time.h (get_stat_birthtime): Check for zero-valued
birthtime on all systems that have birthtime, not just those which
use st_birthtimensec rather than st_birthtim. Putting zero in
st_birthtim.tv_sec is how (for example) FreeBSD/x86 6.1 indicates
that the birth time is not available for files on an NFS mount.
2007-04-03 Simon Josefsson <simon@josefsson.org>
* modules/memxor: Move back from crypto/, suggested by Bruno.
* modules/crypto/hmac-sha1: Fix memxor dependency.
* modules/crypto/gc: Moved from ../.
2007-04-02 Eric Blake <ebb9@byu.net>
* lib/ldexpl.c (includes): Avoid libm.
* modules/printf-frexpl (Depends-on): Depend on ldexpl.
2007-04-02 Bruno Haible <bruno@clisp.org>
* lib/sysexit_.h (EX_OK): Disable the EX_OK definition from <unistd.h>
on IRIX.
2007-04-02 Bruno Haible <bruno@clisp.org>
* m4/intdiv0.m4 (gt_INTDIV0): Avoid performing the test for real on
x86 or x86_64 platforms running MacOS X.
Reported by Ryan Schmidt <@ryandesign.com>.
2007-04-02 Bruno Haible <bruno@clisp.org>
* m4/intdiv0.m4 (gt_INTDIV0): When cross-compiling, treat x86_64 like
i386.
2007-04-01 Simon Josefsson <simon@josefsson.org>
* modules/crypto/arcfour: Moved from ../.
* modules/crypto/arcfour-tests: Moved from ../.
* modules/crypto/arctwo: Moved from ../.
* modules/crypto/arctwo-tests: Moved from ../.
* modules/crypto/des: Moved from ../.
* modules/crypto/des-tests: Moved from ../.
* modules/crypto/gc-arcfour: Moved from ../.
* modules/crypto/gc-arcfour-tests: Moved from ../.
* modules/crypto/gc-arctwo: Moved from ../.
* modules/crypto/gc-arctwo-tests: Moved from ../.
* modules/crypto/gc-des: Moved from ../.
* modules/crypto/gc-des-tests: Moved from ../.
* modules/crypto/gc-hmac-md5: Moved from ../.
* modules/crypto/gc-hmac-md5-tests: Moved from ../.
* modules/crypto/gc-hmac-sha1: Moved from ../.
* modules/crypto/gc-hmac-sha1-tests: Moved from ../.
* modules/crypto/gc-md2: Moved from ../.
* modules/crypto/gc-md2-tests: Moved from ../.
* modules/crypto/gc-md4: Moved from ../.
* modules/crypto/gc-md4-tests: Moved from ../.
* modules/crypto/gc-md5: Moved from ../.
* modules/crypto/gc-md5-tests: Moved from ../.
* modules/crypto/gc-pbkdf2-sha1: Moved from ../.
* modules/crypto/gc-pbkdf2-sha1-tests: Moved from ../.
* modules/crypto/gc-random: Moved from ../.
* modules/crypto/gc-rijndael: Moved from ../.
* modules/crypto/gc-rijndael-tests: Moved from ../.
* modules/crypto/gc-sha1: Moved from ../.
* modules/crypto/gc-sha1-tests: Moved from ../.
* modules/crypto/gc-tests: Moved from ../.
* modules/crypto/hmac-md5: Moved from ../.
* modules/crypto/hmac-md5-tests: Moved from ../.
* modules/crypto/hmac-sha1: Moved from ../.
* modules/crypto/hmac-sha1-tests: Moved from ../.
* modules/crypto/md2: Moved from ../.
* modules/crypto/md2-tests: Moved from ../.
* modules/crypto/md4: Moved from ../.
* modules/crypto/md4-tests: Moved from ../.
* modules/crypto/md5: Moved from ../.
* modules/crypto/md5-tests: Moved from ../.
* modules/crypto/memxor: Moved from ../.
* modules/crypto/rijndael: Moved from ../.
* modules/crypto/rijndael-tests: Moved from ../.
* modules/crypto/sha1: Moved from ../.
2007-03-30 James Youngman <jay@gnu.org>
* tests/test-stat-time.c (prepare_test): use chmod() rather than
rename() to change the ctime of a file (because ctime is unaffected
by rename on jfs2 on AIX 5.1).
(main): Start by doing cleanup, in case a previous run failed leaving
test files behind.
2007-03-31 Bruno Haible <bruno@clisp.org>
Support old proprietary implementations of iconv.
* modules/iconv_open: New file.
* lib/iconv_.h: New file.
* m4/iconv_h.m4: New file.
* lib/iconv_open.c: New file.
* lib/iconv_open-aix.gperf: New file.
* lib/iconv_open-hpux.gperf: New file.
* lib/iconv_open-irix.gperf: New file.
* lib/iconv_open-osf.gperf: New file.
* m4/iconv_open.m4: New file.
* modules/linebreak (Depends-on): Add iconv_open.
* modules/striconv (Depends-on): Likewise.
* modules/striconveh (Depends-on): Likewise.
* modules/unicodeio (Depends-on): Likewise.
* lib/striconveh.h (mem_cd_iconveh, str_cd_iconveh): Allow cd to be
(iconv_t)(-1).
* lib/striconveh.c (mem_cd_iconveh_internal): Use an indirect
conversion if cd is (iconv_t)(-1).
(mem_iconveh, str_iconveh): Don't fail just because a direct conversion
is not possible.
2007-03-31 Bruno Haible <bruno@clisp.org>
* tests/test-striconveha.c (main): Don't expect "autodetect_jp" to
work on Solaris either. Protect also second use of "autodetect_jp".
2007-03-31 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL): Set HAVE_DECL_FREXPL to 0 when
the function is not present.
2007-03-31 Bruno Haible <bruno@clisp.org>
* m4/ldexpl.m4 (gl_FUNC_LDEXPL): Set HAVE_DECL_LDEXPL to 0 when
the function is not present.
2007-03-31 Bruno Haible <bruno@clisp.org>
* m4/iconv.m4 (AM_ICONV_LINK): Fix 2007-03-29 patch. Test also against
a bug in HP-UX iconv_open().
2007-03-31 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_module): Don't show gnulib-common.m4.
(Mathematics <math.h>): New section, add fpieee.
(Input/output <stdio.h>): Add fseterr.
(Mathematics <math.h>): New section, add printf-frexp.
(Container data structures): Add sublist.
(Core language properties): Add fpucw, inline.
(Functions for greatest-width integer types <inttypes.h>): Add
imaxabs, imaxdiv, inttypes.
(Mathematics <math.h>): Add frexp, frexpl, isnan-nolibm, isnanl,
isnanl-nolibm, ldexp.
(Mathematics <math.h>): New section, add printf-frexpl.
(Support for systems lacking POSIX:2001): Add fprintf-posix,
printf-posix, snprintf-posix, sprintf-posix, string, search, socklen,
sys_select, sys_socket, vasnprintf-posix, vasprintf-posix,
vfprintf-posix, vprintf-posix, vsnprintf-posix, vsprintf-posix.
(Unicode string functions): Add unistr/u*-mbtoucr.
(Java): Add javacomp-script, javaexec-script.
(C#): Add csharpcomp-script, csharpexec-script.
(Support for building libraries and executables): Add havelib,
relocatable-*.
(Support for maintaining and releasing projects): Renamed from
'Support for maintaining and release projects'. Add announce-gen.
2007-03-31 Bruno Haible <bruno@clisp.org>
* README: Talk primarily about git.
(git and CVS): Renamed from CVS.
* doc/gnulib.texi (Introduction, Build robot for gnulib): Mention that
gnulib is available through git.
* doc/gnulib-tool.texi (CVS Issues): Mention git and svn as well.
2007-03-30 Bruno Haible <bruno@clisp.org>
* lib/alloca_.h: Change prefix of double-inclusion guard macro to _GL_.
* lib/poll_.h: Likewise.
* lib/stat_.h: Likewise.
* lib/sys_time_.h: Likewise.
* lib/sysexit_.h: Likewise.
* lib/glob_.h: Prefix double-inclusion guard macro with _GL_.
* lib/stdbool_.h: Likewise.
* lib/byteswap_.h: Add double-inclusion guard.
2007-03-30 Sergey Poznyakoff <gray@mirddin.farlep.net>
* lib/sysexit_.h: Prefix double-inclusion guard macro with _GNULIB.
2007-03-30 Karl Berry <karl@gnu.org>
* config/srclist-update: double space after USA in the license
substitution, since that's how it's usually (?) written.
2007-03-30 Paul Eggert <eggert@cs.ucla.edu>
* lib/write-any-file.c (can_write_any_file): Fix else-else bug
reported by Bruno Haible.
2007-03-29 Bruno Haible <bruno@clisp.org>
* m4/iconv.m4 (AM_ICONV_LINK): Require AC_CANONICAL_HOST. Test against
a bug in AIX iconv().
2007-03-29 Bruno Haible <bruno@clisp.org>
* modules/ldexpl-tests: New file.
* tests/test-ldexpl.c: New file.
2007-03-29 Bruno Haible <bruno@clisp.org>
* lib/ldexpl.c: Include fpucw.h.
(ldexpl): Use BEGIN/END_LONG_DOUBLE_ROUNDING. Skip the last unneeded
multiplication.
* modules/ldexpl (Depends-on): Add fpucw.
2007-03-29 Bruno Haible <bruno@clisp.org>
* modules/ldexpl: New file.
* m4/ldexpl.m4: New file.
* lib/math_.h (ldexpl): Define to a replacement if REPLACE_LDEXPL is
set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize also GNULIB_LDEXPL,
REPLACE_LDEXPL.
* modules/math (Makefile.am): Substitute also GNULIB_LDEXPL,
REPLACE_LDEXPL.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke
gl_FUNC_LDEXPL_WORKS.
* m4/mathl.m4 (gl_FUNC_LONG_DOUBLE_MATH): Remove test for ldexpl.
* modules/mathl (Files): Remove lib/ldexpl.c.
(Depends-on): Add ldexpl.
2007-03-29 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Declare frexpl.
2007-03-29 Bruno Haible <bruno@clisp.org>
* tests/test-striconveh.c (main): Don't assume that a direct conversion
between ISO-8859-1 and ISO-8859-2 is possible. Needed for OSF/1, IRIX
and possibly also HP-UX.
* tests/test-striconveha.c (main): Don't expect "autodetect_jp" to
work on AIX, IRIX, HP-UX, OSF/1.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
2007-03-29 Bruno Haible <bruno@clisp.org>
* tests/test-stat-time.c: Include <fcntl.h>, not <sys/fcntl.h>.
2007-03-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/acl-internal.h (acl_get_fd, acl_set_fd): undef before defining,
to work around a problem on OSF/1 5.1 reported by Bruno Haible.
2007-03-29 Eric Blake <ebb9@byu.net>
* lib/acl-internal.h: Remove redundant include.
(ACL_NOT_WELL_SUPPORTED): Also filter on EBUSY, returned by
Cygwin when a file is locked.
2007-03-29 Bruno Haible <bruno@clisp.org>
* lib/vasprintf.c [IN_LIBASPRINTF]: Include different specification
file.
* lib/asprintf.c [IN_LIBASPRINTF]: Likewise.
2007-03-29 Paul Eggert <eggert@cs.ucla.edu>
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Don't bother to
try to remove a parent directory if the child couldn't be removed
(except for the first rmdir, which could fail because the child
doesn't exist). Problem reported by Jeff Blaine in
<http://lists.gnu.org/r/bug-tar/2007-03/msg00014.html>.
2007-03-28 Bruno Haible <bruno@clisp.org>
* lib/striconveh.c (utf8conv_carefully): New function.
(mem_cd_iconveh_internal): Invoke it.
2007-03-28 Bruno Haible <bruno@clisp.org>
* lib/striconveh.c (mem_cd_iconveh_internal): Use u8_mbtoucr instead
of u8_mbtouc in order to distinguish invalid and incomplete UTF-8
input.
* modules/striconveh (Depends-on): Add unistr/u8-mbtoucr. Replace
utf8-ucs4 with unistr/u8-mbtouc. Replace ucs4-utf8 with
unistr/u8-uctomb.
2007-03-28 Bruno Haible <bruno@clisp.org>
* modules/unistr/u8-mbtoucr: New file.
* lib/unistr/u8-mbtoucr.c: New file.
* modules/unistr/u16-mbtoucr: New file.
* lib/unistr/u16-mbtoucr.c: New file.
* modules/unistr/u16-mbtoucr: New file.
* lib/unistr/u16-mbtoucr.c: New file.
* lib/unistr.h (u8_mbtoucr, u16_mbtoucr, u32_mbtoucr): New declarations.
2007-03-27 Simon Josefsson <simon@josefsson.org>
Bruno Haible <bruno@clisp.org>
* m4/vasprintf.m4: Convert AC_SUBST into shell variable for
REPLACE_VASPRINTF. Set HAVE_VASPRINTF. Add
AC_REQUIRE([gl_STDIO_H_DEFAULTS]).
* m4/stdio_h.m4: Add stubs for vasprintf too.
* modules/stdio: Support vasprintf in sed command.
* modules/vasprintf: Depend on stdio for prototypes. Remove
vasprintf.h. Add stdio module indicator.
* lib/stdio_.h: Declare asprintf and vasprintf, based on
vasprintf.h.
* lib/vasprintf.h: File removed.
* lib/asprintf.c: Use stdio.h instead of vasprintf.h.
* lib/vasprintf.c: Ditto.
* lib/xvasprintf.c: Ditto.
* tests/test-vasprintf-posix.c: Ditto.
* tests/test-vasprintf.c: Ditto.
2007-03-27 Bruno Haible <bruno@clisp.org>
Make vasnprintf multithread-safe.
* lib/vasnprintf.c (decimal_point_char): New function.
(VASNPRINTF): Use it.
Suggested by Simon Josefsson.
2007-03-27 Eric Blake <ebb9@byu.net>
Support sub-second birthtime on cygwin.
* m4/stat-time.m4 (gl_STAT_BIRTHTIME): Also check for st_birthtim.
* lib/stat-time.h (STAT_TIMESPEC): Adjust comments.
(get_stat_birthtime): Also work with st_birthtim.
2007-03-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/stat-time.h (USE_BIRTHTIME): Remove.
(get_stat_atime_ns, get_stat_ctime_ns, get_stat_mtime_ns):
(get_stat_birthtime_ns): Do not try to use "spare" fields.
(get_stat_birthtime_ns): Simplify compile-time tests.
(get_stat_birthtime): Change the API to look like
get_stat_mtime etc., except return a negative tv_nsec on error.
* m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME):
Don't check for "spare" fields.
(gl_STAT_BIRTHTIME): Don't check for struct stat.st_birthtimespec.tv_sec
or for struct stat.st_birthtime, as these tests aren't used.
* tests/test-stat-time.c (test_birthtime): Adjust to new API.
2007-03-27 Bruno Haible <bruno@clisp.org>
* lib/stat-time.h: Include <sys/stat.h>.
2007-03-27 James Youngman <jay@gnu.org>
* lib/stat-time.h (get_stat_birthtime): New function for
retrieving st_birthtime as provided by UFS2 (hence *BSD).
* m4/stat-time.m4 (gl_STAT_BIRTHTIME): Probe for st_birthtime
and its variants.
* modules/stat-time (configure.ac): call gl_STAT_BIRTHTIME.
* modules/stat-time-test: New file.
* tests/test-stat-time.c: New test, devised by Bruno Haible.
2007-03-26 Bruno Haible <bruno@clisp.org>
Better support of signalling NaNs.
* lib/atanl.c: Include isnanl.h.
(atanl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/cosl.c: Include isnanl.h.
(cosl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/ldexpl.c: Include isnanl.h.
(ldexpl): Perform test for NaN through a call to isnanl.
* lib/logl.c: Include isnanl.h.
(logl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/sinl.c: Include isnanl.h.
(sinl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/sqrtl.c: Include isnanl.h.
(sqrtl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/tanl.c: Include isnanl.h.
(tanl): Perform test for NaN at the beginning of the function and
through a call to isnanl.
* lib/trigl.c (ieee754_rem_pio2l): Remove test for NaN.
* modules/mathl (Depends-on): Add isnanl.
2007-03-26 Eric Blake <ebb9@byu.net>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Fix
regression in logic sense of previous patch.
2007-03-26 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Don't use
unportable shell command "if ! ...".
Reported by Ralf Wildenhues.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/sysexit_,h: If HAVE_SYSEXITS_H is defined, include the original
<sysexits.h> file, and only add EX_CONFIG.
* m4/sysexits.m4 (gl_SYSEXITS): If <sysexits.h> exists, check its
absolute file name and whether it is sufficient. Substitute also
HAVE_SYSEXITS_H and ABSOLUTE_SYSEXITS_H.
* modules/sysexits (Makefile.am): Substitute HAVE_SYSEXITS_H and
ABSOLUTE_SYSEXITS_H into sysexits.h.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/getaddrinfo.c (getaddrinfo): Don't access hints->ai_flags when
hints is NULL.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Add a cast.
* lib/uniconv/u8-strconv-to-enc.c (u8_strconv_to_encoding): Likewise.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c: Include langinfo.h.
(VASNPRINTF): Prefer nl_langinfo over localeconv, since it's more
multithread-safe.
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): New macro.
* m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke it.
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX: Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
Reported by Simon Josefsson.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/printf-parse.c [!IN_LIBINTL]: Include <stdint.h>, for intmax_t.
(PRINTF_PARSE): Make the support for size specifier 'j' unconditional.
* modules/vasnprintf (Depends-on): Add stdint.
2007-03-25 Bruno Haible <bruno@clisp.org>
* modules/fpieee: New file.
* m4/fpieee.m4: New file.
* modules/isnan-nolibm (Depends-on): Add fpieee.
* modules/isnanl-nolibm (Depends-on): Add fpieee.
* modules/isnanl (Depends-on): Add fpieee.
2007-03-25 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Test also finite numbers.
2007-03-25 Bruno Haible <bruno@clisp.org>
Avoid test failures on IRIX 6.5.
* tests/test-frexpl.c (MIN_NORMAL_EXP): New macro.
(main): Use it.
* tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP): New
macros.
(main): Use them.
2007-03-25 Bruno Haible <bruno@clisp.org>
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): New macro.
(gl_FUNC_FREXPL): Invoke it. Set REPLACE_FREXPL to 1 if it frexpl
exists but doesn't work.
* lib/math_.h (frexpl): Define as a replacement macro if REPLACE_FREXPL
is set. Don't provide a prototype if REPLACE_FREXPL is not set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FREXPL.
* modules/math (Makefile.am): Substitute also REPLACE_FREXPL into
math.h.
2007-03-25 Bruno Haible <bruno@clisp.org>
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Add check whether frexp(inf)
returns inf. Needed on IRIX 6.5.
2007-03-25 Bruno Haible <bruno@clisp.org>
* tests/test-frexpl.c: Include isnanl-nolibm.h.
(main): Use isnanl instead of x != x idiom.
* modules/frexpl-tests (Depends-on): Add isnanl-nolibm.
* tests/test-frexp.c: Include isnan.h.
(main): Use isnan instead of x != x idiom.
* modules/frexp-tests (Depends-on): Add isnan-nolibm.
2007-03-25 Bruno Haible <bruno@clisp.org>
* tests/test-frexp.c (NaN): New function/macro.
(main): Use it instead of 0.0 / 0.0.
* tests/test-isnan.c (NaN): New function/macro.
(main): Use it instead of 0.0 / 0.0.
* tests/test-vasnprintf-posix.c (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* tests/test-vasprintf-posix.c (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* tests/test-snprintf-posix.h (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* tests/test-sprintf-posix.h (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* tests/test-fprintf-posix.h (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* tests/test-printf-posix.h (NaN): New function/macro.
(test_function): Use it instead of 0.0 / 0.0.
* lib/isnan.c (FUNC): Work around a DEC C compiler bug.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/glob_.h: Include <sys/stat.h>. Avoids warnings on AIX 5.1.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/regexec.c (merge_state_with_log): Make static.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/trigl.c (kernel_rem_pio2): Make static.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/sincosl.c (sincosl_table): Make static.
2007-03-25 Bruno Haible <bruno@clisp.org>
* lib/argp.h (__restrict): Define to empty, rather than to 'restrict',
if the compiler does not support C99.
2007-03-25 Bruno Haible <bruno@clisp.org>
* modules/time (Makefile.am): Ensure all rule action lines start with a
tab.
2007-03-24 Bruno Haible <bruno@clisp.org>
* modules/tsearch-tests: New file.
* tests/test-tsearch.sh: New file.
* tests/test-tsearch.c: New file, mostly copied from glibc.
* modules/search-tests: New file.
* tests/test-search.c: New file.
* modules/search: New file.
* lib/search_.h: New file, incorporating lib/tsearch.h.
* m4/search_h.m4: New file.
* lib/tsearch.h: Remove file.
* lib/tsearch.c: Include search.h instead of tsearch.h.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Require gl_SEARCH_H_DEFAULTS. Set
HAVE_TSEARCH.
* modules/tsearch (Files): Remove lib/tsearch.h.
(Depends-on): Add search.
(configure.ac): Invoke gl_SEARCH_MODULE_INDICATOR.
(Include): Change tsearch.h into search.h.
2007-03-24 Bruno Haible <bruno@clisp.org>
* modules/fpucw: New file.
* lib/fpucw.h: New file.
* lib/frexp.c: Include fpucw.h.
(DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): New macros.
(FUNC): Use them.
* lib/printf-frexp.c: Include fpucw.h.
(DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): New macros.
(FUNC): Use them.
* lib/vasnprintf.c: Include fpucw.h.
(VASNPRINTF): Invoke BEGIN/END_LONG_DOUBLE_ROUNDING around the
'long double' calculations.
* tests/test-frexpl.c: Include fpucw.h.
(main): Invoke BEGIN_LONG_DOUBLE_ROUNDING.
* tests/test-printf-frexpl.c: Include fpucw.h.
(main): Invoke BEGIN_LONG_DOUBLE_ROUNDING.
* modules/frexpl (Depends-on): Add fpucw.
* modules/printf-frexpl (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/vasnprintf-posix (Depends-on): Likewise.
* modules/vasprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/frexpl-tests (Depends-on): Likewise.
* modules/printf-frexpl-tests (Depends-on): Likewise.
2007-03-24 Bruno Haible <bruno@clisp.org>
* lib/float+.h: New file.
* lib/isnan.c: Include float+.h.
(SIZE): New macro.
(FUNC): Compare only SIZE bytes of the value.
* lib/vasnprintf.c: Include float+.h.
(VASNPRINTF): When comparing against +0.0L or +0.0, compare only
SIZEOF_LDBL or SIZEOF_DBL bytes.
* modules/isnan-nolibm (Files): Add lib/float+.h.
* modules/isnanl-nolibm (Files): Add lib/float+.h.
* modules/isnanl (Files): Add lib/float+.h.
* modules/vasnprintf (Files): Add lib/float+.h.
2007-03-24 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c [!HAVE_LONG_DOUBLE]: Include printf-frexp.h. Don't
include isnanl-nolibm.h.
2007-03-24 Bruno Haible <bruno@clisp.org>
* tests/test-read-file.c (main): Don't produce spurious output for
expected situations. Make the test fail if it encountered unexpected
results.
2007-03-24 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR): Remove the special-casing of NetBSD,
since its fr_FR.ISO8859-1 locale wouldn't pass the tests.
2007-03-24 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Fix last change.
2007-03-24 Bruno Haible <bruno@clisp.org>
* modules/unistr/base (Depends-on): Remove utf8-ucs4-unsafe,
utf16-ucs4-unsafe, utf8-ucs4, utf16-ucs4, ucs4-utf8, ucs4-utf16.
* modules/unistr/u8-mbtouc: Add source files from module utf8-ucs4.
* modules/utf8-ucs4: Turn into a symbolic link to module
unistr/u8-mbtouc.
* modules/unistr/u8-mbtouc-unsafe: Add source files from module
utf8-ucs4-unsafe.
* modules/utf8-ucs4-unsafe: Turn into a symbolic link to module
unistr/u8-mbtouc-unsafe.
* modules/unistr/u16-mbtouc: Add source files from module utf16-ucs4.
* modules/utf16-ucs4: Turn into a symbolic link to module
unistr/u16-mbtouc.
* modules/unistr/u16-mbtouc-unsafe: Add source files from module
utf16-ucs4-unsafe.
* modules/utf16-ucs4-unsafe: Turn into a symbolic link to module
unistr/u16-mbtouc-unsafe.
* modules/unistr/u8-uctomb: Add source files from module utf4-utf8.
* modules/ucs4-utf8: Turn into a symbolic link to module
unistr/u8-ubtomb.
* modules/unistr/u16-uctomb: Add source files from module utf4-utf16.
* modules/ucs4-utf16: Turn into a symbolic link to module
unistr/u16-ubtomb.
2007-03-24 Bruno Haible <bruno@clisp.org>
* lib/unistr/u8-mbtouc-aux.c: Renamed from lib/unistr/utf8-ucs4.c.
Enable the function only if HAVE_INLINE.
* lib/unistr/u8-mbtouc-unsafe-aux.c: Renamed from
lib/unistr/utf8-ucs4-unsafe.c. Enable the function only if HAVE_INLINE.
* lib/unistr/u16-mbtouc-aux.c: Renamed from lib/unistr/utf16-ucs4.c.
Enable the function only if HAVE_INLINE.
* lib/unistr/u16-mbtouc-unsafe-aux.c: Renamed from
lib/unistr/utf16-ucs4-unsafe.c. Enable the function only if HAVE_INLINE.
* lib/unistr/u8-uctomb-aux.c: Renamed from lib/unistr/ucs4-utf8.c.
Enable the function only if HAVE_INLINE.
* lib/unistr/u16-uctomb-aux.c: Renamed from lib/unistr/ucs4-utf16.c.
Enable the function only if HAVE_INLINE.
* modules/utf8-ucs4: Update.
* modules/utf8-ucs4-unsafe: Update.
* modules/utf16-ucs4: Update.
* modules/utf16-ucs4-unsafe: Update.
* modules/ucs4-utf8: Update.
* modules/ucs4-utf16: Update.
2007-03-24 Bruno Haible <bruno@clisp.org>
* lib/utf8-ucs4.h: Remove file.
* lib/utf8-ucs4-unsafe.h: Remove file.
* lib/utf16-ucs4.h: Remove file.
* lib/utf16-ucs4-unsafe.h: Remove file.
* lib/ucs4-utf8.h: Remove file.
* lib/ucs4-utf16.h: Remove file.
* lib/unistr.h: Include their previous contents.
* m4/utf-ucs4.m4: Remove file.
* m4/ucs4-utf.m4: Remove file.
* modules/utf8-ucs4 (Files): Remove lib/utf8-ucs4.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UTF_UCS4.
(Makefile.am): Update.
(Include): Change to unistr.h.
* modules/utf8-ucs4-unsafe (Files): Remove lib/utf8-ucs4-unsafe.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UTF_UCS4.
(Makefile.am): Update.
(Include): Change to unistr.h.
* modules/utf16-ucs4 (Files): Remove lib/utf16-ucs4.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UTF_UCS4.
(Makefile.am): Update.
(Include): Change to unistr.h.
* modules/utf16-ucs4-unsafe (Files): Remove lib/utf16-ucs4-unsafe.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UTF_UCS4.
(Makefile.am): Update.
(Include): Change to unistr.h.
* modules/ucs4-utf8 (Files): Remove lib/ucs4-utf8.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UCS4_UTF.
(Makefile.am): Update.
(Include): Change to unistr.h.
* modules/ucs4-utf16 (Files): Remove lib/ucs4-utf16.h.
(Depends-on): Add unistr/base.
(configure.ac): Remove gl_UCS4_UTF.
(Makefile.am): Update.
(Include): Change to unistr.h.
* lib/unistr/utf8-ucs4.c: Include unistr.h instead of utf8-ucs4.h.
* lib/unistr/utf8-ucs4-unsafe.c: Include unistr.h instead of
utf8-ucs4-unsafe.h.
* lib/unistr/utf16-ucs4.c: Include unistr.h instead of utf16-ucs4.h.
* lib/unistr/utf16-ucs4-unsafe.c: Include unistr.h instead of
utf16-ucs4-unsafe.h.
* lib/unistr/ucs4-utf8.c: Include unistr.h instead of ucs4-utf8.h.
* lib/unistr/ucs4-utf16.c: Include unistr.h instead of ucs4-utf16.h.
* lib/unistr/u8-chr.c: Don't include ucs4-utf8.h.
* lib/unistr/u8-strchr.c: Likewise.
* lib/unistr/u8-strrchr.c: Likewise.
* lib/unistr/u16-chr.c: Don't include ucs4-utf16.h.
* lib/unistr/u16-strchr.c: Likewise.
* lib/unistr/u16-strrchr.c: Likewise.
* lib/striconveh.c: Update.
* lib/linebreak.c: Update.
2007-03-24 Bruno Haible <bruno@clisp.org>
* lib/argp-help.c (fill_in_uparams, canon_doc_option): Cast the
arguments of isspace, isalpha, isalnum, isdigit to 'unsigned char'.
2007-03-22 Bruno Haible <bruno@clisp.org>
* lib/strptime.c (__strptime_internal): Use ANSI C syntax.
2007-03-23 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (File system functions): New module write-any-file.
* modules/write-any-file, lib/write-any-file.c, lib/write-any-file.h:
* m4/write-any-file.m4: New files.
2007-03-23 Eric Blake <ebb9@byu.net>
* gnulib-tool: Rearrange space-tab sequences, since some editors
like to eat them.
2007-03-23 Eric Blake <ebb9@byu.net>
* lib/version-etc.c (version_etc_va): Update license wording to
be more concise. Recommended by Richard Stallman.
2007-03-22 Bruno Haible <bruno@clisp.org>
* lib/poll.c (MSG_PEEK): New fallback definition.
2007-03-22 Bruno Haible <bruno@clisp.org>
* modules/sys_socket-tests (configure.ac): Check for shutdown function.
* tests/test-sys_socket.c (a): Test only if shutdown() exists.
(main): Update.
Fixes a compilation error on BeOS.
2007-03-22 Bruno Haible <bruno@clisp.org>
* modules/frexpl-tests: New file.
* tests/test-frexpl.c: New file.
* modules/frexpl: New file.
* m4/frexpl.m4: New file.
* modules/math (Makefile.am): Also substitute GNULIB_FREXPL into math.h.
* lib/math_.h (frexpl): Test GNULIB_FREXPL instead of GNULIB_MATHL.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FREXPL.
* modules/mathl (Files): Remove lib/frexpl.c, lib/frexp.c.
(Depends-on): Add frexpl. Remove isnanl-nolibm.
* m4/mathl.m4 (gl_FUNC_LONG_DOUBLE_MATH): Don't test for frexpl.
2007-03-22 Bruno Haible <bruno@clisp.org>
* lib/frexpl.c: Share code with lib/frexp.c.
* modules/mathl (Files): Add lib/frexp.c.
(Depends-on): Add isnanl-nolibm.
2007-03-22 Bruno Haible <bruno@clisp.org>
* modules/printf-frexp (Files): Add m4/frexp.m4.
* m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Define HAVE_FREXP_IN_LIBC
only if the found frexp function actually works.
2007-03-22 Bruno Haible <bruno@clisp.org>
* lib/frexp.c: Remove older implementation that uses divisions.
2007-03-21 Bruno Haible <bruno@clisp.org>
* modules/frexp-tests: New file.
* tests/test-frexp.c: New file.
* modules/frexp: New file.
* lib/frexp.c: New file.
* m4/frexp.m4: New file.
* lib/math_.h (frexp): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Also initialize GNULIB_FREXP and
REPLACE_FREXP.
* modules/math (math.h): Also substitute GNULIB_FREXP, REPLACE_FREXP.
2007-03-21 Bruno Haible <bruno@clisp.org>
* modules/isnanl-tests: New file.
* tests/test-isnanl.c: New file.
* modules/isnanl: New file.
* lib/isnanl.h: New file.
* m4/isnanl.m4 (gl_FUNC_ISNANL): New macro.
(gl_FUNC_ISNANL_NO_LIBM): Invoke gl_HAVE_ISNANL_NO_LIBM,
gl_FUNC_ISNANL_WORKS.
(gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM, gl_FUNC_ISNANL_WORKS):
New macros.
2007-03-21 Bruno Haible <bruno@clisp.org>
* modules/isnanl-nolibm (Files): Add lib/isnanl-nolibm.h, remove
lib/isnanl.h.
(Include): Update.
* lib/isnanl-nolibm.h: Renamed from lib/isnanl.h.
* lib/vasnprintf.c: Update.
* modules/isnanl-nolibm-tests (Files): Add tests/test-isnanl-nolibm.c,
tests/test-isnanl.h, remove tests/test-isnanl.c.
(Makefile.am): Update.
* tests/test-isnanl-nolibm.c: New file.
* tests/test-isnanl.h: New file.
* tests/test-isnanl.c: Remove file.
2007-03-21 Jim Meyering <jim@meyering.net>
When trying to open ".", treat ESTALE like EACCES.
* lib/savewd.c (savewd_save): Resort to forking not just upon
failure with EACCES, but also when errno is ESTALE.
2007-03-20 Bruno Haible <bruno@clisp.org>
* lib/string_.h (strndup): Enable declaration also if HAVE_STRNDUP.
Needed on AIX 5.1. Reported by Matthew Woehlke.
2007-03-19 Paul Eggert <eggert@cs.ucla.edu>
Suggestions by Bruno Haible:
* lib/acl-internal.h: Include "gettext.h" rather than rolling
our own.
(ACL_NOT_WELL_SUPPORTED): Parenthesize arg when used.
* modules/acl (Depends-on): Add gettext.
2007-03-19 Bruno Haible <bruno@clisp.org>
* modules/iconvme: Remove file.
* lib/iconvme.h: Remove file.
* lib/iconvme.c: Remove file.
* m4/iconvme.m4: Remove file.
2007-03-19 Bruno Haible <bruno@clisp.org>
* doc/relocatable-maint.texi: Break long shell script line.
Suggested by Thien-Thi Nguyen <ttn@gnuvola.org>.
2007-03-19 Paul Eggert <eggert@cs.ucla.edu>
Add limited support for Solaris 10 ZFS-style ACLs: just enough to
handle file_has_acl.
* lib/acl-internal.h, lib/acl_entries.c, lib/file-has-acl.c: New files.
* lib/acl.c: Move header inclusions and related macro defns into
lib/acl-internal.h.
(S_ISLNK): Remove defn, since that's now done for us.
(file_has_acl): Move to lib/file-has-acl.c.
Call acl_trivial if available. This is the crucial part of the fix.
(acl_entries): Move to lib/acl_entries.c. Now extern, since it's
shared within the library. Rewrite a bit, partly to make it compatible
with the GNU coding style.
* m4/acl.m4 (AC_FUNC_ACL): Add AC_LIBOBJ([file-has-acl]).
Remove unnecessary double-quotes.
Don't test for acl_to_text; the build will catch that.
Replace acl_entries if it doesn't exist and it is needed.
Check for -lsec and acl_trivial (as used on Solaris 10).
* modules/acl (Files): Add lib/acl-internal.h, lib/acl_entries.c,
lib/file-has-acl.c.
(Depends-on): Add sys_stat, for S_ISLNK.
2007-03-19 Ben Pfaff <blp@gnu.org>
* doc/gnulib.texi: Fix typos.
Suggested by Thien-Thi Nguyen <ttn@gnuvola.org>.
2007-03-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.c (__getcwd): Remove redundant comparison of buf to NULL.
If size is zero here, buf must be zero.
2007-03-19 Simon Josefsson <simon@josefsson.org>
* des.c: Remove weak_keys_chksum. Reported by Bruno Haible
<bruno@clisp.org>.
2007-03-18 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Undo first part of last patch.
Suggested by Eric Blake.
2007-03-18 Ben Pfaff <blp@gnu.org>
* doc/relocatable.texi: Recommend using as prefix a directory
that does not exist and will never be created. Based on
discussion with Bruno Haible, Ralf Wildenhues, Matthew Woehlke,
and others.
2007-03-17 Bruno Haible <bruno@clisp.org>
* lib/fchownat.c: Include lchown.h.
2007-03-17 Bruno Haible <bruno@clisp.org>
Fix endless loop when the given allocated size was > INT_MAX.
* lib/vasnprintf.c (EOVERFLOW): New fallback definition.
(VASNPRINTF): Fail with EOVERFLOW when the given allocated size is
larger than INT_MAX, or when it grow to a value larger than INT_MAX.
* lib/vsprintf.c (vsprintf): Don't pass a size > INT_MAX to vasnprintf.
* lib/sprintf.c (sprintf): Likewise.
2007-03-17 Bruno Haible <bruno@clisp.org>
* tests/test-argp-2.sh (func_compare): Output a context diff.
2007-03-17 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Check also the
locale's decimal-point character.
2007-03-17 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Clear out the memory used for arg_mem
before comparing it. Needed because on some platforms (e.g. x86) a
'long double' occupies less bytes than sizeof (long double).
2007-03-17 Bruno Haible <bruno@clisp.org>
* tests/test-crc.c (main): Make printf statements 64-bit clean.
* tests/test-gc-pbkdf2-sha1.c (main): Likewise.
* tests/test-getaddrinfo.c (simple): Likewise.
* tests/test-read-file.c (main): Likewise.
2007-03-17 Bruno Haible <bruno@clisp.org>
* tests/test-dirname.c (main): Make printf statements 64-bit clean.
2007-03-17 Bruno Haible <bruno@clisp.org>
* tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Remove
unused variable.
2007-03-17 Bruno Haible <bruno@clisp.org>
* tests/test-c-strcasecmp.c: Include c-strcase.h.
* tests/test-c-strncasecmp.c: Likewise.
2007-03-17 Bruno Haible <bruno@clisp.org>
* modules/stdlib (Depends-on): Add unistd.
* lib/stdlib_.h: Include <unistd.h> if mkstemp is desired.
Needed for MacOS X 10.3.
2007-03-17 Bruno Haible <bruno@clisp.org>
* lib/unistr/u-strdup.h: Include <stdlib.h>.
2007-03-17 Bruno Haible <bruno@clisp.org>
* lib/unistr/u-cpy-alloc.h: Include <stdlib.h>.
2007-03-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Update .cvsignore and .gitignore files
to reflect files copied from gnulib (with or without modifications).
Suggested by Jim Meyering.
2007-03-17 Eric Blake <ebb9@byu.net>
* NEWS: Document stdlib change from 2007-02-18.
2007-03-17 Jim Meyering <jim@meyering.net>
Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted.
* build-aux/bootstrap: Put ""s around use of $build_aux, in case
someone uses a name containing shell meta-characters.
Reported by Alfred M. Szmidt.
* build-aux/bootstrap: Don't use \> in grep regexp. For HP-UX.
2007-03-16 Alfred M. Szmidt <ams@gnu.org>
* build-aux/bootstrap (with_gettext): New variable. Run autopoint
and copy gettext configuration files only if configure.ac contains
a use of AM_GNU_GETTEXT_VERSION.
2007-03-16 Alfred M. Szmidt <ams@gnu.org>
* build-aux/bootstrap (gnulib_name): New variable.
(gnulib_tool_options): Use it.
2007-03-13 Simon Josefsson <simon@josefsson.org>
* tests/test-des.c: Use new namespace.
2007-03-15 Bruno Haible <bruno@clisp.org>
* lib/dummy.c (gl_dummy_symbol): Renamed from 'dummy'.
Reported by James Youngman <jay@gnu.org>.
2007-03-15 Bruno Haible <bruno@clisp.org>
* lib/glob.c (glob): Add 'restrict' so that prototype matches the
declared prototype. Needed with cc on OSF/1 5.1.
2007-03-15 Bruno Haible <bruno@clisp.org>
* lib/gl_list.h (gl_listelement_dispose_fn): New type.
(gl_list_create_empty, gl_list_create): Add dispose_fn argument.
(struct gl_list_implementation): Add dispose_fn argument to the
'create_empty', 'create' methods.
(struct gl_list_impl_base): Add field 'dispose_fn'.
* lib/gl_list.c (gl_list_create_empty, gl_list_create): Add dispose_fn
argument.
* lib/gl_array_list.c (gl_array_create_empty, gl_array_create): Add
dispose_fn argument.
(gl_array_remove_node, gl_array_remove_at, gl_array_list_free): Call
dispose_fn on the dropped values.
* lib/gl_carray_list.c (gl_carray_create_empty, gl_carray_create): Add
dispose_fn argument.
(gl_carray_remove_at, gl_carray_list_free): Call dispose_fn on the
dropped values.
* lib/gl_anyavltree_list2.h (gl_tree_create): Add dispose_fn argument.
(gl_tree_remove_node): Call dispose_fn on the dropped value.
* lib/gl_anyrbtree_list2.h (gl_tree_create): Add dispose_fn argument.
(gl_tree_remove_node): Call dispose_fn on the dropped value.
* lib/gl_anytree_list2.h (gl_tree_create_empty): Add dispose_fn
argument.
(gl_tree_list_free): Call dispose_fn on the dropped values.
* lib/gl_anytreehash_list2.h (gl_tree_list_free): Call dispose_fn on
the dropped values.
* lib/gl_anylinked_list2.h (gl_linked_create_empty, gl_linked_create):
Add dispose_fn argument.
(gl_linked_remove_node, gl_linked_remove_at, gl_linked_list_free):
Call dispose_fn on the dropped values.
* lib/gl_sublist.c (gl_sublist_create_empty, gl_sublist_create_fill):
Add dispose_fn argument.
(gl_sublist_create): Initialize the 'dispose_fn' field.
* lib/clean-temp.c (create_temp_dir, register_fd): Update.
* tests/test-array_list.c (main): Update.
* tests/test-carray_list.c (main): Update.
* tests/test-avltree_list.c (main): Update.
* tests/test-rbtree_list.c (main): Update.
* tests/test-avltreehash_list.c (main): Update.
* tests/test-rbtreehash_list.c (main): Update.
* tests/test-linked_list.c (main): Update.
* tests/test-linkedhash_list.c (main): Update.
* tests/test-array_oset.c (main): Update.
2007-03-15 Bruno Haible <bruno@clisp.org>
* lib/gl_oset.h (gl_setelement_dispose_fn): New type.
(gl_oset_create_empty): Add dispose_fn argument.
(struct gl_oset_implementation): Add dispose_fn argument to
'create_empty' method.
(struct gl_oset_impl_base): Add dispose_fn field.
* lib/gl_oset.c (gl_oset_create_empty): Add dispose_fn argument.
* lib/gl_array_oset.c (gl_array_create_empty): Add dispose_fn argument.
(gl_array_remove_at, gl_array_free): Call dispose_fn on the dropped
values.
* lib/gl_anytree_oset.h (gl_tree_create_empty): Add dispose_fn argument.
(gl_tree_oset_free): Call dispose_fn on the dropped values.
* lib/gl_avltree_oset.c (gl_tree_remove_node): Call dispose_fn on the
dropped value.
* lib/gl_rbtree_oset.c (gl_tree_remove_node): Call dispose_fn on the
dropped value.
* tests/test-array_oset.c (main): Update.
* tests/test-avltree_oset.c (main): Update.
* tests/test-rbtree_oset.c (main): Update.
* lib/gl_anytreehash_list1.h (add_to_bucket): Update.
2007-03-13 Bruno Haible <bruno@clisp.org>
* tests/test-stdbool.c (i): Update after last patch.
2007-03-12 Bruno Haible <bruno@clisp.org>
* lib/quotearg.c: Include <wctype.h> early, before the definition of
the iswprint macro. Needed on Solaris 2.5.1.
2007-03-12 Bruno Haible <bruno@clisp.org>
* tests/test-printf-frexp.c (main): Declare x as volatile.
2007-03-12 Simon Josefsson <simon@josefsson.org>
* doc/gnulib.texi (Build robot for gnulib): New section.
2007-03-12 Jim Meyering <jim@meyering.net>
* build-aux/bootstrap: New file.
* build-aux/bootstrap.conf: New file, from coreutils.
2007-03-11 Bruno Haible <bruno@clisp.org>
* m4/cycle-check.m4 (gl_CYCLE_CHECK): Require AC_C_INLINE.
2007-03-12 Simon Josefsson <simon@josefsson.org>
* lib/des.h, lib/des.c, lib/gc-gnulib.c: Use gl_ namespace, to
avoid collisions with 'des_setkey'. Reported by Bruno Haible
<bruno@clisp.org>. Also change 'tripledes_' to '3des_'.
2007-03-11 Bruno Haible <bruno@clisp.org>
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): If the test program fails to
compile, set LOCALE_TR_UTF8 to 'none' instead of empty.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (INT64_MIN, INTMAX_MIN): Avoid using the ~INT..._MAX
formula. Needed for SunPRO C 5.0.
2007-03-11 Bruno Haible <bruno@clisp.org>
* modules/long-options (Depends-on): Add getopt.
2007-03-11 Bruno Haible <bruno@clisp.org>
* modules/modechange (Depends-on): Add stdbool.
2007-03-11 Bruno Haible <bruno@clisp.org>
* modules/i-ring (Depends-on): Add stdbool.
2007-03-11 Bruno Haible <bruno@clisp.org>
* modules/gc-des (Depends-on): Add stdbool.
2007-03-11 Bruno Haible <bruno@clisp.org>
* m4/mktime.m4 (gl_PREREQ_MKTIME): Require AC_C_INLINE.
2007-03-11 Bruno Haible <bruno@clisp.org>
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Require AC_C_RESTRICT.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/unistr/u32-mbtouc-unsafe.c (u32_mbtouc_unsafe): Fix syntax error.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (sprintf): Undefine.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/isnan.c (rpl_isnan, rpl_isnanl): Work around bug regarding
initializers in SunPRO C and Compaq C compilers.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/gl_array_oset.c (gl_array_iterator_next): Make pointer
decrementing code ANSI C compliant.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/dummy.c [__sun]: Define a dummy variable, not just a typedef.
Needed for Solaris 2.5.1 ranlib and SunPRO C 5.0.
2007-03-11 Bruno Haible <bruno@clisp.org>
* tests/test-stdbool.c (s, d, e, xlcbug): Disable checks that gnulib's
<stdbool.h> substitute doesn't pass.
2007-03-11 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (snprintf): Undefine. Avoids an endless recursion.
2007-03-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_megatestdir): Create also an autobuild
script, for submission to autobuild.josefsson.org.
2007-03-10 Bruno Haible <bruno@clisp.org>
* modules/canonicalize-lgpl-tests: New file.
* tests/test-canonicalize-lgpl.sh: New file.
* tests/test-canonicalize-lgpl.c: New file.
* modules/c-strcase-tests: New file.
* tests/test-c-strcase.sh: New file.
* tests/test-c-strcasecmp.c: New file.
* tests/test-c-strncasecmp.c: New file.
* modules/atexit-tests: New file.
* tests/test-atexit.sh: New file.
* tests/test-atexit.c: New file.
2007-03-10 Bruno Haible <bruno@clisp.org>
* tests/test-binary-io.sh: Use temporary filenames that are not so
likely to clash with those of other tests (in a parallel make).
* tests/test-binary-io.c: Likewise.
2007-03-10 Bruno Haible <bruno@clisp.org>
* lib/fseterr.c (fseterr): Port to Solaris/SPARC64. Deactivate the
fallback; use #error instead.
Suggested by Simon Josefsson.
2007-03-10 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Treat MOSTLYCLEANFILES like
CLEANFILES. Put spaces in each line of $cleaned_files, not only the
first and the last.
2007-03-10 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (uint_least64_t): Fix typo in last patch.
2007-03-10 Bruno Haible <bruno@clisp.org>
* modules/snprintf-posix-tests (EXTRA_DIST): New variable. Needed for
"make distcheck".
* modules/sprintf-posix-tests (EXTRA_DIST): Likewise.
* modules/vsnprintf-posix-tests (EXTRA_DIST): Likewise.
* modules/vsprintf-posix-tests (EXTRA_DIST): Likewise.
2007-03-10 Bruno Haible <bruno@clisp.org>
* modules/allocsa-tests (test_allocsa_SOURCES): Remove redundant
variable.
* modules/dirname-tests (test_dirname_SOURCES): Remove redundant
variable.
2007-03-09 Eric Blake <ebb9@byu.net>
and Matthew Woehlke <mw_triad@users.sourceforge.net> (tiny change)
* lib/stdint_.h (int64_t, uint64_t): Don't undefine if 64-bit
types are not being provided by gnulib.
(GL_INT64_T, GL_UINT64_T): New witnesses of whether gnulib 64-bit
types are supported.
2007-03-10 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h (__attribute__): New macro.
(fprintf, vfprintf, printf, vprintf, snprintf, vsnprintf, sprintf,
vsprintf): Specify __attribute__ __format__ for GCC.
Suggested by Eric Blake.
2007-03-09 Bruno Haible <bruno@clisp.org>
* modules/printf-posix-tests: New file.
* tests/test-printf-posix.sh: New file.
* tests/test-printf-posix.c: New file.
* modules/printf-posix: New file.
* lib/printf.c: New file.
* m4/printf-posix-rpl.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_PRINTF_POSIX,
REPLACE_PRINTF.
* lib/stdio_.h (printf): New declaration.
(format, __format__, ____printf____, ____scanf____, ____strftime____,
____strfmon____): New macros.
* modules/stdio (Makefile.am): Substitute also GNULIB_PRINTF_POSIX,
REPLACE_PRINTF.
2007-03-09 Bruno Haible <bruno@clisp.org>
* tests/test-vasnprintf-posix2.sh: New file.
* tests/test-vasnprintf-posix2.c: New file.
* modules/vasnprintf-posix-tests (Files): Add them and m4/locale-fr.m4.
(configure.ac): Invoke gt_LOCALE_FR and gt_LOCALE_FR_UTF8.
(Makefile.am): Activate test-vasnprintf-posix2.sh.
* lib/vasnprintf.c (VASNPRINTF): For the 'a' and 'A' directives, use
a locale dependent decimal point, rather than always '.'.
2007-03-09 Eric Blake <ebb9@byu.net>
* lib/stdlib_.h (EXIT_FAILURE): GNU code expects this to be 1, in
spite of platforms like Tandem/NSK that define it to -1.
2007-03-08 Bruno Haible <bruno@clisp.org>
* modules/vprintf-posix-tests: New file.
* tests/test-vprintf-posix.sh: New file.
* tests/test-vprintf-posix.c: New file.
* tests/test-printf-posix.h: New file.
* modules/vprintf-posix: New file.
* lib/vprintf.c: New file.
* m4/vprintf-posix.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VPRINTF_POSIX,
REPLACE_VPRINTF.
* lib/stdio_.h (vprintf): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_VPRINTF_POSIX,
REPLACE_VPRINTF.
2007-03-08 Bruno Haible <bruno@clisp.org>
* modules/fprintf-posix-tests: New file.
* tests/test-fprintf-posix.sh: New file.
* tests/test-fprintf-posix.c: New file.
* modules/fprintf-posix: New file.
* lib/fprintf.c: New file.
* m4/fprintf-posix.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FPRINTF_POSIX,
REPLACE_FPRINTF.
* lib/stdio_.h (fprintf): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_FPRINTF_POSIX,
REPLACE_FPRINTF.
2007-03-08 Bruno Haible <bruno@clisp.org>
* modules/vfprintf-posix-tests: New file.
* tests/test-vfprintf-posix.sh: New file.
* tests/test-vfprintf-posix.c: New file.
* tests/test-fprintf-posix.h: New file.
* tests/test-fprintf-posix.out: New file.
* modules/vfprintf-posix: New file.
* lib/vfprintf.c: New file.
* m4/vfprintf-posix.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VFPRINTF_POSIX,
REPLACE_VFPRINTF.
* lib/stdio_.h (vfprintf): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_VFPRINTF_POSIX,
REPLACE_VFPRINTF.
2007-03-08 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h: Treat __need___FILE like __need_FILE.
2007-03-08 Bruno Haible <bruno@clisp.org>
* m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Use 'case' statements
instead of 'expr' invocations.
* m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise.
* m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise.
* m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise.
Suggested by Paul Eggert.
2007-03-08 Bruno Haible <bruno@clisp.org>
* modules/fseterr-tests: New file.
* tests/test-fseterr.c: New file.
* modules/fseterr: New file.
* lib/fseterr.h: New file.
* lib/fseterr.c: New file.
2007-03-08 Bruno Haible <bruno@clisp.org>
* lib/fnmatch_.h: Convert tabs in the middle of lines to spaces.
* lib/getopt_.h: Likewise.
* lib/mbswidth.h: Likewise.
* lib/setenv.h: Likewise.
* lib/vasnprintf.h: Likewise.
* lib/vasprintf.h: Likewise.
* lib/verror.h: Likewise.
* lib/xsetenv.h: Likewise.
* lib/xvasprintf.h: Likewise.
2007-03-08 Jim Meyering <jim@meyering.net>
* users.txt: Add parted.
* ChangeLog: Restore 1500 lines mistakenly removed from the end.
2007-03-07 Bruno Haible <bruno@clisp.org>
* m4/printf.m4: Make the shell script snippets copy&pastable.
2007-03-02 Bruno Haible <bruno@clisp.org>
* lib/netinet_in_.h: New file.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Test whether netinet/in.h
is self-contained. Set ABSOLUTE_NETINET_IN_H, HAVE_NETINET_IN_H.
* modules/netinet_in (Files): Add lib/netinet_in_.h.
(Depends-on): Add absolute-header.
(Makefile.am): Substitute ABSOLUTE_NETINET_IN_H, HAVE_NETINET_IN_H
into netinet/in.h.
2007-03-03 Bruno Haible <bruno@clisp.org>
* lib/sys_select_.h: New file.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SELECT): Test whether sys/select.h
is self-contained. Set ABSOLUTE_SYS_SELECT_H, HAVE_SYS_SELECT_H.
* modules/sys_select (Files): Add lib/sys_select_.h.
(Depends-on): Add absolute-header.
(Makefile.am): Substitute ABSOLUTE_SYS_SELECT_H, HAVE_SYS_SELECT_H
into sys/select.h.
2007-03-02 Bruno Haible <bruno@clisp.org>
* lib/socket_.h: If sys/socket.h exists, include that and <sys/types.h>
before it. Turn HAVE_WINSOCK2_H and HAVE_WS2TCPIP_H into configute-time
values.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Test also whether
<sys/socket.h> is self-contained. Set ABSOLUTE_SYS_SOCKET_H,
HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H, HAVE_WS2TCPIP_H.
* modules/sys_socket (Depends-on): Add absolute-header.
(Makefile.am): Substitute ABSOLUTE_SYS_SOCKET_H, HAVE_SYS_SOCKET_H,
HAVE_WINSOCK2_H, HAVE_WS2TCPIP_H into sys/socket.h.
(Include): Remove requirement of inclusion of <sys/types.h>.
2007-03-02 Bruno Haible <bruno@clisp.org>
* lib/byteswap_.h (bswap_32): Fix formula.
2007-03-06 Bruno Haible <bruno@clisp.org>
* modules/sprintf-posix-tests: New file.
* tests/test-sprintf-posix.c: New file.
* modules/sprintf-posix: New file.
* lib/sprintf.c: New file.
* m4/sprintf-posix.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_SPRINTF_POSIX,
REPLACE_SPRINTF.
* lib/stdio_.h (sprintf): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_SPRINTF_POSIX,
REPLACE_SPRINTF.
2007-03-06 Bruno Haible <bruno@clisp.org>
* modules/vsprintf-posix-tests: New file.
* tests/test-vsprintf-posix.c: New file.
* tests/test-sprintf-posix.h: New file.
* modules/vsprintf-posix: New file.
* lib/vsprintf.c: New file.
* m4/vsprintf-posix.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VSPRINTF_POSIX,
REPLACE_VSPRINTF.
* lib/stdio_.h (vsprintf): New declaration.
* modules/stdio (Makefile.am): Substitute also GNULIB_VSPRINTF_POSIX,
REPLACE_VSPRINTF.
2007-03-06 Bruno Haible <bruno@clisp.org>
* modules/vsnprintf (Depend-on): Remove minmax.
2007-03-06 Bruno Haible <bruno@clisp.org>
* modules/snprintf-posix-tests: New file.
* tests/test-snprintf-posix.c: New file.
* modules/snprintf-posix: New file.
* m4/snprintf-posix.m4: New file.
* m4/snprintf.m4 (gl_REPLACE_SNPRINTF): New macro, extracted from
gl_FUNC_SNPRINTF.
(gl_FUNC_SNPRINTF): Invoke it.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also REPLACE_SNPRINTF.
* lib/stdio_.h (snprintf): Define as a replacement if REPLACE_SNPRINTF
is set.
* modules/stdio (Makefile.am): Substitute also REPLACE_SNPRINTF.
2007-03-06 Bruno Haible <bruno@clisp.org>
* modules/vsnprintf-posix-tests: New file.
* tests/test-vsnprintf-posix.c: New file.
* tests/test-snprintf-posix.h: New file.
* modules/vsnprintf-posix: New file.
* m4/vsnprintf-posix.m4: New file.
* m4/vsnprintf.m4 (gl_REPLACE_VSNPRINTF): New macro, extracted from
gl_FUNC_VSNPRINTF.
(gl_FUNC_VSNPRINTF): Invoke it.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also REPLACE_VSNPRINTF.
* lib/stdio_.h (vsnprintf): Define as a replacement if
REPLACE_VSNPRINTF is set.
* modules/stdio (Makefile.am): Substitute also REPLACE_VSNPRINTF.
2007-03-06 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): Test for vasnprintf here.
* m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): ... not here.
2007-03-06 Bruno Haible <bruno@clisp.org>
* lib/math_.h (acosl): Declare also if HAVE_DECL_ACOSL is set.
(asinl): Declare also if HAVE_DECL_ASINL is set.
(atanl): Declare also if HAVE_DECL_ATANL is set.
(ceill): Declare also if HAVE_DECL_CEILL is set.
(cosl): Declare also if HAVE_DECL_COSL is set.
(expl): Declare also if HAVE_DECL_EXPL is set.
(floorl): Declare also if HAVE_DECL_FLOORL is set.
(frexpl): Declare also if HAVE_DECL_FREXPL is set.
(ldexpl): Declare also if HAVE_DECL_LDEXPL is set.
(logl): Declare also if HAVE_DECL_LOGL is set.
(sinl): Declare also if HAVE_DECL_SINL is set.
(sqrtl): Declare also if HAVE_DECL_SQRTL is set.
(tanl): Declare also if HAVE_DECL_TANL is set.
* modules/math (Makefile.am): Substitute the values of HAVE_DECL_*.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Set HAVE_DECL_* to 1.
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Fix tests for the
declaration of frexpl, ldexpl.
* modules/printf-frexpl (Depends-on): Add math.
* lib/printf-frexp.c (frexpl, ldexpl): Undo last change.
2007-03-05 Bruno Haible <bruno@clisp.org>
* m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Also test whether
frexpl and ldexpl are declared.
* lib/printf-frexp.c (frexpl, ldexpl): Provide fallback declarations.
2007-03-05 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Don't synthesize an
EXTRA_lib_SOURCES augmentation for the relocatable-prog-wrapper module.
2007-03-05 Bruno Haible <bruno@clisp.org>
* lib/stdio_.h: Include <stddef.h>.
2007-03-05 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): New macro.
2007-03-05 Bruno Haible <bruno@clisp.org>
* m4/printf.m4: Update with info about OpenBSD 3.9, HP-UX 10.20,
NetBSD 4, from Ralf Wildenhues.
2007-03-04 Bruno Haible <bruno@clisp.org>
* lib/vasprintf.h: Update #if logic for the case when the functions
exist but are overridden.
2007-03-04 Bruno Haible <bruno@clisp.org>
* m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Exclude two buggy
implementations: glibc-2.4 and MacOS X 10.3.
* tests/test-vasnprintf-posix.c (test_function): Test also the case
that exhibits the bugs in glibc-2.4 and MacOS X 10.3.
* tests/test-vasprintf-posix.c (test_function): Likewise.
2007-03-04 Bruno Haible <bruno@clisp.org>
* modules/vasprintf-posix-tests: New file.
* tests/test-vasprintf-posix.c: New file.
* modules/vasprintf-posix: New file.
* lib/vasprintf.h (asprintf, vasprintf): Rename if REPLACE_VASPRINTF is
defined.
* m4/vasprintf-posix.m4: New file.
* m4/vasprintf.m4 (gl_REPLACE_VASPRINTF): New macro, extracted from
gl_FUNC_VASPRINTF.
(gl_FUNC_VASPRINTF): Invoke it.
* m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): Define REPLACE_VASNPRINTF
here.
* m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Not here.
2007-03-04 Bruno Haible <bruno@clisp.org>
* lib/sys_time_.h: Rename GETTIMEOFDAY_REPLACEMENT to
REPLACE_GETTIMEOFDAY.
* modules/sys_time (Makefile.am): Likewise.
* m4/sys_time_h.m4: Likewise.
* m4/gettimeofday.m4: Likewise.
2007-03-04 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf-posix-tests: New file.
* tests/test-vasnprintf-posix.c: New file.
* modules/vasnprintf-posix: New file.
* lib/vasnprintf.c: Include isnan.h, isnanl.h, printf-frexp.h,
printf-frexpl.h.
(VASNPRINTF): Handle the 'a' and 'A' directives here, if needed.
* lib/vasnprintf.h (asnprintf, vasnprintf): Rename if
REPLACE_VASNPRINTF is defined.
* m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): New macro, extracted from
gl_FUNC_VASNPRINTF.
(gl_FUNC_VASNPRINTF): Invoke it.
* m4/vasnprintf-posix.m4: New file.
* m4/printf.m4: New file.
2007-03-04 Bruno Haible <bruno@clisp.org>
Compile progreloc.c only if --enable-relocatable is specified.
* m4/relocatable.m4 (gl_RELOCATABLE): Arrange to compile progreloc.c
if --enable-relocatable was specified.
* modules/relocatable-prog (Makefile.am): Remove progreloc.c from
lib_SOURCES.
2007-03-04 Jim Meyering <jim@meyering.net>
* lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro.
Use it consistently, rather than enumerating errno constants.
2007-03-04 Bruno Haible <bruno@clisp.org>
* modules/xvasprintf-tests: New file.
* tests/test-xvasprintf.c: New file.
* modules/vasprintf-tests: New file.
* tests/test-vasprintf.c: New file.
* modules/vasnprintf-tests: New file.
* tests/test-vasnprintf.c: New file.
* modules/vsnprintf-tests: New file.
* tests/test-vsnprintf.c: New file.
* modules/snprintf-tests: New file.
* tests/test-snprintf.c: New file.
2007-03-04 Bruno Haible <bruno@clisp.org>
Compile relocatable.c only if --enable-relocatable is specified.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_BODY): Renamed from
gl_RELOCATABLE_LIBRARY.
(gl_RELOCATABLE_LIBRARY, gl_RELOCATABLE_LIBRARY_SEPARATE): New macros.
* m4/relocatable.m4 (gl_RELOCATABLE): Invoke gl_RELOCATABLE_LIBRARY.
(gl_RELOCATABLE_BODY): Require gl_RELOCATABLE_LIBRARY_BODY instead of
gl_RELOCATABLE_LIBRARY.
* modules/relocatable-lib (configure.ac): Invoke gl_RELOCATABLE_LIBRARY.
(Makefile.am): Remove lib_SOURCES.
* modules/relocatable-lib-lgpl (configure.ac): Invoke
gl_RELOCATABLE_LIBRARY.
(Makefile.am): Remove lib_SOURCES.
* modules/relocatable-prog (Makefile.am): Don't compile relocatable.c
always.
* modules/relocatable-prog-wrapper (configure.ac): Invoke
gl_RELOCATABLE_LIBRARY_SEPARATE instead of gl_RELOCATABLE_LIBRARY.
2007-03-04 Bruno Haible <bruno@clisp.org>
* modules/argmatch-tests: New file.
* tests/test-argmatch.c: New file.
* tests/test-allocsa.c (main): Halve the number of loop runs.
* modules/alloca-opt-tests: New file.
* tests/test-alloca-opt.c: New file.
2007-03-04 Jim Meyering <jim@meyering.net>
Work around difference between Linux ACLs and Solaris 10 ZFS.
* lib/acl.c (set_acl): Revert to using chmod_or_fchmod also
for EINVAL.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/relocatable-prog (Depends-on): Add back progreloc's
dependencies: canonicalize-lgpl, xalloc, xreadlink, stdbool, unistd.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/relocatable-lib-lgpl: Renamed from modules/relocatable-lib.
* modules/relocatable-lib: New file.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/relocatable-prog: Renamed from modules/relocatable.
* doc/relocatable-maint.texi: Talk about module 'relocatable-prog'.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/relocatable-script (Files): Add doc/relocatable.texi,
m4/relocatable-lib.m4.
(Depends-on): Remove 'relocatable'.
(configure.ac): Add gl_RELOCATABLE_NOP.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/relocatable-prog-wrapper: New file.
* modules/relocatable (Depends-on): Add it. Remove all other
dependencies except progname.
(Files): Remove build-aux/install-reloc, lib/relocwrapper.c.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): New macro.
(gl_FUNC_STRERROR): Nop.
* lib/strerror.c: Compile the file only if !HAVE_STRERROR.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): New macro.
* lib/setenv.c: Compile the file only if _LIBC || !HAVE_SETENV.
* m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): New macro.
(gl_FUNC_READLINK): Update.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL_SEPARATE): New macro.
2007-03-03 Bruno Haible <bruno@clisp.org>
* lib/xreadlink.c: Include <unistd.h> unconditionally.
* modules/xreadlink (Depends-on): Add unistd.
* modules/xreadlink-with-size (Depends-on): Likewise.
2007-03-03 Bruno Haible <bruno@clisp.org>
* m4/setenv.m4 (gl_FUNC_SETENV, gl_FUNC_UNSETENV): New macros,
extracted from gt_FUNC_SETENV.
(gt_FUNC_SETENV): Remove macro.
* modules/setenv (configure.ac): Add gl_FUNC_SETENV, gl_FUNC_UNSETENV,
remove gt_FUNC_SETENV.
2007-03-03 Bruno Haible <bruno@clisp.org>
* m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY): Define
ENABLE_RELOCATABLE here.
* m4/relocatable.m4 (gl_RELOCATABLE_BODY): Don't define it here.
2007-03-03 Bruno Haible <bruno@clisp.org>
* modules/rbtreehash-list-tests (Depends-on): Add progname.
* tests/test-rbtreehash_list.c: Include progname.h.
(main): Call set_program_name.
* modules/rbtree-oset-tests (Depends-on): Add progname.
* tests/test-rbtree_oset.c: Include progname.h.
(main): Call set_program_name.
* modules/rbtree-list-tests (Depends-on): Add progname.
* tests/test-rbtree_list.c: Include progname.h.
(main): Call set_program_name.
* modules/linked-list-tests (Depends-on): Add progname.
* tests/test-linked_list.c: Include progname.h.
(main): Call set_program_name.
2007-03-03 Bruno Haible <bruno@clisp.org>
* lib/glob-libc.h (_Restrict_): New macro, copied from lib/regex.h.
All uses of __restrict changed to _Restrict_.
* lib/glob_.h (__restrict): Remove macro.
2007-03-02 Bruno Haible <bruno@clisp.org>
* modules/gettext (configure.ac): Require gettext infrastructure
from version 0.16.1.
2007-03-02 Bruno Haible <bruno@clisp.org>
* modules/linkedhash-list-tests (Depends-on): Add progname.
* tests/test-linkedhash_list.c: Include progname.h.
(main): Call set_program_name.
* modules/carray-list-tests (Depends-on): Add progname.
* tests/test-carray_list.c: Include progname.h.
(main): Call set_program_name.
* modules/avltreehash-list-tests (Depends-on): Add progname.
* tests/test-avltreehash_list.c: Include progname.h.
(main): Call set_program_name.
* modules/avltree-oset-tests (Depends-on): Add progname.
* tests/test-avltree_oset.c: Include progname.h.
(main): Call set_program_name.
* modules/avltree-list-tests (Depends-on): Add progname.
* tests/test-avltree_list.c: Include progname.h.
(main): Call set_program_name.
* modules/array-oset-tests (Depends-on): Add progname.
* tests/test-array_oset.c: Include progname.h.
(main): Call set_program_name.
* modules/array-list-tests (Depends-on): Add progname.
* tests/test-array_list.c: Include progname.h.
(main): Call set_program_name.
* modules/argp-tests (Depends-on): Add progname.
* tests/test-argp.c: Include argp.h first. Include progname.h.
(main): Call set_program_name.
2007-03-02 Paul Eggert <eggert@cs.ucla.edu>
* doc/gnulib-tool.texi (Initial import): Reword description of
_FILE_OFFSET_BITS and _GNU_SOURCE, since they sometimes have a
limited effect even if defined after the first system include.
2007-03-01 Bruno Haible <bruno@clisp.org>
* build-aux/config.libpath: Update to libtool-1.5.22.
Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
2007-03-01 Bruno Haible <bruno@clisp.org>
* doc/relocatable-maint.texi: Recommend to set foo_CPPFLAGS, not
foo_CFLAGS.
Reported by Ralf Wildenhues.
2007-03-01 Bruno Haible <bruno@clisp.org>
* build-aux/install-reloc: Remove object files left over by some
compilers.
Reported by Ralf Wildenhues.
2007-03-01 Bruno Haible <bruno@clisp.org>
* build-aux/install-reloc: Break long lines.
2007-03-01 Bruno Haible <bruno@clisp.org>
* doc/relocatable.texi: Document that it may not work on OpenBSD.
Reported by Ralf Wildenhues.
2007-03-01 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (Initial import): Remove paragraph about
include ordering constraints.
2007-03-01 Paul Eggert <eggert@cs.ucla.edu>
Followup to the 2007-02-12 patch, using suggestions from Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2007-02/msg00136.html>.
* doc/gnulib-tool.texi (Initial import): Mention _FILE_OFFSET_BITS
as another example.
* lib/time_.h: Fix misspelling.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP):
Require gl_HEADER_TIME_H_DEFAULTS.
* m4/strptime.m4 (gl_FUNC_STRPTIME): Likewise.
* m4/time_r.m4 (gl_TIME_R): Likewise.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Likewise.
2007-03-01 Bruno Haible <bruno@clisp.org>
* m4/utimecmp.m4 (gl_UTIMECMP): Don't require gl_TIMESPEC.
* m4/utimens.m4 (gl_UTIMENS): Likewise.
2007-03-01 Jim Meyering <jim@meyering.net>
* modules/xreadlink (Maintainer): Add my name.
* modules/xreadlink-with-size (Depends-on): Alphabetize.
2007-02-26 Ben Pfaff <blp@cs.stanford.edu>
Bruno Haible <bruno@clisp.org>
* build-aux/install-reloc: Compile also c-ctype.c.
* build-aux/relocatable.sh.in: New file.
* doc/relocatable.texi: New file.
* doc/relocatable-maint.texi: New file.
* doc/gnulib.texi: Include relocatable-maint.texi.
* lib/progreloc.c: Include unistd.h unconditionally.
* lib/relocwrapper.c: Include unistd.h unconditionally.
Include c-ctype.h.
(add_dotbin): Use c_tolower.
* m4/relocatable-lib.m4: New file, extracted from m4/relocatable.m4.
(gl_RELOCATABLE_LIBRARY): Renamed from AC_RELOCATABLE_LIBRARY.
(gl_RELOCATABLE_NOP): Renamed from AC_RELOCATABLE_NOP.
* m4/relocatable.m4 (AC_RELOCATABLE_LIBRARY, AC_RELOCATABLE_NOP): Move
to m4/relocatable-lib.m4.
(gl_RELOCATABLE): Renamed from AC_RELOCATABLE. Set also
RELOCATABLE_CONFIG_H_DIR, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR.
(gl_RELOCATABLE_BODY): Renamed from AC_RELOCATABLE_BODY. Don't
require obsolete macro AC_EXEEXT. Don't check for unistd.h. Don't set
SET_RELOCATABLE. Instead set RELOCATABLE_LDFLAGS, INSTALL_PROGRAM_ENV.
* modules/relocatable: New file.
* modules/relocatable-lib: New file.
* modules/relocatable-script: New file.
2007-02-28 Bruno Haible <bruno@clisp.org>
Import --enable-relocatable infrastructure.
* build-aux/config.libpath: New file, from GNU gettext.
* build-aux/install-reloc: New file, from GNU gettext.
* build-aux/reloc-ldflags: New file, from GNU gettext.
* lib/relocatable.h: New file, from GNU gettext.
* lib/relocatable.c: New file, from GNU gettext.
* lib/relocwrapper.c: New file, from GNU gettext.
* m4/relocatable.m4: New file, from GNU gettext.
2007-02-28 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (File system functions): Add xreadlink-with-size.
* modules/xreadlink: New file, from GNU gettext with modifications.
* lib/xreadlink.c: New file, from GNU gettext.
* lib/xreadlink.h: Add comments.
(xreadlink): New declaration.
* modules/xreadlink-with-size: Renamed from modules/xreadlink.
(Files): Remove m4/xreadlink.m4. Replace lib/xreadlink.c with
lib/xreadlink-with-size.c.
(configure.ac): Remove gl_XREADLINK invocation.
(Makefile.am): Augment lib_SOURCES.
* m4/xreadlink.m4: Remove file.
* lib/xreadlink-with-size.c: Renamed from lib/xreadlink.c.
(xreadlink_with_size): Renamed from xreadink.
* lib/xreadlink.h (xreadlink_with_size): Renamed from xreadink.
* modules/canonicalize (Depends-on): Replace xreadlink with
xreadlink-with-size.
* lib/canonicalize.c (canonicalize_filename_mode): Update.
2007-02-25 Jim Meyering <jim@meyering.net>
* build-aux/announce-gen: When complaining about excess arguments,
list them.
2007-02-25 Paul Eggert <eggert@cs.ucla.edu>
* README: Document signed integer overflow situation more
accurately.
2007-02-25 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Fix estimate of size needed for a
'a' or 'A' conversion.
2007-02-25 Bruno Haible <bruno@clisp.org>
* modules/filename: Renamed from modules/pathname.
(Files): Replace lib/pathname.h with lib/filename.h. Replace
lib/concatpath.c with lib/concat-filename.c.
(Makefile.am): Update.
(Include): Replace pathname.h with filename.h.
* lib/filename.h: Renamed from lib/pathname.h.
(concatenated_filename): Renamed from concatenated_pathname.
* lib/concat-filename.c: Renamed from lib/concatpath.c.
(concatenated_filename): Renamed from concatenated_pathname.
* lib/findprog.c: Include filename.h instead of pathname.h.
(find_in_path): Update.
* lib/javacomp.c: Include filename.h instead of pathname.h.
(is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable,
is_envjavac_oldgcj_14_13_usable, is_envjavac_nongcj_usable,
is_gcj_present, is_gcj43_usable, is_oldgcj_14_14_usable,
is_oldgcj_14_13_usable, is_javac_usable): Update.
* lib/javaexec.c: Include filename.h instead of pathname.h.
(execute_java_class): Update.
* modules/findprog: Update.
* modules/javacomp: Update.
* modules/javaexec: Update.
* MODULES.html.sh (File system functions): Add 'filename', remove
'pathname'.
2007-02-25 Bruno Haible <bruno@clisp.org>
* modules/printf-frexpl-tests: New file.
* tests/test-printf-frexpl.c: New file.
* modules/printf-frexpl: New file.
* lib/printf-frexpl.h: New file.
* lib/printf-frexpl.c: New file.
* m4/printf-frexpl.m4: New file.
2007-02-25 Bruno Haible <bruno@clisp.org>
* modules/printf-frexp-tests: New file.
* tests/test-printf-frexp.c: New file.
* modules/printf-frexp: New file.
* lib/printf-frexp.h: New file.
* lib/printf-frexp.c: New file.
* m4/printf-frexp.m4: New file.
2007-02-25 Bruno Haible <bruno@clisp.org>
Assume automake >= 1.10 for the tests.
* modules/arcfour-tests (TESTS): Remove $(EXEEXT) suffix.
* modules/arctwo-tests: Likewise.
* modules/argp-tests: Likewise.
* modules/avltree-list-tests: Likewise.
* modules/avltree-oset-tests: Likewise.
* modules/avltreehash-list-tests: Likewise.
* modules/carray-list-tests: Likewise.
* modules/crc-tests: Likewise.
* modules/des-tests: Likewise.
* modules/gc-arcfour-tests: Likewise.
* modules/gc-arctwo-tests: Likewise.
* modules/gc-des-tests: Likewise.
* modules/gc-hmac-md5-tests: Likewise.
* modules/gc-hmac-sha1-tests: Likewise.
* modules/gc-md2-tests: Likewise.
* modules/gc-md4-tests: Likewise.
* modules/gc-md5-tests: Likewise.
* modules/gc-pbkdf2-sha1-tests: Likewise.
* modules/gc-rijndael-tests: Likewise.
* modules/gc-sha1-tests: Likewise.
* modules/gc-tests: Likewise.
* modules/getaddrinfo-tests: Likewise.
* modules/hmac-md5-tests: Likewise.
* modules/hmac-sha1-tests: Likewise.
* modules/linked-list-tests: Likewise.
* modules/linkedhash-list-tests: Likewise.
* modules/lock-tests: Likewise.
* modules/md2-tests: Likewise.
* modules/md4-tests: Likewise.
* modules/md5-tests: Likewise.
* modules/rbtree-list-tests: Likewise.
* modules/rbtree-oset-tests: Likewise.
* modules/rbtreehash-list-tests: Likewise.
* modules/read-file-tests: Likewise.
* modules/rijndael-tests: Likewise.
* modules/stdint-tests: Likewise.
* modules/tls-tests: Likewise.
2007-02-24 Bruno Haible <bruno@clisp.org>
* lib/isnanl.h (isnanl): Define through isnan if isnan is a macro.
* m4/isnan.m4 (gl_FUNC_ISNAN_NO_LIBM): Don't check for isnan as a
function; instead check whether isnan with a double argument links.
* m4/isnanl.m4 (gl_FUNC_ISNANL_NO_LIBM): Don't check for isnanl as a
function; instead check whether isnan with a 'long double' argument
links.
Reported by Eric Blake <ebb9@byu.net>.
2007-02-24 Bruno Haible <bruno@clisp.org>
* lib/isnan.c: Support the 'long double' case if USE_LONG_DOUBLE is
defined.
* lib/isnanl.c: Remove all code. Just include isnan.c.
* modules/isnanl-nolibm (Files): Add lib/isnan.c.
2007-02-25 Jim Meyering <jim@meyering.net>
Avoid conflicting types for 'unsetenv' on FreeBSD.
* lib/putenv.c (_unsetenv): Rename from "unsetenv", to avoid
conflicting with FreeBSD's (5.0 and 6.1) function declaration
in stdlib.h.
2007-02-24 Bruno Haible <bruno@clisp.org>
* modules/isnanl-nolibm-tests: New file.
* tests/test-isnanl.c: New file.
* modules/isnanl-nolibm: New file.
* lib/isnanl.h: New file.
* lib/isnanl.c: New file.
* m4/isnanl.m4: New file.
2007-02-24 Bruno Haible <bruno@clisp.org>
* modules/isnan-nolibm-tests: New file.
* tests/test-isnan.c: New file.
* modules/isnan-nolibm: New file.
* lib/isnan.h: New file.
* lib/isnan.c: New file.
* m4/isnan.m4: New file.
2007-02-24 Bruno Haible <bruno@clisp.org>
* lib/frexpl.c (frexpl): Correct return values for x = 1.0L. Don't
assume that an exponent fits in 20 bits.
2007-02-24 Jim Meyering <jim@meyering.net>
* m4/regex.m4: Update the description of the configure-time option,
--without-included-regex, to state accurately what the defaults are,
and perhaps to give people an idea why using this option is risky.
2007-02-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check for a nanosleep that
loops on small arguments. This attempts to avoid the problem
Bruno Haible reported for AIX 4.3.2 in
<http://lists.gnu.org/r/bug-gnulib/2007-02/msg00309.html>.
2007-02-23 Bruno Haible <bruno@clisp.org>
* m4/perl.m4 (gl_PERL): Require version 5.005, not 5.003.
Needed for help2man.
2007-02-23 Karl Berry <karl@gnu.org>
* doc/gnulib-tool.texi (CVS Issues): mention that when foo_.h
exists, foo.h should be cvs-ignored, not committed.
2007-02-23 Eric Blake <ebb9@byu.net>
* lib/getdate.h (includes): Include <time.h>, not "timespec.h".
* lib/stat-time.h (includes): Likewise.
* lib/utimecmp.c (includes): Likewise.
* lib/utimens.h (includes): Likewise.
* lib/getdate.y (includes): Also include "timespec.h" for use
internal to the module.
* modules/utimens (Depends-on): Revert yesterday's patch.
* modules/nanosleep (Depends-on): Add missing dependency.
2007-02-22 Bruno Haible <bruno@clisp.org>
* lib/glob.c: Don't include getlogin_r.h.
2007-02-22 Jim Meyering <jim@meyering.net>
* modules/utimens (Depends-on): Add timespec, required for
utimens.h's inclusion of timespec.h.
2007-02-21 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.c (__getcwd): Undo previous change; it mishandled
long unreadable paths in GNU/Linux. Problem reported by Andreas
Schwab in
<http://lists.gnu.org/r/bug-gnulib/2007-02/msg00261.html>.
I'll try to think of a better way to fix the Solaris problem.
* lib/getcwd.c (__getcwd): Don't assume getcwd (NULL, 0) works
like glibc; on Solaris 10, it fails with errno == EINVAL.
POSIX says the behavior is unspecified if the first argument is NULL,
so play it safe and never pass NULL to the system getcwd.
2007-02-21 Jim Meyering <jim@meyering.net>
* lib/gettimeofday.c (rpl_gettimeofday): Remove declaration
of gettimeofday. It would conflict with the one now always
provided via sys_time_.h. Reported by Matthew Woehlke, as
an IRIX 6.5 build failure.
2007-02-20 Paul Eggert <eggert@cs.ucla.edu>
Minor fixups to port to Solaris 10 with Sun C 5.8.
* lib/getcwd.c [!_LIBC]: Include dirfd.h, since we use dirfd.
* modules/getcwd (Depends-on): Add dirfd.
* lib/putenv.c (putenv): #undef it.
(rpl_putenv): New decl.
(malloc, free): Include <stdlib.h> rather than prototyping separately.
2007-02-20 Bruno Haible <bruno@clisp.org>
* modules/stdio-tests: New file.
* tests/test-stdio.c: New file.
* modules/vsnprintf (Files): Remove lib/vsnprintf.h.
(Depends-on): Add stdio.
(configure.ac): Invoke gl_STDIO_MODULE_INDICATOR.
(Include): Use <stdio.h> instead of vsnprintf.h.
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Require gl_STDIO_H_DEFAULTS. Set
HAVE_DECL_VSNPRINTF.
* lib/vsnprintf.c: Include <stdio.h> instead of vsnprintf.h.
* modules/snprintf (Files): Remove lib/snprintf.h.
(Depends-on): Add stdio.
(configure.ac): Invoke gl_STDIO_MODULE_INDICATOR.
(Include): Use <stdio.h> instead of snprintf.h.
* m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require gl_STDIO_H_DEFAULTS. Set
HAVE_DECL_SNPRINTF.
* lib/snprintf.c: Include <stdio.h> instead of snprintf.h.
* lib/getaddrinfo.c: Likewise.
* modules/stdio: New file.
* lib/stdio_.h: New file, incorporating snprintf.h and vsnprintf.h.
* lib/snprintf.h: Remove file.
* lib/vsnprintf.h: Remove file.
* lib/.cppi-disable: Remove snprintf.h.
* m4/stdio_h.m4: New file.
* MODULES.html.sh (Support for systems lacking ISO C 99): Add stdio.
2007-02-20 Jim Meyering <jim@meyering.net>
* lib/ftruncate.c [HAVE_CHSIZE]: Document that this code is
used by e.g., mingw. From Bruno Haible.
2007-02-19 Bruno Haible <bruno@clisp.org>
* lib/string_.h: Use "#pragma GCC system_header" to suppress some gcc
warnings.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2007-02-19 Bruno Haible <bruno@clisp.org>
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Don't request a complaint mail
from mingw users.
2007-02-19 Bruno Haible <bruno@clisp.org>
* lib/stdlib_.h: Use "#pragma GCC system_header" to suppress some gcc
warnings.
Reported by Joel E. Denny <jdenny@ces.clemson.edu> via Paul Eggert.
2007-02-19 Jim Meyering <jim@meyering.net>
Don't use FD after a successful "fdopendir (fd)".
* lib/getcwd.c (__getcwd) [AT_FDCWD]: fdopendir (fd) usually closes fd.
Reset it by calling dirfd on the just-obtained DIR*.
* m4/ftruncate.m4: Adjust comment to give this module a 3-year reprieve.
Prompted by a report from Bruno Haible that mingw lacks ftruncate.
2007-02-18 Bruno Haible <bruno@clisp.org>
* lib/readlink.c: Include <unistd.h>.
* m4/readlink.m4 (gl_FUNC_READLINK): Require gl_UNISTD_H_DEFAULTS. Set
HAVE_READLINK.
* modules/readlink (Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Add <unistd.h>.
* lib/getlogin_r.h: Remove file.
* lib/getlogin_r.c: Include <unistd.h> instead of getlogin_r.h.
* m4/getlogin_r.m4 (gl_GETLOGIN_R_SUBSTITUTE): Remove macro.
(gl_GETLOGIN_R): Inline it here. Require gl_UNISTD_H_DEFAULTS. Set
HAVE_DECL_GETLOGIN_R.
* modules/getlogin_r (Files): Remove lib/getlogin_r.h.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Use <unistd.h> instead of getlogin_r.h.
* lib/getcwd.h: Remove file.
* lib/getcwd.c: Include <unistd.h> instead of getcwd.h.
* lib/xgetcwd.c: Likewise.
* m4/getcwd.m4 (gl_FUNC_GETCWD): Require gl_UNISTD_H_DEFAULTS. Set
REPLACE_GETCWD. Don't define __GETCWD_PREFIX.
* modules/getcwd (Files): Remove lib/getcwd.h.
(Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Include): Use <unistd.h> instad of getcwd.h.
* lib/ftruncate.c: Include <unistd.h> first.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Require gl_UNISTD_H_DEFAULTS.
Set HAVE_FTRUNCATE.
* modules/ftruncate (Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
* lib/fchdir.c: Include <unistd.h> first.
* lib/dirent_.h: Test REPLACE_FCHDIR, not FCHDIR_REPLACEMENT.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_UNISTD_H_DEFAULTS instead
of gl_HEADER_UNISTD_DEFAULTS. Set REPLACE_FCHDIR. Don't set UNISTD_H.
* modules/fchdir (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
(Makefile.am): Substitute also REPLACE_FCHDIR into dirent.h.
* lib/dup2.c: Include <unistd.h> first.
* m4/dup2.m4 (gl_FUNC_DUP2): Require gl_UNISTD_H_DEFAULTS. Set
HAVE_DUP2.
* modules/dup2 (Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
* lib/chown.c: Include <unistd.h> first. Undefine chown later.
* m4/chown.m4 (gl_FUNC_CHOWN): Require gl_UNISTD_H_DEFAULTS. Set
REPLACE_CHOWN. Don't define chown as a macro here.
* modules/chown (Depends-on): Add unistd.
(configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
* lib/unistd_.h: Test HAVE_UNISTD_H determined at configure time.
Add definition for GL_LINK_WARNING.
(chown, dup2): New declarations.
(fchdir): Test REPLACE_FCHDIR, not FCHDIR_REPLACEMENT. Provide optional
link warning.
(ftruncate): New declaration.
(getcwd): New declaration, taken from old getcwd.h.
(getlogin_r): New declaration, taken from old getlogin_r.h.
(readlink): New declaration.
* m4/unistd_h.m4 (gl_UNISTD_H): Renamed from gl_HEADER_UNISTD. Don't
set UNISTD_H. Inline gl_PREREQ_UNISTD. Set HAVE_UNISTD_H.
(gl_PREREQ_UNISTD): Remove macro.
(gl_UNISTD_MODULE_INDICATOR): New macro.
(gl_UNISTD_H_DEFAULTS): Renamed from gl_HEADER_UNISTD_DEFAULTS. Set
many new variables. Don't set UNISTD_H.
* modules/unistd (Description): Change.
(Depends-on): Add link-warning.
(configure.ac): Update.
(Makefile.am): Create unistd.h always. Substitute many new variables
into it.
2007-02-18 Bruno Haible <bruno@clisp.org>
* lib/stdlib_.h (getsubopt): New declaration, copied from getsubopt.h.
* modules/stdlib (stdlib.h): Also substitute GNULIB_GETSUBOPT and
HAVE_GETSUBOPT.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Also initialize
GNULIB_GETSUBOPT and HAVE_GETSUBOPT.
* lib/getsubopt.h: Remove file.
* modules/getsubopt (Files): Remove lib/getsubopt.h.
(Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Includes): Use <stdlib.h> instead of getsubopt.h.
* m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Require gl_STDLIB_H_DEFAULTS.
Set HAVE_GETSUBOPT.
* lib/getsubopt.c: Don't include getsubopt.h.
2007-02-18 Bruno Haible <bruno@clisp.org>
* modules/fchdir (Depends-on): Add dup2.
2007-02-18 Bruno Haible <bruno@clisp.org>
* lib/stdlib_.h: Handle glibc's special invocation convention
specially.
2007-02-18 Bruno Haible <bruno@clisp.org>
* modules/stdlib-tests: New file.
* tests/test-stdlib.c: New file.
* modules/mkstemp (Files): Remove lib/mkstemp.h.
(Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Includes): Use <stdlib.h> instead of mkstemp.h.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require gl_STDLIB_H_DEFAULTS. Set
REPLACE_MKSTEMP. Remove definition of __MKSTEMP_PREFIX.
* lib/mkstemp.c: Don't include mkstemp.h.
* lib/mkstemp-safer.c: Include <stdlib.h> instead of mkstemp.h.
* lib/stdlib--.h: Don't include mkstemp.h.
* modules/mkdtemp (Files): Remove lib/mkdtemp.h.
(Depends-on): Add stdlib.
(configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR.
(Includes): Use <stdlib.h> instead of mkdtemp.h.
* m4/mkdtemp.m4 (gt_FUNC_MKDTEMP): Require gl_STDLIB_H_DEFAULTS. Set
HAVE_MKDTEMP.
* lib/mkdtemp.c: Don't include mkdtemp.h.
* lib/clean-temp.c: Don't include mkdtemp.h.
* modules/exit (Files): Remove lib/exit.h.
(Depends-on): Add stdlib.
(Makefile.am): Remove lib_SOURCES.
(Include): Use <stdlib.h> instead of exit.h.
* lib/argmatch.c: Don't include exit.h.
* lib/execute.c: Likewise.
* lib/pagealign_alloc.c: Likewise.
* lib/pipe.c: Likewise.
* lib/wait-process.c: Likewise.
* lib/copy-file.c: Include <stdlib.h> instead of exit.h.
* lib/exitfail.c: Likewise.
* lib/savewd.c: Likewise.
* lib/xsetenv.c: Likewise.
* modules/stdlib: New file.
* lib/stdlib_.h: New file, incorporating exit.h, mkdtemp.h, mkstemp.h
and extra comments about mkstemp().
* lib/exit.h: Remove file.
* lib/mkdtemp.h: Remove file.
* lib/mkstemp.h: Remove file.
* m4/stdlib_h.m4: New file.
* MODULES.html.sh (Support for systems lacking ANSI C 89): Add stdlib.
2007-02-18 Bruno Haible <bruno@clisp.org>
* modules/math-tests: New file.
* tests/test-math.c: New file.
* modules/math: New file.
* modules/mathl (Files): Remove lib/mathl.h.
(Depends-on): Add math.
(Makefile.am): Don't mention mathl.h.
(Include): Use <math.h> instead of mathl.h.
* lib/math_.h: New file.
* lib/mathl.h: Remove file.
* lib/acosl.c: Include <config.h> and <math.h> first. Don't include
mathl.h.
* lib/asinl.c: Likewise.
* lib/atanl.c: Likewise.
* lib/ceill.c: Likewise.
* lib/cosl.c: Likewise.
* lib/expl.c: Likewise.
* lib/floorl.c: Likewise.
* lib/frexpl.c: Likewise.
* lib/ldexpl.c: Likewise.
* lib/logl.c: Likewise.
* lib/sincosl.c: Likewise.
* lib/sinl.c: Likewise.
* lib/sqrtl.c: Likewise.
* lib/tanl.c: Likewise.
* lib/trigl.c: Likewise.
* m4/math_h.m4: New file.
* MODULES.html.sh (Mathematics): Add math.
2007-02-17 Bruno Haible <bruno@clisp.org>
* modules/wctype-tests: New file.
* tests/test-wctype.c: New file.
* modules/wchar-tests: New file.
* tests/test-wchar.c: New file.
* modules/unistd-tests: New file.
* tests/test-unistd.c: New file.
* modules/time-tests: New file.
* tests/test-time.c: New file.
* modules/sysexits-tests: New file.
* tests/test-sysexits.c: New file.
* modules/sys_time-tests: New file.
* tests/test-sys_time.c: New file.
* modules/sys_stat-tests: New file.
* tests/test-sys_stat.c: New file.
* modules/sys_socket-tests: New file.
* tests/test-sys_socket.c: New file.
* modules/sys_select-tests: New file.
* tests/test-sys_select.c: New file.
* modules/string-tests: New file.
* tests/test-string.c: New file.
* modules/stdbool-tests: New file.
* tests/test-stdbool.c: New file.
* modules/netinet_in-tests: New file.
* tests/test-netinet_in.c: New file.
* modules/inttypes-tests: New file.
* tests/test-inttypes.c: New file.
* modules/fcntl-tests: New file.
* tests/test-fcntl.c: New file.
* modules/byteswap-tests: New file.
* tests/test-byteswap.c: New file.
* modules/arpa_inet-tests: New file.
* tests/test-arpa_inet.c: New file.
2007-02-17 Bruno Haible <bruno@clisp.org>
* lib/inttypes_.h: Add definition for GL_LINK_WARNING.
(imaxabs, imaxdiv, strtoimax, strtoumax): Don't declare the function
if the corresponding module is not enabled. Emit link warnings if
the function is used nevertheless.
* m4/inttypes.m4 (gl_INTTYPES_H): Never use the existing <inttypes.h>.
Don't AC_SUBST HAVE_DECL_IMAXABS, HAVE_DECL_IMAXDIV,
HAVE_DECL_STRTOIMAX, HAVE_DECL_STRTOUMAX.
(gl_INTTYPES_MODULE_INDICATOR, gl_INTTYPES_H_DEFAULTS): New macros.
* modules/inttypes (Depends-on): Add link-warning.
(Makefile.am): Copy the contents of build-aux/link-warning.h into
inttypes.h. Substitute also GNULIB_IMAXABS, GNULIB_IMAXDIV,
GNULIB_STRTOIMAX, GNULIB_STRTOUMAX.
* modules/imaxabs (configure.ac): Invoke gl_INTTYPES_MODULE_INDICATOR.
* modules/imaxdiv (configure.ac): Likewise.
* modules/strtoimax (configure.ac): Likewise.
* modules/strtoumax (configure.ac): Likewise.
2007-02-17 Bruno Haible <bruno@clisp.org>
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Include the contents of
gl_STRING_MODULE_INDICATOR_DEFAULTS.
(gl_STRING_MODULE_INDICATOR_DEFAULTS): Remove macro.
(gl_HEADER_STRING_H_BODY, gl_STRING_MODULE_INDICATOR): Update.
2007-02-17 Bruno Haible <bruno@clisp.org>
* modules/link-warning: New file.
* build-aux/link-warning.h: New file, extracted from lib/string_.h.
* lib/string_.h (GL_LINK_WARNING): Remove definition.
* modules/string (Depends-on): Add link-warning.
(Makefile.am): Copy the contents of build-aux/link-warning.h into
string.h.
* MODULES.html.sh (Support for building libraries and executables): Add
link-warning.
2007-02-17 Bruno Haible <bruno@clisp.org>
* lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strcasecmp,
strncasecmp, strchr, strchrnul, strdup, strndup, strnlen, strcspn,
strpbrk, strspn, strrchr, strsep, strstr, strcasestr, strtok_r): Break
long lines.
2007-02-17 Ben Pfaff <blp@cs.stanford.edu>
Bruno Haible <bruno@clisp.org>
* modules/tmpfile: New file.
* lib/tmpfile.c: New file.
* m4/tmpfile.m4: New file.
* MODULES.html.sh (func_all_modules): New section "Input/output".
2007-02-15 Bruno Haible <bruno@clisp.org>
* lib/clean-temp.c [WIN32 && !CYGWIN]: Include <windows.h>.
(supports_delete_on_close): New function.
(open_temp, fopen_temp): Use _O_TEMPORARY when supported.
2007-02-14 Bruno Haible <bruno@clisp.org>
* modules/mbspcasecmp-tests: New file.
* tests/test-mbspcasecmp.sh: New file.
* tests/test-mbspcasecmp.c: New file.
New module mbspcasecmp.
* modules/mbspcasecmp: New file.
* lib/mbspcasecmp.c: New file.
* lib/string_.h (strncasecmp): Change warning message.
(mbspcasecmp): New declaration.
* m4/mbspcasecmp.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSPCASECMP.
* modules/string (string.h): Also substitute GNULIB_MBSPCASECMP.
* MODULES.html.sh (Internationalization functions): Add mbspcasecmp.
2007-02-14 Bruno Haible <bruno@clisp.org>
* modules/mbsncasecmp-tests: New file.
* tests/test-mbsncasecmp.sh: New file.
* tests/test-mbsncasecmp.c: New file.
New module mbsncasecmp.
* modules/mbsncasecmp: New file.
* lib/mbsncasecmp.c: New file.
* lib/string_.h (mbsncasecmp): New declaration.
* m4/mbsncasecmp.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSNCASECMP.
* modules/string (string.h): Also substitute GNULIB_MBSNCASECMP.
* MODULES.html.sh (Internationalization functions): Add mbsncasecmp.
2007-02-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/exclude.c (FNM_EXTMATCH): Define if system does not.
Verify that it doesn't overlap with our flags.
(fnmatch_no_wildcards): Don't use strcasecmp or strncasecmp, which
do not have the desired effect in multibyte locales; instead, use
mbscasecmp.
* modules/exclude (Depends-on): Depend on mbscasecmp, not strcase.
Add dependency on xalloc. Depend on fnmatch, not fnmatch-gnu, since
we don't require GNU fnmatch ourselves (if our users require it, they
should do so explicitly).
Fix regex code so it doesn't rely on strcasecmp.
* lib/regex_internal.h: Include <langinfo.h> only if _LIBC is defined.
Otherwise, include gnulib's langinfo.h.
* lib/regcomp.c (init_dfa): Don't use strcasecmp, as it can have
undesirable behavior in non-C locales. Instead, rely on localecharset.
* m4/regex.m4 (gl_PREREQ_REGEX): Don't require AM_LANGINFO_CODESET.
* modules/regex (FILES): Remove m4/codeset.m4.
(Depends-on): Add localcharset. Remove strcase.
2007-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/unlinkdir.m4 (gl_UNLINKDIR): Fix m4 quoting bug.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
2007-02-13 Bruno Haible <bruno@clisp.org>
* m4/intdiv0.m4 (gt_INTDIV0): Assume ANSI C. Fix underquoting bug.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2007-02-12 Bruno Haible <bruno@clisp.org>
* lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strchrnul,
strdup, strndup, strnlen, strpbrk, strsep, strtok_r): If
GNULIB_POSIXCHECK and the gnulib module not enabled, provoke a link-
time warning rather than a link error.
2007-02-12 Bruno Haible <bruno@clisp.org>
* m4/locale-fr.m4 (gt_LOCALE_FR): Fix m4 quoting bug.
* m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2007-02-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/string_.h (strncasecmp): Fix typo: this macro takes 3
args, not 2.
2007-02-12 Paul Eggert <eggert@cs.ucla.edu>
New module 'time', so that apps can include <time.h> as per
POSIX and GNU instead of separate include files like time_r.h
and timegm.h. This implementation tries out a simpler approach
for replacing decls in standard include files (as compared to
the string module), somewhat as an experiment.
* config/srclist.txt: Comment out mktime.c for now.
* doc/gnulib-tool.texi (Initial import): Don't use time_r as an example
since it doesn't apply any more. Use generic wording instead.
* MODULES.html.sh (Support for systems lacking POSIX:2001): New module
'time'.
* lib/time_.h, m4/time_h.m4, modules/time: New files.
* lib/strptime.h, lib/time_r.h, lib/timegm.h: Remove.
* lib/mktime.c: Include config.h depending on _LIBC, not HAVE_CONFIG_H.
Don't include <sys/types.h>; no longer needed since we assume C89.
* lib/mktime.c: Don't include "time_r.h"; no longer needed.
* lib/strftime.c: Likewise.
* lib/time_r.c: Likewise.
* lib/nanosleep.c (nanosleep): #undef after include files, not before.
* lib/nanosleep.c: Include <time.h> first, to check interface.
* lib/strptime.c: Likewise.
* lib/time_r.c: Likewise.
* lib/timegm.c: Likewise.
* lib/strptime.c: Don't include strptime.h or time_r.h; no longer
needed.
* lib/timegm.c: Don't include timegm.h; no longer needed.
* lib/timespec.h: Don't include <sys/time.h> before <time.h>;
time.h now handles any problems in that area.
(struct timespec, nanosleep): Remove; time.h now arranges for these.
* lib/xnanosleep.c: Don't include timespec.h; no longer needed now
that time.h defines struct timespec.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check that nanosleep is declared.
Set REPLACE_NANOSLEEP. Don't AC_DEFINE nanosleep; the time module now
handles that.
* m4/strptime.m4 (gl_FUNC_STPRTIME): Set REPLACE_STRPTIME.
* m4/time_r.m4 (gl_TIME_R): Don't define HAVE_TIME_R_POSIX; no longer
needed. Set REPLACE_LOCALTIME.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Set REPLACE_TIMEGM.
* m4/timespec.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Move to time_h.m4.
(gl_TIMESPEC): Don't check for sys/time.h or struct timespec or
nanosleep; time_h.m4 now does that. Don't require
gl_USE_SYSTEM_EXTENSIONS; no longer needed directly, and the time
module handles this now.
* modules/getdate (Depends-on): Remove timespec. Add time.
* modules/nanosleep (Depends-on): Likewise.
* modules/stat-time (Depends-on): Likewise.
* modules/nanosleep (Include): Include time.h, not timespec.h.
* modules/strptime (Files): Remove lib/strptime.h.
(Depends-on): Add extensions, time.
(Include): Include time.h, not strptime.h.
* modules/time_r (Files): Remove lib/time_r.h.
(Depends-on): Add time.
(Include): Include time.h, not time_r.h.
* modules/timegm: Likewise.
* modules/timespec (Description): Now does timespec-related decls
of our own, instead of struct timespec itself.
(Depends-on): Add time; remove extensions.
(Maintainer): Add self.
* modules/utimecmp (Depends-on): Add time; remove timespec.
* modules/utimens (Depends-on): Likewise.
* modules/xnanosleep (Depends-on): Likewise.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/c-strstr.c: Include allocsa.h.
(knuth_morris_pratt): Use allocsa/freesa instead of malloc/free.
* lib/c-strcasestr.c: Include allocsa.h.
(knuth_morris_pratt): Use allocsa/freesa instead of malloc/free.
* lib/strcasestr.c: Include allocsa.h.
(knuth_morris_pratt): Use allocsa/freesa instead of malloc/free.
* lib/mbsstr.c: Include allocsa.h.
(knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Use
allocsa/freesa instead of malloc/free.
* lib/mbscasestr.c: Include allocsa.h.
(knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Use
allocsa/freesa instead of malloc/free.
* modules/c-strstr (Depends-on): Add allocsa.
* modules/c-strcasestr (Depends-on): Likewise.
* modules/strcasestr (Depends-on): Likewise.
* modules/mbsstr (Depends-on): Likewise.
* modules/mbscasestr (Depends-on): Likewise.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/mbsspn.c (mbsspn): Fix bug. Remove unnecessary strlen call.
* modules/mbsspn-tests: New file.
* tests/test-mbsspn.sh: New file.
* tests/test-mbsspn.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/mbspbrk.c (mbspbrk): Remove unneeded cast.
* modules/mbspbrk-tests: New file.
* tests/test-mbspbrk.sh: New file.
* tests/test-mbspbrk.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/mbscspn.c (mbscspn): Remove unnecessary strlen call and
unneeded cast.
* modules/mbscspn-tests: New file.
* tests/test-mbscspn.sh: New file.
* tests/test-mbscspn.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* modules/mbscasecmp-tests: New file.
* tests/test-mbscasecmp.sh: New file.
* tests/test-mbscasecmp.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
Ensure O(n) worst-case complexity of mbscasestr.
* lib/mbscasestr.c: Include stdbool.h.
(knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): New
functions.
(mbscasestr): Add some bookkeeping. Invoke knuth_morris_pratt_* when
the bookkeeping indicates that it's worth it.
* modules/mbscasestr (Depends-on): Add stdbool, mbslen, strnlen.
* modules/mbscasestr-tests: New file.
* tests/test-mbscasestr1.c: New file.
* tests/test-mbscasestr2.sh: New file.
* tests/test-mbscasestr2.c: New file.
* tests/test-mbscasestr3.sh: New file.
* tests/test-mbscasestr3.c: New file.
* tests/test-mbscasestr4.sh: New file.
* tests/test-mbscasestr4.c: New file.
* m4/locale-tr.m4: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
Ensure O(n) worst-case complexity of mbsstr.
* lib/mbsstr.c: Include stdbool.h.
(knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): New
functions.
(mbsstr): Add some bookkeeping. Invoke knuth_morris_pratt_* when the
bookkeeping indicates that it's worth it.
* modules/mbsstr (Depends-on): Add stdbool, mbslen, strnlen.
* modules/mbsstr-tests: New file.
* tests/test-mbsstr1.c: New file.
* tests/test-mbsstr2.sh: New file.
* tests/test-mbsstr2.c: New file.
* tests/test-mbsstr3.sh: New file.
* tests/test-mbsstr3.c: New file.
* m4/locale-fr.m4: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/mbsrchr.c (mbsrchr): Fix bug.
* modules/mbsrchr-tests: New file.
* tests/test-mbsrchr.sh: New file.
* tests/test-mbsrchr.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* lib/mbschr.c (mbschr): Fix bug.
* modules/mbschr-tests: New file.
* tests/test-mbschr.sh: New file.
* tests/test-mbschr.c: New file.
* m4/locale-zh.m4: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
Support for copying multibyte string iterators.
* lib/mbiter.h: Include <string.h>.
(mbiter_multi_copy): New function.
(mbi_copy): New macro.
* lib/mbuiter.h: Include <string.h>.
(mbuiter_multi_copy): New function.
(mbui_copy): New macro.
2007-02-11 Bruno Haible <bruno@clisp.org>
New module mbslen.
* modules/mbslen: New file.
* lib/mbslen.c: New file.
* lib/string_.h (mbslen): New declaration.
* m4/mbslen.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSLEN.
* modules/string (string.h): Also substitute GNULIB_MBSLEN.
* MODULES.html.sh (Internationalization functions): Add mbslen.
2007-02-11 Bruno Haible <bruno@clisp.org>
Ensure O(n) worst-case complexity of strcasestr substitute.
* lib/strcasestr.c: Include stdbool.h.
(knuth_morris_pratt): New function.
(strcasestr): Add some bookkeeping. Invoke knuth_morris_pratt when the
bookkeeping indicates that it's worth it.
* modules/strcasestr (Depends-on): Add stdbool, strnlen.
* modules/strcasestr-tests: New file.
* tests/test-strcasestr.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
Ensure O(n) worst-case complexity of c_strcasestr.
* lib/c-strcasestr.c: Include stdbool.h, string.h.
(knuth_morris_pratt): New function.
(c_strcasestr): Add some bookkeeping. Invoke knuth_morris_pratt when
the bookkeeping indicates that it's worth it.
* modules/c-strcasestr (Depends-on): Add stdbool, strnlen.
* modules/c-strcasestr-tests: New file.
* tests/test-c-strcasestr.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
Ensure O(n) worst-case complexity of c_strstr.
* lib/c-strstr.c: Include stdbool.h, string.h.
(knuth_morris_pratt): New function.
(c_strstr): Add some bookkeeping. Invoke knuth_morris_pratt when the
bookkeeping indicates that it's worth it.
* modules/c-strstr (Depends-on): Add stdbool, strnlen.
* lib/c-strstr.c: Complete rewrite for maintainability.
* modules/c-strstr-tests: New file.
* tests/test-c-strstr.c: New file.
2007-02-11 Bruno Haible <bruno@clisp.org>
* m4/javacomp.m4 (gt_JAVACOMP): Work around a 'tr' bug in coreutils
5.2.1 and earlier, whereby \055 was treated just like the range
delimiter '-'.
Reported by Joel E. Denny <jdenny@ces.clemson.edu>.
2007-02-08 Bruno Haible <bruno@clisp.org>
* modules/regex (Depends-on): Add stdbool.
Reported by Dalibor Topic <robilad@kaffe.org>.
2007-02-05 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Check for glibc bug #3957.
Prefer returning from main to exiting from it.
Remove unnecessary parens after sizeof.
2007-02-05 Bruno Haible <bruno@clisp.org>
New module mbssep.
* modules/mbssep: New file.
* lib/mbssep.c: New file.
* lib/string_.h (strsep): Add a conditional link warning.
(mbssep): New declaration.
* m4/mbssep.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSSEP.
* modules/string (string.h): Also substitute GNULIB_MBSSEP.
* MODULES.html.sh (Internationalization functions): Add mbssep.
2007-02-05 Bruno Haible <bruno@clisp.org>
* lib/strsep.c (strsep): Fix actions in case of no delimiters.
Optimize search in case of 1 delimiter.
2007-02-05 Paolo Bonzini <bonzini@gnu.org>
* lib/acl.h: Include sys/types.h before sys/acl.h.
2007-02-05 Paolo Bonzini <bonzini@gnu.org>
Merge upstream fix for glibc bugzilla #3957:
2007-02-05 Jakub Jelinek <jakub@redhat.com>
* lib/regcomp.c (parse_bracket_exp): Set '\n' bit rather than '\0'
bit for RE_HAT_LISTS_NOT_NEWLINE.
(build_charclass_op): Remove bogus comment.
2007-02-05 Simon Josefsson <simon@josefsson.org>
* lib/gc.h, lib/gc-libgcrypt.c: Support SHA-256/384/512.
2007-02-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/getsubopt.c [!_LIBC]: Include config.h and getsubopt.h.
* lib/memmem.c [!defined _LIBC]: Include config.h.
2007-02-04 Bruno Haible <bruno@clisp.org>
* lib/string_.h (GL_LINK_WARNING2): Put the word "warning:" into the
warning message.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbstok_r.
* modules/mbstok_r: New file.
* lib/mbstok_r.c: New file.
* lib/string_.h (strtok_r): Change argument names to match the
comments. Add a conditional link warning.
(mbstok_r): New declaration.
* m4/mbstok_r.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSTOK_R.
* modules/string (string.h): Also substitute GNULIB_MBSTOK_R.
* MODULES.html.sh (Internationalization functions): Add mbstok_r.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbsspn.
* modules/mbsspn: New file.
* lib/mbsspn.c: New file.
* lib/string_.h (strspn): Add a conditional link warning.
(mbsspn): New declaration.
* m4/mbsspn.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSSPN.
* modules/string (string.h): Also substitute GNULIB_MBSSPN.
* MODULES.html.sh (Internationalization functions): Add mbsspn.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbspbrk.
* modules/mbspbrk: New file.
* lib/mbspbrk.c: New file.
* lib/string_.h (strpbrk): Add a conditional link warning.
(mbspbrk): New declaration.
* m4/mbspbrk.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSPBRK.
* modules/string (string.h): Also substitute GNULIB_MBSPBRK.
* MODULES.html.sh (Internationalization functions): Add mbspbrk.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbscspn.
* modules/mbscspn: New file.
* lib/mbscspn.c: New file.
* lib/string_.h (strcspn): Add a conditional link warning.
(mbscspn): New declaration.
* m4/mbscspn.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSCSPN.
* modules/string (string.h): Also substitute GNULIB_MBSCSPN.
* MODULES.html.sh (Internationalization functions): Add mbscspn.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbscasestr, reduced goal of strcasestr.
* modules/mbscasestr: New file.
* lib/mbscasestr.c: New file, copied from lib/strcasestr.c.
(mbscasestr): Renamed from strcasestr.
* lib/strcasestr.c: Don't include mbuiter.h.
(strcasestr): Remove support for multibyte locales.
* lib/string_.h (strcasestr): Don`t rename. Declare only if missing.
Change the conditional link warning.
(mbscasestr): New declaration.
* m4/mbscasestr.m4: New file.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Enable the replacement only if
the system does not have strcasestr. Set HAVE_STRCASESTR instead of
REPLACE_STRCASESTR.
(gl_PREREQ_STRCASESTR): Don't require gl_FUNC_MBRTOWC.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
HAVE_STRCASESTR instead of REPLACE_STRCASESTR.
(gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCASESTR.
* modules/string (string.h): Also substitute GNULIB_MBSCASESTR.
Substitute HAVE_STRCASESTR instead of REPLACE_STRCASESTR.
* modules/strcasestr (Files): Remove m4/mbrtowc.m4.
(Depends-on): Remove mbuiter.
* MODULES.html.sh (Internationalization functions): Add mbscasestr.
2007-02-04 Bruno Haible <bruno@clisp.org>
Simplify handling of strncasecmp.
* lib/string_.h (strncasecmp): Remove test for GNULIB_STRCASE. Change
the conditional link warning.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize
HAVE_STRCASECMP, not REPLACE_STRCASECMP.
(gl_STRING_MODULE_INDICATOR_DEFAULTS): Don't initialize GNULIB_STRCASE.
* modules/strcase (configure.ac): Don't invoke
gl_STRING_MODULE_INDICATOR.
* modules/string (string.h): Don't substitute GNULIB_STRCASE.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbscasecmp, reduced goal of strcasecmp.
* modules/mbscasecmp: New file.
* lib/mbscasecmp.c: New file, copied from lib/strcasecmp.c.
(mbscasecmp): Renamed from strcasecmp.
* lib/strcasecmp.c: Don't include mbuiter.h.
(strcasecmp): Remove support for multibyte locales.
* lib/string_.h (strcasecmp): Don`t rename. Declare only if missing.
Change the conditional link warning.
(mbscasecmp): New declaration.
* m4/mbscasecmp.m4: New file.
* m4/strcase.m4 (gl_FUNC_STRCASECMP): Enable the replacement only if
the system lacks strcasecmp. Set HAVE_STRCASECMP instead of
REPLACE_STRCASECMP.
(gl_PREREQ_STRCASECMP): Don't require gl_FUNC_MBRTOWC.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSCASECMP.
* modules/string (string.h): Also substitute GNULIB_MBSCASECMP.
Substitute HAVE_STRCASECMP instead of REPLACE_STRCASECMP.
* modules/strcase (Files): Remove m4/mbrtowc.m4.
(Depends-on): Remove mbuiter.
* MODULES.html.sh (Internationalization functions): Add mbscasecmp.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbsstr. Remove module strstr.
* modules/mbsstr: New file.
* modules/strstr: Remove file.
* lib/mbsstr.c: Renamed from lib/strstr.c.
(mbsstr): Renamed from strstr.
* lib/string_.h (strstr): Remove declaration. Change the conditional
link warning.
(mbsstr): New declaration.
* m4/mbsstr.m4: New file.
* m4/strstr.m4: Remove file.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize
REPLACE_STRSTR.
(gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSSTR.
Don't initialize GNULIB_STRSTR.
* modules/string (string.h): Also substitute GNULIB_MBSSTR. Don't
substitute GNULIB_STRSTR and REPLACE_STRSTR.
* MODULES.html.sh (Internationalization functions): Add mbsstr.
(Support for systems lacking ANSI C 89): Remove strstr.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbsrchr.
* modules/mbsrchr: New file.
* lib/mbsrchr.c: New file.
* lib/string_.h (strrchr): Add a conditional link warning.
(mbsrchr): New declaration.
* m4/mbsrchr.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSRCHR.
* modules/string (string.h): Also substitute GNULIB_MBSRCHR.
* MODULES.html.sh (Internationalization functions): Add mbsrchr.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module mbschr.
* modules/mbschr: New file.
* lib/mbschr.c: New file.
* lib/string_.h (strchr): Add a conditional link warning.
(mbschr): New declaration.
* m4/mbschr.m4: New file.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize
GNULIB_MBSCHR.
* modules/string (string.h): Also substitute GNULIB_MBSCHR.
* MODULES.html.sh (Internationalization functions): Add mbschr.
2007-02-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdbool_.h: Mention that bool bit-fields aren't supported.
* modules/stdarg (configure.ac-early): Require AC_PROG_CC_STDC.
2007-02-04 Bruno Haible <bruno@clisp.org>
New module description section 'configure.ac-early'.
* gnulib-tool (sed_extract_prog): Recognize configure.ac-early.
(func_get_autoconf_early_snippet): New function.
(func_import, func_create_testdir): Use it. Remove special cases for
modules 'extensions' and 'lock'.
* modules/extensions (configure.ac-early): Require
gl_USE_SYSTEM_EXTENSIONS.
* modules/lock (configure.ac-early): Require gl_LOCK_EARLY.
2007-02-04 Bruno Haible <bruno@clisp.org>
Make use of gcj-4.3's -fsource and -ftarget option.
* m4/javacomp.m4 (gt_JAVACOMP): Test whether gcj is in version >= 4.3,
and if so try the options -fsource and -ftarget.
* lib/javacomp.c (compile_using_gcj): Add fsource_option,
source_version, ftarget_option, target_version arguments.
(is_envjavac_gcj43, is_envjavac_gcj43_usable): New functions.
(is_envjavac_oldgcj_14_14_usable): Renamed from
is_envjavac_gcj_14_14_usable.
(is_envjavac_oldgcj_14_13_usable): Renamed from
is_envjavac_gcj_14_13_usable.
(is_gcj_present): Update.
(is_gcj_43, is_gcj43_usable): New functions.
(is_oldgcj_14_14_usable): Renamed from is_gcj_14_14_usable. Update.
(is_oldgcj_14_13_usable): Renamed from is_gcj_14_13_usable. Update.
(compile_java_class): Test whether gcj is in version >= 4.3, and if so
try the options -fsource and -ftarget.
2007-02-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/xalloc.h (x2nrealloc): Fix an unlikely bug in the overflow
checking code. Set N = ceil (1.5 * N) rather than to a slightly
larger value.
2007-02-03 Jim Meyering <jim@meyering.net>
Give tools a better chance to allocate space for very large buffers.
* lib/xalloc.h (x2nrealloc): Use 3/2, not 2, as buffer size factor.
Make pwd and readlink work also when run with an unreadable parent dir
on systems with openat support.
* lib/getcwd.c (__getcwd) [HAVE_PARTLY_WORKING_GETCWD]: Use the system
provided getcwd function, even when we have openat support.
Reported by Dmitry V. Levin in <http://bugzilla.redhat.com/227168>.
2007-02-02 Bruno Haible <bruno@clisp.org>
* lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strchrnul,
strdup, strndup, strnlen, strpbrk, strsep, strtok_r): Provoke a link
error only if GNULIB_POSIXCHECK is defined. Needed to avoid artificial
portability problems if one of these functions is only used on specific
platforms.
Reported by Paul Eggert.
2007-02-02 Paul Eggert <eggert@cs.ucla.edu>
Avoid mempcpy in the regex code, as the string.h mempcpy stuff
is causing more trouble than it's curing.
* lib/regex_internal.h (__mempcpy): Remove.
* lib/regcomp.c (regerror): Rewrite to avoid the need for mempcpy
(and make the code a tad smaller to boot).
* m4/regex.m4 (gl_PREREQ_REGEX): Don't check for mempcpy.
2007-02-02 Jim Meyering <jim@meyering.net>
* modules/arpa_inet: Put AC_PROG_MKDIR_P in the configure.ac:
section, not in the Makefile.am: one.
2007-02-02 Eric Blake <ebb9@byu.net>
* lib/strchrnul.c: Always include config.h first.
* modules/mountlist (Depends-on): Revert 2007-01-31 change,
gnulib strstr is not necessary here.
2007-02-02 Simon Josefsson <simon@josefsson.org>
* m4/socklen.m4: Fix typo.
2007-02-02 Eric Blake <ebb9@byu.net>
* modules/arpa_inet (Makefile.am): Use MKDIR_P to avoid races.
* modules/netinet_in (Makefile.am): Likewise.
2007-02-01 Bruno Haible <bruno@clisp.org>
* lib/string_.h (GL_LINK_WARNING): New macro.
(strcasecmp, strstr, strcasestr): If provided by the system,
conditionally define as a macro that leads to a warning instead of to
an error.
(strncasecmp): Conditionally define as a macro that leads to a warning.
2007-02-01 Karl Berry <karl@gnu.org>
* config/srclist.txt (strtok_r.c): lose sync, no more strtok_r.h.
2007-02-01 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Unicode string functions): Update after 2007-01-27
renamings.
2007-02-01 Eric Blake <ebb9@byu.net>
* modules/regex (Depends-on): Revert dependence on mempcpy.
* lib/regex_internal.h [! _LIBC && !__mempcpy]: Undo string
module's definition of mempcpy.
Reported by Paul Eggert.
2007-02-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/string_.h: If the gnulib module XYZ is not present, undefine
the symbol XYZ before redefining it. This fixes a problem with
programs that don't use XYZ, when compiled on systems that define
XYZ to something else.
2007-01-31 Paul Eggert <eggert@cs.ucla.edu>
* lib/mkdir-p.c (make_dir_parents): Close a race condition that
occurs when "mkdir -m foo" creates a setgid directory that is (1)
writeable to group or other and (2) is intended to have a special
mode bit that is set or cleared. In such a case, the directory
should be neither group- nor other-writeable until the special
mode bits are right.
2007-01-31 Eric Blake <ebb9@byu.net>
* modules/mountlist (Depends-on): Add strstr.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Correct m4 usage
bug.
* modules/string (Makefile.am): Remove redundant replacement.
* modules/regex (Depends-on): Add mempcpy.
2007-01-31 Bruno Haible <bruno@clisp.org>
New module description field 'Link'.
* gnulib-tool (func_usage): Document --extract-link-directive.
(sed_extract_prog): Recognize 'Link' directive.
(func_get_link_directive): New function.
(func_import): Show summary of link directives.
Handle --extract-link-directive option.
* modules/acl (Link): New section.
* modules/clock-time (Link): New section.
* modules/euidaccess (Link): New section.
* modules/gettext (Link): New section.
* modules/iconv (Link): New section.
* modules/lock (Link): New section.
* modules/nanosleep (Link): New section.
* modules/readline (Link): New section.
2007-01-27 Bruno Haible <bruno@clisp.org>
Enforce the use of gnulib modules for unportable <string.h> functions.
* m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): New macro.
(gl_STRING_MODULE_INDICATOR_DEFAULTS): New macro.
(gl_HEADER_STRING_H_BODY): Require it.
* lib/string_.h: If the gnulib module XYZ is not present, redefine
the symbol XYZ to one that gives a link error.
* modules/string (Makefile.am): Also substitute the GNULIB_* variables.
* modules/memmem (configure.ac): Invoke gl_STRING_MODULE_INDICATOR.
* modules/mempcpy (configure.ac): Likewise.
* modules/memrchr (configure.ac): Likewise.
* modules/stpcpy (configure.ac): Likewise.
* modules/stpncpy (configure.ac): Likewise.
* modules/strcase (configure.ac): Likewise.
* modules/strcasestr (configure.ac): Likewise.
* modules/strchrnul (configure.ac): Likewise.
* modules/strdup (configure.ac): Likewise.
* modules/strndup (configure.ac): Likewise.
* modules/strnlen (configure.ac): Likewise.
* modules/strpbrk (configure.ac): Likewise.
* modules/strsep (configure.ac): Likewise.
* modules/strstr (configure.ac): Likewise.
* modules/strtok_r (configure.ac): Likewise.
2007-01-31 Jean-Louis Martineau <martineau@zmanda.com> (tiny change)
* lib/gai_strerror.c (values): Add EAI_OVERFLOW.
2007-01-30 Jim Meyering <jim@meyering.net>
* lib/mpsort.c (mpsort): Remove spurious "return" in void function.
2007-01-29 Bruno Haible <bruno@clisp.org>
* lib/allocsa.h: Use '#if HAVE_*' instead of '#ifdef HAVE_*'.
* lib/execute.c: Likewise.
* lib/pipe.c: Likewise.
* lib/printf-args.h: Likewise.
* lib/printf-args.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/vasnprintf.c: Likewise.
2007-01-29 Eric Blake <ebb9@byu.net>
* lib/memrchr.c: Assume <string.h> unconditionally, to pull in
declaration.
2007-01-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/strptime.h (strptime): Use 'restrict' for args where
POSIX requires this.
* lib/strptime.c (strptime): Likewise.
Change license notice from LGPL to GPL, since gnulib-tool will
change this as needed.
Include <config.h> if _LIBC is not defined, not if HAVE_CONFIG_H is
defined.
Include "strptime.h" first, to check interface.
Do not #undef _LIBC and _NL_CURRENT.
Do not include <stdlib.h>; no longer needed.
Include "time_r.h" and declare ptime_locale_status
only if _LIBC is not defined.
(__P): Remove unused macro.
(match_string): Bring back glibc version, but use it only if _LIBC
is defined.
(__strptime_internal): Compile tm_gmtoff code if _LIBC is defined, too.
Remove unnecessary assertion and abort() call.
Use #ifdef _NL_CURRENT rather than #if 0, for benefit of glibc.
* m4/strptime.m4: Fix serial number comment.
(gl_FUNC_STRPTIME): Require AC_C_RESTRICT, gl_TM_GMTOFF.
* modules/strptime (Files): Add m4/tm_gmtoff.m4.
(Depends-on): Add time_r.
2007-01-29 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
strptime.
* modules/strptime (Depends-on): Add stdbool.
* lib/strptime.h: Include <time.h> always. Add comments.
2007-01-29 Yoann Vandoorselaere <yoann@prelude-ids.org>
* modules/strptime: New file.
* lib/strptime.h: New file.
* lib/strptime.c: New file.
* m4/strptime.m4: New file.
2007-01-28 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: New module mpsort.
* lib/mpsort.c, lib/mpsort.h, m4/mpsort.m4, modules/mpsort: New files.
* lib/regex.h (_Restrict_): Renamed from __restrict, to avoid
a circularity problem with HP-UX ia64 reported by Bob Proulx in
<http://lists.gnu.org/r/bug-gnulib/2007-01/msg00394.html>.
All uses changed.
(_Restrict_arr_): Renamed from __restrict_arr, for similar reasons.
All uses changed.
* lib/regcomp.c, lib/regexec.c: Change all uses from __restrict
to _Restrict_.
* lib/regexec.c (regexec): Declare pmatch with _Restrict_arr_, so that
the parameter matches the prototype.
2007-01-28 Jim Meyering <jim@meyering.net>
* modules/sys_time (Makefile.am) [MOSTLYCLEANFILES]: Do use
sys/time.h here, reverting that part of the previous patch:
<http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/8959>.
2007-01-28 Bruno Haible <bruno@clisp.org>
* modules/sys_time (Makefile.am): Build sys/time.h only when it's the
value of $(SYS_TIME_H).
[MOSTLYCLEANFILES]: Now that sys/time.h is created only when needed,
remove it conditionally, too. [added by Jim Meyering]
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Set SYS_TIME_H.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY):
(gl_FUNC_GETTIMEOFDAY_CLOBBER): Set SYS_TIME_H when setting
GETTIMEOFDAY_REPLACEMENT to 1.
2007-01-28 Bruno Haible <bruno@clisp.org>
* m4/unistd_h.m4 (gl_HEADER_UNISTD_DEFAULTS): New macro.
(gl_HEADER_UNISTD): Require it. Don't set UNISTD_H to empty here.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_HEADER_UNISTD_DEFAULTS.
Set UNISTD_H instead of UNISTD_H2.
* modules/fchdir (BUILT_SOURCES): Drop $(UNISTD_H2).
2007-01-28 Bruno Haible <bruno@clisp.org>
* modules/mbchar (Makefile.am): Add mbchar.c to lib_SOURCES.
* m4/mbchar.m4 (gl_MBCHAR): Remove AC_LIBOBJ invocation.
2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_emit_lib_Makefile_am, func_add_or_update)
(func_create_testdir): Ensure C locale for `grep' and `tr'
character ranges.
(func_create_megatestdir): Avoid one `grep'. Fix bug in
ACLOCAL_AMFLAGS parsing state machine.
2007-01-27 Bruno Haible <bruno@clisp.org>
* modules/unistr/base: Update.
2007-01-27 Bruno Haible <bruno@clisp.org>
Rename u32-mbtouc -> u32-mbtouc-unsafe, u32-mbtouc-safe -> u32-mbtouc,
u32_mbtouc -> u32_mbtouc_unsafe, u32_mbtouc_safe -> u32_mbtouc.
* modules/unistr/u32-mbtouc-unsafe: Renamed from
modules/unistr/u32-mbtouc.
* lib/unistr/u32-mbtouc-unsafe.c: Renamed from lib/unistr/u32-mbtouc.c.
* lib/unistr.h: Update.
* lib/linebreak.c: Update.
* modules/unistr/u32-mbtouc: Renamed from
modules/unistr/u32-mbtouc-safe.
* lib/unistr/u32-mbtouc.c: Renamed from lib/unistr/u32-mbtouc-safe.c.
* lib/unistr.h: Update.
* lib/unistr/u32-to-u8.c: Update.
* lib/unistr/u32-to-u16.c: Update.
2007-01-27 Bruno Haible <bruno@clisp.org>
Rename utf16-ucs4 -> utf16-ucs4-unsafe, utf16-ucs4-safe -> utf16-ucs4,
u16_mbtouc -> u16_mbtouc_unsafe, u16_mbtouc_safe -> u16_mbtouc.
* modules/utf16-ucs4-unsafe: Renamed from modules/utf16-ucs4.
* lib/utf16-ucs4-unsafe.h: Renamed from lib/utf16-ucs4.h.
* lib/unistr/utf16-ucs4-unsafe.c: Renamed from lib/unistr/utf16-ucs4.c.
* modules/unistr/u16-mbtouc-unsafe: Renamed from
modules/unistr/u16-mbtouc.
* lib/unistr/u16-mbtouc-unsafe.c: Renamed from lib/unistr/u16-mbtouc.c.
* lib/unistr.h: Update.
* lib/linebreak.c: Update.
* modules/linebreak: Update.
* modules/utf16-ucs4: Renamed from modules/utf16-ucs4-safe.
* lib/utf16-ucs4.h: Renamed from lib/utf16-ucs4-safe.h.
* lib/unistr/utf16-ucs4.c: Renamed from lib/unistr/utf16-ucs4-safe.c.
* modules/unistr/u16-mbtouc: Renamed from
modules/unistr/u16-mbtouc-safe.
* lib/unistr/u16-mbtouc.c: Renamed from lib/unistr/u16-mbtouc-safe.c.
* lib/unistr.h: Update.
* lib/unistr/u16-to-u8.c: Update.
* modules/unistr/u16-to-u8: Update.
* lib/unistr/u16-to-u32.c: Update.
* modules/unistr/u16-to-u32: Update.
2007-01-27 Bruno Haible <bruno@clisp.org>
Rename utf8-ucs4 -> utf8-ucs4-unsafe, utf8-ucs4-safe -> utf8-ucs4,
u8_mbtouc -> u8_mbtouc_unsafe, u8_mbtouc_safe -> u8_mbtouc.
* modules/utf8-ucs4-unsafe: Renamed from modules/utf8-ucs4.
* lib/utf8-ucs4-unsafe.h: Renamed from lib/utf8-ucs4.h.
* lib/unistr/utf8-ucs4-unsafe.c: Renamed from lib/unistr/utf8-ucs4.c.
* modules/unistr/u8-mbtouc-unsafe: Renamed from
modules/unistr/u8-mbtouc.
* lib/unistr/u8-mbtouc-unsafe.c: Renamed from lib/unistr/u8-mbtouc.c.
* lib/unistr.h: Update.
* lib/striconveh.c: Update.
* modules/striconveh: Update.
* lib/linebreak.c: Update.
* modules/linebreak: Update.
* modules/utf8-ucs4: Renamed from modules/utf8-ucs4-safe.
* lib/utf8-ucs4.h: Renamed from lib/utf8-ucs4-safe.h.
* lib/unistr/utf8-ucs4.c: Renamed from lib/unistr/utf8-ucs4-safe.c.
* modules/unistr/u8-mbtouc: Renamed from modules/unistr/u8-mbtouc-safe.
* lib/unistr/u8-mbtouc.c: Renamed from lib/unistr/u8-mbtouc-safe.c.
* lib/unistr.h: Update.
* lib/striconveh.c: Update.
* modules/striconveh: Update.
* lib/unistr/u8-to-u16.c: Update.
* modules/unistr/u8-to-u16: Update.
* lib/unistr/u8-to-u32.c: Update.
* modules/unistr/u8-to-u32: Update.
2007-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from Libtool.
* lib/argz.c: Do not include strings.h nor memory.h, include
string.h unconditionally. Patch by Simon Josefsson.
2007-01-27 Bruno Haible <bruno@clisp.org>
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New macro, extracted
from gl_HEADER_STRING_H_BODY.
(gl_HEADER_STRING_H_BODY): Require it.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Require gl_HEADER_STRING_H_DEFAULTS.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Likewise.
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Likewise.
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Likewise.
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
* m4/strcase.m4 (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Likewise.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Likewise.
* m4/strdup.m4 (gl_FUNC_STRDUP): Likewise.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Likewise.
* m4/strpbrk.m4 (gl_FUNC_STRPBRK): Likewise.
* m4/strsep.m4 (gl_FUNC_STRSEP): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise.
2007-01-27 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): If $for_test is true, turn
check_PROGRAMS into noinst_PROGRAMS.
(func_emit_tests_Makefile_am): Likewise. Also don't initialize
check_PROGRAMS in this case.
(func_import): Set for_test to false.
(func_create_testdir): Set for_test to true.
2007-01-27 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* modules/strcasestr (Files): Remove lib/strcasestr.h.
(Depends-on): Add string.
(Includes): Use <string.h> instead of strcasestr.h.
* modules/string (Makefile.am): Also substitute the value of
REPLACE_STRCASESTR.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Don't define strcasestr here;
assume strcasestr is declared in <string.h> not <strings.h>. Also
set REPLACE_STRCASESTR.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Provide a default value for
REPLACE_STRCASESTR.
* lib/strcasestr.h: Remove file.
* lib/strcasestr.c: Include <string.h> instead of strcasestr.h.
* lib/string_.h (strcasestr): New declaration.
2007-01-27 Bruno Haible <bruno@clisp.org>
* lib/string_.h: Use 'extern'.
2007-01-27 Jim Meyering <jim@meyering.net>
* lib/regex_internal.c (re_string_reconstruct): Remove declaration
of set-but-not-used local, "q".
* lib/mempcpy.c: Include <config.h> before <string.h>.
This fixes a compilation error on HP-UX, due to the system's
"restrict"-using mempcpy prototype.
2007-01-26 Bruno Haible <bruno@clisp.org>
Small optimization.
* lib/javacomp.c: Include c-strstr.h.
(is_envjavac_gcj): Use c_strstr instead of strstr.
* modules/javacomp (Depends-on): Add c-strstr, remove strstr.
2007-01-26 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Unicode string functions): Add the new modules.
* modules/uniconv/u32-strconv-to-locale: New file.
* lib/uniconv/u32-strconv-to-locale.c: New file.
* modules/uniconv/u16-strconv-to-locale: New file.
* lib/uniconv/u16-strconv-to-locale.c: New file.
* modules/uniconv/u8-strconv-to-locale: New file.
* lib/uniconv/u8-strconv-to-locale.c: New file.
* modules/uniconv/u32-strconv-from-locale: New file.
* lib/uniconv/u32-strconv-from-locale.c: New file.
* modules/uniconv/u16-strconv-from-locale: New file.
* lib/uniconv/u16-strconv-from-locale.c: New file.
* modules/uniconv/u8-strconv-from-locale: New file.
* lib/uniconv/u8-strconv-from-locale.c: New file.
* modules/uniconv/u32-strconv-to-enc: New file.
* lib/uniconv/u32-strconv-to-enc.c: New file.
* modules/uniconv/u32-strconv-to-enc-tests: New file.
* tests/uniconv/test-u32-strconv-to-enc.c: New file.
* modules/uniconv/u16-strconv-to-enc: New file.
* lib/uniconv/u16-strconv-to-enc.c: New file.
* lib/uniconv/u-strconv-to-enc.h: New file.
* modules/uniconv/u16-strconv-to-enc-tests: New file.
* tests/uniconv/test-u16-strconv-to-enc.c: New file.
* modules/uniconv/u8-strconv-to-enc: New file.
* lib/uniconv/u8-strconv-to-enc.c: New file.
* modules/uniconv/u8-strconv-to-enc-tests: New file.
* tests/uniconv/test-u8-strconv-to-enc.c: New file.
* modules/uniconv/u32-strconv-from-enc: New file.
* lib/uniconv/u32-strconv-from-enc.c: New file.
* modules/uniconv/u32-strconv-from-enc-tests: New file.
* tests/uniconv/test-u32-strconv-from-enc.c: New file.
* modules/uniconv/u16-strconv-from-enc: New file.
* lib/uniconv/u16-strconv-from-enc.c: New file.
* modules/uniconv/u16-strconv-from-enc-tests: New file.
* tests/uniconv/test-u16-strconv-from-enc.c: New file.
* modules/uniconv/u8-strconv-from-enc: New file.
* lib/uniconv/u8-strconv-from-enc.c: New file.
* lib/uniconv/u-strconv-from-enc.h: New file.
* modules/uniconv/u8-strconv-from-enc-tests: New file.
* tests/uniconv/test-u8-strconv-from-enc.c: New file.
* modules/uniconv/u32-conv-from-enc: New file.
* lib/uniconv/u32-conv-from-enc.c: New file.
* modules/uniconv/u32-conv-from-enc-tests: New file.
* tests/uniconv/test-u32-conv-from-enc.c: New file.
* modules/uniconv/u16-conv-from-enc: New file.
* lib/uniconv/u16-conv-from-enc.c: New file.
* lib/uniconv/u-conv-from-enc.h: New file.
* modules/uniconv/u16-conv-from-enc-tests: New file.
* tests/uniconv/test-u16-conv-from-enc.c: New file.
* modules/uniconv/u8-conv-from-enc: New file.
* lib/uniconv/u8-conv-from-enc.c: New file.
* modules/uniconv/u8-conv-from-enc-tests: New file.
* tests/uniconv/test-u8-conv-from-enc.c: New file.
* modules/uniconv/base: New file.
* lib/uniconv.h: New file.
2007-01-26 Paul Eggert <eggert@cs.ucla.edu>
* doc/gnulib-tool.texi (Initial import): Update to match current
behavior with strdup module.
* lib/.cppi-disable: Remove strcase.h, strdup.h, strndup.h, strnlen.h.
* lib/memmem.h: Remove; all uses removed. This is now done
by <string.h>.
* lib/mempcpy.h: Likewise.
* lib/memrchr.h: Likewise.
* lib/stpcpy.h: Likewise.
* lib/stpncpy.h: Likewise.
* lib/strcase.h: Likewise.
* lib/strchrnul.h: Likewise.
* lib/strdup.h: Likewise.
* lib/strndup.h: Likewise.
* lib/strnlen.h: Likewise.
* lib/strpbrk.h: Likewise.
* lib/strsep.h: Likewise.
* lib/strstr.h: Likewise.
* lib/strtok_r.h: Likewise.
* lib/string_.h: New file.
* lib/argp-namefrob.h: Don't include no-longer-existent include files.
Rely on <string.h> instead.
* lib/canon-host.c: Likewise.
* lib/chdir-long.c: Likewise.
* lib/concatpath.c: Likewise.
* lib/exclude.c: Likewise.
* lib/fchdir.c: Likewise.
* lib/getaddrinfo.c: Likewise.
* lib/getcwd.c: Likewise.
* lib/getsubopt.c: Likewise.
* lib/glob.c: Likewise.
* lib/hard-locale.c: Likewise.
* lib/iconvme.c: Likewise.
* lib/javacomp.c: Likewise.
* lib/mempcpy.c: Likewise.
* lib/memrchr.c: Likewise.
* lib/regex_internal.h: Likewise.
* lib/stpncpy.c: Likewise.
* lib/strcasecmp.c: Likewise.
* lib/strchrnul.c: Likewise.
* lib/strdup.c: Likewise.
* lib/striconv.c: Likewise.
* lib/striconveh.c: Likewise.
* lib/striconveha.c: Likewise.
* lib/strncasecmp.c: Likewise.
* lib/strndup.c: Likewise.
* lib/strnlen.c: Likewise.
* lib/strsep.c: Likewise.
* lib/strstr.c: Likewise.
* lib/strtok_r.c: Likewise.
* lib/userspec.c: Likewise.
* lib/w32spawn.h: Likewise.
* lib/xstrndup.c: Likewise.
* lib/mountlist.c (strstr): Remove decl.
* m4/string_h.m4: New file.
* m4/memmem.m4 (gl_FUNC_MEMMEM): Set HAVE_DECL_MEMMEM if necessary.
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Set HAVE_MEMPCPY if necessary.
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Set HAVE_MEMRCHR
* m4/stpcpy.m4 (gl_FUNC_STPCPY): Set HAVE_STPCPY if necessary.
* m4/stpncpy.m4 (gl_PREREQ_STPNCPY): Set HAVE_STPNCPY if necessary.
* m4/strcase.m4 (gl_FUNC_STRCASECMP):
Set REPLACE_STRCASECMP if necessary.
(gl_FUNC_STRNCASECMP): Set HAVE_DECL_STRNCASECMP if necessary.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Set HAVE_STRCHRNUL if necessary.
* m4/strdup.m4 (gl_FUNC_STRDUP): Set HAVE_DECL_STRDUP if necessary.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_DECL_STRNLEN and
HAVE_DECL_STRDUP if necessary.
(gl_PREREQ_STRNLEN): Don't bother to check for strnlen decl,
since gl_FUNC_STRNDUP does that now.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Set HAVE_DECL_STRNLEN if necessary.
Check for decl here...
(gl_PREREQ_STRNLEN): ... not here.
* m4/strpbrk.m4 (gl_FUNC_STRPBRK): Set HAVE_STRPBRK if necessary.
* m4/strsep.m4 (gl_FUNC_STRSEP): Set HAVE_STRSEP if necessary.
* m4/strstr.m4 (gl_FUNC_STRSTR): Set REPLACE_STRSTR if necessary.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_DECL_STRTOK_R if
necessary.
* modules/string: New file.
* modules/memmem (Files): Remove special-purpose include file.
(Depends-on): Add string.
(Include): Include <string.h>, not the removed file.
* modules/mempcpy: Likewise.
* modules/memrchr: Likewise.
* modules/stpcpy: Likewise.
* modules/stpncpy: Likewise.
* modules/strcase: Likewise.
* modules/strchrnul: Likewise.
* modules/strdup: Likewise.
* modules/strndup: Likewise.
* modules/strnlen: Likewise.
* modules/strpbrk: Likewise.
* modules/strsep: Likewise.
* modules/strstr: Likewise.
* modules/strtok_r: Likewise.
* tests/test-dirname.c: Don't include "strdup.h", since
<string.h> now suffices.
* tests/test-memmem.c: Don't include "memmem.h", since
<string.h> now suffices.
2007-01-25 Bruno Haible <bruno@clisp.org>
* lib/striconveh.c (mem_cd_iconveh_internal): Ignore *lengthp if
*resultp is 0.
* lib/unistr/u16-to-u8.c (u16_to_u8): Fix u8_uctomb invocation.
* lib/unistr/u32-to-u8.c (u32_to_u8): Likewise.
* lib/unistr/u8-to-u16.c (u8_to_u16): Fix u16_uctomb invocation.
* lib/unistr/u32-to-u16.c (u32_to_u16): Likewise.
* modules/unistr/u8-to-u16 (Depends-on): Add missing modules.
* modules/unistr/u8-to-u32 (Depends-on): Add missing modules.
* modules/unistr/u16-to-u8 (Depends-on): Add missing modules.
* modules/unistr/u16-to-u32 (Depends-on): Add missing modules.
* modules/unistr/u32-to-u8 (Depends-on): Add missing modules.
* modules/unistr/u32-to-u16 (Depends-on): Add missing modules.
2007-01-24 Bruno Haible <bruno@clisp.org>
Don't AC_REQUIRE autoconf macros that invoke AC_LIBOBJ. See
<http://lists.gnu.org/r/bug-gnulib/2006-10/msg00279.html>.
* m4/argp.m4 (gl_ARGP): Invoke, don't require, gl_GETOPT_SUBSTITUTE.
* m4/fts.m4 (gl_FUNC_FTS, gl_FUNC_FTS_LGPL): Invoke, don't require,
gl_FUNC_FTS_CORE.
(gl_FUNC_FTS_CORE): Invoke, don't require, gl_FUNC_OPENAT.
* m4/lstat.m4 (gl_FUNC_LSTAT): Invoke, don't require,
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
* m4/memcmp.m4 (gl_FUNC_MEMCMP): Invoke, don't require, AC_FUNC_MEMCMP.
* m4/mktime.m4 (gl_FUNC_MKTIME): Invoke, don't require, AC_FUNC_MKTIME.
* m4/openat.m4 (gl_FUNC_OPENAT): Invoke, don't require,
gl_FUNC_FCHOWNAT.
* m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Invoke, don't require,
gl_FUNC_STRFTIME.
* m4/strtod.m4 (gl_FUNC_STRTOD): Invoke, don't require, AC_FUNC_STRTOD.
Reported by Ralf Wildenhues.
2007-01-24 Bruno Haible <bruno@clisp.org>
Drop AC_REQUIRE calls that are redundant with the module dependencies.
* m4/canon-host.m4 (gl_PREREQ_CANON_HOST): Don't require
gl_GETADDRINFO.
* m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Don't require AM_STDBOOL_H,
gl_FUNC_MEMPCPY, gl_FUNC_OPENAT, gl_FUNC_MEMRCHR.
* m4/openat.m4 (gl_PREREQ_OPENAT): Don't require gl_SAVE_CWD.
2007-01-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Add test for glibc bug 361.
Don't use 'exit'; just return from 'main'.
(_AC_LIBOBJ_FNMATCH): Check for headers and functions just once.
* lib/fnmatch_.h: Readjust white space and comments to match
glibc, to avoid spurious diffs.
2007-01-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/fnmatch_loop.c (internal_fnmatch) [!_LIBC]: #if-out the
2004-12-01 change by Jakub Jelinek, since this code won't compile
if !LIBC. Problem reported by Bob Proulx.
2007-01-23 Bruno Haible <bruno@clisp.org>
* lib/striconveh.c: Include c-strcaseeq.h.
(mem_iconveh, str_iconveh): Use STRCASEEQ instead of c_strcasecmp.
* modules/striconveh (Depends-on): Add c-strcaseeq.
2007-01-23 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (String handling): Add streq, c-strcaseeq.
* modules/c-strcaseeq: New file.
* lib/c-strcaseeq.h: New file.
* modules/streq: New file.
* lib/streq.h: New file.
2007-01-23 Bruno Haible <bruno@clisp.org>
* modules/striconveha-tests: New file.
* tests/test-striconveha.c: New file.
* lib/striconveha.h: Include <stdbool.h>.
(mem_iconveha, str_iconveha): Add 'transliterate' argument.
* lib/striconveha.c: Include allocsa.h, strdup.h, c-strcase.h.
(mem_iconveha_notranslit): Renamed from mem_iconveha.
(mem_iconveha): New function.
(str_iconveha_notranslit): Renamed from str_iconveha.
(str_iconveha): New function.
* modules/striconveha (Depends-on): Add stdbool, allocsa, strdup,
c-strcase.
2007-01-23 Bruno Haible <bruno@clisp.org>
* lib/striconveha.c (mem_iconveha): Fix endless recursion. Try all
encodings without forgiving before trying any encoding with handler.
(str_iconveha): Try all encodings without forgiving before trying any
encoding with handler.
2007-01-23 Paul Eggert <eggert@cs.ucla.edu>
Import the following changes from libc.
2005-10-14 Ulrich Drepper <drepper@redhat.com>
* lib/fnmatch_loop.c: Adjust for changed secondary hash function.
2004-12-01 Jakub Jelinek <jakub@redhat.com>
* lib/fnmatch_loop.c (internal_fnmatch): Clear is_seqval after
normal_bracket label.
2004-09-01 Jakub Jelinek <jakub@redhat.com>
[BZ #361]
* lib/fnmatch_loop.c (FCT): For backslash between brackets, branch
to normal_bracket after fetching the next character.
2007-01-22 Bruno Haible <bruno@clisp.org>
* lib/striconveh.h (mem_cd_iconveh, mem_iconveh): Add 'offsets'
argument.
* lib/striconveh.c (iconv_carefully_1): New function.
(mem_cd_iconveh_internal, mem_cd_iconveh, mem_iconveh): Add 'offsets'
argument.
(str_cd_iconveh): Update.
* lib/striconveha.h (mem_iconveha): Add 'offsets' argument.
* lib/striconveha.c (mem_iconveha): Add 'offsets' argument.
* tests/test-striconveh.c (MAGIC): New macro.
(new_offsets): New function.
(main): Test call with and without offsets.
2007-01-22 Bruno Haible <bruno@clisp.org>
* modules/sys_stat (Makefile.am): Use @MKDIR_P@ instead of $(MKDIR_P).
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
2007-01-22 Paul Eggert <eggert@cs.ucla.edu>
* modules/gettimeofday (License): Change from GPL to LGPL, since
gettimeofday is a library function.
2007-01-22 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/poll.c (rpl_poll): Don't check against FD_SETSIZE under Win32.
2007-01-21 Bruno Haible <bruno@clisp.org>
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P): New macro.
2007-01-21 Bruno Haible <bruno@clisp.org>
* modules/striconveha: New file.
* lib/striconveha.h: New file.
* lib/striconveha.c: New file.
* MODULES.html.sh (Internationalization functions): Add striconveha.
* lib/striconv.c (str_iconv): Optimize the case of an empty input
string.
* lib/striconveh.c (mem_iconveh, str_iconveh): Likewise.
2007-01-21 Bruno Haible <bruno@clisp.org>
* lib/striconv.c (str_iconv): Guarantee errno is set when strdup fails.
* lib/striconveh.c (str_iconveh): Likewise.
2007-01-21 Bruno Haible <bruno@clisp.org>
* lib/striconveh.h (mem_iconveh): New declaration.
* lib/striconveh.c (mem_iconveh): New function.
* tests/test-striconveh.c (main): Add tests for mem_iconveh.
2007-01-21 Bruno Haible <bruno@clisp.org>
* lib/xstriconv.h (xmem_cd_iconv): Change specification.
* lib/striconveh.h (mem_cd_iconveh): Change specification.
* lib/striconveh.c (mem_cd_iconveh): Don't free the user-supplied
original result buffer.
(str_cd_iconveh): Update.
* tests/test-striconveh.c (main): Update.
* lib/striconv.h (mem_cd_iconv): Change specification.
* lib/striconv.c (mem_cd_iconv): Don't free the user-supplied original
result buffer.
(str_cd_iconv): Update.
* tests/test-striconv.c (main): Update.
2007-01-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Fix test whether sed is GNU sed supporting --posix.
2007-01-20 Jim Meyering <jim@meyering.net>
* lib/userspec.c (parse_with_separator): If a user or group string
starts with "+", skip the corresponding name-to-ID look-up, since
such a look-up must fail: user and group names may not include "+".
2007-01-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/poll.c: Include sys/time.h and time.h unconditionally,
since we now assume the sys_time module.
* m4/poll.m4 (gl_PREREQ_POLL): Don't require AC_HEADER_TIME or
check for sys/time.h; no longer needed.
* modules/poll (Depends-on): Depend on sys_time.
2007-01-18 Bruno Haible <bruno@clisp.org>
* m4/mktime.m4 (AC_FUNC_MKTIME): Remove test for <sys/time.h>.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Likewise.
* m4/tempname.m4 (gl_PREREQ_TEMPNAME): Remove tests for sys/time.h and
gettimeofday.
* tests/test-gettimeofday.c: Include <time.h>.
(dummy): Remove variable.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Renamed from
gl_HEADER_SYS_TIME_H.
(gl_HEADER_SYS_TIME_H): New macro.
* lib/sys_time_.h: Test GETTIMEOFDAY_REPLACEMENT instead of
HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY,
gl_FUNC_GETTIMEOFDAY_CLOBBER): Set GETTIMEOFDAY_REPLACEMENT instead of
HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H): Initialize
GETTIMEOFDAY_REPLACEMENT instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE
and GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* modules/sys_time (sys/time.h): Substitute GETTIMEOFDAY_REPLACEMENT
instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and
GETTIMEOFDAY_CLOBBERS_LOCALTIME.
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Undo the
last change; it caused a compilation error when cross-compiling to
Cygwin.
2007-01-18 Jim Meyering <jim@meyering.net>
Use "$(MKDIR_P) sys", not race-prone "test -d sys || mkdir sys".
* modules/sys_stat (Makefile.am): Use "$(MKDIR_P) sys", rather
than the race-prone "test -d sys || mkdir sys".
(configure.ac): Use AC_PROG_MKDIR_P.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_time: Likewise.
2007-01-18 Eric Blake <ebb9@byu.net>
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Also
replace gettimeofday.
* lib/gettimeofday.c (rpl_gettimeofday): Declare with replacement
name, to avoid infinite recursion.
2007-01-17 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Support for systems lacking POSIX:2001): New
module sys_time.
* lib/gethrxtime.c: Include <sys/time.h>, since we can no longer
assume timespec.h defines struct timeval.
* lib/settime.c: Likewise.
* lib/utimens.c: Likewise.
* lib/gettime.c (gettime): Remove test against HAVE_GETTIMEOFDAY,
since we now assume the gettimeofday module.
* lib/tempname.c (__gen_tempname): Likewise.
* lib/gettimeofday.h: Remove.
* lib/gettimeofday.c: Include <sys/time.h> instead of "gettimeofday.h".
Don't include <sys/types.h> and <stdlib.h>; shouldn't be needed.
Include <time.h>, for 'time()'.
(localtime_buffer_addr): Also use this workaround if
TZSET_CLOBBERS_LOCALTIME. Set to a dummy static variable by default,
to simplify the uses. All uses changed.
(localtime, gmtime, tzset, gettimeofday): Reformat slightly so
that #undef is inside {}, and 'const' follows type name consistently.
(tzset): Define replacement only if TZSET_CLOBBERS_LOCALTIME.
(gettimeofday): Do not use the maximum possible value for
tv->tv_usec, since that might break usages other than ls.c.
Instead, we'll leave ls.c alone. This undoes today's patch
by Bruno. Add a compile-time warning for 1s-clock resolution;
we've never observed the problem but might as well keep the
canary.
* lib/nanosleep.c: Include timespec.h first, for interface check.
* lib/nanosleep.c: Include <sys/time.h> unconditionally, since we
now assume the sys_time module.
* lib/tempname.c: Likewise.
* lib/timespec.h: Likewise.
* lib/nanosleep.c: Don't worry about TIME_WITH_SYS_TIME; no longer
needed.
* lib/strftime.c: Likewise.
* lib/timespec.h: Likewise.
* lib/posixtm.c: Include posixtm.h first, for interface check.
Don't worry about TM_IN_SYS_TIME; that's wayyy obsolete.
* lib/posixtm.h: Include stdbool.h and time.h, for proper interface.
* lib/strftime.c: Don't include <sys/types.h>; shouldn't be needed.
* lib/sys_time_.h: New file.
* lib/timespec.h (struct timespec): Use long int, not long.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY):
(gl_FUNC_GETTIMEOFDAY_CLOBBER, gl_PREREQ_GETTIMEOFDAY):
Remove obsolescent call to AC_HEADER_TIME.
* m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Likewise.
* m4/timespec.m4 (gl_TIMESPEC, gl_CHECK_TYPE_STRUCT_TIMESPEC):
Likewise.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise.
* m4/utimbuf.m4 (gl_CHECK_TYPE_STRUCT_UTIMBUF): Likewise.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Move sys/time.h tests
into the sys_time module. Check for gettimeofday just once.
Prefix our variables with gl_, not with ac_ or jm_. Tighten test
for gettimeofday signature to just check the signature. Merely
compile it, since linking doesn't test signature. Improve test for
whether gettimeofday.o is actually needed.
(gl_FUNC_GETTIMEOFDAY_CLOBBER): Renamed from
AC_FUNC_GETTIMEOFDAY_CLOBBER. All uses changed. Use
AC_RUN_IFELSE rather than AC_TRY_RUN. If clobbering, set
and define GETTIMEOFDAY_CLOBBERS_LOCALTIME.
(gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Don't define
GETTIMEOFDAY_CLOBBERS_LOCALTIME; that's gl_FUNC_GETTIMEOFDAY_CLOBBER's
job. Don't define tzset; that's gl_FUNC_TZSET_CLOBBER's job.
* m4/mktime.m4 (AC_FUNC_MKTIME): Just include <time.h> rather
than worrying about sys/time.h.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP):
Don't bother worrying about TIME_WITH_SYS_TIME.
* m4/stat-time.m4 (gl_STAT_TIME): Likewise.
* m4/posixtm.m4 (gl_POSIXTM): Remove obsolescent call to AC_STRUCT_TM.
* m4/sys_time_h.m4: New file.
* m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Require gl_HEADER_SYS_TIME_H.
Don't include sys/time.h. Return from main rather than exiting.
Define TZSET_CLOBBERS_LOCALTIME, for consistency with other names;
all uses changed.
* modules/gethrxtime (Depends-on): Add sys_time.
* modules/gettime (Depends-on): Likewise.
* modules/gettimeofday (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* modules/tempname (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
* modules/gettimeofday (Files): Remove lib/gettimeofday.h.
(Include): Change back to <sys/time.h>.
(Maintainer): Add self.
* modules/sys_time: New file.
* modules/tempname (Depends-on): Add gettimeofday.
* tests/test-gettimeofday.c: Include <sys/time.h>
rather than gettimeofday.h.
2007-01-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_license): Revert last patch. Instead, let
the license default to GPL.
(func_create_testdir): Don't complain if a module is LGPL and its
tests module depends on GPLed modules.
2007-01-17 Bruno Haible <bruno@clisp.org>
* lib/gettimeofday.c (gettimeofday): Add code for the case
HAVE_GETTIMEOFDAY && !GETTIMEOFDAY_CLOBBERS_LOCALTIME. Use the
maximum possible value for tv->tv_usec, rather than the minimum one.
2005-10-08 Martin Lambers <marlam@marlam.de>
2005-10-08 Paul Eggert <eggert@cs.ucla.edu>
2007-01-16 Bruno Haible <bruno@clisp.org>
* modules/gettimeofday (Files): Add lib/gettimeofday.h.
(configure.ac): Remove AC_FUNC_GETTIMEOFDAY_CLOBBER. Add
gl_FUNC_GETTIMEOFDAY.
(Include): Add gettimeofday.h.
* m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): New macro.
(AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't invoke gl_PREREQ_GETTIMEOFDAY.
(gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Define
GETTIMEOFDAY_CLOBBERS_LOCALTIME. Invoke gl_PREREQ_GETTIMEOFDAY here.
(gl_PREREQ_GETTIMEOFDAY): Check for <sys/timeb.h> and _ftime.
* lib/gettimeofday.h: New file.
* lib/gettimeofday.c: Include <sys/timeb.h>.
(localtime_buffer_addr, rpl_localtime, rpl_gmtime, rpl_tzset): Define
only if GETTIMEOFDAY_CLOBBERS_LOCALTIME.
(rpl_gettimeofday) [!HAVE_GETTIMEOFDAY]: Use _ftime() when available;
fall back on time().
* tests/test-gettimeofday.c: New file.
* modules/gettimeofday-tests: New file.
2007-01-16 Eric Blake <ebb9@byu.net>
* modules/fnmatch (Depends-on): Depend on wchar.
* lib/fnmatch.c (WIDE_CHAR_SUPPORT): Assume <wchar.h>.
* m4/fnmatch.m4: Likewise.
* modules/mbchar (Makefile.am): Assume <wchar.h>.
* m4/mbchar.m4: Likewise.
* modules/mbswidth (Depends-on): Depend on wchar.
* lib/mbswidth.c: Assume <wchar.h>.
* m4/mbswidth.m4: Likewise.
* modules/quotearg (Depends-on): Depend on wchar.
* lib/quotearg.c: Assume <wchar.h>.
* m4/quotearg.m4: Likewise.
* modules/regex (Depends-on): Depend on wchar.
* lib/regex_internal.h: Assume <wchar.h>.
* m4/regex.m4: Likewise.
* modules/stdint (Depends-on): Depend on wchar.
* lib/stdint_.h [!defined WCHAR_MIN]: Assume <wchar.h>.
* m4/stdint.m4: Likewise.
* tests/test-stdint.c [HAVE_WINT_T]: Likewise.
* modules/strftime (Depends-on): Depend on wchar.
* lib/strftime.c (DO_MULTIBYTE): Assume <wchar.h>.
* modules/strtol (Depends-on): Depend on wchar.
* lib/strtol.c: Assume <wchar.h>.
* modules/wcwidth (Depends-on): Depend on wchar.
* lib/wcwidth.h: Assume <wchar.h>.
* m4/wcwidth.m4: Likewise.
2007-01-16 Bruno Haible <bruno@clisp.org>
* modules/csharpexec-script: New, created from...
* modules/csharpexec: ... this.
2007-01-16 Paolo Bonzini <bonzini@gnu.org>
* modules/javaexec-script: New, created from...
* modules/javaexec: ... this.
2007-01-16 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* modules/poll (Dependencies): Add sys_select.
2007-01-15 Jim Meyering <jim@meyering.net>
* m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct-
redefinition bug when using both <utmp.h> and <utmpx.h> headers.
* lib/readutmp.h: Likewise. Reported by Daniel Richard G. in
<http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/9415>.
2007-01-15 Bruno Haible <bruno@clisp.org>
* modules/striconveh: New file.
* lib/striconveh.h: New file.
* lib/striconveh.c: New file.
* MODULES.html.sh (Internationalization functions): Add striconveh.
* modules/striconveh-tests: New file.
* tests/test-striconveh.c: New file.
2007-01-15 Bruno Haible <bruno@clisp.org>
* lib/striconv.c (str_cd_iconv): Use the first algorithm if iconv is
not from GNU libiconv or GNU libc.
2007-01-15 Bruno Haible <bruno@clisp.org>
* doc/gnulib-intro.texi (Copyright): Explain the different license
terms for module descriptions, autoconf macros, tests, documentation.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/striconv-tests: New file.
* tests/test-striconv.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/iconv-tests: New file.
* tests/test-iconv.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_license): For test modules, use the license of
the main module.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/iconv (Include): Clarify that <iconv.h> can only be included
if iconv is found to exist.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/c-ctype-tests: New file.
* tests/test-c-ctype.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/binary-io-tests: New file.
* tests/test-binary-io.sh: New file.
* tests/test-binary-io.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/array-oset-tests: New file.
* tests/test-array_oset.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/array-list-tests: New file.
* tests/test-array_list.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Don't unnecessarily run configure
and make.
Reported by Simon Josefsson in
<http://lists.gnu.org/r/bug-gnulib/2007-01/msg00139.html>
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/allocsa-tests: New file.
* tests/test-allocsa.c: New file.
2007-01-14 Bruno Haible <bruno@clisp.org>
* modules/fchdir (Depends-on): Add absolute-header.
* modules/unistd (Depends-on): Likewise.
2006-12-30 Bruno Haible <bruno@clisp.org>
* modules/fchdir: New file.
* modules/unistd (Files): Add lib/unistd_.h.
(Makefile.am): Generate unistd.h from unistd_.h.
* lib/fchdir.c: New file.
* lib/dirent_.h: New file.
* lib/unistd_.h: New file.
* lib/fcntl_.h (open) [FCHDIR_REPLACEMENT]: New replacement.
* m4/fchdir.m4: New file.
* m4/unistd_h.m4 (gl_PREREQ_UNISTD): New macro.
(gl_HEADER_UNISTD): Invoke it.
* lib/dup-safer.c (dup_safer) [FCHDIR_REPLACEMENT]: Use the dup
function.
* lib/backupfile.c (opendir, closedir): Undefine.
* lib/chown.c (open, close): Undefine.
* lib/clean-temp.c (open, close): Undefine.
* lib/copy-file.c (open, close): Undefine.
* lib/execute.c (open, close): Undefine.
* lib/fsusage.c (open, close): Undefine.
* lib/gc-gnulib.c (open, close): Undefine.
* lib/getcwd.c (opendir, closedir): Undefine.
* lib/glob.c (opendir, closedir): Undefine.
* lib/javacomp.c (open, close): Undefine.
* lib/mountlist.c (open, close, opendir, closedir): Undefine.
* lib/openat-proc.c (open, close): Undefine.
* lib/pagealign_alloc.c (open, close): Undefine.
* lib/pipe.c (open, close): Undefine.
* lib/progreloc.c (open, close): Undefine.
* lib/savedir.c (opendir, closedir): Undefine.
* lib/utime.c (open, close): Undefine.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add fchdir.
2007-01-10 Bruno Haible <bruno@clisp.org>
* lib/striconv.c (mem_cd_iconv): Align the temporary buffer.
2007-01-12 Eric Blake <ebb9@byu.net>
Provide a robust <wchar.h>. Further simplifications are now
possible in other modules, but not included here.
* modules/wchar: New module.
* m4/wchar.m4: New file.
* lib/wchar_.h: Likewise.
* modules/mbchar (Depends-on): Depend on wchar, as the first use
of the new module.
* MODULES.html.sh (Extended multibyte and wide character utilities):
New section.
2007-01-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/xreadlink.c (SYMLINK_MAX) [!defined SYMLINK_MAX]: Define
to a reasonable default for memory allocation.
(xreadlink): Don't allocate a huge buffer, to work around a buggy
file system that reports garbage st_size values for symlinks.
Problem reported by Liyang Hu.
2007-01-11 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_all_modules): Exclude all .* files (e.g.,
Emacs .#* auto-save files).
2007-01-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_all_modules): Exclude all files inside the CVS
directory.
2007-01-10 Paul Eggert <eggert@cs.ucla.edu>
Use @...@ consistently in lib/wctype_.h.
* lib/wctype_.h [HAVE_WINT_T]: Go back to using @...@, but rely
on it being set to 1 or 0.
* m4/wctype.m4 (gl_WCTYPE_H): Set HAVE_WINT_T to 1 or 0, and
go back to AC_SUBSTing it.
* modules/wctype (Makefile.am): Undo previous change.
2007-01-10 Eric Blake <ebb9@byu.net>
* lib/wctype_.h [HAVE_WINT_T]: Rely on AC_DEFINE.
* m4/wctype.m4 (gl_WCTYPE_H): No need to AC_SUBST(HAVE_WINT_T).
* modules/wctype (Makefile.am): Likewise.
Reported by Chris McGuire.
2007-01-10 Jim Meyering <jim@meyering.net>
fts.c: a small readability/maintainability improvement
* lib/fts.c (fts_read): Make this code slightly more readable and
maintainable by hoisting the "sp->fts_cur = p" assignments to
immediately follow the statements that set P. Derived from
the patch by Miloslav Trmac in http://bugzilla.redhat.com/222089.
2007-01-10 Eric Blake <ebb9@byu.net>
* lib/wctype_.h [HAVE_WINT_T]: Include <stddef.h> before
<wchar.h>, to work around BSDI bug in BSD/OS 4.0.1.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
* m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise.
Reported by Chris McGuire.
2007-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_all_modules): Use POSIX conforming escaping
in sed script.
2007-01-09 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Accept options --cvs-urls, --git-urls.
(repo_url_prefix, repo_url_suffix, repo_url_suffix_repl): New
variables.
(func_module): Use them.
2007-01-09 Bruno Haible <bruno@clisp.org>
* modules/unistr/base: New file.
* lib/unistr.h: New file.
* modules/unistr/u8-to-u16: New file.
* lib/unistr/u8-to-u16.c: New file.
* modules/unistr/u8-to-u32: New file.
* lib/unistr/u8-to-u32.c: New file.
* modules/unistr/u16-to-u8: New file.
* lib/unistr/u16-to-u8.c: New file.
* modules/unistr/u16-to-u32: New file.
* lib/unistr/u16-to-u32.c: New file.
* modules/unistr/u32-to-u8: New file.
* lib/unistr/u32-to-u8.c: New file.
* modules/unistr/u32-to-u16: New file.
* lib/unistr/u32-to-u16.c: New file.
* modules/unistr/u8-check: New file.
* modules/unistr/u16-check: New file.
* modules/unistr/u32-check: New file.
* lib/unistr/u8-check.c: New file.
* lib/unistr/u16-check.c: New file.
* lib/unistr/u32-check.c: New file.
* modules/unistr/u8-chr: New file.
* modules/unistr/u16-chr: New file.
* modules/unistr/u32-chr: New file.
* lib/unistr/u8-chr.c: New file.
* lib/unistr/u16-chr.c: New file.
* lib/unistr/u32-chr.c: New file.
* modules/unistr/u8-cmp: New file.
* modules/unistr/u16-cmp: New file.
* modules/unistr/u32-cmp: New file.
* lib/unistr/u8-cmp.c: New file.
* lib/unistr/u16-cmp.c: New file.
* lib/unistr/u32-cmp.c: New file.
* modules/unistr/u8-cpy: New file.
* modules/unistr/u16-cpy: New file.
* modules/unistr/u32-cpy: New file.
* lib/unistr/u8-cpy.c: New file.
* lib/unistr/u16-cpy.c: New file.
* lib/unistr/u32-cpy.c: New file.
* lib/unistr/u-cpy.h: New file.
* modules/unistr/u8-cpy-alloc: New file.
* modules/unistr/u16-cpy-alloc: New file.
* modules/unistr/u32-cpy-alloc: New file.
* lib/unistr/u8-cpy-alloc.c: New file.
* lib/unistr/u16-cpy-alloc.c: New file.
* lib/unistr/u32-cpy-alloc.c: New file.
* lib/unistr/u-cpy-alloc.h: New file.
* modules/unistr/u8-endswith: New file.
* modules/unistr/u16-endswith: New file.
* modules/unistr/u32-endswith: New file.
* lib/unistr/u8-endswith.c: New file.
* lib/unistr/u16-endswith.c: New file.
* lib/unistr/u32-endswith.c: New file.
* lib/unistr/u-endswith.h: New file.
* modules/unistr/u8-mblen: New file.
* modules/unistr/u16-mblen: New file.
* modules/unistr/u32-mblen: New file.
* lib/unistr/u8-mblen.c: New file.
* lib/unistr/u16-mblen.c: New file.
* lib/unistr/u32-mblen.c: New file.
* modules/unistr/u8-mbtouc: New file.
* modules/unistr/u16-mbtouc: New file.
* modules/unistr/u32-mbtouc: New file.
* lib/unistr/u8-mbtouc.c: New file.
* lib/unistr/u16-mbtouc.c: New file.
* lib/unistr/u32-mbtouc.c: New file.
* modules/unistr/u8-mbtouc-safe: New file.
* modules/unistr/u16-mbtouc-safe: New file.
* modules/unistr/u32-mbtouc-safe: New file.
* lib/unistr/u8-mbtouc-safe.c: New file.
* lib/unistr/u16-mbtouc-safe.c: New file.
* lib/unistr/u32-mbtouc-safe.c: New file.
* modules/unistr/u8-move: New file.
* modules/unistr/u16-move: New file.
* modules/unistr/u32-move: New file.
* lib/unistr/u8-move.c: New file.
* lib/unistr/u16-move.c: New file.
* lib/unistr/u32-move.c: New file.
* lib/unistr/u-move.h: New file.
* modules/unistr/u8-next: New file.
* modules/unistr/u16-next: New file.
* modules/unistr/u32-next: New file.
* lib/unistr/u8-next.c: New file.
* lib/unistr/u16-next.c: New file.
* lib/unistr/u32-next.c: New file.
* modules/unistr/u8-prev: New file.
* modules/unistr/u16-prev: New file.
* modules/unistr/u32-prev: New file.
* lib/unistr/u8-prev.c: New file.
* lib/unistr/u16-prev.c: New file.
* lib/unistr/u32-prev.c: New file.
* modules/unistr/u8-set: New file.
* modules/unistr/u16-set: New file.
* modules/unistr/u32-set: New file.
* lib/unistr/u8-set.c: New file.
* lib/unistr/u16-set.c: New file.
* lib/unistr/u32-set.c: New file.
* lib/unistr/u-set.h: New file.
* modules/unistr/u8-startswith: New file.
* modules/unistr/u16-startswith: New file.
* modules/unistr/u32-startswith: New file.
* lib/unistr/u8-startswith.c: New file.
* lib/unistr/u16-startswith.c: New file.
* lib/unistr/u32-startswith.c: New file.
* lib/unistr/u-startswith.h: New file.
* modules/unistr/u8-stpcpy: New file.
* modules/unistr/u16-stpcpy: New file.
* modules/unistr/u32-stpcpy: New file.
* lib/unistr/u8-stpcpy.c: New file.
* lib/unistr/u16-stpcpy.c: New file.
* lib/unistr/u32-stpcpy.c: New file.
* lib/unistr/u-stpcpy.h: New file.
* modules/unistr/u8-stpncpy: New file.
* modules/unistr/u16-stpncpy: New file.
* modules/unistr/u32-stpncpy: New file.
* lib/unistr/u8-stpncpy.c: New file.
* lib/unistr/u16-stpncpy.c: New file.
* lib/unistr/u32-stpncpy.c: New file.
* lib/unistr/u-stpncpy.h: New file.
* modules/unistr/u8-strcat: New file.
* modules/unistr/u16-strcat: New file.
* modules/unistr/u32-strcat: New file.
* lib/unistr/u8-strcat.c: New file.
* lib/unistr/u16-strcat.c: New file.
* lib/unistr/u32-strcat.c: New file.
* lib/unistr/u-strcat.h: New file.
* modules/unistr/u8-strchr: New file.
* modules/unistr/u16-strchr: New file.
* modules/unistr/u32-strchr: New file.
* lib/unistr/u8-strchr.c: New file.
* lib/unistr/u16-strchr.c: New file.
* lib/unistr/u32-strchr.c: New file.
* modules/unistr/u8-strcmp: New file.
* modules/unistr/u16-strcmp: New file.
* modules/unistr/u32-strcmp: New file.
* lib/unistr/u8-strcmp.c: New file.
* lib/unistr/u16-strcmp.c: New file.
* lib/unistr/u32-strcmp.c: New file.
* modules/unistr/u8-strcpy: New file.
* modules/unistr/u16-strcpy: New file.
* modules/unistr/u32-strcpy: New file.
* lib/unistr/u8-strcpy.c: New file.
* lib/unistr/u16-strcpy.c: New file.
* lib/unistr/u32-strcpy.c: New file.
* lib/unistr/u-strcpy.h: New file.
* modules/unistr/u8-strcspn: New file.
* modules/unistr/u16-strcspn: New file.
* modules/unistr/u32-strcspn: New file.
* lib/unistr/u8-strcspn.c: New file.
* lib/unistr/u16-strcspn.c: New file.
* lib/unistr/u32-strcspn.c: New file.
* lib/unistr/u-strcspn.h: New file.
* modules/unistr/u8-strdup: New file.
* modules/unistr/u16-strdup: New file.
* modules/unistr/u32-strdup: New file.
* lib/unistr/u8-strdup.c: New file.
* lib/unistr/u16-strdup.c: New file.
* lib/unistr/u32-strdup.c: New file.
* lib/unistr/u-strdup.h: New file.
* modules/unistr/u8-strlen: New file.
* modules/unistr/u16-strlen: New file.
* modules/unistr/u32-strlen: New file.
* lib/unistr/u8-strlen.c: New file.
* lib/unistr/u16-strlen.c: New file.
* lib/unistr/u32-strlen.c: New file.
* lib/unistr/u-strlen.h: New file.
* modules/unistr/u8-strmblen: New file.
* modules/unistr/u16-strmblen: New file.
* modules/unistr/u32-strmblen: New file.
* lib/unistr/u8-strmblen.c: New file.
* lib/unistr/u16-strmblen.c: New file.
* lib/unistr/u32-strmblen.c: New file.
* modules/unistr/u8-strmbtouc: New file.
* modules/unistr/u16-strmbtouc: New file.
* modules/unistr/u32-strmbtouc: New file.
* lib/unistr/u8-strmbtouc.c: New file.
* lib/unistr/u16-strmbtouc.c: New file.
* lib/unistr/u32-strmbtouc.c: New file.
* modules/unistr/u8-strncat: New file.
* modules/unistr/u16-strncat: New file.
* modules/unistr/u32-strncat: New file.
* lib/unistr/u8-strncat.c: New file.
* lib/unistr/u16-strncat.c: New file.
* lib/unistr/u32-strncat.c: New file.
* lib/unistr/u-strncat.h: New file.
* modules/unistr/u8-strncmp: New file.
* modules/unistr/u16-strncmp: New file.
* modules/unistr/u32-strncmp: New file.
* lib/unistr/u8-strncmp.c: New file.
* lib/unistr/u16-strncmp.c: New file.
* lib/unistr/u32-strncmp.c: New file.
* modules/unistr/u8-strncpy: New file.
* modules/unistr/u16-strncpy: New file.
* modules/unistr/u32-strncpy: New file.
* lib/unistr/u8-strncpy.c: New file.
* lib/unistr/u16-strncpy.c: New file.
* lib/unistr/u32-strncpy.c: New file.
* lib/unistr/u-strncpy.h: New file.
* modules/unistr/u8-strnlen: New file.
* modules/unistr/u16-strnlen: New file.
* modules/unistr/u32-strnlen: New file.
* lib/unistr/u8-strnlen.c: New file.
* lib/unistr/u16-strnlen.c: New file.
* lib/unistr/u32-strnlen.c: New file.
* lib/unistr/u-strnlen.h: New file.
* modules/unistr/u8-strpbrk: New file.
* modules/unistr/u16-strpbrk: New file.
* modules/unistr/u32-strpbrk: New file.
* lib/unistr/u8-strpbrk.c: New file.
* lib/unistr/u16-strpbrk.c: New file.
* lib/unistr/u32-strpbrk.c: New file.
* lib/unistr/u-strpbrk.h: New file.
* modules/unistr/u8-strrchr: New file.
* modules/unistr/u16-strrchr: New file.
* modules/unistr/u32-strrchr: New file.
* lib/unistr/u8-strrchr.c: New file.
* lib/unistr/u16-strrchr.c: New file.
* lib/unistr/u32-strrchr.c: New file.
* modules/unistr/u8-strspn: New file.
* modules/unistr/u16-strspn: New file.
* modules/unistr/u32-strspn: New file.
* lib/unistr/u8-strspn.c: New file.
* lib/unistr/u16-strspn.c: New file.
* lib/unistr/u32-strspn.c: New file.
* lib/unistr/u-strspn.h: New file.
* modules/unistr/u8-strstr: New file.
* modules/unistr/u16-strstr: New file.
* modules/unistr/u32-strstr: New file.
* lib/unistr/u8-strstr.c: New file.
* lib/unistr/u16-strstr.c: New file.
* lib/unistr/u32-strstr.c: New file.
* lib/unistr/u-strstr.h: New file.
* modules/unistr/u8-strtok: New file.
* modules/unistr/u16-strtok: New file.
* modules/unistr/u32-strtok: New file.
* lib/unistr/u8-strtok.c: New file.
* lib/unistr/u16-strtok.c: New file.
* lib/unistr/u32-strtok.c: New file.
* lib/unistr/u-strtok.h: New file.
* modules/unistr/u8-uctomb: New file.
* modules/unistr/u16-uctomb: New file.
* modules/unistr/u32-uctomb: New file.
* lib/unistr/u8-uctomb.c: New file.
* lib/unistr/u16-uctomb.c: New file.
* lib/unistr/u32-uctomb.c: New file.
* MODULES.html.sh (Unicode string functions): Add the new modules.
2007-01-08 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_all_modules): Use find, not ls, to traverse the
modules directory. Filter out CVS, ChangeLog, COPYING, README also from
subdirectories.
2007-01-08 Karl Berry <karl@gnu.org>
* doc/error.texi: mention that main() fns must set program_name
when progname is used.
2007-01-08 Paul Eggert <eggert@cs.ucla.edu>
* m4/wctype.m4 (gl_WCTYPE_H): Compute ABSOLUTE_WCTYPE_H even if
WCTYPE_H is empty, for the benefit of builds from non-distclean
directories. Problem reported by Eric Blake in
<http://lists.gnu.org/r/bug-gnulib/2007-01/msg00157.html>.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Remove
PROVIDE_CANONICALIZE_FILENAME_MODE macro definition.
* lib/canonicalize.h: Test GNULIB_CANONICALIZE instead of
PROVIDE_CANONICALIZE_FILENAME_MODE.
* modules/canonicalize (configure.ac): Use gl_MODULE_INDICATOR.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/fts.m4 (gl_FUNC_FTS_LGPL): Remove _LGPL_PACKAGE macro definition.
* lib/fts_.h (_LGPL_PACKAGE): Remove macro.
Use !GNULIB_FTS instead of _LGPL_PACKAGE.
* lib/fts.c: Likewise.
* modules/fts (configure.ac): Use gl_MODULE_INDICATOR.
2006-12-25 Bruno Haible <bruno@clisp.org>
* modules/utf8-ucs4-safe: New file.
* lib/utf8-ucs4-safe.h: New file.
* lib/unistr/utf8-ucs4-safe.c: New file.
* modules/utf16-ucs4-safe: New file.
* lib/utf16-ucs4-safe.h: New file.
* lib/unistr/utf16-ucs4-safe.c: New file.
* MODULES.html.sh (Unicode string functions): Add the new modules.
2007-01-08 Bruno Haible <bruno@clisp.org>
* modules/utf8-ucs4 (Files, lib_SOURCES): Add unistr/utf8-ucs4.c.
(Depends-on): Add unitypes.
* lib/utf8-ucs4.h: Add double-inclusion guard. Include unitypes.h.
(u8_mbtouc_aux): Move out to separate file.
(u8_mbtouc): Use ucs4_t, uint8_t types.
* lib/unistr/utf8-ucs4.c: New file.
* modules/utf16-ucs4 (Files, lib_SOURCES): Add unistr/utf16-ucs4.c.
(Depends-on): Add unitypes.
* lib/utf16-ucs4.h: Add double-inclusion guard. Include unitypes.h.
(u16_mbtouc_aux): Move out to separate file.
(u16_mbtouc): Use ucs4_t, uint16_t types.
* lib/unistr/utf16-ucs4.c: New file.
* modules/ucs4-utf8 (Files, lib_SOURCES): Add unistr/ucs4-utf8.c.
(Depends-on): Add unitypes.
* lib/ucs4-utf8.h: Add double-inclusion guard. Include unitypes.h.
(u8_uctomb_aux): Move out to separate file.
(u8_uctomb): Use ucs4_t, uint8_t types.
* lib/unistr/ucs4-utf8.c: New file.
* modules/ucs4-utf16 (Files, lib_SOURCES): Add unistr/ucs4-utf16.c.
(Depends-on): Add unitypes.
* lib/ucs4-utf16.h: Add double-inclusion guard. Include unitypes.h.
(u16_uctomb_aux): Move out to separate file.
(u16_uctomb): Use ucs4_t, uint16_t types.
* lib/unistr/ucs4-utf16.c: New file.
2006-12-25 Bruno Haible <bruno@clisp.org>
* modules/unitypes: New file.
* lib/unitypes.h: New file.
* MODULES.html.sh (func_all_modules): New section "Unicode string
functions". Move ucs4-utf8, ucs4-utf16, utf8-ucs4, utf16-ucs4 to
this section. Add unitypes.
2007-01-08 Bruno Haible <bruno@clisp.org>
Avoid variable names that conflict with those from libtool.
* m4/lib-link.m4 (AC_LIB_RPATH, AC_LIB_LINKFLAGS_BODY,
AC_LIB_LINKFLAGS_FROM_LIBS): Rename libext to acl_libext,
shlibext to acl_shlibext, libname_spec to acl_libname_spec,
library_names_spec to acl_library_names_spec, hardcode_* to
acl_hardcode_*.
Reported by Ralf Wildenhues.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/gc-arcfour.m4 (gl_GC_ARCFOUR): Remove GC_USE_ARCFOUR macro
definition.
* m4/gc-arctwo.m4 (gl_GC_ARCTWO): Remove GC_USE_ARCTWO macro
definition.
* m4/gc-des.m4 (gl_GC_DES): Remove GC_USE_DES macro definition.
* m4/gc-hmac-md5.m4 (gl_GC_HMAC_MD5): Remove GC_USE_HMAC_MD5 macro
definition.
* m4/gc-hmac-sha1.m4 (gl_GC_HMAC_SHA1): Remove GC_USE_HMAC_SHA1 macro
definition.
* m4/gc-md2.m4 (gl_GC_MD2): Remove GC_USE_MD2 macro definition.
* m4/gc-md4.m4 (gl_GC_MD4): Remove GC_USE_MD4 macro definition.
* m4/gc-md5.m4 (gl_GC_MD5): Remove GC_USE_MD5 macro definition.
* m4/gc-random.m4 (gl_GC_RANDOM): Remove GC_USE_RANDOM macro
definition.
* m4/gc-rijndael.m4 (gl_GC_RIJNDAEL): Remove GC_USE_RIJNDAEL macro
definition.
* m4/gc-sha1.m4 (gl_GC_SHA1): Remove GC_USE_SHA1 macro definition.
* lib/gc-gnulib.c: Use GNULIB_GC_<algorithm> instead of
GC_USE_<algorithm>.
* lib/gc-libgcrypt.c: Likewise.
* modules/gc-arcfour (configure.ac): Use gl_MODULE_INDICATOR.
* modules/gc-arctwo (configure.ac): Likewise.
* modules/gc-des (configure.ac): Likewise.
* modules/gc-hmac-md5 (configure.ac): Likewise.
* modules/gc-hmac-sha1 (configure.ac): Likewise.
* modules/gc-md2 (configure.ac): Likewise.
* modules/gc-md4 (configure.ac): Likewise.
* modules/gc-md5 (configure.ac): Likewise.
* modules/gc-random (configure.ac): Likewise.
* modules/gc-rijndael (configure.ac): Likewise.
* modules/gc-sha1 (configure.ac): Likewise.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/close-stream.m4 (gl_CLOSE_STREAM): Remove GNULIB_CLOSE_STREAM
macro definition.
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Remove GNULIB_FCNTL_SAFER macro
definition.
* m4/stdio-safer.m4 (gl_FOPEN_SAFER): Remove GNULIB_FOPEN_SAFER macro
definition.
* modules/close-stream (configure.ac): Invoke gl_MODULE_INDICATOR.
* modules/fcntl-safer (configure.ac): Likewise.
* modules/fopen-safer (configure.ac): Likewise.
* modules/fwriteerror (configure.ac): Likewise. Remove explicit
GNULIB_FWRITEERROR macro definition.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/gnulib-common.m4: New file.
* gnulib-tool (func_get_autoconf_snippet): Undo last change.
(func_get_filelist): Add m4/gnulib-common.m4.
2007-01-08 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Simplify the sorting
command.
2007-01-08 Jim Meyering <jim@meyering.net>
Use a more robust test for a "can't happen" condition.
* lib/fts.c (fts_read): Revert the change of 2006-11-22, since it
narrowed the st_size value. Presuming the "can't happen" condition
is true, that narrowing could conceivably convert an invalid st_size
value into a valid one. Instead, use a change based on Matthew
Woehlke's original patch.
Slight readability improvement: use an assert-like macro
in place of literal "abort ()" uses.
* lib/fts.c (fts_assert): Define.
(fts_set_stat_required, cwd_advance_fd, fts_read, fd_ring_check):
Use this macro instead of a bare 'abort'.
2007-01-05 Paul Eggert <eggert@cs.ucla.edu>
Don't worry about using IRIX 5.3's wctype.h broken definitions;
simply work around them.
* lib/wctype_.h: Remove test for HAVE_WCTYPE_CTMP_BUG.
(iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower):
(iswprint, iswpunct, iswspace, iswupper, iswxdigit): Undef before
declaring.
Don't bother to define as macros, since the standard doesn't require it.
* m4/wctype.m4 (WCTYPE_H, ABSOLUTE_WCTYPE_H): Simplify, since we no
longer worry about IRIX 5.3.
(HAVE_WCTYPE_CTMP_BUG): Remove.
2007-01-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/wctype_.h (_ctmp_) [HAVE_WCTYPE_CTMP_BUG]: Now of type wchar_t,
not wint_t. Also, include <ctype.h>, to fix another IRIX bug.
* m4/wctype.m4 (gl_WCTYPE_H): Likewise.
Problems reported by Georg Schwarz for IRIX 5.3.
* gnulib-tool (autoconf_minversion): Take the maximum version number
found, not the minimum. Problem reported by James Youngman.
2007-01-03 Karl Berry <karl@gnu.org>
* doc/error.texi: new file, explaining interaction with progname.
* doc/gnulib.texi: include it. Update copyright.
2007-01-03 Simon Josefsson <simon@josefsson.org>
* gnulib-tool (func_create_testdir): Run AC_CANONICAL_BUILD and
AC_CANONICAL_HOST, to improve autobuild outputs.
2007-01-03 Paolo Bonzini <bonzini@gnu.org>
Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/poll.c (poll): Use recv on Mac OS X to distinguish connected
sockets, server sockets, and other file descriptors. Count errors
to compute the return value. Reorder the code a bit to be easier
to follow. Don't set event bits that were not requested (except
POLLERR and POLLHUP).
2007-01-01 Bruno Haible <bruno@clisp.org>
* modules/lchmod (Include): Require lchmod.h, not lchown.h.
2007-01-03 Jim Meyering <jim@meyering.net>
* modules/fts-lgpl (Depends-on): Add i-ring. Reported by Bruno Haible.
2007-01-02 Bruno Haible <bruno@clisp.org>
* modules/settime (Include): Require timespec.h.
* modules/nanosleep (Include): Likewise.
2007-01-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_copyright_notice): Bump year.
(func_get_autoconf_snippet): Emit a GNULIB_<modulename> macro.
2007-01-01 Bruno Haible <bruno@clisp.org>
Improve support for OpenBSD.
* build-aux/config.rpath (libname_spec): Export.
(library_names_spec): New variable. Export.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Extract libname_spec and
library_names_spec from the config.rpath output. Locate shared library
through the name pattern in library_names_spec.
2007-01-01 Eric Blake <ebb9@byu.net>
* lib/version-etc.c (COPYRIGHT_YEAR): Bump for new year.
2006-12-30 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Rewrite so as not to assume GNU sort or "tail -1". Also, don't
assume the C locale, and avoid an "eval" that could cause trouble.
Problem with SORT reported by Bob Proulx.
* lib/getpagesize.h (getpagesize) [defined __amigaos4__]:
Define. Trivial patch from Henning Nielsen Lund, originally
sent to bug-grep@gnu.org today.
2006-12-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/acl.h: Include sys/types.h and sys/stat.h, for mode_t and
struct stat. Problem reported by Henning Nielsen Lund.
* lib/acl.c: Include acl.h first, to check interface. Don't
bother to include sys/types.h and sys/stat.h again.
2006-12-28 Paul Eggert <eggert@cs.ucla.edu>
Import the following change from libc; problem reported by
Sven Verdoolaege.
2005-10-13 Ulrich Drepper <drepper@redhat.com>
[BZ #1373]
* lib/argp.h: Remove __NTH for __argp_usage inline function.
2006-12-28 Jim Meyering <jim@meyering.net>
* build-aux/announce-gen: Do not assume that the package
builds any of tar.gz, tar.bz2, and .xdelta files.
Suggestion from Simon Josefsson.
2006-12-28 Simon Josefsson <simon@josefsson.org>
* modules/announce-gen: New file.
2006-12-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/mbchar.h: Just include <wctype.h>; the wctype module
handles its gotchas now.
* lib/mbswidth.c: Likewise.
* lib/wcwidth.h: Likewise.
* m4/mbchar.m4 (gl_MBCHAR): Don't bother checking for wctype.h
and iswcntrl; the wctype module does this stuff now.
* m4/mbswidth.m4 (gl_MBSWIDTH): Likewise.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
* modules/mbchar (Depends-on): Add wctype.
* modules/mbswidth (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
2006-12-27 Eric Blake <ebb9@byu.net>
* lib/fnmatch.c: Reinstate inclusion of <wchar.h>, since this
module uses more than what <wctype.h> is required to provide.
2006-12-26 Eric Blake <ebb9@byu.net>
* gnulib-tool (sed_extract_prog): Avoid space-tab.
2006-12-26 Eric Blake <ebb9@byu.net>
* modules/absolute-header: New module.
* modules/fcntl (Depends-on): Depend on it.
* modules/inttypes (Depends-on): Likewise.
* modules/stdint (Depends-on): Likewise.
* modules/sys_stat (Depends-on): Likewise.
* modules/wctype (Depends-on): Likewise.
* MODULES.html.sh (Support for building libraries and
executables): Document it.
2006-12-25 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (SED): Remove, undoing previous change.
The problem was that it broke coreutils on Solaris, because
"sed --posix" leaked into a makefile.
(sed): New alias, if 'alias' and GNU sed.
2006-12-24 Jim Meyering <jim@meyering.net>
Work around an fchownat bug in glibc-2.4:
http://lists.ubuntu.com/archives/ubuntu-users/2006-September/093218.html
This bug would cause "chown -RP ... DIR" to follow symlinks in DIR,
in spite of the -P option.
* m4/openat.m4 (gl_FUNC_FCHOWNAT, gl_FUNC_FCHOWNAT_DEREF_BUG):
New macros.
(gl_PREREQ_OPENAT): Require gl_FUNC_FCHOWNAT.
* modules/openat (Files): Add lib/fchownat.c.
* lib/openat.c (fchownat): Don't define here. Move to...
* lib/fchownat.c: ...this new file.
2006-12-23 Paul Eggert <eggert@cs.ucla.edu>
Fix bug reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2006-12/msg00228.html>
where quotearg.c didn't compile on Mac OS X 10.2 because it
lacks <wchar.h> and wint_t.
* lib/wctype_.h (__wctype_wint_t): New type.
Include <stdio.h>, <time.h>, <wchar.h> only if HAVE_WINT_T.
(iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph):
(iswlower, iswprint, iswpunct, iswspace, iswupper, ixwxdigit):
Arg is now of type __wctype_wint_t, not wint_t.
* m4/wctype.m4 (gl_WCTYPE_H): Require gt_TYPE_WINT_T, and
substitute HAVE_WINT_T.
* modules/wctype (Files): Add m4/wint_t.m4.
(wctype.h): Substitute HAVE_WINT_T.
2006-12-23 Bruno Haible <bruno@clisp.org>
* lib/safe-read.h [C++]: Wrap declarations in extern "C".
2006-12-23 Bruno Haible <bruno@clisp.org>
* lib/canonicalize-lgpl.c (__realpath): Test HAVE_READLINK instead of
S_ISLNK.
Needed because gnulib's sys/stat.h replacement defines S_ISLNK on
mingw.
2006-12-22 Bruno Haible <bruno@clisp.org>
* lib/copy-file.c: Include acl.h.
(copy_file_preserving) [USE_ACL]: Use copy_acl instead of chmod.
Close the file descriptors only after being done with copy_acl.
* modules/copy-file (Depends-on): Add acl.
2006-12-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (SED): New variable.
Use $SED instead of sed everywhere.
2006-12-22 Bruno Haible <bruno@clisp.org>
* modules/no-c++: New file.
* m4/no-c++.m4: New file.
* MODULES.html.sh (Support for building libraries and executables):
Add no-c++.
2006-12-22 Paul Eggert <eggert@cs.ucla.edu>
* m4/mktime.m4 (AC_FUNC_MKTIME): Sync from Autoconf.
Include <limits.h>, and use its INT_MAX to rewrite the
j loop so that it does not overflow 'int'. Problem reported by
Ralf Wildenhues in
<http://lists.gnu.org/r/bug-gnulib/2006-12/msg00084.html>.
Play it safe by shifting left by 1 rather than multiplying by 2,
as GCC is less likely to optimize this away when the value
is signed (when it assumes overflow leads to undefined behavior).
Also, don't assume time_t uses two's complement.
2006-12-21 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: New module wctype.
* lib/wctype_.h, m4/wctype.m4, modules/wctype: New files.
* lib/fnmatch.c: Don't bother to include <wchar.h> before
<wctype.h>, since the new wctype module should fix this.
* lib/quotearg.c: Include <wctype.h> unconditionally, since
the wctype module should arrange for it.
* lib/regex_internal.h: Likewise.
* m4/quotearg.m4 (gl_QUOTEARG): Don't check for wctype.h or iswprint,
since the wctype module should handle this now.
* m4/regex.m4 (gl_PREREQ_REGEX): Don't check for wctype.h.
* modules/fnmatch (Depends-on): Add wctype.
* modules/quotearg (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
2006-12-19 Bruno Haible <bruno@clisp.org>
* lib/strdup.h [C++]: Wrap definitions in extern "C".
Suggested by Lorenzo Bettini <bettini@dsi.unifi.it>.
2006-12-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/savewd (Depends-on): Fix dependency on fcntl.
2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdint.m4 (gl_STDINT_H): Set STDINT_H to empty if stdint.h
conforms to C99, rather than relying on the user's environment
setting of STDINT_H.
2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
and Eric Blake <ebb9@byu.net>
* lib/dirname.h (DOUBLE_SLASH_IS_DISTINCT_ROOT): Default to 0, not 1.
This is more consistent with the other defines here.
* m4/double-slash-root.m4 (gl_DOUBLE_SLASH_ROOT):
Port to z/OS. Problem reported by Paul Gilmartin.
Change local vars to use gl_ prefix rather than ac_.
Don't define DOUBLE_SLASH_IS_DISTINCT_ROOT to 0, for consistency
with other defines.
* modules/double-slash-root: New module.
* modules/dirname (Files): Remove m4/double-slash-root.m4.
(Depends-on): Add double-slash-root.
* MODULES.html.sh (File system functions): Mention new module.
2006-12-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/yesno.c [!ENABLE_NLS]: Don't include getline.h.
(yesno) [!ENABLE_NLS]: Don't invoke getline or rpmatch.
This is for the benefit of gzip, which doesn't do i18n.
2006-12-12 Jim Meyering <jim@meyering.net>
* m4/acl.m4 (gl_ACL_GET_FILE): Fix logic error.
Reported by Andreas Schwab <schwab@suse.de>.
2006-12-12 Bruno Haible <bruno@clisp.org>
Merge these changes.
2006-09-05 Bruno Haible <bruno@clisp.org>
* lib/iconvme.c (iconv_string): No need to save and restore errno when
iconv_alloc succeeded.
(iconv_alloc): Don't assume that malloc() or realloc(), when failing,
sets errno to ENOMEM. (malloc on GNU/kFreeBSD doesn't.) No need to
test for " && dest " at the end - dest is always != NULL there. Call
iconv with 4xNULL arguments initially, to reset the state. Call iconv
with 2xNULL arguments, also to flush the state storage. Handle the
IRIX iconv behaviour. Realloc the final result, to throw away unused
memory.
2006-12-11 Paul Eggert <eggert@cs.ucla.edu>
* m4/openat.m4 (gl_FUNC_OPENAT): Don't compile mkdirat
and fchmodat unconditionally, since glibc 2.4 has them.
Problem reported by Arkadiusz Miskiewicz.
2006-12-10 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Show the include files only for those
modules that are copied and specified.
Reported by Karl Berry.
2006-12-08 Jim Meyering <jim@meyering.net>
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Instead, use Emacs' time-stamp write hook. Note that the time is UTC.
* build-aux/announce-gen: Add two new options, both optional:
--bootstrap-tools=TOOL_LIST
a comma-separated list of tools, e.g.,
autoconf,automake,bison,gnulib
--gnulib-snapshot-date=DATE
if gnulib is in the bootstrap tool list,
then report this as the snapshot date.
If not specified, use the current date/time.
If you specify a date here, be sure it's UTC.
2006-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* tests/test-argp-2.sh: Fix test to match actual output.
(func_compare): Fix sed script to be portable.
2006-12-05 Paul Eggert <eggert@cs.ucla.edu>
* lib/utimens.c (futimens) [HAVE_BUGGY_NFS_TIME_STAMPS]: Add a
workaround for this case. It is not autoconfigured now; offhand
it's hard to see how to autoconfigure it.
2006-12-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/mkdir-p.c (make_dir_parents): Fix race condition when making
a directory that is about to be chowned. Such a directory's
initial file permissions should permit the owner only and this
should not be changed until after the chown, since the group and
other bits would be incorrect if they granted permission before
the chown.
Fix porting problem for iswctype reported by Georg Schwarz in:
http://lists.gnu.org/r/bug-coreutils/2006-12/msg00017.html
* lib/fnmatch.c (WIDE_CHAR_SUPPORT): Require HAVE_ISWCTYPE, too.
* lib/regex_internal.h (RE_ENABLE_I18N): Likewise.
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for iswctype, too.
* m4/regex.m4 (gl_PREREQ_REGEX): Likewise.
2006-12-03 Jim Meyering <jim@meyering.net>
* lib/fts.c (fts_load): Don't set sp->fts_dev here, since
p->fts_statp may not yet be defined.
(fts_read): Instead, set it in the caller, once p->fts_statp is
sure to be defined, and corresponds to a top-level directory.
This bug made du -x fail. Here's the coreutils test case:
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commit;h=ba45154d8e9f
Reported by Mike Frysinger.
2006-12-01 Jim Meyering <jim@meyering.net>
* modules/savewd (Depends-on): Add fcntl_h to avoid self-test
build failure due to missing definition of HAVE_WORKING_O_NOFOLLOW.
Reported by Simon Josefsson.
2006-11-30 Jim Meyering <jim@meyering.net>
* m4/warning.m4: Use the all-permissive copyright notice
recommended by RMS (rather than LGPL).
* m4/vararrays.m4: Likewise.
* m4/flexmember.m4: Likewise.
2006-11-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Initialize also
noinst_LIBRARIES. Augment noinst_LIBRARIES and noinst_LTLIBRARIES
using +=.
Reported by Simon Josefsson <simon@josefsson.org>.
2006-11-28 James Youngman <jay@gnu.org>
* README: Advise users that they might find the bug-gnulib@gnu.org
and autotools-announce@gnu.org mailing lists useful.
2006-11-28 Bruno Haible <bruno@clisp.org>
* m4/ptrdiff_max.m4: Remove file.
2006-11-21 Bruno Haible <bruno@clisp.org>
* m4/eoverflow.m4 (gl_EOVERFLOW): Use AC_COMPUTE_INT instead of
_AC_COMPUTE_INT.
(AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
* m4/ptrdiff_max.m4 (gl_PTRDIFF_MAX): Use AC_COMPUTE_INT instead of
_AC_COMPUTE_INT.
(AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
* m4/size_max.m4 (gl_SIZE_MAX): Use AC_COMPUTE_INT instead of
_AC_COMPUTE_INT.
(AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
2006-11-28 Jim Meyering <jim@meyering.net>
* lib/regcomp.c (parse_branch): Rename local, exp->expr, to avoid
warning from "gcc -Wshadow" about shadowing the builtin.
2006-11-27 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_BITSIZEOF): Use AC_COMPUTE_INT instead of
_AC_COMPUTE_INT.
(AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61.
2006-11-27 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
* lib/regex.h (__restrict_arr): Redo logic of #if, for clarity.
2006-11-26 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Initialize also
noinst_LTLIBRARIES.
2006-11-27 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Define to 0
if compiling with "gcc -ansi".
2006-11-26 Paul Eggert <eggert@cs.ucla.edu>
Fix some incompatibilities with gcc -ansi -pedantic.
* lib/regex.h (__restrict_arr): Don't use the [restrict] syntax
if compiling pedantically with GCC, unless it's C99 or later.
Don't trust sys/cdefs.h's definition of __restrict_arr, either, as
it mishandles gcc -ansi -pedantic as well.
* lib/regex_internal.h (re_token_t): Don't use enum bitfields
if gcc -pedantic.
* lib/regexec.c (check_node_accept_bytes): Don't use auto
initializers for struct if -pedantic, unless it's C99 or later.
2006-11-25 Nix <nix@esperi.org.uk> (tiny change)
* m4/fcntl_h.m4 (gl_FCNTL_H): Test the atime, not the mtime.
Don't close an fd more than once. Identical atimes indicate
success, not failure.
2006-11-22 Robinson Mittmann <bob@hoplon.com> (tiny change)
* lib/sincosl.c (kernel_sinl): Fix typo in threshold.
2006-11-23 Jim Meyering <jim@meyering.net>
* build-aux/announce-gen: New file. From coreutils.
2006-11-22 Jim Meyering <jim@meyering.net>
Work around a compile-time error from the HP-UX 11.00 /bin/cc.
* lib/fts.c (enum Fts_stat): Give this previously-anon enum a name.
(fts_read): Use a temporary to narrow the overused st_size member
before using it in a switch statement. Reported by Matthew Woehlke.
* m4/clock_time.m4 (gl_CLOCK_TIME): Quote AC_SUBST argument.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
2006-11-20 Bruno Haible <bruno@clisp.org>
* gettext.m4 (AM_GNU_GETTEXT): Revert 2005-07-28 patch: Use
changequote instead of pairs of brackets.
Reported by Andreas Schwab <schwab@suse.de>.
2006-11-21 Jim Meyering <jim@meyering.net>
* lib/fts.c (fts_safe_changedir): Move a declaration "up",
so as to remain compatible with older compilers.
Patch from Michael Deutschmann.
2006-11-20 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (File system functions): Add openat.
* lib/openat.h (rpl_fstatat): New macro, if
[HAVE_OPENAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK.
(fstatat): Define to rpl_fstatat under the same conditions,
unless COMPILING_FSTATAT.
* m4/openat.m4 (gl_FUNC_OPENAT): Compile fstatat.c too, if fstatat
seems to have the bug.
* lib/fstatat.c: New file.
* modules/openat (Files): Add it.
2006-11-20 Bruno Haible <bruno@clisp.org>
* Makefile: New file.
2006-11-20 Jim Meyering <jim@meyering.net>
The beginnings of syntax-related checks for gnulib.
* lib/Makefile: New file.
* lib/t-idcache: New script. Ensure that the two halves of
idcache.c stay in sync.
* lib/idcache.c: Adjust comments in user- and group- portions to
be more accurate, and to be consistent with one another.
2006-11-20 Jim Meyering <jim@meyering.net>
* lib/idcache.c: Restore most of the 2006-11-06 patch, so as to
continue using the flexible array member (thus, this module performs
half as many malloc calls), with the addition that...
(getgroup, getuser): Consistently record a non-match via an empty
"name" string, and map an empty string match to a NULL return value.
* modules/idcache (Depends-on): Re-add flexmember.
* lib/idcache.c (getuser): Remove all uses of the register keyword.
(getuidbyname, getgroup, getgidbyname): Likewise.
Use cleaner syntax: NULL rather than 0.
* lib/idcache.c (getuidbyname, getgidbyname): Return NULL, not 0.
2006-11-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/idcache.c: Undo most recent patch, dated 2006-11-06.
It mishandled the case where the group was missing.
Problem reported by Greg Schafer.
* modules/idcache: Likewise.
2006-11-18 Jim Meyering <jim@meyering.net>
* check-module (%exempt_header): Add exception for some
conditionally-included headers.
* modules/i-ring (Depends-on): Add verify.
(License): Change to LGPL.
2006-11-16 Paul Eggert <eggert@cs.ucla.edu>
* modules/getaddrinfo (Depends-on): Remove inttostr; add snprintf.
* lib/getaddrinfo.c: Include snprintf.h rather than intprops.h
and inttostr.h. Use snprintf rather than uinttostr, so that
LGPLed code doesn't depend on GPLed.
2006-11-17 Paul Eggert <eggert@cs.ucla.edu>
* modules/inline (License): Change from GPL to LGPL.
2006-11-17 Jim Meyering <jim@meyering.net>
* modules/d-type (License): Switch to LGPL.
2006-11-15 Bruno Haible <bruno@clisp.org>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Fix the AC_CACHE_CHECK message.
2006-11-15 Eric Blake <ebb9@byu.net>
* m4/allocsa.m4 (gl_ALLOCSA): Don't invoke macro already picked up by
the module dependency.
2006-11-15 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Add license consistency check.
2006-11-15 Eric Blake <ebb9@byu.net>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Use AC_CACHE_CHECK to avoid a
random "(cached)" in configure output.
2006-11-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/inttypes.m4 (gl_INTTYPES_H): Use AC_CACHE_CHECK so that the
test for conforming inttypes.h is both announced and cached.
* MODULES.html.sh (seen_modules, seen_files): New variables.
(func_module): Rewrite to use a few less gnulib-tool and sed
invocations. Avoid a couple of quadratic algorithms for ...
(missed_modules, missed_files): ... these, with ...
(func_append, func_tmpdir): ... these new functions, from
gnulib-tool. Analogously, install traps for cleanup.
* tests/test-gc.c (main): Remove unused variables.
* tests/test-read-file.c: Include stdlib.h, for 'free'.
2006-11-14 Paul Eggert <eggert@cs.ucla.edu>
* modules/inttostr (License): Change to LGPL.
2006-11-14 Eric Blake <ebb9@byu.net>
* modules/tempname (License): Change to LGPL.
2006-11-14 Eric Blake <ebb9@byu.net>
* doc/functions.texi (Function Portability): *printf functions on
Cygwin now understand all POSIX size specifiers.
2006-11-14 Bruno Haible <bruno@clisp.org>
* modules/c-ctype (License): Change to LGPL.
2006-11-12 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS,
AC_LIB_LINKFLAGS_BODY): Also set a LIB${NAME}_PREFIX variable. Needed
for GNOME libraries, for which the include files are installed in
subdirectories of $prefix/include.
2006-11-12 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4: Require at least autoconf-2.54.
(AC_LIB_LINKFLAGS_BODY) [autoconf < 2.61]: Turn dots into the library
name to underscores for the --with option.
2006-11-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Set gl_source_base correctly in
the tests directory.
Reported by Ralf Wildenhues.
2006-11-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_initmacro_start): Also override AC_LIBSOURCES.
(func_emit_initmacro_end): Undo the override here.
(func_emit_initmacro_done): Emit a definition for gl_LIBSOURCES.
Works around the famous automake error in coreutils.
2006-11-13 Eric Blake <ebb9@byu.net>
* lib/gl_anytree_oset.h (gl_tree_search_atleast): Return the
element, not its node.
2006-11-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Replace occurrences of
'$(top_srcdir)/build-aux/', taking into account the real auxdir.
2006-11-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New option --local-symlink.
(func_usage): Document it.
(lsymbolic): New variable.
(func_import, func_create_testdir): If --symlink was not specified,
test whether --local-symlink was specified and the file comes from
the local_gnulib_dir.
2006-11-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_ln): New function.
(func_ln_if_changed, func_create_testdir): Use it instead of "ln -s".
2006-11-12 Bruno Haible <bruno@clisp.org>
Finish support for source files in subdirectories.
* gnulib-tool (func_emit_lib_Makefile_am): If some of the source files
are in subdirectories, set uses_subdirs and add 'subdir-objects' to
AUTOMAKE_OPTIONS.
(func_import, func_create_testdir): Invoke AM_PROG_CC_C_O in this case.
2006-11-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Synthesize also an
EXTRA_lib_SOURCES augmentation.
(func_emit_lib_Makefile_am): Initialize EXTRA_lib..._SOURCES to empty.
2006-11-12 Jim Meyering <jim@meyering.net>
Make fts (in FTS_CWDFD mode) more efficient by caching a few open
file descriptors. This also averts a failure on systems with
native openat support when a traversed directory lacks "x" access.
* lib/fts_.h: Include "i-ring.h"
(struct FTS) [fts_fd_ring]: New member.
* lib/fts.c (RESTORE_INITIAL_CWD): Also call fd_ring_clear.
(FCHDIR): Add parentheses.
(fd_ring_check, fd_ring_print) [!FTS_DEBUG]: Define away.
(cwd_advance_fd): Add a 3rd parameter. Adjust all callers.
When descending, rather than simply closing the previous
fts_cwd_fd value, push that file descriptor onto the ring.
(same_fd, fd_ring_print, fd_ring_check) [FTS_DEBUG]: New functions.
(fts_open): Initialize the new fd_ring member.
(fts_close): Clear the ring.
(fts_safe_changedir): When possible, use our new fd_ring to skip
the diropen and fstat and dev/ino comparison that would normally
accompany a virtual `chdir ("..")'.
* modules/fts (Depends-on): Add i-ring.
* modules/i-ring: New module.
* lib/i-ring.c, lib/i-ring.h, lib/i-ring-test.c: New files.
* m4/i-ring.m4: New file.
2006-11-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_create_testdir): Fix replacement of
`build-aux' in configure.ac. Run autotools in gltests
subdirectory.
(func_create_testdir, func_create_megatestdir, test): There is
no need for '--force' in most autotool invocations in a new
tree. Actually fail the whole test if any of the tools, or the
configure or make stages fail.
Sync from Automake.
* build-aux/gnupload: Revert last change. Add pointer to upload
instructions of the GNU Maintenance Instructions.
Suggestion by Karl Berry.
2006-11-10 Jim Meyering <jim@meyering.net>
* lib/fts.c [FTS_DEBUG]: Don't try to print a pointer via %s.
2006-11-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/gettext.h (dgettext, dcgettext, ngettext) [! ENABLE_NLS]:
(dngettext, dcngettext, bindtextdomain) [! ENABLE_NLS]:
(bind_textdomain_codeset) [! ENABLE_NLS]:
Evaluate all the arguments. That way, callers get compatible behavior
if the arguments have side effects. Also, it avoids some GCC
diagnostics in some cases; Joel E. Denny reported problems when Bison
was configured with --enable-gcc-warnigs.
2006-11-10 Jim Meyering <jim@meyering.net>
* m4/inline.m4 (gl_INLINE): Check with the compiler, not cpp, so that
relevant options in CFLAGS (like -O, -fno-inline) are taken into
account.
2006-11-10 Jim Meyering <jim@meyering.net>
* modules/inline: New file/module.
* modules/xalloc (Files): Remove m4/inline.m4.
(Depends-on): Add inline, instead.
* modules/oset: Likewise.
* modules/list: Likewise.
2006-11-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h (uintmax_t): Fix typo: int64_t -> uint64_t.
Problem reported by Matthew Woehlke.
2006-11-09 Bruno Haible <bruno@clisp.org>
* lib/tempname.c (gen_tempname): Remove variant that invokes
__gen_tempname.
* m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Don't test for
__gen_tempname.
2006-11-08 Bruno Haible <bruno@clisp.org>
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Set ac_cv_type_long_long_int
to 'yes' instead of 'cross-compiling'.
2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/quotearg.h (quotearg_free): New decl.
* lib/quotearg.c (quotearg_free): New function.
(slot0, nslots, slotvec0, slotvec):
Now file-scope so that quotearg_free can get at them.
2006-11-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from Automake.
* build-aux/gnupload: Add missing 'gnu' to example URL.
Report by Karl Berry.
2006-11-08 Bruno Haible <bruno@clisp.org>
* m4/inline.m4 (gl_INLINE): Also test __NO_INLINE__.
Suggested by Paul Eggert.
2006-11-08 Jim Meyering <jim@meyering.net>
* lib/fts.c [!_LGPL_PACKAGE]: Don't include fcntl--.h twice.
It's already included if !_LIBC.
(fts_safe_changedir): Add a comment.
2006-11-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Detect bug in
Tandem NonStop Kernel (OSS) cc -O circa 2004, reported by
Matthew Woehlke.
* lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC, XCALLOC): Move
definitions up, to avoid colliding with change below.
(static_inline) [HAVE_INLINE]: New macro.
(xnmalloc, xnrealloc, x2nrealloc, xcharalloc):
Provide extern decls when !HAVE_INLINE. Do not define unless
static_inline is defined, either by us or by xmalloc.c. Use
static_inline rather than static inline.
(XCALLOC): Optimize sizeof(T) = 1 case.
* lib/xmalloc.c (static_inline) [!HAVE_INLINE]: New macro.
2006-11-07 Bruno Haible <bruno@clisp.org>
* lib/xalloc.h (XNMALLOC): Restore optimization of sizeof(T) = 1 case.
* m4/xalloc.m4 (gl_PREREQ_XALLOC): Require gl_INLINE instead of
AC_C_INLINE.
* modules/xalloc (Files): Add m4/inline.m4.
2006-11-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* README: Fix typo.
* doc/gnulib.texi (Miscellaneous Notes): Likewise, rename...
(Miscellanous Notes): ...from this.
2006-11-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER):
Mention that offsetof should be used instead of sizeof.
From Bruno Haible.
2006-11-07 Bruno Haible <bruno@clisp.org>
* lib/w32spawn.h (prepare_spawn): Use XNMALLOC instead of xmalloc.
2006-11-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify xmalloc expressions. Add overflow check in xmalloc arguments.
* lib/gl_anyavltree_list2.h (create_subtree_with_contents):
(gl_tree_create, gl_tree_add_first, gl_tree_add_last):
(gl_tree_add_before, gl_tree_add_after):
Use XMALLOC instead of xmalloc, and XCALLOC instead of xzalloc.
* lib/gl_anyhash_list2.h (hash_resize): Likewise.
* lib/gl_anylinked_list2.h (gl_linked_create_empty, gl_linked_create):
(gl_linked_add_first, gl_linked_add_last, gl_linked_add_before):
(gl_linked_add_after, gl_linked_add_at): Likewise.
* lib/gl_anyrbtree_list2.h (create_subtree_with_contents):
(gl_tree_create, gl_tree_add_first, gl_tree_add_last):
(gl_tree_add_before, gl_tree_add_after): Likewise.
* lib/gl_anytree_list2.h (gl_tree_create_empty): Likewise.
* lib/gl_anytree_oset.h (gl_tree_create_empty): Likewise.
* lib/gl_anytreehash_list1.h (add_to_bucket): Likewise.
2006-11-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/gl_oset.h: Use C comment style, not C++ comment style.
2006-11-06 Bruno Haible <bruno@clisp.org>
* m4/inline.m4: New file.
* m4/gl_list.m4 (gl_LIST): Require gl_INLINE.
* modules/list (Files): Add m4/inline.m4.
* modules/oset (Files): Likewise.
2006-11-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/idcache.c: Include <stddef.h>, for offsetof.
(struct userid.name): Change from char * to a flexible array member.
All uses changed.
* modules/idcache (Depends-on): Add flexmember.
* MODULES.html.sh (Core language properties): New module flexmember.
* modules/flexmember, m4/flexmember.m4: New files.
* lib/xalloc.h (xnmalloc, xnrealloc, x2nrealloc): Now static
inline functions that are identical with the old xnmalloc_inline,
xnrealloc_inline, x2nrealloc_inline of lib/xmalloc.c. This is so
that we can avoid some unnecessary integer multiplications and
divisions in the common case where the element size is known at
compile time.
(XNMALLOC) [HAVE_INLINE]: Remove special case, which is no longer
needed.
(xnboundedmalloc): Remove.
(XMALLOC, XNMALLOC, XZALLOC, XCALLOC): Use lower-case letters for
arguments, for consistency with rest of this header.
(xcharalloc): Rewrite using XNMALLOC.
* lib/xmalloc.c (xnmalloc_inline, xnmalloc, xnrealloc_inline):
(xnrealloc, x2nrealloc_inline, x2nrealloc): Remove. The *_inline
versions have been moved to lib/xalloc.h and renamed to be the
non-*_inline versions.
(xmalloc, xrealloc): Implement without reference to the xnmalloc
and xnrealloc functions, since those functions are now inline and
now call us.
(x2realloc): Invoke x2realloc, not x2realloc_inline, to accommodate
renaming described above.
* m4/xalloc.m4 (gl_PREREQ_XMALLOC): Remove AC_C_INLINE since
xmalloc.c no longer uses inline directly. gl_PREREQ_XALLOC now
captures the dependency in AC_C_INLINE.
New module canonicalize-lgpl, proposed by Charles Wilson in
<http://lists.gnu.org/r/bug-gnulib/2006-11/msg00020.html>
with a few small changes afterwards.
* MODULES.html.sh (File system functions): New module
canonicalize-lgpl.
* lib/canonicalize.h: Add comments for canonicalize_filename_mode
and canonicalize_file_name.
* lib/canonicalize-lgpl.c, m4/canonicalize-lgpl.m4:
* modules/canonicalize-lgpl: New files.
2006-11-05 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Create directories
also for files in subdirectories of lib/.
2006-11-05 Bruno Haible <bruno@clisp.org>
* lib/gl_array_list.c (gl_array_iterator_next): Make pointer decrement
ANSI C compliant.
2006-11-03 Bruno Haible <bruno@clisp.org>
Simplify xmalloc expressions. Add overflow check in xmalloc arguments.
* m4/xalloc.m4 (gl_PREREQ_XALLOC): Require AC_C_INLINE.
* lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC, XCALLOC): New macros.
(xnboundedmalloc): New inline function.
* lib/classpath.c (new_classpath): Use XNMALLOC instead of xmalloc.
* lib/clean-temp.c (create_temp_dir): Use XNMALLOC, XMALLOC instead of
xmalloc.
* lib/concatpath.c (concatenated_pathname): Use XNMALLOC instead of
xmalloc.
* lib/fatal-signal.c (at_fatal_signal): Use XNMALLOC instead of xmalloc.
* lib/findprog.c (find_in_path): Use XNMALLOC instead of xmalloc.
* lib/gl_array_list.c (gl_array_create_empty): Use XMALLOC instead of
xmalloc.
(gl_array_create): Use XNMALLOC, XMALLOC instead of xmalloc.
* lib/gl_array_oset.c (gl_array_create_empty): Use XNMALLOC instead of
xmalloc.
* lib/gl_avltree_oset.c (gl_tree_add_first, gl_tree_add_before,
gl_tree_add_after): Use XMALLOC instead of xmalloc.
* lib/gl_carray_list.c (gl_carray_create_empty): Use XMALLOC instead of
xmalloc.
(gl_carray_create): Use XNMALLOC, XMALLOC instead of xmalloc.
* lib/gl_rbtree_oset.c (gl_tree_add_first, gl_tree_add_before,
gl_tree_add_after): Use XMALLOC instead of xmalloc.
* lib/gl_sublist.c (gl_sublist_create): Use XMALLOC instead of xmalloc.
* lib/pagealign_alloc.c (new_memnode): Use XMALLOC instead of xmalloc.
* lib/sh-quote.c (shell_quote_argv): Use XNMALLOC instead of xmalloc.
* lib/xvasprintf.c (xstrcat): Use XNMALLOC instead of xmalloc.
2006-11-03 Bruno Haible <bruno@clisp.org>
* lib/c-ctype.h [C++]: Define functions without name mangling.
* lib/fwriteerror.h [C++]: Likewise.
* lib/gcd.h [C++]: Likewise.
* lib/linebreak.h [C++]: Likewise.
2006-11-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/canonicalize.h: (canonicalize_mode_t, CAN_EXISTING):
(CAN_ALL_BUT_LAST, CAN_MISSING, canonicalize_filename_mode):
Define only if PROVIDE_CANONICALIZE_FILENAME_MODE is defined.
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME):
Check for functions and headers just once.
Check for declaration of canonicalize_file_name.
Define PROVIDE_CANONICALIZE_FILENAME_MODE.
2006-11-02 Charles Wilson <cygwin@cwilson.fastmail.fm>
* gnulib-tool (func_import): Fix typo in actioncmd.
2006-11-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Interpret a backslash-
newline sequence in the Makefile.am snippet as a space, like "make"
does.
Reported by Roger Persson <perrog@gmail.com>.
2006-11-01 Bruno Haible <bruno@clisp.org>
* m4/strcase.m4 (gl_FUNC_STRNCASECMP): Check whether strncasecmp is
already declared in <string.h>.
* lib/strcase.h (strncasecmp): Don't declare it if yes.
2006-11-01 Bruno Haible <bruno@clisp.org>
* m4/strcase.m4 (gl_FUNC_STRCASECMP): Don't define strcasecmp here.
* lib/strcase.h: Include <string.h>.
(strcasecmp): Define to rpl_strcasecmp here.
2006-11-01 Bruno Haible <bruno@clisp.org>
* lib/printf-parse.c (PRINTF_PARSE): Cast malloc/realloc results.
2006-11-01 Eric Blake <ebb9@byu.net>
* lib/mkstemp-safer.c (mkstemp_safer): Allow C++ compilation.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Allow C++ configuration.
2006-10-29 Bruno Haible <bruno@clisp.org>
Make it compile in C++ mode.
* lib/full-write.c (full_rw): Add a cast.
2006-11-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Change sed_combine_lines to
be POSIX compliant.
Reported by Roger Persson <perrog@gmail.com>.
2006-11-01 Eric Blake <ebb9@byu.net>
* lib/getopt_.h: Fix comments.
2006-10-31 Eric Blake <ebb9@byu.net>
* modules/tmpdir (Depends-on): Add sys_stat.
* modules/mkdtemp (Depends-on): Add tempname, drop unistd.
* lib/mkdtemp.c (gen_tempname): Remove; tempname covers this.
* lib/tmpdir.c (S_ISDIR): Simplify, thanks to sys_stat.
* m4/mkdtemp.m4 (gl_PREREQ_MKDTEMP): Simplify, thanks to
tempname.
2006-10-31 Paul Eggert <eggert@cs.ucla.edu>
Avoid some C++ diagnostics reported by Bruno Haible.
* lib/quotearg.c (clone_quoting_options): Use xmemdup rather than
xmalloc.
(quotearg_alloc): Use xcharalloc rather than xmalloc.
(struct slotvec): Move to top level.
(quotearg_n_options): Rewrite to avoid xmalloc.
* lib/xalloc.h (xcharalloc): New function.
* (xrealloc, xnrealloc, x2realloc, x2nrealloc, xmemdup):
[defined __cplusplus]: Add function template that provides result
type propagation. This part of the change is from Bruno Haible.
2006-10-29 Bruno Haible <bruno@clisp.org>
Make it compile in C++ mode.
* lib/striconv.c (mem_cd_iconv): Cast malloc/realloc result.
* lib/strnlen1.c (strnlen1): Cast memchr result.
* lib/mbchar.h (mb_copy): Rename arguments to 'new_mbc', 'old_mbc'.
* lib/clean-temp.c (string_equals, string_hash): Add casts.
(create_temp_dir): Rename local variable 'template'.
(compile_csharp_using_sscli): Add cast.
* lib/fatal-signal.c (at_fatal_signal): Cast xmalloc result.
* lib/findprog.c (find_in_path): Likewise.
* lib/linebreak.c (mbs_width_linebreaks): Cast malloc result.
* lib/wait-process.c (register_slave_subprocess): Likewise.
2006-10-22 Bruno Haible <bruno@clisp.org>
* modules/tsearch: New file.
* lib/tsearch.h: New file.
* lib/tsearch.c: New file, from glibc-2.5 with small modifications.
* m4/tsearch.m4: New file.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add tsearch.
2006-10-29 Eric Blake <ebb9@byu.net>
* lib/arcfour.c: Assume config.h.
* lib/arctwo.c: Likewise.
* lib/base64.c: Likewise.
* lib/check-version.c: Likewise.
* lib/crc.c: Likewise.
* lib/des.c: Likewise.
* lib/gc-gnulib.c: Likewise.
* lib/gc-libgcrypt.c: Likewise.
* lib/gc-pbkdf2-sha1.c: Likewise.
* lib/getaddrinfo.c: Likewise.
* lib/getdelim.c: Likewise.
* lib/getline.c: Likewise.
* lib/hmac-md5.c: Likewise.
* lib/hmac-sha1.c: Likewise.
* lib/iconvme.c: Likewise.
* lib/md2.c: Likewise.
* lib/md4.c: Likewise.
* lib/memxor.c: Likewise.
* lib/read-file.c: Likewise.
* lib/readline.c: Likewise.
* lib/rijndael-alg-fst.c: Likewise.
* lib/rijndael-api-fst.c: Likewise.
* lib/xgetdomainname.c: Likewise.
2006-10-28 Eric Blake <ebb9@byu.net>
* lib/xstrndup.c: Assume config.h.
2006-10-27 Paul Eggert <eggert@cs.ucla.edu>
Move stat.h-substitute stuff from lib/stat-macros.h to lib/stat_.h.
stat-macros.h is now for our own macros, whereas stat_h is for
macros in the <sys/stat.h> name space.
* lib/stat-macros.h: Remove copyright notice, as this file is now tiny.
(STAT_MACROS_H): Remove.
(S_IFMT, S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISLNK, S_ISNAM):
(S_ISMPB, S_ISMPC, S_ISNWK, S_ISREG, S_ISSOCK, S_ISDOOR, S_ISPORT):
(S_TYPEISMQ, S_TYPEISTMO, S_TYPEISSEM, S_TYPEISSHM, S_ISCTG, S_ISOFD):
(S_ISOFL, S_ISWHT, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IRGRP):
(S_IROTH, S_IWUSR, S_IWGRP, S_IWOTH, S_IXUSR, S_IXGRP, S_IXOTH):
(S_IRWXU, S_IRWXG, S_IRWXO, S_IXUGO, S_IRWXUGO):
Move these macros to ...
* lib/stat_.h: here. Don't include stat-macros.h.
* lib/canonicalize.c: Don't include stat-macros.h.
* lib/chown.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/file-type.c: Likewise.
* lib/filemode.c: Likewise.
* lib/glob.c: Likewise.
* lib/isapipe.c: Likewise.
* lib/lchown.c: Likewise.
* lib/lstat.c: Likewise.
* lib/mkdir-p.c: Likewise.
* lib/rmdir.c: Likewise.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Don't require gl_STAT_MACROS.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Don't check for io.h
unless mkdir isn't declared, to speed up 'configure'.
Always create sys/stat.h, since it's unlikely any real sys/stat.h
would define all the S_* symbols.
* modules/canonicalize (Depends-on):
Depend on sys_stat, not stat-macros.
* modules/chown: Likewise.
* modules/euidaccess: Likewise.
* modules/filemode: Likewise.
* modules/file-type: Likewise.
* modules/glob: Likewise.
* modules/isapipe: Likewise.
* modules/lchown: Likewise.
* modules/lstat: Likewise.
* modules/mkancesdirs: Likewise.
* modules/rmdir: Likewise.
* modules/mkdir-p (Depends-on): Also depend on sys_stat.
* modules/modechange: Likewise.
* modules/stat-macros (Files): Remove m4/stat-macros.m4.
(configure.ac): Remove gl_STAT_MACROS.
* modules/sys_stat (Depends-on): Remove stat-macros.
2006-10-27 Bruno Haible <bruno@clisp.org>
* m4/signed.m4: Remove file.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS_: Remove bh_C_SIGNED
invocation.
* modules/vasnprintf (Files): Remove m4/signed.m4.
2006-10-27 Bruno Haible <bruno@clisp.org>
Update to GNU gettext 0.16.
* modules/gettext (Files): Add m4/intl.m4, m4/intldir.m4. Remove
m4/inttypes-h.m4, m4/signed.m4.
* m4/gettext.m4: Update to GNU gettext 0.16.
* m4/intl.m4: New file, from GNU gettext.
* m4/intldir.m4: New file, from GNU gettext.
* config/srclist.txt: Update
2006-10-27 Eric Blake <ebb9@byu.net>
* MODULES.html.sh: Document tempname.
* modules/mkstemp (Depends-on): Add tempname, and drop transitive
dependencies.
(Files): Move lib/tempname.c...
* modules/tempname: ...to this new module.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Remove tempname checks.
(gl_PREREQ_TEMPNAME): Move...
* m4/tempname.m4: ...to this new file.
* lib/mkstemp.c (includes) [!_LIBC]: Use tempname.h.
* modules/sys_stat (Depends-on): Add stat-macros.
* lib/stat_.h (includes): Pick up stat macros.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Replace <sys/stat.h>
if stat macros are broken.
* lib/tempname.c (includes): No need to include "stat-macros.h".
(__gen_tempname) [!_LIBC]: Expose as gen_tempname.
(direxists, __path_search) [!_LIBC]: Don't compile these in
gnulib; the tmpdir module covers that.
* lib/tempname.h: New file.
2006-10-26 Paul Eggert <eggert@cs.ucla.edu>
* COPYING: Explain how gnulib-tool converts licence headers.
Almost all wording by Eric Blake.
2006-10-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/mbchar.h (is_basic_table): Make read-only.
* lib/mbchar.c (is_basic_table): Likewise.
Reported by John Darrington.
2006-10-25 Bruno Haible <bruno@clisp.org>
* lib/progname.h (set_program_name): Undefine before defining.
2006-10-25 Bruno Haible <bruno@clisp.org>
* lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Define to
false for non-gcc C++ compilers.
Reported by Nelson H. F. Beebe <beebe@math.utah.edu>.
2006-10-24 Bruno Haible <bruno@clisp.org>
* lib/striconv.c (mem_cd_iconv, str_cd_iconv): Treat all non-GNU
iconv implementations like Irix iconv.
2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
* modules/vararrays: New file.
* m4/vararrays.m4: New file, taken from diffutils.
* MODULES.html.sh: New module vararrays.
2006-10-24 Karl Berry <karl@gnu.org>
* doc/gnulib-intro.texi: --- instead of --; non-naive naive.
Don't call GNU Unix.
2006-10-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* users.txt: Add Libtool.
Sync from Libtool:
2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/argz.c: Remove check for HAVE_CONFIG_H, to conform
to gnulib's policy of including config.h unconditionally.
2006-10-24 Bruno Haible <bruno@clisp.org>
* modules/wcwidth (Files): Add m4/wint_t.m4.
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Require gt_TYPE_WINT_T.
* lib/wcwidth.h (iswprint): Use 'int' if 'wint_t' is not defined.
2006-10-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (yyerror): Make the arguments pointer-to-const,
to pacify GCC with some -W flags enabled. Problem reported by
Bruno Haible.
2006-10-24 Jim Meyering <jim@meyering.net>
* MODULES.html.sh: Remove uinttostr. It's not a module.
Reported by Karl Berry.
2006-10-23 Bruno Haible <bruno@clisp.org>
* lib/fts.c (fts_build): Move variable declaration, for C89 compliance.
2006-10-24 Bruno Haible <bruno@clisp.org>
* lib/gl_list.h: Use C comment style, not C++ comment style.
2006-10-23 Eric Blake <ebb9@byu.net>
* lib/getaddrinfo.c (includes): Add missing include.
2006-10-23 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
Ability to rename obstack_free.
* lib/obstack.h (__obstack_free): New macro. Declare instead of
obstack_free.
(obstack_free): Invoke the __obstack_free macro.
* lib/obstack.c (obstack_free): Use __obstack_free macro.
2006-10-23 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
* lib/argp.h (argp_parse, __argp_parse): Comment out the identifiers
__argc, __argv from the declaration. (They are defined as macros on
mingw.)
2006-10-22 Bruno Haible <bruno@clisp.org>
* doc/gnulib-intro.texi: New file.
* doc/gnulib.texi: Include it.
2006-10-21 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi: Split the chapter "Gnulib" into 3 chapters
"Introduction", "Miscellanous Notes", "Particular Modules".
2006-10-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Change mostlyclean-local rule to avoid sh syntax error from bash
versions 2.00..2.05 when $(MOSTLYCLEANDIRS) is empty.
2006-10-23 Jim Meyering <jim@meyering.net>
* lib/getaddrinfo.c (getnameinfo): Use new lightweight uinttostr,
in place of snprintf.
* modules/inttostr (Files): Add lib/uinttostr.c.
* lib/uinttostr.c (inttostr): New file/function.
* lib/inttostr.h (uinttostr): Declare.
* m4/inttostr.m4: Add AC_LIBOBJ([uinttostr]).
* MODULES.html.sh (Numeric conversion functions <stdlib.h>):
Add uinttostr.
* modules/getaddrinfo (Depends-on): Remove snprintf. Add inttostr.
2006-10-21 Paul Eggert <eggert@cs.ucla.edu>
* lib/canonicalize.c (ELOOP): Define if not already defined.
Problem reported by Bruno Haible in
<http://lists.gnu.org/r/bug-gnulib/2006-10/msg00282.html>.
2006-10-21 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h [defined _AIX]: Don't include <sys/types.h>.
Problem reported by Perry Smith and Ville Laurikari.
* lib/getndelim2.c (SSIZE_MAX): Use same defn that getdelim.c
uses.
2006-10-19 Bruno Haible <bruno@clisp.org>
* lib/getndelim2.c (SSIZE_MAX): Provide fallback definition. Needed
for mingw.
2006-10-19 Bruno Haible <bruno@clisp.org>
* lib/openat-priv.h (EOPNOTSUPP): Provide fallback definition.
Needed for mingw.
2006-10-19 Bruno Haible <bruno@clisp.org>
* m4/size_max.m4 (gl_SIZE_MAX): Cache the result.
2006-10-19 Bruno Haible <bruno@clisp.org>
* m4/allocsa.m4 (gl_ALLOCSA): Invoke gl_FUNC_ALLOCA, don't AC_REQUIRE
it.
2006-10-19 Bruno Haible <bruno@clisp.org>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Cache the result of the AC_EGREP_CPP
invocation.
2006-10-19 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Don't include ftruncate and
mountlist by default.
2006-10-16 Bruno Haible <bruno@clisp.org>
* lib/c-strstr.c: Include c-strstr.h.
2006-10-18 Charles Wilson <cygwin@cwilson.fastmail.fm>
* gnulib-tool: Don't clobber $sourcebase when $local_gnulib_dir ends
in a slash.
2006-10-18 Bruno Haible <bruno@clisp.org>
* lib/lock.h [C++]: Wrap definitions in extern "C".
2006-10-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_initmacro_end): Remove duplicates from the
gl_LIBOBJS list.
2006-10-18 Bruno Haible <bruno@clisp.org>
* lib/findprog.c (find_in_path): Avoid "gcc -Wwrite-strings" warning.
2006-10-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/xstrtol.h: Include gettext.h.
(_STRTOL_ERROR): Wrap English-language formats inside gettext.
Problem reported by Eric Blake.
* modules/xstrtol (Depends-on): Add gettext-h.
2006-10-19 Paul Eggert <eggert@cs.ucla.edu> (tiny change)
* lib/strftime.c (advance): New macro.
(add): Use it to avoid adding 0 to a FILE *. FILE can be an
incomplete type, so you can't add 0 to it. Problem and patch
reported by Eelco Dolstra for dietlibc.
2006-10-18 Jim Meyering <jim@meyering.net>
* lib/readutmp.c (desirable_utmp_entry): Use "bool" as the
type for a local, and rename it: s/up/user_proc/.
2006-10-18 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/readutmp.c (desirable_utmp_entry): Implement new flag:
READ_UTMP_USER_PROCESS.
* lib/readutmp.h (READ_UTMP_USER_PROCESS): New flag
2006-10-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/localcharset.c: Do not check HAVE_SETLOCALE.
* m4/localcharset.m4 (gl_LOCALCHARSET): Don't check for setlocale.
2006-10-17 Eric Blake <ebb9@byu.net>
* lib/sigprocmask.c (sigprocmask): Fix typo.
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Fix typo.
* modules/clean-temp (Makefile.am): Don't add to make output...
(configure.ac): ...instead define SIGNAL_SAFE_LIST inside
config.h.
2006-10-17 Bruno Haible <bruno@clisp.org>
* lib/gettext.h (gettext, ngettext, pgettext, npgettext): Define
differently if DEFAULT_TEXT_DOMAIN is set.
2006-10-16 Bruno Haible <bruno@clisp.org>
* lib/clean-temp.c: Include fwriteerror.h.
2006-10-16 Bruno Haible <bruno@clisp.org>
* getndelim2.m4 (gl_GETNDELIM2): Remove 2003-10-23 hack.
2006-10-16 Bruno Haible <bruno@clisp.org>
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Also test for sigset_t.
* lib/sigprocmask.h: Include <sys/types.h>.
(sigset_t): Use the system's definition if present.
2006-10-17 Eric Blake <ebb9@byu.net>
* lib/xvasprintf.c (includes): Assume config.h.
* lib/xasprintf.c (includes): Likewise.
2006-10-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/fsusage.c (PROPAGATE_ALL_ONES): Don't assume uintmax_t is
at least as wide as intmax_t.
2006-10-16 Alexandre Duret-Lutz <adl@gnu.org>
(Imported from Automake.)
* build-aux/gnupload: Update to version 1.1 of directive file.
2006-10-16 Eric Blake <ebb9@byu.net>
* modules/configmake (Makefile.am): Add pkglibexecdir support, to
match Automake 1.10a.
2006-10-14 Bruno Haible <bruno@clisp.org>
* modules/sigprocmask: New file.
* lib/sigprocmask.h: New file.
* lib/sigprocmask.c: New file.
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Renamed from
gt_SIGNALBLOCKING. When not defining HAVE_POSIX_SIGNALBLOCKING,
request sigprocmask.o.
(gl_PREREQ_SIGPROCMASK): New macro.
* modules/fatal-signal (Files): Remove m4/signalblocking.m4.
(Depends-on): Add sigprocmask.
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Don't require
gt_SIGNALBLOCKING. Test for 'raise' only once.
* lib/fatal-signal.c: Include sigprocmask.h.
(fatal_signal_set, init_fatal_signal_set, block_fatal_signals,
unblock_fatal_signals): Define always.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
sigprocmask.
2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
Sync from Automake.
* build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
which incorrectly sets the mode of an existing destination
directory. In some cases the unpatched install-sh could do the
equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
system. We hope this is rare in practice, but it's clearly worth
fixing. Problem reported by Alex Unleashed in
<http://lists.gnu.org/r/bug-autoconf/2006-10/msg00012.html>.
Also, don't bother to check for -m bugs unless we're using -m;
suggested by Stepan Kasal.
2006-10-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from Automake.
* build-aux/depcomp (gcc3): Put dependency extraction flags before the
`-c' flag, so they appear at the same position as in %FASTDEP%
mode in depend2.am. Fixes build failure for FreeBSD's c89,
which ignores unknown options only after the first non-option.
Bug report against M4 by Nelson H. F. Beebe.
2006-10-13 Jim Meyering <jim@meyering.net>
Fix a bug in yesterday's change.
* lib/fts.c (fts_open): When using FTS_XDEV|FTS_NOSTAT,
p->fts_statp->st_dev would be used uninitialized.
Ensures that we always call fts_stat on the very first entry.
Miklos Szeredi reported that find -xdev stopped working.
2006-10-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_automake_snippet): Append an automatically
computed EXTRA_DIST augmentation.
* modules/acl (Makefile.am): Remove EXTRA_DIST augmentation.
* modules/alloca-opt (Makefile.am): Likewise.
* modules/allocsa (Makefile.am): Likewise.
* modules/arcfour (Makefile.am): Likewise.
* modules/arctwo (Makefile.am): Likewise.
* modules/argmatch (Makefile.am): Likewise.
* modules/argz (Makefile.am): Likewise.
* modules/atexit (Makefile.am): Likewise.
* modules/backupfile (Makefile.am): Likewise.
* modules/byteswap (Makefile.am): Likewise.
* modules/c-strtod (Makefile.am): Likewise.
* modules/c-strtold (Makefile.am): Likewise.
* modules/calloc (Makefile.am): Likewise.
* modules/canon-host (Makefile.am): Likewise.
* modules/canonicalize (Makefile.am): Likewise.
* modules/chdir-long (Makefile.am): Likewise.
* modules/chdir-safer (Makefile.am): Likewise.
* modules/check-version (Makefile.am): Likewise.
* modules/chown (Makefile.am): Likewise.
* modules/cloexec (Makefile.am): Likewise.
* modules/close-stream (Makefile.am): Likewise.
* modules/closeout (Makefile.am): Likewise.
* modules/crc (Makefile.am): Likewise.
* modules/csharpexec (Makefile.am): Likewise.
* modules/cycle-check (Makefile.am): Likewise.
* modules/des (Makefile.am): Likewise.
* modules/dev-ino (Makefile.am): Likewise.
* modules/dirfd (Makefile.am): Likewise.
* modules/dirname (Makefile.am): Likewise.
* modules/dup2 (Makefile.am): Likewise.
* modules/eealloc (Makefile.am): Likewise.
* modules/error (Makefile.am): Likewise.
* modules/euidaccess (Makefile.am): Likewise.
* modules/exclude (Makefile.am): Likewise.
* modules/exitfail (Makefile.am): Likewise.
* modules/fcntl-safer (Makefile.am): Likewise.
* modules/fcntl (Makefile.am): Likewise.
* modules/file-type (Makefile.am): Likewise.
* modules/fileblocks (Makefile.am): Likewise.
* modules/filemode (Makefile.am): Likewise.
* modules/filenamecat (Makefile.am): Likewise.
* modules/fnmatch (Makefile.am): Likewise.
* modules/fopen-safer (Makefile.am): Likewise.
* modules/fpending (Makefile.am): Likewise.
* modules/fprintftime (Makefile.am): Likewise.
* modules/free (Makefile.am): Likewise.
* modules/fsusage (Makefile.am): Likewise.
* modules/ftruncate (Makefile.am): Likewise.
* modules/fts (Makefile.am): Likewise.
* modules/gc-arcfour (Makefile.am): Likewise.
* modules/gc-des (Makefile.am): Likewise.
* modules/gc-hmac-md5 (Makefile.am): Likewise.
* modules/gc-hmac-sha1 (Makefile.am): Likewise.
* modules/gc-md4 (Makefile.am): Likewise.
* modules/gc-pbkdf2-sha1 (Makefile.am): Likewise.
* modules/gc-sha1 (Makefile.am): Likewise.
* modules/gc (Makefile.am): Likewise.
* modules/getaddrinfo (Makefile.am): Likewise.
* modules/getcwd (Makefile.am): Likewise.
* modules/getdelim (Makefile.am): Likewise.
* modules/getdomainname (Makefile.am): Likewise.
* modules/getgroups (Makefile.am): Likewise.
* modules/gethostname (Makefile.am): Likewise.
* modules/gethrxtime (Makefile.am): Likewise.
* modules/getline (Makefile.am): Likewise.
* modules/getloadavg (Makefile.am): Likewise.
* modules/getlogin_r (Makefile.am): Likewise.
* modules/getndelim2 (Makefile.am): Likewise.
* modules/getopt (Makefile.am): Likewise.
* modules/getpagesize (Makefile.am): Likewise.
* modules/getpass-gnu (Makefile.am): Likewise.
* modules/getpass (Makefile.am): Likewise.
* modules/getsubopt (Makefile.am): Likewise.
* modules/gettime (Makefile.am): Likewise.
* modules/gettimeofday (Makefile.am): Likewise.
* modules/getugroups (Makefile.am): Likewise.
* modules/getusershell (Makefile.am): Likewise.
* modules/glob (Makefile.am): Likewise.
* modules/group-member (Makefile.am): Likewise.
* modules/hard-locale (Makefile.am): Likewise.
* modules/hash (Makefile.am): Likewise.
* modules/hmac-md5 (Makefile.am): Likewise.
* modules/hmac-sha1 (Makefile.am): Likewise.
* modules/human (Makefile.am): Likewise.
* modules/idcache (Makefile.am): Likewise.
* modules/imaxabs (Makefile.am): Likewise.
* modules/imaxdiv (Makefile.am): Likewise.
* modules/inet_ntop (Makefile.am): Likewise.
* modules/inet_pton (Makefile.am): Likewise.
* modules/intprops (Makefile.am): Likewise.
* modules/inttostr (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/isapipe (Makefile.am): Likewise.
* modules/javaversion (Makefile.am): Likewise.
* modules/lchmod (Makefile.am): Likewise.
* modules/lchown (Makefile.am): Likewise.
* modules/localcharset (Makefile.am): Likewise.
* modules/long-options (Makefile.am): Likewise.
* modules/lstat (Makefile.am): Likewise.
* modules/malloc (Makefile.am): Likewise.
* modules/mathl (Makefile.am): Likewise.
* modules/mbchar (Makefile.am): Likewise.
* modules/md2 (Makefile.am): Likewise.
* modules/md4 (Makefile.am): Likewise.
* modules/md5 (Makefile.am): Likewise.
* modules/memcasecmp (Makefile.am): Likewise.
* modules/memchr (Makefile.am): Likewise.
* modules/memcmp (Makefile.am): Likewise.
* modules/memcoll (Makefile.am): Likewise.
* modules/memcpy (Makefile.am): Likewise.
* modules/memmem (Makefile.am): Likewise.
* modules/memmove (Makefile.am): Likewise.
* modules/mempcpy (Makefile.am): Likewise.
* modules/memrchr (Makefile.am): Likewise.
* modules/memset (Makefile.am): Likewise.
* modules/memxor (Makefile.am): Likewise.
* modules/mkancesdirs (Makefile.am): Likewise.
* modules/mkdir-p (Makefile.am): Likewise.
* modules/mkdir (Makefile.am): Likewise.
* modules/mkdtemp (Makefile.am): Likewise.
* modules/mkstemp (Makefile.am): Likewise.
* modules/mktime (Makefile.am): Likewise.
* modules/modechange (Makefile.am): Likewise.
* modules/mountlist (Makefile.am): Likewise.
* modules/nanosleep (Makefile.am): Likewise.
* modules/obstack (Makefile.am): Likewise.
* modules/openat (Makefile.am): Likewise.
* modules/pagealign_alloc (Makefile.am): Likewise.
* modules/pathmax (Makefile.am): Likewise.
* modules/physmem (Makefile.am): Likewise.
* modules/poll (Makefile.am): Likewise.
* modules/posixtm (Makefile.am): Likewise.
* modules/posixver (Makefile.am): Likewise.
* modules/putenv (Makefile.am): Likewise.
* modules/quote (Makefile.am): Likewise.
* modules/quotearg (Makefile.am): Likewise.
* modules/raise (Makefile.am): Likewise.
* modules/read-file (Makefile.am): Likewise.
* modules/readline (Makefile.am): Likewise.
* modules/readlink (Makefile.am): Likewise.
* modules/readtokens (Makefile.am): Likewise.
* modules/readutmp (Makefile.am): Likewise.
* modules/realloc (Makefile.am): Likewise.
* modules/regex (Makefile.am): Likewise.
* modules/rename-dest-slash (Makefile.am): Likewise.
* modules/rename (Makefile.am): Likewise.
* modules/rijndael (Makefile.am): Likewise.
* modules/rmdir (Makefile.am): Likewise.
* modules/rpmatch (Makefile.am): Likewise.
* modules/safe-read (Makefile.am): Likewise.
* modules/safe-write (Makefile.am): Likewise.
* modules/same-inode (Makefile.am): Likewise.
* modules/same (Makefile.am): Likewise.
* modules/save-cwd (Makefile.am): Likewise.
* modules/savedir (Makefile.am): Likewise.
* modules/setenv (Makefile.am): Likewise.
* modules/settime (Makefile.am): Likewise.
* modules/sha1 (Makefile.am): Likewise.
* modules/sig2str (Makefile.am): Likewise.
* modules/snprintf (Makefile.am): Likewise.
* modules/stat-macros (Makefile.am): Likewise.
* modules/stat-time (Makefile.am): Likewise.
* modules/stdbool (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdlib-safer (Makefile.am): Likewise.
* modules/stpcpy (Makefile.am): Likewise.
* modules/stpncpy (Makefile.am): Likewise.
* modules/strcase (Makefile.am): Likewise.
* modules/strcasestr (Makefile.am): Likewise.
* modules/strchrnul (Makefile.am): Likewise.
* modules/strcspn (Makefile.am): Likewise.
* modules/strdup (Makefile.am): Likewise.
* modules/strerror (Makefile.am): Likewise.
* modules/strftime (Makefile.am): Likewise.
* modules/strndup (Makefile.am): Likewise.
* modules/strnlen (Makefile.am): Likewise.
* modules/strpbrk (Makefile.am): Likewise.
* modules/strsep (Makefile.am): Likewise.
* modules/strstr (Makefile.am): Likewise.
* modules/strtod (Makefile.am): Likewise.
* modules/strtoimax (Makefile.am): Likewise.
* modules/strtok_r (Makefile.am): Likewise.
* modules/strtol (Makefile.am): Likewise.
* modules/strtoll (Makefile.am): Likewise.
* modules/strtoul (Makefile.am): Likewise.
* modules/strtoull (Makefile.am): Likewise.
* modules/strtoumax (Makefile.am): Likewise.
* modules/strverscmp (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/time_r (Makefile.am): Likewise.
* modules/timegm (Makefile.am): Likewise.
* modules/timespec (Makefile.am): Likewise.
* modules/tmpfile-safer (Makefile.am): Likewise.
* modules/trim (Makefile.am): Likewise.
* modules/unistd-safer (Makefile.am): Likewise.
* modules/unlinkdir (Makefile.am): Likewise.
* modules/unlocked-io (Makefile.am): Likewise.
* modules/userspec (Makefile.am): Likewise.
* modules/utime (Makefile.am): Likewise.
* modules/utimecmp (Makefile.am): Likewise.
* modules/utimens (Makefile.am): Likewise.
* modules/vasnprintf (Makefile.am): Likewise.
* modules/vasprintf (Makefile.am): Likewise.
* modules/vsnprintf (Makefile.am): Likewise.
* modules/xalloc (Makefile.am): Likewise.
* modules/xgetcwd (Makefile.am): Likewise.
* modules/xnanosleep (Makefile.am): Likewise.
* modules/xreadlink (Makefile.am): Likewise.
* modules/xstrtod (Makefile.am): Likewise.
* modules/xstrtol (Makefile.am): Likewise.
* modules/xstrtold (Makefile.am): Likewise.
* modules/yesno (Makefile.am): Likewise.
* modules/getdate (Makefile.am): Don't add getdate.h to EXTRA_DIST.
2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
* modules/error (Makefile.am): Distribute files through
EXTRA_DIST, not lib_SOURCES.
2006-10-12 Eric Blake <ebb9@byu.net>
* modules/error (Makefile.am): Distribute files in /lib.
* modules/obstack (Makefile.am): Likewise.
2006-10-12 Bruno Haible <bruno@clisp.org>
* modules/acl (Makefile.am): Distribute all files in lib/ through
EXTRA_DIST.
* modules/arcfour (Makefile.am): Likewise.
* modules/arctwo (Makefile.am): Likewise.
* modules/argmatch (Makefile.am): Likewise.
* modules/argz (Makefile.am): Likewise.
* modules/atexit (Makefile.am): Likewise.
* modules/backupfile (Makefile.am): Likewise.
* modules/c-strtod (Makefile.am): Likewise.
* modules/c-strtold (Makefile.am): Likewise.
* modules/calloc (Makefile.am): Likewise.
* modules/canon-host (Makefile.am): Likewise.
* modules/canonicalize (Makefile.am): Likewise.
* modules/chdir-long (Makefile.am): Likewise.
* modules/chdir-safer (Makefile.am): Likewise.
* modules/check-version (Makefile.am): Likewise.
* modules/chown (Makefile.am): Likewise.
* modules/cloexec (Makefile.am): Likewise.
* modules/close-stream (Makefile.am): Likewise.
* modules/closeout (Makefile.am): Likewise.
* modules/crc (Makefile.am): Likewise.
* modules/cycle-check (Makefile.am): Likewise.
* modules/des (Makefile.am): Likewise.
* modules/dirfd (Makefile.am): Likewise.
* modules/dirname (Makefile.am): Likewise.
* modules/dup2 (Makefile.am): Likewise.
* modules/euidaccess (Makefile.am): Likewise.
* modules/exclude (Makefile.am): Likewise.
* modules/exitfail (Makefile.am): Likewise.
* modules/fcntl-safer (Makefile.am): Likewise.
* modules/file-type (Makefile.am): Likewise.
* modules/fileblocks (Makefile.am): Likewise.
* modules/filemode (Makefile.am): Likewise.
* modules/filenamecat (Makefile.am): Likewise.
* modules/fnmatch (Makefile.am): Likewise.
* modules/fopen-safer (Makefile.am): Likewise.
* modules/fpending (Makefile.am): Likewise.
* modules/fprintftime (Makefile.am): Likewise.
* modules/free (Makefile.am): Likewise.
* modules/fsusage (Makefile.am): Likewise.
* modules/ftruncate (Makefile.am): Likewise.
* modules/fts (Makefile.am): Likewise.
* modules/gc (Makefile.am): Likewise.
* modules/gc-pbkdf2-sha1 (Makefile.am): Likewise.
* modules/getaddrinfo (Makefile.am): Likewise.
* modules/getcwd (Makefile.am): Likewise.
* modules/getdelim (Makefile.am): Likewise.
* modules/getdomainname (Makefile.am): Likewise.
* modules/getgroups (Makefile.am): Likewise.
* modules/gethostname (Makefile.am): Likewise.
* modules/gethrxtime (Makefile.am): Likewise.
* modules/getline (Makefile.am): Likewise.
* modules/getloadavg (Makefile.am): Likewise.
* modules/getlogin_r (Makefile.am): Likewise.
* modules/getopt (Makefile.am): Likewise.
* modules/getpass (Makefile.am): Likewise.
* modules/getpass-gnu (Makefile.am): Likewise.
* modules/getsubopt (Makefile.am): Likewise.
* modules/gettime (Makefile.am): Likewise.
* modules/gettimeofday (Makefile.am): Likewise.
* modules/getugroups (Makefile.am): Likewise.
* modules/getusershell (Makefile.am): Likewise.
* modules/glob (Makefile.am): Likewise.
* modules/group-member (Makefile.am): Likewise.
* modules/hard-locale (Makefile.am): Likewise.
* modules/hash (Makefile.am): Likewise.
* modules/hmac-md5 (Makefile.am): Likewise.
* modules/hmac-sha1 (Makefile.am): Likewise.
* modules/human (Makefile.am): Likewise.
* modules/idcache (Makefile.am): Likewise.
* modules/imaxabs (Makefile.am): Likewise.
* modules/imaxdiv (Makefile.am): Likewise.
* modules/inet_ntop (Makefile.am): Likewise.
* modules/inet_pton (Makefile.am): Likewise.
* modules/inttostr (Makefile.am): Likewise.
* modules/isapipe (Makefile.am): Likewise.
* modules/lchown (Makefile.am): Likewise.
* modules/long-options (Makefile.am): Likewise.
* modules/lstat (Makefile.am): Likewise.
* modules/malloc (Makefile.am): Likewise.
* modules/mathl (Makefile.am): Likewise.
* modules/mbchar (Makefile.am): Likewise.
* modules/md2 (Makefile.am): Likewise.
* modules/md4 (Makefile.am): Likewise.
* modules/md5 (Makefile.am): Likewise.
* modules/memcasecmp (Makefile.am): Likewise.
* modules/memchr (Makefile.am): Likewise.
* modules/memcmp (Makefile.am): Likewise.
* modules/memcoll (Makefile.am): Likewise.
* modules/memcpy (Makefile.am): Likewise.
* modules/memmem (Makefile.am): Likewise.
* modules/memmove (Makefile.am): Likewise.
* modules/mempcpy (Makefile.am): Likewise.
* modules/memrchr (Makefile.am): Likewise.
* modules/memset (Makefile.am): Likewise.
* modules/memxor (Makefile.am): Likewise.
* modules/mkancesdirs (Makefile.am): Likewise.
* modules/mkdir (Makefile.am): Likewise.
* modules/mkdir-p (Makefile.am): Likewise.
* modules/mkdtemp (Makefile.am): Likewise.
* modules/mkstemp (Makefile.am): Likewise.
* modules/mktime (Makefile.am): Likewise.
* modules/modechange (Makefile.am): Likewise.
* modules/mountlist (Makefile.am): Likewise.
* modules/nanosleep (Makefile.am): Likewise.
* modules/openat (Makefile.am): Likewise.
* modules/pagealign_alloc (Makefile.am): Likewise.
* modules/physmem (Makefile.am): Likewise.
* modules/poll (Makefile.am): Likewise.
* modules/posixtm (Makefile.am): Likewise.
* modules/posixver (Makefile.am): Likewise.
* modules/putenv (Makefile.am): Likewise.
* modules/quote (Makefile.am): Likewise.
* modules/quotearg (Makefile.am): Likewise.
* modules/raise (Makefile.am): Likewise.
* modules/read-file (Makefile.am): Likewise.
* modules/readline (Makefile.am): Likewise.
* modules/readlink (Makefile.am): Likewise.
* modules/readtokens (Makefile.am): Likewise.
* modules/readutmp (Makefile.am): Likewise.
* modules/realloc (Makefile.am): Likewise.
* modules/regex (Makefile.am): Likewise.
* modules/rename (Makefile.am): Likewise.
* modules/rename-dest-slash (Makefile.am): Likewise.
* modules/rijndael (Makefile.am): Likewise.
* modules/rmdir (Makefile.am): Likewise.
* modules/rpmatch (Makefile.am): Likewise.
* modules/safe-read (Makefile.am): Likewise.
* modules/safe-write (Makefile.am): Likewise.
* modules/same (Makefile.am): Likewise.
* modules/save-cwd (Makefile.am): Likewise.
* modules/savedir (Makefile.am): Likewise.
* modules/setenv (Makefile.am): Likewise.
* modules/settime (Makefile.am): Likewise.
* modules/sha1 (Makefile.am): Likewise.
* modules/sig2str (Makefile.am): Likewise.
* modules/snprintf (Makefile.am): Likewise.
* modules/stdlib-safer (Makefile.am): Likewise.
* modules/stpcpy (Makefile.am): Likewise.
* modules/stpncpy (Makefile.am): Likewise.
* modules/strcase (Makefile.am): Likewise.
* modules/strcasestr (Makefile.am): Likewise.
* modules/strchrnul (Makefile.am): Likewise.
* modules/strcspn (Makefile.am): Likewise.
* modules/strdup (Makefile.am): Likewise.
* modules/strerror (Makefile.am): Likewise.
* modules/strftime (Makefile.am): Likewise.
* modules/strndup (Makefile.am): Likewise.
* modules/strnlen (Makefile.am): Likewise.
* modules/strpbrk (Makefile.am): Likewise.
* modules/strsep (Makefile.am): Likewise.
* modules/strstr (Makefile.am): Likewise.
* modules/strtod (Makefile.am): Likewise.
* modules/strtoimax (Makefile.am): Likewise.
* modules/strtok_r (Makefile.am): Likewise.
* modules/strtol (Makefile.am): Likewise.
* modules/strtoll (Makefile.am): Likewise.
* modules/strtoul (Makefile.am): Likewise.
* modules/strtoull (Makefile.am): Likewise.
* modules/strtoumax (Makefile.am): Likewise.
* modules/strverscmp (Makefile.am): Likewise.
* modules/time_r (Makefile.am): Likewise.
* modules/timegm (Makefile.am): Likewise.
* modules/tmpfile-safer (Makefile.am): Likewise.
* modules/unistd-safer (Makefile.am): Likewise.
* modules/unlinkdir (Makefile.am): Likewise.
* modules/userspec (Makefile.am): Likewise.
* modules/utime (Makefile.am): Likewise.
* modules/utimecmp (Makefile.am): Likewise.
* modules/utimens (Makefile.am): Likewise.
* modules/vasnprintf (Makefile.am): Likewise.
* modules/vasprintf (Makefile.am): Likewise.
* modules/vsnprintf (Makefile.am): Likewise.
* modules/xalloc (Makefile.am): Likewise.
* modules/xgetcwd (Makefile.am): Likewise.
* modules/xnanosleep (Makefile.am): Likewise.
* modules/xreadlink (Makefile.am): Likewise.
* modules/xstrtod (Makefile.am): Likewise.
* modules/xstrtol (Makefile.am): Likewise.
* modules/xstrtold (Makefile.am): Likewise.
* modules/yesno (Makefile.am): Likewise.
2006-10-12 Jim Meyering <jim@meyering.net>
* m4/getloadavg.m4: Revert the change below.
* m4/getloadavg.m4 (gl_GETLOADAVG): Test for the existence of
lib/getloadavg.c using "ls -L", not "test -f". The latter would
fail with a symlink, which is what coreutils' ./bootstrap now
creates by default.
2006-10-12 Bruno Haible <bruno@clisp.org>
* lib/inttypes_.h (_LONG_LONG_FORMAT_PREFIX): Don't define for MSVC or
mingw.
(_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX): Handle
MSVC and mingw explicitly.
2006-10-11 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
Add support for multiple gnulib-tool invocations in the scope of a
single configure.ac file.
* gnulib-tool (func_emit_lib_Makefile_am): In the _LIBADD variable,
use a private [LT]LIBOBJS variant. Define a _DEPENDENCIES variable
with the same contents as the _LIBADD variable.
(func_emit_initmacro_start, func_emit_initmacro_end,
func_emit_initmacro_done): New functions.
(func_import, func_create_testdir): Invoke them. Allow the identifiers
gl_LIBOBJS and gl_LTLIBOBJS.
2006-10-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (GETTEXTPATH, AUTOHEADER, AUTOPOINT): New variables.
(func_create_testdir): Don't create po/Makefile.am, don't invoke
autoreconf. Instead, invoke autopoint explicitly but move back the
*.m4 files from gnulib.
2006-10-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Make module names after --create-testdir
optional.
(func_create_testdir): If no module was specified, use nearly all
modules.
2006-10-12 Jim Meyering <jim@meyering.net>
Big performance improvement for fts-based tools that use FTS_NOSTAT.
Avoid spurious inode-mismatch problems on non-POSIX file systems.
Details: http://article.gmane.org/gmane.comp.lib.gnulib.bugs/7416
* lib/fts_.h (FTS_DEFER_STAT): Define new flag.
(FTS_OPTIONMASK): Extend the mask to reflect this addition.
* lib/fts.c (DT_IS_KNOWN, DT_MUST_BE): Define.
(FTS_NO_STAT_REQUIRED, FTS_STAT_REQUIRED): Define.
(fts_set_stat_required): New function.
(fts_open): Defer the calls to fts_stat, if possible or requested.
Move the code that maps a command-line fts_info value FTS_DOT to FTS_D
into fts_stat itself.
(fts_read): Perform any required (deferred) fts_stat call.
(fts_build): Likewise, for the directory we're about to open and read.
In the readdir loop, carefully decide whether each entry will require
an eventual call to fts_stat, using dirent.d_type info if available.
(fts_stat): Move the test for whether to honor FTS_COMFOLLOW on
a command line argument into this function. Update all callers.
Map a return value of FTS_DOT to FTS_D for a command line argument.
* modules/fts (Depends-on): Add d-type. Alphabetize.
Thanks to Miklos Szeredi for his tenacity and for the initial
bug report about "find" failing on a FUSE-based file system.
* lib/fts.c (fts_open): Use consistent indentation.
2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Renamed from
gl_USE_SYSTEM_EXTENSIONS, to fix a coreutils bootstrap failure
reported by Jim Meyering. All uses of cache variables renamed
to match Autoconf's.
(gl_USE_SYSTEM_EXTENSIONS): New macro, which simply requires
the other one.
* m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH):
Fix misspelling in diagnostic.
2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/mkdir-p.c (HAVE_FCHMOD): Define to false if not already
defined. Problem reported by Matthew Woehlke.
* lib/inttypes_.h (_LONG_LONG_FORMAT_PREFIX): New macro.
Add support for Tandem NonStop R series.
(_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX):
Use new macro.
* lib/rename-dest-slash.c: Include stdbool.h but not string.h.
(has_trailing_slash): Omit size arg; all callers changed.
Omit 'inline', since it doesn't help performance and we'd
need to configure it.
Don't count //, ///, etc. as having a trailing slash.
As a side effect, this removes a C99ism reported by Matthew Woehlke.
(rpl_rename_dest_slash): On failure, use rename's errno rather
than (in some cases) an incorrect or junk errno.
Simplify code by removing need to compute length; this does
cause it to make two passes instead of one over the file name,
but it's worth it.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Undo previous
change, since Autoconf's version may no longer be appropriate now
that we are using CVS Autoconf's version. Add support for Tandem.
2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* lib/allocsa.h (sa_alignment_longlong, sa_alignment_max): Test
HAVE_LONG_LONG_INT instead of HAVE_LONG_LONG.
* m4/allocsa.m4 (gl_ALLOCSA): Invoke AC_TYPE_LONG_LONG_INT instead of
gl_AC_TYPE_LONG_LONG.
* lib/printf-args.h (arg_type, argument): Test HAVE_LONG_LONG_INT
instead of HAVE_LONG_LONG.
* lib/printf-args.c (printf_fetchargs): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): Likewise.
* lib/vasnprintf.c (VASNPRINTF): Likewise.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE,
gl_PREREQ_VASNPRINTF): Invoke AC_TYPE_LONG_LONG_INT instead of
gl_AC_TYPE_LONG_LONG.
2006-10-11 Bruno Haible <bruno@clisp.org>
* m4/longlong.m4: Add comments.
* m4/ulonglong.m4: Likewise.
2006-10-10 Bruno Haible <bruno@clisp.org>
Make it possible to #define stpcpy, strdup to aliases.
* lib/stpcpy.c (stpcpy) [!_LIBC]: Don't undefine.
* lib/strdup.c (strdup) [!_LIBC]: Don't undefine.
2006-10-10 Bruno Haible <bruno@clisp.org>
Make it possible to #define gcd to an alias.
* lib/gcd.c: Include config.h.
2006-10-10 Bruno Haible <bruno@clisp.org>
Make it possible to #define c_isascii to an alias.
* lib/c-ctype.h: Don't define the macros if NO_C_CTYPE_MACROS is
defined. Undefine the macros before defining them, to avoid gcc
warnings.
* lib/c-ctype.c: Include config.h. Don't undefine the macros; instead,
define NO_C_CTYPE_MACROS early.
2006-10-10 Bruno Haible <bruno@clisp.org>
Make it possible to #define set_program_name to an alias.
* lib/progname.c: Don't undefine set_program_name; instead, undefine
ENABLE_RELOCATABLE early.
2006-10-10 Paul Eggert <eggert@cs.ucla.edu>
Port to Tandem NSK OSS, which has 64-bit signed int but at most
32-bit unsigned int. Problem reported by Matthew Woehlke in:
http://lists.gnu.org/r/bug-coreutils/2006-10/msg00062.html
More generally, don't assume that 64-bit signed int is available
if unsigned int is, and vice versa.
* lib/inttypes_.h (_PRIu64_PREFIX, _SCNu64_PREFIX): Depend on
unsigned symbols, not on their signed counterparts.
* lib/stdint_.h (uint64_t, uint_least64_t, uint_fast64_t, uintmax_t):
(UINT64_MAX, UINT_LEAST64_MAX, UINT_FAST64_MAX, UINTMAX_MAX):
(UINT64_C, UINTMAX_C):
Likewise.
* lib/strtoimax.c (strtoll): Depend on signed symbols, not their
unsigned counterparts.
(Have_long_long, Unsigned): New macros.
(Int): Renamed from INT.
(strtoimax): Use the new macros.
* m4/stdint.m4 (gl_STDINT_H): Require AC_TYPE_UNSIGNED_LONG_LONG_INT
and substitute HAVE_UNSIGNED_LONG_LONG_INT.
* modules/inttypes (inttypes.h): Substitute
HAVE_UNSIGNED_LONG_LONG_INT.
* modules/stdint (stdint.h): Likewise.
(Files): Add m4/ulonglong.m4.
2006-10-10 Bruno Haible <bruno@clisp.org>
Fix a gcc -Wshadow warning.
* lib/gl_anyhash_list2.h (hash_resize): Rename local variable 'index'
to 'bucket'.
* lib/gl_anylinked_list2.h (gl_linked_search_from_to,
gl_linked_indexof_from_to): Likewise.
* lib/gl_linkedhash_list.c (add_to_bucket, remove_from_bucket):
Likewise.
* lib/gl_anytreehash_list1.h (add_to_bucket, remove_from_bucket):
Likewise.
* lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Likewise.
Reported by Eric Blake.
2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/filemode.h [HAVE_DECL_STRMODE]: Include unistd.h too,
for NetBSD. Problem reported by Bruno Haible.
2006-10-09 Jim Meyering <jim@meyering.net>
* lib/lchown.c: Include <sys/stat.h> before "stat-macros.h".
Patch from Bruno Haible.
2006-10-09 Jim Meyering <jim@meyering.net>
* lib/fts-cycle.c (leave_dir): When "leaving" a top level directory due
to FTS_SKIP, don't copy the parent's uninitialized dev/ino values.
Trigger with e.g., mkdir d && valgrind ./chmod u+rwx d d
2006-10-08 Paul Eggert <eggert@cs.ucla.edu>
Don't include <config.h> twice; this doesn't work in some cases,
e.g., when config.h has "#define intmax_t long long int" and
we include <config.h>, <inttypes.h>, <config.h> in that order.
Problem reported by Matthew Woehlke in:
http://lists.gnu.org/r/bug-coreutils/2006-10/msg00073.html
* lib/fprintftime.c: Don't include config.h or fprintftime.h.
* lib/fts-cycle.c: Don't include config.h.
* lib/strftime.c: Include fprintftime.h if FPRINTFTIME is defined.
* lib/xstrtoimax.c: Remove copyright notice since it's short tnow.
Don't include config.h or xstrtol.h. Define STRTOL_T_MINIMUM
and STRTOL_T_MAXIMUM unconditionally, since we now assume gnulib
inttypes.h.
* lib/xstrtoumax.c: Likewise.
* lib/xstrtol.c: Include config.h and xstrtol.h after defining
__strtol and the like, so that this module is more like its siblings.
(STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [! defined STRTOL_T_MINIMUM]:
Remove; no longer needed now that we assume gnulib inttypes.h.
2006-10-08 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi: Emphasize the drawbacks of the --symlink
option.
2006-10-07 Jim Meyering <jim@meyering.net>
* modules/inttypes (inttypes.h): Revert what seems to have been
an inadvertent part of today's change: use "|", not "/" in the
substitution for the "/"-containing string, $(ABSOLUTE_INTTYPES_H).
2006-10-07 Bruno Haible <bruno@clisp.org>
* modules/sublist: New file.
2006-10-07 Bruno Haible <bruno@clisp.org>
* modules/alloca-opt (alloca.h): Add a "DO NOT EDIT" comment.
* modules/argz (argz.h): Likewise.
* modules/arpa_inet (arpa/inet.h): Likewise.
* modules/byteswap (byteswap.h): Likewise.
* modules/configmake (configmake.h): Likewise.
* modules/fcntl (fcntl.h): Likewise.
* modules/fnmatch (fnmatch.h): Likewise.
* modules/getopt (getopt.h): Likewise.
* modules/glob (glob.h): Likewise.
* modules/inttypes (inttypes.h): Likewise.
* modules/netinet_in (netinet/in.h): Likewise.
* modules/poll (poll.h): Likewise.
* modules/stdbool (stdbool.h): Likewise.
* modules/stdint (stdint.h): Likewise.
* modules/sys_select (sys/select.h): Likewise.
* modules/sys_socket (sys/socket.h): Likewise.
* modules/sys_stat (sys/stat.h): Likewise.
* modules/sysexits (sysexits.h): Likewise.
* modules/unistd (unistd.h): Likewise.
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Add a "DO NOT EDIT" comment to the generated file.
(func_import): Likewise for gnulib-comp.m4.
2006-10-07 Bruno Haible <bruno@clisp.org>
* lib/gl_sublist.h: New file.
* lib/gl_sublist.c: New file.
2006-10-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/mkancesdirs.c (mkancesdirs): Pass to MAKE_DIR both the full file
name (relative to the original working directory) and the file
name component (relative to the temporary working directory). All
callers changed.
* lib/mkancesdirs.h (mkancesdirs): Adjust prototype to match.
* lib/mkdir-p.c (make_dir_parents): Likewise.
* lib/mkdir-p.h (make_dir_parents): Likewise.
2006-10-06 Eric Blake <ebb9@byu.net>
Define several macros for use by the clean-temp module.
* m4/close-stream.m4 (gl_CLOSE_STREAM): Define GNULIB_CLOSE_STREAM.
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Define GNULIB_FCNTL_SAFER.
* m4/stdio-safer.m4 (gl_FOPEN_SAFER): Define GNULIB_FOPEN_SAFER.
* lib/clean-temp.h (close_stream_temp): New declaration.
* lib/clean-temp.c (includes): Pull in headers according to what
other modules are in use.
(close_stream_temp) [GNULIB_CLOSE_STREAM]: New function.
2006-10-06 Bruno Haible <bruno@clisp.org>
* lib/javacomp.c (write_temp_file): Use fopen_temp, fwriteerror_temp
instead of fopen, fwriteerror.
2006-10-06 Bruno Haible <bruno@clisp.org>
* lib/clean-temp.h (cleanup_temp_file, cleanup_temp_subdir,
cleanup_temp_dir_contents, cleanup_temp_dir): Change return type to
int.
* lib/clean-temp.c (do_unlink, do_rmdir, cleanup_temp_file,
cleanup_temp_subdir, cleanup_temp_dir_contents, cleanup_temp_dir):
Return an error indicator.
Suggested by Eric Blake.
2006-10-06 Bruno Haible <bruno@clisp.org>
* lib/clean-temp.c (PATH_MAX): Provide a fallback for GNU Hurd.
Reported by Eric Blake.
2006-10-06 Bruno Haible <bruno@clisp.org>
* modules/closeout (Description): Mention stderr too.
2006-10-06 Bruno Haible <bruno@clisp.org>
and Paul Eggert <eggert@cs.ucla.edu>
* lib/closeout.c (close_stdout): Also close stderr.
* lib/closeout.h: Update comment.
2006-10-05 Paul Eggert <eggert@cs.ucla.edu>
Fix some Darwin-7.9.0 porting problems reported by Bruno Haible in
<http://lists.gnu.org/r/bug-coreutils/2006-10/msg00063.html>.
* lib/dirchownmod.c: Include lchown.h.
* lib/lchown.c: Don't include files that lchown.h now includes.
Don't declare chown, since lchown.h now does that.
* lib/lchown.h: Include errno.h, sys/types.h, unistd.h.
(lchown): Define to rpl_chown if lchown is declared but
does not exist. Declare using a prototype if lchown is not
declared. Add a copyright notice.
* lib/mkstemp.h: Include <unistd.h>.
* lib/openat.c: Include lchown.h.
* lib/fcntl_.h (O_NOFOLLOW): Don't depend on O_NOFOLLOW_IS_INEFFECTIVE;
we now test for that separately.
* lib/fts.c (fts_safe_changedir): Inspect HAVE_WORKING_O_NOFOLLOW
rather than O_NOFOLLOW, when testing whether it's possible to
avoid a race condition reliably.
* lib/savewd.c (savewd_chdir): Likewise.
Remove macros that are no longer needed now that stdint.h is
reliable.
* lib/fsusage.c (UINTMAX_MAX): Remove.
* lib/human.c (SIZE_MAX, UINTMAX_MAX): Remove.
* lib/utimecmp.c (SIZE_MAX): Remove.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Check whether lchown is declared.
* m4/fcntl_h.m4 (gl_FCNTL_H): Define HAVE_WORKING_O_NOFOLLOW instead
of O_NOFOLLOW_IS_INEFFECTIVE. Define HAVE_WORKING_O_NOATIME if
O_NOATIME works.
2006-10-05 Bruno Haible <bruno@clisp.org>
* lib/gl_list.h (gl_sortedlist_search_from_to,
gl_sortedlist_indexof_from_to): New declarations.
(gl_list_implementation): New fields sortedlist_search_from_to,
sortedlist_indexof_from_to.
(gl_sortedlist_search_from_to, gl_sortedlist_indexof_from_to): New
inline functions.
* lib/gl_list.c (gl_sortedlist_search_from_to,
gl_sortedlist_indexof_from_to): New functions.
* lib/gl_array_list.c (gl_array_sortedlist_indexof_from_to): New
function.
(gl_array_sortedlist_indexof, gl_array_sortedlist_search): Use it.
(gl_array_sortedlist_search_from_to): New function.
(gl_array_list_implementation): Update.
* lib/gl_carray_list.c (gl_carray_sortedlist_indexof_from_to): New
function.
(gl_carray_sortedlist_indexof, gl_carray_sortedlist_search): Use it.
(gl_carray_sortedlist_search_from_to): New function.
(gl_carray_list_implementation): Update.
* lib/gl_anylinked_list2.h (gl_linked_sortedlist_search_from_to,
gl_linked_sortedlist_indexof_from_to): New functions.
* lib/gl_linked_list.c (gl_linked_list_implementation): Update.
* lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update.
* lib/gl_anytree_list2.h (gl_tree_sortedlist_search_from_to,
gl_tree_sortedlist_indexof_from_to): New functions.
* lib/gl_avltree_list.c (gl_avltree_list_implementation): Update.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation):
Update.
* lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update.
* lib/gl_rbtreehash_list.c (gl_avltreehash_list_implementation):
Update.
2006-10-05 Bruno Haible <bruno@clisp.org>
* lib/gl_list.h (gl_list_search_from, gl_list_search_from_to,
gl_list_indexof_from, gl_list_indexof_from_to): New declarations.
(struct gl_list_implementation): Add fields search_from_to,
indexof_from_to. Remove fields search, indexof.
(gl_list_search): Use the search_from_to method.
(gl_list_search_from, gl_list_search_from_to): New functions.
(gl_list_indexof): Use the indexof_from_to method.
(gl_list_indexof_from, gl_list_indexof_from_to): New functions.
* lib/gl_list.c (gl_list_search): Use the search_from_to method.
(gl_list_search_from, gl_list_search_from_to): New functions.
(gl_list_indexof): Use the indexof_from_to method.
(gl_list_indexof_from, gl_list_indexof_from_to): New functions.
* lib/gl_array_list.c (gl_array_indexof_from_to): Renamed from
gl_array_indexof. Add start_index, end_index arguments.
(gl_array_search_from_to): Renamed from gl_array_search. Add
start_index, end_index arguments.
(gl_array_remove, gl_array_list_implementation): Update.
* lib/gl_carray_list.c (gl_carray_indexof_from_to): Renamed from
gl_carray_indexof. Add start_index, end_index arguments.
(gl_carray_search_from_to): Renamed from gl_carray_search. Add
start_index, end_index arguments.
(gl_carray_remove, gl_carray_list_implementation): Update.
* lib/gl_anylinked_list2.h (gl_linked_search_from_to): Renamed from
gl_linked_search. Add start_index, end_index arguments.
(gl_linked_indexof_from_to): Renamed from gl_linked_indexof. Add
start_index, end_index arguments.
(gl_linked_remove): Update.
* lib/gl_linked_list.c (gl_linked_list_implementation): Update.
* lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update.
* lib/gl_anytree_list1.h (iterstack_item_t): Change type of 'rightp'
field to 'size_t'.
* lib/gl_anytree_list2.h (gl_tree_search_from_to): Renamed from
gl_tree_search. Add start_index, end_index arguments.
(gl_tree_indexof_from_to): Renamed from gl_tree_indexof. Add
start_index, end_index arguments.
(gl_tree_remove): Update.
* lib/gl_avltree_list.c (gl_avltree_list_implementation): Update.
* lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update.
* lib/gl_anytreehash_list1.h (compare_position_threshold): New
function.
* lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Renamed from
gl_tree_search. Add start_index, end_index arguments.
(gl_tree_indexof_from_to): Renamed from gl_tree_indexof. Add
start_index, end_index arguments.
* lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation):
Update.
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Update.
2006-10-05 Bruno Haible <bruno@clisp.org>
* modules/fwriteerror (configure.ac): Define GNULIB_FWRITEERROR.
* lib/clean-temp.h (open_temp, fopen_temp, close_temp, fclose_temp,
fwriteerror_temp): New declarations.
* lib/clean-temp.c (uintptr_t): Provide fallback definition.
(descriptors): New variable.
(cleanup): First, close the descriptors.
(register_fd, unregister_fd, open_temp, fopen_temp, close_temp,
fclose_temp, fwriteerror_temp): New functions.
2006-10-04 Jim Meyering <jim@meyering.net>
* lib/fts.c (fts_open): Tiny comment change.
2006-10-04 Bruno Haible <bruno@clisp.org>
Make it possible to invoke AC_GNU_SOURCE after gl_LOCK_EARLY.
* m4/lock.m4 (gl_LOCK_EARLY_BODY): New macro, extracted code from
gl_LOCK_BODY.
(gl_LOCK_EARLY): Require gl_LOCK_EARLY_BODY, not gl_LOCK_BODY.
(gl_LOCK_BODY): Remove settings of CPPFLAGS, now done in
gl_LOCK_EARLY_BODY.
(gl_LOCK): Require gl_LOCK_BODY.
2006-10-04 Bruno Haible <bruno@clisp.org>
* lib/gl_oset.h (gl_setelement_threshold_fn): New type.
(gl_oset_search_atleast): New declaration.
(struct gl_oset_implementation): Add field 'search_atleast'.
(gl_oset_search_atleast): New inline function.
* lib/gl_oset.c (gl_oset_search_atleast): New function.
* lib/gl_array_oset.c (gl_array_search_atleast): New function.
(gl_array_oset_implementation): Update.
* lib/gl_anytree_oset.h (gl_tree_search_atleast): New function.
* lib/gl_avltree_oset.c (gl_avltree_oset_implementation): Update.
* lib/gl_rbtree_oset.c (gl_rbtree_oset_implementation): Update.
2006-10-04 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.c (fatal_signals) [WOE32]: Add the SIGBREAK signal.
2006-10-03 Bruno Haible <bruno@clisp.org>
* lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Renamed
from gl_avltreehash_list_implementation.
2006-10-03 Bruno Haible <bruno@clisp.org>
* lib/gl_oset.c (gl_oset_add): Fix return type.
2006-10-02 Paolo Bonzini <bonzini@gnu.org> (tiny change)
* lib/quotearg.c (mbstate_t) [!HAVE_MBRTOWC]: #define to int.
2006-10-02 Eric Blake <ebb9@byu.net>
* modules/strnlen (Depends-on): Add extensions.
2006-10-02 Eric Blake <ebb9@byu.net>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use autoconf's
definition in 2.60+.
2006-10-02 Dmitry V. Levin <ldv@altlinux.org>
* lib/fts.c (fts_close, fts_build, fts_palloc): Remove redundant
checks.
2006-10-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Don't add no-dependencies
to the AUTOMAKE_OPTIONS.
Reported by Jim Meyering.
2006-09-29 Paul Eggert <eggert@cs.ucla.edu>
Work around bug in Solaris 10 /proc file system:
/proc/self/fd/NNN/.. isn't the parent directory of
the directory whose file descriptor is NNN. This needs to
be worked around at run time, not compile time, since a
program might be built on Solaris 8, where things work, and
run on Solaris 10.
* lib/openat-priv.h (BUILD_PROC_NAME): Remove. All callers changed
to use the following interface instead:
(OPENAT_BUFFER_SIZE): New macro.
(openat_proc_name): New function.
* lib/at-func.c (AT_FUNC_NAME): Adjust to above changes.
* lib/openat.c (openat_permissive, openat_needs_fchdir, fdopendir):
Likewise.
* lib/openat-proc.c: New file.
* modules/openat (Files): Add lib/openat-proc.c.
(Depends-on): Add same-inode, stdbool.
* m4/openat.m4 (gl_FUNC_OPENAT): Add AC_LIBOBJ(openat-proc).
2006-09-29 Bruno Haible <bruno@clisp.org>
* lib/fwriteerror.h (fwriteerror_no_ebadf): New declaration.
* lib/(do_fwriteerror): Renamed from fwriteerror. Add ignore_ebadf
argument. Set stdout_closed before testing for ferror, not after.
(fwriteerror, fwriteerror_no_ebadf): New functions.
2006-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/intmax.m4 (gt_TYPE_INTMAX_T): Avoid unused variables warning.
2006-09-28 Paolo Bonzini <bonzini@gnu.org>
* lib/poll.c (rpl_poll) [__APPLE__]: Use FIONREAD instead of MSG_PEEK.
* m4/poll.m4: Look for sys/ioctl.h and sys/filio.h.
2006-09-28 Jim Meyering <jim@meyering.net>
* lib/mkdir-p.c: Include "dirchownmod.h", not "dirchownmod.c".
Include <unistd.h>.
2006-09-28 Bruno Haible <bruno@clisp.org>
* modules/avltreehash-list (Depends-on): Add stdint, remove size_max.
* modules/linkedhash-list (Depends-on): Likewise.
* modules/rbtreehash-list (Depends-on): Likewise.
2006-09-28 Bruno Haible <bruno@clisp.org>
* lib/strndup.h: Simplify the redefinition of strndup.
(_GL_CONCAT, _GL_XCONCAT, __STRNDUP_ID): Remove macros.
* m4/strndup.m4 (gl_FUNC_STRNDUP): Don't define __STRNDUP_PREFIX.
2006-09-28 Bruno Haible <bruno@clisp.org>
* lib/gl_avltreehash_list.c: Include <stdint.h> instead of size_max.h.
* lib/gl_linkedhash_list.c: Likewise.
* lib/gl_rbtreehash_list.c: Likewise.
2006-09-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/canon-host.c (canon_host_r): Work around bug in Darwin 7.9.0
getaddrinfo.
* lib/__fpending.h: Don't include <stdio_ext.h> unless
HAVE_DECL___FPENDING. This avoids a bug with lsbcc, where
it causes <stdio_ext.h> to cause a compile-time error.
Problem reported by Nelson H. F. Beebe.
* lib/getpass.c: Likewise, except for HAVE_DECL___FSETLOCKING instead
of HAVE_DECL___PENDING.
* m4/fpending.m4 (gl_FUNC_FPENDING): Check for stdio_ext at most once.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Check for __fsetlocking's
declaration.
2006-09-27 Jim Meyering <jim@meyering.net>
This file could end up with a definition for a function
named __strndup, rather than rpl_strndup on a system with
incomplete weak_alias support.
* lib/strndup.c (strndup): Rename from __strndup.
Remove #defines that used to map __strndup to strndup.
Don't use K&R prototypes.
Remove LIBC-related code, since this file is not sync'd with glibc.
* lib/strndup.h: Revamp, accordingly.
* m4/strndup.m4: Modernize.
2006-09-26 Paul Eggert <eggert@cs.ucla.edu>
* modules/savewd (Depends-on): Add 'raise'.
* lib/savewd.c: Include <signal.h>, for 'raise'.
2006-09-26 Jim Meyering <jim@meyering.net>
* m4/acl.m4 (AC_FUNC_ACL): Disable ACL support altogether
when we detect Darwin 8.7.0's acl_get_file bug.
Rearrange to perform the new (below) run-test while $LIBS
contains any acl-related library. Set USE_ACL at the end.
(gl_ACL_GET_FILE): New function.
2006-09-26 Eric Blake <ebb9@byu.net>
* lib/verror.c: Include <config.h> unconditionally.
2006-09-25 Paul Eggert <eggert@cs.ucla.edu>
* modules/clock-time (Maintainer): Add self.
* modules/getlogin_r (Depends-on): Add extensions.
2006-09-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/clock-time: New module.
* modules/nanosleep (Depends-on): Add clock-time.
* modules/gethrxtime (Depends-on): Likewise.
* modules/gettime (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* modules/fts-lgpl: Depend on openat.
* modules/mkancesdirs: Depend on savewd.
* modules/mkdir-p: Likewise.
2006-09-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/host-os.m4 (gl_HOST_OS): Require AC_CANONICAL_HOST.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Rename cache variable from
`gl_have_arbitrary_file_name_length_limit' to
`gl_cv_have_arbitrary_file_name_length_limit', so that caching
actually works between configure runs.
2006-09-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Include <string.h>.
2006-09-25 Jim Meyering <jim@meyering.net>
* m4/fcntl_h.m4 (gl_FCNTL_H): Fix typo in test for failed open.
This typo caused coreutils/tests/dd/misc to fail on Darwin 8.7.0.
2006-09-25 Eric Blake <ebb9@byu.net>
* gnulib-tool (func_import, func_create_testdir): Fix typos in
exec's in 2006-09-18 patch when shuffling fds.
2006-09-25 Bruno Haible <bruno@clisp.org>
* m4/getloadavg.m4 (gl_GETLOADAVG): Fix directory in error message.
Reported by Jim Meyering.
2006-09-24 Jim Meyering <jim@meyering.net>
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't use '>' to
compare a pointer against a literal "0". That caused failures with
at least HP-UX's hpcc.
2006-09-22 Simon Josefsson <jas@extundo.com>
* modules/gc-sha1:
* modules/gc-md4:
* modules/gc-hmac-sha1:
* modules/gc-hmac-md5:
* modules/gc-des:
* modules/gc-arcfour: Distribute more files.
2006-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/gl_anylinked_list2.h [lint] (gl_linked_iterator)
(gl_linked_iterator_from_to): Initialize struct completely.
* lib/gl_anytree_list2.h [lint] (gl_tree_iterator): Likewise.
(gl_tree_iterator_from_to): Likewise
* lib/gl_anytree_oset.h [lint] (gl_tree_iterator): Likewise.
* lib/gl_array_list.c [lint] (gl_array_iterator)
(gl_array_iterator_from_to): Likewise.
* lib/gl_array_oset.c [lint] (gl_array_iterator): Likewise.
* lib/gl_carray_list.c [lint] (gl_carray_iterator)
(gl_carray_iterator_from_to): Likewise.
* lib/gc-gnulib.c [GC_USE_HMAC_SHA1]: include hmac.h for hmac_sha1.
* lib/md4.c (md4_process_block): Remove unused variable.
* lib/rijndael-api-fst.c (rijndaelBlockDecrypt): GCC suggests
parentheses for clarity.
2006-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* modules/bison-i18n (Depends-on): Add gettext.
2006-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/fsusage.m4 (gl_STATFS_TRUNCATES): Avoid unused variable.
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise.
* m4/jm-winsz1.m4 (gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H): Likewise;
also add missing comma that caused broken test.
* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Include
stdlib.h, for `abort'.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Avoid unused
variables.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Check for and
include unistd.h if present, for `rmdir'.
* m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Avoid unused
variables.
* m4/putenv.m4 (gl_FUNC_PUTENV): Rewrite using AC_RUN_IFELSE, and
in the process include standard headers for prototypes.
* m4/readutmp.m4 (gl_READUTMP): Require AC_GNU_SOURCE, so utmpxname
gets declared on GNU/Linux.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Check for and include
unistd.h, for `rmdir'.
* m4/time_r.m4 (gl_TIME_R): Avoid unused variables.
* m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Avoid expression that is
always true.
* m4/strndup.m4 (gl_FUNC_STRNDUP): include stdlib.h, for `free'.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Avoid gcc -Wall warnings.
2006-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_version): Create output all at once. This
may help avoid triggering unnecessary SIGPIPEs, and at any
rate it doesn't hurt.
2006-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* m4/lock.m4 (gl_LOCK_BODY): Avoid unused variables warning.
* m4/mbswidth.m4 (gl_MBSWIDTH): Likewise.
* m4/signed.m4 (bh_C_SIGNED): Likewise.
* m4/vasprintf.m4 (gl_PREREQ_VASPRINTF_H): New macro.
(gl_FUNC_VASPRINTF): Invoke it.
2006-09-22 Bruno Haible <bruno@clisp.org>
* m4/getloadavg.m4 (gl_GETLOADAVG): Expect the directory of
getloadavg.c as first argument.
2006-09-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Set gl_source_base
at the beginning of the gl_INIT macro.
* modules/getloadavg (configure.ac): Pass $gl_source_base to
gl_GETLOADAVG.
2006-09-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_megatestdir): Don't include the config-h
module.
Suggested by Ralf Wildenhues.
2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
Import this patch from libc:
2006-09-06 Jakub Jelinek <jakub@redhat.com>
* lib/regex_internal.c (re_string_reconstruct): Handle
offset < pstr->valid_raw_len && pstr->offsets_needed case.
Ensure no bytes read before raw_mbs array. Pass a saved copy of
pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to
re_string_context_at.
* m4/regex.m4 (gl_REGEX): Check for locale.h, since the test
now requires it.
(gl_PREREQ_REGEX): Don't check for locale.h any more, since
gl_REGEX now does it for us.
(gl_REGEX): Add test taken from
http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require AC_SYS_LARGEFILE.
Check that large offsets work. Modernize Autoconf usages.
Prefer "yes" to mean a good thing rather than a bad.
Don't put "#define mkstemp" in config.h, as this might interfere
with standard system headers that "#define mkstemp mkstemp64".
* modules/mkstemp (Depends-on): Add extensions, so that
mkstemp is visible on some platforms.
(Makefile.am): Add mkstemp.h to EXTRA_DIST.
(Include): Change to "mkstemp.h" from <stdlib.h>.
(Files): Add mkstemp.h.
* lib/mkstemp.h: New file, since some standard headers
#define mkstemp.
* lib/mkstemp.c: Revamp to put the !_LIBC code together.
Include "mkstemp.h".
Make the _LIBC code resemble glibc original more,
e.g., use K&R style.
* lib/mkstemp-safer.c: Include "mkstemp.h" instead of <stdlib.h>.
(mkstemp): Remove, since mkstemp.h does this for us.
* lib/stdlib--.h: Include mkstemp.h.
Import this patch from libc:
2006-04-07 Ulrich Drepper <drepper@redhat.com>
* lib/tempname.c (__gen_tempname): Change attempts_min
into a macro. Use preprocessor to decide how to initialize
attempts [Coverity CID 67].
2006-09-20 Bruno Haible <bruno@clisp.org>
* lib/mkdtemp.c: Import from libc.
2006-04-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/tempname.c (__gen_tempname): Change
attempts_min into a macro. Use preprocessor to decide how to
initialize attempts [Coverity CID 67].
2001-11-27 Paul Eggert <eggert@twinsun.com>
* sysdeps/posix/tempname.c (__gen_tempname): Try at least
ATTEMPTS_MIN or TMP_MAX times, whichever is greater.
2006-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_exit): New function, to allow to pass the
exit status portably through the trap. Use everywhere.
(--help, --version): Signal a write error.
(trap): catch SIGPIPE, for write errors.
Exit at the end of the trap, with the correct exit status.
2006-09-19 Karl Berry <karl@gnu.org>
* doc/gnulib.texi: note about the license texinfo files.
2006-09-19 Eric Blake <ebb9@byu.net>
* gnulib-tool: Avoid space-tab.
2006-09-18 Paul Eggert <eggert@cs.ucla.edu>
* lib/getaddrinfo.c (getaddrinfo) [defined HAVE_IPV6]: Fix typo
that prevented coreutils 6.1 from building. Problem reported
by Petter Reinholdtsen.
2006-09-18 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (avoidlist): Fix typo that broke options like
--avoid=lock that are used by coreutils bootstrap.
2006-09-18 Mark D. Baushke <mdb@gnu.org>
* m4/inttypes.m4 (gl_INTTYPES_H): Quote "test" args
more systematically.
2006-09-18 Jim Meyering <jim@meyering.net>
* lib/savewd.c (savewd_restore): Don't shadow: s/status/child_status/.
2006-09-18 Bruno Haible <bruno@clisp.org>
* modules/inttypes (Files): Remove m4/inttypes-h.m4.
2006-09-18 Bruno Haible <bruno@clisp.org>
* m4/inttypes-h.m4 (gl_HEADER_INTTYPES_H): Remove macro.
* m4/inttypes-pri.m4: Require autoconf >= 2.52.
(gt_INTTYPES_PRI): Invoke AC_CHECK_HEADERS on inttypes.h. Test
ac_cv_header_inttypes_h instead of gl_cv_header_inttypes_h.
* m4/gettext.m4: Require autoconf >= 2.52.
(gt_INTL_SUBDIR_CORE): Invoke AC_CHECK_HEADERS on inttypes.h.
* m4/inttypes.m4 (gl_INTTYPES_H): Test ac_cv_header_inttypes_h instead
of gl_cv_header_inttypes_h.
2006-09-18 Bruno Haible <bruno@clisp.org>
* lib/javaversion.c: Include configmake.h.
2006-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Use exec tricks to
avoid that the while loops be executed in a subshell.
2006-09-18 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_module): Break long lines.
Suggested by Bruce Korb <bkorb@gnu.org>.
2006-09-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Speed up by a factor of 1.12.
* gnulib-tool (nl): New variable.
(func_import): Rewrite include directive extraction to only read each
directive once.
2006-09-17 Bruno Haible <bruno@clisp.org>
* modules/javaversion (Makefile.am): Remove DEFS setting.
(Depends-on): Add configmake, for PKGDATADIR definition.
2006-09-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Rewrite all files at once.
2006-09-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_append): New function, stolen from libtool.m4.
(func_modules_transitive_closure, func_modules_add_dummy,
func_modules_to_filelist, func_import, func_create_testdir,
func_create_megatestdir, ...): Use it wherever possible.
Suggested by Ralf Wildenhues.
2006-09-16 Karl Berry <karl@gnu.org>
* doc/fdl.texi (ADDENDUM): switch to @heading from @appendixsubsec,
to avoid sectioning errors.
* doc/lgpl.texi, gpl.texi (Copying): downcase @unnumbered title.
[ifinfo]: blank line after @center-ed titles.
* doc/lgpl.texi (Library Copying): Rename main node to GNU LGPL.
Spell FSF address consistently with others.
(These changes approved by rms.)
2006-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Speed up by a factor of 1.61.
* gnulib-tool (func_modules_transitive_closure): Rewrite to not check
already checked module names again.
2006-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Speed up by a factor of 1.13.
* gnulib-tool (func_import): Rewrite all old_files at once; likewise
for new_files, and the input to func_add_or_update.
2006-09-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_all_modules, func_modules_to_filelist, func_import,
func_create_testdir, ...): Change 'sort | uniq' to 'sort -u'.
2006-09-15 Paul Eggert <eggert@cs.ucla.edu>
* modules/mkancesdirs (Depends-on): Add fcntl.
* modules/savewd: New file.
* MODULES.html.sh (File system functions): Add savewd.
* modules/configmake (Makefile.am): Add support for the
Automake-supplied PKGLIBDIR, PKGINCLUDEDIR, PKGDATADIR.
2006-09-15 Paul Eggert <eggert@cs.ucla.edu>
* m4/savewd.m4: New file.
2006-09-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/dirchownmod.c: Don't include fcntl.h; no longer needed.
(dirchownmod): New arg FD. All callers changed.
Use FD rather than opening the directory ourself, as opening is
now the caller's responsibility.
* lib/dirchownmod.h: Likewise.
* lib/mkancesdirs.c: Include <sys/types.h>, for portability to older
hosts that require <sys/types.h> before <sys/stat.h>. Include
fcntl.h, savewd.h, and unistd.h, not dirname.h and stat-macros.h.
(test_dir): Remove.
(mkancesdirs): Return length of prefix of FILE that has already
been made, or -2 if there is a child doing the work. Redo
algorithm so that it is O(N) rather than O(N**2). Optimize away
".", and treat ".." specially since it might stray back into
already-created areas. Use a subprocess if necessary. New arg
WD; all users changed. MAKE_DIR function should now return 1
if it creates a directory that is not readable. Return -2 if
a child process is spun off.
* lib/mkancesdirs.h: Include <stddef.h>, for ptrdiff_t.
Adjust signature to match code.
* lib/mkdir-p.c: Include dirname.h, for IS_ABSOLUTE_FILE_NAME.
(make_dir_parents): Use a subprocess if necessary. New arg WD;
all users changed.
* lib/savewd.c, lib/savewd.h: New files.
2006-09-15 Jim Meyering <jim@meyering.net>
* modules/rename-dest-slash: New module.
* MODULES.html.sh (posix_compat): Add it here.
* modules/rename: Reflect vb_FUNC_RENAME -> gl_FUNC_RENAME change.
2006-09-15 Jim Meyering <jim@meyering.net>
* m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH): New
file.
* m4/rename.m4 (gl_FUNC_RENAME): Rename from vb_FUNC_RENAME.
2006-09-15 Jim Meyering <jim@meyering.net>
* lib/rename-dest-slash.c (has_trailing_slash): Use
FILE_SYSTEM_PREFIX_LEN, for non-POSIX systems.
(rpl_rename_dest_slash): Perform the cheaper trailing slash
test before testing whether SRC is a directory.
Suggestions from Bruno Haible.
Avoid a warning about an unused variable.
* lib/regex_internal.c (re_dfa_add_node): Move declaration of "type"
into the #ifdef block where it's used.
* lib/rename-dest-slash.c: New file.
2006-09-14 Bruno Haible <bruno@clisp.org>
* lib/allocsa.c: Include <config.h> unconditionally.
* lib/asnprintf.c: Likewise.
* lib/asprintf.c: Likewise.
* lib/c-strcasecmp.c: Likewise.
* lib/c-strcasestr.c: Likewise.
* lib/c-strncasecmp.c: Likewise.
* lib/c-strstr.c: Likewise.
* lib/classpath.c: Likewise.
* lib/clean-temp.c: Likewise.
* lib/concatpath.c: Likewise.
* lib/copy-file.c: Likewise.
* lib/csharpcomp.c: Likewise.
* lib/csharpexec.c: Likewise.
* lib/execute.c: Likewise.
* lib/fatal-signal.c: Likewise.
* lib/findprog.c: Likewise.
* lib/fwriteerror.c: Likewise.
* lib/gl_array_list.c: Likewise.
* lib/gl_array_oset.c: Likewise.
* lib/gl_avltree_list.c: Likewise.
* lib/gl_avltree_oset.c: Likewise.
* lib/gl_avltreehash_list.c: Likewise.
* lib/gl_carray_list.c: Likewise.
* lib/gl_linked_list.c: Likewise.
* lib/gl_linkedhash_list.c: Likewise.
* lib/gl_list.c: Likewise.
* lib/gl_oset.c: Likewise.
* lib/gl_rbtree_list.c: Likewise.
* lib/gl_rbtree_oset.c: Likewise.
* lib/gl_rbtreehash_list.c: Likewise.
* lib/imaxabs.c: Likewise.
* lib/imaxdiv.c: Likewise.
* lib/javacomp.c: Likewise.
* lib/javaexec.c: Likewise.
* lib/javaversion.c: Likewise.
* lib/linebreak.c: Likewise.
* lib/localcharset.c: Likewise.
* lib/lock.c: Likewise.
* lib/mbchar.c: Likewise.
* lib/mbswidth.c: Likewise.
* lib/mkdtemp.c: Likewise.
* lib/pipe.c: Likewise.
* lib/printf-args.c: Likewise.
* lib/printf-parse.c: Likewise.
* lib/progname.c: Likewise.
* lib/progreloc.c: Likewise.
* lib/readlink.c: Likewise.
* lib/sh-quote.c: Likewise.
* lib/stpcpy.c: Likewise.
* lib/stpncpy.c: Likewise.
* lib/strcasecmp.c: Likewise.
* lib/strcasestr.c: Likewise.
* lib/strcspn.c: Likewise.
* lib/striconv.c: Likewise.
* lib/strncasecmp.c: Likewise.
* lib/strnlen1.c: Likewise.
* lib/strstr.c: Likewise.
* lib/strtok_r.c: Likewise.
* lib/tls.c: Likewise.
* lib/tmpdir.c: Likewise.
* lib/unicodeio.c: Likewise.
* lib/unsetenv.c: Likewise.
* lib/vasnprintf.c: Likewise.
* lib/vasprintf.c: Likewise.
* lib/wait-process.c: Likewise.
* lib/xallocsa.c: Likewise.
* lib/xsetenv.c: Likewise.
* lib/xstriconv.c: Likewise.
2006-09-13 Simon Josefsson <jas@extundo.com>
* m4/getdate.m4: Don't AC_LIBOBJ([getdate]), automake takes care of
that internally, suggested by Ralf Wildenhues
<Ralf.Wildenhues@gmx.de>.
2006-09-13 Simon Josefsson <jas@extundo.com>
* gnulib-tool (func_emit_lib_Makefile_am): Use $(LIBOBJS), not
@LIBOBJS@.
Suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-09-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/_fpending.c: Include <config.h> unconditionally, since we no
longer worry about uses that don't define HAVE_CONFIG_H.
* lib/acl.c, lib/alloca.c, lib/argmatch.c, lib/atexit.c:
* lib/backupfile.c, lib/basename.c, lib/c-stack.c, lib/c-strtod.c:
* lib/calloc.c,lib/ canon-host.c, lib/canonicalize.c, lib/chdir-long.c:
* lib/chdir-safer.c, lib/chown.c, lib/cloexec.c, lib/close-stream.c:
* lib/closeout.c, lib/creat-safer.c, lib/cycle-check.c, lib/diacrit.c:
* lib/dirchownmod.c, lib/dirfd.c, lib/dirname.c, lib/dup-safer.c:
* lib/dup2.c, lib/error.c, lib/euidaccess.c, lib/exclude.c:
* lib/exitfail.c, lib/fchmodat.c, lib/fchown-stub.c, lib/fd-safer.c:
* lib/file-type.c, lib/fileblocks.c, lib/filemode.c, lib/filenamecat.c:
* lib/fnmatch.c, lib/fopen-safer.c, lib/fprintftime.c, lib/free.c:
* lib/fsusage.c, lib/ftruncate.c, lib/fts-cycle.c, lib/fts.c:
* lib/full-write.c, lib/gai_strerror.c, lib/getcwd.c, lib/getdate.y:
* lib/getdomainname.c, lib/getgroups.c, lib/gethostname.c:
* lib/gethrxtime.c, lib/getloadavg.c, lib/getlogin_r.c:
* lib/getndelim2.c, lib/getnline.c, lib/getopt.c, lib/getopt1.c:
* lib/getpass.c, lib/gettime.c, lib/gettimeofday.c, lib/getugroups.c:
* lib/getusershell.c, lib/glob.c, lib/group-member.c:
* lib/hard-locale.c, lib/hash-pjw.c, lib/hash.c, lib/human.c:
* lib/idcache.c, lib/inet_ntop.c, lib/inet_pton.c, lib/inttostr.c:
* lib/isdir.c, lib/lchown.c, lib/linebuffer.c, lib/long-options.c:
* lib/lstat.c, lib/malloc.c, lib/md5.c, lib/memcasecmp.c, lib/memchr.c:
* lib/memcmp.c, lib/memcoll.c, lib/memcpy.c, lib/memmove.c:
* lib/memrchr.c, lib/mkancesdirs.c, lib/mkdir-p.c, lib/mkdir.c:
* lib/mkdirat.c, lib/mkstemp-safer.c, lib/mkstemp.c, lib/modechange.c:
* lib/mountlist.c, lib/nanosleep.c, lib/obstack.c, lib/open-safer.c:
* lib/openat-die.c, lib/openat.c, lib/pagealign_alloc.c, lib/physmem.c:
* lib/pipe-safer.c, lib/posixtm.c, lib/posixver.c, lib/putenv.c:
* lib/quote.c, lib/quotearg.c, lib/raise.c, lib/readtokens.c:
* lib/readtokens0.c, lib/readutmp.c, lib/realloc.c, lib/regex.c:
* lib/rename.c, lib/rmdir.c, lib/rpmatch.c, lib/safe-read.c:
* lib/same.c, lib/save-cwd.c, lib/savedir.c, lib/setenv.c:
* lib/settime.c, lib/sha1.c, lib/sig2str.c, lib/snprintf.c:
* lib/strdup.c, lib/strerror.c, lib/strftime.c, lib/stripslash.c:
* lib/strndup.c, lib/strnlen.c, lib/strpbrk.c, lib/strtod.c:
* lib/strtoimax.c, lib/strtol.c, lib/strverscmp.c, lib/tempname.c:
* lib/time_r.c, lib/timegm.c, lib/tmpfile-safer.c, lib/unlinkdir.c:
* lib/userspec.c, lib/utime.c, lib/utimecmp.c, lib/utimens.c:
* lib/version-etc-fsf.c, lib/version-etc.c, lib/xalloc-die.c:
* lib/xgetcwd.c, lib/xgethostname.c, lib/xmalloc.c, lib/xmemcoll.c:
* lib/xnanosleep.c, lib/xreadlink.c, lib/xstrtod.c, lib/xstrtoimax.c:
* lib/xstrtol.c, lib/xstrtoumax.c, lib/yesno.c:
Likewise.
2006-09-13 Eric Blake <ebb9@byu.net>
* lib/getopt.c: Fix typo in last commit.
2006-09-12 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (argp_doc): Make sure NULL is not passed to
dgettext.
2006-09-12 Jim Meyering <jim@meyering.net>
* lib/nanosleep.c: Include <sys/types.h> before sys/select.h, to avoid
compilation failure (due to use of pid_t in latter) on NetBSD 1.6.
Reported by Nelson H. F. Beebe.
2006-09-10 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-parse.c (__argp_parse) [!_LIBC]: Make sure
program_invocation_name and program_invocation_short_name are
initialized.
* lib/argp-namefrob.h: Move declarations of program_invocation_name
and program_invocation_short_name to argp.h, so they are visible
to user programs.
* lib/argp.h: Likewise
2006-09-10 Bruno Haible <bruno@clisp.org>
* modules/mkdtemp (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4,
m4/inttypes_h.m4, m4/uintmax_t.m4.
2006-09-10 Bruno Haible <bruno@clisp.org>
* m4/mkdtemp.m4 (gl_PREREQ_MKDTEMP): Don't require
gl_AC_TYPE_UINTMAX_T.
2006-09-10 Bruno Haible <bruno@clisp.org>
* lib/mkdtemp.c: Include <stdint.h> always. Don't include <inttypes.h>.
2006-09-09 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp.h (struct argp): Document the N_("..") "\v" N_("..")
convention. Text proposed by Bruno Haible.
(struct argp_option): Document the use of N_() wrappers.
* lib/argp-help.c (argp_doc): Split the untranslated doc string on
'\v', and translate the two parts separately, instead of feeding
the whole string to gettext. One can exclude
'\v' from the strings visible to the translator by writing doc
strings as N_("..") "\v" N_("..").
2006-09-09 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Undo latest change; the bug was fixed.
2006-09-09 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Eliminate lib_LDFLAGS
assignments if building a library without libtool.
(func_emit_tests_Makefile_am): Likewise. Handle lib_* variables as
in func_emit_lib_Makefile_am.
(func_import): When building a static library libfoo.a, arrange to
define variables LIBFOO_LIBDEPS and LIBFOO_LTLIBDEPS.
(func_create_testdir): Likewise.
* modules/gc (configure.ac, Makefile.am): If building statically,
augment gl_libdeps and gl_ltlibdeps instead of lib_LDFLAGS.
* modules/iconvme (configure.ac, Makefile.am): Likewise.
* modules/striconv (configure.ac, Makefile.am): Likewise.
Based on a suggestion by Ralf Wildenhues.
2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
* m4/mktime.m4 (AC_FUNC_MKTIME): Sync from Autoconf.
Check for unistd.h too, since Autoconf doesn't assume POSIX.
Also:
2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
Add year_2050_test to catch glibc bug 2821
<http://sourceware.org/bugzilla/show_bug.cgi?id=2821>.
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
Prefer #ifdef to #if.
2006-04-02 Paul Eggert <eggert@cs.ucla.edu>
Return from 'main' instead of calling 'exit'.
2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/mktime.c (guess_time_tm): Fix bug where mktime
returned the maximum time_t value rather than (time_t) -1.
Problem originally reported by William Bardwell
<http://sourceware.org/bugzilla/show_bug.cgi?id=2821>.
* lib/isapipe.h (HAVE_FIFO_PIPES) [!defined HAVE_FIFO_PIPES]:
Moved to here ...
* lib/isapipe.c (HAVE_FIFO_PIPES) [!defined HAVE_FIFO_PIPES]:
... from here.
2006-09-08 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Temporarily comment out mktime.c until glibc bug
2821 is fixed.
2006-09-08 Jim Meyering <jim@meyering.net>
Don't make generated files read-only. That would bother too many
people. However, do retain the ability to work when targets are
read-only: remove the destination and temporary files before writing
them (when generated via sed or echo), or by using the -f option for
both cp and mv commands. Suggestion to use -f from Paul Eggert.
* modules/alloca-opt, modules/argz, modules/arpa_inet:
* modules/byteswap, modules/configmake, modules/fcntl:
* modules/fnmatch, modules/getopt, modules/glob, modules/inttypes:
* modules/localcharset, modules/netinet_in, modules/poll:
* modules/stdbool, modules/stdint, modules/sys_select:
* modules/sys_socket, modules/sys_stat, modules/sysexits:
2006-09-08 Jim Meyering <jim@meyering.net>
Avoid new build failure on FreeBSD 6.0.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Include
<sys/param.h> when testing whether getmntinfo uses statvfs. Patch by
Pavel Tsekov, in <http://savannah.gnu.org/bugs/?17643>.
2006-09-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't use plain echo.
2006-09-07 Jim Meyering <jim@meyering.net>
Fix global typo in last change: use chmod u-w, not chmod u-x.
Spotted by Paul Eggert and Bruce Korb.
* modules/alloca-opt, modules/argz, modules/arpa_inet:
* modules/byteswap, modules/configmake, modules/fcntl:
* modules/fnmatch, modules/getopt, modules/glob, modules/inttypes:
* modules/localcharset, modules/netinet_in, modules/poll:
* modules/stdbool, modules/stdint, modules/sys_select:
* modules/sys_socket, modules/sys_stat, modules/sysexits:
2006-09-06 Jim Meyering <jim@meyering.net>
Make generated files be read-only.
* modules/alloca-opt (Makefile.am): Work also when $@ is read-only.
Ensure that each generated file is now read-only.
* modules/argz: Likewise.
* modules/arpa_inet: Likewise.
* modules/byteswap: Likewise.
* modules/configmake: Likewise.
* modules/fcntl: Likewise.
* modules/fnmatch: Likewise.
* modules/getopt: Likewise.
* modules/glob: Likewise.
* modules/inttypes: Likewise.
* modules/netinet_in: Likewise.
* modules/poll: Likewise.
* modules/stdbool: Likewise.
* modules/stdint: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sysexits: Likewise.
* modules/localcharset: Same as above, but continue using temporary
file named "t-$@" (why different?) rather than the "$@-t" used
everywhere else.
* modules/sysexits (Makefile.am): Replace literal occurrences
of "sysexit.h" more readable, and more consistent, "$@".
2006-09-06 Bruno Haible <bruno@clisp.org>
* modules/striconv: New file.
* modules/xstriconv: New file.
* MODULES.html.sh (Internationalization functions): Add striconv,
xstriconv.
2006-09-06 Bruno Haible <bruno@clisp.org>
* modules/gc (Makefile.am): Augment lib_LDFLAGS, not lib_LIBADD.
* modules/iconvme (Makefile.am): Likewise. Also handle the case of
not using libtool correctly.
2006-09-06 Bruno Haible <bruno@clisp.org>
* lib/striconv.h: New file.
* lib/striconv.c: New file, merging iconvme.c with GNU gettext's
iconvstring.c.
* lib/xstriconv.h: New file.
* lib/xstriconv.c: New file.
2006-09-06 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Initialize also
lib_..._LDFLAGS.
2006-09-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/argz_.h: Sync from Libtool.
2006-09-04 George Bosilca <bosilca@cs.utk.edu>
and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/libltdl/argz_.h: It's __cplusplus, not _cplusplus.
2006-09-05 Davide Angelocola <davide.angelocola@tiscali.it>
* modules/trim: New file.
2006-09-05 Davide Angelocola <davide.angelocola@tiscali.it>
* lib/trim.h: New file.
* lib/trim.c: New file.
2006-09-05 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (String handling): Add trim.
2006-09-04 Karl Berry <karl@gnu.org>
* config/srclist.txt (signed.m4, gettext.m4): changes not propagated
until next release.
2006-09-03 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Locate mingw shared libraries
correctly.
2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/getloadavg.m4 (gl_GETLOADAVG): Use CONFIGURING_GETLOADAVG,
not gl_GETLOADAVG. Omit unneeded semicolons.
Problems reported by Ralf Wildenhues in
<http://lists.gnu.org/r/bug-gnulib/2006-09/msg00000.html>.
(gl_PREREQ_GETLOADAVG): Use AC_DEFUN, not m4_define. Put
at the end, which is the usual gnulib style.
* m4/fstypename.m4 (gl_FSTYPENAME): Use AC_CHECK_MEMBERS instead
of doing all the work ourselves.
* m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Don't check for
sys/statvfs.h since the code doesn't use HAVE_SYS_STATVFS_H.
2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/getloadavg.c: Use CONFIGURING_GETLOADAVG, not gl_GETLOADAVG.
Problem reported by Ralf Wildenhues in
<http://lists.gnu.org/r/bug-gnulib/2006-09/msg00000.html>.
* lib/mountlist.c: All uses of HAVE_F_FSTYPENAME_IN_STATFS replaced by
HAVE_STRUCT_STATFS_F_FSTYPENAME.
2006-09-01 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_emit_lib_Makefile_am): Fix typos in
yesterday's patch by changing test -n to test -z.
2006-08-31 Paul Eggert <eggert@cs.ucla.edu>
* modules/getloadavg (Files): Add m4/getloadavg.m4.
(configure.ac): AC_FUNC_GETLOADAVG -> gl_GETLOADAVG, as
the former is now obsolescent.
* modules/chdir-long (Depends-on): Add fcntl.
2006-08-31 Paul Eggert <eggert@cs.ucla.edu>
* m4/fnmatch.m4: Add comment that Autoconf AC_FUNC_FNMATCH is
obsolescent, and programs should use gnulib instead.
* m4/getloadavg.m4: New file, with contents taken from Autoconf
but with prefixes changed.
2006-08-31 Paul Eggert <eggert@cs.ucla.edu>
* lib/getloadavg.c [defined gl_GETLOADAVG]: Don't include config.h
or stdbool.h, because they might not exist while configuring.
* lib/chdir-long.c: Include <fcntl.h>, for O_DIRECTORY.
Don't include unistd.h or limits.h; not needed, since chdir-long.h
does that for us.
(O_DIRECTORY): Remove.
2006-08-31 Eric Blake <ebb9@byu.net>
* gnulib-tool: Don't let emacs change spaces to TAB.
2006-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool: When calling func_import more than once, do it in a
subshell.
Reported by Eric Blake <ebb9@byu.net>.
2006-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (nl): Remove variable.
(sed_transform_lib_file): Use more robust test for config-h module.
(func_import): Fix typo in 2006-08-25 patch.
2006-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): When --makefile-name was
specified, augment Makefile.am variables instead of assigning them.
2006-08-30 Paul Eggert <eggert@cs.ucla.edu>
Work around a bug in both the Linux and SunOS 64-bit kernels:
nanosleep mishandles sleeps for longer than 2**31 seconds.
Problem reported by Frank v Waveren in
<http://lists.gnu.org/r/bug-coreutils/2006-08/msg00298.html>.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require gl_CLOCK_TIME.
Check for nanosleep bug.
(LIB_NANOSLEEP): Append clock_gettime library if needed.
2006-08-30 Paul Eggert <eggert@cs.ucla.edu>
Work around a bug in both the Linux and SunOS 64-bit kernels:
nanosleep mishandles sleeps for longer than 2**31 seconds.
Problem reported by Frank v Waveren in
<http://lists.gnu.org/r/bug-coreutils/2006-08/msg00298.html>.
* lib/nanosleep.c (BILLION): New constant.
(getnow) [HAVE_BUG_BIG_NANOSLEEP]: New functions.
(rpl_nanosleep) [HAVE_BUG_BIG_NANOSLEEP]: Completely new
implementation.
2006-08-30 Paul Eggert <eggert@cs.ucla.edu>
* modules/nanosleep (Depends-on): Add gettime.
2006-08-30 Paul Eggert <eggert@cs.ucla.edu>
and Simon Josefsson <jas@extundo.com>
and Oskar Liljeblad <oskar@osk.mine.nu>
* MODULES.html.sh (Support for building documentation): Add gpl, lgpl.
* gnulib-tool (func_import): New license type 'unmodifiable license
text'.
* modules/fdl: Use it. Longer description.
* module/gpl, module/lgpl: New files.
2006-08-30 Jim Meyering <jim@meyering.net>
* lib/isapipe.c (isapipe): Rename local s/fd/fd_pair/ to avoid
shadowing the parameter.
2006-08-29 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from Libtool:
2006-08-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/libltdl/argz.c: Use `#ifdef HAVE_CONFIG_H', to facilitate code
sharing with gnulib. Report by Eric Blake.
2006-08-29 Paul Eggert <eggert@cs.ucla.edu>
* modules/isapipe: New file.
* MODULES.html.sh (File descriptor based Input/Output): Add isapipe.
2006-08-29 Paul Eggert <eggert@cs.ucla.edu>
* modules/configmake (Makefile.am): Add a comment, and omit
the CONFIGMAKE_ prefix from generated macro names. Suggested
by Bruno Haible.
2006-08-29 Paul Eggert <eggert@cs.ucla.edu>
* m4/isapipe.m4: New file.
2006-08-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/isapipe.c, lib/isapipe.h: New files.
2006-08-29 Jim Meyering <jim@meyering.net>
* modules/configmake (Makefile.am): Make configmake.h depend on
Makefile. Otherwise, a stale configmake.h could hang around.
2006-08-29 Eric Blake <ebb9@byu.net>
* lib/error.c (error_at_line, print_errno_message): Match libc, after
resolution of upstream bug 3044.
2006-08-29 Bruno Haible <bruno@clisp.org>
* modules/localcharset (Depends-on): Add configmake.
(Makefile.am): Remove setting of LIBDIR through DEFS.
2006-08-29 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c: Include configmake.h in order to get LIBDIR
defined.
2006-08-28 Paul Eggert <eggert@cs.ucla.edu>
* modules/fcntl: New file.
* modules/chdir-safer (Depends-on): Add fcntl.
* modules/fts: Likewise.
* modules/mkdir-p: Likewise.
* modules/stdint (Makefile.am): Do not substitute ABSOLUTE_INTTYPES_H.
This undoes the most recent change, since we're now addressing the
problem in a different way.
* gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
into output, since the output might be called Makefile.am even
if $makefile_name is something different.
(func_import): Use $makefile_am rather than
${makefile_name-Makefile.am}, to fix a bug where makefile_name was
empty.
* modules/inttypes (Files): Add m4/inttypes-h.m4.
2006-08-28 Paul Eggert <eggert@cs.ucla.edu>
* m4/inttypes.m4 (gl_INTTYPES_H): Move ABSOLUTE_INTTYPES_H code here...
* m4/stdint.m4 (gl_STDINT_H): ... from here. This undoes the most
recent change to stdint.m4, since we're now addressing the problem in a
different way.
2006-08-28 Paul Eggert <eggert@cs.ucla.edu>
* m4/fcntl_h.m4: New file.
2006-08-28 Paul Eggert <eggert@cs.ucla.edu>
* lib/fcntl_.h: New file.
* lib/chdir-safer.c (O_DIRECTORY, O_NOFOLLOW): Remove, now that we have
the fcntl module.
* lib/dirchownmod.c: Likewise.
* lib/fts.c: Likewise.
* lib/inttypes_.h [defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H]:
Include @ABSOLUTE_INTTYPES_H@ if available, but do nothing else.
* lib/stdint_.h (_GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H): Define
just before including <inttypes.h>, to avoid circular inclusion.
2006-08-28 Jim Meyering <jim@meyering.net>
* doc/visibility.texi: Actually read and correct the grammar of the
sentence affected by yesterday's change.
2006-08-28 Eric Blake <ebb9@byu.net>
* modules/inttypes (Makefile.am): Fix sed error when inttypes.h
needs wrapper.
2006-08-28 Eric Blake <ebb9@byu.net>
* m4/inttypes.m4 (gl_INTTYPES_H): Fix missing #endif.
2006-08-28 Eric Blake <ebb9@byu.net>
* m4/codeset.m4 (AM_LANGINFO_CODESET): Avoid compiler warning.
2006-08-28 Bruno Haible <bruno@clisp.org>
* modules/c-strstr: New file, from GNU gettext.
* MODULES.html.sh (String handling): Add c-strstr.
2006-08-28 Bruno Haible <bruno@clisp.org>
* m4/inttypes.m4 (gl_INTTYPES_H): Don't test for the existence of SCNX*
macros.
Reported by Eric Blake.
2006-08-28 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (EOVERFLOW): Remove definition.
(VASNPRINTF): Return a string of length > INT_MAX without failing.
* lib/vasprintf.c: Include errno.h, limits.h.
(EOVERFLOW): New fallback definition.
(vasprintf): Test here whether the string length is > INT_MAX.
* lib/vsnprintf.c: Include errno.h, limits.h.
(EOVERFLOW): New fallback definition.
(vsnprintf): Fix bug when generated string was too long for the buffer.
Test here whether the string length is > INT_MAX.
2006-08-28 Bruno Haible <bruno@clisp.org>
* lib/inttypes_.h (SCNX*): Remove definitions.
Reported by Eric Blake.
2006-08-28 Bruno Haible <bruno@clisp.org>
* lib/c-strstr.h: New file, from GNU gettext.
* lib/c-strstr.c: New file, from GNU gettext.
2006-08-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Reorder some statements.
2006-08-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New option --makefile-name.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Use
$makefile_name.
(func_import): Write $makefile_name to the cache file, and read it from
there unless explicitly specified. Use $makefile_name as file name
instead of Makefile.am. Adjust the recommendations accordingly.
2006-08-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_verify_module): Check against misapplying patch.
2006-08-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_relativize, func_relconcat): New functions.
Give an error if --local-dir is given with --update.
Remove trailing slashes from $local_gnulib_dir.
(func_import): Store the relativized $local_gnulib_dir in
gnulib-cache.m4, and read it from there if not specified explicitly.
2006-08-28 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_get_tests_module): Don't assume that $gnulib_dir
is the current directory. Respect also $local_gnulib_dir.
2006-08-28 Bruno Haible <bruno@clisp.org>
Simon Josefsson <jas@extundo.com>
BeOS portability.
* lib/getaddrinfo.c (PF_INET, PF_UNSPEC): New macros.
2006-08-27 Jim Meyering <jim@meyering.net>
* doc/visibility.texi: Remove duplicate word: "pointer".
2006-08-26 Bruno Haible <bruno@clisp.org>
* modules/inttypes (Files): Add lib/inttypes_.h, remove lib/inttypes.h.
Add m4/inttypes.m4, remove m4/_inttypes_h.m4 and m4/include_next.m4.
(Makefile.am): Create inttypes.h from inttypes_.h.
* modules/stdint (Makefile.am): Substitute also ABSOLUTE_INTTYPES_H.
* modules/imaxabs: New file.
* modules/imaxdiv: New file.
2006-08-26 Bruno Haible <bruno@clisp.org>
* m4/inttypes.m4: New file.
* m4/_inttypes_h.m4: Remove file.
* m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Also AC_SUBST
PRI_MACROS_BROKEN.
* m4/stdint.m4 (gl_STDINT_H): Define also ABSOLUTE_INTTYPES_H.
* m4/imaxabs.m4: New file.
* m4/imaxdiv.m4: New file.
2006-08-26 Bruno Haible <bruno@clisp.org>
* lib/inttypes_.h: New file.
* lib/inttypes.h: Remove file.
* lib/stdint_.h: Include <inttypes.h> through its absolute filename.
* lib/imaxabs.c: New file.
* lib/imaxdiv.c: New file.
2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
New config-h module, so that "make" output needn't be cluttered
by -DHAVE_CONFIG_H.
* MODULES.html.sh (Support for building libraries and executables):
Add config-h.
* modules/config-h: New file.
* gnulib-tool (nl, sed_transform_lib_file): New vars.
(func_import): Turn "#ifdef HAVE_CONFIG_H" to "#if 1" if
the config-h module is used.
New configmake module, so that "make" output needn't be cluttered
by fluff like '-DLIBDIR=\"/usr/local/lib\"'.
* MODULES.html.sh (Support for building libraries and executables):
Add configmake.
* modules/configmake: New file.
2006-08-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/config-h.m4: New file.
2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add elisp-comp.
2006-08-24 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Support for building libraries and executables):
Add elisp-comp.
* build-aux/elisp-comp: New file.
* modules/elisp-comp: New file.
2006-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Use non-default values of
sourcebase and m4base.
2006-08-24 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Compatibility checks for POSIX:2001 functions: Fix
HTML structure.
2006-08-23 Paul Eggert <eggert@cs.ucla.edu>
* modules/openat (Depends-on): Add lchown.
2006-08-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Emit an invocation
of gl_LOCK_EARLY instead of gl_LOCK.
2006-08-23 Bruno Haible <bruno@clisp.org>
* m4/lock.m4 (gl_LOCK_BODY): Change the default value of gl_use_threads
on OSF/1 to no.
Reported by Stephen Cartwright <sgcartwr@ucalgary.ca>.
2006-08-23 Bruno Haible <bruno@clisp.org>
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't consider BeOS statvfs
as unusable.
* m4/lock.m4 (gl_LOCK_EARLY): Renamed from gl_LOCK.
(gl_LOCK_BODY): Remove gl_PREREQ_LOCK invocation.
(gl_LOCK): New macro.
2006-08-22 Simon Josefsson <jas@extundo.com>
* modules/gc-md5 (Makefile.am): Need to add md5.h, after changes
to md5 module.
2006-08-22 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh: Add "Support for maintaining and release
projects".
* build-aux/gnupload: New file, from coreutils.
2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
Avoid the need for AC_LIBSOURCES in m4 macros.
* modules/arcfour (EXTRA_DIST): Add arcfour.h.
* modules/arctwo (EXTRA_DIST): Add arctwo.h.
* modules/check-version (EXTRA_DIST): Add check-version.h.
* modules/crc (EXTRA_DIST): Add crc.h.
* modules/des (EXTRA_DIST): Add des.h.
* modules/gc (EXTRA_DIST): Add gc.h.
* modules/getdelim (EXTRA_DIST): Add getdelim.h.
* modules/getline (EXTRA_DIST): Add getline.h.
* modules/getlogin_r (EXTRA_DIST): Add getlogin_r.h.
* modules/hmac-md5 (EXTRA_DIST): Add hmac.h.
* modules/hmac-sha1 (EXTRA_DIST): Add hmac.h.
* modules/md2 (EXTRA_DIST): Add md2.h.
* modules/md4 (EXTRA_DIST): Add md4.h.
* modules/pagealign_alloc (EXTRA_DIST): Add pagealign_alloc.h.
* modules/read-file (EXTRA_DIST): Add read-file.h.
* modules/readline (EXTRA_DIST): Add readline.h.
* modules/rijndael (EXTRA_DIST): Add rijndael-alg-fst.h,
rijndael-api-fst.h.
2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
* m4/rijndael.m4 (gl_ARCFOUR):
* m4/arctwo.m4 (gl_ARCTWO):
* m4/check-version.m4 (gl_CHECK_VERSION):
* m4/crc.m4 (gl_CRC):
* m4/des.m4 (gl_DES):
* m4/gc-pbkdf2-sha1.m4 (gl_GC_PBKDF2_SHA1):
* m4/gc.m4 (gl_GC):
* m4/getdelim.m4 (gl_FUNC_GETDELIM):
* m4/getline.m4 (gl_FUNC_GETLINE):
* m4/getlogin_r.m4 (gl_GETLOGIN_R_SUBSTITUTE):
* m4/hmac-md5.m4 (gl_HMAC_MD5):
* m4/hmac-sha1.m4 (gl_HMAC_SHA1):
* m4/md2.m4 (gl_MD2):
* m4/md4.m4 (gl_MD4):
* m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC):
* m4/read-file.m4 (gl_FUNC_READ_FILE):
* m4/readline.m4 (gl_FUNC_READLINE):
* m4/rijndael.m4 (gl_RIJNDAEL):
Don't use AC_LIBSOURCES; instead, rely on the files in ../modules/
to get the necessary .h files and whatnot.
2006-08-22 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove gnupload, since coreutils now syncs from
gnulib rather than the other way around.
* config/srclistvars.sh (COREUTILS): Remove.
2006-08-22 Jim Meyering <jim@meyering.net>
* modules/mkdir-p (Makefile.am): Fix typo: s/lib+SOURCES/lib_SOURCES/.
* modules/getpass-gnu (Makefile.am): Add getpass.h to EXTRA_DIST.
2006-08-22 Eric Blake <ebb9@byu.net>
* modules/regexprops-generic: New file.
* MODULES.html.sh (Support for building documentation): List it.
2006-08-22 Eric Blake <ebb9@byu.net>
* m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Avoid compiler warning.
* m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise.
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Likewise.
* m4/intmax_t.m4 (gt_AC_TYPE_INTMAX_T): Likewise.
2006-08-22 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Don't treat lib_LIBRARIES
and lib_LTLIBRARIES like the other lib_* variables.
2006-08-22 Bruno Haible <bruno@clisp.org>
* build-aux/x-to-1.in: New file, from GNU gettext.
2006-08-22 Bruno Haible <bruno@clisp.org>
* m4/readutmp.m4 (gl_READUTMP): Compile readutmp.c only if <utmp.h> or
<utmpx.h> exists.
2006-08-22 Bruno Haible <bruno@clisp.org>
* lib/readutmp.h: Skip most definitions if neither <utmp.h> nor
<utmpx.h> exists.
2006-08-21 Paul Eggert <eggert@cs.ucla.edu>
BeOS portability.
* lib/dirchownmod.c (dirchownmod): Don't use fchmod if it doesn't
exist.
Problem reported by Bruno Haible.
2006-08-21 Paul Eggert <eggert@cs.ucla.edu>
Avoid the need for AC_LIBSOURCES in m4 macros.
* modules/acl (EXTRA_DIST): Add acl.h.
* modules/argmatch (Files): Add m4/argmatch.m4.
(configure.ac): Add gl_ARGMATCH.
(EXTRA_DIST): Renamed from lib_SOURCES, for
consistency with the other modules. Remove argmatch.c.
* modules/backupfile (EXTRA_DIST): Add backupfile.h.
* modules/c-strtod (EXTRA_DIST): Add c-strtod.h.
* modules/c-strtold (EXTRA_DIST): Add c-strtod.c, c-strtod.h.
* modules/canonhost (EXTRA_DIST): Add c-canonhost.h.
* modules/canonicalize (EXTRA_DIST): Add canonicalize.h.
* modules/chdir-long (EXTRA_DIST): Add chdir-long.h.
* modules/chdir-safer (EXTRA_DIST): Add chdir-safer.h.
* modules/cloexec (EXTRA_DIST): Add cloexec.h.
* modules/close-stream (EXTRA_DIST): Add close-stream.h.
* modules/closeout (EXTRA_DIST): Add closeout.h.
* modules/cycle-check (EXTRA_DIST): Add cycle-check.h.
* modules/dev-ino (EXTRA_DIST): Add dev-ino.h.
* modules/dirfd (EXTRA_DIST): Add dirfd.h.
* modules/dirname (EXTRA_DIST): Renamed from lib_SOURCES. Add
dirname.h; remove basename.c and stripslash.c.
* modules/exclude (EXTRA_DIST): Add exclude.h.
* modules/exitfail (EXTRA_DIST): Add exitfail.h.
* modules/fcntl-safer (EXTRA_DIST): Add fcntl-safer.h fcntl--.h.
* modules/file-type (EXTRA_DIST): Add file-type.h.
* modules/filemode (EXTRA_DIST): Add filemode.h.
* modules/filenamecat (EXTRA_DIST): Add filenamecat.h.
* modules/fopen-safer (EXTRA_DIST): Add stdio-safer.h stdio--.h.
* modules/fpending (EXTRA_DIST): Add __fpending.h.
* modules/fprintftime (EXTRA_DIST): Add fprintftime.h.
* modules/fsusage (EXTRA_DIST): Add fsusage.h.
* modules/fts (EXTRA_DIST): Add fts_.h fts-cycle.c.
* modules/getcwd (EXTRA_DIST): Add getcwd.h.
* modules/getdate (EXTRA_DIST): Add getdate.c.
* modules/gethrxtime (EXTRA_DIST): Add gethrxtime.h xtime.h.
* modules/getpagesize (EXTRA_DIST): Add getpagesize.h.
* modules/getpass (EXTRA_DIST): Add getpass.h.
* modules/glob (EXTRA_DIST): Add glob_.h glob-libc.h.
* modules/group-member (EXTRA_DIST): Add group-member.h.
* modules/hard-locale (EXTRA_DIST): Add hard-locale.h.
* modules/hash (EXTRA_DIST): Add hash.h.
* modules/human (EXTRA_DIST): Add human.h.
* modules/inttypes (EXTRA_DIST): Add inttypes.h.
* modules/lchmod (EXTRA_DIST): Add lchmod.h.
* modules/lchown (EXTRA_DIST): Add lchown.h.
* modules/long-options (EXTRA_DIST): Add long-options.h.
* modules/lstat (EXTRA_DIST): Add lstat.h.
* modules/md5 (EXTRA_DIST): Add memcasecmp.h.
* modules/memcoll (EXTRA_DIST): Add memcoll.h.
* modules/mempcpy (EXTRA_DIST): Add mempcpy.h.
* modules/memrchr (EXTRA_DIST): Add memrchr.h.
* modules/memxor (EXTRA_DIST): Add memxor.h.
* modules/mkancesdirs (EXTRA_DIST): Add mkancesdirs.h.
* modules/mkdir-p (EXTRA_DIST): Add modechange.h.
* modules/mountlist (EXTRA_DIST): Add mountlist.h.
* modules/openat (EXTRA_DIST): Add at-func.c openat.h openat-priv.h.
* modules/pathmax (EXTRA_DIST): Add pathmax.h.
* modules/physmem (EXTRA_DIST): Add physmem.h.
* modules/posixtm (EXTRA_DIST): Add posixtm.h.
* modules/posixver (EXTRA_DIST): Add posixver.h.
* modules/quote (EXTRA_DIST): Add quote.h.
* modules/quotearg (EXTRA_DIST): Add quotearg.h.
* modules/readtokens (EXTRA_DIST): Add readtokens.h.
* modules/readutmp (EXTRA_DIST): Add readutmp.h.
* modules/regex (EXTRA_DIST): Add regcomp.c regex.h regex_internal.c
regex_internal.h regexec.c.
* modules/safe-read (EXTRA_DIST): Add safe-read.h.
* modules/safe-write (EXTRA_DIST): Add safe-write.h.
* modules/same (EXTRA_DIST): Add same.h.
* modules/same-inode (EXTRA_DIST): Add same-inode.h.
* modules/save-cwd (EXTRA_DIST): Add save-cwd.h.
* modules/savedir (EXTRA_DIST): Add savedir.h.
* modules/sha1 (EXTRA_DIST): Add sha1.h.
* modules/sig2str (EXTRA_DIST): Add sig2str.h.
* modules/stat-macros (EXTRA_DIST): Add stat-macros.h.
* modules/stat-time (EXTRA_DIST): Add stat-time.h.
* modules/stdlib-safer (EXTRA_DIST): Add stdlib-safer.h stdlib--.h.
* modules/strdup (EXTRA_DIST): Add strdup.h.
* modules/strftime (EXTRA_DIST): Add strftime.h.
* modules/strndup (EXTRA_DIST): Add strndup.h.
* modules/strnlen (EXTRA_DIST): Add strnlen.h.
* modules/strverscmp (EXTRA_DIST): Add strverscmp.h.
* modules/time_r (EXTRA_DIST): Add time_r.h.
* modules/timespec (EXTRA_DIST): Add timespec.h.
* modules/tmpfile-safer (EXTRA_DIST): Add stdio-safer.h stdio--.h.
* modules/unistd-safer (EXTRA_DIST): Add unistd-safer.h unistd--.h.
* modules/unlinkdir (EXTRA_DIST): Add unlinkdir.h.
* modules/unlocked-io (EXTRA_DIST): Add unlocked-io.h.
* modules/userspec (EXTRA_DIST): Add userspec.h.
* modules/utimecmp (EXTRA_DIST): Add utimecmp.h.
* modules/utimens (EXTRA_DIST): Add utimens.h.
* modules/xalloc (EXTRA_DIST): Add xalloc.h.
* modules/xgetcwd (EXTRA_DIST): Add xgetcwd.h.
* modules/xnanosleep (EXTRA_DIST): Add xnanosleep.h.
* modules/xreadlink (EXTRA_DIST): Add xreadlink.h.
* modules/xstrtod (EXTRA_DIST): Add xstrtod.h.
* modules/xstrtol (EXTRA_DIST): Add xstrtol.h.
* modules/xstrtold (EXTRA_DIST): Add xstrtod.c xstrtod.h.
* modules/yesno (EXTRA_DIST): Add yesno.h.
2006-08-21 Paul Eggert <eggert@cs.ucla.edu>
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Check for fchmod.
* m4/argmatch.m4: New file, from coreutils with AC_LIBSOURCES removed.
* m4/dev-ino.m4, same-inode.m4: Remove.
* m4/_inttypes_h.m4 (gl_INTTYPES_H):
* m4/acl.m4 (AC_FUNC_ACL):
* m4/backupfile.m4 (gl_BACKUPFILE):
* m4/c-strtod.m4 (gl_C99_STRTOLD):
* m4/canon-host.m4 (gl_CANON_HOST):
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME):
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG):
* m4/chdir-safer.m4 (gl_CHDIR_SAFER):
* m4/cloexec.m4 (gl_CLOEXEC):
* m4/close-stream.m4 (gl_CLOSE_STREAM):
* m4/closeout.m4 (gl_CLOSEOUT):
* m4/dirfd.m4 (gl_FUNC_DIRFD):
* m4/dirname.m4 (gl_DIRNAME):
* m4/exclude.m4 (gl_EXCLUDE):
* m4/exitfail.m4 (gl_EXITFAIL):
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER):
* m4/file-type.m4 (gl_FILE_TYPE):
* m4/filemode.m4 (gl_FILEMODE):
* m4/filenamecat.m4 (gl_FILE_NAME_CONCAT):
* m4/fpending.m4 (gl_FUNC_FPENDING):
* m4/fprintftime.m4 (gl_FPRINTFTIME):
* m4/fts.m4 (gl_FUNC_FTS):
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL):
* m4/getdate.m4 (gl_GETDATE):
* m4/gethrxtime.m4 (gl_GETHRXTIME):
* m4/getpagesize.m4 (gl_GETPAGESIZE):
* m4/getpass.m4 (gl_FUNC_GETPASS):
* m4/gettime.m4 (gl_GETTIME):
* m4/getugroups.m4 (gl_GETUGROUPS):
* m4/glob.m4 (gl_GLOB_SUBSTITUTE):
* m4/group-member.m4 (gl_FUNC_GROUP_MEMBER):
* m4/hard-locale.m4 (gl_HARD_LOCALE):
* m4/hash.m4 (gl_HASH):
* m4/idcache.m4 (gl_IDCACHE):
* m4/lchmod.m4 (gl_FUNC_LCHMOD):
* m4/lchown.m4 (gl_FUNC_LCHOWN):
* m4/long-options.m4 (gl_LONG_OPTIONS):
* m4/lstat.m4 (gl_FUNC_LSTAT):
* m4/md5.m4 (gl_MD5):
* m4/memcasecmp.m4 (gl_MEMCASECMP):
* m4/memcoll.m4 (gl_MEMCOLL):
* m4/mempcpy.m4 (gl_FUNC_MEMPCPY):
* m4/memrchr.m4 (gl_FUNC_MEMRCHR):
* m4/memxor.m4 (gl_MEMXOR):
* m4/mkancesdirs.m4 (gl_MKANCESDIRS):
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS):
* m4/modechange.m4 (gl_MODECHANGE):
* m4/mountlist.m4 (gl_MOUNTLIST):
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP):
* m4/openat.m4 (gl_FUNC_OPENAT):
* m4/pathmax.m4 (gl_PATHMAX):
* m4/physmem.m4 (gl_PHYSMEM):
* m4/posixtm.m4 (gl_POSIXTM):
* m4/posixver.m4 (gl_POSIXVER):
* m4/quote.m4 (gl_QUOTE):
* m4/quotearg.m4 (gl_QUOTEARG):
* m4/readtokens.m4 (gl_READTOKENS):
* m4/readutmp.m4 (gl_READUTMP):
* m4/regex.m4 (gl_REGEX):
* m4/safe-read.m4 (gl_SAFE_READ):
* m4/safe-write.m4 (gl_SAFE_WRITE):
* m4/same.m4 (gl_SAME):
* m4/save-cwd.m4 (gl_SAVE_CWD):
* m4/savedir.m4 (gl_SAVEDIR):
* m4/settime.m4 (gl_SETTIME):
* m4/sha1.m4 (gl_SHA1):
* m4/sig2str.m4 (gl_FUNC_SIG2STR):
* m4/stat-macros.m4 (gl_STAT_MACROS):
* m4/stat-time.m4 (gl_STAT_TIME):
* m4/stdio-safer.m4 (gl_FOPEN_SAFER):
* m4/stdlib-safer.m4 (gl_STDLIB_SAFER):
* m4/strdup.m4 (gl_FUNC_STRDUP):
* m4/strftime.m4 (gl_FUNC_GNU_STRFTIME):
* m4/strndup.m4 (gl_FUNC_STRNDUP):
* m4/strnlen.m4 (gl_FUNC_STRNLEN):
* m4/strverscmp.m4 (gl_FUNC_STRVERSCMP):
* m4/time_r.m4 (gl_TIME_R):
* m4/timespec.m4 (gl_TIMESPEC):
* m4/unistd-safer.m4 (gl_UNISTD_SAFER):
* m4/unlinkdir.m4 (gl_UNLINKDIR):
* m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO):
* m4/userspec.m4 (gl_USERSPEC):
* m4/utimecmp.m4 (gl_UTIMECMP):
* m4/utimens.m4 (gl_UTIMENS):
* m4/xalloc.m4 (gl_XALLOC):
* m4/xgetcwd.m4 (gl_XGETCWD):
* m4/xnanosleep.m4 (gl_XNANOSLEEP):
* m4/xreadlink.m4 (gl_XREADLINK):
* m4/xstrtod.m4 (gl_XSTRTOD):
* m4/yesno.m4 (gl_YESNO):
Don't use AC_LIBSOURCES; instead, rely on the files in ../modules/
to get the necessary .h files and whatnot.
2006-08-21 Mark D. Baushke <mdb@gnu.org>
Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_verify_module): Work around Sun's non-POSIX 1003.2
/bin/sh understanding of '!' conditional negation.
2006-08-21 Jim Meyering <jim@meyering.net>
* modules/openat (Depends-on): Really alphabetize.
* modules/acl (Depends-on): Add error and quote.
* check-module (find_included_lib_files): Add at-func.c to the
ok-to-include-more-than-once white list.
* modules/openat (Depends-on): Add lstat. Alphabetize.
2006-08-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Emit a pkgdata_DATA variable only if some snippets add contents to it.
Reported by Martin Lambers <marlam@marlam.de>.
2006-08-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): If the snippets already
specify an installation location, don't emit a noinst_LIBRARIES or
noinst_LTLIBRARIES assignment.
2006-08-21 Bruno Haible <bruno@clisp.org>
BeOS portability.
* modules/mbchar (Include): Don't test HAVE_WCTYPE_H any more, since
BeOS has mbrtowc() but no <wctype.h>.
2006-08-21 Bruno Haible <bruno@clisp.org>
BeOS portability.
* m4/mbchar.m4 (gl_MBCHAR): Compile mbchar.c also if <wctype.h> doesn't
exist.
2006-08-21 Bruno Haible <bruno@clisp.org>
BeOS portability.
* lib/mbchar.h: Include <wctype.h> only if it exists.
2006-08-20 Paul Eggert <eggert@cs.ucla.edu>
Remove files that are no longer needed by their respective modules.
* m4/obstack.m4: Remove.
* m4/strerror_r.m4: Remove.
* m4/uint32_t.m4: Remove.
* m4/uintptr_t.m4: Remove.
* m4/ullong_max.m4: Remove.
* m4/xstrtoimax.m4: Remove.
* m4/xstrtoumax.m4: Remove.
* m4/cycle-check.m4 (gl_CYCLE_CHECK): Do not require
gl_AC_TYPE_UINTMAX_T, gl_STRUCT_DEV_INO, or gl_SAME_INODE, since gnulib
dependencies now capture this.
* m4/cycle-check.m4 (gl_CYCLE_CHECK):
Do not use AC_LIBSOURCES, since gnulib modules now do this.
* m4/fsusage.m4 (gl_FSUSAGE): Likewise.
* m4/human.m4 (gl_HUMAN): Likewise.
* m4/inttostr.m4 (gl_INTTOSTR): Likewise.
* m4/xstrtol.m4 (gl_XSTRTOL): Likewise.
* m4/filemode.m4 (gl_FILEMODE): Require AC_STRUCT_ST_DM_MODE.
* m4/filemode.m4 (gl_PREREQ_FSUSAGE_EXTRA): Do not require
gl_AC_TYPE_INTMAX_T or gl_AC_TYPE_UINTMAX_T, since we now require
stdint.
* m4/human.m4 (gl_HUMAN): Likewise.
* m4/inttostr.m4 (gl_PREREQ_INTTOSTR): Likewise.
* m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Likewise.
* m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise.
* m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise.
* m4/xstrtol (gl_XSTRTOL): Likewise.
* m4/gethrxtime.m4 (gl_XTIME): gl_AC_TYPE_LONG_LONG ->
AC_TYPE_LONG_LONG_INT.
* m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise.
* m4/strtoll.m4 (gl_FUNC_STRTOLL): Likewise.
* m4/strtoull.m4 (gl_FUNC_STRTOULL): Likewise, for unsigned long.
* m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise.
* m4/human.m4 (gl_HUMAN): Do not require AM_STDBOOL_H since we depend
on stdbool.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL_H, gl_PREREQ_XSTRTOL): Remove.
(gl_PREREQ_XSTRTOUL): Remove.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Check for hasmntopt.
* m4/posixver.m4: Fix comment since head -1 now works even in POSIX
mode.
2006-08-20 Paul Eggert <eggert@cs.ucla.edu>
Add and change modules to make it easier for coreutils to use
gnulib-tool.
* modules/backupfile (Files): Remove m4/d-ino.m4.
(Depends-on): Add d-ino.
* modules/cycle-check (Depends-on): Add stdint.
(lib_SOURCES): Add cycle-check.h.
* modules/d-ino: New module.
* modules/d-type: New module.
* modules/error (Files): Remove m4/strerror_r.m4.
* modules/filemode (Files): Add m4/st_dm_mode.m4.
* modules/fsuage (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4,
m4/inttypes_h.m4, m4/uintmax_t.m4.
(Depends-on): Add stdint.
(lib_SOURCES): Add fsusage.h.
* modules/getcwd (Files): Remove d-ino.m4.
(Depends-on): Add d-ino.
* modules/getndelim2 (Depends-on): Add stdint.
* modules/glob (Files): Remove m4/d-type.m4.
(Depends-on): Add d-type.
* modules/host-os: New module.
* modules/human (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4,
m4/inttypes_h.m4, m4/uintmax_t.m4.
* Depends-on: Add stdint.
(lib_SOURCES): Add human.h.
* modules/inttostr (Files): Remove m4/intmax_t.m4,
m4/inttostr.m4, m4/inttypes_h.m4, m4/longlong.m4, m4/stdint_h.m4,
m4/uintmax_t.m4, m4/ulonglong.m4.
(Depends-on): Add stdint.
(EXTRA_DIST): Add inttostr.h.
* modules/lchmod: New module.
* modules/link-follow: New module.
* modules/mkdir-p (Files): Remove lib/lchmod.h, m4/lchmod.m4.
(Depends-on): Add lchmod.
* modules/mkstemp (Files): Remove m4/ulonglong.m4,
m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4.
(Depends-on): Add stdint.
* modules/obstack (Files): Remove m4/inttypes_h.m4, m4/obstack.m4,
m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
(Depends-on): Add stdint.
(configure.ac): Change gl_OBSTACK to AC_FUNC_OBSTACK.
* modules/perl: New module.
* modules/regex (Depends-on): Add stdint.
* modules/rmdir-errno: New module.
* modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4,
m4/intmax_t.m4.
(Depends-on): Add stdint.
* modules/strtoumax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4,
m4/uintmax_t.m4.
(Depends-on): Add stdint.
* modules/unlink-busy: New module.
* modules/utimecmp (Depends-on): Add stdint.
* modules/uptime: New module.
* modules/winsz-ioctl: New module.
* modules/winsz-termios: New module.
* modules/xnanosleep (Depends-on): Add nanosleep.
* modules/ullong_max: Remove.
* modules/xstrtoimax (Files): Remove m4/xstrtoimax.m4.
(configure.ac): Remove gl_XSTRTOIMAX; no action needed now.
* modules/xstrtol (Files): Remove m4/ulonglong.m4, m4/longlong.m4,
m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4, m4/intmax_t.m4.
(Depends-on): Add inttypes.
(lib_SOURCES): Add xstrtol.h.
* modules/xstrtoumax (Files): Remove m4/xstrtoumax.m4.
(configure.ac): Remove gl_XSTRTOUMAX; no action needed now.
* MODULES.html.sh: Move 'assert' into the assert section.
Move 'dummy' into the linking section.
Remove ullong_max.
Add section for compatibility checks for POSIX:2001 functions,
and put d-ino, d-type, link-follow, rmdir-errno, unlink-busy,
winsz-ioctl, and winsz-termios into it.
Add lchmod.
Add top-level Misc section and put host-os, perl, and uptime
into it.
2006-08-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/cycle-check.h: Include <stdint.h> unconditionally, since we
now assume the stdint module. Do not include inttypes.h.
* lib/fsusage.h: Likewise.
* lib/getndelim2.c: Likewise.
* lib/human.h: Likewise.
* lib/inttostr.h: Likewise.
* lib/obstack.c: Likewise.
* lib/regex_internal.h: Likewise.
* lib/tempname.c: Likewise.
* lib/utimecmp.c: Likewise.
* lib/xstrtol.h: Likewise.
* lib/stat_.h: Fix typo: HAVE_FUNC_LSTAT -> HAVE_LSTAT.
* lib/strtoimax.c: Adjust to macro name changes in Autoconf,
e.g., HAVE_LONG_LONG -> HAVE_LONG_LONG_INT.
* lib/xtime.h: Likewise.
2006-08-19 Paul Eggert <eggert@cs.ucla.edu>
* modules/openat (Files): Add lib/fchmodat.c.
Fixes problem reported by Jay Youngman.
2006-08-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/fchmodat.c: New file, from coreutils. This was inadvertently
omitted in the 2006-08-17 update. Problem reported by Jay Youngman.
2006-08-18 Paul Eggert <eggert@cs.ucla.edu>
Bruno Haible <bruno@clisp.org>
* m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
and is a script that invokes bison. Tighten the code. Add comments.
2006-08-18 Jim Meyering <jim@meyering.net>
* m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Also check for
CLOCK_REALTIME, since gethrxtime may revert to using clock_gettime via
gettime.c. Gabor Z. Papp reported that gethrxtime-using programs
failed to link due to unresolved clock_gettime on a linux-2.4.x system.
2006-08-18 Bruno Haible <bruno@clisp.org>
* modules/bison-i18n: New file.
* MODULES.html.sh (Internationalization functions): Add it.
2006-08-18 Bruno Haible <bruno@clisp.org>
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Also check for
sys/statvfs.h. When getmntinfo was found, check its declaration and
set either MOUNTED_GETMNTINFO or MOUNTED_GETMNTINFO2 depending on it.
2006-08-18 Bruno Haible <bruno@clisp.org>
* m4/bison-i18n.m4: New file, from bison.
2006-08-18 Bruno Haible <bruno@clisp.org>
* lib/mountlist.c [MOUNTED_GETMNTINFO2]: Include sys/statvfs.h.
(ME_DUMMY): Treat "kernfs" as a dummy.
(read_file_system_list) [MOUNTED_GETMNTINFO2]: Implement.
2006-08-17 Paul Eggert <eggert@cs.ucla.edu>
Update from coreutils.
2006-08-15 Jim Meyering <jim@meyering.net>
* m4/openat.m4 (gl_FUNC_OPENAT): Add at-func.c via AC_LIBSOURCES.
2006-01-17 Jim Meyering <jim@meyering.net>
* m4/fts.m4 (gl_FUNC_FTS_CORE): Depend on gl_FUNC_OPENAT.
2006-01-11 Jim Meyering <jim@meyering.net>
* m4/openat.m4 (gl_FUNC_OPENAT): Require and compile fchmodat.c.
Check for the lchmod function.
2006-08-17 Paul Eggert <eggert@cs.ucla.edu>
Update from coreutils.
* lib/__fpending.h: Add copyright notice.
* lib/fprintftime.h: Likewise.
* lib/savedir.c: Use (C) in copyright notice.
* lib/savedir.h: Likewise.
2006-08-15 Jim Meyering <jim@meyering.net>
* lib/at-func.c: New file, with the logic of all emulated at-functions.
* lib/openat-priv.h: Include <errno.h> and define ENOSYS,
in support of the EXPECTED_ERRNO macro.
* lib/openat.c (fstatat, unlinkat, fchownat): Remove function
definitions. Instead, define the appropriate symbols and include
"at-func.c".
* lib/mkdirat.c (mkdirat): Likewise.
* lib/fchmodat.c (fchmodat): Likewise.
(ENOSYS): Remove definition.
* lib/openat.c: Don't include <errno.h>, now that "openat-priv.h" does
it. Don't include "unistd--.h" -- it wasn't ever used.
2006-01-17 Jim Meyering <jim@meyering.net>
Rewrite fts.c not to change the current working directory,
by using openat, fstatat, fdopendir, etc..
* lib/fts.c [! _LIBC]: Include "openat.h" and "unistd--.h".
(HAVE_OPENAT_SUPPORT): Define.
[_LIBC] (fchdir): Don't undef or define; no longer used.
(FCHDIR): Define in terms of cwd_advance_fd rather than fchdir.
Now, this `function' always succeeds, and consumes its file descriptor
parameter -- so callers must not close such FDs. Update callers.
(diropen_fd, opendirat, cwd_advance_fd): New functions.
(diropen): Add parameter, SP. Adjust all callers.
Implement using diropen_fd, rather than open.
(fts_open): Initialize new member, fts_cwd_fd.
Remove fts_rft-setting code.
(fts_close): Close fts_cwd_fd, if necessary.
(__opendir2): Define in terms of opendir or opendirat,
depending on whether the FST_NOCHDIR flag is set.
(fts_build): Since fts_safe_changedir consumes its FD, and since
this code must do `closedir(dirp)', dup the dirfd(dirp) argument,
and close the dup'd file descriptor upon failure.
(fts_stat): Use fstatat(...AT_SYMLINK_NOFOLLOW) in place of lstat.
(fts_safe_changedir): Tweak semantics to reflect that this function
now calls cwd_advance_fd and hence consumes its FD argument.
* lib/fts_.h [struct FTS] (fts_cwd_fd): New member.
[struct FTS] (fts_rft): Remove now-unused member.
[struct FTS] (fts_cycle.state): Improve comment.
* lib/openat.c (openat_needs_fchdir): New function.
* lib/openat.h (openat_needs_fchdir): Declare it.
2006-08-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/memcoll.c (memcoll): Set errno = 0 in the shortcut case, too.
Problem and fix reported by Pádraig Brady in
<http://lists.gnu.org/r/bug-coreutils/2006-08/msg00099.html>.
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
* modules/cycle-check (configure.ac): Add gl_CYCLE_CHECK.
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/memcoll.c (memcoll): Optimize for the common case where the
arguments are bytewise equal.
2006-08-15 Paul Eggert <eggert@cs.ucla.edu>
* doc/regexprops-generic.texi: Add a copyright notice.
2006-08-15 Bruno Haible <bruno@clisp.org>
* modules/tmpdir (License): Change to LGPL.
2006-08-15 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_all_modules, func_verify_module): COPYING is not a
module.
2006-08-14 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Add gnupload.
2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
Change copyright notice from LGPL 2 to GPL 2, since that's the
standard form used in the gnulib repository.
* tests/test-lock.c: Likewise.
* tests/test-stdint.c: Likewise.
* tests/test-tls.c: Likewise.
* users.txt: Add bison, diffutils, libprelude, prelude-lml,
prelude-manager. User shorter URLs for GNU projects, without '?'.
Add copyright notice.
* check-module: Add copyright notice. Output a copyright
notice if "--version" is specified.
* modules/COPYING: New file.
* tests/test-getaddrinfo.c: Add copyright notice.
* tests/test-verify.c: Likewise.
2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
Change copyright notice from LGPL 2 to GPL 2, since that's the
standard form used in the gnulib repository.
* lib/lock.c: LGPL -> GPL.
* lib/lock.h: Likewise.
* lib/strnlen1.c: Likewise.
* lib/strnlen1.h: Likewise.
* lib/tls.c: Likewise.
* lib/tls.h: Likewise.
* lib/tmpdir.c: Likewise.
* lib/TODO: Remove; this belongs only in coreutils.
2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
Add copyright notices to long-enough files that lack them, since
otherwise the files aren't clearly free. Use the same notice that
getdate.texi already uses.
* doc/alloca-opt.texi: Add copyright notice.
* doc/alloca.texi: Likewise.
* doc/ctime.texi: Likewise.
* doc/functions.texi: Likewise.
* doc/gcd.texi: Likewise.
* doc/gnulib-tool.texi: Likewise.
* doc/inet_ntoa.texi: Likewise.
* doc/visibility.texi: Likewise.
* doc/getdate.texi: Update FDL version from 1.1 to 1.2.
* doc/quote.texi: Add copyright notice.
* doc/solaris-versions: Add SunOS 5.10, SunOS 1.x, SunOS 4.0, SunOS
4.0.x, SunOS 4.1.1.1, SunOS 4.1.1_U1, SunOS 4.1.3B. SunOS 4.1.3
was Solaris 1.1A. Remove space before B in Solaris 1.1.1B.
Mention SunOS 5.11. Mention that everything before SunOS 5.7
is now obsolete, and give a pointer to the Sun list.
Add copyright notice.
2006-08-14 Paul Eggert <eggert@cs.ucla.edu>
* config/srclistvars.sh: Add copyright notice.
2006-08-14 Eric Blake <ebb9@byu.net>
Import the following change from libc:
2006-08-12 Ulrich Drepper <drepper@redhat.com>
Upstream bug 2997.
* lib/misc/error.c: Add space between program name and message if file
name is missing.
2006-08-12 Karl Berry <karl@gnu.org>
* config/srclist.txt (ssize_t.m4, sig_atomic_t.m4, signalblocking.m4):
remove, these originate in gnulib now.
2006-08-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/Makefile (standards.info standards.html standards.dvi):
Also depend on make-stds.texi.
2006-08-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE ->
HAVE_PIPE. Fix a file descriptor leak when fd_safer fails.
* lib/regex_internal.c (re_string_skip_chars): Don't assume WEOF fits
in wchar_t. Problem reported by Eric Blake.
* lib/snprintf.c (snprintf): memcpy LEN bytes, not SIZE - 1, when
LEN is smaller than SIZE. Suggested by Bruno Haible.
Also, help the compiler to keep LEN in a register.
2006-08-11 Eric Blake <ebb9@byu.net>
* users.txt: Sort. Add tar.
2006-08-11 Bruno Haible <bruno@clisp.org>
* users.txt: New file.
2006-08-11 Bruno Haible <bruno@clisp.org>
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Include <stdio.h> and <time.h>
before <wchar.h>. Needed for OSF/1 and BSD/OS.
2006-08-10 Paul Eggert <eggert@cs.ucla.edu>
* modules/snprintf (Depends-on): Remove minmax.
(Maintainer): Add self and Bruno.
2006-08-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/.cppi-disable: Add snprintf.h, socket_.h.
* lib/snprintf.c: Include <errno.h> and <limits.h>.
(EOVERFLOW): Define if the system does not.
Do not include "minmax.h"; it wasn't used.
(snprintf): Don't assume size_t promotes to an unsigned type.
Fix bug when generated string was too long for the buffer: the
buffer's contents are supposed to be the initial prefix of the
output. Don't assume vasnprintf returns EOVERFLOW if the size
exceeds INT_MAX; do the check ourselves.
Import the following changes from libc:
2006-06-02 Jakub Jelinek <jakub@redhat.com>
* lib/posix/regex_internal.c (re_string_skip_chars): If no character
has been converted at all, set *last_wc to WEOF. If mbrtowc failed,
set wc to the byte which couldn't be converted.
(re_string_reconstruct): Don't clear valid_raw_len before calling
re_string_skip_chars. If wc is WEOF after re_string_skip_chars, set
tip_context using re_string_context_at.
2006-05-02 Ulrich Drepper <drepper@redhat.com>
* lib/posix/regex.h: g++ still cannot handled [restrict].
2006-04-21 Ulrich Drepper <drepper@redhat.com>
* lib/posix/regex.h: Remove special handling for VMS.
2006-08-10 Jim Meyering <jim@meyering.net>
* modules/same-inode: New module.
* modules/dev-ino: New module.
* modules/cycle-check: Depend on these modules, rather than simply
including their .h files.
(Makefile.am): Don't list cycle-check.[ch] here, now that they're
required via m4/cycle-check.m4.
* modules/same: Depend on new same-inode module, rather than
including same-inode.h.
* modules/chdir-safer: New file.
* modules/chown (Depends-on): Add stat-macros.
2006-08-10 Jim Meyering <jim@meyering.net>
* m4/cycle-check.m4: New file.
Require gl_STRUCT_DEV_INO and gl_SAME_INODE.
* m4/dev-ino.m4, m4/same-inode.m4: New files.
2006-08-10 Eric Blake <ebb9@byu.net>
* modules/verror (Depends-on): Remove bogus gl_VERROR that snuck
in from original proposal.
2006-08-10 Eric Blake <ebb9@byu.net>
and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_import): Detect unexpanded macros in gnulib
namespace.
2006-08-10 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Detect unexpanded macros here
as well.
2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
2006-07-19 Mike Frysinger <vapier@gentoo.org>
* lib/mountlist.c [ME_REMOTE]: Filter out cifs.
Reported by Toralf Förster in <http://bugs.gentoo.org/141012>.
2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
* modules/restrict: Remove; no longer needed now that we assume
Autoconf 2.59 or later.
* MODULES.html.sh: Remove 'restrict'.
* modules/argp (Depends-on): Remove 'restrict'.
* modules/base64 (Depends-on): Likewise.
* modules/gc (Depends-on): Likewise.
* modules/getaddrinfo (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/memxor (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/strtok_r (Depends-on): Likewise.
* modules/time_r (Depends-on): Likewise.
2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
* m4/argp.m4 (gl_ARGP): Require AC_C_RESTRICT.
* m4/gc.m4 (gl_PREREQ_GC): Likewise.
* m4/glob.m4 (gl_PREREQ_GLOB): Likewise.
* m4/inet_ntop.m4 (gl_PREREQ_INET_NTOP): Likewise.
* m4/inet_pton.m4 (gl_PREREQ_INET_PTON): Likewise.
* m4/memxor.m4 (gl_MEMXOR): Likewise.
* m4/restrict.m4: Remove; no longer needed. All remaining uses of
gl_C_RESTRICT replaced by AC_C_RESTRICT.
Merge from coreutils.
* m4/regex.m4 (gl_PREREQ_REGEX): Require AC_C_RESTRICT, not
gl_C_RESTRICT, now that we assume Autoconf 2.59 or later.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise.
* m4/time_r.m4 (gl_TIME_R): Likewise.
2006-08-09 Karl Berry <karl@gnu.org>
* config/srclist.txt: no more gettext-tools, per Bruno.
2006-08-08 Eric Blake <ebb9@byu.net>
* modules/verror: New module.
* MODULES.html.sh: Document it.
2006-08-08 Eric Blake <ebb9@byu.net>
* lib/verror.h, lib/verror.c: New files.
2006-08-08 Eric Blake <ebb9@byu.net>
* lib/verror.c (verror_at_line): Work around glibc bug 2997, so that
verror_at_line output complies with GNU Coding Standards even when
file is NULL.
2006-08-07 Bruno Haible <bruno@clisp.org>
* lib/allocsa.h (sa_alignof) [_AIX]: Also consider 'long long' in newer
versions of AIX.
Reported by Ralf Wildenhues.
2006-08-07 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Wrap the set of autoconf snippets
in an AC_DEFUN. Needed so that the autoconf snippets can use
AC_REQUIRE.
2006-08-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Initialize pkgdata_DATA.
* modules/javaversion (Makefile.am): Add to pkgdata_DATA, rather than
overriding it.
2006-08-06 Eric Blake <ebb9@byu.net>
* lib/error.h: Fold in some upstream changes from glibc.
* lib/error.c: Likewise.
2006-08-04 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Make the mostlyclean-local rule depend on mostlyclean-generic.
Reported by Jim Meyering. Solution suggested by Ralf Wildenhues.
2006-07-31 Bruno Haible <bruno@clisp.org>
* m4/localcharset.m4 (gl_LOCALCHARSET): Remove tests for <stddef.h>,
<stdlib.h>, <string.h>.
2006-07-30 Bruno Haible <bruno@clisp.org>
* modules/readlink (License): Change to LGPL.
2006-07-30 Bruno Haible <bruno@clisp.org>
* modules/javaversion (Makefile.am): Distribute javaversion.java and
javaversion.class. Also install javaversion.class in $(pkgdatadir) and
set PKGDATADIR to point to it.
2006-07-30 Bruno Haible <bruno@clisp.org>
* modules/csharpexec (configure.ac): Comment out macro invocation.
* modules/javaexec (configure.ac): Likewise.
* modules/javacomp-script (configure.ac): Likewise.
* modules/csharpcomp-script (configure.ac): Use AC_REQUIRE.
2006-07-30 Bruno Haible <bruno@clisp.org>
* modules/clean-temp (Depends-on): Add linkedhash-list, remove
linked-list.
2006-07-30 Bruno Haible <bruno@clisp.org>
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Assume <string.h> exists.
2006-07-30 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Initialize MOSTLYCLEANFILES to core and *.stackdump, so that core dumps
get removed.
2006-07-29 Bruno Haible <bruno@clisp.org>
Make it possible for gnulib-tool to work with locally modified or
augmented gnulib repositories.
* gnulib-tool (func_usage): Document --local-dir option.
(local_gnulib_dir): New variable.
Handle --local-dir option.
(func_lookup_file): New function.
(func_all_modules, func_verify_module): Look also in $local_gnulib_dir.
(func_get_description, func_get_filelist, func_get_description,
func_get_filelist, func_get_dependencies, func_get_autoconf_snippet,
func_get_automake_snippet, func_get_include_directive,
func_get_license, func_get_maintainer): Use func_lookup_file.
(func_import, func_create_testdir): Use func_lookup_file.
2006-07-29 Bruno Haible <bruno@clisp.org>
* modules/setenv (Depends-on): Add unistd.
2006-07-29 Bruno Haible <bruno@clisp.org>
* lib/setenv.c: Undo unintended modification done on 2006-02-27.
2006-07-29 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c: Assume <stddef.h>, <stdlib.h>, <string.h> exist.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import, update): If there is no Makefile.am, look at
aclocal.m4, instead of bailing out.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Revert most of the 2006-07-15 change.
Categorize the options by when they are useful.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Document option --no-libtool.
Handle option --no-libtool.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Update
for changed semantics of $libtool variable.
(func_import): Likewise. If libtool is not used, show this through
an option --no-libtool.
(func_create_testdir): Update.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Extend error message about missing
--doc-base.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Don't create the $docbase directory if
there is no file to store there.
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (autoconf_minversion): If a --dir option is given and
relevant, look for configure.ac there, not in the current directory.
Also use a simple search for AC_PREREQ, not "autoconf --trace".
2006-07-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (SORT): New variable.
(func_usage): Undocument --assume-autoconf option.
Remove --assume-autoconf option handling.
(autoconf_minversion): Determine from the contents of configure.ac.
(func_import): Remove autoconf_minversion handling.
Suggested by Eric Blake.
2006-07-29 Bruno Haible <bruno@clisp.org>
* doc/gnulib-tool.texi (gl_LIBTOOL): Mention --no-libtool option.
2006-07-29 Bruno Haible <bruno@clisp.org>
* config/srclist.txt (*setenv.[ch]): Remove rules.
2006-07-28 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* m4/inet_pton.m4, inet_ntop.m4: Check for netinet/in.h too.
2006-07-28 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/inet_ntop.h, inet_pton.h: Need to include netinet/in.h before
arpa/inet.h.
2006-07-28 Simon Josefsson <jas@extundo.com>
* modules/inet_ntop (Depends-on): Depend on arpa_inet.
* modules/inet_pton (Depends-on): Likewise.
2006-07-28 Simon Josefsson <jas@extundo.com>
* m4/netinet_in_h.m4: New file.
2006-07-28 Simon Josefsson <jas@extundo.com>
* lib/inet_ntop.h, inet_pton.h: No need to guard netinet/in.h
#include's.
2006-07-28 Simon Josefsson <jas@extundo.com>
* lib/inet_ntop.h, inet_pton.h: No need to guard arpa/inet.h
#include's.
2006-07-28 Paul Eggert <eggert@cs.ucla.edu>
* lib/modechange.c (mode_compile): Numeric modes now affect setuid and
setgid on directories only if they set these bits.
* lib/modechange.h: Remove obsolete comment about masks.
2006-07-28 Eric Blake <ebb9@byu.net>
* lib/regex_internal.h (struct re_dfa_t) [!_LIBC]: Avoid invalid C89
macro expansion.
2006-07-28 Bruno Haible <bruno@clisp.org>
* lib/inet_ntop.h, inet_pton.h: Use #if HAVE* instead of #ifdef HAVE*.
2006-07-28 Bruno Haible <bruno@clisp.org>
* m4/mbchar.m4 (gl_MBCHAR): Also test for iswcntrl.
2006-07-28 Bruno Haible <bruno@clisp.org>
* lib/mbchar.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit):
Define fallbacks.
Avoids link error on FreeBSD 4.x.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
* lib/wcwidth.h (iswprint): Assume an ASCII compatible wide character
encoding.
* lib/mbswidth.c (iswcntrl): Likewise.
2006-07-27 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Define __STDC_CONSTANT_MACROS during the
test.
2006-07-27 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (INT*_C, UINT*_C) [C++]: Define these if
__STDC_CONSTANT_MACROS is defined, not if __STDC_LIMIT_MACROS is
defined.
2006-07-26 Eric Blake <ebb9@byu.net>
* m4/unistd-safer.m4 (gl_UNISTD_SAFER): Check for missing pipe.
2006-07-26 Eric Blake <ebb9@byu.net>
* lib/mkstemp-safer.c [! HAVE_MKSTEMP]: Add prototype for platforms
like mingw that lack mkstemp.
* lib/pipe-safer.c (pipe_safer) [!HAVE_FUNC_PIPE]: Provide fallback to
avoid compilation warning on mingw.
2006-07-26 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Also verify the existence of the macros
INT*_MIN, INT_LEAST*_MAX, INT_LEAST*_MIN, UINT_LEAST*_MAX,
INT_FAST*_MIN, INTPTR_MIN.
2006-07-25 Bruno Haible <bruno@clisp.org>
* modules/version-etc (Depends-on): Add stdarg.
2006-07-25 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_INTEGER_TYPE_SUFFIX): Avoid 'eval' in front of
complex commands.
2006-07-25 Bruno Haible <bruno@clisp.org>
* lib/version-etc.c (version_etc_va): Use va_copy, assumed to be
defined in <stdarg.h> or config.h.
2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdio-safer.m4 (gl_FOPEN_SAFER, gl_TMPFILE_SAFER): New macros.
(gl_STDIO_SAFER): Remove.
2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (File stream based Input/Output):
Add fopen-safer, tmpfile-safer; remove stdio-safer.
* modules/getusershell (Depends-on): Change stdio-safer to fopen-safer.
* modules/fopen-safer, modules/tmpfile-safer: New files.
* modules/stdio-safer: Remove.
2006-07-24 Bruno Haible <bruno@clisp.org>
* modules/tmpdir: New file.
* MODULES.html.sh (File system functions): Add it.
2006-07-24 Bruno Haible <bruno@clisp.org>
* modules/javacomp (Depends-on): Add unistd, javaversion, binary-io,
getline, pathname, fwriteerror, clean-temp, xvasprintf, strstr.
2006-07-24 Bruno Haible <bruno@clisp.org>
* modules/clean-temp: New file.
2006-07-24 Bruno Haible <bruno@clisp.org>
* m4/tmpdir.m4: New file, from GNU gettext.
2006-07-24 Bruno Haible <bruno@clisp.org>
* lib/tmpdir.h: New file, from GNU gettext.
* lib/tmpdir.c: New file, from GNU gettext.
2006-07-24 Bruno Haible <bruno@clisp.org>
* lib/clean-temp.h: New file, from GNU gettext.
* lib/clean-temp.c: New file, from GNU gettext.
2006-07-23 Eric Blake <ebb9@byu.net>
* modules/stdio-safer (Files): Add tmpfile-safer.c.
(Depends-on): Add binary-io.
2006-07-23 Eric Blake <ebb9@byu.net>
* m4/stdio-safer.m4 (gl_STDIO_SAFER): Add tmpfile-safer.c.
2006-07-23 Eric Blake <ebb9@byu.net>
* lib/tmpfile-safer.c: New file.
* lib/stdio-safer.h (fopen_safer): Add prototype.
* lib/stdio--.h (tmpfile): Make safer.
2006-07-23 Bruno Haible <bruno@clisp.org>
* lib/gl_anylinked_list2.h (ASYNCSAFE): New macro.
(gl_linked_add_first, gl_linked_add_last, gl_linked_add_before,
gl_linked_add_after, gl_linked_add_at, gl_linked_remove_node,
gl_linked_remove_at): Use it.
2006-07-22 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
and Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.h (AI_PASSIVE): Make sure it is defined.
* lib/getaddrinfo.c (getaddrinfo): Support AI_PASSIVE.
2006-07-22 Paul Eggert <eggert@cs.ucla.edu>
* modules/close-stream: New file.
* modules/closeout (Description): Make it clear that it exits
with a diagnostic on error.
(Depends-on): Add close-stream. Remove fpending, stdbool.
* MODULES.html.sh (File stream based Input/Output): Add close-stream.
2006-07-22 Paul Eggert <eggert@cs.ucla.edu>
* m4/close-stream.m4: New file.
2006-07-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/close-stream.c, lib/close-stream.h: New files.
2006-07-22 Bruno Haible <bruno@clisp.org>
Merge from GNU gettext 0.15.
2006-05-01 Bruno Haible <bruno@clisp.org>
* build-aux/javacomp.sh.in: Update for changed javacomp.m4.
2006-07-22 Bruno Haible <bruno@clisp.org>
* modules/javaversion: New file.
* MODULES.html.sh (Java): Add javaversion.
2006-03-12 Bruno Haible <bruno@clisp.org>
* build-aux/javaexec.sh.in: Update for changed javaexec.m4.
2005-12-04 Bruno Haible <bruno@clisp.org>
* build-aux/csharpexec.sh.in: Add support for 'clix' launcher
(untested).
2006-06-21 Bruno Haible <bruno@clisp.org>
Avoid warnings from recent versions of mcs.
* build-aux/csharpcomp.sh.in (options_mcs): Don't use options
-o, -L, -r any more. Use options documented since mcs-1.0
instead. Similarly for -g.
2005-12-04 Bruno Haible <bruno@clisp.org>
* build-aux/csharpcomp.sh.in: Suffix for resources is
.resources, not .resource.
2005-07-09 Bruno Haible <bruno@clisp.org>
* build-aux/csharpcomp.sh.in (options_csc): For -l option,
add a .dll suffix.
Reported by Mark Junker <mjscod@gmx.de>.
2006-07-22 Bruno Haible <bruno@clisp.org>
* modules/gettext: Upgrade to gettext-0.15.
(Files): Remove m4/isc-posix.m4. Add m4/lock.m4,
m4/visibility.m4.
Replace m4/inttypes.m4 with m4/inttypes-h.m4.
2006-07-22 Bruno Haible <bruno@clisp.org>
Merge from GNU gettext 0.15.
2006-03-25 Bruno Haible <bruno@clisp.org>
* lib-link.m4 (AC_LIB_LINKFLAGS_FROM_LIBS): New macro.
2006-07-21 Bruno Haible <bruno@clisp.org>
* javacomp.m4 (gt_JAVACOMP): Convert target_version "null" to
"1.1".
2006-05-09 Bruno Haible <bruno@clisp.org>
* javacomp.m4 (gt_JAVACOMP): On Cygwin, set
CLASSPATH_SEPARATOR to a semicolon. Use CLASSPATH_SEPARATOR
for the conftestver execution.
2006-05-01 Bruno Haible <bruno@clisp.org>
* javacomp.m4 (gt_JAVACOMP): Accept a source-version and an
optional target-version argument. Verify that the compiler
groks source of the specified source-version, or add -source
option as necessary. Verify that the compiler produces
bytecode in the specified target-version, or add -target and
-source options as necessary. Make the result of the test
available as variable CONF_JAVAC. Also log error output in
config.log.
2006-03-11 Bruno Haible <bruno@clisp.org>
* javacomp.m4 (gt_JAVACOMP): Treat gcj-4.x like gcj-3.x.
2006-05-09 Bruno Haible <bruno@clisp.org>
* javaexec.m4 (gt_JAVAEXEC): On Cygwin, set
CLASSPATH_SEPARATOR to a semicolon.
2006-03-12 Bruno Haible <bruno@clisp.org>
* javaexec.m4 (gt_JAVAEXEC): Make the result of the test
available as variable CONF_JAVA, for subsequent autoconf
tests. Also log error output in config.log.
2006-07-19 Bruno Haible <bruno@clisp.org>
* getline.m4 (AM_FUNC_GETLINE): When cross-compiling, assume
that getline works on glibc2 systems. Needed to avoid trouble
in relocatable.c.
Reported by Nils Magnus Larsgard <nmlarsgaard@atmel.no>.
2005-12-04 Bruno Haible <bruno@clisp.org>
* csharpexec.m4 (gt_CSHARPEXEC): Add support for 'clix'
launcher (untested).
2005-12-04 Bruno Haible <bruno@clisp.org>
* csharpcomp.m4 (gt_CSHARPCOMP): Also set CSHARPCOMPFLAGS.
2006-07-22 Bruno Haible <bruno@clisp.org>
* gettext.m4: Update from GNU gettext-0.15.
* nls.m4: Likewise.
* po.m4: Likewise.
* inttypes-pri.m4: Likewise.
* inttypes-h.m4: Renamed from inttypes.m4.
(gl_HEADER_INTTYPES_H): Renamed from gt_HEADER_INTTYPES_H.
2006-07-22 Bruno Haible <bruno@clisp.org>
Merge from GNU gettext 0.15.
2005-07-05 Bruno Haible <bruno@clisp.org>
* printf-args.c (printf_fetchargs): Work around broken
definition of wint_t on mingw.
2005-02-12 Bruno Haible <bruno@clisp.org>
* xallocsa.h: Add extern "C" for C++.
2006-05-17 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* progreloc.c (WIN32_NATIVE): Renamed from WIN32.
2006-04-30 Bruno Haible <bruno@clisp.org>
* progreloc.c: Include <mach-o/dyld.h> if available.
(find_executable): Use _NSGetExecutablePath when possible.
2006-05-06 Charles Wilson <cygwin@cwilson.fastmail.fm>
* progreloc.c (maybe_executable) [CYGWIN]: Use the access()
function.
2005-12-29 Bruno Haible <bruno@clisp.org>
* progreloc.c (set_program_name_and_installdir): Fix
compilation error.
2005-12-04 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* progreloc.c: Include <windows.h> also on Cygwin.
(find_executable): Add support for Cygwin.
(set_program_name_and_installdir): Handle also platforms with
nonempty EXEEXT.
2006-07-11 Bruno Haible <bruno@clisp.org>
* javacomp.c: Fix a comment.
Reported by Jim Meyering.
2006-04-30 Bruno Haible <bruno@clisp.org>
* javacomp.h (compile_java_class): Add source_version,
target_version arguments.
* javacomp.c: Rewritten to choose only a compiler that
respects the specified source_version and target_version.
2006-06-27 Bruno Haible <bruno@clisp.org>
Assume correct S_ISDIR macro.
* mkdtemp.c: Remove test of STAT_MACROS_BROKEN.
2006-07-22 Bruno Haible <bruno@clisp.org>
* javaversion.h: New file, from GNU gettext.
* javaversion.c: New file, from GNU gettext.
* javaversion.java: New file, from GNU gettext.
* javaversion.class: New file, from GNU gettext.
2006-05-17 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* javaexec.c (execute_java_class): Test for jview program
also on Cygwin.
2006-04-09 Bruno Haible <bruno@clisp.org>
* fatal-signal.c: Don't include string.h.
(at_fatal_signal): Use a copying loop instead of memcpy.
2005-12-04 Bruno Haible <bruno@clisp.org>
* csharpexec.c: Add support for 'clix' launcher (untested).
(execute_csharp_using_sscli): New function.
(execute_csharp_program): Call it.
2006-06-21 Bruno Haible <bruno@clisp.org>
Avoid warnings from recent versions of mcs.
* csharpcomp.c (compile_csharp_using_mono): Don't use options
-o, -L, -r any more. Use options documented since mcs-1.0
instead. Similarly for -g.
2005-07-09 Bruno Haible <bruno@clisp.org>
* csharpcomp.c (compile_csharp_using_sscli): For -l option,
add a .dll suffix.
Reported by Mark Junker <mjscod@gmx.de>.
2006-06-17 Bruno Haible <bruno@clisp.org>
* config.charset: Update for NetBSD 3.0.
2006-05-17 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* localcharset.c (WIN32_NATIVE): Renamed from WIN32.
2006-05-16 Bruno Haible <bruno@clisp.org>
* localcharset.c [CYGWIN]: Include <windows.h>.
(get_charset_aliases): For Cygwin, return the same CPxxx
aliases list as under WIN32.
(locale_charset) [CYGWIN]: Try to retrieve the encoding from
the environment variables. Fall back to GetACP().
2006-04-05 Bruno Haible <bruno@clisp.org>
* config.charset: Update Juan Manuel Guerrero's address.
2005-02-12 Bruno Haible <bruno@clisp.org>
* allocsa.h: Add extern "C" for C++.
2005-02-10 Bruno Haible <bruno@clisp.org>
* allocsa.h (sa_alignof): Define differently with AIX xlc, to
avoid a bug of this compiler on AIX 3.2.5 dealing with enums.
2006-07-22 Bruno Haible <bruno@clisp.org>
* gettext.h: Update to GNU gettext-0.15.
2006-07-22 Bruno Haible <bruno@clisp.org>
* config/srclist.txt: Resync printf-args.c, vasnprintf.c,
localcharset.c, mkdtemp.c, config.rpath, lib-ld.m4, lib-link.m4,
lib-prefix.m4, longdouble.m4, ssize_t.m4.
2006-07-21 Eric Blake <ebb9@byu.net>
* modules/stdlib-safer: New file.
* MODULES.html.sh (File stream based Input/Output): Add
stdlib-safer.
2006-07-21 Eric Blake <ebb9@byu.net>
* lib/stdlib-safer.h: New file from coreutils, required by
stdlib--.h.
2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_usage): Document --assume-autoconf='latest-stable'.
2006-07-20 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Recognize new option --assume-autoconf.
(autoconf_minversion): New variable.
(func_get_filelist): Use it to decide whether to add onceonly_2_57.m4.
2006-07-20 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_all_modules): Add a missing func_begin_table.
2006-07-19 Derek R. Price <derek@ximbiot.com>
* lib/getaddrinfo.h: Don't define unimplemented AI_* flags.
Reindent and repaginate.
2006-07-19 Derek Price <derek@ximbiot.com>
* doc/gnulib.texi (Libtool and Windows): Eliminate passive voice.
Correct grammar.
2006-07-17 Bruno Haible <bruno@clisp.org>
* modules/list: New file.
* modules/array-list: New file.
* modules/carray-list, modules/carray-list-tests: New files.
* modules/linked-list, modules/linked-list-tests: New files.
* modules/avltree-list, modules/avltree-list-tests: New files.
* modules/rbtree-list, modules/rbtree-list-tests: New files.
* modules/linkedhash-list, modules/linkedhash-list-tests: New files.
* modules/avltreehash-list, modules/avltreehash-list-tests: New files.
* modules/rbtreehash-list, modules/rbtreehash-list-tests: New files.
* modules/oset: New file.
* modules/array-oset: New file.
* modules/avltree-oset, modules/avltree-oset-tests: New files.
* modules/rbtree-oset, modules/rbtree-oset-tests: New files.
* tests/test-carray_list.c: New file.
* tests/test-linked_list.c: New file.
* tests/test-avltree_list.c: New file.
* tests/test-rbtree_list.c: New file.
* tests/test-linkedhash_list.c: New file.
* tests/test-avltreehash_list.c: New file.
* tests/test-rbtreehash_list.c: New file.
* tests/test-avltree_oset.c: New file.
* tests/test-rbtree_oset.c: New file.
* MODULES.html.sh (Container data structures): New section.
2006-07-17 Bruno Haible <bruno@clisp.org>
* m4/gl_list.m4: New file.
2006-07-17 Bruno Haible <bruno@clisp.org>
* lib/gl_list.h: New file.
* lib/gl_list.c: New file.
* lib/gl_array_list.h: New file.
* lib/gl_array_list.c: New file.
* lib/gl_carray_list.h: New file.
* lib/gl_carray_list.c: New file.
* lib/gl_linked_list.h: New file.
* lib/gl_linked_list.c: New file.
* lib/gl_anylinked_list1.h: New file.
* lib/gl_anylinked_list2.h: New file.
* lib/gl_avltree_list.h: New file.
* lib/gl_avltree_list.c: New file.
* lib/gl_anyavltree_list1.h: New file.
* lib/gl_anyavltree_list2.h: New file.
* lib/gl_rbtree_list.h: New file.
* lib/gl_rbtree_list.c: New file.
* lib/gl_anyrbtree_list1.h: New file.
* lib/gl_anyrbtree_list2.h: New file.
* lib/gl_anytree_list1.h: New file.
* lib/gl_anytree_list2.h: New file.
* lib/gl_linkedhash_list.h: New file.
* lib/gl_linkedhash_list.c: New file.
* lib/gl_anyhash_list1.h: New file.
* lib/gl_anyhash_list2.h: New file.
* lib/gl_avltreehash_list.h: New file.
* lib/gl_avltreehash_list.c: New file.
* lib/gl_rbtreehash_list.h: New file.
* lib/gl_rbtreehash_list.c: New file.
* lib/gl_anytreehash_list1.h: New file.
* lib/gl_anytreehash_list2.h: New file.
* lib/gl_oset.h: New file.
* lib/gl_oset.c: New file.
* lib/gl_array_oset.h: New file.
* lib/gl_array_oset.c: New file.
* lib/gl_avltree_oset.h: New file.
* lib/gl_avltree_oset.c: New file.
* lib/gl_rbtree_oset.h: New file.
* lib/gl_rbtree_oset.c: New file.
* lib/gl_anytree_oset.h: New file.
2006-07-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/mkancesdirs.m4: New file.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Mention dirchownmod.c,
dirchownmod.h. Don't require AC_FUNC_ALLOCA, gl_AFS, gl_CHDIR_SAFER;
no longer needed. Require gl_FUNC_LCHOWN, since dirchownmod.c needs
it.
2006-07-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/dirchownmod.c, lib/dirchownmod.h, lib/mkancesdirs.c:
* lib/mkancesdirs.h: New files.
* lib/mkdir-p.c: Don't include alloca.h, stdio.h, sys/types.h,
unistd.h, string.h, chdir-safer.h, dirname.h, lchmod.h, lchown.h,
save-cwd.h. Instead, include dirchownmod.h and mkancesdirs.h.
(make_dir_parents): New args MAKE_ANCESTOR, OPTIONS, ANNOUNCE,
MODE_BITS. Remove options VERBOSE_FMT_STRING, CWD_ERRNO. All
callers changed. Revamp internals significantly, by not
attempting to create directories that are temporarily more
permissive than the final results. Do not attempt to use
save_cwd/restore_cwd; it isn't worth it for mkdir and install.
This removes some race conditions, fixes some bugs, and simplifies
things. Use new dirchownmod function to do owner and mode changes.
* lib/mkdir-p.h: Likewise.
* lib/modechange.c (octal_to_mode): New function.
(struct mode_change): New member mentioned.
(make_node_op_equals): New arg mentioned. All callers changed.
(mode_compile): Keep track of which mode bits the user has explicitly
mentioned.
(mode_adjust): New arg DIR, so that we implement the X op correctly.
New arg PMODE_BITS, to keep track of which mode bits the user
mentioned; it treats S_ISUID and S_ISGID speciall.
All callers changed.
* lib/modechange.h: Likewise.
2006-07-16 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: Add mkancestors.
* modules/mkancesdirs: New module.
* modules/mkdir-p (Files): Remove lib/chdir-safer.c, lib/chdir-safer.h,
lib/same-inode.h, m4/afs.m4, m4/chdir-safer.m4.
The chdir-safer and afs files are now orphans; I'll remove them
unless someone speaks up.
Add lib/dirchownmod.c, lib/dirchownmod.h.
(Depends-on): Remove alloca, chown, save-cwd, dirname.
Add lchown, mkancesdirs.
(Maintainer): Add self.
2006-07-15 Karl Berry <karl@gnu.org>
* gnulib-tool: help message wording/arrangement.
2006-07-14 Simon Josefsson <jas@extundo.com>
* doc/gnulib.texi (Libtool and Windows): New section.
2006-07-12 Simon Josefsson <jas@extundo.com>
* modules/gendocs (License): Fix license, approved by Karl.
2006-07-12 Eric Blake <ebb9@byu.net>
* MODULES.html.sh: Add gendocs.
2006-07-11 Eric Blake <ebb9@byu.net>
* modules/fdl: New module, to install doc/fdl.texi.
* MODULES.html.sh: Add new section for documentation modules.
* gnulib-tool: Avoid space-tab.
(--doc-base): New option, to manage files from doc.
2006-07-11 Eric Blake <ebb9@byu.net>
* m4/absolute-header.m4: Fix comments to match recent change.
2006-07-11 Eric Blake <ebb9@byu.net>
* gnulib-tool: List --doc-base before --tests-base.
2006-07-11 Derek R. Price <derek@ximbiot.com>
* lib/glob.c: s/NAMLEN/_D_EXACT_NAMLEN/.
2006-07-11 Bruno Haible <bruno@clisp.org>
* README: Mention where to put documentation.
2006-07-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/functions.texi, gnulib-tool.texi, gnulib.texi: Fix some typos.
2006-07-10 Paul Eggert <eggert@cs.ucla.edu>
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Like today's change
to stdint.m4.
2006-07-10 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdint.m4 (gl_STDINT_H): Like yesterday's change to
absolute-header.m4. Also, set ABSOLUTE_STDINT_H to a string
"no/such/file/stdint.h" when there is no such file, so that
the resulting C code can be parsed by dodgy compilers.
Problems reported by Bob Proulx.
2006-07-10 Derek R. Price <derek@ximbiot.com>
* lib/backupfile.c, dirfd.h, fts.c, getcwd.c, glob.c, glob_.h:
Ignore the obsolescent !HAVE_DIRENT_H case. Consolidate NAMLEN
macros into the GNU _D_EXACT_NAMLEN.
* lib/savedir.c: Likewise.
(savedirstream): Use _D_EXACT_NAMLEN in preference to strlen.
2006-07-10 Derek R. Price <derek@ximbiot.com>
and Paul Eggert <eggert@cs.ucla.edu>
* m4/backupfile.m4, d-ino.m4, d-type.m4, dirfd.m4, fts.m4, getcwd.m4:
* m4/savedir.m4:
Ignore the obsolescent !HAVE_DIRENT_H case. Consolidate NAMLEN
macros into the GNU _D_EXACT_NAMLEN.
2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Use "" rather than <>
around the absolute name, to work around a problem with the HP-UX
11.23 native C compiler, reported by Bob Proulx.
2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
* doc/maintain.texi, make-stds.texi: Sync from
<http://savannah.gnu.org/projects/gnustandards>.
2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
* build-aux/depcomp, build-aux/install-sh: Sync from Automake.
2006-07-09 Jim Meyering <jim@meyering.net>
* m4/glob.m4: Remove a doubled word in a comment.
2006-07-09 Jim Meyering <jim@meyering.net>
* lib/argp-pv.c: Remove a doubled word in a comment.
* lib/check-version.c (check_version): Likewise.
* lib/javacomp.c (compile_java_class): Likewise.
2006-07-08 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_get_filelist): Don't echo m4/onceonly_2_57.m4,
for the benefit of people using Autoconf 2.60. If you want to
support older Autoconf versions you can copy m4/onceonly_2_57.m4
(or m4/onceonly.m4, if pre-2.57) manually.
2006-07-08 Jim Meyering <jim@meyering.net>
* m4/link-follow.m4: Remove one of two adjacent "whether"s in a
comment.
* m4/getopt.m4: Remove one of two adjacent "your"s in a comment.
* m4/regex.m4 (gl_REGEX): Remove one of two adjacent "the"s in a
comment.
2006-07-08 Jim Meyering <jim@meyering.net>
* lib/getndelim2.h (getndelim2): Remove doubled "after" in comment.
2006-07-07 Simon Josefsson <jas@extundo.com>
* tests/test-crc.c: Change expected crc value, the test vector
were probably computed using the old broken crc.c?
2006-07-06 Simon Josefsson <jas@extundo.com>
* modules/sys_socket (Files): Add m4/sockpfaf.m4 (this module is
now the canonical place for the M4 file).
* modules/getaddrinfo (Files): Remove m4/sockpfaf.m4, we get it
from the sys_socket dependency now.
* modules/inet_pton (Files): Ditto.
* modules/inet_ntop (Files): Ditto.
2006-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* modules/getusershell (configure.ac): Use gl_FUNC_GETUSERSHELL,
not gl_PREREQ_GETUSERSHELL.
2006-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/_inttypes_h.m4 (gl_INTTYPES_H): Use AC_CHECK_DECLS_ONCE
with only one argument, for Autoconf 2.60.
* m4/fileblocks.m4 (gl_PREREQ_FILEBLOCKS): AC_CHECK_DECLS_ONCE may
expand to nothing, so add a shell command to avoid syntax error.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise.
2006-07-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/strtod.c (strtod): cast the argument of tolower to unsigned char.
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Don't check for getenv decl;
no longer needed. Check for isblank decl.
* m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Don't check for getenv decl.
* m4/regex.m4 (gl_PREREQ_REGEX): Dheck for isblank decl instead
of existence.
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/getloadavg.c: Use __VMS, not VMS.
* lib/getopt.c: Likewise.
* lib/getpagesize.h: Likewise.
* lib/glob.c: Remove most VMS cruft; it hasn't been tested for a while
and probably does not work.
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/.cppi-disable: Add wcwidth.
* lib/fnmatch.c (ISBLANK): Remove. All uses changed to isblank.
(isblank) [! (defined isblank || HAVE_DECL_ISBLANK)]: New macro.
(ISGRAPH): Remove. All uses changed to isgraph.
(FOLD) [!defined _LIBC]: Remove special case.
* lib/getdate.y (lookup_word): Remove no-longer-needed call to islower.
* lib/regex_internal.h (isblank): Depend on HAVE_DECL_ISBLANK, not
HAVE_ISBLANK.
* lib/strftime.c (TOLOWER, TOUPPER) [!defined _LIBC]: Remove special
case.
2006-07-06 Jim Hyslop <jhyslop@dreampossible.ca> (tiny change)
* lib/getaddrinfo.c: Changes to compile under MSVC6: changed
'#if WIN32_NATIVE' to '#ifdef' & moved WSAAPI macro inside
brackets. Other minor changes to suppress some compiler
warnings.
2006-07-06 Derek R. Price <derek@ximbiot.com>
and Paul Eggert <eggert@cs.ucla.edu>
* m4/backupfile.m4 (gl_BACKUPFILE): Check for dirent.h, instead
of invoking obsolescent AC_HEADER_DIRENT macro.
* m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
* m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Likewise.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Likewise.
* m4/getcwd.m4 (gl_PREREQ_GETCWD): Likewise.
* m4/glob.m4 (gl_PREREQ_GLOB): Likewise.
* m4/savedir.m4 (gl_SAVEDIR): Likewise.
* m4/readdir.m4: Remove; no longer needed.
2006-07-06 Derek R. Price <derek@ximbiot.com>
and Paul Eggert <eggert@cs.ucla.edu>
* lib/backupfile.c [HAVE_DIRENT_H && ! HAVE_NDIR_H]:
Don't worry about this obsolete case any more.
(HAVE_DIR): Remove. All uses removed; we now assume you can read
directories.
* lib/dirfd.h [HAVE_DIRENT_H && ! HAVE_NDIR_H]: Don't
worry about this obsolete case any more.
* lib/fts.c: Likewise.
* lib/getcwd.c: Likewise.
* lib/glob.h: Likewise.
* lib/savedir.c: Likewise.
2006-07-05 Paul Eggert <eggert@cs.ucla.edu>
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Use AC_CHECK_DECLS_ONCE
rather than AC_CHECK_DECLS for strtoimax and strtoumax.
* m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Remove; no longer
needed.
All uses removed.
* m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise.
* m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise.
* m4/exclude.m4 (gl_EXCLUDE): Don't check for isascii; no longer
needed.
* m4/getdate.m4 (gl_GETDATE): Likewise.
* m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise.
* m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise.
* m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise.
* m4/exclude.m4 (gl_EXCLUDE): Don't require AC_C_INLINE; no longer
needed.
2006-07-05 Paul Eggert <eggert@cs.ucla.edu>
* lib/memcasecmp.c: Include <limits.h>.
(memcasecmp): Don't assume UCHAR_MAX <= INT_MAX.
* lib/strtod.c (strtod): Don't assume isspace works on negative chars.
Don't assume isdigit succeeds only on '0' through '9'.
2006-07-05 Eric Blake <ebb9@byu.net>
* modules/getaddrinfo (Depends-on): Add snprintf.
2006-07-05 Eric Blake <ebb9@byu.net>
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Use gl_HEADER_SYS_SOCKET
to avoid 'header present but could not be compiled' on cygwin.
2006-07-05 Eric Blake <ebb9@byu.net>
* lib/getaddrinfo.h (NI_NUMERICHOST, NI_NUMERICSERV): Define if
missing from netdb.h.
* lib/getaddrinfo.c (includes): Include inet_ntop and snprintf.
2006-07-05 Derek R. Price <derek@ximbiot.com>
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don't require AC_HEADER_STDC;
no longer needed.
* m4/exclude.m4 (gl_EXCLUDE): Likewise.
* m4/getdate.m4 (gl_GETDATE): Likewise.
* m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise.
* m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise.
2006-07-05 Derek R. Price <derek@ximbiot.com>
* lib/exclude.c (IN_CTYPE_DOMAIN, is_space): Remove; no longer needed.
All uses of is_space replaced by isspace.
* lib/exit.h: Don't talk about STDC_HEADERS.
* lib/fnmatch.c (ISASCII): Remove; no longer needed. All uses removed.
(ISPRINT, ISDIGIT, ISALNUM, ISALPHA, ISCNTRL, ISLOWER, ISPUNCT):
(ISSPACE, ISUPPER, ISXDIGIT): Remove; no longer needed. All uses
replaced by isprint etc.
* lib/getdate.y (IN_CTYPE_DOMAIN, ISSPACE, ISALPHA, ISLOWER): Likewise.
* lib/getusershell.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise.
* lib/memcasecmp.c (IN_CTYPE_DOMAIN, ISLOWER, TOUPPER): Likewise.
* lib/strtod.c (IN_CTYPE_DOMAIN, ISSPACE, ISDIGIT, TOLOWER): Likewise.
* lib/strtol.c (IN_CTYPE_DOMAIN): Likewise.
* lib/xstrtol.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise.
2006-07-05 Bruno Haible <bruno@clisp.org>
* m4/strndup.m4 (gl_FUNC_STRNDUP): When cross-compiling, check whether
the function exists, before testing against AIX.
Reported by Martin Lambers <marlam@marlam.de>.
2006-07-04 Paul Eggert <eggert@cs.ucla.edu>
* modules/cycle-check (lib_SOURCES): Add same-inode.h.
From Mark D. Baushke.
2006-07-04 Paul Eggert <eggert@cs.ucla.edu>
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Prepend three slashes
to the absolute name, not just one, to bypass Sun C 5.8's
"warning: #include of /usr/include/... may be non-portable".
2006-07-04 Eric Blake <ebb9@byu.net>
* modules/dirname-tests: New test module.
* tests/test-dirname.c: New file, replacing dirname.c
TEST_DIRNAME section that was recently deleted.
2006-07-04 Bruno Haible <bruno@clisp.org>
Assume ANSI C header files and <ctype.h> functions.
* lib/mbswidth.c (IN_CTYPE_DOMAIN, ISPRINT, ISCNTRL): Remove macros.
(mbsnwidth): Use isprint, iscntrl instead.
2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* MODULES.html.sh: Add xstrtold.
* modules/xstrtold: New file.
* modules/cycle-check (Files): Add lib/same-inode.h.
* modules/dirname (Files): Add m4/double-slash-root.m4.
* modules/getcwd (Files): Add m4/getcwd-abort-bug.m4.
* modules/mkdir-p (Files): Add lib/same-inode.h.
* modules/same (Files): Add lib/same-inode.h.
2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
* m4/absolute-header.m4: Renamed from full-header-path.m4.
This is to keep the terminology clean; POSIX talks about
"absolute pathnames", not "full pathnames", but the GNU
Coding Standards say to use "path" for something else;
so use "absolute" to keep both sides happy.
(gl_ABSOLUTE_HEADER): Renamed from gl_FULL_HEADER_PATH.
Set gl_absolute_header, not gl_full_header_path.
Set gl_cv_absolute_<header>, not gl_full_path_<header>.
Define ABSOLUTE_<HEADER>, not FULL_PATH_<HEADER>.
All uses changed.
Merge from coreutils.
2006-06-30 Paul Eggert <eggert@cs.ucla.edu>
* m4/c-strtod.m4 (gl_C_STRTOLD): Add c-strtod.c to LIBSOURCES.
Require gl_USE_SYSTEM_EXTENSIONS, not gl_C_STRTOD, since we don't
want to require the building of c-strtod.o.
* m4/lib-check.m4 (cu_LIB_CHECK): Remove SEQ_LIBM, since seq no longer
needs -lm directly.
* m4/xstrtod.m4 (gl_XSTRTOLD): New macro.
2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
* m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Prefer binutils's
--as-needed option if available. Problem reported by Albert Chin in
<http://lists.gnu.org/r/bug-gnulib/2006-06/msg00114.html>.
However, use -Wl,--as-needed, not bare --as-needed, since HP-UX 11.11
cc merely issues a bunch of annoying warnings for --as-needed
(this problem was reported by Bob Proulx). Also, try linking with
-lm to detect a bug in binutils 2.16 (this problem was reported
by Ralf Wildenhues).
2006-06-18 Jim Meyering <jim@meyering.net>
Test for a bug that causes glibc's getcwd to suffer a failed assertion.
* m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): New file and
macro.
* m4/getcwd.m4 (gl_FUNC_GETCWD): If we detect support for getcwd_null,
also check for glibc-2.4's abort-inducing bug.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Fix typo.
Low-probability clean-up should be to use rmdir to get rid of
the just-created directory, not unlink.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): If ftruncate is missing, make
configure fail, and request a bug report to inform us about it.
Add a comment that, barring reports to the contrary, in 2007 we'll
assume ftruncate is universally available.
2006-04-17 Paul Eggert <eggert@cs.ucla.edu>
* m4/filemode.m4 (gl_FILEMODE): Check for strmode declaration.
2006-03-12 Jim Meyering <jim@meyering.net>
* m4/chdir-safer.m4 (gl_CHDIR_SAFER): Add same-inode.h to the list.
* m4/cycle-check.m4 (gl_CYCLE_CHECK): Likewise.
* m4/same.m4 (gl_SAME): Likewise.
* m4/root-dev-ino.m4 (gl_ROOT_DEV_INO): Likewise.
2006-03-11 Eric Blake <ebb9@byu.net>
* m4/double-slash-root.m4: New file, provides gl_DOUBLE_SLASH_ROOT.
* m4/dirname.m4 (gl_DIRNAME): Use gl_DOUBLE_SLASH_ROOT.
* m4/dos.m4 (FILE_SYSTEM_PREFIX_LEN): Move from here to dirname.h.
(FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): New define.
2006-07-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h: Include <sys/types.h> after @FULL_PATH_STDINT_H@, for
MacOS X 10.4.6. Don't mention <sys/int_types.h>. Problems
reported by Mark D. Baushke, one in
<http://lists.gnu.org/r/bug-gnulib/2006-07/msg00015.html>.
Merge from coreutils.
* lib/.cppi-disable: Add stdint_.h.
* lib/.cvsignore: Add stdint.h.
2006-06-30 Paul Eggert <eggert@cs.ucla.edu>
* lib/xstrtod.c (XSTRTOD, DOUBLE): New macros, so that we can support
both double and long double versions.
(XSTRTOD): Renamed from xstrtod. Use DOUBLE internally.
* lib/xstrtold.c: New file.
* lib/xstrtod.h (xstrtold): New decl.
2006-05-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/filemode.c (setst): Remove.
(strmode): Rewrite to avoid setst. This makes the code shorter,
(arguably) clearer, and the generated code is a bit smaller on my
Debian GNU/Linux stable x86 host.
2006-04-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/filemode.c: Include "filemode.h" first, to test the interface.
Assume that filemode.h includes sys/types.h and sys/stat.h.
(HAVE_ST_DM_MODE): New macro, moved here from ls.c.
(ftypelet): Reorder to put common cases first, for efficiency.
Add 'P', 'w'. Remove 'M', since it's now the caller's responsibility
to do 'M'.
(strmode): Renamed from mode_string, and now stores 12 bytes instead
of 10, for compatibility with FreeBSD. All callers changed.
(filemodestring): Now stores 12 bytes instead of 10, and sets file
types that can't be deduced solely from st_mode. First arg is now a
const pointer.
* lib/filemode.h (HAVE_DECL_STRMODE): Include <string.h> for strmode.
(strmode): Renamed from mode_string.
(filemodestring): New decl.
* lib/stat-macros.h: Don't undef S_ISDOOR, since it's never buggy.
(S_ISDOOR): Don't bother with S_IFDOOR, since that code is never
needed.
(S_ISPORT, S_ISWHT): New macros, if not already defined.
2006-04-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/fsusage.c: Don't include <inttypes.h> or <stdint.h>, since
fsusage.h now does that. Include fsusage.h first, to test interface.
Prefer statvfs if it works, since it's blessed by POSIX. Attempt
at most one method (the old code could have generated decls that
didn't conform to C89, not that this was ever exercised).
* lib/fsusage.h: Include <inttypes.h> and <stdint.h> if they exist.
2006-03-19 Jim Meyering <jim@meyering.net>
Work even in a chroot where d_ino values for entries in "/"
don't match the stat.st_ino values for the same names.
* lib/getcwd.c (__getcwd): When no d_ino value matches the target inode
number, iterate through all entries again, using lstat instead.
Reported by Kenshi Muto in http://bugs.debian.org/355810, and by
Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656.
* lib/getcwd.c (__getcwd): Clarify a comment.
Use memcpy in place of a call to strcpy.
2006-03-12 Jim Meyering <jim@meyering.net>
* lib/fts-cycle.c (leave_dir): If cycle-check's saved dev-ino pair
matches that of the current directory (which we're about to chdir ".."
out of), then save the dev-ino of the parent, instead.
* lib/same-inode.h (SAME_INODE): New file/macro.
* lib/chdir-safer.c (SAME_INODE): Remove definition.
Include "same-inode.h", instead.
* lib/same.c: Likewise.
* lib/cycle-check.h: Include "same-inode.h".
(CYCLE_CHECK_REFLECT_CHDIR_UP): Define.
* lib/cycle-check.c (SAME_INODE): Remove definition.
* lib/root-dev-ino.h: Include "same-inode.h".
2006-03-11 Eric Blake <ebb9@byu.net>
* lib/same.c (same_name): s/base_name/last_component/
* lib/backupfile.c (check_extension, numbered_backup): Likewise.
* lib/filenamecat.c (file_name_concat): Likewise.
2006-03-11 Eric Blake <ebb9@byu.net>,
Paul Eggert <eggert@cs.ucla.edu>
* lib/dirname.h (FILE_SYSTEM_PREFIX_LEN): Move here from dos.m4.
[FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't treat 1: as a
drive prefix.
(IS_ABSOLUTE_FILE_NAME): Treat all drive letters as absolute on
platforms like cygwin with FILE_SYSTEM_DRIVE_PREFIX_IS_ABSOLUTE.
(last_component): New method.
* lib/dirname.c (dir_len): Determine when drive letters need a
subsequent slash. Preserve // when it is special.
(dir_name): Don't append dot when drive letter is absolute.
[TEST_DIRNAME]: Move into a full-blown gnulib test.
* lib/basename.c (base_name): New semantics - malloc the result.
Preserve // when it is special. Preserve relative files that look
like drive letters.
(base_len): Preserve // when it is special.
(last_component): New method, similar to old base_name semantics.
* lib/stripslash.c (strip_trailing_slashes): Use last_component, not
base_name. Strip redundant slashes from ///.
2006-07-03 Jim Meyering <jim@meyering.net>
* lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Abort if this
macro is used before the first cycle_check call.
2006-07-03 Eric Blake <ebb9@byu.net>
* modules/dirname (Depends-on): Add xstrndup.
2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdint.m4 (gl_STDINT_H): Use more-mnemonic identifiers for
test cases, so that config.log is a bit easier to follow.
2006-07-02 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h (intmax_t, uintmax_t): Prefer long to long long if
both are 64 bits, since this seems to be the tradition, and this
prevents gcc -Wformat from warning about usages with PRIuMAX. If
we ever run into a host that prefers long long to long in this
case, we'll need another configure-time test. Problem reported by
Jim Meyering.
2006-07-02 Eric Blake <ebb9@byu.net>
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Simplify by using AC_CHECK_DECLS.
2006-07-01 Paul Eggert <eggert@cs.ucla.edu>
* modules/inttypes (Depends-on): No longer depends on stdint.
* modules/stdint (Description): Say more about assumptions.
Say that the fast types might differ. Say macros are used.
(Files): Remove m4/size_max.m4, m4/wchar_t.m4. Add m4/longlong.m4.
(Makefile.am): Revise list of substituted symbols to match
new stdint.m4.
* modules/stdint-tests (Files): Add m4/wchar_t.m4, m4/wint_t.m4.
(configure.ac): Add gt_TYPE_WCHAR_T, gt_TYPE_WINT_T.
* tests/test-stdint.c (verify_same_types)
[! (__GNUC__ >= 2 && DO_PEDANTIC)]: Put in a decl, so that
the code conforms to C99/C89.
Test for WCHAR_MIN and WCHAR_MAX only if HAVE_WCHAR_T.
Test for WINT_MIN and WINT_MAX only if HAVE_WINT_T.
2006-07-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Backport from Autoconf 2.60,
but fix a bug, by requiring at least 64 bits.
* m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise.
* m4/longlong.m4 (gl_AC_TYPE_LONG_LONG): Now just call
AC_TYPE_LONG_LONG_INT. This macro is obsolete and will go soon.
* m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG): Likewise.
* m4/stdint.m4 (gl_STDINT_H): Rewrite to accommodate stdint_.h
changes. Make 2.59 a prerequisite. Check and substitute for
HAVE_LONG_LONG_INT. Rely on Autoconf to check for stdint.h and
inttypes.h. Do not use special include files; just use the
defaults. Check for sys/inttypes.h and sys/bitypes.h in the usual
way now. Remove no-longer-needed tests for HAVE_LONG_64BIT,
HAVE_LONG_LONG_64BIT, int8_t, int16_t, int32_t, int64_t, uint8_t,
uint16_t, uint32_t uint64_t, int_least8_t, int_least16_t,
int_least32_t, int_least64_t, uint_least8_t, uint_least16_t,
uint_least32_t, uint_least64_t, int_fast8_t, int_fast16_t,
int_fast32_t, int_fast64_t, uint_fast8_t uint_fast16_t,
uint_fast32_t, uint_fast64_t, intptr_t, uintptr_t, intmax_t,
uintmax_t, INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX,
UINT16_MAX, INT32_MIN, INT32_MAX, UINT32_MAX, INT64_MIN,
INT64_MAX, UINT64_MAX, INT_LEAST8_MIN, INT_LEAST8_MAX,
UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX,
UINT_LEAST16_MAX, INT_LEAST32_MIN, INT_LEAST32_MAX,
UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX,
UINT_LEAST64_MAX, INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX,
INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX, INT_FAST32_MIN,
INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX,
UINT_FAST64_MAX, INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX, INTMAX_MIN,
INTMAX_MAX, UINTMAX_MAX, PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN,
SIG_ATOMIC_MAX, SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN,
WINT_MAX. Check for C99 conformance more strictly, by detecting
bugs in glibc 2.4, Solaris 10, and OpenBSD 3.9. On the other hand do
not check for things that C99 does not require, e.g., int8_t. If
a test isn't needed unless <stdint.h> isn't working, and is
unlikely to be needed for any other reason, then don't do it
unless <stdint.h> isn't working. Do not check for ptrdiff_t or
size_t, since we assume C89 freestanding at least. Do not check
for sig_atomic_t, wchar_t, or wint_t, since the code now does
the right thing even if the types are not defined. Instead use:
(gl_STDINT_TYPE_PROPERTIES): New macro.
(gl_HEADER_STDINT_H, gl_HEADER_INTTYPES_H): Remove. Don't bother
testing whether <sys/types.h> clashes, as Autoconf does this for
us now. All uses removed.
(gl_STDINT_CHECK_TYPES, gl_STDINT_MISSING_BOUND):
(gl_STDINT_MISSING_BOUNDS, gl_STDINT_MISSING_BOUNDS2):
(gl_CHECK_TYPE_SAME):
Remove; no longer needed.
(gl_STDINT_BITSIZEOF): Don't bother to check whether the type
exists, since we'll return 0 anyway in that case.
(gl_INTEGER_TYPE_SUFFIX, gl_STDINT_INCLUDES): New macros.
2006-07-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h (_GL_STDINT_H): Renamed from _STDINT_H, to avoid
possible collision with system files.
(<stdio.h>, <time.h>, <wchar.h>) [defined __cplusplus && ! defined
__STDC_CONSTANT_MACROS)]: Do not include, since we don't need
WCHAR_MIN and WCHAR_MAX in this case.
(<stddef.h>): Do not include; no longer needed.
(<sys/types.h>): Include if @HAVE_SYS_TYPES_H@, not if
(defined(__OpenBSD__) || defined(__bsdi__) || defined(__sgi)).
(<sys/inttypes.h>): Include if @HAVE_SYS_INTTYPES_H@ &&
!@HAVE_INTTYPES_H@, not if (defined(__FreeBSD__)
&& (__FreeBSD__ >= 3) && (__FreeBSD__ <= 4)).
(__STDINT_H__) [@HAVE_STDINT_H@ && defined __sgi && ! defined
__c99]: Define, to work around IRIX <stdint.h> incompatibility.
(@FULL_PATH_STDINT_H@) [!(defined(__sgi) && @HAVE_INTTYPES_H@ &&
!defined(__c99))]: Include in this case too, since it's harmless
now.
(<inttypes.h>) [@HAVE_INTTYPES_H@]: Include, since it's no longer
dangerous to do so.
(@FULL_PATH_INTTYPES_H@) [(defined(__hpux) || defined(_AIX)) &&
@HAVE_INTTYPES_H@]: Do not include, since we now include <inttypes.h>.
(_STDINT_MIN, _STDINT_MAX): New macros.
(int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t):
(uint64_t, int_least8_t, uint_least8_t, int_least16_t):
(uint_least16_t, int_least32_t, uint_least32_t, int_least64_t):
(uint_least64_t, int_fast8_t, uint_fast8_t, int_fast16_t):
(uint_fast16_t, int_fast32_t, uint_fast32_t, int_fast64_t):
(uint_fast64_t, intptr_t, uintptr_t, intmax_t, uintmax_t): Now
macros, not typedefs; this simplifies things quite a bit.
Use long int for all types narrower than int64_t.
(intmax_t, uintmax_t, INTMAX_C, UINTMAX_C):
Define in terms of long long int or int64_t or long int,
not int64_t or int32_t. This saves some compile-time testing.
(INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX):
(INT32_MIN, INT32_MAX, UINT32_MAX, INT64_MIN, INT64_MAX):
(UINT64_MAX, INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX):
(INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX):
(INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX):
(INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST8_MIN):
(INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX):
(UINT_FAST16_MAX, INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX):
(INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTPTR_MIN):
(INTPTR_MAX, UINTPTR_MAX, INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX):
(PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX):
(SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX):
undef any previous version and define our own version, for
simplicity and consistency with the new macros for types.
(PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX):
(SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX):
Simplify definitions by using _STDINT_MIN and _STDINT_MAX
where appropriate. Rely on new symbols @PTRDIFF_T_SUFFIX@,
@SIG_ATOMIC_T_SUFFIX@, @SIZE_T_SUFFIX@, @WCHAR_T_SUFFIX@,
@WINT_T_SUFFIX@ to keep things simple here.
(UINT8_C, UINT16_C, UINT32_C, INT64_C, UINT64_C):
Simplify by assuming typical 8/16/32/64 host, since we're
already doing that elsewhere anyway.
Use (LONG_MAX >> 31 >> 31 == 1) rather than @HAVE_LONG_64BIT@,
and assume long long int is 64 bits if available. This
speeds up 'configure'.
2006-07-01 Eric Blake <ebb9@byu.net>
* m4/stdarg.m4 (gl_STDARG_H): Use proper AH_VERBATIM.
Reported by Andreas Buening.
2006-07-01 Eric Blake <ebb9@byu.net>
* m4/stdarg.m4 (gl_STDARG_H): Properly parenthesize gl_va_copy.
2006-06-30 Jim Hyslop <jhyslop@dreampossible.ca> (tiny change)
* lib/getaddrinfo.c: fixed typo
2006-06-29 Jim Meyering <jim@meyering.net>
* modules/strftime (Maintainer): Add my name, since with the
FPRINTFTIME changes strftime.c has forked from glibc.
2006-06-29 Eric Blake <ebb9@byu.net>
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Use AC_C_INLINE.
2006-06-29 Eric Blake <ebb9@byu.net>
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): New file.
2006-06-29 Eric Blake <ebb9@byu.net>
* lib/stat_.h: New file.
2006-06-29 Eric Blake <ebb9@byu.net>
* lib/stat_.h (rpl_mkdir): Declare inline, to avoid warnings about
unused static function.
2006-06-29 Eric Blake <ebb9@byu.net>
* doc/functions.texi (Function Portability): Document missing lstat
on mingw.
2006-06-29 Eric Blake <ebb9@byu.net>
* MODULES.html.sh: Add sys_stat.
* modules/sys_stat: New module.
* modules/mkstemp (Depends-on): Add sys_stat.
2006-06-29 Derek R. Price <derek@ximbiot.com>
* m4/strftime.m4: Don't call AC_FUNC_STRFTIME.
2006-06-29 Derek R. Price <derek@ximbiot.com>
* m4/c-bs-a.m4: Removed.
2006-06-29 Derek R. Price <derek@ximbiot.com>
* lib/strftime.c: Assume strftime() exists.
2006-06-29 Derek Price <derek@ximbiot.com>
* modules/c-bs-a: Removed - \a is C89.
* MODULES.html.sh: Remove c-bs-a.
2006-06-29 Bruno Haible <bruno@clisp.org>
* modules/wcwidth (License): Change to LGPL.
2006-06-28 Simon Josefsson <jas@extundo.com>
* tests/test-getaddrinfo.c: Test getnameinfo too. Call WSAStartup
on _WIN32.
* modules/getaddrinfo (Depends-on): Add inet_ntop, needed by
getnameinfo.
2006-06-28 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: Look for getnameinfo prototypes too.
2006-06-28 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.c: Try to load ws2_32.dll on Windows, to find the
functions there. It will succeed on Windows XP, but on Windows
2000 and (presumably) earlier, it will fail, and use the internal
re-implementation.
(use_win32_p): New function.
(getaddrinfo): Use strtoul on servname, to support numeric ports.
Support AI_NUMERICSERV to disable getservbyname.
(getnameinfo): New function, only supports
NI_NUMERICHOST|NI_NUMERICSERV for now.
* lib/getaddrinfo.h: Test and check for AI_* flags separately, MinGW
only have some of them. Add AI_NUMERICSERV. Add prototype for
getnameinfo.
2006-06-28 Eric Blake <ebb9@byu.net>
* modules/wcwidth: New file.
* modules/mbchar (Depends-on): Add wcwidth.
* modules/mbswidth (Depends-on): Add wcwidth.
* MODULES.html.sh: Add wcwidth.
2006-06-28 Eric Blake <ebb9@byu.net>
* m4/mbswidth.m4 (gl_MBSDWIDTH): Move wcwidth from here...
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): ...to this new file.
2006-06-28 Eric Blake <ebb9@byu.net>
* lib/xvasprintf.h: Fix comments.
2006-06-28 Eric Blake <ebb9@byu.net>
* lib/mbchar.h (wcwidth): Include wcwidth.h.
* lib/mbswidth.c (wcwidth): Move from here...
* lib/wcwidth.h: ...to this new file.
2006-06-28 Derek R. Price <derek@ximbiot.com>
* m4/savedir.m4: Remove AC_FUNC_CLOSEDIR_VOID requirement.
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Don't require AC_C_CONST, since
it's obsolete.
* m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Likewise.
2006-06-28 Derek R. Price <derek@ximbiot.com>
* lib/savedir.c (CLOSEDIR): Remove. All uses changed to closedir.
Autoconf 2.60 says this stuff was obsolete.
2006-06-28 Bruno Haible <bruno@clisp.org>
* modules/wcwidth (Files): Add m4/wchar_t.m4.
2006-06-28 Bruno Haible <bruno@clisp.org>
* m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Also require AC_C_INLINE and
gt_TYPE_WCHAR_T.
2006-06-28 Bruno Haible <bruno@clisp.org>
* lib/wcwidth.h: Declare nothing if !HAVE_WCHAR_T. Provide a fallback
declaration for wcwidth.
* lib/mbswidth.c: Restore the includes of <wchar.h> and <wctype.h>.
2006-06-28 Bruno Haible <bruno@clisp.org>
* lib/mkdtemp.c [MINGW]: Include <io.h>.
(mkdir): Define using _mkdir.
2006-06-28 Bruno Haible <bruno@clisp.org>
* lib/getaddrinfo.h: Fix POSIX URL.
* lib/getaddrinfo.c (WIN32_NATIVE): New macro. Use it instead of
_WIN32.
(use_win32_p): Make static.
(getaddrinfo): Reject service name if it is empty or does not consist
solely of decimal digits, or if its value is > 65535.
(getnameinfo): Remove useless casts.
2006-06-27 Simon Josefsson <jas@extundo.com>
* modules/sys_select: New file, suggested by Bruno Haible, Paul
Eggert and Martin Lambers.
2006-06-27 Simon Josefsson <jas@extundo.com>
* m4/sys_select_h.m4: New file, suggested by Bruno Haible, Paul
Eggert and Martin Lambers.
2006-06-27 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_BITSIZEOF): For nonexistent types, set the
result to 0, not to empty.
Reported by Martin Neitzel <neitzel@sco.gaertner.de>.
2006-06-27 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (intmax_t, uintmax_t): Undefine before typedef.
2006-06-26 Simon Josefsson <jas@extundo.com>
* m4/inet_ntop.m4: Don't check for sys/types.h, we assume it is
present.
2006-06-26 Paul Eggert <eggert@cs.ucla.edu>
* lib/base64.c (B64): Use _ as the formal parameter, not x, to avoid
bug in IBM C V6 for AIX. Problem reported by Larry Jones in
<http://lists.gnu.org/r/bug-gnulib/2006-06/msg00181.html>.
2006-06-26 Mark D. Baushke <mdb@gnu.org>
* m4/stdint.m4 (gl_STDINT_H): Treat BSD/OS like OpenBSD.
2006-06-26 Bruno Haible <bruno@clisp.org>
* modules/stdint (Makefile.am): Also substitute HAVE_WCHAR_H.
2006-06-26 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Test also for <wchar.h>.
2006-06-26 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Don't include <stdint.h> when using the
SGI C compiler in pre-C99 mode.
Suggested by Mark D. Baushke and Larry Jones.
2006-06-26 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Include <wchar.h> if necessary for WCHAR_MIN or
WCHAR_MAX.
Reported by Mark D. Baushke and Larry Jones.
2006-06-26 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Don't include <stdint.h> when using the SGI C compiler
in pre-C99 mode.
Suggested by Mark D. Baushke and Larry Jones.
2006-06-23 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Define MOSTLYCLEANDIRS.
Emit mostlyclean-local rule.
(func_emit_tests_Makefile_am): Likewise.
* modules/sys_socket (Makefile.am): Use MOSTLYCLEANDIRS.
2006-06-23 Mark D. Baushke <mdb@gnu.org>
* lib/stdint_.h: Treat BSD/OS like OpenBSD.
2006-06-23 Bruno Haible <bruno@clisp.org>
* tests/test-stdint.c: Update to match ISO C 99 Technical
Corrigendum 1.
2006-06-23 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Treat IRIX like OpenBSD.
2006-06-23 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Treat IRIX like OpenBSD.
2006-06-23 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (UINT8_C, UINT16_C, UINT32_C): Define according to
ISO C 99 Technical Corrigendum 1.
2006-06-22 Simon Josefsson <jas@extundo.com>
* m4/sockpfaf.m4: Include winsock2.h too, to make it work under
MinGW.
2006-06-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/glob.c (collated_compare): Remove 'const' uses that weren't
needed. Some compiler complained about some of them. Problem reported
by Larry Jones in
<http://lists.gnu.org/r/bug-gnulib/2006-06/msg00172.html>.
2006-06-21 Simon Josefsson <jas@extundo.com>
* tests/test-getaddrinfo.c: New file.
* modules/getaddrinfo-tests: New file.
* MODULES.html.sh: Add inet_pton.
* modules/inet_pton: New file.
2006-06-21 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: Don't define WINVER. Look for gethostbyname in
-lws2_32 too. Fixes getaddrinfo on Windows 2000, with the price
of using the (limited) gnulib implementation on Windows XP.
* m4/inet_pton.m4: New file.
2006-06-21 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.c (getaddrinfo): Set ai_family in the return
variable.
* lib/socket_.h: Don't define WINVER.
* lib/inet_pton.h, inet_pton.c: New file, taken from glibc but
slightly modified to work in gnulib.
2006-06-21 Simon Josefsson <jas@extundo.com>
* doc/gnulib.texi (Windows sockets): Add.
2006-06-21 Paul Eggert <eggert@cs.ucla.edu>
* lib/read-file.c (fread_file): Start with buffer allocation of
0 bytes rather than 1 byte; this simplifies the code.
Don't invoke feof; it's not needed. Refactor to avoid duplicate
code to free buffer and save/restore errno.
(internal_read_file): Remove unused local.
2006-06-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/openat.c (openat): Use ?:, not if, to work around GCC bug 4210
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210>.
Problem reported by Denis Excoffier in
<http://lists.gnu.org/r/bug-tar/2006-06/msg00023.html>.
2006-06-19 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* modules/sys_socket, modules/socklen: Include sys/types since
FreeBSD 4.x's sys/socket.h needs it.
2006-06-19 Simon Josefsson <jas@extundo.com>
* lib/inet_ntop.c: Always build inet_ntop4, since inet_ntop6 calls it.
2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/alloca_.h (alloca) [defined alloca]: Don't define or declare.
2006-06-19 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Enclose the values of FULL_PATH_STDINT_H
and FULL_PATH_INTTYPES_H in angle brackets.
Reported by Mark D. Baushke <mdb@gnu.org>.
2006-06-17 Eric Blake <ebb9@byu.net>
* m4/rmdir-errno.m4 (gl_FUNC_FMDIR_NOTEMPTY): Assume errno.h declares
errno.
2006-06-17 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H) [FreeBSD >= 5]: Don't include
<sys/inttypes.h>.
2006-06-17 Bruno Haible <bruno@clisp.org>
* m4/setenv.m4 (gl_PREREQ_SETENV, gl_PREREQ_UNSETENV): Remove test
whether errno is declared. Assume <errno.h> declares errno.
2006-06-17 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h [FreeBSD >= 5]: Don't include <sys/inttypes.h>.
2006-06-17 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (_UINT8_T, _UINT32_T, _UINT64_T): New macros. Fixes a
problem on Solaris 2.5.1.
2006-06-16 Eric Blake <ebb9@byu.net>
* lib/unsetenv.c [!defined errno]: Assume errno.h declares errno.
* lib/unicodeio.c [!defined errno]: Likewise.
* lib/strtol.c [!defined errno]: Likewise.
* lib/strtod.c [!defined errno]: Likewise.
2006-06-15 Eric Blake <ebb9@byu.net>
* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Work in spite of -Werror.
2006-06-15 Eric Blake <ebb9@byu.net>
* config/srclist.txt (ssize_t.m4): Lose sync.
2006-06-15 Bruno Haible <bruno@clisp.org>
* modules/stdint (Files): Include m4/full-header-path.m4,
m4/size_max.m4, m4/wchar_t.m4.
(Makefile.am): Many more substitutions.
* modules/stdint-tests: New file.
* tests/test-stdint.c: New file.
2006-06-15 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Rewritten to produce a complete stdint.h.
(gl_HEADER_STDINT_H, gl_HEADER_INTTYPES_H, gl_STDINT_CHECK_TYPES,
gl_STDINT_MISSING_BOUND, gl_STDINT_MISSING_BOUNDS,
gl_STDINT_MISSING_BOUNDS2, gl_STDINT_BITSIZEOF, gl_CHECK_TYPES_SIGNED,
gl_CHECK_TYPE_SAME): New macros.
2006-06-15 Bruno Haible <bruno@clisp.org>
* m4/size_max.m4 (gl_SIZE_MAX): Make it work also when cross-compiling.
2006-06-15 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Rewritten to be fully auto-configured.
Fixes bug on HP-UX/IA64.
2006-06-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (__attribute__): Don't define if already defined.
Problem reported by Larry Jones.
* lib/utimens.c (__attribute__): Likewise.
2006-06-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/regexec.c (group_nodes_into_DFAstates): Fix a buffer overrun
reported by Andreas Schwab.
2006-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* m4/strndup.m4 (gl_FUNC_STRNDUP): Replace the AC_REPLACE_FUNCS with a
check for the declaration of strnlen and a run test that exposes the
AIX 5.1 strnlen bug. In the failure case, #define strndup to
rpl_strndup.
2006-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Bruno Haible <bruno@clisp.org>
* lib/strndup.c (strndup) [!_LIBC]: Don't undefine macro definition.
2006-05-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/c-strtod.m4 (gl_C99_STRTOLD): Use a link test rather than a
compile test, for Tru64 4.0D.
2006-05-28 Karl Berry <karl@gnu.org>
* config/srclist.txt (printf-args.c): lose sync.
2006-05-26 Martin Lambers <marlam@marlam.de>
* lib/getpass.c: Updates the test for the native W32 API, and adds
missing includes, thus fixing compilation warnings.
2006-05-25 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/exclude.c (exclude_fnmatch): New function.
(excluded_file_name): Call exclude_fnmatch.
* lib/exclude.h (excluded_file_name): New prototype
2006-05-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/tempname.c (small_open, large_open): New macros.
(__open, __open64) [!_LIBC]: Remove.
(__gen_tempname): Use small_open and large_open instead of __open
and __open64. This fixes a portability bug on HP-UX 11.11i
reported by Simon Wing-Tang in
<http://lists.gnu.org/r/bug-coreutils/2006-05/msg00114.html>.
2006-05-24 Bruno Haible <bruno@clisp.org>
* lib/printf-args.c (printf_fetchargs): Turn NULL pointers for
TYPE_STRING and TYPE_WIDE_STRING into a non-NULL replacement.
Reported by Thorsten Maerz <torte@netztorte.de> via
Aaron Stone <aaron@serendipity.cx>.
2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Rename cache variables to use
gl_ rather than jm_. Link, don't run, so that cross-compiles are
allowed. Check that resulting type is arithmetic. Move AC_REQUIRE
and AC_CHECK_HEADERS_ONCE outside of AC_CACHE_CHECK, since they're
not really conditional on the cache.
(gl_PREREQ_NANOSLEEP): Check for sys/select.h.
2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
Use the usual Autoconf way to include <time.h> and/or sys/time.h.
(my_usleep): Don't mishandle maximum value.
2006-05-19 Jim Meyering <jim@meyering.net>
* lib/getugroups.c: Correct an outdated comment. From Bruno Haible.
2006-05-17 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* lib/classpath.c (PATH_SEPARATOR) [CYGWIN]: Define as ':'.
2006-05-17 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Fix recognition of Cygwin.
2006-05-15 Bruno Haible <bruno@clisp.org>
* build-aux/config.rpath: Improve support for Sun C 5.9 on Linux, based
on libtool patch by Ralf Wildenhues.
2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Fix overly-picky
test for C99 conformance; (bool) 0.5 is an integer constant
expression, but (bool) -0.5 is not. Problem reported by Fedor
Sergeev in <http://forum.sun.com/jive/thread.jspa?threadID=96202>.
2006-05-11 Simon Josefsson <jas@extundo.com>
* m4/xvasprintf.m4: Fix obvious typo.
2006-05-11 Jim Meyering <jim@meyering.net>
* lib/sha1.c (sha1_buffer): Correct comment: s/MD5/SHA1/. From
James Lemley.
2006-05-10 Simon Josefsson <jas@extundo.com>
* lib/md4.c: Typo fix, update copyright years.
(K1, K2): Don't use L because it turn computations into 64-bit on
64-bit platforms.
2006-05-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/crc.c (crc32_update): Remove unnecessary L suffix.
* lib/md4.c (rol): Cast right-shift arg to uint32_t to prevent
unwanted sign propagation, e.g., on hosts with 64-bit int.
There still are some problems with reeelly weird theoretical hosts
(e.g., 33-bit int) but it's not worth worrying about now.
* lib/sha1.c (rol): Likewise.
(K1, K2, K3, K4): Remove unnecessary L suffix.
2006-05-10 Bruno Haible <bruno@clisp.org>
* lib/des.c: Cast to avoid warnings.
2006-05-09 Bruno Haible <bruno@clisp.org>
* modules/xvasprintf (Files): Add m4/xvasprintf.m4.
(Depends-on): Depend also on xsize, stdarg.
(configure.ac): Add gl_XVASPRINTF.
2006-05-09 Bruno Haible <bruno@clisp.org>
* m4/xvasprintf.m4: New file.
2006-05-09 Bruno Haible <bruno@clisp.org>
* lib/xvasprintf.c: Include limits.h, string.h, xsize.h.
(EOVERFLOW): Define fallback value.
(xstrcat): New function.
(xvasprintf): Recognize the special case of a string concatenation.
2006-05-08 Eric Blake <ebb9@byu.net>
* gnulib-tool (func_version): Base copyright year on CVS date.
(func_emit_copyright_notice): New function.
(func_emit_lib_Makefile_am): Use it.
(func_emit_tests_Makefile_am): Likewise.
(func_import): Likewise.
2006-05-08 Bruno Haible <bruno@clisp.org>
* modules/stdarg: New file.
* MODULES.html.sh (func_all_modules): Add section for <stdarg.h>.
2006-05-08 Bruno Haible <bruno@clisp.org>
* m4/stdarg.m4: New file, from GNU gettext.
2006-05-08 Bruno Haible <bruno@clisp.org>
* config/srclist.txt (build-aux/config.rpath): different from latest
release.
2006-05-08 Bruno Haible <bruno@clisp.org>
* build-aux/config.rpath: Add support for Sun C 5.9 on Linux.
2006-05-05 Jim Meyering <jim@meyering.net>
* m4/warning.m4: New file, derived from bison's file by the same name.
2006-05-03 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Shorter URL.
* lib/inttypes.h: Likewise.
2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
* modules/inttypes (Maintainer): Change from Derek Price to 'all'.
2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
* lib/verify.h: Document the internals better. Most of this change
was written by Bruno Haible.
2006-05-02 Paul Eggert <eggert@cs.ucla.edu>
* doc/verify.texi: New file, partly based on a proposal by
Bruno Haible.
2006-05-02 Bruno Haible <bruno@clisp.org>
* m4/full-header-path.m4 (gl_FULL_HEADER_PATH): Move the include_next
test from here...
* m4/_inttypes_h.m4 (gl_INTTYPES_H): ... to here.
2006-04-29 Bruno Haible <bruno@clisp.org>
* lib/gcd.c: Use WORD_T and GCD instead of unsigned long and gcd.
Suggested by Oskar Liljeblad <oskar@osk.mine.nu>.
2006-04-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Make --update option actually work.
2006-04-29 Bruno Haible <bruno@clisp.org>
* doc/gcd.texi: New file.
* doc/gnulib.texi: Include it.
2006-04-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (get_date): When adding relative date, start with the
initial time, not with the result of the first mktime call.
2006-04-25 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Output the include directives in three
blocks, sorted separately.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2006-04-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Use prototype
to define main with arguments, for C++. Reported by Eric Blake.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC):
Prefer 'int main ()' to 'int main (void)', for C++.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Specify a return type
for 'main', for C99 and C++.
2006-04-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Use return, not exit.
Don't assume that exit status -1 is valid.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/readdir.m4 (GL_FUNC_READDIR): Include <stdlib.h>.
* m4/rename.m4 (vb_FUNC_RENAME): Likewise.
* m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Use AC_RUN_IFELSE,
not AC_TRY_RUN. Use return, not exit. Don't assume that
functions can be used without declaring them, or that you can
exit with status -1.
* m4/utimes-null.m4 (gl_FUNC_UTIMES_NULL): Likewise.
2006-04-24 Karl Berry <karl@gnu.org>
* config/srclist.txt (longdouble.m4): sync lost.
2006-04-24 Eric Blake <ebb9@byu.net>
* m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Avoid unused variable warning.
2006-04-24 Bruno Haible <bruno@clisp.org>
* m4/poll.m4 (gl_FUNC_POLL): When cross-compiling, reject also the
poll() implementation in AIX.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-04-24 Bruno Haible <bruno@clisp.org>
* m4/poll.m4 (gl_FUNC_POLL): Rearrange code, so that POLL_H gets
assigned exactly once.
2006-04-23 Claudio Fontana <claudio@gnu.org>
Bruno Haible <bruno@clisp.org>
* modules/gettext (Makefile.am): Add a -I flag for <libintl.h>.
* gnulib-tool (func_emit_lib_Makefile_am): Emit empty default value
for AM_CPPFLAGS.
2006-04-23 Bruno Haible <bruno@clisp.org>
* modules/copy-file: Depend on unistd.
* modules/execute: Likewise.
* modules/fatal-signal: Likewise.
* modules/findprog: Likewise.
* modules/mkdtemp : Likewise.
* modules/pipe: Likewise.
* modules/wait-process: Likewise.
2006-04-23 Bruno Haible <bruno@clisp.org>
* lib/fwriteerror.c (fwriteerror): Call fclose also when an error
condition was already detected.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2006-04-23 Bruno Haible <bruno@clisp.org>
* lib/copy-file.c: Include <unistd.h> unconditionally.
* lib/execute.c: Likewise.
* lib/fatal-signal.c: Likewise.
* lib/findprog.c: Likewise.
* lib/mkdtemp.c: Likewise.
* lib/pipe.h: Likewise.
* lib/pipe.c: Likewise.
* lib/wait-process.h: Likewise.
2006-04-23 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Fix --import description. Document
--update.
(func_import): Create temporary file in a temporary directory, if
--dry-run is specified. Silence errors from 'grep' when there are no
m4 files in $m4dir.
(func_create_testdir): Silence errors from 'grep' when there are no
m4 files in $m4dir.
Reported by Karl Berry <karl@freefriends.org>.
2006-04-20 Bruno Haible <bruno@clisp.org>
* m4/argp.m4 (gl_ARGP): Don't call AC_CHECK_DECLS_ONCE with more than
one argument, so that the code will be portable to Autoconf 2.60.
* m4/getlogin_r.m4 (gl_PREREQ_GETLOGIN_R): Likewise.
* m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise.
* m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO): Likewise.
2006-04-19 Derek Price <derek@ximbiot.com>
Eric Blake <ebb9@byu.net>
* m4/full-header-path.m4 (gl_FULL_HEADER_PATH): Use </full/path.h>
rather than "/full/path.h". Update comment to match. Shorten &
generalize m4_translit call via AS_TR_CPP.
2006-04-19 Derek Price <derek@ximbiot.com>
Eric Blake <ebb9@byu.net>
* lib/inttypes.h: Correct grammar in comment.
2006-04-18 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* modules/inttypes: New file.
* modules/strtoimax, modules/strtoumax: Depend on inttypes.
2006-04-18 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* m4/_inttypes_h.m4, m4/full-header-path.m4, m4/include_next.m4:
New files.
2006-04-18 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* lib/inttypes.h: New file.
* lib/strtoimax.c: Assume <inttypes.h>.
2006-04-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/utimens.c (futimens): glibc futimesat messes up if /proc
isn't mounted. Problem reported by Kir Kolyshkin.
2006-04-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/regcomp.c (init_dfa): Don't use wchar_t or wctype_t if
RE_ENABLE_I18N is not defined. Problem reported by Mark D. Baushke via
Derek R. Price.
* lib/regex.h (RE_DUP_MAX): Update comment to match current
implementation.
2006-04-12 Eric Blake <ebb9@byu.net>
* modules/time_r (Makefile.am): Remove lib_SOURCES line, as this
is now done automatically by the corresponding Autoconf macro.
2006-04-11 Paul Eggert <eggert@cs.ucla.edu>
* m4/time_r.m4 (gl_TIME_R): Add AC_LIBSOURCES for time_r.c and
time_r.h.
2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
Merge regex changes from libc, removing some of our
POSIX-conformance changes that were rejected and redoing them in a
less-intrusive way.
* lib/regcomp.c (re_compile_internal, init_dfa):
Length arg is now size_t, not Idx. All uses changed.
(peek_token): Forward decl now says internal_function.
(__re_error_msgid, __re_error_msgid_idx):
Now static rather than extern with attribute_hidden.
(re_compile_pattern) [!defined _LIBC]: Use K&R-style defn.
For some reason libc prefers K&R style defns for external functions.
(regerror) [!defined _LIBC]: Likewise.
(re_set_syntax, re_compile_fastmap, regcomp, regfree, re_comp):
(seek_collating_symbol_entry, lookup_collation_sequence_value):
(build_range_exp, build_collating_symbol):
Use K&R-style defn.
(re_compile_fastmap): Use '\0' to memset, not 0.
(utf8_sb_map): Make the calculations more obvious.
(init_dfa, parse_bracket_exp, build_charclass_op):
Call calloc and cast result, as glibc does.
(init_word_char, fetch_token, peek_token, peek_token_bracket):
(build_range_exp, build_collating_symbol):
Now internal functions.
* lib/regex.c [!defined _LIBC]: Allow compiling with C++ compilers.
* lib/regex.h (__USE_GNU_REGEX): New macro. Don't depend on
_REGEX_SOURCE any more; depend on _GNU_SOURCE instead.
Don't depend on VMS; depend on __VMS instead, for POSIX
namespace cleanness.
(regoff_t): Define to ssize_t, not long int.
Remove the REG_ macros named below. Instead, make the old names
(e.g., RE_BACKSLASH_ESCAPE_IN_LISTS) visible only if
__USE_GNU_REGEX.
(REG_BACKSLASH_ESCAPE_IN_LISTS):
(REG_BK_PLUS_QM, REG_CHAR_CLASSES, REG_CONTEXT_INDEP_ANCHORS):
(REG_CONTEXT_INDEP_OPS, REG_CONTEXT_INVALID_OPS):
(REG_DOT_NEWLINE, REG_DOT_NOT_NULL, REG_HAT_LISTS_NOT_NEWLINE):
(REG_INTERVALS, REG_LIMITED_OPS, REG_NEWLINE_ALT):
(REG_NO_BK_BRACES, REG_NO_BK_PARENS, REG_NO_BK_REFS):
(REG_NO_BK_VBAR, REG_NO_EMPTY_RANGES):
(REG_UNMATCHED_RIGHT_PAREN_ORD, REG_NO_POSIX_BACKTRACKING):
(REG_NO_GNU_OPS, REG_DEBUG, REG_INVALID_INTERVAL_ORD):
(REG_IGNORE_CASE, REG_CARET_ANCHORS_HERE):
(REG_CONTEXT_INVALID_DUP, REG_NO_SUB, REG_SYNTAX_EMACS):
(REG_SYNTAX_AWK, REG_SYNTAX_GNU_AWK, REG_SYNTAX_POSIX_AWK):
(REG_SYNTAX_GREP, REG_SYNTAX_EGREP, REG_SYNTAX_POSIX_EGREP):
(REG_SYNTAX_ED, REG_SYNTAX_SED, _REG_SYNTAX_POSIX_COMMON):
(REG_SYNTAX_POSIX_BASIC, REG_SYNTAX_POSIX_MINIMAL_BASIC):
(REG_SYNTAX_POSIX_EXTENDED, REG_SYNTAX_POSIX_MINIMAL_EXTENDED):
(REG_DUP_MAX, REG_UNALLOCATED, REG_REALLOCATE, REG_FIXED):
(REG_NREGS):
Remove. All uses replaced by the old RE_* names.
(RE_BACKSLASH_ESCAPE_IN_LISTS):
(RE_BK_PLUS_QM, RE_CHAR_CLASSES, RE_CONTEXT_INDEP_ANCHORS):
(RE_CONTEXT_INDEP_OPS, RE_CONTEXT_INVALID_OPS):
(RE_DOT_NEWLINE, RE_DOT_NOT_NULL, RE_HAT_LISTS_NOT_NEWLINE):
(RE_INTERVALS, RE_LIMITED_OPS, RE_NEWLINE_ALT):
(RE_NO_BK_BRACES, RE_NO_BK_PARENS, RE_NO_BK_REFS):
(RE_NO_BK_VBAR, RE_NO_EMPTY_RANGES):
(RE_UNMATCHED_RIGHT_PAREN_ORD, RE_NO_POSIX_BACKTRACKING):
(RE_NO_GNU_OPS, RE_DEBUG, RE_INVALID_INTERVAL_ORD):
(RE_IGNORE_CASE, RE_CARET_ANCHORS_HERE):
(RE_CONTEXT_INVALID_DUP, RE_NO_SUB):
Don't bother having these macros be independent of each others'
values, since they no longer exist in the POSIX name space.
Rename the following member names back to their old names,
unless !__USE_GNU_REGEX. All uses changed back.
(buffer): Renamed from re_buffer.
(allocated): Renamed from re_allocated.
(used): Renamed from re_used.
(syntax): Renamed from re_syntax.
(fastmap): Renamed from re_fastmap.
(translate): Renamed from re_translate.
(can_be_null): Renamed from re_can_be_null.
(regs_allocated): Renamed from re_regs_allocated.
(fastmap_accurate): Renamed from re_fastmap_accurate.
(no_sub): Renamed from re_no_sub.
(not_bol): Renamed from re_not_bol.
(not_eol): Renamed from re_not_eol.
(newline_anchor): Renamed from re_newline_anchor.
(num_regs): Renamed from rm_num_regs.
(start): Renamed from rm_start.
(end): Renamed from rm_end.
(free_state): Move up a bit.
* lib/regex_internal.h (inline) [__GNUC__ < 3 && defined _LIBC]:
#define to be empty.
(ASCII_CHARS): New macro, replacing all uses of 0x80 and/or SBC_MAX / 2
when that is what is intended.
(SBC_MAX): Define to UCHAR_MAX + 1, not 256.
(__re_error_msgid, __re_error_msgid_idx): Remove decls; not needed.
(MAX): New macro.
(re_xmalloc, re_calloc, re_xrealloc, re_x2realloc): Remove.
All uses changed back to re_malloc, etc. It's now the caller's
responsibility to check for overflow; all callers changed.
(re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc, re_xnrealloc):
(re_x2nrealloc): Remove.
(free_state): Remove decl.
* lib/regexc.c (regexec, re_match, re_search, re_match_2, re_search_2):
(re_set_registers, re_exec):
Use K&R-style defn.
2006-01-31 Roland McGrath <roland@redhat.com>
* lib/regcomp.c (calc_eclosure_iter): Remove dead variables.
Reported by Mike Frysinger <vapier@gentoo.org>.
2006-01-15 Andreas Jaeger <aj@suse.de>
[BZ #1950]
* lib/regex_internal.c (re_string_reconstruct): Adjust for
build_wcs_upper_buffer change.
(build_wcs_upper_buffer): Change return type.
2005-12-10 Ulrich Drepper <drepper@redhat.com>
* lib/regex_internal.h: Include <stdint.h> if available.
2005-12-06 Paolo Bonzini <bonzini@gnu.org>
* lib/regex_internal.h (SIZE_MAX): Provide a default definition.
2005-10-14 Ulrich Drepper <drepper@redhat.com>
* lib/regcomp.c: Adjust for changed secondary hash function.
2005-09-30 Ulrich Drepper <drepper@redhat.com>
* lib/regex.h: Pretty printing.
Clean up namespace a bit.
2005-09-30 Jakub Jelinek <jakub@redhat.com>
* lib/regexec.c (update_cur_sifted_state, check_arrival,
check_arrival_add_next_nodes): Avoid using uninitialized variable.
2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
Ulrich Drepper <drepper@redhat.com>
[BZ #1302]
* lib/regex_internal.h (bitset_t): Renamed from bitset. All uses
changed.
(bitset_word_t): Renamed from bitset_word. All uses changed.
2005-09-22 Ulrich Drepper <drepper@redhat.com>
[BZ #281]
* lib/regex.h: Define RE_TRANSLATE_TYPE as unsigned char *.
* lib/regcomp.c: Remove unnecessary uses of
unsigned RE_TRANSLATE_TYPE.
* lib/regex_internal.h: Likewise.
* lib/regex_internal.c: Likewise.
* lib/regexec.c: Likewise.
Based on a patch by Stepan Kasal <kasal@ucw.cz>.
2005-09-07 Ulrich Drepper <drepper@redhat.com>
* lib/regexec.c (find_recover_state): Remove unnecessary
initialization.
(transit_state_bkref): Make DFA a const pointer.
(get_subexp): Likewise.
(check_arrival): Likewise.
(update_cur_sifted_state): Likewise.
(re_search_internal): Likewise.
(prune_impossible_nodes): Likewise.
(acquire_init_state_context): Likewise.
(proceed_next_node): Likewise.
(set_regs): Likewise.
(free_fail_stack_return): Likewise.
(check_arrival_expand_ecl): Mark DFA parameter as const.
(check_arrival_expand_ecl_sub): Likewise.
(check_subexp_limits): Likewise.
(sub_epsilon_src_nodes): Likewise.
(add_epsilon_src_nodes): Likewise.
(merge_state_array): Likewise.
(update_regs): Likewise.
(build_trtable): Likewise.
(sift_states_backward): Mark MCTX parameter as const.
(build_sifted_states): Likewise.
(update_cur_sifted_state): Likewise.
(sift_states_mkref): Likewise.
(check_arrival_expand_ecl): Mark eclosure as const.
(check_dst_limits_calc_pos_1): Likewise.
* lib/regex_internal.h (re_match_context_t): Make dfa a const
pointer.
2005-09-06 Ulrich Drepper <drepper@redhat.com>
* lib/regexec.c (merge_state_with_log): Define dfa as const pointer.
(transit_state_sb): Likewise.
(transit_state_mb): Likewise.
(sift_states_iter_mb): Likewise.
(check_arrival_add_next_nodes): Likewise.
(check_node_accept_bytes): Change first parameter to pointer-to-const.
[_LIBC] (re_search_2_stub): Use mempcpy.
* lib/regex_internal.c (re_string_reconstruct): Avoid calling
mbrtowc for very simple UTF-8 case.
* lib/regex_internal.c (re_acquire_state): Make DFA pointer arg
a pointer-to-const.
(re_acquire_state_context): Likewise.
* lib/regex_internal.h: Adjust prototypes.
* lib/regex.c: Prevent using C++ compilers.
* lib/regex_internal.c (re_acquire_state): Minor code rearrangement.
(re_acquire_state_context): Likewise.
2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (Depends-on): Add ssize_t.
2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Check for new glibc interface to
translation table.
2006-04-09 Paul Eggert <eggert@cs.ucla.edu>
* doc/gnulib-tool.texi (Modified imports): pathname -> file name.
2006-03-29 Mark D. Baushke <mdb@gnu.org>
Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: On OpenBSD, don't redefine types already included in
<sys/types.h> and <inttypes.h>.
2006-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/argz.m4 (gl_FUNC_ARGZ): If we define `error_t', also define
`__error_t_defined', so argp.h will not typedef the former.
2006-03-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Don't insist on REG_SYNTAX_POSIX_EGREP,
REG_SYNTAX_EMACS, and REG_IGNORE_CASE. Settle for the traditional
glibc names. Even if glibc is changed to conform to POSIX, the
traditional names will be available anyway, since regex depends on
the extensions module. Also, fix a longstanding typo in the
implementation of Spencer ERE test #75 from grep 2.3. Problems
reported by Emanuele Giaquinta. Also, change sense of cached
variable, so that the message makes sense.
2006-03-24 Simon Josefsson <jas@extundo.com>
* lib/base64.c: Fix problems reported by Eric Blake <ebb9@byu.net>,
including some doc fixes.
(base64_encode_alloc): Fix +1 bug on allocation failures.
2006-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/base64.c (base64_encode): Do not read past end of array with
unsanitized input on systems with CHAR_BIT > 8.
2006-03-24 Eric Blake <ebb9@byu.net>
* lib/time_r.c (copy_string_result): Remove, as it is no longer used.
2006-03-22 Karl Berry <karl@gnu.org>
* config/srclist.txt (*setenv.[ch]): get from coreutils.
* config/srclistvars.sh (COREUTILS): new var.
2006-03-17 Jim Meyering <jim@meyering.net>
* m4/regex.m4 (gl_REGEX): Fix typo in last change:
s/_REGEX_WIDE_OFFSETS/_REGEX_LARGE_OFFSETS/.
2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Don't check for off_t, since the code
no longer needs it. Instead, check that regoff_t is as least
as wide as ptrdiff_t.
Don't define _REGEX_WIDE_OFFSETS unless using the included regex,
so that our regex.h stays compatible with the installed regex.
This is helpful for installers who configure --without-included-regex.
Problem reported by Emanuele Giaquinta.
2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]:
Typedef to long int, not to off_, as POSIX will likely change
in that direction.
2006-03-15 Eric Blake <ebb9@byu.net>
* m4/dirfd.m4 (gl_FUNC_DIRFD): Use AC_REQUIRE for AC_HEADER_DIRENT.
2006-03-13 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (validate_uparams): Fix typo
* lib/argp-parse.c (argp_default_options): Consistently begin help
messages with a lowercase letter.
2006-03-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/time_r.h (asctime_r, ctime_r): Remove. These functions can
overrun buffers and shouldn't be used (much as gets shouldn't be
used).
* lib/time_r.c (asctime_r, ctime_r): Likewise.
2006-03-08 Simon Josefsson <jas@extundo.com>
* m4/gc-random.m4: Permit 'no' as variable values and fix warnings,
suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-03-08 Simon Josefsson <jas@extundo.com>
* m4/gc-random.m4: Call AC_CANONICAL_HOST and use $host_os instead of
$target, suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-03-08 Simon Josefsson <jas@extundo.com>
* lib/gc-gnulib.c (randomize): Don't open files called 'no', they
signal that configure disabled the device.
2006-03-08 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Fix refresh-po, to handle no translated
languages.
2006-03-07 Simon Josefsson <jas@extundo.com>
* modules/getopt (Depends-on): Add unistd.
* modules/unistd: New file.
2006-03-07 Simon Josefsson <jas@extundo.com>
* modules/gc-random: New file.
2006-03-07 Simon Josefsson <jas@extundo.com>
* m4/unistd_h.m4: New file.
2006-03-07 Simon Josefsson <jas@extundo.com>
* m4/readline.m4 (gl_FUNC_READLINE): Rewrite the cached part of the
test to be side-effect free by storing the result in the cache
variable gl_cv_lib_readline, and moving the assignment of
LIBREADLINE and LTLIBREADLINE outside the COMMANDS-TO-SET-IT.
From Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-03-07 Simon Josefsson <jas@extundo.com>
* m4/gc-random.m4: New file, mostly from gc.m4. Warn instead of
error on missing devices (the functions will return an error).
* m4/gc.m4: Move random stuff to gc-random.m4
2006-03-07 Simon Josefsson <jas@extundo.com>
* lib/unistd_.h: New file.
2006-03-07 Simon Josefsson <jas@extundo.com>
* lib/gc-libgcrypt.c, gc-gnulib.c: Use GC_USE_RANDOM.
2006-03-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/unistd_h.m4 (gl_HEADER_UNISTD): Rename, to match modules file.
Problem reported by Juan Manuel Guerrero.
2006-03-07 Paul Eggert <eggert@cs.ucla.edu>
* lib/c-stack.c: Include unistd.h unconditionally, since we now assume
the unistd module.
* lib/getlogin_r.c: Likewise.
* lib/getlogin_r.h: Likewise.
* lib/glob.c: Likewise.
* lib/pagealign_alloc.c: Likewise.
* lib/unistd_.h: Remove; no longer needed.
2006-03-07 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Support for systems lacking POSIX:2001):
Add unistd.
* modules/c-stack (Depends-on): Add unistd.
* modules/getlogin_r: Likewise.
* modules/glob: Likewise.
* modules/pagealign_alloc: Likewise.
* modules/unistd (Files): Remove lib/unistd_.h.
(EXTRA_DIST): Remove.
(unistd.h): Create using 'echo' rather than 'cp', so that we don't
need unistd_.h.
(MOSTLYCLEANFILES): Remove unistd.h-t.
2006-03-03 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Add several syntax checks from CoreUtils.
2006-03-03 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Add refresh-po rule, based on ideas from
libidn and bison.
2006-03-03 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Add indent target.
2006-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* m4/poll.m4 (gl_FUNC_POLL): If we deem poll(2) unacceptable, use
our replacement poll.h in any case, to avoid a differing
declaration from a system header. Seen on AIX.
2006-03-01 Simon Josefsson <jas@extundo.com>
* lib/readline.c: Fix typo, tiny patch from Stepan Kasal
<kasal@ucw.cz>.
2006-03-01 Paul Eggert <eggert@cs.ucla.edu>
* modules/gettime (Depends-on): Add extensions module.
* modules/nanosleep (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
2006-03-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/clock_time.m4 (gl_CLOCK_TIME): Require gl_USE_SYSTEM_EXTENSIONS,
not merely AC_GNU_SOURCE, for the benefit of Solaris 10 when compiled
pedantically.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
* m4/timespec.m4 (gl_TIMESPEC): Likewise.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use "=" with "test",
not "==". Reported by Ralf Wildenhues.
2006-03-01 Karl Berry <karl@gnu.org>
* doc/Copyright/request-*: new files, synced from gnuorg.
2006-03-01 Karl Berry <karl@gnu.org>
* config/srclist.txt (Copyright/*): new entries.
2006-02-28 Simon Josefsson <jas@extundo.com>
* lib/getopt.c: Protect #include of unistd.h, for MSVS.
2006-02-27 Simon Josefsson <jas@extundo.com>
* lib/base64.h: Indent #define's. From Jim Meyering
<jim@meyering.net>.
2006-02-27 Jim Meyering <jim@meyering.net>
Revert the change of 2006-02-24, so these files can continue
to be sync'd from gettext.
* lib/mkdtemp.c, setenv.c, unsetenv.c: *Un*-normalize inclusion
of `config.h'.
2006-02-26 Paul Eggert <eggert@cs.ucla.edu>
* modules/intprops: New file.
* MODULES.html.sh (Numeric conversion functions <stdlib.h>):
Add intprops.
* modules/getloadavg (Files): Remove lib/intprops.h.
(Depends-on): Add intprops.
* modules/human: Likewise.
* modules/inttostr: Likewise.
* modules/openat: Likewise.
* modules/sig2str: Likewise.
* modules/userspec: Likewise.
* modules/utimecmp: Likewise.
* modules/xnanosleep: Likewise.
* modules/xstrtol: Likewise.
2006-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny changes)
* modules/xstrtod: Omit xstrtod.h, xstrtod.c; they're in LIB_SOURCES.
* modules/lock-tests (TESTS): Use $(EXEEXT).
* modules/tls-tests: Likewise.
* modules/argp-tests: Likewise.
(check_PROGRAMS): New var, replacing...
(noinst_PROGRAMS, test_argp_SOURCES): Remove.
2006-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/mkdtemp.c, lib/setenv.c, lib/unsetenv.c: Normalize inclusion of
`config.h'.
2006-02-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/glob.c: Say "invalid" rather than "illegal" in comments.
2006-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from coreutils.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Require gl_FUNC_LCHMOD and
gl_CHDIR_SAFER.
2006-02-22 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/chdir-safer.m4: New file.
2006-02-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.c (AT_FDCWD): Work around a bug in Solaris 9 and 10, where
AT_FDCWD exceeds INT_MAX.
* lib/openat.h (AT_FDCWD): Likewise.
2006-02-17 Eric Blake <address@hidden>
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix caching error.
2006-02-16 Simon Josefsson <jas@extundo.com>
* modules/getaddrinfo (Depends-on): Add sys_socket.
2006-02-15 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Add dsyntax-check rule.
2006-02-15 Eric Blake <ebb9@byu.net>
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Don't attempt using
winsock2.h or ws2tcpip.h when sys/socket.h is present. Fixes
'present but cannot compile' warnings on cygwin.
* m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Use gl_HEADER_SYS_SOCKET. Don't
use ws2tcpip.h if sys/socket.h works.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Use gl_HEADER_SYS_SOCKET.
(gl_GETADDRINFO): Don't use ws2tcpip.h when sys/socket.h is present.
2006-02-14 Simon Josefsson <jas@extundo.com>
* modules/maintainer-makefile (Files): Rename.
* build-aux/GNUmakefile: Rename Makefile.maint to maint.mk
and (the local) Makefile.cfg to maint-cfg.mk.
* build-aux/Makefile.maint, build-aux/maint.mk: Renamed the former
to the latter.
* modules/maintainer-makefile: New module.
* build-aux/Makefile.maint: New file, from GNU CoreUtils, although
severaly stripped to make it possible to build it up from scratch
with reliable tests.
* build-aux/GNUmakefile: New file, from GNU CoreUtils with some
fixes to permit overriding the default actions when configure and
makefile are not available.
2006-02-14 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* modules/lstat (Depends-on): Don't depend on xalloc.
(License): Change from GPL to LGPL, since this is now simply a
replacement for a libc function.
2006-02-14 Jim Meyering <jim@meyering.net>
Sync from coreutils.
Eliminate the unwelcome (albeit unlikely) possibility of xmalloc
failure on deficient systems, and simplify gnulib lgpl dependencies.
* lib/lstat.c (rpl_lstat): Rewrite to use stat() in place of the
xmalloc/lstat combination. Based on a patch from Bruno Haible.
* lib/xalloc-die.c: Remove unused definition of N_.
2006-02-14 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Invoke
AC_CHECK_FUNCS(getmntent) unconditionally so that tests of
$ac_cv_func_getmntent (e.g., in gl_LIST_MOUNTED_FILE_SYSTEMS) need not
double-quote uses of that variable, to accommodate the rare case in
which getmntent is available in none of the libraries checked. This
happens at least on FreeBSD 5.0.
2006-02-13 Simon Josefsson <jas@extundo.com>
* gnulib-tool (Usage): Fix --import, from
karl@freefriends.org (Karl Berry).
2006-02-13 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-fmtstream.c: Restore another bugfix lost on 2005-12-12
2006-02-07 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-namefrob.h: Restore changes accidentally lost during the
"autoupdate" on 2005-12-12.
2006-02-07 Paul Eggert <eggert@cs.ucla.edu>
* modules/closeout (Depends-on): Remove atexit.
2006-02-07 Paul Eggert <eggert@cs.ucla.edu>
* lib/closeout.c (close_stdout): Don't assume 'bool' converts nonzero
ints to 0 or 1, as this isn't true for the stdbool.h substitute.
2006-02-05 Paul Eggert <eggert@cs.ucla.edu>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Don't #define
__EXTENSIONS__ if this causes compilation to fail. Problem
reported by Nelson H. F. Beebe with Solaris 10 and Sun C 5.7
c89 -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED.
2006-01-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/fnmatch.c (L_): Renamed from L, to work around a bug in
Mac OS X 10.3.9 with GCC 3 reported by Claudio Fontana in
<http://lists.gnu.org/r/bug-gnulib/2006-01/msg00074.html>.
All uses changed.
2006-01-26 Simon Josefsson <jas@extundo.com>
* lib/socket_.h: Set WINVER to 0x0501, to make sure getaddrinfo
prototype is visible on mingw32.
* lib/getaddrinfo.h: Define EAI_ADDRFAMILY and EAI_SYSTEM if not set,
for mingw32.
* lib/gai_strerror.c, getaddrinfo.h: Protect netdb.h #include (for
mingw32).
2006-01-26 Paul Eggert <eggert@cs.ucla.edu>
* lib/fts.c (diropen): Open with O_NOCTTY | O_NONBLOCK too. Don't
attempt to open for write; this always fails, at least on POSIX
hosts. This reinstates the 2006-01-09 change, which was
inadvertently removed.
2006-01-26 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Use "trap 'exit $?' instead of "trap :".
Reported by Paul Eggert.
2006-01-26 Bruno Haible <bruno@clisp.org>
Paul Eggert <eggert@cs.ucla.edu>
* lib/stdbool_.h (_Bool)
[(! (defined __cplusplus || defined __BEOS__)
&& !defined __GNUC__
&& !(defined __HP_cc || defined __xlc__
|| (defined __SUNPRO_C && (__SUNPRO_C < 0x550 || __STDC__ == 1))
|| defined __sgi))]:
#define to signed char in these cases too; this simplifies
the code (so that we don't have to worry about HP-UX, AIX, SunPRO,
etc., separately) and makes it more conservative.
2006-01-25 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: Look for getaddrinfo inside ws2tcip.h and
-lws2_32. Protect sys/socket.h and netdb.h #include's. Include
ws2tcpip.h with WINVER=0x0501. All for mingw32.
2006-01-25 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-namefrob.h: Bugfix. Remove stray #
2006-01-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Check for xlc bug if __GCC__ too,
so that we test the test.
Check for yet another HP-UX cc bug involving *bool |= bool.
2006-01-25 Karl Berry <karl@gnu.org>
* config/srclist.txt (vasnprintf.c): sync lost.
2006-01-25 Jim Meyering <jim@meyering.net>
Sync from the stable (b5) branch of coreutils:
* lib/fts.c (fts_children): Don't let close() clobber errno from
failed fchdir().
* lib/fts.c (fts_stat): When following a symlink-to-directory,
don't necessarily interpret stat-fails+lstat-succeeds as indicating
a dangling symlink. That can also happen at least for ELOOP.
The fix: return FTS_SLNONE only when the stat errno is ENOENT.
FYI, this bug predates the inclusion of fts.c in coreutils.
* lib/fts.c (fts_open): Put new maxarglen declaration and uses
in their own block, so pre-c99 compilers don't object.
Avoid the double-free (first in fts_read, second in fts_close) that
would occur when an `active' directory is made inaccessible (e.g.,
via chmod a-x) during a traversal.
* lib/fts.c (fts_read): After a failed fchdir, update sp->fts_cur
before returning. Reproduce this failure by
mkdir -p a/b; cd a; chmod a-x . b
Reported by Stavros Passas.
2006-01-25 Jim Meyering <jim@meyering.net>
* lib/fileblocks.c: Remove more useless parentheses.
* lib/readutmp.h: Likewise.
2006-01-25 Bruno Haible <bruno@clisp.org>
* lib/stdbool_.h (_Bool) [IRIX cc]: Define as 'signed char', to avoid
warnings.
Reported by Paul Eggert.
2006-01-25 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Use "trap :" instead of "trap -" to get
rid of a trap command. For Solaris sh.
Reported by Mark D. Baushke <mdb@gnu.org>.
2006-01-24 Simon Josefsson <jas@extundo.com>
* lib/socket_.h (SHUT_WR, SHUT_RDWR): Don't hardcode, suggested by
Bruno.
2006-01-24 Karl Berry <karl@gnu.org>
* config/srclist.txt (argp-namefrob.h): sync lost.
2006-01-24 Jim Meyering <jim@meyering.net>
* modules/openat (Files): Add lib/intprops.h.
From Mark D. Baushke.
2006-01-24 Jim Meyering <jim@meyering.net>
* m4/openat.m4 (gl_FUNC_OPENAT): Add AC_LIBSOURCES([intprops.h]).
Reported by Mark D. Baushke.
2006-01-24 Jim Meyering <jim@meyering.net>
* lib/socket_.h: Remove useless parentheses in uses of cpp `defined'.
2006-01-24 Bruno Haible <bruno@clisp.org>
* modules/strnlen (Maintainer): Change from glibc to all.
2006-01-24 Bruno Haible <bruno@clisp.org>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Check for IBM and HP-UX bugs.
Patch by Paul Eggert.
2006-01-24 Bruno Haible <bruno@clisp.org>
* lib/stdbool_.h (_Bool) [__cplusplus]: Don't define if the compiler
already has it.
Report and patch by Albert Chin-A-Young <china@thewrittenword.com> on
2005-11-26.
* lib/stdbool_.h (_Bool) [HP-UX cc, AIX cc,xlc]: Define as
'signed char' to avoid problems with the built-in _Bool type.
Reported by Paul Eggert on 2005-11-26.
2006-01-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Avoid constructing complicated sed
expressions inside backquote.
Report and solution by Mark D. Baushke <mdb@gnu.org>.
2006-01-23 Ulrich Drepper <drepper@redhat.com>
These changes imported from libc.
* lib/getopt.c: Use __fxprintf instead of inline stream orientation
test and two separate function calls.
* lib/strndup.c (__strndup): Add libc_hidden_def.
2006-01-23 Simon Josefsson <jas@extundo.com>
* modules/lock-tests: Use check_PROGRAMS instead of noinst_PROGRAMS.
Remove the test_*_SOURCES variable: automake infers it by default.
* modules/tls-tests: Likewise.
2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
Work around porting bugs reported by Dieter in
<http://lists.gnu.org/r/bug-bison/2006-01/msg00049.html>.
* lib/getopt.c (_NOPROTO): Remove; no longer needed.
Include <stdlib.h> and <unistd.h> in all environments; it's safe now.
Include "getopt.h" first, to check interface.
(getenv): Declare only if defined HAVE_DECL_GETENV &&
!HAVE_DECL_GETENV.
* lib/strndup.c [!_LIBC]: Include "strndup.h" to get prototype.
(__strndup): Revert to K&R-style function dfns, the glibc style.
* lib/strnlen.c: Don't claim it's taken from glibc; it's not.
(strnlen, __strnlen): Remove #defines and #undefs; not needed.
Include strnlen.h first, to get prototype properly.
(strnlen): Renamed from __strnlen.
Remove weak alias.
2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/getopt.m4 (gl_PREREQ_GETOPT): Check for getenv decl.
2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Adjust to reflect glibc reorganization.
This affects only comments.
2006-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* gnulib-tool, build-aux/csharpcomp.sh.in: Do not pass `-q' to mktemp.
Reported by Bruce Korb <bkorb@gnu.org>.
2006-01-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/quotearg.c (quotearg_buffer_restyled): Add "default: break;"
to pacify gcc -Wswitch-default.
2006-01-22 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): In the computation of the size of the
temporary buffer for sprintf, take into account the precision also
for 'd', 'i', 'u', 'o', 'x', 'X'.
2006-01-21 Sergey Poznyakoff <gray@gnu.org.ua>
* modules/argp-tests: New module
* tests/test-argp.c: New file
* tests/test-argp-2.sh: New file
2006-01-21 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (usage_long_opt): Do not print DOC options.
(__argp_base_name): Removed
* lib/argp-namefrob.h (__argp_basename): Removed definition. Was a
typo.
(__argp_base_name): Provide macro definition or extern declaration
depending on the configuration
2006-01-20 Simon Josefsson <jas@extundo.com>
* modules/inet_ntop (Depends-on): Depend on sys_socket.
2006-01-20 Simon Josefsson <jas@extundo.com>
* lib/inet_ntop.h: Unconditionally include sys/socket.h.
2006-01-20 Paul Eggert <eggert@cs.ucla.edu>
* m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Use -Wl,-z,ignore
rather than -Xlinker -z -Xlinker ignore, as it's more portable.
Suggested by Bruno Haible.
2006-01-20 Karl Berry <karl@gnu.org>
* config/srclist.txt (argp-fmtstream.h, localcharset.c): comment out
until changes propagate, I guess.
2006-01-19 Simon Josefsson <jas@extundo.com>
* m4/socklen.m4: Look in ws2tcpip.h too, for mingw32.
2006-01-19 Simon Josefsson <jas@extundo.com>
* lib/socket_.h: Map SHUT_RD, SHUT_WR, SHUT_RDWR correctly.
2006-01-19 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Set check_PROGRAMS.
* modules/arcfour-tests, modules/arctwo-tests, modules/crc-tests,
modules/des-tests, modules/gc-arcfour-tests,
modules/gc-arctwo-tests, modules/gc-des-tests,
modules/gc-hmac-md5-tests, modules/gc-hmac-sha1-tests,
modules/gc-md2-tests, modules/gc-md4-tests, modules/gc-md5-tests,
modules/gc-pbkdf2-sha1-tests, modules/gc-rijndael-tests,
modules/gc-sha1-tests, modules/gc-tests, modules/hmac-md5-tests,
modules/hmac-sha1-tests, modules/md2-tests, modules/md4-tests,
modules/md5-tests, modules/readline, modules/rijndael-tests: Use
check_PROGRAMS instead of noinst_PROGRAMS to be able to remove
test_*_SOURCES.
2006-01-18 Simon Josefsson <jas@extundo.com>
* modules/socklen (Depends-on): Depend on sys_socket.
2006-01-18 Simon Josefsson <jas@extundo.com>
* modules/arcfour-tests, modules/arctwo-tests, modules/crc-tests,
modules/des-tests, modules/gc-arcfour-tests,
modules/gc-arctwo-tests, modules/gc-des-tests,
modules/gc-hmac-md5-tests, modules/gc-hmac-sha1-tests,
modules/gc-md2-tests, modules/gc-md4-tests, modules/gc-md5-tests,
modules/gc-pbkdf2-sha1-tests, modules/gc-rijndael-tests,
modules/gc-sha1-tests, modules/gc-tests, modules/hmac-md5-tests,
modules/hmac-sha1-tests, modules/md2-tests, modules/md4-tests,
modules/md5-tests, modules/readline, modules/rijndael-tests: Add
$(EXEEXT) to automake TESTS variable, for mingw32.
2006-01-17 Simon Josefsson <jas@extundo.com>
* modules/socklen (Include): Need sys/socket.h.
2006-01-17 Bruno Haible <bruno@clisp.org>
* modules/ssize_t (Include): Add <sys/types.h>.
2006-01-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Don't use ldd, as
it's not portable and it doesn't work with cross-compiles.
Problem reported by Bruno Haible. Fix missing-$ typo in
'test "gl_cv_ignore_unused_libraries" ...' that prevented
-zignore from being used with Sun's C compiler.
2006-01-12 Simon Josefsson <jas@extundo.com>
* lib/base64.c: Fix warning, reported by Bruno Haible
<bruno@clisp.org> and patch by Paul Eggert <eggert@CS.UCLA.EDU>.
2006-01-12 Bruno Haible <bruno@clisp.org>
* modules/ldd: New file.
* build-aux/ldd.sh.in: New file.
* MODULES.html.sh (Support for building libraries and executables): Add
ldd.
2006-01-12 Bruno Haible <bruno@clisp.org>
* m4/ldd.m4: New file.
2006-01-12 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Don't go into an
endless loop while replacing $auxdir with build-aux.
2006-01-11 Simon Josefsson <jas@extundo.com>
* lib/stdint_.h (SIZE_MAX): Add missing (.
2006-01-11 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* lib/md5.c: Fix commentary typos.
(alignof, UNALIGNED_P): No need for a GCC-specific version.
* lib/md5.h (__attribute__): Remove; unused.
* lib/sha1.c: Fix commentary to match md5 better.
* lib/sha1.h (struct sha1_ctx): Use a word buffer, not a byte buffer,
so that we don't need to worry about alignment. All uses changed.
This merges the 2005-10-28 md5 change into sha1.
2006-01-11 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/md5.c (OP): Fix spacing.
2006-01-11 Bruno Haible <bruno@clisp.org>
Ensure automatic ordering between gl_LOCK and gl_ARGP.
* m4/lock.m4 (gl_LOCK_BODY): Renamed from gl_LOCK.
(gl_LOCK): New macro, requiring gl_LOCK_BODY.
2006-01-11 Bruno Haible <bruno@clisp.org>
Ensure automatic ordering between gl_LOCK and gl_ARGP.
* gnulib-tool (func_import, func_create_testdir): Put gl_LOCK into
the "early" section as well.
2006-01-11 Bruno Haible <bruno@clisp.org>
Avoid "ar: no archive members specified" error on MacOS X.
* gnulib-tool (func_modules_add_dummy): New function.
(func_import, func_create_testdir): Invoke it.
2006-01-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Replace build-aux
with $auxdir in AC_CONFIG_FILES statements.
2006-01-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am):
Initialize also noinst_HEADERS to empty.
2006-01-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (AUTOMAKEPATH, AUTOCONF, ACLOCAL, AUTOMAKE): New
variables.
(func_create_megatestdir): Call aclocal, autoconf, automake here, not
autoreconf.
2006-01-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (AUTOCONF, ACLOCAL, AUTOMAKE, AUTORECONF): Make
overridable by the user.
Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2006-01-10 Simon Josefsson <jas@extundo.com>
* modules/sys_socket: New file.
2006-01-10 Simon Josefsson <jas@extundo.com>
* m4/sys_socket_h.m4: New file.
2006-01-10 Simon Josefsson <jas@extundo.com>
* lib/socket_.h: New file.
2006-01-10 Paul Eggert <eggert@cs.ucla.edu>
* modules/readutmp (Maintainer): Add myself.
2006-01-10 Paul Eggert <eggert@cs.ucla.edu>
* m4/memcoll.m4 (gl_MEMCOLL): Don't require AC_FUNC_MEMCMP, undoing
the 2002-12-31 change. Problem and fix reported by Bruno Haible.
People who are still concerned with buggy memcmp implementations
can invoke gl_FUNC_MEMCMP themselves.
2006-01-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.h (BITSET_WORD_BITS):
Work around a bug in 64-bit PGC (before version 6.1-2), where the
preprocessor mishandles large unsigned values as if they were signed.
Problem reported by Claudio Fontana in
<http://lists.gnu.org/r/bug-gnulib/2005-12/msg00061.html>.
2006-01-10 Jim Meyering <jim@meyering.net>
Avoid the double-free (first in fts_read, second in fts_close) that
would occur when an `active' directory is made inaccessible (e.g.,
via chmod a-x) during a traversal.
* lib/fts.c (fts_read): After a failed fchdir, update sp->fts_cur
before returning. Reproduce this failure by
mkdir -p a/b; cd a; chmod a-x . b
Reported by Stavros Passas.
Sync from coreutils.
* lib/sha1.c: Tweak grammar in a comment.
2006-01-10 Jim Meyering <jim@meyering.net>
* m4/fpending.m4: Also include <stdio.h>, for Dragonfly.
Patch by Joerg Sonnenberger.
2006-01-10 Bruno Haible <bruno@clisp.org>
* modules/readutmp: Depend on module free.
* modules/strtok_r: Depend on module restrict.
2006-01-10 Bruno Haible <bruno@clisp.org>
* modules/gettext (configure.ac): Add an invocation of
AM_GNU_GETTEXT_VERSION. Needed since autoreconf is used by gnulib-tool.
2006-01-10 Bruno Haible <bruno@clisp.org>
* m4/localcharset.m4 (gl_LOCALCHARSET): Also test for getc_unlocked.
Reported by Werner Lemberg <wl@gnu.org>.
2006-01-10 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c: Update from GNU gettext.
2006-01-10 Bruno Haible <bruno@clisp.org>
* lib/argp.h (__const): Remove macro. Use const instead.
* lib/argp-fmtstream.h (__const): Likewise.
* lib/glob_.h (__const): Remove macro.
* lib/glob-libc.h: Use const instead of __const.
2006-01-10 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Emit an empty SUBDIR
variable.
Needed to avoid an automake error regarding the 'gettext' module.
2006-01-09 Simon Josefsson <jas@extundo.com>
* modules/inet_ntop (Depends-on): Add restrict.
2006-01-09 Simon Josefsson <jas@extundo.com>
* modules/gc-rijndael-tests (License): Put under LGPL.
* modules/gc-des-tests (License): Likewise.
* modules/gc-arcfour-tests (License): Likewise.
* modules/gc-arctwo-tests (License): Likewise.
* modules/gc-pbkdf2-sha1-tests (License): Likewise.
* modules/gc-hmac-sha1-tests (Files): Likewise.
* modules/gc-hmac-md5-tests (License): Likewise.
* modules/gc-sha1-tests (License): Likewise.
* modules/gc-md5-tests (License): Likewise.
* modules/gc-md4-tests (License): Likewise.
* modules/gc-md2-tests (License): Likewise.
* modules/gc-tests (License): Likewise.
* modules/des-tests (License): Likewise.
* modules/md4-tests (License): Likewise.
* modules/md2-tests (License): Likewise.
2006-01-09 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils:
* MODULES.html.sh (build_lib): New section, with new lib-ignore module.
* modules/lib-ignore: New file.
* modules/mkdir-p (Files): Add chdir-safer.c, chdir-safer.h, lchmod.h,
chdir-safer.m4, lchmod.m4.
* modules/openat: Add mkdirat.c, openat-priv.h.
2006-01-09 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/lib-ignore.m4: New file.
* m4/lchmod.m4: New file.
2006-01-09 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* lib/chdir-long.c (cdb_free): Don't bother trying to open directory
for write access: POSIX says that must fail.
* lib/fts.c (diropen): Likewise.
* lib/save-cwd.c (save_cwd): Likewise.
* lib/chdir-long.c (cdb_free): Open with O_NOCTTY | O_NONBLOCK as
well, for minor improvements on hosts that lack O_DIRECTORY.
* lib/chown.c (rpl_chown) [CHOWN_MODIFIES_SYMLINK]:
Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
Fall back on chown if open failed with EACCES.
* lib/gettime.c (gettime) [!defined OK_TO_USE_1S_CLOCK]:
Report an error at compile-time if only a 1-second nominal clock
resolution is found.
* lib/lchmod.h: New file.
* lib/mkdir-p.c: Include lchmod.h, lchown.h.
(make_dir_parents): Use lchown rather than chown, and
lchmod rather than chmod.
* lib/mountlist.c (ME_DUMMY): "none" and "proc" file systems are
dummies too. Problem with "none" reported by Bob Proulx. Problem with
"proc" reported by n0dalus.
* lib/mountlist.c: Include <limits.h>.
(dev_from_mount_options)
[defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]:
New function. It no longer assumes "dev=" has the System V meaning
on Linux (since it doesn't). It also parses "dev=" more carefully.
(read_file_system_list)
[defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: Use it.
MOUNTED_GETMNTENT2 is new here; the code didn't used to look for
dev= in that case.
* lib/posixtm.h (PDS_PRE_2000): New macro.
* lib/posixtm.c (year): Arg is now syntax_bits rather than
allow_century. All usages changed. Reject dates outside the range
1969-1999 if PDS_PRE_2000 is used.
2006-01-09 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* doc/getdate.texi (General date syntax): Invalid dates are rejected.
(Time of day items): Mention the possibility of leap seconds.
Problem reported by Dr. David Alan Gilbert.
2006-01-09 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/version-etc.c (COPYRIGHT_YEAR): Update to 2006.
* lib/chdir-safer.h, lib/chdir-safer.c: New files.
* lib/modechange.c (mode_compile): Reject an invalid mode string
that starts with an octal digit. From Andreas Gruenbacher.
* lib/openat.c: Include "fcntl--.h" and "unistd--.h", to map open
and dup to open_safer and dup_safer, respectively.
(openat_permissive): Fix typo in comment.
* lib/openat.c: Don't include <stdlib.h>, <unistd.h>, <fcntl.h>,
"gettext.h"; either no longer needed or are guaranteed by openat.h.
(_): Remove; no longer needed.
(openat): Renamed from rpl_openat; no need for rpl_openat
since openat.h renames openat for us.
Replace most of the body with a call to openat_permissive,
to avoid duplicate code.
Port to (probably hypothetical) environments were mode_t is
wider than int.
(openat_permissive): Require mode arg, so that we can check
types better. Put it just after flags. Change cwd failure
indicator from pointer-to-bool to pointer-to-errno-value.
All callers changed.
Invoke openat_save_fail and/or openat_restore_fail if
cwd_errno is null, so that openat can call us.
(openat_permissive, fdopendir, fstatat, unlinkat):
Simplify errno handling to avoid some duplicate code,
as it's OK to set errno on success.
* lib/openat.h: Revamp code so that function macros depend on
__OPENAT_PREFIX only, not also on AT_FDCWD.
(openat_ro): Remove. Caller changed to use openat_permissive.
(openat_permissive): Now a macro, if not a function.
(openat_restore_fail, openat_save_fail): Now always functions,
since mkdirat needs them even if __OPENAT_PREFIX is defined.
* lib/openat-priv.h: New file, defining macros used by mkdirat.c
and openat.c.
* lib/mkdirat.c: Include openat-priv.h.
Remove definitions of macros defined therein.
* lib/openat.c: Likewise.
* lib/mkdirat.c (mkdirat): New file and function.
* lib/openat.h (mkdirat): Declare.
* lib/openat.c (fdopendir): Don't change errno when returning non-NULL.
* lib/openat.h (openat_permissive): Declare.
(openat_ro): Define.
* lib/openat.c (EXPECTED_ERRNO): New macro.
(openat_permissive): New function -- used in remove.c rewrite.
(all functions): Set errno just before returning, only if there
was an actual failure.
Use EXPECTED_ERRNO rather than comparing against only ENOTDIR.
Emulate openat-family functions using Linux's procfs, if possible.
Idea and some code based on Ulrich Drepper's glibc changes.
* lib/openat.c: (BUILD_PROC_NAME): New macro.
Include <stdio.h>, <string.h>, "alloca.h" and "intprops.h".
(rpl_openat): Emulate by trying to open /proc/self/fd/%d/%s,
before falling back on save_cwd and restore_cwd.
(fdopendir, fstatat, unlinkat): Likewise.
* lib/openat.c (fstatat, unlinkat): Perform the syscall directly,
skipping the save_cwd...restore_cwd overhead, if FILE is absolute.
* lib/openat.c (rpl_openat): Use the promoted type (int), not mode_t,
as second argument to va_arg. Otherwise, some versions of gcc
warn that `if this code is reached, the program will abort'.
2006-01-09 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/openat.m4 (gl_FUNC_OPENAT): Require and compile mkdirat.c.
Require openat-priv.h.
2006-01-09 Bruno Haible <bruno@clisp.org>
* modules/strnlen (Include): Use strnlen.h.
2006-01-09 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Also test for <sys/bitypes.h>.
2006-01-09 Bruno Haible <bruno@clisp.org>
* lib/sysexit_.h (EX_OK): New macro.
Suggested by Martin Lambers <marlam@marlam.de>.
2006-01-09 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: On Linux libc4 and libc5, include <sys/bitypes.h> and
don't define _STDINT_H_NEED_SIGNED_INT_TYPES.
2006-01-09 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (SIZE_MAX): Write the value without involving negative
numbers.
2006-01-09 Bruno Haible <bruno@clisp.org>
* lib/javacomp.sh.in: Move to ../build-aux/javacomp.sh.in.
* lib/javaexec.sh.in: Move to ../build-aux/javaexec.sh.in.
* lib/csharpcomp.sh.in: Move to ../build-aux/csharpcomp.sh.in.
* lib/csharpexec.sh.in: Move to ../build-aux/csharpexec.sh.in.
2006-01-09 Bruno Haible <bruno@clisp.org>
* build-aux/javacomp.sh.in: New file, moved from lib/.
* modules/javacomp-script (Files): Update.
(configure.ac): Add AC_CONFIG_FILES invocation.
(EXTRA_DIST): Remove variable.
* build-aux/javaexec.sh.in: New file, moved from lib/.
* modules/javaexec (Files): Update.
(configure.ac): Add AC_CONFIG_FILES invocation.
(EXTRA_DIST): Remove javaexec.sh.in.
* build-aux/csharpcomp.sh.in: New file, moved from lib/.
* modules/csharpcomp-script (Files): Update.
(configure.ac): Add AC_CONFIG_FILES invocation.
(EXTRA_DIST): Remove variable.
* build-aux/csharpexec.sh.in: New file, moved from lib/.
* modules/csharpexec (Files): Update.
(configure.ac): Add AC_CONFIG_FILES invocation.
(EXTRA_DIST): Remove csharpexec.sh.in.
2006-01-09 Andreas Gruenbacher <agruen@suse.de>
Sync from coreutils.
Add POSIX ACL support
* lib/acl.h (copy_acl, set_acl): Add declarations.
* lib/acl.c (acl_entries): Add fallback implementation for POSIX ACL
systems other than Linux.
(chmod_or_fchmod): New function: use fchmod when possible,
and chmod otherwise.
(file_has_acl): Add a POSIX ACL implementation, with a
Linux-specific subcase.
(copy_acl): Add: copy an acl and S_ISUID, S_ISGID, and
S_ISVTX from one file to another. Fall back to fchmod/chmod when
acls are unsupported.
(set_acl): Add: set a file's acl and S_ISUID, S_ISGID, and
S_ISVTX to a defined value. Fall back to fchmod/chmod when acls
are unsupported.
2006-01-09 Andreas Gruenbacher <agruen@suse.de>
Sync from coreutils.
* m4/acl.m4 (AC_FUNC_ACL): Add POSIX ACL and Linux-specific acl tests.
2006-01-07 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Add an AC_PROG_RANLIB dependency to
gl_EARLY.
2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/strftime.c (tzname): Don't declare if it is already #defined.
Problem reported for Mingw by Mark Junker.
2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
* README: Gnulib normally doesn't generate a tarball.
2006-01-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/xtime.h (xtime_make, xtime_nonnegative_nsec, xtime_nsec): Use
long int, not int, for nanosecond counts, so that people who are
used to POSIX struct timespec won't be surprised. Reported by Jim
Meyering.
2005-12-28 Bruno Haible <bruno@clisp.org>
* build-aux/config.rpath: Update from GNU gettext.
2005-12-16 Jim Meyering <jim@meyering.net>
* modules/fprintftime: New module.
* MODULES.html.sh (Date and time <time.h>): Add fprintftime.
2005-12-16 Jim Meyering <jim@meyering.net>
* m4/fprintftime.m4: New file.
2005-12-16 Jim Meyering <jim@meyering.net>
* lib/fprintftime.c, lib/fprintftime.h: New files.
2005-12-15 Simon Josefsson <jas@extundo.com>
* modules/socklen (configure.ac): Fix M4 macro name, to align with
new m4/socklen.m4.
2005-12-10 Sergey Poznyakoff <gray@gnu.org.ua>
* m4/argp.m4: Define HAVE_DECL_PROGRAM_INVOCATION_NAME and
HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
2005-12-10 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-fmtstream.c (__argp_fmtstream_update): Fix coredump
* lib/argp-help.c (fill_in_uparams): Check if the constructed
struct uparams is valid. Fall back to the default values if it is
not.
2005-12-09 Sergey Poznyakoff <gray@gnu.org.ua>
* modules/argp (Files): Add argp-pin.c
(Depends-on): dirname
(lib_SOURCES): Add argp-pin.c
2005-12-09 Sergey Poznyakoff <gray@gnu.org.ua>
* m4/argp.m4: Check if program_invocation_name and
program_invocation_short_name are declared and define appropriate
macros if they are not.
2005-12-09 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-help.c (__argp_base_name): New function
(__argp_short_program_name): Rewrite using __argp_base_name
* lib/argp-namefrob.h: Define program_invocation_name and
program_invocation_short_name if requested
(__argp_base_name): Add prototype
* lib/argp-parse.c (argp_def): Use gettext wrappers
(argp_default_parser): Use __argp_base_name
* lib/argp-pin.c: New file. Defines program_invocation_name and
program_invocation_short_name on systems that lack them.
2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/stat-time.m4 (gl_STAT_TIME): Add check for
TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3
porting problem reported by Georg Schwarz in
<http://lists.gnu.org/r/bug-coreutils/2005-12/msg00083.html>.
2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
* lib/stat-time.h (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3
porting problem reported by Georg Schwarz in
<http://lists.gnu.org/r/bug-coreutils/2005-12/msg00083.html>.
2005-12-05 Bruno Haible <bruno@clisp.org>
* lib/csharpcomp.sh.in (options_csc): For -l option, add a .dll suffix.
* lib/csharpcomp.c (compile_csharp_using_sscli): Likewise.
Reported by Mark Junker <mjscod@gmx.de>.
2005-12-02 Paul Eggert <eggert@cs.ucla.edu>
* m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Renamed from gl_SOCKLEN_T.
Use implementation from Albert Chin, with some
comments/corrections by Stepan Kasal and myself.
2005-12-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Accept GPLed build tool modules when
--lgpl is given.
* modules/csharpcomp-script: New file.
* modules/csharpcomp: Depend on it.
* modules/javacomp-script: New file.
* modules/javacomp: Depend on it.
Suggested by Simon Josefsson.
2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Check whether off_t can be used in a switch
statement, to work around an HP-UX 10.20 compiler bug reported by
Peter O'Gorman.
2005-11-29 Paul Eggert <eggert@cs.ucla.edu>
* modules/savedir (Depends-on): Add openat.
2005-11-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/stdint_.h (intmax_t) [defined intmax_t]: Do not declare.
(uintmax_t) [defined uintmax_t]: Do not declare.
(SIZE_MAX) [defined SIZE_MAX]: Do not define.
This works around a problem if intmax_t.m4 and/or uintmax_t.m4
and/or size_max.m4 are also used. Problem reported by Mark D. Baushke.
(SIZE_MAX): Define to ((size_t) -1), not (~(size_t)0), for the
sake of portability to weird hosts that C allows (though we don't
know of any practical examples).
* lib/savedir.h (fdsavedir): New decl.
* lib/savedir.c (fdsavedir, savedirstream): New functions; the latter
contains most of the former guts of savedir.
(savedir): Use savedirstream.
Include "openat.h".
2005-11-25 Paul Eggert <eggert@cs.ucla.edu>
* modules/obstack (Files): Add m4/ulonglong.m4.
Problem reported by Davide Angelocola.
2005-11-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/xstrtod.c: Don't bother with #pragma STDC FENV_ACCESS ON, as
coreutils no longer futzes with rounding modes.
2005-11-14 Jim Meyering <jim@meyering.net>
* lib/mkstemp-safer.c: Include <config.h>, required for possible
replacement of mkstemp.
2005-11-10 Simon Josefsson <jas@extundo.com>
* lib/readline.c: Remove EOL.
2005-11-10 Paul Eggert <eggert@cs.ucla.edu>
* modules/gethrxtime (Depends-on): Add gettime.
2005-11-10 Paul Eggert <eggert@cs.ucla.edu>
* m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Don't require AC_HEADER_TIME
or gettimeofday; no longer needed.
2005-11-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/gethrxtime.c: Include "timespec.h" rather than the sys/time /
time business.
(gethrxtime) [! (HAVE_NANOUPTIME
|| (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME)
|| HAVE_MICROUPTIME)]: Fall back on gettime rather than rolling
our own approximation.
2005-11-08 Eric Blake <ebb9@byu.net>
* lib/inet_ntop.h: Use #if !, not #ifndef, for AC_CHECK_DECLS.
2005-11-08 Eric Blake <ebb9@byu.net>
* lib/getaddrinfo.h: Use #if !, not #ifndef, for AC_CHECK_DECLS.
2005-11-04 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Implement --update mode.
2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
Fix porting problem reported by Theodoros V. Kalamatianos.
* lib/utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]:
Don't assume that futimes failing means we must fail.
2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Revamp wording and local
variables to suggest the intended function of the PATH_MAX check.
2005-10-30 Kean Johnston <jkj@sco.com>
Trivial changes to support SCO systems.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Check for MAXPATHLEN as well
as PATH_MAX.
* m4/fpending.m4 (gl_FUNC_FPENDING): Correct check for SCO systems,
where __ptr is null when no I/O is pending.
2005-10-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.c (__getcwd): Don't assume that system calls after readdir
leave errno alone. Problem reported by Dmitry V. Levin.
2005-10-28 Simon Josefsson <jas@extundo.com>
* tests/test-gc-md4.c, tests/test-gc-md5.c, tests/test-gc-sha1.c:
Test more.
* tests/test-gc-md2.c, tests/test-md2.c: New files.
* modules/md2, modules/md2-tests: New files.
2005-10-28 Simon Josefsson <jas@extundo.com>
* m4/inet_ntop.m4: More tests.
* m4/gc-md2.m4, md2.m4: New file.
2005-10-28 Simon Josefsson <jas@extundo.com>
* lib/inet_ntop.h, inet_ntop.c: Make it work under mingw32: Add
"restrict" keywords, as per POSIX. Protect the function
declaration around HAVE_DECL_INET_NTOP rather than HAVE_INET_NTOP.
Don't use K&R prototypes. Check the sprintf return values.
Re-define EAFNOSUPPORT if not present. Indent.
* lib/md5.h, md5.c: Simplify buffer handling visavi alignment,
suggested by Bruno Haible <bruno@clisp.org>.
* lib/gc-gnulib.c, gc-libgcrypt.c: Check calloc return value.
* lib/gc.h: Add MD2 and RMD160 length defines. Add prototypes.
* lib/gc-libgcrypt.c: Add MD2 (which is not available through
libgcrypt).
* lib/gc-gnulib.c: Add MD2. Implement gc_hash_* API.
* lib/md2.h, lib/md2.c: New files.
2005-10-28 Paul Eggert <eggert@cs.ucla.edu>
* lib/savedir.c (savedir): Don't assume that xrealloc etc. leave
errno alone. Problem reported by Frederic Jolliton.
2005-10-27 Paul Eggert <eggert@cs.ucla.edu>
* modules/verify (License): Change from GPL to LGPL. This is a
tiny module and there are apparently near-equivalents that are
under the BSD license.
2005-10-24 Simon Josefsson <jas@extundo.com>
* modules/sha1: Relicense to LGPL.
2005-10-24 Simon Josefsson <jas@extundo.com>
* lib/md4.h: Shrink buffer size, now that we changed the type.
2005-10-23 Simon Josefsson <jas@extundo.com>
* gnulib-tool (func_import): Fix --tests-base.
2005-10-22 Simon Josefsson <jas@extundo.com>
* modules/arcfour (Depends-on): Need stdint.
2005-10-22 Simon Josefsson <jas@extundo.com>
* m4/gc.m4: Don't be fooled by --disable-*random-device parameters,
suggested by Bruno Haible <bruno@clisp.org>. Fix error messages.
2005-10-22 Simon Josefsson <jas@extundo.com>
* lib/md4.h, md4.c: Simplify buffer handling visavi alignment,
suggested by Bruno Haible <bruno@clisp.org>.
2005-10-22 Simon Josefsson <jas@extundo.com>
* lib/crc.h: Include stddef.h, for size_t.
2005-10-22 Simon Josefsson <jas@extundo.com>
* lib/arcfour.h, arcfour.c: Use fixed size indices in the
arcfour_context struct (simplify test vector testing in GNU
Shishi).
2005-10-21 Simon Josefsson <jas@extundo.com>
* modules/des, modules/des-tests: New files.
* modules/gc-des, modules/gc-des-tests: New files.
* tests/test-des.c, tests/test-gc-des.c: New file.
2005-10-21 Simon Josefsson <jas@extundo.com>
* modules/arctwo, modules/arctwo-tests: New files.
* tests/test-arctwo.c: New file.
* modules/gc-arctwo, modules/gc-arctwo-tests: New files.
* tests/test-gc-arctwo.c: New file.
2005-10-21 Simon Josefsson <jas@extundo.com>
* m4/gc.m4: Don't use libgcrypt if gcrypt.h isn't found, suggested by
Bruno Haible <bruno@clisp.org>.
* m4/gc-des.m4: New file.
2005-10-21 Simon Josefsson <jas@extundo.com>
* m4/arctwo.m4: New file.
* m4/gc-arctwo.m4: New file.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/rijndael-api-fst.c: Fix bugs in CBC mode for more than one
block.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/hmac-md5.c (hmac_md5): Add comments, suggested by Bruno Haible
<bruno@clisp.org>.
* lib/hmac-sha1.c (hmac_sha1): Likewise.
* lib/crc.c (crc32_update): Actually use crc parameter, suggested by
Bruno Haible <bruno@clisp.org>.
* lib/crc.h: Include stdint.h directly, suggested by Bruno Haible
<bruno@clisp.org>.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/gc-libgcrypt.c (gc_cipher_open): Handle ECB.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/gc-gnulib.c: Support ARCTWO in CBC mode.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/des.h, lib/des.c: New files.
* lib/gc-gnulib.c: Support DES.c
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/arctwo.h, lib/arctwo.c: New files.
* lib/gc-gnulib.c: Support ARCTWO.
2005-10-21 Simon Josefsson <jas@extundo.com>
* lib/arctwo.h (arctwo_setkey): Protect variable in CPP macro,
suggested by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2005-10-21 Simon Josefsson <jas@extundo.com>
* gnulib-tool (func_import, func_create_testdir): Define automake
conditional GL_COND_LIBTOOL if libtool is used (to be used by modules
Makefile.am snippet),
suggested by Bruno Haible <bruno@clisp.org>.
* modules/gc (Makefile.am): Use it.
2005-10-21 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir): Add quoting to last
patch.
2005-10-19 Simon Josefsson <jas@extundo.com>
* tests/test-gc-rijndael.c: New file.
* modules/gc-rijndael, modules/gc-rijndael-test: New files.
2005-10-19 Simon Josefsson <jas@extundo.com>
* tests/test-gc-md4.c, tests/test-gc-md5.c: Test gc_hash_buffer
interface too.
2005-10-19 Simon Josefsson <jas@extundo.com>
* tests/test-gc-arcfour.c: New file.
* modules/gc-arcfour, modules/gc-arcfour-tests: New files.
2005-10-19 Simon Josefsson <jas@extundo.com>
* modules/gc-md4, modules/gc-md4-tests: New file.
* tests/test-gc-md4.c: New file.
2005-10-19 Simon Josefsson <jas@extundo.com>
* m4/gc-md4.m4: New file.
2005-10-19 Simon Josefsson <jas@extundo.com>
* m4/gc-hmac-md5.m4, gc-hmac-sha1.m4, gc-md4.m4,
gc-md5.m4, gc-sha1.m4: Fix typo, suggested by Stepan Kasal
<kasal@ucw.cz>.
2005-10-19 Simon Josefsson <jas@extundo.com>
* m4/gc-arcfour.m4: New file.
* m4/gc-rijndael.m4: New file.
2005-10-19 Simon Josefsson <jas@extundo.com>
* lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Support MD4.
2005-10-19 Simon Josefsson <jas@extundo.com>
* lib/gc-gnulib.c: Support ARCFOUR.
2005-10-19 Simon Josefsson <jas@extundo.com>
* lib/gc-gnulib.c: Implement gc_cipher_* API, currently only with AES
support.
* lib/gc.h: Add ECB enum type.
* lib/hmac-md5.c, hmac-sha1.c: Include memxor.h.
2005-10-18 Simon Josefsson <jas@extundo.com>
* tests/test-md5.c: New file.
* modules/md5-tests: New file.
2005-10-18 Simon Josefsson <jas@extundo.com>
* tests/test-md4.c: New file.
* modules/md4, modules/md4-tests: New files.
2005-10-18 Simon Josefsson <jas@extundo.com>
* m4/md4.m4: New file.
2005-10-18 Simon Josefsson <jas@extundo.com>
* lib/md4.h, lib/md4.c: New files, based on md5.?.
2005-10-17 Stepan Kasal <kasal@ucw.cz>
* gnulib-tool (func_create_testdir): Omit the second check whether
BUILT_SOURCES in nonempty.
2005-10-17 Simon Josefsson <jas@extundo.com>
* tests/test-rijndael.c: New file.
2005-10-17 Simon Josefsson <jas@extundo.com>
* modules/sha1: Depend on stdint instead of md5.
* modules/md5: Depend on stdint, remove uint32_t.
2005-10-17 Simon Josefsson <jas@extundo.com>
* modules/gc-sha1-tests: New file.
* tests/test-gc-sha1.c: New file.
2005-10-17 Simon Josefsson <jas@extundo.com>
* m4/md5.m4: Remove call to uint32_t.m4.
2005-10-17 Simon Josefsson <jas@extundo.com>
* lib/sha1.c: Use uint32_t instead of md5_uint32.t
* lib/sha1.h: Use stdint.h and uint32_t instead of md5_uint32 from
md5.h.
* lib/md5.c: Use uin32_t. Fix non-gcc UNALIGNED_P macro.
* lib/md5.h: Use stdint.h and uint32_t. Doc fix.
2005-10-17 Simon Josefsson <jas@extundo.com>
* lib/gc.h, gc-libgcrypt.c: Add more hash types/functions.
2005-10-17 Simon Josefsson <jas@extundo.com>
* lib/gc.h, gc-libgcrypt.c: Add ciphers.
2005-10-17 Simon Josefsson <jas@extundo.com>
* lib/gc-libgcrypt.c (gc_hmac_sha1): Fix assert.
* lib/gc.h (gc_nonce, gc_pseudo_random, gc_random): Add prototypes.
2005-10-17 Bruno Haible <bruno@clisp.org>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Change the return statement so
that it can also be used in a test.
2005-10-16 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_tests_Makefile_am): Also define
TESTS_ENVIRONMENT, so that individual tests can augment it.
* gnulib-tool (func_create_testdir): Use an intermediate target for
building $(BUILT_SOURCES). Needed because BUILT_SOURCES can contain
macros, like $(ALLOCA_H), which cannot be passed through the command
line.
2005-10-15 Simon Josefsson <jas@extundo.com>
* modules/rijndael-tests: New file.
* modules/rijndael: New file.
2005-10-15 Simon Josefsson <jas@extundo.com>
* m4/rijndael.m4: New file.
2005-10-15 Simon Josefsson <jas@extundo.com>
* lib/rijndael-api-fst.h, lib/rijndael-api-fst.c: New files.
* lib/rijndael-alg-fst.h, lib/rijndael-alg-fst.c: New files.
2005-10-14 Simon Josefsson <jas@extundo.com>
* tests/test-arcfour.c: New file.
* modules/arcfour, modules/arcfour-tests: New files.
2005-10-14 Simon Josefsson <jas@extundo.com>
* m4/arcfour.m4: New file.
2005-10-14 Simon Josefsson <jas@extundo.com>
* lib/arcfour.h, lib/arcfour.c: New files.
2005-10-14 Roland McGrath <roland@redhat.com>
Import from libc. [BZ #1331]
* lib/obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed
macro argument.
Reported by Matej Vela <vela@debian.org>.
2005-10-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't
include <wchar.h>; no longer needed.
2005-10-14 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bug 321 for obstack.c, obstack.h.
2005-10-14 Jakub Jelinek <jakub@redhat.com>
and Ulrich Drepper <drepper@redhat.com>
Import from libc.
* lib/obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf
instead of inline stream orientation test and two separate
function calls. Pay no attention to USE_IN_LIBIO.
2005-10-13 Simon Josefsson <jas@extundo.com>
* modules/gc-hmac-md5-tests: New file.
* tests/test-gc-hmac-sha1.c: New file.
* tests/test-gc.c (main): Remove MD5 and HMAC-MD5 tests.
* modules/gc-hmac-md5-tests: New file.
* tests/test-gc-md5.c: New file.
* modules/gc-md5-tests: New file.
2005-10-13 Simon Josefsson <jas@extundo.com>
* lib/gc-pbkdf2-sha1.c (gc_pbkdf2_sha1): Optimize CEIL computation.
Move memory allocation outside of loop.
2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/mkdir-p.c (make_dir_parents): Don't report an error if an
intermediate directory is in a read-only file system. Problem
reported by Eric Blake.
2005-10-13 Oskar Liljeblad <oskar@osk.mine.nu>
* modules/human (Depends-on): Depend on xstrtoumax, not xstrtol.
2005-10-12 Simon Josefsson <jas@extundo.com>
* tests/test-hmac-sha1.c: New file.
* modules/hmac-sha1-tests: New file.
* modules/hmac-sha1: New file.
2005-10-12 Simon Josefsson <jas@extundo.com>
* modules/gc-sha1: New file.
2005-10-12 Simon Josefsson <jas@extundo.com>
* modules/gc-pbkdf2-sha1, modules/gc-pbkdf2-sha1-tests: New files.
* tests/test-gc-pbkdf2-sha1.c: New file.
2005-10-12 Simon Josefsson <jas@extundo.com>
* modules/gc-md5, modules/gc-hmac-md5: New files.
* modules/gc (Files): Remove md5, memxor and hmac files.
2005-10-12 Simon Josefsson <jas@extundo.com>
* m4/gc-pbkdf2-sha1.m4: New file.
* m4/gc-hmac-sha1.m4: New file.
* m4/gc-sha1: New file.
* m4/hmac-sha1.m4: New file.
2005-10-12 Simon Josefsson <jas@extundo.com>
* m4/gc-md5.m4, m4/gc-hmac-md5.m4: New files.
* m4/gc.m4: Don't call gl_MD5, gl_MEMXOR or gl_HMAC_MD5.
2005-10-12 Simon Josefsson <jas@extundo.com>
* lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Use Gc_rc for return types,
suggested by Bruno Haible <bruno@clisp.org>.
2005-10-12 Simon Josefsson <jas@extundo.com>
* lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Support SHA-1.
2005-10-12 Simon Josefsson <jas@extundo.com>
* lib/gc-pbkdf2-sha1.c: New file.
* lib/gc.h: Add gc_pbkdf2_sha1 prototype.
2005-10-12 Simon Josefsson <jas@extundo.com>
* lib/gc-libgcrypt.c (gc_hmac_sha1): New function.
* lib/gc-gnulib.c (gc_hmac_sha1): New function.
2005-10-12 Simon Josefsson <jas@extundo.com>
* lib/gc-gnulib.c: Condition MD5 and HMAC-MD5 use on GC_USE_MD5 and
GC_USE_HMAC_MD5, respectively.
* lib/gc-libgcrypt.c (gc_md5): Fix assert call.
(gc_md5): Fix typo.
* lib/gc.h (gc_hash_buffer): Use gc_hash in prototype.
* lib/gc-libgcrypt.c (gc_hash_buffer): Ditto.
* lib/gc-gnulib.c (gc_hash_buffer): Ditto.
2005-10-12 Bruno Haible <bruno@clisp.org>
* m4/stdbool.m4 (gl_STDBOOL_H): Define as an alias of AM_STDBOOL_H.
Reported by Stepan Kasal <kasal@ucw.cz>.
2005-10-11 Simon Josefsson <jas@extundo.com>
* tests/test-crc.c: New file.
* modules/crc, modules/crc-tests: New files.
2005-10-11 Simon Josefsson <jas@extundo.com>
* m4/crc.m4: New file.
2005-10-11 Simon Josefsson <jas@extundo.com>
* lib/gc.h: Add gc_hash and gc_hash_buffer.
* lib/gc-gnulib.c (gc_hash_buffer): Add. Reorder #include's.
* lib/gc-libgcrypt.c (gc_hash_buffer): Add.
2005-10-11 Simon Josefsson <jas@extundo.com>
* lib/crc.h, lib/crc.c: New files.
* lib/gc.h (gc_hash_buffer): Add doc.
2005-10-11 Bruno Haible <bruno@clisp.org>
* modules/c-strcasestr: New file.
* MODULES.html.sh (String handling <string.h>): Add c-strcasestr.
2005-10-11 Bruno Haible <bruno@clisp.org>
* modules/c-strcase: New file.
* MODULES.html.sh (String handling <string.h>): Add c-strcase.
2005-10-11 Bruno Haible <bruno@clisp.org>
* lib/strcasecmp.c: Include limits.h.
(strcasecmp): Avoid integer overflow on exotic platforms.
* lib/strncasecmp.c: Include limits.h.
(strncasecmp): Avoid integer overflow on exotic platforms.
Reported by Paul Eggert.
2005-10-11 Bruno Haible <bruno@clisp.org>
* lib/c-strcasestr.h: New file, from GNU gettext.
* lib/c-strcasestr.c: New file, from GNU gettext.
2005-10-11 Bruno Haible <bruno@clisp.org>
* lib/c-strcase.h: New file, from GNU gettext.
* lib/c-strcasecmp.c: New file, from GNU gettext.
* lib/c-strncasecmp.c: New file, from GNU gettext.
2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
* modules/mempcpy (License): GPL -> LGPL.
* modules/strchrnul (License): Likewise.
* modules/sysexits (License): Likewise.
2005-10-08 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Bug 1423 is closed, but 1439 remains.
2005-10-07 Simon Josefsson <jas@extundo.com>
* m4/memxor.m4: Remove gl_C_RESTRICT call.
2005-10-06 Simon Josefsson <jas@extundo.com>
* tests/test-hmac-md5.c: New file.
* modules/hmac-md5-tests: New file.
* modules/hmac-md5: New file.
2005-10-06 Simon Josefsson <jas@extundo.com>
* m4/hmac-md5.m4: New file.
* m4/memxor.m4: Require gl_C_RESTRICT.
2005-10-06 Simon Josefsson <jas@extundo.com>
* lib/memxor.c (memxor): Avoid casts and warnings.
2005-10-06 Simon Josefsson <jas@extundo.com>
* lib/hmac-md5.c: New file.
* lib/hmac.h: New file.
2005-10-06 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Check that bool
promotes to int, not unsigned int, to catch the AIX 5.3
compiler bug.
2005-10-05 Simon Josefsson <jas@extundo.com>
* modules/memxor: New file.
* modules/iconv (Files): Move config.rpath to havelib, it is used
there.
* modules/havelib (Files): Add config.rpath.
2005-10-05 Simon Josefsson <jas@extundo.com>
* m4/memxor.m4: New file.
2005-10-05 Simon Josefsson <jas@extundo.com>
* lib/memxor.c (memxor): Fix compiler error.
* lib/md5.h (MD5_DIGEST_SIZE, MD5_BLOCK_SIZE): Add, see also
<http://sourceware.org/bugzilla/show_bug.cgi?id=1423>.
* lib/memxor.h, lib/memxor.c: New files.
* lib/getaddrinfo.h: Don't protect sys/types.h with HAVE_SYS_TYPES_H,
we assume all systems have it, suggested by Jim Meyering
<jim@meyering.net>. Remove HAVE_SYS_SOCKET_H test too, to see if
any systems lack sys/socket.h; mingw32 is known to lack it, but we
don't support it yet anyway. Also remove HAVE_NETDB_H test, for
same reasons.
2005-10-05 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Add glibc bug 1423 for md5.h.
2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Don't check for
sys/socket.h, netdb.h, sys/types.h; the checks areno longer
needed, since the source code now assumes these .h files.
2005-10-05 Derek Price <derek@ximbiot.com>
* lib/getdelim.c (SIZE_MAX): New macro, if not already defined.
2005-10-05 Bruno Haible <bruno@clisp.org>
* modules/stdint (License): Change to LGPL.
2005-10-04 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.h: Move sys/types.h include first, reported by "Mark
D. Baushke" <mdb@gnu.org>.
2005-10-04 Bruno Haible <bruno@clisp.org>
* lib/verify.h (verify_true): Provide alternative definition for C++.
2005-10-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdelim.c: Include getdelim.h first. Include <limits.h>.
(SSIZE_MAX): New macro, if not already defined.
(getdelim): Fix buffer overrun on 64-bit hosts with lines longer
than 2 GiB.
2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/openat.m4 (gl_FUNC_OPENAT): Check for fdopendir.
* m4/ullong_max.m4 (gl_ULLONG_MAX): Simplify so that it merely
defines ULONG_MAX_LT_ULLONG_MAX. Thomas M.Ott reports that
ULLONG_MAX doesn't work with 2.7.2.1.
2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
* modules/xreadlink (Makefile.am): Remove lib_SOURCES.
From Ben Pfaff.
* modules/exclude (Depends-on): Depend on verify.
* modules/strtoimax (Depends-on): Likewise.
* modules/utimecmp (Depends-on): Likewise.
2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
* lib/exclude.c: Include verify.h.
(verify): Remove. All callers changed to use verify.h's version.
* lib/strtoimax.c: Likewise.
* lib/utimecmp.c: Likewis.e
Sync from coreutils.
* lib/.cppi-disable: Add getaddrinfo.h, getdelim.h, getline.h,
getpass.c, mbchar.h, mbuiter.h, strcase.h, strnlen.h, strnlen1.h.
* lib/.cvsignore: Add fts.h, search.h, t-fpending.
* lib/settime.c (settime): Fix { typo in previous patch. Also, don't
bother returning ENOSYS if settimeofday or stime fails; just let
them return whatever errno they want to return.
* lib/utimens.c: Include unistd.h, for dup2.
(futimens): Fix typo: HAVE_FUTIMESAT was misspelled in an #if.
(futimens) [! HAVE_FUTIMESAT]: If !file, set errno before returning -1.
2005-10-02 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/utimes.m4 (gl_FUNC_UTIMES): Detect the version of utimes
from glibc-2.2.5 that fails for read-only files.
2005-10-02 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/fts-cycle.c [HAVE_CONFIG_H]: Include <config.h>.
* lib/openat-die.c: Use `#ifdef HAVE_CONFIG_H', not
`#if HAVE_CONFIG_H'.
* lib/openat.c (fdopendir): Do not define if HAVE_FDOPENDIR.
Remove AT_FDCWD test.
Do not consume the fd unless successful.
* lib/openat.h (fdopendir): Do not define if HAVE_FDOPENDIR.
* lib/settime.c (settime): Move the HAVE_STIME block `up' into an #elif
block, so that we don't even try to compile it if settimeofday is
available. This works around a compilation failure on OSF1 V5.1,
due to stime requiring a `long int*' while tv_sec is `int'.
2005-10-02 Alfred M. Szmidt <ams@gnu.org>
Sync from coreutils.
* m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Compare $gl_have_path...
against `yes', rather than just testing for nonempty.
2005-10-01 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: Include sys/types.h for sys/socket.h, on FreeBSD
and Darwin.
* m4/getaddrinfo.m4: Use AC_GNU_SOURCE, GNU only declare getaddrinfo
as an (POSIX) extension. Check for sys/types.h, sys/socket.h, and
netdb.h too, needed by getaddrinfo.h. Check if getaddrinfo,
freeaddrinfo and gai_strerror are declared by the POSIX headers.
Check if struct addrinfo is declared.
2005-10-01 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.h: Protect #include's of sys/socket.h and netdb.h.
Only define struct addrinfo if !HAVE_STRUCT_ADDRINFO. Protect
AI_* and EAI_* definitions. Protect function declarations.
2005-10-01 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Look for getservbyname in these
libraries [inet nsl socket xnet]. Nelson Beebe reported that with
native cc on Solaris 7, getaddrinfo.c requires -lsocket.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Check for gethostbyname
in the inet and nsl libraries. Required on Solaris 5.7.
2005-10-01 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Check for gethostbyname
in the inet and nsl libraries. Required on Solaris 5.7.
2005-10-01 Eric Blake <ebb9@byu.net> (tiny change)
* lib/getdelim.c (getdelim): Remove unused variables.
2005-09-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/xtime.h (XTIME_PRECISION): Now of type int, not long long int,
so that the code works even with ancient cpp. Portability problem
with GCC 2.7.2.1 reported by Thomas M.Ott.
2005-09-27 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (Depends-on): Add strcase.
* modules/gethostname (Licence): Change from GPL to LGPL, since
gethostname.c is a trivial implementation of a standard library
function.
* modules/poll (License): Change from GPL to LGPL, since it's
derived from LGPL code.
2005-09-27 Jim Meyering <jim@meyering.net>
* lib/getcwd.c: Change #ifdef<TAB>HAVE_CONFIG_H to #ifdef
HAVE_CONFIG_H.
* lib/intprops.h (signed_type_or_expr__): Define.
(INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound
for unsigned types.
2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
* lib/verify.h (verify_expr): Remove, replacing with:
(verify_true): New macro that returns true instead of void.
(verify_type__): Remove.
(verify): Use verify_true rather than verify_type__.
2005-09-26 Bruno Haible <bruno@clisp.org>
* modules/mbchar (Include): Mention that HAVE_WCHAR_H && HAVE_WCTYPE_H
is necessary.
(lib_SOURCES): Remove mbchar.c.
* modules/mbfile (Include): Mention that HAVE_MBRTOWC is necessary.
(Files): Add m4/mbrtowc.m4.
* modules/mbiter: Likewise.
* modules/mbuiter: Likewise.
2005-09-26 Bruno Haible <bruno@clisp.org>
* m4/mbchar.m4 (gl_MBCHAR): Check for wchar.h and wctype.h. Don't
compile mbchar.c if they are not both present.
* m4/mbfile.m4 (gl_MBFILE): Require gl_FUNC_MBRTOWC.
* m4/mbiter.m4 (gl_MBITER): Likewise.
* m4/strstr.m4 (gl_PREREQ_STRSTR): Use AC_REQUIRE.
* m4/strcasestr.m4 (gl_PREREQ_STRCASESTR): Likewise.
* m4/strcase.m4 (gl_PREREQ_STRCASECMP): Likewise.
2005-09-25 Jim Meyering <jim@meyering.net>
* modules/inet_ntop (Depends-on): Add socklen, since inet_ntop.c
also uses socklen_t.
2005-09-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/utimens.c (ENOSYS): Define if not already defined.
(futimens): Support having a null PATH if the file descriptor
is nonnegative.
* lib/regex_internal.h (__GNUC_PREREQ, always_inline, inline, pure):
Remove.
(__attribute): Define to empty unless GCC 3.1 or later.
This works around a core dump on OpenBSD 3.4, which has GCC
2.95.3, which dumps core when given __attribute__(()). It also
simplifies other tests, since we really don't want to bother with
worrying about which ancient version of GCC supported what.
Original problem reported by Yoann Vandoorselaere, with part of
the fix suggested by Derek Price.
2005-09-24 Jim Meyering <jim@meyering.net>
* lib/verify.h (verify_type__): Use `unsigned int' as the bitfield type
so we can once again use a positive bitfield width of 1 -- now we
don't have to explain why we were using a bitfield width of 2.
2005-09-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): If replacing, define regcomp to rpl_regcomp,
and similarly for the other external symbols. Problem reported
by James Gallager.
* m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Catch Sun Studio 10u1 on Linux
bug reported by Jim Meyering.
* m4/utimens.m4 (gl_UTIMENS): Check for futimesat.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Undo previous change;
not needed, since socklen is a prerequisite module.
2005-09-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/getaddrinfo.c [HAVE_NETINET_IN_H]: Include <netinet/in.h>.
Problem reported by Eric Blake.
(getaddrinfo): Initialize se so that it's not garbage.
Redo internal storage allocation so that it doesn't make unportable
assumptions about alignment.
Fix a memory leak.
* lib/utimens.c (futimens): Use futimesat if available.
Prefer it to futimes since it doesn't have the futimes bug.
* lib/verify.h (GL_CONCAT0, GL_CONCAT): Remove.
(verify): Don't use the __LINE__ trick, as it doesn't work in general.
Instead, declare a function that returns a pointer to an array,
and use verify_type__ to declare the size of the array.
Problem and germ of a solution reported by Bruno Haible.
(verify_type__): Use 2, not 1, for bitfield size, to avoid
a warning with Irix 6.5 cc. Problem reported by Bruno Haible.
2005-09-23 Jim Meyering <jim@meyering.net>
Sync from coreutils.
Correct build failure (socklen_t not defined) on at least
mips-sgi-irix6.5 and alphaev67-dec-osf5.1.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Require gl_SOCKLEN_T.
2005-09-23 Jim Meyering <jim@meyering.net>
* modules/getaddrinfo (Depends-on): Add socklen.
2005-09-23 Bruno Haible <bruno@clisp.org>
* tests/test-verify.c: New file.
2005-09-22 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* modules/argmatch (Depends-on): Add verify.
* modules/getloadavg (Depends-on): Depend on fcntl-safer, not
unistd-safer.
* modules/save-cwd (Depends-on): Likewise.
* modules/openat (Files): Add lib/openat-die.c.
(Depends-on): Remove error, exitfail.
Add dirname.
* modules/verify: New file.
* MODULES.html.sh (Diagnostics <assert.h>): New section,
with "verify" module.
2005-09-22 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/backupfile.m4, calloc.m4, chown.m4, cloexec.m4, dup2.m4:
* m4/fileblocks.m4, free.m4, ftruncate.m4, getcwd.m4, getpagesize.m4:
* m4/getugroups.m4, group-member.m4, idcache.m4, link-follow.m4:
* m4/mkstemp.m4, mktime.m4, mountlist.m4, nanosleep.m4, pathmax.m4:
* m4/physmem.m4, posixver.m4, putenv.m4, safe-read.m4, same.m4:
* m4/save-cwd.m4, stdio-safer.m4, unistd-safer.m4, unlinkdir.m4:
* m4/userspec.m4, xgetcwd.m4, xreadlink.m4:
Don't bother checking for string.h, stdlib.h, unistd.h.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Don't require
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK; that's now the lstat
module's job.
* m4/jm-macros.m4 (gl_MACROS): Likewise.
* m4/prereq.m4 (gl_PREREQ): Add gl_FUNC_LSTAT.
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): New macro.
(gl_GETDATE): Use it.
* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't bother checking for unistd.h.
2005-09-22 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* lib/.cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h,
stat-time.h.
* lib/argmatch.h: Include verify.h
(ARGMATCH_VERIFY): Use verify rather than rolling our own.
(ARGMATCH_ASSERT): Remove; unused.
* lib/canonicalize.c: Assume STDC_HEADERS.
* lib/exclude.c: Include "strcase.h".
* lib/regex_internal.h [!defined _LIBC]: Likewise.
* lib/getusershell.c: Include stdio--.h rather than stdio.h
and stdio-safer.h.
(getusershell): Call fopen, not fopen_safer.
* lib/save-cwd.c: Include fcntl--.h rather than fcntl.h.
Do not include unistd-safer.h.
(save_cwd): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
* lib/getdate.y (relative_time): New type.
(RELATIVE_TIME_0): New constant.
(parser_control): Use relative_time instead of doing it ourselves.
(%union): Add new relative_time rel member.
(tYEAR_UNIT, tMONTH_UNIT, tHOUR_UNIT, tMINUTE_UNIT, tSEC_UNIT):
Now typeless.
(relunit, relunit_snumber): Now of type rel.
(zone, rel, relunit, get_date): Adjust to above changes.
* lib/getloadavg.c: Include fcntl--.h rather than fcntl.h.
Do not include unistd-safer.h.
(getloadavg): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
* lib/mkdir-p.c (ENOSYS): Define to EEXIST if not defined.
(make_dir_parents): Treat ENOSYS like EEXIST.
Improve quality of diagnostics on restore_cwd failure.
* lib/mkdir-p.h (make_dir): Remove. All uses replaced by mkdir.
(make_dir_parents): Last arg is now int * (for errno), not bool *.
* lib/mkdir-p.c (make_dir, make_dir_parents): Likewise.
Rewrite "mkdir -p" algorithm to avoid the need for "stat"
each time through the loop. Do not diagnose restore_cwd failure;
that is the caller's job (and perhaps the caller does not care).
* lib/mkdir-p.c (CLEANUP_CWD, CLEANUP): Remove.
(make_dir_parents): Revamp to avoid need for CLEANUP_CWD, CLEANUP.
If the file already exists but is not a directory, don't bother
to try to make its parents.
Close potential file descriptor leak if we can't chdir("/") (!).
Don't always return true if chdir($PWD) fails; return true only
if the requested action was done successfully (except for the
chdir($PWD)).
Don't log final directory unless we actually made it.
Refactor to avoid duplicate code to fix up permissions.
Don't attempt to fix up parent permissions if chdir($PWD) fails.
* lib/strftime.c (my_strftime): Rewrite the previous change slightly,
to make it a bit faster and (I hope) clearer.
* lib/strftime.c (my_strftime): Add support for %:z, %::z, %:::z.
Fix bug in formats like %2N.
* lib/verify.h: New file.
2005-09-22 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Check for netinet/in.h.
2005-09-22 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/lstat.m4 (gl_FUNC_LSTAT):
Use AC_LIBSOURCES to require lstat.c and lstat.h.
Remove obsolete comment.
* m4/xreadlink.m4: Use AC_LIBSOURCES and AC_LIBOBJ.
* m4/xstrtod.m4: Likewise.
* m4/openat.m4 (gl_FUNC_OPENAT): Add openat-die.c.
2005-09-22 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/backupfile.c: Use ARGMATCH_VERIFY, just in case.
* lib/posixtm.c (posixtime) [lint]: Initialize *all* of tm0, not just
the .tm_year member, since otherwise gcc-4.0 would now warn about
tm_zone, tm_gmtoff, tm_isdst, tm_yday, tm_wday.
* lib/quotearg.c (quotearg_n_options): Change code to be suboptimal, in
order to avoid an unsuppressible warning from gcc on 64-bit systems.
* lib/getdate.y (get_date): Undo part of the 2005-04-04 change, so that
the command "date -d'2005-03-27 +1 day'" succeeds once again, even
when run in a time zone for which daylight savings time is in effect
for the starting date.
* lib/mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD)
stop us from restricting permissions of just-created absolute-named
directories.
* lib/mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing
to restore initial working directory.
* lib/mkdir-p.c (make_dir_parents): New parameter:
different_working_dir, to tell caller if/when we change the working
directory and are unable to return to the initial one.
* lib/mkdir-p.h (make_dir_parents): Update prototype.
* lib/mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to
`return false'. This fixes a bug introduced on 2004-07-30.
* lib/openat.c (fdopendir): Be sure to close the supplied
file descriptor before returning. This makes our replacement
implementation a little closer to Solaris's, where fdopendir
ties the file descriptor to the returned DIR* pointer.
* lib/openat.c (unlinkat): New function.
* lib/openat.h (unlinkat): Add prototype.
* lib/openat-die.c (openat_save_fail): Rename from openat_save_die.
(openat_restore_fail): Rename from openat_restore_die.
* lib/openat.c, openat.h: Reflect s/_die/_fail/ renaming.
Provide an alternative to exiting immediately upon save_cwd or
restore_cwd failure. Now, an application can arrange e.g.,
to perform a longjump in that case.
* lib/openat.c: Include dirname.h.
Use IS_ABSOLUTE_FILE_NAME rather than testing for leading slash.
(rpl_openat, fdopendir, fstatat): Call openat_save_die
and openat_restore_die rather than calling error directly.
Don't include "error.h" or "exitfail.h"; they're no longer needed.
* lib/openat-die.c (openat_save_die, openat_restore_die): New file.
* lib/openat.h (openat_save_die, openat_restore_die): Declare and
define.
* lib/strftime.c [FPRINTFTIME] (fprintftime): Provide a new interface:
size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm,
int utc, int nanoseconds);
Background:
date should not have to allocate a megabyte of virtual memory to
handle a format argument like +%1048575T. When implemented with
strftime, it must allocate such a buffer, use strftime to fill it
in, print it, then free it.
With fprintftime, it simply prints everything and exits.
With no need for memory allocation, that's one fewer way to fail.
* lib/strftime.c (my_strftime): Parse the colons of %:::z *after* the
optional field width, not before, so we accept %9:z, not %:9z.
(my_strftime): Be sure to use L_('x') for literals.
* lib/backupfile.c, lib/canon-host.c, lib/canonicalize.c, lib/chown.c:
* lib/cloexec.c, lib/dup-safer.c, lib/dup2.c, lib/euidaccess.c:
* lib/fd-safer.c, lib/fileblocks.c, lib/fopen-safer.c, lib/fsusage.c:
* lib/ftruncate.c, lib/getcwd.c, lib/getcwd.h, lib/getloadavg.c:
* lib/getopt_.h, lib/getpagesize.h, lib/getugroups.c:
* lib/group-member.c, lib/human.h, lib/idcache.c, lib/mkdir-p.c:
* lib/mountlist.c, lib/nanosleep.c, lib/pathmax.h, lib/physmem.c:
* lib/posixver.c, lib/putenv.c, lib/raise.c, lib/safe-read.c:
* lib/same.c, lib/save-cwd.c, lib/setenv.c, lib/settime.c:
* lib/tempname.c, lib/unlinkdir.c, lib/unsetenv.c, lib/userspec.c:
* lib/xgethostname.c, lib/xreadlink.c:
Assume HAVE_UNISTD_H, i.e., include <unistd.h> unconditionally.
* lib/chown.c, lib/cloexec.c, lib/dup-safer.c, lib/dup2.c:
* lib/fsusage.c, lib/getcwd.c, lib/getloadavg.c, lib/mountlist.c:
* lib/openat.h, lib/save-cwd.c, lib/tempname.c:
Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
and don't include <sys/file.h>).
2005-09-22 Eric Blake <ebb9@byu.net> (tiny change)
Sync from coreutils.
* lib/getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin.
[__linux__]: Allocate a big enough buffer for /proc/loadavg.
[!LDAV_DONE]: Avoid unused variable warning.
2005-09-21 Bruno Haible <bruno@clisp.org>
* lib/unicodeio.h (unicode_to_mb): New declaration.
2005-09-20 Derek Price <derek@ximbiot.com>
* lib/getaddrinfo.c: Don't include <netdb.h> included from
getaddrinfo.h.
2005-09-20 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Remove trailing slashes from the values specified for
--source-base, --m4-base, --tests-base, --aux-dir.
Suggested by Simon Josefsson <jas@extundo.com>.
2005-09-20 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_all_modules, func_modules_transitive_closure,
func_modules_to_filelist, func_import, func_create_testdir): Make all
sorting results locale-independent, so that gnulib-cache.m4 doesn't
change when gnulib-tool is invoked in a different locale.
2005-09-19 Simon Josefsson <jas@extundo.com>
* m4/socklen.m4: Fix typo.
2005-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Use a consistent style for including <config.h>.
* lib/__fpending.c, lib/acl.c, lib/argmatch.c, lib/argp-help.c,
lib/argp-parse.c, lib/argp-pvh.c, lib/backupfile.c, lib/basename.c,
lib/c-stack.c, lib/calloc.c, lib/check-version.c, lib/cloexec.c,
lib/closeout.c, lib/copy-file.c, lib/creat-safer.c, lib/cycle-check.c,
lib/dirfd.c, lib/dirname.c, lib/dup-safer.c, lib/dup2.c,
lib/euidaccess.c, lib/exclude.c, lib/exitfail.c, lib/fatal-signal.c,
lib/fd-safer.c, lib/file-type.c, lib/fileblocks.c, lib/filemode.c,
lib/filenamecat.c, lib/findprog.c, lib/fnmatch.c, lib/fopen-safer.c,
lib/free.c, lib/fsusage.c, lib/ftruncate.c, lib/full-write.c,
lib/fwriteerror.c, lib/getaddrinfo.c, lib/getcwd.c, lib/getdelim.c,
lib/getline.c, lib/getlogin_r.c, lib/getndelim2.c, lib/getnline.c,
lib/getopt1.c, lib/getpass.c, lib/group-member.c, lib/hard-locale.c,
lib/hash-pjw.c, lib/hash.c, lib/human.c, lib/idcache.c,
lib/inet_ntop.c, lib/isdir.c, lib/long-options.c, lib/malloc.c,
lib/memcasecmp.c, lib/memcmp.c, lib/memcoll.c, lib/memcpy.c,
lib/memmove.c, lib/mkdir-p.c, lib/modechange.c, lib/mountlist.c,
lib/open-safer.c, lib/physmem.c, lib/pipe-safer.c, lib/pipe.c,
lib/poll.c, lib/posixver.c, lib/progname.c, lib/progreloc.c,
lib/putenv.c, lib/quote.c, lib/quotearg.c, lib/readline.c,
lib/readlink.c, lib/realloc.c, lib/regex.c, lib/rename.c, lib/rmdir.c,
lib/rpmatch.c, lib/safe-read.c, lib/same.c, lib/save-cwd.c,
lib/savedir.c, lib/sig2str.c, lib/strcspn.c, lib/strerror.c,
lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c,
lib/strnlen1.c, lib/strsep.c, lib/strstr.c, lib/strtod.c,
lib/strtoimax.c, lib/strtol.c, lib/strverscmp.c, lib/tempname.c,
lib/time_r.c, lib/userspec.c, lib/utimecmp.c, lib/version-etc-fsf.c,
lib/version-etc.c, lib/wait-process.c, lib/xalloc-die.c, lib/xgetcwd.c,
lib/xmalloc.c, lib/xmemcoll.c, lib/xnanosleep.c, lib/xreadlink.c,
lib/xsetenv.c, lib/xstrndup.c, lib/xstrtoimax.c, lib/xstrtol.c,
lib/xstrtoumax.c, lib/yesno.c:
Standardize inclusion of config.h.
* lib/__fpending.h, lib/dirfd.h, lib/getdate.h, lib/human.h,
lib/inttostr.h: Removed inclusion of config.h from header files.
* lib/inttostr.c: Adjusted in-tree users.
* lib/timespec.h: Remove superfluous warning to include config.h.
* lib/atexit.c, lib/chdir-long.c, lib/chown.c, lib/fchown-stub.c,
lib/getgroups.c, lib/gettimeofday.c, lib/lchown.c, lib/lstat.c,
lib/mkdir.c, lib/mkstemp.c, lib/nanosleep.c, lib/openat.c, lib/raise.c,
lib/readtokens0.c, lib/readutmp.c, lib/unlinkdir.c: Guard inclusion of
config.h with HAVE_CONFIG_H.
2005-09-19 Jim Meyering <jim@meyering.net>
* modules/pathmax (License): Change to LGPL.
2005-09-19 Derek Price <derek@ximbiot.com>
* config/srclist.txt: glibc's glob.h is now in lib/glob-libc.h.
2005-09-19 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): Provide default for --tests-base.
2005-09-19 Bruno Haible <bruno@clisp.org>
* doc/quote.texi: New file, extracted from gnulib.texi.
* doc/ctime.texi: New file, extracted from gnulib.texi.
* doc/inet_ntoa.texi: New file, extracted from gnulib.texi.
* doc/gnulib-tool.texi: New file, extracted from gnulib.texi.
* doc/gnulib.texi: Include them.
2005-09-18 Bruno Haible <bruno@clisp.org>
Portability fix.
* gnulib-tool (func_readlink): New function.
(func_ln_if_changed): Use it.
2005-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Support --with-tests also with --import.
(func_emit_tests_Makefile_am): Use variables $m4base and $testsbase.
(func_import): Use variables $testsbase and $inctests. Emit a
gl_TESTS_BASE form into gnulib-cache.m4. Create $testsbase/Makefile.am.
Remind the user to add AC_CONFIG_FILES($testsdir/Makefile) and
SUBDIRS += $testsdir.
(func_create_testdir): Update.
2005-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Revise --dry-run implementation. Use variable $doit
instead of $dry_run.
(func_cp_if_changed, func_mv_if_changed): Remove functions.
(func_ln_if_changed): Don't handle dry-run here.
(func_import): In dry-run mode, detect more precisely which actions
would be performed, and don't use "...ing" verbs.
2005-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_tmpdir): New function, taken from GNU gettextize.
(func_import): Use join on two temporary files instead of three nested
loops, in order to determine which files are new or old.
2005-09-18 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Comment out code that spits out the
new files with --dry-run.
2005-09-18 Bruno Haible <bruno@clisp.org>
* doc/gnulib.texi (Invoking gnulib-tool): 50% rewritten.
2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/stat-time.h: New file.
* lib/timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP):
(MTIME_CMP, TIMESPEC_NS): Remove. Now done by stat-time.h,
in a different way.
(timespec_cmp): New function.
* lib/utimecmp.c: Include stat-time.h.
(SYSCALL_RESOLUTION): Depend on whether various struct stat
members exist, not on the obsolescent ST_MTIM_NSEC.
(utimecmp): Use the new stat-time functions rater than TIMESPEC_NS.
2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove glibc bug 1033 and uncomment mktime.c.
2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (File system functions): Add stat-time.
* modules/stat-time: New file.
* modules/timespec (Files): Remove m4/st_mtim.m4; this
is now done in a different way, by the stat-time module.
* modules/utimecmp (Depends-on): Add stat-time.
2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
* m4/st_mtim.m4: Remove. Superseded by...
* m4/stat-time.m4: New file.
* m4/timespec.m4 (gl_TIMESPEC): Require AC_C_INLINE.
Do not invoke AC_STRUCT_ST_MTIM_NSEC; no longer needed.
2005-09-15 Derek Price <derek@ximbiot.com>
* m4/strstr.m4 (gl_FUNC_STRSTR): Don't define strstr here.
2005-09-15 Derek Price <derek@ximbiot.com>
* lib/regex_internal.h: Blank `pure' for GNUC < 3.
* lib/regex_internal.c: Ditto, using this...
(__GNUC_PREREQ): ...new macro.
* lib/regcomp.c, regexec.c: Blank `always_inline' for GNUC < 3.1
using...
(__GNUC_PREREQ): ...this new macro.
* lib/strstr.h: Include string.h. Define strstr as a macro here.
2005-09-15 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* lib/regcomp.c, regexec.c, regex_internal.c: Back out previous
changes, consolidating in...
* lib/regex_internal.h: ...this file.
2005-09-13 Jim Meyering <jim@meyering.net>
* lib/canon-host.c: Filter through gnu indent and reword comments
slightly.
* lib/canon-host.h (ch_strerror_r): Tweak cpp indentation and spacing.
2005-09-13 Derek Price <derek@ximbiot.com>
* lib/canon-host.c (canon_host_r): Set *cherror on memory allocation
failure.
Reported by Jim Meyering <jim@meyering.net>.
2005-09-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* lib/base64.c: Typo.
(base64_encode): Put b64str in initialized data section.
2005-09-12 Paul Eggert <eggert@cs.ucla.edu>
Merge glibc and coreutils changes into gnulib, plus a few
extra fixes.
* lib/md5.c: Use #error rather than a string.
(CYCLIC): New macro, from glibc source. Use it instead of rol.
* lib/md5.h (__GNUC_PREREQ, __THROW): Define if not defined already.
(__attribute__): Define to empty for non recent-GCC.
(__md5_buffer, __md5_finish_ctx, __md5_init_ctx, __md5_process_block):
(__md5_process_bytes, __md5_read_ctx, __md5_stream):
Renamed from their non-__ counterparts, with new macros replacing
them if not _LIBC. Add __THROW attribute.
(rol): Remove.
(struct md5_ctx): Align buffer if using GCC.
* lib/sha1.h (struct sha1_ctx): Likewise.
* lib/sha1.c (SWAP): Renamed from the NOTSWAP. All uses changed.
The old name was backwards.
(NOTSWAP): Remove; not used.
(rol): New macro, moved here from md5.h.
(sha1_process_block): Remove a FIXME that doesn't make sense.
2005-09-12 Derek Price <derek@ximbiot.com>
Return usable errors from canon-host.
* lib/canon-host.h: New file.
* lib/canon-host.c (canon_host): Wrap...
(canon_host_r): ...this new function, which now relies exclusively on
getaddrinfo.
(ch_strerror): New function.
(last_cherror): New global.
* lib/getaddrinfo.c: Move include of getaddrinfo.h first to test
interface.
(getaddrinfo): Add AI_CANONNAME functionality. Don't do arithmetic on
void *.
(freeaddrinfo): Free ai->ai_canonname when set.
2005-09-12 Derek Price <derek@ximbiot.com>
Make canon-host require getaddrinfo.
* m4/canon-host.m4 (gl_CANON_HOST): Remove most dependencies.
AC_LIBSOURCE canon-host.h. Call...
(gl_PREREQ_CANON_HOST): ...this new function, which requires
gl_GETADDRINFO.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Compile gai_strerror when needed.
2005-09-12 Derek Price <derek@ximbiot.com>
* modules/canon-host: Add canon-host.h. Depend on getaddrinfo. Make
LGPL.
* modules/getaddrinfo: Add link to opengroup spec. Depend on strdup.
2005-09-12 Derek Price <derek@ximbiot.com>
* lib/gai_strerror.c: Include config.h when available. Include
getaddrinfo.h before other headers to test interface.
Reported by Larry Jones <lawrence.jones@ugs.com>.
2005-09-12 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* modules/glob (Files): Add glob-libc.h.
2005-09-12 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* m4/glob.m4 (gl_GLOB_SUBSTITUTE): AC_LIBSOURCES for glob.c,
glob_.h, glob-libc.h.
(gl_PREREQ_GLOB): Remove _SYS_CDEFS_H hack; no longer needed.
2005-09-12 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* lib/glob-libc.h: Renamed from glob_.h. The new version is
taken from libc's glob.h, except with '#ifdef __GLOB_GNULIB'
protecting things that should be done only in gnulib contexts.
* lib/glob_.h: New file, containing only the glob things needed for
gnulib.
(GLOB_PREFIX): Remove. All uses changed to look for __GLOB_GNULIB.
(__GLOB_CONCAT, __GLOB_XCONCAT, __GLOB_ID): Remove; no longer needed.
(glob, globfree, glob_pattern_p): Now defined simply in terms of
rpl_glob, rpl_globfree, rpl_glob_pattern_p.
(__GLOB_GNULIB): New macro, to keep the glob.h changes clearer
and to respect the namespace rules better.
2005-09-08 Simon Josefsson <jas@extundo.com>
* modules/socklen: New file.
2005-09-08 Simon Josefsson <jas@extundo.com>
* m4/socklen.m4: New file.
2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
* modules/utimens (Files): Add m4/utimbuf.m4, since
m4/utimens.m4 requires gl_CHECK_TYPE_STRUCT_UTIMBUF.
Reported by Sergey Poznyakoff.
2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/glob.c (glob, globfree, __glob_pattern_p): Use old-style function
definitions, since that's the preferred style in glibc.
Fix a minor spacing issue, and update copyright notice to match
glibc's.
2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove glibc bug 1061; it's been fixed.
2005-09-06 Simon Josefsson <jas@extundo.com>
* lib/getpass.c (getpass): Fix typo, test for HAVE_TCSETATTR and not
TCSETATTR. Reported by Derek Price <derek@ximbiot.com>.
2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.h (bitset_not): Add parens to avoid gcc -Wall
warning.
2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bug 1302.
2005-09-05 Paul Eggert <eggert@cs.ucla.edu>
Change bitset word type from unsigned int to unsigned long int,
as this has better performance on typical 64-bit hosts.
Port bitset code to hosts with unusual word sizes.
* lib/regcomp.c (build_equiv_class, build_charclass, build_range_exp):
(build_collating_symbol):
Prefer bitset to re_bitset_ptr_t in prototypes, when the actual
argument is a bitset. This is merely a style issue, but it makes
it clearer that an entire array is expected.
(re_compile_fastmap_iter, init_dfa, init_word_char, optimize_subexps):
* lib/regcomp.c (lower_subexp, parse_bracket_exp, built_charclass_op):
Port to the case where bitset_word is not the same as unsigned int.
* lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain):
(bitset_not, bitset_merge, bitset_set_all, bitset_mask):
Likewise.
* lib/regexec.c (check_dst_limits_calc_pos_1,
check_subexp_matching_top):
(build_trtable, group_nodes_into_DFAstates):
Likewise.
* lib/regcomp.c (re_compile_fastmap_iter, utf8_sb_map, optimize_utf8):
Don't assume that SBC_MAX is a multiple of BITSET_WORD_BITS.
* lib/regex_internal.h (bitset_set_all, bitset_not): Likewise.
* lib/regexec.c (group_nodes_into_DFAstates): Likewise.
* lib/regcomp.c (utf8_sb_map): Don't assume UINT_MAX == 0xffffffff.
* lib/regcomp.c (optimize_subexps, lower_subexp):
Work even if bitset_word has holes in its bitwise representation.
* lib/regex_internal.h (BITSET_WORD_BITS): Likewise.
* lib/regexec.c (check_dst_limits_calc_pos_1,
check_subexp_matching_top):
Likewise.
* lib/regex_internal.c (re_string_reconstruct):
Don't assume UCHAR_MAX == 255.
* lib/regex_internal.h (bitset_set_all): Likewise.
* lib/regex_internal.h (BITSET_WORD_BITS): Renamed from UINT_BITS.
All uses changed.
(BITSET_WORDS): Renamed from BITSET_UINTS. All uses changed.
(bitset_word): New type, replacing 'unsigned int' for bitset uses.
All uses changed.
(BITSET_WORD_MAX): New macro.
(bitset_set, bitset_clear, bitset_contain, bitset_empty):
(bitset_set_all, bitset_copy): Now inline functions, not macros.
(bitset_empty, bitset_copy):
Prefer sizeof (bitset) to multiplying it out ourselves.
(bitset_not_merge): Remove; unused.
(bitset_contain): Return bool, not unsigned int with one bit on.
All callers changed.
* lib/regexec.c (build_trtable): Don't assume bitset has no stricter
alignment than re_node_set; do this by defining a new internal
type struct dests_alloc and using it to allocate memory.
2005-09-05 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Fix comparison in handling of symbolic
links.
2005-09-04 Martin Lambers <marlam@marlam.de> (tiny change)
* modules/size_max (Makefile.am): Add size_max.h
2005-09-04 Derek Price <derek@ximbiot.com>
* gnulib-tool (func_import): Fix reversed $symbolic logic.
2005-09-03 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Fix typo.
2005-09-03 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Add glibc bug 1293.
2005-09-03 Derek Price <derek@ximbiot.com>
* m4/getlogin_r (gl_GETLOGIN_R): Fix cut & paste error.
From Larry Jones <lawrence.jones@ugs.com>.
2005-09-02 Simon Josefsson <jas@extundo.com>
* modules/socklen: New file.
2005-09-02 Simon Josefsson <jas@extundo.com>
* modules/havelib: New module.
* modules/gettext, modules/iconv, modules/lock, modules/readline:
Use havelib.
2005-09-02 Paul Eggert <eggert@cs.ucla.edu>
Check for arithmetic overflow when calculating sizes, to prevent
some buffer-overflow issues. These patches are conservative, in the
sense that when I couldn't determine whether an overflow was possible,
I inserted a run-time check.
* lib/regex_internal.h (re_xmalloc, re_xrealloc, re_x2realloc): New
macros.
(SIZE_MAX) [!defined SIZE_MAX]: New macro.
(re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc):
(re_xnrealloc, re_x2nrealloc): New inline functions.
* lib/regcomp.c (init_dfa, analyze, build_range_exp,
parse_bracket_exp):
(build_equiv_class, build_charclass): Check for arithmetic overflow
in size expression calculations.
* lib/regex_internal.c (re_string_realloc_buffers):
(build_wcs_upper_buffer, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_insert, re_node_set_insert_last):
(re_dfa_add_node, register_state): Likewise.
* lib/regexec.c (re_search_stub, re_copy_regs, re_search_internal):
(prune_impossible_nodes, push_fail_stack, set_regs, check_arrival):
(build_trtable, extend_buffers, match_ctx_init, match_ctx_add_entry):
(match_ctx_add_subtop, match_ctx_add_sublast): Likewise.
2005-09-02 Paul Eggert <eggert@cs.ucla.edu>
* modules/inttostr (Files): Add m4/inttypes_h.m4, m4/stdint_h.m4,
m4/ulonglong.m4. Problem reported by Martin Lambers.
2005-09-02 Bruno Haible <bruno@clisp.org>
Support for lib vs. lib64 distinction on biarch platforms.
* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): New macro.
(AC_LIB_PREFIX): Require it. Use $acl_libdirstem instead of 'lib'.
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Likewise.
2005-09-02 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): In the other first-use case, provide defaults
as well.
2005-09-02 Bruno Haible <bruno@clisp.org>
* config/srclist.txt: lib-link.m4 and lib-prefix.m4 currently have
patches not yet found in the latest gettext release.
2005-09-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/glob.c (GET_LOGIN_NAME_MAX): Renamed from LOGIN_NAME_MAX,
to avoid a collision with bits/local_lim.h in glibc.
All uses changed. Problem reported by Dmitry V. Levin in
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=1060>.
* lib/regex_internal.c (build_wcs_upper_buffer): Fix portability
bugs in int versus size_t comparisons.
(re_string_context_at): Fix bug where the code assumed that
Idx is signed.
Use bool where appropriate.
* lib/regcomp.c (re_set_fastmap): ICASE arg is bool, not int.
All callers changed.
(calc_eclosure_iter): Likewise, for ROOT arg.
(parse_bracket_element): Likewise, for ACCEPT_HYPHEN arg.
(build_charclass_op): Likewise, for NON_MATCH arg.
* lib/regex_internal.c (re_string_allocate, re_string_construct):
(re_string_construct_common): Likewise, for ICASE arg.
* lib/regexec.c (re_search_2_stub, re_search_stub):
Likewise, for RET_LEN arg.
(check_matching): Likewise, for FL_LONGEST_MATCH arg.
(set_regs): Likewise, for FL_BACKTRACK arg.
* lib/regcomp.c (re_compile_fastmap_iter, optimize_utf8):
(duplicate_node_closure, calc_inveclosure, calc_eclosure):
(calc_eclosure_iter, parse_bracket_exp):
Use bool for internal variables that are booleans.
* lib/regexec.c (re_search_internal, check_matching,
proceed_next_node):
(set_regs, build_sifted_states, sift_states_bkref):
(check_arrival_add_next_nodes, check_arrival_expand_ecl_sub):
(expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
(find_collation_sequence_value):
Likewise.
* lib/regex_internal.c (re_node_set_insert, re_node_set_insert_last):
(re_node_set_compare):
Return bool, not int. All callers changed.
* lib/regexec.c (check_halt_node_context, check_dst_limits):
(build_trtable, check_node_accept): Likewise.
* lib/regex_internal.h: Include stdbool.h.
Fix bugs uncovered when converting to bool.
* lib/regcomp.c (calc_eclosure_iter): Check for storage allocation
failure instead of charging ahead blindly.
* lib/regex_internal.c (register_state): Likewise.
* lib/regexec.c (re_search_2_stub): Use simpler method than boolean
for freeing internal storage.
(group_nodes_into_DFA_states): Use unsigned int, not int, for
bitset pieces used as boolean, to avoid undefined behavior
on hosts that do int overflow checking.
2005-09-01 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bugs 1285-1287.
2005-09-01 Jim Meyering <jim@meyering.net>
* m4/lchown.m4: Require gl_FUNC_CHOWN, for the definition of
CHOWN_MODIFIES_SYMLINK, which is used by lchown.c.
Require gl_STAT_MACROS, too.
2005-09-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): In the first-use case, provide defaults.
2005-09-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Remove the .tmp files.
2005-09-01 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Fix handling of symbolic links.
2005-08-31 Paul Eggert <eggert@cs.ucla.edu>
On 64-bit hosts (where size_t is 64 bits and int is 32 bits), the
old glibc regex code mishandles strings longer than 2**31 bytes.
This patch fixes this when the regex code is used in gnulib
(i.e., outside glibc).
This patch should not affect the use of the regex code inside
glibc. No doubt this problem also needs to be handled for glibc
as well, but the result will be an incompatible change to the
glibc ABI, and the old ABI will have to be supported too. That
can be the subject for another patch.
* lib/regex.h (_REGEX_LARGE_OFFSETS): New feature-test macro,
governing whether the rest of this patch is active. By default,
the macro is disabled and the patch has no effect.
(regoff_t) [defined _REGEX_LARGE_OFFSETS]: Define to off_t, not int.
(__re_idx_t, __re_size_t, __re_long_size_t): New types.
(struct re_pattern_buffer, re_search, re_search_2, re_match):
(re_match_2, re_set_registers): Use the new types.
* lib/regex_internal.h (Idx, re_hashval_t): New types.
(REG_MISSING, REG_ERROR, REG_VALID_INDEX, REG_VALID_NONZERO_INDEX):
New macros.
(re_node_set, re_charset_t, re_token_t, re_string_realloc_buffers):
(re_string_context_at, bin_tree_t, re_dfastate_t):
(struct re_state_table_entry, state_array_t, re_sub_match_last_t):
(re_sub_match_top_t, re_match_context_t, re_sift_context_t):
(struct re_fail_stack_ent_t, struct re_fail_stack_t, struct re_dfa_t):
(re_string_char_size_at, re_string_wchar_at):
(re_string_elem_size_at):
Use the new types and macros to port to 64-bit hosts.
Use unsigned types for internal values, so that the code
mostly works even for arrays larger than SSIZE_MAX.
* lib/regcomp.c (re_compile_internal, init_dfa, duplicate_node):
(search_duplicated_node, calc_eclosure_iter, fetch_number):
(parse_reg_exp, parse_branch, parse_expression, parse_sub_exp):
(build_equiv_class, build_charclass, re_compile_fastmap_iter):
(free_dfa_content, create_initial_state, optimize_utf8, analyze):
(optimize_subexps, calc_first, link_nfa_nodes, duplicate_node_closure):
(calc_inveclosure, parse_dup_op, build_range_exp):
(build_collating_symbol, parse_bracket_exp, build_charclass_op):
(fetch_number, create_token_tree, mark_opt_subexp):
Likewise.
* lib/regex_internal.c (re_string_construct_common,
create_ci_newstate):
(create_cd_newstate, re_string_allocate, re_string_construct):
(re_string_realloc_buffers, build_wcs_upper_buffer):
(re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
(re_string_reconstruct, re_string_peek_byte_case):
(re_string_fetch_byte_case, re_string_context_at):
(re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
(re_node_set_init_copy, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_merge, re_node_set_insert):
(re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
(re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
(re_acquire_state, re_acquire_state_context, register_state):
Likewise.
* lib/regex.c (match_ctx_init, match_ctx_add_entry,
search_cur_bkref_entry):
(match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init):
(re_search_internal, re_search_2_stub, re_search_stub)
(re_copy_regs, check_matching, check_halt_state_context, update_regs):
(push_fail_stack, sift_states_iter_mb, build_sifted_states):
(update_cur_sifted_state, check_dst_limits):
(check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
(check_subexp_limits, sift_states_bkref, merge_state_array):
(check_subexp_matching_top, get_subexp, get_subexp_sub):
(find_subexp_node, check_arrival, check_arrival_add_next_nodes):
(check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
(expand_bkref_cache, check_node_accept_bytes):
(group_nodes_into_DFAstates, check_node_accept, regexec, re_match):
(re_search, re_match_2, re_search_2, prune_impossible_nodes):
(acquire_init_state_context, check_halt_node_context):
(proceed_next_node, pop_fail_stack, set_regs, free_fail_stack_return):
(sift_states_backward, clean_state_log_if_needed):
(sub_epsilon_src_nodes, add_epsilone_src_nodes, merge_state_with_log):
(find_recover_state, transit_state_sb, transit_state_mb):
(transit_state_bkref, build_trtable, match_ctx_clean):
Likewise.
* lib/regcomp.c (parse_dup_op): Add an extra test if Idx is unsigned,
to work around an assumption that REG_MISSING is negative.
* lib/regcomp.c (re_comp) [defined _REGEX_RE_COMP || defined _LIBC]:
(seek_collating_symbol_entry) [defined _LIBC]:
(lookup_collation_sequence_value) [defined _LIBC]:
(build_range_exp, build_collating_symbol) [defined _LIBC]:
Use prototypes rather than old-style function definitions.
* lib/regexec.c (re_exec) [defined _REGEX_RE_COMP || defined _LIBC]:
(transit_state_sb) [0]:
(find_collation_sequence_value) [defined _LIBC]: Likewise.
* lib/regexec.c (re_search_internal): Simplify update of rm_so and
rm_eo.
* lib/regcomp.c (re_compile_fastmap_iter, init_dfa, init_word_char):
(optimize_subexps, lower_subexp):
Don't assume 1<<31 has defined behavior on hosts with 32-bit int,
since the signed shift might overflow. Use 1u<<31 instead.
* lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain):
Likewise.
* lib/regexec.c (check_dst_limits_calc_pos_1,
check_subexp_matching_top): Likewise.
* lib/regcomp.c (optimize_subexps, lower_subexp):
Use CHAR_BIT rather than 8, for clarity.
* lib/regexec.c (check_dst_limits_calc_pos_1):
(check_subexp_matching_top): Likewise.
* lib/regcomp.c (init_dfa): Make table_size unsigned, so that we don't
have to worry about portability issues when shifting it left.
Remove no-longer-needed test for table_size > 0.
* lib/regcomp.c (parse_sub_exp): Do not shift more bits than there are
in a word, as the resulting behavior is undefined.
* lib/regexec.c (check_dst_limits_calc_pos_1): Likewise;
in one case, a <= should have been an <, and in another case the
whole test was missing.
* lib/regex_internal.h (BYTE_BITS): Remove. All uses changed to
the standard name CHAR_BIT.
* lib/regexec.c (match_ctx_add_entry): Don't assume that ~0 == -1;
this is not true on one's complement and signed-magnitude hosts.
* lib/regex_internal.h (re_sub_match_top_t): Remove unused member
next_last_offset.
(struct re_dfa_t): Remove unused member states_alloc.
* lib/regcomp.c (init_dfa): Don't initialize unused members.
2005-08-31 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Require AC_SYS_LARGEFILE, Define
_REGEX_LARGE_OFFSETS). Test for regoff_t/off_t bug in 64-bit
and large-file glibc and in 32-bit large-file Solaris.
2005-08-31 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.c (re_string_reconstruct): Don't assume buffer
lengths fit in regoff_t; this isn't true if regoff_t is the same
width as size_t.
* lib/regex.c (re_search_internal): 5th arg is LAST_START
(= START + RANGE) instead of RANGE. This avoids overflow
problems when regoff_t is the same width as size_t.
All callers changed.
(re_search_2_stub): Check for overflow when adding the
sizes of the two strings.
(re_search_stub): Check for overflow when adding START
to RANGE; if it occurs, substitute the extreme value.
2005-08-31 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bugs 1273, 1278-1282, 1284.
2005-08-31 Jim Meyering <jim@meyering.net>
* lib/regcomp.c (search_duplicated_node): Make first pointer arg
a pointer-to-const.
* lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
(register_state): Likewise.
* lib/regexec.c (search_cur_bkref_entry, check_dst_limits):
(check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
(group_nodes_into_DFAstates): Likewise.
2005-08-31 Jim Meyering <jim@meyering.net>
* check-module: Add a FIXME comment.
2005-08-31 Eric Blake <ebb9@byu.net>
* modules/unistd-safer (Files): Add unistd--.h.
* modules/stdio-safer (Files): Add stdio--.h.
2005-08-31 Derek Price <derek@ximbiot.com>
* lib/getdelim.c (getdelim): Return EOF on EOF.
Reported by Larry Jones <lawrence.jones@ugs.com>.
2005-08-31 Bruno Haible <bruno@clisp.org>
Avoid unnecessary diffs in the generated lib/Makefile.am.
* gnulib-tool (func_emit_lib_Makefile_am): Don't write the cmd into
the generated files.
(func_import): Don't set cmd.
2005-08-31 Bruno Haible <bruno@clisp.org>
* lib/strstr.c: Include <stddef.h>, for NULL.
* lib/strcasestr.c: Likewise.
Reported by Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool: New option --macro-prefix.
(func_import): Use macro_prefix.
(import): Handle option --macro-prefix.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): Rename most ac_* variables to cached_*.
Also use new variables cached_lgpl, cached_libtool.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Require AC_GNU_SOURCE etc. instead of
always instantiating them.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Read the previous cached settings
from gnulib-cache.m4 and gnulib-comp.m4. Remove files that were
earlier added by gnulib but are now dropped. Warn when a gnulib file
overwrites a non-gnulib file.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Generate two files gnulib-cache.m4 and
gnulib-comp.m4 instead of a single gnulib.m4, to make it easy for
projects that don't keep autogenerated files in CVS. Put into
actioncmd only the specified modules, not the transitive closure.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Fix defaulting of $libname and $libtool.
Create directories that shall be filled.
(import): Don't look for gl_* macros in configure.ac. Recurse across
all directories containing a gnulib-cache.m4 files, if meaningful.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Emit also a stub for gl_LIBTOOL.
(import): Set seen_libtool when we see gl_LIBTOOL.
2005-08-31 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Also copy m4/gnulib-tool.m4. Omit
declaration macro definitions from generated gnulib.m4.
2005-08-30 Oskar Liljeblad <oskar@osk.mine.nu>
* lib/iconvme.h: Add prototype for iconv_alloc.
2005-08-29 Simon Josefsson <jas@extundo.com>
* lib/iconvme.c: Fix errno.
2005-08-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Enclose all occurrences of $destdir in "...", so
that it works when the directory contains spaces.
2005-08-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): Avoid unnecessary spaces in $avoidlist.
2005-08-29 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Emit more comments into gnulib.m4.
Emit more advice.
2005-08-29 Bruno Haible <bruno@clisp.org>
and Stepan Kasal <kasal@ucw.cz>
* check-module: If more parameters are given, check each of them
separately; add more exceptions, as noted by Jim Meyering.
(check_module): New procedure.
(%exempt_header): Now contains all exceptions.
2005-08-29 Ben Pfaff <blp@cs.stanford.edu>
* modules/byteswap (Makefile.am): Fix rule to not assume GNU make.
2005-08-29 Oskar Liljeblad <oskar@osk.mine.nu>
* lib/iconvme.c: Split iconv_string into iconv_alloc.
2005-08-28 Bruno Haible <bruno@clisp.org>
* m4/gnulib-tool.m4: New file.
2005-08-27 Jim Meyering <jim@meyering.net>
* modules/unistd-safer (Files): Add pipe-safer.c.
* modules/fcntl-safer (Files): Add creat-safer.c.
2005-08-27 Jim Meyering <jim@meyering.net>
* m4/stdlib-safer.m4: New file. From coreutils.
* m4/stdio-safer.m4 (gl_STDIO_SAFER): Add stdio--.h.
* m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Add creat-safer.c to the
AC_LIBSOURCES list and arrange to compile it via AC_LIBOBJ.
* m4/unistd-safer.m4 (gl_UNISTD_SAFER): Likewise, add pipe-safer.c.
Add pipe-safer.c and unistd--.h to the AC_LIBSOURCES list.
2005-08-27 Jim Meyering <jim@meyering.net>
* lib/fopen-safer.c: Merge minor changes from coreutils.
* lib/dup-safer.c: Likewise.
* lib/fd-safer.c: Likewise.
Merge from coreutils.
* lib/stdio--.h: New file.
* lib/stdlib--.h: New file.
* lib/mkstemp-safer.c: New file.
GNU tar needs these.
* lib/pipe-safer.c: New file.
* lib/creat-safer.c: New file.
* lib/fcntl--.h (creat): Define to creat_safer.
* lib/fcntl-safer.h: Include <sys/types.h> and declare creat_safer.
* lib/unistd--.h (pipe): Define to pipe_safer.
* lib/unistd-safer.h: Declare pipe_safer.
2005-08-26 Simon Josefsson <jas@extundo.com>
* lib/getpass.c: Use _WIN32 instead of WIN32, suggested by Bruno
Haible <bruno@clisp.org>.
2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.h: Remove all references to
RE_NO_INTERNAL_PROTOTYPES; no longer neeeded now that we assume C89
or better.
(bitset_not, bitset_merge, bitset_not_merge):
(bitset_mask, re_string_allocate, re_string_construct):
(re_string_reconstruct, re_string_destruct, re_string_elem_size_at):
(re_string_char_size_at, re_string_wchar_at, re_string_peek_byte_case):
(re_string_fetch_byte_case, re_node_set_alloc, re_node_set_init_1):
(re_node_set_init_2, re_node_set_init_copy, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_merge, re_node_set_insert):
(re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
(re_node_set_remove_at, re_dfa_add_node, re_acquire_state):
(re_acquire_state_context):
Remove unnecessary forward decls.
(re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at):
Put __attribute at function definition,
now that the function decl has been removed.
* lib/regex_internal.c (re_string_peek_byte_case):
(re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains):
Likewise.
2005-08-25 Stepan Kasal <kasal@ucw.cz>
* m4/regex.m4: Add AC_PREREQ(2.50).
(gl_REGEX): If --with-included-regex was given, skip the autodetection.
2005-08-25 Simon Josefsson <jas@extundo.com>
* m4/getpass.m4: Check for termios.h, tcgetattr, tcsetattr, and
__fsetlocking.
2005-08-25 Simon Josefsson <jas@extundo.com>
* lib/getpass.c: Add WIN32 implementation. Conditionalize use of
termios.h, tcgetattr, tcsetattr and __fsetlocking. Remove some
GLIBC specific code.
2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
Make regex safe for g++. This fixes one real bug (an "err"
that should have been "*err"). g++ problem reported by
Sam Steingold.
* lib/regex_internal.h (re_calloc): New macro, consistent with
re_malloc etc. All callers of calloc changed to use re_calloc.
* lib/regex_internal.c (build_wcs_upper_buffer): Return reg_errcode_t,
not int. All callers changed.
* lib/regcomp.c (re_compile_fastmap_iter): Don't use
alloca (mb_cur_max); just use an array of size MB_LEN_MAX.
* lib/regexec.c (push_fail_stack): Use re_realloc, not realloc.
(find_recover_state): Change "err" to "*err"; this fixes what
appears to be a real bug.
(check_arrival_expand_ecl_sub): Be consistent about reg_errcode_t
versus int.
2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (Depends-on): Add malloc, since the code
assumes that !malloc(0) means failure.
2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/regexec.c (set_regs): Don't alloca with an unbounded size.
alloca modernization/simplification for regex.
* lib/regex.c: Remove portability cruft for alloca. This no longer
needs to be at the start of the file, and can be moved into
regex_internal.h and simplified.
* lib/regex_internal.h: Include <alloca.h>.
(__libc_use_alloca) [!defined _LIBC]: New macro.
* lib/regexec.c (build_trtable): Remove "#ifdef _LIBC", since the code
now works outside glibc.
2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bugs 1241, 1245.
2005-08-25 Jim Meyering <jim@meyering.net>
* lib/open-safer.c: Include <config.h>.
Otherwise, we'd lose LARGEFILE support in any file using
e.g. "fcntl--.h"
2005-08-25 Bruno Haible <bruno@clisp.org>
* m4/minmax.m4: Require autoconf 2.52.
(gl_MINMAX_IN_HEADER): Add comments. Use m4_pushdef/m4_popdef instead
of define/undefine. Use AS_TR_SH and AS_TR_CPP as more robust
alternatives of translit over the alphabet.
Based on a patch from Stepan Kasal <kasal@ucw.cz>.
2005-08-24 Simon Josefsson <jas@extundo.com>
* tests/test-getpass.c: New file.
2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_REGEX): Use POSIX-compliant spellings when testing
for GNU regex features.
2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/regcomp.c (regerror): 2nd arg is 'restrict', as per POSIX.
* lib/regex.h (regerror): Likewise.
* lib/regex.c: Do not include <sys/types.h>, as POSIX no longer
requires this. (The code never needed it.)
* lib/regcomp.c, regex_internal.c, regex_internal.h, regexec.c:
All uses of recently-renamed identifiers changed to use the new,
POSIX-compliant names. The code will build and run just fine
without these changes, but it's better to eat our own dog food
and use the standard-conforming names.
* lib/regex.h: Fix a multitude of POSIX name space violations.
These changes have an effect only for programs that define
_POSIX_C_SOURCE, _POSIX_SOURCE, or _XOPEN_SOURCE; they
do not change anything for programs compiled in the normal way.
Also, there is no effect on the ABI.
(_REGEX_SOURCE): New macro.
Do not include <stddef.h> if _XOPEN_SOURCE and VMS are both
defined and _GNU_SOURCE is not; this fixes a name space violation.
Rename the following macros to obey POSIX requirements.
The old names are still visible as macros if _REGEX_SOURCE is defined.
(REG_BACKSLASH_ESCAPE_IN_LISTS): renamed from
RE_BACKSLASH_ESCAPE_IN_LISTS.
(REG_BK_PLUS_QM): renamed from RE_BK_PLUS_QM.
(REG_CHAR_CLASSES): renamed from RE_CHAR_CLASSES.
(REG_CONTEXT_INDEP_ANCHORS): renamed from RE_CONTEXT_INDEP_ANCHORS.
(REG_CONTEXT_INDEP_OPS): renamed from RE_CONTEXT_INDEP_OPS.
(REG_CONTEXT_INVALID_OPS): renamed from RE_CONTEXT_INVALID_OPS.
(REG_DOT_NEWLINE): renamed from RE_DOT_NEWLINE.
(REG_DOT_NOT_NULL): renamed from RE_DOT_NOT_NULL.
(REG_HAT_LISTS_NOT_NEWLINE): renamed from RE_HAT_LISTS_NOT_NEWLINE.
(REG_INTERVALS): renamed from RE_INTERVALS.
(REG_LIMITED_OPS): renamed from RE_LIMITED_OPS.
(REG_NEWLINE_ALT): renamed from RE_NEWLINE_ALT.
(REG_NO_BK_BRACES): renamed from RE_NO_BK_BRACES.
(REG_NO_BK_PARENS): renamed from RE_NO_BK_PARENS.
(REG_NO_BK_REFS): renamed from RE_NO_BK_REFS.
(REG_NO_BK_VBAR): renamed from RE_NO_BK_VBAR.
(REG_NO_EMPTY_RANGES): renamed from RE_NO_EMPTY_RANGES.
(REG_UNMATCHED_RIGHT_PAREN_ORD): renamed from
RE_UNMATCHED_RIGHT_PAREN_ORD.
(REG_NO_POSIX_BACKTRACKING): renamed from RE_NO_POSIX_BACKTRACKING.
(REG_NO_GNU_OPS): renamed from RE_NO_GNU_OPS.
(REG_DEBUG): renamed from RE_DEBUG.
(REG_INVALID_INTERVAL_ORD): renamed from RE_INVALID_INTERVAL_ORD.
(REG_IGNORE_CASE): renamed from RE_ICASE. This renaming is a bit
unusual, since we can't clash with the POSIX REG_ICASE.
(REG_CARET_ANCHORS_HERE): renamed from RE_CARET_ANCHORS_HERE.
(REG_CONTEXT_INVALID_DUP): renamed from RE_CONTEXT_INVALID_DUP.
(REG_NO_SUB): renamed from RE_NO_SUB.
(REG_SYNTAX_EMACS): renamed from RE_SYNTAX_EMACS.
(REG_SYNTAX_AWK): renamed from RE_SYNTAX_AWK.
(REG_SYNTAX_GNU_AWK): renamed from RE_SYNTAX_GNU_AWK.
(REG_SYNTAX_POSIX_AWK): renamed from RE_SYNTAX_POSIX_AWK.
(REG_SYNTAX_GREP): renamed from RE_SYNTAX_GREP.
(REG_SYNTAX_EGREP): renamed from RE_SYNTAX_EGREP.
(REG_SYNTAX_POSIX_EGREP): renamed from RE_SYNTAX_POSIX_EGREP.
(REG_SYNTAX_ED): renamed from RE_SYNTAX_ED.
(REG_SYNTAX_SED): renamed from RE_SYNTAX_SED.
(_REG_SYNTAX_POSIX_COMMON): renamed from _RE_SYNTAX_POSIX_COMMON.
(REG_SYNTAX_POSIX_BASIC): renamed from RE_SYNTAX_POSIX_BASIC.
(REG_SYNTAX_POSIX_MINIMAL_BASIC): renamed from
RE_SYNTAX_POSIX_MINIMAL_BASIC.
(REG_SYNTAX_POSIX_EXTENDED): renamed from RE_SYNTAX_POSIX_EXTENDED.
(REG_SYNTAX_POSIX_MINIMAL_EXTENDED): renamed from
RE_SYNTAX_POSIX_MINIMAL_EXTENDED.
(REG_DUP_MAX): renamed from RE_DUP_MAX. No need to undef it.
(REG_UNALLOCATED): Renamed from REGS_UNALLOCATED.
(REG_REALLOCATE): Renamed from REGS_REALLOCATE.
(REG_FIXED): Renamed from REGS_FIXED.
(REG_NREGS): Renamed from RE_NREGS.
(REG_ICASE, REG_NEWLINE, REG_NOSUB): Do not depend on the values
of other REG_* macros, since POSIX says the user is allowed to
#undef these macros selectively.
(reg_errcode_t): Update comment stating what other tables need
to be consistent.
Rename the following enum values to obey POSIX requirements.
The old names are still visible as macros.
(_REG_ENOSYS): Renamed from REG_ENOSYS. Define even if _XOPEN_SOURCE
is not defined, since GNU is supposed to be a superset of POSIX as
much as possible, and since we want reg_errcode_t to be a signed
type for implementation consistency.
(_REG_NOERROR): Renamed from REG_NOERROR.
(_REG_NOMATCH): Renamed from REG_NOMATCH.
(_REG_BADPAT): Renamed from REG_BADPAT.
(_REG_ECOLLATE): Renamed from REG_ECOLLATE.
(_REG_ECTYPE): Renamed from REG_ECTYPE.
(_REG_EESCAPE): Renamed from REG_EESCAPE.
(_REG_ESUBREG): Renamed from REG_ESUBREG.
(_REG_EBRACK): Renamed from REG_EBRACK.
(_REG_EPAREN): Renamed from REG_EPAREN.
(_REG_EBRACE): Renamed from REG_EBRACE.
(_REG_BADBR): Renamed from REG_BADBR.
(_REG_ERANGE): Renamed from REG_ERANGE.
(_REG_ESPACE): Renamed from REG_ESPACE.
(_REG_BADRPT): Renamed from REG_BADRPT.
(_REG_EEND): Renamed from REG_EEND.
(_REG_ESIZE): Renamed from REG_ESIZE.
(_REG_ERPAREN): Renamed from REG_ERPAREN.
(REG_ENOSYS, REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE):
(REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN):
(REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND):
(REG_ESIZE, REG_ERPAREN): Now macros, not enum constants.
(_REG_RE_NAME, _REG_RM_NAME): New macros.
(REG_TRANSLATE_TYPE): Renamed from RE_TRANSLATE_TYPE. All uses
changed. But support the old name if the new one is not defined
and if _REGEX_SOURCE.
Change the following member names in struct re_pattern_buffer.
The old names are still supported if !_REGEX_SOURCE.
The new names are always supported, regardless of _REGEX_SOURCE.
(re_buffer): Renamed from buffer.
(re_allocated): Renamed from allocated.
(re_used): Renamed from used.
(re_syntax): Renamed from syntax.
(re_fastmap): Renamed from fastmap.
(re_translate): Renamed from translate.
(re_can_be_null): Renamed from can_be_null.
(re_regs_allocated): Renamed from regs_allocated.
(re_fastmap_accurate): Renamed from fastmap_accurate.
(re_no_sub): Renamed from no_sub.
(re_not_bol): Renamed from not_bol.
(re_not_eol): Renamed from not_eol.
(re_newline_anchor): Renamed from newline_anchor.
Change the following member names in struct re_registers.
The old names are still supported if !_REGEX_SOURCE.
The new names are always supported, regardless of _REGEX_SOURCE.
(rm_num_regs): Renamed from num_regs.
(rm_start): Renamed from start.
(rm_end): Renamed from end.
(re_set_syntax, re_compile_pattern, re_compile_fastmap):
(re_search, re_search_2, re_match, re_match_2, re_set_registers):
Prepend __ to parameter names.
Undo yesterday's changes.
2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove glibc bug 1233 and add 1236, which
supersedes it. Add glibc bugs 1237, 1238, 1240. Comment out
lib/regex.c.
2005-08-24 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* m4/fcntl-safer.m4: New file.
* m4/xgetcwd.m4: Use AC_LIBSOURCES and AC_LIBOBJ to indicate source
and object files for this module.
2005-08-24 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/fcntl--.h, lib/fcntl-safer.h, lib/open-safer.c: New files.
2005-08-24 Jim Meyering <jim@meyering.net>
* modules/xgetcwd (Makefile.am): Remove `lib_SOURCES += ...' line,
now that xgetcwd.m4 requires xgetcwd.c and xgetcwd.h.
2005-08-24 Jim Meyering <jim@meyering.net>
* modules/fcntl-safer: New module.
* modules/fts (Depends-on): Add fcntl-safer.
* MODULES.html.sh (File descriptor based Input/Output):
Add fcntl-safer.
2005-08-24 Bruno Haible <bruno@clisp.org>
Support for unit test modules.
* modules/README: Mention tests modules.
* modules/TEMPLATE-TESTS: New file.
* gnulib-tool: New options --extract-tests-module, --with-tests and
--tests-base (unused for the moment).
(testsbase, inctests): New variables.
(func_all_modules): Exclude TEMPLATE-TESTS and *-tests.
(func_verify_module): Exclude TEMPLATE-TESTS.
(func_verify_nontests_module, func_verify_tests_module): New functions.
(func_get_dependencies): Add implicit dependency for tests modules.
(func_get_tests_module): New function.
(func_modules_transitive_closure): When --with-tests was specified,
include the unit tests as well, unless explicitly avoided.
(func_emit_lib_Makefile_am): Ignore the tests modules here.
(func_emit_tests_Makefile_am): New function.
(func_create_testdir): When --with-tests was specified, emit a
tests/ directory.
* MODULES.html.sh (Future developments): Update.
2005-08-24 Bruno Haible <bruno@clisp.org>
* modules/tls-tests: New file.
* tests/test-tls.c: New file, from GNU gettext.
2005-08-24 Bruno Haible <bruno@clisp.org>
* modules/lock-tests: New file.
* tests/test-lock.c: New file, from GNU gettext.
2005-08-24 Bruno Haible <bruno@clisp.org>
* lib/lock.h: Add multiple inclusion guard.
* lib/tls.h: Add multiple inclusion guard.
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Add support for the --aux-dir option to
--create-testdir, --create-megatestdir, --test, --megatest.
(func_create_testdir, func_create_megatestdir): Optionally emit a
AC_CONFIG_AUX_DIR directive.
(create-testdir, create-megatestdir, test, megatest): Provide a
default value for $auxdir.
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): Use compound statement instead of subshell
where possible.
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (import): Change --aux-dir default to "build-aux".
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_version): Update.
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import, func_create_testdir,
func_create_megatestdir): Quote all autoconf macro arguments.
2005-08-24 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_megatestdir): Call autoreconf without the
option --force, because --force causes the aclocal.m4 of each
subdirectory to be newer than the corresponding config.h.in.
2005-08-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_INCLUDED_REGEX): Remove; no longer used.
All contents moved to gl_REGEX.
(gl_REGEX): Don't bother checking whether lib/regex.c exists;
assume that it does.
2005-08-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex.h (REG_NOSYS)
[!defined _XOPEN_SOURCE && 200112L <= _POSIX_C_SOURCE]:
Define, since POSIX requires it as of 2001.
(_REG_ENOSYS)
[! (defined _XOPEN_SOURCE || 200112L <= _POSIX_C_SOURCE)]:
New private symbol, used to keep the enum signed in all cases.
* lib/regex.h (RE_NO_EMPTY_RANGES): Fix doc bug reported by James
Youngman in
<http://lists.gnu.org/r/bug-gnulib/2005-07/msg00132.html>.
* lib/regex_internal.c (re_string_skip_chars, register_state):
(calc_state_hash):
Remove forward decls; no longer needed now that we use prototypes.
* lib/regexec.c (acquire_init_state_context, check_halt_node_context):
(proceed_next_node, pop_fail_stack, sub_epsilon_src_nodes):
(clean_state_log_if_needed): Likewise.
2005-08-23 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bugs 1231-1233.
2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
Fix problems reported by Sam Steingold in
<http://lists.gnu.org/r/bug-gnulib/2005-08/msg00007.html>.
* lib/regexec.c (sift_states_bkref): Fix portability bug: the code
assumed that reg_errcode_t is a signed type, which is not
necessarily true if _XOPEN_SOURCE is not defined.
* lib/regex_internal.c (calc_state_hash): Put 'inline' before type,
since some compilers warn about it otherwise.
2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/regcomp.c (create_initial_state): Remove duplicate decl.
(init_word_char, create_initial_state, duplicate_node_closure):
(fetch_token, peek_token_bracket, build_range_exp):
(build_collating_symbol): Remove forward decls; no longer needed
now that we use prototypes.
* lib/regcomp.c:
(re_compile_pattern, re_set_syntax, re_compile_fastmap):
(re_compile_fastmap_iter, regcomp, regerror, regfree):
(re_compile_internal, init_dfa, init_word_char, free_workarea_compile):
(create_initial_state, optimize_utf8, analyze, postorder, preorder):
(optimize_subexps, lower_subexps, lower_subexp, calc_first, calc_next):
(link_nfa_nodes, duplicate_node_closure, search_duplicated_node):
(duplicate_node, calc_inveclosure, calc_eclosure, calc_eclosure_iter):
(fetch_token, peek_token, peek_token_bracket, parse, parse_reg_exp):
(parse_branch, parse_expression, parse_sub_exp, parse_dup_op):
(build_range_exp, build_collating_symbol, parse_bracket_exp):
(parse_bracket_element, parse_bracket_symbol, build_equiv_class):
(build_charclass, build_charclass_op, fetch_number, create_tree):
(create_token_tree, mark_opt_subexp, duplicate_tree):
Use prototypes rather than old-style definitions.
* lib/regex_internal.c:
(re_string_allocate, re_string_construct, re_string_realloc_buffers):
(re_string_construct_common, build_wcs_buffer, build_wcs_upper_buffer):
(re_string_skip_chars, build_upper_buffer, re_string_translate_buffer):
(re_string_reconstruct, re_string_peek_byte_case):
(re_string_fetch_byte_case, re_string_destruct, re_string_context_at):
(re_node_set_alloc, re_node_set_init_1, re_node_set_init_2):
(re_node_set_init_copy, re_node_set_add_intersect):
(re_node_set_init_union, re_node_set_merge, re_node_set_insert):
(re_node_set_insert_last, re_node_set_compare, re_node_set_contains):
(re_node_set_remove_at, re_dfa_add_node, calc_state_hash):
(re_acquire_state, re_acquire_state_context, register_state):
(create_ci_newstate, create_cd_newstate, free_state):
Likewise.
* lib/regexec.c (regexec, re_match, re_search, re_match_2,
re_search_2):
(re_search_2_stub, re_search_stub, re_copy_regs, re_set_registers):
(re_search_internal, prune_impossible_nodes):
(acquire_init_state_context, check_matching, static):
(check_halt_node_context, check_halt_state_context, proceed_next_node):
(push_fail_stack, pop_fail_stack, set_regs, free_fail_stack_return):
(update_regs, sift_states_backward, build_sifted_states):
(clean_state_log_if_needed, merge_state_array):
(update_cur_sifted_state, add_epsilon_src_nodes):
(sub_epsilon_src_nodes, check_dst_limits, check_dst_limits_calc_pos_1):
(check_dst_limits_calc_pos, check_subexp_limits, sift_states_bkref):
(sift_states_iter_mb, transit_state, merge_state_with_log, static):
(find_recover_state, check_subexp_matching_top, transit_state_mb):
(transit_state_bkref, get_subexp, get_subexp_sub, find_subexp_node):
(check_arrival, check_arrival_add_next_nodes):
(check_arrival_expand_ecl, check_arrival_expand_ecl_sub):
(expand_bkref_cache, build_trtable, group_nodes_into_DFAstates):
(check_node_accept_bytes, check_node_accept, extend_buffers):
(match_ctx_init, match_ctx_clean, match_ctx_free, match_ctx_add_entry):
(search_cur_bkref_entry, match_ctx_add_subtop, match_ctx_add_sublast):
(sift_ctx_init):
Likewise.
* lib/regex_internal.h:
(re_string_allocate, re_string_construct, re_string_reconstruct):
(re_string_realloc_buffers, build_wcs_buffer, build_wcs_upper_buffer):
(build_upper_buffer, re_string_translate_buffer, re_string_destruct):
(re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at):
(re_string_context_at, re_string_peek_byte_case):
(re_string_fetch_byte_case): Declare even if RE_NO_INTERNAL_PROTOTYPES
is defined, since we now use prototypes always.
* lib/regex.h (_RE_ARGS): Remove. No longer needed, since we assume
C89 or better. All uses removed.
2005-08-20 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add glibc bugs 1220-1227.
2005-08-20 Jim Meyering <jim@meyering.net>
* lib/regexec.c (regexec, re_search_stub) [!_LIBC]: Omit declaration
of unused local, dfa.
2005-08-20 Bruno Haible <bruno@clisp.org>
* m4/regex.m4 (gl_PREREQ_REGEX): Require AC_GNU_SOURCE.
2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.c (re_string_realloc_buffers, re_node_set_insert):
(re_node_set_insert_last, re_dfa_add_node):
Rename local variables to avoid GCC shadowing warnings.
2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex_internal.c (re_acquire_state, re_acquire_state_context)
[defined lint]: Suppress bogus uninitialized-variable warnings.
* lib/regcomp.c (duplicate_node): Return new index, not an error code,
and let the caller return REG_ESPACE if out of space. This
removes an uninitialied-variable warning with GCC 4.0.1, and also
avoids taking the address of a local variable. All callers
changed.
2005-08-19 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Comment out $LIBCSRC/posix/regex_internal.c,
$LIBCSRC/posix/regexec.c.
Add glibc bug 1217 for regcomp.c.
2005-08-19 Jim Meyering <jim@meyering.net>
* lib/regexec.c (proceed_next_node): Redo local variables to
avoid GCC shadowing warnings.
2005-08-18 Bruno Haible <bruno@clisp.org>
* lib/strstr.c (strstr): Fix return value in multibyte case.
* lib/strcasestr.c (strcasestr): Likewise.
2005-08-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex.h: Remove useless space-before-tab. From coreutils.
2005-08-17 Jim Meyering <jim@meyering.net>
Make the %s format (seconds since the epoch) work for a negative
number and when used with a zero-padded field width, e.g. %015s.
* lib/strftime.c (my_strftime): Move the `do_number_sign_and_padding'
label so that it precedes the code to set `digits'. Otherwise,
%0Ns wouldn't work. Before this change, `date -d @-22 +%05s' would
print `00-22'. Now, it prints `-0022', as it should.
2005-08-17 Bruno Haible <bruno@clisp.org>
* modules/strstr (Files): Add m4/mbrtowc.m4.
(Depends-on): Add mbuiter.
2005-08-17 Bruno Haible <bruno@clisp.org>
* modules/strcasestr: New file.
* MODULES.html.sh (String handling, based on ANSI C 89): Add
strcasestr.
2005-08-17 Bruno Haible <bruno@clisp.org>
* modules/strcase (Depends-on): Add mbuiter. Remove strnlen1, mbchar.
2005-08-17 Bruno Haible <bruno@clisp.org>
* modules/mbuiter: New file.
* MODULES.html.sh (Extended multibyte and wide character utilities):
Add mbuiter.
2005-08-17 Bruno Haible <bruno@clisp.org>
* m4/strstr.m4 (gl_FUNC_STRSTR): Use the replacement function always.
(gl_PREREQ_STRSTR): Use gl_FUNC_MBRTOWC.
2005-08-17 Bruno Haible <bruno@clisp.org>
* m4/strcasestr.m4: New file.
2005-08-17 Bruno Haible <bruno@clisp.org>
* lib/strstr.h: Ignore HAVE_STRSTR, always declare the gnulib function.
* lib/strstr.c: Completely rewritten, with multibyte locale support.
2005-08-17 Bruno Haible <bruno@clisp.org>
* lib/strcasestr.h: New file.
* lib/strcasestr.c: New file.
2005-08-17 Bruno Haible <bruno@clisp.org>
* lib/strcasecmp.c: Use mbuiter.h.
2005-08-17 Bruno Haible <bruno@clisp.org>
* lib/mbuiter.h: New file.
2005-08-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Do not override the results
of gl_GETOPT_SUBSTITUTE. That way, if both gl_GETOPT_SUBSTITUTE
and gl_GETOPT are both invoked via different paths (as happens
with GNU tar CVS because it uses both argp and getopt), the former
wins.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/tls: New file.
* MODULES.html.sh (Multithreading): Add tls.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/strnlen1: New file.
* MODULES.html.sh (String handling): Add strnlen1.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/strcase (Files): Add m4/mbrtowc.m4.
(Depends-on): Add strnlen1, mbchar.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/mbiter: New file.
* MODULES.html.sh (Extended multibyte and wide character utilities):
Add mbiter.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/mbfile: New file.
* MODULES.html.sh (Extended multibyte and wide character utilities):
Add mbfile.
2005-08-16 Bruno Haible <bruno@clisp.org>
* modules/mbchar: New file.
* MODULES.html.sh (Extended multibyte and wide character utilities):
New section.
2005-08-16 Bruno Haible <bruno@clisp.org>
* m4/tls.m4: New file, from GNU gettext.
2005-08-16 Bruno Haible <bruno@clisp.org>
* m4/strcase.m4 (gl_FUNC_STRCASECMP): Use the replacement function
always.
(gl_PREREQ_STRCASECMP): Use gl_FUNC_MBRTOWC.
2005-08-16 Bruno Haible <bruno@clisp.org>
* m4/mbiter.m4: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* m4/mbfile.m4: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* m4/mbchar.m4: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/tls.h: New file, from GNU gettext.
* lib/tls.c: New file, from GNU gettext.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/strnlen1.h: New file.
* lib/strnlen1.c: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/strcasecmp.c (struct mbiter_multi): Remove at_end field.
(mbi_init): Update.
(mbi_avail, mbi_advance): Let the iteration end before the terminating
NUL byte, not after it.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/strcase.h (strcasecmp): Add note in comments.
* lib/strncasecmp.c: Use code from strcasecmp.c.
* lib/strcasecmp.c: Use mbchar module. Define private mbiter variant.
(strcasecmp): Work correctly in multibyte locales.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/mbiter.h: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/mbfile.h: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/mbchar.h: New file.
* lib/mbchar.c: New file.
2005-08-16 Bruno Haible <bruno@clisp.org>
* lib/mbchar.h (mb_cmp, mb_casecmp): Order the invalid characters after
the valid ones. Makes the comparison operations transitive:
cmp (a, b) < 0 && cmp (b, c) < 0 ==> cmp (a, c) < 0.
* lib/strcasecmp.c (strcasecmp): Use mb_casecmp.
2005-08-15 Simon Josefsson <jas@extundo.com>
* modules/ssize_t (License): Change to 'unlimited'.
* gnulib-tool (sed_extract_prog): Recognize 'unlimited' license.
2005-08-15 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Comment out $LIBCSRC/posix/regex.h.
Add comments for each pending glibc patch.
2005-08-15 Bruno Haible <bruno@clisp.org>
* lib/regex.h (__restrict_arr): Don't define to __restrict if
__cplusplus is defined.
2005-08-14 Jim Meyering <jim@meyering.net>
Sync from coreutils.
* lib/fts-cycle.c (setup_dir, enter_dir, leave_dir, free_dir):
Use the hash-table-based cycle-detection code not just when
FTS_TIGHT_CYCLE_CHECK if specified, but also with FTS_LOGICAL.
Reported by James Youngman in
<http://lists.gnu.org/r/bug-gnulib/2005-08/msg00011.html>.
* lib/fts_.h: Mention that with FTS_LOGICAL, we use
FTS_TIGHT_CYCLE_CHECK.
* lib/fts.c (fts_cross_check) [FTS_DEBUG]:
s/active_dir_ht/fts_cycle.ht/. This lets us compile with -DFTS_DEBUG,
once again.
* lib/fts.c [! _LIBC]: Include "lstat.h" rather than rolling our own.
* lib/fts.c (fd_safer): Remove decl.
Include fcntl--.h rather than unistd-safer.h
(fts_safe_changedir): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
2005-08-12 Simon Josefsson <jas@extundo.com>
* modules/getndelim2: Use ssize_t module.
* modules/getnline: Likewise.
* modules/safe-read: Likewise.
* modules/xreadlink: Likewise.
* modules/ssize_t: New file.
2005-08-12 Simon Josefsson <jas@extundo.com>
* m4/readline.m4: Look for termcap, curses or ncurses if required.
2005-08-12 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
ssize_t.
2005-08-12 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh (Extra functions based on ANSI C 89: Misc): Add
readline, getdelim and check_version.
(Support for systems lacking ISO C 99: Sizes of integer types):
Add size_max.
2005-08-12 Bruno Haible <bruno@clisp.org>
* m4/readline.m4 (gl_FUNC_READLINE): Look for ncurses first.
2005-08-11 Simon Josefsson <jas@extundo.com>
* modules/readline: New file.
* modules/strnlen (Files): Add strnlen.h.
2005-08-11 Simon Josefsson <jas@extundo.com>
* m4/readline.m4: New file.
2005-08-11 Simon Josefsson <jas@extundo.com>
* lib/readline.h, readline.c: New file.
2005-08-11 Simon Josefsson <jas@extundo.com>
* doc/gnulib.texi (Initial import, Finishing touches): Mention
gl_AVOID.
2005-08-11 Bruno Haible <bruno@clisp.org>
* lib/strnlen.h (strnlen): Change parameter name to match comment.
2005-08-10 Stepan Kasal <kasal@ucw.cz>
* m4/onceonly_2_57.m4: Really require Autoconf 2.57.
2005-08-10 Simon Josefsson <jas@extundo.com>
* tests/test-iconvme.c: New file.
2005-08-10 Simon Josefsson <jas@extundo.com>
* m4/strnlen.m4: New file.
* m4/strndup.m4: Don't check for strnlen declaration, done in
strnlen.m4.
2005-08-10 Simon Josefsson <jas@extundo.com>
* lib/strndup.c: Use strnlen.h.
* lib/strnlen.h: New file.
2005-08-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* README: Typos.
2005-08-02 Simon Josefsson <jas@extundo.com>
* modules/readline: New file.
2005-08-02 Simon Josefsson <jas@extundo.com>
* modules/getdelim: New file.
* modules/getline: Rewrite, don't use getndelim2.
2005-08-02 Simon Josefsson <jas@extundo.com>
* m4/getline.m4: Separate out getdelim stuff into separate module.
* m4/getdelim.m4: New file.
2005-08-02 Simon Josefsson <jas@extundo.com>
* lib/getline.h, getline.c: Rewrite.
* lib/getdelim.h, lib/getdelim.c: New files, ported from glibc.
2005-07-31 Bruno Haible <bruno@clisp.org>
* lib/lock.h (gl_lock_initializer): New macro.
(gl_lock_define_initialized): Use it.
(gl_rwlock_initializer): New macro.
(gl_rwlock_define_initialized): Use it.
(gl_recursive_lock_initializer): New macro.
(gl_recursive_lock_define_initialized): Use it.
2005-07-30 Karl Berry <karl@gnu.org>
* doc/gnulib.texi (Initial import): mention -I$(top_builddir)/lib.
Report from Ben Pfaff, regarding getopt.
2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
Add support to getopt for Emacs, which doesn't use LIBOBJS in the
normal way.
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER): New macro.
(gl_GETOPT_SUBSTITUTE): Use it. Invoke gl_PREREQ_GETOPT.
(gl_GETOPT_IFELSE, gl_GETOPT_CHECK_HEADERS): New macros.
(gl_GETOPT): Use the new macros. Most of the implementation
is moved to the new macros. This is for programs like Emacs
that don't want all the functionality of gl_GETOPT.
2005-07-26 Bruno Haible <bruno@clisp.org>
* m4/lock.m4: Update from GNU gettext.
2005-07-26 Bruno Haible <bruno@clisp.org>
* lib/lock.h: Update from GNU gettext.
* lib/lock.c: Update from GNU gettext.
2005-07-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/regex.m4 (gl_INCLUDED_REGEX): Use AC_RUN_IFELSE instead of the
obsolescent AC_TRY_RUN. Include the default includes files, for
'exit'.
2005-07-24 Bruno Haible <bruno@clisp.org>
* modules/visibility: New file.
* MODULES.html.sh (Misc): Add visibility.
2005-07-24 Bruno Haible <bruno@clisp.org>
* m4/visibility.m4: New file.
2005-07-24 Bruno Haible <bruno@clisp.org>
* doc/visibility.texi: New file.
2005-07-22 Bruno Haible <bruno@clisp.org>
* modules/alloca-opt (Makefile.am): Remove explicit dependency on
$(ALLOCA_H), redundant through BUILT_SOURCES.
* modules/argz (Makefile.am): Remove explicit dependency on $(ARGZ_H),
redundant through BUILT_SOURCES.
* modules/byteswap (Makefile.am): Remove explicit dependency on
$(BYTESWAP_H), redundant through BUILT_SOURCES.
* modules/fnmatch (Makefile.am): Remove explicit dependency on
$(FNMATCH_H), redundant through BUILT_SOURCES.
* modules/getopt (Makefile.am): Remove explicit dependency on
$(GETOPT_H), redundant through BUILT_SOURCES.
* modules/glob (Makefile.am): Remove explicit dependency on $(GLOB_H),
redundant through BUILT_SOURCES.
* modules/poll (Makefile.am): Remove explicit dependency on $(POLL_H),
redundant through BUILT_SOURCES.
* modules/stdbool (Makefile.am): Remove explicit dependency on
$(STDBOOL_H), redundant through BUILT_SOURCES.
* modules/stdint (Makefile.am): Remove explicit dependency on
$(STDINT_H), redundant through BUILT_SOURCES.
* modules/sysexits (Makefile.am): Add $(SYSEXITS_H) to BUILT_SOURCES.
Remove explicit dependency on $(SYSEXITS_H).
Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>.
2005-07-18 Simon Josefsson <jas@extundo.com>
* lib/check-version.c (check_version): Accept identical versions too.
2005-07-18 Bruno Haible <bruno@clisp.org>
* modules/lock: New file.
* MODULES.html.sh (Multithreading): New section.
2005-07-18 Bruno Haible <bruno@clisp.org>
* m4/lock.m4: New file, from GNU gettext.
2005-07-18 Bruno Haible <bruno@clisp.org>
* lib/lock.h: New file, from GNU gettext.
* lib/lock.c: New file, from GNU gettext.
2005-07-18 Bruno Haible <bruno@clisp.org>
* lib/lock.h (gl_once_t): New type.
(gl_once_define, gl_once): New macros.
* lib/lock.c (fresh_once): New variable.
(glthread_once, glthread_once_call, glthread_once_singlethreaded): New
functions.
2005-07-16 Simon Josefsson <jas@extundo.com>
* doc/gnulib.texi (Library version handling): Add ELF symbol collision
workaround, suggested by Bruno.
2005-07-15 Paul Eggert <eggert@cs.ucla.edu>
* modules/xalloc (Depends-on): Add xalloc-die.
* modules/xvasprintf (Depends-on): Add xalloc-die.
2005-07-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/quotearg.c: Add translator comment suggested by Bruno Haible,
with a minor change.
2005-07-15 Bruno Haible <bruno@clisp.org>
* m4/poll.m4 (gl_FUNC_POLL): Check against MacOS X 10.4 poll() bug.
When using lib/poll.c, define poll as rpl_poll.
2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
* modules/argp (Depends-on): Remove unlocked-io.
2005-07-14 Derek Price <derek@ximbiot.com>
* m4/glob.m4 (gl_GLOB): Cache glob interface check result. Add check
for glob symlink bug.
2005-07-14 Bruno Haible <bruno@clisp.org>
* m4/argp.m4 (gl_ARGP): Remove invocation of gl_FUNC_GLIBC_UNLOCKED_IO.
Instead, test for *_unlocked function declarations directly.
2005-07-11 Simon Josefsson <jas@extundo.com>
* modules/size_max: New file.
* modules/xsize: Depend on size_max module for size_max.m4.
2005-07-11 Simon Josefsson <jas@extundo.com>
* lib/size_max.h: New file.
2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/version-etc-fsf.c (version_etc_copyright): Parameterize the
copyright symbol and the year.
* lib/version-etc.c (COPYRIGHT_YEAR): New constant.
(version_etc_va): Use parameterized copyright notice.
Reword to conform to the current GNU coding standards.
2005-07-11 Karl Berry <karl@gnu.org>
* doc/gnulib.texi (Quoting): new node.
(Initial import): more info, from Patrice.
2005-07-11 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_usage): Document option --avoid.
(Command line options): Handle --avoid.
(func_acceptable): New function.
(func_modules_transitive_closure): Use it.
2005-07-11 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Use shortcut URLs to the www.opengroup.org site.
Reported by Jim Meyering.
2005-07-10 Bruno Haible <bruno@clisp.org>
* m4/size_max.m4 (gl_SIZE_MAX): Cast ~(size_t)0 back to size_t.
Needed when size_t is smaller than 'unsigned int'.
Reported by Paul Eggert.
2005-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
* modules/argp (Depends-on): Add unlocked-io
2005-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
* lib/argp-namefrob.h: Include unlocked-io.h. Removed unnecessary
block of defines.
2005-07-08 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Comment out regcomp.c, since we have a porting
fix now.
2005-07-08 Eric Blake <ebb9@byu.net> (tiny change)
and Paul Eggert <eggert@cs.ucla.edu>
* lib/regcomp.c (init_dfa, build_range_exp): Store __btowc value
in wint_t, not wchar_t. Remove now-unnecessary cast.
2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (Files): Add lib/regex_internal.c,
lib/regex_internal.h, lib/regexec.c, lib/regcomp.c, m4/codeset.m4.
(Depends-on): Add extensions.
(Makefile.am): Remove lib_SOURCES; now done by m4 code.
2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/backupfile.m4 (gl_BACKUPFILE): Use AC_CHECK_FUNCS_ONCE on
pathconf.
* m4/same.m4 (gl_SAME): Likewise.
Require AC_SYS_LONG_FILE_NAMES; bug reported by Gerrit P. Haase.
* m4/regex.m4: Adjust to new libc regex implementation.
(gl_INCLUDED_REGEX): Add AC_LIBSOURCES for
all the .c and .h parts of (the new) regex.
Quote the m4 stuff better.
Check for RE_ICASE bug of old gnulib.
Check for REG_STARTEND of recent libc.
Rename local variables from jm_* to gl_*.
Quote operand of "test -f".
Say "recent enough" version of libc, not "version 2".
(gl_PREREQ_REGEX): Remove AC_FUNC_ALLOCA, since alloca is a
prerequisite module. Remove AC_HEADER_STDC; no longer needed.
Check for locale.h, isblank, mbrtowc, wcrtomb, wcscoll.
Remove check for btowc, isascii.
Require AM_LANGINFO_CODESET.
2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
* lib/regex.c, regex.h: Sync from libc.
* lib/regcomp.c, lib/regexec_internal.c, lib/regex_internal.h:
* lib/regexec.c:
New files, synced from libc, except that regex_internal.h
currently has a small porting fix.
2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add regcomp.c, regex.c, regex.h,
regex_internal.c, regexec.c.
Add regex_internal.h too, but as a comment, since the libc version
is currently broken in gnulib mode.
2005-07-06 Paul Eggert <eggert@cs.ucla.edu>
Support programs like Emacs that use gnulib but not gettext.
* MODULES.html.sh (Internationalization functions): Add gettext-h.
* modules/gettext-h: New file.
* modules/gettext (Files): Remove lib/gettext.h.
(Depends-on): Add gettext-h.
(Makefile.am): Remove lib_SOURCES.
* modules/argmatch, modules/c-stack, modules/closeout:
* modules/copy-file, modules/csharpcomp, modules/csharpexec:
* modules/execute, modules/file-type, modules/getaddrinfo:
* modules/getopt, modules/human, modules/javacomp:
* modules/javaexec, modules/mkdir-p, modules/obstack:
* modules/openat, modules/pagealign_alloc, modules/pipe:
* modules/quotearg, modules/regex, modules/rpmatch:
* modules/unicodeio, modules/userspec, modules/version-etc:
* modules/wait-process, modules/xalloc-die, modules/xmemcoll:
* modules/xsetenv:
Depend on gettext-h, not gettext.
2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_import): Add support for 'public domain' license.
* modules/alloca, modules/atexit, modules/memmove:
Now public domain, not GPL.
* modules/dup2, modules/getpagesize, modules/malloc, modules/memset:
* modules/realloc, modules/strerror, modules/strtod:
Now LGPL, not GPL.
2005-07-05 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Upgrade to version from current
autoconf CVS. Needed for mingw.
2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
Remove the dependency of the strftime module on the tzset module.
* modules/strftime (Depends-on): Remove dependency on tzset.
2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
Remove the dependency of the strftime module on the tzset module.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Don't require
gl_FUNC_TZSET_CLOBBER.
2005-07-03 Paul Eggert <eggert@cs.ucla.edu>
Remove the dependency of the strftime module on the tzset module.
* lib/strftime.c (my_strftime)
[! defined _LIBC && ! HAVE_RUN_TZSET_TEST]:
Copy the input structure, to work around some of the bug with
Solaris 2.5.1 and Solaris 2.6. If you still care about these old
Solaris releases, you should also use the tzset module, but we won't
require it as a dependency any more since we don't want LGPLed code
to depend on GPLed code.
2005-07-02 Jim Meyering <jim@meyering.net>
* m4/chown.m4, cloexec.m4, dup2.m4, fsusage.m4:
* m4/getcwd-path-max.m4, getcwd.m4, mkstemp.m4, mountlist.m4:
* m4/pagealign_alloc.m4, save-cwd.m4, unistd-safer.m4:
Don't check for fcntl.h, and don't test for HAVE_FCNTL_H.
2005-07-02 Jim Meyering <jim@meyering.net>
* lib/backupfile.c (backup_args): Change a `0' to NULL.
2005-07-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/xnanosleep.c: Include timespec.h, since OpenBSD 3.4 <time.h>
declares only 'struct timespec;' (!).
2005-07-01 Jim Meyering <jim@meyering.net>
* lib/chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c:
* lib/getloadavg.c, mountlist.c, openat.h, pagealign_alloc.c:
* lib/save-cwd.c, tempname.c:
Assume HAVE_FCNTL_H (i.e., include <fcntl.h> unconditionally,
and don't include <sys/file.h>).
2005-06-29 Jim Meyering <jim@meyering.net>
* lib/mkdir-p.c (make_dir_parents): Don't apply sizeof to a hard-coded
type name. Use the variable name instead.
* lib/idcache.c (getuser, getuidbyname, getgroup, getgidbyname):
Likewise.
2005-06-28 Simon Josefsson <jas@extundo.com>
* modules/check-version (Files): Add check-version.m4.
2005-06-28 Simon Josefsson <jas@extundo.com>
* m4/check-version.m4: New file, suggested by Jim Meyering
<jim@meyering.net>.
2005-06-28 Simon Josefsson <jas@extundo.com>
* lib/check-version.h, lib/check-version.c: New files.
2005-06-28 Simon Josefsson <jas@extundo.com>
* lib/base64.c (base64_encode): Indent. Rename 'b64' to avoid
collision with global variable. Better indentation. Don't
increment buffer pointer beyond buffer end. Based on comments
from Paul Eggert <eggert@cs.ucla.edu>.
* lib/base64.h: Indent.
2005-06-28 Simon Josefsson <jas@extundo.com>
* doc/gnulib.texi (Library version handling): New section.
2005-06-28 Jim Meyering <jim@meyering.net>
* check-module (find_included_lib_files): Hard-code another
pair of exceptions: fts.c includes fts-cycle.c and unistd-safer.h
but modules/fts-lgpl (correctly) does not list those files.
* modules/canonicalize (Files): Add lib/pathmax.h.
2005-06-25 Simon Josefsson <jas@extundo.com>
* modules/check-version: New file.
2005-06-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/canon-host.c (canon-host): Append trailing "," to 0 in
initializer of struct addrinfo, as an indication that we don't
care how many members the structure has.
2005-06-24 Derek Price <derek@ximbiot.com>
and Bruno Haible <bruno@clisp.org>
Remove stat module & update lstat.
* m4/lstat.m4 (gl_FUNC_LSTAT): Drop AC_FUNC_LSTAT in favor of
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
* m4/stat.m4: Remove this file.
2005-06-24 Derek Price <derek@ximbiot.com>
and Bruno Haible <bruno@clisp.org>
Remove stat module & update lstat.
* lib/stat.c: Remove this file...
(slash_aware_lstat): ...moving this content and its support...
* lib/lstat.c (rpl_lstat): ...into here.
* lib/lstat.h: New file.
2005-06-24 Derek Price <derek@ximbiot.com>
and Bruno Haible <bruno@clisp.org>
Remove stat module & update lstat.
* config/srclist.txt (libc sources): Remove stat.
2005-06-24 Derek Price <derek@ximbiot.com>
and Bruno Haible <bruno@clisp.org>
Remove stat module & update lstat.
* MODULES.html.sh (stat): Remove.
* MODULES.html: Regenerated.
* modules/lstat (Description): Correct function name.
(Files): Add "lstat.h".
(Depends-on): Remove stat, add xalloc, stat-macros.
* modules/stat: Remove this file.
(Include): Add "lstat.h", remove <sys/stat.h>.
2005-06-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/mktime.c: Include <string.h> even if !DEBUG. (From glibc.)
(ranged_convert): Don't save conversion in a temporary struct.
This causes a warning with GCC 4.0.0, and anyway in the typical
case it's not worth the extra 100 bytes or so of code.
(ranged_convert, __mktime_internal): When calling a function via a
pointer P, use P () rather than (*P) (), as we now assume C89 or
better.
2005-06-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/readutmp.c (desirable_utmp_entry): Fix bug where "who -b" and
"who -r" failed to give output. Problem reported by Tim Waugh.
* lib/xmalloc.c (HAVE_GNU_CALLOC): New constant.
(xcalloc): Use it to avoid needless tests.
Problem reported by Jim Meyering.
2005-06-20 Derek Price <derek@ximbiot.com>
* m4/bison.m4: Note that precious decls of YACC & YFLAGS will be
unnecessary for Autoconfs > 2.59c.
2005-06-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argp.h (__option_is_short): Check upper limit of
__key. Isprint() requires its argument to have the value
of an unsigned char or EOF.
2005-06-16 Jim Meyering <jim@meyering.net>
* lib/calloc.c (rpl_calloc): Allocate a 1-byte buffer (not 1xS or Nx1)
when either N or S is zero.
2005-06-16 Derek Price <derek@ximbiot.com>
* m4/bison.m4: Declare YACC & YFLAGS precious.
2005-06-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/fnmatch.c (fnmatch): If there is an encoding error in a
multibyte string or pattern, fall back on unibyte matching.
Problem reported by James Youngman.
2005-06-08 Bruno Haible <bruno@clisp.org>
* modules/csharpcomp: New file.
* MODULES.html.sh (C#): Add csharpcomp.
2005-06-08 Bruno Haible <bruno@clisp.org>
* m4/csharpcomp.m4: New file, from GNU gettext.
2005-06-08 Bruno Haible <bruno@clisp.org>
* lib/csharpcomp.h: New file, from GNU gettext.
* lib/csharpcomp.c: New file, from GNU gettext.
* lib/csharpcomp.sh.in: New file, from GNU gettext.
2005-06-08 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h (fileno): Undefine before defining it. Avoids a gcc
warning on mingw.
2005-06-07 Derek Price <derek@ximbiot.com>
Sync from CVS.
* lib/glob_.h: Indent nested #ifdef.
2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
Use "file name" when talking about file names, instead of "filename"
or "path", as per the GNU coding standards.
* lib/mkdir-p.c: Renamed from makepath.c.
(make_dir_parents): Renamed from make_path. All callers changed.
* lib/mkdir-p.h: Likewise. All includers changed.
* lib/filenamecat.c: Renamed from path-concat.c.
(file_name_concat): Renamed from path_concat. All callers changed.
[TEST_FILE_NAME_CONCAT]: Renamed from TEST_PATH_CONCAT.
* lib/filenamecat.h: Likewise. All includers changed.
* lib/acl.c: Don't use "path" or "filename" to mean "file name"
in comments or local variable names.
* lib/basename.c: Likewise.
* lib/canonicalize.c, canonicalize.h: Likewise.
* lib/dirname.c, dirname.h: Likewise.
* lib/euidaccess.c: Likewise.
* lib/exclude.c: Likewise
* lib/fnmatch_.h, fnmatch_loop.c: Likewise.
* lib/fsusage.c, fsuage.h: Likewise.
* lib/fts.c, fts_.h: Likewise.
* lib/getcwd.c: Likewise.
* lib/getloadavg.c: Likewise.
* lib/mkstemp.c: Likewise.
* lib/mountlist.c, mountlist.h: Likewise.
* lib/openat.c, openat.h: Likewise.
* lib/readlink-stub.c: Likewise.
* lib/readutmp.c, readutmp.h: Likewise.
* lib/rename.c: Likewise.
* lib/rmdir.c: Likewise.
* lib/same.c: Likewise.
* lib/savedir.c: Likewise.
* lib/stripslash.c: Likewise.
* lib/tempname.c: Likewise.
* lib/xreadlink.c: Likewise.
* lib/exclude.c (excluded_file_name): Renamed from excluded_filename.
All uses changed.
* lib/exclude.h: Likewise.
* lib/euidaccess.c (getuid, getgid, getuid, getegid)
[!defined _POSIX_VERSION]: Remove decls; not needed these days.
* lib/idcache.c (getpwuid, getpwnam, getgrgid, getgrnam)
[!defined _POSIX_VERSION]: Remove decls; not needed these days.
* lib/pathmax.h: Include <limits.h> unconditionally, since other
files have been getting away with it for years (MORE/BSD 4.3
is extinct now).
* lib/userspec.c (getpwnam, getgrnam, getgrgid)
[!defined _POSIX_VERSION]: Remove decls; not needed these days.
* lib/pathmax.h (_POSIX_PATH_MAX) [!defined _POSIX_PATH_MAX]:
Define to 256, not 255, as per modern POSIX.
2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
Use "file name" when talking about file names, instead of "filename"
or "path", as per the GNU coding standards.
* MODULES.html.sh: mkdir-p renamed from makepath.
filenamecat renamed from path-concat.
* modules/filenamecat: Renamed from modules/path-concat.
(Files): filenamecat.h and filenamecat.c renamed from
path-concat.h and path-concat.c.
(configure.ac): gl_FILE_NAME_CONCAT, not gl_PATH_CONCAT.
(Include): filenamecat.h, not path-concat.h.
* modules/mkdir-p: Renamed from modules/makepath.
(Files): mkdir-p.h and mkdir-p.c renamed from makepath.h and
makepath.c.
(configure.ac): gl_MKDIR_PARENTS, not gl_MAKEPATH.
(Include): mkdir-p.h, not makepath.h.
2005-06-02 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/mkdir-p.m4: Renamed from makepath.m4.
(gl_MKDIR_PARENTS): Renamed from gl_MAKEPATH. All uses changed.
Rename files from makepath.c to mkdir-p.c, and from
makepath.h to mkdir-p.h.
* m4/filenamecat.m4: Renamed from path-concat.m4.
(gl_FILE_NAME_CONCAT): Renamed from gl_PATH_CONCAT. All uses changed.
Rename files from path-concat.c to filenamecat.c,
and from path-concat.h to filenamecat.h.
* m4/getcwd-path-max.m4: Don't use "path" or "filename" to mean
"file name" in local variables or comments.
* m4/rename.m4: Likewise.
2005-06-01 Bruno Haible <bruno@clisp.org>
* modules/csharpexec: New file.
* MODULES.html.sh (C#): New section.
2005-06-01 Bruno Haible <bruno@clisp.org>
* m4/csharp.m4: New file, from GNU gettext.
* m4/csharpexec.m4: New file, from GNU gettext.
2005-06-01 Bruno Haible <bruno@clisp.org>
* lib/csharpexec.h: New file, from GNU gettext.
* lib/csharpexec.c: New file, from GNU gettext.
* lib/csharpexec.sh.in: New file, from GNU gettext.
2005-05-31 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
Sync from cvs.
* m4/glob.m4: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment.
2005-05-31 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
Sync from cvs.
* lib/glob_.h: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment.
2005-05-29 Derek Price <derek@ximbiot.com>
* config/srclist.txt (glob_.h, glob.c): Add these files.
2005-05-29 Derek Price <derek@ximbiot.com>
* MODULES.html.sh: Add glob to Enhanced POSIX.2001 section.
* modules/glob: New file.
* modules/getlogin_r: Add link to POSIX spec in description.
2005-05-29 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* m4/glob.m4: New file.
2005-05-29 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* lib/glob_.h, lib/glob.c: New files.
2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
* modules/fts (Files): Remove m4/inttypes-pri.m4.
* modules/fts-lgpl (Depends-on): Remove gettext.
2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
* m4/fts.m4 (gl_FUNC_FTS_CORE): Don't check for inttypes.h or stdint.h,
and don't require gt_INTTYPES_PRI.
2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/getlogin_r.c (getlogin_r): Don't set errno to 0 on return.
* lib/fts.c: Don't worry about debugging on pre-C99-compatible hosts;
the configuration hassle isn't worth it.
Include inttypes.h and stdint.h unconditionally if FTS_DEBUG.
(LONGEST_MODIFIER, PRIuMAX): Remove.
2005-05-27 Bruno Haible <bruno@clisp.org>
* lib/getlogin_r.h: Remove second include of <stddef.h>.
2005-05-26 Paul Eggert <eggert@cs.ucla.edu>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Define
_POSIX_PTHREAD_SEMANTICS for Solaris.
2005-05-25 Derek Price <derek@ximbiot.com>
* MODULES.html.sh: Add getlogin_r to POSIX.2001 support section.
2005-05-25 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* modules/getlogin_r, m4/getlogin_r.m4: New files.
* lib/getlogin_r.c, getlogin_r.h: New files.
2005-05-25 Bruno Haible <bruno@clisp.org>
Derek Price <derek@ximbiot.com>
* lib/getlogin_r.h: Simplify API documentation.
2005-05-23 Derek Price <derek@ximbiot.com>
* modules/minmax (Files): Add m4/minmax.m4.
(configure.ac): Add gl_MINMAX.
2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/fts.c (fd_safer) [_LGPL_PACKAGE]: New static function,
so that unistd-safer.h (GPL'ed code) need not be included.
2005-05-22 Bruno Haible <bruno@clisp.org>
* m4/minmax.m4: New file.
Based on a patch by Derek Price <derek@ximbiot.com>.
2005-05-22 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs.
(INT64_MIN): Fix definition.
Suggested by Paul Eggert <eggert@cs.ucla.edu>.
* lib/stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Renamed from
NEED_SIGNED_INT_TYPES.
* lib/stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Renamed from
HAVE_SYSTEM_INTTYPES.
2005-05-22 Bruno Haible <bruno@clisp.org>
* lib/minmax.h: Include <limits.h> only when it defines MIN, MAX.
Also include <sys/param.h> if it defines MIN, MAX.
Based on a patch by Derek Price <derek@ximbiot.com>.
2005-05-21 Jim Meyering <jim@meyering.net>
* modules/fts (Files): Add m4/inttypes-pri.m4.
(Depends-on): Add lstat and remove gettext. Alphabetize.
2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
New fts module.
* lib/fts.c: Don't include "cycle-check.h" or "hash.h".
(setup_dir, free_dir): New functions.
(enter_dir, leave_dir): Define trivial
alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE.
(HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed.
(LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir.
(struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir):
Move to fts-cycle.c.
(fts_open): Use setup_dir.
(fts_close): Use free_dir.
(fts_read): Have just one copy of the ENTER_DIR code rather than three.
This adds a label and some gotos, but the alternatives were messier.
Check for memory allocation failure when entering a dir.
(fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code.
* lib/fts_.h (_LGPL_PACKAGE) [defined _LIBC]: New macro.
(FTS): New member fts_cycle, that is a union that contains the
old active_dir_ht and cycle_state. All uses changed to mention
fts_cycle.ht and fts_cycle.state.
* lib/fts-cycle.c: New file, containing GPL'ed code migrated out of
fts.c, with the following changes:
(setup_dir, free_dir): New functions.
(enter_dir): Now returns bool. Return true if successful, false
if memory exhausted. All callers changed.
Do not bother partly cleaning up on
memory allocation failure; that is free_dir's job.
However, free ad if hash_insert fails, to avoid memory leak.
(enter_dir, leave_dir): Accommodate change to FTS by inspecting
fts->fts_options to see which union member to use.
2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
* m4/fts.m4 (gl_FUNC_FTS_CORE): Renamed from gl_FUNC_FTS.
(gl_FUNC_FTS, gl_FUNC_FTS_LGPL): New macros.
2005-05-20 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (File system functions): Add fts, fts-lgpl.
2005-05-20 Jim Meyering <jim@meyering.net>
* lib/unlinkdir.h (cannot_unlink_dir) [UNLINK_CANNOT_UNLINK_DIR]:
Now a macro, to pacify GCC.
2005-05-20 Eric Blake <ebb9@byu.net> (tiny change)
* m4/chown.m4 (gl_FUNC_CHOWN): Correct sense of test for honoring IDs
of -1.
2005-05-20 Eric Blake <ebb9@byu.net> (tiny change)
* lib/chown.c (rpl_chown): Return -1 on failure.
2005-05-18 Paul Eggert <eggert@cs.ucla.edu>
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME]):
Don't check for stddef.h.
* m4/fts.m4 (gl_FUNC_FTS): Don't require AC_HEADER_STDC, as we
don't use its results.
Don't check for fcntl.h, stddef.h, stdlib.h, string.h, unistd.h,
since we include them unconditionally. Don't require
AM_STDBOOL_H, since stdbool is a prerequisite.
Don't require AC_C_CONST, AC_TYPE_SIZE_T or check for ptrdiff_t
since we assume C89 or better.
Don't require AC_FUNC_CLOSEDIR_VOID, AC_FUNC_LSTAT, or AC_FUNC_STAT,
as we don't use their results.
Don't check for fchdir, memmove, memset, strrchr, as we use
them unconditionally.
* m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't define
GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER, since nobody uses it.
2005-05-18 Paul Eggert <eggert@cs.ucla.edu>
* lib/canonicalize.c: Include canonicalize.h first, to test interface.
Include <stddef.h> unconditionally, since we assume C89 now.
All uses of PTR_INT_TYPE replaced by ptrdiff_t.
* lib/fts.c: Include fts_.h first, to check interface.
Do not include intprops.h; no longer needed.
Include cycle-check.h and hash.h, since fts_.h no longer does.
Remove unnecessary casts of closedir to void.
(fts_build): Use a simpler method (not involving TYPE_SIGNED) to
decide whether to decrement nlinks.
* lib/fts_.h: Do not include hash.h or cycle-check.h; no longer needed.
(FTS): Use struct hash_table * instead of Hash_table, so that
we no longer need to include hash.h here.
2005-05-18 Jim Meyering <jim@meyering.net>
* modules/dirfd (License): Change to LGPL. Most of the code
is already in the public domain.
2005-05-18 Jim Meyering <jim@meyering.net>
* m4/fts.m4 (AC_LIBSOURCES): Add intprops.h to the list.
Reported by Yoann Vandoorselaere.
2005-05-17 Jim Meyering <jim@meyering.net>
* m4/fts.m4: New file, from coreutils.
2005-05-17 Jim Meyering <jim@meyering.net>
* lib/fts.c, lib/fts_.h: New files, from coreutils.
2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/unlinkdir.m4: New file.
2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* lib/unlinkdir.c, lib/unlinkdir.h: New files.
* lib/gethrxtime.c, lib/gethrxtime.h, lib/getpass.h, lib/mountlist.h,
lib/path-concat.c, lib/regex.h, lib/unlocked-io.h, lib/xtime.h:
White space changes only.
* lib/makepath.c (make_path): Port to hosts where leading "//" is
special.
* lib/yesno.c: Include getline.h, not ctype.h.
(yesno): Don't remove leading white space; POSIX doesn't allow it.
Use getline to remove arbitrary restriction on response length.
2005-05-14 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist-update: Spell out "Street" in FSF postal
mail address; this is the style the FSF seems to prefer.
* build-aux/depcomp, build-aux/install-sh, build-aux/mdate-sh,
build-aux/missing, build-aux/mkinstalldirs: Sync from Automake;
this updates FSF postal mail address.
Sync from coreutils.
* modules/unlinkdir: New file.
* modules/yesno (Depends-on): Add getline.
* MODULES.html.sh (File system functions): Add unlinkdir.
2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/byteswap_.h, lib/getsubopt.h, lib/iconvme.h, lib/strsep.c,
lib/strsep.h:
Change the initial comment to refer to GPL, not LGPL.
gnulib-tool will change it to LGPL as needed.
* lib/__fpending.c, lib/acl.c, lib/acl.h, lib/alloca_.h, lib/allocsa.c,
lib/allocsa.h, lib/argmatch.c, lib/argmatch.h, lib/argp-ba.c,
lib/argp-eexst.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h,
lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h,
lib/argp-parse.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c,
lib/argp.h, lib/argz.c, lib/argz_.h, lib/asnprintf.c, lib/asprintf.c,
lib/atanl.c, lib/backupfile.c, lib/backupfile.h, lib/base64.c,
lib/base64.h, lib/basename.c, lib/binary-io.h, lib/byteswap_.h,
lib/c-ctype.c, lib/c-ctype.h, lib/c-stack.c, lib/c-stack.h,
lib/c-strtod.c, lib/calloc.c, lib/canon-host.c, lib/canonicalize.c,
lib/canonicalize.h, lib/ceill.c, lib/chdir-long.c, lib/chdir-long.h,
lib/chown.c, lib/classpath.c, lib/classpath.h, lib/cloexec.c,
lib/closeout.c, lib/closeout.h, lib/concatpath.c, lib/config.charset,
lib/copy-file.c, lib/copy-file.h, lib/cycle-check.c, lib/cycle-check.h,
lib/diacrit.c, lib/diacrit.h, lib/dirfd.c, lib/dirfd.h, lib/dirname.c,
lib/dirname.h, lib/dummy.c, lib/dup-safer.c, lib/dup2.c, lib/eealloc.h,
lib/error.c, lib/error.h, lib/euidaccess.c, lib/exclude.c,
lib/exclude.h, lib/execute.c, lib/execute.h, lib/exit.h,
lib/exitfail.c, lib/exitfail.h, lib/expl.c, lib/fatal-signal.c,
lib/fatal-signal.h, lib/fd-safer.c, lib/file-type.c, lib/file-type.h,
lib/fileblocks.c, lib/filemode.c, lib/filemode.h, lib/findprog.c,
lib/findprog.h, lib/floorl.c, lib/fnmatch.c, lib/fnmatch_.h,
lib/fnmatch_loop.c, lib/fopen-safer.c, lib/free.c, lib/frexpl.c,
lib/fsusage.c, lib/fsusage.h, lib/full-read.c, lib/full-read.h,
lib/full-write.c, lib/full-write.h, lib/fwriteerror.c,
lib/fwriteerror.h, lib/gai_strerror.c, lib/gcd.c, lib/gcd.h,
lib/getaddrinfo.c, lib/getaddrinfo.h, lib/getcwd.c, lib/getcwd.h,
lib/getdate.h, lib/getdate.y, lib/getdomainname.c, lib/getdomainname.h,
lib/getgroups.c, lib/gethostname.c, lib/gethrxtime.c, lib/gethrxtime.h,
lib/getline.c, lib/getline.h, lib/getloadavg.c, lib/getndelim2.c,
lib/getndelim2.h, lib/getnline.c, lib/getnline.h, lib/getopt.c,
lib/getopt1.c, lib/getopt_.h, lib/getopt_int.h, lib/getpagesize.h,
lib/getpass.c, lib/getpass.h, lib/getsubopt.c, lib/getsubopt.h,
lib/gettext.h, lib/gettime.c, lib/gettimeofday.c, lib/getugroups.c,
lib/getusershell.c, lib/group-member.c, lib/group-member.h,
lib/hard-locale.c, lib/hard-locale.h, lib/hash-pjw.c, lib/hash-pjw.h,
lib/hash.c, lib/hash.h, lib/human.c, lib/human.h, lib/iconvme.c,
lib/iconvme.h, lib/idcache.c, lib/inet_ntop.h, lib/intprops.h,
lib/inttostr.c, lib/inttostr.h, lib/isdir.c, lib/javacomp.c,
lib/javacomp.h, lib/javacomp.sh.in, lib/javaexec.c, lib/javaexec.h,
lib/javaexec.sh.in, lib/lbrkprop.h, lib/lchown.c, lib/ldexpl.c,
lib/linebreak.c, lib/linebreak.h, lib/linebuffer.c, lib/linebuffer.h,
lib/localcharset.c, lib/localcharset.h, lib/logl.c, lib/long-options.c,
lib/long-options.h, lib/lstat.c, lib/makepath.c, lib/makepath.h,
lib/malloc.c, lib/mathl.h, lib/mbswidth.c, lib/mbswidth.h, lib/md5.c,
lib/md5.h, lib/memcasecmp.c, lib/memcasecmp.h, lib/memchr.c,
lib/memcmp.c, lib/memcoll.c, lib/memcoll.h, lib/memcpy.c, lib/memmem.c,
lib/memmem.h, lib/mempcpy.c, lib/mempcpy.h, lib/memrchr.c,
lib/memrchr.h, lib/memset.c, lib/minmax.h, lib/mkdir.c, lib/mkdtemp.c,
lib/mkdtemp.h, lib/mkstemp.c, lib/mktime.c, lib/modechange.c,
lib/modechange.h, lib/mountlist.c, lib/mountlist.h, lib/nanosleep.c,
lib/obstack.c, lib/obstack.h, lib/openat.c, lib/openat.h,
lib/pagealign_alloc.c, lib/pagealign_alloc.h, lib/path-concat.c,
lib/path-concat.h, lib/pathmax.h, lib/pathname.h, lib/physmem.c,
lib/physmem.h, lib/pipe.c, lib/pipe.h, lib/poll.c, lib/poll_.h,
lib/posixtm.c, lib/posixtm.h, lib/posixver.c, lib/printf-args.c,
lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h,
lib/progname.c, lib/progname.h, lib/progreloc.c, lib/putenv.c,
lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h, lib/raise.c,
lib/readlink.c, lib/readtokens.c, lib/readtokens.h, lib/readtokens0.c,
lib/readtokens0.h, lib/readutmp.c, lib/readutmp.h, lib/realloc.c,
lib/ref-add.sin, lib/ref-del.sin, lib/regex.c, lib/regex.h,
lib/rename.c, lib/rmdir.c, lib/rpmatch.c, lib/safe-read.c,
lib/safe-read.h, lib/safe-write.c, lib/safe-write.h, lib/same.c,
lib/same.h, lib/save-cwd.c, lib/save-cwd.h, lib/savedir.c,
lib/savedir.h, lib/setenv.c, lib/setenv.h, lib/settime.c,
lib/sh-quote.c, lib/sh-quote.h, lib/sha1.c, lib/sha1.h, lib/sig2str.c,
lib/sig2str.h, lib/sincosl.c, lib/snprintf.c, lib/snprintf.h,
lib/sqrtl.c, lib/stat-macros.h, lib/stat.c, lib/stdbool_.h,
lib/stdint_.h, lib/stdio-safer.h, lib/stpcpy.c, lib/stpcpy.h,
lib/stpncpy.c, lib/stpncpy.h, lib/strcase.h, lib/strcasecmp.c,
lib/strchrnul.c, lib/strchrnul.h, lib/strcspn.c, lib/strdup.c,
lib/strdup.h, lib/strerror.c, lib/strftime.c, lib/strftime.h,
lib/stripslash.c, lib/strndup.c, lib/strndup.h, lib/strnlen.c,
lib/strpbrk.c, lib/strpbrk.h, lib/strsep.c, lib/strsep.h, lib/strstr.c,
lib/strstr.h, lib/strtod.c, lib/strtoimax.c, lib/strtok_r.c,
lib/strtok_r.h, lib/strtol.c, lib/strtoll.c, lib/strtoul.c,
lib/strtoull.c, lib/strverscmp.c, lib/strverscmp.h, lib/sysexit_.h,
lib/tempname.c, lib/time_r.c, lib/time_r.h, lib/timegm.c, lib/timegm.h,
lib/timespec.h, lib/trigl.c, lib/trigl.h, lib/ucs4-utf16.h,
lib/ucs4-utf8.h, lib/unicodeio.c, lib/unicodeio.h, lib/unistd-safer.h,
lib/unlocked-io.h, lib/unsetenv.c, lib/userspec.c, lib/utf16-ucs4.h,
lib/utf8-ucs4.h, lib/utime.c, lib/utimecmp.c, lib/utimecmp.h,
lib/utimens.c, lib/vasnprintf.c, lib/vasnprintf.h, lib/vasprintf.c,
lib/vasprintf.h, lib/version-etc-fsf.c, lib/version-etc.c,
lib/version-etc.h, lib/vsnprintf.c, lib/vsnprintf.h, lib/w32spawn.h,
lib/wait-process.c, lib/wait-process.h, lib/xalloc-die.c, lib/xalloc.h,
lib/xallocsa.c, lib/xallocsa.h, lib/xasprintf.c, lib/xgetcwd.c,
lib/xgetcwd.h, lib/xgetdomainname.c, lib/xgetdomainname.h,
lib/xgethostname.c, lib/xmalloc.c, lib/xmemcoll.c, lib/xnanosleep.c,
lib/xreadlink.c, lib/xreadlink.h, lib/xsetenv.c, lib/xsetenv.h,
lib/xsize.h, lib/xstrndup.c, lib/xstrndup.h, lib/xstrtod.c,
lib/xstrtod.h, lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtol.h,
lib/xstrtoumax.c, lib/xtime.h, lib/xvasprintf.c, lib/xvasprintf.h,
lib/yesno.c, lib/yesno.h:
Update FSF postal mail address.
2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh, README, gnulib-tool, tests/test-base64.c,
tests/test-memmem.c, tests/test-stpncpy.c:
Update FSF postal mail address.
2005-05-13 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t,
int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX,
UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX,
INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN,
INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C):
Add support for 64-bit integers in the MSVC compiler.
2005-05-12 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* modules/getdate (Makefile.am): Add getdate.c to EXTRA_DIST
2005-05-12 Eric Blake <ebb9@byu.net> (tiny change)
* gnulib-tool (func_import): Sort and uniquify recommended includes.
2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
* doc/getdate.texi (General date syntax): Don't say that date
date --iso-8601=ns generates acceptable dates; it doesn't yet.
Problem reported by Nic Ferrier.
2005-05-10 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
* lib/getaddrinfo.c: Don't fail when SOCK_STREAM or SOCK_DGRAM are
specified in ai_socktype. Fix invalid ai_protocol
check. ai_protocol is usually set to 0 or depending on
ai_family/ai_socktype to IPPROTO_TCP / IPPROTO_UDP. Checking for
SOCK_STREAM / SOCK_DGRAM in ai_protocol was invalid. Set
ai_socktype / ai_protocol in the returned addrinfo structure.
2005-05-10 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: Look in libnsl/libsocket for getaddrinfo, from
Yoann Vandoorselaere <yoann.v@prelude-ids.com>.
2005-05-10 Karl Berry <karl@gnu.org>
* doc/fdl.texi, gpl.texi, lgpl.texi, COPYING: update FSF address
(from http://www.gnu.org/licenses).
* doc/COPYING.LIB: also rename to COPYING.LESSER.
* doc/COPYING.DOC: remove; per rms, only needed in doc files, so
fdl.texi suffices.
2005-05-10 Karl Berry <karl@gnu.org>
* config/srclist.txt (COPYING.LESSER): rename from COPYING.LIB.
(COPYING.DOC): remove.
* config/srclist-update: new FSF address.
2005-05-10 Derek Price <derek@ximbiot.com>
* m4/getopt.m4 (gl_GETOPT): Check for Solaris 10 bug, not decl, when
possible.
2005-05-09 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* modules/inet_ntop: New file.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
inet_ntop.
2005-05-09 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* m4/inet_ntop.m4: New file.
2005-05-09 Yoann Vandoorselaere <yoann.v@prelude-ids.com>
Bruno Haible <bruno@clisp.org>
* lib/inet_ntop.h: New file.
* lib/inet_ntop.c: New file, from glibc with modifications.
2005-05-09 Paul Eggert <eggert@cs.ucla.edu>
* modules/time_r (License): Change to LGPL.
* modules/extensions (License): Change to LGPL. Actually,
the license is more permissive than that, but currently gnulib-tool
doesn't know how to handle more-permissive licenses.
* modules/stat-macros (Depends-on): Don't depend on stat-macros (!).
Problem reported by Dave Love.
2005-05-08 Jim Meyering <jim@meyering.net>
* lib/classpath.c (PATH_SEPARATOR): Remove insignificant trailing
blank.
2005-05-06 Paul Eggert <eggert@cs.ucla.edu>
* modules/argmatch (Depends-on): Add stdbool.
* modules/backupfile (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/closeout (Depends-on): Likewise.
* modules/cycle-check (Depends-on): Likewise.
* modules/dirname (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/fwriteerror (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/getloadavg (Depends-on): Likewise.
* modules/hard-locale (Depends-on): Likewise.
* modules/makepath (Depends-on): Likewise.
* modules/mountlist (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/posixtm (Depends-on): Likewise.
* modules/quotearg (Depends-on): Likewise.
* modules/readtokens (Depends-on): Likewise.
* modules/readtokens0 (Depends-on): Likewise.
* modules/readutmp (Depends-on): Likewise.
* modules/save-cwd (Depends-on): Likewise.
* modules/strftime (Depends-on): Likewise.
* modules/userspec (Depends-on): Likewise.
* modules/utimecmp (Depends-on): Likewise.
* modules/xgetcwd (Depends-on): Likewise.
* modules/xnanosleep (Depends-on): Likewise.
* modules/xstrtod (Depends-on): Likewise.
* modules/yesno (Depends-on): Likewise.
2005-05-05 Paul Eggert <eggert@cs.ucla.edu>
* m4/getopt.m4 (gl_GETOPT): Check for Solaris 10 getopt, and avoid
needless checks.
2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils. Among other things,
add bulletproofing for cases where stdin, stdout, or stderr are closed.
* lib/fd-safer.c: New file.
* lib/fcntl-safer.h, open-safer.c: Remove.
* lib/chdir-long.c: Fix comment "fetish" -> "coreutils".
* lib/dup-safer.c: Include unistd-safer.h first.
Don't include errno.h.
(dup_safer) [!defined F_DUPFD]: Let fd_safer do the real work.
* lib/file-type.h: Don't assume invoker included sys/stat.h first.
* lib/file-type.c: Rely on file-type.h change.
* lib/getloadavg.c: Include unistd-safer.h.
(getloadavg): Use safer open.
* lib/getusershell.c: Include "stdio-safer.h".
(getusershell): Use safer fopen.
* lib/long-options.c (long_options): Use NULL rather than 0.
* lib/modechange.h (mode_free): Remove; all callers changed to invoke
'free'.
* lib/modechange.c: Likewise.
xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed.
(MODE_DONE): New constant.
(struct mode_change): Remove 'next' member.
(make_node_op_equals): New function; like the old one of the
same name, except it allocates an array.
(mode_compile, mode_create_from_ref): Use it.
(mode_compile): Allocate result as an array, not a linked list.
Parse octal string ourself, so that we catch mistakes like "+0".
(mode_adjust): Arg is an array, not a linked list.
* lib/modechange.c: Include stat-macros.h, xalloc.h.
(S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR):
(S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU):
(S_IRWXG, S_IRWXO, CHMOD_MODE_BITS):
Remove. This is now stat-macros.h's job.
(talloc): Remove. All callers replaced by xalloc, so that
our invokers don't have to worry about reporting memory failures.
(make_node_op_equals): Remove.
(MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
New constants.
(struct mode_change): Moved here from modechange.h.
(mode_append_entry): Remove.
(mode_compile): Remove MASKED_OPS arg, since it encouraged
apps to have incorrect behavior. Use simpler algorithm for head
and tail. Don't futz with umask; that's now the job of mode_adjust.
Detect more invalid usages rather than having somewhat-random behavior.
Don't insert an "a=" action, as that leads to incorrect behavior.
(mode_compile, mode_create_from_ref): Return NULL on error instead
of an enum, since now there's only one way to have an error. All
callers changed.
(mode_adjust): Accept new arg UMASK_VALUE, and interpret it
at the correct time. Simplify calculation of "+u" and its ilk.
Don't mishandle "+X".
(mode_free): Remove "register" and localize decls.
* lib/modechange.h (MODE_X_IF_ANY_X, MODE_COPY_EXISTING):
(struct mode_change): Move to modechange.c; callers don't
need to see this stuff.
(MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL):
(MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove.
(mode_change, mode_adjust): Reflect the new signatures noted above.
* lib/nanosleep.c (rpl_nanosleep): Include "timespec.h" before macros
that might redefine system include files.
(siginterrupt) [!HAVE_SIGINTERRUPT]: New macro.
(my_usleep): Use NULL rather than (void *) 0.
(rpl_nanosleep) [!defined SA_NOCLDSTOP]:
Use siginterrupt to specify that system calls should be interrupted.
(rpl_nanosleep): Move initialization of suspended closer to call of
my_usleep.
* lib/readutmp.h (read_utmp): New arg OPTIONS. All uses changed.
* lib/readutmp.c: Likewise. Include signal.h, stdbool.h.
(desirable_utmp_entry): New function.
(read_utmp) [defined UTMP_NAME_FUNCTION]: Redo memory allocation
using x2nrealloc, to simplify logic.
(read_utmp) [!defined UTMP_NAME_FUNCTION]: Check for overflow in
size calculation. Do not assume utmp file is a regular file.
* lib/readutmp.h (UT_PID): Moved here from ../src/who.c.
(READ_UTMP_CHECK_PIDS): New constant.
* lib/save-cwd.c: Include unistd-safer.h.
(save_cwd): Use fd_safer.
* lib/tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove.
[!_LIBC] Include "stat-macros.h" instead.
* lib/unistd-safer.h (fd_safer): New decl.
2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
* modules/getloadavg (Depends-on): Add unistd-safer.
* modules/getusershell (Depends-on): Add stdio-safer.
* modules/lstat (Depends-on): Remove xalloc.
* modules/mkstemp (Depends-on): Add stat-macros.
* modules/modechange (Depends-on): Remove xstrtol.
Add stat-macros, xalloc.
* modules/save-cwd (Depends-on): Add unistd-safer.
* modules/stdio-safer (Makefile.am): Remove lib_SOURCES.
* modules/unistd-safer (Files): Add lib/fd-safer.c
(Makefile.am): Remove lib_SOURCES.
* MODULES.html.sh (Enhancements for POSIX:2001 functions):
Remove fcntl-safer; unistd-safer supersedes it.
2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Don't require
AC_HEADER_STAT.
* m4/lchown.m4 (gl_FUNC_CHOWN): Likewise.
(gl_PREREQ_CHOWN): Remove.
* m4/lstat.m4 (gl_FUNC_LSTAT): Require AC_FUNC_LSTAT instead of calling
it. Don't require AC_HEADER_STAT.
(gl_PREREQ_LSTAT): Remove.
* m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Check stdint.h only once.
Don't require AC_HEADER_STAT.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Don't require AC_HEADER_STAT.
(gl_PREREQ_RMDIR): Remove.
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Don't
mention stat-macros.h or AC_HEADER_STAT, since we'll make
the stat-macros module a prerequisite.
* m4/file-type.m4 (gl_FILE_TYPE): Likewise.
* m4/filemode.m4 (gl_FILEMODE): Likewise.
* m4/makepath.m4 (gl_MAKEPATH): Likewise.
* m4/modechange.m4 (gl_MODECHANGE): Likewise.
* m4/clock_time.m4 (gl_CLOCK_TIME): Use gl_ rather than fetish_ for
variable names.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Renamed from
fetish_FUNC_RMDIR_NOTEMPTY. All uses changed. Use gl_ for
variable prefixes.
* m4/fcntl-safer.m4: Remove.
* m4/stdio-safer.m4 (gl_STDIO_SAFER): Use AC_LIBSOURCES and AC_LIBOBJ.
* m4/unistd-safer.m4 (gl_UNISTD_SAFER): Likewise.
Invoke gl_PREREQ_FD_SAFER.
(gl_PREREQ_FD_SAFER): New macro.
* m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Check for siginterrupt.
* m4/readutmp.m4 (gl_READUTMP): Require AC_C_INLINE.
Use AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE when possible.
Remove duplicate call to AC_LIBOBJ(readutmp).
(gl_PREREQ_READUTMP): Remove. All uses inlined.
* m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Check for message, not for
MAP_ANON. Problem reported by Moriyoshi Koizumi to bug-cvs.
2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Misc): Add byteswap.
2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
* modules/getcwd (Depends-on): Add extensions.
* modules/openat (Depends-on): Likewise.
2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
* modules/byteswap: New file.
2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
* m4/byteswap.m4: New file.
2005-05-01 Oskar Liljeblad <oskar@osk.mine.nu>
* lib/byteswap_.h: New file.
2005-04-25 Karl Berry <karl@gnu.org>
* m4/gettext.m4: Update from GNU gettext 0.14.4.
2005-04-25 Albert Chin <china@thewrittenword.com>
* lib/regex.c: Include <stdio.h>, as a workaround to a Compaq Desktop
Toolkit C bug.
2005-04-21 Oskar Liljeblad <oskar@osk.mine.nu>
* gnulib-tool (Options): Add -s for --symlink/--symbolic.
(func_ln_if_changed): Remove forcibly for no error message
in case file does not exist.
2005-04-19 Simon Josefsson <jas@extundo.com>
* gnulib-tool (Options): Make --symlink mean --symbolic.
2005-04-18 Oskar Liljeblad <oskar@osk.mine.nu>
* doc/gnulib.texi (Initial import): Fix. Mention --aux-dir.
2005-04-16 Simon Josefsson <jas@extundo.com>
* modules/getpass-gnu (Makefile.am): Don't mention getpass.h.
2005-04-15 Simon Josefsson <jas@extundo.com>
* m4/getpass.m4 (gl_FUNC_GETPASS): Use AC_LIBSOURCES.
2005-04-15 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Rename --symlink to --symbolic.
2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
* gnulib-tool: Add -s, --symlink option to gnulib-tool to make
symbolic links to files instead of copying/moving. Add --aux-dir,
specifying directory relative --dir where auxiliary build tools
are placed.
2005-04-14 Bruno Haible <bruno@clisp.org>
* modules/allocsa (License): Change to LGPL.
Requested by Yoann Vandoorselaere <yoann@prelude-ids.org>.
2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (zone): Allow relunit_snumber after tZONE, so
that "UTC +1 second" continues to work. Problem reported
by Dmitry V. Levin.
(relunit_snumber): New rule.
(relunit): Use it.
2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (universal_time_zone_table): New constant.
(time_zone_table): Remove GMT, UT, UTC entries; they're now in
universal_time_zone_table.
(lookup_zone): Prefer universal_time_zone_table to
local_time_zone_table, so that "GMT" time stamps are allowed in
London during the summer. Problem reported by Ian Abbott.
2005-04-12 Jim Meyering <jim@meyering.net>
* lib/human.c (humblock): Set *options even when returning due to
xstrtoumax conversion failure. Thanks to a used-uninitialized
warning from gcc-4.
2005-04-09 Jim Meyering <jim@meyering.net>
* lib/posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's
-Wuninitialized: initialize tm0.tm_year.
2005-04-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (parser_control): rels_seen is now a boolean, not a
count, since there's no maximum. All uses changed.
Add member dsts_seen.
(local_zone): Accumulate dsts_seen rather than relying on tm_isdst
not being INT_MAX.
(get_date): Initialize dsts_seen, and check that it doesn't go over 1.
Use pc_rels_seen to decide whether a date is absolute.
* lib/getdate.y (number): Don't overwrite year.
(get_date): Initialize pc.year.digits to 0, not 4, to enable above
check.
2005-04-02 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.h: Fix OpenBSD compilation failure, inspired by tiny
patch from Yoann Vandoorselaere <yoann@prelude-ids.org>.
2005-03-28 Eric Blake <ebb9@byu.net> (tiny change)
* m4/getcwd-path-max.m4: Return success on systems such as Cygwin
where no absolute path name can be longer than PATH_MAX.
2005-03-27 Jim Meyering <jim@meyering.net>
* lib/argmatch.c: Clarify comment: null-terminated -> NULL-terminated.
2005-03-26 Paul Eggert <eggert@cs.ucla.edu>
* lib/intprops.h (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND):
"one's complement" -> "ones' complement" in comment, as per Knuth.
"value of type" -> "type or expression" in comment.
* lib/mktime.c, strftime.c: Propagate intprops.h comment nits.
2005-03-26 Jim Meyering <jim@meyering.net>
Comment nits.
* lib/intprops.h: Add the apostrophe in `(one|two)'s complement'.
Correct typos: s/or/of/.
2005-03-26 Jim Meyering <jim@meyering.net>
* modules/check-include-files: Move to ../ and rename to...
* check-module: ...this.
2005-03-25 Jim Meyering <jim@meyering.net>
* modules/xvasprintf (Files): Add xalloc.h.
2005-03-23 Paul Eggert <eggert@cs.ucla.edu>
* modules/gettext (Files): config/config.rpath ->
build-aux/config.rpath
* modules/iconv (Files): Likewise.
Problem reported by Oskar Liljeblad.
2005-03-23 Jim Meyering <jim@meyering.net>
* modules/check-include-files: New script to check for
missing dependencies, multiple includes, etc.
* modules/c-strtold (Depends-on): Add xalloc.
* modules/c-strtod (Depends-on): Add xalloc.
* modules/hash (Depends-on): Add xalloc.
(Files): Remove lib/xalloc.h.
* modules/gethrxtime (Files): Add lib/gethrxtime.h.
* modules/userspec (Files): Add lib/inttostr.h.
2005-03-23 Jim Meyering <jim@meyering.net>
* lib/canonicalize.c: Remove duplicate `#include "stat-macros.h"'.
2005-03-22 Jim Meyering <jim@meyering.net>
* modules/stat-macros: New module.
* modules/canonicalize, modules/euidaccess, modules/file-type,
* modules/filemode, modules/lchown, modules/makepath,
* modules/rmdir, modules/stat: Depend on new stat-macros module
rather than listing lib/stat-macros.h manually.
Don't add stat-macros.h to lib_SOURCES or list it in Files: section.
2005-03-22 Jim Meyering <jim@meyering.net>
* m4/stat-macros.m4 (gl_STAT_MACROS): New file/macro.
2005-03-22 Bruno Haible <bruno@clisp.org>
* config/srclist.txt: Replace target directory 'config' with
'build-aux'.
* config/config.guess, config.sub, config.rpath, depcomp, install-sh:
* config/mdate-sh, missing, mkinstalldirs, texinfo.tex: Move to
../build-aux/.
2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
* modules/chdir-long (Depends-on): Add mempcpy.
* modules/acl, modules/backupfile, modules/c-strtod,
modules/c-strtold, modules/canon-host, modules/canonicalize,
modules/cloexec, modules/closeout, modules/dirfd, modules/dirname,
modules/exclude, modules/exitfail, modules/file-type,
modules/filemode, modules/fpending, modules/fsusage, modules/getcwd,
modules/getdate, modules/getline, modules/getpagesize,
modules/getpass, modules/getugroups, modules/group-member,
modules/hard-locale, modules/hash, modules/human, modules/idcache,
modules/inttostr, modules/long-options, modules/makepath,
modules/md5, modules/memcasecmp, modules/memcoll,
modules/modechange, modules/mountlist, modules/path-concat,
modules/pathmax, modules/physmem, modules/posixtm, modules/posixver,
modules/quote, modules/quotearg, modules/readtokens, modules/readutmp,
modules/safe-read, modules/safe-write, modules/same, modules/savedir,
modules/settime, modules/sha1, modules/sig2str, modules/strdup,
modules/strftime, modules/strndup, modules/strverscmp,
modules/timespec, modules/unlocked-io, modules/userspec,
modules/utimecmp, modules/utimens, modules/xalloc, modules/xstrtol,
modules/yesno:
Remove lib_SOURCES line from Makefile.am section, as this is now
done automatically by the corresponding Autoconf macro.
2005-03-21 Jim Meyering <jim@meyering.net>
Changes imported from coreutils.
* lib/cycle-check.c: Don't include xalloc.h.
* lib/path-concat.c: Don't include assert.h.
(path_concat): Remove assertion that would have triggered
for ABASE starting with more than one slash.
Reported by Andreas Schwab.
* lib/path-concat.c (path_concat): Set *BASE_IN_RESULT
properly when ABASE is an absolute file name.
Correct the description of this function.
Include <assert.h>.
Add an assertion and a test driver.
This fixes a bug introduced on 2004-07-02.
Andreas Schwab reported the resulting failure of cp --parents:
http://lists.gnu.org/r/bug-coreutils/2005-01/msg00130.html
2005-03-21 Jim Meyering <jim@meyering.net>
* m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Invoke gl_FUNC_MEMRCHR.
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Check for memrchr decl.
2005-03-21 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@cs.ucla.edu>
* m4/acl.m4, m4/backupfile.m4, m4/c-strtod.m4, m4/canon-host.m4,
m4/canonicalize.m4, m4/cloexec.m4, m4/closeout.m4, m4/dirfd.m4,
m4/dirname.m4, m4/exclude.m4, m4/exitfail.m4, m4/file-type.m4,
m4/filemode.m4, m4/fpending.m4, m4/fsusage.m4, m4/getcwd.m4,
m4/getdate.m4, m4/getline.m4, m4/getpagesize.m4, m4/getpass.m4,
m4/getugroups.m4, m4/group-member.m4, m4/hard-locale.m4, m4/hash.m4,
m4/human.m4, m4/idcache.m4, m4/inttostr.m4, m4/long-options.m4,
m4/makepath.m4, m4/md5.m4, m4/memcasecmp.m4, m4/memcoll.m4,
m4/modechange.m4, m4/mountlist.m4, m4/nanosleep.m4, m4/path-concat.m4,
m4/pathmax.m4, m4/physmem.m4, m4/posixtm.m4, m4/posixver.m4,
m4/quote.m4, m4/quotearg.m4, m4/readtokens.m4, m4/readutmp.m4,
m4/safe-read.m4, m4/safe-write.m4, m4/same.m4, m4/savedir.m4,
m4/settime.m4, m4/sha1.m4, m4/sig2str.m4, m4/strdup.m4, m4/strftime.m4,
m4/strndup.m4, m4/strverscmp.m4, m4/timespec.m4, m4/unlocked-io.m4,
m4/userspec.m4, m4/utimecmp.m4, m4/utimens.m4, m4/xalloc.m4,
m4/xnanosleep.m4, m4/xstrtol.m4, m4/yesno.m4:
Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files
for these modules.
2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
* lib/strftime.c (my_strftime): If the underlying strftime returns 0
(which shouldn't happen), generate nothing instead of returning 0
immediately, so that nstrftime (NULL, ...) doesn't return 0.
2005-03-16 Bruno Haible <bruno@clisp.org>
* modules/stdint (Makefile.am): Use HAVE_LONG_LONG_64BIT instead of
HAVE_LONGLONG_64BIT.
2005-03-16 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4 (gl_STDINT_H): Define HAVE_LONG_LONG_64BIT instead of
HAVE_LONGLONG_64BIT.
2005-03-16 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: Use HAVE_LONG_LONG_64BIT instead of
HAVE_LONGLONG_64BIT.
2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/strftime.c (my_strftime): Prepend space to format so that we can
reliably distinguish strftime failure from empty output on POSIX
hosts.
2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
* lib/iconvme.c (SIZE_MAX): New macro, if not already defined.
(iconv_string): Don't guess a size-zero buffer, as that might cause
buffer overrun. Instead, avoid multiplying by MB_LEN_MAX if the
result would be 'too large', where 'too large' is (heuristically)
the square root of SIZE_MAX, divided by MB_LEN_MAX to allay
overflow concerns. This will prevent some unwanted malloc failures
when the inputs are very large.
2005-03-15 Karl Berry <karl@gnu.org>
* config/srclist.txt (config.rpath): from gettext.
* config/config.rpath: update.
2005-03-15 Bruno Haible <bruno@clisp.org>
* lib/regex.c (byte_re_match_2_internal): Rename local variable 'not'
to 'negate'.
* lib/regex.c (byte_re_match_2_internal): Reduce scope of same_str_p
variable.
* lib/regex.c (EXTEND_BUFFER, regcomp): Cast the realloc/malloc
results.
2005-03-14 Simon Josefsson <jas@extundo.com>
* lib/timegm.h: Use proper prototype CPP guards, reported by Dave Love
<fx@gnu.org>.
2005-03-14 Paul Eggert <eggert@cs.ucla.edu>
* lib/mktime.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT,
TYPE_SIGNED_MAGNITUDE, TYPE_MINIMUM, TYPE_MAXIMUM): Sync from
intprops.h.
* lib/strtol.c: Likewise.
2005-03-14 Jim Meyering <jim@meyering.net>
* lib/strftime.c (my_strftime) [HAVE_STRFTIME && ! (_NL_CURRENT
&& HAVE_STRUCT_ERA_ENTRY)]: Initialize the first byte of ubuf[]
to be nonzero so that we (and caller) can detect the difference
between a valid zero-length expansion and an error return, even
when the underlying strftime fails before writing anything into
that location.
2005-03-14 Bruno Haible <bruno@clisp.org>
* m4/lib-link.m4, gettext.m4, nls.m4, po.m4:
Update from GNU gettext 0.14.3.
2005-03-10 Jim Meyering <jim@meyering.net>
* m4/save-cwd.m4 (gl_SAVE_CWD): Check for fchdir.
2005-03-10 Jim Meyering <jim@meyering.net>
* lib/save-cwd.c [!HAVE_FCHDIR]: Define open, fchdir, and chdir_long
so that this module works on systems without fchdir.
2005-03-09 Paul Eggert <eggert@cs.ucla.edu>
Factor int-properties macros into a single file, except for
glibc-related files.
* lib/intprops.h: New file.
* lib/getloadavg.c: Include it instead of limits.h.
(INT_STRLEN_BOUND): Remove.
* lib/human.c: Include intprops.h.
(group_number): Use INT_STRLEN_BOUND instead of rolling it ourself.
* lib/human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than
302/1000.
* lib/inttostr.h: Include intprops.h instead of limits.h.
(INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove.
* lib/mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros,
for consistency with intprops.h.
(time_t_is_integer, twos_complement_arithmetic): Use them.
* lib/sig2str.h: Include <signal.h>, intprops.h.
(INT_STRLEN_BOUND): Remove.
* lib/strftime.c (TYPE_SIGNED): Remove.
(INT_STRLEN_BOUND): Switch to same implementation as intprops.h.
* lib/strtol.c: Adjust comments to match intprops.h.
* lib/userspec.c: Include intprops.h.
(TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove.
* lib/utimecmp.c, xnanosleep.c, xstrtol.c: Likewise.
* lib/utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT
instead of rolling our own expressions.
* lib/xstrtol.c: Include xstrtol.h first, to test interface.
* lib/strftime.c: Include <stdbool.h>. Use bool where appropriate,
instead of int.
(my_strftime): Do not mishandle years close to INT_MAX, by doing
the right thing even if adding 1900 would overflow. Similarly
for tm_mon + 1 and tm_yday + 1.
Make %Y always equivalent to %C%y, and similarly for %G and %g.
(DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional.
(DO_SIGNED_NUMBER): New macro.
(my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1.
2005-03-07 Bruno Haible <bruno@clisp.org>
* m4/mmap-anon.m4 (MAP_FILE, MAP_FAILED): Remove definitions.
2005-03-07 Bruno Haible <bruno@clisp.org>
* lib/pagealign_alloc.c (MAP_FILE, MAP_FAILED): Define fallbacks.
2005-03-04 Derek R. Price <derek@ximbiot.com>
* gnulib-tool (func_cp_if_changed, func_mv_if_changed): New functions.
(func_import): Only replace files via --import when they have actually
changed.
2005-03-03 Derek R. Price <derek@ximbiot.com>
* m4/mmap-anon.m4: New file.
* m4/pagealign_alloc.m4: New file.
2005-03-03 Derek R. Price <derek@ximbiot.com>
Bruno Haible <bruno@clisp.org>
* modules/pagealign_alloc: New file.
* MODULES.html.sh (Memory management functions): Add pagealign_alloc.
2005-03-03 Derek R. Price <derek@ximbiot.com>
Bruno Haible <bruno@clisp.org>
* lib/pagealign_alloc.h: New file.
* lib/pagealign_alloc.c: New file.
2005-03-03 Bruno Haible <bruno@clisp.org>
* m4/inttypes.m4, isc-posix.m4, once-only.m4:
Use an all-permissive copyright notice, recommended by RMS.
2005-03-02 Bruno Haible <bruno@clisp.org>
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Undo the replacement here. Because
of AIX, the replacement has to be done only after <string.h> is
included, therefore not in config.h. stpncpy.h does the replacement,
and stpncpy.c uses it.
2005-03-02 Bruno Haible <bruno@clisp.org>
* lib/stpncpy.h (stpncpy): Define as a macro without arguments, so that
stpncpy.c uses it.
2005-03-01 Paul Eggert <eggert@cs.ucla.edu>
Remove workaround for bug in Linux kernel 2.6.8 or thereabouts.
The workaround isn't strictly needed for POSIX conformance, and
it's too much of a pain to configure and maintain. We'll ask
people to fix their kernels instead.
* lib/xnanosleep.c: Don't include gethrxtime.h or xtime.h.
(NANOSLEEP_BUG_WORKAROUND): Remove.
(xnanosleep): Remove the workaround.
2005-03-01 Paul Eggert <eggert@cs.ucla.edu>
* modules/gettime (Makefile.am): Remove lib_SOURCES line.
Reported by Derek Price.
(Include): Add "timespec.h".
* modules/xnanosleep (Depends-on): Remove gethrxtime.
2005-03-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove configuration attempting
to detect nanosleep bug.
2005-03-01 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (EOVERFLOW): Define to a fallback if needed.
2005-02-26 Paul Eggert <eggert@cs.ucla.edu>
* modules/gethrxtime: New file.
* modules/xnanosleep (Files): Add m4/xnanosleep.m4.
(Depends-on): Add gethrxtime.
(configure.ac): Add gl_XNANOSLEEP.
(Makefile.am): Remove lib_SOURCES line.
2005-02-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/gethrxtime.m4, m4/xnanosleep.m4: New files.
* m4/gettime.m4 (gl_GETTIME): Check for nanotime.
2005-02-25 Paul Eggert <eggert@cs.ucla.edu>
* lib/gethrxtime.h, lib/gethrxtime.c, lib/xtime.h: New files.
* lib/timespec.h (gettime): Return void, since it always
succeeds now. All uses changed.
* lib/gettime.c (gettime): Likewise.
[HAVE_NANOTIME]: Prefer nanotime.
Assume gettimeofday succeeds, as POSIX requires.
Assime time () succeeds, since other code already does.
* lib/xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h.
(timespec_subtract): Remove.
(NANOSLEEP_BUG_WORKAROUND): New constant.
(xnanosleep): Use gethrxtime rather than gettime; this simplifies
things considerably. Use it only on GNU/Linux hosts, since the
workaround shouldn't be needed elsewhere.
2005-02-24 Bruno Haible <bruno@clisp.org>
* modules/gettext (Files): Add m4/glibc2.m4.
2005-02-24 Bruno Haible <bruno@clisp.org>
* m4/gettext.m4, intdiv0.m4, intmax.m4, inttypes-pri.m4, lcmessage.m4:
* m4/lib-link.m4, lib-prefix.m4, nls.m4, po.m4, printf-posix.m4:
* m4/progtest.m4:
Update from GNU gettext 0.14.2.
* m4/glibc2.m4: New file, from GNU gettext 0.14.2.
2005-02-24 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c: Update from GNU gettext 0.14.2.
* lib/config.charset: Update from GNU gettext 0.14.2.
2005-02-24 Bruno Haible <bruno@clisp.org>
* lib/gettext.h: Update from GNU gettext 0.14.2.
2005-02-23 Simon Josefsson <jas@extundo.com>
* m4/iconvme.m4: New file.
2005-02-23 Jim Meyering <jim@meyering.net>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Revert yesteday's
change.
Thanks to Bruno Haible for catching it.
2005-02-22 Simon Josefsson <jas@extundo.com>
* modules/iconvme: New file.
* MODULES.html.sh: Add iconvme.
2005-02-22 Simon Josefsson <jas@extundo.com>
* lib/iconvme.h, lib/iconvme.c: New files, from libc.
2005-02-22 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Sync iconvme.h, iconvme.c from libc.
2005-02-22 Jim Meyering <jim@meyering.net>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Fix typo:
s/ifndef/ifdef/.
2005-02-20 Neil Conway <neilc@samurai.com>
* lib/xgethostname.c (xgethostname): Check for ENOMEM, which is
returned by OSX/Darwin if the specified buffer is not large
enough for the hostname.
2005-02-03 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argp-help.c (__argp_help): Create a fake struct argp_state and
pass it to _help, otherwise the latter coredumps trying to
dereference state.root_argp.
2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
* modules/chdir-long (Depends-on): Add memrchr.
* modules/memrchr (Files): Add lib/memrchr.h.
(Include): "memrchr.h".
2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
* m4/memrchr.m4 (gl_FUNC_MEMRCHR): Add AC_LIBSOURCES, for memrchr.h.
2005-02-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/memrchr.h: New file.
* lib/chdir-long.c: Include it.
* lib/memrchr.c [!defined _LIBC]: Include it rather than <string.h>
Don't bother including stddef.h.
2005-02-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/mountlist.h (MOUNTLIST_H_): New macro, to protect against double
inclusion.
Include <sys/types.h>, for dev_t.
(ME_DUMMY, ME_REMOTE): Move from here....
* lib/mountlist.c (ME_DUMMY, ME_REMOTE): To here.
(ME_DUMMY): Count "subfs" as a dummy. Problem reported by
Dmitry V. Levin.
Include mountlist.h first, to test the interface.
2005-01-29 Bruno Haible <bruno@clisp.org>
* lib/progname.c (program_name): Initialize.
Needed when linking statically on MacOS X.
2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* modules/getloadavg (Files): Remove m4/getloadavg.m4.
(Depends-on): Add c-strtod.
(configure.ac): Replace gl_FUNC_GETLOADAVG with AC_FUNC_GETLOADAVG.
2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
Sync from coreutils.
* m4/getloadavg.m4, glibc.m4, search-libs.m4: Remove.
Remove files that are specific to coreutils.
* m4/check-decl.m4, jm-macros.m4, lib-check.m4, prereq.m4: Remove.
2005-01-28 Bruno Haible <bruno@clisp.org>
* modules/javacomp: New file.
* MODULES.html.sh (Java): Add javacomp.
2005-01-28 Bruno Haible <bruno@clisp.org>
* m4/javacomp.m4: New file, from GNU gettext.
2005-01-28 Bruno Haible <bruno@clisp.org>
* lib/javacomp.sh.in: New file, from GNU gettext.
* lib/javacomp.h: New file, from GNU gettext.
* lib/javacomp.c: New file, from GNU gettext.
2005-01-26 Simon Josefsson <jas@extundo.com>
* lib/gai_strerror.c: Use GPL in header.
2005-01-26 Bruno Haible <bruno@clisp.org>
* modules/javaexec: New file.
* MODULES.html.sh (Java): Add javaexec.
2005-01-26 Bruno Haible <bruno@clisp.org>
* m4/javaexec.m4: New file, from GNU gettext.
2005-01-26 Bruno Haible <bruno@clisp.org>
* lib/javaexec.sh.in: New file, from GNU gettext.
* lib/javaexec.h: New file, from GNU gettext.
* lib/javaexec.c: New file, from GNU gettext.
2005-01-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* modules/lchown (Depends-on): Remove lchown.h
2005-01-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* m4/sysexits.m4 (gl_SYSEXITS): Reverted logic. SYSEXITS_H
must be defined if the header file was not found, in order
to provide a replacement. Reported by Todd Vierling <tv@duh.org>
2005-01-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argp-help.c (hol_entry_help): Avoid using non-constant
initializers for struct pentry_state.
(__argp_error): Check return value of __asprintf
(__argp_failure): Translate error message
* lib/argp-parse.c: Removed braces around the expansion of N_()
2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/acl.m4, afs.m4, alloca.m4, argp.m4, assert.m4, atexit.m4,
backupfile.m4, base64.m4, bison.m4, c-bs-a.m4, c-stack.m4,
c-strtod.m4, calloc.m4, canon-host.m4, canonicalize.m4,
clock_time.m4, cloexec.m4, closeout.m4, d-ino.m4, d-type.m4,
dirfd.m4, dirname.m4, dos.m4, dup2.m4, error.m4, euidaccess.m4,
exclude.m4, exitfail.m4, extensions.m4, fcntl-safer.m4,
file-type.m4, fileblocks.m4, filemode.m4, fnmatch.m4, fpending.m4,
free.m4, fstypename.m4, fsusage.m4, ftruncate.m4, getaddrinfo.m4,
getcwd-path-max.m4, getcwd.m4, getdate.m4, getdomainname.m4,
getgroups.m4, gethostname.m4, getline.m4, getndelim2.m4,
getnline.m4, getopt.m4, getpagesize.m4, getpass.m4, getsubopt.m4,
gettime.m4, gettimeofday.m4, getugroups.m4, getusershell.m4,
group-member.m4, hard-locale.m4, hash.m4, host-os.m4, human.m4,
idcache.m4, inttostr.m4, isdir.m4, jm-winsz1.m4, jm-winsz2.m4,
link-follow.m4, long-options.m4, ls-mntd-fs.m4, lstat.m4,
makepath.m4, mathl.m4, md5.m4, memcasecmp.m4, memchr.m4,
memcmp.m4, memcoll.m4, memcpy.m4, memmem.m4, memmove.m4,
memrchr.m4, memset.m4, mkdir-slash.m4, mkstemp.m4, mktime.m4,
modechange.m4, mountlist.m4, nanosleep.m4, obstack.m4,
path-concat.m4, pathmax.m4, perl.m4, physmem.m4, poll.m4,
posixtm.m4, posixver.m4, putenv.m4, quote.m4, quotearg.m4,
readdir.m4, readtokens.m4, readutmp.m4, regex.m4, rename.m4,
restrict.m4, rmdir-errno.m4, rmdir.m4, rpmatch.m4, same.m4,
savedir.m4, settime.m4, sha1.m4, sig2str.m4, snprintf.m4,
sockpfaf.m4, st_dm_mode.m4, st_mtim.m4, stat.m4, stdint.m4,
stdio-safer.m4, strchrnul.m4, strdup.m4, strerror.m4,
strerror_r.m4, strftime.m4, strndup.m4, strnlen.m4, strsep.m4,
strtod.m4, strtoimax.m4, strtok_r.m4, strtol.m4, strtoll.m4,
strtoul.m4, strtoull.m4, strtoumax.m4, strverscmp.m4, sysexits.m4,
time_r.m4, timegm.m4, timespec.m4, tm_gmtoff.m4, tzset.m4,
uint32_t.m4, uintptr_t.m4, unistd-safer.m4, unlink-busy.m4,
unlocked-io.m4, uptime.m4, userspec.m4, utimbuf.m4, utime.m4,
utimecmp.m4, utimens.m4, utimes-null.m4, vsnprintf.m4, xalloc.m4,
xgetcwd.m4, xreadlink.m4, xstrndup.m4, xstrtod.m4, xstrtoimax.m4,
xstrtol.m4, xstrtoumax.m4, yesno.m4:
Use an all-permissive copyright notice, recommended by RMS.
2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
* modules/chdir-long (Depends-on): Remove mempcpy.
2005-01-21 Jim Meyering <jim@meyering.net>
* lib/openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the
same value as for Solaris 9.
* lib/chdir-long.c (chdir_long): Rewrite to remove limitation on
component length. This included changing the parameter to be
of type `char *' rather than `char const *'.
* lib/chdir-long.h (chdir_long): Update prototype.
* lib/openat.c (fdopendir, fstatat): New functions.
* lib/openat.h: Include headers required for use of DIR and struct
stat.
[AT_SYMLINK_NOFOLLOW]: Define.
(fdopendir, fstatat): Add prototypes.
2005-01-21 Bruno Haible <bruno@clisp.org>
* modules/classpath: New file.
* MODULES.html.sh (Java): Add classpath.
2005-01-21 Bruno Haible <bruno@clisp.org>
* lib/classpath.h: New file, from GNU gettext.
* lib/classpath.c: New file, from GNU gettext.
2005-01-20 Simon Josefsson <jas@extundo.com>
* modules/version-etc-fsf: New file.
2005-01-20 Simon Josefsson <jas@extundo.com>
* lib/version-etc-fsf.c: New file, with version_etc_copyright.
* lib/version-etc.c: Remove version_etc_copyright.
* lib/version-etc.h (version_etc_copyright): Use [] instead of * in
prototype, suggested by Paul Eggert <eggert@CS.UCLA.EDU>.
2005-01-20 Simon Josefsson <jas@extundo.com>
* lib/base64.h (isbase64): Add.
* lib/base64.c (isb64): Rename to isbase64, use to_uchar instead of
using a unsigned prototype, don't inline.
(base64_decode): Use it.
2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
* m4/save-cwd.m4 (gl_SAVE_CWD): Remove check for fcntl; we now assume
it.
2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/save-cwd.c (save_cwd): Remove code to support the case
where fchdir is missing or flaky.
2005-01-20 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Command-line arguments): Add version-etc-fsf.
2005-01-19 Paul Eggert <eggert@cs.ucla.edu>
* modules/mempcpy (Makefile.am): Remove mention of mempcpy.h;
AC_LIBSOURCES now does this.
* MODULES.html.sh (Sizes of integer types <limits.h>): New element,
with new ullong_max module.
2005-01-19 Bruno Haible <bruno@clisp.org>
* modules/sh-quote: New file.
* MODULES.html.sh (Executing programs): Add sh-quote.
2005-01-19 Bruno Haible <bruno@clisp.org>
* lib/sh-quote.h: New file, from GNU gettext.
* lib/sh-quote.c: New file, from GNU gettext.
2005-01-18 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* m4/ullong_max.m4: New file.
* m4/jm-macros.m4 (gl_MACROS): Require gl_ULLONG_MAX.
(gl_MACROS): Assume localeconv exists.
2005-01-18 Paul Eggert <eggert@cs.ucla.edu>
Merge changes from coreutils, as described below in several
changelogs dated today.
* lib/save-cwd.c: Include "save-cwd.h" before other include files.
(O_DIRECTORY): Remove; not needed here, since "." must be
a directory. All uses removed.
(save_cwd): Use __sgi || __sun, not sun || __sun. __sun is
universal on Suns, and we also need to test for IRIX.
Revamp code to use 'if' rather than '#if'.
Avoid unnecessary comparison of cwd->desc to 0.
* lib/utimens.c (futimens): Robustify the previous patch, by checking
for known valid error numbers rather than observed invalid ones.
2005-01-18 Paul Eggert <eggert@cs.ucla.edu>
* modules/ullong_max: New file.
* modules/chdir-long, modules/openat: New files.
* modules/save-cwd (Depends-on): Depend on chdir-long.
(Makefile.am): Remove lib_SOURCES; now handled by AC_LIBSOURCES.
2005-01-18 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* m4/chdir-long.m4, m4/openat.m4: New files.
* m4/save-cwd.m4 (gl_SAVE_CWD): Add AC_LIBSOURCES for save-cwd.c,
save-cwd.h. Add AC_LIBOBJ for save-cwd.
* m4/chown.m4 (gl_FUNC_CHOWN): When cross-compiling, assume that chown
is sane and DOES follow symlinks. Besides, testing 20 different
systems found no broken chown implementations.
Prompted by a change in rsync's copy of this macro.
* m4/jm-macros.m4 (gl_MACROS): Require gl_FUNC_CHDIR_LONG.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Use AC_LIBSOURCES.
* m4/utimes.m4: Work around tests/touch/empty-file failure on a system
(sparc64, Linux-2.4.28, glibc-2.3.3) that didn't honor utimes'
NULL-means-set-to-current-time semantics.
Remove temporary file immediately, rather than waiting
for configure's at-exit trap code to do it.
2005-01-18 Jim Meyering <jim@meyering.net>
* lib/version-etc.c (version_etc_copyright): Update copyright date.
* lib/utimens.c (futimens): Account for the fact that futimes
can also fail with errno == ENOSYS or errno == ENOENT.
Patch from Dmitry V. Levin.
Change the name of the robust chdir function from chdir to chdir_long.
* lib/save-cwd.c: Include chdir-long.h rather than chdir.h.
(restore_cwd): Use chdir_long, not chdir.
* lib/chdir-long.c: Renamed from chdir.c.
* lib/chdir-long.h: Renamed from chdir.h.
[!defined PATH_MAX]: Define chdir_long to chdir on systems like the
Hurd.
2005-01-18 Bruno Haible <bruno@clisp.org>
* m4/allocsa.m4, m4/codeset.m4, m4/copy-file.m4, m4/eaccess.m4:
* m4/eealloc.m4, m4/eoverflow.m4, m4/execute.m4, m4/fatal-signal.m4:
* m4/findprog.m4, m4/glibc21.m4, m4/iconv.m4, m4/intmax_t.m4:
* m4/inttypes_h.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4:
* m4/linebreak.m4, m4/localcharset.m4, m4/longdouble.m4:
* m4/longlong.m4, m4/mbrtowc.m4, m4/mbstate_t.m4, m4/mbswidth.m4:
* m4/mkdtemp.m4, m4/pipe.m4, m4/readlink.m4, m4/safe-read.m4:
* m4/safe-write.m4, m4/setenv.m4, m4/sig_atomic_t.m4:
* m4/signalblocking.m4, m4/signed.m4, m4/size_max.m4, m4/ssize_t.m4:
* m4/stdbool.m4, m4/stdint_h.m4, m4/stpcpy.m4, m4/stpncpy.m4:
* m4/strcase.m4, m4/strcspn.m4, m4/strpbrk.m4, m4/strstr.m4:
* m4/ucs4-utf.m4, m4/uintmax_t.m4, m4/ulonglong.m4, m4/unicodeio.m4:
* m4/utf-ucs4.m4, m4/vasnprintf.m4, m4/vasprintf.m4:
* m4/wait-process.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4:
Use an all-permissive copyright notice, recommended by RMS.
2005-01-18 Bob Proulx <bob@proulx.com>
* lib/obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to
simplify offsetof() macro construct to avoid compile failure with
native HP-UX 11.0 ANSI C compiler.
2005-01-17 Bruno Haible <bruno@clisp.org>
* lib/stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming,
redundant because stpncpy.m4 takes care of it.
2005-01-17 Bruno Haible <bruno@clisp.org>
* lib/progreloc.c: Include xalloc.h instead of xmalloc.h.
2005-01-17 Bruno Haible <bruno@clisp.org>
* lib/progreloc.c (xstrdup): Define as strdup if no xmalloc should be
used.
2005-01-17 Bruno Haible <bruno@clisp.org>
* lib/fwriteerror.h (fwriteerror): Change specification to include
fclose.
* lib/fwriteerror.c: Include <stdbool.h>.
(fwriteerror): At the end, close the file stream. Record whether
stdout was already closed.
2005-01-17 Bruno Haible <bruno@clisp.org>
* lib/execute.c (environ): Declare if needed.
* lib/pipe.c (environ): Likewise.
Reported by Michael Schloh von Bennewitz <michael.schloh@cw.com>.
2005-01-11 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* modules/argp: Depend on vsnprintf
2005-01-10 Jim Meyering <jim@meyering.net>
* modules/closeout (Depends-on): Add atexit.
2005-01-06 Bruno Haible <bruno@clisp.org>
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Rename stpncpy to gnu_stpncpy here.
2005-01-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional
definitions to be after all include files, to avoid collisions.
Problem reported by Bob Proulx.
2005-01-04 Jim Meyering <jim@meyering.net>
Changes imported from coreutils.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Rather than using "conftestXXXXXX"
as the mkstemp template, use a temporary directory and an
8.3-friendly template to avoid trouble on systems like DJGPP.
Reported by Juan M. Guerrero via Stepan Kasal.
* m4/(gl_FUNC_MKSTEMP): Include <unistd.h> for the declaration of
close. Remove the temporary directory right away, rather than waiting
for configure's at-exit trap code to do it.
Suggestion from Stepan Kasal.
2005-01-01 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Print #include directives when --import'ing.
2004-12-28 Simon Josefsson <jas@extundo.com>
* tests/test-base64.c: Include required header files. Remove
unused variables.
2004-12-28 Paul Eggert <eggert@cs.ucla.edu>
* modules/error (Depends-on): Remove gettext.
2004-12-28 Paul Eggert <eggert@cs.ucla.edu>
* lib/error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h";
not needed. This removes a dependency on the gettext module.
[defined _LIBC]: Do not include <libintl.h>; not needed.
2004-12-24 Paul Eggert <eggert@cs.ucla.edu>
* m4/c-strtod.m4 (gl_C99_STRTOLD): New macro.
(gl_C_STRTOD): Use it instead of AC_CHECK_DECLS_ONCE(strtold).
2004-12-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not
HAVE_DECL_STRTOLD.
2004-12-23 Paul Eggert <eggert@cs.ucla.edu>
* modules/getdate (Depends-on): Remove alloca-opt.
2004-12-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/getdate.m4 (gl_GETDATE): Remove AC_FUNC_ALLOCA.
2004-12-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-parse.c: Include <stddef.h>.
(alignof, alignto): New macros.
(parser_init): Don't assume that void * is aligned sufficiently
for struct option.
* lib/getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no
need to extend the stack.
(YYINITDEPTH): New macro, so that the initial stack isn't overly
large.
2004-12-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argp-parse.c (parser_init): Avoid arithmetics on void pointers.
2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (lib_SOURCES): Remove regex.c, undoing previous
(2004-10-24) change. Apparently this was a false alarm.
* modules/getdate: Depend on alloca-opt, not alloca.
2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H.
Remove now-obsolete comment about AIX.
* lib/getdate.y: Include <alloca.h> only if HAVE_ALLOCA.
(YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA.
(YYMAXDEPTH): New macro.
2004-12-18 Simon Josefsson <jas@extundo.com>
* modules/alloca: Depend on alloca-opt, instead of duplicating it.
2004-12-18 Bruno Haible <bruno@clisp.org>
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Also test for sigaction.
2004-12-18 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.c (fatal_signals): Make non-const.
(init_fatal_signals): New function.
(uninstall_handlers, install_handlers): Ignore signals that were set to
SIG_IGN.
(at_fatal_signal): Call init_fatal_signals.
(init_fatal_signal_set): Likewise. Ignore signals that were set to
SIG_IGN.
Reported by Paul Eggert.
2004-12-18 Bruno Haible <bruno@clisp.org>
* doc/alloca.texi: New file.
* doc/alloca-opt.texi: New file.
2004-12-17 Jim Meyering <jim@meyering.net>
* config/install-sh: Use `(exit N); exit N', not `(exit N); exit'.
Otherwise, install-sh could exit with improper exit status when
exiting via a trapped interrupt. Thanks to a report from Bob Proulx.
2004-12-16 Simon Josefsson <jas@extundo.com>
* tests/test-base64.c: Add license.
2004-12-15 Stepan Kasal <address@hidden>
* gnulib-tool (func_emit_lib_Makefile_am): Shorten a long sed command.
2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
* modules/getcwd (Files): Add m4/d-ino.m4.
Suggested by Mark D. Baushke.
2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (textint): New member "negative".
(time_zone_hhmm): New function.
Expect 14 shift-reduce conflicts, not 13.
(o_colon_minutes): New rule.
(time, zone): Use it to add support for +HH:MM, UTC+HH:MM.
(yylex): Set the "negative" member of signed numbers.
2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
* doc/getdate.texi (Time of day items, Time zone items):
Describe new formats +00:00, UTC+00:00.
2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
* m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Fix typo in previous change:
spurious "-l"s. Problem reported by Stepan Kasal.
2004-12-06 Paul Eggert <eggert@cs.ucla.edu>
* m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): New macro, to work around bug
in Autoconf 2.59. Problem reported by Mark D. Baushke.
2004-12-04 Simon Josefsson <jas@extundo.com>
* modules/getaddrinfo (License): Add LGPL, reported by Yoann
Vandoorselaere <yoann@prelude-ids.org>.
2004-12-04 Paul Eggert <eggert@cs.ucla.edu>
Changes imported from coreutils.
* m4/hard-locale.m4 (gl_HARD_LOCALE): Assume locale.h and setlocale
exist.
* m4/human.m4 (gl_HUMAN): Assume locale.h and localeconv exist.
2004-12-04 Paul Eggert <eggert@cs.ucla.edu>
Changes imported from coreutils.
* lib/hard-locale.c: Assume <locale.h> exists.
Include "strdup.h".
(GLIBC_VERSION): New macro.
(hard_locale): Assume setlocale exists.
Rewrite to avoid #ifdef.
Use strdup rather than malloc + strcpy.
* lib/human.c: Assume <locale.h> exists.
(human_readable): Assume localeconv exists.
2004-12-04 Paul Eggert <eggert@cs.ucla.edu>
* modules/hard-locale (Depends-on): Add strdup.
2004-12-01 Jakub Jelinek <jakub@redhat.com>
* lib/mktime.c (__mktime_internal): If SEC_REQUESTED != SEC,
convert T2, not T. (Imported from libc.)
2004-11-30 Simon Josefsson <jas@extundo.com>
* modules/restrict (License): Change to LGPL.
2004-11-30 Simon Josefsson <jas@extundo.com>
* m4/restrict.m4: Add copyright and copying conditions.
2004-11-30 Simon Josefsson <jas@extundo.com>
* m4/base64.m4: New file.
2004-11-30 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh (Extra functions based on ANSI C 89): Add
base64.
* tests/test-base64.c: New file.
* modules/base64: New file.
2004-11-30 Paul Eggert <eggert@cs.ucla.edu>
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
Define HAVE_PARTLY_WORKING_GETCWD if getcwd is partly working.
* m4/readutmp.m4 (gl_READUTMP): Don't check for sys/param.h.
2004-11-30 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.c (is_ENAMETOOLONG): New macro.
(__getcwd.c): Don't restore errno; glibc doesn't.
[HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd
first, falling back to our code only if its results look suspicious.
Ensure that the resulting buffer is only as large as necessary.
* lib/readutmp.c: Include readutmp.h first.
Include <errno.h>, since readutmp.h no longer does that.
* lib/readutmp.h: Don't include <errno.h>,
<sys/param.h>, <time.h>; not needed to establish interface.
(errno): Remove decl.
(HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed.
(UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME,
UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros.
2004-11-28 Simon Josefsson <jas@extundo.com>
* lib/base64.h, base64.c: New file.
2004-11-27 Paul Eggert <eggert@cs.ucla.edu>
* lib/getcwd.h: New file, which I forgot to check in on 2004-11-25.
2004-11-26 Paul Eggert <eggert@cs.ucla.edu>
* modules/getcwd (Files): Add lib/getcwd.h, m4/getcwd.m4.
(Depends-on): Remove pathmax, same. Add mempcpy.
(configure.ac): GL_FUNC_GETCWD_PATH_MAX -> gl_FUNC_GETCWD.
(Makefile.am): Append getcwd.h to lib_SOURCES.
(Include): Add getcwd.h.
(Maintainer): Change from Jim Meyering to "all, glibc",
since getdate now uses intended-for-glibc code.
* modules/xgetcwd (Files): Remove m4/getcwd.m4.
(Depends-on): Depend on getcwd. Do not depend on pathmax.
2004-11-25 Paul Eggert <eggert@cs.ucla.edu>
Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using
HP's ANSI C compiler.
* lib/fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl.
Declaring int functions causes warnings on some modern systems and
shouldn't be needed to compile on ancient ones.
* lib/same.c (MIN) [defined MIN]: Don't define, since it's already
defined.
* lib/getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but
with the following changes.
(__set_errno): Parenthesize properly.
Include <stdbool.h>.
(MIN, MAX, MATCHING_INO): New macros.
(__getcwd): Define with prototype, not K&R form.
Use heuristics to allocate default buffer on stack if possible.
If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2)
behavior, and to avoid the PATH_MAX limit when computing
../../../../...
Use MATCHING_INO to compare inode number to file.
Check for arithmetic overflow in size calculations.
Fix bug in reallocation of dot array that caused getcwd to fail
on directories nested deeper than 75.
Be more careful about saving errno on error.
Do not use realloc; use only free+malloc, as this is a bit
more flexible and avoids a needless copy operation.
Do not inspect st_dev and st_ino for symbolic links; POSIX
doesn't specify the latter.
Check for closedir errors.
Avoid needless casts.
Use "#ifdef weak_alias" around weak_alias, to be like other
glibc code.
The following changes to getcwd.c have effect only when used in
gnulib; they have no effect inside glibc proper.
(#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove,
as alloca isn't used.
(alloca, __alloca): Likewise.
[!_LIBC]: Include "getcwd.h", "mempcpy.h".
Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
unconditionally, as gnulib assumes C89 or better.
Do not include <sys/param.h>.
(errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove
no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or
better.
(NULL) [!defined NULL]: Remove; we assume C89 or better.
Include <dirent.h> in a way that is compatible with modern Autoconf.
(_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN):
New macros, if not already defined.
Include <unistd.h> if _LIBC, not if __GNU_LIBRARY__.
Use "_LIBC", not "defined _LIBC", for consistency.
(HAVE_MEMPCPY): Remove; no longer needed now that gnulib has
a mempcpy module.
(__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros.
(GETCWD_RETURN_TYPE): Remove. All uses replaced by char *.
* lib/xgetcwd.c: David MacKenzie's old code was removed, so give
credit only to Jim Meyering and adjust the copyright dates.
Do not include <limits.h>, <stdio.h>, <sys/types.h>,
<stdlib.h>, <unistd.h>, "pathmax.h".
Instead, include "xgetcwd.h" (first) and "getcwd.h".
(INITIAL_BUFFER_SIZE): Remove.
(xgetcwd): Rely on getcwd, since we now depend on a reliable one.
2004-11-25 Paul Eggert <eggert@cs.ucla.edu>
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Renamed from
GL_FUNC_GETCWD_PATH_MAX for consistency. All uses changed.
Use the _ONCE methods, for efficiency.
Check for fcntl.h. In test program, include <errno.h>
and <fcntl.h> if available. Remove old K&R cruft from
test program. Check for common errors in GNU/Linux,
OpenBSD, and Solaris. Just set gl_cv_func_getcwd_path_max;
don't do AC_LIBOBJ, as that's getcwd.m4's job.
* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Renamed from
AC_FUNC_GETCWD_NULL. All used changed. Change cache variable
name accordingly.
(gl_FUNC_GETCWD, gl_PREREQ_GETCWD): New macros. Revamp to
accommodate new getcwd.c.
* m4/jm-macros.m4 (gl_MACROS): Don't require GL_FUNC_GETCWD_PATH_MAX.
* m4/prereq.m4 (gl_PREREQ): Add gl_FUNC_MEMPCPY.
* m4/xgetcwd.m4 (gl_XGETCWD): Replace with gl_FUNC_GETCWD, since
that's all we need now.
2004-11-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* m4/argp.m4 (gl_ARGP): Require gl_GETOPT_SUBSTITUTE unconditionally:
argp-parse.c depends on getopt internals, that means we should
always use our getopt, to be on the safe side.
* m4/getopt.m4 (gl_GETOPT): Check if GETOPT_H is already set, in
order not to spoil the result of an eventual previous invocation
of gl_GETOPT_SUBSTITUTE.
2004-11-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/getopt_.h: Re-addition of __getopt_argv_const caused
redefinition warnings. To avoid them, include the defines
in `#if !defined __need_getopt ... #endif'. The only place
where __getopt_argv_const is used is in definitions
of getopt_long and getopt_long_only below, which are as well
protected by `#ifndef __need_getopt'.
[defined __GETOPT_PREFIX && !defined __need_getopt]: Undef
__need_getopt after including <stdio.h> and <unistd.h> These
headers might have defined it.
2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
* m4/utimens.m4 (gl_UTIMENS): Check for futimes function.
2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
* lib/utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros.
(futimens): New function, which uses futimes if available.
(futimens, utimens): Support timespec==NULL, with same semantics
as utime and utimens.
* lib/utimens.h (futimens): New decl.
2004-11-23 Jim Meyering <jim@meyering.net>
* lib/getopt_.h: Remove trailing blanks.
2004-11-23 Jim Meyering <jim@meyering.net>
* lib/__fpending.c: Add comment.
2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
* modules/canonicalize (Depends-on): Add xreadlink.
Problem reported by James Youngman.
2004-11-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID):
New macros.
(getopt, getopt_long, getopt_long_only, optarg, opterr, optind,
optopt): Use them instead of invoking ## directly; otherwise, the
symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt.
2004-11-19 Bruno Haible <bruno@clisp.org>
* lib/strtok_r.c: Move comments from here...
* lib/strtok_r.h: ... to here.
2004-11-17 Paul Eggert <eggert@cs.ucla.edu>
* m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Check for buggy calloc
implementations that mishandle size_t overflow.
2004-11-17 Paul Eggert <eggert@cs.ucla.edu>
* lib/realloc.c (rpl_realloc): Call 'free' if n==0, since realloc
might fail. Problem reported by Yoann Vandoorselaere.
* lib/calloc.c (rpl_calloc): Defend against buggy calloc
implementations that mishandle size_t overflow.
2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
* modules/canon-host (Depends-on): Add strdup.
2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/canon-host.m4 (gl_CANON_HOST): Check for getaddrinfo.
2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
* lib/canon-host.c: Include "strdup.h".
(canon_host): Use getaddrinfo if available, so that IPv6 works.
Use strdup instead of malloc/strcpy to duplicate strings.
* lib/human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit.
(human_space_before_unit): New constant.
* lib/human.c (human_readable): Support it.
* lib/xgetcwd.c: Include <limits.h>, for PATH_MAX.
(xgetcwd): Set errno correctly when failing.
Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
the failure is actually due to a PATH_MAX problem.
Further getopt changes to make it more likely that glibc will
buy the changes back.
* lib/getopt.c (POSIXLY_CORRECT): New constant.
(getopt): Use it, so to preserve glibc semantic
* lib/getopt1.c (getopt_long, getopt_long_only): Arg is char * const *
when compiling for libc.
* lib/getopt_.h (__getopt_argv_const): Bring it back.
(getopt_long, getopt_long_only): Use it.
* lib/getopt.c (_getopt_initialize, _getopt_internal_r,
_getopt_internal): New arg POSIXLY_CORRECT. All callers changed.
(getopt): Argv is now char * const *, as per standard.
(_getopt_internal_r, _getopt_internal): Argv is now char **,
not char *__getopt_argv_const *.
* lib/getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
_getopt_long_only_r): Likewise.
* lib/getopt_.h (getopt, getopt_long, geopt_long_only): Likewise.
* lib/getopt_int.h (_getopt_internal, _getopt_internal_r,
_getopt_long_r, _getopt_long_only_r): Likewise.
* lib/getopt_.h (__getopt_argv_const): Remove.
(getopt): Argv is now char * const *, as per standard.
* lib/getdate.y (tORDINAL): New token.
(day, relunit): Allow it for relative times.
(relative_time_table): Use tORDINAL for ordinals.
2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
* doc/getdate.texi (General date syntax): "next" is 1, not 2.
Document that "second" isn't allowed as an ordinal number.
2004-11-16 Jim Meyering <jim@meyering.net>
* modules/closeout (Depends-on): Add fpending.
2004-11-15 Jim Meyering <jim@meyering.net>
* lib/closeout.c: Include "__fpending.h" once again.
Include <stdbool.h>.
(close_stdout): Don't fail just because stdout was closed initially,
since some programs don't write to stdout in the normal course of
operation (other than --version and --help), and we don't want this
function to make e.g. `touch file >&-' fail.
But do fail if it was closed and someone has tried to write to it.
E.g., `printf foo >&-' must fail.
2004-11-13 Jim Meyering <jim@meyering.net>
* m4/jm-macros.m4: Do require gl_FUNC_FPENDING.
2004-11-12 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Add strtok_r.c, glibc bought our changes, but a
small doc fix is still pending.
2004-11-11 Simon Josefsson <jas@extundo.com>
* modules/strtok_r: New file.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
strtok_r.
2004-11-11 Simon Josefsson <jas@extundo.com>
* m4/strtok_r.m4: New file.
* m4/getopt.m4: Replace opterr.
2004-11-11 Simon Josefsson <jas@extundo.com>
* lib/strtok_r.h, strtok_r.c: New file.
2004-11-11 Paul Eggert <eggert@cs.ucla.edu>
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): Define __GETOPT_PREFIX instead
of replacing opterr, getopt, etc. This should handle the
powerpc-apple-darwin5.5 problem recently noted by Simon Josefsson.
2004-11-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/getopt_.h (__getopt_argv_const): New macro, to be used so that
we can stop lying to compilers about the constness of argv when we
are compiled outside glibc.
(getopt, getopt_long, getopt_long_only): Use it.
* lib/getopt.c (_getopt_initialize, _getopt_internal_r,
_getopt_internal, getopt): Likewise.
* lib/getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
_getopt_long_only_r): Likewise.
* lib/getopt_int.h (_getopt_internal, _getopt_internal_r,
_getopt_long_r, _getopt_long_only_r): Likewise.
* lib/getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]:
Include <stdlib.h> and <stdio.h>, and <unistd.h> if available.
Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for
the other external symbols.
(getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style
declaration, since the above renaming now works around collisions.
2004-11-11 Jim Meyering <jim@meyering.net>
* lib/linebreak.c: Remove trailing blanks.
* lib/alloca_.h: Likewise.
* lib/acosl.c: Likewise.
* lib/euidaccess.c: Likewise.
* lib/allocsa.h: Likewise.
2004-11-10 Simon Josefsson <jas@extundo.com>
* m4/getaddrinfo.m4: New file.
2004-11-10 Simon Josefsson <jas@extundo.com>
* lib/getaddrinfo.h, lib/getaddrinfo.c: New files.
2004-11-10 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
getaddrinfo.
* modules/getaddrinfo: New file.
2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
* m4/prereq.m4 (gl_PREREQ): Require gt_FUNC_SETENV.
2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
* lib/mktime.c (SHR): New macro, which is a portable
substitute for >> that should work even on Crays.
(TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
Problem reported by Mark D. Baushke in
<http://lists.gnu.org/r/bug-gnulib/2004-11/msg00071.html>.
* lib/getdate.y (SHR): Likewise.
(tm_diff): Use it.
* lib/strftime.c (SHR): Likewise.
(tm_diff): Use it.
* lib/quotearg.c (struct quoting_options): Use unsigned int for
quote_these_too, so that right shifts are well defined. All uses
changed.
2004-11-10 Jim Meyering <jim@meyering.net>
Ensure that no close failure goes unreported.
* lib/closeout.c (close_stdout): Always close stdout. I.e., don't
return early when it seems there's nothing to flush.
Don't include __fpending.h.
2004-11-10 Jim Meyering <jim@meyering.net>
* modules/closeout (Depends-on): Remove fpending.
2004-11-10 Jim Meyering <jim@meyering.net>
* m4/jm-macros.m4 (gl_MACROS): Don't require gl_FUNC_FPENDING.
2004-11-09 Paul Eggert <eggert@cs.ucla.edu>
* m4/strftime.m4 (_gl_STRFTIME_PREREQS): Remove. Move its body to
gl_FUNC_STRFTIME.
(gl_FUNC_STRFTIME): Use AC_CHECK_FUNCS_ONCE and AC_CHECK_HEADERS_ONCE
and AC_REQUIRE when possible, to avoid duplicate checks.
Check for <wchar.h>.
2004-11-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/strftime.c (DO_MULTIBYTE): Check for wchar.h, too.
2004-11-09 Bruno Haible <bruno@clisp.org>
* m4/sockpfaf.m4: New file.
2004-11-05 Bruno Haible <bruno@clisp.org>
* lib/readlink.c: Include stddef.h, needed for size_t on Woe32.
Reported by Mark D. Baushke <mdb@cvshome.org>.
2004-11-04 Bruno Haible <bruno@clisp.org>
2004-09-11 Bruno Haible <bruno@clisp.org>
* allocsa.valgrind: New file.
2004-02-06 Bruno Haible <bruno@clisp.org>
* allocsa.h (sa_alignof): Define differently with HP-UX cc, to
avoid a bug of this cc on HP-UX 10.20 dealing with enums.
Reported by Christopher Seip <chris.seip@hp.com>.
2004-11-04 Bruno Haible <bruno@clisp.org>
* modules/allocsa (Files): Add lib/allocsa.valgrind.
(Makefile.am): Distribute it.
2004-11-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/xreadlink.c (xreadlink): AIX and HP-UX readlink return -1
with errno == ERANGE if the buffer is too small.
Problem reported by Mark D. Baushke.
2004-11-03 Albert Chin <china@thewrittenword.com>
Paul Eggert <eggert@cs.ucla.edu>
* m4/uint32_t.m4 (gl_AC_TYPE_UINT32_T): When determining uint32_t
equivalent, substitute $ac_type for equivalent type rather than
blindly using uint32_t *always* which won't work if uint32_t is not
available. Define _UINT32_T to work around typedef of uint32_t if
<sys/sched.h>, <pthread.h>, or <semaphore.h> used on Solaris
2.5.1.
2004-11-02 Paul Eggert <eggert@cs.ucla.edu>
* m4/jm-macros.m4: Sync from coreutils.
(gl_MACROS): Check for mbrlen, for pathchk.
(gl_CHECK_ALL_TYPES): Require AC_TYPE_MBSTATE_T, for pathchk.
2004-11-02 Paul Eggert <eggert@cs.ucla.edu>
* lib/xreadlink.c (MAXSIZE): New macro.
(xreadlink): Use it instead of SSIZE_MAX. Ensure initial buffer
size does not exceed MAXSIZE. Avoid cast.
As suggested by Mark D. Baushke in
<http://lists.gnu.org/r/bug-gnulib/2004-11/msg00009.html>,
if readlink fails with buffer size just under MAXSIZE, try again
with MAXSIZE.
2004-11-02 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add mktime.c; glibc bought all our changes.
2004-11-02 Derek R. Price <derek@ximbiot.com>
and Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y [!TEST]: Include <stdio.h>, since we use sprintf now.
(get_date): Overparenthesize to avoid GCC warning.
2004-11-02 Bruno Haible <bruno@clisp.org>
* m4/setenv.m4 (gt_FUNC_SETENV): Define VOID_UNSETENV if unsetenv()
returns void.
2004-11-02 Bruno Haible <bruno@clisp.org>
* lib/setenv.h (unsetenv): Define as a macro if the system's unsetenv()
function returns void.
2004-11-01 Paul Eggert <eggert@cs.ucla.edu>
* m4/getpass.m4 (gl_PREREQ_GETPASS): Check for declarations of
fflush_unlocked, flockfile, funlockfile, funlockfile,
fputs_unlocked, putc_unlocked.
2004-11-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/getpass.c (fflush_unlocked, flockfile, funlockfile)
(funlockfile, fputs_unlocked, putc_unlocked): Don't define if
already declared.
2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
* modules/getdate (Files): Add doc/getdate.texi.
(Depends-on): Add setenv, xalloc.
2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y: Add support for TZ="foo" within a date string.
Fix some bugs near time_t boundaries. Reject dates with
out-of-range components, e.g., "Sept 31".
Include <stdlib.h>, "setenv.h", "xalloc.h".
(ISDIGIT_LOCALE): Remove; unused.
Note that the TZ and time functions used here are not reentrant.
(mktime_ok, get_tz): New functions.
(TZBUFSIZE): New constant.
(get_date): Parse leading TZ="foo". Reject out-of-range components;.
This requires that we sometimes generate our own TZ="XXX..." setting.
2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
* doc/getdate.texi: New file, from coreutils with modifications for
the new TZ parsing.
2004-10-27 Derek R. Price <derek@ximbiot.com>
* lib/mktime.c (not_equal_tm): Remove redundant check.
2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
* modules/regex (lib_SOURCES): Add regex.c.
Reported by James Youngman in
<http://lists.gnu.org/r/bug-gnulib/2004-10/msg00199.html>.
2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y: Use Bison 1.875 features, and some minor
code cleanups. This change does not affect semantics.
Don't include <stdlib.h>; no longer needed.
Don't include unlocked-io.h; only the "#if TEST" code uses
stdio, and performance isn't crucial there.
(PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by
Bison 1.875 features as described below.
All uses of "PC." replaced by "pc->".
(YYSTYPE): Add a forward declaration.
(yylex, yyerror): Use full prototypes in forward decls.
Use "%pure-parser" rather than obsolescent "%pure_parser".
Use %parse-param and %lex-param instead of obsolescent
YYPARSE_PARAM and YYLEX_PARAM.
(meridian_table, month_and_day_table, time_units_table,
relative_time_table, time_zone_table, military_table,
lookup_zone, lookup_word, get_date):
Use NULL instead of 0 where appropriate.
(to_hour): Avoid abort (), to avoid a dependency on
stdlib.h.
(yyerror, yylex): Now accepts parser_control * arg.
(main) [TEST]: Use '\0' rather than 0 for char.
2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
* m4/getpagesize.m4 (gl_GETPAGESIZE): Check for <sys/param.h>.
2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/getpagesize.c (getpagesize): Don't assume <sys/param.h> exists.
It's now the caller's responsibility to handle the case where
!HAVE_GETPAGESIZE && !defined getpagesize.
* lib/mktime.c (leapyear): Arg is long int, not int.
2004-10-18 Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-fs-xinl.c, argp-xinl.c: Update from glibc.
2004-10-17 Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool (func_emit_lib_Makefile_am): Fix typo: a $ was
missing. Problem reported by James Youngman.
2004-10-16 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Fix comments. Fix parse problem.
(func_emit_lib_Makefile_am): Don't hard code a in libgl_a_SOURCES.
2004-10-15 Paul Eggert <eggert@cs.ucla.edu>
* m4/getopt.m4 (gl_GETOPT): Detect and reject the incompatible BSD
implementation of getopt_long. Problem reported by Alexander Taler in:
http://lists.gnu.org/r/bug-gnulib/2004-10/msg00103.html
2004-10-15 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Untabify. Initialize supplied_libname.
(func_usage): More homogenous output.
(func_modules_transitive_closure, func_modules_to_filelist,
func_emit_lib_Makefile_am): New functions.
(func_import): New function, extracted from big case statement. Use
func_get_license, func_modules_transitive_closure,
func_modules_to_filelist, func_emit_lib_Makefile_am. Initialize
opt_lgpl. Don't use test -a, as it's not portable.
(func_create_testdir): Use func_modules_transitive_closure,
func_modules_to_filelist, func_emit_lib_Makefile_am.
2004-10-15 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_import): Let gl_INIT define LTALLOCA when needed.
2004-10-15 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_emit_lib_Makefile_am): Add markers to separate
the portions belonging to each module.
Suggested by Derek Robert Price <derek@ximbiot.com>.
2004-10-12 Simon Josefsson <jas@extundo.com>
* lib/getpass.c (fflush_unlocked, flockfile, funlockfile)
(fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map
to real functions.
2004-10-11 Yoann Vandoorselaere <yoann@prelude-ids.org>
* modules/vsnprintf: New file.
2004-10-11 Yoann Vandoorselaere <yoann@prelude-ids.org>
* m4/vsnprintf.m4: New file.
2004-10-11 Yoann Vandoorselaere <yoann@prelude-ids.org>
* lib/vsnprintf.h: New file.
* lib/vsnprintf.c: New file.
2004-10-11 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (Support for systems lacking ISO C 99): Add
vsnprintf.
2004-10-10 Paul Eggert <eggert@cs.ucla.edu>
* config/srclistvars.sh: Add GNUSTANDARDS (for eggert only).
2004-10-07 Bruno Haible <bruno@clisp.org>
* lib/snprintf.c (snprintf): Avoid a memory allocation if the result
fits into the provided buffer.
2004-10-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/diacrit.c, diacrit.h: Add GPL notice.
* lib/atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL
notice.
* lib/atanl.c (atanl): Keep the code as similar to glibc as possible.
* lib/logl.c (logl): Keep the code as similar to glibc as possible.
This avoids a potential constant-folding bug.
2004-10-05 Bruno Haible <bruno@clisp.org>
* m4/strsep.m4 (gl_FUNC_STRSEP): Require AC_GNU_SOURCE. Don't check
for the declaration of strsep.
2004-10-05 Bruno Haible <bruno@clisp.org>
* lib/strsep.h: Don't declare strsep() if HAVE_STRSEP.
2004-10-04 Simon Josefsson <jas@extundo.com>
* modules/memmem: New file.
* tests/test-memmem.c: New file.
* MODULES.html.sh (Extra functions based on ANSI C 89): Add memmem.
2004-10-04 Simon Josefsson <jas@extundo.com>
* m4/memmem.m4: New file.
2004-10-04 Simon Josefsson <jas@extundo.com>
* lib/memmem.h: New file.
* lib/memmem.c: New file, taken from glibc.
2004-10-04 Simon Josefsson <jas@extundo.com>
* lib/error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of
'#ifdef USE_UNLOCKED_IO'.
2004-10-04 Simon Josefsson <jas@extundo.com>
* config/srclist.txt: Add memmem from glibc.
2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
* modules/xalloc (Files, Makefile.am): Remove xstrdup.c.
* modules/argmatch, modules/argp, modules/closeout, modules/error,
modules/exclude, modules/getdate, modules/getline,
modules/getndelim2, modules/getpass, modules/getpass-gnu,
modules/getusershell, modules/linebuffer, modules/md5,
modules/mountlist, modules/posixtm, modules/readtokens,
modules/readutmp, modules/regex, modules/sha1,
modules/version-etc, modules/yesno:
Remove dependency on unlocked-io.
2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
* m4/xalloc.m4 (gl_PREREQ_XSTRDUP): Remove. All uses removed.
* m4/unlocked-io.m4: Add copyright notice.
(gl_FUNC_GLIBC_UNLOCKED_IO): Define USE_UNLOCKED_IO.
2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/xalloc.h (xmemdup): Renamed from xclone. All uses changed.
* lib/xmalloc.c (xmemdup): Likewise.
* lib/xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC,
XFREE): Remove these long-obsolescent macros.
* lib/xmalloc.c (xstrdup): Implementation moved here from xstrdup.c
* lib/xstrdup.c: Remove.
* lib/regex.c (re_comp): Cast gettext return value to char *,
Problem reported by Martin Neitzel via Mark D. Baushke.
2004-10-04 Paul Eggert <eggert@cs.ucla.edu>
* lib/argmatch.c, closeout.c, error.c, exclude.c, getdate.y,
getndelim2.c, getpass.c, getusershell.c, linebuffer.c,
md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c,
regex.c, sha1.c, version-etc.c, yesno.c:
Include "unlocked-io.h" only if USE_UNLOCKED_IO.
* lib/unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now
the includer's responsibility.
Sync from coreutils.
* lib/modechange.c (mode_compile): Don't decrement a pointer that
points to the start of a string, as the C Standard says the
resulting behavior is undefined.
* lib/backupfile.h (enum backuptype): Rename none -> no_backups,
simple -> simple_backups, numbered_existing ->
numbered_existing_backups, numbered -> numbered_backups
to avoid shadowing problems. All uses changed.
* lib/argmatch.c (enum backuptype) [defined TEST]: Likewise.
* lib/backupfile.c (check_extension, numbered_backup):
Rename locals to avoid shadowing 'basename'.
* lib/backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than
once.
* lib/.cppi-disable: Add getopt_.h, getopt_int.h.
* lib/.cvsignore: Add getopt.h.
2004-10-04 Bruno Haible <bruno@clisp.org>
* modules/README: New file.
* gnulib-tool (func_all_modules, func_verify_module): modules/README is
not a module.
2004-10-02 Jim Meyering <jim@meyering.net>
* lib/dirfd.h, getpagesize.h: Add copyright notice.
2004-10-01 Yoann Vandoorselaere <yoann@prelude-ids.org>
* modules/strsep: New file.
2004-10-01 Yoann Vandoorselaere <yoann@prelude-ids.org>
* m4/strsep.m4: New file.
2004-10-01 Yoann Vandoorselaere <yoann@prelude-ids.org>
* lib/strsep.h: New file.
* lib/strsep.c: New file.
2004-10-01 Simon Josefsson <jas@extundo.com>
* lib/snprintf.c (snprintf): Handle size==0.
2004-10-01 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* lib/snprintf.c: Include <stdarg.h>, <stdlib.h>, <string.h>.
(snprintf): Declare 'args'.
2004-10-01 Paul Eggert <eggert@cs.ucla.edu>
* lib/snprintf.c: Remove comments as to why each header is needed.
2004-10-01 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Add strsep.
2004-09-30 Simon Josefsson <jas@extundo.com>
* modules/snprintf: New file.
2004-09-30 Simon Josefsson <jas@extundo.com>
* m4/snprintf.m4: New file.
2004-09-30 Simon Josefsson <jas@extundo.com>
* lib/snprintf.h, lib/snprintf.c: New files.
2004-09-30 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* lib/argp-help.c (canon_doc_option): Fixed coredump if *name==NULL
(hol_entry_help): Never translate an empty string.
Do not translate option tag (opt->name) if OPTION_NO_TRANS is set
* lib/argp.h (OPTION_NO_TRANS): New option.
2004-09-30 Paul Eggert <eggert@cs.ucla.edu>
* modules/argp (Maintainer): Replace Simon Josefsson
by Sergey Poznyakoff.
2004-09-30 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Comment-out argp/argp.h, until we get the argp
changes merged back into glibc.
2004-09-30 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh (Support for systems lacking ISO C 99): Add snprintf.
2004-09-29 Oskar Liljeblad <oskar@osk.mine.nu>
* lib/xvasprintf.c: Include xalloc.h.
(xvasprintf): Use xalloc_die, not xmalloc_die.
2004-09-29 Bruno Haible <bruno@clisp.org>
* modules/alloca-opt: New file, derived from modules/alloca.
* modules/allocsa: Depend on alloca-opt instead of alloca.
* modules/setenv: Likewise.
* modules/vasnprintf: Likewise.
* MODULES.html.sh: Add alloca-opt.
2004-09-28 Simon Josefsson <jas@extundo.com>
* gnulib-tool: New parameter --lgpl, to asseert that modules are
LGPL, and to replace license template from GPL to LGPL.
2004-09-28 Paul Eggert <eggert@cs.ucla.edu>
* modules/dummy: Change license to LGPL.
2004-09-28 Paul Eggert <eggert@cs.ucla.edu>
* lib/dummy.c: Change copyright notice to FSF, and license to GPL.
2004-09-24 Simon Josefsson <jas@extundo.com>
* modules/minmax (License): Change from GPL to LGPL.
2004-09-23 Simon Josefsson <jas@extundo.com>
* gnulib-tool (--import): Typo.
2004-09-23 Simon Josefsson <jas@extundo.com>
* gnulib-tool (--import): Make sure *.m4 end up in m4/ by default.
2004-09-22 Bruno Haible <bruno@clisp.org>
* modules/*: Add 'License' field.
* gnulib-tool: Accept --extract-license option.
(func_get_license): New function.
2004-09-21 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf (Files): Add m4/stdint_h.m4, m4/inttypes_h.m4.
Reported by Simon Josefsson.
2004-09-20 Paul Eggert <eggert@cs.ucla.edu>
* modules/inttostr (Files): Add m4/longlong.m4, since it uses
gl_AC_TYPE_LONG_LONG.
2004-09-20 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Add getsubopt.c, since libc bought our changes.
2004-09-18 Simon Josefsson <jas@extundo.com>
and Paul Eggert <eggert@cs.ucla.edu>
* gnulib-tool: Replace various ad-hoc automake/autoconf/aclocal
calls with autoreconf. Define GL_LIB.
2004-09-14 Karl Berry <karl@gnu.org>
* config/srclist.txt: unsync setenv.c, sigh.
2004-09-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-pvh.c (argp_program_version_hook): Provide initial value.
Problem reported by Bruno Haible in:
http://lists.gnu.org/r/bug-tar/2004-09/msg00023.html
2004-09-13 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Comment out argp-pvh.c.
2004-09-11 Paul Eggert <eggert@cs.ucla.edu>
* lib/mempcpy.h: Wrap the entire include file inside #ifndef mempcpy,
in case some system header has #define'd it. Problem reported by
Soeren D. Schulze in
<http://lists.gnu.org/r/bug-gnulib/2004-09/msg00017.html>.
2004-09-09 Karl Berry <karl@gnu.org>
* regex.[ch]: delete from the root. These were supposed to be
synced with emacs cvs, but this has not happened for about
a year, and anyway nothing else uses emacs regex.[ch].
bug-gnulib mail from Jeff Bailey, 9 Sep 2004 15:49:24 -0700.
lib/regex[.ch] is untouched.
2004-09-09 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf (Files): Add m4/eoverflow.m4.
2004-09-09 Bruno Haible <bruno@clisp.org>
* m4/eoverflow.m4: New file, taken from GNU libiconv eilseq.m4 with
modifications.
* m4/vasnprintf.m4 (gl_FUNC_VASNPRINTF): Require gl_EOVERFLOW.
2004-09-08 Oskar Liljeblad <oskar@osk.mine.nu>
* modules/xvasprintf: New file.
* MODULES.html.sh (Extra functions based on ANSI C 89): Add vasprintf.
2004-09-08 Oskar Liljeblad <oskar@osk.mine.nu>
* lib/xvasprintf.h: New file.
* lib/xvasprintf.c: New file.
* lib/xasprintf.c: New file.
2004-09-08 Bruno Haible <bruno@clisp.org>
* m4/stdint.m4: New file, taken from GNU clisp with modifications.
2004-09-08 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting
length is > INT_MAX.
* lib/vasprintf.c (vasprintf): Don't test for length > INT_MAX any
more.
2004-09-08 Bruno Haible <bruno@clisp.org>
* lib/stdint_.h: New file, taken from GNU clisp.
2004-09-08 Bruno Haible <bruno@clisp.org>
Oskar Liljeblad <oskar@osk.mine.nu>
* modules/stdint: New file.
* MODULES.html.sh (Support for systems lacking ISO C 99): Add stdint.
2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
Import from coreutils.
* lib/userspec.c: Don't use <alloca.h>, so that we don't use alloca on
strings on unbounded length. alloca's performance benefits aren't
that important here.
(V_STRDUP): Remove.
(parse_with_separator): New function, with most of the internals
of the old parse_user_spec. Allow user to omit both user and group,
for compatibility with FreeBSD.
Clone only the user name, not the entire spec.
Do not set *uid, *gid unless entirely successful.
Avoid memory leak in some failing cases.
Fix regression for USER.GROUP reported by Dmitry V. Levin in
<http://lists.gnu.org/r/bug-coreutils/2004-08/msg00102.html>
(parse_user_spec): Rewrite to use parse_with_separator.
2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
* modules/userspec: Don't depend on alloca.
2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
* m4/userspec.m4 (gl_USERSPEC): Don't require AC_FUNC_ALLOCA.
2004-08-17 Paul Eggert <eggert@cs.ucla.edu>
* MODULES.html.sh: Add xalloc-die, c-strtod, c-strtold, raise,
readtokens0, getcwd, fcntl-safer, canonicalize, cycle-check,
utimecmp, utimens, xnanosleep. Rename sha to sha1.
2004-08-16 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Use sed instead of autoconf --trace, inspired by
libtoolize behaviour by "Gary V. Vaughan" <gary@gnu.org>.
Add --dry-run for --import.
Let user provided command line parameters override configure.ac
settings.
2004-08-12 Simon Josefsson <jas@extundo.com>
* m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): New macro,
as discussed with Paul Eggert in threads rooted at
<http://lists.gnu.org/r/bug-gnulib/2004-06/msg00039.html>
and
<http://lists.gnu.org/r/bug-gnulib/2004-07/msg00001.html>.
Before, the test was empty, and relied on ELIDE_CODE in source
code.)
(gl_PREREQ_GETOPT): New macro.
(gl_GETOPT): Use them.
2004-08-12 Simon Josefsson <jas@extundo.com>
* lib/getopt.c, getopt1.c: Remove ELIDE_CODE hack.
* lib/getopt_.h: Renamed from getopt.h.
2004-08-12 Simon Josefsson <jas@extundo.com>
* gnulib-tool: Add --source-base, --m4-base, --libtool options.
Change default library name from libfoo to libgnu.
Now, if you have a configure.ac that says:
gl_SOURCE_BASE(gl)
gl_M4_BASE(gl/m4)
gl_MODULES(error getopt etcetera)
gl_INIT
you can import all you need by running:
../gnulib/gnulib-tool --import
* modules/getopt (Files): Rename getopt.h to getopt_.h.
(Makefile.am): Rewrite, use logic from argz.
(Include): Use <getopt.h> instead of "getopt.h".
2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
* modules/argp (Files): Add m4/unlocked-io.m4.
(Depends-on): Add extensions.
2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
* m4/argp.m4 (gl_ARGP): Do not check for argp.h or argp_parse; nobody
uses HAVE_ARGP_H or HAVE_ARGP_PARSE.
Require gl_FUNC_GLIBC_UNLOCKED_IO, gl_USE_SYSTEM_EXTENSIONS.
Check for program_invocation_name, program_invocation_short_name,
flockfile, funlockfile, features.h, _getopt_long_only_r.
2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-help.c, argp-parse.c: Use "gettext.h" instead of
its complicated substitute.
* lib/argp-help.c: Include <errno.h>, for program_invocation_short_name
and program_invocation_name.
(__argp_basename) [!_LIBC]: Remove; the only use was
replaced by its body.
(__argp_short_program_name): Change condition from
!defined __argp_short_program_name to
! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME),
to match argp-namefrob.h.
(__argp_failure): Don't assume strerror_r returns char *.
* lib/argp-parse.c (N_): Define unconditionally.
(argp_default_options): Fill out initializers with 0 to avoid
gcc warnings.
2004-08-12 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Remove getopt.c, getopt.h (renamed to getopt_.h),
getopt1.c.
2004-08-11 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for wmemchr and wmemcpy.
* m4/obstack.m4 (gl_PREREQ_OBSTACK): Require
gl_AC_HEADER_INTTYPES_H, gl_AC_HEADER_STDINT_H, gl_AC_TYPE_UINTMAX_T.
2004-08-11 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* lib/fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing
wmemchr or wmemcpy. Problem reported by Robert Dahlem
for Reliant Unix 5.43.
* lib/obstack.c: Include <inttypes.h> and <stdint.h> if available.
(union fooround): Use uintmax_t, not long int.
The rest is a merge from libc:
[defined _LIBC]: Include <shlib-compat.h>.
(_obstack) [defined _LIBC]: Remove after 2.3.4.
* lib/settime.c (settime): Recode to avoid warning with
Sun Forte C 6U2.
* lib/strverscmp.c: Convert to UTF-8.
2004-08-11 Paul Eggert <eggert@cs.ucla.edu>
* modules/obstack (Files): Add m4/inttypes_h.m4, m4/stdint_h.m4,
m4/uintmax_t.m4.
2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
* modules/xalloc-die: New file.
* modules/xalloc: Remove dependencies on error, gettext, exitfail.
* modules/md5 (Files): Add m4/uint32_t.m4.
* modules/sha1: Renamed from modules/sha.
(Files):
Rename lib/sha.h to lib/sha1.h.
Rename lib/sha.c to lib/sha1.c.
Rename m4/sha.m4 to m4/sha1.m4.
(lib_SOURCES): Likewise.
(configure.ac): Rename gl_SHA to gl_SHA1.
(Include): sha.h -> sha1.h.
2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
* m4/uint32_t.m4, m4/uintptr_t.m4: New files.
* m4/sha1.m4: Renamed from sha.m4.
(gl_SHA1): Renamed from gl_SHA. All uses changed.
2004-08-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/obstack.h (obstack_empty_p):
Don't assume that chunk->contents is suitably aligned.
* lib/obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk):
Likewise. Problem reported by Benno in
<http://sources.redhat.com/ml/libc-alpha/2004-08/msg00055.html>.
* lib/chown.c (rpl_chown): Work even if the file is writeable but not
readable. This could be improved further but it'd take some work.
2004-08-08 Simon Josefsson <jas@extundo.com>
* modules/xgethostname (Depends-on): Remove exit and error (not
used).
* modules/getpass-gnu: Add getpass.h.
(Depends-on): Add stdbool.
* modules/getpass: Add getpass.h.
2004-08-08 Simon Josefsson <jas@extundo.com>
* m4/getpass.m4 (gl_FUNC_GETPASS, gl_FUNC_GETPASS_GNU):
Check getpass declaration.
2004-08-08 Simon Josefsson <jas@extundo.com>
* lib/xgethostname.c: Don't include error.h (not used).
* lib/getpass.h: Add.
* lib/getpass.c: Include getpass.h first.
2004-08-08 Paul Eggert <eggert@cs.ucla.edu>
* lib/xalloc-die.c: New file.
* lib/xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove.
All uses removed.
* lib/xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted):
Likewise. Move inclusions of gettext.h, error.h, exitfail.h to
xalloc-die.c.
(_, N_, xalloc_die): Move to xalloc-die.c.
* lib/userspec.c (parse_user_spaec): Use xstrdup rather than strdup,
so that we needn't mess with xalloc_msg_memory_exhausted.
* lib/sha1.h: Renamed from sha.h.
(SHA1_H): Renamed from _SHA_H.
(sha1_ctx): Renamed from sha_ctx.
(sha1_init_ctx): Renamed from sha_init_ctx.
(sha1_process_block): Renamed from sha_process_block.
(sha1_process_bytes): Renamed from sha_process_bytes.
(sha1_finish_ctx): Renamed from sha_finish_ctx.
(sha1_read_ctx): Renamed from sha_read_ctx.
(sha1_stream): Renamed from sha_stream.
(sha1_buffer): Renamed from sha_buffer.
* lib/sha1.c: Likewise; renamed from sha.c.
Do not include <sys/types.h>.
Include <stddef.h> rather than <stdlib.h>.
2004-08-08 Bruno Haible <bruno@clisp.org>
* lib/pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from
FILESYSTEM_PREFIX_LEN.
* lib/progreloc.c: Likewise.
* lib/concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN.
2004-08-06 Simon Josefsson <jas@extundo.com>
* modules/progname (Depends-on): Don't depend on stdbool.
2004-08-06 Simon Josefsson <jas@extundo.com>
* modules/getsubopt: New file.
* MODULES.html.sh (Support for systems lacking POSIX:2001): Add
getsubopt.
2004-08-06 Paul Eggert <eggert@cs.ucla.edu>
More merge from coreutils.
* m4/utimens.m4, m4/utimecmp.m4: New files.
* m4/backupfile.m4, euidacces.m4, acl.m4, afs.m4, calloc.m4, dirfd.m4,
fsusage.m4, jm-macros.m4, ls-mntd-fs.m4, md5.m4, mountlist.m4,
prereq.m4, sha.m4: Import changes from coreutils.
2004-08-06 Paul Eggert <eggert@cs.ucla.edu>
More merge from coreutils.
* modules/raise, modules/readtokens0, modules/utimens:
* modules/utimecmp, module/xnanosleep: New files.
* modules/strftime: Add lib/strftime.h.
Change include from <time.h> to "strftime.h".
* modules/yesno: Add lib/yesno.h.
* modules/backupfile: Remove lib/addext.c.
* modules/euidaccess: Add stat-macros.h.
* modules/canonicalize, modules/euidaccess,
modules/filemode, modules/lchown, modules/makepath,
modules/rmdir, modules/stat: Likewise.
2004-08-06 Paul Eggert <eggert@cs.ucla.edu>
Merge from tar.
* lib/argp-help.c (make_hol, hol_append): Don't assume that
SIZE_MAX is a valid preprocessor constant.
(__argp_basename): Change from "#ifndef _LIBC"
to "#ifndef __argp_short_program_name", so that
we don't compile these functions for tar.
More merges from coreutils.
* lib/raise.c, lib/readtokens0.h, lib/readtokens0.c, lib/strftime.h:
* lib/utimens.h, lib/utimens.c, lib/utimecmp.h, lib/utimecmp.c:
* lib/xnanosleep.h, lib/xnanosleep.c, lib/yesno.h: New files.
* lib/addext.c: Remove; no longer needed.
* lib/yesno.c, lib/argmatch.h, lib/argmatch.c, lib/backupfile.h,
lib/backupfile.c, lib/euidaccess.c, lib/filemode.c, lib/closeout.c,
lib/dup2.c, lib/exclude.c, lib/fileblocks.c, lib/filemode.c,
lib/fnmatch.c, lib/fnmtahc_loop.c, lib/fopen-safer.c, lib/fsusage.c,
lib/fsusage.h, lib/ftruncate.c, lib/full-write.c, lib/getdate.y,
lib/getloadavg.c, lib/getugroups.c, lib/hard-locale.c,
lib/hard-locale.h, lib/hash.c, lib/human.c, lib/human.h, lib/lchown.c,
lib/lchown.h, lib/makepath.c, lib/makepath.h, lib/md5.c, lib/md5.h,
lib/memchr.c, lib/memcoll.c, lib/memrchr.c, lib/modechange.c,
lib/modechange.h, lib/mountlist.c, lib/mountlist.h, lib/nanosleep.c,
lib/posixtm.c, lib/putenv.c, quotearg.c, lib/quotearg.h,
lib/readtokens.c, lib/readutmp.c, lib/readutmp.h, lib/rmdir.c,
lib/safe-read.c, lib/save-cwd.c, lib/savedir.c, lib/setenv.c,
lib/sig2str.c, lib/stat.c, lib/strtoimax.c, lib/strverscmp.c,
lib/userspec.c, lib/utime.c, lib/version-etc.c., lib/xgethostname.c,
lib/xmemcoll.c, lib/xreadlink.c, lib/xstrtod.c, lib/xstrtod.h,
lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtol.h, lib/xstrtoumax.c:
Import changes from coreutils.
2004-08-05 Simon Josefsson <jas@extundo.com>
* m4/strdup.m4: Always run gl_PREREQ_STRDUP, since strdup.h need it.
2004-08-05 Simon Josefsson <jas@extundo.com>
* m4/getsubopt.m4: New file.
2004-08-05 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* m4/c-strtod.m4, m4/canonicalize.m4, m4/fcntl-safer.m4:
* m4/getcwd-path-max.m4: New files.
* m4/dos.m4 (gl_AC_DOS): filesystem -> file system renaming.
FILESYSTEM_PREFIX_LEN ->
FILE_SYSTEM_PREFIX_LEN.
FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX ->
FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX.
FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR ->
FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR.
* m4/path-concat.m4 (gl_PATH_CONCAT): Don't require gl_AC_DOS, the
prerequisite modules now handle the DOS stuff.
Don't check for unistd.h.
2004-08-05 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* lib/.gdb-history: Remove; this doesn't belong here.
* lib/c-strtod.c, lib/c-strtod.h, lib/c-strtold.c, lib/cycle-check.c:
* lib/cycle-check.h, lib/dev-ino.h, lib/canonicalize.h:
* lib/canonicalize.c, lib/fcntl-safer.h, lib/fcntl-safer.c:
* lib/getcwd.c: New files.
* lib/dirname.h: Include <stdbool.h>.
(FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN,
for consistency with POSIX terminology. All uses changed.
(IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
(strip_trailing_slashes): Use bool for booleans.
* lib/stripslash.c (strip_trailing_slashes): Likewise.
* lib/error.c: Work around bug in OpenBSD 3.4 sterror_r: it
sometimes returns a positive errno value even when it succeeds.
(print_errno_message) [!LIBC]: Fall back on strerror if
__strerror_r fails.
* lib/path-concat.c (mempcpy): Don't define if a system header defines
it. Don't include stdio.h, stdlib.h, unistd.h, strdup.h.
(longest_relative_suffix): New function.
(path_concat): Use it. Assume first argument is not NULL.
Port to DOS. Omit redundant separators.
Report an error instead of returning NULL.
Use mempcpy instead of memcpy.
(xpath_concat): Remove: not declared or used.
* lib/same.h: Include <stdbool.h>
(same_name): Return bool, not int.
* lib/same.c (same_name): Likewise.
(errno): Don't declare; we assume C89 or better now.
* lib/stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros,
if not already defined.
* lib/xgetcwd.c (errno): Don't declare; we assume C89 or better now.
* lib/dup-safer.c (errno): Likewise.
2004-08-05 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils.
* modules/c-strtod, modules/c-strtold, modules/canonicalize:
* modules/cycle-check, modules/fcntl-safer, modules/getcwd: New files.
* modules/path-concat: Don't depend on strdup.
2004-08-03 Simon Josefsson <jas@extundo.com>
* lib/strdup.h: Only use HAVE_DECL_STRDUP if defined.
* lib/progname.h: Don't include stdbool.h.
2004-08-03 Paul Eggert <eggert@cs.ucla.edu>
* modules/fatal: Remove, as the "fatal" module wasn't used or working.
* MODULES.html.sh (func_all_modules): Remove fatal.
2004-08-03 Paul Eggert <eggert@cs.ucla.edu>
* m4/fatal.m4: Remove, as the "fatal" module wasn't used or working.
2004-08-03 Paul Eggert <eggert@cs.ucla.edu>
* lib/fatal.c, fatal.h: Remove as the "fatal" module wasn't used or
working.
2004-08-02 Simon Josefsson <jas@extundo.com>
* lib/getsubopt.h: New file, with comments from Bruno Haible.
* lib/getsubopt.c: New file, from glibc, but slightly modified based on
suggestions from Paul Eggert <eggert@cs.ucla.edu>.
2004-08-01 Simon Josefsson <jas@extundo.com>
* lib/xgetdomainname.c: Include stdlib.h, for free().
2004-07-19 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_all_modules): Add dummy.
2004-07-16 Simon Josefsson <jas@extundo.com>
* modules/dummy: New file.
2004-07-16 Simon Josefsson <jas@extundo.com>
* lib/dummy.c: New file.
2004-07-16 Bruno Haible <bruno@clisp.org>
* lib/backupfile.h: Add extern "C" for C++.
* lib/closeout.h: Likewise.
* lib/copy-file.h: Likewise.
* lib/findprog.h: Likewise.
* lib/full-write.h: Likewise.
* lib/pathname.h: Likewise.
* lib/progname.h: Likewise.
* lib/stpcpy.h: Likewise.
* lib/stpncpy.h: Likewise.
* lib/strcase.h: Likewise.
* lib/strstr.h: Likewise.
* lib/xalloc.h: Likewise.
* lib/mbswidth.h: Add extern "C" for C++.
Reported by Albert Chin-A-Young <china@thewrittenword.com>.
2004-07-13 Robert Millan <robertmh@gnu.org>
* m4/host-os.m4: s/KNetBSD/kNetBSD/g and s/KFreeBSD/kFreeBSD/g.
2004-07-09 Simon Josefsson <jas@extundo.com>
* lib/getndelim2.c: Include stddef.h, for ptrdiff_t. (FreeBSD 4.9
failed without this.)
2004-07-09 Paul Eggert <eggert@cs.ucla.edu>
* modules/chown (Files): Add lib/fchown-stub.c, since
gl_PREREQ_CHOWN invokes AC_LIBOBJ(fchown-stub).
2004-07-09 Paul Eggert <eggert@cs.ucla.edu>
* lib/fchown-stub.c: New file.
2004-06-24 Jim Meyering <jim@meyering.net>
* lib/obstack.h (obstack_base): Cast to (void *), per documentation.
2004-06-22 Paul Eggert <eggert@cs.ucla.edu>
* modules/argz: Omit "#include".
* MODULES.html.sh (func_all_modules): Add calloc, to match
2004-06-01 addition of calloc module.
2004-06-22 Paul Eggert <eggert@cs.ucla.edu>
* m4/argz.m4: New file, which is autoupdated from libtool.
2004-06-22 Paul Eggert <eggert@cs.ucla.edu>
* lib/argz.c, lib/argz_.h: New files, which are autoupdated from
libtool.
2004-06-22 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist-update: Don't insist on "USA." before the
close-comment, as libtool omits the period and puts the */ on a
separate line.
* config/srclist.txt: Add argz.c, argz_.h, argz.m4.
* config/srclistvars.sh: Add LIBTOOL (for eggert only).
2004-06-22 Gary V. Vaughan <gary@gnu.org>
* modules/argz: New file.
* MODULES.html.sh (func_all_modules): Add argz.
2004-06-12 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@cs.ucla.edu>
* modules/hash (Files): Add lib/xalloc.h.
* modules/pipe (Depends-on): Add wait-process.
* modules/stat (Depends-on): Add xalloc.
* modules/userspec (Files): Add lib/userspec.h.
* modules/xstrtol (Depends-on): Add error.
2004-06-10 Jim Meyering <jim@meyering.net>
* lib/calloc.c: New file.
2004-06-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/getdate.y (yylex): Allow space between sign and number.
Problem reported by Dan Jacobson.
2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
Merge from coreutils CVS.
* m4/backupfile.m4, dirname.m4, human.m4, inttypes.m4, longlong.m4,
makepath.m4, memchr.m4, memcmp.m4, mountlist.m4, path-concat.m4,
putenv.m4, quotearg.m4, readutmp.m4, strtoimax.m4, strtoll.m4,
strtoull.m4, strtoumax.m4, ulonglong.m4, vasnprintf.m4,
xstrtol.m4: Fix copyright date and/or serial number.
* m4/chown.m4 (gl_PREREQ_CHOWN): Check for fcntl.h.
See if we need an fchown replacement.
(gl_FUNC_CHOWN_FOLLOWS_SYMLINK): New macro.
(gl_FUNC_CHOWN): Require gl_FUNC_CHOWN_FOLLOWS_SYMLINK,
and use the replacement function if we detect either defect.
* m4/prereq.m4 (gl_PREREQ): Add gl_ALLOCSA, gl_CLOEXEC, gl_INTTOSTR,
gl_UTIMECMP.
2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
and Jim Meyering <jim@meyering.net>
Merge from coreutils CVS.
* lib/stat-macros.h: New file, with contents from file-type.h
and coreutils' system.h.
* lib/file-type.c: Include "stat-macros.h".
* lib/file-type.h (file_type): Move all macro definitions to new file,
stat-macros.h.
* modules/file-type: Add lib/stat-macros.h.
* lib/chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]:
Wrap old code with this conditional.
[CHOWN_MODIFIES_SYMLINK]: Try to work around a chown
function that does not dereference symlinks.
* lib/lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown.
* lib/xreadlink.c: Include xreadlink.h first, to catch .h file
dependency problems.
(xreadlink): Accept new arg SIZE, for efficiency.
All decls and uses changed.
* lib/xreadlink.h: Include <stddef.h>, for size_t.
* lib/.cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h,
gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h.
* lib/.cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h,
sysexits.h.
2004-06-01 Jim Meyering <jim@meyering.net>
* m4/calloc.m4: New file.
* modules/calloc: New file.
2004-05-31 Paul Eggert <eggert@cs.ucla.edu>
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Detect _Bool bug in HP aC++/ANSI
C B3910B A.05.55 [Dec 04 2003]. Problem reported by Jim Meyering.
Also, fix a typo in a diagnostic.
2004-05-30 Paul Eggert <eggert@cs.ucla.edu>
* m4/xalloc.m4 (gl_PREREQ_XMALLOC): Do not require AC_FUNC_MALLOC
or AC_FUNC_REALLOC.
2004-05-30 Paul Eggert <eggert@cs.ucla.edu>
* modules/hash (Depends-on): Remove malloc, realloc.
* modules/xalloc (Depends-on): Likewise.
* README: Mention that the 'free' module works around the
problem with 'free (0)'.
Mention LIA-1 and C99.
Add a copyright notice.
* lib/xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these
macros to be defined.
(xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if
the allocator returns NULL because the requested size is zero.
2004-05-20 Paul Eggert <eggert@cs.ucla.edu>
* lib/malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this
var. Add comment explaining why libc still defines it. This
merges the following patch from glibc:
http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html
2004-05-20 Andreas Schwab <schwab@suse.de>
* m4/free.m4: Replace free if it not known to work, not the other
way round.
2004-05-19 Paul Eggert <eggert@cs.ucla.edu>
* lib/obstack.c (_obstack): Remove unused variable. It hasn't been
present in glibc since revision 1.1 of this file.
* lib/obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast,
obstack_alignment_mask, obstack_alloc, obstack_base,
obstack_blank, obstack_blank_fast, obstack_chunk_size,
obstack_copy, obstack_copy0, obstack_finish, obstack_grow,
obstack_grow0, obstack_init, obstack_int_grow,
obstack_int_grow_fast, obstack_make_room, obstack_memory_used,
obstack_next_free, obstack_object_size, obstack_ptr_grow,
obstack_ptr_grow_fast, obstack_room): Remove declarations of
nonexistent functions.
2004-05-18 Karl Berry <karl@gnu.org>
* config/srclist.txt: break link for vasnprintf.c.
2004-05-17 Paul Eggert <eggert@cs.ucla.edu>
Port obstack to the AS/400, where pointers are 16 bytes wide and
you cannot cast an integer to a valid pointer. This patch is
currently waiting to be integrated into glibc; see
<http://sources.redhat.com/ml/libc-alpha/2004-05/msg00073.html>.
* lib/obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove.
All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN.
(__BPTR_ALIGN, __PTR_ALIGN): New macros.
(struct obstack): temp member is now a union of a pointer and
an integer, instead of an integer. All integer uses changed.
This does not affect the physical layout of struct obstack,
except on hosts (like the AS/400) where the size or alignment of
void * is greater than that of ptrdiff_t.
(obstack_finish) [! (defined __GNUC__ && defined __STDC__ &&
__STDC__)]: Store temporary in pointer member of union, not
integer member.
* lib/obstack.c: Include <stddef.h>, for offsetof.
(struct fooalign): Remove; it doesn't need a name.
(union fooround): Change double to long double, and add void *.
(DEFAULT_ALIGNMENT): Use offsetof to compute.
(DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant,
not a macro. Hence the values are always int; so remove all
casts-to-int in uses.
2004-05-17 Paul Eggert <eggert@cs.ucla.edu>
* config/srclist.txt: Break link for argp-help.c and argp-parse.c until
we can get this patch merged into glibc.
2004-05-17 Derek R. Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* m4/argp: Depend on alloca.
2004-05-17 Derek R. Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
* lib/argp-help.c, argp-parse.c: Assume <alloca.h> rather than
freecoding.
2004-05-17 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Correctly handle the case of a
precision that consists of a '.' followed by an empty digit string.
Patch by Tor Lillqvist <tml@iki.fi>.
2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
* modules/getdate: Depend on alloca.
* modules/setenv: Likewise.
2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Define HAVE_ALLOCA_H always,
for backward compatibility with older code. We need our own
alloca.h if _AIX is defined. Define HAVE_ALLOCA if we discover
it under some other name, and our alloca.h will define it.
2004-05-16 Paul Eggert <eggert@cs.ucla.edu>
Derek Price <derek@ximbiot.com>
* lib/alloca.c: Include <alloca.h>, to get our interface.
* lib/alloca_.h: Use __alloca on AIX, so that we don't have to
include <alloca.h> first. Use C89 prototype for alloca; this
requires including <stddef.h> for size_t. Use extern "C" if C++.
Use #elif for simplicity, since we can assume C89 now.
Don't try to source the system alloca.h since it will not be found
and to prevent recursively including its replacement.
* lib/fnmatch.c: Include <alloca.h> instead of opencoding.
* lib/regex.c: Likewise.
2004-05-16 Derek Price <derek@ximbiot.com>
Paul Eggert <eggert@cs.ucla.edu>
getline cleanup. This changes the getndelim2 API: both order of
arguments, and meaning of delim2 (now uses EOF, not 0, to indicate
no delimiter).
* lib/getline.c: Don't include stddef.h or stdio.h, since our
interface does that.
(getline): Always use getdelim, so that we don't have two
copies of this code.
* lib/getndelim2.c: Include <limits.h>, <inttypes.h>, <stdint.h>
if available.
(PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined.
(GETNDELIM2_MAXIMUM): New macro.
(getndelim2): Reorder arguments. delim==EOF now means no delimiter,
instead of the old practice of delim2==0. All callers changed.
Return -1 on overflow, instead of returning junk.
Do not set *linesize unless allocation succeeds.
* lib/getndelim2.h: Do not include stddef.h; no longer needed, now
that we include sys/types.h.
* lib/getnline.h: Likewise.
* lib/getndelim2.h (GETNLINE_NO_LIMIT): New macro.
(getndelim2): Reorder arguments.
* lib/getnline.c (getnline, getndelim):
Don't discard the NMAX argument.
(getnline): Invoke getndelim, to avoid code duplication.
* lib/getnline.h (GETNLINE_NO_LIMIT): New macro, used instead
of (size_t) -1 by callers of the getnline family.
2004-05-13 Paul Eggert <eggert@cs.ucla.edu>
* m4/gettime.m4 (gl_GETTIME): Require gl_TIMESPEC.
Check for gettimeofday.
* m4/settime.m4 (gl_SETTIME): Require gl_TIMESPEC.
Check for settimeofday, stime.
2004-05-13 Paul Eggert <eggert@cs.ucla.edu>
* lib/nanosleep.c (suspended): Change its type from int to
sig_atomic_t volatile.
(first_call): Make it private to rpl_nanosleep, and have it
be zero initially as that's a bit faster.
(my_usleep): Round up fractional times instead of truncating them,
as this is the usual meaning for 'sleep'.
* lib/gettime.c (gettime): Fall back on `time' if `gettimeofday'
doesn't work.
* lib/settime.c: Include <unistd.h>, for stime (on Solaris 8, anyway).
(ENOSYS): Define if not defined.
(settime): Fall back on stime if it exists and settimeofday fails.
But don't bother with fallbacks if a method fails with errno == EPERM.
2004-05-11 Jim Meyering <jim@meyering.net>
Prior to this change, the save_cwd caller required read access to the
current directory on most systems (ones with the fchdir function).
* lib/save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only
fails, try write-only, and finally, resort to using xgetcwd.
2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
* lib/obstack.c, obstack.h: Import changes from libc.
2004-05-04 Derek Price <derek@ximbiot.com>
* modules/argp: Remove dependency on alloca.
2004-04-28 Bruno Haible <bruno@clisp.org>
* lib/findprog.c (find_in_path): Treat Cygwin like Windows, since it
also implicitly appends .exe to executables.
* lib/localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now
accepts Windows pathnames.
* lib/pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN):
Treat Cygwin like Windows, since it now accepts Windows pathnames.
* lib/progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN):
Treat Cygwin like Windows, since it now accepts Windows pathnames.
Reported by Derek Robert Price <derek@ximbiot.com>.
2004-04-27 Derek Price <derek@ximbiot.com>
* m4/dos.m4 (gl_AC_DOS): Add Cygwin to list of Windows/DOS
environments that accept backslashes and drive letters in paths.
2004-04-21 Karl Berry <karl@gnu.org>
* config/srclist.txt (localcharset.c): break sync.
2004-04-20 Paul Eggert <eggert@twinsun.com>
* m4/host-os.m4: Add a copyright notice.
2004-04-20 Jim Meyering <jim@meyering.net>
* modules/dirfd: Change UTILS_ macro name prefix to gl_.
* modules/mkstemp: Likewise.
* modules/mkdir: Likewise.
Change UTILS_ to gl_ in AC_DEFINE'd names.
Change utils_- and jm_-prefixed variables, too.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Renamed from
UTILS_FUNC_MKDIR_TRAILING_SLASH.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Renamed from UTILS_FUNC_MKSTEP.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Rename from UTILS_FUNC_DIRFD.
Don't emit trailing blanks.
Also rename jm_-prefixed variables to have gl_ prefix.
* m4/host-os.m4 (gl_HOST_OS): Rename from UTILS_HOST_OS.
Also rename jm_-prefixed variables to have gl_ prefix.
* m4/jm-macros.m4: Reflect the renamings.
* m4/prereq.m4: Likewise.
2004-04-20 Jim Meyering <jim@meyering.net>
* lib/getndelim2.c (getndelim2): Upon realloc failure, don't leak
memory.
2004-04-20 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak
memory when realloc fails.
2004-04-19 Jim Meyering <jim@meyering.net>
* m4/readutmp.m4 (gl_PREREQ_READUTMP): Require gl_FUNC_FREE,
now that readutmp.c may call `free (0)'.
2004-04-19 Bruno Haible <bruno@clisp.org>
* m4/mbrtowc.m4: Change jm_ to gl_ in cache variables as well.
* m4/inttypes_h.m4: Likewise.
* m4/stdint_h.m4: Likewise.
* m4/intmax_t.m4: Likewise.
* m4/uintmax_t.m4: Likewise.
2004-04-18 Jim Meyering <jim@meyering.net>
* m4/prereq.m4: Don't forbid jm_ prefix.
* m4/afs.m4, m4/allocsa.m4, m4/assert.m4, m4/backupfile.m4:
* m4/bison.m4, m4/check-decl.m4, m4/chown.m4, m4/d-ino.m4:
* m4/d-type.m4, m4/dirname.m4, m4/dos.m4, m4/error.m4, m4/fpending.m4:
* m4/fstypename.m4, m4/fsusage.m4, m4/ftruncate.m4, m4/getdate.m4:
* m4/getgroups.m4, m4/gettext.m4, m4/glibc21.m4, m4/group-member.m4:
* m4/human.m4, m4/intmax.m4, m4/intmax_t.m4, m4/inttostr.m4:
* m4/inttypes.m4, m4/inttypes_h.m4, m4/jm-macros.m4, m4/jm-winsz1.m4:
* m4/jm-winsz2.m4, m4/lchown.m4, m4/lib-check.m4, m4/link-follow.m4:
* m4/localcharset.m4, m4/longlong.m4, m4/ls-mntd-fs.m4, m4/lstat.m4:
* m4/makepath.m4, m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4:
* m4/memcmp.m4, m4/mkdtemp.m4, m4/mkstemp.m4, m4/mountlist.m4:
* m4/nanosleep.m4, m4/path-concat.m4, m4/perl.m4, m4/prereq.m4:
* m4/putenv.m4, m4/quotearg.m4, m4/regex.m4, m4/stat.m4:
* m4/stdint_h.m4, m4/strftime.m4, m4/strtoimax.m4, m4/strtoll.m4:
* m4/strtoull.m4, m4/strtoumax.m4, m4/timespec.m4, m4/uintmax_t.m4:
* m4/ulonglong.m4, m4/unlink-busy.m4, m4/unlocked-io.m4, m4/uptime.m4,
* m4/utimbuf.m4, m4/utime.m4, m4/utimes-null.m4, m4/vasnprintf.m4:
* m4/xstrtoimax.m4, m4/xstrtol.m4, m4/xstrtoumax.m4:
Change jm_ to gl_ in AC_DEFINE'd names. Update all uses.
2004-04-18 Jim Meyering <jim@meyering.net>
* lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc
failure, don't leak memory and do call END_UTMP_ENT.
2004-04-18 Jim Meyering <jim@meyering.net>
Change jm_ to gl_ in AC_DEFINE'd names.
* modules/assert, modules/chown, modules/fpending:
* modules/ftruncate, modules/getgroups, modules/group-member:
* modules/lchown, modules/lstat, modules/memcmp:
* modules/nanosleep, modules/putenv, modules/stat:
* modules/strftime, modules/unlocked-io, modules/utime:
* modules/xstrtoimax, modules/xstrtoumax:
2004-04-16 Jim Meyering <jim@meyering.net>
* m4/prereq.m4 (jm_PREREQ_STAT): Remove macro. It is specific to
coreutils' stat program.
(gl_PREREQ): Don't require jm_PREREQ_STAT.
2004-04-12 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Restore setenv.c, unsetenv.c from gettext.
Add intmax.m4, printf-posix.m4, sig_atomic_t.m4,
signalblocking.m4, ssize_t.m4.
* lib/unsetenv.c: Regenerate: this subtracts 1 from the
copyright year (!).
* m4/printf-posix.m4: Regenerate.
* modules/inttostr (EXTRA_DIST): Move inttostr.c here....
(lib_SOURCES): from here.
* modules/getopt (lib_SOURCES): Add getopt_int.h.
2004-04-12 Jim Meyering <jim@meyering.net>
* MODULES.html.sh (func_all_modules): Add cloexec, inttostr, free,
tzset.
2004-04-11 Paul Eggert <eggert@twinsun.com>
* lib/inttostr.h: Include <limits.h> unconditionally, since we assume
C89.
(CHAR_BIT): Remove, since we assume C89.
Include <stdint.h> if available, as per current Autoconf CVS advice.
2004-03-31 Jim Meyering <jim@meyering.net>
* m4/prereq.m4: Require AC_FUNC_MALLOC, not jm_FUNC_MALLOC.
Require AC_FUNC_REALLOC, not jm_FUNC_REALLOC.
* m4/xalloc.m4: Likewise.
2004-03-30 Paul Eggert <eggert@twinsun.com>
Merge from coreutils.
* m4/inttostr.m4: New file.
* m4/getdate.m4 (gl_GETDATE): Remove time-related stuff.
Require AM_STDBOOL_H and gl_TIMESPEC instead.
Require gl_CLOCK_TIME.
* m4/clock_time.m4 (gl_CLOCK_TIME): Require AC_GNU_SOURCE.
2004-03-30 Paul Eggert <eggert@twinsun.com>
* lib/cloexec.h, cloexec.c (set_cloexec_flag): Return int
not bool, to be more consistent with Unix conventions.
Suggested by Bruno Haible.
Merge from coreutils.
* modules/inttostr: New file.
* lib/imaxtostr.c, lib/inttostr.c, lib/inttostr.h, lib/offtostr.c:
* lib/umaxtostr.c: New files.
* modules/getdate: Depend on timespec, stdbool, gettime.
* lib/getdate.h: Include stdbool.h, and timespec.h instead of
the usual <time.h> dance.
(get_date): Change signature to support fractional time stamps.
All callers changed.
* lib/getdate.y: Include "getdate.h" first, as we can now
assume C89 and don't need to worry about 'const'.
Similarly, include "unlocked-io.h" near start, not in middle.
Include <limits.h>.
(textint.value): Use long int rather than int.
(textint.digits): Use size_t rather than int.
(BILLION, LOG10_BILLION): New constants.
(parser_control): New member rel_ns. Members day_ordinal,
time_zone, month, day, hour, minutes, rel_year, rel_month,
rel_day, rel_hour, rel_minutes, rel_seconds
are now long int, not int. Member seconds is now struct timespec,
not int. New member timespec_seen. Members dates_seen, days_seen,
local_zones_seen, rels_seen, times_seen, zones_seen are now size_t,
not int.
(%union.intval): Now long int, not int.
New member timespec.
(tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens.
(seconds, signed_seconds, unsigned_seconds): New nonterminals.
(spec): Now is a timespec or an item list.
(timespec, items): New nonterminals.
(time, rel, relunit, number, get_date):
Add support for fractional seconds.
(time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax.
(gmtime, localtime, mktime): Remove decls; not needed with C89.
(to_hour): First arg is now long int, not int.
(to_year): Returns long int, not int.
Don't treat year -70 like 70.
(tm_diff): Returns long int, not int.
(lookup_word): Use bool instead of int when appropriate.
(yylex): Use size_t for count, not int.
Detect overflow when parsing large integer constants.
Add support for fractions.
(get_date): Make pointers 'const' if possible.
Use more-portable code to detect integer overflow.
(main) [TEST]: Adjust to above changes. Test for localtime failure.
Don't use ctime; it's not reliable if the year has >4 digits.
* lib/human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set.
This is for compatibility with BSD.
* lib/timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define.
(ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise.
From coreutils' system.h.
* lib/userspec.c: Don't include "posixver.h".
(parse_user_spec): Fall back on USER.GROUP parsing, regardless
of POSIX version, as POSIX 1003.1-2001 allows that behavior as a
compatible extension. Simplify code by removing a boolean int
that was always nonzero if a string was nonnull.
2004-03-30 Jim Meyering <jim@meyering.net>
Merge from coreutils.
Avoid a configure-time warning about sys/ucred.h on OSF V4.0.
* m4/ls-mntd-fs.m4: Test for sys/ucred.h separately, since
on some systems one must include <grp.h> before it.
Reported by Christian Krackowizer.
2004-03-30 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h.
* lib/readtokens.c (readtoken): Don't leak 64 bytes when reading
an empty input stream.
* lib/readtokens.c: Include <stdbool.h>.
(readtoken): Use `size_t' rather than int/long.
All callers adjusted.
Use `bool' rather than `int' where appropriate.
Use memset rather than an explicit loop.
Use x2nrealloc rather than xrealloc.
Allow the use of `\0' as a delimiter.
(readtokens): Likewise.
* lib/readtokens.h (readtoken, readtokens): Update prototypes.
2004-03-30 Jim Meyering <jim@meyering.net>
* modules/realloc (Files): Remove m4/realloc.m4.
(configure.ac): Depend on AC_FUNC_REALLOC, rather than jm_FUNC_REALLOC.
* modules/malloc (Files): Remove m4/malloc.m4.
(configure.ac): Depend on AC_FUNC_MALLOC, rather than jm_FUNC_MALLOC.
* m4/realloc.m4: Remove file, since now it does no more than
AC_REQUIRE([AC_FUNC_REALLOC]), and that can be done via
the `configure.ac' section of module/realloc.
* m4/malloc.m4: Likewise, but for AC_FUNC_MALLOC.
2004-03-30 Bruno Haible <bruno@clisp.org>
* lib/getloadavg.c (getloadavg): Don't assume setlocale returns
nonnull.
2004-03-29 Paul Eggert <eggert@twinsun.com>
Merge changes to getloadavg.c from coreutils and Emacs.
* modules/getloadvg: Depend on cloexec and xalloc.
* lib/getloadavg.c [!defined HAVE_SETLOCALE] (setlocale):
Define to an expression, not to the empty string.
Include cloexec.h and xalloc.h.
(getloadavg): Restore LC_NUMERIC locale after setting it temporarily.
Use set_cloexec_flag rather than rolling our own.
* lib/cloexec.c, lib/cloexec.h: New files.
2004-03-29 Paul Eggert <eggert@twinsun.com>
* m4/cloexec.m4: New file.
2004-03-18 Paul Eggert <eggert@twinsun.com>
* lib/getopt.h: Sync with libc CVS.
2004-03-18 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* m4/mbswidth.m4 (gl_MBSWIDTH): Also test whether <wchar.h> declares
mbswidth.
2004-03-18 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* lib/mbswidth.h: Include <wchar.h> only if
HAVE_DECL_MBSWIDTH_IN_WCHAR_H, not on all platforms that have
<wchar.h>.
* lib/mbswidth.c: Include <stdio.h> and <time.h> before <wchar.h>.
2004-03-09 Paul Eggert <eggert@twinsun.com>
* modules/getopt: Add lib/getopt_int.h.
* lib/argp-parse.c, getopt.c, getopt.h, getopt1.c:
Sync with libc CVS.
* lib/getopt_int.h: New file, also synced from libc.
2004-03-09 Paul Eggert <eggert@twinsun.com>
* config/srclistvars.sh: Add GNUWWWLICENSES for eggert.
* config/srclist.txt: Sync getopt with libc. Add getopt_int.h.
Bring back getopt.c, getopt.h, getopt1.c.
2004-03-07 Paul Eggert <eggert@twinsun.com>
* m4/c-stack.m4 (gl_PREREQ_C_STACK): Renamed from jm_PREREQ_C_STACK.
All uses changed. Check for sa_sigaction member; this fixes
a bug first reported by Jason Andrade in
<http://mail.gnu.org/r/bug-textutils/2003-03/msg00027.html>.
2004-03-07 Paul Eggert <eggert@twinsun.com>
* lib/c-stack.c (SIGACTION_WORKS): New macro. Use it instead of long
'#if' expressions. Unlike the code it replaces, it does not
depend on (defined _SC_PAGESIZE). However, it does depend on
HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug
first reported by Jason Andrade in
<http://mail.gnu.org/r/bug-textutils/2003-03/msg00027.html>.
2004-02-25 Simon Josefsson <jas@extundo.com>
* m4/strdup.m4 (gl_PREREQ_STRDUP): Check whether strdup is declared.
2004-02-25 Simon Josefsson <jas@extundo.com>
* lib/strdup.h: New file.
* lib/strdup.c: Include it.
* lib/path-concat.c: Include strdup.h. Drop strdup declaration.
* lib/userspec.c: Include strdup.h. Drop strdup declaration.
2004-02-23 Karl Berry <karl@gnu.org>
* doc/maintain.texi, doc/standards.texi, doc/make-stds.texi: new files
(from fencepost.gnu.org:/gd/gnuorg).
2004-02-23 Karl Berry <karl@gnu.org>
* config/srclistvars.sh (GNUORG) [karl]: redefine.
* config/srclist.txt: add maintain/standards documents.
2004-02-22 Bruno Haible <bruno@clisp.org>
* modules/xalloc: Remove dependency on stdbool.
Reported by Derek Robert Price <derek@ximbiot.com>.
2004-02-18 Bruno Haible <bruno@clisp.org>
* m4/xsize.m4 (gl_XSIZE): Require AC_C_INLINE.
Reported by Derek Robert Price <derek@ximbiot.com>.
2004-02-16 Karl Berry <karl@gnu.org>
* config/mkinstalldirs, install-sh: update from automake.
2004-02-06 Karl Berry <karl@gnu.org>
* m4/po.m4: update from gettext 0.14.1.
2004-02-06 Karl Berry <karl@gnu.org>
* lib/config.charset: update from gettext 0.14.1.
2004-02-05 Paul Eggert <eggert@twinsun.com>
Add comments and code, prompted by suggestions from Bruno Haible
for sh-quote.
* lib/quotearg.h (quotearg_alloc): New decl. Improve the comments
describing the enum quoting_style values.
* lib/quotearg.c (quotearg_alloc): New function.
(quotearg_buffer_restyled): Treat lone { and } as special.
Treat = as special. Work around bug with older shells
that "see" a '\' that is really the 2nd byte of a multibyte char.
Quote empty string with shell_quoting_style.
2004-02-03 Bruno Haible <bruno@clisp.org>
* modules/pipe: New file.
* MODULES.html.sh (func_all_modules): Add pipe.
* m4/pipe.m4: New file, from GNU gettext.
2004-02-03 Bruno Haible <bruno@clisp.org>
* lib/pipe.h: New file, from GNU gettext.
* lib/pipe.c: New file, from GNU gettext.
2004-01-27 Bruno Haible <bruno@clisp.org>
* modules/execute: New file.
* MODULES.html.sh (func_all_modules): Add execute.
* m4/execute.m4: New file, from GNU gettext.
2004-01-27 Bruno Haible <bruno@clisp.org>
* lib/execute.h: New file, from GNU gettext.
* lib/execute.c: New file, from GNU gettext.
* lib/w32spawn.h: New file, from GNU gettext.
2004-01-24 Paul Eggert <eggert@twinsun.com>
Merge from diffutils.
* lib/file-type.c (file_type): Add typed memory objects.
* lib/file-type.h (S_TYPEISTMO): New macro.
* lib/c-stack.h (c_stack_action): Remove argv argument.
* lib/c-stack.c (c_stack_action): Likewise. All uses changed.
(die): Don't calculate message unless segv_action returns.
(get_stack_location, min_address_from_argv, max_address_from_argv,
volatile stack_base, volatile_stack_size): Remove.
(segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume
that every segmentation violation is a stack overflow. (Ouch!)
See Debian bug 136249 (still outstanding) for more info about why
HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels.
2004-01-24 Paul Eggert <eggert@twinsun.com>
Exit-status fix from coreutils.
Use exit_failure consistently in place of EXIT_FAILURE,
so that program exit statuses are consistent on failure.
* lib/argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]:
Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE.
* lib/argmatch.h: Comment fix to match the above.
* lib/obstack.c (obstack_exit_failure) [!defined _LIBC]:
Now a macro referring to exit_failure, instead of a separate
variable. Include "exitfail.h" to get it.
* lib/xstrtol.h: Include "exitfail.h".
(STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2.
* lib/long-options.c (parse_long_options): Use prototype
for usage function arg. Pass it EXIT_SUCCESS rather than 0,
for clarity.
2004-01-23 Paul Eggert <eggert@twinsun.com>
* modules/argmatch, modules/obstack, modules/xstrtol:
Depend on exitfail.
2004-01-21 Jim Meyering <jim@meyering.net>
* lib/mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal
so as not to conflict with a different-sized __mktime_internal
function in GNU libc.
* lib/timegm.c (__mktime_internal) [!_LIBC]: Likewise.
Problem building statically-linked `ls' reported by Michael Brunnbauer.
2004-01-20 Karl Berry <karl@gnu.org>
* config/config.guess: update from config.
* config/srclistvars.sh: GNUWWWLICENSES for karl.
2004-01-20 Bruno Haible <bruno@clisp.org>
Safer stack allocation.
* modules/setenv: Depend on allocsa instead of alloca.
* lib/setenv.c: Include allocsa.h.
(alloca): Remove fallback definition.
(freea): Remove macro.
(__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa
instead of freea.
2004-01-20 Bruno Haible <bruno@clisp.org>
* m4/eealloc.m4: New file, from GNU gettext.
2004-01-20 Bruno Haible <bruno@clisp.org>
* m4/allocsa.m4: New file, from GNU gettext.
2004-01-20 Bruno Haible <bruno@clisp.org>
* modules/xallocsa: New file.
* MODULES.html.sh (func_all_modules): Add xallocsa.
* lib/xallocsa.h: New file, from GNU gettext.
* lib/xallocsa.c: New file, from GNU gettext.
2004-01-20 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c: On Windows, include windows.h. Needed on mingw.
2004-01-20 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (wait_subprocess): Add ignore_sigpipe argument.
* lib/wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE
specially.
2004-01-20 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (wait_process): Disable the 2003-10-31 waitid()
patch.
2004-01-20 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (cleanup_slaves): Use ANSI C declaration.
2004-01-20 Bruno Haible <bruno@clisp.org>
* modules/eealloc: New file.
* MODULES.html.sh (func_all_modules): Add eealloc.
* lib/eealloc.h: New file.
2004-01-20 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h: Avoid warnings on Cygwin.
2004-01-20 Bruno Haible <bruno@clisp.org>
* modules/allocsa: New file.
* MODULES.html.sh (func_all_modules): Add allocsa.
* lib/allocsa.h: New file, from GNU gettext.
* lib/allocsa.c: New file, from GNU gettext.
2004-01-18 Karl Berry <karl@gnu.org>
* doc/gpl.texi, doc/lgpl.texi: new files.
2004-01-18 Karl Berry <karl@gnu.org>
* config/srclistvars.sh (GNUWWWLICENSES): new variable.
* config/srclist.txt ({fdl,gpl,lgpl}.text): get from there.
2004-01-18 Simon Josefsson <jas@extundo.com>
* modules/strdup (Files, Makefile.am): Add strdup.h.
2004-01-15 Paul Eggert <eggert@twinsun.com>
* modules/poll: Add BUILT_SOURCES.
Prefer "$@" to "poll.h" in rule for building poll.h.
All this is for consistency with alloca and fnmatch.
* modules/same: Depend on stdbool.
2004-01-15 Paul Eggert <eggert@twinsun.com>
Merge from coreutils.
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for uintptr_t.
* m4/posixver.m4 (gl_POSIXVER): Require gl_DEFAULT_POSIX2_VERSION.
(gl_DEFAULT_POSIX2_VERSION): Move
the documentation from 'configure' into 'config.hin',
so that 'configure --help' isn't burdened by it and
we don't have to worry about its formatting there.
Reword the documentation so that it's more succinct
and can be run together into a single paragraph.
* m4/same.m4 (gl_SAME): Check for pathconf.
2004-01-15 Paul Eggert <eggert@twinsun.com>
Merge from coreutils.
* lib/posixver.c: Include posixver.h.
* lib/same.c: Include <stdbool.h>, <limits.h>.
(_POSIX_NAME_MAX): Define if not defined.
(MIN): New macro.
(same_name): If file names are silently truncated, report
that the file names are the same if they are the same after
the silent truncation.
* lib/xstrtod.h (xstrtod): Accept an extra arg, specifying the
conversion function.
* lib/xstrtod.c (xstrtod): Likewise. All callers changed to
include c-strtod.h and use c_strtod. Don't include stdlib.h; no
longer needed.
2004-01-15 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* m4/clock_time.m4 (gl_CLOCK_TIME): Don't set LIB_CLOCK_GETTIME
if no library is required.
* m4/jm-macros.m4: Don't require UTILS_SYS_OPEN_MAX.
* m4/jm-macros.m4 (jm_MACROS): Require gl_FUNC_FREE.
* m4/jm-macros.m4 (jm_MACROS): Require autoconf-2.58.
(AC_LANG_SOURCE): Remove definition, now that we require autoconf-2.58.
* m4/jm-macros.m4 (jm_MACROS): Don't require AC_FUNC_FTW.
* m4/lib-check.m4 (jm_LIB_CHECK): Do not set LIB_CRYPT to the
value, $ac_cv_search_crypt, if it's "none required".
* m4/posixver.m4 (gl_DEFAULT_POSIX2_VERSION): New macro.
* m4/prereq.m4 (jm_PREREQ): Require AC_FUNC_GETLOADAVG,
not gl_FUNC_GETLOADAVG.
* m4/prereq.m4 (jm_PREREQ): Require gl_READTOKENS, gl_MD5, gl_MAKEPATH,
gl_LONG_OPTIONS, and gl_IDCACHE, gl_GETUGROUPS.
2004-01-15 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These
days, gcc-3.x does better all by itself. Patch from Dean Gaudet:
http://mail.gnu.org/r/bug-coreutils/2003-11/msg00144.html
* lib/posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new,
optional configure-time default.
* lib/version-etc.c (version_etc_copyright): Update copyright date.
* lib/xreadlink.c (xreadlink): Correct outdated comment.
2004-01-15 Alexandre Duret-Lutz <adl@gnu.org>
Merge from coreutils.
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Do not set LIB_NANOSLEEP to the
value, $ac_cv_search_nanosleep, if it's "none required".
2004-01-14 Paul Eggert <eggert@twinsun.com>
* lib/fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided
with like-named macro in fnmatch.c.
(EXT): Use an internal constant instead.
Merge fnmatch patches from glibc.
* lib/fnmatch.c (mbsinit): Remove define.
Add libc_hidden_ver (__fnmatch, fnmatch).
* lib/fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate.
Adjust to renaming of collseq_table_lookup to __collseq_table_lookup.
2004-01-14 Karl Berry <karl@gnu.org>
* config/install-sh: update from automake.
2004-01-13 Karl Berry <karl@gnu.org>
* config/install-sh: update from automake.
2004-01-09 Karl Berry <karl@gnu.org>
* config/install-sh: update from automake.
2004-01-05 Karl Berry <karl@gnu.org>
* config/config.{sub,guess}: update from config.
2003-12-31 Karl Berry <karl@gnu.org>
* config/depcomp: update from automake.
2003-12-14 Karl Berry <karl@gnu.org>
* lib/config.charset: update from gettext-runtime.
2003-12-03 Paul Eggert <eggert@twinsun.com>
* lib/getgroups.c (getgroups): xmalloc takes one argument, not two.
Bug reported by Alfred M. Szmidt.
2003-12-03 Bruno Haible <bruno@clisp.org>
Upgrade from gettext-0.13.
* modules/gettext (Files): Add m4/intmax.m4, m4/longdouble.m4,
m4/longlong.m4, m4/printf-posix.m4, m4/signed.m4, m4/size_max.m4,
m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4.
* m4/gettext.m4: Upgrade from gettext-0.13.
* m4/po.m4: Upgrade from gettext-0.13.
* m4/size_max.m4 (gl_SIZE_MAX): Don't use the _ONCE macros here.
* m4/intmax.m4: New file, from gettext-0.13.
* m4/printf-posix.m4: New file, from gettext-0.13.
2003-11-29 Karl Berry <karl@gnu.org>
* lib/argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc.
2003-11-25 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* lib/printf-parse.h: Don't include sys/types.h.
(ARG_NONE): New macro.
(char_directive): Change type of *arg_index fields to size_t.
* lib/printf-parse.c: Don't include sys/types.h.
(SSIZE_MAX): Remove macro.
(PRINTF_PARSE): Change the type of the arg_index variables to size_t.
Remove unnecessary overflow check.
* lib/vasnprintf.c (VASNPRINTF): Update for type change of *arg_index
fields.
2003-11-25 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf (Files): Remove m4/ssize_t.m4.
2003-11-25 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Don't require
gt_TYPE_SSIZE_T.
2003-11-24 Paul Eggert <eggert@twinsun.com>
* modules/alloca: Remove dependency on xalloc.
2003-11-24 Paul Eggert <eggert@twinsun.com>
* lib/alloca.c: Remove dependency on xalloc module.
(xalloc_die): Remove.
(memory_full) [!defined emacs]: New macro.
[!defined emacs]: Don't include xalloc.h.
(alloca): Invoke memory_full, not xalloc_die, if malloc fails or
address arithmetic overflows. Change datatypes a bit to avoid
unnecessary casts.
2003-11-22 Jim Meyering <jim@meyering.net>
* lib/xmalloc.c (x2nrealloc_inline): Fix typos in comments:
s/size/size_t/.
2003-11-21 Karl Berry <karl@gnu.org>
* config/config.{sub,guess}: update from config.
2003-11-18 Karl Berry <karl@gnu.org>
* config/config.{sub,guess}: update from config.
* config/(printf-{parse,args}.[ch]): sync broken, sigh.
2003-11-17 Paul Eggert <eggert@twinsun.com>
* README: Mention that S+T cannot overflow if S is the size of
an existing object and T is sufficiently small.
2003-11-17 Jim Meyering <jim@meyering.net>
On systems without utime and without a utimes function capable of
dealing with a NULL struct utimbuf* argument, this utime replacement
could -- in unusual circumstances -- leak a file descriptor.
* lib/utime.c: Include <unistd.h> and <errno.h>.
(utime_null): Be sure to close `fd' and to preserve errno.
Reported by Geoff Collyer via Arnold Robbins.
2003-11-17 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf (Files): Add m4/ssize_t.m4.
(Depends-on): Add xsize.
2003-11-17 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Require gt_TYPE_SSIZE_T.
2003-11-17 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (alloca): Remove fallback definition.
(freea): Remove definition.
(VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes.
Reported by Paul Eggert.
2003-11-16 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
Protect against address arithmetic overflow.
* lib/printf-args.h: Include stddef.h.
(arguments): Change type of field 'count' to size_t.
* lib/printf-args.c (printf_fetchargs): Use size_t instead of
'unsigned int' where appropriate.
* lib/printf-parse.h: Include sys/types.h.
(char_directive): Change type of *arg_index fields to ssize_t.
(char_directives): Change type of fields 'count', max_*_length to
size_t.
* lib/printf-parse.c: Include sys/types.h and xsize.h.
(SSIZE_MAX): Define fallback value.
(PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t
instead of 'int' where appropriate. Check a_allocated, d_allocated
against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1.
* lib/vasnprintf.c: Include xsize.h.
(VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate.
Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against
overflow. Avoid wraparound when converting a width or precision from
decimal to binary.
2003-11-16 Bruno Haible <bruno@clisp.org>
Update from GNU gettext.
* lib/printf-parse.c: Generalize to it can be compiled for wide
strings.
(PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros.
* lib/vasnprintf.c: Generalize to it can be compiled for wide strings.
(VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF,
SNPRINTF): New macros.
Don't include <alloca.h> if the file is used inside libintl.
(local_wcslen): New function, for Solaris 2.5.1.
(VASNPRINTF): Use it instead of wcslen.
2003-11-16 Bruno Haible <bruno@clisp.org>
* lib/xsize.h (xmax): New function.
(xsum, xsum3, xsum4): Declare as "pure" functions.
2003-11-12 Paul Eggert <eggert@twinsun.com>
* modules/xalloc (Files): Undo latest change, since xalloc.h
no longer needs SIZE_MAX or PTRDIFF_MAX.
2003-11-12 Paul Eggert <eggert@twinsun.com>
* m4/xalloc.m4 (gl_PREREQ_XALLOC): Do not require gl_SIZE_MAX or
gl_PTRDIFF_MAX.
2003-11-12 Paul Eggert <eggert@twinsun.com>
* lib/xstrtol.c (__xstrtol): Remove "break" immediately after
"return", to pacify some unknown compiler. Problem reported
by Joerg Schilling.
2003-11-12 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h: Do not include <limits.h> or <stdint.h>.
(xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for
the heuristic, rather than PTRDIFF_MAX and SIZE_MAX. This
heuristic is just as accurate as far as we know, and it removes a
dependency on size_max.m4 and ptrdiff_max.m4.
2003-11-11 Bruno Haible <bruno@clisp.org>
* modules/xsize (Files): Add m4/size_max.m4.
* modules/xalloc (Files): Add m4/size_max.m4, m4/ptrdiff_max.m4.
2003-11-11 Bruno Haible <bruno@clisp.org>
* m4/size_max.m4: New file.
* m4/ptrdiff_max.m4: New file.
* m4/xsize,m4 (gl_XSIZE): Require gl_SIZE_MAX.
* m4/xalloc.m4 (gl_PREREQ_XALLOC): New macro.
(gl_XALLOC): Invoke it.
2003-11-11 Bruno Haible <bruno@clisp.org>
* lib/xsize.h (SIZE_MAX): Remove fallback definition.
* lib/xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are
defined.
2003-11-10 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX &&
PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have
rejected some allocations of exactly SIZE_MAX - 2 bytes.
From Bruno Haible.
[defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX,
not (size_t) -1, since it's defined here.
2003-11-09 Karl Berry <karl@gnu.org>
* config/mkinstalldirs, depcomp, mdate-sh: update from automake.
2003-11-06 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h [HAVE_STDINT_H]: Include <stdint.h>.
(xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]:
Reject sizes of exactly SIZE_MAX bytes.
* lib/xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX
is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts.
2003-11-05 Bruno Haible <bruno@clisp.org>
* lib/xsize.h: Include limits.h, to avoid a possible collision with
SIZE_MAX defined in <limits.h> on Solaris.
2003-11-04 Jim Meyering <jim@meyering.net>
* modules/sysexits: Use the `$(VAR)' notation for AC_SUBST'd
variable names, rather than @VAR@.
* modules/poll: Likewise.
2003-11-04 Bruno Haible <bruno@clisp.org>
* modules/xsize: New file.
* modules/linebreak: Depend on xsize.
* MODULES.html.sh (func_all_modules): Add xsize.
2003-11-04 Bruno Haible <bruno@clisp.org>
* m4/xsize.m4: New file.
2003-11-04 Bruno Haible <bruno@clisp.org>
* lib/xsize.h: New file.
* lib/linebreak.c: Include xsize.h.
(mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc()
argument for overflow.
Suggested by Paul Eggert.
2003-11-03 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from config.
2003-11-03 Jim Meyering <jim@meyering.net>
* modules/userspec (lib_SOURCES): Add userspec.h.
(Include): Add "userspec.h".
Improve description.
2003-11-03 Jim Meyering <jim@meyering.net>
* lib/userspec.c: Include "userspec.h".
* lib/userspec.h: New file.
2003-11-03 Bruno Haible <bruno@clisp.org>
* m4/wait-process.m4 (gl_WAIT_PROCESS): Also check for waitid.
2003-11-03 Bruno Haible <bruno@clisp.org>
* lib/wait-process.c (wait_process): Use waitid with WNOWAIT if
available, to avoid (extremely rare) race condition.
Suggested by Paul Eggert.
2003-11-02 Karl Berry <karl@gnu.org>
* config/srclist.txt (vasprintf.c): sync broken, sigh.
2003-10-31 Paul Eggert <eggert@twinsun.com>
* lib/mountlist.h (struct mount_entry.me_type_malloced): New member.
* lib/mountlist.c (SIZE_MAX): Define if not defined already.
(read_filesystem_list): Set and use me_type_malloced.
Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or
whatever the type happens to be), for brevity and consistency.
Check for size calculation overflow on Alphas running OSF/1.
2003-10-31 Jim Meyering <jim@meyering.net>
* lib/hash.c: Include "xalloc.h" for use of xalloc_oversized.
* lib/linebuffer.c: Include <string.h> for declaration of memset.
2003-10-30 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* lib/vasprintf.c: Include <limits.h>, <stdlib.h>.
(vasprintf): Fail if the resulting length doesn't fit in an 'int'.
2003-10-30 Paul Eggert <eggert@cs.ucla.edu>
* m4/host-os.m4 (UTILS_HOST_OS): Change netbsd*-gnu pattern back to
netbsd*-gnu*. Suggested by Robert Millan.
2003-10-29 Paul Eggert <eggert@twinsun.com>
* modules/group-member: Depend on stdbool.
2003-10-29 Paul Eggert <eggert@twinsun.com>
* m4/xalloc.m4 (gl_XALLOC): Undo previous change.
2003-10-29 Paul Eggert <eggert@twinsun.com>
* m4/host-os.m4 (UTILS_HOST_OS): Resurrect netbsd*-gnu. Add comments
to it, and to knetbsd*-gnu and kfreebsd*-gnu. Remove the '*' from
after the 'gnu' in these cases. This fixes some bugs in the
previous change, and is based on suggestions by Robert Millan.
2003-10-29 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h (xalloc_oversized): Now a macro, not a function,
so that it works even if SIZE_MAX < N. Do not include <stdbool.h>;
no longer needed.
* lib/quotearg.c (quotearg_n_options): Use it.
* lib/group-member.c: Include <stdbool.h>.
(free_group_info): Arg is now const *; don't free arg.
(get_group_info): Now returns bool and accepts struct group_info *,
rather than returning a malloc'ed struct group_info *.
All uses changed. Check for overflow in internal size calculation.
* lib/getusershell.c (readname): Simplify the code by using x2nrealloc
rather than xmalloc/xrealloc.
* lib/linebuffer.c (initbuffer, readlinebuffer): Simplify the code by
using x2realloc rather than xmalloc/xrealloc. Also, fix a C
conformance bug: the old code used a pointer after freeing the
storage that it addressed.
* lib/hash.c (hash_initialize): Simplify the code by using
xalloc_oversized rather than doing it by hand.
* lib/getgroups.c (getgroups): Don't use xrealloc, since we don't need
the buffer preserved. Use free and xmalloc instead.
* lib/quotearg.c (quotearg_n_options): Likewise.
Use a simpler test for size overflow. Don't use xalloc_oversized
because unsigned int might be wider than size_t (!); this suggests
that we should switch from unsigned int to size_t for slot numbers.
2003-10-28 Paul Eggert <eggert@twinsun.com>
* m4/host-os.m4 (UTILS_HOST_OS): Identify GNU/KFreeBSD and
GNU/KNetBSD. These implementations use glibc atop the FreeBSD and
NetBSD kernels. Requested by Richard Stallman.
2003-10-27 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c (new_exclude): Use xzalloc rather than xmalloc
to allocate the returned structure. Do not allocate a subarray,
as x2nrealloc will do that.
(add_exclude): Use x2nrealloc to reallocate ex->exclude,
instead of xnrealloc.
(add_exclude_file): Use x2realloc instead of malloc + xnrealloc.
2003-10-27 Bruno Haible <bruno@clisp.org>
* lib/stdbool_.h: Better support for BeOS.
2003-10-26 Paul Eggert <eggert@twinsun.com>
* m4/xalloc.m4 (gl_XALLOC): Requore AC_C_INLINE, since xalloc.h
now uses inline.
2003-10-26 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h (xalloc_oversized): New static inline function, for
callers that want to do their own size-overflow checking. Include
<stdbool.h>, since xalloc_oversized returns bool.
* lib/xalloc.c (array_size_overflow): Remove. All callers changed
to use xalloc_oversized.
Add two functions x2realloc, x2nrealloc, for programs that grow
arrays dynamically by doubling their sizes.
* lib/xalloc.h (x2realloc, x2nrealloc): New decls.
* lib/xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc):
New functions.
Port to C99 semantics for 'inline' of external functions.
Bug reported by Bruno Haible.
* lib/xmalloc.c (xnmalloc_inline): New static inline function,
with the old contents of xnmalloc.
(xnmalloc, xmalloc): Use it.
(xnrealloc_inline): New static inline function,
with the old contents of xnrealloc.
(xnrealloc, xrealloc): Use it.
* lib/alloc.c (alloca): xmalloc cannot return NULL, so don't test for
that.
2003-10-26 Karl Berry <karl@gnu.org>
* config/srclist.txt (COPYING.DOC): no longer available from
/gd/gnuorg; don't know where the ultimate source is.
2003-10-25 Paul Eggert <eggert@twinsun.com>
Fix several address-calculation bugs in the hash modules,
plus some minor code cleanup.
* lib/hash.h: Include <stdbool.h>, for bool.
* lib/hash.c: Don't include <stdbool.h>, since hash.h does it now.
* lib/hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used,
hash_get_n_entries, hash_get_max_bucket_length,
hash_get_entries, hash_do_for_each, hash_string, hash_initialize,
hash_rehash): Use size_t rather than unsigned.
* lib/hash.c (struct hash_table, hash_get_n_buckets,
hash_get_n_buckets_used, hash_get_n_entries,
hash_get_max_bucket_length, hash_table_ok, hash_print_statistics,
hash_get_entries, hash_do_for_each, hash_string, is_prime,
next_prime, hash_initialize, hash_rehash, hash_delete, hash_print):
Likewise.
(SIZE_MAX): Define if not defined.
(hash_get_max_bucket_length, hash_table_ok, hash_lookup,
hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each,
hash_print):
Use const * when possible.
(hash_string): Use (unsigned char) *P rather than *(unsigned char *) P.
(check_tuning): Fix bug: if tuning parameters were very close to
0 or 1, rounding errors could have caused subscript violations.
(hash_initialize, allocate_entry, hash_print): Remove unnecessary cast.
(hash_initialize): Add 'fail:' label
to free table and return NULL, and use it to simplify code.
Use calloc rather than clearing the storage ourself.
(hash_initialize, hash_rehash): Check for arithmetic overflow in
buffer size calculations.
* lib/hash-pjw.h (hash_pjw): Use size_t, not unsigned.
Include <stddef.h>, for size_t.
* lib/hash-pjw.c (hash_pjw): Likewise.
Switch to method described by Bruno Haible.
Include <limits.h>, for CHAR_BIT.
(SIZE_BITS): New macro.
2003-10-23 Paul Eggert <eggert@twinsun.com>
* m4/getline.m4 (AM_FUNC_GETLINE):
Don't include getndelim2.o twice into LIBOBJS; this breaks on some
hosts. Problem reported by Derek Robert Price in
<http://mail.gnu.org/r/bug-gnulib/2003-10/msg00092.html>.
This patch can be withdrawn after Autoconf 2.58 is required for gnulib.
* m4/getndelim2.m4 (gl_GETNDELIM2): Likewise.
2003-10-21 Paul Eggert <eggert@twinsun.com>
* lib/getndelim2.c (getndelim2): When size calculation overflows,
ceiling the allocation at NMAX bytes rather than silently
discarding input bytes before NMAX is reached. This makes
a difference only if NMAX exceeds SIZE_MAX / 2.
* lib/obstack.c: Merge from glibc.
[defined _LIBC]: Include <obstack.h>, not "obstack.h".
Add libc_hidden_def (_obstack_newchunk).
(_obstack_free) [! defined _LIBC]: Remove.
[defined _LIBC]: Make a strong alias from obstack_free, rather than
a clone of the function body.
(fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove.
[defined _LIBC && !defined USE_IN_LIBIO]: Include <libio/iolibio.h>.
* lib/obstack.h: Indenting cleanup, to make it easier to merge with
glibc.
(obstack_grow, obstack_grow0): Remove unnecessary parentheses around
arg to memcpy.
* lib/obstack.h (obstack_1grow_fast): Properly parenthesize arg.
(obstack_ptr_grow_fast, obstack_int_grow_fast):
Don't use lvalue casts, as GCC plans to remove support for them
in GCC 3.5. Reported by Joseph S. Myers. This bug
was also present in the non-GCC version, indicating that this
code had always been buggy and had never been widely used.
(obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank):
Use the fast variant of each macro, rather than copying the
definiens of the fast variant; that way, we'll be more likely to
catch future bugs in the fast variants.
2003-10-20 Bruno Haible <bruno@clisp.org>
* modules/wait-process: New file.
* MODULES.html.sh (func_all_modules): Add wait-process.
2003-10-20 Bruno Haible <bruno@clisp.org>
* m4/wait-process.m4: New file.
2003-10-20 Bruno Haible <bruno@clisp.org>
* lib/wait-process.h: New file, from GNU gettext.
* lib/wait-process.c: New file, from GNU gettext.
2003-10-19 Jim Meyering <jim@meyering.net>
* lib/vasnprintf.c (vasnprintf): Work around losing snprintf on
HPUX 10.20.
2003-10-18 Karl Berry <karl@gnu.org>
* config/config.guess: update from config.
2003-10-16 Paul Eggert <eggert@twinsun.com>
* lib/getgroups.c: Include <errno.h>, <stdlib.h>.
(getgroups): First arg is int, not size_t.
Don't let 'free' mangle errno.
2003-10-16 Paul Eggert <eggert@twinsun.com>
* README: Mention that gnulib assumes that (foo *) NULL + 0 == NULL.
2003-10-16 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from config.
2003-10-16 Jim Meyering <jim@meyering.net>
* lib/xmalloc.c: Include <string.h>, for declarations of memset and
memcpy.
2003-10-15 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c: Do not include <inttypes.h> or <stdint.h>.
(SIZE_MAX): Remove.
(new_exclude, add_exclude_file): Initial size no longer needs to
be a power of 2.
(add_exclude, add_exclude_file): Use xnrealloc instead of rolling
our own address arithmetic overflow checking.
* lib/fnmatch.c (SIZE_MAX): Define if standard headers don't.
(fnmatch): Do not alloca more than 2000 wide characters;
instead, use malloc for large buffers.
Check for address arithmetic overflow, and return -1
with errno set to ENOMEM in that case.
* lib/fnmatch_loop.c (ALLOCA_LIMIT): New macro.
(NEW_PATTERN): Do not alloca more than 8000 bytes;
instead, return -1. Check for address arithmetic overflow.
2003-10-14 Paul Eggert <eggert@twinsun.com>
Handle invalid suffixes and overflow independently, so that
callers can treat them independently as needed. Fix some bugs in
suffix handling, e.g., "100k@" was not diagnosed as an invalid
suffix for a human-readable blocksize. The major caller-visible
change is the addition of a new
LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating
that both overflow and suffix chars were found.
* lib/human.c (humblock): Don't check separately for invalid suffix
char; that is xstrtoumax's job (now that its bug is fixed).
* lib/xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined
INTMAX_MAX]: New macros.
* lib/xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM,
TYPE_MAXIMUM): New macros.
(bkm_scale, bkm_scale_by_power): Return strtol_error, not int.
(bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values
if overflow occurs, as it's what __strtol does and it's more useful
in practice.
(__xstrtol): If __strtol reports some error other than ERANGE,
reflect it to the caller as LONGINT_INVALID. If it reports
ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW
| LONGINT_INVALID_SUFFIX_CHAR if both errors occur.
* lib/xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum
value.
(_STRTOL_ERROR): Handle it. Abort when given unknown error codes.
* lib/xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros.
* lib/xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM)
[defined UINTMAX_MAX]: New macros.
2003-10-14 Bruno Haible <bruno@clisp.org>
* modules/fatal-signal: Add m4/sig_atomic_t.m4 to file list.
2003-10-14 Bruno Haible <bruno@clisp.org>
* m4/sig_atomic_t: New file, from GNU gettext.
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Require gt_TYPE_SIG_ATOMIC_T.
2003-10-14 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.h: Improved comments. Suggested by Paul Eggert.
* lib/fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert.
Also use volatile where needed.
2003-10-12 Paul Eggert <eggert@twinsun.com>
* modules/xalloc: Do not depend on 'exit'. Depend on 'stdbool'.
Change maintainer from Bruno Haible to 'all'.
2003-10-12 Paul Eggert <eggert@twinsun.com>
* m4/xalloc.m4 (gl_PREREQ_XMALLOC): Require AC_C_INLINE.
2003-10-12 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls.
(XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate,
and define in terms of the other primitives.
* lib/xmalloc.c: Include stdbool.h; do not include exit.h.
(SIZE_MAX): Define if not already defined.
(array_size_overflow): New function.
(xalloc_die): Abort instead of exiting if 'error' returns.
(xnmalloc, xnrealloc, xzalloc, xclone): New functions.
(xmalloc, xrealloc): Use them.
(xcalloc): Check for address arithmetic overflow.
* lib/xstrdup.c (xstrdup): Use xclone, since memcpy should be
a bit faster than strcpy.
2003-10-10 Simon Josefsson <jas@extundo.com>
* modules/argp (Depends-on): Add restrict and strcase.
2003-10-10 Simon Josefsson <jas@extundo.com>
* m4/argp.m4: Add AC_C_INLINE.
2003-10-08 Paul Eggert <eggert@twinsun.com>
Merge getpass from libc, plus a few fixes.
* lib/getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1.
Include <stdbool.h>.
Include <stdio_ext.h> if HAVE_STDIO_H, otherwise define
__fsetlocking to empty.
[_LIBC]: Do not include "getline.h" or "unlocked-io.h", but
do include <bits/libc-lock.h>.
Do not include <fcntl.h>; not needed.
[_LIBC]: Include <wchar.h>.
(NOTCANCEL_MODE): New macro.
(flockfile, funlockfile) [_LIBC]: New macros.
(__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr)
[!_LIBC]: New macros.
(call_fclose): New function.
(getpass): Use it. Save tty stream separately; this simplifies the
code and makes it more reliable if stdin happens to equal stdout.
Invoke __fsetlocking on tty.
Handle thread cancellation if needed.
Namespace cleanup (use __tcgetattr, __getline).
Use bool for Booleans.
[USE_IN_LIBIO]: Handle wide streams.
[!_LIBC]: Unconditionally do the fseek, since we don't know what
stream might go where.
* lib/unlocked-io.h: Include <stdio.h>, so that the caller
doesn't have to include <stdio.h> before us.
(clearerr_unlocked, feof_unlocked, ferror_unlocked,
fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked,
fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
putc_unlocked, putchar_unlocked): Define to the unlocked counterpart
if not declared, so that we can use getpass.c code from libc without
rewriting it.
(flockfile, ftrylockfile, funlockfile): New macros.
2003-10-08 Paul Eggert <eggert@twinsun.com>
* modules/getpass: Depend on stdbool.
2003-10-08 Paul Eggert <eggert@twinsun.com>
* m4/getpass.m4 (gl_PREREQ_GETPASS): Check for stdio_ext.h.
2003-10-07 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from config.
2003-10-06 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org>
This lets translators provide better translations for the
"Written by ..." part of --version output.
* lib/version-etc.h: Include stdarg.h.
(version_etc_copyright): Declare as readonly.
(version_etc): Make this function variadic with a NULL-terminated list
of author name strings.
(version_etc_va): New declaration.
* lib/version-etc.c: Include stdarg.h, stdlib.h.
(version_etc_copyright): Declare as readonly.
(version_etc_va): New function. Provide a different translatable string
for each possible number of authors < 10. Abbreviate when there are 10
authors or more.
(version_etc): Make this function variadic. Call version_etc_va.
Suggestion from Gary V. Vaughan.
* lib/long-options.h (parse_long_options): Change prototype: the
authors string is moved to the end and becomes variadic.
* lib/long-options.c: Include stdarg.h.
(parse_long_options): Make this function variadic, too.
Call version_etc_va, not version_etc.
2003-10-06 Bruno Haible <bruno@clisp.org>
* modules/version-etc-2: Remove file.
* MODULES.html.sh (func_all_modules): Remove version-etc-2.
2003-10-06 Bruno Haible <bruno@clisp.org>
* modules/fatal-signal: New file.
* MODULES.html.sh (func_all_modules): Add fatal-signal.
2003-10-06 Bruno Haible <bruno@clisp.org>
* m4/fatal-signal.m4: New file.
* m4/signalblocking.m4: New file, from GNU gettext.
2003-10-06 Bruno Haible <bruno@clisp.org>
* lib/version-etc-2.h: Remove file.
* lib/version-etc-2.c: Remove file.
2003-10-06 Bruno Haible <bruno@clisp.org>
* lib/fatal-signal.h: New file, from GNU gettext.
* lib/fatal-signal.c: New file, from GNU gettext.
2003-10-05 Paul Eggert <eggert@twinsun.com>
* README: Rework advice for preventing empty .o files.
Don't recommend ELIDE constructs. Recommend <stddef.h>,
not <sys/types.h>.
2003-10-04 Karl Berry <karl@gnu.org>
* lib/argp*: update from libc.
2003-10-04 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from config.
2003-10-02 Bruno Haible <bruno@clisp.org>
* modules/lchown (Include): Add lchown.h.
* modules/time_r (Include): Use "..." syntax.
* modules/xgetdomainname (Include): Add xgetdomainname.h.
2003-10-01 Simon Josefsson <jas@extundo.com>
* MODULES.html.sh (func_all_modules): Move gethostname from section
'based on' to section 'lacking' POSIX:2001.
2003-10-01 Larry Jones <lawrence.jones@eds.com>
* lib/getpass.c (getpass): Use a no-op fseek when switching from input
to output mode on the same stream.
2003-09-29 Paul Eggert <eggert@twinsun.com>
* lib/strftime.c (tm_diff) [! HAVE_TM_GMTOFF]:
Fix arg typo in previous patch.
2003-09-28 Jim Meyering <jim@meyering.net>
* lib/error.c: Correct cpp indentation.
2003-09-27 Paul Eggert <eggert@twinsun.com>
* modules/free: New file.
2003-09-27 Paul Eggert <eggert@twinsun.com>
* m4/free.m4: New file.
2003-09-27 Paul Eggert <eggert@twinsun.com>
* lib/minmax.h (MIN, MAX)
[__STDC__ && defined __GNUC__ && __GNUC__ >= 2]:
Omit the special code that used __typeof__, since we worry that
it could be more trouble than it's worth. See:
http://mail.gnu.org/r/bug-gnulib/2003-01/msg00090.html
http://mail.gnu.org/r/bug-gnulib/2003-01/msg00095.html
* lib/free.c: New file.
2003-09-27 Oskar Liljeblad <oskar@osk.mine.nu>
Trivial fixes to Makefile.am parts of module listings.
* modules/strstr: Append strstr.h to lib_SOURCES.
* modules/strcase: Likewise, for strcase.h.
2003-09-27 Karl Berry <karl@gnu.org>
* config/mkinstalldirs: update from automake.
2003-09-26 Paul Eggert <eggert@twinsun.com>
* lib/error.c (SIZE_MAX) [!defined SIZE_MAX]: Define.
(error_tail): Do not loop, reallocating temporary buffer, since
the output cannot contain more wide characters than the input
contains bytes, the size must be big enough already. This avoids
one potential size overflow calculation. Check for size overflow
when calculating temporary buffer size. Free temporary buffer
when done, if it was allocated with malloc; this plugs a memory
leak. Remove casts from void * to pointers, that are no longer
needed now that we're assuming C89 or better.
Merge error changes from glibc.
* lib/error.c, error.h: Update copyright notice header to match glibc.
* lib/error.c [defined _LIBC]: Include <errno.h>, <bits/libc-lock.h>.
(error, error_at_line) [defined _LIBC && defined __libc_ptf_call]:
Disable cancellation while printing error.
* lib/error.h: Prepend __ to parameter names.
2003-09-26 Jim Meyering <jim@meyering.net>
* lib/error.c (error_tail): Move some declarations
into inner scope where the local variables are used.
2003-09-26 Bruno Haible <bruno@clisp.org>
* m4/stpncpy.m4 (gl_FUNC_STPNCPY): Add comments about the AIX
stpncpy().
Don't define stpncpy through config.h; it's now done through stpncpy.h.
2003-09-26 Bruno Haible <bruno@clisp.org>
* lib/stpncpy.h (gnu_stpncpy): New declaration.
(stpncpy): Define as alias for gnu_stpncpy.
* lib/stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy.
2003-09-25 Simon Josefsson <jas@extundo.com>
* lib/xgetdomainname.h: New file.
* lib/xgetdomainname.c: New file.
2003-09-25 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* modules/getdomainname: New file.
* modules/xgetdomainname: New file.
* MODULES.html.sh (func_all_modules): Add getdomainname,
xgetdomainname.
2003-09-25 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* m4/getdomainname.m4: New file.
2003-09-25 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* lib/getdomainname.h: New file.
* lib/getdomainname.c: New file.
2003-09-25 Karl Berry <karl@gnu.org>
* lib/argp-fmtstream.c, argp-help.c: update from libc.
2003-09-25 Karl Berry <karl@gnu.org>
* config/install-sh: update from automake.
2003-09-25 Bruno Haible <bruno@clisp.org>
* modules/version-etc-2: New file, from modules/version-etc with
modifications.
* MODULES.html.sh (func_all_modules): Add version-etc-2.
2003-09-25 Bruno Haible <bruno@clisp.org>
* lib/version-etc-2.h: New file, from version-etc.h with modifications.
* lib/version-etc-2.c: New file, from version-etc.c with modifications.
2003-09-24 Simon Josefsson <jas@extundo.com>
* modules/xgethostname: Add xgethostname.h.
2003-09-24 Paul Eggert <eggert@twinsun.com>
* lib/linebuffer.c (freebuffer): Don't free the argument, just
the buffer associated with the argument. Bug reported by
Simon Josefsson.
2003-09-24 Paul Eggert <eggert@twinsun.com>
* README: Document assumptions that 'int' is at least 32 bits
wide, that integer arithmetic is 2's complement without overflow,
that there are no holes in integer values, that adding sizes of
two nonoverlapping objects can't overflow, and that all-bits-zero
yields scalar zero. Fix spelling and capitalization typos.
2003-09-19 Karl Berry <karl@gnu.org>
* lib/argp.h: update from libc.
2003-09-17 Paul Eggert <eggert@twinsun.com>
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Call AC_BEFORE first,
to avoid spurious warnings like "AC_RUN_IFELSE was called before
gl_USE_SYSTEM_EXTENSIONS" from autoreconf.
2003-09-17 Paul Eggert <eggert@twinsun.com>
* gnulib-tool: Use "test -h", not "test -L", for portability
to Solaris 8 /bin/sh. (This bug is fixed in Solaris 9.)
(tags_regexp): Remove, since \| doesn't conform to POSIX.
(sed_extract_prog): Issue s commands one-by-one, rather than
using \| in one s command.
2003-09-16 Paul Eggert <eggert@twinsun.com>
* lib/linebuffer.c (readlinebuffer): Return NULL immediately upon
input error, instead of returning NULL the next time we are called
(and therefore losing track of errno).
2003-09-16 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Warn about duplicated
dependencies.
2003-09-15 Paul Eggert <eggert@twinsun.com>
* modules/argmatch, modules/fatal, modules/obstack,
modules/xalloc, modules/xgethostname: Sort dependencies by
importance, not alphabetically.
2003-09-15 Paul Eggert <eggert@twinsun.com>
* lib/getndelim2.c (getndelim2): Don't trash errno when a read
fails, so that the caller gets the proper errno.
* lib/readutmp.c (read_utmp): Likewise.
Check for fstat error. Close stream and free storage
when failing.
2003-09-14 Karl Berry <karl@gnu.org>
* config/srclist.txt (strdup.c): disable for c89 changes.
2003-09-14 Jim Meyering <jim@meyering.net>
* lib/getloadavg.c: Correct cpp indentation.
* lib/strdup.c: Likewise.
* lib/vasnprintf.c: Likewise.
2003-09-14 Bruno Haible <bruno@clisp.org>
* modules/fwriteerror: New file.
* MODULES.html.sh (func_all_modules): Add fwriteerror.
2003-09-14 Bruno Haible <bruno@clisp.org>
* lib/fwriteerror.h: New file.
* lib/fwriteerror.c: New file.
2003-09-12 Paul Eggert <eggert@twinsun.com>
* modules/argmatch, modules/exitfail, modules/fatal, modules/obstack,
modules/xgethostname, modules/xalloc: Depend on exit.
2003-09-12 Paul Eggert <eggert@twinsun.com>
* m4/error.m4: Require AC_FUNC_STRERROR_R rather than invoking it.
* m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_AIX
and AC_MINIX, too, so that their extensions are available.
* m4/prereq.m4 (jm_PREREQ_ADDEXT): Remove. All uses removed.
This macro has been superseded by gl_BACKUPFILE.
More patches to assume C89 or better.
* m4/error.m4 (gl_ERROR): Don't check for vprintf.
* m4/check-decl.m4 (jm_CHECK_DECLS): Include <string.h>, <stdlib.h>
unconditionally.
* m4/closeout.m4 (gl_CLOSEOUT): Don't check for stdlib.h.
* m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER):
Include <string.h>, <stdlib.h> unconditionally.
* m4/lstat.m4 (gl_PREREQ_LSTAT): Don't check for stdlib.h, free.
* m4/readdir.m4 (GL_FUNC_READDIR): Don't check for string.h.
* m4/readutmp.m4 (gl_PREREQ_READUTMP): Don't check for standard C
headers or for string.h.
* m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't check for stdlib.h
or strtoul.
* m4/mkstemp.m4 (jm_PREREQ_TEMPNAME): Do not require standard C
headers.
* m4/strdup.m4 (gl_PREREQ_STRDUP): Likewise.
* m4/userspec.m4 (gl_USERSPEC): Likewise.
* m4/xalloc.m4 (gl_PREREQ_XMALLOC): Likewise.
* m4/xstrtod.m4 (gl_XSTRTOD): Likewise.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise.
* m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't check for limits.h,
memcpy, memset.
(jm_FUNC_GNU_STRFTIME): Don't require standard C headers.
* m4/strtod.m4 (gl_FUNC_STRTOD): Do not check for float.h.
* m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Do not check for stdlib.h,
strtol.
* m4/strtol.m4 (gl_FUNC_STRTOL): Do not check for limits.h.
* m4/userspec.m4 (gl_USERSPEC): Do not check for string.h.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Do not check for string.h, strtol,
strtoul.
2003-09-12 Paul Eggert <eggert@twinsun.com>
* lib/argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h.
* lib/obstack.c [!defined _LIBC]: Likewise.
* lib/argmatch.c (EXIT_FAILURE): Remove; now done by exit.h
* lib/exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise.
* lib/exitfail.c: Don't include stdlib.h; no longer needed.
More changes to assume C89 or better.
* lib/error.c (error_tail): Assume vprintf.
* lib/argmatch.c (getenv): Remove decl.
* lib/progreloc.c (get_full_program_name): Define via prototype.
* lib/setenv.c (clearenv): Likewise.
* lib/stpncpy.c: Do not include <string.h> or <sys/types.h>; not
needed.
* lib/strdup.c: Include <stdlib.h>, <string.h> unconditionally.
(malloc, memcpy): Remove decls.
* lib/strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove.
(HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove.
Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
(memcpy): Remove macro.
(MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally.
(__P): Remove. All uses removed.
(PTR): Remove. All uses changed to void *.
(CHAR_BIT, NULL): Remove.
(spaces, zeros, memset_space, memset_zero)
[!defined memset && !defined HAVE_MEMSET && !defined _LIBC]:
Remove.
(LOCALE_PARAM, LOCALE_PARAM_DECL): Remove.
(memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days):
Define with prototype.
Remove now-unnecessary prototype decl.
(extra_args_spec): Assume ANSI C. All uses changed.
(extra_args_spec_iso): Remove.
(my_strftime, emacs_strftimeu): Define via prototype.
* lib/strtod.c: Include <float.h>, <stdlib.h>, <string.h>
unconditionally.
(DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls.
* lib/strtoimax.c: Include <stdlib.h> unconditionally.
(strtoul, strtol): Remove decls.
* lib/strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX,
LONG_MAX): Remove.
Include <limits.h>, <stddef.h>, <stdlib.h>, <string.h> unconditionally.
(LOCALE_PARAM_DECL): Remove. All uses changed to LOCALE_PARAM_PROTO.
(LOCALE_PARAM_PROTO): New macro.
(INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R.
(INTERNAL (strtol), strtol): Define with a prototype.
(PARAMS): Remove. All uses removed.
* lib/tempname.c: Include <string.h> unconditionally.
* lib/userspec.c: Include <stdlib.h>, <string.h> unconditionally.
* lib/xgethostname.c (main): Define with a prototype.
* lib/xmalloc.c: Include "xalloc.h" first, to check interface.
Include <stdlib.h> unconditionally.
(calloc, malloc, realloc, free): Remove decls.
* lib/xstrtod.c: Include "xstrtod.h" first, to check interface.
Include <stdlib.h> unconditionally. Sort include file names.
(strtod): Remove.
(xstrtod): Define with a prototype.
* lib/xstrtol.c: Include <stdlib.h>, <string.h> unconditionally.
(strtol, strtoul): Remove decls.
2003-09-11 Paul Eggert <eggert@twinsun.com>
More patches to assume C89 or better.
* m4/strndup.m4 (gl_PREREQ_STRNDUP): Remove STDC_HEADERS check.
* m4/strnlen.m4 (gl_PREREQ_STRNLEN): Don't check for memory.h,
string.h, memchr, STDC_HEADERS.
2003-09-11 Paul Eggert <eggert@twinsun.com>
* lib/strndup.c: Don't include <stdio.h>, <sys/types.h>.
Include <stdlib.h>, <string.h> unconditionally.
Remove now-unnecessary cast to char *.
* lib/strnlen.c: Include <string.h> unconditionally.
* lib/yesno.c (yesno): Define with a prototype.
2003-09-11 Bruno Haible <bruno@clisp.org>
* config/srclist.txt (setenv.c, unsetenv.c): Disable for the moment.
2003-09-10 Jim Meyering <jim@meyering.net>
* lib/error.c: Correct indentation of cpp directives.
2003-09-10 Bruno Haible <bruno@clisp.org>
* m4/strcspn.m4 (gl_PREREQ_STRCSPN): Remove <string.h> check.
* m4/strpbrk.m4 (gl_PREREQ_STRPBRK): Remove <string.h> check.
* m4/strstr.m4 (gl_PREREQ_STRSTR): Remove <string.h> check.
* m4/unicodeio.m4 (gl_UNICODEIO): Remove <string.h> check.
* m4/setenv.m4 (gl_PREREQ_SETENV, gl_PREREQ_UNSETENV): Remove
<stdlib.h> and <string.h> checks.
* m4/xreadlink.m4 (gl_XREADLINK): Remove <stdlib.h> check.
* m4/yesno.m4 (gl_YESNO): Remove <stdlib.h> check.
2003-09-10 Bruno Haible <bruno@clisp.org>
* lib/strcspn.c: Include <string.h> unconditionally.
* lib/strpbrk.c: Include <string.h> unconditionally.
* lib/strstr.c: Include <string.h> unconditionally.
* lib/unicodeio.c: Include <string.h> unconditionally.
* lib/setenv.c: Include <stdlib.h> and <string.h> unconditionally.
* lib/unsetenv.c: Likewise.
* lib/xreadlink.c: Include <stdlib.h> unconditionally.
* lib/yesno.c: Include <stdlib.h> unconditionally.
(rpmatch): Add prototype.
2003-09-09 Paul Eggert <eggert@twinsun.com>
More patches to assume C89 or better.
* m4/getcwd.m4 (AC_FUNC_GETCWD_NULL): Don't check for stdlib.h.
* m4/getopt.m4 (gl_GETOPT): Don't check for string.h.
* m4/getugroups.m4 (gl_GETUGROUPS): Do not check for standard C headers
or for string.h.
* m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Do not check for
stdlib.h.
* m4/group-member.m4 (gl_PREREQ_GROUP_MEMBER): Do not require standard
C headers.
* m4/hard-locale.m4 (gl_HARD_LOCALE): Do not check for stdlib.h,
string.h.
* m4/hash.m4 (gl_HASH): Do not check for stdlib.h, malloc, free.
* m4/human.m4 (gl_HUMAN): Do not check for stdlib.h, string.h, getenv.
* m4/idcache.m4 (gl_IDCACHE): Do not check for standard C headers,
or for string.h.
* m4/long-options.m4 (gl_LONG_OPTIONS): Do not check for stdlib.h.
* m4/makepath.m4 (gl_MAKEPATH): Do not check for string.h or standard
C headers.
* m4/md5.m4 (gl_MD5): Don't check for limits.h, standard C headers,
memcpy.
* m4/sha.m4 (gl_SHA): Don't check for standard Cheaders, memcpy.
* m4/memchr.m4 (jm_PREREQ_MEMCHR): Don't check for limits.h, stdlib.h.
* m4/memcmp.m4 (gl_PREREQ_MEMCMP): Don't check for string.h.
* m4/memcoll.m4 (gl_MEMCOLL): Likewise.
* m4/memrchr.c (gl_PREREQ_MEMRCHR): Don't check for limits.h.
* m4/mkdir-slash.m4 (gl_PREREQ_MKDIR): Don't check for stdlib.h,
string.h, free.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Don't check for standard C headers.
* m4/modechange.m4 (gl_MODECHANGE): Don't check for standard C headers.
* m4/mountlist.m4 (gl_PREREQ_MOUNTLIST_EXTRA): Don't check for standard
C headers, or for string.h.
* m4/obstack.m4 (gl_OBSTACK): Don't check for stddefe.h, string.h.
(gl_PREREQ_OBSTACK): Don't check for stdlib.h.
* m4/path-concat.m4 (gl_PATH_CONCAT): Don't check for standard C
headers, memory.h, stdlib.h, string.h, strings.h.
* m4/posixtm.m4 (gl_POSIXTM): Don't check for stdlib.h, string.h.
* m4/posixver.m4 (gl_POSIXVER): Don't check for getenv.
* m4/putenv.m4 (gl_PREREQ_PUTENV): Don't check for string.h, memcpy,
strchr.
* m4/readtokens.m4 (gl_READTOKENS): Don't check for standard C
headers, memory.h, string.h.
* m4/regex.m4 (jm_PREREQ_REGEX): Do not check for limits.h, string.h.
* m4/rename.m4 (gl_PREREQ_RENAME): Do not check for stdlib.h, string.h,
free.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Don't check for standard C
headers.
* m4/same.m4 (gl_SAME): Don't check for stdlib.h, string.h, free.
* m4/save-cwd.m4 (gl_SAVE_CWD): Don't check for standard C headers.
* m4/savedir.m4 (gl_SAVEDIR): Don't check for standard C headers.
* m4/strchrnul.m4 (gl_PREREQ_STRCHRNUL): Don't check for string.h.
* m4/xgetcwd.m4 (gl_XGETCWD): Don't check for stdlib.h.
2003-09-09 Paul Eggert <eggert@twinsun.com>
More K&R removal.
* lib/acosl.c (main): Use a prototype.
* lib/asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c,
tanl.c: Likewise.
* lib/getloadavg.c (getloadavg, main): Define via prototypes.
* lib/getopt.h (struct option.name): Assume C89, and use 'const'.
(getopt, etopt_long, getopt_long_only, _getopt_internal)
[defined __GNU_LIBRARY__]: Assume C89, so we can always declare
with a prototype.
* lib/getopt.c (const): Remove macro.
Include <string.h> unconditionally.
(my_index): Remove; all uses changed to strchr.
(strlen): Remove decl.
(exchange): Remove forward decl; no longer needed.
(exchange, _getopt_initialize, _getopt_internal, getopt, main):
Define with prototype.
* lib/getopt1.c (const): Remove macro.
(getopt_long, getopt_long_only, main): Define with prototype.
* lib/getugroups.c: Include <string.h> unconditionally.
* lib/getusershell.c: Include <stdlib.h> unconditionally.
(getusershell, setusershell, endusershell, readname, main):
Define with prototypes.
* lib/group-member.c: Include group-member.h first.
Include <stdlib.h> unconditionally.
* lib/hard-locale.c: Include hard-locale.h first.
Include <stdlib.h>, <string.h> unconditionally.
* lib/hash.c (free, malloc): Remove decls.
Include <stdlib.h> unconditionally.
* lib/human.c: Include <stdlib.h>, <string.h> unconditionally.
(getenv): Do not declare.
* lib/idcache.c: Include <string.h> unconditionally.
* lib/long-options.c: Include long-options.h first, to test interface.
Include <stdlib.h> unconditionally.
* lib/makepath.c: Include makepath.h first, to test interface.
Include <stdlib.h> and <string.h> unconditionally.
* lib/linebuffer.c: Include <stdlib.h>.
(free): Remove decl.
* lib/malloc.c: Include <stdlib.h>, for malloc; don't bother with
stddef.h. rpl_malloc returns void *, not char *.
* lib/realloc.c (rpl_realloc): Likewise. Also, define with a
prototype.
* lib/md5.h: Include <limits.h> unconditionally.
(UINT_MAX_32_BITS): Don't worry about non-__STDC__ case.
(__P): Remove; all uses removed.
* lib/md5.c: Include "md5.h" first.
(md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream,
md5_buffer, md5_process_bytes, md5_process_block):
Define with prototypes.
* lib/sha.h (__P): Remove all uses. (It wasn't defined??)
* lib/sha.c: Include "sha.h" first.
Include <stdlib.h>, <string.h> unconditionally.
* lib/memchr.c (__ptr_t): Remove; all uses changed to void *.
* lib/memcmp.c (__ptr_t): Likewise.
* lib/memrchr.c (__ptr_t): Likewise.
* lib/memchr.c, memcmp.c, memcoll.c, memrchr.c:
Include <string.h> unconditionally.
* lib/memchr.c, memrchr.c: Include <limits.h> unconditionally.
* lib/memchr.c: Include <stdlib.h> unconditionally.
* lib/memchr.c (LONG_MAX): Remove.
* lib/memrchr.c (LONG_MAX): Likewise.
* lib/memchr.c (__memchr): Define via a prototype.
* lib/memrchr.c (__memrchr): Likewise.
* lib/memcmp.c (__P): Remove, and remove all uses.
(memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment):
Remove forward decls; no longer needed.
* lib/memcpy.c, memmove.c, memset.c: Include <stddef.h>.
Use types required by C89 in prototype.
* lib/mkdir.c: Include <stdlib.h>, <string.h> unconditionally.
* lib/savedir.c: Likewise.
* lib/mkdir.c (free): Remove decl.
* lib/rmdir.c (rmdir): Define with a prototype.
* lib/savedir.c: Include savedir.h first, to test interface.
* lib/mktime.c (STDC_HEADERS): Remove.
Include <stdlib.h>, <string.h> unconditionally.
* lib/modechange.c: Include <stdlib.h> unconditionally.
(malloc): Remove decl.
* lib/mountlist.c: Include <stdlib.h>, <string.h> unconditionally.
(free): Remove decl.
* lib/obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]:
Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H.
(This type really should be intptr_t, but that's a C99ism.)
(_obstack_memcpy): Remove: all uses changed to memcpy.
Include <string.h> unconditionally.
(struct obstack): Assume __STDC__ for types of members
chunkfun, freefun, extra_arg.
(_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1,
_obstack_memory_used, obstack_alloc_failed_handler, obstack_init,
obstack_begin, obstack_specify_allocation,
obstack_specify_allocation_with_arg, obstack_chunkfun,
obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]:
Remove unprototyped decls and the macros that use them.
* lib/obstack.c (POINTER): Remove. All uses changed to void *.
(obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN,
_obstack_begin, _obstack_begin_1, _obstack_allocated_p)
(defined __STDC__ && __STDC__)]:
Remove nonprototyped code.
Include <stdlib.h> unconditionally.
(_obstack_begin, _obstack_begin_1, _obstack_newchunk,
_obstack_allocated_p, _obstack_free, obstack_free,
_obstack_memory_used, print_and_abort):
Define using prototypes.
(obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base,
obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0,
obstack_finish, obstack_grow, obstack_grow0, obstack_make_room,
obstack_next_free, obstack_object_size, obstack_room) [0]:
Remove unused, unprototyped code.
* lib/path-concat.c: Include <stdlib.h>, <string.h> unconditionally.
* lib/physmem.c (physmem_total, physmem_available, main): Define
with prototypes.
* lib/posixtm.c: Include <stdlib.h>, <string.h> unconditionally.
(main): Define with a prototype.
* lib/posixver.c (getenv): Remove decl.
* lib/putenv.c (malloc): Returns void *, not char *.
Include <string.h> unconditionally.
(strchr, memcpy, NULL): Do not define.
* lib/readtokens.c: Include readtokens.h first, to test interface.
Include <stdlib.h>, <string.h> unconditionally.
(init_tokenbuffer): Define with a prototype.
* lib/regex.c (PARAMS): Remove. All uses removed.
All uses of _RE_ARGS removed, too.
Include <stddef.h>, <stdlib.h>, <string.h>, <limits.h>
unconditionally.
(bzero): Assume memset exists.
(memcmp, memcpy, NULL): Remove.
(SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed
char, or assignments to local vars of type signed char.
(init_syntax_once, PREFIX(extract_number_and_incr),
PREFIX(print_partial_compiled_pattern),
PREFIX(print_compiled_pattern), PREFIX(print_double_string),
convert_mbs_to_wcs, print_fastmap, re_set_syntax,
PREFIX(regex_grow_registers), PREFIX(regex_compile),
PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1),
PREFIX(insert_op2), PREFIX(at_begline_loc_p),
PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space,
wcs_compile_range, byte_compile_range, truncate_wchar,
PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers,
re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2,
count_mbs_length, wcs_re_match_2_internal,
byte_re_match_2_internal, PREFIX(group_match_null_string_p),
PREFIX(alt_match_null_string_p),
PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate),
re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror,
regfree, PREFIX(extract_number)): Define with prototype. Remove
now-unnecessary declaration, if any.
(byte_compile_range, PREFIX(regex_compile), re_comp, re_exec,
regcomp, regexec):
Remove now-unnecessary casts among pointer types.
* lib/regex.h (_RE_ARGS): Remove. All uses removed.
* lib/rename.c: Include <stdlib.h>, <string.h> unconditionally.
(free): Remove decl.
* lib/rpmatch.c: Include <stdlib.h> unconditionally.
* lib/same.c: Include <stdlib.h>, <string.h> unconditionally.
(free): Remove decl.
* lib/save-cwd.c: Include <stdlib.h> unconditionally.
* lib/xgetcwd.c: Likewise.
* lib/stat.c: Include <stdlib.h>, <string.h> unconditionally.
(free): Remove decl.
* lib/strchrnul.c (strchrnul): Define with a prototype.
Fix bug: c_in was not converted to char before searching.
The following changes are not K&R related:
* lib/group-member.h: Include <sys/types.h>, so that this file is
self-contained.
* lib/makepath.h: Likewise.
* lib/getusershell.c (readname, default_index, line_size, readname):
Use size_t, not int, for sizes.
(readname): If the size overflows, report an error instead of
looping forever.
2003-09-09 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Do not get getopt.h, getopt1.c, or regex.h from
libc.
2003-09-09 Paul Eggert <eggert@twinsun.com>
* README: New section: portability guidelines.
2003-09-09 Derek Robert Price <derek@ximbiot.com>
* m4/getndelim2.m4 (gl_PREREQ_GETNDELIM2): Assume stdlib.h per the
C89 spec.
2003-09-09 Derek Robert Price <derek@ximbiot.com>
* lib/getndelim2.c: Assume stdlib.h per the C89 spec.
2003-09-08 Paul Eggert <eggert@twinsun.com>
Assume C89 or better; remove K&R cruft.
A few of these changes were first proposed by Derek Robert Price
in <http://mail.gnu.org/r/bug-gnulib/2003-07/msg00105.html>.
* lib/addext.c: Include <string.h> unconditionally.
* lib/backupfile.c: Include <string.h>, <stdlib.h> unconditionally.
Don't declare getenv or malloc.
* lib/alloca.c: Include <string.h>, <stdlib.h> unconditionally.
(POINTER_TYPE, pointer): Remove; all uses changed to void *.
(NULL): Remove.
(find_stack_direction, alloca): Use prototypes.
* lib/atexit.c (atexit): Define using a prototype.
* lib/basename.c, dirname.c, stripslash.c:
Include <string.h> unconditionally.
* lib/bcopy.c: Include <stddef.h>.
(bcopy): Define with prototype, using 'const' and 'void' and 'size_t'.
* lib/canon-host.c: Include <stdlib.h>, <string.h> unconditionally.
* lib/error.h (error, error_at_line, error_print_progname)
[! (defined (__STDC__) && __STDC__)]: Remove decls.
* lib/error.c: Include error.h first, to check interface.
Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
(VA_START): Remove; all uses changeed to va_start.
(exit, strerror): Remove decls.
(error_print_progname): Prototype uncondionally.
Don't include <errno.h>; no longer needed.
(private_strerror): Remove.
(error_tail): Always define.
(error, error_at_line): Assume C89 or better; always use prototypes.
* lib/fatal.c: Include "fatal.h" first, to test interface.
Include <stdarg.h>, <stdlib.h>, <string.h> unconditionally.
(VA_START): Remove; all uses changed to va_start.
[! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for
this case.
(exit): Remove decl.
(fatal): Prototype unconditionally. Assume va_start works.
Abort at end, to pacify gcc.
* lib/euidaccess.c (main): Define with a prototype.
* lib/exclude.c: Include <stdlib.h>, <string.h> unconditionally.
* lib/exitfail.c: Include <stdlib.h> unconditionally.
* lib/fnmatch_.h (__P): Remove. All uses changed to assume
prototypes.
* lib/fnmatch.c: Include fnmatch.h first, to test interface.
Include <string.h>, <stddef.h>, <stdlib.h> unconditionally.
(getenv): Remove decl.
(fnmatch): Define using a prototype.
* lib/fnmatch_loop.c (FCT): Remove forward decl; no longer needed.
(FCT): Define using a prototype.
* lib/getdate.y: Include <stdlib.h>, <string.h> unconditionally.
* lib/gethostname.c: Include <stddef.h>.
(gethostname): Define with prototype. Length is size_t, not int.
2003-09-08 Paul Eggert <eggert@twinsun.com>
Assume C89 or better; remove K&R cruft.
* m4/alloca.m4 (gl_PREREQ_ALLOCA): Don't check for stdlib.h, string.h.
* m4/backupfile.m4 (gl_BACKUPFILE): Don't check for stdlib.h,
string.h, getenv, malloc.
* m4/dirname.m4 (gl_DIRNAME): Don't check for string.h or C standard
headers.
* m4/canon-host.m4 (gl_CANON_HOST): Don't check for string.h, stdlib.h.
* m4/error.m4 (jm_PREREQ_ERROR): Do not require STDC headers, and
do not check for strerror.
* m4/exclude.m4: Do not check for stdlib.h, string.h, strings.h.
* m4/exitfail.m4 (gl_EXITFAIL): Do not check for stdlib.h.
* m4/fatal.m4 (gl_FATAL): Do not require STDC headers, and
do not check for doprnt or vprintf.
* m4/fnmatch.m4 (gl_PREREQ_FNMATCH_EXTRA): Remove. All uses removed.
* m4/getdate.m4 (gl_GETDATE): Don't check for stdlib.h or string.h.
2003-09-08 Paul Eggert <eggert@twinsun.com>
* lib/getversion.c: Remove; was migrated to backupfile.c in 1997.
getversion.c should have been removed then, but was accidentally
preserved.
* lib/utime.c [!HAVE_UTIMES_NULL]: Include <sys/stat.h>, <fcntl.h>.
(utime_null): Fix typo: 'st' was sometimes called 'sb'.
2003-09-08 Karl Berry <karl@gnu.org>
* config/config.sub, config.guess, srclistvars.sh: update from savannah
config, forget about prep.
* config/depcomp, missing: update from automake.
2003-09-07 Paul Eggert <eggert@twinsun.com>
* modules/time_r: Depend on 'restrict'. Fix from Simon Josefsson in
<http://mail.gnu.org/r/bug-gnulib/2003-09/msg00028.html>.
2003-09-07 Paul Eggert <eggert@twinsun.com>
* lib/time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to
copy_tm_result. Bug reported by Simon Josefsson in
<http://mail.gnu.org/r/bug-gnulib/2003-09/msg00028.html>.
2003-09-06 Paul Eggert <eggert@twinsun.com>
* m4/time_r.m4: New file.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Remove check for limits.h.
* m4/timegm.m4 (gl_FUNC_TIMEGM): Assume that timegm is buggy if mktime
is. Check for timegm declaration.
(gl_PREREQ_TIMEGM): Require gl_FUNC_MKTIME.
Do not check for gmtime_r.
Replace mktime if __mktime_internal does not exist and if mktime
hasn't been replaced already.
2003-09-06 Paul Eggert <eggert@twinsun.com>
* lib/time_r.c, lib/time_r.h: New files.
* lib/mktime.c (my_mktime_localtime_r): Remove; all uses changed to
__localtime_r.
(__localtime_r) [!defined _LIBC]: New macro. Include <time_r.h>.
(__mktime_internal) [!defined _LIBC]: Now extern, not static.
* lib/strftime.c (my_strftime_gmtime_r): Remove; all uses changed to
__gmtime_r.
(my_strftime_localtime_r): Remove; all uses changed to __localtime_r.
(__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros.
Include <time_r.h>.
* lib/timegm.c: Switch to glibc implementation, with the following
changes:
[defined HAVE_CONFIG_H]: Include <config.h>.
[!defined _LIBC]: Include "timegm.h" rather than <time.h>.
(__mktime_internal) [!defined _LIBC]: New decl.
(__gmtime_r) [!defined _LIBC]: New macro and function.
(timegm): Use a prototype, since gnulib assumes C89.
Do not bother declaring tmp to be const, as it's not really usefu.
* lib/timegm.h: Hoist "#include <time.h>" out of #ifdef.
(timegm): Declare only if HAVE_DECL_TIMEGM.
2003-09-06 Paul Eggert <eggert@twinsun.com>
* MODULES.html.sh (func_all_modules): Add time_r.
* modules/time_r: New file.
* modules/mktime, modules/strftime, modules/timegm: Depend on time_r.
* modules/timegm: Depend on mktime. Change maintainer to "all, glibc".
2003-09-03 Paul Eggert <eggert@twinsun.com>
* lib/human.c (human_readable): Fix bug that rounded 10501 to 10k.
Bug reported by Lute Kamstra in
<http://mail.gnu.org/r/bug-gnulib/2003-09/msg00003.html>.
* lib/getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow",
"yesterday", "today", and "now" rather than tMINUTE_UNIT. Of
course with correspondingly smaller numbers for tomorrow and
yesterday. From Tadayoshi Funaba. Originally installed into
sh-utils on 1999-08-07, but the patch got lost (I guess during the
coreutils merge?).
2003-08-31 Simon Josefsson <jas@extundo.com>
* modules/timegm: New file.
* MODULES.html.sh (func_all_modules): Add timegm.
2003-08-31 Simon Josefsson <jas@extundo.com>
* m4/timegm.m4: New file.
2003-08-31 Simon Josefsson <jas@extundo.com>
* lib/timegm.h: New file.
* lib/timegm.c: New file. Based on
wget-1.8.2/src/http.c:mktime_from_utc.
2003-08-31 Karl Berry <karl@gnu.org>
* lib/argp.h: update from libc.
2003-08-28 Bruno Haible <bruno@clisp.org>
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Remove AC_DEFINE of fnmatch here.
This avoids havoc on compilers for which '#define fnmatch rpl_fnmatch'
followed by '#define fnmatch fnmatch_posix' gives an error.
2003-08-28 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h: Undefine O_BINARY before defining it. This avoids a
warning on QNX, which defines O_BINARY to 000000.
2003-08-27 Jim Meyering <jim@meyering.net>
* m4/mkstemp.m4: Require that the system mkstemp be able to create
70 temporary files, not just 30. Tru64 V4.0F's mkstemp function
would fail after 32. Reported by Danny Levinson. Details here:
http://mail.gnu.org/r/bug-coreutils/2003-08/msg00124.html
2003-08-24 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h: Include <stdio.h>, to avoid a compilation error when
MSVC7 <stdio.h> is included later.
2003-08-22 Simon Josefsson <jas@extundo.com>
* modules/strndup (Makefile.am): Add strndup.h to lib_SOURCES.
2003-08-20 Karl Berry <karl@gnu.org>
* m4/lib-ld.m4: serial 1003 from gettext, no changes besides serial.
2003-08-20 Bruno Haible <bruno@clisp.org>
* modules/progname: New file.
* MODULES.html.sh (func_all_modules): Add progname.
2003-08-20 Bruno Haible <bruno@clisp.org>
* lib/progname.h: New file, from GNU gettext.
* lib/progname.c: New file, from GNU gettext.
* lib/progreloc.c: New file, from GNU gettext.
2003-08-19 Jim Meyering <jim@meyering.net>
* m4/lib-ld.m4: Revert yesterday's change, per Bruno's request here:
http://mail.gnu.org/r/bug-gnulib/2003-08/msg00155.html
2003-08-19 Bruno Haible <bruno@clisp.org>
* m4/xalloc.m4 (gl_PREREQ_XSTRDUP): Don't check for <string.h> any
more.
2003-08-19 Bruno Haible <bruno@clisp.org>
* lib/xstrdup.c: Assume <string.h> exists.
2003-08-18 Paul Eggert <eggert@twinsun.com>
* modules/stdbool: Add BUILT_SOURCES. Prefer $@ to target name
in makefile rules.
2003-08-18 Jim Meyering <jim@meyering.net>
* m4/getloadavg.m4: Use [\t ], not [ \t] (where \t is a literal TAB).
* m4/lib-ld.m4: Likewise.
2003-08-18 Jim Meyering <jim@meyering.net>
* lib/setenv.h: Indent nested cpp directive.
* lib/vasnprintf.c: Remove trailing blanks.
2003-08-17 Simon Josefsson <jas@extundo.com>
* modules/xstrndup: New file.
* MODULES.html.sh (func_all_modules): Add xstrndup.
2003-08-17 Simon Josefsson <jas@extundo.com>
* modules/argp: Fix autoconf macro name. Add more dependencies.
2003-08-17 Simon Josefsson <jas@extundo.com>
* m4/xstrndup.m4: New file.
2003-08-17 Simon Josefsson <jas@extundo.com>
* m4/argp.m4: New file.
2003-08-17 Simon Josefsson <jas@extundo.com>
Bruno Haible <bruno@clisp.org>
* lib/xstrndup.h: New file.
* lib/xstrndup.c: New file.
2003-08-17 Bruno Haible <bruno@clisp.org>
* modules/strndup (Files, Include): Add lib/strndup.h.
2003-08-17 Bruno Haible <bruno@clisp.org>
* modules/euidaccess (Files): Add lib/euidaccess.h.
2003-08-17 Bruno Haible <bruno@clisp.org>
* lib/strndup.h: New file.
2003-08-17 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Handle gl_USE_SYSTEM_EXTENSIONS
like AC_GNU_SOURCE.
* modules/extensions (configure.ac): Comment out the invocation of
gl_USE_SYSTEM_EXTENSIONS.
2003-08-16 Paul Eggert <eggert@twinsun.com>
Merges from coreutils, etc.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Insert ':' to prevent a syntax
error in gl_FUNC_MATCH. This fixes a bug I introduced on 2003-05-28.
* m4/readlink.m4 (gl_PREREQ_READLINK): Renamed from gl_PREREQ_READLINE,
fixing a typo.
* m4/host-os.m4 (UTILS_HOST_OS): Add GNU/NetBSD, GNU/FreeBSD.
* m4/hash.m4 (gl_HASH): Use AM_STDBOOL_H, not AC_HEADER_STDBOOL.
2003-08-16 Paul Eggert <eggert@twinsun.com>
Document merge from coreutils.
* modules/alloca: Append $(ALLOCA_H) to BUILT_SOURCES.
* modules/fnmatch: Append $(FNMATCH_H) to BUILT_SOURCES.
* modules/utime: Add m4/utimes-null.m4.
2003-08-16 Paul Eggert <eggert@twinsun.com>
* lib/regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white
space, undoing this 2003-08-12 change:
<http://mail.gnu.org/r/bug-gnulib/2003-08/msg00080.html>
2003-08-16 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Get regex.h, strdup.c, strtoll.c,
strtoul.c from libc, undoing this 2003-08-12 change:
<http://mail.gnu.org/r/bug-gnulib/2003-08/msg00080.html>
2003-08-16 Jim Meyering <jim@meyering.net>
Merges from coreutils.
* m4/readdir.m4 (GL_FUNC_READDIR): Change name to have GL_ (not jm_)
prefix. Adjust cache variables similarly. Create 500 rather than
just 300 files, to exercise bug on Darwin6.5, too.
* m4/perl.m4 (jm_PERL): Use $am_missing_run, not undefined
$missing_dir.
* m4/jm-winsz1.m4: Require AC_SYS_POSIX_TERMIOS, not
AM_SYS_POSIX_TERMIOS.
Reported by mkc@mathdogs.com.
Also change use of $am_cv_sys_posix_termios
to $ac_cv_sys_posix_termios. Reported by Andreas Schwab.
* m4/getgroups.m4 (jm_FUNC_GETGROUPS): Rewrite to use AC_FUNC_GETGROUPS
and (if needed) to call AC_LIBOBJ and to set GETGROUPS_LIB.
* m4/fsusage.m4 [__GLIBC__]: GNU libc's statvfs stats each mount point
in /proc/mounts until it finds one with matching device number. This
is unnecessary when the FILE argument *is* a mount point. No stat call
is necessary in that case. So, disable the statvfs-testing code on
systems with GNU libc. Reported by Andrei Gaponenko via Tim Waugh
as RedHat bug# 84846.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Limit stack size
to 1MB, so as not to render systems with no stack size limit (e.g.,
linux-2.2.x) unusable. Suggestion and code from Bruno Haible.
Include <unistd.h>. On some systems,
it is required for the definition of _SC_PAGESIZE.
2003-08-16 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/xstrtoimax.c: #else #if -> #elif.
* lib/xstrtoumax.c: Likewise.
2003-08-16 Jim Meyering <jim@meyering.net>
* m4/utimes.m4 (gl_FUNC_UTIMES): New file.
* m4/utimes.m4: Removed.
* m4/utimes-null.m4: Renamed from utimes.m4.
* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Limit stack size
to 1MB, so as not to render systems with no stack size limit (e.g.,
linux-2.2.x) unusable. Suggestion and code from Bruno Haible.
Include <unistd.h>. On some systems,
it is required for the definition of _SC_PAGESIZE.
2003-08-16 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@cs.ucla.edu>
Merges from coreutils, etc.
* m4/jm-macros.m4 (AC_LANG_SOURCE(C)): New macro, undefine, then define
using the latest version from cvs. This avoids problems with #line
directives using a vendor (Sun) compiler.
(jm_MACROS): Bump prerequisite from 2.52g to 2.57.
Don't set GETGROUPS_LIB here; now it's
done via getgroups.m4's wrapper function.
AC_SUBST OPTIONAL_BIN_PROGS, OPTIONAL_BIN_ZCRIPTS, and MAN here,
rather than just in sh-util/configure.in, so that the
now-shared-by-fileutils-and-textutils lib/Makefile.am are all the
same.
Use AC_CONFIG_LIBOBJ_DIR(lib) to tell the new
AC_FUNC_GETLOADAVG where to find getloadavg.c.
Require AC_FUNC_FTW, gt_INTTYPES_PRI, gl_CLOCK_TIME,
UTILS_SYS_OPEN_MAX, GL_FUNC_GETCWD_PATH_MAX, GL_FUNC_READDIR,
gl_FSUSAGE, gl_MOUNTLIST, AC_FUNC_CANONICALIZE_FILE_NAME.
Remove code that is now done by the newly-required macros.
Append $(EXEEXT) to DF_PROG.
AC_LIBOBJ fchdir-stub if fchdir doesn't exist; similarly for fchown.
Do not invoke or require the following here,
since prereq.m4 or some gnulib .m4 now does this for us:
gl_REGEX, UTILS_FUNC_MKDIR_TRAILING_SLASH, jm_BISON, gl_FUNC_MKTIME,
jm_FUNC_LSTAT, jm_FUNC_STAT, jm_FUNC_REALLOC, jm_FUNC_MALLOC,
jm_FUNC_NANOSLEEP, jm_FUNC_READDIR, jm_FUNC_MEMCMP,
jm_FUNC_GLIBC_UNLOCKED_IO, AC_FUNC_FNMATCH_GNU, jm_FUNC_PUTENV,
jm_AC_PREREQ_XSTRTOUMAX, jm_AC_PREREQ_XSTRTOIMAX,
AC_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME, AC_FUNC_VPRINTF,
vb_FUNC_RENAME, UTILS_FUNC_MKSTEP, jm_FUNC_UTIME, AM_FUNC_GETLINE,
AC_FUNC_OBSTACK.
Do not replace the following functions, as this is now the job
of some gnulib .m4: strcasecmp, strncasecmp, dup2, gethostname,
getusershell, sig2str, strcspn, stpcpy, strstr, strtol, strtoul
strpbrk, euidaccess, memcmp, rmdir, rpmatch, strndup, strverscmp,
atexit getpass, strdup, getpagesize.
Replace 'raise'.
Do not check for the following functions, as this is now the job
of some gnulib .m4: bcopy, canonicalize_file_name, fchdir, ftime,
getcwd, getmntinfo, resolvepath. But check for sysctl, setreuid,
setregid.
(jm_CHECK_ALL_HEADERS): Do not check for fenv.h.
Check for sys/sysctl.h.
(jm_CHECK_ALL_TYPES): Do not require AC_STRUCT_TM, AC_STRUCT_TIMEZONE,
jm_CHECK_TYPE_STRUCT_TIMESPEC. Invoke gt_TYPE_SSIZE_T instead
of checking for ssize_t ourselves.
* m4/prereq.m4 (jm_PREREQ): Don't invoke macros; AC_REQUIRE them.
Require every macro that gnulib/modules/* suggests for us.
(jm_PREREQ_ADDEXT): New macro.
(jm_PREREQ_STAT): Check for 'struct statfs' on Ultrix 4.4.
Require jm_AC_TYPE_LONG_LONG instead of invoking it.
* m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): New macro.
(gl_PHYSMEM): Use it.
Also check for `table' function.
Check for new headers and functions.
Add check for sys/sysmp.h.
With suggestions from Kaveh Ghazi.
Ignore headers that are present but cannot be compiled. This
avoids spurious warnings on Solaris 9 sparc with Forte Developer 7
C 5.4.
2003-08-15 Paul Eggert <eggert@twinsun.com>
Document merge from coreutils.
* modules/userspec: Depend on posixver.
* modules/strftime: Depend on tzset.
2003-08-15 Paul Eggert <eggert@twinsun.com>
* lib/config.charset, ref-add.sin, ref-del.sin: Use three spaces,
rather than tab, after '#' in shell-script copyright notices.
Suggested by Bruno Haible.
2003-08-15 Paul Eggert <eggert@twinsun.com>
* config/srclist-update: Use three spaces, rather than tab, after '#'
in shell-script copyright notices. Suggested by Bruno Haible.
Remove unnecessary parenthesization in regular expression.
2003-08-15 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/xgethostname.c: Include <stdlib.h>.
(xghostname): Don't exit for anything other than memory-related
failure; just return NULL.
* lib/userspec.c: Include "posixver.h".
(parse_user_spec): Accept `.' as a separator only
in pre-POSIX-200112 mode.
* lib/strtoimax.c: Use #elif rather than #else #if.
* lib/strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]:
Remove function, now that we can rely on a working tzset function.
[!_LIBC]: Ensure that the required autoconf test has been run.
[!defined _NL_CURRENT && HAVE_STRFTIME]:
Use underlying_strftime for %r.
* lib/sha.c: Merge in some clean-up and optimization changes from
glibc.
* lib/sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file.
Ensure that it is a multiple of 64.
Rearrange loop exit tests so as to avoid performing an
additional fread after encountering an error or EOF.
* lib/realloc.c: Update copyright date.
2003-08-15 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@twinsun.com>
Merge from coreutils.
* lib/readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit
member but strut utmpx does not. Needed for AIX 4.3.3.
(UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
2003-08-15 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@cs.ucla.edu>
Merges from coreutils, etc.
* m4/strftime.m4 (_jm_STRFTIME_PREREQS):
Require gl_FUNC_TZSET_CLOBBER.
* m4/readutmp.m4 (gl_READUTMP): Check for ut_exit.ut_exit,
ut_exit.e_exit, ut_exit.ut_termination, and ut_exit.e_termination
members.
2003-08-14 Paul Eggert <eggert@twinsun.com>
Help the merge from coreutils.
* m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): New macro.
(AC_FUNC_GETTIMEOFDAY_CLOBBER): Use it.
* m4/tzset.m4: Use it too.
2003-08-14 Paul Eggert <eggert@twinsun.com>
* modules/tzset: New file.
2003-08-14 Jim Meyering <jim@meyering.net>
Merges from coreutils.
* modules/fnmatch: Use the `$(FNMATCH_H)' notation for AC_REPLACED
variable names, rather than @FNMATCH_H@.
* modules/alloca: Likewise for $(ALLOCA_H).
* modules/fnmatch (fnmatch.h): Use `$@' in the commands, in place of
the three copies of the literal target, `fnmatch.h'.
* modules/alloca (alloca.h): Likewise.
2003-08-14 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* m4/tzset.m4: New file.
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Move the
MOUNTED_VMOUNT test to precede the MOUNTED_GETMNTENT1 tests, since
otherwise, AIX 5.1 systems would end up using the latter.
MOUNTED_GETMNTENT1 support is inadequate on such systems: 1) detecting
whether a file system is remote doesn't work 2) the MOUNTED_VMOUNT
code reports the HOSTNAME:/MOUNT_POINT, while the MOUNTED_GETMNTENT1
code reports merely /MOUNT_POINT. Reported by Mike Jetzer.
2003-08-14 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/obstack.h: Whitespace changes.
* lib/mountlist.c: Remove anachronistic casts of xmalloc, xrealloc,
and xcalloc return values.
(read_filesystem_list) [MOUNTED_GETFSSTAT]:
Use MNT_NOWAIT, rather than MNT_WAIT. Otherwise, `df DIR' could
hang on OSF/1 5.1 for DIR on both local and remote file systems.
Reported by (and fix confirmed by) Nelson H. F. Beebe.
(read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
error from mntctl.
Use mntctl's return value to drive the entry-processing loop, since
we can't rely on the value of the vmt_length member in the last
entry. On some systems doing so could result in exhausting
virtual memory. Based in part on a patch from Mike Jetzer.
2003-08-14 Jim Meyering <jim@meyering.net>
and Paul Eggert <eggert@twinsun.com>
Merges from coreutils, plus other fixes.
* lib/physmem.c: Merge in portability changes from gcc/libiberty
to support AIX, IRIX, Tru64, and Windows. See the ChangeLog there
for credits and details. Thanks to Kaveh Ghazi for helping
to keep these files in sync.
(ARRAY_SIZE): Define it.
(physmem_total, physmem_available): Add comments. From Kaveh Ghazi.
* lib/memcasecmp.c: Remove unnecessary parentheses after 'defined'.
(memcasecmp): Don't assume size_t fits in unsigned int.
Remove casts and duplicate code.
* lib/md5.c: Include <string.h> and <stdlib.h> unconditionally.
(memcpy): Remove definition.
Merge in some clean-up and optimization changes from glibc.
[BLOCKSIZE]: Move definition to top of file.
Ensure that it is a multiple of 64.
Rearrange loop exit tests so as to avoid performing an
additional fread after encountering an error or EOF.
* lib/md5.h (md5_uintptr): Define.
* lib/makepath.c (CLEANUP_CWD): Report an error if we failed to
return to the initial working directory. Preserve errno
for caller.
* lib/idcache.c: Include "xalloc.h".
(xmalloc, xrealloc): Remove decls.
(getuser): Remove casts no longer required in C89.
* lib/human.c: Include stdio.h, for sprintf.
* lib/group-member.c: Include "xalloc.h".
(xmalloc, xrealloc): Remove decls.
(get_group_info): Remove casts no longer required in C89.
* lib/getusershell.c (readname): Remove casts no longer required in
C89.
* lib/gettimeofday.c (rpl_gmtime, rpl_tzset): New functions.
* lib/getline.c: Whitespace fix, from coreutils.
2003-08-13 Paul Eggert <eggert@twinsun.com>
* m4/exclude.m4 (gl_EXCLUDE): Require AC_C_INLINE, AC_HEADER_STDC.
Check for isascii.
* m4/gettext.m4, iconv.m4, intdiv0.m4, inttypes-pri.m4, lib-link.m4,
lib-prefix.m4, longdouble.m4, po.m4, progtest.m4, signed.m4:
Undo previous (whitespace-only) change.
2003-08-13 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c: Include <ctype.h>
(IN_CTYPE_DOMAIN): New macro.
(is_space): New fn.
(add_exclude_file): If LINE_END is a space, ignore trailing spaces
and empty lines.
* lib/argp-help.c, argp-parse.c, config.charset, getopt.h:
Undo previous (whitespace-only) change.
2003-08-13 Paul Eggert <eggert@twinsun.com>
* config/srclist-update: Change update back to the old behavior,
leaving whitespace alone. Use one 'sed' command rather than a
pipeline.
(fixlicense): Now a variable, not a function.
(remove_trailing_blanks): Remove.
(fixfile): Don't invoke unexpand or cat, or remove trailing blanks.
* config/config.guess, config.sub, install-sh, missing, texinfo.tex:
Undo previous (whitespace-only) change.
2003-08-12 Paul Eggert <eggert@twinsun.com>
Merge from coreutils.
* modules/euidaccess: Add lib_SOURCES, include for new
file euidaccess.h
2003-08-12 Paul Eggert <eggert@twinsun.com>
* m4/gettext.m4, iconv.m4, intdiv0.m4, inttypes-pri.m4, lib-link.m4,
lib-prefix.m4, longdouble.m4, po.m4, progtest.m4, signed.m4:
Normalize leading white space and remove trailing white space.
Merge from coreutils
* m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Check for euidaccess decl.
* m4/lib-ld.m4, lib-link.m4, lib-prefix.m4: Regenerate from gettext
0.12.1. These files are now being upgraded automatically by
../config/srclist-update.
2003-08-12 Paul Eggert <eggert@twinsun.com>
* lib/argp-help.c, argp-parse.c, config.charset, getopt.h:
Normalize leading white space and remove trailing white space.
* lib/ref-add.sin, ref-del.sin: Use '#' before empty line in copyright
notice, as per ../config/srclist-update.
Merge from coreutils.
* lib/euidaccess.h: New file.
* lib/euidaccess.c: Include it.
* lib/.cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h,
vasnprintf.h, vasprintf.h. Remove strdup.c, gettext.h.
* lib/regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space.
2003-08-12 Paul Eggert <eggert@twinsun.com>
* config/srclist-update: Add copyright notice.
(remove_id_lines, remove_trailing_blanks): New constants.
(fixfile): Use them to normalize spacing a bit in copied files.
* config/config.guess, config.sub, install-sh, missing, texinfo.tex:
Normalize leading white space and remove trailing white space.
* config/texinfo.tex: Sync with texinfo.
* config/srclist.txt: Don't get regex.h, strdup.c, strtoll.c,
strtoul.c from libc, to merge coreutils whitespace changes.
* config/srclist.txt: Get the following m4 files from gettext:
codeset.m4, gettext.m4, glibc21.m4, iconv.m4, intdiv0.m4,
inttypes-pri.m4, lcmessage.m4, lib-ld.m4, lib-link.m4, lib-prefix.m4,
longdouble.m4, nls.m4, po.m4, progtest.m4, signed.m4, wchar_t.m4,
wint_t.m4.
2003-08-12 Karl Berry <karl@gnu.org>
* config/srclist.txt: can't sync vasnprintf.c any more, changes have
been made.
2003-08-11 Paul Eggert <eggert@twinsun.com>
* modules/gnu-source, m4/gnu-source.m4:
Remove; we're assuming Autoconf 2.54 or later now.
Suggested by Bruno Haible.
* MODULES.html.sh (func_all_modules): Remove gnu-source.
2003-08-11 Bruno Haible <bruno@clisp.org>
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Also check for wcslen.
2003-08-11 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1.
(vasnprintf): Use it instead of wcslen.
2003-08-11 Bruno Haible <bruno@clisp.org>
* lib/stdbool_.h (_Bool): Undo last change; instead use a negative enum
value to ensure that _Bool promotes to int. Use #define for _Bool when
using the Solaris C compiler. Adds comments suggested by Paul Eggert.
2003-08-10 Karl Berry <karl@gnu.org>
* lib/regex.h: update from libc (whitespace fix).
2003-08-09 Paul Eggert <eggert@twinsun.com>
Merge some files from coreutils. These changes were
originally made by Jim Meyering.
* lib/acl.c: Include <sys/types.h> before <sys/stat.h>;
many older Unixes require this.
* lib/alloca.c (alloca): Remove cast to argument of free;
no longer needed in C89.
* lib/alloca_.h, regex.h: Fix white space to match
what GNU indent does.
2003-08-09 Paul Eggert <eggert@twinsun.com>
* m4/regex.m4 (jm_INCLUDED_REGEX): Change "\201" to "\371";
apparently Emacs's Unicode mode got confused before my 2003-08-05
checkin.
2003-08-08 Paul Eggert <eggert@twinsun.com>
* m4/extensions.m4: New file.
* m4/timespec.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC):
Require gl_USE_SYSTEM_EXTENSIONS.
* m4/unlocked-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO):
Require gl_USE_SYSTEM_EXTENSIONS rather than AC_GNU_SOURCE.
2003-08-08 Paul Eggert <eggert@twinsun.com>
* MODULES.html.sh (func_all_modules): Add extensions, gnu-source.
* modules/extensions, modules/gnu-source: New files.
* modules/timespec, modules/unlocked-io: Depend on extensions.
2003-08-07 Paul Eggert <eggert@twinsun.com>
* modules/restrict: New file.
* MODULES.html.sh (func_all_modules): Add restrict.
* modules/regex: Depend on restrict.
2003-08-07 Paul Eggert <eggert@twinsun.com>
* m4/restrict.m4: New file.
* m4/regex.m4 (jm_PREREQ_REGEX): Add gl_C_RESTRICT.
2003-08-07 Bruno Haible <bruno@clisp.org>
* modules/getndelim2 (Makefile.am): Add the files to EXTRA_DIST, not
lib_SOURCES, because getndelim2.m4 now uses AC_LIBOBJ(getndelim2).
2003-08-07 Bruno Haible <bruno@clisp.org>
* m4/getndelim2.m4 (gl_GETNDELIM2): Use AC_LIBOBJ(getndelim2). This
makes the module 'getndelim2' compatible with the module 'getline'.
2003-08-05 Paul Eggert <eggert@twinsun.com>
* m4/regex.m4 (jm_INCLUDED_REGEX): Replace a single non-ASCII
byte with "\201" to avoid glitches when editing that source file
with multi-gnome-terminal.
2003-08-05 Paul Eggert <eggert@twinsun.com>
* lib/bumpalloc.h: Remove.
2003-08-05 Paul Eggert <eggert@twinsun.com>
* MODULES.html.sh (func_all_modules): Remove bumpalloc.
* modules/bumpalloc: Remove.
2003-08-04 Paul Eggert <eggert@twinsun.com>
* lib/getloadavg.c: Change copyright notice and spacing to conform to
GNU coding style.
Merge from coreutils.
* lib/error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is
1. From glibc.
* lib/getdate.y (date): Also accept dates like May-23-2003; suggestion
from Karl Berry, implemented by Jim Meyering.
* lib/getgroups.c: Include "xalloc.h" instead of declaring xalloc fns;
from Dmitry V. Levin.
Remove anachronistic cast of xrealloc.
* lib/fnmatch_.h (__const): Remove. Use 'const'.
* lib/fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper
type. Otherwise, it wouldn't compile with at least /bin/cc on
ymp-cray-unicos9.0.2.X.
Combine two mostly-identical uses of alloca into one.
Thanks to the Cray-Cyber project for access to a Cray Y-MP.
2003-08-04 Dave Love <d.love@dl.ac.uk>
[From Emacs.]
* lib/getloadavg.c: Check `__unix' as well as `unix'. Use #ifdef, not
#if. Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE. Check
F_SETFD, not FD_SETFD. Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not
obsolete NLIST_NAME_UNION.
[__GNU__]: Undef BSD and FSCALE.
[!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT.
2003-08-03 Paul Eggert <eggert@twinsun.com>
* lib/stdbool_.h (_Bool): Make it signed char, instead of
an enum type, so that it's guaranteed to promote to int. See:
<http://mail.gnu.org/r/bug-gnulib/2003-07/msg00124.html>
2003-08-03 Karl Berry <karl@gnu.org>
* config/depcomp: update from automake.
2003-07-31 Paul Eggert <eggert@twinsun.com>
* lib/strerror.c: Include config.h, limits.h. Declare sprintf.
(strerror): Don't assume that a printable int fits in 14 bytes.
2003-07-31 Bruno Haible <bruno@clisp.org>
* modules/getpass-gnu: New file.
* MODULES.html.sh (func_all_modules): Add getpass-gnu.
2003-07-31 Bruno Haible <bruno@clisp.org>
* m4/getpass.m4 (gl_FUNC_GETPASS_GNU): New macro.
2003-07-24 Karl Berry <karl@gnu.org>
* config/missing: update from automake.
2003-07-24 Derek Robert Price <derek@ximbiot.com>
Bruno Haible <bruno@clisp.org>
* lib/getline.h (getline, getdelim): Change return type to ssize_t.
* lib/getline.c (getline, getdelim): Likewise.
Remove _GNU_SOURCE define; now it's defined in config.h through
m4/getline.m4.
2003-07-23 Karl Berry <karl@gnu.org>
* config/config.sub: update from prep.
2003-07-22 Paul Eggert <eggert@twinsun.com>
* modules/xalloc (Depends-on): Add exitfail.
* modules/xmemcoll: Likewise.
2003-07-22 Paul Eggert <eggert@twinsun.com>
* lib/xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and
over-parenthesization in macros.
Sync with coreutils.
* lib/xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not
required by C99.
Use `exit_failure' for xalloc and xmemcoll instead of their own
private exit-failure variables.
* lib/xalloc.h (xalloc_exit_failure): Remove.
* lib/xmalloc.c: Likewise. Include exitfail.h.
(xalloc_die): Use exit_failure instead of xalloc_exit_failure.
* lib/xmemcoll.h (xmemcoll_exit_failure): Remove.
* lib/xmemcoll.c: Likewise. Include exitfail.h.
(xmemcoll): Use exit_failure instead of xalloc_exit_failure.
2003-07-20 Jim Meyering <jim@meyering.net>
* modules/closeout (Depends-on): Add exitfail.
Suggestion from Bruno Haible.
2003-07-19 Karl Berry <karl@gnu.org>
* config/config.sub: update from prep.
2003-07-18 Paul Eggert <eggert@twinsun.com>
* lib/closeout.h (close_stdout_set_status, close_stdout_status):
Remove.
* lib/closeout.c: Likewise. Include "closeout.h" right after config.h,
to test that it can stand by itself. Include "exitfail.h".
Clients should set exit_failure instead.
(EXIT_FAILURE): Remove; no longer needed. Do not include <stdlib.h>.
2003-07-18 Bruno Haible <bruno@clisp.org>
* modules/getndelim2: New file.
* modules/getline: Share files with module getndelim2.
* modules/getnline: Depend on getndelim2 instead of sharing files with
it. Add getnline.c to lib_SOURCES.
* MODULES.html.sh (func_all_modules): Add getndelim2.
2003-07-18 Bruno Haible <bruno@clisp.org>
* m4/getndelim2.m4: New file.
* m4/getline.m4 (AM_FUNC_GETLINE): Add AC_LIBOBJ of getndelim2.c and
invoke gl_PREREQ_GETNDELIM2.
(gl_PREREQ_GETLINE): Drop AC_HEADER_STDC, now done by
gl_PREREQ_GETNDELIM2.
* m4/getnline.m4 (gl_GETNLINE): Drop AC_HEADER_STDC, now done by
gl_GETNDELIM2.
2003-07-18 Bruno Haible <bruno@clisp.org>
* lib/getndelim2.h: New file.
* lib/getndelim2.c: Make into a module of its own. Include config.h,
getndelim2.h.
(getndelim2): Make non-static. Change return type to ssize_t.
* lib/getline.h: Change argument names.
* lib/getline.c: Include getndelim2.h instead of getndelim2.c.
* lib/getnline.c: Include getndelim2.h.
2003-07-18 Andreas Schwab <schwab@suse.de>
* lib/memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno.
2003-07-17 Karl Berry <karl@gnu.org>
* config/config.sub: update from prep.
2003-07-17 Bruno Haible <bruno@clisp.org>
* modules/getnline: New file.
* modules/getline: Add lib/getndelim2.c to source file list.
* MODULES.html.sh (func_all_modules): Add getnline.
2003-07-17 Bruno Haible <bruno@clisp.org>
* m4/getnline.m4: New file.
2003-07-17 Bruno Haible <bruno@clisp.org>
* m4/Makefile.am.in: Remove file.
* m4/Makefile.am: Remove file.
* m4/Makefile.in: Remove file.
2003-07-17 Bruno Haible <bruno@clisp.org>
* lib/getnline.h: New file.
* lib/getnline.c: New file.
* lib/getndelim2.c: New file, extracted from getline.c.
(getndelim2): Renamed from getdelim2, with added nmax argument.
* lib/getline.c: Include getndelim2.c.
(getdelim2): Moved out to getndelim2.c.
(getline, getdelim): Update.
2003-07-17 Bruno Haible <bruno@clisp.org>
* lib/Makefile.am: Remove file.
* lib/Makefile.in: Remove file.
2003-07-17 Bruno Haible <bruno@clisp.org>
* configure.in: Remove file.
* Makefile.in: Remove file.
2003-07-17 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Put the </BODY> right before </HTML>.
2003-07-16 Karl Berry <karl@gnu.org>
* config/srclist-update: was running fixlicense twice, which caused
texinfo.tex to be nullified for some reason. Simplify,
$gplsrc is no longer needed as far as I can see?
2003-07-16 Jim Meyering <jim@meyering.net>
* modules/save-cwd: Depend on xgetcwd. From Derek Price.
2003-07-15 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Get the following files from gettext-runtime/intl
instead: config.charset, localcharset.c, localcharset.h, ref-add.sin,
ref-del.sin. From Bruno Haible.
* config/srclist-update (fixfile): Change grep pattern again, since the
previous fix didn't work (there was another trailing $). Use
'[$]' to escape the $s.
2003-07-15 Karl Berry <karl@gnu.org>
* lib/vasnprintf.c: update from gettext.
2003-07-15 Karl Berry <karl@gnu.org>
* config/srclist-update (fixfile): Change grep pattern, since 'Id'
gets expanded when surrounded by '$'.
2003-07-15 Jim Meyering <jim@meyering.net>
* modules/save-cwd: Don't depend on error. From Derek Price.
2003-07-15 Jim Meyering <jim@meyering.net>
* lib/makepath.c (make_path): Enclose diagnostic in _(...).
2003-07-14 Simon Josefsson <jas@extundo.com>
* modules/mempcpy: New file.
* MODULES.html.sh (func_all_modules): Add mempcpy.
2003-07-14 Simon Josefsson <jas@extundo.com>
* m4/mempcpy.m4: New file.
2003-07-14 Simon Josefsson <jas@extundo.com>
* lib/mempcpy.h: New file.
* lib/mempcpy.c: New file.
2003-07-14 Paul Eggert <eggert@twinsun.com>
* modules/getdate, modules/posixtm: Depend on mktime.
2003-07-14 Paul Eggert <eggert@twinsun.com>
* lib/ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h,
sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c,
unicodeio.c, unicodeio.h, unlocked-io.h:
Switch from LGPL to GPL.
2003-07-14 Paul Eggert <eggert@twinsun.com>
* lib/asnprintf.c, asprintf.c, config.charset, gettext.h,
localcharset.c, localcharset.h, mkdtemp.c, printf-args.c,
printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin,
ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h,
vasprintf.c, vasprintf.h: Regenerate. These files are now being
updated automatically by ../config/srclist-update. This changes
their license from LPGL to GPL.
2003-07-14 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Add tons more gettext files. $GETTEXT is now
assumed to refer to the root of the most recent stable gettext version.
* config/srclistvars.sh: Add defaults for eggert.
* config/srclist-update: Convert LGPL to GPL in shell scripts, too.
Match "This program" as well as "The program". This is needed
for gettext.
2003-07-14 Jim Meyering <jim@meyering.net>
Don't emit diagnostics. Let callers do that.
* lib/save-cwd.c: Don't include "error.h".
(save_cwd): Don't call error. Ensure that errno is valid
when returning nonzero.
* lib/save-cwd.h (restore_cwd): Update prototype.
* lib/save-cwd.c (restore_cwd): Remove two parameters.
Simplify. Don't call error upon failure. Let callers do that.
(save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4
when auditing is enabled. But don't bother updating the #if.
2003-07-11 Alexandre Duret-Lutz <adl@gnu.org>
* lib/obstack.h (__INT_TO_PTR): Revert change of 2003-03-13;
it breaks C++ compilation.
[!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*.
2003-07-10 Simon Josefsson <jas@extundo.com>
* modules/strchrnul (Makefile.am): Add strchrnul.h.
2003-07-10 Jim Meyering <jim@meyering.net>
* m4/clock_time.m4: Remove trailing blank.
* m4/intmax_t.m4: Likewise.
2003-07-10 Jim Meyering <jim@meyering.net>
* lib/vasnprintf.c: Remove trailing blanks.
Make cpp indentation consistent.
2003-07-09 Paul Eggert <eggert@twinsun.com>
* lib/alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h,
posixver.c, strftime.c, strnlen.c, strverscmp.c:
Switch from LGPL to GPL.
2003-07-09 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt: Sort sublists. Add
$LIBCSRC/sysdeps/generic/strtoul.c. In comments, add more libc files
that differ from gnulib for one reason or another; we'd like this list
to be smaller but for now let's document what we have.
2003-07-08 Paul Eggert <eggert@twinsun.com>
* config/srclist-update: Port to POSIX 1003.1-2001 hosts by avoiding
the use of GNU extensions. Change "x=`eval echo $x`" to the shorter
and sweeter "eval x=$x".
* config/srclist.txt: Get lib/argp* from glibc.
2003-07-07 Paul Eggert <eggert@twinsun.com>
* lib/mktime.c: Fix some boundary cases and remove need for floating
point.
Issue a compile-time diagnostic if time_t is floating point, or if
two's complement arithmetic is not in effect, or if arithmetic
right shift does not propagate the sign. These assumptions were
all in the original code but they weren't checked.
(TIME_T_MIDPOINT, verify): New macros.
(__isleap): Remove; it has integer overflow problems.
(leapyear): New function, without those problems.
(ydhms_tm_diff): Remove; splitting into two parts.
(ydhms_diff): New function, containing the arithmetic part of
the old ydhms_tm_diff function. Issue a compile-time
diagnostic if we are not using C99 integer division.
Avoid casts when possible.
(guess_time_tm): New function, containing the checking part of
the old ydhms_tm_diff function. Return the new value, rather than
the difference between it and the old. Accept a new argument T
so that *T specifies the old value. Check for overflow in the result.
(__mktime_internal): Use a time_t offset, not a long int offset.
This undoes the 2003-06-04 change, which is no longer needed now
that we have better overflow checking.
(localtime_offset): Likewise.
(__mktime_internal): Avoid harmful overflow on hosts where time_t
and long are 64-bit but int is only 32-bit.
(ydhms_diff): Use long int to store year1 and yday1.
Issue a compile-time diagnostic if long int is not wide enough.
(__mktime_internal): Use long int to store adjusted year and yday.
Use plain C rather than preprocessor commands, if that doesn't
affect efficiency.
Check for overflow (and try to repair) after each probe
rather than checking only at the very end. This avoids some bugs
(e.g., southern hemisphere, behind GMT, and GMT offset at minimum time
does not equal GMT offset at maximum time).
Use integer to check for overflow rather than floating point; this
is more portable to non-IEEE hosts, and is a tad faster.
When we detect that we are oscillating between two values,
don't check whether tm_isdst has the requested value, since
we already know the answer. When tm_isdst has the wrong value,
use a different heuristic to find the right one, based on the
extreme values actually observed in practice in tz2003a,
rather than the (overly optimistic) "previous 3 calendar quarters".
(not_equal_tm, print_tm, check_result): Use "const T" rather than
"T const" to accommodate glibc style.
(check_result): Use less-confusing report format. "long" -> "long int.
(main): Likewise.
Don't loop if the iteration overflows time_t.
Allow a negative step in the iteration.
2003-07-06 Karl Berry <karl@gnu.org>
* config/depcomp: update from automake.
* config/config.sub: update from prep.
2003-07-03 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2003-07-01 Paul Eggert <eggert@twinsun.com>
* m4/xreadlink.m4 (gl_XREADLINK): Don't check for sys/types.h, since
xreadlink.c now includes it unconditionally.
2003-07-01 Paul Eggert <eggert@twinsun.com>
* lib/xreadlink.c: Include <sys/types.h> unconditionally, instead of
having it depend on HAVE_SYS_TYPES_H.
2003-07-01 Bruno Haible <bruno@clisp.org>
* m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Don't include <unistd.h>.
<sys/types.h> should be sufficient.
Reported by Paul Eggert.
2003-06-26 Karl Berry <karl@gnu.org>
* config/depcomp: update from automake.
2003-06-26 Bruno Haible <bruno@clisp.org>
* modules/human: Depend on module stdbool.
2003-06-25 Bruno Haible <bruno@clisp.org>
* modules/readlink: New file.
* modules/xreadlink: Depend on it.
* MODULES.html.sh (func_all_modules): Add readlink.
2003-06-25 Bruno Haible <bruno@clisp.org>
* m4/readlink.m4: New file.
2003-06-25 Bruno Haible <bruno@clisp.org>
* lib/readlink.c: New file.
2003-06-22 Karl Berry <karl@gnu.org>
* config/srclist.txt: update mkinstalldirs from automake.
* config/mkinstalldirs: update.
2003-06-22 Bruno Haible <bruno@clisp.org>
Portability to mingw32.
* m4/ssize_t.m4: New file, from GNU gettext.
* m4/safe-read.m4 (gl_PREREQ_SAFE_READ): Require gt_TYPE_SSIZE_T.
* m4/xreadlink.m4 (gl_XREADLINK): Require gt_TYPE_SSIZE_T.
2003-06-22 Bruno Haible <bruno@clisp.org>
* modules/safe-read: Add m4/ssize_t.m4.
* modules/xreadlink: Add m4/ssize_t.m4.
2003-06-20 Bruno Haible <bruno@clisp.org>
Assume C89, so PARAMS isn't needed.
* lib/unicodeio.h (PARAMS): Remove.
* lib/unicodeio.c: Don't use PARAMS.
2003-06-18 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from prep.
2003-06-18 Jim Meyering <jim@meyering.net>
Merge changes from coreutils.
* lib/readutmp.c: Include <string.h> and <stdlib.h> unconditionally.
Remove explicit declarations of xmalloc and realloc.
Include xalloc.h.
(read_utmp): Remove anachronistic cast of xmalloc.
2003-06-17 Paul Eggert <eggert@twinsun.com>
Assume C89, so PARAMS isn't needed.
* lib/backupfile.h (PARAMS): Remove. All uses removed.
* lib/closeout.h, lib/dirname.h, lib/filemode.h, lib/fsusage.h,
lib/getdate.h, lib/getline.h, lib/group-member.h, lib/hard-locale.h,
lib/hash.h, lib/linebuffer.h, lib/long-options.h, lib/makepath.h,
lib/memcasecmp.h, lib/memcoll.h, lib/modechange.h, lib/mountlist.h,
lib/path-concat.h, lib/physmem.h, lib/posixtm.h, lib/quote.h,
lib/readutmp.h, lib/same.h, lib/save-cwd.h, lib/savedir.h,
lib/stdio-safer.h, lib/strtoimax.c, lib/strverscmp.h,
lib/unistd-safer.h, lib/version-etc.h, lib/xalloc.h, lib/xreadlink.h,
lib/xstrtod.h, lib/xstrtol.h: Likewise.
* lib/filemode.h, lib/hard-locale.h, lib/memcoll.h, lib/modechange.h,
lib/physmem.h, lib/same.h, lib/strverscmp.h: Do not include config.h;
no longer needed. Anyway, config.h should always be included before any
other file.
2003-06-11 Simon Josefsson <jas@extundo.com>
* modules/sysexits: New file.
* MODULES.html.sh (func_all_modules): Add sysexits.
2003-06-11 Simon Josefsson <jas@extundo.com>
* lib/sysexit_.h: New file.
2003-06-11 Derek Price <derek@ximbiot.com>
* lib/stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is
necessary.
2003-06-11 Bruno Haible <bruno@clisp.org>
* m4/sysexits.m4: New file.
2003-06-10 Simon Josefsson <jas@extundo.com>
* lib/argp.h: New file, from glibc.
* lib/argp-ba.c: New file, from glibc.
* lib/argp-eexst.c: New file, from glibc.
* lib/argp-fmtstream.c: New file, from glibc.
* lib/argp-fmtstream.h: New file, from glibc.
* lib/argp-fs-xinl.c: New file, from glibc.
* lib/argp-help.c: New file, from glibc.
* lib/argp-namefrob.h: New file, from glibc.
* lib/argp-parse.c: New file, from glibc.
* lib/argp-pv.c: New file, from glibc.
* lib/argp-pvh.c: New file, from glibc.
* lib/argp-xinl.c: New file, from glibc.
2003-06-10 Simon Josefsson <jas@extundo.com>
* modules/strchrnul: New file.
2003-06-10 Simon Josefsson <jas@extundo.com>
* modules/argp: New file.
2003-06-10 Simon Josefsson <jas@extundo.com>
* m4/strchrnul.m4: New file.
2003-06-10 Simon Josefsson <jas@extundo.com>
* lib/strchrnul.h: New file.
* lib/strchrnul.c: New file.
2003-06-10 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_all_modules): Add strchrnul and argp.
2003-06-07 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from prep.
2003-06-07 Jim Meyering <jim@meyering.net>
* modules/strtod: Use $(...) notation, not @...@ for
AC_REPLACE'd variables.
* modules/localcharset: Likewise.
2003-06-07 Jim Meyering <jim@meyering.net>
* lib/readtokens.h: Put `Free Software Foundation, Inc.'
in place of my name in the copyright comment.
Remove definition and uses of __P.
From coreutils.
* lib/stat.c: Don't declare xmalloc explicitly.
Instead, include "xalloc.h".
* lib/readtokens.c (readtokens): Remove anachronistic casts of xmalloc,
xrealloc, and xcalloc return values.
* lib/xgetcwd.c (xgetcwd): Include "xgetcwd.h".
Improve comment.
* lib/xgetcwd.h: Remove definition/uses of PARAMS.
2003-06-07 Bruno Haible <bruno@clisp.org>
* modules/poll (Makefile.am): Use explicit creation rule for poll.h, to
avoid AC_CONFIG_LINKS.
* modules/fnmatch (Makefile.am): Use explicit creation rule for
fnmatch.h, to avoid AC_CONFIG_LINKS.
* modules/alloca (Makefile.am): Make creation of alloca.h Ctrl-C safe.
2003-06-07 Bruno Haible <bruno@clisp.org>
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH, gl_FUNC_FNMATCH_POSIX,
gl_FUNC_FNMATCH_GNU): Set FNMATCH_H instead of invoking
AC_CONFIG_LINKS. Needed to allow for a different name of the lib
directory.
* m4/poll.m4 (gl_FUNC_POLL): Set POLL_H instead of invoking
AC_CONFIG_LINKS. Needed to allow for a different name of the lib
directory.
2003-06-06 Jim Meyering <jim@meyering.net>
Merge from coreutils.
* lib/same.c: (same_name): Declare *_basename locals to be `const'.
Consolidate declarations and initializations of *_base* locals.
Merge from coreutils.
This avoids a core dump on systems without GNU putenv,
when running `env -u SOME_ALREADY_UNSET_VARIABLE'.
* lib/putenv.c (__set_errno, LOCK, UNLOCK): Define.
(unsetenv): New static function, from GNU libc.
(rpl_putenv): Use it.
* lib/modechange.c: Remove trailing blanks.
Merge from coreutils.
* lib/fsusage.c: Remove declaration of statfs.
It conflicted with one from OSF/1 5.1 in <sys/mount.h>.
* lib/posixtm.c: Include <stdbool.h> unconditionally.
2003-06-06 Jim Meyering <jim@meyering.net>
* lib/stdbool_.h: Renamed from stdbool.h.in.
2003-06-06 Jim Meyering <jim@meyering.net>
Bruno Haible <bruno@clisp.org>
* modules/stdbool: Reflect renaming: stdbool.h.in -> stdbool_.h.
Adjust Makefile.am snippet not to redirect directly to target.
Use $(STDBOOL_H) notation, not @STDBOOL_H@ for AC_REPLACE'd variables.
2003-06-05 Paul Eggert <eggert@twinsun.com>
* lib/mktime.c (__mktime_internal): When resolving a tm_isdst
mismatch, look in future quarters as well as past. This fixes a
bug when processing fall-backwards gaps immediately after a long
period of daylight-saving time.
* lib/mktime.c: Assume freestanding C89 or better.
(HAVE_LIMITS_H): Remove. Assume it's 1.
(__P): Remove; not used.
(CHAR_BIT, INT_MIN, INT_MAX): Remove; <limits.h> defines them.
(mktime, not_equal_tm, print_tm, check_result,
main): Use prototypes. Use const * where appropriate.
(main): Fix typo in testing code that uncovered by above changes.
(Local Variables): Remove -DHAVE_LIMITS_H from compile-command.
2003-06-04 Paul Eggert <eggert@twinsun.com>
* m4/human.m4 (gl_HUMAN): Require AM_STDBOOL_H. Check for
locale.h, localeconv. This merges changes from coreutils.
* m4/mktime.m4 (AC_FUNC_MKTIME): New macro, taken from Autoconf CVS.
It can be removed after the next Autoconf is released.
* m4/exclude.m4 (gl_EXCLUDE): Don't check for sys/types.h; no loner
needed.
2003-06-04 Paul Eggert <eggert@twinsun.com>
* lib/mktime.c: Fix Debian bug 177940
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177940>.
(localtime_offset): Now long int, not time_t, because we want it
to be guaranteed to be signed. All uses changed.
(__mktime_internal): If overflow would occur when adding offset,
don't add it.
Merge 'human' changes from coreutils. Rewrite to support
locale-specific notations like thousands separators.
* lib/human.c: Simplify authorship notice.
Include human.h immediately after config.h.
<sys/types.h>, <stdio.h>: Do not include; no longer needed.
<limits.h>: Do not include, since human.h does.
(SIZE_MAX, UINTMAX_MAX): New macros.
<strings.h>: Include if HAVE_STRINGS_H, not if !HAVE_STRING_H.
<locale.h>: Include if HAVE_LOCALE_H and HAVE_LOCALECONV.
(HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro.
(power_letter): Renamed from suffixes.
(generate_suffix_backwards): Remove.
(adjust_value): Now takes int style (because of human.h changes)
and long double value (for greater precision on some platforms).
(group_number): New function.
(human_readable): Use it. Use integer options, not enum.
Put the options before the sizes in the arg list.
Support all the new options.
The old human_readable function has been removed;
use inttostr.h instead.
(human_readable, default_block_size, humblock):
Use uintmax_t, not int, for block sizes.
(human_readable_inexact, block_size_types): Remove.
(block_size_opts): New constant.
(human_options): Renamed from human_block_size, with new signature
that allows block sizes up to UINTMAX_MAX. All callers changed.
* lib/human.h: Add copyright and authorship notice.
Include <limits.h> and <stdbool.h> unconditionally.
(PARAMS): Remove. All uses removed.
(LONGEST_HUMAN_READABLE): Add support for thousands separator.
(enum human_inexact_style): Remove tag; now a nameless enum.
(human_floor, human_ceiling, human_round_to_even): Now have
values 2, 0, 1 rather than -1, 1, 0.
(human_group_digits, human_suppress_point_zero, human_autoscale,
human_base_1024, human_SI, human_B): New constants.
(human_readable_inexact, human_block_size): Remove.
(human_readable): Size args are now uintmax_t, not int.
(human_options): New decl.
* lib/exclude.c: (new_exclude, add_exclude): Remove casts that are
unnecessary now that we assume C89 or better. This change
imported from coreutils.
* lib/mktime.c (__mktime_internal): Do not reject negative timestamps
arbitrarily. This is the same patch as 2003-05-28, but it got lost
in the 2003-05-30 sync from glibc.
.h files should stand alone, but we shouldn't include <sys/types.h>
if we can get away with just <stddef.h>.
* lib/__fpending.h, addext.c, backupfile.c, exclude.c, getline.c,
malloc.c, putenv.c, realloc.c, strcasecmp.c: Include <stddef.h>
rather than <sys/types.h>, as we merely need size_t.
* lib/dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include <stddef.h>,
to get size_t.
* lib/hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h:
Include <stdio.h>, to get FILE.
* lib/memcasecmp.c: Don't include <sys/types.h>, as we can assume
memcasecmp.h has included <stddef.h> and all we need is size_t.
* lib/memcoll.c: Include "memcoll.h", which gets us size_t and checks
our interface, instead of including <sys/types.h>
2003-06-04 Paul Eggert <eggert@twinsun.com>
* config/srclist.txt ($LIBCSRC/time/mktime.c lib gpl): Comment out for
now, as glibc mktime is buggy on non-glibc systems.
2003-06-03 Karl Berry <karl@gnu.org>
* config/config.sub: update from prep.
2003-06-02 Paul Eggert <eggert@twinsun.com>
[from coreutils]
Fix some minor time-related bugs with POSIX time arguments.
Some valid time stamps were being rejected (notably -1, and
time stamps before 1900 on 64-bit hosts). And some invalid
time stamps were being accepted, e.g. September 31.
* lib/posixtm.h (posixtime): Return bool instead of time_t, so
that we can return (time_t) -1 successfully.
* lib/posixtm.c: Likewise.
[HAVE_STDBOOL_H]: Include <stdbool.h>.
(bool, false, true) [!HAVE_STDBOOL_H]: New type.
(t): Remove static var.
(year, posix_time_parse): Now takes struct tm * arg to modify, instead
of static var. All uses changed.
(year): Do not reject years before 1900; they can occur with
64-bit time_t.
(posix_time_parse): Do not check for out-of-range components;
that is now the caller's responsibility, since our checks were
only approximations.
(posixtime): Use mktime to check for out-of-range components,
since it knows them exactly.
If mktime returns (time_t) -1, check whether an error actually occurred
by invoking localtime on -1.
(main) [TEST_POSIXTIME]: Check for input data errors, and report
posixtime failures better.
Improve the test data (in comments only).
2003-06-02 Karl Berry <karl@gnu.org>
* config/mkinstalldirs (version): new variable.
(--version): new option.
(usage): improve message.
2003-05-30 Karl Berry <karl@gnu.org>
* lib/mktime.c: update from libc.
2003-05-30 Bruno Haible <bruno@clisp.org>
* modules/gettext: Add files m4/nls.m4 and m4/po.m4.
* config/config.rpath: Upgrade to gettext-0.12.1.
2003-05-30 Bruno Haible <bruno@clisp.org>
* m4/gettext.m4: Upgrade to gettext-0.12.1.
* m4/nls.m4: New file, from gettext-0.12.1.
* m4/po.m4: New file, from gettext-0.12.1.
* m4/progtest.m4: Upgrade to gettext-0.12.1.
2003-05-30 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1.
* lib/localcharset.h: Likewise.
* lib/localcharset.c: Likewise.
2003-05-29 Karl Berry <karl@gnu.org>
* config/config.rpath: update from gettext.
2003-05-28 Paul Eggert <eggert@twinsun.com>
Assume the headers required for C89 freestanding compilers.
* m4/backupfile.m4 (gl_BACKUPFILE): Don't check for limits.h.
* m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Likewise.
* m4/human.m4 (gl_HUMAN): Likewise.
* m4/pathmax.m4 (gl_PATHMAX): Likewise.
* m4/rpmatch.m4 (gl_FUNC_RPMATCH): Likewise.
* m4/userspec.m4 (gl_USERSPEC): Likewise.
* m4/xreadlink.m4 (gl_XREADLINK): Likewise.
* m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise.
* m4/quote.m4 (gl_QUOTE): Don't check for stddef.h.
2003-05-28 Paul Eggert <eggert@twinsun.com>
Assume the headers required for C89 freestanding compilers.
* lib/addext.c, lib/backupfile.c, lib/fsusage.c, lib/human.c,
lib/pathmax.h, lib/rpmatch.c, lib/userspec.c, lib/xreadlink.c,
lib/xstrtol.c: Include <limits.h> without checking for HAVE_LIMITS_H.
* lib/backupfile.c, lib/fsusage.c, lib/hash.c, lib/human.c,
lib/safe-read.c, lib/userspec.c, lib/xstrtol.c (CHAR_BIT): Don't
define, since <limits.h> is guaranteed to do that.
* lib/fatal.c: Include <stdarg.h> without checking for __STDC__.
* lib/exclude.c: Include <stdbool.h> unconditionally.
* lib/tempname.c: Include <stddef.h> unconditionally.
* lib/hash.c: Include <limits.h>, since we no longer define CHAR_BIT.
* lib/modechange.c, rpmatch.c (NULL): Don't define, since
<stddef.h> does that.
* lib/quote.c: Dont include <stddef.h> or <sys/types.h>; not needed.
* lib/safe-read.c (INT_MAX): Don't define, since <limits.h> does that.
* lib/safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer
needed.
* lib/xstrtol.c: Likewise.
* lib/safe-read.c: Remove TYPE_SIGNED; no longer needed.
* lib/savedir.c: Include <stddef.h> instead of defining NULL.
* lib/addext.c (addext): Use assignment rather than cast, to avoid
warnings on some platforms.
* lib/mktime.c (__mktime_internal): Do not reject negative timestamps
arbitrarily.
2003-05-26 Jim Meyering <jim@meyering.net>
Merge in a change from coreutils:
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Test the cache variable, not one
that is guaranteed to be `no'. Use `no_such_member' to indicate
that condition, rather than `-1' which is slightly misleading.
Change the name of the cache variable to have the gl_ prefix.
Prompted by a patch from Richard Dawe for DJGPP.
2003-05-24 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2003-05-22 Karl Berry <karl@gnu.org>
* gnulib-tool (func_usage): =LIBRARY not =libRARY in help msg.
2003-05-20 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2003-05-18 Karl Berry <karl@gnu.org>
* config/srclistvars.sh (TEXMF): use TEXMFROOT instead, since TEXMF
might actually be set by the user.
* config/depcomp, install-sh, mdate-sh: update from automake.
2003-05-17 Bruno Haible <bruno@clisp.org>
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Fix a quoting bug leading to an
invalid expansion for AC_EGREP_CPP.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise.
Suggested by Akim Demaille <akim@epita.fr> in
http://mail.gnu.org/r/bug-autoconf/2003-05/threads.html
2003-05-12 Jim Meyering <jim@meyering.net>
* lib/strftime.c (my_strftime): Let the `-' (no-pad) flag affect
the space-padded-by-default conversion specifiers, %e, %k, %l.
2003-05-12 Bruno Haible <bruno@clisp.org>
* lib/linebreak.c (iconv_string_length): Don't return -1 just because
the string is longer than 4 KB.
2003-05-11 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from prep.
2003-05-09 Bruno Haible <bruno@clisp.org>
* modules/error: Add m4/strerror_r.m4 to file list.
2003-05-03 Bruno Haible <bruno@clisp.org>
Upgrade to Unicode-4.0.
* lib/linebreak.c (nonspacing_table_data): Change width of U+00AD,
U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615,
U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5,
U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B
from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1.
(uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width
of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2.
Change width of U+E0100..U+E01EF from 1 to 0.
2003-04-25 Jim Meyering <jim@meyering.net>
* lib/copy-file.c (copy_file_preserving): Declare buf_size to be
of type size_t, not int.
2003-04-25 Bruno Haible <bruno@clisp.org>
* lib/copy-file.c: Include <stddef.h>, for size_t.
2003-04-21 Paul Eggert <eggert@twinsun.com>
* m4/error.m4 (gl_ERROR): Do not put under dynamic conditions some
code which expansion is under static control. Patch imported from
Akim Demaille's patch to Bison; see
<http://mail.gnu.org/r/bison-patches/2003-03/msg00057.html>.
2003-04-14 Bruno Haible <bruno@clisp.org>
* m4/error.m4 (jm_PREREQ_ERROR): Use AC_FUNC_VPRINTF.
2003-04-11 Jim Meyering <jim@meyering.net>
Merge changes from Coreutils.
2003-03-22 Jim Meyering <jim@meyering.net>
* lib/strftime.c (widen): Cast alloca return value to proper type.
2003-01-19 Ulrich Drepper <drepper@redhat.com>
From GNU libc.
* lib/strftime.c (my_strftime): Handle very large width
specifications for numeric values correctly. Improve checks for
overflow.
2003-01-19 Jim Meyering <jim@meyering.net>
* lib/strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical
definitions.
(nl_get_alt_digit) [! defined my_strftime]: Define.
(my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of
_nl_get_alt_digit and _nl_get_walt_digit.
* lib/strftime.c (my_strftime): Merge in locale-related changes from
libc. These changes have no effect outside of _LIBC.
2003-04-10 Bruno Haible <bruno@clisp.org>
* modules/findprog: New file.
* MODULES.html.sh (func_all_modules): Add it.
2003-04-10 Bruno Haible <bruno@clisp.org>
* m4/findprog.m4: New file.
* m4/eaccess.m4: New file.
2003-04-10 Bruno Haible <bruno@clisp.org>
* lib/findprog.h: New file, from GNU gettext.
* lib/findprog.c: New file, from GNU gettext.
2003-04-05 Jim Meyering <jim@meyering.net>
Merge changes from Coreutils.
* lib/exclude.h (PARAMS): Remove definition and uses.
* lib/exclude.c: Remove uses of `PARAMS'.
* lib/dirname.c [TEST_DIRNAME]: Update build instructions for test.
Add test-cases for DOS filenames. Declare program_name.
(main): Set up program_name. Patch by Rich Dawe.
* lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any
error from mntctl.
Use mntctl's return value to drive the entry-processing loop, since
we can't rely on the value of the vmt_length member in the last
entry. On some systems doing so could result in exhausting
virtual memory. Based in part on a patch from Mike Jetzer.
2003-04-04 Bruno Haible <bruno@clisp.org>
* modules/linebreak: New file.
* MODULES.html.sh (func_all_modules): Add it.
2003-04-04 Bruno Haible <bruno@clisp.org>
* m4/linebreak.m4: New file.
2003-04-04 Bruno Haible <bruno@clisp.org>
* lib/linebreak.h: New file, from GNU gettext.
* lib/linebreak.c: New file, from GNU gettext with slight
modifications.
* lib/lbrkprop.h: New file, from GNU gettext.
2003-04-03 Bruno Haible <bruno@clisp.org>
* modules/utf8-ucs4: New file.
* modules/utf16-ucs4: New file.
* modules/ucs4-utf8: New file.
* modules/ucs4-utf16: New file.
* MODULES.html.sh (func_all_modules): Add them.
2003-04-03 Bruno Haible <bruno@clisp.org>
* m4/utf-ucs4.m4: New file.
* m4/ucs4-utf.m4: New file.
2003-04-03 Bruno Haible <bruno@clisp.org>
* lib/utf8-ucs4.h: New file, from GNU gettext.
* lib/utf16-ucs4.h: New file, from GNU gettext.
* lib/ucs4-utf8.h: New file, from GNU gettext.
* lib/ucs4-utf16.h: New file, from GNU gettext.
2003-04-02 Bruno Haible <bruno@clisp.org>
* modules/binary-io: New file.
* MODULES.html.sh (func_all_modules): Add it.
2003-04-02 Bruno Haible <bruno@clisp.org>
* lib/binary-io.h: New file, from GNU gettext.
2003-04-01 Bruno Haible <bruno@clisp.org>
* modules/pathname: New file.
* MODULES.html.sh (func_all_modules): Add it.
2003-04-01 Bruno Haible <bruno@clisp.org>
* lib/pathname.h: New file, from GNU gettext.
* lib/concatpath.c: New file, from GNU gettext.
2003-03-30 Bruno Haible <bruno@clisp.org>
* m4/copy-file.m4 (gl_COPY_FILE): Add check for chown().
2003-03-30 Bruno Haible <bruno@clisp.org>
* lib/copy-file.c (copy_file_preserving): Don't set owner if the
function chown() doesn't exist.
2003-03-28 Bruno Haible <bruno@clisp.org>
* modules/copy-file: New file.
* MODULES.html.sh (func_all_modules): Add it.
2003-03-28 Bruno Haible <bruno@clisp.org>
* m4/copy-file.m4: New file.
2003-03-28 Bruno Haible <bruno@clisp.org>
* lib/copy-file.h: New file, from GNU gettext.
* lib/copy-file.c: New file, from GNU gettext.
2003-03-18 Jim Meyering <jim@meyering.net>
* lib/quote.c (quote_n): Fix typo in comment.
2003-03-18 Bruno Haible <bruno@clisp.org>
* m4/onceonly.m4: Use m4_defn instead of defn, for better error
checking.
* m4/onceonly_2_57.m4: Likewise.
2003-03-17 Bruno Haible <bruno@clisp.org>
* m4/onceonly.m4: Require autoconf 2.54 or newer.
(m4_quote): Remove macro.
* m4/onceonly_2_57.m4: Require autoconf 2.54 or newer.
2003-03-14 Jim Meyering <jim@meyering.net>
Merge changes from Coreutils.
* lib/obstack.h (obstack_object_size): Declare temporary, __o,
to be const, in order to avoid warnings.
(obstack_room): Likewise.
(obstack_empty_p): Likewise.
2003-03-14 Bruno Haible <bruno@clisp.org>
* m4/onceonly_2_57.m4 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE,
AC_CHECK_DECLS_ONCE): Quote AC_FOREACH variable-expansions properly.
2003-03-13 Paul Eggert <eggert@twinsun.com>
Merge changes from Bison.
* lib/obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to
(void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
when compiling Bison 1.875's `bitset bset = obstack_alloc
(bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
* lib/hash.c: Include <stdbool.h> unconditionally.
2003-03-13 Paul Eggert <eggert@twinsun.com>
* m4/onceonly.m4 (m4_quote): New macro.
(AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
Quote AC_FOREACH variable-expansions properly.
2003-03-13 Paul Eggert <eggert@twinsun.com>
* doc/COPYING.DOC, fdl.texi: Sync with latest FSF version.
2003-03-09 Paul Eggert <eggert@twinsun.com>
* lib/argmatch.c (EXIT_FAILURE): Define if the system doesn't.
Reported by Bruce Becker; see:
http://mail.gnu.org/r/bug-bison/2003-03/msg00017.html
2003-03-03 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* lib/mbswidth.h: Include <wchar.h>. Needed for UnixWare 7.1.1.
Reported by John Hughes, see
http://mail.gnu.org/r/bug-bison/2003-02/msg00030.html
2003-02-20 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_all_modules): Add poll.
2003-02-19 Paolo Bonzini <bonzini@gnu.org>
* modules/poll: New file.
2003-02-19 Paolo Bonzini <bonzini@gnu.org>
* lib/poll_.h: New file.
* lib/poll.c: New file.
2003-02-19 Paolo Bonzini <bonzini@gnu.org>
* m4/poll.m4: New file.
2003-02-18 Paolo Bonzini <bonzini@gnu.org>
* modules/mathl: New file.
2003-02-18 Paolo Bonzini <bonzini@gnu.org>
* lib/mathl.h: New file.
* lib/acosl.c: New file.
* lib/asinl.c: New file.
* lib/atanl.c: New file.
* lib/ceill.c: New file.
* lib/cosl.c: New file.
* lib/expl.c: New file.
* lib/floorl.c: New file.
* lib/frexpl.c: New file.
* lib/ldexpl.c: New file.
* lib/logl.c: New file.
* lib/sincosl.c: New file.
* lib/sinl.c: New file.
* lib/sqrtl.c: New file.
* lib/tanl.c: New file.
* lib/trigl.c: New file.
* lib/trigl.h: New file.
2003-02-18 Paolo Bonzini <bonzini@gnu.org>
* m4/mathl.m4: New file.
2003-02-18 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh (func_all_modules): Add mathl.
2003-02-17 Bruno Haible <bruno@clisp.org>
* modules/mkdtemp: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-02-17 Bruno Haible <bruno@clisp.org>
* m4/mkdtemp.m4: New file, from GNU gettext with modifications.
2003-02-17 Bruno Haible <bruno@clisp.org>
* lib/mkdtemp.h: New file, from GNU gettext.
* lib/mkdtemp.c: New file, from GNU gettext.
2003-02-02 Jim Meyering <jim@meyering.net>
* m4/regex.m4 (jm_INCLUDED_REGEX): Detect broken re_search in
e.g. glibc-2.2.93.
2003-01-31 Bruno Haible <bruno@clisp.org>
* m4/rename.m4 (vb_FUNC_RENAME): Add a redirection from 'rename' to
'rpl_rename'.
* m4/strnlen.m4 (gl_FUNC_STRNLEN): Add a redirection from 'strnlen' to
'rpl_strnlen'.
* m4/strtod.m4 (gl_FUNC_STRTOD): Add a redirection from 'strtod' to
'rpl_strtod'.
* m4/utime.m4 (jm_FUNC_UTIME): Add a redirection from 'utime' to
'rpl_utime'.
2003-01-31 Bruno Haible <bruno@clisp.org>
* lib/rename.c: #undef rename before defining rpl_rename.
* lib/strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen.
2003-01-30 Bruno Haible <bruno@clisp.org>
* modules/vasnprintf, modules/vasprintf: New modules.
* MODULES.html.sh (func_all_modules): Add them.
2003-01-30 Bruno Haible <bruno@clisp.org>
* m4/signed.m4: New file, from GNU gettext.
* m4/longdouble.m4: New file, from GNU gettext.
* m4/wchar_t.m4: New file, from GNU gettext.
* m4/wint_t.m4: New file, from GNU gettext.
* m4/vasnprintf.m4: New file.
* m4/vasprintf.m4: New file.
2003-01-30 Bruno Haible <bruno@clisp.org>
* lib/printf-args.h: New file, from GNU gettext.
* lib/printf-args.c: New file, from GNU gettext.
* lib/printf-parse.h: New file, from GNU gettext.
* lib/printf-parse.c: New file, from GNU gettext.
* lib/vasnprintf.h: New file, from GNU gettext.
* lib/vasnprintf.c: New file, from GNU gettext.
* lib/asnprintf.c: New file, from GNU gettext.
* lib/vasprintf.h: New file, from GNU gettext with modifications.
* lib/vasprintf.c: New file, from GNU gettext.
* lib/asprintf.c: New file, from GNU gettext.
2003-01-29 Bruno Haible <bruno@clisp.org>
* modules/stpncpy: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-29 Bruno Haible <bruno@clisp.org>
* m4/stpncpy.m4: New file.
2003-01-29 Bruno Haible <bruno@clisp.org>
* lib/stpncpy.h: New file, from GNU gettext with modifications.
* lib/stpncpy.c: New file, from GNU gettext with modifications.
2003-01-28 Bruno Haible <bruno@clisp.org>
* modules/c-ctype: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-28 Bruno Haible <bruno@clisp.org>
* lib/c-ctype.h: New file, from GNU gettext, with changes suggested by
Paul Eggert.
* lib/c-ctype.c: New file, from GNU gettext, with changes suggested by
Paul Eggert.
2003-01-27 Bruno Haible <bruno@clisp.org>
* modules/xsetenv: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-27 Bruno Haible <bruno@clisp.org>
* lib/xsetenv.h: New file, from GNU gettext.
* lib/xsetenv.c: New file, from GNU gettext.
2003-01-23 Jim Meyering <jim@meyering.net>
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Correct typo: s/-1/no/ that kept this
from working on systems without dirfd (at least Irix and OSF1/Tru64).
2003-01-23 Bruno Haible <bruno@clisp.org>
* modules/minmax: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-23 Bruno Haible <bruno@clisp.org>
* lib/minmax.h: New file, from GNU gettext, with comments from Paul
Eggert.
2003-01-22 Bruno Haible <bruno@clisp.org>
* modules/exit: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-22 Bruno Haible <bruno@clisp.org>
* lib/exit.h: New file, from GNU gettext.
2003-01-19 Bruno Haible <bruno@clisp.org>
* gnulib-tool: Recognize option --extract-maintainer.
(func_get_maintainer): New function.
* modules/*: Add Maintainer entry.
2003-01-16 Jim Meyering <jim@meyering.net>
* m4/regex.m4: The `regex' struct is both input and output.
Initialize it before each use. Patch by Tim Waugh.
2003-01-16 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Add a table of contents. Add the module name as
leftmost column. Add hyperlinks.
2003-01-15 Bruno Haible <bruno@clisp.org>
* m4/md5.m4 (gl_MD5): Require AC_C_INLINE.
2003-01-15 Bruno Haible <bruno@clisp.org>
* m4/longlong.m4 (jm_AC_TYPE_LONG_LONG): Also test the LL suffix.
* m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Also test the ULL
suffix.
2003-01-15 Bruno Haible <bruno@clisp.org>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Invoke AC_EGREP_CPP prerequisites.
2003-01-15 Bruno Haible <bruno@clisp.org>
* lib/stpcpy.h (stpcpy): Use ANSI C function declarations.
* lib/strcase.h (strcasecmp, strncasecmp): Likewise.
2003-01-14 Jim Meyering <jim@meyering.net>
* lib/same.c (same_name): Tweak a comment.
2003-01-14 Bruno Haible <bruno@clisp.org>
* lib/same.c (same_name): Reorder tests so as to avoid calling stat()
when a string comparison is sufficient.
2003-01-14 Bruno Haible <bruno@clisp.org>
* lib/readtokens.c (readtoken): Cast character to 'unsigned char', not
'unsigned int'.
2003-01-14 Bruno Haible <bruno@clisp.org>
* lib/hash-pjw.c: Add comment about low quality of this function.
2003-01-13 Bruno Haible <bruno@clisp.org>
* modules/stpcpy: Distribute lib/stpcpy.h.
* modules/setenv: Depend on alloca. Distribute lib/setenv.h.
2003-01-13 Bruno Haible <bruno@clisp.org>
* modules/*: Add a description.
* modules/strpbrk: Fix Makefile.am snippet.
* modules/strtoimax: Fix dependencies.
* modules/strtoumax: Likewise.
2003-01-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Substitute lib_OBJECTS.
* modules/alloca (Makefile.am): All object files depend on alloca.h.
* modules/stdbool (Makefile.am): All object files depend on stdbool.h.
2003-01-13 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_create_testdir): Store config/* files in the main
directory.
* config.rpath: Move to ...
* config/config.rpath: ... here.
* modules/gettext: Contains config/config.rpath, not config.rpath.
* modules/iconv: Likewise.
2003-01-12 Paul Eggert <eggert@twinsun.com>
Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
to avoid collisions with libcurses and libreadline.
* m4/getstr.m4: Remove.
* m4/getline.m4 (gl_PREREQ_GETLINE): Require AC_HEADER_STDC.
2003-01-12 Paul Eggert <eggert@twinsun.com>
Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
to avoid collisions with libcurses and libreadline.
* lib/Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h.
* lib/getstr.h, getstr.c: Remove.
* lib/getline.c: Include "getline.h", to check interface.
Move body of old getstr.c here: this defines MIN_CHUNK and
declares getdelim2, which is renamed from getstr.
(getline, getdelim): Adjust to renaming of getstr -> getdelim2.
* lib/linebuffer.c (readlinebuffer): Renamed from readline.
All uses changed.
* lib/linebuffer.h: Likewise.
(readline): Remove backward-compatibility macro.
2003-01-12 Paul Eggert <eggert@twinsun.com>
Finish renaming getstr -> getdelim2 and readline -> readlinebuffer,
to avoid collisions with libcurses and libreadline.
* getstr: Remove.
* MODULES.html.sh: Remove getstr.
* modules/getline: Depend on unlocked-io, not getstr.
2003-01-12 Jim Meyering <jim@meyering.net>
* lib/makepath.c: Don't test HAVE_ERRNO_H. It's not necessary.
2003-01-10 Bruno Haible <bruno@clisp.org>
* modules/alloca: Change Makefile.am requirements. Simplify Include
requirements. Add lib/alloca_.h to file list.
2003-01-10 Bruno Haible <bruno@clisp.org>
* m4/alloca.m4 (gl_FUNC_ALLOCA): Also define ALLOCA_H.
2003-01-10 Bruno Haible <bruno@clisp.org>
* lib/alloca_.h: New file.
* lib/getdate.y: Unconditionally include alloca.h.
* lib/makepath.c: Likewise.
* lib/setenv.c: Likewise.
* lib/userspec.c: Likewise.
2003-01-09 Karl Berry <karl@gnu.org>
* MODULES.html.sh: include `dirname $0` in PATH, to find
gnulib-tool.
2003-01-09 Bruno Haible <bruno@clisp.org>
* modules/stdbool: Change configure.ac, Makefile.am requirements.
Simplify Include requirements. Add lib/stdbool.h.in to file list.
2003-01-09 Bruno Haible <bruno@clisp.org>
* m4/stdbool.m4 (AM_STDBOOL_H): New macro.
2003-01-09 Bruno Haible <bruno@clisp.org>
* lib/stdbool.h.in: New file.
2003-01-09 Bruno Haible <bruno@clisp.org>
* gnulib-tool (func_all_modules): Ignore files ending in ~.
* MODULES.html.sh: Likewise.
2003-01-08 Jim Meyering <jim@meyering.net>
* lib/full-write.c: Undefine and define-away `const' after inclusion
of errno.h, not before. Suggestion from Bruno Haible.
2003-01-08 Bruno Haible <bruno@clisp.org>
* modules/full-read: Depend on full-write.
2003-01-08 Bruno Haible <bruno@clisp.org>
* lib/safe-read.c: Include specification header first, to ensure its
selfcontainedness.
* lib/full-write.c: Likewise.
2003-01-07 Jim Meyering <jim@meyering.net>
* lib/full-write.c: Rework so that it may serve to define full_read,
too.
* lib/full-read.c: Simply #define FULL_READ and include full-write.c.
2003-01-07 Bruno Haible <bruno@clisp.org>
* lib/strtoimax.c: Include <stdint.h> as an alternative to
<inttypes.h>.
* lib/xstrtol.h: Likewise.
* lib/xstrtoimax.c: Likewise.
* lib/xstrtoumax.c: Likewise.
* lib/human.h: Likewise.
* lib/tempname.c: Include <inttypes.h> too. Avoids a compilation error
on systems that have <inttypes.h> but not <stdint.h>.
2003-01-07 Bruno Haible <bruno@clisp.org>
* MODULES.html.sh: Add copyright notice.
(missed_files): Omit CVS directory entries.
(func_module): Make it work with sed-3.02.
* MODULES.txt: Remove file.
2003-01-06 Jim Meyering <jim@meyering.net>
* lib/version-etc.c: Update year in translatable copyright string.
2003-01-03 Karl Berry <karl@gnu.org>
* config/config.{guess,sub}: update from prep.
2003-01-02 Karl Berry <karl@gnu.org>
* doc/COPYING.DOC: belatedly updated to 1.2.
2003-01-01 Karl Berry <karl@gnu.org>
* gnulib-tool (func_verify_module): report module name $module in
error message, not $1.
* gnulib-tool (create-testdir): don't complain if destdir couldn't
be created, only if it doesn't exist.
* gnulib-tool (last_checkin_date): don't expand the $Date here.
2002-12-31 Paul Eggert <eggert@twinsun.com>
* m4/memcoll.m4 (gl_MEMCOLL): Require AC_FUNC_MEMCMP.
2002-12-31 Paul Eggert <eggert@twinsun.com>
* lib/memcoll.c (memcoll): Fall back on a simple algorithm using
memcmp if strcoll doesn't work.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/utime.c (utime_null): No need to call ftruncate if the file was
nonempty.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/memcoll.c (STRCOLL): New macro.
(memcoll): Use it.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/localcharset.h: New file.
* lib/localcharset.c: Include it.
* lib/unicodeio.c: Likewise.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/getstr.h (getstr): Define, to avoid clash with libcurses.
* lib/linebuffer.h (readline): Define, to avoid clash with libreadline.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/getline.h: Include <stddef.h>, for size_t.
* lib/unicodeio.h: Include <stddef.h>, for size_t.
* lib/unicodeio.c: Don't include <stddef.h>.
2002-12-31 Bruno Haible <bruno@clisp.org>
* lib/getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not
HAVE_TM_ZONE.
2002-12-24 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2002-12-24 Bruno Haible <bruno@clisp.org>
General infrasructure.
* m4/README: Rewritten.
* m4/onceonly.m4: New file.
* m4/onceonly_2_57.m4: New file.
Module atexit.
* m4/atexit.m4: New file.
Module strtod.
* m4/strtod.m4: New file.
Module strtol.
* m4/strtol.m4: New file.
Module strtoul.
* m4/strtoul.m4: New file.
Module memchr.
* m4/memchr.m4: New file.
Module memcmp.
* m4/memcmp.m4 (gl_PREREQ_MEMCMP): New macro.
(jm_FUNC_MEMCMP): Invoke it.
Module memcpy.
* m4/memcpy.m4: New file.
Module memmove.
* m4/memmove.m4: New file.
Module memset.
* m4/memset.m4: New file.
Module strcspn.
* m4/strcspn.m4: New file.
Module strpbrk.
* m4/strpbrk.m4: New file.
Module strstr.
* m4/strstr.m4: New file.
Module strerror.
* m4/strerror.m4: New file.
Module mktime.
* m4/mktime.m4: Renamed from jm-mktime.m4.
(gl_PREREQ_MKTIME): New macro.
(gl_FUNC_MKTIME): Renamed from jm_FUNC_MKTIME. Invoke gl_PREREQ_MKTIME.
Module malloc.
* m4/malloc.m4 (gl_PREREQ_MALLOC): New macro.
(jm_FUNC_MALLOC): Use AC_FUNC_MALLOC. Invoke gl_PREREQ_MALLOC.
Don't define HAVE_DONE_WORKING_MALLOC_CHECK, since nothing uses it.
Module realloc.
* m4/realloc.m4 (gl_PREREQ_REALLOC): New macro.
(jm_FUNC_REALLOC): Use AC_FUNC_REALLOC. Invoke gl_PREREQ_REALLOC.
Don't define HAVE_DONE_WORKING_REALLOC_CHECK, since nothing uses it.
Module strftime.
* m4/tm_gmtoff.m4: New file, extracted from strftime.m4.
* m4/strftime.m4 (_jm_STRFTIME_PREREQS): Use AC_FUNC_STRFTIME.
Don't test for bcopy (we are not emacs). Invoke AC_TYPE_MBSTATE_T and
gl_TM_GMTOFF.
(_jm_STRFTIME_PREREQS, jm_FUNC_GNU_STRFTIME): Use onceonly macros.
Module xalloc.
* m4/xalloc.m4: New file.
Module alloca.
* m4/alloca.m4: New file.
Module putenv.
* m4/putenv.m4 (gl_PREREQ_PUTENV): New macro.
(jm_FUNC_PUTENV): Invoke it.
Module setenv.
* m4/setenv.m4 (gt_FUNC_SETENV): New macro.
(gt_CHECK_VAR_DECL): Fix quoting error that led to infinite loop in m4
when invoked twice.
(gt_PREREQ_SETENV, gt_PREREQ_UNSETENV): New macros, replacing old
gt_FUNC_SETENV.
Module memrchr.
* m4/memrchr.m4: New file.
Module stpcpy.
* m4/stpcpy.m4: New file.
Module strcase.
* m4/strcase.m4: New file.
Module strdup.
* m4/strdup.m4: New file.
Module strnlen.
* m4/strnlen.m4: New file.
Module strndup.
* m4/strndup.m4: New file.
Module xstrtod.
* m4/xstrtod.m4: New file.
Module xstrtol.
* m4/xstrtol.m4: New file.
Module getdate.
* m4/getdate.m4: New file.
Module unlocked-io.
* m4/unlocked-io.m4: Renamed from jm-glibc-io.m4.
(jm_FUNC_GLIBC_UNLOCKED_IO): Invoke AC_GNU_SOURCE. Use onceonly macros.
* m4/jm-glibc-io.m4n: Remove file.
Module long-options.
* m4/long-options.m4: New file.
Module md5.
* m4/md5.m4: New file.
Module sha.
* m4/sha.m4: New file.
Module getstr.
* m4/getstr.m4: New file.
Module getline.
* m4/getline.m4 (gl_PREREQ_GETLINE): New macro.
(AM_FUNC_GETLINE): Invoke AC_GNU_SOURCE. Use <stdlib.h>, not
<sys/types.h>, for size_t. Use the function name gnu_getline, not
simply getline. Infoke gl_PREREQ_GETLINE.
Module obstack.
* m4/obstack.m4: New file.
Module hash.
* m4/hash.m4: New file.
Module readtokens.
* m4/readtokens.m4: New file.
Module strverscmp.
* m4/strverscmp.m4: New file.
Module stdbool.
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Add test for _Bool. Needed for
OSF/1.
Module strtoll.
* m4/strtoll.m4: New file.
Module strtoull.
* m4/strtoull.m4: New file.
Module strtoimax.
* m4/strtoimax.m4: New file.
Module strtoumax.
* m4/strtoumax.m4: New file.
Module xstrtoimax.
* m4/xstrtoimax.m4 (jm_XSTRTOIMAX): Renamed from
jm_AC_PREREQ_XSTRTOIMAX.
Moved the strtol prerequisites to strtol.m4.
Moved the strtoll prerequisites to strtoll.m4.
Moved the strtoimax prerequisites to strtoimax.m4.
Module xstrtoumax.
* m4/xstrtoumax.m4 (jm_XSTRTOUMAX): Renamed from
jm_AC_PREREQ_XSTRTOUMAX.
Moved the strtoul prerequisites to strtoul.m4.
Moved the strtoull prerequisites to strtoull.m4.
Moved the strtoumax prerequisites to strtoumax.m4.
Module chown.
* m4/chown.m4 (gl_PREREQ_CHOWN): New macro.
(jm_FUNC_CHOWN): Use AC_FUNC_CHOWN. Invoke gl_PREREQ_CHOWN.
Module dup2.
* m4/dup2.m4: New file.
Module ftruncate.
* m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): New macro.
(jm_FUNC_FTRUNCATE): Use AC_REPLACE_FUNCS. Invoke gl_PREREQ_FTRUNCATE.
Module getgroups.
* m4/getgroups.m4 (gl_PREREQ_GETGROUPS): New macro.
(jm_FUNC_GETGROUPS): Use AC_FUNC_GETGROUPS. Invoke gl_PREREQ_GETGROUPS.
Module gettimeofday.
* m4/gettimeofday.m4 (gl_PREREQ_GETTIMEOFDAY): New macro.
(AC_FUNC_GETTIMEOFDAY_CLOBBER): Use onceonly macros. Invoke
gl_PREREQ_GETTIMEOFDAY.
Module mkdir.
* m4/mkdir-slash.m4 (gl_PREREQ_MKDIR): New macro.
(UTILS_FUNC_MKDIR_TRAILING_SLASH): Invoke gl_PREREQ_MKDIR.
Module mkstemp.
* m4/mkstemp.m4 (gl_PREREQ_MKSTEMP): New macro.
(jm_PREREQ_TEMPNAME): New macro, from prereq.m4. Also invoke
jm_AC_TYPE_UINTMAX_T.
(UTILS_FUNC_MKSTEMP): Invoke gl_PREREQ_MKSTEMP and jm_PREREQ_TEMPNAME.
Module stat.
* m4/stat.m4 (gl_PREREQ_STAT): New macro.
(jm_FUNC_STAT): Use AC_FUNC_STAT. Invoke gl_PREREQ_STAT.
Module lstat.
* m4/lstat.m4 (gl_PREREQ_LSTAT): New macro.
(jm_FUNC_LSTAT): Use AC_FUNC_LSTAT. Invoke gl_PREREQ_LSTAT.
Module timespec.
* m4/timespec.m4 (gl_TIMESPEC): New macro.
(jm_CHECK_TYPE_STRUCT_TIMESPEC): Add check for <sys/time.h>.
* m4/st_mtim.m4: Indentation.
Module nanosleep.
* m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): New macro.
(jm_FUNC_NANOSLEEP): Add check for <sys/time.h>. Invoke
gl_PREREQ_NANOSLEEP.
Module regex.
* m4/regex.m4 (jm_PREREQ_REGEX): New macro.
(jm_INCLUDED_REGEX): Invoke jm_PREREQ_REGEX.
(gl_REGEX): New macro.
Module rename.
* m4/rename.m4 (gl_PREREQ_RENAME): New macro.
(vb_FUNC_RENAME): Invoke gl_PREREQ_RENAME.
Module rmdir.
* m4/rmdir.m4: New file.
Module utime.
* m4/utimbuf.m4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Use onceonly macros.
* m4/utime.m4 (gl_PREREQ_UTIME): New macro.
(jm_FUNC_UTIME): Invoke gl_PREREQ_UTIME.
Module dirname.
* m4/dirname.m4: New file.
Module getopt.
* m4/getopt.m4: New file.
Module unistd-safer.
* m4/unistd-safer.m4: New file.
Module fnmatch.
* m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Include <stdlib.h>, for exit()
declaration.
(gl_PREREQ_FNMATCH_EXTRA): New macro.
(gl_FUNC_FNMATCH_POSIX): New macro.
(gl_FUNC_FNMATCH_GNU): Renamed from AC_FUNC_FNMATCH_GNU. Invoke
gl_PREREQ_FNMATCH_EXTRA. Use the function name gnu_fnmatch, not
simply fnmatch.
Module exclude.
* m4/exclude.m4: New file.
Module human.
* m4/human.m4: New file.
Module acl.
* m4/acl.m4: Nop.
Module backupfile.
* m4/backupfile.m4: New file.
* m4/d-ino.m4: Indentation.
Module fsusage.
* m4/fsusage.m4 (gl_FSUSAGE): New macro.
(jm_STATFS_TRUNCATES): New macro, from coreutils-4.5.4/configure.ac.
(gl_PREREQ_FSUSAGE_EXTRA): New macro.
Module dirfd.
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Invoke some AC_EGREP_CPP
requirements.
Module euidaccess.
* m4/euidaccess.m4: New file.
Module file-type.
* m4/file-type.m4: New file.
Module fileblocks.
* m4/fileblocks.m4: New file.
Module filemode.
* m4/filemode.m4: New file.
Module isdir.
* m4/isdir.m4: New file.
Module lchown.
* m4/lchown.m4 (gl_PREREQ_LCHOWN): New macro.
(jm_FUNC_LCHOWN): Invoke gl_PREREQ_LCHOWN.
Module makepath.
* m4/makepath.m4: New file.
Module modechange.
* m4/modechange.m4: New file.
Module mountlist.
* m4/mountlist.m4: New file.
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Use onceonly macros.
Indentation.
Module path-concat.
* m4/path-concat.m4: New file.
Module pathmax.
* m4/pathmax.m4: New file.
Module same.
* m4/same.m4: New file.
Module save-cwd.
* m4/save-cwd.m4: New file.
Module savedir.
* m4/savedir.m4: New file.
Module xgetcwd.
* m4/xgetcwd.m4: New file.
* m4/getcwd.m4 (AC_FUNC_GETCWD_NULL): Use onceonly macros.
Module xreadlink.
* m4/xreadlink.m4: New file.
Module safe-read.
* m4/safe-read.m4: New file.
Module safe-write.
* m4/safe-write.m4: New file.
Module closeout.
* m4/closeout.m4: New file.
Module stdio-safer.
* m4/stdio-safer.m4: New file.
Module getpass.
* m4/getpass.m4: New file.
Module getugroups.
* m4/getugroups.m4: New file.
Module group-member.
* m4/group-member.m4 (gl_PREREQ_GROUP_MEMBER): New macro.
(jm_FUNC_GROUP_MEMBER): Invoke AC_GNU_SOURCE, gl_PREREQ_GROUP_MEMBER.
Module idcache.
* m4/idcache.m4: New file.
Module userspec.
* m4/userspec.m4: New file.
Module gettime.
* m4/clock_time.m4: New file.
* m4/gettime.m4: New file.
Module settime.
* m4/settime.m4: New file.
Module posixtm.
* m4/posixtm.m4: New file.
Module gethostname.
* m4/gethostname.m4: New file.
Module canon-host.
* m4/canon-host.m4: New file.
Module gettext.
* m4/codeset.m4: New file, from gettext-0.11.5.
* m4/gettext.m4: New file, from gettext-0.11.5.
* m4/glibc21.m4: New file, from gettext-0.11.5.
* m4/iconv.m4: New file, from gettext-0.11.5.
* m4/intdiv0.m4: New file, from gettext-0.11.5.
* m4/inttypes-pri.m4: New file, from gettext-0.11.5.
* m4/inttypes.m4: New file, from gettext-0.11.5.
* m4/inttypes_h.m4: New file, from gettext-0.11.5 with modifications.
* m4/isc-posix.m4: New file, from gettext-0.11.5.
* m4/lcmessage.m4: New file, from gettext-0.11.5.
* m4/lib-ld.m4: New file, from gettext-0.11.5.
* m4/lib-link.m4: New file, from gettext-0.11.5.
* m4/lib-prefix.m4: New file, from gettext-0.11.5.
* m4/progtest.m4: New file, from gettext-0.11.5.
* m4/stdint_h.m4: New file, from gettext-0.11.5 with modifications.
* m4/uintmax_t.m4: New file, from gettext-0.11.5 with modifications.
* m4/ulonglong.m4: New file, from gettext-0.11.5 with modifications.
Module localcharset.
* m4/localcharset.m4: New file.
Module hard-locale.
* m4/hard-locale.m4: New file.
Module mbswidth.
* m4/mbswidth.m4 (gl_MBSWIDTH): Renamed from jm_PREREQ_MBSWIDTH. Use
onceonly macros.
* m4/mbrtowc.m4: Add comment.
Module memcasecmp.
* m4/memcasecmp.m4: New file.
Module memcoll.
* m4/memcoll.m4: New file.
Module unicodeio.
* m4/unicodeio.m4: New file.
Module rpmatch.
* m4/rpmatch.m4: New file.
Module yesno.
* m4/yesno.m4: New file.
Module exitfail.
* m4/exitfail.m4: New file.
Module c-stack.
* m4/c-stack.m4 (gl_C_STACK): New macro.
(jm_PREREQ_C_STACK): Check for <sys/time.h>. Use onceonly macros.
Module error.
* m4/error.m4 (gl_ERROR): New macro.
(jm_PREREQ_ERROR): Use onceonly macros.
Module fatal.
* m4/fatal.m4: New file.
Module getloadavg.
* m4/getloadavg.m4 (AC_FUNC_GETLOADAVG): Use onceonly macros.
(gl_FUNC_GETLOADAVG, gl_PREREQ_GETLOADAVG): New macros.
Module getpagesize.
* m4/getpagesize.m4: New file.
Module getusershell.
* m4/getusershell.m4: New file.
Module physmem.
* m4/physmem.m4: New file.
Module posixver.
* m4/posixver.m4: New file.
Module quotearg.
* m4/quotearg.m4: New file.
Module quote.
* m4/quote.m4: New file.
Module readutmp.
* m4/readutmp.m4: New file, based on jm_PREREQ_READUTMP from prereq.m4.
Module sig2str.
* m4/sig2str.m4: New file.
Other.
* m4/longlong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Remove, moved to
ulonglong.m4.
* m4/intmax_t.m4: New file.
* m4/d-type.m4: Indentation.
* m4/jm-macros.m4: Update.
* m4/prereq.m4 (jm_PREREQ): Update.
(jm_PREREQ_ADDEXT): Remove, obsoleted by backupfile.m4.
(jm_PREREQ_CANON_HOST): Remove, obsoleted by canon-host.m4.
(jm_PREREQ_DIRNAME): Remove, obsoleted by dirname.m4.
(jm_PREREQ_EXCLUDE): Remove, obsoleted by exclude.m4.
(jm_PREREQ_GETPAGESIZE): Remove, obsoleted by getpagesize.m4.
(jm_PREREQ_HARD_LOCALE): Remove, obsoleted by hard-locale.m4.
(jm_PREREQ_HASH): Remove, obsoleted by hash.m4.
(jm_PREREQ_HUMAN): Remove, obsoleted by human.m4.
(jm_PREREQ_MEMCHR): Remove, obsoleted by memchr.m4.
(jm_PREREQ_PHYSMEM): Remove, obsoleted by physmem.m4.
(jm_PREREQ_POSIXVER): Remove, obsoleted by posixver.m4.
(jm_PREREQ_QUOTEARG): Remove, obsoleted by quotearg.m4.
(jm_PREREQ_READUTMP): Remove, obsoleted by readutmp.m4.
(jm_PREREQ_REGEX): Remove, obsoleted by regex.m4.
(jm_PREREQ_STRNLEN): Remove, obsoleted by strnlen.m4.
(jm_PREREQ_TEMPNAME): Remove, obsoleted by mkstemp.m4.
(jm_PREREQ_XGETCWD): Remove, obsoleted by xgetcwd.m4.
(jm_PREREQ_XREADLINK): Remove, obsoleted by xreadlink.m4.
* m4/readdir.m4 (jm_FUNC_READDIR): Use onceonly macros.
2002-12-24 Bruno Haible <bruno@clisp.org>
* MODULES.txt: Update according to m4/ changes.
Module gettext.
* config.rpath: New file, from gettext-0.11.5.
* modules/*: New module descriptions.
* gnulib-tool: New file.
* MODULES.html.sh: New file.
2002-12-21 Karl Berry <karl@gnu.org>
* doc/fdl.texi: update to version 1.2.
2002-12-19 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2002-12-18 Bruno Haible <bruno@clisp.org>
* m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't test for localtime_r.
* m4/jm-mktime.m4 (jm_FUNC_MKTIME): Likewise.
2002-12-17 Bruno Haible <bruno@clisp.org>
* m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Remove checks for limits.h,
stdlib.h, string.h.
2002-12-17 Bruno Haible <bruno@clisp.org>
* lib/canon-host.c (strdup): Remove unused declaration.
* lib/fsusage.c: Include full_read.h.
(get_fs_usage): Use full_read instead of safe_read.
* lib/utime.c (utime_null): Use SAFE_READ_ERROR.
2002-12-12 Karl Berry <karl@gnu.org>
* config/config.guess: update from prep.
2002-12-11 Bruno Haible <bruno@clisp.org>
* m4/setenv.m4: New file, from gettext-0.11.5.
2002-12-11 Bruno Haible <bruno@clisp.org>
* lib/setenv.h: Rewritten to cope with systems that have setenv() but
not unsetenv().
* lib/setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following
modifications:
2002-12-11 Bruno Haible <bruno@clisp.org>
* setenv.c (alloca): Fall back to malloc.
(freea): New macro.
(setenv): Use freea() to free memory allocated with alloca().
2002-11-13 Bruno Haible <bruno@clisp.org>
* setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C
function declarations.
* unsetenv.c (unsetenv): Likewise.
2002-03-04 Bruno Haible <bruno@clisp.org>
Portability to AIX 4.3.3.
* unsetenv.c: New file, extracted from setenv.c.
* setenv.c: Move the unsetenv() function to unsetenv.c.
2001-12-20 Bruno Haible <bruno@clisp.org>
* setenv.c (__add_to_environ): Don't call realloc(NULL,...),
use malloc instead. For SunOS 4.
2001-12-11 Bruno Haible <bruno@clisp.org>
* setenv.c: Declare alloca.
(compar_fn_t): New typedef.
(KNOWN_VALUE, STORE_VALUE): Use it.
* lib/Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c,
setenv.h.
2002-12-10 Paul Eggert <eggert@twinsun.com>
Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7.
* lib/exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS):
Choose values that are less likely to collide with system fnmatch
options.
* lib/exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not
defined (e.g., a pure POSIX system).
(EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME
instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems.
2002-12-06 Paul Eggert <eggert@twinsun.com>
Undo the 2001-07-02 change for jm-glibc-io, as it was too much of
a pain in practice to deal with generated m4 files. This change
goes together with the 2002-12-04 unlocked-io.h change in ../lib.
* m4/Makefile.am.in (Makefile.am): Don't mention jm-glibc-io.m4n
and jm-glibc-io.m4, as they are no longer a special case.
* m4/jm-glibc-io.m4: Rename from jm-glibc-io.m4n, and remove the
kludge and the auto-generation stuff. Check only whether the
functions are declared, not whether they exist, since older hosts
that don't declare the functions can't use the optimization anyway.
2002-12-06 Jim Meyering <jim@meyering.net>
* lib/error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'.
Merge in changes from libc's misc/error.c, in preparation
for the merge of gnulib's changes back into libc.
* lib/error.c (_): Define only if not already defined.
Move definition to follow all #include directives.
Include unlocked-io.h only if !_LIBC.
[_LIBC]: Include <libio/libioP.h>.
[USE_IN_LIBIO]: Include <libio/iolibio.h>
(fflush): Tweak definition to use INTUSE.
(putc): Define.
2002-12-05 Paul Eggert <eggert@twinsun.com>
* lib/alloca.c [defined emacs]: Include "lisp.h".
(xalloc_die) [defined emacs]: New macro.
(free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE.
[! defined emacs]: Include <xalloc.h>.
(POINTER_TYPE) [!defined POINTER_TYPE]: New macro.
(pointer): Typedef to POINTER_TYPE *.
(malloc): Remove decl; we now always use xmalloc.
(alloca): Use old-style definition, since Emacs needs this.
Check for arithmetic overflow when computing combined size.
2002-12-04 Paul Eggert <eggert@twinsun.com>
Do not generate unlocked-io.h automatically, since it's easier to
maintain it by hand.
* lib/unlocked-io.h: New file, from GNU diffutils,
but with proper copyright notice and attribution.
* lib/gen-uio: Remove.
* lib/Makefile.am: Add copyright notice.
(libfetish_a_SOURCES): Add unlocked-io.h.
(BUILT_SOURCES, all-local): Remove unlocked-io.h.
(DISTCLEANFILES, io_functions): Remove macros.
(EXTRA_DIST): Remove gen_uio.
(unlocked-io.h): Remove rule.
2002-12-04 Jim Meyering <jim@meyering.net>
Reflect the fact that stat.c and lstat.c are no longer generated.
* lib/Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c.
(DISTCLEANFILES): Likewise.
(EXTRA_DIST): Likewise.
(all_local): Don't depend on stat.c or lstat.c.
(stat.c, lstat.c): Remove rules.
(EXTRA_DIST): Remove xstat.in.
* lib/xstat.in: Remove file. Contents moved into stat.c.
* lib/stat.c: New file. Contents mostly from xstat.in.
* lib/stat.c: Rework so that it may serve to define rpl_lstat, too.
* lib/lstat.c: New file. Simply #define LSTAT and include stat.c.
* lib/safe-read.c: Rework so that it may serve to define safe_write,
too.
* lib/safe-write.c: Simply #define SAFE_WRITE and include safe-read.c.
2002-12-03 Jim Meyering <jim@meyering.net>
* lib/safe-read.c, safe-write.c: Change variable names and comments,
but not semantics, to minimize the differences between these two files.
(safe_read): Change comment to mention SAFE_READ_ERROR.
* lib/safe-read.c (IS_EINTR): Define.
(safe_read): Use IS_EINTR in place of in-function cpp directives.
2002-12-02 Jim Meyering <jim@meyering.net>
* lib/safe-read.c (EINTR): Define.
(CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
(INT_MAX): Provide fallback.
(safe_read): Rewrite to iterate IFF the read fails with EINTR.
* lib/safe-read.h (SAFE_READ_ERROR): Define.
2002-12-02 Bruno Haible <bruno@clisp.org>
* lib/safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM):
Define, taken from safe-read.c.
(INT_MAX): Provide fallback.
(safe_write): Rewrite to iterate IFF the write fails with EINTR.
* lib/safe-write.h (SAFE_WRITE_ERROR): Define.
* lib/safe-read.c (EINTR): Remove definition.
(safe_read): Don't use EINTR if it is absent.
2002-12-01 Jim Meyering <jim@meyering.net>
* lib/safe-read.c: (safe_read): Also exit the loop when read returns
zero.
(CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define.
2002-11-27 Paul Eggert <eggert@twinsun.com>
* lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
hash_find_entry, hash_rehash): Replace `if (limit <= value) abort ();'
with `if (! (value < limit)) abort ();', for readability.
2002-11-26 Karl Berry <karl@gnu.org>
* lib/strdup.c: copy from libc again, with jim's ok.
* lib/.cppi-disable: re-add strdup.c
2002-11-25 Karl Berry <karl@gnu.org>
* lib/strtoll.c: copy from libc, meaning we now #include <strtol.c>
instead of "strtol.c".
2002-11-25 Karl Berry <karl@gnu.org>
* config/install-sh: update from automake for variable quoting, $0 in
error msgs, etc.
* config/srclist.txt ($LIBCSRC/time/mktime.c lib gpl): new entry.
* config/srclist.txt ($LIBCSRC/sysdeps/generic/strtoll.c lib gpl): new
entry.
2002-11-25 Jim Meyering <jim@meyering.net>
* lib/mktime.c: Sync from libc, now that it has the latest fix.
2002-11-24 Karl Berry <karl@gnu.org>
* lib/error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c,
regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl.
2002-11-24 Jim Meyering <jim@meyering.net>
Update from coreutils:
* lib/mktime.c: Merge in changes from libc.
Avoid a link-time failure on some Linux systems.
* lib/mktime.c (STATIC): Define to be empty (_LIBC) or `static'
(otherwise).
(__mon_yday): Declare with the STATIC attribute.
(__mktime_internal): Likewise.
Based on a report from Greg Schafer.
2002-11-23 Jim Meyering <jim@meyering.net>
* lib/sig2str.c (str2signum, sig2str): Avoid a warning from gcc:
Use `unsigned', not `int', as type of index.
* lib/xstat.in [@BEGIN_LSTAT_ONLY@]: Include <string.h>.
* lib/fsusage.c: Remove unneeded parentheses around operands of
`defined'.
2002-11-22 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.h: Allow multiple inclusion by surrounding with
"#ifndef QUOTEARG_H_". Include <stddef.h>, for size_t,
so that we can be included first.
(PARAMS): Remove; we now assume C89 or later. All uses removed.
* lib/quotearg.c: Include quotearg.h immediately after config.h.
No need to include stddef.h or sys/types.h any more.
Surround local include files with "", not "<>".
Assume HAVE_LIMITS_H unconditionally, as we assume C89.
Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX,
HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS.
(HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
(mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
(ISPRINT): Remove; no longer needed now that we assume C89.
(clone_quoting_options, quotearg_buffer, quotearg_n_options):
Preserve errno.
(quotearg_buffer_restyled, quotearg_n, quotearg_n_style,
quotearg_char): Use SIZE_MAX rather than
(size_t) -1 when we are talking about "infinity".
(quotearg_buffer_restyled): Fix bug when quoting trigraphs.
2002-11-22 Paul Eggert <eggert@twinsun.com>
* lib/hash.c: Avoid use of <assert.h>, as the GNU Coding Standards
hint that one should use `if (! x) abort ();' rather than `assert
(x);', and anyway it's one less thing to worry about configuring.
(hash_lookup, hash_get_first, hash_get_next, hash_find_entry,
hash_rehash, hash_insert): Use abort rather than assert.
2002-11-22 Bruno Haible <bruno@clisp.org>
* lib/safe-read.h: Assume C89. Add comments.
(safe_read): Change return type to size_t.
* lib/safe-read.c (safe_read): Change return type to size_t. Handle
byte counts > SSIZE_MAX correctly.
* lib/safe-write.h: New file.
* lib/safe-write.c: New file.
* lib/full-read.h: New file.
* lib/full-read.c: New file.
* lib/full-write.h: Assume C89. Add comments.
* lib/full-write.c: Include safe-write.h.
(full_write): Rewritten to use safe_write.
Suggested by Jim Meyering and Paul Eggert.
2002-11-21 Jim Meyering <jim@meyering.net>
* lib/strdup.c (strdup): Tweak comment and initial #if/#include.
Merge in changes from the coreutils.
2002-09-25 Paul Eggert <eggert@twinsun.com>
* lib/fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include
<stdint.h>.
(UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
(PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
int. Work more efficiently if X is the same width as uintmax_t.
Do not compare X to -1, to avoid bogus compiler warning.
(get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
Don't assume that f_frsize and f_bsize are the same type.
* lib/mountlist.c: #undef MNT_IGNORE before defining it, to avoid
warning on FreeBSD.
* lib/makepath.c (make_path): Restore umask *before* creating the final
component.
(make_path): Minor reformatting.
* lib/xmalloc.c: Adjust to work with new autoconf macros,
AC_FUNC_MALLOC and AC_FUNC_REALLOC: test #ifndef
HAVE_MALLOC/HAVE_REALLOC.
* lib/mountlist.h (ME_DUMMY): Don't count entries of type `auto' as
dummy ones. At least on GNU/Linux systems, `auto' means something
else.
From Michael Stone.
2002-11-21 Bruno Haible <bruno@clisp.org>
Remove case insensitive option matching.
* lib/argmatch.h (argcasematch): Remove declaration.
(ARGCASEMATCH): Remove macro.
(__xargmatch_internal): Remove case_sensitive argument.
(XARGMATCH): Update.
(XARGCASEMATCH): Remove macro.
* lib/argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
case_sensitive argument.
(argcasematch): Remove function.
(__xargmatch_internal): Remove case_sensitive argument.
(main): Use XARGMATCH instead of XARGCASEMATCH.
* lib/xmalloc.c: Change compile-time error message. Add comment about
required autoconf version.
2002-11-20 Paul Eggert <eggert@twinsun.com>
Merge argmatch cleanups from Bison. Assume C89.
* lib/argmatch.c: Include config.h here, not in argmatch.h.
Include stdlib.h, for EXIT_FAILURE.
Always include <string.h>, since we assume C89.
(EXIT_FAILURE): Remove pre-C89 bug workaround.
* lib/argmatch.h: Do not include <config.h> or <sys/types.h>.
Include <stddef.h> instead, since it's all we need for size_t.
(PARAMS): Remove. All uses removed.
(ARRAY_CARDINALITY): Do not bother to #undef.
(ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg,
ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
Remove unnecessary parentheses.
(ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH):
Insert necessary parentheses.
(ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros.
(ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT.
2002-11-19 Bruno Haible <bruno@clisp.org>
* lib/mbswidth.c: Include mbswidth.h right at the beginning.
* lib/mbswidth.h: Include <stddef.h>, for size_t.
* lib/mbswidth.h (PARAMS): Remove macro.
(mbswidth, mbsnwidth): Use ANSI C function declarations.
* lib/mbswidth.c (mbswidth, mbsnwidth): Likewise.
* lib/gcd.h (PARAMS): Remove macro.
(gcd): Use ANSI C function declarations.
* lib/gcd.c (gcd): Likewise.
2002-11-15 Bruno Haible <bruno@clisp.org>
* lib/strcspn.c: Include <stddef.h>.
(strcspn): Use ANSI C function declaration. Change return type to
size_t. Use NULL.
* lib/strpbrk.c: Minimize diffs to glibc. Include <stddef.h>.
(strpbrk): Use NULL.
* lib/strpbrk.h (PARAMS): Remove macro.
(strpbrk): Use ANSI C function declaration.
* lib/strstr.c: Don't include <sys/types.h>.
* lib/strstr.h (PARAMS): Remove macro.
(strstr): Use ANSI C function declarations.
2002-11-14 Karl Berry <karl@gnu.org>
* config/mkinstalldirs: `do' on separate line, instead of
`for var; do'.
2002-11-06 Bruno Haible <bruno@clisp.org>
* lib/gcd.h (gcd): Change argument type to 'unsigned long'.
* lib/gcd.c (gcd): Likewise.
2002-11-05 Bruno Haible <bruno@clisp.org>
* lib/gcd.h: New file, from gettext-0.11.5.
* lib/gcd.c: New file, from gettext-0.11.5.
2002-11-05 Bruno Haible <bruno@clisp.org>
* lib/error.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
* lib/getopt.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
* lib/obstack.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
* lib/regex.c [!_LIBC]: Include gettext.h instead of <libintl.h>.
* lib/argmatch.c: Include gettext.h instead of <locale.h> and
<libintl.h>.
* lib/makepath.c: Include gettext.h instead of <locale.h> and
<libintl.h>.
* lib/closeout.c: Include gettext.h instead of <libintl.h>.
* lib/human.c: Include gettext.h instead of <libintl.h>.
* lib/quotearg.c: Include gettext.h instead of <libintl.h>.
* lib/rpmatch.c: Include gettext.h instead of <libintl.h>.
* lib/unicodeio.c: Include gettext.h instead of <libintl.h>.
* lib/userspec.c: Include gettext.h instead of <libintl.h>.
* lib/version-etc.c: Include gettext.h instead of <libintl.h>.
* lib/xmalloc.c: Include gettext.h instead of <libintl.h>.
(textdomain): Remove definition.
* lib/xmemcoll.c: Include gettext.h instead of <libintl.h>.
* lib/long-options.c: Remove include of <libintl.h> and definition of
_.
* lib/same.c: Remove include of <libintl.h> and definition of _.
2002-11-04 Owen Taylor <otaylor@redhat.com>
* lib/config.charset: A few additions for Solaris.
2002-11-04 Bruno Haible <haible@clisp.cons.org>
Make it possible to build libcharset with CC=gcc CFLAGS="-x c++".
* lib/localcharset.c (locale_charset): Declare as extern "C".
2002-11-04 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: msdos in uk_UA uses CP1125.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/stpcpy.h: New file, from GNU gettext-0.11.5.
* lib/strcase.h: New file, from GNU gettext-0.11.5.
* lib/strpbrk.h: New file, from GNU gettext-0.11.5.
* lib/strstr.h: New file, from GNU gettext-0.11.5.
* lib/xgetcwd.h: New file, from GNU gettext-0.11.5.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (locale_charset): Don't return an empty string.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/localcharset.c (get_charset_aliases): Add more Windows specific
aliases.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Update for newest glibc. Add canonical names
ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/config.charset: Add support for NetBSD.
2002-11-04 Bruno Haible <bruno@clisp.org>
* lib/config.charset [msdosdjgpp]: For Russian, use CP866.
2002-11-01 Bruno Haible <bruno@clisp.org>
* configure.in: Add AC_CONFIG_AUX_DIR call.
(AC_OUTPUT): Add m4/Makefile, lib/Makefile. Remove doc/Makefile,
test/Makefile.
* Makefile.in (subdirs): Add m4, lib. Remove doc, test.
2002-09-28 Karl Berry <karl@gnu.org>
* config/srclist.txt: can't copy install-sh/mkinstalldirs from
installed automake until the next release, since changes have been
made.
2002-09-25 Karl Berry <karl@gnu.org>
* lib/strdup.c: copy from libc/string (via ../config/srclist*).
* lib/getopt*: copy from libc/posix.
* lib/gettext.h: copy from gettext.
* lib/.cppi-disable: add strdup.c, gettext.h.
2002-09-25 Karl Berry <karl@gnu.org>
* config/srclist.txt: enable gettext.h check.
* config/config.{guess,sub}: update from prep.
* config/depcomp, install-sh, mdate-sh, missing, mkinstalldirs: update
from automake 1.6.3.
See srclist*.
2002-08-23 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (PATFETCH): Remove the translating fetch.
(PATFETCH_RAW): Rename to PATFETCH.
(set_image_of_range): New fun.
(SET_RANGE_TABLE_WORK_AREA): Use it.
(regex_compile): Don't translate the pattern chars so eagerly.
Only do it when inserting an `exactn' bytecode or when handling
a char-range.
(mutually_exclusive_p): Avoid empty statement.
2002-07-06 Jim Meyering <meyering@lucent.com>
* m4/README: Don't mention Makefile.am.in.
Outline how I've tested changes to .m4 files. Yep, it's a pain.
2002-07-01 Jim Meyering <meyering@lucent.com>
* lib/c-stack.c: Include sys/time.h.
From Volker Borchert.
2002-06-26 Paul Eggert <eggert@twinsun.com>
* m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for btowc.
2002-06-26 Paul Eggert <eggert@twinsun.com>
* lib/fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
New macro. Use it uniformly instead of
(defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
reported by Vin Shelton.
2002-06-22 Paul Eggert <eggert@twinsun.com>
* lib/c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
Do not assume SA_SIGINFO behavior.
Bug reported by Jim Meyering on NetBSD 1.5.2.
2002-06-22 Jim Meyering <meyering@lucent.com>
* m4/c-stack.m4: New file, from diffutils-2.8.2.
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_C_STACK.
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Don't require AC__GNU_SOURCE,
now that configure.ac uses AC_GNU_SOURCE.
(jm_MACROS): Rename: jm_FUNC_FNMATCH to AC_FUNC_FNMATCH_GNU.
* m4/prereq.m4 (jm_PREREQ_EXCLUDE): Likewise, wrt jm_FUNC_FNMATCH.
Update to latest tools. Suggestions from Paul Eggert.
* m4/stdbool.m4: New file, from diffutils-2.8.2.
* m4/gnu-source.m4: Update from diffutils-2.8.2.
* m4/fnmatch.m4: Likewise.
* m4/prereq.m4: Change each use of AC_CHECK_HEADERS(stdbool.h)
to AC_HEADER_STDBOOL
2002-06-22 Jim Meyering <meyering@lucent.com>
* lib/fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h.
2002-06-22 Jim Meyering <meyering@lucent.com>
* lib/c-stack.c, lib/c-stack.h: New files, from diffutils-2.8.2.
* lib/exitfail.c, exitfail.h: Likewise.
* lib/Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
* lib/Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
of fnmatch.h.
(EXTRA_DIST): Add fnmatch_loop.c.
(libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
* lib/fnmatch_loop.c: New file, from diffutils-2.8.2.
* lib/fnmatch.c: Update from diffutils-2.8.2.
* lib/fnmatch_.h: New file. From diffutils-2.8.2.
* lib/fnmatch.h: Remove file.
2002-06-21 Jim Meyering <meyering@lucent.com>
* m4/c-bs-a.m4: Add comment, from diffutils-2.8.2.
* m4/mbrtowc.m4: Likewise.
* m4/mbstate_t.m4: Update from diffutils-2.8.2.
* m4/mbswidth.m4: Reflect name change:
s/AC_MBSTATE_T/AC_TYPE_MBSTATE_T.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Likewise.
* m4/lib-link.m4: Update from gettext-0.11.2.
* m4/gettext.m4: Likewise.
* m4/jm-macros.m4 (jm_CHECK_ALL_HEADERS): Check for hurd.h.
From Alfred M. Szmidt.
2002-06-18 Paul Eggert <eggert@twinsun.com>
* lib/file-type.h: Report an error if neither S_ISREG nor
S_IFREG is defined, instead of using a test specific to glibc
2.2. This should be safe, since POSIX requires S_ISREG and
Unix Version 7 had S_IFREG. We don't need to check for
<sys/types.h> since we don't use any symbols that it defines.
2002-06-15 Richard Dawe <richdawe@bigfoot.com>
* lib/Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than
$@-t, so that each temporary file name is unique and valid in the first
8 characters, for operation under DOS.
2002-06-15 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for st_author.
2002-06-15 Jim Meyering <meyering@lucent.com>
Work even with DJGPP 2.03, which lacks support for symlinks.
From Richard Dawe.
* lib/xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
is defined.
* lib/lchown.c (S_ISLNK): Likewise.
2002-06-15 Jim Meyering <meyering@lucent.com>
* lib/file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
have been included before this file.
2002-06-14 Jim Meyering <meyering@lucent.com>
* lib/file-type.h: Use the version from diffutils-2.8.2.
* lib/file-type.c: Likewise.
2002-06-07 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_STAT): Check for sys/param.h and sys/mount.h.
They're needed at least for NetBSD 1.5.2.
($statxfs_includes): Include those same headers.
($statxfs_includes): Include sys/vfs.h if available.
($statxfs_includes): Likewise for sys/statvfs.h.
Check for the following members in both structs statfs and statvfs:
f_basetype, f_type, f_fsid.__val, f_namemax, f_namelen.
2002-06-01 Jim Meyering <meyering@lucent.com>
* m4/d-type.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename macro:
s/D_TYPE_IN_DIRENT/HAVE_STRUCT_DIRENT_D_TYPE/.
2002-05-28 Jim Meyering <meyering@lucent.com>
* m4/readdir.m4 (jm_FUNC_READDIR): Undefine `mkdir', not `rmdir'.
Reported by Volker Borchert.
2002-05-27 Jim Meyering <meyering@lucent.com>
Fix a problem seen only on nonconforming systems whereby ls.c's
use of localtime, and then of gettimeofday would cause trouble:
the localtime call used to initialize rpl_gettimeofday's save
mechanism would clobber ls's current local time information so
that in any long listing the first file would always be listed
with date 1970-01-01. Analysis by Volker Borchert.
* lib/gettimeofday.c (localtime): Undefine.
(rpl_localtime): New function.
2002-05-27 Jim Meyering <meyering@lucent.com>
* m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace
localtime.
* m4/readdir.m4 (jm_FUNC_READDIR): Undefine `rmdir' so we don't try to
use the replacement function; it wouldn't resolve at link time.
Reported by Volker Borchert.
2002-05-22 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (libfetish_a_SOURCES): Add file-type.c and
file-type.h.
* lib/file-type.h: New file.
* lib/file-type.c (file_type): New file/function. Extracted from
diffutils.
2002-04-30 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_STAT.
2002-04-29 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ_SIG2STR): Remove; all callers changed.
2002-04-29 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ_HARD_LOCALE): Check for stdlib.h.
Do not check for alloca.h (no longer used) or stdbool.h (was never
used?). Add AM_C_PROTOTYPES since hard-locale.h uses it.
2002-04-29 Paul Eggert <eggert@twinsun.com>
* lib/hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
2002-04-29 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Remove use of AC_FUNC_STRNLEN.
* m4/prereq.m4: Add jm_PREREQ_STRNLEN.
Use AC_FUNC_STRNLEN here instead.
* m4/jm-macros.m4: Don't AC_REQUIRE([AC_PROG_CC_STDC]).
With autoconf-2.53a, it's part of AC_PROG_CC.
2002-04-28 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_MACROS): Add AC_REPLACE_FUNCS(sig2str).
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_SIG2STR.
2002-04-28 Paul Eggert <eggert@twinsun.com>
* lib/sig2str.h, lib/sig2str.c: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
2002-04-28 Paul Eggert <eggert@twinsun.com>
* lib/sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
depending on <sys/wait.h> and WTERMSIG. Default to 64 instead
of 127, since 64 is the largest conceivable number for ancient
nonstandard hosts.
* lib/sig2str.c: Do not include <sys/wait.h>; no longer needed.
2002-04-28 Jim Meyering <meyering@lucent.com>
* lib/sig2str.c (WTERMSIG): Remove definition (unused).
2002-04-24 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_HARD_LOCALE): New macro.
(jm_PREREQ): Use it.
* m4/getloadavg.m4: Check for these headers: locale.h unistd.h
mach/mach.h fcntl.h.
Check for this function: setlocale.
2002-04-24 Jim Meyering <meyering@lucent.com>
* lib/gettext.h: New file, from Gettext.
* lib/Makefile.am (INCLUDES): Remove -I../intl.
(libfetish_a_SOURCES): Add gettext.h.
2002-04-16 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_READUTMP): Also check for these members:
ut_pid, ut_id, ut_exit.
2002-04-16 Jim Meyering <meyering@lucent.com>
* lib/readutmp.h (UT_TYPE): Remove definition (now in who.c).
(HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
(HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
2002-04-12 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (checking for getmntinfo function...): Remove
now-bogus check for f_type in sys/mount.h. Instead, just test for the
existence of the getmntinfo function. Needed for Darwin 5.3.
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Also detect when dirfd is a macro.
This is necessary at least on Darwin 5.3.
* m4/jm-macros.m4: Don't AC_REPLACE(strnlen), now that we use
AC_FUNC_STRNLEN. Otherwise, we'd end up putting two copies of
strnlen.o in the library, and that makes some versions of ranlib
object.
2002-04-12 Jim Meyering <meyering@lucent.com>
* lib/dirfd.h (dirfd): Elide prototype if dirfd is a macro.
2002-04-09 Jim Meyering <meyering@lucent.com>
* m4/malloc.m4: (jm_FUNC_MALLOC): Change the `checking ...' message
to be more precise. Rather than saying we're checking whether the
function `works', say what we're testing.
* m4/realloc.m4 (jm_FUNC_REALLOC): Likewise.
Reported by Bruno Haible.
2002-03-10 Jim Meyering <meyering@lucent.com>
* lib/makepath.c (make_path): Remove a comma from a diagnostic.
Suggestion from Santiago Vila.
2002-03-08 Jim Meyering <meyering@lucent.com>
* lib/rename.c: Mention that this wrapper is needed also on
mips-dec-ultrix4.4 systems.
2002-03-02 Jim Meyering <meyering@lucent.com>
* lib/gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
not HAVE_CLOCK_SETTIME.
2002-02-27 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_MACROS): Do not replace stime; no longer used.
Check for clock_settime.
2002-02-27 Paul Eggert <eggert@twinsun.com>
* lib/nanosleep.h: Rename to....
* lib/timespec.h: New name for nanosleep.h. All uses changed.
* lib/gettime.c: New file.
* lib/settime.c: New file.
* lib/stime.c: Remove.
* lib/Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
timespec.h. Remove nanosleep.h.
2002-02-25 Paul Eggert <eggert@twinsun.com>
* m4/acl.m4: New file.
* m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_ACL.
Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now.
2002-02-25 Paul Eggert <eggert@twinsun.com>
* lib/acl.c, lib/acl.h: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
2002-02-24 Jim Meyering <meyering@lucent.com>
* lib/strnlen.c (strnlen): Define-away/undef so that an inconsistent
prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
cause trouble. Reported by Nelson Beebe.
2002-02-23 Paul Eggert <eggert@twinsun.com>
* lib/path-concat.c (xpath_concat): Reorder code to pacify
compilers that don't know that xalloc_die never returns.
2002-02-20 Jim Meyering <meyering@lucent.com>
* lib/getdate.c: Regenerate using bison-1.33.
2002-02-17 Jim Meyering <meyering@lucent.com>
* config/config.guess (main): Don't use `head -1'; it's no longer
portable. Use `sed 1q' instead.
2002-02-16 gettextize <bug-gnu-gettext@gnu.org>
* m4/codeset.m4: Upgrade to gettext-0.11.
* m4/gettext.m4: Upgrade to gettext-0.11.
* m4/glibc21.m4: Upgrade to gettext-0.11.
* m4/iconv.m4: Upgrade to gettext-0.11.
* m4/isc-posix.m4: Upgrade to gettext-0.11.
* m4/lcmessage.m4: Upgrade to gettext-0.11.
* m4/lib-ld.m4: New file, from gettext-0.11.
* m4/lib-link.m4: New file, from gettext-0.11.
* m4/lib-prefix.m4: New file, from gettext-0.11.
* m4/progtest.m4: Upgrade to gettext-0.11.
2002-02-15 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ_POSIXVER): New macro.
(jm_PREREQ): Use it.
2002-02-15 Paul Eggert <eggert@twinsun.com>
* lib/posixver.c, lib/posixver.h: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add them.
2002-02-02 Paul Eggert <eggert@twinsun.com>
Bruno Haible <bruno@clisp.org>
* lib/unicodeio.h (print_unicode_char): Add exit_on_error argument.
(fwrite_success_callback): New declaration.
* lib/unicodeio.c (unicode_to_mb): New function, extracted from
print_unicode_char. Call failure callback instead of error.
(fwrite_success_callback): New function.
(exit_failure_callback): New function.
(fallback_failure_callback): New function.
(print_unicode_char): Call unicode_to_mb.
2002-01-26 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Require autoconf-2.52g.
* m4/strnlen.m4: Remove file, now that it's part of autoconf.
2002-01-26 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (getdate$U.o): Depend on unlocked-io.h.
2002-01-22 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_FSEEKO.
2002-01-22 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
Otherwise, some versions of automake would omit the rule that makes
Makefile from Makefile.in.
2002-01-21 Paul Eggert <eggert@twinsun.com>
* lib/xmemcoll.h, lib/xmemcoll.c: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add them.
* lib/memcoll.c: Include errno.h, and declare errno if not defined.
(memcoll): Set errno to zero if there is no error.
* lib/quotearg.c (quotearg_buffer_restyled):
Fix bug with quoting buffers containing NUL when backslashing escapes.
This bug was exposed by the other changes in this patch.
(quotearg_n_options): New arg ARGSIZE.
All callers changed.
(quoting_options_from_style): New function.
(quotearg_n_style): Use it.
(quotearg_n_style_mem): New function.
* lib/quotearg.h (quotearg_n_style_mem): New function.
2002-01-19 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Use AC_FUNC_STRNLEN.
Remove useless quotes: DF_PROG="df".
* m4/strnlen.m4: New file.
2002-01-16 Paul Eggert <eggert@twinsun.com>
* lib/backupfile.c (ISDIGIT): Comment fix.
* lib/getdate.y (ISDIGIT): Likewise.
* lib/posixtm.c (ISDIGIT, year): Likewise.
* lib/strverscmp.c (ISDIGIT): Likewise.
* lib/userspec.c (ISDIGIT): Likewise.
2002-01-16 Jim Meyering <meyering@lucent.com>
* lib/getdate.y: Add three semicolons, each just before a closing
brace. Bison (as of version 1.31) no longer papers over that mistake.
2002-01-05 Jim Meyering <meyering@lucent.com>
* lib/version-etc.c (version_etc_copyright): Update copyright year.
2001-12-19 Paul Eggert <eggert@twinsun.com>
* lib/closeout.c (close_stdout_status): If ferror (stdout), do
not silently exit merely because the output buffer happens to
have nothing pending.
2001-12-18 Paul Eggert <eggert@twinsun.com>
See the big note in ../ChangeLog.
* lib/human.c (suffixes): Prefer K to k for 1024.
(generate_suffix_backwards): New function.
(human_readable_inexact): Use it.
* lib/xstrtol.c (__xstrtol): If there is no number but there
is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary.
Accept 'K' as well as 'k'.
2001-12-15 Jim Meyering <meyering@lucent.com>
* lib/regex.h (__restrict_arr): Update from libc.
* lib/mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
as `remote' if the name starts with `//'. Suggested by Michael Stone.
(STREQ): Define.
2001-12-14 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Check for iswspace.
Suggestion from Bruno Haible.
2001-12-10 Jim Meyering <meyering@lucent.com>
* lib/linebuffer.c: Remove explicit declarations of xmalloc and
xrealloc, Instead, include "xalloc.h".
(initbuffer): Don't cast xmalloc return value to char*.
(readline): Reword comment.
Don't cast xrealloc return value to char*
Return NULL, not 0.
2001-12-09 Jim Meyering <meyering@lucent.com>
* lib/modechange.c (mode_compile): Add cast to avoid pedantic warning
about `signed and unsigned type in conditional expression'.
* lib/posixtm.c (posix_time_parse): Likewise.
* lib/xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
* lib/readtokens.c (readtoken): Declare an index to be of type unsigned
to avoid a pedantic warning.
* lib/getstr.c: Don't include assert.h.
(getstr): Remove warning-evoking assertions.
Return -1 if offset parameter is out of bounds.
Change the type of a local from int to size_t.
* lib/strftime.c (my_strftime_localtime_r): Include this function
definition in the `#if ! HAVE_TM_GMTOFF' block.
* lib/xgethostname.c: Remove declarations of xmalloc and xrealloc.
Include xalloc.h instead.
2001-12-02 Jim Meyering <meyering@lucent.com>
* lib/tempname.c: Don't declare getenv, thus reverting the change of
2001-11-18. It's no longer necessary, now that stdlib.h is always
included.
* lib/regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
__unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld.
2001-11-30 Akim Demaille <akim@epita.fr>
* lib/xstrdup.c: Include xalloc.h, so that xstrdup is declared
before being defined.
2001-11-27 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.h (quotearg_n, quotearg_n_style):
First arg is int, not unsigned.
* lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
(SIZE_MAX, UINT_MAX): New macros.
(quotearg_n_options): Abort if N is negative.
Avoid overflow check on hosts where size_t is 64 bits and int
is 32 bits, as overflow is impossible there.
Fix off-by-one typo that caused unnecessary reallocation.
2001-11-27 Jim Meyering <meyering@lucent.com>
* lib/tempname.c: Merge with version from libc.
* lib/regex.c: Likewise.
* lib/tempname.c: Include stdlib.h unconditionally. On some old
systems for which STDC_HEADERS is 0, it was not included, resulting in
a warning about an integer-to-pointer conversion problem with getenv.
Reported by Volker Borchert.
2001-11-26 Jim Meyering <meyering@lucent.com>
* lib/gtod.h: Remove file.
* lib/Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
* lib/gettimeofday.c: Don't include gtod.h.
(GTOD_init): Remove function.
(rpl_gettimeofday): Do its job here instead, rather than aborting.
Suggestion from Volker Borchert.
2001-11-23 Jim Meyering <meyering@lucent.com>
* lib/hash.h (struct hash_table): Don't define here. Merely declare
it.
* lib/hash.c (struct hash_table): Define it here instead.
2001-11-22 Jim Meyering <meyering@lucent.com>
* lib/hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
2001-11-20 Jim Meyering <meyering@lucent.com>
* m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Update comment to reflect that
SunOS 4.1.4 and Solaris 2.5.1 lose, too.
2001-11-19 Jim Meyering <meyering@lucent.com>
* m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Don't bother with a temporary
directory. Use "conftestXXXXXX" as the template.
Suggestion from Paul Eggert.
* m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Close each descriptor
immediately, so the test doesn't mistakenly hit the max-open-files
limit.
2001-11-18 Paul Eggert <eggert@twinsun.com>
* lib/tempname.c (TMP_MAX): Remove; no longer needed.
(TEMPORARIES): New macro.
(__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This
removes an artificial limitation (e.g. HP-UX 10.20, where
TMP_MAX is 17576).
2001-11-18 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_TEMPNAME): Check for declaration of getenv.
2001-11-18 Jim Meyering <meyering@lucent.com>
* lib/tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
on SunOS 4.
* lib/Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
files will be created before anything else.
2001-11-17 Paul Eggert <eggert@twinsun.com>
* m4/jm-winsz1.m4 (jm_WINSIZE_IN_PTEM): Do not define
WINSIZE_IN_PTEM if <termios.h> defines struct winsize.
2001-11-17 Jim Meyering <meyering@lucent.com>
* m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): New file and macro.
Prompted by a report from Bob Proulx.
* m4/jm-macros.m4 (jm_MACROS): Don't test for mkstemp here.
Instead, require UTILS_FUNC_MKSTEMP.
2001-11-17 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Remove code to set POW_LIBM.
Now, that's done as part of AC_FUNC_STRTOD.
2001-11-17 Jim Meyering <meyering@lucent.com>
* lib/modechange.c (mode_adjust): Fix error introduced on 1999-04-26
that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
rather than group writable. Patch by Juan F. Codagnone.
* lib/readtokens.c: Remove explicit declarations of xmalloc and
xrealloc, Instead, include "xalloc.h".
* lib/mountlist.c: Include unlocked-io.h after all system headers.
Remove explicit declarations of xmalloc, xrealloc,
and xstrdup. Instead, include "xalloc.h".
* lib/argmatch.c, closeout.c, error.c, exclude.c: Include
unlocked-io.h.
* lib/fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c:
Likewise.
* lib/mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
* lib/regex.c, sha.c, version-etc.c, yesno.c: Likewise.
Reported by Padraig Brady.
* lib/mkstemp.c: #undef mkstemp.
Include config.h.
(rpl_mkstemp): Rename from mkstemp.
Protoize.
2001-11-16 Jim Meyering <meyering@lucent.com>
* lib/physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
(physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
determine the amount of total physical memory, use pstat_getstatic.
HPUX-11 doesn't define _SC_PHYS_PAGES.
(physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
If sysconf couldn't be used to determine the amount of available
physical memory, use both pstat_getstatic and pstat_getdynamic.
Based on a patch from Bob Proulx.
2001-11-10 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_PHYSMEM): New function.
(jm_PREREQ): Use it.
2001-11-09 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require autoconf-2.52f.
(AC_FUNC_ERROR_AT_LINE, AC_FUNC_OBSTACK, AC_FUNC_STRTOD):
Use these AC_-prefixed names, not the AM_-prefixed ones.
* m4/afs.m4 (jm_AFS): Quote the body. Patch by Akim Demaille.
2001-11-05 Jim Meyering <meyering@lucent.com>
* lib/xstat.in (slash_aware_lstat): Correct a misleading comment.
2001-11-04 Jim Meyering <meyering@lucent.com>
* m4/fpending.m4: Remove unused cruft that saved, set, and restored
$DEFS.
2001-11-03 Jim Meyering <meyering@lucent.com>
* m4/jm-glibc-io.m4n (jm_FUNC_GLIBC_UNLOCKED_IO): Quote first arg
of AC_DEFUN.
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): Rework so dirfd.c doesn't have to
know the name of the variable in the macro definition.
2001-11-03 Jim Meyering <meyering@lucent.com>
* lib/argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
in argmatch_to_argument call.
* lib/dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
argument.
* lib/hash.c (hash_clear): Fix a bug that could lead to an infloop or
e.g., a fault due to an attempt to free a NULL pointer.
2001-11-01 Jim Meyering <meyering@lucent.com>
* m4/dirfd.m4 (UTILS_FUNC_DIRFD): New macro.
* m4/jm-macros.m4 (jm_MACROS): Require UTILS_FUNC_DIRFD.
2001-11-01 Jim Meyering <meyering@lucent.com>
* lib/dirfd.c, lib/dirfd.h: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
* lib/hash.c (hash_print) [TESTING]: Clean up.
2001-10-22 Paul Eggert <eggert@twinsun.com>
* lib/hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
to avoid a warning if -Wall.
2001-10-22 Jeff Bailey <jbailey@outpost.dnsalias.org>
* README: New file
* doc/*: Add COPYING, COPYING.LIB, COPYING.DOC, fdl.texi
(per RMS's instructions, this is now the canonical source)
* lgpl/, gpl/: New directories.
2001-10-21 Paul Eggert <eggert@twinsun.com>
* lib/regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
2001-10-21 Jim Meyering <meyering@lucent.com>
* lib/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
this code would end up calling gettext even in packages built
with --disable-nls.
* lib/getopt.c (_): Likewise.
* lib/regex.c (_): Likewise.
2001-10-20 Paul Eggert <eggert@twinsun.com>
* m4/error.m4 (jm_PREREQ_ERROR):
Do not invoke AC_CHECK_FUNCS with strerror_r, as
AC_FUNC_STRERROR_R does that.
Check for strerror declaration.
* m4/strerror_r.m4: Add copyright notice, as nontrivial m4 files
are supposed to have them these days.
(AC_FUNC_STRERROR_R): Always do char* test, so that it gets cached.
Merge changes from latest Autoconf CVS.
Rename ac_cv_func_strerror_r_works to ac_cv_func_strerror_r_char_p,
and rename HAVE_WORKING_STRERROR_R to STRERROR_R_CHAR_P, since
POSIX decided to standardize on the int flavor of strerror_r.
2001-10-20 Paul Eggert <eggert@twinsun.com>
* lib/error.c (strerror_r): Do not declare unless !_LIBC.
Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
Use strerror_r that is only a macro, even if it is not a function.
(strerror): Check for HAVE_DECL_STRERROR before declaring.
(private_strerror): Use prototypes, not old-style function definition.
(print_errno_message): New function.
Support the POSIX 'int'-flavored strerror_r, as well as the traditional
char*-flavored one.
(error_tail, error, error_at_line): Use it.
2001-10-11 Jim Meyering <meyering@lucent.com>
* lib/argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
and quote_n (1, ... to avoid clobbering a buffer.
2001-10-05 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and
hash-pjw.h.
* lib/hash-pjw.c: New file (factored out of fileutils' remove.c).
* lib/hash-pjw.h: New file.
2001-09-30 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): See if
`struct fsstat' has the `f_fstypename' member.
Use that to define FS_TYPE, which is now used to make
the getfsstat link test tighter.
2001-09-30 Jim Meyering <meyering@lucent.com>
* lib/mountlist.c [MOUNTED_GETFSSTAT]:
Include <sys/ucred.h>, for Apple Darwin.
Include sys/mount.h and sys/fs_types.h only if available.
(FS_TYPE): Define.
(read_filesystem_list): Use FS_TYPE.
2001-09-29 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c (excluded_filename): 0 -> false, since it's
a boolean context.
2001-09-29 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS)
[one-argument getmntent function]): Include stdio.h before mntent.h.
SunOS 4.1.x needs it for the declaration of `FILE'.
Patch by Volker Borchert.
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS)
Check for these headers: sys/param.h sys/ucred.h sys/mount.h
sys/fs_types.h, and make the link-test for getfsstat guard #include
directives with appropriate #if HAVE_*_H tests so that we can
detect getfsstat on Apple Darwin1.3.7 systems.
Reported by Nelson Beebe.
Fix harmless typo in cache variable name: s/getsstat/getfsstat/.
2001-09-28 Paul Eggert <eggert@twinsun.com>
Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
#defines strtoimax. Also treat the other strto* functions
like strtoimax.
* m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX):
Check for strtoul and strtoumax,
as those declarations are made even in the signed case.
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX):
Likewise, for strtol and strtoimax.
2001-09-28 Paul Eggert <eggert@twinsun.com>
Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
#defines strtoimax. Also treat the other strto* functions
like strtoimax.
* lib/xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
(strtoul): Do not declare if HAVE_DECL_STRTOUL.
(strtoimax, strtoumax): Do not declare if already defined as a macro.
2001-09-26 Jim Meyering <meyering@lucent.com>
Most macros in unlocked-io.h had the wrong number of arguments.
* lib/gen-uio: New script.
(USE_UNLOCKED_IO): Define to 1 if not already defined.
* lib/unlocked-io.hin: Remove file.
* lib/Makefile.am (unlocked-io.h): Rewrite to use a separate script,
rather than trying to embed it here.
(EXTRA_DIST): Add gen-uio. Remove unlocked-io.hin
Reported by Padraig Brady.
2001-09-25 Volker Borchert <bt@teknon.de>
* lib/gettimeofday.c (rpl_gettimeofday): Declare local variable
`result'.
2001-09-24 Jim Meyering <meyering@lucent.com>
* m4/gettext.m4: Use the version from gettext-0.10.40, not CVS.
2001-09-23 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Add a compile-test
instead of the mere test for existence of mntent.h. The latter
would get a false-positive on AIX 3.4 systems.
In the outer getmntent if-block, don't die if neither of the getmntent
tests succeeds. Instead, just fall through and continue with the
remaining tests.
2001-09-23 Jim Meyering <meyering@lucent.com>
* lib/mountlist.c: Remove useless parentheses in #if directives.
(MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
the deprecated MOUNTED symbol is no longer defined in mntent.h.
2001-09-22 Jim Meyering <meyering@lucent.com>
* m4/gettext.m4: New file. From gettext.
* m4/lcmessage.m4: Sync with gettext -- this changes only comments.
* m4/progtest.m4: Likewise
* m4/isc-posix.m4: Decrement serial number to sync with gettext.
* m4/glibc21.m4: Likewise.
* m4/libintl.m4: Remove. No longer used.
2001-09-22 Jim Meyering <meyering@lucent.com>
* lib/localcharset.c: Update from latest gettext.
* lib/config.charset: Likewise.
2001-09-20 Jim Meyering <meyering@lucent.com>
* m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX): Check for declaration of
strtoimax.
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Check for declaration of
strtoumax.
2001-09-20 Jim Meyering <meyering@lucent.com>
* lib/xstrtol.c (strtoimax): Guard declaration with
`#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
have their own, conflicting declaration of strtoimax in sys/inttypes.h.
(strtoumax): Likewise, for completeness (it wasn't necessary).
2001-09-17 Paul Eggert <eggert@twinsun.com>
* lib/strtoimax.c (HAVE_LONG_LONG):
Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
(strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
to work around bug in IBM C compiler.
2001-09-17 Jim Meyering <meyering@lucent.com>
* m4/chown.m4, fstypename.m4, getgroups.m4, gettimeofday.m4,
* m4/jm-mktime.m4, lstat.m4, malloc.m4, memcmp.m4, mkdir-slash.m4,
* m4/nanosleep.m4, putenv.m4, readdir.m4, realloc.m4, rename.m4,
* m4/st_dm_mode.m4, stat.m4, strerror_r.m4, timespec.m4, utimbuf.m4,
* m4/utimes.m4: Use AC_DEFINE rather than AC_DEFINE_UNQUOTED,
whenever the right hand side need not be expanded by the shell.
2001-09-16 Paul Eggert <eggert@twinsun.com>
* m4/fnmatch.m4 (jm_FUNC_FNMATCH): Remove test for GNU C
library. It's not correct, as some older glibcs are buggy.
fnmatch wasn't fixed until glibc 2.2.
Use AC_DEFINE, not AC_DEFINE_UNQUOTED, as there's no
special shell magic here.
2001-09-16 Jim Meyering <meyering@lucent.com>
* m4/mkdir-slash.m4 (UTILS_FUNC_MKDIR_TRAILING_SLASH): New file/macro.
* m4/jm-macros.m4: Require it.
2001-09-16 Jim Meyering <meyering@lucent.com>
* lib/mkdir.c: New file.
2001-09-15 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Check for help2man.
2001-09-11 Jim Meyering <meyering@lucent.com>
* m4/host-os.m4 (UTILS_HOST_OS): New file/macro.
The body, by Paul Eggert, was moved here from configure.in.
* m4/jm-macros.m4: Require UTILS_HOST_OS.
2001-09-04 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ_XREADLINK): New macro.
(jm_PREREQ): Use it.
2001-09-04 Paul Eggert <eggert@twinsun.com>
* lib/xreadlink.c (xreadlink): Omit size_t* arg. All uses changed.
Use ssize_t, not int, to store result of readlink.
Check for ssize_t overflow as well as size_t overflow,
as POSIX says the result of readlink is implementation-defined
when ssize_t overflows.
Remove unnecessary cast to char*.
Use free+malloc instead of realloc, as the storage doesn't need
to be preserved and it's clearer and can be more efficient that way.
(SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
* lib/xreadlink.h (xreadlink): Update prototype.
2001-09-04 Paul Eggert <eggert@twinsun.com>
* lib/xgetcwd.c: Revert some of the previous change; intead,
fix the HAVE_GETCWD_NULL code to behave more like the
!HAVE_GETCWD_NULL code used to.
Include "xalloc.h".
(xgetcwd): Do not return NULL when memory is exhausted; instead,
invoke xalloc_die.
2001-09-03 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ_XGETCWD): Check for limits.h and
sys/param.h, as pathmax.h includes them.
2001-09-03 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_XGETCWD.
(jm_PREREQ_XGETCWD): New macro.
* m4/getcwd.m4: New file.
2001-09-03 Paul Eggert <eggert@twinsun.com>
* lib/xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
like the HAVE_GETCWD_NULL code.
Include pathmax.h if not HAVE_GETCWD.
Do not include xalloc.h.
(INITIAL_BUFFER_SIZE): New symbol.
Do not use xmalloc / xrealloc, since the caller is responsible for
handling errors. Preserve errno around `free' during failure.
Do not overrun buffer when using getwd.
2001-09-03 Paul Eggert <eggert@twinsun.com>
* lib/xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
__GLIBC__ && __GLIBC__ >= 2), to decide whether to use
getcwd (NULL, 0).
2001-09-03 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c (fnmatch_no_wildcards): Fix confusion between
usage of FNM_CASEFOLD and FNM_LEADING_DIR. The bug was
spotted by Jim Meyering.
2001-09-03 Jim Meyering <meyering@lucent.com>
* lib/xreadlink.c (xreadlink): Preserve errno around `free' during
failure.
2001-09-02 Jim Meyering <meyering@lucent.com>
* lib/error.c: Update from GNU libc.
2001-09-01 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Check for canonicalize_file_name.
Used by df.
2001-09-01 Jim Meyering <meyering@lucent.com>
* lib/xreadlink.c: New file.
* lib/xreadlink.h: New file.
* lib/Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and
xreadlink.h.
* lib/regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
doesn't conflict with sparc Solaris 7's definition in
/usr/include/sys/int_types.h.
* lib/exclude.c: Use `""', not `<>' to #include non-system header
files.
(fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
and strncasecmp as r-values. Unixware didn't have declarations.
2001-08-31 Paul Eggert <eggert@twinsun.com>
* lib/xstrtol.h: Add copyright notice.
(_DECLARE_XSTRTOL): Improve quality of diagnostic for
LONGINT_INVALID_SUFFIX_CHAR.
2001-08-31 Paul Eggert <eggert@twinsun.com>
* lib/xstrtol.c (strtoimax): New decl.
2001-08-31 Paul Eggert <eggert@twinsun.com>
* lib/xgetcwd.c: Don't include pathmax.h.
Include stdlib.h and unistd.h if available.
Include xalloc.h.
(xmalloc, xstrdup, free): Remove decls.
(xgetcwd): Don't assume sizes fit in unsigned.
Check for overflow when computing sizes.
Simplify reallocation code.
2001-08-31 Paul Eggert <eggert@twinsun.com>
* lib/savedir.c (savedir): Remove size parameter, as POSIX says that
a directory's st_size can have an arbitrary value, so the old
usage could waste an arbitrary amount of memory. All uses
changed.
* lib/savedir.h: Update prototype.
2001-08-31 Paul Eggert <eggert@twinsun.com>
* lib/Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
* lib/strtoimax.c: Renamed from strtoxmax.c, removing the
old strtoimax.c.
Also, make the following further changes to make this file's
configuration more similar to that of strtol.c:
(UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED. All uses changed.
(strtoumax, uintmax_t, strtoull, strtol): Remove.
(intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
(strtoimax): Renamed from strtoumax. All uses of unsigned values
changed to signed values.
And make the following changes as well:
Fix copyright notice, as 1999 was missing.
(verify): New macro.
(strtoimax): Check sizes at compile-time, not run-time.
Prefer strtol to strtoll if both work.
(main): Remove; it was not that useful and was a pain to maintain.
* lib/strtoumax.c: Include strtoimax.c, not strtouxmax.c.
2001-08-31 Jim Meyering <meyering@lucent.com>
* lib/xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
Use an initial, malloc'd, buffer of length 128 rather than
a statically allocated one of length 1024.
2001-08-30 Paul Eggert <eggert@twinsun.com>
Simplify code, partly by assuming autoconf 2.52 semantics.
* m4/Makefile.am (EXTRA_DIST): Remove uintmax_t.m4.
* m4/inttypes.m4 (AC_PREREQ): Bump to 2.52.
(jm_AC_HEADER_INTTYPES_H): Remove; now done by autoconf in 2.52.
All uses removed.
(jm_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T):
Move AC_REQUIRE to next-to-top level, to avoid confusion.
Use 2.52's AC_CHECK_TYPE instead of merely looking for the header.
* m4/prereq.m4 (jm_PREREQ_HUMAN): Don't require
jm_AC_HEADER_INTTYPES_H.
* m4/jm-macros.m4 (jm_MACROS): Likewise.
* m4/uintmax_t.m4: Remove, as it duplicates inttypes.m4.
* m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX):
Quote first arg of AC_DEFUN.
Require jm_AC_TYPE_UINTMAX_T and jm_AC_TYPE_UNSIGNED_LONG_LONG
since they are needed to parse the include file even if we need
only xstrtoimax. Simplify logic behind the args to AC_REPLACE.
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Likewise,
but with opposite signedness.
2001-08-30 Paul Eggert <eggert@twinsun.com>
Merge 'exclude' changes from tar 1.13.22.
This fixes one or two unlikely storage allocation overflow bugs,
but doesn't change user-visible behavior otherwise.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_EXCLUDE.
(jm_PREREQ_EXCLUDE): New macro.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
tm to be declared.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* lib/hash.c: Remove '2001' from copyright notice.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* lib/full-write.h: New file.
* lib/Makefile.am (libfetish_a_SOURCES): Add full-write.h.
* lib/full-write.c: Correct credits, as cccp.c no longer
exists and anyway it was so heavily changed from the old cccp
code as to be unrecognizable. Include full-write.h.
(full_write): Return size_t, with short writes meaning failure.
All callers changed. This fixes a bug with large buffers
on 64-bit hosts.
* lib/utime.c: Include full-write.h.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* lib/exclude.c (bool): Declare, perhaps by including stdbool.h.
(<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
(<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
Include if available.
(<xalloc.h>): Include
(SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
(verify): New macro. Use it to verify that EXCLUDE macros do not
collide with FNM macros.
(struct patopts): New struct.
(struct exclude): Use it, as exclude patterns now come with options.
(new_exclude): Support above changes.
(new_exclude, add_exclude_file):
Initial size must now be a power of two to simplify overflow checking.
(free_exclude, fnmatch_no_wildcards): New function.
(excluded_filename): No longer requires options arg, as the options
are determined by add_exclude. Now returns bool, not int.
(excluded_filename, add_exclude):
Add support for the fancy new exclusion options.
(add_exclude, add_exclude_file): Now takes int options arg.
Check for arithmetic overflow when computing sizes.
(add_exclude_file): xrealloc might modify errno, so don't
realloc until after errno might be used.
* lib/exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
New macros.
(free_exclude): New decl.
(add_exclude, add_exclude_file): Now takes int options arg.
(excluded_filename): No longer requires options arg, as the options
are determined by add_exclude. Now returns bool, not int.
2001-08-30 Paul Eggert <eggert@twinsun.com>
* lib/alloca.c (alloca): Arg is of type size_t, not unsigned.
2001-08-27 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
* lib/version-etc.c (N_): Remove definition.
Revert most of last change.
Instead, simply don't mark the `Copyright...' string for translation.
Based on advice from Paul Eggert.
* lib/strtoxmax.c: Tweak comment.
2001-08-26 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require jm_AC_PREREQ_XSTRTOIMAX.
* m4/xstrtoimax.m4: New file.
* m4/xstrtoumax.m4: Add comments explaining why we
AC_REPLACE_FUNCS(strtol).
2001-08-26 Jim Meyering <meyering@lucent.com>
* lib/version-etc.c (version_etc_copyright_fmt): Replace literal year
of copyright with `%s' so translators don't get an untranslated
message in 2002.
(COPYRIGHT_YEAR): Define.
(version_etc): Use fprintf rather than fputs.
Suggestion from Ulrich Drepper.
* lib/Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
* lib/strtoll.c: New file, from GNU libc.
* lib/xstrtoimax.c: New file.
* lib/xstrtol.h: Add xstrtoimax.
* lib/strtoumax.c: New file. Simply include "strtoumax.c".
* lib/strtoimax.c: New file. Likewise, but first define
STRTOUXMAX_SIGNED.
* lib/strtoumax.c: Factor to work both for unsigned and signed types,
...
* lib/strtoxmax.c: ... then renamed to this.
2001-08-18 Paul Eggert <eggert@twinsun.com>
* m4/inttypes.m4: Add AC_PREREQ(2.13).
(jm_AC_HEADER_INTTYPES_H): Test for intmax_t, too.
(jm_AC_TYPE_INTMAX_T): New macro.
(jm_AC_TYPE_UINTMAX_T): Moved here from uintmax_t.m4.
* m4/longlong.m4 (jm_AC_TYPE_LONG_LONG): New macro.
* m4/longlong.m4: Renamed from ulonglong.m4.
* m4/inttypes.m4: Renamed from inttypes_h.m4.
* m4/uintmax_t.m4: Removed.
2001-08-13 Paul Eggert <eggert@twinsun.com>
* lib/Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
Port to Solaris 8, where 'sed' requires a space after the 'r'
command, and where sh dislikes "$/". Clean up the spacing a bit.
Redirect output to $tmp just once.
2001-08-12 Paul Eggert <eggert@sic.twinsun.com>
* lib/addext.c (<errno.h>): Include.
(errno): Declare if not defined.
(addext): Work correctly when pathconf returns -1 and leaves
errno alone because there is no limit. Also, work even if
pathconf returns a value greater than SIZE_MAX.
2001-08-12 Jim Meyering <meyering@lucent.com>
* m4/afs.m4, assert.m4, bison.m4, check-decl.m4, chown.m4, d-ino.m4,
d-type.m4, dos.m4, error.m4, fnmatch.m4, fpending.m4, fstypename.m4,
fsusage.m4, ftruncate.m4, getgroups.m4, glibc.m4, gnu-source.m4,
group-member.m4, jm-glibc-io.m4, jm-macros.m4, jm-mktime.m4,
jm-winsz1.m4, jm-winsz2.m4, lchown.m4, lib-check.m4, libintl.m4,
link-follow.m4, ls-mntd-fs.m4, lstat.m4, malloc.m4, mbrtowc.m4,
mbstate_t.m4, mbswidth.m4, memcmp.m4, nanosleep.m4, perl.m4,
prereq.m4, putenv.m4, readdir.m4, realloc.m4, regex.m4, rename.m4,
rmdir-errno.m4, search-libs.m4, st_dm_mode.m4, st_mtim.m4, stat.m4,
strftime.m4, timespec.m4, unlink-busy.m4, uptime.m4, utimbuf.m4,
utime.m4, utimes.m4, xstrtoumax.m4:
Quote the first argument in each use of AC_DEFUN.
2001-08-12 Jim Meyering <meyering@lucent.com>
* lib/xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
Simply `return getcwd (NULL, 0);'.
[! (defined __GLIBC__ && __GLIBC__ >= 2)]:
Use 1300 as initial value for length, not PATH_MAX.
* lib/pathmax.h: Clean up cpp syntax.
2001-08-12 Jim Meyering <meyering@lucent.com>
* lib/gettimeofday.c: New file.
* lib/gtod.h: New file.
* lib/Makefile.am (libfetish_a_SOURCES): Add gtod.h.
2001-08-05 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require autoconf-2.52.
2001-08-04 Jim Meyering <meyering@lucent.com>
* lib/error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if
stmt, to get in sync with glibc.
2001-08-03 Paul Eggert <eggert@twinsun.com>
The following changes are from gettext 0.10.39 as maintained by
Bruno Haible.
* lib/mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
with inverted sense. All uses changed.
* lib/mbswidth.c: Don't include <limits.h>.
Include <stdlib.h> and <string.h> unconditionally.
(iswcntrl, mbsinit, ISCNTRL): New macros.
(mbsnwidth): Use K&R style function declarations.
Don't bother checking for MB_LEN_MAX == 1, since the compiler
can optimize it when MB_CUR_MAX == 1.
The width of control characters is zero, not 1.
2001-08-03 Paul Eggert <eggert@twinsun.com>
The following changes are from gettext 0.10.39 as maintained by
Bruno Haible, except that getline.m4 continues to use AC_LIBOBJ.
* m4/codeset.m4: Upgrade to serial AM1.
(AM_LANGINFO_CODESET): Renamed from jm_LANGINFO_CODESET;
all uses changed. Quote first arg of AC_DEFUN.
(am_cv_langinfo_codeset): Renamed from jm_cv_langinfo_codeset.
* m4/iconv.m4: Upgrade to serial AM2.
(AM_ICONV): Renamed from jm_ICONV; all uses changed.
Add --with-libconv-prefix.
Quote first arg of AC_DEFUN. Add description for ICONV_CONST.
(am_cv_func_iconv): Renamed from jm_cv_func_iconv.
(am_cv_lib_iconv): Renamed from jm_cv_lib_iconv.
(am_cv_proto_iconv): Renamed from jm_cv_proto_iconv.
* m4/jm-macros.m4 (jm_MACROS): Reflect s/jm_/AM_/ renamings.
* m4/c-bs-a.m4 (AC_C_BACKSLASH_A): Quote first arg of AC_DEFUN.
* m4/getline.m4 (AM_FUNC_GETLINE): Likewise.
* m4/glibc21.m4 (jm_GLIBC21): Likewise.
* m4/inttypes_h.m4 (jm_AC_HEADER_INTTYPES_H): Likewise.
* m4/isc-posix.m4 (AC_ISC_POSIX): Likewise.
* m4/lcmessage.m4 (AM_LC_MESSAGES): Likewise.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise.
* m4/uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Likewise.
* m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Likewise.
* m4/getline.m4 (AM_FUNC_GETLINE): Don't bother checking for
string.h any more.
* m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): If not found, print "no",
not the default value.
2001-06-25 Bruno Haible <haible@clisp.cons.org>
* m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Don't require AM_C_PROTOTYPES.
Also check for mbsinit. Needed for SCO 3.2v5.0.2.
Also include <string.h>; this is where AIX 3.2.5 declares wcwidth.
Also check for iswcntrl, used for wcwidth fallback.
Use AC_TRY_COMPILE to emulate AC_CHECK_DECLS, for portability
to Autoconf 2.13.
2001-08-03 Jim Meyering <meyering@lucent.com>
* m4/mbrtowc.m4 (jm_FUNC_MBRTOWC): Use `#include', not `@%:@include',
as it was in the original. Reported by Paul Eggert.
2001-07-16 Jim Meyering <meyering@lucent.com>
* m4/gettimeofday.m4: New file.
Prompted by a report from Bernhard Baehr.
2001-07-15 Jim Meyering <meyering@lucent.com>
* m4/Makefile.am.in (Makefile.am): Remove most of the unlocked-io.h
stuff. Now it's in ../Makefile.cfg.
2001-07-15 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
(BUILT_SOURCES): Add unlocked-io.h.
(io_functions): Define.
(unlocked-io.h): New rule.
(DISTCLEANFILES): Add unlocked-io.h.
(all-local): Depend on unlocked-io.h, to ensure it is created.
* lib/unlocked-io.hin: New file
* lib/regex.c: Update from glibc.
2001-07-05 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (noinst_HEADERS): Remove definition, per new automake
recommendation.
(libfetish_a_SOURCES): Put all .h files here instead.
Remove a thus-exposed (better checks in automake) duplicate and
two unnecessary .h files.
2001-07-04 Jim Meyering <meyering@lucent.com>
* m4/Makefile.am.in (glibc-io.struct): New target. Rework the code
that generates jm-glibc-io.m4 so that it doesn't trigger any make
distcheck failure.
2001-07-02 Jim Meyering <meyering@lucent.com>
The following changes were prompted by suggestions from Bruno Haible.
* m4/jm-glibc-io.m4n: New file, the template from which jm-glibc-io.m4
is now generated.
* m4/Makefile.am.in (Makefile.am): Include jm-glibc-io.m4n in emitted
definition of EXTRA_DIST.
(Makefile.am): Emit the dependency, `all-local: jm-glibc-io.m4' to
ensure that the generated file is created/updated whenever the list
of $(unlocked_functions) is changed.
(jm-glibc-io.m4): New rule.
(unlocked-io.h): New rule -- currently unused.
2001-06-24 Jim Meyering <meyering@lucent.com>
* m4/regex.m4 (jm_INCLUDED_REGEX): Use a quadrigraph to represent an
unmatched right bracket, rather than kludging it with an extra,
falsely-matching quote in a comment. Patch by Akim Demaille.
2001-06-11 Jim Meyering <meyering@lucent.com>
* lib/regex.c: Update from GNU libc.
2001-05-27 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_READUTMP): Check for ut_type in struct utmpx.
Check for ut_type in struct utmp.
2001-05-27 Jim Meyering <meyering@lucent.com>
* lib/readutmp.h (UT_TYPE): Define.
2001-05-24 Jim Meyering <meyering@lucent.com>
* lib/argmatch.c: Include "quote.h".
(argmatch_invalid): Remove explicit `' quotes. Instead, use the
quote function. Reported by Göran Uddeborg.
2001-05-22 Jim Meyering <meyering@lucent.com>
* m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't use AC_LIBOBJ(strftime),
now that we use the package-supplied version unconditionally.
(jm_FUNC_STRFTIME): Don't replace strftime, for the same reason.
2001-05-21 Jim Meyering <meyering@lucent.com>
* m4/regex.m4: Change a couple backticks to single quotes to avoid
shell syntax errors.
2001-05-21 Alexandre Duret-Lutz <duret_g@epita.fr>
* m4/dos.m4 (jm_AC_DOS): Check for _WIN32, __WIN32__, and __MSDOS__.
2001-05-20 Paul Eggert <eggert@twinsun.com>
* m4/strftime.m4 (jm_FUNC_GNU_STRFTIME):
Don't bother to check library strftime, since
we'll be using our own my_strftime function anyway.
Define my_strftime instead of strftime.
2001-05-20 Alexandre Duret-Lutz <duret_g@epita.fr>
* lib/dirname.c (dir_name): Compute append_dot using path, not newpath
which is not yet declared.
2001-05-15 Jim Meyering <meyering@lucent.com>
* m4/regex.m4: Use proper quoting so brackets appear in the test
program.
Reported by, and with help from, Bruno Haible.
2001-05-13 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (major_t, minor_t): Define to unsigned int if
undefined.
2001-05-11 Paul Eggert <eggert@twinsun.com>
dirname code cleanup. base_name now behaves more compatibly
with POSIX basename when given file names that have trailing
slashes, and similarly for dir_name. Add new primitives
base_len and dir_len. Put the directory-name-related decls
into dirname.h.
* lib/addext.c (ISSLASH, base_name): Remove; now in dirname.h.
* lib/backupfile.c (base_name): Likewise.
* lib/basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise.
* lib/dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise.
* lib/makepath.c (strip_trailing_slashes): Likewise.
* lib/path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN,
ISSLASH): Likewise.
* lib/rename.c (strip_trailing_slashes): Likewise.
* lib/same.c (base_name): Likewise.
* lib/stripslash.c (ISSLASH): Likewise.
* lib/addext.c: Include <dirname.h> after size_t is defined.
* lib/backupfile.c: Likewise.
* lib/addext.c (addext): Use base_len to trim redundant
trailing slashes instead of doing it ourselves.
But do not trim the last slash if it is not redundant.
* lib/backupfile.c (find_backup_file_name,
max_backup_version): Use base_len instead of rolling it ourselves.
Handle the case of "" and (on DOS) "C:" correctly.
* lib/basename.c: Do not include <stdio.h>, <assert.h>; no longer
needed. Include <string.h>, <dirname.h>.
(base_name): Allow file names ending in slashes, other than names
that are all slashes. In this case, return the basename followed
by the slashes. This is more general, and can be used in places
where the original base_name purposely had an assertion failure.
(base_len): New function.
* lib/dirname.c: Include <string.h> instead of <stdlib.h>.
Do not include <assert.h>; no longer needed.
Include xalloc.h.
(memrchr): Remove decl.
(dir_name_r): Remove.
(dir_len): Renamed from dirlen. All callers changed.
Rewrite in terms of base_name, for simplicity and consistency.
(dir_name): Never return NULL. All callers changed.
Do not include <stdlib.h> in test program; no longer needed.
return 0; is fine for test program.
* lib/dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN):
New macros.
(base_name, base_len, dir_len, strip_trailing_slashes): New decls.
* lib/path-concat.c (path_concat): Use base_len to compute
base length, not strlen; this means we cannot rely on memcpy
to null-terminate.
* lib/same.c (STREQ): Remove.
(same_name): Handle the case where the basename ends in trailing '/'.
* lib/stripslash.c (strip_trailing_slashes): Return nonzero if
a slash was stripped. Do not strip the last slash after a
file system prefix.
2001-05-11 Paul Eggert <eggert@twinsun.com>
* lib/Makefile.am (libfetish_a_SOURCES):
Add strftime.c, since we now compile it on all hosts.
* lib/strftime.c (my_strftime):
Define to nstrftime if emacs, but only if my_strftime is not defined.
(extra_args, extra_args_spec, extra_args_spec_iso): Rename from
ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
Add one more extra argument: a nanoseconds value.
All uses changed.
(ns): New macro.
(my_strftime function): Add %N format.
(emacs_strftimeu): Renamed from emacs_strftime,
with extra ut argument.
2001-05-09 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_MACROS): Do not check for fseeko; no longer used.
2001-04-21 Jim Meyering <meyering@lucent.com>
* m4/rmdir-errno.m4: Write to a new file, so that a restrictive umask
doesn't interfere.
2001-04-21 Alexandre Duret-Lutz <duret_g@epita.fr>
* m4/ftruncate.m4: Check for chsize.
Link with ftruncate.o unconditionally if ftruncate is missing.
This was required when cross-compiling to i586-mingw32msvc.
2001-04-08 Jim Meyering <meyering@lucent.com>
* lib/getdate.y (get_date): Set tm_isdst to -1 to ensure that it is
recomputed; that's necessary when the offset spans a DST transition.
Patch by David J. MacKenzie. Reported by Hon-Yin Kok.
2001-04-02 Jim Meyering <meyering@lucent.com>
* lib/regex.h, regex.c: Update from GNU libc.
2001-03-24 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require autoconf-2.49d.
2001-03-20 Bruno Haible <haible@clisp.cons.org>
* m4/iconv.m4 (jm_ICONV): Recommend GNU libiconv.
2001-03-19 Paul Eggert <eggert@twinsun.com>
* lib/version-etc.c (version_etc_copyright): Update to 2001.
2001-03-17 Jim Meyering <meyering@lucent.com>
* m4/memcmp.m4 (jm_AC_FUNC_MEMCMP): Remove my copy of AC_FUNC_MEMCMP,
now that the version in autoconf is equivalent.
(jm_FUNC_MEMCMP): Adjust to use AC_FUNC_MEMCMP.
* m4/error.m4 (jm_PREREQ_ERROR): Invoke AC_FUNC_STRERROR_R.
Suggestion from Akim Demaille.
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_TEMPNAME.
(jm_PREREQ_TEMPNAME): New function.
2001-03-16 Paul Eggert <eggert@twinsun.com>
* lib/tempname.c (uint64_t): Define to uintmax_t if
not defined, and if UINT64_MAX is not defined.
Required at least for Vax Ultrix4.3, which doesn't define uint64_t.
Reported by John David Anglin.
2001-03-15 Bruno Haible <haible@clisp.cons.org>
* lib/localcharset.c (locale_charset): Allow wildcard syntax. Also
resolve alias if codeset is empty.
* lib/config.charset (BeOS): Use wildcard syntax.
2001-03-13 Jim Meyering <meyering@lucent.com>
* lib/path-concat.c (path_concat)
[FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't insert a backslash when
concatenating e.g., `C:' and `foo'.
From Bruno Haible.
2001-03-06 Bruno Haible <haible@clisp.cons.org>
* lib/localcharset.c (locale_charset): Don't use
setlocale(LC_CTYPE,NULL). Don't return NULL.
* lib/unicodeio.c (print_unicode_char): Simplify accordingly.
2001-03-06 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add
support for DOS/DJGPP.
2001-03-01 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_MACROS): Use mkstemp replacement if the system
lacks mkstemp. Compile our own tempname.c if we compile our own
mkstemp.c, as mkstemp relies on tempname.
2001-03-01 Jim Meyering <meyering@lucent.com>
* m4/dos.m4 (jm_AC_DOS): Remove extra backslashes, now that
AH_VERBATIM really does output its argument verbatim.
2001-02-28 Paul Eggert <eggert@twinsun.com>
* lib/Makefile.am (libfetish_a_SOURCES):
Add dup-safer.c, fopen-safer.c.
(noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
* lib/dup-safer.c, lib/fopen-safer.c, lib/stdio-safer.h:
* lib/unistd-safer.h: New files.
2001-02-25 Paul Eggert <eggert@twinsun.com>
The mkstemp replacement is taken from glibc 2.2.2, with some
portability fixes for use outside glibc, as follows:
* lib/tempname.c (struct_stat64): New macro.
(direxists, __gen_tempname): Use it.
This avoids a portability problem with Solaris 8.
* lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H.
(<stddef.h>, <stdint.h>, <string.h>):
Include only if STDC_HEADERS || _LIBC.
(<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
(<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
(<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
(__set_errno): Define this macro if <errno.h> doesn't.
(P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
Define these macros if <stdio.h> doesn't.
(S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
Define these macros if <sys/stat.h>
doesn't. Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
(stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
__xstat64): Define if not _LIBC.
(__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
(__gen_tempname): Invoke gettimeofday only if
HAVE_GETTIMEOFDAY || _LIBC;
otherwise, fall back on plain "time".
Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
* lib/mkstemp.c (__GT_FILE): Define to zero if not defined.
* lib/mkstemp.c, lib/tempname.c: New files, taken from glibc 2.2.2.
2001-02-18 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_HEADERS): Check for sys/resource.h.
2001-02-17 Paul Eggert <eggert@twinsun.com>
* m4/mbrtowc.m4: New file, defining jm_FUNC_MBRTOWC.
* m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH):
Use jm_FUNC_MBRTOWC, not AC_CHECK_FUNCS(mbrtowc).
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Likewise.
2001-02-17 Paul Eggert <eggert@twinsun.com>
* lib/mbswidth.c, quotearg.c (mbrtowc, mbsinit):
Remove workaround macros for hosts that have mbrtowc but not
mbstate_t, as we now insist on proper declarations for both
before using mbrtowc.
2001-02-17 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Don't check for
getmntent via AC_CHECK_FUNCS, since that would get a `no' and disrupt
further attempts by AC_FUNC_GETMNTENT to check with e.g., -lgen on
UnixWare 7.1.1.
* m4/mbrtowc.m4 (jm_FUNC_MBRTOWC): Adapt to use AC_CACHE_CHECK etc.,
rather than AC_CACHE_VAL.
2001-02-17 Jim Meyering <meyering@lucent.com>
* lib/strtoul.c: Sync from GNU libc. Use double quotes, not <...>
around included file name.
* lib/strnlen.c (__strnlen): Merge in a change from GNU libc.
* lib/strftime.c: Update from GNU libc (the only changes were to
comments).
2001-02-17 Jim Meyering <meyering@lucent.com>
* lib/regex.c: Update from libc.
2001-02-17 Bruno Haible <haible@clisp.cons.org>
* lib/mbswidth.h (mbswidth): Also define as macro, to avoid prototype
clash.
2001-02-16 Paul Eggert <eggert@twinsun.com>
* lib/alloca.c (malloc): Undef before defining, since stdlib.h
may have defined it. Needed for Encore Umax-3.0.9.16b systems.
Reported by Mark Hounschell via Paul Eggert.
2001-02-07 Jim Meyering <meyering@lucent.com>
* m4/regex.m4 (jm_INCLUDED_REGEX): Add a test for the latest bug.
2001-02-05 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require autoconf-2.14d (not yet released), because
it includes the patch required for `large file' support with at least
HP-UX's 10.20 /bin/cc.
2001-02-03 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Restore prior use of
AS_IF, now that it works once again (mysteriously).
* m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Likewise.
2001-01-30 Jim Meyering <meyering@lucent.com>
Don't use filenames that are 8.3-equivalent to "conftest" on DOS.
* m4/chown.m4: Rename conftestchown to conftest.chown.
* m4/rename.m4: s/conftestdir/conftest.d1/ and
s/conftestdir2/conftest.d2/.
* m4/utimes.m4: s/conftestdata/conftest.data/
Inspired by Pavel Roskin's change in autoconf.
2001-01-30 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Update for FreeBSD 4.2.
2001-01-27 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Open-code what was
a use of AS_IF.
* m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Likewise.
2001-01-26 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for stddef.h, now that
quotearg.c includes it.
2001-01-26 Jim Meyering <meyering@lucent.com>
* lib/quotearg.c: Include stddef.h.
* lib/quote.c: Include stddef.h.
Reported by Axel Kittenberger.
* lib/xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking
line in double quotes so that it evokes a better diagnostic.
[HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise.
Reported by Axel Kittenberger.
2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
as if it was a `charset'.
2001-01-21 Bruno Haible <haible@clisp.cons.org>
* m4/iconv.m4 (jm_ICONV): Also check whether the iconv declaration
has const.
2001-01-21 Bruno Haible <haible@clisp.cons.org>
* lib/unicodeio.c (print_unicode_char): Cast the second iconv() arg,
to avoid a warning. Add back 'const' to inptr.
2001-01-20 Jim Meyering <meyering@lucent.com>
Be sure that headers are checked before used in code compiled
for the type checks.
* m4/jm-macros.m4 (jm_MACROS): Remove all header checks.
In place of that, invoke jm_CHECK_ALL_TYPES.
(jm_CHECK_ALL_HEADERS): New functions with the above checks.
(jm_CHECK_ALL_TYPES): Require jm_CHECK_ALL_HEADERS.
Alan Iwi reported a build failure on an f300-fujitsu-uxpv4.1_ES;
The check for ssize_t was mistakenly run before the test for unistd.h.
The configure-time check for stdbool.h was missing.
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HASH.
(jm_PREREQ_HASH): New function.
2001-01-17 Jim Meyering <meyering@lucent.com>
* m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Use AS_IF, not AS_IFELSE,
for autoconf-2.49c.
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Likewise.
2001-01-16 Jim Meyering <meyering@lucent.com>
* lib/basename.c: Include <stdio.h>, needed by assert on SunOS 4.
From Bruno Haible.
2001-01-14 Jim Meyering <meyering@lucent.com>
* m4/rename.m4: Use temporary directories named conftestdir{,2}, not
foo and bar. Create conftestdir/ in the script, not in the C code.
Remove directories in the script, not in the C code.
Remove conftestdir{,2} before trying to create the directory.
Make the entire configure script fail if the mkdir fails.
2001-01-14 Jim Meyering <meyering@lucent.com>
* lib/rename.c: New file. From Volker Borchert.
Include stdlib.h, string.h or strings.h, and xalloc.h.
Use strip_trailing_slashes rather than open-coding it.
2001-01-03 Paul Eggert <eggert@twinsun.com>
* lib/strftime.c: Sync with glibc time/strftime.c 1.81.
2001-01-03 Jim Meyering <meyering@lucent.com>
* lib/unicodeio.c (print_unicode_char): Remove `const' from declaration
of local `inptr' to avoid warning with some system declarations of
iconv.
2001-01-02 Volker Borchert <bt@teknon.de>
* m4/rename.m4: New file.
* m4/jm-macros.m4 (jm_MACROS): Require vb_FUNC_RENAME.
2001-01-01 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_READUTMP): Include utmp.h (if available),
even on systems with utmpx.h. It's necessary for the declaration of
utmp's ut_user member. Reported by Andreas Jaeger.
* m4/check-decl.m4 (jm_CHECK_DECLS): Include grp.h and pwd.h if
available. They are required for the declarations of getgrgid and
getpwuid resp.
(_jm_DECL_HEADERS): Check for grp.h and pwd.h.
Reported by Andreas Jaeger.
2001-01-01 Alexandre Duret-Lutz <duret_g@epita.fr>
* m4/libintl.m4 (AM_GNU_GETTEXT): Define MKINSTALLDIRS by
expanding the value of $ac_aux_dir, as in AM_MISSING_HAS_RUN,
so `make install' also works in VPATH builds.
2000-12-31 Alexandre Duret-Lutz <duret_g@epita.fr>
* m4/libintl.m4 (AM_WITH_NLS): When using AC_CONFIG_AUX_DIR,
prepend $(top_srcdir) to the value of MKINSTALLDIRS so that it
can be used in subdirectories.
2000-12-29 Paul Eggert <eggert@twinsun.com>
* lib/modechange.c: Do not assume that mode_t uses the
traditional octal encoding. E.g. "chmod 1 FOO" should set
the other-execute bit of FOO even if S_IXOTH != 1.
(SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH,
WOTH, XOTH, ALLM): New macros.
(S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR,
S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH):
Use them.
(S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID.
(S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above.
(mode_compile):
No need to use uintmax_t; unsigned long is long enough.
Don't bother to get suffix since we don't use it.
2000-12-26 Jim Meyering <meyering@lucent.com>
* m4/dos.m4 (jm_AC_DOS): Rewrite (though it's still a stub) to work
better with autoheader.
2000-12-24 Jim Meyering <meyering@lucent.com>
* lib/hash.c (is_prime): Return explicit boolean values.
(hash_get_first): Return NULL to appease Irix5.6's 89.
Reported by Nelson Beebe.
2000-12-19 Bruno Haible <haible@clisp.cons.org>
* lib/localcharset.c (locale_charset): Add support for Win32.
2000-12-18 Paul Eggert <eggert@twinsun.com>
* lib/physmem.h, lib/physmem.c: New files.
* lib/Makefile.am (libfetish_a_SOURCES): Add physmem.c.
(noinst_HEADERS): Add physmem.h.
* lib/xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and
't' for compatibility with Solaris 8 sort.
2000-12-18 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Add support for BeOS.
2000-12-17 Jim Meyering <meyering@lucent.com>
* m4/dos.m4 (jm_AC_DOS): New file and macro.
* m4/jm-macros.m4 (jm_MACROS): Require jm_AC_DOS.
2000-12-16 Jim Meyering <meyering@lucent.com>
This bug had a serious impact on chown: `chown N:M FILE' (for integer
N and M) would have treated it like `chown N:N FILE'.
* lib/userspec.c (parse_user_spec): Fix typo: s/u/g/.
2000-12-16 Jim Meyering <meyering@lucent.com>
* lib/getusershell.c [!SHELLS_FILE && __DJGPP__]: Define
SHELLS_FILE to a file name that's useful on djgpp systems.
Include stdlib.h.
(ADDITIONAL_DEFAULT_SHELLS): Define.
(default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS.
Based mostly on a patch from Prashant TR.
2000-12-16 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB,
VISCII, CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256,
CP1257 to the list of canonical encodings. Rename EUC-CN to GB2312.
2000-12-08 Andreas Schwab <schwab@suse.de>
* lib/mbswidth.c (mbsnwidth): Don't loop endlessly when called with an
invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set.
2000-12-07 Jim Meyering <meyering@lucent.com>
* lib/stripslash.c (ISSLASH): Define.
(strip_trailing_slashes): Use ISSLASH rather than comparing against
`/'.
From Prashant TR.
* lib/dirname.c (FILESYSTEM_PREFIX_LEN): Define.
(dir_name_r): Declare this function as static.
[BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd
manifest itself on a name containing a mix of slashes and
backslashes.
Make this function work with names starting with a DOS-style
drive letter and colon prefix.
(dir_name): Append `.' if necessary.
Based mostly on patches from Prashant TR and Eli Zaretskii.
* lib/dirname.h (dir_name_r): Remove prototype.
2000-12-06 Paul Eggert <eggert@twinsun.com>
* m4/off_t-format.m4: Remove this file.
* m4/jm-macros.m4 (jm_MACROS): Remove jm_SYS_OFF_T_PRINTF_FORMAT.
2000-12-06 Jim Meyering <meyering@lucent.com>
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): If we need the
replacement strtoull, we may well need the replacement strtoul, too.
Check for declarations of strtoul and strtoull.
Check for strtol. Mainly as a cue to cause automake to include
strtol.c -- that file is included by each of strtoul.c and strtoull.c.
Check for limits.h -- strtol.c needs it.
2000-12-05 Jim Meyering <meyering@lucent.com>
* lib/dirname.c (dir_name_r): Add `const' in a few local declarations.
2000-12-04 Jim Meyering <meyering@lucent.com>
* lib/path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc.
Also include memory.h, stdlib.h, unistd.h if appropriate.
Reported by Andreas Jaeger (conflicting declaration of malloc).
2000-12-02 Jim Meyering <meyering@lucent.com>
* m4/off_t-format.m4 (OFF_T_PRINTF_FORMAT_STRING): New file/macro.
* m4/jm-macros.m4 (jm_MACROS): require it.
2000-12-02 Jim Meyering <meyering@lucent.com>
* lib/closeout.h: Make idempotent, to avoid some obscure warnings.
2000-12-01 Paul Eggert <eggert@twinsun.com>
* lib/memrchr.c: Include <config.h> before any system include file.
2000-11-30 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Check for stdint.h.
2000-11-30 Jim Meyering <meyering@lucent.com>
* m4/getloadavg.m4: s/ifval/m4_ifval/ to accommodate new autoconf.
2000-11-29 Paul Eggert <eggert@twinsun.com>
* lib/dirname.c (dir_name_r): Fix typo: int -> size_t.
2000-11-26 Jim Meyering <meyering@lucent.com>
* lib/memcoll.c: Include sys/types.h. From Werner Almesberger.
2000-11-22 Paul Eggert <eggert@twinsun.com>
* lib/strftime.c (my_strftime): Do not invoke mbrlen with a
size of (size_t) -1; it's not portable.
2000-11-17 Jim Meyering <meyering@lucent.com>
* lib/strstr.c: Update from GNU libc.
2000-11-17 Akim Demaille <akim@epita.fr>
* lib/obstack.h: Formatting changes.
(obstack_grow, obstack_grow0): Don't cast WHERE at all: that would
prevent type checking.
(obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
cast the value to (void *): assigning a `foo *' to a `void *'
variable is valid.
(obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
2000-11-16 Jim Meyering <meyering@lucent.com>
* lib/strverscmp.c: Incorporate weak-alias-related changes from glibc.
2000-11-11 Jim Meyering <meyering@lucent.com>
* lib/error.c: Add a couple #includes, merging from GNU libc version.
2000-11-10 Jim Meyering <meyering@lucent.com>
* lib/obstack.h: Update from GNU libc.
* lib/obstack.c: Likewise.
2000-11-08 Bruno Haible <haible@clisp.cons.org>
* m4/jm-macros.m4 (jm_MACROS): Add test for wcrtomb.
2000-11-06 Paul Eggert <eggert@twinsun.com>
* lib/getusershell.c (setusershell): Use rewind rather than
fseek/fseeko, to avoid configuration hassles with fseeko.
Don't bother opening SHELLS_FILE if shellstream is NULL;
it's not necessary.
2000-11-05 Jim Meyering <meyering@lucent.com>
* lib/makepath.h (make_dir): Declare.
* lib/makepath.c (make_dir): Remove `static' attribute.
Tweak a comment.
2000-11-04 Jim Meyering <meyering@lucent.com>
* m4/regex.m4: Use the `m4_' prefix on `syscmd' and `m4_sysval'.
2000-11-04 Alexandre Duret-Lutz <duret_g@epita.fr>
* lib/hash.c (hash_get_next): Fix a thinko: when ENTRY is the
last one in a bucket, advance to the next bucket.
2000-11-02 Vesselin Atanasov <vesselin@bgnet.bg>
* lib/fnmatch.c: Do not comment out all the code if we are using
the GNU C library, because in some cases we are replacing buggy
code in the GNU C library itself.
2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
(regex_compile): Catch bogus \(\1\).
2000-10-30 Paul Eggert <eggert@twinsun.com>
* lib/fnmatch.c (FOLD): Do not assume that characters are unsigned.
(fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs,
e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero.
2000-10-30 Paul Eggert <eggert@twinsun.com>
* lib/error.h, getline.h, modechange.h:
Remove "2000" from Copyright line, as the file hasn't been
changed this year other than in the copyright notice.
* lib/xalloc.h: Add "2000" to Copyright line, as this file
was changed this year.
2000-10-29 Jim Meyering <meyering@lucent.com>
* m4/fsusage.m4: s/AC_SHELL_IFELSE/AS_IFELSE/ to match autoconf
renaming.
* m4/ls-mntd-fs.m4: Likewise
2000-10-29 Jim Meyering <meyering@lucent.com>
* lib/xstat.in: Fix grammar in comment.
2000-10-29 Greg Louis <glouis@dynamicro.on.ca>
* lib/regex.h (__restrict_arr): Move definition out of #ifndef block.
Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but
doesn't define __restrict_arr.
2000-10-28 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_MEMCHR.
(jm_PREREQ_MEMCHR): New function.
2000-10-28 Jim Meyering <meyering@lucent.com>
* lib/memchr.c: Update from libc.
Adjust for portability:
[HAVE_STDLIB_H]: Include stdlib.h.
[HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h.
Undef __memchr, too.
[!weak_alias]: Define __memchr to memchr.
* lib/regex.c: Update from libc.
* lib/regex.h: Likewise.
* lib/getopt1.c: Likewise.
* lib/memcmp.c: Likewise.
* lib/getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko.
Avoid using fseek, when possible -- it's broken by design.
Patch by Ulrich Drepper.
2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
(re_match_2_internal, re_match_2_internal, re_match_2_internal):
Giving in to popular pressure to shut up the compiler with casts.
2000-10-26 Jim Meyering <meyering@lucent.com>
* lib/strftime.c: Update from libc.
2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
* regex.c: More `unsigned char' -> `re_char' changes.
Also change several `int' into `re_wchar_t'.
(PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
(PUSH_FAILURE_POINTER): Don't cast any more.
(POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
We want GCC to complain, since this piece of code makes
re_match non-reentrant, which *should* be fixed.
(GET_BUFFER_SPACE): Use size_t rather than unsigned long.
(EXTEND_BUFFER): Use RETALLOC.
(SET_LIST_BIT): Don't cast.
(re_wchar_t): New type.
(re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
that those two functions will always properly return.
(IMMEDIATE_QUIT_CHECK): Cast to void.
(analyse_first): Use recursion rather than an explicit stack.
(re_compile_fastmap): Can't fail anymore.
(re_search_2): Don't check re_compile_fastmap for failure.
(PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
Now also sets the new value (passed in a new argument).
(re_match_2_internal): Use it.
Also, use a new var `reg' of type size_t when looping through regs
rather than reuse the inappropriate `mcnt'.
2000-10-25 Jim Meyering <meyering@lucent.com>
* lib/obstack.c: Update from libc.
2000-10-24 Kenichi Handa <handa@etl.go.jp>
* regex.c (regex_compile): Change the way of handling a range from
a char less than 256 to a char not less than 256.
2000-10-24 Andrew Innes <andrewi@gnu.org>
* regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
NT-Emacs only.
(re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
so that re_search functions only quit when callers expect them to.
2000-10-23 Jim Meyering <meyering@lucent.com>
* lib/hard-locale.c (hard_locale): Revert last change -- it was simply
wrong. That set_locale call must not have any side effects.
From Paul Eggert.
2000-10-22 Jim Meyering <meyering@lucent.com>
* lib/md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC.
[CYCLIC]: Remove now-unused definition.
* lib/save-cwd.c (O_DIRECTORY): Define, if needed.
(save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".".
Suggestion from Ulrich Drepper.
2000-10-21 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4 (jm_CHECK_DECLS): Also check for memrchr.
* m4/prereq.m4 (jm_PREREQ_DIRNAME): New macro.
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memrchr.
2000-10-21 Jim Meyering <meyering@lucent.com>
* lib/dirname.c (memrchr): Declare if necessary.
(dir_name): Remove the restriction that there be no
trailing slashes. Now, this code skips past them, effectively
ignoring them.
[TEST_DIRNAME] (main): New unit tests.
* lib/memrchr.c: New file from GNU libc.
Undef __memrchr, too.
[!weak_alias]: Define __memrchr to memrchr.
Guard weak_alias use with `#ifdef weak_alias'.
2000-10-21 Jim Meyering <meyering@lucent.com>
* lib/dirname.c (dir_name_r): New function, factored out of dir_name.
(dir_name): Use dir_name_r.
* lib/dirname.h (dir_name_r): Declare it.
2000-10-17 Jim Meyering <meyering@lucent.com>
* lib/quote.h (PARAMS): Define and use.
Reported by Akim Demaille.
* lib/getopt.c: Update from libc.
2000-10-16 Jim Meyering <meyering@lucent.com>
* lib/hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to
setlocale.
From Jan Fedak.
2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
* regex.c (WIDE_CHAR_SUPPORT): Define if _LIBC as well.
2000-09-25 Jim Meyering <meyering@lucent.com>
* lib/md5.h (rol): Define (from GnuPG).
* lib/sha.c: Give credit (GnuPG) where due.
(M): Use rol rather than open-coding it.
Add a FIXME comment.
2000-09-21 Jim Meyering <meyering@lucent.com>
* lib/userspec.c (parse_user_spec): Remove debugging printf I'd added.
Reported by Michael Stone.
2000-09-20 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (libfetish_a_SOURCES): Add sha.c.
(noinst_HEADERS): Add sha.h.
Based on code from Scott G. Miller and from GnuPG.
2000-09-18 Jim Meyering <meyering@lucent.com>
* m4/getloadavg.m4 (AC_FUNC_GETLOADAVG): Restore the initial value of
LIBS. Otherwise, everyone ends up linking with -lelf for some
configurations.
Reported by Mike Stone.
2000-09-15 Jim Meyering <meyering@lucent.com>
* lib/regex.c: Update from libc.
2000-09-10 Jim Meyering <meyering@lucent.com>
* lib/getopt.c (_getopt_internal): Update from glibc.
2000-09-09 Jim Meyering <meyering@lucent.com>
* lib/quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't
think it should be used as a general replacement for isascii.
* lib/fnmatch.c: Likewise.
* lib/mbswidth.c: Likewise
* lib/regex.c: Likewise.
Don't use atoi.
* lib/userspec.c: Include sys/param.h and limits.h.
Include xstrtol.h.
(CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define.
(UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define.
(parse_user_spec): Use xstrtoul, not atoi when converting numeric
UID, GID. Check range.
2000-09-06 Jim Meyering <meyering@lucent.com>
* lib/getopt.c (_getopt_internal): Update from glibc.
2000-08-30 Jim Meyering <meyering@lucent.com>
* lib/strftime.c: Merge in changes from GNU libc.
2000-08-26 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Use jm_FUNC_FPENDING.
* m4/fpending.m4: New file.
2000-08-26 Jim Meyering <meyering@lucent.com>
* lib/closeout.c: Include "__fpending.h".
(close_stdout_status): Return right away if there's nothing to flush.
* lib/Makefile.am (noinst_HEADERS): Add __fpending.h.
* lib/__fpending.c: New file.
* lib/__fpending.h: New file.
2000-08-20 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4: Include utmp.h `#if HAVE_UTMP_H', rather than
`#if !HAVE_UTMPX_H'. The latter would lose on systems with neither
utmp.h nor utmpx.h. Reported by Eli Zaretskii.
2000-08-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
Improve fileutils installation on systems where running
programs (like install) can't be unlinked.
* m4/unlink-busy.m4 (jm_FUNC_UNLINK_BUSY_TEXT): New file/macro.
* m4/jm-macros.m4: Use jm_FUNC_UNLINK_BUSY_TEXT.
2000-08-07 Paul Eggert <eggert@twinsun.com>
Standardize on "memory exhausted" instead of "Memory exhausted"
or "virtual memory exhausted".
* lib/obstack.c (print_and_abort): Use "memory exhausted", not
"virtual memory exhausted".
* lib/same.c (same_name): Invoke xalloc_die instead of printing
our own message.
* lib/userspec.c (parse_user_spec): Likewise.
* lib/bumpalloc.h: comment fix
* lib/same.c, userspec.c: Include xalloc.h.
* lib/xalloc.h (xalloc_msg_memory_exhausted): Now char const[],
not char *const and pointing to a constant array.
* lib/xmalloc.c (xalloc_msg_memory_exhausted): Likewise.
(xrealloc): Comment fix.
* lib/userspec.c (parse_user_spec):
Don't translate a message until just before returning,
to avoid unnecessary translation.
2000-08-07 Jim Meyering <meyering@lucent.com>
* lib/addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h,
chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c,
fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h,
getgroups.c, gethostname.c, getopt.h, group-member.c,
hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c,
linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c,
memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h,
pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c,
stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c,
strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c,
utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c,
yesno.c: Back out Copyright date changes for each file with no change
this year. This eases coordination with other programs using the same
source code modules. From Paul Eggert.
2000-08-06 Paul Eggert <eggert@twinsun.com>
* m4/mbstate_t.m4 (AC_MBSTATE_T): Define mbstate_t to be int,
not char, for compatibility with glibc 2.1.3 strftime.c.
2000-08-03 Greg McGary <greg@mcgary.org>
* lib/regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER,
ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros.
(EXTEND_BUFFER): Use them.
2000-08-01 Jim Meyering <meyering@lucent.com>
* lib/dirname.c (ISSLASH): Define.
(BACKSLASH_IS_PATH_SEPARATOR): Define.
(dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which
both `\' and `/' may be use as path separators.
Based on a patch from Prashant TR.
2000-07-31 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c (quotearg_n_options): Don't make the initial
slot vector a constant, since it might get modified.
2000-07-31 Jim Meyering <meyering@lucent.com>
* lib/xmalloc.c: Use `virtual memory exhausted', not
`Memory exhausted'.
* lib/obstack.c (print_and_abort): Likewise.
2000-07-30 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c (quotearg_n_options): Preallocate a slot 0
buffer, so that the caller can always quote one small
component of a "memory exhausted" message in slot 0.
From a suggestion by Jim Meyering.
2000-07-30 Jim Meyering <meyering@lucent.com>
* lib/makepath.c (make_path): Quote the other instance, too.
* lib/quotearg.c (N_STATIC_SLOTVECS): Define.
(STATIC_BUF_SIZE): Define.
(quotearg_n_options): Use only statically allocated storage when
N < N_STATIC_SLOTVECS and the length of the quoted result is smaller
than STATIC_BUF_SIZE.
2000-07-29 Jim Meyering <meyering@lucent.com>
* lib/diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS.
* lib/dirname.c (dir_name): Likewise.
* lib/basename.c (base_name): Use ISSLASH rather than comparing against
`/'.
* lib/dirname.c (dir_name) [MSDOS]: Declare `lim' to be const.
(dir_name): Assert that there are no trailing slashes.
2000-07-29 Bruno Haible <haible@clisp.cons.org>
* lib/mbswidth.h (mbswidth): Add a flags argument.
(mbswidth): New declaration.
(MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros.
* lib/mbswidth.c (mbswidth): Add a flags argument.
(mbsnwidth): New function.
2000-07-24 Jim Meyering <meyering@lucent.com>
* lib/mbswidth.c: Remove useless #else. From Bruno Haible.
2000-07-23 Paul Eggert <eggert@twinsun.com>
* m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Check for wcwidth declaration.
2000-07-23 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c: Streamline by invoking multibyte code only if needed.
<wchar.h>: Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX.
(MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX).
(quotearg_buffer_restyled): If a unibyte locale, don't bother to
invoke multibyte primitives.
2000-07-23 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c:
Include <wchar.h> even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX),
so that mbstate_t is always defined.
Do not inspect MB_LEN_MAX, since it's incorrectly defined to
be 1 in at least one GCC installation, and this configuration
error is likely to be common. Ignoring MB_LEN_MAX hurts
performance on hosts that have mbrtowc but have only unibyte
locales, but I assume these hosts are rare.
2000-07-23 Paul Eggert <eggert@twinsun.com>
* lib/mbswidth.c (_XOPEN_SOURCE):
Don't define; this causes problems on Solaris 7.
(wcwidth) [!HAVE_DECL_WCWIDTH]: Declare.
2000-07-23 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4 (jm_CHECK_DECLS): Check for declarations of these,
too: getgrgid, getpwuid, getuid.
2000-07-23 Jim Meyering <meyering@lucent.com>
* lib/basename.c (base_name): Add an assertion.
2000-07-23 Bruno Haible <haible@clisp.cons.org>
* lib/quotearg.c: When the system forces us to redefine mbstate_t,
shadow its mbsinit function.
2000-07-17 Bruno Haible <haible@clisp.cons.org>
* lib/mbswidth.h: New file.
* lib/mbswidth.c: New file.
* lib/Makefile.am (libfetish_a_SOURCES): Add mbswidth.c.
(noinst_HEADERS): Add mbswidth.h.
2000-07-17 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Add support for FreeBSD. Improve support for
HP-UX and IRIX 6.
2000-07-16 Bruno Haible <haible@clisp.cons.org>
* m4/mbswidth.m4: New file.
* m4/prereq.m4 (jm_PREREQ): Call jm_PREREQ_MBSWIDTH.
2000-07-15 Jim Meyering <meyering@lucent.com>
* lib/makepath.c: Include quote.h.
(make_path): Convert "`%s'" in format strings to "%s", and wrap each
corresponding argument in a `quote (...)' call.
Give better diagnostics.
* lib/Makefile.am (libfetish_a_SOURCES): Add quote.c.
(noinst_HEADERS): Add quote.h.
* lib/quote.c (quote, quote_n): New file. Two functions taken verbatim
from tar's src/misc.c.
* lib/quote.h: New file. Prototypes for same.
2000-07-14 Paul Eggert <eggert@twinsun.com>
From a suggestion by Bruno Haible.
* lib/quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition.
Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT,
to decide whether to define the BeOS workaround macro;
this adjusts to the change to AC_MBSTATE_T.
2000-07-14 Jim Meyering <meyering@lucent.com>
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Require
jm_AC_TYPE_UINTMAX_T.
2000-07-13 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.h (enum quoting style): New enum clocale_quoting_style.
* lib/quotearg.c (quoting_style_args, quoting_style_vals,
quotearg_buffer_restyled): Add support for
clocale_quoting_style. Undo previous change to
locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}"
and "{RIGHT QUOTATION MARK}" msgids.
2000-07-10 Paul Eggert <eggert@twinsun.com>
From a suggestion by Bruno Haible.
* m4/mbstate_t.m4 (AC_MBSTATE_T):
Renamed from AC_MBSTATE_T_OBJECT. All uses changed.
Change from a two-part test, which defines both HAVE_MBSTATE_T_OBJECT
and mbstate_t, to a single-part test that simply defines mbstate_t.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG):
s/AC_MBSTATE_T_OBJECT/AC_MBSTATE_T/.
2000-07-10 Jim Meyering <meyering@lucent.com>
* m4/strerror_r.m4: Mirror the correction made in autoconf.
* m4/gnu-source.m4: Output to confdefs.h directly.
Suggestion from Akim Demaille.
2000-07-09 Paul Eggert <eggert@twinsun.com>
The old behavior of quoting `like this' doesn't look good with
newer, ISO-style fonts. See:
http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
Instead, quote "like this" by default. Let the translator
tailor the locale-specific quoting behavior by providing
translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}.
* lib/quotearg.c (N_): New macro.
(gettext_default): New function.
(quotearg_buffer_restyled): Use
gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and
gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote.
2000-07-09 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Add a test to see if -lm is required
to link seq. If so, set SEQ_LIBM to -lm. From Bruno Haible.
* m4/gnu-source.m4 (AC__GNU_SOURCE): New file/macro.
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require it.
2000-07-09 Jim Meyering <meyering@lucent.com>
* lib/Most files: Update copyright dates to include 2000.
2000-07-08 Jim Meyering <meyering@lucent.com>
* lib/xgethostname.c (ENAMETOOLONG): Define to an unlikely value
if not defined.
(xgethostname): Remove now-unnecessary #ifdef.
Move declaration of `err' into loop where it's used.
2000-07-05 Paul Eggert <eggert@twinsun.com>
and Bruno Haible <haible@clisp.cons.org>
* m4/mbstate_t.m4 (AC_MBSTATE_T_OBJECT): Test for mbstate_t
only if the test for an object-type mbstate_t fails. This
prevents us from mistakenly reporting that mbstate_t is a
system object type after we "#define mbstate_t int" to work
around its lack.
2000-07-05 Paul Eggert <eggert@twinsun.com>
and Bruno Haible <haible@clisp.cons.org>
* lib/quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't.
2000-07-05 Bruno Haible <haible@clisp.cons.org>
* m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Pass a reasonably large buffer
to strerror_r.
Include <ctype.h> for use of isalpha.
2000-07-05 Bruno Haible <haible@clisp.cons.org>
* lib/xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug
by allocating a larger buffer. Test the gethostname return value for
being >= 0, not == 0, for BeOS. Don't exhaust memory if gethostname
returns an error and ENAMETOOLONG isn't defined.
2000-07-05 Bruno Haible <haible@clisp.cons.org>
* lib/quotearg.c (struct quoting_options): Simplify quote_these_too
dimension.
2000-07-04 Jim Meyering <meyering@lucent.com>
* m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Use plain old `echo' instead
of the deprecated AC_CHECKING.
2000-07-04 Jim Meyering <meyering@lucent.com>
* lib/strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen.
Reported by Bruno Haible.
2000-07-04 Jim Meyering <meyering@lucent.com>
* lib/quotearg.c: Make inclusion of <wchar.h> independent of whether
HAVE_MBRTOWC is set. Required at least for irix-5.6, which
lacks mbrtowc.
2000-07-03 Paul Eggert <eggert@twinsun.com>
* m4/mbstate_t.m4 (AC_MBSTATE_T_OBJECT): Port to autoconf 2.13.
Add AC_CHECK_HEADERS(stdlib.h), since we use HAVE_STDLIB_H.
2000-07-03 Paul Eggert <eggert@twinsun.com>
and Bruno Haible <haible@clisp.cons.org>
* lib/quotearg.c (mbrtowc):
Assign to *pwc, and return 1 only if result is nonzero.
(iswprint): Use ISPRINT when substituting our own mbrtowc.
2000-07-03 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4 (AC_CHECK_DECLS): Add strnlen.
2000-07-03 Jim Meyering <meyering@lucent.com>
* lib/readutmp.h: [HAVE_UTMPX_H]: Include <utmp.h> if HAVE_UTMP_H.
This is necessary to get a definition of e.g., UTMP_FILE on
HP-UX 10.20.
From Bob Proulx.
2000-07-02 Jim Meyering <meyering@lucent.com>
* m4/mbstate_t.m4: Also define mbstate_t, if necessary.
* m4/chown.m4: Replace each use of AC_SUBST(LIBOBJS)/LIBOBJS=... with
AC_LIBOBJ(function_name).
* m4/chown.m4: Likewise.
* m4/fnmatch.m4: Likewise.
* m4/ftruncate.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/getline.m4: Likewise.
* m4/group-member.m4: Likewise.
* m4/jm-macros.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/memcmp.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/strftime.m4: Likewise.
2000-07-02 Jim Meyering <meyering@lucent.com>
* lib/quotearg.c (mbstate_t): Don't define here.
2000-07-02 Jim Meyering <meyering@lucent.com>
* lib/nanosleep.c (SIGCONT): Define if not already defined.
2000-07-01 Jim Meyering <meyering@lucent.com>
* m4/uptime.m4: Put double quotes around use of $cross_compiling.
2000-07-01 Jim Meyering <meyering@lucent.com>
* m4/ls-mntd-fs.m4: Remove a `FIXME' comment and fix the associated
problem.
2000-07-01 Bruno Haible <haible@clisp.cons.org>
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Rename BeOS specific
macro from MOUNTED_NEXT_DEV to MOUNTED_FS_STAT_DEV.
2000-07-01 Bruno Haible <haible@clisp.cons.org>
* lib/mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV,
per change in ../m4/ls-mntd-fs.m4.
(read_filesystem_list): Ignore symbolic links.
2000-06-29 Jim Meyering <meyering@lucent.com>
* lib/same.c: Include <string.h> or <strings.h>, as appropriate,
for declaration of strcmp.
* lib/long-options.c: Include <stdlib.h>, for declaration of exit.
* lib/mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]:
Avoid warning by casting result to `char *' to remove `const'.
2000-06-28 Jim Meyering <meyering@lucent.com>
* m4/mbstate_t.m4: Use stdlib.h, not stdio.h. The latter is not
included by quotearg.c, for which we perform this test. From
Bruno Haible.
2000-06-27 Bruno Haible <haible@clisp.cons.org>
* m4/check-decl.m4 (_jm_DECL_HEADERS): Check for utmp.h as well.
* m4/prereq.m4 (jm_PREREQ_READUTMP): Likewise. If either <utmp.h> or
<utmpx.h> exists, put readutmp.o into LIBOBJS.
2000-06-27 Bruno Haible <haible@clisp.cons.org>
* lib/Makefile.am (libfetish_a_SOURCES): Remove readutmp.c.
2000-06-26 Paul Eggert <eggert@twinsun.com>
savedir now sets errno on failure and invokes xmalloc to get memory.
Fix a couple of other minor bugs while we're at it.
* lib/savedir.c (<unistd.h>): Do not include; there's no need.
(NAMLEN): Remove macro.
(malloc, realloc): Remove decls.
(stpcpy): Likewise.
("xalloc.h"): Include.
(NAME_SIZE_DEFAULT): New macro.
(savedir): Use xmalloc / xrealloc to allocate memory.
Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero.
Skip "" directory entries.
Use strlen to calculate directory entry length, since the old method
is rarely used these days and isn't worth supporting.
Don't use a pointer after freeing it.
Check for integer overflow when calculating allocation size.
Use memcpy to copy entries, instead of stpcpy.
Set errno properly when returning NULL.
Check for readdir error.
2000-06-26 Jim Meyering <meyering@lucent.com>
* lib/posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort.
2000-06-25 Jim Meyering <meyering@lucent.com>
* m4/mbstate_t.m4: Include stdio.h before wchar.h to work around
Linux header bug when _XOPEN_SOURCE is defined to 500.
2000-06-25 Bruno Haible <haible@clisp.cons.org>
* lib/unicodeio.c (print_unicode_char): Work around ansi2knr
deficiency.
2000-06-25 Bruno Haible <haible@clisp.cons.org>
* lib/getusershell.c (xmalloc, xrealloc): Remove functions.
Include xalloc.h.
Don't include <stdlib.h>. Don't declare malloc, realloc.
2000-06-24 Jim Meyering <meyering@lucent.com>
* m4/strerror_r.m4: Revive this file -- to try out an experimental
version of AC_FUNC_STRERROR_R that may work even on BeOS, a system
for which strerror does return char*, but which lacks a conveniently
accessible declaration of the function. If the compile-test says
strerror_r doesn't work, then resort to a `run'-test that works on
BeOS and segfaults on DEC Unix.
2000-06-24 Jim Meyering <meyering@lucent.com>
* lib/error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r.
2000-06-23 Paul Eggert <eggert@twinsun.com>
* m4/mbstate_t.m4: New file, defining AC_MBSTATE_T_OBJECT.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Use it. Add check for iswprint.
2000-06-23 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c: Include <wctype.h> after <wchar.h>, for Solaris 2.5.
(mbrtowc, mbstate_t): Define substitutes if
HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT.
(iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT,
not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H).
2000-06-23 Jim Meyering <meyering@lucent.com>
* m4/afs.m4: Add missing AC_MSG_RESULT.
Reported by Bruno Haible.
* m4/fsusage.m4: s/AC_MSG_CHECKING/AC_CHECKING/.
Suggestion from Bruno Haible.
2000-06-23 Jim Meyering <meyering@lucent.com>
* lib/getpass.c: New file, from Bruno Haible. Required for BeOS.
2000-06-21 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add getpass.
2000-06-21 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (libfetish_a_SOURCES): Add getstr.c.
(noinst_HEADERS): Add getstr.h.
* lib/getline.c (getstr): Move into a separate file.
* lib/getstr.c (getstr): New file, extracted from getline.c, with
the following changes: new parameter, delim2; both delim[12]
parameters have type `int', not `char'. The latter would lose
with 8-bit delimiters.
* lib/getstr.h: New file.
2000-06-21 Bruno Haible <haible@clisp.cons.org>
* lib/xgetcwd.c (xgetcwd): If the required pathname length is smaller
than 1024, return a memory chunk of least possible size, instead
of size PATH_MAX + 2. In the loop, increment the size proportionally.
Use free/xmalloc instead of xrealloc to avoid copying for very long
paths.
2000-06-21 Bruno Haible <haible@clisp.cons.org>
* lib/path-concat.c (path_concat): Don't access dir[-1] if dir is
the empty string.
2000-06-21 Bruno Haible <haible@clisp.cons.org>
* lib/canon-host.c (canon_host): Use malloc and memcpy to copy an
address, not strdup. Include <stdlib.h> and don't declare free().
2000-06-19 Jim Meyering <meyering@lucent.com>
* lib/getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define.
2000-06-18 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Remove mkdir.
* m4/link-follow.m4 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): Change the
`checking whether...' message to be consistent with that of the
lstat test.
2000-06-18 Jim Meyering <meyering@lucent.com>
* lib/mkdir.c: Remove file, due mainly to copyright incompatibility.
Besides, these days every porting target provides a mkdir function.
* lib/strnlen.c: Include memory.h, string.h, and/or strings.h as
needed. (this snippet comes from src/system.h).
2000-06-16 Bruno Haible <haible@clisp.cons.org>
* m4/glibc21.m4 (jm_GLIBC21): Define GLIBC21 for Makefiles, not for C.
2000-06-15 Paul Eggert <eggert@twinsun.com>
* lib/human.c (adjust_value): New function.
(human_readable_inexact): Apply rounding style even when
printing approximate values.
2000-06-14 Paul Eggert <eggert@twinsun.com>
* lib/human.c (human_readable_inexact): Allow an input block
size that is not a multiple of the output block size, and vice versa.
Reported by Piergiorgio Sartor.
2000-06-14 Paul Eggert <eggert@twinsun.com>
* lib/getdate.y (get_date): Apply relative times after time
zone indicator, not before. Reported by Todd A. Jacobs.
2000-06-13 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (all-local): Depend on lstat.c and stat.c.
* lib/xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c.
2000-06-12 Paul Eggert <eggert@twinsun.com>
* lib/xstat.in: Include <stdlib.h> in lstat, to declare "free".
2000-06-12 Jim Meyering <meyering@lucent.com>
* m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Replace with
AC_FUNC_GETLOADAVG from autoconf, and tweak the latter to accept an
optional argument.
* m4/jm-macros.m4: s/AM_FUNC_GETLOADAVG/AC_FUNC_GETLOADAVG/, and supply
the optional argument, `lib'.
2000-06-08 Jim Meyering <meyering@lucent.com>
* m4/largefile.m4: Remove file (now that it's part of autoconf).
2000-06-04 Paul Eggert <eggert@twinsun.com>
Rewrite largefile configuration so that we don't need to run
getconf and don't need AC_CANONICAL_HOST. [I'm leaving the use of
AC_CANONICAL_HOST in configure.in -- jmm]
* m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS,
AC_SYS_LARGEFILE_SPACE_APPEND): Remove.
(AC_SYS_LARGEFILE_TEST_INCLUDES): New macro.
(AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from
CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY.
All uses changed.
Instead of inspecting the output of getconf, try to compile the
test program without and with the macro definition.
(AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check
for getconf. Instead, check for the needed flags by compiling
test programs.
2000-06-04 Paul Eggert <eggert@twinsun.com>
* lib/strnlen.c: Include <config.h> if HAVE_CONFIG_H.
2000-06-04 Jim Meyering <meyering@lucent.com>
* lib/getugroups.c (getugroups): Cast -1 to gid_t, for systems like
SunOS 4.1.4 for which gid_t is an unsigned type.
2000-06-03 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_HUMAN): Use []-quoted list in AC_CHECK_DECLS,
now that autoconf requires that.
* m4/jm-glibc-io.m4: Add a kludge to make autoheader emit the required
#undefs. E.g., #undef HAVE_DECL_FERROR_UNLOCKED.
Use []-quoted list in AC_CHECK_DECLS, now that autoconf requires that.
2000-06-03 Jim Meyering <meyering@lucent.com>
* lib/strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr.
2000-06-03 Bruno Haible <haible@clisp.cons.org>
* m4/glibc21.m4: New file.
* m4/jm-macros.m4 (jm_MACROS): Call jm_GLIBC21.
2000-06-03 Bruno Haible <haible@clisp.cons.org>
* lib/Makefile.am (install-exec-local): On systems with glibc-2.1 or
newer, don't install charset.alias.
* lib/config.charset: Change the Linux/glibc rules so they become empty
on glibc-2.1 or newer.
2000-06-02 Jim Meyering <meyering@lucent.com>
* lib/mountlist.c: Back out last change. Instead, do this...
* lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the
me_dummy member using the same `ignore'-testing code.
* lib/mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored
fs_type strings.
From Mark D. Roth.
2000-05-29 Jim Meyering <meyering@lucent.com>
* lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore
mounts with the `ignore' attribute. Based on a patch from
Mark D. Roth.
2000-05-28 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Rename from
jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
* m4/stat.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/lstat-slash.m4: Remove file (absorbed into autoconf).
* m4/jm-macros.m4 (AC_FUNC_STRERROR_R): Rename from jm_FUNC_STRERROR_R.
* m4/strerror_r.m4: Remove file (absorbed into autoconf).
2000-05-26 Jim Meyering <meyering@lucent.com>
* m4/uptime.m4: Use `$cross_compiling', not `$ac_cv_prog_cc_cross'.
2000-05-24 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4: Use []-quoted list in AC_CHECK_MEMBERS, now that
autoconf requires that.
* m4/lib-check.m4: Likewise.
* m4/jm-macros.m4: Likewise.
* m4/strftime.m4: Likewise.
* m4/check-decl.m4 (jm_CHECK_DECLS): Use []-quoted list in
AC_CHECK_DECLS, now that autoconf requires that.
2000-05-22 Jim Meyering <meyering@lucent.com>
* m4/stat.m4: Require jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
* m4/lstat.m4: Likewise.
2000-05-22 Jim Meyering <meyering@lucent.com>
* lib/makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block.
2000-05-20 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_HUMAN): New macro.
(jm_PREREQ): Use it.
2000-05-18 Jim Meyering <meyering@lucent.com>
* lib/hash.c (hash_rehash): Fix a nasty bug: copy the free entry list
back, too, since it may have been modified by allocate_entry.
(hash_delete): Rewrite to use neither the assignment operator
nor the comma operator in an if-expression.
2000-05-15 Paul Eggert <eggert@twinsun.com>
* lib/closeout.c:
<sys/stat.h>, <sys/types.h>, <unistd.h>, (STDOUT_FILENO):
Remove; no longer needed.
"quotearg.h": Add include.
(file_name): Do not bother to explicitly initialize to NULL; it's less
efficient on some hosts.
(close_stdout_status): Remove test as to whether stdout was already
closed; it breaks for the case "echo x | sort >&-".
Quote file name colons.
Do not assume that _("write error") lacks format strings.
2000-05-15 Jim Meyering <meyering@lucent.com>
* lib/version-etc.c (version_etc_copyright): Update the copyright
string used in all --version output.
2000-05-14 Jim Meyering <meyering@lucent.com>
* lib/closeout.c (close_stdout_set_file_name): New function.
(close_stdout_status): Use new file-scoped global.
Return right away if fstat says the stdout file descriptor is invalid.
* lib/closeout.h (close_stdout_set_file_name): Declare.
2000-05-10 Jim Meyering <meyering@lucent.com>
* lib/closeout.c [default_exit_status]: New file-scoped variable.
(close_stdout_set_status): New function.
* lib/closeout.h (close_stdout_set_status): Declare.
2000-05-09 Jim Meyering <meyering@lucent.com>
* m4/gettext.m4: Rename this...
* m4/libintl.m4: ...to this.
2000-05-08 Jim Meyering <meyering@lucent.com>
* lib/long-options.c: Don't include closeout.h.
(parse_long_options): Don't call close_stdout for --version.
2000-05-06 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to
be 500, instead of _GNU_SOURCE to be 1, to work around glibc
2.1.3 bug. This avoids a clash when files like regex.c define
_GNU_SOURCE.
2000-05-06 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add atexit.
(AC_REPLACE_FUNCS): Add strnlen.
* m4/rmdir-errno.m4 (fetish_FUNC_RMDIR_NOTEMPTY): New macro and file.
* m4/jm-macros.m4: Require fetish_FUNC_RMDIR_NOTEMPTY.
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Save and restore LIBS around
AC_SEARCH_LIBS call for nanosleep.
(LIB_NANOSLEEP): Set and AC_SUBST.
2000-05-06 Jim Meyering <meyering@lucent.com>
* lib/strnlen.c: Undefine __strnlen and strnlen.
[!weak_alias]: Define __strnlen to strnlen.
* lib/atexit.c: New file, from libiberty.
2000-05-06 Jim Meyering <meyering@lucent.com>
* lib/closeout.c (close_stdout_status): Also check for errors on the
stderr stream.
2000-05-05 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_MACROS): Save and restore LIBS around
AC_SEARCH_LIBS call for clock_gettime.
(LIB_CLOCK_GETTIME): Set and AC_SUBST.
* m4/search-libs.m4: Update from autoconf.
su doesn't work on Solaris 2.6.
* m4/lib-check.m4: When checking for struct spwd.sp_pwdp, also include
<shadow.h>. Reported by Dragos Harabor.
2000-05-05 Bruno Haible <haible@clisp.cons.org>
* lib/localcharset.c (get_charset_aliases): Use malloc, realloc and
memcpy instead of xmalloc, xrealloc, path_concat.
(locale_charset): Treat empty environment variables as absent.
(DIRECTORY_SEPARATOR, ISSLASH): New macros.
2000-05-04 Jim Meyering <meyering@lucent.com>
* lib/getopt.c: Update from glibc.
* lib/obstack.c: Likewise.
* lib/obstack.h: Likewise.
* lib/regex.c: Likewise. NB: K&R compiler support is dropped for this
file
* lib/regex.h: Likewise.
* lib/strndup.c: Likewise.
* lib/strnlen.c: New file, from glibc.
2000-05-03 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4 (AC_CHECK_DECLS): Add strndup.
2000-05-02 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE): Define _GNU_SOURCE if
this is needed to make ftello visible (e.g. glibc 2.1.3). Use
compile-time test, rather than inspecting host and OS, to
decide whether to define _LARGEFILE_SOURCE.
2000-05-01 Jim Meyering <meyering@lucent.com>
* m4/fsusage.m4: Use AC_MSG_CHECKING instead of obsolete AC_CHECKING.
* m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Add BeOS support.
Based on a patch from Bruno Haible.
2000-05-01 Jim Meyering <meyering@lucent.com>
* lib/full-write.c (full_write): Remove `FIXME' part of comment.
2000-04-29 Jim Meyering <meyering@lucent.com>
* lib/path-concat.c: Declare strdup only if it's not defined.
* lib/canon-host.c: Likewise.
2000-04-28 Jim Meyering <meyering@lucent.com>
* lib/rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to
avoid redefinition warning on some systems (HPUX). Otherwise, regex.h
is included first, then limits.h is included by locale.h by libintl.h.
From John David Anglin.
2000-04-25 Jim Meyering <meyering@lucent.com>
* lib/makepath.c (S_IRWXUGO): Define.
(make_path): Always perform explicit chmod if MODE specifies any
of the `special' permission bits. Prompted by a bug report against
install from Mate Wierdl and Joost van Baal.
2000-04-18 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_GETPAGESIZE): New macro.
(jm_PREREQ): Use it.
2000-04-18 Jim Meyering <meyering@lucent.com>
* lib/README: New file.
* lib/getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define
getpagesize. For BeOS. Based on a patch from Bruno Haible.
2000-04-17 Jim Meyering <meyering@lucent.com>
Get it right :-)
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Emit the
actual #define via AH_VERBATIM. Don't need separate AC_DEFINE.
Suggestion from Akim Demaille.
2000-04-17 Jim Meyering <meyering@lucent.com>
* lib/strftime.c (my_strftime) [strftime]: Declare strftime here, since
the definition of it to rpl_strftime also defined-away the system's
declaration.
2000-04-15 Jim Meyering <meyering@lucent.com>
Use `C' to denote so-called `contiguous' files, the same way
that tar does.
* lib/filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define.
(ftypelet): Use S_ISCTG.
From Michael Deutschmann.
2000-04-14 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use the one-arg
form of AC_DEFINE. Otherwise, the #ifndef in AH_VERBATIM gets
clobbered.
2000-04-14 Jim Meyering <meyering@lucent.com>
* lib/strftime.c (my_strftime) [#ifdef strftime]: Declare strftime.
2000-04-13 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use new
AH_VERBATIM to insert required #ifndef into config.h.in.
Suggestion from Akim Demaille.
2000-04-12 Jim Meyering <meyering@lucent.com>
* m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Use AC_CHECK_HEADERS, not
`AC_CHECK_HEADER' to check for locale.h. Thanks to a report from
Christian Krackowizer.
More code moved from ../configure.in into (jm_CHECK_ALL_TYPES).
* m4/jm-macros.m4 (_GNU_SOURCE): Define.
(AC_SYS_LARGEFILE): Require.
(AM_C_PROTOTYPES): Require.
2000-04-08 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3
names don't conflict. Reported by Eli Zaretskii.
2000-04-07 Jim Meyering <meyering@lucent.com>
* lib/putenv.c: Move inclusion of errno.h so it follows that of
sys/types.h, to work around system header problems on AIX 3.2.5.
From Bruno Haible.
2000-04-07 Bruno Haible <haible@clisp.cons.org>
* lib/unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv
bug. Deal with the different error behavior of Irix iconv.
2000-04-05 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on
IRIX if the installer said otherwise.
2000-04-05 Jim Meyering <meyering@lucent.com>
Portability tweaks required for ultrix4.3.
* m4/check-decl.m4 [!HAVE_UTMPX_H] (headers): Include <utmp.h>.
(jm_CHECK_DECLS): Add getutent to the list of functions.
(_jm_DECL_HEADERS): Add utmpx.h.
From John David Anglin.
* m4/strftime.m4: Back out the 2000-04-02 change.
Instead of that change, simply undefine putenv in the test program.
2000-04-05 Jim Meyering <meyering@lucent.com>
Portability tweaks required for ultrix4.3.
* lib/readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare
getutent.
* lib/readutmp.c: Include sys/types.h before sys/stat.h.
* lib/canon-host.c: Declare strdup.
* lib/path-concat.c: Likewise.
From John David Anglin.
2000-04-04 Jim Meyering <meyering@lucent.com>
Be more DOS 8.3-friendly.
* lib/ref-add.sin: Renamed from ref-add.sed.in.
* lib/ref-del.sin: Renamed from ref-del.sed.in.
* lib/Makefile.am: Reflect renaming.
Reported by Eli Zaretskii.
Use a temporary file name that won't clash with `charset.alias'
in the DOS 8.3 name space.
* lib/Makefile.am (charset_tmp): Define.
(install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t.
(uninstall-local): Likewise.
Reported by Eli Zaretskii.
2000-04-03 Jim Meyering <meyering@lucent.com>
* m4/gettext.m4: Fix typo in comment.
* m4/codeset.m4 (AC_CHECK_HEADERS): Add langinfo.h (moved here from
textutils/configure.in). Suggestion from Paul Eggert.
(AC_CHECK_FUNCS): Add nl_langinfo. (also from textutils/configure.in)
2000-04-02 Paul Eggert <eggert@twinsun.com>
* m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Set TZ environment
variable in the shell rather than using putenv, which isn't
portable. This avoids the configure-time inter-test dependency
on the potentially-renamed putenv function.
2000-03-30 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Include <sys/stat.h>
before checking struct stat.st_blksize, so that
HAVE_STRUCT_STAT_ST_BLKSIZE is defined correctly.
2000-03-29 Paul Eggert <eggert@twinsun.com>
* m4/strftime.m4 (_jm_STRFTIME_PREREQS): Check for strftime,
since strftime.c uses HAVE_STRFTIME to decide whether to use
the underlying strftime.
2000-03-29 Paul Eggert <eggert@twinsun.com>
* lib/time/strftime.c (my_strftime): Make sure we call the system
strftime, not ourselves, when invoking the underlying strftime.
2000-03-24 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in.
(charset_alias): Define.
(install-exec-local): Factor out common code.
(uninstall-local): Split lines longer than 80.
(ref-add.sed, ref-del.sed): Remove rules... (do the following instead)
(SUFFIXES): Define.
(.sed.in.sed): New rule. Don't redirect directly to $@.
(CLEANFILES): Add ref-add.sed and ref-del.sed.
2000-03-19 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: Output a line containing "Packages using this
file".
* lib/ref-add.sed.in, lib/ref-del.sed.in: New files.
* lib/Makefile.am (install-exec-local, uninstall-local, ref-add.sed,
ref-del.sed): New rules.
2000-03-17 Jim Meyering <meyering@lucent.com>
* lib/unicodeio.c (<string.h>): Include only #if HAVE_STRING_H.
Otherwise, include <strings.h>
2000-03-17 Bruno Haible <haible@clisp.cons.org>
* lib/unicodeio.c (utf8_wctomb): New function.
(print_unicode_char): Pass the Unicode character to iconv in UTF-8
format instead of in UCS-4 with platform dependent endianness.
2000-03-10 Jim Meyering <meyering@lucent.com>
* m4/lib-check.m4: Look for getspnam in -lgen, too.
From Marco Franzen.
2000-03-07 Paul Eggert <eggert@twinsun.com>
* lib/savedir.c (savedir): Work even if directory size is
negative; this can happen with some screwy NFS configurations.
2000-03-06 Jim Meyering <meyering@lucent.com>
* lib/localcharset.c (get_charset_aliases): Don't try to free file_name
if it's NULL (because we ran out of memory). From Bruno Haible.
2000-03-05 Jim Meyering <meyering@lucent.com>
* lib/localcharset.c ("path-concat.h"): Include.
(get_charset_aliases): Use path_concat instead of ANSI string
concatenation.
* lib/unicodeio.h (PARAMS): Define.
Use it to guard prototype.
2000-03-04 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require AC_C_VOLATILE,
for lib/localcharset.c.
2000-03-04 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (install-exec-local): Create $(libdir) before
installing into it.
(uninstall-local): Uncomment this rule so `make distcheck' works
once again.
* lib/unicodeio.c (<errno.h>): Include it.
(errno): Declare if not defined.
* lib/localcharset.c: Add Bruno's comment justifying use of volatile.
* lib/config.charset: New version, incorporating remarks from a linux
i18n mailing list. From Bruno Haible.
2000-03-04 Bruno Haible <haible@clisp.cons.org>
* m4/codeset.m4: New file.
* m4/iconv.m4: New file.
* m4/jm-macros.m4 (jm_MACROS): Call jm_LANGINFO_CODESET and jm_ICONV.
2000-03-03 Jim Meyering <meyering@lucent.com>
* m4/regex.m4: Make sure re_compile_pattern accepts patterns like `{1'.
2000-03-02 Jim Meyering <meyering@lucent.com>
* m4/timespec.m4: Require AC_HEADER_TIME before the cache check so
the messages come out on separate lines.
* m4/jm-glibc-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO): Use AC_CHECK_DECLS,
rather than jm_CHECK_DECLARATIONS.
* m4/decl.m4: Remove now-unused file.
* m4/check-decl.m4 (AC_CHECK_DECLS): Add getlogin, ttyname, and
geteuid.
2000-03-02 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (EXTRA_DIST): Add config.charset.
2000-03-01 Jim Meyering <meyering@lucent.com>
* lib/localcharset.c: Guard some #includes with `#if HAVE_...'.
* lib/unicodeio.c: Likewise.
2000-03-01 Bruno Haible <haible@clisp.cons.org>
* lib/config.charset: New file.
* lib/localcharset.c: New file.
* lib/unicodeio.h, lib/unicodeio.c: New files.
* lib/Makefile.am (DEFS): Add -DLIBDIR=...
(libfetish_a_SOURCES): Add localcharset.c and unicodeio.c.
(noinst_HEADERS): Add unicodeio.h.
(all-local, install-exec-local, charset.alias): New targets.
2000-02-28 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c (ALERT_CHAR): New macro.
(quotearg_buffer_restyled): Use it.
2000-02-27 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4: Add getenv to the list.
2000-02-27 Jim Meyering <meyering@lucent.com>
* lib/strtoumax.c: Fix typo in decl of strtoul: s/long long/long/.
Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'.
* lib/backupfile.c: Guard inclusion of stdlib.h with
`#if HAVE_STDLIB_H', not `#if STDC_HEADERS'.
Declare malloc if needed.
* lib/backupfile.c: Use `#if !HAVE_DECL...' instead of
`#ifndef HAVE_DECL..'
now that autoconf always defines the HAVE_DECL_ symbols.
* lib/human.c: Likewise.
* lib/same.c: Likewise.
* lib/strtoumax.c: Likewise.
* lib/backupfile.c: Arrange for cpp to fail if the configure-time
declaration check was not run.
* lib/hash.c: Likewise.
* lib/human.c: Likewise.
* lib/same.c: Likewise.
* lib/strtoumax.c: Likewise.
* lib/userspec.c (parse_user_spec): If there is no `:' but there is a
`.', then first look up the entire `.'-containing string as a login
name.
2000-02-23 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4: Now that we have the new AC_CHECK_DECLS, use it
in place of my hack.
2000-02-18 Paul Eggert <eggert@twinsun.com>
* lib/getdate.y: Handle two-digit years with leading zeros correctly.
(textint): New typedef.
(parser_control): Member year changed from int to textint.
All uses changed.
(YYSTYPE): Removed; replaced by %union with int and textint members.
(tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN,
tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER,
tYEAR_UNIT, tZONE, o_merid): Now of type <intval>.
(tSNUMBER, tUNUMBER): Now of type <textintval>.
(date, number, to_year): Use width of number in digits, not its value,
to determine whether it's a 2-digit year, or a 2-digit time.
(yylex): Store number of digits of numeric tokens.
Reported by John Kendall.
(parser_control): Changed from struct parser_control to typedef (for
consistency). All uses changed.
(tID): Removed; not used.
(yylex): Return '?' for unknown identifiers, rather than (unused) tID.
2000-02-14 Paul Eggert <eggert@twinsun.com>
* lib/getpagesize.h (getpagesize): Port to VMS for Alpha;
adapted from changes to grep getpagesize.h by Martin P.J. Zinser.
2000-02-12 Jim Meyering <meyering@lucent.com>
* lib/userspec.c (ISDIGIT): Define it.
(isdigit): Remove definition.
(is_number): Use ISDIGIT, not isdigit.
<libintl.h>: Include.
(_ and N_): Define.
(parse_user_spec): Mark translatable strings.
2000-02-10 Jim Meyering <meyering@lucent.com>
With these changes, nanosleep.[ch] are finally enough like the other
lib/* replacement files to compile on a few more losing systems.
* lib/nanosleep.h: Don't include config.h.
Remove prototype from declaration of nanosleep.
(PARAMS): Remove now-unneeded definition.
* lib/nanosleep.c: #undef nanosleep.
(rpl_nanosleep): Rename from nanosleep.
2000-02-10 Jim Meyering <meyering@lucent.com>
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Rename replacement function from
gnu_nanosleep to rpl_nanosleep.
2000-02-09 Jim Meyering <meyering@lucent.com>
* m4/lib-check.m4 (jm_LIB_CHECK): Fix typo: check for sp_pwdp in
struct spwd, rather than in struct passwd. Reported by Gaël Quéri.
2000-02-08 Akim Demaille <akim@epita.fr>
* m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Quote square brackets with
`[' and `]' and remove uses of `changequote'.
(AC_SYS_LARGEFILE_MACRO_VALUE): Likewise.
(AC_SYS_LARGEFILE): Likewise.
* m4/gettext.m4 (AM_GNU_GETTEXT): Likewise.
* m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Remove now-unnecessary use
of changequote.
* m4/regex.m4 (jm_INCLUDED_REGEX): Likewise.
* m4/readdir.m4 (jm_FUNC_READDIR): Likewise
* m4/memcmp.m4 (jm_AC_FUNC_MEMCMP): Likewise, and add `int' for main.
* m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Likewise.
2000-02-05 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require most macros.
Remove explicit use of AC_HEADER_TIME. It is required by
jm_CHECK_TYPE_STRUCT_TIMESPEC. Using AC_HEADER_TIME and
`AC_REQUIRE'ing jm_CHECK_TYPE_STRUCT_TIMESPEC provoked a but
in autoconf whereby the expansion of the latter ended up preceding
the expansion of its prerequisite, AC_HEADER_TIME.
Reported by Volker Borchert.
2000-02-03 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_READUTMP): Check for utmpxname.
2000-02-03 Jim Meyering <meyering@lucent.com>
* lib/readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION',
rather than with `#if HAVE_UTMPNAME'.
2000-02-02 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_ADDEXT): Fix typo that resulted in no
definition of HAVE_PATHCONF: s/AC_CHECK_FUNC/AC_CHECK_FUNCS/.
Reported by Eli Zaretskii.
2000-02-01 Jim Meyering <meyering@lucent.com>
* lib/readutmp.h (UT_USER): Add parens. From Andreas Schwab.
2000-01-31 Jim Meyering <meyering@lucent.com>
* m4/check-decl.m4 (jm_CHECK_DECLS): Add nanosleep to the list of
functions. Add the time.h and sys/time.h headers along with the
AC_REQUIRE'ment of AC_HEADER_TIME.
2000-01-31 Jim Meyering <meyering@lucent.com>
* lib/nanosleep.h (nanosleep): Guard declaration with
`#if ! HAVE_DECL_NANOSLEEP'.
Without this, OFS gets a redeclaration error for rpl_nanosleep, due to
the declaration in that vendor's sys/timers.h.
Reported by Christian Krackowizer.
* lib/quotearg.c (ISASCII): Add #undef and move definition to follow
inclusion of wctype.h to work around Solaris 2.6 namespace pollution.
(ISPRINT): Likewise.
Reported by Tom Tromey.
2000-01-30 Jim Meyering <meyering@lucent.com>
* m4/lib-check.m4: Clean up some kludgy old shadow password tests.
* m4/prereq.m4 (utmp_includes): Define.
Check for ut_user and ut_name members in both struct utmpx
and struct utmp.
2000-01-30 Jim Meyering <meyering@lucent.com>
* lib/readutmp.c (extract_trimmed_name): Use UT_USER instead of
hard-coding uses of ->ut_name. The latter doesn't work with new Linux
header files where only utmpx.ut_user is declared.
* lib/readutmp.h (UT_USER): Define.
2000-01-29 Jim Meyering <meyering@lucent.com>
* m4/lib-check.m4: New file containing library-related checks from
fileutils and sh-utils (textutils had none).
2000-01-28 Jim Meyering <meyering@lucent.com>
* m4/perl.m4: Change format of warning message to look more like that
from the missing script. Suggestion from François Pinard.
2000-01-25 Jim Meyering <meyering@lucent.com>
* m4/timespec.m4: Require AC_HEADER_TIME, and include sys/time.h as
well as time.h in the compile check.
* m4/nanosleep.m4: Require AC_HEADER_TIME rather than simply using it.
Fix typo in cross-compiling case: s/yes/no/.
2000-01-23 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Move df-related tests here from
fileutils/configure.in
* m4/ls-mntd-fs.m4: s/list_mounted_fs/ac_list_mounted_fs/
(jm_LIST_MOUNTED_FILESYSTEMS): Take two parameters.
* m4/fsusage.m4: New file. Extracted from fileutils/configure.in.
s/space/ac_fsusage_space/.
(jm_FILE_SYSTEM_USAGE): Take two parameters.
* m4/ftruncate.m4: New file (derived from part of
fileutils/configure.in).
* m4/jm-macros.m4 (jm_FUNC_FTRUNCATE): AC_REQUIRE it.
(jm_CHECK_ALL_TYPES): Require AC_HEADER_MAJOR and AC_HEADER_DIRENT.
* m4/jm-macros.m4 (OPTIONAL_BIN_PROGS, OPTIONAL_BIN_ZCRIPTS, MAN):
AC_SUBST these here, rather than just in sh-util/configure.in, so
that the now-shared-by-fileutils-and-textutils lib/Makefile.am are
all the same.
(AM_FUNC_OBSTACK): Add (from fileutils/configure.in).
(AC_CHECK_FUNCS): Merge all checks from fileutils, textutils, sh-utils.
(AM_FUNC_STRTOD): Added (from textutils', sh-utils' configure.in).
(AC_SUBST(POW_LIBM)): Likewise.
(AC_SUBST(DF_PROG)): Moved from fileutils/configure.in.
2000-01-23 Jim Meyering <meyering@lucent.com>
* lib/Makefile.am (libfetish_a_SOURCES): Remove explicit mention of
obstack.c.
2000-01-22 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Call AC_PROG_CC_STDC just before AC_C_CONST.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Add wctype.h.
* m4/jm-macros.m4 (AC_CHECK_HEADERS): Add checks from fileutils'
configure.in
(AC_CHECK_HEADERS): Likewise for sh-utils.
(AC_CHECK_HEADERS): Likewise for textutils.
Merge the three lists of headers.
* m4/prereq.m4 (jm_PREREQ_ADDEXT): New macro. Parts moved here
from fileutils' configure.in.
* m4/decl.m4: Remove kludgy `test -z $ac_...AC_CHECK_HEADERS(...)'
code. Moved tests into their own function (_jm_DECL_HEADERS) in
check-decl.m4.
* m4/check-decl.m4: Use #if rather than #ifdef.
Add HAVE_DECL_STRTOUL and HAVE_DECL_STRTOULL.
(jm_CHECK_DECLARATIONS): Add strtoul strtoull.
(_jm_DECL_HEADERS): Define new function.
(jm_CHECK_DECLARATIONS): Require it.
2000-01-22 Jim Meyering <meyering@lucent.com>
* lib/strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul.
[! HAVE_DECL_STRTOULL]: Declare strtoull.
Required for some AIX systems. Reported by Christian Krackowizer.
[TESTING] (main): New function.
1997-10-17 Eli Zaretskii <eliz@is.elta.co.il>
* lib/dirname.c (dir_name): Support for DOS-style file names with drive
letters.
* lib/quotearg.c [HAVE_WCTYPE_H]: Include <wctype.h> for decl of
iswprint.
* lib/strverscmp.c (ISDIGIT): Define.
(strverscmp): Use ISDIGIT, not isdigit.
2000-01-19 Jim Meyering <meyering@lucent.com>
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Include <sys/time.h>, too.
Use AC_HEADER_TIME. Volker Borchert reported that OpenBSD-2.3/sparc
defines `struct timespec' in <sys/time.h>
* m4/c-bs-a.m4: Remove uses of changequote altogether.
Thanks to Akim for explaining.
2000-01-17 Paul Eggert <eggert@twinsun.com>
* lib/nanosleep.c (nanosleep):
Don't use SA_INTERRUPT to decide whether to call sigaction, as
POSIX.1 doesn't require SA_INTERRUPT and some systems
(e.g. Solaris 7) don't define it. Use SA_NOCLDSTOP instead;
it's been part of POSIX.1 since day 1 (in 1988).
2000-01-17 Jim Meyering <meyering@lucent.com>
* lib/interlock: Remove unused file. Reported by François Pinard.
2000-01-16 Paul Eggert <eggert@twinsun.com>
* lib/quotearg.c (quotearg_buffer_restyled): Do not quote
alert, backslash, formfeed, and vertical tab unnecessarily in
shell quoting style.
2000-01-16 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4: Require jm_FUNC_GROUP_MEMBER, jm_FUNC_PUTENV,
AM_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME, jm_FUNC_MKTIME,
jm_FUNC_GETGROUPS AC_FUNC_VPRINTF, AC_FUNC_ALLOCA,
AM_FUNC_GETLOADAVG, and jm_SYS_PROC_UPTIME.
2000-01-16 Jim Meyering <meyering@lucent.com>
* m4/c-bs-a.m4: Use `changequote(<<,>>)', rather than `changequote(, )'
because the latter didn't work.
2000-01-15 Jim Meyering <meyering@lucent.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add gethostname and getusershell.
(AC_REPLACE_FUNCS): Add memcpy and memset.
Add these, too: stime strcspn stpcpy strstr strtol strtoul.
Add strpbrk.
Add these: euidaccess memcmp mkdir rmdir rpmatch strndup strverscmp.
2000-01-12 Jim Meyering <meyering@lucent.com>
* m4/prereq.m4 (jm_PREREQ_CANON_HOST): New macro.
(jm_PREREQ): Use it.
(jm_PREREQ_READUTMP): New macro.
(jm_PREREQ): Use it.
2000-01-11 Paul Eggert <eggert@twinsun.com>
Quote multibyte characters correctly.
* m4/c-bs-a.m4: New file.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): New macro.
(jm_PREREQ): Use it.
2000-01-11 Paul Eggert <eggert@twinsun.com>
* m4/uintmax_t.m4: Port to autoconf 2.13.
2000-01-08 Jim Meyering <meyering@ascend.com>
* m4/strerror_r.m4 (jm_FUNC_STRERROR_R): New file/macro.
* m4/jm-macros.m4 (jm_FUNC_STRERROR_R): Require it.
2000-01-04 Jim Meyering <meyering@ascend.com>
* m4/d-type.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename from
jm_STRUCT_DIRENT_D_TYPE.
* m4/d-ino.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_INO): Rename from
jm_STRUCT_DIRENT_D_INO.
* m4/utimbuf.m4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Rename from
jm_STRUCT_UTIMBUF.
* m4/jm-macros.m4: Reflect s/jm_STRUCT_/jm_CHECK_TYPE_STRUCT_/
renamings.
* m4/utime.m4: Likewise.
* m4/timespec.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): New file, macro.
* m4/jm-macros.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): Require it.
2000-01-03 Paul Eggert <eggert@twinsun.com>
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt
(for Solaris 7) and in -lposix4 (for Solaris 2.5.1).
2000-01-02 Jim Meyering <meyering@ascend.com>
* m4/search-libs.m4: Escape `$' in $3 of dnl comment. I no longer
remember if this is necessary.
1999-12-26 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Use it here.
* m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): New file/macro.
1999-12-23 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Check for clock_gettime (moved from
fileutils/configure.in)
Check for gettimeofday.
1999-12-20 Jim Meyering <meyering@ascend.com>
* m4/strftime.m4: Remove kludge, now that I'm using the fixed
autoconf-2.14a-1999-12-20.
1999-12-19 Jim Meyering <meyering@ascend.com>
* m4/lstat-slash.m4: New file.
* m4/jm-macros.m4: Use the new macro:
jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK.
1999-12-07 Jim Meyering <meyering@ascend.com>
* m4/perl.m4: Require that File::Compare be available, too.
Too many systems seem to lack it.
* m4/strftime.m4: Add checks for most of the cpp macros tested in
GNU's strftime.c. Prompted by a patch from Paul Eggert.
1999-11-18 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a
problem with the QNX 4.25 shell, which doesn't propagate exit
status of failed commands inside shell assignments.
1999-11-17 Jim Meyering <meyering@ascend.com>
* m4/gettext.m4: Use new AC_CONFIG_LINKS in place of AC_LINK_FILES.
1999-11-07 Jim Meyering <meyering@ascend.com>
* m4/getloadavg.m4: Add `, 1, [FIXME]' to each use of AC_DEFINE.
1999-11-06 Jim Meyering <meyering@ascend.com>
* m4/link-follow.m4 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): New file/macro.
* m4/jm-macros.m4 (jm_MACROS): Use it here.
1999-11-05 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Move some tests from
configure.in of textutils, fileutils, and sh-utils into this one
(shared between those packages) file.
Use `AC_CHECK_MEMBERS((struct stat.st_blksize))' instead of deprecated
AC_STRUCT_ST_BLKSIZE.
1999-11-03 Jim Meyering <meyering@ascend.com>
* m4/ssize_t.m4: Remove file. No longer needed since the new version
of AC_CHECK_TYPE checks includes unistd.h.
* m4/jm-macros.m4: Use straight `AC_CHECK_TYPE(ssize_t, int)'.
Suggestion from Akim Demaille.
1999-10-30 Jim Meyering <meyering@ascend.com>
* m4/uintmax_t.m4: Require 2.14a. Remove backslash before backtick in
m4-quoted string.
* m4/ls-mntd-fs.m4: Likewise.
* m4/jm-macros.m4: Likewise. Also, use AC_TYPE_SSIZE_T instead
* m4/jm-winsz1.m4: Likewise.
* m4/const.m4: Remove file, since the fix made it into the experimental
version of autoconf.
* m4/mktime.m4: Likewise.
* m4/check-type.m4: Remove file, now that the latest version of
AC_CHECK_TYPE takes a third arg to specify additional #includes.
* m4/ssize_t.m4: New file, requires experimental version of autoconf.
* m4/jm-macros.m4: Use new AC_TYPE_SSIZE_T instead of my hacked
AC_CHECK_TYPE.
1999-10-04 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Don't require autoconf-2.14.1.
1999-09-22 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around GCC
2.95.1 bug with HP-UX 10.20.
1999-09-17 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add strdup.
Paul Nevai reported a link failure on a NeXT CUBE with NeXTSTEP 3.3
due to missing strdup (against sh-utils-2.0).
1999-08-29 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Require jm_BISON.
* m4/bison.m4: New file.
1999-08-17 Paul Eggert <eggert@twinsun.com>
* m4/largefile.m4 (AC_SYS_LARGEFILE): Fix typo: missing comma
in value for _FILE_OFFSET_BITS, which broke ports to HP-UX 10.20.
1999-08-05 Jim Meyering <meyering@ascend.com>
* m4/getline.m4: Rename test file from conftestdata to conftest.data
to avoid conflicts with `conftest' on 8+3 filesystems.
Suggestion from Eli Zaretskii.
1999-08-04 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Move a 4-line block of code from the configure.in of
fileutils and sh-utils (textutils's getline test was inadequate).
(AM_FUNC_GETLINE): Run this test.
(AC_CHECK_FUNCS): Check for getdelim.
Reported by Bob Proulx.
1999-08-02 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Add a comment.
1999-08-01 Paul Eggert <eggert@twinsun.com>
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Check whether
<inttypes.h> defines strtoumax as a macro (and not as a
function).
1999-08-01 Paul Eggert <eggert@twinsun.com>
* m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Make sure
that we can shift, multiply and divide unsigned long long
values; Ultrix cc can't do it.
1999-08-01 Paul Eggert <eggert@twinsun.com>
* m4/mktime.m4: New file, which is a preview of what should appear
in the next public autoconf release.
1999-08-01 Paul Eggert <eggert@twinsun.com>
* m4/lfs.m4: Remove this file.
* m4/largefile.m4: New file. It contains the old contents of
lfs.m4, except that all names with prefix AC_LFS have been
changed to use the prefix AC_SYS_LARGEFILE instead, to be
compatible with future autoconf versions. Also, some minor m4
quoting problems have been fixed.
1999-08-01 Paul Eggert <eggert@twinsun.com>
* m4/gettext.m4 (AM_WITH_NLS): Remove unnecessary lines.
Fix typo: $nls_cv_header_intl was misspelled as $nsl_cv_header_intl.
(AM_GNU_GETTEXT): Fix problem with brackets and m4 quoting,
and simplify the shell code.
1999-08-01 Jim Meyering <meyering@ascend.com>
* m4/mktime.m4 (AC_FUNC_MKTIME): Undefine to avoid syntax errors from
m4.
1999-07-20 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memmove.
1999-07-15 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (AC_CHECK_FUNCS): Check for getpagesize.
1999-05-22 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memchr.
1999-05-20 Jim Meyering <meyering@ascend.com>
* m4/search-libs.m4 [AC_SEARCH_LIBS]: Quote name in undefine.
Add a colon after each `then' in case $4 is empty.
1999-05-16 Jim Meyering <meyering@ascend.com>
* m4/search-libs.m4: New file to override autoconf's AC_SEARCH_LIBS.
1999-05-10 Jim Meyering <meyering@ascend.com>
* m4/jm-mktime.m4: Reflect renaming: AM_FUNC_MKTIME -> AC_FUNC_MKTIME.
* m4/jm-macros.m4: Require 2.14.1, since we use newly-renamed
AC_FUNC_MKTIME.
1999-05-10 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* m4/jm-mktime.m4, putenv.m4: Fix typos in config.h comments.
1999-05-04 Paul Eggert <eggert@twinsun.com>
* m4/lfs.m4 (AC_LFS): -n32, -o32, and -n64 should be in CFLAGS,
not CPPFLAGS, so that linking works correctly in IRIX.
1999-04-30 Paul Eggert <eggert@twinsun.com>
* m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add dup2.
1999-04-20 Paul Eggert <eggert@twinsun.com>
* m4/uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Move unsigned long
long check into new jm_AC_TYPE_UNSIGNED_LONG_LONG macro.
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require
jm_AC_TYPE_UNSIGNED_LONG_LONG.
* m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): New file/macro.
* m4/lfs.m4: Port to AIX and HP-UX. Support cross-compilation.
1999-04-20 Jim Meyering <meyering@ascend.com>
* m4/xstrtoumax.m4: Require jm_AC_TYPE_UNSIGNED_LONG_LONG.
AC_REPLACE xstroull if necessary. From Paul Eggert.
(AC_CHECK_FUNCS): Remove strtoull, strtoumax, strtouq.
1999-04-18 Jim Meyering <meyering@ascend.com>
* m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): New file/macro.
* m4/jm-macros.m4: Use it.
1999-04-06 Jim Meyering <meyering@ascend.com>
* m4/strftime.m4: Remove test for %f.
1999-03-29 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): New macro, contains the
superset of the AC_TYPE_* checks in the textutils, fileutils,
and sh-utils, plus AC_TYPE_PID_T. Paul Eggert suggested adding
AC_TYPE_PID_T.
1999-03-28 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Define GNU_PACKAGE here.
Be sure to AC_SUBST it, once again, so that @GNU_PACKAGE@ is
replaced e.g., in the *.sh files of the sh-utils.
1999-03-20 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: s/jm_WITH_REGEX/jm_INCLUDED_REGEX/.
* m4/regex.m4 (jm_INCLUDED_REGEX): Rename from jm_WITH_REGEX.
Don't depend on AM_GLIBC. Suggestions from Alain Magloire.
1999-03-19 Jim Meyering <meyering@ascend.com>
* m4/jm-winsz1.m4 (jm_WINSIZE_IN_PTEM): New macro.
1999-03-12 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Use AC_FUNC_SETVBUF_REVERSED.
1999-03-07 Jim Meyering <meyering@ascend.com>
* m4/jm-glibc-io.m4: Use only those *_unlocked macros that are
declared.
1999-02-17 Jim Meyering <meyering@ascend.com>
* m4/gettext.m4 (AM_GNU_GETTEXT): Do `changequote' around use of
brackets in macro definition. From Eli Zaretskii and Alain Magloire.
1999-02-07 Jim Meyering <meyering@ascend.com>
* m4/group-member.m4: New file -- extracted from sh-utils'
configure.in.
1999-02-05 Eli Zaretskii <eliz@is.elta.co.il>
* m4/gettext.m4: Support DOS-style d:/foo/bar absolute file names.
1999-02-06 Jim Meyering <meyering@ascend.com>
* m4/chown.m4: Use `AC_SUBST(LIBOBJS)' since we set LIBOBJS.
* m4/fnmatch.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/strftime.m4: Likewise.
Suggestion from Alain Magloire.
* m4/chown.m4: Use `.$ac_objext', not `.o'.
* m4/fnmatch.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/getline.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/memcmp.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/strftime.m4: Likewise.
Suggestion from Alain Magloire.
* m4/jm-macros.m4: Actually invoke jm_WITH_REGEX now that it requires
an argument.
* m4/regex.m4: Add a run-time Test for proper operation of
re_compile_pattern.
1999-01-31 Jim Meyering <meyering@ascend.com>
* m4/getloadavg.m4: Check for locale.h and the function, setlocale.
1999-01-30 Jim Meyering <meyering@ascend.com>
* m4/check-type.m4: Use 3-arg form of AC_DEFINE.
* m4/jm-mktime.m4: Make this a wrapper around the official
AM_FUNC_MKTIME rather than my private copy, now that the official one
is up to date.
* m4/mktime.m4: Remove file.
* m4/getloadavg.m4: Use 3-arg form of AC_DEFINE.
* m4/uptime.m4: Likewise.
* m4/uintmax_t.m4: Likewise.
1999-01-28 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Use jm_AFS.
* m4/afs.m4: New file (from fileutils' configure.in).
* m4/assert.m4: Use the 3-argument forms of AC_DEFINE* macros.
* m4/chown.m4: Likewise.
* m4/d-ino.m4: Likewise.
* m4/d-type.m4: Likewise.
* m4/fnmatch.m4: Likewise.
* m4/getgroups.m4: Likewise.
* m4/gettext.m4: Likewise.
* m4/jm-mktime.m4: Likewise.
* m4/jm-winsz2.m4: Likewise.
* m4/lcmessage.m4: Likewise.
* m4/ls-mntd-fs.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/memcmp.m4: Likewise.
* m4/putenv.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/st_mtim.m4: Likewise.
* m4/strftime.m4: Likewise.
1999-01-16 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (ARGMATCH_DIE): Define.
(ARGMATCH_DIE_DECL): Define.
1999-01-12 Jim Meyering <meyering@ascend.com>
* m4/Makefile.am.in: Rewrite to avoid using fmt.
Reported by Lars Hecking.
1999-01-10 Jim Meyering <meyering@ascend.com>
* m4/fstypename.m4: Use the new 3-arg form of AC_DEFINE instead of my
gross kludge.
* m4/inttypes_h.m4: Likewise.
* m4/lstat.m4: Likewise.
* m4/malloc.m4: Likewise.
* m4/readdir.m4: Likewise.
* m4/realloc.m4: Likewise.
* m4/st_dm_mode.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/utimbuf.m4: Likewise.
* m4/utimes.m4: Likewise.
* m4/check-decl.m4: Use the new 3-arg form of AC_DEFINE instead of the
AC_CHECK_FUNCS hack. Now, it's still a hack, but at least the
comments in config.h.in are meaningful.
* m4/jm-macros.m4: Require autoconf-2.13 here.
* m4/regex.m4: By default, don't use the included regex.c on systems
with glibc 2. Suggestion from Uli Drepper.
1999-01-02 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Replace strcasecmp and strncasecmp.
1998-12-18 Jim Meyering <meyering@ascend.com>
* m4/Makefile.am.in (Makefile.am): Simplify rule.
Based on a suggestion from Lars Hecking.
1998-11-16 Paul Eggert <eggert@twinsun.com>
* m4/lfs.m4 (AC_LFS): Add support for HP-UX 10.20 and HP-UX 11.
1998-11-16 Jim Meyering <meyering@ascend.com>
* m4/lfs.m4: Double-quote the `uname...` expression.
1998-11-14 Jim Meyering <meyering@ascend.com>
* m4/lstat.m4: Correct comment. POSIX does not permit it to succeed.
* m4/stat.m4: Likewise.
1998-11-03 Jim Meyering <meyering@ascend.com>
* m4/stat.m4: Rewrite to set HAVE_STAT_EMPTY_STRING_BUG.
* m4/lstat.m4: Rewrite to set HAVE_LSTAT_EMPTY_STRING_BUG.
1998-10-18 Jim Meyering <meyering@ascend.com>
* m4/check-decl.m4 (jm_CHECK_DECL_LOCALTIME_R): Remove macro.
1998-10-17 Jim Meyering <meyering@ascend.com>
* m4/decl.m4 (jm_CHECK_DECLARATION): Don't hard-code which headers to
include, though we still hard-code the `require'-like AC_CHECK_HEADERS
calls for those previously hard-coded headers. Instead, take a new
parameter.
(jm_CHECK_DECLARATIONS): Reflect interface change.
* m4/check-decl.m4 (jm_CHECK_DECLS): Likewise.
(jm_CHECK_DECL_LOCALTIME_R): New macro.
* m4/mktime.m4: Test for spring-forward gap before long-running test.
1998-10-14 Jim Meyering <meyering@ascend.com>
* m4/mktime.m4: Use the more portable "TZ=PST8PDT,M4.1.0,M10.5.0"
instead of "TZ=America/Vancouver". From Paul Eggert.
1998-10-11 Jim Meyering <meyering@ascend.com>
* m4/mktime.m4 (jm_AM_FUNC_MKTIME): New file and macro.
This adds a test for a recently added compatibility fix for mktime.c.
* m4/jm-mktime.m4: Require jm_AM_FUNC_MKTIME, not AM_FUNC_MKTIME.
1998-09-27 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4 (jm_MACROS): Require jm_FUNC_FNMATCH.
* m4/fnmatch.m4 (jm_FUNC_FNMATCH): New file/macro. Extracted from
../configure.in, including a change from Gordon Matzigkeit to allow
cross-compiling for the Hurd.
* m4/glibc.m4: New file/macro to test for the GNU C Library
versions 1 and 2. From Gordon Matzigkeit.
Indent.
1998-09-21 Jim Meyering <meyering@ascend.com>
* m4/chown.m4: Declare locals: before, after. From Andries Brouwer.
1998-08-18 Paul Eggert <eggert@twinsun.com>
Port nanosecond-resolution times to UnixWare 2.1.2 and
pedantic Solaris 2.6.
* m4/st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC): Renamed from
AC_STRUCT_ST_MTIM.
* m4/st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC):
Generate name of ns member, instead of just 1 or undef.
Allow for UnixWare 2.1.2 and Solaris 2.6 if in pedantic mode.
1998-08-15 Jim Meyering <meyering@ascend.com>
* m4/ssize_t.m4 (jm_TYPE_SSIZE_T): Remove file.
* m4/check-type.m4: New file. Replacement for AC_CHECK_TYPE.
* m4/jm-macros.m4: Use the new AC_CHECK_TYPE(ssize_t, int)
instead of jm_TYPE_SSIZE_T.
1998-08-12 Jim Meyering <meyering@ascend.com>
* m4/st_dm_mode.m4: New file. From Johan Danielsson.
1998-08-02 Jim Meyering <meyering@ascend.com>
* m4/st_mtim.m4: Use hack to avoid having to put #undef HAVE_ST_MTIM
in acconfig.h manually.
1998-07-31 Paul Eggert <eggert@twinsun.com>
* m4/st_mtim.m4: New file.
1998-07-28 Jim Meyering <meyering@ascend.com>
* m4/utimes.m4: Undef stat.
1998-07-25 Jim Meyering <meyering@ascend.com>
* m4/utime.m4 (jm_FUNC_UTIME): New file and macro.
* m4/utimes.m4 (jm_FUNC_UTIMES_NULL): New file and macro.
1998-07-09 Manfred Hollstein <manfred@s-direktnet.de>
* m4/chown.m4 (jm_FUNC_CHOWN): Add a check to verify that the
uid and gid actually remain unchanged.
1998-07-07 Jim Meyering <meyering@ascend.com>
* m4/jm-glibc-io.m4: Remove fclose_unlocked.
1998-07-04 Jim Meyering <meyering@ascend.com>
* m4/regex.m4: Use syscmd, ifelse, and sysval. Mainly as an exercise
to prove that this macro can be used in packages without regex.c.
1998-07-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* m4/gettext.m4 (AM_WITH_NLS): Remove intl/libintl.h if <libintl.h>
is to be used.
1998-07-03 Jim Meyering <meyering@ascend.com>
* m4/gettext.m4: Add -lintl if it's found to be necessary.
* m4/gettext.m4: New file -- from gettext-0.10.35.
* m4/lcmessage.m4: Likewise.
* m4/progtest.m4: Likewise.
* m4/regex.m4 (jm_WITH_REGEX): New file and macro.
* m4/jm-macros.m4: Require the new macro.
1998-06-29 Jim Meyering <meyering@ascend.com>
* m4/fstypename.m4: Include sys/param.h. NetBSD 1.3.1 requires this
for the definition of NGROUPS (used in a system header included
by sys/mount.h).
1998-06-28 Jim Meyering <meyering@ascend.com>
* m4/ls-mntd-fs.m4: New file.
* m4/fstypename.m4: New file.
* m4/jm-macros.m4: Require the new macro.
* m4/jm-glibc-io.m4: New file.
1998-05-19 Jim Meyering <meyering@ascend.com>
* m4/jm-macros.m4: Add jm_FUNC_LCHOWN.
* m4/lchown.m4: New file.
* m4/Makefile.am.in: New file.
* m4/Makefile.am (Makefile.am): Depend on Makefile.am.in.
1998-05-14 Jim Meyering <meyering@ascend.com>
* m4/Makefile.am (EXTRA_DIST): Add them.
* m4/jm-macros.m4: New file.
* m4/utimbuf.m4: New file.
1998-05-12 Jim Meyering <meyering@ascend.com>
* m4/Makefile.am (EXTRA_DIST): Add isc-posix.m4.
1998-05-11 Jim Meyering <meyering@ascend.com>
* m4/isc-posix.m4: New file.
1998-05-10 Jim Meyering <meyering@ascend.com>
* m4/jm-mktime.m4: Use AM_FUNC_MKTIME, now that it's up to date.
1998-05-09 Jim Meyering <meyering@ascend.com>
* m4/Makefile.am (EXTRA_DIST): Add ssize_t.m4.
(EXTRA_DIST): Remove mktime.m4, now that the new version is included
with automake.
* m4/ssize_t.m4: New file.
* m4/mktime.m4: Remove file -- the new automake has this now.
1998-04-26 Jim Meyering <meyering@ascend.com>
* m4/assert.m4: New file.
* m4/Makefile.am (EXTRA_DIST): Add assert.m4.
1998-04-05 Jim Meyering <meyering@ascend.com>
* m4/prereq.m4 (jm_PREREQ_REGEX): New macro.
(jm_PREREQ): Use it here.
1998-03-23 Jim Meyering <meyering@eng.ascend.com>
* m4/inttypes_h.m4: Kludges so I don't have to add HAVE_INTTYPES_H
in acconfig.h.
1998-03-15 Jim Meyering <meyering@eng.ascend.com>
* m4/prereq.m4: New file.
* m4/error.m4: New file.
* m4/Makefile.am (EXTRA_DIST): Add error.m4 and prereq.m4.
1998-02-07 Jim Meyering <meyering@eng.ascend.com>
* m4/getline.m4: Don't set am_cv_func_working_getline before the
cache-check for the same variable -- that defeated the purpose of
the test; the test program was never run. This was a problem only
on systems with losing getline functions -- HP-UX 10.20 is one.
Reported by Bjorn Helgaas.
1998-02-06 Jim Meyering <meyering@eng.ascend.com>
* m4/Makefile.am (EXTRA_DIST): Add perl.m4.
1998-01-10 Jim Meyering <meyering@na-net.ornl.gov>
* m4/Makefile.am (EXTRA_DIST): Add const.m4.
* m4/const.m4: New file. Use an initializer in this declaration
typedef int charset[2]; const charset x;
Reported by Bob Glickstein.
1997-12-21 Jim Meyering <meyering@na-net.ornl.gov>
* m4/chown.m4: Fix reversed types on -1 args to chown.
From Kaveh Ghazi.
1997-12-14 Jim Meyering <meyering@na-net.ornl.gov>
* m4/check-decl.m4: s/DECLARATION_/DECL_/g.
Add lseek and memchr.
* m4/decl.m4: s/HAVE_DECLARATION_/HAVE_DECL_/g.
T.E.Dickey <dickey@clark.net> said that some older preprocessors
have a 20-character limit on names.
1997-11-30 Jim Meyering <meyering@na-net.ornl.gov>
* m4/inttypes_h.m4: New file.
* m4/uintmax_t.m4: New file.
* m4/Makefile.am (EXTRA_DIST): Add inttypes_h.m4 and uintmax_t.m4.
-----
Local Variables:
coding: utf-8
End:
Copyright (C) 1997-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without
modification, are permitted provided the copyright notice
and this notice are preserved.