# HG changeset patch # User Pascal Bellard # Date 1216333109 0 # Node ID 981e48565c3a23608c496f66a2f89b2582f055a9 # Parent 7dd29bc8b4ca80c49fa8bf0209ad97d8428728a4 tazdialog: simplify shell parser stuff diff -r 7dd29bc8b4ca -r 981e48565c3a tinyutils/tazdialog --- a/tinyutils/tazdialog Thu Jul 17 14:39:29 2008 +0000 +++ b/tinyutils/tazdialog Thu Jul 17 22:18:29 2008 +0000 @@ -11,6 +11,40 @@ echo -e $1 | sed -e 's/\\Z.//g' | tr 'àâäçéèêëîïûü' 'aaaceeeeiiuu' } +fake_gauge() +{ +[ -n "$percent" ] && echo $percent +while read line; do + case "$line" in + [0-9]*) echo $line;; + *);; + esac +done +echo 100 +} + +fake_dialog() +{ +if [ -n "$gauge" ]; then + fake_gauge | gtkdialog --center --program=BOX +else + gtkdialog --center --program=BOX +fi 2> /dev/null | while read line; do + case "$line" in + *OUTPUT*) eval $line + echo "$OUTPUT" 1>&2 ;; + *CHECK*true*) line=${line%=*}; line=${line#CHECK} + [ $line -eq 0 ] || shift $((3 * $line)) + echo -n "\"$1\" " 1>&2;; + *LIST=*) eval $line; set -- $LIST + echo "$1" 1>&2 ;; + *EXIT*abort*) echo 255;; + *EXIT*) eval $line + echo $EXIT ;; + esac +done +} + if [ -z "$XAUTHORITY" ]; then [ -n "$TEXTDIALOG" ] || TEXTDIALOG="dialog" export DIALOG=$TEXTDIALOG @@ -179,28 +213,4 @@ " export BOX -status=$(if [ -n "$gauge" ]; then - ([ -n "$percent" ] && echo $percent - while read line; do - case "$line" in - [0-9]*) echo $line;; - *);; - esac - done ; echo 100) | gtkdialog --center --program=BOX -else - gtkdialog --center --program=BOX -fi 2> /dev/null | while read line; do - case "$line" in - *OUTPUT*) eval $line - echo "$OUTPUT" 1>&2 ;; - *CHECK*true*) line=${line%=*}; line=${line#CHECK} - [ $line -eq 0 ] || shift $((3 * $line)) - echo -n "\"$1\" " 1>&2;; - *LIST=*) eval $line; set -- $LIST - echo "$1" 1>&2 ;; - *EXIT*abort*) echo 255;; - *EXIT*) eval $line - echo $EXIT ;; - esac -done) -exit $status +exit $(fake_dialog)