\f
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;
}
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
char **t;
char *buffer;
- /* skip hidden files, . and .. */
+ /* skip . and .. names */
if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0)
return 0;
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[])
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;
/* Perform wildcard expansion. */
- if (wildcard_translator)
+ if (grub_wildcard_translator)
{
int j;
int failed = 0;
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;
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. */