Re: argv_ref patch 21: push builtin tokens through $@ and m4wrap
Eric Blake <[email protected]>
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <[email protected]> |
Eric Blake <ebb9 <at> byu.net> writes: > The first provides about 1.5% speedup in > execution, by adding a sentinel at the end of the input stack to reduce > the number of branches encountered when deciding, for each input token, > whether end of input had been reached yet. And caused a regression in branch-1.6 (fortunately, not in any released version). What's sad is that the master branch testsuite caught this regression, and I patched it there, but forgot to backport it to the branch until now. Pre-patch: $ echo dnl | m4 -di m4debug: input read from stdin m4debug: input reverted to , line 0 Pre-regression, and post-patch: $ echo dnl | build/src/m4 -di m4debug: input read from stdin m4debug: input exhausted While fixing it, I also noticed that some examples in the 1.4.11 manual, when executed from the command line, do not give the same results as what the manual claims they will. From f87a1e3fe98dd9bf9c746f24a0e8d18958c693e3 Mon Sep 17 00:00:00 2001 From: Eric Blake <[email protected]> Date: Thu, 24 Apr 2008 16:27:16 -0600 Subject: [PATCH] Fix debugmode regression from 2008-04-14. * src/input.c (pop_input): Fix -di output on end of input. * doc/m4.texinfo (Debug Levels): Test this behavior. (Changeword, Location): Correct examples. * checks/check-them (examples): Update to account for recommended location for running tests. * doc/m4.texinfo (Debug Levels): Test this behavior. Signed-off-by: Eric Blake <[email protected]> --- ChangeLog | 8 ++++++++ checks/check-them | 6 +++--- doc/m4.texinfo | 21 +++++++++++++++++++-- src/input.c | 2 +- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d40af2c..1454e02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2008-04-24 Eric Blake <[email protected]> + Fix debugmode regression from 2008-04-14. + * src/input.c (pop_input): Fix -di output on end of input. + * doc/m4.texinfo (Debug Levels): Test this behavior. + (Changeword, Location): Correct examples. + * checks/check-them (examples): Update to account for recommended + location for running tests. + * doc/m4.texinfo (Debug Levels): Test this behavior. + Fix debugmode regression from 2008-02-18. * src/m4.h (DEBUG_TRACE_VERBOSE): Make -dV verbose again. * NEWS: Document this fix. diff --git a/checks/check-them b/checks/check-them index 0a697f5..7fba1d6 100755 --- a/checks/check-them +++ b/checks/check-them @@ -92,7 +92,7 @@ do xoutfile=`sed -n 's/^dnl @ expected output: //p' "$file"` if test -z "$xoutfile" ; then - sed -e '/^dnl @result{}/!d' -e 's///' -e "s|\.\./examples|$examples|" \ + sed -e '/^dnl @result{}/!d' -e 's///' -e "s|examples/|$examples/|" \ "$file" > $xout else cp "$examples/$xoutfile" $xout @@ -101,10 +101,10 @@ do xerrfile=`sed -n 's/^dnl @ expected error: //p' "$file"` if test -z "$xerrfile" ; then sed '/^dnl @error{}/!d - s///; '"s|^m4:|$m4name:|; s|\.\./examples|$examples|" \ + s///; '"s|^m4:|$m4name:|; s|examples/|$examples/|" \ "$file" > $xerr else - sed "s|^m4:|$m4name:|; s|\.\./examples|$examples|" \ + sed "s|^m4:|$m4name:|; s|examples/|$examples/|" \ "$examples/$xerrfile" > $xerr fi diff --git a/doc/m4.texinfo b/doc/m4.texinfo index 05b349f..0da6b00 100644 --- a/doc/m4.texinfo +++ b/doc/m4.texinfo @@ -3808,6 +3808,23 @@ indir(`echo', defn(`changequote')) @result{} @end example +This example shows the effects of the debug flags that are not related +to macro tracing. + +@comment examples +@comment options: -dip +@example +$ @kbd{m4 -dip -I examples} +@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 +@result{}bar +@error{}m4debug: input reverted to stdin, line 1 +^D +@error{}m4debug: input exhausted +@end example + @node Debug Output @section Saving debugging output @@ -4475,7 +4492,7 @@ define(`bar ', defn(`__file__')) @result{} include(`foo') -@result{}../examples/foo +@result{}examples/foo define(`bar ', defn(`__line__')) @result{} @@ -6616,7 +6633,7 @@ foo @result{}foo called at stdin:2 include(`incl.m4') @result{}Include file start -@result{}foo called at ../examples/incl.m4:2 +@result{}foo called at examples/incl.m4:2 @result{}Include file end @result{} @end example diff --git a/src/input.c b/src/input.c index e7c819c..aacab61 100644 --- a/src/input.c +++ b/src/input.c @@ -657,7 +657,7 @@ pop_input (bool cleanup) return false; if (debug_level & DEBUG_TRACE_INPUT) { - if (tmp) + if (tmp != &input_eof) DEBUG_MESSAGE2 ("input reverted to %s, line %d", tmp->file, tmp->line); else -- 1.5.5.1