diff options
-rwxr-xr-x | bin/9ar | 1 | ||||
-rwxr-xr-x | bin/doctype | 74 | ||||
-rwxr-xr-x | bin/lookman | 30 | ||||
-rwxr-xr-x | bin/spell | 21 | ||||
-rwxr-xr-x | bin/start | 3 | ||||
-rwxr-xr-x | bin/stop | 3 | ||||
-rwxr-xr-x | bin/wintext | 16 |
7 files changed, 147 insertions, 1 deletions
@@ -6,4 +6,3 @@ Darwin) ranlib -c $2 ;; esac - diff --git a/bin/doctype b/bin/doctype new file mode 100755 index 00000000..df72db88 --- /dev/null +++ b/bin/doctype @@ -0,0 +1,74 @@ +#!/usr/local/plan9/bin/rc +# doctype: synthesize proper command line for troff + +troff=troff +eqn=eqn +prefer=prefer +opt='' +dev='' +while(~ $1 -*){ + switch($1){ + case -n; + troff=nroff + eqn=neqn + prefer='prefer -n' + case -T + dev=$1 + case -* + opt=$opt' $1' + } + shift +} +ifs=' +'{ + files=`{echo $*} +} +9grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* | +sort -u | +awk ' +BEGIN { files = "'$files'" } +/\$LIST/ { e++ } +/^\.PP/ { ms++ } +/^\.LP/ { ms++ } +/^\.EQ/ { eqn++ } +/^\.TS/ { tbl++ } +/^\.PS/ { pic++ } +/^\.IS/ { ideal++ } +/^\.GS/ { tped++ } +/^\.G1/ { grap++; pic++ } +/^\.GD/ { dag++; pic++ } +/^\.\[/ { refer++ } +/\|reference/ { prefer++ } +/^\.cstart/ { chem++; pic++ } +/^\.begin +dformat/ { dformat++; pic++ } +/^\.TH.../ { man++ } +/^\.BM/ { lbits++ } +/^\.P$/ { mm++ } +/^\.BP/ { pictures++ } +/^\.PI/ { pictures++ } +END { + x = "" + if (refer) { + if (e) x = "refer -e " files " | " + else x = "refer " files "| " + files = "" + } + else if (prefer) { x = "cat " files "| '$prefer'| "; files = "" } + if (tped) { x = x "tped " files " | "; files = "" } + if (dag) { x = x "dag " files " | "; files = "" } + if (ideal) { x = x "ideal -q " files " | "; files = "" } + if (grap) { x = x "grap " files " | "; files = "" } + if (chem) { x = x "chem " files " | "; files = "" } + if (dformat) { x = x "dformat " files " | "; files = "" } + if (pic) { x = x "pic " files " | "; files = "" } + if (tbl) { x = x "tbl " files " | "; files = "" } + if (eqn) { x = x "'$eqn' '$dev' " files " | "; files = "" } + x = x "'$troff' " + if (man) x = x "-man" + else if (ms) x = x "-ms" + else if (mm) x = x "-mm" + if (lbits) x = x "-mbits" + if (pictures) x = x " -mpictures" + x = x " '$opt' '$dev' " files + print x +}' diff --git a/bin/lookman b/bin/lookman new file mode 100755 index 00000000..57e8d3cc --- /dev/null +++ b/bin/lookman @@ -0,0 +1,30 @@ +#!/usr/local/plan9/bin/rc +# Usage: lookman key ... +# prints out the names of all manual pages containing all the given keywords +index=/usr/local/plan9/man/lookman.index +t1=/tmp/look1.$pid +t2=/tmp/look2.$pid +fn sigexit sigint sighup sigterm{ + rm -f $t1 $t2 + exit 1 +} +*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_ \012'} # fold case, delete funny chars +if(~ $#* 0){ + echo Usage: lookman key ... >/fd/2 + exit 1 +} +look $1 $index|sed 's/.* //'|sort -u >$t1 +shift +for(i in $*){ + look $i $index|sed 's/.* //'|sort -u| + awk 'BEGIN { + while (getline < "'$t1'" > 0) table[$0] = 1; + } + { if (table[$0]) print } + ' > $t2 + mv $t2 $t1 +} +sort $t1 | sed 's;/usr/local/plan9/man/man[0-9]*/;; + s;(.*)\.(.*);man \2 \1 # \1(\2);' +rm -f $t1 $t2 +exit 0 diff --git a/bin/spell b/bin/spell new file mode 100755 index 00000000..3a6b4a3e --- /dev/null +++ b/bin/spell @@ -0,0 +1,21 @@ +#!/usr/local/plan9/bin/rc + +spellflags=() +deroffargs=() +fflag='' +for(x){ + switch($x){ + case -[abcvx] + spellflags=($spellflags $x) + case -f + fflag=$x + case * + if(~ $fflag -f) { + spellflags=($spellflags -f $x) + fflag='' + } + if not deroffargs=($deroffargs $x) + } +} + +deroff -w $deroffargs | sort -u | sprog $spellflags diff --git a/bin/start b/bin/start new file mode 100755 index 00000000..147f387b --- /dev/null +++ b/bin/start @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/local/plan9/bin/kill -CONT "$@" diff --git a/bin/stop b/bin/stop new file mode 100755 index 00000000..cbafb9da --- /dev/null +++ b/bin/stop @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/local/plan9/bin/kill -STOP "$@" diff --git a/bin/wintext b/bin/wintext new file mode 100755 index 00000000..93fe40ea --- /dev/null +++ b/bin/wintext @@ -0,0 +1,16 @@ +#!/bin/sh + +case "$winid" in +[0-9]*) + 9p read acme/$winid/body + exit 0 +esac + +case "$text9term" in +unix!*) + dial -e $text9term </dev/null + exit 0 +esac + +echo 'no running window found' 2>&1 +exit 1 |