modules


Log

Author Commit Date CI Message
Bruno Haible 2f2a5bb2 2024-11-24T19:06:32 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.
Bruno Haible 21c9d397 2024-11-14T05:22:06 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.
Bruno Haible b18f628d 2024-11-14T05:20:33 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.
Bruno Haible b21ec31c 2024-11-11T20:03:31 fts: Fix dependencies (regression 2024-11-06). * modules/fts (Depends-on): Add fcntl-safer.
Bruno Haible 06e24345 2024-11-11T09:33:11 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.
Bruno Haible 2d1edb0b 2024-11-11T00:56:15 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.
Paul Eggert 407d0389 2024-11-07T09:37:17 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. (file_has_aclinfo): Since we already assume elsewhere that malloc sets errno, rely on that here too. * modules/file-has-acl (Depends-on): Add limits.h. Also add malloc-posix, since we rely on malloc errno.
Paul Eggert 0eb82479 2024-11-06T13:33:27 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.
Paul Eggert 98efc72e 2024-11-06T13:27:08 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.
Paul Eggert 4b506819 2024-11-06T13:22:32 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.
Paul Eggert c61f87c2 2024-11-06T13:03:19 savedir: don’t depend on dirent-safer * lib/savedir.c [!GNULIB_DIRENT_SAFER]: Don't include dirent--.h. * modules/savedir (Depends-on): Depend on dirent, not dirent-safer.
Paul Eggert 02d41a40 2024-11-06T13:00:52 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.
Paul Eggert 2d0a7c22 2024-11-06T12:48:38 unistd-safer indicate presence modules/unistd-safer (configure.ac): Add module indicator.
Paul Eggert 4fa5a4a2 2024-11-06T12:43:26 xstdopen: indicate presence * modules/xstdopen (configure.ac): Add module indicator.
Paul Eggert 671103c7 2024-11-05T23:07:09 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.
Paul Eggert 4ef19be6 2024-11-05T22:48:53 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.
Paul Eggert 67c01c9e 2024-11-05T22:20:45 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.
Paul Eggert ad999640 2024-11-05T22:06:54 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”.
Bruno Haible 4bb67e4e 2024-11-05T21:12:14 wmemset tests: Verify N3322 functionality. * tests/test-wmemset.c: New file. * modules/wmemset-tests: New file.
Bruno Haible f00b47ec 2024-11-05T21:12:11 wmemchr tests: Verify N3322 functionality. * tests/test-wmemchr.c: New file. * modules/wmemchr-tests: New file.
Bruno Haible a366348b 2024-11-05T21:11:39 wcsncat tests: Verify N3322 functionality. * tests/test-wcsncat.c: New file. * modules/wcsncat-tests: New file.
Bruno Haible 101b9d7f 2024-11-05T21:11:33 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.
Bruno Haible c28fc400 2024-11-05T21:11:29 wmemmove tests: Verify N3322 functionality. * tests/test-wmemmove.c: New file. * modules/wmemmove-tests: New file.
Bruno Haible 184e2c51 2024-11-05T21:11:25 wmemcpy tests: Verify N3322 functionality. * tests/test-wmemcpy.c: New file. * modules/wmemcpy-tests: New file.
Bruno Haible 4e556e28 2024-11-05T21:11:22 wcsncpy tests: Verify N3322 functionality. * tests/test-wcsncpy.c: New file. * modules/wcsncpy-tests: New file.
Bruno Haible ce762a90 2024-11-05T21:11:17 memset tests: Verify N3322 functionality. * tests/test-memset.c: New file. * modules/memset-tests: New file.
Bruno Haible 5e713ecd 2024-11-05T21:11:12 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.
Bruno Haible f9da9cbb 2024-11-05T21:10:23 strndup tests: Verify N3322 functionality. * tests/test-strndup.c: New file. * modules/strndup-tests: New file.
Bruno Haible 2590ea7f 2024-11-05T21:10:13 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.
Bruno Haible df58cd94 2024-11-05T21:10:11 memmove tests: Verify N3322 functionality. * tests/test-memmove.c: New file. * modules/memmove-tests: New file.
Bruno Haible bda6e6a0 2024-11-05T21:10:08 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.
Bruno Haible bec31056 2024-11-05T21:10:05 memcpy tests: Verify N3322 functionality. * tests/test-memcpy.c: New file. * modules/memcpy-tests: New file.
Bruno Haible d3c9d629 2024-11-05T21:10:02 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.
Bruno Haible bc91828e 2024-11-05T21:09:07 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.
Bruno Haible bdb6e81c 2024-11-05T22:18:35 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.
Bruno Haible 0e381f83 2024-11-05T22:16:12 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.
Paul Eggert 56e88183 2024-11-04T21:38:55 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.
Paul Eggert d884e6fc 2024-11-03T22:41:41 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.
Paul Eggert c6d15a4b 2024-11-04T11:12:21 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).
Paul Eggert 9c3ebd3b 2024-11-03T12:19:33 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.
Paul Eggert 9334b1c6 2024-11-03T11:11:03 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.
Bruno Haible a1da46a0 2024-11-04T17:50:09 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.
Bruno Haible 29a14761 2024-11-03T21:18:29 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).
Bruno Haible 6cb29d22 2024-11-01T13:26:40 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.
Bruno Haible 23d89b19 2024-11-01T12:28:05 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.
Bruno Haible 0bf14793 2024-11-01T00:17:20 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.
Bruno Haible 2f63858f 2024-10-31T20:54:36 calloc-posix: Add tests. * tests/test-calloc-posix.c: New file. * modules/calloc-posix-tests: New file.
Bruno Haible 7a80523e 2024-10-31T20:54:15 malloc-posix: Add tests. * tests/test-malloc-posix.c: New file. * modules/malloc-posix-tests: New file.
Bruno Haible 97da508e 2024-10-31T20:51:10 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.
Bruno Haible 1460b29e 2024-10-31T14:48:35 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.
Sam Russell 54f3dae2 2024-10-27T13:19:17 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. Signed-off-by: Simon Josefsson <simon@josefsson.org>
Paul Eggert 99bbb61c 2024-10-30T12:47:02 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.
Paul Eggert 70f9c1de 2024-10-29T22:01:42 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.
Collin Funk 3f44e474 2024-10-29T20:12:25 backupfile: Remove non-existent module dependency. * modules/backupfile (Depends-on): Remove irealloc dependency since the function is a part of the ialloc module.
Collin Funk 370c51c6 2024-10-27T16:58:59 realloc-gnu: Fix typo in deprecation notice. * modules/realloc-gnu (Notice): Recommend 'realloc-posix' in the deprecation notice.
Bruno Haible 6659e016 2024-10-28T00:18:35 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.
Paul Eggert 2d528629 2024-10-25T17:02:02 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.
Bruno Haible 52a75229 2024-10-25T21:59:45 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.
Bruno Haible e4f2c2c0 2024-10-25T13:59:41 xalloc: Adjust dependencies after last change. * modules/xalloc (Depends-on): Remove realloc-gnu. Add realloc-posix.
Bruno Haible 146b0654 2024-10-25T13:55:08 ialloc: Fix dependencies. * modules/ialloc (Depends-on): Add realloc-posix.
Paul Eggert b69be0f7 2024-10-24T21:34:12 reallocarray: simplify * lib/reallocarray.c (reallocarray): Use simpler workaround for realloc glitch, which does not involve malloc. * modules/reallocarray (Depends-on): Remove malloc-posix.
Paul Eggert 59d98e49 2024-10-23T14:33:43 ialloc: fix realloc-gnu dependency * modules/ialloc (Depends-on): Remove realloc-gnu, as ialloc.c does not depend on GNU semantics for realloc.
Paul Eggert d65178b1 2024-10-23T14:30:35 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.
Paul Eggert 04e85c7d 2024-10-23T14:27:45 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.
Sam Russell 8af18a60 2024-10-22T22:16:01 crc: New tests for non-byte-aligned data. * tests/test-crc.c: New tests. * modules/crc-tests (Files): Add dependency on randomb.c Signed-off-by: Simon Josefsson <simon@josefsson.org>
Bruno Haible 427249c6 2024-10-22T22:08:24 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.
Bruno Haible b3791b2b 2024-10-21T17:20:37 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.
Collin Funk 582eb499 2024-10-17T20:25:36 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.
Bruno Haible 9f0fc923 2024-10-17T15:13:49 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.
Bruno Haible 5e72d251 2024-10-16T22:06:11 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.
Bruno Haible dd07b748 2024-10-13T12:01:08 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.
Bruno Haible e979e268 2024-10-11T17:43:02 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.
Bruno Haible efa78d89 2024-10-09T03:20:00 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.
Bruno Haible a3004965 2024-10-09T03:14:04 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.
Bruno Haible 25292435 2024-10-07T20:25:06 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.
Bruno Haible 04b68d47 2024-10-07T20:15:44 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.
Bruno Haible 5312d8c4 2024-10-07T20:10:16 cygpath: New module. * lib/cygpath.h: New file. * lib/cygpath.c: New file, based on lib/javaversion.c. * modules/cygpath: New file.
Bruno Haible 5decb872 2024-10-07T18:58:30 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.
Paul Eggert 87791b14 2024-10-03T22:06:33 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.
Bruno Haible 588b8d0c 2024-10-03T20:45:59 bcp47: Add tests. * tests/test-bcp47.c: New file. * modules/bcp47-tests: New file.
Bruno Haible b1648c71 2024-10-03T20:45:08 bcp47: New module. * lib/bcp47.h: New file. * lib/bcp47.c: New file. * modules/bcp47: New file.
Paul Eggert 8682f4d3 2024-10-02T17:40:34 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.
Paul Eggert a6de9f38 2024-10-02T15:50:10 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.
Paul Eggert ccc26add 2024-09-29T16:13:53 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.
Bruno Haible d3406543 2024-09-26T02:02:56 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.
Bruno Haible 20316f78 2024-09-25T18:26:18 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.
Bruno Haible db23a7ea 2024-09-25T17:19:41 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.
Bruno Haible 778a55c4 2024-09-24T18:31:49 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.
Bruno Haible 413cbae0 2024-09-24T17:28:07 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.
Bruno Haible 5a7754d1 2024-09-24T12:31:07 sfl-istream: Add tests. * tests/test-sfl-istream.c: New file, based on tests/test-sf-istream.c. * modules/sfl-istream-tests: New file.
Bruno Haible a61bea3a 2024-09-24T12:31:03 sfl-istream: New module. * lib/sfl-istream.h: New file. * lib/sfl-istream.c: New file. * modules/sfl-istream: New file.
Bruno Haible 357c5d52 2024-09-24T12:30:58 sf-istream: Add tests. * tests/test-sf-istream.c: New file. * modules/sf-istream-tests: New file.
Bruno Haible 336a4d57 2024-09-24T12:30:54 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.
Bruno Haible 0d083cd9 2024-09-23T16:59:14 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).
Paul Eggert 4f1f3d3c 2024-09-16T11:12:24 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.
Bruno Haible 1aee1fe7 2024-09-15T15:27:34 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.
Bruno Haible 8fc19467 2024-09-13T15:25:05 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.
Bruno Haible 02a0e123 2024-09-13T15:17:49 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.
Bruno Haible 30417e7f 2024-09-13T09:50:15 uninorm/composition: Fix mistake in last commit (regression yesterday). * modules/uninorm/composition (Files): Add lib/uninorm/composition-table-bounds.h.
Bruno Haible 6e953212 2024-09-04T19:38:52 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.