diff options
Diffstat (limited to 'cholerab/too_old/live.sh')
-rwxr-xr-x | cholerab/too_old/live.sh | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/cholerab/too_old/live.sh b/cholerab/too_old/live.sh deleted file mode 100755 index 62a2c3cf..00000000 --- a/cholerab/too_old/live.sh +++ /dev/null @@ -1,88 +0,0 @@ -#! /bin/sh -set -euf -stty cbreak -echo - -go() { - state=$1 - wr 7 - wr "[1;70H " >&2 - wr "[1;70Hstate=$state" >&2 - wr 8 - $1 -} - -rd() { - dd bs=1 count=1 2>/dev/null -} - -bufrd() { - buf="`rd`" - bufinfowr -} - -bufrda() { - buf="$buf`rd`" - bufinfowr -} - -bufinfowr() { - wr 7 - wr "[2;70H " >&2 - wr "[3;70H " >&2 - case "$buf" in - () wr '[2;70H[35m^[[m' >&2;; - (*) wr "[2;70H$buf" >&2;; - esac - wr "[3;70H`wr "$buf" | xxd -p`" >&2 - wr 8 -} - -wr() { - echo -n "$1" -} - -C0="`echo C0 | xxd -r -p`"; DF="`echo DF | xxd -r -p`" -E0="`echo E0 | xxd -r -p`"; EF="`echo EF | xxd -r -p`" -F0="`echo F0 | xxd -r -p`"; F7="`echo F7 | xxd -r -p`" -S() { - bufrd - case "$buf" in - () go ESC;; - () wr '[D [D'; go S;; - ([$C0-$DF]) go U1;; - ([$E0-$EF]) go U2;; - ([$F0-$F7]) go U3;; - (*) wr "$buf"; go S;; - esac -} - -U1() { buf="$buf`rd`"; wr "$buf"; go S; } -U2() { buf="$buf`rd`"; go U1; } -U3() { buf="$buf`rd`"; go U2; } - - -ESC() { - bufrda - case "$buf" in - ('[') go ESC_OSQRB;; - (*) - wr '[35m^[[m' - go S - ;; - esac -} - -ESC_OSQRB() { - bufrda - case "$buf" in - ('[A'|'[B'|'[C'|'[D') wr "$buf"; go S;; - (*) - wr '[35m^[[m[' - go S - ;; - esac -} - - -wr 'c' -go S |