aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/9ar1
-rwxr-xr-xbin/doctype74
-rwxr-xr-xbin/lookman30
-rwxr-xr-xbin/spell21
-rwxr-xr-xbin/start3
-rwxr-xr-xbin/stop3
-rwxr-xr-xbin/wintext16
7 files changed, 147 insertions, 1 deletions
diff --git a/bin/9ar b/bin/9ar
index 94f99ba9..42c61379 100755
--- a/bin/9ar
+++ b/bin/9ar
@@ -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