bison-patches
[Top][All Lists]
Advanced

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

[PATCH] Locations without columns for command line arguments.


From: Akim Demaille
Subject: [PATCH] Locations without columns for command line arguments.
Date: Fri, 07 Nov 2008 20:38:30 -0000

        * src/location.c (location_print): Don't display negative columns.
        * src/location.h: Document this.
---
 ChangeLog      |    6 ++++++
 src/location.c |   10 ++++++----
 src/location.h |   12 ++++++++----
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9561d4e..bf6b6d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2008-11-07  Akim Demaille  <address@hidden>
 
+       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  <address@hidden>
+
        Fix --help.
        * src/getargs.c (usage): Fix help string for -W.
 
diff --git a/src/location.c b/src/location.c
index 57adf18..98627a5 100644
--- a/src/location.c
+++ b/src/location.c
@@ -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);
 }
 
diff --git a/src/location.h b/src/location.h
index 785947e..efd256d 100644
--- a/src/location.h
+++ b/src/location.h
@@ -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;
-- 
1.6.0.2.588.g3102





reply via email to

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