lib


Log

Author Commit Date CI Message
Bruno Haible 3f13a7ef 2023-08-21T15:58:16 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+.
Bruno Haible acfc83b9 2023-08-21T15:50:35 wmemcmp: Relicense under LGPLv2+. * modules/wmemcmp (License): Change to LGPLv2+. * lib/wmemcmp.c: Update license notice. * lib/wmemcmp-impl.h: Likewise.
Bruno Haible 567b7fe9 2023-08-21T15:46:02 wcschr: Relicense under LGPLv2+. * modules/wcschr (License): Change to LGPLv2+. * lib/wcschr.c: Update license notice. * lib/wcschr-impl.h: Likewise.
Bruno Haible d99533ea 2023-08-21T15:30:22 unistr/u32-strlen: Complete license change from 2023-07-23. * lib/unistr/u-strlen.h: Update license notice.
Paul Eggert 3703c742 2023-08-20T17:55:03 ldexp: port to non-two’s complement * lib/ldexp.c (FUNC): Don’t assume two’s-complement.
Bruno Haible 711d1149 2023-08-20T22:34:39 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.
Paul Eggert 9c7ca2ba 2023-08-20T13:23:11 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.
Bruno Haible d820198e 2023-08-20T15:01:25 ldexp: Fix compilation error in C++ mode. * lib/math.in.h (ldexp): Use _GL_CXXALIASWARN1, not _GL_CXXALIASWARN.
Bruno Haible fed956a8 2023-08-20T02:43:01 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.
Bruno Haible e9633a2b 2023-08-20T03:10:00 ldexpl: Relicense under LGPLv2+. * modules/ldexpl (License): Change to LGPLv2+. * lib/ldexpl.c: Update license notice.
Bruno Haible 669662a0 2023-08-20T01:44:26 ldexpl: Avoid possible -Wshadow warning. * lib/ldexpl.c (exp): Locally rename to 'exponent'.
Bruno Haible e8124353 2023-08-20T01:41:56 ldexpl: Fix signed integer overflow. * lib/ldexpl.c (ldexpl): Use an 'unsigned int' variable to represent the absolute value of exp without overflow.
Bruno Haible 2d963d69 2023-08-18T22:38:04 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.
Bruno Haible 51511a7a 2023-08-18T21:14:40 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.
Bruno Haible cdf08214 2023-08-18T20:52:08 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.
Bruno Haible 4c7811ff 2023-08-18T17:25:26 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.
Bruno Haible 17c85713 2023-08-18T13:46:15 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.
Bruno Haible 6e56f453 2023-08-16T23:44:57 mbrtoc32-regular: Make it work as expected on glibc 2.12. * lib/mbrtoc32.c (mbrtoc32): If necessary, clear the mbstate_t after mbrtowc() returned.
Bruno Haible b2555cf7 2023-08-15T12:58:14 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.
Bruno Haible a1ac17fc 2023-08-14T15:47:41 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.
Bruno Haible e1da74b7 2023-08-14T12:14:38 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.
Bruno Haible e8f4ee46 2023-08-14T01:04:36 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.
Bruno Haible 6a003f56 2023-08-14T00:13:13 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.
Paul Eggert 5f4d15e6 2023-08-13T09:46:47 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.
Paul Eggert 957b8cd4 2023-08-13T08:34:44 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.
Bruno Haible 04c51923 2023-08-13T16:33:28 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.
Bruno Haible 1bd24cc3 2023-08-13T16:08:33 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.
Bruno Haible 9cf0d830 2023-08-13T15:39:09 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.
Paul Eggert 5528e726 2023-08-12T16:54:51 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.
Paul Eggert 19cb99e3 2023-08-12T15:46:43 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.
Bruno Haible 8501d38f 2023-08-13T00:09:06 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.
Bruno Haible 43f9358b 2023-08-12T23:44:23 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.
Bruno Haible 92a6fbde 2023-08-12T19:40:28 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.
Bruno Haible 826c19d3 2023-08-12T19:01:56 readutmp: Reduce code duplication. * lib/readutmp.c (have_boot_time): New function. (read_utmp_from_file): Invoke it, instead of duplicating the same loop.
Paul Eggert 46decc1c 2023-08-12T09:54:08 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.
Bruno Haible d8738997 2023-08-12T15:09:50 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.
Bruno Haible 2e5f2c80 2023-08-12T14:13:21 readutmp: Fix compilation error on OpenBSD (regression 2023-08-11). * lib/readutmp.c (read_utmp_from_file): Remove extraneous 'break' statement.
Bruno Haible 5cd9573b 2023-08-11T23:31:37 boot-time: Add comment about multithread-safety. * lib/boot-time.h (get_boot_time): Add comment, same as in readutmp.h.
Bruno Haible bea15dd1 2023-08-11T23:30:01 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).
Bruno Haible 1657e67f 2023-08-11T23:20:44 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.
Bruno Haible cdbe33c4 2023-08-11T16:09:22 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.
Bruno Haible f3067de4 2023-08-11T15:22:43 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.
Bruno Haible e638a367 2023-08-11T14:29:32 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.
Bruno Haible 52d56992 2023-08-11T02:39:56 readutmp: Make the header file includable from C++. * lib/readutmp.h: Add extern "C" block.
Bruno Haible ea7db759 2023-08-11T02:31:30 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.
Bruno Haible 32accf38 2023-08-10T17:23:56 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.
Bruno Haible 4dcef257 2023-08-10T13:08:19 boot-time: New module. * lib/boot-time.h: New file. * lib/boot-time.c: New file. * modules/boot-time: New file.
Bruno Haible 9db6a910 2023-08-10T07:59:19 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.
Bruno Haible fb1fafce 2023-08-10T01:55:33 readutmp: Fix a mistake (regression 2023-08-08). * lib/readutmp.c (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED): Fix a typo.
Bruno Haible e0690912 2023-08-09T22:52:22 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.
Bruno Haible 51f5c004 2023-08-09T22:27:16 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.
Bruno Haible 321daa59 2023-08-09T21:12:40 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.
Bruno Haible 1e4bc08e 2023-08-09T18:49:22 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.
Paul Eggert e14d7e19 2023-08-08T19:29:55 readutmp: omit pragma * lib/readutmp.c: Omit -Sstringop-overread pragma. It’s no longer needed now that extract_trimmed_name no longer calls strnlen.
Bruno Haible 1b4470bd 2023-08-08T23:27:38 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".
Bruno Haible 4b260893 2023-08-08T21:28:46 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.
Bruno Haible adf1ff12 2023-08-08T20:27:31 readutmp: Add comment about multithread-safety. * lib/readutmp.h (read_utmp): Add comment.
Bruno Haible 622d2c07 2023-08-08T17:36:10 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.
Bruno Haible 62489211 2023-08-08T17:17:42 readutmp: Fix compilation error on OpenBSD and AIX (regr. 2023-08-03). * lib/readutmp.h (UT_TIME_MEMBER) [HAVE_UTMP_H]: Revert last change.
Bruno Haible 4dabfced 2023-08-08T17:23:24 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.
Paul Eggert 6a9554a6 2023-08-07T09:10:21 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.
Paul Eggert dcf286c5 2023-08-06T12:43:05 readutmp: fix comment bug ID * lib/readutmp.c: Fix comment (thanks to Bruno Haible).
Paul Eggert 0a7a71a4 2023-08-05T11:16:12 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
Paul Eggert 91f94f30 2023-08-05T10:04:41 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.
Bruno Haible 911c3457 2023-08-04T15:26:37 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.
Bruno Haible 525dc1d1 2023-08-04T14:50:04 readutmp: Ensure multithread-safety. * lib/readutmp.c (get_boot_time): Initialize 'cached' after 'boot_time', not before. Also declare both as volatile.
Paul Eggert 8edf2ae3 2023-08-03T18:27:35 readutmp: fix comments
Paul Eggert 9765d190 2023-08-03T16:01:52 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.
Paul Eggert c0a858b2 2023-08-03T16:01:50 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.
Paul Eggert 2ab324f6 2023-08-03T15:54:14 readutmp: fix # indentation * lib/readutmp.h: Change # indentation to standard Gnulib style.
Paul Eggert e16e74a1 2023-08-03T15:54:12 readutmp: pacify -Wstrict-prototypes * lib/readutmp.c (get_boot_time_uncached, get_boot_time): Pacify gcc 13 -Wstrict-prototypes.
Paul Eggert db1645dd 2023-08-03T15:53:30 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.
Paul Eggert 1ccde926 2023-08-03T15:53:27 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.
Paul Eggert 39a4cb0a 2023-08-03T15:31:48 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. * lib/readutmp.c: Include xmemdup0. (extract_trimmed_name): Simplify. * modules/readutmp (Depends-on): Add xmemdup0. Add strnlen, which was a missing dependency already.
Bruno Haible 0d0832a5 2023-08-02T20:20:24 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.
Bruno Haible a48bcaa9 2023-08-02T11:40:35 readutmp: Small change to reduce the code size on the coreutils side. * lib/readutmp.h (UT_ID_SIZE): New constant and macro.
Bruno Haible a6d192b9 2023-08-02T00:56:25 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.
Bruno Haible 0b71ff37 2023-08-01T21:44:07 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.
Bruno Haible 11054898 2023-08-01T12:58:20 readutmp: Trivial simplification. * lib/readutmp.c (extract_trimmed_name): Use constant UT_USER_SIZE.
Bruno Haible bfe6cc4f 2023-07-31T22:12:51 readutmp: Fix test failure on OpenBSD. * lib/readutmp.c (desirable_utmp_entry): On OpenBSD, eliminate entirely empty entries.
Bruno Haible b79e6f56 2023-07-31T20:33:48 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.
Bruno Haible 0e7af0cf 2023-07-31T16:29:46 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'.
Bruno Haible 906e4b18 2023-07-31T16:13:11 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.
Bruno Haible 78c3dc2a 2023-07-30T15:08:59 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.
Paul Eggert c408d9a5 2023-07-29T17:06:42 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. Problem reported by Jakub Wilk via Sven Joachim <https://bugs.gnu.org/64937>. * lib/readutmp.c (copy_utmp_entry): New function. (read_utmp): Use it.
Bruno Haible b90baa07 2023-07-29T18:07:45 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.
Bruno Haible 57049b22 2023-07-28T15:15:26 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.
Bruno Haible 042a7042 2023-07-26T16:32:48 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.
Bruno Haible f4ad51ee 2023-07-26T14:50:00 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.
Bruno Haible 1a602613 2023-07-26T14:13:48 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.
Bruno Haible 97978417 2023-07-26T13:40:06 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.
Bruno Haible e5060c6e 2023-07-25T22:20:51 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.
Bruno Haible d1db7ef2 2023-07-24T12:08:23 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.
Bruno Haible 6b508d70 2023-07-24T02:00:42 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.
Bruno Haible 80f7a65f 2023-07-24T02:00:37 unistr/u32-strlen: Relicense under LGPLv2+. * modules/unistr/u32-strlen (License): Change to LGPLv2+. * lib/unistr/u32-strlen.c: Update license notice.
Bruno Haible c084710c 2023-07-24T02:00:13 unistr/u32-chr: Relicense under LGPLv2+. * modules/unistr/u32-chr (License): Change to LGPLv2+. * lib/unistr/u32-chr.c: Update license notice.
Paul Eggert 9ec4feb7 2023-07-23T11:35:10 utimecmp: clean up old spare1 cruft * lib/utimecmp.c: Remove a ‘defined HAVE_STRUCT_STAT_ST_SPARE1’ that has been false since 2007.
Bruno Haible d690d055 2023-07-23T01:43:43 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.
Karl Berry 9e41f786 2023-07-21T07:43:18 autoupdate
Bruno Haible 07258bd5 2023-07-21T11:16:04 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.