diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c index 05f6d55ad..8e0ec5a3a 100644 --- a/grub-core/commands/regexp.c +++ b/grub-core/commands/regexp.c @@ -70,17 +70,16 @@ static grub_command_t cmd; GRUB_MOD_INIT(regexp) { - extern struct grub_script_wildcard_translator translator; - cmd = grub_register_command ("regexp", grub_cmd_regexp, N_("REGEXP STRING"), N_("Test if REGEXP matches STRING.")); /* Setup GRUB script wildcard translator. */ - wildcard_translator = &translator; + grub_wildcard_translator = &grub_filename_translator; } GRUB_MOD_FINI(regexp) { grub_unregister_command (cmd); + grub_wildcard_translator = 0; } diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c index 2eec9631d..bba99dcc8 100644 --- a/grub-core/commands/wildcard.c +++ b/grub-core/commands/wildcard.c @@ -40,7 +40,7 @@ static char* wildcard_escape (const char *s); static char* wildcard_unescape (const char *s); static grub_err_t wildcard_expand (const char *s, char ***strs); -struct grub_script_wildcard_translator translator = { +struct grub_script_wildcard_translator grub_filename_translator = { .expand = wildcard_expand, .escape = wildcard_escape, .unescape = wildcard_unescape @@ -276,7 +276,7 @@ match_files (const char *prefix, const char *suffix, const char *end, char **t; char *buffer; - /* skip hidden files, . and .. */ + /* skip . and .. names */ if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0) return 0; diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c index 108e5cc5d..056110fd5 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -42,7 +42,7 @@ struct grub_script_scope static struct grub_script_scope *scope = 0; /* Wildcard translator for GRUB script. */ -struct grub_script_wildcard_translator *wildcard_translator; +struct grub_script_wildcard_translator *grub_wildcard_translator; grub_err_t grub_script_break (grub_command_t cmd, int argc, char *argv[]) @@ -233,13 +233,13 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, int r; char *p = 0; - if (! wildcard_translator || escape_type == 0) + if (! grub_wildcard_translator || escape_type == 0) return grub_script_argv_append (&result, s); if (escape_type > 0) - p = wildcard_translator->escape (s); + p = grub_wildcard_translator->escape (s); else if (escape_type < 0) - p = wildcard_translator->unescape (s); + p = grub_wildcard_translator->unescape (s); if (! p) return 1; @@ -304,7 +304,7 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, /* Perform wildcard expansion. */ - if (wildcard_translator) + if (grub_wildcard_translator) { int j; int failed = 0; @@ -315,7 +315,8 @@ grub_script_arglist_to_argv (struct grub_script_arglist *arglist, result.args = 0; for (i = 0; unexpanded.args[i]; i++) { - if (wildcard_translator->expand (unexpanded.args[i], &expansions)) + if (grub_wildcard_translator->expand (unexpanded.args[i], + &expansions)) { grub_script_argv_free (&unexpanded); goto fail; diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h index 9140d280a..e33739b41 100644 --- a/include/grub/script_sh.h +++ b/include/grub/script_sh.h @@ -78,7 +78,8 @@ struct grub_script_wildcard_translator char *(*unescape) (const char *str); grub_err_t (*expand) (const char *str, char ***expansions); }; -extern struct grub_script_wildcard_translator *wildcard_translator; +extern struct grub_script_wildcard_translator *grub_wildcard_translator; +extern struct grub_script_wildcard_translator *grub_filename_translator; /* A complete argument. It consists of a list of one or more `struct grub_script_arg's. */