When GNU libintl.h defines a *printf symbol and Gnulib's stdio.h does it as
well, it is best that libintl.h avoids overriding Gnulib. To this effect,
Gnulib needs to set a macro that tells that it has provided an override.

Similarly for textstyle.h (from GNU libtextstyle).


2021-06-19  Bruno Haible  <br...@clisp.org>

        unistd: Improve conflict resolution between gnulib and textstyle.h.
        * lib/unistd.in.h (GNULIB_overrides_isatty): New macro.

2021-06-19  Bruno Haible  <br...@clisp.org>

        stdio: Improve conflict resolution between gnulib and libintl.h.
        * lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf,
        GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf,
        GNULIB_overrides_vsnprintf, GNULIB_overrides_vsprintf): New macros.

>From 7f7c3c1efc640059f2ad3046353935a2b30aaa06 Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Sun, 20 Jun 2021 03:23:41 +0200
Subject: [PATCH 1/2] stdio: Improve conflict resolution between gnulib and
 libintl.h.

* lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf,
GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf,
GNULIB_overrides_vsnprintf, GNULIB_overrides_vsprintf): New macros.
---
 ChangeLog      | 7 +++++++
 lib/stdio.in.h | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 11a75d6..188bdaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2021-06-19  Bruno Haible  <br...@clisp.org>
 
+	stdio: Improve conflict resolution between gnulib and libintl.h.
+	* lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf,
+	GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf,
+	GNULIB_overrides_vsnprintf, GNULIB_overrides_vsprintf): New macros.
+
+2021-06-19  Bruno Haible  <br...@clisp.org>
+
 	declared.sh: Allow parsing 'extern "C"' lines.
 	* build-aux/declared.sh: Don't concatenate lines to an 'extern "C" {'
 	line.
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index f0f880a..20ba488 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -1257,6 +1257,7 @@ _GL_CXXALIASWARN (scanf);
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define snprintf rpl_snprintf
 #  endif
+#  define GNULIB_overrides_snprintf 1
 _GL_FUNCDECL_RPL (snprintf, int,
                   (char *restrict str, size_t size,
                    const char *restrict format, ...)
@@ -1302,6 +1303,7 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define sprintf rpl_sprintf
 #  endif
+#  define GNULIB_overrides_sprintf 1
 _GL_FUNCDECL_RPL (sprintf, int,
                   (char *restrict str, const char *restrict format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
@@ -1369,6 +1371,7 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define asprintf rpl_asprintf
 #  endif
+#  define GNULIB_overrides_asprintf
 _GL_FUNCDECL_RPL (asprintf, int,
                   (char **result, const char *format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
@@ -1390,6 +1393,7 @@ _GL_CXXALIASWARN (asprintf);
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vasprintf rpl_vasprintf
 #  endif
+#  define GNULIB_overrides_vasprintf 1
 _GL_FUNCDECL_RPL (vasprintf, int,
                   (char **result, const char *format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
@@ -1573,6 +1577,7 @@ _GL_CXXALIASWARN (vscanf);
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vsnprintf rpl_vsnprintf
 #  endif
+#  define GNULIB_overrides_vsnprintf 1
 _GL_FUNCDECL_RPL (vsnprintf, int,
                   (char *restrict str, size_t size,
                    const char *restrict format, va_list args)
@@ -1609,6 +1614,7 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vsprintf rpl_vsprintf
 #  endif
+#  define GNULIB_overrides_vsprintf 1
 _GL_FUNCDECL_RPL (vsprintf, int,
                   (char *restrict str,
                    const char *restrict format, va_list args)
-- 
2.7.4

>From fa7147fdd9f2a6112b5256b034ddfed9b29d8b0f Mon Sep 17 00:00:00 2001
From: Bruno Haible <br...@clisp.org>
Date: Sun, 20 Jun 2021 03:23:45 +0200
Subject: [PATCH 2/2] unistd: Improve conflict resolution between gnulib and
 textstyle.h.

* lib/unistd.in.h (GNULIB_overrides_isatty): New macro.
---
 ChangeLog       | 5 +++++
 lib/unistd.in.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 188bdaf..da5b631 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2021-06-19  Bruno Haible  <br...@clisp.org>
 
+	unistd: Improve conflict resolution between gnulib and textstyle.h.
+	* lib/unistd.in.h (GNULIB_overrides_isatty): New macro.
+
+2021-06-19  Bruno Haible  <br...@clisp.org>
+
 	stdio: Improve conflict resolution between gnulib and libintl.h.
 	* lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf,
 	GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf,
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 35abbde..d4d4ba7 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1521,6 +1521,7 @@ _GL_WARN_ON_USE (group_member, "group_member is unportable - "
 #   undef isatty
 #   define isatty rpl_isatty
 #  endif
+#  define GNULIB_defined_isatty 1
 _GL_FUNCDECL_RPL (isatty, int, (int fd));
 _GL_CXXALIAS_RPL (isatty, int, (int fd));
 # elif defined _WIN32 && !defined __CYGWIN__
-- 
2.7.4

Reply via email to