fixits: avoid generating empty lines

* src/fixits.c (fixits_run): If erase the content of a line, also
erase the following \n.
* tests/input.at (Deprecated directives): Update expectations.
This commit is contained in:
Akim Demaille
2019-01-15 18:20:37 +01:00
parent a634aad9e6
commit b7e0d3131d
2 changed files with 16 additions and 2 deletions

View File

@@ -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. */
{

View File

@@ -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