mirror of
				https://git.proxmox.com/git/grub2
				synced 2025-11-04 03:55:15 +00:00 
			
		
		
		
	* grub-core/script/yylex.l: Ugly fix for "\\\n ".
* tests/grub_script_echo1.in: Add tests.
This commit is contained in:
		
							parent
							
								
									df760f778a
								
							
						
					
					
						commit
						eea1e26e52
					
				@ -1,3 +1,8 @@
 | 
			
		||||
2012-05-08  Vladimir Serbinenko  <phcoder@gmail.com>
 | 
			
		||||
 | 
			
		||||
	* grub-core/script/yylex.l: Ugly fix for "\\\n ".
 | 
			
		||||
	* tests/grub_script_echo1.in: Add tests.
 | 
			
		||||
 | 
			
		||||
2012-05-08  Vladimir Serbinenko  <phcoder@gmail.com>
 | 
			
		||||
 | 
			
		||||
	* util/grub-install.in: Ignore empty devicetree directory.
 | 
			
		||||
 | 
			
		||||
@ -139,7 +139,8 @@ SPECIAL         \?|\#|\*|\@
 | 
			
		||||
VARIABLE        ${NAME}|$\{{NAME}\}|${DIGITS}|$\{{DIGITS}\}|${SPECIAL}|$\{{SPECIAL}\}
 | 
			
		||||
WORD            ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE}|{I18NSTR})+
 | 
			
		||||
 | 
			
		||||
MULTILINE       {WORD}?((\"{DQCHR}*)|(\$\"{DQCHR}*)|(\'{SQCHR}*)|(\\\n))
 | 
			
		||||
MULTILINE       {WORD}?((\"{DQCHR}*)|(\$\"{DQCHR}*)|(\'{SQCHR}*))
 | 
			
		||||
POS_MULTILINE   {WORD}?\\\n
 | 
			
		||||
 | 
			
		||||
%x              SPLIT
 | 
			
		||||
%x              DQUOTE
 | 
			
		||||
@ -190,6 +191,26 @@ MULTILINE       {WORD}?((\"{DQCHR}*)|(\$\"{DQCHR}*)|(\'{SQCHR}*)|(\\\n))
 | 
			
		||||
		    return GRUB_PARSER_TOKEN_BAD;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
{POS_MULTILINE} {
 | 
			
		||||
                  if (yyg->yy_c_buf_p + 1 == &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
 | 
			
		||||
		    {
 | 
			
		||||
		      if (grub_lexer_unput (yytext, yyscanner))
 | 
			
		||||
			return GRUB_PARSER_TOKEN_BAD;
 | 
			
		||||
		    }
 | 
			
		||||
		  else
 | 
			
		||||
		    {
 | 
			
		||||
		      RECORD;
 | 
			
		||||
		      yypush_buffer_state (YY_CURRENT_BUFFER, yyscanner);
 | 
			
		||||
		      if (grub_lexer_resplit (yytext, yyscanner))
 | 
			
		||||
			{
 | 
			
		||||
			  yypop_buffer_state (yyscanner);
 | 
			
		||||
			  return GRUB_PARSER_TOKEN_WORD;
 | 
			
		||||
			}
 | 
			
		||||
		      yyextra->lexerstate->resplit = 1;
 | 
			
		||||
		    }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{NAME}          { RECORD; return GRUB_PARSER_TOKEN_NAME; }
 | 
			
		||||
{WORD}          {
 | 
			
		||||
                  RECORD;
 | 
			
		||||
 | 
			
		||||
@ -144,5 +144,33 @@ echo "one\
 | 
			
		||||
echo "one\
 | 
			
		||||
 two"
 | 
			
		||||
 | 
			
		||||
echo one \
 | 
			
		||||
 two
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
 two
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
"x" two
 | 
			
		||||
echo one x\
 | 
			
		||||
'x' two
 | 
			
		||||
echo one x\
 | 
			
		||||
\\ two
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
\
 | 
			
		||||
x
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
echo one x\
 | 
			
		||||
$var
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if test x$grubshell = xyes; then insmod regexp; fi
 | 
			
		||||
echo /boot/grub/i386-pc/normal.mod
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user