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; break;
++offset; ++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. */ /* Paste the rest of the file. */
{ {

View File

@@ -2586,7 +2586,6 @@ AT_CHECK([cat input.y], [],
%output "foo" %output "foo"
%pure-parser %pure-parser
%token-table %token-table
%glr-parser %glr-parser
%define api.prefix {bar} %define api.prefix {bar}
%% %%
@@ -2594,7 +2593,7 @@ exp : '0'
]]) ]])
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [], 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} %define api.prefix {bar}
^~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
input.y:19.1-24: previous definition input.y:19.1-24: previous definition