summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2019-10-26 10:01:46 +0200
committerAkim Demaille <akim.demaille@gmail.com>2019-10-26 10:38:39 +0200
commit3be912e4af90a9818a78239daaee4a15bdbcda06 (patch)
treef38c7a42946002b3a9c6e8e1af2553be079f6664
parent4b4e532748af87a0ec4d5a7fa38bafce6b24fce7 (diff)
downloadbison-3be912e4af90a9818a78239daaee4a15bdbcda06.tar.gz
parser: use grammar_file instead of current_file
* src/parse-gram (%initial-action): here. (handle_skeleton): Don't depend on the current file name to look for "local" skeletons (subject to changes coming from "#lines"): depend only on the initial file name, the one given on the command line.
-rw-r--r--src/parse-gram.y12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/parse-gram.y b/src/parse-gram.y
index d5399c75..ccc3c315 100644
--- a/src/parse-gram.y
+++ b/src/parse-gram.y
@@ -136,8 +136,8 @@
{
/* Bison's grammar can initial empty locations, hence a default
location is needed. */
- boundary_set (&@$.start, current_file, 1, 1, 1);
- boundary_set (&@$.end, current_file, 1, 1, 1);
+ boundary_set (&@$.start, grammar_file, 1, 1, 1);
+ boundary_set (&@$.end, grammar_file, 1, 1, 1);
}
/* Define the tokens together with their human representation. */
@@ -1033,16 +1033,16 @@ handle_skeleton (location const *loc, char const *skel)
char const *skeleton_user = skel;
if (strchr (skeleton_user, '/'))
{
- size_t dir_length = strlen (current_file);
- while (dir_length && current_file[dir_length - 1] != '/')
+ size_t dir_length = strlen (grammar_file);
+ while (dir_length && grammar_file[dir_length - 1] != '/')
--dir_length;
- while (dir_length && current_file[dir_length - 1] == '/')
+ while (dir_length && grammar_file[dir_length - 1] == '/')
--dir_length;
char *skeleton_build =
xmalloc (dir_length + 1 + strlen (skeleton_user) + 1);
if (dir_length > 0)
{
- memcpy (skeleton_build, current_file, dir_length);
+ memcpy (skeleton_build, grammar_file, dir_length);
skeleton_build[dir_length++] = '/';
}
strcpy (skeleton_build + dir_length, skeleton_user);