wok diff syslinux/stuff/iso2exe/iso2exe.sh @ rev 19857

syslinux/iso2exe: fix recursive_partition + hybrib_mbr
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Mar 18 09:21:47 2017 +0100 (2017-03-18)
parents 3378a0c35726
children eeaaeada151a
line diff
     1.1 --- a/syslinux/stuff/iso2exe/iso2exe.sh	Wed Mar 15 16:52:45 2017 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/iso2exe.sh	Sat Mar 18 09:21:47 2017 +0100
     1.3 @@ -116,7 +116,7 @@
     1.4  		ddq if=/tmp/exe$$ bs=1 count=3 skip=$((0x7C00)) of=$1 seek=$i conv=notrunc
     1.5  	fi
     1.6  	rm -f /tmp/exe$$ /tmp/coff$$
     1.7 -	if [ -z "$RECURSIVE_PARTITION" ]; then
     1.8 +	if [ -z "$RECURSIVE_PARTITION" -a $(get 470 $1 4) -eq 0 ]; then
     1.9  		store 464 $((1+$i/512)) $1 8
    1.10  		store 470 $(($i/512)) $1 8
    1.11  		store 474 $(($(get 474 $1 4) - $i/512)) $1 32
    1.12 @@ -262,6 +262,15 @@
    1.13  		ddq bs=1 conv=notrunc if="$1" of="$1" skip=$((0x1BE)) seek=0 count=3
    1.14  		ddq bs=1 skip=$((0x1BE)) count=66 if="$2" | \
    1.15  			ddq bs=1 seek=$((0x1BE)) count=66 of="$1" conv=notrunc
    1.16 +		if [ -n "$RECURSIVE_PARTITION" ]; then
    1.17 +			for i in 0 1 2 3 ; do
    1.18 +				n=$(get $((0x1C6+16*i)) $1 4)
    1.19 +				[ $n -eq 0 -o $n -gt 64 ] && continue
    1.20 +				store $((0x1C0+16*i)) 1 $1 8
    1.21 +				store $((0x1C6+16*i)) 0 $1 32
    1.22 +				store $((0x1CA+16*i)) $(($(get $((0x1CA+16*i)) $1 4)+$n)) $1 32
    1.23 +			done
    1.24 +		fi
    1.25  	fi
    1.26  }
    1.27