mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
88 lines
1.6 KiB
Bash
Executable file
88 lines
1.6 KiB
Bash
Executable file
#!/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 - eq0 beginning of expanded selection
|
|
# $6 - eq1 end of expanded selection
|
|
# $7 - flag
|
|
# $8 - nr number of runes in $7
|
|
# $9 - text
|
|
# $10 - chorded argument
|
|
# $11 - 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/$9/ $9
|
|
if not
|
|
dictwin /adict/$dict/$9 $dict $9
|
|
} &
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|