From 474ef694962718ddf82f93f841f91ee0a1dc6252 Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 7 Jan 2005 19:12:32 +0000 Subject: add adict --- bin/adict | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 bin/adict (limited to 'bin/adict') diff --git a/bin/adict b/bin/adict new file mode 100755 index 00000000..979c6473 --- /dev/null +++ b/bin/adict @@ -0,0 +1,86 @@ +#!/usr/local/plan9/bin/rc + +. $PLAN9/lib/acme.rc + +fn event { + # $1 - c1 origin of event + # $2 - c2 type of action + # $3 - q0 beginning of selection + # $4 - q1 end of selection + # $5 - flag + # $6 - nr number of runes in $7 + # $7 - text + # $8 - chorded argument + # $9 - origin of chorded argument + + switch($1$2){ + case E* # write to body or tag + case F* # generated by ourselves; ignore + case K* # type away we do not care + case Mi # mouse: text inserted in tag + case MI # mouse: text inserted in body + case Md # mouse: text deleted from tag + case MD # mouse: text deleted from body + + case Mx MX # button 2 in tag or body + winwriteevent $* + + case Ml ML # button 3 in tag or body + { + if(~ $dict NONE) + dictwin /adict/$7/ $7 + if not + dictwin /adict/$dict/$7 $dict $7 + } & + } +} + +fn dictwin { + newwindow + winname $1 + switch($#*){ + case 1 + dict -d '?' >[2=1] | sed 1d | winwrite body + case 2 + dict=$2 + case 3 + dict=$2 + dict -d $dict $3 >[2=1] | winwrite body + } + winctl clean + wineventloop +} + +dict=NONE +if(~ $1 -d){ + shift + dict=$2 + shift +} +if(~ $1 -d*){ + dict=`{echo $1 | sed 's/-d//'} + shift +} +if(~ $1 -*){ + echo 'usage: adict [-d dict] [word...]' >[1=2] + exit usage +} + +switch($#*){ +case 0 + if(~ $dict NONE) + dictwin /adict/ + if not + dictwin /adict/$dict/ $dict +case * + if(~ $dict NONE){ + dict=`{dict -d'?' | 9sed -n 's/^ ([^\[ ]+).*/\1/p' | sed 1q} + if(~ $#dict 0){ + echo 'no dictionaries present on this system' >[1=2] + exit nodict + } + } + for(i) + dictwin /adict/$dict/$i $dict $i +} + -- cgit v1.2.3