diagnostics: factor the deprecated directive message

* src/complain.h, src/complain.c (deprecated_directive): New.
* src/muscle-tab.c: Use it.
This commit is contained in:
Akim Demaille
2012-12-15 21:54:17 +01:00
parent 55439a1cea
commit 1dc927a7d4
3 changed files with 20 additions and 3 deletions

View File

@@ -28,6 +28,7 @@
#include "complain.h"
#include "files.h"
#include "getargs.h"
#include "quote.h"
warnings warnings_flag =
Wconflicts_sr | Wconflicts_rr | Wdeprecated | Wother;
@@ -188,4 +189,18 @@ complain_args (location const *loc, warnings w, unsigned *indent,
complain (loc, fatal, "too many arguments for complains");
break;
}
}
void
deprecated_directive (location const *loc, char const *old, char const *upd)
{
if (feature_flag & feature_caret)
complain (loc, Wdeprecated,
_("deprecated directive, use %s"),
quote_n (1, upd));
else
complain (loc, Wdeprecated,
_("deprecated directive: %s, use %s"),
quote (old), quote_n (1, upd));
}

View File

@@ -72,6 +72,10 @@ void complain_indent (location const *loc, warnings flags, unsigned *indent,
__attribute__ ((__format__ (__printf__, 4, 5)));
/** Report an obsolete syntax, suggest the updated one. */
void deprecated_directive (location const *loc,
char const *obsolete, char const *updated);
/** Warnings treated as errors shouldn't stop the execution as regular errors
should (because due to their nature, it is safe to go on). Thus, there are
three possible execution statuses. */

View File

@@ -77,9 +77,7 @@ static size_t no_cr_read (FILE *, char *, size_t);
#define DEPRECATED(Msg) \
do { \
size_t i; \
complain (loc, Wdeprecated, \
_("deprecated directive: %s, use %s"), \
quote (yytext), quote_n (1, Msg)); \
deprecated_directive (loc, yytext, Msg); \
scanner_cursor.column -= mbsnwidth (Msg, strlen (Msg), 0); \
for (i = strlen (Msg); i != 0; --i) \
unput (Msg[i - 1]); \