wok-6.x diff syslinux/stuff/extra/iso9660.u @ rev 13747

syslinux: add MENU STARTIFNOARG
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Dec 31 11:41:25 2012 +0100 (2012-12-31)
parents
children 12326fc2d995
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/syslinux/stuff/extra/iso9660.u	Mon Dec 31 11:41:25 2012 +0100
     1.3 @@ -0,0 +1,56 @@
     1.4 +--- core/fs/iso9660/iso9660.c
     1.5 ++++ core/fs/iso9660/iso9660.c
     1.6 +@@ -132,6 +132,28 @@
     1.7 + 	
     1.8 + 	de_name_len = de->name_len;
     1.9 + 	de_name = de->name;
    1.10 ++#define __ROCKRIDGE
    1.11 ++#ifdef __ROCKRIDGE
    1.12 ++	{
    1.13 ++		char *name = NULL, *end;
    1.14 ++		int n = (offset - de_len + de->name_len + 34) & -2;
    1.15 ++		int len = data[n + 2];
    1.16 ++		do {
    1.17 ++			if (* (short *) (data + n) == 0x4D4E) { // NM
    1.18 ++				name = data + n + 5;
    1.19 ++				end = data + n + len;
    1.20 ++			}
    1.21 ++			n += len;
    1.22 ++		} while (n + 2 < offset);
    1.23 ++		if (name) {
    1.24 ++			*end = 0;
    1.25 ++			if (!strcmp(name, dname)) {
    1.26 ++				dprintf("Found rockridge.\n");
    1.27 ++				return de;
    1.28 ++			}
    1.29 ++		}
    1.30 ++	}
    1.31 ++#endif
    1.32 + 	if (iso_compare_name(de_name, de_name_len, dname)) {
    1.33 + 	    dprintf("Found.\n");
    1.34 + 	    return de;
    1.35 +@@ -211,6 +233,24 @@
    1.36 + 	    data = NULL;
    1.37 + 	    continue;
    1.38 + 	}
    1.39 ++#ifdef __ROCKRIDGE2
    1.40 ++	{
    1.41 ++		char *name = NULL;
    1.42 ++		int n = (offset + de->name_len + 34) & -2;
    1.43 ++		int len = data[n + 2], delen;
    1.44 ++		do {
    1.45 ++			if (* (short *) (data + n) == 0x4D4E) { // NM
    1.46 ++				name = data + n + 5;
    1.47 ++				delen = len - 5;
    1.48 ++			}
    1.49 ++			n += len;
    1.50 ++		} while (n + 2 < offset + de->length);
    1.51 ++		if (name) {
    1.52 ++			de->name_len = delen;
    1.53 ++			strcpy(de->name, name, delen);
    1.54 ++		}
    1.55 ++	}
    1.56 ++#endif
    1.57 + 	break;
    1.58 +     }
    1.59 +