]> git.proxmox.com Git - grub2.git/commitdiff
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Mark plain
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 18 May 2012 10:51:02 +0000 (12:51 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 18 May 2012 10:51:02 +0000 (12:51 +0200)
ISO9660 names as case-insensitive, lowercase it and remove trailing dot.

ChangeLog
grub-core/fs/iso9660.c

index 9c0079da19050ff83e42e973a5615165eb672642..7252ebf430c85f127f768df9bbd6f07c2e5a1d98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-18  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Mark plain
+       ISO9660 names as case-insensitive, lowercase it and remove trailing dot.
+
 2012-05-17  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/fs/jfs.c (grub_jfs_data): New field caseins.
index 318d07edb0f36e74195bc172bd7aa65e4d3e1b60..819a22b7854259d38e4759337000e6d490d43656 100644 (file)
@@ -736,10 +736,17 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir,
           from the iso9660 filesystem.  */
        if (!dir->data->joliet && !filename)
          {
+           char *ptr;
            name[dirent.namelen] = '\0';
            filename = grub_strrchr (name, ';');
            if (filename)
              *filename = '\0';
+           /* ISO9660 names are not case-preserving.  */
+           type |= GRUB_FSHELP_CASE_INSENSITIVE;
+           for (ptr = name; *ptr; ptr++)
+             *ptr = grub_tolower (*ptr);
+           if (ptr != name && *(ptr - 1) == '.')
+             *(ptr - 1) = 0;
            filename = name;
          }