summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-06-17 18:20:24 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-06-17 18:20:24 (GMT)
commit2f41e7ea5700aab61f32a1db97569f832563fbd8 (patch)
tree27718bc88b201f0f917fd249a62e37b587413c5c
parent3324c963352392c00bda9eb77b815f0db9f6bdb7 (diff)
downloadbusybox-2f41e7ea5700aab61f32a1db97569f832563fbd8.tar.gz
busybox-2f41e7ea5700aab61f32a1db97569f832563fbd8.tar.bz2
fix extra bogus files generation in include/config/*
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--scripts/basic/fixdep.c13
-rw-r--r--scripts/basic/split-include.c7
2 files changed, 13 insertions, 7 deletions
diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index bbb575c..1a5b10f 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -243,22 +243,27 @@ void parse_config_file(char *map, size_t len)
if (!memcmp(p, "IF_NOT", 6)) goto conf7;
}
/* we have at least 3 chars because of p <= end_3 */
- /*if (!memcmp(p, "IF_", 3)) goto conf3;*/
- if (p[0] == 'I' && p[1] == 'F' && p[2] == '_') goto conf3;
+ /*if (!memcmp(p, "IF_", 3)) ...*/
+ if (p[0] == 'I' && p[1] == 'F' && p[2] == '_') {
+ off = 3;
+ goto conf;
+ }
/* This identifier is not interesting, skip it */
while (p <= end_3 && (isalnum(*p) || *p == '_'))
p++;
continue;
- conf3: off = 3;
conf7: off = 7;
+ conf:
p += off;
for (q = p; q < end_3+3; q++) {
if (!(isalnum(*q) || *q == '_'))
break;
}
- use_config(p, q-p);
+ if (q != p) {
+ use_config(p, q-p);
+ }
}
}
diff --git a/scripts/basic/split-include.c b/scripts/basic/split-include.c
index 60934b5..e328788 100644
--- a/scripts/basic/split-include.c
+++ b/scripts/basic/split-include.c
@@ -110,11 +110,12 @@ int main(int argc, const char * argv [])
if (line[0] != '#')
continue;
- if ((str_config = strstr(line, "CONFIG_")) == NULL)
+ if ((str_config = strstr(line, " CONFIG_")) == NULL)
continue;
- /* Make the output file name. */
- str_config += sizeof("CONFIG_") - 1;
+ /* We found #define CONFIG_foo or #undef CONFIG_foo.
+ * Make the output file name. */
+ str_config += sizeof(" CONFIG_") - 1;
for (itarget = 0; !isspace(str_config[itarget]); itarget++)
{
int c = (unsigned char) str_config[itarget];