From: Bruno Haible Date: Fri, 18 Apr 2025 13:41:59 +0000 (+0200) Subject: unitypes-h: Avoid risky coding pattern. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=dbe83c0b7a5139f4a7b35839503e6dca88a3fec1;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 2489838c20..0ba5ea3109 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2025-04-18 Bruno Haible + + 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 getlogin_r tests: Remove xalloc dependency. diff --git a/m4/unitypes_h.m4 b/m4/unitypes_h.m4 new file mode 100644 index 0000000000..264e61be6c --- /dev/null +++ b/m4/unitypes_h.m4 @@ -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 +]) +]) diff --git a/modules/unitypes-h b/modules/unitypes-h index b512947c73..0d83814c1d 100644 --- a/modules/unitypes-h +++ b/modules/unitypes-h @@ -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)