]> Savannah Git Hosting - gnulib.git/commitdiff
unitypes-h: Avoid risky coding pattern.
authorBruno Haible <bruno@clisp.org>
Fri, 18 Apr 2025 13:41:59 +0000 (15:41 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 18 Apr 2025 13:41:59 +0000 (15:41 +0200)
* m4/unitypes_h.m4: New file, based on modules/unitypes-h.
* modules/unitypes-h (Files): Add it.
(configure.ac): Invoke gl_UNITYPES_H. Remove AH_VERBATIM invocation.

ChangeLog
m4/unitypes_h.m4 [new file with mode: 0644]
modules/unitypes-h

index 2489838c208a8f68848ef917db3e7743c36e5ad0..0ba5ea3109e6e36119288b52024b152a959e3085 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2025-04-18  Bruno Haible  <bruno@clisp.org>
+
+       unitypes-h: Avoid risky coding pattern.
+       * m4/unitypes_h.m4: New file, based on modules/unitypes-h.
+       * modules/unitypes-h (Files): Add it.
+       (configure.ac): Invoke gl_UNITYPES_H. Remove AH_VERBATIM invocation.
+
 2025-04-18  Bruno Haible  <bruno@clisp.org>
 
        getlogin_r tests: Remove xalloc dependency.
diff --git a/m4/unitypes_h.m4 b/m4/unitypes_h.m4
new file mode 100644 (file)
index 0000000..264e61b
--- /dev/null
@@ -0,0 +1,26 @@
+# unitypes_h.m4
+# serial 1
+dnl Copyright (C) 2021-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,
+dnl with or without modifications, as long as this notice is preserved.
+dnl This file is offered as-is, without any warranty.
+
+AC_DEFUN_ONCE([gl_UNITYPES_H],
+[
+  AH_VERBATIM([unitypes_restrict], [
+/* This definition is a duplicate of the one in unitypes.h.
+   It is here so that we can cope with an older version of unitypes.h
+   that does not contain this definition and that is pre-installed among
+   the public header files.  */
+# if defined __restrict \
+     || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
+     || __clang_major__ >= 3
+#  define _UC_RESTRICT __restrict
+# elif 199901L <= __STDC_VERSION__ || defined restrict
+#  define _UC_RESTRICT restrict
+# else
+#  define _UC_RESTRICT
+# endif
+])
+])
index b512947c73eb716d4a423518af1b8806c3507f2a..0d83814c1d276cfa7a63f918fa3092fc5a0a3bde 100644 (file)
@@ -3,6 +3,7 @@ Base types for Unicode string functions.
 
 Files:
 lib/unitypes.in.h
+m4/unitypes_h.m4
 m4/libunistring-base.m4
 
 Depends-on:
@@ -12,21 +13,7 @@ stdint-h
 configure.ac:
 gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h])
 AC_PROG_MKDIR_P
-
-AH_VERBATIM([unitypes_restrict], [
-/* This definition is a duplicate of the one in unitypes.h.
-   It is here so that we can cope with an older version of unitypes.h
-   that does not contain this definition and that is pre-installed among
-   the public header files.  */
-# if defined __restrict \
-     || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
-     || __clang_major__ >= 3
-#  define _UC_RESTRICT __restrict
-# elif 199901L <= __STDC_VERSION__ || defined restrict
-#  define _UC_RESTRICT restrict
-# else
-#  define _UC_RESTRICT
-# endif])
+gl_UNITYPES_H
 
 Makefile.am:
 BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)