# HG changeset patch # User Pascal Bellard # Date 1300535000 -3600 # Node ID 885c330a75ba3c03f1da3c0a6bf4270b1a2555a6 # Parent 2a24191222416b7ea3416b1a8bee3f65fdf19810 lzma, xz: add lzma --size diff -r 2a2419122241 -r 885c330a75ba lzma/stuff/lzma --- a/lzma/stuff/lzma Sat Mar 19 11:26:36 2011 +0100 +++ b/lzma/stuff/lzma Sat Mar 19 12:43:20 2011 +0100 @@ -2,6 +2,17 @@ case "$1" in d|e|b) exec /usr/bin/lzma-alone $@;; +--size) size=$(dd if=$2 bs=1 skip=5 count=8 2> /dev/null | od -t d8 | awk '{ print $2; exit }') + if [ $size -eq -1 ]; then + size=$(unlzma -c $2 | wc -c) + n=$size + for i in $(seq 1 8); do + printf '\\\\x%02X' $(($n & 255)) + n=$(($n >> 8)) + done | xargs echo -en | dd of=$2 conv=notrunc bs=1 seek=5 2> /dev/null + fi + echo $size + exit ;; --version|-V|--help|-h|-\?) exec /usr/bin/lzma-alone;; esac diff -r 2a2419122241 -r 885c330a75ba xz/stuff/lzma --- a/xz/stuff/lzma Sat Mar 19 11:26:36 2011 +0100 +++ b/xz/stuff/lzma Sat Mar 19 12:43:20 2011 +0100 @@ -84,9 +84,19 @@ esac # First look if help is needed. -[ "$1" ] || usage case "$1" in - --version|-V|--help|-h|-\?|'') usage;; +--version|-V|--help|-h|-\?|'') usage;; +--size) size=$(dd if=$2 bs=1 skip=5 count=8 2> /dev/null | od -t d8 | awk '{ print $2; exit }') + if [ $size -eq -1 ]; then + size=$(unlzma -c $2 | wc -c) + n=$size + for i in $(seq 1 8); do + printf '\\\\x%02X' $(($n & 255)) + n=$(($n >> 8)) + done | xargs echo -en | dd of=$2 conv=notrunc bs=1 seek=5 2> /dev/null + fi + echo $size + exit ;; esac # lzma_utils or lzma_alone ?