提交 eb4cf5a6 编写于 作者: A Arnaud Lacombe 提交者: Michal Marek

kconfig: fix missing "0x" prefix from S_HEX symbol in autoconf.h

The specialized printer for headers (espectially autoconf.h) is missing
fixup code for S_HEX symbol's "0x" prefix. As long as kconfig does not
warn for such missing prefix, this code is needed. Fix this.

In the same time, fix some nits in `header_print_symbol()'.

Cc: Randy Dunlap <rdunlap@xenotime.net>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Broken-by: NArnaud Lacombe <lacombar@gmail.com>
Reported-by: NRandy Dunlap <rdunlap@xenotime.net>
Reported-by: NMauro Carvalho Chehab <mchehab@infradead.org>
Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: NRandy Dunlap <rdunlap@xenotime.net>
Signed-off-by: NArnaud Lacombe <lacombar@gmail.com>
Signed-off-by: NMichal Marek <mmarek@suse.cz>
上级 a1e80655
......@@ -487,27 +487,43 @@ static struct conf_printer kconfig_printer_cb =
static void
header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
{
const char *suffix = "";
switch (sym->type) {
case S_BOOLEAN:
case S_TRISTATE:
case S_TRISTATE: {
const char *suffix = "";
switch (*value) {
case 'n':
return;
case 'm':
suffix = "_MODULE";
/* FALLTHROUGH */
/* fall through */
default:
value = "1";
}
fprintf(fp, "#define %s%s%s %s\n",
CONFIG_, sym->name, suffix, value);
break;
}
case S_HEX: {
const char *prefix = "";
if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X'))
prefix = "0x";
fprintf(fp, "#define %s%s %s%s\n",
CONFIG_, sym->name, prefix, value);
break;
}
case S_STRING:
case S_INT:
fprintf(fp, "#define %s%s %s\n",
CONFIG_, sym->name, value);
break;
default:
break;
}
fprintf(fp, "#define %s%s%s %s\n",
CONFIG_, sym->name, suffix, value);
}
static void
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册