]> git.saurik.com Git - bison.git/commitdiff
Locations without columns for command line arguments.
authorAkim Demaille <demaille@gostai.com>
Tue, 29 Jul 2008 10:45:21 +0000 (12:45 +0200)
committerAkim Demaille <demaille@gostai.com>
Fri, 7 Nov 2008 20:38:23 +0000 (21:38 +0100)
* src/location.c (location_print): Don't display negative columns.
* src/location.h: Document this.

ChangeLog
src/location.c
src/location.h

index 9561d4ea80d2a7a2692312854f34083bf0abed45..bf6b6d8aa9cd089e68d6c9cb1ff7b10baf460989 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
+
 2008-11-07  Akim Demaille  <demaille@gostai.com>
 
        Fix --help.
 2008-11-07  Akim Demaille  <demaille@gostai.com>
 
        Fix --help.
index 57adf1882073fef954f01f14e554c9a4406f9f7c..98627a559c2c02204d43c55e33b422dd7b12f412 100644 (file)
@@ -1,5 +1,5 @@
 /* Locations for Bison
 /* 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.
 
 
    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;
 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),
           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",
 
   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);
             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);
 }
 
     fprintf (out, "-%d", end_col);
 }
 
index 785947ef0a738923c045d7d562619219ea11e5a8..efd256dd9529b40f10c15d2479073f34a8378136 100644 (file)
@@ -1,5 +1,5 @@
 /* Locations for Bison
 /* 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.
 
 
    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;
 
      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;
   int column;
 
 } boundary;