escape properly the file names in #line for printer/destructor

Reported by Jannick.
http://lists.gnu.org/archive/html/bug-bison/2017-05/msg00001.html

"Amusingly" enough, we have the same problem with %defines when the
parser file name has backslashes or quotes: we generate #includes with
an incorrect C string.

* src/output.c (prepare_symbol_definitions): Escape properly the file
names before passing them to M4.
* data/bison.m4, data/lalr1.cc: Don't simply put the file name between
two quotes (that should have been strong enough a smell...), expect
the string to be properly quoted.
* tests/synclines.at: New tests to check this.
This commit is contained in:
Akim Demaille
2018-08-18 09:59:48 +02:00
parent cb4e7ecefa
commit adf0425d11
6 changed files with 101 additions and 3 deletions

1
THANKS
View File

@@ -64,6 +64,7 @@ Guido Trentalancia trentalg@aston.ac.uk
H. Merijn Brand h.m.brand@hccnet.nl
Hans Åberg haberg-1@telia.com
Jan Nieuwenhuizen janneke@gnu.org
Jannick thirdedition@gmx.net
Jerry Quinn jlquinn@optonline.net
Jesse Thilo jthilo@gnu.org
Jim Kent jkent@arch.sel.sony.com