projects
/
carl9170fw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kconfig: handle format string before calling conf_message_callback()
[carl9170fw.git]
/
config
/
confdata.c
diff --git
a/config/confdata.c
b/config/confdata.c
index 481b07b10eb9191fe4dde158e9feb43770b246fb..57b57aa182b15b0f73e76b2c75bb34a459486550 100644
(file)
--- a/
config/confdata.c
+++ b/
config/confdata.c
@@
-43,16
+43,16
@@
static void conf_warning(const char *fmt, ...)
conf_warnings++;
}
conf_warnings++;
}
-static void conf_default_message_callback(const char *
fmt, va_list ap
)
+static void conf_default_message_callback(const char *
s
)
{
printf("#\n# ");
{
printf("#\n# ");
-
vprintf(fmt, ap
);
+
printf("%s", s
);
printf("\n#\n");
}
printf("\n#\n");
}
-static void (*conf_message_callback)
(const char *fmt, va_list ap
) =
+static void (*conf_message_callback)
(const char *s
) =
conf_default_message_callback;
conf_default_message_callback;
-void conf_set_message_callback(void (*fn)
(const char *fmt, va_list ap
))
+void conf_set_message_callback(void (*fn)
(const char *s
))
{
conf_message_callback = fn;
}
{
conf_message_callback = fn;
}
@@
-60,10
+60,15
@@
void conf_set_message_callback(void (*fn) (const char *fmt, va_list ap))
static void conf_message(const char *fmt, ...)
{
va_list ap;
static void conf_message(const char *fmt, ...)
{
va_list ap;
+ char buf[4096];
+
+ if (!conf_message_callback)
+ return;
va_start(ap, fmt);
va_start(ap, fmt);
- if (conf_message_callback)
- conf_message_callback(fmt, ap);
+
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ conf_message_callback(buf);
va_end(ap);
}
va_end(ap);
}