m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: branch-1_4 off-by-one in line reporting


From: Eric Blake
Subject: Re: branch-1_4 off-by-one in line reporting
Date: Thu, 12 Oct 2006 14:06:02 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Eric Blake <ebb9 <at> byu.net> writes:

> 
> Eric Blake <ebb9 <at> byu.net> writes:
> 
> > 
> > Oops - for every line except line 1, if an unterminated quote or comment 
> began 
> > immediately after \n, the error message is off by one.
> 
> And that introduced a regression:
> 
> $ printf 'dnl ignored' > foo
> $ m4
> include(foo) still ignored
> __file__
> foo

Still not quite right.  There is a difference between a macro that supplies the 
include and a newline, vs. calling include directly with the newline coming 
from the input file.

2006-10-12  Eric Blake  <address@hidden>

        * doc/m4.texinfo (Location): Fix typo in previous commit.
        (Changeword): Catch one more case.
        * src/input.c (skip_line): Fix case when outer file used macro to
        supply the \n.

Index: doc/m4.texinfo
===================================================================
RCS file: /sources/m4/m4/doc/m4.texinfo,v
retrieving revision 1.1.1.1.2.82
diff -u -r1.1.1.1.2.82 m4.texinfo
--- doc/m4.texinfo      11 Oct 2006 23:34:21 -0000      1.1.1.1.2.82
+++ doc/m4.texinfo      12 Oct 2006 14:03:55 -0000
@@ -2897,14 +2897,20 @@
 ')m4exit(`77')')dnl
 define(`bar
 ', defn(`dnl'))dnl
+define(`baz', `dnl
+include(`foo') ignored
+dnl')dnl
 changeword(`\([_a-zA-Z][_a-zA-Z0-9]*\|bar
 \)')
 @result{}
 __file__:__line__
address@hidden:7
-include(`foo') still ignored
address@hidden:10
+include(`foo') ignored
 __file__:__line__
address@hidden:9
address@hidden:12
+baz ignored
+__file__:__line__
address@hidden:14
 define(`bar
 ', defn(`__file__'))
 @result{}
@@ -2916,7 +2922,7 @@
 include(`foo')
 @result{}1
 __file__:__line__
address@hidden:16
address@hidden:21
 @end example
 @end ignore
 
@@ -4477,7 +4483,7 @@
 though wrapped text came from line 0 of the file ``''.
 
 @example
-define(`echo', `$@')
+define(`echo', `$@@')
 @result{}
 define(`foo', `echo(__line__
 __line__)')
Index: src/input.c
===================================================================
RCS file: /sources/m4/m4/src/Attic/input.c,v
retrieving revision 1.1.1.1.2.25
diff -u -r1.1.1.1.2.25 input.c
--- src/input.c 11 Oct 2006 23:34:22 -0000      1.1.1.1.2.25
+++ src/input.c 12 Oct 2006 14:03:55 -0000
@@ -620,7 +620,7 @@
       i->type = INPUT_STRING_WRAP;
       i->u.u_s.string = "";
       i->u.u_s.name = current_file;
-      i->u.u_s.lineno = current_line + 1;  /* Account for parsed `\n'.  */
+      i->u.u_s.lineno = current_line + start_of_input_line;
       isp = i;
     }
 }







reply via email to

[Prev in Thread] Current Thread [Next in Thread]