]> git.saurik.com Git - bison.git/commitdiff
* src/location.c: Include <quotearg.h>.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 7 Dec 2002 05:57:32 +0000 (05:57 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 7 Dec 2002 05:57:32 +0000 (05:57 +0000)
(empty_location): Now const.
(location_print): New function.  Follow the recommendation of the
GNU Coding Standards for locations that span file boundaries.

src/location.c

index b4361cd62ce0a39befbbad053dcc9d92fea8dea4..1d95d21531076eec66ebe271f60b4d428913b1b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Locations for Bison
-   Copyright (C) 2002  Free Software Foundation, Inc.
+   Copyright (C) 2002 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
 #include "system.h"
 #include "location.h"
+#include <quotearg.h>
 
-location_t empty_location = { NULL, 0, 0, 0, 0 };
+location_t const empty_location;
+
+/* Output to OUT the location LOC.
+   Warning: it uses quotearg's slot 3.  */
+void
+location_print (FILE *out, location_t loc)
+{
+  fprintf (out, "%s:%d.%d",
+          quotearg_n_style (3, escape_quoting_style, loc.start.file),
+          loc.start.line, loc.start.column);
+
+  if (loc.start.file != loc.end.file)
+    fprintf (out, "-%s:%d.%d",
+            quotearg_n_style (3, escape_quoting_style, loc.end.file),
+            loc.end.line, loc.end.column - 1);
+  else if (loc.start.line < loc.end.line)
+    fprintf (out, "-%d.%d", loc.end.line, loc.end.column - 1);
+  else if (loc.start.column < loc.end.column - 1)
+    fprintf (out, "-%d", loc.end.column - 1);
+}