diff --git a/src/fixits.c b/src/fixits.c index 769b8508..b0afa443 100644 --- a/src/fixits.c +++ b/src/fixits.c @@ -161,6 +161,21 @@ fixits_run (void) break; ++offset; } + /* If erasing the content of a full line, also remove the + end-of-line. */ + if (f->fix[0] == 0 && f->location.start.column == 1) + { + int c = getc (in); + if (c == EOF) + break; + else if (c == '\n') + { + ++line; + offset = 1; + } + else + ungetc (c, in); + } } /* Paste the rest of the file. */ { diff --git a/tests/input.at b/tests/input.at index 40ba92bd..a61fcf2b 100644 --- a/tests/input.at +++ b/tests/input.at @@ -2586,7 +2586,6 @@ AT_CHECK([cat input.y], [], %output "foo" %pure-parser %token-table - %glr-parser %define api.prefix {bar} %% @@ -2594,7 +2593,7 @@ exp : '0' ]]) AT_BISON_CHECK([[-fcaret input.y]], [[1]], [], -[[input.y:28.1-24: error: %define variable 'api.prefix' redefined +[[input.y:27.1-24: error: %define variable 'api.prefix' redefined %define api.prefix {bar} ^~~~~~~~~~~~~~~~~~~~~~~~ input.y:19.1-24: previous definition