wok-next annotate 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 |
rev | line source |
---|---|
pascal@13747 | 1 --- core/fs/iso9660/iso9660.c |
pascal@13747 | 2 +++ core/fs/iso9660/iso9660.c |
pascal@13747 | 3 @@ -132,6 +132,28 @@ |
pascal@13747 | 4 |
pascal@13747 | 5 de_name_len = de->name_len; |
pascal@13747 | 6 de_name = de->name; |
pascal@13747 | 7 +#define __ROCKRIDGE |
pascal@13747 | 8 +#ifdef __ROCKRIDGE |
pascal@13747 | 9 + { |
pascal@13747 | 10 + char *name = NULL, *end; |
pascal@13747 | 11 + int n = (offset - de_len + de->name_len + 34) & -2; |
pascal@13747 | 12 + int len = data[n + 2]; |
pascal@13747 | 13 + do { |
pascal@13747 | 14 + if (* (short *) (data + n) == 0x4D4E) { // NM |
pascal@13747 | 15 + name = data + n + 5; |
pascal@13747 | 16 + end = data + n + len; |
pascal@13747 | 17 + } |
pascal@13747 | 18 + n += len; |
pascal@13747 | 19 + } while (n + 2 < offset); |
pascal@13747 | 20 + if (name) { |
pascal@13747 | 21 + *end = 0; |
pascal@13747 | 22 + if (!strcmp(name, dname)) { |
pascal@13747 | 23 + dprintf("Found rockridge.\n"); |
pascal@13747 | 24 + return de; |
pascal@13747 | 25 + } |
pascal@13747 | 26 + } |
pascal@13747 | 27 + } |
pascal@13747 | 28 +#endif |
pascal@13747 | 29 if (iso_compare_name(de_name, de_name_len, dname)) { |
pascal@13747 | 30 dprintf("Found.\n"); |
pascal@13747 | 31 return de; |
pascal@13747 | 32 @@ -211,6 +233,24 @@ |
pascal@13747 | 33 data = NULL; |
pascal@13747 | 34 continue; |
pascal@13747 | 35 } |
pascal@13747 | 36 +#ifdef __ROCKRIDGE2 |
pascal@13747 | 37 + { |
pascal@13747 | 38 + char *name = NULL; |
pascal@13747 | 39 + int n = (offset + de->name_len + 34) & -2; |
pascal@13747 | 40 + int len = data[n + 2], delen; |
pascal@13747 | 41 + do { |
pascal@13747 | 42 + if (* (short *) (data + n) == 0x4D4E) { // NM |
pascal@13747 | 43 + name = data + n + 5; |
pascal@13747 | 44 + delen = len - 5; |
pascal@13747 | 45 + } |
pascal@13747 | 46 + n += len; |
pascal@13747 | 47 + } while (n + 2 < offset + de->length); |
pascal@13747 | 48 + if (name) { |
pascal@13747 | 49 + de->name_len = delen; |
pascal@13747 | 50 + strcpy(de->name, name, delen); |
pascal@13747 | 51 + } |
pascal@13747 | 52 + } |
pascal@13747 | 53 +#endif |
pascal@13747 | 54 break; |
pascal@13747 | 55 } |
pascal@13747 | 56 |