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