]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/commands/wildcard.c (make_regex): Escape brackets.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Sep 2010 18:15:30 +0000 (20:15 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 12 Sep 2010 18:15:30 +0000 (20:15 +0200)
ChangeLog
grub-core/commands/wildcard.c

index 72959e6653535705eeaa72ac0865d8143c9f08df..2eaee5571f376b2f9055058f39bb027874e80868 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-09-12  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/commands/wildcard.c (make_regex): Escape brackets.
+
 2010-09-12  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/commands/ls.c (grub_cmd_ls): Accept multiple files.
index 64e2e3a5408c4ef5c5308add657c76848d82a305..6eab333b3310a8a83d85808f41927bef9ec9a92c 100644 (file)
@@ -137,8 +137,10 @@ make_regex (const char *start, const char *end, regex_t *regexp)
          break;
 
        case '.':
+       case '(':
+       case ')':
          buffer[i++] = '\\';
-         buffer[i++] = '.';
+         buffer[i++] = ch;
          break;
 
        case '*':
@@ -152,6 +154,7 @@ make_regex (const char *start, const char *end, regex_t *regexp)
     }
   buffer[i++] = '$';
   buffer[i] = '\0';
+  grub_dprintf ("expand", "Regexp is %s\n", buffer);
 
   if (regcomp (regexp, buffer, RE_SYNTAX_GNU_AWK))
     {
@@ -224,6 +227,7 @@ match_devices (const regex_t *regexp, int noparts)
     grub_dprintf ("expand", "matching: %s\n", buffer);
     if (regexec (regexp, buffer, 0, 0, 0))
       {
+       grub_dprintf ("expand", "not matched\n");
        grub_free (buffer);
        return 0;
       }