Bruno Haible [Thu, 12 Oct 2023 18:59:58 +0000 (20:59 +0200)]
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.
Bruno Haible [Wed, 11 Oct 2023 14:43:07 +0000 (16:43 +0200)]
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.
Bruno Haible [Sun, 8 Oct 2023 07:59:03 +0000 (09:59 +0200)]
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.
Bruno Haible [Sat, 7 Oct 2023 10:49:15 +0000 (12:49 +0200)]
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.
Paul Eggert [Thu, 5 Oct 2023 19:19:08 +0000 (12:19 -0700)]
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.
Paul Eggert [Thu, 5 Oct 2023 18:43:37 +0000 (11:43 -0700)]
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).
Bruno Haible [Wed, 4 Oct 2023 11:12:53 +0000 (13:12 +0200)]
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.
Bruno Haible [Tue, 3 Oct 2023 14:42:59 +0000 (16:42 +0200)]
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.
Bruno Haible [Tue, 3 Oct 2023 13:59:57 +0000 (15:59 +0200)]
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.
Bruno Haible [Tue, 3 Oct 2023 08:51:06 +0000 (10:51 +0200)]
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).
Paul Eggert [Sun, 1 Oct 2023 01:03:48 +0000 (18:03 -0700)]
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.
Bruno Haible [Sat, 30 Sep 2023 14:15:44 +0000 (16:15 +0200)]
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.
KO Myung-Hun [Mon, 25 Sep 2023 14:38:28 +0000 (23:38 +0900)]
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.
Paul Eggert [Tue, 26 Sep 2023 22:49:02 +0000 (15:49 -0700)]
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.
Paul Eggert [Tue, 26 Sep 2023 06:01:55 +0000 (23:01 -0700)]
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.
* 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.
Paul Eggert [Thu, 21 Sep 2023 19:46:52 +0000 (12:46 -0700)]
mbschr, mbsrchr: support GNULIB_MCEL_PREFER
Support mcel API for apps that prefer it.
* 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.
Paul Eggert [Thu, 21 Sep 2023 21:26:24 +0000 (14:26 -0700)]
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’.
Bruno Haible [Sat, 16 Sep 2023 09:28:23 +0000 (11:28 +0200)]
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.
gnu-web-doc-update: fix updating of manual directory
* build-aux/gnu-web-doc-update: Correctly change to the 'manual' directory,
since $tmp is a relative path. This avoids removing files
outside of the 'manual' directory. Broken since commit e979787d.
Paul Eggert [Sun, 10 Sep 2023 00:44:12 +0000 (17:44 -0700)]
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.
Paul Eggert [Sun, 10 Sep 2023 00:22:19 +0000 (17:22 -0700)]
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.
Paul Eggert [Sun, 10 Sep 2023 00:14:15 +0000 (17:14 -0700)]
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.
Paul Eggert [Sat, 9 Sep 2023 22:47:27 +0000 (15:47 -0700)]
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.
Paul Eggert [Sat, 9 Sep 2023 16:53:02 +0000 (09:53 -0700)]
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.
Paul Eggert [Thu, 7 Sep 2023 21:51:58 +0000 (14:51 -0700)]
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.
Paul Eggert [Thu, 7 Sep 2023 21:51:58 +0000 (14:51 -0700)]
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.
Paul Eggert [Thu, 7 Sep 2023 21:51:56 +0000 (14:51 -0700)]
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.
Bruno Haible [Thu, 7 Sep 2023 14:21:25 +0000 (16:21 +0200)]
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.
Bruno Haible [Thu, 7 Sep 2023 00:20:05 +0000 (02:20 +0200)]
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.
Bruno Haible [Tue, 5 Sep 2023 14:36:11 +0000 (16:36 +0200)]
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.