]> git.saurik.com Git - bison.git/blobdiff - src/location.c
Sync.
[bison.git] / src / location.c
index b4361cd62ce0a39befbbad053dcc9d92fea8dea4..8c235bbbf98a737385b1d6be57b5dcd2e5745cc3 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.
 
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "system.h"
+
+#include <quotearg.h>
+
 #include "location.h"
 
-location_t empty_location = { NULL, 0, 0, 0, 0 };
+location const empty_location;
+
+/* Output to OUT the location LOC.
+   Warning: it uses quotearg's slot 3.  */
+void
+location_print (FILE *out, location 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);
+}