No description
0cdc2a095b
GRUB shell lexer and parser improvements. * conf/any-emu.rmk: Build rule updates. * conf/common.rmk: Likewise. * conf/i386-coreboot.rmk: Likewise. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * configure.ac: Configure check for flex. * include/grub/script_sh.h (grub_script_arg_type_t): More argument types. (grub_lexer_param): Struct member updates. (grub_parser_param): Likewise. (GRUB_LEXER_TOKEN_MAX): Maximum token size. (GRUB_LEXER_RECORD_INCREMENT): Memory increments' size. (grub_script_lexer_init): Prototype update. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (grub_script_lexer_yywrap): New function prototype. (grub_script_lexer_fini): Likewise. (grub_script_execute_argument_to_string): Removed by... (grub_script_execute_argument_to_argv): ...better version. * script/execute.c (ROUND_UPTO): New macro. (grub_script_execute_cmdline): Out of memory fixes. (grub_script_execute_menuentry): Likewise. (grub_script_execute_argument_to_string): Removed. Update all users by... (grub_script_execute_argument_to_argv): ...better version. * script/function.c (grub_script_function_create): Use grub_script_execute_argument_to_argv instead of grub_script_execute_argument_to_string. * script/lexer.c (check_varstate): Removed. (check_textstate): Removed. (grub_script_lexer_record_start): Likewise. (grub_script_lexer_record_stop): Likewise. (recordchar): Replaced with... (grub_script_lexer_record): ...new function. (nextchar): Removed. (grub_script_lexer_init): Rewritten. (grub_script_yylex): Rewritten. (append_newline): New function. (grub_script_lexer_yywrap): New function. (grub_script_lexer_fini): New function. (grub_script_yyerror): Sets error flag. * script/yylex.l: New file. (grub_lexer_yyfree): Wrapper for flex yyffre. (grub_lexer_yyalloc): Likewise. (grub_lexer_yyrealloc): Likewise. * script/parser.y: Refactored. * script/script.c (grub_script_arg_add): Out of memory fixes. (grub_script_add_arglist): Likewise. (grub_script_create_cmdline): Likewise. (grub_script_create_cmdmenu): Likewise. (grub_script_add_cmd): Likewise. (grub_script_parse): Use grub_script_lexer_fini to deallocated. * util/grub-script-check.c (grub_script_execute_menuentry): Remove unnecessary code. * tests/grub_script_echo1.in: New testcase. * tests/grub_script_vars1.in: New testcase. * tests/grub_script_echo_keywords.in: New testcase. |
||
---|---|---|
boot | ||
bus | ||
commands | ||
conf | ||
disk | ||
docs | ||
efiemu | ||
font | ||
fs | ||
gettext | ||
gfxmenu | ||
gnulib | ||
hello | ||
hook | ||
include | ||
io | ||
kern | ||
lib | ||
loader | ||
mmap | ||
normal | ||
partmap | ||
parttool | ||
po | ||
script | ||
term | ||
tests | ||
util | ||
video | ||
.bzrignore | ||
acinclude.m4 | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
config.rpath | ||
configure.ac | ||
COPYING | ||
gencmdlist.sh | ||
gendistlist.sh | ||
genemuinit.sh | ||
genemuinitheader.sh | ||
genfslist.sh | ||
genhandlerlist.sh | ||
geninit.sh | ||
geninitheader.sh | ||
genkernsyms.sh.in | ||
genmk.rb | ||
genmoddep.awk | ||
genmodsrc.sh | ||
genpartmaplist.sh | ||
genparttoollist.sh | ||
gensymlist.sh.in | ||
genterminallist.sh | ||
gentrigtables.c | ||
genvideolist.sh | ||
INSTALL | ||
Makefile.in | ||
mkinstalldirs | ||
NEWS | ||
README | ||
THANKS | ||
TODO |
This is GRUB 2, the second version of the GRand Unified Bootloader. GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more robust, more powerful, and more portable. See the file NEWS for a description of recent changes to GRUB 2. See the file INSTALL for instructions on how to build and install the GRUB 2 data and program files. Please visit the official web page of GRUB 2, for more information. The URL is <http://www.gnu.org/software/grub/grub.html>. For now, there is not much documentation yet. Please look at the GRUB Wiki <http://grub.enbug.org> for testing procedures.