2009-06-15 Vladimir Serbinenko <phcoder@gmail.com>
Fix handling of string like \"hello\" and "a b" * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC (grub_script_yylex): fix parsing of quoting, escaping and newline
This commit is contained in:
parent
3148bc1cbd
commit
f3880eaf5e
1 changed files with 8 additions and 1 deletions
|
@ -185,11 +185,18 @@ grub_script_yylex (union YYSTYPE *yylval, struct grub_parser_param *parsestate)
|
||||||
break;
|
break;
|
||||||
grub_dprintf ("scripting", "token=`\\n'\n");
|
grub_dprintf ("scripting", "token=`\\n'\n");
|
||||||
recordchar (state, '\n');
|
recordchar (state, '\n');
|
||||||
if (state->state != GRUB_PARSER_STATE_ESC)
|
if (state->state != GRUB_PARSER_STATE_ESC
|
||||||
|
&& state->state != GRUB_PARSER_STATE_DQUOTE
|
||||||
|
&& state->state != GRUB_PARSER_STATE_QUOTE)
|
||||||
{
|
{
|
||||||
state->tokenonhold = '\n';
|
state->tokenonhold = '\n';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (state->state == GRUB_PARSER_STATE_DQUOTE
|
||||||
|
|| state->state == GRUB_PARSER_STATE_QUOTE)
|
||||||
|
yylval->arg = grub_script_arg_add (parsestate, yylval->arg,
|
||||||
|
GRUB_SCRIPT_ARG_TYPE_STR,
|
||||||
|
"\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue