Locations without columns for command line arguments.

* src/location.c (location_print): Don't display negative columns.
	* src/location.h: Document this.
(cherry picked from commit 56c5eca973)
This commit is contained in:
Akim Demaille
2008-07-29 12:45:21 +02:00
committed by Joel E. Denny
parent 015e86a7b2
commit 5d3a1ecbbe
3 changed files with 20 additions and 8 deletions

View File

@@ -1,3 +1,9 @@
2008-11-07 Akim Demaille <demaille@gostai.com>
Locations without columns for command line arguments.
* src/location.c (location_print): Don't display negative columns.
* src/location.h: Document this.
2009-02-03 Joel E. Denny <jdenny@ces.clemson.edu>
Add reminder about uploading public key to keys.gnupg.net.

View File

@@ -1,5 +1,5 @@
/* Locations for Bison
Copyright (C) 2002, 2005, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 2002, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -101,9 +101,11 @@ void
location_print (FILE *out, location loc)
{
int end_col = 0 < loc.end.column ? loc.end.column - 1 : 0;
fprintf (out, "%s:%d.%d",
fprintf (out, "%s:%d",
quotearg_n_style (3, escape_quoting_style, loc.start.file),
loc.start.line, loc.start.column);
loc.start.line);
if (0 <= loc.start.column)
fprintf (out, ".%d", loc.start.column);
if (loc.start.file != loc.end.file)
fprintf (out, "-%s:%d.%d",
@@ -111,7 +113,7 @@ location_print (FILE *out, location loc)
loc.end.line, end_col);
else if (loc.start.line < loc.end.line)
fprintf (out, "-%d.%d", loc.end.line, end_col);
else if (loc.start.column < end_col)
else if (0 <= loc.start.column && loc.start.column < end_col)
fprintf (out, "-%d", end_col);
}

View File

@@ -1,5 +1,5 @@
/* Locations for Bison
Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -31,9 +31,13 @@ typedef struct
If this is INT_MAX, the line number has overflowed. */
int line;
/* The (origin-1) column just after the boundary. This is neither a
byte count, nor a character count; it is a column count.
If this is INT_MAX, the column number has overflowed. */
/* If nonnegative, the (origin-1) column just after the boundary.
This is neither a byte count, nor a character count; it is a
column count. If this is INT_MAX, the column number has
overflowed.
Meaningless and not displayed if negative.
*/
int column;
} boundary;