diff options
| author | Lassulus <Lassulus@googlemail.com> | 2011-07-21 01:48:14 +0200 | 
|---|---|---|
| committer | Lassulus <Lassulus@googlemail.com> | 2011-07-21 01:48:14 +0200 | 
| commit | 904abe9a757e4cb94ce2b2eeea21b9cc9535b262 (patch) | |
| tree | 59055889c9e447d5e22744b0f8a5f9d47a3e4286 | |
| parent | 19fb357dec054bce570b5e3daaef8b4f33ce6328 (diff) | |
1st try of cholerab
| -rwxr-xr-x | cholerab/max_dirty_hack.sh | 98 | 
1 files changed, 98 insertions, 0 deletions
| diff --git a/cholerab/max_dirty_hack.sh b/cholerab/max_dirty_hack.sh new file mode 100755 index 00000000..e8928d38 --- /dev/null +++ b/cholerab/max_dirty_hack.sh @@ -0,0 +1,98 @@ +#!/bin/sh +stty -echo cbreak -ofdel +x_max=90 +y_max=10 +x_cur=1 +y_cur=1 +y= +t=1 +echo -n "c" + +while [ $t -lt $(( y_max+2 )) ];do +    echo -e "[$t;$(( x_max+1 ))Hx" +    t=$(( t+1 )) +done +t=1 +while [ $t -lt $(( x_max+2 )) ];do +    echo -e "[$(( y_max+1 ));${t}Hx" +    t=$(( t+1 )) +done + +echo -n "[$y_cur;${x_cur}H" +#Main Loop +while x="`dd bs=1 count=1 2>/dev/null`"; do +    y="$y$x" +    case "$y" in +        (*"[A") +            if [[ $y_cur -le 1 ]];then +                y_cur=$y_max +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "[A" +                y_cur=$(( y_cur-1 )) +            fi +            y= +            ;; +        (*"[B") +            if [[ $y_cur -ge $y_max ]];then +                y_cur=1 +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "[B" +                y_cur=$(( y_cur+1 )) +            fi +            y= +            ;; +        (*"[C") +            if [[ $x_cur -ge $x_max ]];then +                x_cur=1 +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "[C" +                x_cur=$(( x_cur+1 )) +            fi +            y= +            ;; +        (*"[D") +            if [[ $x_cur -le 1 ]];then +                x_cur=$x_max +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "[D" +                x_cur=$(( x_cur-1 )) +            fi +            y= +            ;; +        (*"") +            if [[ $x_cur -le 1 ]];then +                x_cur=$x_max +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "[D [D" +                x_cur=$(( x_cur-1 )) +            fi +            y= +            ;; +        (|\[) +            : +            ;; +        (*) +            if [[ $x_cur -gt $x_max ]];then +                x_cur=1 +                echo -n "[$y_cur;${x_cur}H" +            elif [[ $x_cur -eq $x_max ]];then +                echo -n "$x" +                x_cur=1 +                echo -n "[$y_cur;${x_cur}H" +            else +                echo -n "$x" +                x_cur=$(( x_cur+1 )) +            fi +            y= +            ;; +    esac +    state=`echo -n "$x" | od -An -tx | tr -d "[$IFS]"` +    echo -n "7[1;$(( x_max+2 ))H$state8" +    echo -n "7[2;$(( x_max+2 ))H             8" +    echo -n "7[2;$(( x_max+2 ))H$x_cur:$y_cur8" +done | 
