+2019-12-13 Bruno Haible <bruno@clisp.org>
+
+ locale, duplocale, localename: Fix errors if locale_t does not exist.
+ Reported by Daniel Richard G. in
+ <https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00078.html>.
+ * 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 <bruno@clisp.org>
wcstok: Fix test failure on HP-UX.
# 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
# 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
#include <locale.h>
-#if HAVE_DUPLOCALE
+#if HAVE_WORKING_DUPLOCALE
#include "signature.h"
SIGNATURE_CHECK (duplocale, locale_t, (locale_t));
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
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;
#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