From: Bruno Haible Date: Tue, 9 Sep 2025 10:49:21 +0000 (+0200) Subject: wcsrtombs: Remove support for OSF/1. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1bd68eadfaecaa4e6e0451ce9d8fdf344ce01c5;p=thirdparty%2Fgnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 09c15f08b7..9f711d0ec9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2025-09-09 Bruno Haible + 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. diff --git a/lib/wcsrtombs.c b/lib/wcsrtombs.c index 6c4b5bbf6c..b5bab4f504 100644 --- a/lib/wcsrtombs.c +++ b/lib/wcsrtombs.c @@ -22,7 +22,7 @@ extern mbstate_t _gl_wcsrtombs_state; -#if HAVE_WCSRTOMBS && !WCSRTOMBS_TERMINATION_BUG && !defined GNULIB_defined_mbstate_t +#if HAVE_WCSRTOMBS && !defined GNULIB_defined_mbstate_t /* Override the system's wcsrtombs() function. */ # undef wcsrtombs diff --git a/m4/wcsrtombs.m4 b/m4/wcsrtombs.m4 index 7423a0d694..2c6566d2cf 100644 --- a/m4/wcsrtombs.m4 +++ b/m4/wcsrtombs.m4 @@ -1,5 +1,5 @@ # wcsrtombs.m4 -# serial 14 +# serial 15 dnl Copyright (C) 2008-2025 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -29,14 +29,7 @@ AC_DEFUN([gl_FUNC_WCSRTOMBS], if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCSRTOMBS=1 else - gl_WCSRTOMBS_TERMINATION gl_WCSRTOMBS_NULL - case "$gl_cv_func_wcsrtombs_termination" in - *yes) ;; - *) AC_DEFINE([WCSRTOMBS_TERMINATION_BUG], [1], - [Define if the wcsrtombs function may set the source pointer to NULL without NUL-terminating the destination.]) - REPLACE_WCSRTOMBS=1 ;; - esac case "$gl_cv_func_wcsrtombs_null" in *yes) ;; *) AC_DEFINE([WCSRTOMBS_NULL_ARG_BUG], [1], @@ -47,68 +40,9 @@ AC_DEFUN([gl_FUNC_WCSRTOMBS], fi ]) -dnl Test whether the wcsrtombs implementation stores a non-NULL source pointer -dnl as long as it has not written the final NUL byte to the destination string. -dnl The OSF/1 5.1 implementation stores a NULL pointer already after storing -dnl the last non-NUL character, even if there is no more room for the -dnl terminating NUL character. -dnl Result is gl_cv_func_wcsrtombs_termination. - -AC_DEFUN([gl_WCSRTOMBS_TERMINATION], -[ - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([gt_LOCALE_FR]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CACHE_CHECK([whether wcsrtombs updates the source pointer correctly], - [gl_cv_func_wcsrtombs_termination], - [ - dnl Initial guess, used when cross-compiling or when no suitable locale - dnl is present. -changequote(,)dnl - case "$host_os" in - # Guess no on OSF/1. - osf*) gl_cv_func_wcsrtombs_termination="guessing no" ;; - # Guess yes on native Windows. - mingw* | windows*) gl_cv_func_wcsrtombs_termination="guessing yes" ;; - # Guess yes otherwise. - *) gl_cv_func_wcsrtombs_termination="guessing yes" ;; - esac -changequote([,])dnl - if test $LOCALE_FR != none; then - AC_RUN_IFELSE( - [AC_LANG_SOURCE([[ -#include -#include -#include -int main () -{ - if (setlocale (LC_ALL, "$LOCALE_FR") != NULL) - { - const char original[] = "B\374\337er"; - wchar_t input[10]; - - if (mbstowcs (input, original, 10) == 5) - { - const wchar_t *src = input; - char output[5]; - wcsrtombs (output, &src, 5, NULL); - if (src != input + 5) - return 1; - } - } - return 0; -}]])], - [gl_cv_func_wcsrtombs_termination=yes], - [gl_cv_func_wcsrtombs_termination=no], - [:]) - fi - ]) -]) - dnl Test whether the wcsrtombs implementation supports a NULL argument -dnl correctly. This is not the case on HP-UX 11.11 and OSF/1 5.1: These -dnl implementations updates the source pointer also if the destination argument -dnl is NULL. +dnl correctly. This is not the case on HP-UX 11.11: This implementation +dnl updates the source pointer also if the destination argument is NULL. dnl Result is gl_cv_func_wcsrtombs_null. AC_DEFUN([gl_WCSRTOMBS_NULL], @@ -123,8 +57,8 @@ AC_DEFUN([gl_WCSRTOMBS_NULL], dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on HP-UX, OSF/1, mingw. - hpux* | osf* | mingw* | windows*) + # Guess no on HP-UX, mingw. + hpux* | mingw* | windows*) gl_cv_func_wcsrtombs_null="guessing no" ;; # Guess yes on native Windows. mingw* | windows*)