Compare commits

...
9 Commits
Author SHA1 Message Date
Paul Eggert a47fb7838a build: update gnulib submodule to latest 2026-07-30 08:36:29 -07:00
Paul Eggert 089c39aab2 bison: allow trivially copyable C++ YYLTYPE
Problem reported by James K. Lowden in:
https://lists.gnu.org/r/bison-patches/2026-07/msg00000.html
* data/skeletons/yacc.c: In C++, check that YYLTYPE is
trivially copyable if this is not already known.
But skip the check in older compilers.
2026-07-21 12:52:53 -07:00
Paul Eggert 3841fe9de4 maint: update .gitignore 2026-07-21 12:52:53 -07:00
Paul Eggert 7024830c72 maint: propagate gnulib changes 2026-07-21 12:52:53 -07:00
Paul Eggert 720943cff0 maint: prefer mcel
* bootstrap.conf (gnulib_modules): Add mcel-prefer.
(gnulib_tool_option_extras): Avoid mbiterf.
This simplifies Bison a bit, which does not need
the more-complex mbiterf.
2026-07-21 12:52:53 -07:00
Paul Eggert 706ebd0fa5 bison: port to GCC 16.1.1 -Wclobbered
* data/skeletons/glr.c, data/skeletons/glr2.cc:
Ignore -Wclobbered if GCC 4.6 or later.
2026-07-21 12:52:53 -07:00
Paul Eggert ff9eee58c3 bison: port to GCC 16.1.1 -Wmaybe-uninitialized
* data/skeletons/lalr1.cc: Increase the scope of
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN.
Needed for GCC 16.1.1 20260515 (Red Hat 16.1.1-2).
2026-07-21 12:52:53 -07:00
Paul Eggert 4f6785aee9 build: update gnulib and autoconf submodules to latest 2026-07-21 12:52:53 -07:00
Paul Eggert c3f856a430 bison: port to recent glibc / Gnulib
* src/muscle-tab.c (muscle_grow, muscle_syncline_grow)
(muscle_pair_list_grow, muscle_boundary_grow, string_decode)
(define_directive): Use char *, not char const *, for
pointers that are passed to obstack_free or are stored through.
This avoids undefined behavior in C.
2026-07-21 12:52:53 -07:00
27 changed files with 124 additions and 98 deletions
+11 -4
View File
@@ -1,10 +1,19 @@
*.a
*.bak
*.diff
*.exe
*.log *.log
*.o *.o
*.orig
*.out
*.output
*.pdf *.pdf
*.rej
*.stamp *.stamp
*.tmp
*.trs *.trs
*~ *~
.deps .deps/
.dirstamp .dirstamp
/*.cache /*.cache
/*.flc /*.flc
@@ -20,11 +29,9 @@
/Makefile.in /Makefile.in
/README-release /README-release
/_* /_*
/a.exe
/a.out
/aclocal.m4 /aclocal.m4
/b.out
/bison-* /bison-*
/build-aux/move-if-change
/conf[0-9]* /conf[0-9]*
/confdefs* /confdefs*
/config.log /config.log
+3
View File
@@ -8,6 +8,9 @@ GNU Bison NEWS
The C++ skeletons now expose copy and move operators for symbols. The C++ skeletons now expose copy and move operators for symbols.
The default (C) skeleton now supports user-defined semantic and location
types that are trivially copyable in C++.
Fixed portability issues of the test suite on Solaris. Fixed portability issues of the test suite on Solaris.
Fixed spurious warnings about input containing `m4_` or `b4_`. Fixed spurious warnings about input containing `m4_` or `b4_`.
+1 -1
View File
@@ -3,7 +3,7 @@
scriptversion=2025-06-10.02; # UTC scriptversion=2025-06-10.02; # UTC
# Copyright (C) 2003-2025 Free Software Foundation, Inc. # Copyright (C) 2003-2026 Free Software Foundation, Inc.
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
+4 -3
View File
@@ -1,6 +1,6 @@
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap. # A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
scriptlibversion=2025-06-10.02; # UTC scriptlibversion=2025-12-04.19; # UTC
# Copyright (C) 2003-2026 Free Software Foundation, Inc. # Copyright (C) 2003-2026 Free Software Foundation, Inc.
# #
@@ -35,7 +35,7 @@ export LC_ALL
# Honor $PERL, but work even if there is none. # Honor $PERL, but work even if there is none.
PERL="${PERL-perl}" PERL="${PERL-perl}"
default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git default_gnulib_url=https://https.git.savannah.gnu.org/git/gnulib.git
# Copyright year, for the --version output. # Copyright year, for the --version output.
copyright_year=`echo "$scriptlibversion" | sed -e 's/[^0-9].*//'` copyright_year=`echo "$scriptlibversion" | sed -e 's/[^0-9].*//'`
@@ -824,7 +824,8 @@ autopull()
elif check_exists git-merge-changelog; then elif check_exists git-merge-changelog; then
echo "$0: initializing git-merge-changelog driver" echo "$0: initializing git-merge-changelog driver"
git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' git config merge.merge-changelog.driver \
'git-merge-changelog %O %A %B "%Y"'
else else
echo "$0: consider installing git-merge-changelog from gnulib" echo "$0: consider installing git-merge-changelog from gnulib"
fi fi
+11 -1
View File
@@ -34,6 +34,7 @@ gnulib_modules='
libtextstyle-optional libtextstyle-optional
linked-list linked-list
malloc-gnu malloc-gnu
mcel-prefer
mbfile mbswidth mbfile mbswidth
obstack obstack
obstack-printf obstack-printf
@@ -80,7 +81,16 @@ XGETTEXT_OPTIONS_RUNTIME=$XGETTEXT_OPTIONS'\\\
--keyword=YY_ \\\ --keyword=YY_ \\\
' '
gnulib_tool_option_extras='--symlink --conditional-dependencies --makefile-name=gnulib.mk --automake-subdir --automake-subdir-tests --po-base=gnulib-po --po-domain=bison' gnulib_tool_option_extras="\
--automake-subdir\
--automake-subdir-tests\
--avoid=mbiterf\
--conditional-dependencies\
--makefile-name=gnulib.mk\
--po-base=gnulib-po\
--po-domain=bison\
--symlink\
"
gnulib_extra_files="$gnulib_extra_files build-aux/move-if-change" gnulib_extra_files="$gnulib_extra_files build-aux/move-if-change"
-1
View File
@@ -3,7 +3,6 @@
/config.guess /config.guess
/config.libpath /config.libpath
/config.rpath /config.rpath
/config.rpath~
/config.sub /config.sub
/depcomp /depcomp
/do-release-commit-and-tag /do-release-commit-and-tag
+4
View File
@@ -307,6 +307,10 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[
# include <setjmp.h> # include <setjmp.h>
# define YYJMP_BUF jmp_buf # define YYJMP_BUF jmp_buf
# define YYSETJMP(Env) setjmp (Env) # define YYSETJMP(Env) setjmp (Env)
/* Pacify GCC <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161>. */
#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
# pragma GCC diagnostic ignored "-Wclobbered"
#endif
/* Pacify Clang and ICC. */ /* Pacify Clang and ICC. */
# define YYLONGJMP(Env, Val) \ # define YYLONGJMP(Env, Val) \
do { \ do { \
+4
View File
@@ -483,6 +483,10 @@ namespace
# include <setjmp.h> # include <setjmp.h>
# define YYJMP_BUF jmp_buf # define YYJMP_BUF jmp_buf
# define YYSETJMP(Env) setjmp (Env) # define YYSETJMP(Env) setjmp (Env)
/* Pacify GCC <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21161>. */
#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
# pragma GCC diagnostic ignored "-Wclobbered"
#endif
/* Pacify Clang and ICC. */ /* Pacify Clang and ICC. */
# define YYLONGJMP(Env, Val) \ # define YYLONGJMP(Env, Val) \
do { \ do { \
+2 -2
View File
@@ -843,6 +843,7 @@ m4_if(b4_prefix, [yy], [],
int int
]b4_parser_class[::parse () ]b4_parser_class[::parse ()
{ {
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
int yyn; int yyn;
/// Length of the RHS of the rule being reduced. /// Length of the RHS of the rule being reduced.
int yylen = 0; int yylen = 0;
@@ -987,7 +988,6 @@ b4_dollar_popdef])[]dnl
yyreduce: yyreduce:
yylen = yyr2_[yyn]; yylen = yyr2_[yyn];
{ {
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
stack_symbol_type yylhs; stack_symbol_type yylhs;
yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);]b4_variant_if([[ yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);]b4_variant_if([[
/* Variants are always initialized to an empty instance of the /* Variants are always initialized to an empty instance of the
@@ -1040,7 +1040,6 @@ b4_dollar_popdef])[]dnl
// Shift the result of the reduction. // Shift the result of the reduction.
yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); yypush_ (YY_NULLPTR, YY_MOVE (yylhs));
YY_IGNORE_MAYBE_UNINITIALIZED_END
} }
goto yynewstate; goto yynewstate;
@@ -1181,6 +1180,7 @@ b4_dollar_popdef])[]dnl
} }
return yyresult; return yyresult;
YY_IGNORE_MAYBE_UNINITIALIZED_END
} }
#if YY_EXCEPTIONS #if YY_EXCEPTIONS
catch (...) catch (...)
+21 -4
View File
@@ -581,10 +581,27 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
# define YYCOPY_NEEDED 1]])[ # define YYCOPY_NEEDED 1]])[
#endif /* ]b4_lac_if([[1]], [b4_parse_error_case([simple], [[!defined yyoverflow]], [[1]])])[ */ #endif /* ]b4_lac_if([[1]], [b4_parse_error_case([simple], [[!defined yyoverflow]], [[1]])])[ */
#if (! defined yyoverflow \ #ifndef yyoverflow
&& (! defined __cplusplus \ /* In C++, ]b4_api_PREFIX[STYPE must be trivially copyable.
|| (]b4_locations_if([[defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL \ If ]b4_api_PREFIX[STYPE_IS_TRIVIAL, this is already known.
&& ]])[defined ]b4_api_PREFIX[STYPE_IS_TRIVIAL && ]b4_api_PREFIX[STYPE_IS_TRIVIAL))) Otherwise check this if easy, as in newer C++ compilers.]b4_locations_if([[
Likewise for ]b4_api_PREFIX[LTYPE.]])[ */
# if (! (]b4_locations_if([[defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL \
&& ]])[defined ]b4_api_PREFIX[STYPE_IS_TRIVIAL && ]b4_api_PREFIX[STYPE_IS_TRIVIAL) \
&& defined __cplusplus && 201103 <= __cplusplus \
&& !(defined _GLIBCXX_RELEASE \
? _GLIBCXX_RELEASE < 5 \
: defined __GLIBCXX__) \
&& defined __has_include)
# if __has_include (<type_traits>)
# include <type_traits>
]b4_locations_if(
[[static_assert (std::is_trivially_copyable<]b4_api_PREFIX[LTYPE>::value,
"Bison error: api.location.type is not trivially copyable");
]])[static_assert (std::is_trivially_copyable<]b4_api_PREFIX[STYPE>::value,
"Bison error: api.value.type is not trivially copyable");
# endif
# endif
/* A type that is properly aligned for any stack member. */ /* A type that is properly aligned for any stack member. */
union yyalloc union yyalloc
+2 -11
View File
@@ -8,27 +8,18 @@
#/bison.cp #/bison.cp
#/bison.cps #/bison.cps
#/bison.toc #/bison.toc
*.dvi
/*~ *.ps
/.dirstamp
/bison.1 /bison.1
/bison.dvi
/bison.help /bison.help
/bison.html /bison.html
/bison.info /bison.info
/bison.info.bak
/bison.log
/bison.pdf
/bison.ps
/cross-options.texi /cross-options.texi
/figs/*.eps /figs/*.eps
/figs/*.svg /figs/*.svg
/gendocs_template /gendocs_template
/gendocs_template_min /gendocs_template_min
/gpl-3.0.texi /gpl-3.0.texi
/refcard.dvi
/refcard.log
/refcard.ps
/relocatable.texi /relocatable.texi
/stamp-vti /stamp-vti
/version.texi /version.texi
+13
View File
@@ -0,0 +1,13 @@
*.c
*.cc
*.class
*.h
*.hh
!/c++/glr/ast.hh
*.java
*.ll
/c/bistromathic/bistromathic
/c/calc/calc
/c/glr/c++-types
/c/lexcalc/lexcalc
/c/pushcalc/calc
+4
View File
@@ -1 +1,5 @@
/glr/c++-types
/simple
/simple.yy /simple.yy
/variant
/variant-11
-17
View File
@@ -1,19 +1,2 @@
/*.o
/*.tmp
/.deps
/calc++ /calc++
/calc++.cc
/calc++.exe
/calc.stamp
/driver.cc
/driver.hh
/location.hh
/parser.cc
/parser.hh
/parser.output
/parser.stamp
/parser.yy /parser.yy
/position.hh
/scanner.cc
/scanner.ll
/stack.hh
-9
View File
@@ -1,11 +1,2 @@
/*.o
/*.tmp
/.deps
/calc.h
/mfcalc /mfcalc
/mfcalc.c
/mfcalc.exe
/mfcalc.h
/mfcalc.output
/mfcalc.stamp
/mfcalc.y /mfcalc.y
+1 -2
View File
@@ -1,2 +1 @@
/scan.c /reccalc
/scan.h
-5
View File
@@ -1,7 +1,2 @@
/calc.h
/rpcalc /rpcalc
/rpcalc.c
/rpcalc.h
/rpcalc.output
/rpcalc.stamp
/rpcalc.y /rpcalc.y
+1 -1
Submodule gnulib updated: 2410984b5b...ca6357994b
-1
View File
@@ -17,5 +17,4 @@
/quot.sed /quot.sed
/remove-potcdate.sed /remove-potcdate.sed
/remove-potcdate.sin /remove-potcdate.sin
/remove-potcdate.sin~
/stamp-po /stamp-po
+25 -16
View File
@@ -1,9 +1,3 @@
/*.a
/*.bak
/*.o
/*~
/.deps
/.dirstamp
/_Noreturn.h /_Noreturn.h
/access.c /access.c
/alloca.h /alloca.h
@@ -27,8 +21,6 @@
/basename.c /basename.c
/binary-io.c /binary-io.c
/binary-io.h /binary-io.h
/bitrotate.c
/bitrotate.h
/bitset.c /bitset.c
/bitset.h /bitset.h
/bitset/ /bitset/
@@ -39,7 +31,6 @@
/c-ctype.h /c-ctype.h
/c-strcase.h /c-strcase.h
/c-strcasecmp.c /c-strcasecmp.c
/c-strcaseeq.h
/c-strncasecmp.c /c-strncasecmp.c
/c-strtod.c /c-strtod.c
/c-strtod.h /c-strtod.h
@@ -226,10 +217,6 @@
/iconv_open-aix.h /iconv_open-aix.h
/iconv_open-hpux.gperf /iconv_open-hpux.gperf
/iconv_open-hpux.h /iconv_open-hpux.h
/iconv_open-irix.gperf
/iconv_open-irix.h
/iconv_open-osf.gperf
/iconv_open-osf.h
/iconv_open-solaris.gperf /iconv_open-solaris.gperf
/iconv_open-solaris.h /iconv_open-solaris.h
/iconv_open-zos.gperf /iconv_open-zos.gperf
@@ -243,6 +230,7 @@
/intprops.h /intprops.h
/inttypes.h /inttypes.h
/inttypes.in.h /inttypes.in.h
/isinf.c
/isnan.c /isnan.c
/isnand-nolibm.h /isnand-nolibm.h
/isnand.c /isnand.c
@@ -250,6 +238,8 @@
/isnanf.c /isnanf.c
/isnanl-nolibm.h /isnanl-nolibm.h
/isnanl.c /isnanl.c
/issymlink.c
/issymlink.h
/iswblank.c /iswblank.c
/iswdigit.c /iswdigit.c
/iswpunct.c /iswpunct.c
@@ -279,8 +269,6 @@
/mbchar.h /mbchar.h
/mbfile.c /mbfile.c
/mbfile.h /mbfile.h
/mbiterf.c
/mbiterf.h
/mbrtoc32.c /mbrtoc32.c
/mbrtowc-impl-utf8.h /mbrtowc-impl-utf8.h
/mbrtowc-impl.h /mbrtowc-impl.h
@@ -292,8 +280,11 @@
/mbszero.c /mbszero.c
/mbtowc-lock.c /mbtowc-lock.c
/mbtowc-lock.h /mbtowc-lock.h
/mcel.c
/mcel.h
/memchr.c /memchr.c
/memchr.valgrind /memchr.valgrind
/memeq.c
/mempcpy.c /mempcpy.c
/memrchr.c /memrchr.c
/minmax.h /minmax.h
@@ -337,6 +328,7 @@
/pthread-once.c /pthread-once.c
/pthread.h /pthread.h
/pthread.in.h /pthread.in.h
/pthread_sigmask.c
/quote.h /quote.h
/quotearg.c /quotearg.c
/quotearg.h /quotearg.h
@@ -370,6 +362,8 @@
/sig-handler.c /sig-handler.c
/sig-handler.h /sig-handler.h
/sigaction.c /sigaction.c
/sigdelay.c
/sigdelay.h
/signal.h /signal.h
/signal.in.h /signal.in.h
/signbitd.c /signbitd.c
@@ -404,14 +398,21 @@
/stat-w32.c /stat-w32.c
/stat-w32.h /stat-w32.h
/stat.c /stat.c
/stdbit.h
/stdbit.in.h
/stdbool.h /stdbool.h
/stdc_rotate_left.c
/stdc_rotate_right.c
/stdckdint.h /stdckdint.h
/stdckdint.in.h /stdckdint.in.h
/stdcountof.h
/stdcountof.in.h
/stddef.h /stddef.h
/stddef.in.h /stddef.in.h
/stdint.h /stdint.h
/stdint.in.h /stdint.in.h
/stdio--.h /stdio--.h
/stdio-consolesafe.c
/stdio-impl.h /stdio-impl.h
/stdio-read.c /stdio-read.c
/stdio-safer.h /stdio-safer.h
@@ -426,7 +427,8 @@
/strchrnul.c /strchrnul.c
/strchrnul.valgrind /strchrnul.valgrind
/strdup.c /strdup.c
/streq.h /streq-opt.h
/streq.c
/strerror-override.c /strerror-override.c
/strerror-override.h /strerror-override.h
/strerror.c /strerror.c
@@ -438,6 +440,7 @@
/stripslash.c /stripslash.c
/strndup.c /strndup.c
/strnlen.c /strnlen.c
/strnul.c
/strtod.c /strtod.c
/strverscmp.c /strverscmp.c
/sys/ /sys/
@@ -452,6 +455,10 @@
/termios.in.h /termios.in.h
/textstyle.h /textstyle.h
/textstyle.in.h /textstyle.in.h
/thread-creators.gperf
/thread-creators.h
/thread-optim-proto.c
/thread-optim.c
/thread-optim.h /thread-optim.h
/time.h /time.h
/time.in.h /time.in.h
@@ -520,6 +527,8 @@
/windows-rwlock.h /windows-rwlock.h
/windows-spawn.c /windows-spawn.c
/windows-spawn.h /windows-spawn.h
/windows-spin.c
/windows-spin.h
/windows-tls.c /windows-tls.c
/windows-tls.h /windows-tls.h
/xalloc-die.c /xalloc-die.c
+9 -3
View File
@@ -1,4 +1,3 @@
/*~
/00gnulib.m4 /00gnulib.m4
/__inline.m4 /__inline.m4
/absolute-header.m4 /absolute-header.m4
@@ -15,6 +14,7 @@
/calloc.m4 /calloc.m4
/canonicalize.m4 /canonicalize.m4
/chdir-long.m4 /chdir-long.m4
/check-math-lib.m4
/clock_time.m4 /clock_time.m4
/close.m4 /close.m4
/closedir.m4 /closedir.m4
@@ -39,7 +39,6 @@
/extensions-aix.m4 /extensions-aix.m4
/extensions.m4 /extensions.m4
/extern-inline.m4 /extern-inline.m4
/extern-inline.m4~
/fatal-signal.m4 /fatal-signal.m4
/fchdir.m4 /fchdir.m4
/fclose.m4 /fclose.m4
@@ -76,6 +75,7 @@
/getprogname.m4 /getprogname.m4
/getrusage.m4 /getrusage.m4
/gettext.m4 /gettext.m4
/gettext_h.m4
/gettime.m4 /gettime.m4
/gettimeofday.m4 /gettimeofday.m4
/glibc2.m4 /glibc2.m4
@@ -102,6 +102,7 @@
/inttypes-pri.m4 /inttypes-pri.m4
/inttypes.m4 /inttypes.m4
/inttypes_h.m4 /inttypes_h.m4
/isinf.m4
/isnan.m4 /isnan.m4
/isnand.m4 /isnand.m4
/isnanf.m4 /isnanf.m4
@@ -121,6 +122,7 @@
/lib-ld.m4 /lib-ld.m4
/lib-link.m4 /lib-link.m4
/lib-prefix.m4 /lib-prefix.m4
/libdl.m4
/libtextstyle-optional.m4 /libtextstyle-optional.m4
/libtextstyle.m4 /libtextstyle.m4
/libunistring-base.m4 /libunistring-base.m4
@@ -140,13 +142,13 @@
/math_h.m4 /math_h.m4
/mbchar.m4 /mbchar.m4
/mbfile.m4 /mbfile.m4
/mbiter.m4
/mbrtoc32.m4 /mbrtoc32.m4
/mbrtowc.m4 /mbrtowc.m4
/mbsinit.m4 /mbsinit.m4
/mbstate_t.m4 /mbstate_t.m4
/mbswidth.m4 /mbswidth.m4
/memchr.m4 /memchr.m4
/memeq.m4
/mempcpy.m4 /mempcpy.m4
/memrchr.m4 /memrchr.m4
/minmax.m4 /minmax.m4
@@ -185,6 +187,7 @@
/pthread-spin.m4 /pthread-spin.m4
/pthread_h.m4 /pthread_h.m4
/pthread_rwlock_rdlock.m4 /pthread_rwlock_rdlock.m4
/pthread_sigmask.m4
/quote.m4 /quote.m4
/quotearg.m4 /quotearg.m4
/raise.m4 /raise.m4
@@ -220,7 +223,9 @@
/stat.m4 /stat.m4
/std-gnu11.m4 /std-gnu11.m4
/stdalign.m4 /stdalign.m4
/stdbit_h.m4
/stdckdint_h.m4 /stdckdint_h.m4
/stdcountof_h.m4
/stddef_h.m4 /stddef_h.m4
/stdint.m4 /stdint.m4
/stdint_h.m4 /stdint_h.m4
@@ -230,6 +235,7 @@
/stpncpy.m4 /stpncpy.m4
/strchrnul.m4 /strchrnul.m4
/strdup.m4 /strdup.m4
/streq.m4
/strerror.m4 /strerror.m4
/strerror_r.m4 /strerror_r.m4
/string_h.m4 /string_h.m4
-1
View File
@@ -1,6 +1,5 @@
/*.gmo /*.gmo
/*.po /*.po
/*~
/.reference /.reference
/LINGUAS /LINGUAS
/Makefile /Makefile
-1
View File
@@ -1,6 +1,5 @@
/*.gmo /*.gmo
/*.po /*.po
/*~
/.reference /.reference
/LINGUAS /LINGUAS
/Makefile /Makefile
-5
View File
@@ -1,9 +1,4 @@
/*.flc /*.flc
/*.log
/*.o
/*.output
/.deps
/.dirstamp
/bison /bison
/bison.exe /bison.exe
/scan-code.c /scan-code.c
+7 -8
View File
@@ -193,7 +193,7 @@ muscle_grow (const char *key, const char *val,
obstack_sgrow (&muscle_obstack, terminator); obstack_sgrow (&muscle_obstack, terminator);
{ {
char const *new_val = obstack_finish0 (&muscle_obstack); char *new_val = obstack_finish0 (&muscle_obstack);
entry->value = entry->storage = xstrdup (new_val); entry->value = entry->storage = xstrdup (new_val);
obstack_free (&muscle_obstack, new_val); obstack_free (&muscle_obstack, new_val);
} }
@@ -211,7 +211,7 @@ muscle_syncline_grow (char const *key, location loc)
obstack_quote (&muscle_obstack, obstack_quote (&muscle_obstack,
quotearg_style (c_quoting_style, map_file_name (loc.start.file))); quotearg_style (c_quoting_style, map_file_name (loc.start.file)));
obstack_sgrow (&muscle_obstack, ")dnl\n["); obstack_sgrow (&muscle_obstack, ")dnl\n[");
char const *extension = obstack_finish0 (&muscle_obstack); char *extension = obstack_finish0 (&muscle_obstack);
muscle_grow (key, extension, "", ""); muscle_grow (key, extension, "", "");
obstack_free (&muscle_obstack, extension); obstack_free (&muscle_obstack, extension);
} }
@@ -239,7 +239,7 @@ muscle_pair_list_grow (const char *muscle,
obstack_sgrow (&muscle_obstack, ", "); obstack_sgrow (&muscle_obstack, ", ");
obstack_quote (&muscle_obstack, a2); obstack_quote (&muscle_obstack, a2);
obstack_sgrow (&muscle_obstack, "]"); obstack_sgrow (&muscle_obstack, "]");
char const *pair = obstack_finish0 (&muscle_obstack); char *pair = obstack_finish0 (&muscle_obstack);
muscle_grow (muscle, pair, ",\n", ""); muscle_grow (muscle, pair, ",\n", "");
obstack_free (&muscle_obstack, pair); obstack_free (&muscle_obstack, pair);
} }
@@ -275,7 +275,7 @@ muscle_boundary_grow (char const *key, boundary bound)
obstack_sgrow (&muscle_obstack, "[["); obstack_sgrow (&muscle_obstack, "[[");
obstack_escape (&muscle_obstack, bound.file); obstack_escape (&muscle_obstack, bound.file);
obstack_printf (&muscle_obstack, ":%d.%d@@%d]]", bound.line, bound.column, bound.byte); obstack_printf (&muscle_obstack, ":%d.%d@@%d]]", bound.line, bound.column, bound.byte);
char const *extension = obstack_finish0 (&muscle_obstack); char *extension = obstack_finish0 (&muscle_obstack);
muscle_grow (key, extension, "", ""); muscle_grow (key, extension, "", "");
obstack_free (&muscle_obstack, extension); obstack_free (&muscle_obstack, extension);
} }
@@ -326,7 +326,7 @@ string_decode (char const *key)
break; break;
} }
} while (*value++); } while (*value++);
char const *value_decoded = obstack_finish (&muscle_obstack); char *value_decoded = obstack_finish (&muscle_obstack);
char *res = xstrdup (value_decoded); char *res = xstrdup (value_decoded);
obstack_free (&muscle_obstack, value_decoded); obstack_free (&muscle_obstack, value_decoded);
return res; return res;
@@ -407,16 +407,15 @@ define_directive (char const *assignment,
muscle_kind kind, muscle_kind kind,
char const *value) char const *value)
{ {
char *eq = strchr (assignment, '=');
char const *fmt char const *fmt
= eq || !value || !*value ? "%%define %s" = strchr (assignment, '=') || !value || !*value ? "%%define %s"
: kind == muscle_code ? "%%define %s {%s}" : kind == muscle_code ? "%%define %s {%s}"
: kind == muscle_string ? "%%define %s \"%s\"" : kind == muscle_string ? "%%define %s \"%s\""
: "%%define %s %s"; : "%%define %s %s";
char *res = xmalloc (strlen (fmt) + strlen (assignment) char *res = xmalloc (strlen (fmt) + strlen (assignment)
+ (value ? strlen (value) : 0)); + (value ? strlen (value) : 0));
sprintf (res, fmt, assignment, value); sprintf (res, fmt, assignment, value);
eq = strchr (res, '='); char *eq = strchr (res, '=');
if (eq) if (eq)
*eq = eq[1] ? ' ' : '\0'; *eq = eq[1] ? ' ' : '\0';
return res; return res;
-1
View File
@@ -1,4 +1,3 @@
/*.output
/atconfig /atconfig
/atlocal /atlocal
/bison /bison