Sam James reported that when configuring a package with --disable-nls, not only BISON_LOCALEDIR expands to empty (which is acceptable since the value is not used) but also BISON_LOCALEDIR_c expands to empty (which leads to a C syntax error, see <https://savannah.gnu.org/bugs/?66533>).
This patch fixes it. 2024-12-04 Bruno Haible <br...@clisp.org> bison-i18n: Ensure BISON_LOCALEDIR_c expands to a C string. Reported by Holger Hoffstätte via Sam James <s...@gentoo.org>. * m4/bison-i18n.m4 (BISON_I18N): Define BISON_LOCALEDIR_c and BISON_LOCALEDIR_c_make in the usual way even when BISON_LOCALEDIR expands to empty. diff --git a/m4/bison-i18n.m4 b/m4/bison-i18n.m4 index 3cf0848ca2..e5433a686a 100644 --- a/m4/bison-i18n.m4 +++ b/m4/bison-i18n.m4 @@ -1,5 +1,5 @@ # bison-i18n.m4 -# serial 5 +# serial 6 dnl Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -57,27 +57,28 @@ AC_DEFUN([BISON_I18N] fi fi AC_SUBST([BISON_LOCALEDIR]) + fi - dnl Define BISON_LOCALEDIR_c and BISON_LOCALEDIR_c_make. - dnl Find the final value of BISON_LOCALEDIR. - gl_saved_prefix="${prefix}" - gl_saved_datarootdir="${datarootdir}" - gl_saved_localedir="${localedir}" - gl_saved_bisonlocaledir="${BISON_LOCALEDIR}" - dnl Unfortunately, prefix gets only finally determined at the end of - dnl configure. - if test "X$prefix" = "XNONE"; then - prefix="$ac_default_prefix" - fi - eval datarootdir="$datarootdir" - eval localedir="$localedir" - eval BISON_LOCALEDIR="$BISON_LOCALEDIR" - gl_BUILD_TO_HOST([BISON_LOCALEDIR]) - BISON_LOCALEDIR="${gl_saved_bisonlocaledir}" - localedir="${gl_saved_localedir}" - datarootdir="${gl_saved_datarootdir}" - prefix="${gl_saved_prefix}" + dnl Define BISON_LOCALEDIR_c and BISON_LOCALEDIR_c_make. + dnl Find the final value of BISON_LOCALEDIR. + gl_saved_prefix="${prefix}" + gl_saved_datarootdir="${datarootdir}" + gl_saved_localedir="${localedir}" + gl_saved_bisonlocaledir="${BISON_LOCALEDIR}" + dnl Unfortunately, prefix gets only finally determined at the end of + dnl configure. + if test "X$prefix" = "XNONE"; then + prefix="$ac_default_prefix" fi + eval datarootdir="$datarootdir" + eval localedir="$localedir" + eval BISON_LOCALEDIR="$BISON_LOCALEDIR" + gl_BUILD_TO_HOST([BISON_LOCALEDIR]) + BISON_LOCALEDIR="${gl_saved_bisonlocaledir}" + localedir="${gl_saved_localedir}" + datarootdir="${gl_saved_datarootdir}" + prefix="${gl_saved_prefix}" + if test $BISON_USE_NLS = yes; then AC_DEFINE([YYENABLE_NLS], [1], [Define to 1 to internationalize bison runtime messages.])