os: complain about unsupported pnprintf directives

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Peter Hutterer 2013-02-14 16:24:53 +10:00
parent d903d17d7f
commit d9848fb4b1
2 changed files with 8 additions and 0 deletions

View File

@ -461,6 +461,7 @@ pnprintf(char *string, size_t size, const char *f, va_list args)
string[s_idx++] = '%';
break;
default:
BUG_WARN_MSG(f[f_idx], "Unsupported printf directive '%c'\n", f[f_idx]);
va_arg(args, char*);
string[s_idx++] = '%';
if (s_idx < size - 1)

View File

@ -206,6 +206,13 @@ static void logging_format(void)
read_log_msg(logmsg);
assert(strcmp(logmsg, "(EE) test a\n") == 0);
/* something unsupported % */
LogMessageVerbSigSafe(X_ERROR, -1, "test %Q\n");
read_log_msg(logmsg);
assert(strstr(logmsg, "BUG") != NULL);
LogMessageVerbSigSafe(X_ERROR, -1, "\n");
fseek(f, 0, SEEK_END);
/* string substitution */
LogMessageVerbSigSafe(X_ERROR, -1, "%s\n", "substituted string");
read_log_msg(logmsg);