bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
* unilbrk: Don't compile unused functions outside of libunistring
@ 2023-02-11 19:13 Bruno Haible
  2023-02-18 11:11 ` Bruno Haible
  0 siblings, 1 reply; 2+ messages in thread
From: Bruno Haible @ 2023-02-11 19:13 UTC (permalink / raw)
  To: bug-gnulib

Some functions that were only meant for backward compatibility with older
libunistring versions were compiled into libgettextpo. Worse, these symbols
were also exported from libgettextpo. This patch fixes it.


2023-02-11  Bruno Haible  <bruno@clisp.org>

	unilbrk: Don't compile unused functions outside of libunistring.
	* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't
	compile outside of libunistring.
	* lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks):
	Likewise.
	* lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks):
	Likewise.
	* lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks):
	Likewise.
	* lib/unilbrk/u8-width-linebreaks.c (u8_width_linebreaks): Likewise.
	* lib/unilbrk/u16-width-linebreaks.c (u16_width_linebreaks): Likewise.
	* lib/unilbrk/u32-width-linebreaks.c (u32_width_linebreaks): Likewise.
	* lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Likewise.

diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c
index 75d50efc5a..bbb236ae4e 100644
--- a/lib/unilbrk/u16-possible-linebreaks.c
+++ b/lib/unilbrk/u16-possible-linebreaks.c
@@ -216,7 +216,10 @@ u16_possible_linebreaks_loop (const uint16_t *s, size_t n, const char *encoding,
     }
 }
 
-#undef u16_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u16_possible_linebreaks
 
 void
 u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding,
@@ -225,6 +228,8 @@ u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding,
   u16_possible_linebreaks_loop (s, n, encoding, -1, p);
 }
 
+#endif
+
 void
 u16_possible_linebreaks_v2 (const uint16_t *s, size_t n, const char *encoding,
                             char *p)
diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c
index 44d630e7e8..9299a86df4 100644
--- a/lib/unilbrk/u16-width-linebreaks.c
+++ b/lib/unilbrk/u16-width-linebreaks.c
@@ -118,7 +118,10 @@ u16_width_linebreaks_internal (const uint16_t *s, size_t n,
   return last_column + piece_width;
 }
 
-#undef u16_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u16_width_linebreaks
 
 int
 u16_width_linebreaks (const uint16_t *s, size_t n,
@@ -131,6 +134,8 @@ u16_width_linebreaks (const uint16_t *s, size_t n,
                                         o, encoding, -1, p);
 }
 
+#endif
+
 int
 u16_width_linebreaks_v2 (const uint16_t *s, size_t n,
                          int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c
index 37215f12e4..762342a7eb 100644
--- a/lib/unilbrk/u32-possible-linebreaks.c
+++ b/lib/unilbrk/u32-possible-linebreaks.c
@@ -210,7 +210,10 @@ u32_possible_linebreaks_loop (const uint32_t *s, size_t n, const char *encoding,
     }
 }
 
-#undef u32_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u32_possible_linebreaks
 
 void
 u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding,
@@ -219,6 +222,8 @@ u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding,
   u32_possible_linebreaks_loop (s, n, encoding, -1, p);
 }
 
+#endif
+
 void
 u32_possible_linebreaks_v2 (const uint32_t *s, size_t n, const char *encoding,
                             char *p)
diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c
index 2b22585c86..524e82294d 100644
--- a/lib/unilbrk/u32-width-linebreaks.c
+++ b/lib/unilbrk/u32-width-linebreaks.c
@@ -116,7 +116,10 @@ u32_width_linebreaks_internal (const uint32_t *s, size_t n,
   return last_column + piece_width;
 }
 
-#undef u32_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u32_width_linebreaks
 
 int
 u32_width_linebreaks (const uint32_t *s, size_t n,
@@ -129,6 +132,8 @@ u32_width_linebreaks (const uint32_t *s, size_t n,
                                         o, encoding, -1, p);
 }
 
+#endif
+
 int
 u32_width_linebreaks_v2 (const uint32_t *s, size_t n,
                          int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c
index be282e0d03..1ac1200b3d 100644
--- a/lib/unilbrk/u8-possible-linebreaks.c
+++ b/lib/unilbrk/u8-possible-linebreaks.c
@@ -216,7 +216,10 @@ u8_possible_linebreaks_loop (const uint8_t *s, size_t n, const char *encoding,
     }
 }
 
-#undef u8_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u8_possible_linebreaks
 
 void
 u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding,
@@ -225,6 +228,8 @@ u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding,
   u8_possible_linebreaks_loop (s, n, encoding, -1, p);
 }
 
+#endif
+
 void
 u8_possible_linebreaks_v2 (const uint8_t *s, size_t n, const char *encoding,
                            char *p)
diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c
index 92c061907f..718e535da4 100644
--- a/lib/unilbrk/u8-width-linebreaks.c
+++ b/lib/unilbrk/u8-width-linebreaks.c
@@ -118,7 +118,10 @@ u8_width_linebreaks_internal (const uint8_t *s, size_t n,
   return last_column + piece_width;
 }
 
-#undef u8_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef u8_width_linebreaks
 
 int
 u8_width_linebreaks (const uint8_t *s, size_t n,
@@ -131,6 +134,8 @@ u8_width_linebreaks (const uint8_t *s, size_t n,
                                        o, encoding, -1, p);
 }
 
+#endif
+
 int
 u8_width_linebreaks_v2 (const uint8_t *s, size_t n,
                         int width, int start_column, int at_end_columns,
diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c
index 0d180a0ad9..8d97e51afe 100644
--- a/lib/unilbrk/ulc-possible-linebreaks.c
+++ b/lib/unilbrk/ulc-possible-linebreaks.c
@@ -132,7 +132,10 @@ ulc_possible_linebreaks_internal (const char *s, size_t n, const char *encoding,
     }
 }
 
-#undef ulc_possible_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef ulc_possible_linebreaks
 
 void
 ulc_possible_linebreaks (const char *s, size_t n, const char *encoding,
@@ -141,6 +144,8 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding,
   ulc_possible_linebreaks_internal (s, n, encoding, -1, p);
 }
 
+#endif
+
 void
 ulc_possible_linebreaks_v2 (const char *s, size_t n, const char *encoding,
                             char *p)
diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c
index 1d44d440b3..a8e08bc509 100644
--- a/lib/unilbrk/ulc-width-linebreaks.c
+++ b/lib/unilbrk/ulc-width-linebreaks.c
@@ -151,7 +151,10 @@ ulc_width_linebreaks_internal (const char *s, size_t n,
   return start_column;
 }
 
-#undef ulc_width_linebreaks
+#if defined IN_LIBUNISTRING
+/* For backward compatibility with older versions of libunistring.  */
+
+# undef ulc_width_linebreaks
 
 int
 ulc_width_linebreaks (const char *s, size_t n,
@@ -164,6 +167,8 @@ ulc_width_linebreaks (const char *s, size_t n,
                                         o, encoding, -1, p);
 }
 
+#endif
+
 int
 ulc_width_linebreaks_v2 (const char *s, size_t n,
                          int width, int start_column, int at_end_columns,





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: unilbrk: Don't compile unused functions outside of libunistring
  2023-02-11 19:13 unilbrk: Don't compile unused functions outside of libunistring Bruno Haible
@ 2023-02-18 11:11 ` Bruno Haible
  0 siblings, 0 replies; 2+ messages in thread
From: Bruno Haible @ 2023-02-18 11:11 UTC (permalink / raw)
  To: bug-gnulib

> 2023-02-11  Bruno Haible  <bruno@clisp.org>
> 
> 	unilbrk: Don't compile unused functions outside of libunistring.
> 	* lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't
> 	compile outside of libunistring.

Oops, this patch broke the unit tests:

/tmp/testdir4/gltests/unilbrk/test-u16-possible-linebreaks.c:259: undefined reference to `u16_possible_linebreaks'

and similar.

This patch fixes it.


2023-02-18  Bruno Haible  <bruno@clisp.org>

	unilbrk tests: Fix compilation failures (regression 2023-02-11).
	* tests/unilbrk/test-u8-possible-linebreaks.c (main): Outside of
	libunistring, don't test the backward compatibility function.
	* tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-u8-width-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-u16-width-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-u32-width-linebreaks.c (main): Likewise.
	* tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise.

diff --git a/tests/unilbrk/test-u16-possible-linebreaks.c b/tests/unilbrk/test-u16-possible-linebreaks.c
index 63207b5805..5d72227350 100644
--- a/tests/unilbrk/test-u16-possible-linebreaks.c
+++ b/tests/unilbrk/test-u16-possible-linebreaks.c
@@ -255,8 +255,10 @@ int
 main ()
 {
   test_function (u16_possible_linebreaks, 2);
-#undef u16_possible_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u16_possible_linebreaks
   test_function (u16_possible_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-u16-width-linebreaks.c b/tests/unilbrk/test-u16-width-linebreaks.c
index 3a38419bae..e59e4744b4 100644
--- a/tests/unilbrk/test-u16-width-linebreaks.c
+++ b/tests/unilbrk/test-u16-width-linebreaks.c
@@ -76,8 +76,10 @@ int
 main ()
 {
   test_function (u16_width_linebreaks, 2);
-#undef u16_width_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u16_width_linebreaks
   test_function (u16_width_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-u32-possible-linebreaks.c b/tests/unilbrk/test-u32-possible-linebreaks.c
index bb99ec5752..203fed0c89 100644
--- a/tests/unilbrk/test-u32-possible-linebreaks.c
+++ b/tests/unilbrk/test-u32-possible-linebreaks.c
@@ -255,8 +255,10 @@ int
 main ()
 {
   test_function (u32_possible_linebreaks, 2);
-#undef u32_possible_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u32_possible_linebreaks
   test_function (u32_possible_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-u32-width-linebreaks.c b/tests/unilbrk/test-u32-width-linebreaks.c
index 79b7222ad7..b64989e895 100644
--- a/tests/unilbrk/test-u32-width-linebreaks.c
+++ b/tests/unilbrk/test-u32-width-linebreaks.c
@@ -76,8 +76,10 @@ int
 main ()
 {
   test_function (u32_width_linebreaks, 2);
-#undef u32_width_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u32_width_linebreaks
   test_function (u32_width_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-u8-possible-linebreaks.c b/tests/unilbrk/test-u8-possible-linebreaks.c
index ac0abadc4a..a5b533a31a 100644
--- a/tests/unilbrk/test-u8-possible-linebreaks.c
+++ b/tests/unilbrk/test-u8-possible-linebreaks.c
@@ -238,8 +238,10 @@ int
 main ()
 {
   test_function (u8_possible_linebreaks, 2);
-#undef u8_possible_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u8_possible_linebreaks
   test_function (u8_possible_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-u8-width-linebreaks.c b/tests/unilbrk/test-u8-width-linebreaks.c
index d1d8ae9139..967d238d8d 100644
--- a/tests/unilbrk/test-u8-width-linebreaks.c
+++ b/tests/unilbrk/test-u8-width-linebreaks.c
@@ -70,8 +70,10 @@ int
 main ()
 {
   test_function (u8_width_linebreaks, 2);
-#undef u8_width_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef u8_width_linebreaks
   test_function (u8_width_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-ulc-possible-linebreaks.c b/tests/unilbrk/test-ulc-possible-linebreaks.c
index 9cd8b0d727..1d80af10ee 100644
--- a/tests/unilbrk/test-ulc-possible-linebreaks.c
+++ b/tests/unilbrk/test-ulc-possible-linebreaks.c
@@ -71,8 +71,10 @@ int
 main ()
 {
   test_function (ulc_possible_linebreaks, 2);
-#undef ulc_possible_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef ulc_possible_linebreaks
   test_function (ulc_possible_linebreaks, 1);
+#endif
 
   return 0;
 }
diff --git a/tests/unilbrk/test-ulc-width-linebreaks.c b/tests/unilbrk/test-ulc-width-linebreaks.c
index e9c4fa23df..415a96fd44 100644
--- a/tests/unilbrk/test-ulc-width-linebreaks.c
+++ b/tests/unilbrk/test-ulc-width-linebreaks.c
@@ -55,8 +55,10 @@ int
 main ()
 {
   test_function (ulc_width_linebreaks, 2);
-#undef ulc_width_linebreaks
+#ifdef IN_LIBUNISTRING_GNULIB_TESTS
+# undef ulc_width_linebreaks
   test_function (ulc_width_linebreaks, 1);
+#endif
 
   return 0;
 }





^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-02-18 11:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-11 19:13 unilbrk: Don't compile unused functions outside of libunistring Bruno Haible
2023-02-18 11:11 ` Bruno Haible

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).