From: BVK Chaitanya Date: Sat, 4 Sep 2010 03:03:42 +0000 (+0530) Subject: merge with mainline X-Git-Tag: 1.99~601^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=adcf5a8e304042cdf0dd02c845240fdb2fa7701a;p=thirdparty%2Fgrub.git merge with mainline --- adcf5a8e304042cdf0dd02c845240fdb2fa7701a diff --cc grub-core/script/lexer.c index 208ad0bf6,64da45ed8..3c59e4499 --- a/grub-core/script/lexer.c +++ b/grub-core/script/lexer.c @@@ -216,7 -208,7 +216,6 @@@ grub_script_lexer_init (struct grub_par grub_reader_getline_t getline) { int len; -- char *script2; YY_BUFFER_STATE buffer; struct grub_lexer_param *lexerstate; @@@ -239,14 -231,30 +238,15 @@@ grub_free (lexerstate); return 0; } + - buffer = 0; - script = script ? : "\n"; - len = grub_strlen (script); - - if (len != 0 && script[len - 1] == '\n') - { - buffer = yy_scan_string (script, lexerstate->yyscanner); - } - else - { - script2 = append_newline (script); - if (script2) - { - buffer = yy_scan_string (script2, lexerstate->yyscanner); - grub_free (script2); - } - } + yyset_extra (parser, lexerstate->yyscanner); + parser->lexerstate = lexerstate; - if (!buffer) + if (grub_script_lexer_yywrap (parser, script ?: "\n")) { + parser->lexerstate = 0; yylex_destroy (lexerstate->yyscanner); grub_free (lexerstate->yyscanner); - grub_free (lexerstate->text); grub_free (lexerstate); return 0;