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 d9f0fcae803623f1815bcf3fb4327a1b434a745e..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);
}
@@
-397,7
+402,7
@@
int conf_read(const char *name)
for_all_symbols(i, sym) {
sym_calc_value(sym);
for_all_symbols(i, sym) {
sym_calc_value(sym);
- if (sym_is_choice(sym) || (sym->flags & SYMBOL_
AUTO
))
+ if (sym_is_choice(sym) || (sym->flags & SYMBOL_
NO_WRITE
))
continue;
if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
/* check that calculated value agrees with saved value */
continue;
if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
/* check that calculated value agrees with saved value */
@@
-766,7
+771,7
@@
int conf_write(const char *name)
struct menu *menu;
const char *basename;
const char *str;
struct menu *menu;
const char *basename;
const char *str;
- char dirname[PATH_MAX+1], tmpname[PATH_MAX+
1], newname[PATH_MAX+1
];
+ char dirname[PATH_MAX+1], tmpname[PATH_MAX+
22], newname[PATH_MAX+8
];
char *env;
dirname[0] = 0;
char *env;
dirname[0] = 0;
@@
-878,7
+883,7
@@
static int conf_split_config(void)
res = 0;
for_all_symbols(i, sym) {
sym_calc_value(sym);
res = 0;
for_all_symbols(i, sym) {
sym_calc_value(sym);
- if ((sym->flags & SYMBOL_
AUTO
) || !sym->name)
+ if ((sym->flags & SYMBOL_
NO_WRITE
) || !sym->name)
continue;
if (sym->flags & SYMBOL_WRITE) {
if (sym->flags & SYMBOL_DEF_AUTO) {
continue;
if (sym->flags & SYMBOL_WRITE) {
if (sym->flags & SYMBOL_DEF_AUTO) {