From 83710ffa8e84c03bad9e532f78917bd1c4bbfff4 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 13 Dec 2019 11:28:54 +0100 Subject: [PATCH] locale, duplocale, localename: Fix errors if locale_t does not exist. Reported by Daniel Richard G. in . * lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New macros. * tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of HAVE_NEWLOCALE. * tests/test-localename.c: Likewise. * tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of HAVE_DUPLOCALE. * tests/test-locale-c++.cc: Likewise. --- ChangeLog | 14 ++++++++++++++ lib/locale.in.h | 6 ++++++ tests/test-duplocale.c | 2 +- tests/test-locale-c++.cc | 2 +- tests/test-locale.c | 2 +- tests/test-localename.c | 2 +- 6 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e9fb770a6e..3e1b9d5340 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2019-12-13 Bruno Haible + + locale, duplocale, localename: Fix errors if locale_t does not exist. + Reported by Daniel Richard G. in + . + * lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New + macros. + * tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of + HAVE_NEWLOCALE. + * tests/test-localename.c: Likewise. + * tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of + HAVE_DUPLOCALE. + * tests/test-locale-c++.cc: Likewise. + 2019-12-13 Bruno Haible wcstok: Fix test failure on HP-UX. diff --git a/lib/locale.in.h b/lib/locale.in.h index 77b8b3ba91..c0915a5ac6 100644 --- a/lib/locale.in.h +++ b/lib/locale.in.h @@ -227,6 +227,9 @@ _GL_CXXALIAS_SYS (newlocale, locale_t, # if @HAVE_NEWLOCALE@ _GL_CXXALIASWARN (newlocale); # endif +# ifndef HAVE_WORKING_NEWLOCALE +# define HAVE_WORKING_NEWLOCALE 1 +# endif #elif defined GNULIB_POSIXCHECK # undef newlocale # if HAVE_RAW_DECL_NEWLOCALE @@ -251,6 +254,9 @@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif +# ifndef HAVE_WORKING_DUPLOCALE +# define HAVE_WORKING_DUPLOCALE 1 +# endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE diff --git a/tests/test-duplocale.c b/tests/test-duplocale.c index 3313c83663..a0f699e0c8 100644 --- a/tests/test-duplocale.c +++ b/tests/test-duplocale.c @@ -20,7 +20,7 @@ #include -#if HAVE_DUPLOCALE +#if HAVE_WORKING_DUPLOCALE #include "signature.h" SIGNATURE_CHECK (duplocale, locale_t, (locale_t)); diff --git a/tests/test-locale-c++.cc b/tests/test-locale-c++.cc index ae24705d29..84abe9d065 100644 --- a/tests/test-locale-c++.cc +++ b/tests/test-locale-c++.cc @@ -36,7 +36,7 @@ SIGNATURE_CHECK (GNULIB_NAMESPACE::setlocale, char *, (int, const char *)); SIGNATURE_CHECK (GNULIB_NAMESPACE::newlocale, locale_t, (int, const char *, locale_t)); #endif -#if GNULIB_TEST_DUPLOCALE && HAVE_DUPLOCALE +#if GNULIB_TEST_DUPLOCALE && HAVE_WORKING_DUPLOCALE SIGNATURE_CHECK (GNULIB_NAMESPACE::duplocale, locale_t, (locale_t)); #endif diff --git a/tests/test-locale.c b/tests/test-locale.c index 91deeed370..80ca9241ad 100644 --- a/tests/test-locale.c +++ b/tests/test-locale.c @@ -44,7 +44,7 @@ verify (sizeof NULL == sizeof (void *)); int main () { -#if HAVE_NEWLOCALE +#if HAVE_WORKING_NEWLOCALE /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined. */ locale_t b = LC_GLOBAL_LOCALE; (void) b; diff --git a/tests/test-localename.c b/tests/test-localename.c index 77699d9581..5a52748ab2 100644 --- a/tests/test-localename.c +++ b/tests/test-localename.c @@ -26,7 +26,7 @@ #include "macros.h" -#if HAVE_NEWLOCALE && HAVE_WORKING_USELOCALE && !HAVE_FAKE_LOCALES +#if HAVE_WORKING_NEWLOCALE && HAVE_WORKING_USELOCALE && !HAVE_FAKE_LOCALES # define HAVE_GOOD_USELOCALE 1 #endif -- 2.39.5