#!/bin/ash

DISKSIZE=80
#A1=1  X1=10 Y1=20
A1=1 ; X1=1 ; Y1=30
A2=3 ; X2=31 ; Y2=50
A3=4 ; X3=51 ; Y3=80

echo "Disk-Size: "  $DISKSIZE 
echo "Partitionen Nr/Anfg/Ende"  $A1 " " $X1 " " $Y1  "  ;  " $A2 " " $X2 " " $Y2 
echo "Partitionen Nr/Anfg/Ende"  $A3 " " $X3 " " $Y3  "  ;  " $A4 " " $X4 " " $Y4  

#  Zu jeder Partition J den vorigen J-1 und den folgenden J Zwischenraum bestimmen:
#echo " Bestimmung der freien Stellen auf der Platte: "
EINS=1 
Y0=0
ZA0=$(($Y0+$EINS)) ; ZE0=$DISKSIZE ; Z0=$(($DISKSIZE-$Y0))
test $A1 -gt 0 ; if test $? -eq 0 ;  then ZE0=$(($X1-$EINS)) ; Z0=$(($X1-$Y0-$EINS)) ; ZA1=$(($Y1+$EINS)) ; ZE1=$DISKSIZE ; Z1=$(($DISKSIZE-$Y1)) ; fi ;
echo " Luecke vor P.1: " $ZA0 $ZE0 $Z0   "    Groesse soll: "  $(($ZE0-$ZA0+$EINS)) 
test $A2 -gt 0 ; if test $? -eq 0 ;  then ZE1=$(($X2-$EINS)) ; Z1=$(($X2-$Y1-$EINS)) ; ZA2=$(($Y2+$EINS)) ; ZE2=$DISKSIZE ; Z2=$(($DISKSIZE-$Y2)) ; fi ;
echo " Luecke nach P.1: " $ZA1 $ZE1 $Z1  "    Groesse soll: "  $(($ZE1-$ZA1+$EINS)) 
test $A3 -gt 0 ; if test $? -eq 0 ;  then ZE2=$(($X3-$EINS)) ; Z2=$(($X3-$Y2-$EINS)) ; ZA3=$(($Y3+$EINS)) ; ZE3=$DISKSIZE ; Z3=$(($DISKSIZE-$Y3)) ; fi ;
echo " Luecke nach P.2: " $ZA2 $ZE2 $Z2  "    Groesse soll: "  $(($ZE2-$ZA2+$EINS))
test $A4 -gt 0 ; if test $? -eq 0 ;  then ZE3=$(($X4-$EINS)) ; Z3=$(($X4-$Y3-$EINS)) ; ZA4=$(($Y4+$EINS)) ; ZE4=$DISKSIZE ; Z4=$(($DISKSIZE-$Y4)) ; fi ;
echo " Luecke nach P.3: " $ZA3 $ZE3 $Z3  "    Groesse soll: "  $(($ZE3-$ZA3+$EINS))
echo " Luecke nach P.4: " $ZA4 $ZE4 $Z4  "    Groesse soll: "  $(($ZE4-$ZA4+$EINS))
echo " " > tmp2
echo  $Z0  "   "  $ZA0 "   " $ZE0      >> tmp2
echo  $Z1  "   "  $ZA1 "   " $ZE1  >> tmp2  
echo  $Z2  "   "  $ZA2 "   " $ZE2   >> tmp2
echo  $Z3  "   "  $ZA3 "   " $ZE3    >> tmp2
echo  $Z4  "   "  $ZA4 "   " $ZE4   >> tmp2   
echo "  Zwischenrume auf der Platte:  " 
echo $Z0 " ab " $ZA0  " ; " $Z1 " ab " $ZA1 " ; " $Z2 " ab " $ZA2 " ; "  $Z3 " ab " $ZA3 " ; "  $Z4 " ab " $ZA4   
#echo "Zw. unsortiert:"  ; cat  tmp2  
sort  -o tmp1 -r  -n  -k 1   tmp2           # Auf tmp1 sind jetzt die ZWISCHENRAEUME / FREIE BEREICHE nach Groesse sortieret
#echo "Zw. sortiert:" ; cat tmp1
read ZZ XX YY  REST < tmp1                    # Groesse, Anfang, Ende des groessten freien Platzes 
#ZZ=$(($YY-$XX+1))
echo "Groesster freier Platz auf der HD, und Zwischenräume sortiert" $ZZ  "   "  $XX  "    "  $YY  


