* grub-core/commands/wildcard.c (match_files): Handle filenames
without explicit device. (wildcard_expand): Don't add explicit device if not already present. * tests/grub_script_echo1.in: Add a new expansion test.
This commit is contained in:
parent
87edb8940a
commit
f8a9ab1245
3 changed files with 19 additions and 22 deletions
|
@ -1,3 +1,10 @@
|
|||
2012-01-24 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/commands/wildcard.c (match_files): Handle filenames
|
||||
without explicit device.
|
||||
(wildcard_expand): Don't add explicit device if not already present.
|
||||
* tests/grub_script_echo1.in: Add a new expansion test.
|
||||
|
||||
2012-01-24 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Replace single-linked with double-linked lists. It results in more
|
||||
|
|
|
@ -326,10 +326,15 @@ match_files (const char *prefix, const char *suffix, const char *end,
|
|||
if (! fs)
|
||||
goto fail;
|
||||
|
||||
path = grub_strchr (dir, ')');
|
||||
if (! path)
|
||||
goto fail;
|
||||
path++;
|
||||
if (dir[0] == '(')
|
||||
{
|
||||
path = grub_strchr (dir, ')');
|
||||
if (!path)
|
||||
goto fail;
|
||||
path++;
|
||||
}
|
||||
else
|
||||
path = dir;
|
||||
|
||||
if (fs->dir (dev, path, match))
|
||||
goto fail;
|
||||
|
@ -431,25 +436,8 @@ wildcard_expand (const char *s, char ***strs)
|
|||
if (start == noregexop) /* device part has regexop */
|
||||
paths = match_devices (®exp, *start != '(');
|
||||
|
||||
else if (*start == '(') /* device part explicit wo regexop */
|
||||
else /* device part explicit wo regexop */
|
||||
paths = match_files ("", start, noregexop, ®exp);
|
||||
|
||||
else if (*start == '/') /* no device part */
|
||||
{
|
||||
const char *root;
|
||||
char *prefix;
|
||||
|
||||
root = grub_env_get ("root");
|
||||
if (! root)
|
||||
goto fail;
|
||||
|
||||
prefix = grub_xasprintf ("(%s)", root);
|
||||
if (! prefix)
|
||||
goto fail;
|
||||
|
||||
paths = match_files (prefix, start, noregexop, ®exp);
|
||||
grub_free (prefix);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -99,3 +99,5 @@ echo one'two
|
|||
#
|
||||
# two"
|
||||
|
||||
if test x$grubshell = xyes; then insmod regexp; fi
|
||||
echo /boot/grub/i386-pc/normal.mod
|
||||
|
|
Loading…
Reference in a new issue