author | kergoth <kergoth> | 2003-01-16 18:04:11 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-01-16 18:04:11 (UTC) |
commit | 3904d85eac20dfd21cf2a3245977f9946865fd92 (patch) (side-by-side diff) | |
tree | 8d5b2217c1b54a0c439815ec02db3f5235c99daa /scripts/kconfig/zconf.l | |
parent | 0eec393ef2dd8b43db96c86e80e307f73a771fae (diff) | |
download | opie-3904d85eac20dfd21cf2a3245977f9946865fd92.zip opie-3904d85eac20dfd21cf2a3245977f9946865fd92.tar.gz opie-3904d85eac20dfd21cf2a3245977f9946865fd92.tar.bz2 |
Update LinuxKernelConf to 1.3, latest available.
-rw-r--r-- | scripts/kconfig/zconf.l | 72 |
1 files changed, 54 insertions, 18 deletions
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index 6d81e5e..1471630 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l @@ -1,2 +1,2 @@ -%option backup nostdinit noyywrap full ecs +%option backup nostdinit noyywrap never-interactive full ecs %option 8bit backup nodefault perf-report perf-report @@ -9,2 +9,3 @@ +#include <limits.h> #include <stdio.h> @@ -16,3 +17,2 @@ #include "lkc.h" -#include "zconf.tab.h" @@ -85,4 +85,2 @@ n [A-Za-z0-9_] unput(yytext[0]); - //printf("new config: "); - //symbol_end(NULL); BEGIN(COMMAND); @@ -145,3 +143,7 @@ n [A-Za-z0-9_] } + \\\n current_file->lineno++; . + <<EOF>> { + BEGIN(INITIAL); + } } @@ -149,5 +151,18 @@ n [A-Za-z0-9_] <STRING>{ - [^'"\n\\]+ { + [^'"\\\n]+/\n { + append_string(yytext, yyleng); + zconflval.string = text; + return T_STRING; + } + [^'"\\\n]+ { append_string(yytext, yyleng); } + \\.?/\n { + append_string(yytext + 1, yyleng - 1); + zconflval.string = text; + return T_STRING; + } + \\.? { + append_string(yytext + 1, yyleng - 1); + } \'|\" { @@ -156,3 +171,2 @@ n [A-Za-z0-9_] zconflval.string = text; - //printf("s:%s\n", text); return T_STRING; @@ -161,12 +175,10 @@ n [A-Za-z0-9_] } - \\[ \t]*\n append_string(yytext+yyleng-1, 1); current_file->lineno++; - \\[ \t]* append_string(yytext+1, yyleng-1); - \\. append_string(yytext+1, 1); \n { - //printf(":%d: open string!\n", current_file->lineno+1); - exit(0); + printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); + current_file->lineno++; + BEGIN(INITIAL); + return T_EOL; } <<EOF>> { - //printf(":%d: open string!\n", current_file->lineno+1); - exit(0); + BEGIN(INITIAL); } @@ -223,2 +235,3 @@ n [A-Za-z0-9_] } + fclose(yyin); yyterminate(); @@ -240,5 +253,30 @@ static void zconf_endhelp(void) + +/* + * Try to open specified file with following names: + * ./name + * $(srctree)/name + * The latter is used when srctree is separate from objtree + * when compiling the kernel. + * Return NULL if file is not found. + */ +FILE *zconf_fopen(const char *name) +{ + char *env, fullname[PATH_MAX+1]; + FILE *f; + + f = fopen(name, "r"); + if (!f && name[0] != '/') { + env = getenv(SRCTREE); + if (env) { + sprintf(fullname, "%s/%s", env, name); + f = fopen(fullname, "r"); + } + } + return f; +} + void zconf_initscan(const char *name) { - yyin = fopen(name, "r"); + yyin = zconf_fopen(name); if (!yyin) { @@ -247,3 +285,2 @@ void zconf_initscan(const char *name) } - //fprintf(stderr, "zconf_initscan: %s\n", name); @@ -264,3 +301,3 @@ void zconf_nextfile(const char *name) current_buf->state = YY_CURRENT_BUFFER; - yyin = fopen(name, "r"); + yyin = zconf_fopen(name); if (!yyin) { @@ -273,4 +310,2 @@ void zconf_nextfile(const char *name) - //fprintf(stderr, "zconf_nextfile: %s\n", name); - if (file->flags & FILE_BUSY) { @@ -299,2 +334,3 @@ static struct buffer *zconf_endfile(void) if (parent) { + fclose(yyin); yy_delete_buffer(YY_CURRENT_BUFFER); |