a72ab0542f
Fixes nconfig crash on comments within choice groups. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
199 lines
4.9 KiB
Diff
199 lines
4.9 KiB
Diff
---
|
|
confdata.c | 57 +++++++++++++++++++++++++++++----------------------------
|
|
lkc.h | 2 +-
|
|
menu.c | 2 +-
|
|
3 files changed, 31 insertions(+), 30 deletions(-)
|
|
|
|
Index: config/confdata.c
|
|
===================================================================
|
|
--- config.orig/confdata.c
|
|
+++ config/confdata.c
|
|
@@ -12,6 +12,7 @@
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
+#include <libgen.h>
|
|
|
|
#define LKC_DIRECT_LINK
|
|
#include "lkc.h"
|
|
@@ -25,7 +26,7 @@
|
|
static const char *conf_filename;
|
|
static int conf_lineno, conf_warnings, conf_unsaved;
|
|
|
|
-const char conf_defname[] = "arch/$ARCH/defconfig";
|
|
+const char conf_defname[] = ".defconfig";
|
|
|
|
static void conf_warning(const char *fmt, ...)
|
|
{
|
|
@@ -63,7 +64,7 @@
|
|
|
|
const char *conf_get_configname(void)
|
|
{
|
|
- char *name = getenv("KCONFIG_CONFIG");
|
|
+ char *name = getenv("BUILDROOT_CONFIG");
|
|
|
|
return name ? name : ".config";
|
|
}
|
|
@@ -249,20 +250,20 @@
|
|
if (line[0] == '#') {
|
|
if (memcmp(line + 2, CONFIG_, strlen(CONFIG_)))
|
|
continue;
|
|
- p = strchr(line + 2 + strlen(CONFIG_), ' ');
|
|
+ p = strchr(line + 2, ' ');
|
|
if (!p)
|
|
continue;
|
|
*p++ = 0;
|
|
if (strncmp(p, "is not set", 10))
|
|
continue;
|
|
if (def == S_DEF_USER) {
|
|
- sym = sym_find(line + 2 + strlen(CONFIG_));
|
|
+ sym = sym_find(line + 2);
|
|
if (!sym) {
|
|
sym_add_change_count(1);
|
|
goto setsym;
|
|
}
|
|
} else {
|
|
- sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
|
|
+ sym = sym_lookup(line + 2, 0);
|
|
if (sym->type == S_UNKNOWN)
|
|
sym->type = S_BOOLEAN;
|
|
}
|
|
@@ -278,8 +279,8 @@
|
|
default:
|
|
;
|
|
}
|
|
- } else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) {
|
|
- p = strchr(line + strlen(CONFIG_), '=');
|
|
+ } else if (isupper(line[0])) {
|
|
+ p = strchr(line, '=');
|
|
if (!p)
|
|
continue;
|
|
*p++ = 0;
|
|
@@ -290,13 +291,13 @@
|
|
*p2 = 0;
|
|
}
|
|
if (def == S_DEF_USER) {
|
|
- sym = sym_find(line + strlen(CONFIG_));
|
|
+ sym = sym_find(line);
|
|
if (!sym) {
|
|
sym_add_change_count(1);
|
|
goto setsym;
|
|
}
|
|
} else {
|
|
- sym = sym_lookup(line + strlen(CONFIG_), 0);
|
|
+ sym = sym_lookup(line, 0);
|
|
if (sym->type == S_UNKNOWN)
|
|
sym->type = S_OTHER;
|
|
}
|
|
@@ -423,9 +424,9 @@
|
|
{
|
|
int l;
|
|
if (headerfile)
|
|
- fprintf(out, "#define %s%s \"", CONFIG_, name);
|
|
+ fprintf(out, "#define %s \"", name);
|
|
else
|
|
- fprintf(out, "%s%s=\"", CONFIG_, name);
|
|
+ fprintf(out, "%s=\"", name);
|
|
|
|
while (1) {
|
|
l = strcspn(str, "\"\\");
|
|
@@ -450,14 +451,14 @@
|
|
switch (sym_get_tristate_value(sym)) {
|
|
case no:
|
|
if (write_no)
|
|
- fprintf(out, "# %s%s is not set\n",
|
|
- CONFIG_, sym->name);
|
|
+ fprintf(out, "# %s is not set\n",
|
|
+ sym->name);
|
|
break;
|
|
case mod:
|
|
- fprintf(out, "%s%s=m\n", CONFIG_, sym->name);
|
|
+ fprintf(out, "%s=m\n", sym->name);
|
|
break;
|
|
case yes:
|
|
- fprintf(out, "%s%s=y\n", CONFIG_, sym->name);
|
|
+ fprintf(out, "%s=y\n", sym->name);
|
|
break;
|
|
}
|
|
break;
|
|
@@ -467,7 +468,7 @@
|
|
case S_HEX:
|
|
case S_INT:
|
|
str = sym_get_string_value(sym);
|
|
- fprintf(out, "%s%s=%s\n", CONFIG_, sym->name, str);
|
|
+ fprintf(out, "%s=%s\n", sym->name, str);
|
|
break;
|
|
case S_OTHER:
|
|
case S_UNKNOWN:
|
|
@@ -844,17 +845,17 @@
|
|
case no:
|
|
break;
|
|
case mod:
|
|
- fprintf(tristate, "%s%s=M\n",
|
|
- CONFIG_, sym->name);
|
|
- fprintf(out_h, "#define %s%s_MODULE 1\n",
|
|
- CONFIG_, sym->name);
|
|
+ fprintf(tristate, "%s=M\n",
|
|
+ sym->name);
|
|
+ fprintf(out_h, "#define %s_MODULE 1\n",
|
|
+ sym->name);
|
|
break;
|
|
case yes:
|
|
if (sym->type == S_TRISTATE)
|
|
- fprintf(tristate,"%s%s=Y\n",
|
|
- CONFIG_, sym->name);
|
|
- fprintf(out_h, "#define %s%s 1\n",
|
|
- CONFIG_, sym->name);
|
|
+ fprintf(tristate,"%s=Y\n",
|
|
+ sym->name);
|
|
+ fprintf(out_h, "#define %s 1\n",
|
|
+ sym->name);
|
|
break;
|
|
}
|
|
break;
|
|
@@ -864,14 +865,14 @@
|
|
case S_HEX:
|
|
str = sym_get_string_value(sym);
|
|
if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
|
|
- fprintf(out_h, "#define %s%s 0x%s\n",
|
|
- CONFIG_, sym->name, str);
|
|
+ fprintf(out_h, "#define %s 0x%s\n",
|
|
+ sym->name, str);
|
|
break;
|
|
}
|
|
case S_INT:
|
|
str = sym_get_string_value(sym);
|
|
- fprintf(out_h, "#define %s%s %s\n",
|
|
- CONFIG_, sym->name, str);
|
|
+ fprintf(out_h, "#define %s %s\n",
|
|
+ sym->name, str);
|
|
break;
|
|
default:
|
|
break;
|
|
Index: config/lkc.h
|
|
===================================================================
|
|
--- config.orig/lkc.h
|
|
+++ config/lkc.h
|
|
@@ -42,7 +42,7 @@
|
|
#define N_(text) (text)
|
|
|
|
#ifndef CONFIG_
|
|
-#define CONFIG_ "CONFIG_"
|
|
+#define CONFIG_ "BR2_"
|
|
#endif
|
|
|
|
#define TF_COMMAND 0x0001
|
|
Index: config/menu.c
|
|
===================================================================
|
|
--- config.orig/menu.c
|
|
+++ config/menu.c
|
|
@@ -597,7 +597,7 @@
|
|
|
|
if (menu_has_help(menu)) {
|
|
if (sym->name) {
|
|
- str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
|
|
+ str_printf(help, "%s:\n\n", sym->name);
|
|
str_append(help, _(menu_get_help(menu)));
|
|
str_append(help, "\n");
|
|
}
|