uniqstr wasn't being used for handle_syncline like it should.

This commit is contained in:
Paul Eggert
2004-08-08 04:57:06 +00:00
parent c9cbf7c58e
commit dca81a78f8
3 changed files with 13 additions and 4 deletions

View File

@@ -1,3 +1,10 @@
2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
* src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
* src/location.h (struct): The file member is a uniqstr.
(equal_boundaries): Use UNIQSTR_EQ for comparison.
2004-07-22 Paul Eggert <eggert@cs.ucla.edu> 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
Fix bug with non-%union parsers that have printers or destructors, Fix bug with non-%union parsers that have printers or destructors,

View File

@@ -1,5 +1,5 @@
/* Locations for Bison /* Locations for Bison
Copyright (C) 2002 Free Software Foundation, Inc. Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler. This file is part of Bison, the GNU Compiler Compiler.
@@ -21,11 +21,13 @@
#ifndef LOCATION_H_ #ifndef LOCATION_H_
# define LOCATION_H_ # define LOCATION_H_
# include "uniqstr.h"
/* A boundary between two characters. */ /* A boundary between two characters. */
typedef struct typedef struct
{ {
/* The name of the file that contains the boundary. */ /* The name of the file that contains the boundary. */
char const *file; uniqstr file;
/* The (origin-1) line that contains the boundary. */ /* The (origin-1) line that contains the boundary. */
int line; int line;
@@ -42,7 +44,7 @@ equal_boundaries (boundary a, boundary b)
{ {
return (a.column == b.column return (a.column == b.column
&& a.line == b.line && a.line == b.line
&& a.file == b.file); && UNIQSTR_EQ (a.file, b.file));
} }
/* A location, that is, a region of source code. */ /* A location, that is, a region of source code. */

View File

@@ -1003,7 +1003,7 @@ handle_syncline (char *args)
const char *file = NULL; const char *file = NULL;
file = strchr (args, '"') + 1; file = strchr (args, '"') + 1;
*strchr (file, '"') = 0; *strchr (file, '"') = 0;
scanner_cursor.file = current_file = xstrdup (file); scanner_cursor.file = current_file = uniqstr_new (file);
scanner_cursor.line = lineno; scanner_cursor.line = lineno;
scanner_cursor.column = 1; scanner_cursor.column = 1;
} }