summaryrefslogtreecommitdiff
path: root/src/roff/nroff/nroff.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/roff/nroff/nroff.sh')
-rw-r--r--src/roff/nroff/nroff.sh83
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+"$@"}