From 1a0c3b4809152c876e15c2196a1ea1084f131f27 Mon Sep 17 00:00:00 2001 From: BVK Chaitanya Date: Sat, 23 Jan 2010 10:14:32 +0530 Subject: [PATCH] some bug fixes --- script/lexer.c | 2 +- script/yylex.l | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/script/lexer.c b/script/lexer.c index 17c38a353..caefdb7a7 100644 --- a/script/lexer.c +++ b/script/lexer.c @@ -139,7 +139,7 @@ append_newline (const char *src) grub_size_t len; len = grub_strlen (src); - line = grub_malloc (len + 1); + line = grub_malloc (len + 2); if (!line) return 0; diff --git a/script/yylex.l b/script/yylex.l index 9cafba5c2..7cef8496b 100644 --- a/script/yylex.l +++ b/script/yylex.l @@ -128,13 +128,13 @@ typedef grub_size_t yy_size_t; BLANK [ \t] COMMENT ^[ \t]*#.*$ -CHAR [^|&;()<> \t\n\'\"] +CHAR [^|&$;()<> \t\n\'\"\\] DIGITS [[:digit:]]+ NAME [[:alpha:]_][[:alnum:][:digit:]_]* ESC \\. VARIABLE ${NAME}|$\{{NAME}\}|${DIGITS}|$\{{DIGITS}\}|$\?|$\{\?\} -DQSTR \"([^\"]|\\\")*\" +DQSTR \"([^\\\"]|{ESC})*\" SQSTR \'[^\']*\' WORD ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE})+ @@ -190,6 +190,7 @@ WORD ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE})+ {WORD} { RECORD; /* resplit yytext */ + grub_dprintf ("lexer", "word: [%s]\n", yytext); yypush_buffer_state (YY_CURRENT_BUFFER, yyscanner); if (yy_scan_string (yytext, yyscanner)) { @@ -209,7 +210,6 @@ WORD ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE})+ return GRUB_PARSER_TOKEN_BAD; } - /* Split word into multiple args */ {