acme.rc (509B)
1 fn newwindow { 2 winctl=`{9p read acme/new/ctl} 3 winid=$winctl(1) 4 } 5 6 fn winctl { 7 echo $* | 9p write acme/$winid/ctl 8 } 9 10 fn winread { 11 9p read acme/$winid/$1 12 } 13 14 fn winwrite { 15 9p write acme/$winid/$1 16 } 17 18 fn windump { 19 if(! ~ $1 - '') 20 winctl dumpdir $1 21 if(! ~ $2 - '') 22 winctl dump $2 23 } 24 25 fn winname { 26 winctl name $1 27 } 28 29 fn winwriteevent { 30 echo $1$2$3 $4 | winwrite event 31 } 32 33 fn windel { 34 if(~ $1 sure) 35 winctl delete 36 if not 37 winctl del 38 } 39 40 fn wineventloop { 41 . <{winread event >[2]/dev/null | acmeevent} 42 }