grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: [patch] GRUB possible patches


From: gburanov
Subject: Re: Re: [patch] GRUB possible patches
Date: Fri, 12 Feb 2010 09:20:43 -0500

Hello, 

> It is. Can you write a ChangeLog entry?
Done

> ;1 is so called version. Basically all terminating  ;<number> have to be
> stripped but only if filename doesn't come from rockridge or joliet.
> Apparently nobody uses grub2 on non-rockridge, non-joliet iso. While
> this bug should be fixed using grub from plain iso isn't supported due
> to filename length limitation.

I found out that I got versioning even on joliet CD. I created CD using "Small 
CD Writer". You can try the same. I created patch for that as well, but of 
course you can skip it.

Regards,
Georgy

PS: My Patch

=== modified file 'ChangeLog'
--- ChangeLog   2010-02-10 19:27:12 +0000
+++ ChangeLog   2010-02-12 14:14:46 +0000
@@ -1,3 +1,8 @@
+2010-02-12  Georgy Buranov <address@hidden>
+
+       * disk/efi/efidisk.c (grub_efidisk_get_device_name): Fix bug obtaining 
device name of the whole disk
+       * fs/iso9660.c (grub_iso9660_iterate_dir): Remove file versions from 
ISO9660&Joliet file names
+
 2010-02-10  Vladimir Serbinenko  <address@hidden>
 
        Pass SIMPLE framebuffer size in bytes and not 64K blocks.

=== modified file 'disk/efi/efidisk.c'
--- disk/efi/efidisk.c  2010-01-20 08:12:47 +0000
+++ disk/efi/efidisk.c  2010-02-12 14:05:23 +0000
@@ -825,7 +825,7 @@
          if (! disk)
            return 1;
 
-         if (disk->id == GRUB_DISK_DEVICE_EFIDISK_ID)
+         if (disk->dev->id == GRUB_DISK_DEVICE_EFIDISK_ID)
            {
              struct grub_efidisk_data *d;
 

=== modified file 'fs/iso9660.c'
--- fs/iso9660.c        2010-01-27 03:11:20 +0000
+++ fs/iso9660.c        2010-02-12 14:13:01 +0000
@@ -615,9 +615,6 @@
        if (!filename)
          {
            name[dirent.namelen] = '\0';
-           filename = grub_strrchr (name, ';');
-           if (filename)
-             *filename = '\0';
 
            if (dirent.namelen == 1 && name[0] == 0)
              filename = ".";
@@ -640,6 +637,14 @@
 
             filename_alloc = 1;
           }
+         
+        if (!dir->data->rockridge)
+        {
+          // On simple ISO 9660 disks and on joliet, we need to remove file 
version, if any
+           char* lastSymbol = grub_strrchr (filename, ';');
+           if (lastSymbol)
+             *lastSymbol = '\0';
+        }        
 
        if (hook (filename, type, node))
          {



--
This message was sent on behalf of address@hidden at openSubscriber.com
http://www.opensubscriber.com/message/address@hidden/13415591.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]