soelim: import from Plan9

Add entry in lib/moveplan9.files to trigger
relocation during INSTALL.
This commit is contained in:
sean 2020-01-15 08:28:14 +00:00 committed by Dan Cross
parent 5c06214952
commit 40685d24d8
3 changed files with 47 additions and 0 deletions

16
bin/soelim Executable file
View file

@ -0,0 +1,16 @@
#!/usr/local/plan9/bin/rc
# joyless reimplementation of soelim
# the $0 recursion is a bit ugly
# canonicalise troff commands first with sed into ". so file" form.
# but the space after the dot has to come out; tbl can't cope with it.
# friggin' html macros can be longer than two characters; grrr.
sed '/^[.'']/{
s/([^\\])\\".*$/\1/
# s/^(.)[ ]*([^ \\][^ \\])[ ]*/\1 \2 /
s/^(.)[ ]*([^ \\][^ \\])/\1 \2/
}' $* | awk ' BEGIN { me = "'$0'" }
$1 !~ /^[.'']$/ { print; next }
$2 == "so" { system(me " " $3) ; next }
$2 == "nx" { system(me " " $3) ; exit }
{ print }' | sed 's/^([.'']) /\1/'

View file

@ -17,6 +17,7 @@ bin/netfilestat
bin/quote1 bin/quote1
bin/quote2 bin/quote2
bin/sig bin/sig
bin/soelim
bin/spell bin/spell
bin/src bin/src
bin/ssam bin/ssam

30
man/man1/soelim.1 Executable file
View file

@ -0,0 +1,30 @@
.TH SOELIM 1
.\" .so in the NAME line confuses the ptx machinery; sorry
.SH NAME
soelim \- preprocess so inclusion commands in troff input
.SH SYNOPSIS
.B soelim
[
.I files ...
]
.SH DESCRIPTION
.I Soelim
reads the specified files or the standard input and performs
the textual inclusion implied by
.IR troff (1)
directives of the form
.sp
.ti +2m
.B "\&.so some_file
.sp
when they appear at the beginning of input lines. This is useful when
using programs such as
.IR tbl (1)
that do not normally do this, allowing
placement of individual tables or other text objects in separate files
to be run as a part of a large document.
.SH SOURCE
.B /rc/bin/soelim
.SH "SEE ALSO"
.IR deroff (1),
.IR troff (1)