wok diff linld/stuff/src/ISO9660.CPP @ rev 23870

syslinux: update iso2exe.sh
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jun 23 08:04:01 2020 +0000 (2020-06-23)
parents a2e843f5d9e4
children 53914b720f76
line diff
     1.1 --- a/linld/stuff/src/ISO9660.CPP	Sat Jun 20 14:15:09 2020 +0000
     1.2 +++ b/linld/stuff/src/ISO9660.CPP	Tue Jun 23 08:04:01 2020 +0000
     1.3 @@ -36,9 +36,7 @@
     1.4  int isoreaddir(void)
     1.5  {
     1.6  	char *p;
     1.7 -#ifdef __ROCKRIDGE
     1.8 -	char *endname;
     1.9 -#endif
    1.10 +
    1.11  	struct isostate *x=&isostate;
    1.12  
    1.13  	if (x->curdirsize == 0xFFFF) {
    1.14 @@ -65,31 +63,20 @@
    1.15  	//x->filemod = (p[25] & 2) ? 0040755 : 0100755;
    1.16  	//x->filemod = 0100755 - ((p[25] & (char)2) << 13);
    1.17  #ifdef __ROCKRIDGE
    1.18 -	endname = NULL;
    1.19  	// p += 34 + (p[32] & -2); ?
    1.20  	p = x->buffer + 34 + ((p[32] + x->curpos) & -2);
    1.21  	do {
    1.22 -		int len = p[2];
    1.23 -# if 0
    1.24 -		switch (* (short *) p) {
    1.25 -		case 0x5850: // PX
    1.26 -			x->filemod = * (short *) (p + 4);
    1.27 -			break;
    1.28 -		case 0x4D4E: // NM
    1.29 -# else
    1.30 +		register len = p[2];
    1.31  		if (* (short *) p == 0x4D4E) {
    1.32 -# endif
    1.33  			x->filename = p + 5;
    1.34 -			endname = p + len;
    1.35 +			p[len] = 0;
    1.36 +			goto found;
    1.37  		}
    1.38  		p += len;
    1.39 +#ifndef ISOHOOK
    1.40  	} while (x->buffer + x->curpos + x->entrysize - 2 > p);
    1.41 -#ifdef ISOHOOK
    1.42 -	*endname = 0;
    1.43  #else
    1.44 -	if (endname)
    1.45 -		*endname = 0;
    1.46 -	else
    1.47 +	} while (1);
    1.48  #endif
    1.49  #endif
    1.50  #ifndef ISOHOOK
    1.51 @@ -111,6 +98,7 @@
    1.52  		}
    1.53  	}
    1.54  #endif
    1.55 +found:
    1.56  	x->curpos += x->entrysize;
    1.57  	return 0;
    1.58  }