commit 474ef694962718ddf82f93f841f91ee0a1dc6252 from: rsc date: Fri Jan 07 19:12:32 2005 UTC add adict commit - 566f93c70d2f97fb885e350764cd750f2d107119 commit + 474ef694962718ddf82f93f841f91ee0a1dc6252 blob - /dev/null blob + 979c6473da7536d46524649f331f7b1d9781d46f (mode 755) --- /dev/null +++ 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 +} +