From 63b507a98725314ede0447e2675e3867384a8123 Mon Sep 17 00:00:00 2001 From: makefu Date: Sat, 25 May 2013 16:05:18 +0200 Subject: cleanup --- cholerab/too_old/live.sh | 88 ++++++++++++++++++++++++++++++++++++++++++++ cholerab/too_old/ttycnser.sh | 27 ++++++++++++++ 2 files changed, 115 insertions(+) create mode 100755 cholerab/too_old/live.sh create mode 100755 cholerab/too_old/ttycnser.sh (limited to 'cholerab/too_old') diff --git a/cholerab/too_old/live.sh b/cholerab/too_old/live.sh new file mode 100755 index 00000000..62a2c3cf --- /dev/null +++ b/cholerab/too_old/live.sh @@ -0,0 +1,88 @@ +#! /bin/sh +set -euf +stty cbreak -echo + +go() { + state=$1 + wr 7 + wr " " >&2 + wr "state=$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 + wr " " >&2 + case "$buf" in + () wr '^[' >&2;; + (*) wr "$buf" >&2;; + esac + wr "`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 ' '; 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 '^[' + go S + ;; + esac +} + +ESC_OSQRB() { + bufrda + case "$buf" in + (''|''|''|'') wr "$buf"; go S;; + (*) + wr '^[[' + go S + ;; + esac +} + + +wr 'c' +go S diff --git a/cholerab/too_old/ttycnser.sh b/cholerab/too_old/ttycnser.sh new file mode 100755 index 00000000..0972dbbb --- /dev/null +++ b/cholerab/too_old/ttycnser.sh @@ -0,0 +1,27 @@ +#! /bin/sh +set -euf + +tty="${TMPDIR-/tmp}/ttycnser.$LOGNAME.tty" + +case "${mode-server}" in + (server) + host=0.0.0.0 + port=8080 + export mode=client + echo "ttycnser @ $host $port" >&2 + exec tcpserver $host $port "$0" + ;; + (client) + line="`read line && echo "$line"`" + echo -n '7>>>> '"$line"'8' > "$tty" + ;; + (install) + # TODO tell the user to do something like + # PROMPT_COMMAND="`mode=install ~/p/krebscode/painload/cholerab/ttycnser`" + echo "ln -snf '`tty`' '$tty'" + ;; + (*) + echo 'Error 1: You are made of stupid!' >&2 + exit 23 + ;; +esac -- cgit v1.2.3