wok rev 8399
linux,syslinux: no more awk in shell tools
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Feb 05 16:34:18 2011 +0100 (2011-02-05) |
parents | af59b5551936 |
children | 7d5ccd76597b |
files | linux/stuff/bootloader.sh syslinux/stuff/tools/isohybrid.sh |
line diff
1.1 --- a/linux/stuff/bootloader.sh Sat Feb 05 04:06:47 2011 +0000 1.2 +++ b/linux/stuff/bootloader.sh Sat Feb 05 16:34:18 2011 +0100 1.3 @@ -58,10 +58,11 @@ 1.4 # usage: store16 offset data16 file 1.5 store16() 1.6 { 1.7 - echo $(( $2 + 0x10000 )) | \ 1.8 - awk '{ printf "\\\\x%02X\\\\x%02X",$1%256,($1/256)%256 }' | \ 1.9 - xargs echo -en | \ 1.10 - dd bs=2 conv=notrunc of=$3 seek=$(( $1 / 2 )) 2> /dev/null 1.11 + n=$2; i=2; while [ $i -ne 0 ]; do 1.12 + printf '\\\\x%02X' $(($n & 255)) 1.13 + i=$(($i-1)); n=$(($n >> 8)) 1.14 + done | xargs echo -en | \ 1.15 + dd bs=2 conv=notrunc of=$3 seek=$(( $1 / 2 )) 2> /dev/null 1.16 [ -n "$DEBUG" ] && printf "store16(%04X) = %04X\n" $1 $2 1>&2 1.17 } 1.18 1.19 @@ -69,9 +70,10 @@ 1.20 # usage: storelong offset data32 file 1.21 storelong() 1.22 { 1.23 - echo $2 | awk '{ printf "\\\\x%02X\\\\x%02X\\\\x%02X\\\\x%02X", 1.24 - $1%256,($1/256)%256,($1/256/256)%256,($1/256/256/256)%256 }' | \ 1.25 - xargs echo -en | \ 1.26 + n=$2; i=4; while [ $i -ne 0 ]; do 1.27 + printf '\\\\x%02X' $(($n & 255)) 1.28 + i=$(($i-1)); n=$(($n >> 8)) 1.29 + done | xargs echo -en | \ 1.30 dd bs=4 conv=notrunc of=$3 seek=$(( $1 / 4 )) 2> /dev/null 1.31 [ -n "$DEBUG" ] && printf "storelong(%04X) = %08X\n" $1 $2 1>&2 1.32 }
2.1 --- a/syslinux/stuff/tools/isohybrid.sh Sat Feb 05 04:06:47 2011 +0000 2.2 +++ b/syslinux/stuff/tools/isohybrid.sh Sat Feb 05 16:34:18 2011 +0100 2.3 @@ -64,8 +64,10 @@ 2.4 # write a 32 bits data 2.5 store32() 2.6 { 2.7 - echo $2 | awk '{ for(n=$1,i=4;i--;n/=256) printf "\\\\x%02X",n%256 }' |\ 2.8 - xargs echo -en | ddq bs=1 conv=notrunc of=$iso seek=$(($1)) 2.9 + n=$2; i=4; while [ $i -ne 0 ]; do 2.10 + printf '\\\\x%02X' $(($n & 255)) 2.11 + i=$(($i-1)); n=$(($n >> 8)) 2.12 + done | xargs echo -en | ddq bs=1 conv=notrunc of=$iso seek=$(($1)) 2.13 } 2.14 2.15 main()