From 694e8acc49e776ea8b546530f9ffc9c1b2734466 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 5 Apr 2023 02:36:02 +0200 Subject: [PATCH] duplocale: Fix compilation error on Haiku (regression 2023-01-22). * lib/locale.in.h (duplocale): If HAVE_DUPLOCALE = 0, don't declare it, even if REPLACE_DUPLOCALE = 1. * modules/duplocale (Depends-on, configure.ac): Don't compile a replacement if HAVE_DUPLOCALE = 0 and REPLACE_DUPLOCALE = 1. --- ChangeLog | 8 ++++++++ lib/locale.in.h | 18 +++++++++--------- modules/duplocale | 5 +++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8697719bac..ea83bf3dd5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2023-04-04 Bruno Haible + + duplocale: Fix compilation error on Haiku (regression 2023-01-22). + * lib/locale.in.h (duplocale): If HAVE_DUPLOCALE = 0, don't declare it, + even if REPLACE_DUPLOCALE = 1. + * modules/duplocale (Depends-on, configure.ac): Don't compile a + replacement if HAVE_DUPLOCALE = 0 and REPLACE_DUPLOCALE = 1. + 2023-04-04 Bruno Haible c32tob, c32is*, c32rtomb, mbrtoc32: Fix file lists. diff --git a/lib/locale.in.h b/lib/locale.in.h index e9c34182e5..e37702c4eb 100644 --- a/lib/locale.in.h +++ b/lib/locale.in.h @@ -245,23 +245,23 @@ _GL_WARN_ON_USE (newlocale, "newlocale is not portable"); #endif #if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @LOCALENAME_ENHANCE_LOCALE_FUNCS@ && @HAVE_DUPLOCALE@) -# if @REPLACE_DUPLOCALE@ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef duplocale -# define duplocale rpl_duplocale -# define GNULIB_defined_duplocale 1 -# endif +# if @HAVE_DUPLOCALE@ /* locale_t may be undefined if !@HAVE_DUPLOCALE@. */ +# if @REPLACE_DUPLOCALE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef duplocale +# define duplocale rpl_duplocale +# define GNULIB_defined_duplocale 1 +# endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); -# else -# if @HAVE_DUPLOCALE@ +# else _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if __GLIBC__ >= 2 && @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif -# if @HAVE_DUPLOCALE@ || @REPLACE_DUPLOCALE@ +# if @HAVE_DUPLOCALE@ # ifndef HAVE_WORKING_DUPLOCALE # define HAVE_WORKING_DUPLOCALE 1 # endif diff --git a/modules/duplocale b/modules/duplocale index 80d4aaaf54..7c1a8730a5 100644 --- a/modules/duplocale +++ b/modules/duplocale @@ -7,11 +7,12 @@ m4/duplocale.m4 Depends-on: locale -setlocale-null [test $REPLACE_DUPLOCALE = 1] +setlocale-null [test $HAVE_DUPLOCALE = 1 && test $REPLACE_DUPLOCALE = 1] configure.ac: gl_FUNC_DUPLOCALE -gl_CONDITIONAL([GL_COND_OBJ_DUPLOCALE], [test $REPLACE_DUPLOCALE = 1]) +gl_CONDITIONAL([GL_COND_OBJ_DUPLOCALE], + [test $HAVE_DUPLOCALE = 1 && test $REPLACE_DUPLOCALE = 1]) AM_COND_IF([GL_COND_OBJ_DUPLOCALE], [ gl_PREREQ_DUPLOCALE ]) -- 2.39.5