tadd adict - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 474ef694962718ddf82f93f841f91ee0a1dc6252
parent 566f93c70d2f97fb885e350764cd750f2d107119
Author: rsc 
Date:   Fri,  7 Jan 2005 19:12:32 +0000

add adict

Diffstat:
  A bin/adict                           |      86 ++++++++++++++++++++++++++++++

1 file changed, 86 insertions(+), 0 deletions(-)
---
diff --git a/bin/adict b/bin/adict
t@@ -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
+}
+