mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 09:13:04 +00:00
diagnostics: handle -fno-caret in the called functions
Don't force callers of location_caret to have to deal with flags that disable it. * src/location.h, src/location.c (location_caret) (location_caret_suggestion): Early return if disabled. * src/complain.c: Simplify.
This commit is contained in:
@@ -464,7 +464,7 @@ error_message (const location *loc, int *indent, warnings flags,
|
|||||||
{
|
{
|
||||||
putc ('\n', stderr);
|
putc ('\n', stderr);
|
||||||
flush (stderr);
|
flush (stderr);
|
||||||
if (loc && feature_flag & feature_caret && !(flags & no_caret))
|
if (loc && !(flags & no_caret))
|
||||||
location_caret (*loc, style, stderr);
|
location_caret (*loc, style, stderr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -555,8 +555,7 @@ deprecated_directive (location const *loc, char const *old, char const *upd)
|
|||||||
complain (loc, Wdeprecated,
|
complain (loc, Wdeprecated,
|
||||||
_("deprecated directive: %s, use %s"),
|
_("deprecated directive: %s, use %s"),
|
||||||
quote (old), quote_n (1, upd));
|
quote (old), quote_n (1, upd));
|
||||||
if (feature_flag & feature_caret)
|
location_caret_suggestion (*loc, upd, stderr);
|
||||||
location_caret_suggestion (*loc, upd, stderr);
|
|
||||||
/* Register updates only if -Wdeprecated is enabled. */
|
/* Register updates only if -Wdeprecated is enabled. */
|
||||||
fixits_register (loc, upd);
|
fixits_register (loc, upd);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -400,6 +400,8 @@ caret_set_column (int col)
|
|||||||
void
|
void
|
||||||
location_caret (location loc, const char *style, FILE *out)
|
location_caret (location loc, const char *style, FILE *out)
|
||||||
{
|
{
|
||||||
|
if (!(feature_flag & feature_caret))
|
||||||
|
return;
|
||||||
if (!loc.start.line)
|
if (!loc.start.line)
|
||||||
return;
|
return;
|
||||||
if (!caret_set_file (loc.start.file))
|
if (!caret_set_file (loc.start.file))
|
||||||
@@ -486,6 +488,8 @@ location_caret (location loc, const char *style, FILE *out)
|
|||||||
void
|
void
|
||||||
location_caret_suggestion (location loc, const char *s, FILE *out)
|
location_caret_suggestion (location loc, const char *s, FILE *out)
|
||||||
{
|
{
|
||||||
|
if (!(feature_flag & feature_caret))
|
||||||
|
return;
|
||||||
const char *style = "fixit-insert";
|
const char *style = "fixit-insert";
|
||||||
fprintf (out, " | %*s",
|
fprintf (out, " | %*s",
|
||||||
loc.start.column - 1 - caret_info.skip
|
loc.start.column - 1 - caret_info.skip
|
||||||
|
|||||||
@@ -126,12 +126,12 @@ void caret_init (void);
|
|||||||
left-over by the usage of location_caret. */
|
left-over by the usage of location_caret. */
|
||||||
void caret_free (void);
|
void caret_free (void);
|
||||||
|
|
||||||
/* Quote the line containing LOC onto OUT. Highlight the part of LOC
|
/* If -fcaret is enabled, quote the line containing LOC onto OUT.
|
||||||
with the color STYLE. */
|
Highlight the part of LOC with the color STYLE. */
|
||||||
void location_caret (location loc, const char* style, FILE *out);
|
void location_caret (location loc, const char* style, FILE *out);
|
||||||
|
|
||||||
/* Display a suggestion of replacement for LOC with S. To call after
|
/* If -fcaret is enabled, display a suggestion of replacement for LOC
|
||||||
location_caret. */
|
with S. To call after location_caret. */
|
||||||
void location_caret_suggestion (location loc, const char *s, FILE *out);
|
void location_caret_suggestion (location loc, const char *s, FILE *out);
|
||||||
|
|
||||||
/* Return -1, 0, 1, depending whether a is before, equal, or
|
/* Return -1, 0, 1, depending whether a is before, equal, or
|
||||||
|
|||||||
Reference in New Issue
Block a user