grub_script_function_t func = 0;
char errnobuf[18];
char *cmdname;
+ struct grub_script_argv argv = { 0, 0 };
/* Lookup the command. */
- if (grub_script_arglist_to_argv (cmdline->arglist, &argv))
- args = grub_script_execute_arglist_to_argv (cmdline->arglist, &argcount);
- if (! args || ! args[0])
++ if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args[0])
return grub_errno;
- cmdname = args[0];
+ cmdname = argv.args[0];
grubcmd = grub_command_find (cmdname);
if (! grubcmd)
{
CHAR [^{}|&$;<> \t\n\'\"\\]
DIGITS [[:digit:]]+
- NAME [[:alpha:]_][[:alnum:][:digit:]_]*
+ NAME [[:alpha:]_][[:alnum:]_]*
ESC \\.
-VARIABLE ${NAME}|$\{{NAME}\}|${DIGITS}|$\{{DIGITS}\}|$\?|$\{\?\}
+SPECIAL \?|\#|\*|\@
+VARIABLE ${NAME}|$\{{NAME}\}|${DIGITS}|$\{{DIGITS}\}|${SPECIAL}|$\{{SPECIAL}\}
DQSTR \"([^\\\"]|{ESC})*\"
SQSTR \'[^\']*\'
WORD ({CHAR}|{DQSTR}|{SQSTR}|{ESC}|{VARIABLE})+