diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2019-10-26 10:01:46 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2019-10-26 10:38:39 +0200 |
commit | 3be912e4af90a9818a78239daaee4a15bdbcda06 (patch) | |
tree | f38c7a42946002b3a9c6e8e1af2553be079f6664 | |
parent | 4b4e532748af87a0ec4d5a7fa38bafce6b24fce7 (diff) | |
download | bison-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.y | 12 |
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); |