[git commit master 1/1] fix extra bogus files generation in include/config/*

Denys Vlasenko vda.linux at googlemail.com
Thu Jun 17 18:20:24 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=2f41e7ea5700aab61f32a1db97569f832563fbd8
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 scripts/basic/fixdep.c        |   13 +++++++++----
 scripts/basic/split-include.c |    7 ++++---
 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];
-- 
1.7.1



More information about the busybox-cvs mailing list