tnew parsing for gpg_decrypt function - tomb - the crypto undertaker
 (HTM) git clone git://parazyd.org/tomb.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit df75c39a584d05eba4f7c575d0b5b650bf2c9b01
 (DIR) parent 4b1afb4fab83984b8fb4b3c27c6b5ccabdce93d5
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Mon, 26 Dec 2016 12:12:34 +0100
       
       new parsing for gpg_decrypt function
       
       tthis new parser works with all ZSh versions and brings overall
       improvement by eliminating the invocation of exernal binary `grep`
       over the secret data.
       
       Diffstat:
         M tomb                                |      28 +++++++++++++++-------------
       
       1 file changed, 15 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/tomb b/tomb
       t@@ -919,6 +919,7 @@ gpg_decrypt() {
            local gpgver=$(gpg --version --no-permission-warning | awk '/^gpg/ {print $3}')
            local gpgpass="$1\n$TOMBKEY"
            local gpgstatus
       +    local tmpres
        
            [[ $gpgver == "1.4.11" ]] && {
                _verbose "GnuPG is version 1.4.11 - adopting status fix."
       t@@ -927,23 +928,24 @@ gpg_decrypt() {
                    gpg --batch --passphrase-fd 0 --no-tty --no-options`
                ret=$?
                unset gpgpass
       +        return $ret
       +    }
        
       -    } || { # using status-file in gpg != 1.4.11
       -
       -        TOMBSECRET=`print - "$gpgpass" | \
       -            gpg --batch --passphrase-fd 0 --no-tty --no-options \
       +    _tmp_create
       +    tmpres=$TOMBTMP
       +    print - "$gpgpass" | \
       +        gpg --batch --passphrase-fd 0 --no-tty --no-options \
                    --status-fd 2 --no-mdc-warning --no-permission-warning \
       -            --no-secmem-warning` |& grep GNUPG: \
       -            | read -r -d'\n' gpgstatus
       -
       -        unset gpgpass
       -
       -        ret=1
       -
       -        [[ "${gpgstatus}" =~ "DECRYPTION_OKAY" ]] && { ret=0 }
       +            --no-secmem-warning 2> $tmpres \
       +        | read -r -d'\n' TOMBSECRET
        
       +    unset gpgpass
        
       -    }
       +    ret=1
       +    for i in ${(f)"$(cat $tmpres)"}; do
       +        _verbose "$i"
       +        [[ "$i" =~ "DECRYPTION_OKAY" ]] && { ret=0 }
       +    done
            return $ret
        
        }