diff options
Diffstat (limited to 'src/roff/nroff/nroff.sh')
-rw-r--r-- | src/roff/nroff/nroff.sh | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/roff/nroff/nroff.sh b/src/roff/nroff/nroff.sh new file mode 100644 index 00000000..a199541d --- /dev/null +++ b/src/roff/nroff/nroff.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# Emulate nroff with groff. + +prog="$0" +# Default device. +# First try the "locale charmap" command, because it's most reliable. +# On systems where it doesn't exist, look at the environment variables. +case "`locale charmap 2>/dev/null`" in + UTF-8 ) T=-Tutf8 ;; + ISO-8859-1 ) T=-Tlatin1 ;; + *) + case "${LC_ALL-${LC_CTYPE-${LANG}}}" in + *.UTF-8 ) T=-Tutf8 ;; + iso_8859_1 | *.ISO-8859-1 ) T=-Tlatin1 ;; + *) + case "$LESSCHARSET" in + utf-8 ) T=-Tutf8 ;; + latin1 ) T=-Tlatin1 ;; + *) T=-Tascii ;; + esac + ;; + esac + ;; +esac +opts= +safer=-S + +for i +do + case $1 in + -h) + opts="$opts -P-h" + ;; + -[eq]|-s*) + # ignore these options + ;; + -[mrnoT]) + echo "$prog: option $1 requires an argument" >&2 + exit 1 + ;; + -i|-[mrno]*) + opts="$opts $1"; + ;; + + -Tascii|-Tlatin1|-Tutf8) + T=$1 + ;; + -T*) + # ignore other devices + ;; + -S) + # safer behaviour + safer=-S + ;; + -U) + # unsafe behaviour + safer=-U + ;; + -u*) + # Solaris 2.2 `man' uses -u0; ignore it, + # since `less' and `more' can use the emboldening info. + ;; + --) + shift + break + ;; + -) + break + ;; + -*) + echo "$prog: invalid option $1" >&2 + exit 1 + ;; + *) + break + ;; + esac + shift +done + +# This shell script is intended for use with man, so warnings are +# probably not wanted. Also load nroff-style character definitions. +exec groff $safer -Wall -mtty-char $T $opts ${1+"$@"} |