fix extra bogus files generation in include/config/*
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 17 Jun 2010 18:20:24 +0000 (20:20 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 17 Jun 2010 18:20:24 +0000 (20:20 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
scripts/basic/fixdep.c
scripts/basic/split-include.c

index bbb575c..1a5b10f 100644 (file)
@@ -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);
+               }
        }
 }
 
index 60934b5..e328788 100644 (file)
@@ -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];