mirror of
https://https.git.savannah.gnu.org/git/m4.git
synced 2026-01-27 01:44:29 +00:00
build: update to latest gnulib
Rather than trying to cherry-pick all gnulib changes on branch-1.4, this just updates to the latest (see commit 2f445aef) then fixes ALL of the fallout, as learned by referencing a number of other commits. Done this way since it is otherwise impossible to build this branch, in an effort to revive it. With this in place, it should be easier to do more targetted forward ports of other commits. * gnulib: Update to latest. * m4/gnulib-cache.m4: Regenerate. Change pipe to spawn-pipe. * .gitignore: Cater to changes in build-aux. * build-aux/missing: Drop; newer automake doesn't need it. * doc/m4.texinfo: Rename to doc/m4.texi, and re-encode in UTF-8. Cater to quotearg changing `' to '' in messages throughout (@setcontentsaftertitlepage): Drop. * examples/null.err: Cater to quotearg changes. * doc/Makefile.am (info_TEXINFOS): Track rename. * checks/Makefile.in (stamp-checks): Likewise. * configure.ac (AC_PREREQ, AM_INIT_AUTOMAKE): Bump to newer baseline. (AC_TYPE_SIGNAL): Drop deprecated macro. * src/builtin.c (m4_syscmd, m4_esyscmd): Track execute and create_pipe_in changes. (mkstemp_helper): Track obstack changes. * src/debug.c (trace_flush): Likewise. * src/input.c (next_token): Likewise. * src/m4.h (includes): Drop obsolete "verror.h". * src/output.c (m4_tmpfile, m4_tmpopen): Track fopen_temp changes. * src/symtab.c (lookup_symbol): Track hash_delete changes.
This commit is contained in:
parent
ea03ca2db7
commit
012cff0125
15
.gitignore
vendored
15
.gitignore
vendored
@ -9,12 +9,21 @@
|
||||
*.tar.gz
|
||||
*.tar.lzma
|
||||
*.tar.xz
|
||||
\#*
|
||||
.#*
|
||||
.deps
|
||||
/.tarball-version
|
||||
/.version
|
||||
/aclocal.m4
|
||||
/autom4te.cache
|
||||
/build-aux/.gitignore
|
||||
/build-aux/*
|
||||
!/build-aux/compile
|
||||
!/build-aux/config.guess
|
||||
!/build-aux/config.sub
|
||||
!/build-aux/depcomp
|
||||
!/build-aux/install-sh
|
||||
!/build-aux/mdate-sh
|
||||
!/build-aux/texinfo.tex
|
||||
/checks/[0-9][0-9].*
|
||||
/checks/[0-9][0-9][0-9].*
|
||||
/checks/stamp-checks
|
||||
@ -39,7 +48,6 @@
|
||||
/doc/stamp-vti
|
||||
/doc/version.texi
|
||||
/gendocs.sh
|
||||
/GNUmakefile
|
||||
/gnupload
|
||||
/install-sh
|
||||
/lib/*
|
||||
@ -48,7 +56,6 @@
|
||||
/m4-*
|
||||
/m4/.gitignore
|
||||
/m4/gnulib-comp.m4
|
||||
/maint.mk
|
||||
Makefile.in
|
||||
Makefile
|
||||
/missing
|
||||
@ -58,3 +65,5 @@ Makefile
|
||||
/stamp-h.in
|
||||
/tests/*
|
||||
!/tests/Makefile.am
|
||||
/GNUmakefile
|
||||
/maint.mk
|
||||
|
||||
@ -1 +0,0 @@
|
||||
../gnulib/build-aux/missing
|
||||
@ -42,9 +42,9 @@ DISTFILES = $(srcdir)/get-them $(srcdir)/check-them $(srcdir)/stamp-checks
|
||||
|
||||
all: $(srcdir)/stamp-checks
|
||||
|
||||
$(srcdir)/stamp-checks: $(srcdir)/get-them $(srcdir)/../doc/m4.texinfo
|
||||
$(srcdir)/stamp-checks: $(srcdir)/get-them $(srcdir)/../doc/m4.texi
|
||||
rm -f $(CHECKS)
|
||||
cd $(srcdir) && AWK=$(AWK) ./get-them ../doc/m4.texinfo
|
||||
cd $(srcdir) && AWK=$(AWK) ./get-them ../doc/m4.texi
|
||||
touch $(srcdir)/stamp-checks
|
||||
|
||||
install:
|
||||
|
||||
@ -17,13 +17,13 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
AC_PREREQ([2.62])
|
||||
AC_PREREQ([2.64])
|
||||
AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .tarball-version]),
|
||||
[bug-m4@gnu.org])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11.1 dist-bzip2 dist-xz color-tests parallel-tests
|
||||
silent-rules gnu])
|
||||
AM_INIT_AUTOMAKE([1.11.6 dist-bzip2 dist-xz color-tests parallel-tests
|
||||
silent-rules subdir-objects gnu])
|
||||
|
||||
m4_pattern_forbid([^M4_[A-Z]])
|
||||
|
||||
@ -51,8 +51,6 @@ AC_CHECK_MEMBERS([stack_t.ss_sp], [], [],
|
||||
#endif
|
||||
]])
|
||||
|
||||
AC_TYPE_SIGNAL
|
||||
|
||||
AC_CHECK_FUNCS_ONCE([sigaction sigaltstack sigstack sigvec strerror])
|
||||
|
||||
AC_ARG_ENABLE([gcc-warnings],
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
##
|
||||
## This file written by Eric Blake <ebb9@byu.net>
|
||||
|
||||
info_TEXINFOS = m4.texinfo
|
||||
info_TEXINFOS = m4.texi
|
||||
m4_TEXINFOS = fdl-1.3.texi gpl-3.0.texi
|
||||
man_MANS = $(srcdir)/m4.1
|
||||
EXTRA_DIST = $(man_MANS) gendocs_template
|
||||
|
||||
@ -4,10 +4,8 @@
|
||||
@setfilename m4.info
|
||||
@include version.texi
|
||||
@settitle GNU M4 @value{VERSION} macro processor
|
||||
@documentencoding UTF-8
|
||||
@setchapternewpage odd
|
||||
@ifnothtml
|
||||
@setcontentsaftertitlepage
|
||||
@end ifnothtml
|
||||
@finalout
|
||||
|
||||
@c @tabchar{}
|
||||
@ -612,7 +610,7 @@ a warning.
|
||||
@example
|
||||
$ @kbd{m4}
|
||||
defn(`oops')
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro `oops'
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro 'oops'
|
||||
@result{}
|
||||
^D
|
||||
@end example
|
||||
@ -642,7 +640,7 @@ $ @kbd{echo $?}
|
||||
@example
|
||||
$ @kbd{m4 -E -d}
|
||||
defn(`oops')
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro `oops'
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro 'oops'
|
||||
@result{}
|
||||
^D
|
||||
@end example
|
||||
@ -1145,7 +1143,7 @@ define(`m4exit')include(`null.m4')dnl
|
||||
@example
|
||||
include(`null.m4')
|
||||
@result{}# This file tests m4 behavior on NUL bytes.
|
||||
@error{}m4:examples/null.m4:5: warning: m4exit: non-numeric argument `2\0002'
|
||||
@error{}m4:examples/null.m4:5: warning: m4exit: non-numeric argument '2\0002'
|
||||
@end example
|
||||
@end ignore
|
||||
|
||||
@ -2109,8 +2107,8 @@ will still be possible to restore older behavior in M4 2.0.
|
||||
@example
|
||||
$ @kbd{m4 --warn-macro-sequence}
|
||||
define(`foo', `$001 $@{1@} $1')
|
||||
@error{}m4:stdin:1: warning: definition of `foo' contains sequence `$001'
|
||||
@error{}m4:stdin:1: warning: definition of `foo' contains sequence `$@{1@}'
|
||||
@error{}m4:stdin:1: warning: definition of 'foo' contains sequence '$001'
|
||||
@error{}m4:stdin:1: warning: definition of 'foo' contains sequence '$@{1@}'
|
||||
@result{}
|
||||
foo(`bar')
|
||||
@result{}bar $@{1@} bar
|
||||
@ -2354,7 +2352,7 @@ m4}).
|
||||
@example
|
||||
$ @kbd{m4}
|
||||
undefine(`a')
|
||||
@error{}m4:stdin:1: warning: undefine: undefined macro `a'
|
||||
@error{}m4:stdin:1: warning: undefine: undefined macro 'a'
|
||||
@result{}
|
||||
debugmode(`-d')
|
||||
@result{}
|
||||
@ -2554,7 +2552,7 @@ GNU M4 may lift this restriction.
|
||||
@example
|
||||
$ @kbd{m4 -d}
|
||||
defn(`foo')
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro `foo'
|
||||
@error{}m4:stdin:1: warning: defn: undefined macro 'foo'
|
||||
@result{}
|
||||
debugmode(`-d')
|
||||
@result{}
|
||||
@ -2705,7 +2703,7 @@ define(`a', `1')
|
||||
popdef
|
||||
@result{}popdef
|
||||
popdef(`a', `a')
|
||||
@error{}m4:stdin:3: warning: popdef: undefined macro `a'
|
||||
@error{}m4:stdin:3: warning: popdef: undefined macro 'a'
|
||||
@result{}
|
||||
debugmode(`-d')
|
||||
@result{}
|
||||
@ -2763,7 +2761,7 @@ f(define(`f', `2'))
|
||||
indir(`f', define(`f', `3'))
|
||||
@result{}3
|
||||
indir(`f', undefine(`f'))
|
||||
@error{}m4:stdin:4: warning: indir: undefined macro `f'
|
||||
@error{}m4:stdin:4: warning: indir: undefined macro 'f'
|
||||
@result{}
|
||||
debugmode(`-d')
|
||||
@result{}
|
||||
@ -2867,10 +2865,10 @@ $ @kbd{m4 -P}
|
||||
m4_builtin(`divnum')
|
||||
@result{}0
|
||||
m4_builtin(`m4_divnum')
|
||||
@error{}m4:stdin:2: warning: m4_builtin: undefined builtin `m4_divnum'
|
||||
@error{}m4:stdin:2: warning: m4_builtin: undefined builtin 'm4_divnum'
|
||||
@result{}
|
||||
m4_indir(`divnum')
|
||||
@error{}m4:stdin:3: warning: m4_indir: undefined macro `divnum'
|
||||
@error{}m4:stdin:3: warning: m4_indir: undefined macro 'divnum'
|
||||
@result{}
|
||||
m4_indir(`m4_divnum')
|
||||
@result{}0
|
||||
@ -2888,17 +2886,17 @@ recognized; but it will provoke a warning, and result in a void expansion.
|
||||
builtin
|
||||
@result{}builtin
|
||||
builtin()
|
||||
@error{}m4:stdin:2: warning: builtin: undefined builtin `'
|
||||
@error{}m4:stdin:2: warning: builtin: undefined builtin ''
|
||||
@result{}
|
||||
builtin(`builtin')
|
||||
@error{}m4:stdin:3: warning: builtin: too few arguments: 0 < 1
|
||||
@result{}
|
||||
builtin(`builtin',)
|
||||
@error{}m4:stdin:4: warning: builtin: undefined builtin `'
|
||||
@error{}m4:stdin:4: warning: builtin: undefined builtin ''
|
||||
@result{}
|
||||
builtin(`builtin', ``'
|
||||
')
|
||||
@error{}m4:stdin:5: warning: builtin: undefined builtin ``\'\n'
|
||||
@error{}m4:stdin:5: warning: builtin: undefined builtin '`\'\n'
|
||||
@result{}
|
||||
indir(`index')
|
||||
@error{}m4:stdin:7: warning: index: too few arguments: 0 < 2
|
||||
@ -4120,7 +4118,7 @@ f(popdef(`f')dumpdef(`f'))
|
||||
@error{}f:@tabchar{}``$0'1'
|
||||
@result{}f2
|
||||
f(popdef(`f')dumpdef(`f'))
|
||||
@error{}m4:stdin:3: warning: dumpdef: undefined macro `f'
|
||||
@error{}m4:stdin:3: warning: dumpdef: undefined macro 'f'
|
||||
@result{}f1
|
||||
debugmode(`-d')
|
||||
@result{}
|
||||
@ -4213,17 +4211,17 @@ traceon(`foo')
|
||||
foo
|
||||
@result{}foo
|
||||
defn(`foo')
|
||||
@error{}m4:stdin:4: warning: defn: undefined macro `foo'
|
||||
@error{}m4:stdin:4: warning: defn: undefined macro 'foo'
|
||||
@result{}
|
||||
undefine(`foo')
|
||||
@error{}m4:stdin:5: warning: undefine: undefined macro `foo'
|
||||
@error{}m4:stdin:5: warning: undefine: undefined macro 'foo'
|
||||
@result{}
|
||||
pushdef(`foo')
|
||||
@result{}
|
||||
popdef(`foo')
|
||||
@result{}
|
||||
popdef(`foo')
|
||||
@error{}m4:stdin:8: warning: popdef: undefined macro `foo'
|
||||
@error{}m4:stdin:8: warning: popdef: undefined macro 'foo'
|
||||
@result{}
|
||||
define(`foo', `bar')
|
||||
@result{}
|
||||
@ -4235,7 +4233,7 @@ undefine(`foo')
|
||||
ifdef(`foo', `yes', `no')
|
||||
@result{}no
|
||||
indir(`foo')
|
||||
@error{}m4:stdin:13: warning: indir: undefined macro `foo'
|
||||
@error{}m4:stdin:13: warning: indir: undefined macro 'foo'
|
||||
@result{}
|
||||
define(`foo', `blah')
|
||||
@result{}
|
||||
@ -4522,10 +4520,10 @@ to macro tracing.
|
||||
@comment options: -dip
|
||||
@example
|
||||
$ @kbd{m4 -dip -I examples}
|
||||
@error{}m4debug: input read from `stdin'
|
||||
@error{}m4debug: input read from 'stdin'
|
||||
include(`foo')dnl
|
||||
@error{}m4debug: path search for `foo' found `examples/foo'
|
||||
@error{}m4debug: input read from `examples/foo'
|
||||
@error{}m4debug: path search for 'foo' found 'examples/foo'
|
||||
@error{}m4debug: input read from 'examples/foo'
|
||||
@result{}bar
|
||||
@error{}m4debug: input reverted to stdin, line 1
|
||||
^D
|
||||
@ -4720,11 +4718,11 @@ The quotation strings can safely contain eight-bit characters.
|
||||
@example
|
||||
define(`a', `b')
|
||||
@result{}
|
||||
«a»
|
||||
@result{}«b»
|
||||
changequote(`«', `»')
|
||||
«a»
|
||||
@result{}«b»
|
||||
changequote(`«', `»')
|
||||
@result{}
|
||||
«a»
|
||||
«a»
|
||||
@result{}a
|
||||
@end example
|
||||
@end ignore
|
||||
@ -4999,12 +4997,12 @@ The comment strings can safely contain eight-bit characters.
|
||||
@example
|
||||
define(`a', `b')
|
||||
@result{}
|
||||
«a»
|
||||
@result{}«b»
|
||||
changecom(`«', `»')
|
||||
«a»
|
||||
@result{}«b»
|
||||
changecom(`«', `»')
|
||||
@result{}
|
||||
«a»
|
||||
@result{}«a»
|
||||
«a»
|
||||
@result{}«a»
|
||||
@end example
|
||||
@end ignore
|
||||
If no single character is appropriate, @var{start} and @var{end} can be
|
||||
@ -5552,10 +5550,10 @@ parameters.
|
||||
@comment status: 1
|
||||
@example
|
||||
include(`n')
|
||||
@error{}m4:stdin:1: include: cannot open `n': No such file or directory
|
||||
@error{}m4:stdin:1: include: cannot open 'n': No such file or directory
|
||||
@result{}
|
||||
include()
|
||||
@error{}m4:stdin:2: include: cannot open `': No such file or directory
|
||||
@error{}m4:stdin:2: include: cannot open '': No such file or directory
|
||||
@result{}
|
||||
sinclude(`n')
|
||||
@result{}
|
||||
@ -6622,7 +6620,7 @@ resulting @samp{b} is not further remapped to @samp{g}; the @samp{d} and
|
||||
@comment rendering right in both info and dvi.
|
||||
|
||||
@example
|
||||
translit(`«abc~', `~-»')
|
||||
translit(`«abc~', `~-»')
|
||||
@result{}abc
|
||||
@end example
|
||||
|
||||
@ -6891,14 +6889,14 @@ Likewise, escape sequences are not yet recognized.
|
||||
|
||||
@example
|
||||
format(`%p', `0')
|
||||
@error{}m4:stdin:1: warning: format: unrecognized specifier in `%p'
|
||||
@error{}m4:stdin:1: warning: format: unrecognized specifier in '%p'
|
||||
@result{}p
|
||||
format(`%*d', `')
|
||||
@error{}m4:stdin:2: warning: format: empty string treated as 0
|
||||
@error{}m4:stdin:2: warning: format: too few arguments: 2 < 3
|
||||
@result{}0
|
||||
format(`%.1f', `2a')
|
||||
@error{}m4:stdin:3: warning: format: non-numeric argument `2a'
|
||||
@error{}m4:stdin:3: warning: format: non-numeric argument '2a'
|
||||
@result{}2.0
|
||||
@end example
|
||||
|
||||
@ -7029,10 +7027,10 @@ eval(`2 = 2')
|
||||
@error{}m4:stdin:1: warning: eval: recommend ==, not =, for equality
|
||||
@result{}1
|
||||
eval(`++0')
|
||||
@error{}m4:stdin:2: warning: eval: invalid operator: `++0'
|
||||
@error{}m4:stdin:2: warning: eval: invalid operator: '++0'
|
||||
@result{}
|
||||
eval(`0 |= 1')
|
||||
@error{}m4:stdin:3: warning: eval: invalid operator: `0 |= 1'
|
||||
@error{}m4:stdin:3: warning: eval: invalid operator: '0 |= 1'
|
||||
@result{}
|
||||
@end example
|
||||
|
||||
@ -7075,12 +7073,12 @@ eval(`+ + - ~ ! ~ 0')
|
||||
eval(`2 || 1 / 0')
|
||||
@result{}1
|
||||
eval(`0 || 1 / 0')
|
||||
@error{}m4:stdin:9: warning: eval: divide by zero: `0 || 1 / 0'
|
||||
@error{}m4:stdin:9: warning: eval: divide by zero: '0 || 1 / 0'
|
||||
@result{}
|
||||
eval(`0 && 1 % 0')
|
||||
@result{}0
|
||||
eval(`2 && 1 % 0')
|
||||
@error{}m4:stdin:11: warning: eval: modulo by zero: `2 && 1 % 0'
|
||||
@error{}m4:stdin:11: warning: eval: modulo by zero: '2 && 1 % 0'
|
||||
@result{}
|
||||
@end example
|
||||
|
||||
@ -7102,9 +7100,9 @@ eval(`2 ** 0')
|
||||
@result{}1
|
||||
eval(`0 ** 0')
|
||||
@result{}
|
||||
@error{}m4:stdin:5: warning: eval: divide by zero: `0 ** 0'
|
||||
@error{}m4:stdin:5: warning: eval: divide by zero: '0 ** 0'
|
||||
eval(`4 ** -2')
|
||||
@error{}m4:stdin:6: warning: eval: negative exponent: `4 ** -2'
|
||||
@error{}m4:stdin:6: warning: eval: negative exponent: '4 ** -2'
|
||||
@result{}
|
||||
eval(`0 ? 2 : 3')
|
||||
@result{}3
|
||||
@ -7155,7 +7153,7 @@ square(square(`5')` + 1')
|
||||
define(`foo', `666')
|
||||
@result{}
|
||||
eval(`foo / 6')
|
||||
@error{}m4:stdin:11: warning: eval: bad expression: `foo / 6'
|
||||
@error{}m4:stdin:11: warning: eval: bad expression: 'foo / 6'
|
||||
@result{}
|
||||
eval(foo / 6)
|
||||
@result{}111
|
||||
@ -8082,7 +8080,7 @@ ifdef(`__unix__', ,
|
||||
changequote(`[', `]')dnl
|
||||
syscmd([printf '#bogus\nV1\nF3,4\nlenlen\0\n' > in.m4f \
|
||||
&& ']__program__[' -R in.m4f])sysval
|
||||
@error{}m4:in.m4f:4: ill-formed frozen file, invalid builtin `len\0' encountered
|
||||
@error{}m4:in.m4f:4: ill-formed frozen file, invalid builtin 'len\0' encountered
|
||||
@result{}1
|
||||
syscmd([rm -f in.m4f])sysval
|
||||
@result{}0
|
||||
@ -8638,7 +8636,7 @@ forloop(`', `1', `2', ` odd iterator name')
|
||||
forloop(`i', `5 + 5', `0xc', ` 0x`'eval(i, `16')')
|
||||
@result{} 0xa 0xb 0xc
|
||||
forloop(`i', `a', `b', `non-numeric bounds')
|
||||
@error{}m4:stdin:6: warning: eval: bad input: `(a) <= (b)'
|
||||
@error{}m4:stdin:6: warning: eval: bad input: '(a) <= (b)'
|
||||
@result{}
|
||||
@end example
|
||||
|
||||
@ -9614,7 +9612,7 @@ macro is introduced the first time.
|
||||
@bye
|
||||
|
||||
@c Local Variables:
|
||||
@c coding: iso-8859-1
|
||||
@c coding: utf-8
|
||||
@c fill-column: 72
|
||||
@c ispell-local-dictionary: "american"
|
||||
@c indent-tabs-mode: nil
|
||||
Binary file not shown.
2
gnulib
2
gnulib
@ -1 +1 @@
|
||||
Subproject commit 3e38c274dbac15d2288577a4b9da6e2f4a83ab5b
|
||||
Subproject commit 3773db653242ab7165cd300295c27405e4f9cc79
|
||||
@ -1,21 +1,110 @@
|
||||
# Copyright (C) 2002-2010 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002-2025 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software, distributed under the terms of the GNU
|
||||
# General Public License. As a special exception to the GNU General
|
||||
# Public License, this file may be distributed as part of a program
|
||||
# that contains a configuration script generated by Autoconf, under
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this file. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception to the GNU General Public License,
|
||||
# this file may be distributed as part of a program that
|
||||
# contains a configuration script generated by Autoconf, under
|
||||
# the same distribution terms as the rest of that program.
|
||||
#
|
||||
# Generated by gnulib-tool.
|
||||
#
|
||||
# This file represents the specification of how gnulib-tool is used.
|
||||
# It acts as a cache: It is written and read by gnulib-tool.
|
||||
# In projects using CVS, this file is meant to be stored in CVS,
|
||||
# like the configure.ac and various Makefile.am files.
|
||||
# In projects that use version control, this file is meant to be put under
|
||||
# version control, like the configure.ac and various Makefile.am files.
|
||||
|
||||
|
||||
# Specification in the form of a command-line invocation:
|
||||
# gnulib-tool --import --dir=. --local-dir=local --lib=libm4 --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --with-c++-tests --makefile-name=gnulib.mk --no-libtool --macro-prefix=M4 announce-gen assert autobuild avltree-oset binary-io bitrotate clean-temp cloexec close-stream closein config-h dirname error execute fdl-1.3 fflush filenamecat flexmember fopen fopen-safer freadptr freadseek fseeko gendocs getopt-gnu git-version-gen gnu-web-doc-update gnumakefile gnupload gpl-3.0 hash ignore-value intprops maintainer-makefile manywarnings memchr2 memcmp2 memmem mkstemp obstack obstack-printf-posix pipe progname quote regex rename snprintf-posix stdbool stdint stdlib-safer strtod strtol unlocked-io update-copyright vasnprintf-posix verror version-etc version-etc-fsf wait-process xalloc xmemdup0 xoset xprintf xvasprintf-posix
|
||||
# gnulib-tool --import \
|
||||
# --local-dir=local \
|
||||
# --lib=libm4 \
|
||||
# --source-base=lib \
|
||||
# --m4-base=m4 \
|
||||
# --doc-base=doc \
|
||||
# --tests-base=tests \
|
||||
# --aux-dir=build-aux \
|
||||
# --with-tests \
|
||||
# --with-c++-tests \
|
||||
# --makefile-name=gnulib.mk \
|
||||
# --no-conditional-dependencies \
|
||||
# --no-libtool \
|
||||
# --macro-prefix=M4 \
|
||||
# announce-gen \
|
||||
# assert \
|
||||
# autobuild \
|
||||
# avltree-oset \
|
||||
# binary-io \
|
||||
# bitrotate \
|
||||
# clean-temp \
|
||||
# cloexec \
|
||||
# close-stream \
|
||||
# closein \
|
||||
# config-h \
|
||||
# dirname \
|
||||
# error \
|
||||
# execute \
|
||||
# fdl-1.3 \
|
||||
# fflush \
|
||||
# filenamecat \
|
||||
# flexmember \
|
||||
# fopen \
|
||||
# fopen-safer \
|
||||
# freadptr \
|
||||
# freadseek \
|
||||
# fseeko \
|
||||
# gendocs \
|
||||
# getopt-gnu \
|
||||
# git-version-gen \
|
||||
# gnu-web-doc-update \
|
||||
# gnumakefile \
|
||||
# gnupload \
|
||||
# gpl-3.0 \
|
||||
# hash \
|
||||
# ignore-value \
|
||||
# intprops \
|
||||
# maintainer-makefile \
|
||||
# manywarnings \
|
||||
# memchr2 \
|
||||
# memcmp2 \
|
||||
# memmem \
|
||||
# mkstemp \
|
||||
# obstack \
|
||||
# obstack-printf-posix \
|
||||
# progname \
|
||||
# quote \
|
||||
# regex \
|
||||
# rename \
|
||||
# snprintf-posix \
|
||||
# spawn-pipe \
|
||||
# stdbool \
|
||||
# stdint \
|
||||
# stdlib-safer \
|
||||
# strtod \
|
||||
# strtol \
|
||||
# unlocked-io \
|
||||
# update-copyright \
|
||||
# vasnprintf-posix \
|
||||
# verror \
|
||||
# version-etc \
|
||||
# version-etc-fsf \
|
||||
# wait-process \
|
||||
# xalloc \
|
||||
# xmemdup0 \
|
||||
# xoset \
|
||||
# xprintf \
|
||||
# xvasprintf-posix
|
||||
|
||||
# Specification in the form of a few gnulib-tool.m4 macro invocations:
|
||||
gl_LOCAL_DIR([local])
|
||||
@ -61,12 +150,12 @@ gl_MODULES([
|
||||
mkstemp
|
||||
obstack
|
||||
obstack-printf-posix
|
||||
pipe
|
||||
progname
|
||||
quote
|
||||
regex
|
||||
rename
|
||||
snprintf-posix
|
||||
spawn-pipe
|
||||
stdbool
|
||||
stdint
|
||||
stdlib-safer
|
||||
@ -97,3 +186,4 @@ gl_LIB([libm4])
|
||||
gl_MAKEFILE_NAME([gnulib.mk])
|
||||
gl_MACRO_PREFIX([M4])
|
||||
gl_PO_DOMAIN([])
|
||||
gl_WITNESS_C_MACRO([])
|
||||
|
||||
@ -27,8 +27,8 @@
|
||||
#include "execute.h"
|
||||
#include "memchr2.h"
|
||||
#include "memcmp2.h"
|
||||
#include "pipe.h"
|
||||
#include "regex.h"
|
||||
#include "spawn-pipe.h"
|
||||
#include "wait-process.h"
|
||||
|
||||
/* Initialization of builtin and predefined macros. The table
|
||||
@ -1082,7 +1082,7 @@ m4_syscmd (struct obstack *obs M4_GNUC_UNUSED, int argc, macro_arguments *argv)
|
||||
prog_args[2] = cmd;
|
||||
caller = quotearg_style_mem (locale_quoting_style, me->name, me->name_len);
|
||||
errno = 0;
|
||||
status = execute (caller, SYSCMD_SHELL, (char **) prog_args, false,
|
||||
status = execute (caller, SYSCMD_SHELL, prog_args, NULL, NULL, false,
|
||||
false, false, false, true, false, &sig_status);
|
||||
if (sig_status)
|
||||
{
|
||||
@ -1133,7 +1133,7 @@ m4_esyscmd (struct obstack *obs, int argc, macro_arguments *argv)
|
||||
prog_args[2] = cmd;
|
||||
caller = quotearg_style_mem (locale_quoting_style, me->name, me->name_len);
|
||||
errno = 0;
|
||||
child = create_pipe_in (caller, SYSCMD_SHELL, (char **) prog_args,
|
||||
child = create_pipe_in (caller, SYSCMD_SHELL, prog_args, NULL, NULL,
|
||||
NULL, false, true, false, &fd);
|
||||
if (child == -1)
|
||||
{
|
||||
@ -1536,7 +1536,7 @@ mkstemp_helper (struct obstack *obs, const call_info *me, const char *pattern,
|
||||
{
|
||||
close (fd);
|
||||
/* Remove NUL, then finish quote. */
|
||||
obstack_blank (obs, -1);
|
||||
obstack_blank_fast (obs, -1);
|
||||
obstack_grow (obs, curr_quote.str2, curr_quote.len2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -300,7 +300,7 @@ trace_flush (unsigned int start)
|
||||
xfwrite (&base[start], 1, len - start, debug);
|
||||
fputc ('\n', debug);
|
||||
}
|
||||
obstack_blank (&trace, start - len);
|
||||
obstack_blank_fast (&trace, start - len);
|
||||
}
|
||||
|
||||
/* Do pre-argument-collection tracing for the macro call described in
|
||||
|
||||
@ -1845,7 +1845,7 @@ next_token (token_data *td, int *line, struct obstack *obs, bool allow_argv,
|
||||
obstack_object_size (&token_stack), 0, ®s)
|
||||
!= (regoff_t) obstack_object_size (&token_stack))
|
||||
{
|
||||
obstack_blank (&token_stack, -1);
|
||||
obstack_blank_fast (&token_stack, -1);
|
||||
break;
|
||||
}
|
||||
next_char (false, false);
|
||||
|
||||
1
src/m4.h
1
src/m4.h
@ -52,7 +52,6 @@
|
||||
#include "stdlib--.h"
|
||||
#include "unistd--.h"
|
||||
#include "vasnprintf.h"
|
||||
#include "verror.h"
|
||||
#include "xalloc.h"
|
||||
#include "xmemdup0.h"
|
||||
#include "xprintf.h"
|
||||
|
||||
@ -225,7 +225,7 @@ m4_tmpfile (int divnum)
|
||||
}
|
||||
name = m4_tmpname (divnum);
|
||||
register_temp_file (output_temp_dir, name);
|
||||
file = fopen_temp (name, O_BINARY ? "wb+" : "w+");
|
||||
file = fopen_temp (name, O_BINARY ? "wb+" : "w+", false);
|
||||
if (file == NULL)
|
||||
{
|
||||
unregister_temp_file (output_temp_dir, name);
|
||||
@ -266,7 +266,7 @@ m4_tmpopen (int divnum, bool reread)
|
||||
}
|
||||
name = m4_tmpname (divnum);
|
||||
/* We need update mode, to avoid truncation. */
|
||||
file = fopen_temp (name, O_BINARY ? "rb+" : "r+");
|
||||
file = fopen_temp (name, O_BINARY ? "rb+" : "r+", false);
|
||||
if (file == NULL)
|
||||
m4_error (EXIT_FAILURE, errno, NULL,
|
||||
_("cannot create temporary file for diversion"));
|
||||
|
||||
@ -257,7 +257,7 @@ lookup_symbol (const char *name, size_t len, symbol_lookup mode)
|
||||
|
||||
if (old == entry)
|
||||
{
|
||||
old = (symbol *) hash_delete (symtab, entry);
|
||||
old = (symbol *) hash_remove (symtab, entry);
|
||||
assert (entry == old);
|
||||
sym->stack = sym;
|
||||
entry = (symbol *) hash_insert (symtab, sym);
|
||||
@ -347,7 +347,7 @@ lookup_symbol (const char *name, size_t len, symbol_lookup mode)
|
||||
old->stack = NULL;
|
||||
free_symbol (old);
|
||||
}
|
||||
sym = (symbol *) hash_delete (symtab, entry);
|
||||
sym = (symbol *) hash_remove (symtab, entry);
|
||||
assert (sym == entry);
|
||||
sym->stack = NULL;
|
||||
free_symbol (sym);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user