]> git.ipfire.org Git - thirdparty/gnulib.git/commitdiff
wcsrtombs: Remove support for OSF/1.
authorBruno Haible <bruno@clisp.org>
Tue, 9 Sep 2025 10:49:21 +0000 (12:49 +0200)
committerBruno Haible <bruno@clisp.org>
Tue, 9 Sep 2025 10:49:21 +0000 (12:49 +0200)
* 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.

ChangeLog
lib/wcsrtombs.c
m4/wcsrtombs.m4

index 09c15f08b7d3044ba973dea614cd053d04435015..9f711d0ec988a0a8aa04be450aba335b7c5a60cf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2025-09-09  Bruno Haible  <bruno@clisp.org>
 
+       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.
index 6c4b5bbf6c97c8752225405bd875341f051d9e33..b5bab4f50495751821be93e58d3d16b18238489a 100644 (file)
@@ -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
index 7423a0d694db975bc9b62c06678f2180f743ca97..2c6566d2cfb48b5774ba588cea03b41cd4c10309 100644 (file)
@@ -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 <locale.h>
-#include <stdlib.h>
-#include <wchar.h>
-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*)