1151503Sru#! /bin/sh 218099Spst# Emulate nroff with groff. 351607Sphantom# $FreeBSD$ 418099Spst 518099Spstprog="$0" 618099Spst# Default device. 769631Sru# First try the "locale charmap" command, because it's most reliable. 869631Sru# On systems where it doesn't exist, look at the environment variables. 9151503Srucase "`exec 2>/dev/null ; locale charmap`" in 10151503Sru UTF-8) 11151503Sru T=-Tutf8 ;; 12121879Sru ISO*8859-1 | ISO*8859-15) 13121879Sru T=-Tlatin1 ;; 14121879Sru KOI8-R) 15121879Sru T=-Tkoi8-r ;; 1669631Sru IBM-1047) 1769631Sru T=-Tcp1047 ;; 1869631Sru *) 1969631Sru case "${LC_ALL-${LC_CTYPE-${LANG}}}" in 20151503Sru *.UTF-8) 21151503Sru T=-Tutf8 ;; 22151503Sru iso_8859_1 | *.ISO-8859-1 | *.ISO8859-1 | \ 23151503Sru iso_8859_15 | *.ISO-8859-15 | *.ISO8859-15) 24121879Sru T=-Tlatin1 ;; 25121879Sru *.KOI8-R) 26121879Sru T=-Tkoi8-r ;; 2769631Sru *.IBM-1047) 2869631Sru T=-Tcp1047 ;; 2969631Sru *) 3069631Sru case "$LESSCHARSET" in 31151503Sru utf-8) 32151503Sru T=-Tutf8 ;; 33121879Sru latin1) 34121879Sru T=-Tlatin1 ;; 35121879Sru koi8-r) 36121879Sru T=-Tkoi8-r ;; 3769631Sru cp1047) 3869631Sru T=-Tcp1047 ;; 3969631Sru *) 4069631Sru T=-Tascii ;; 4169631Sru esac ;; 4269631Sru esac ;; 4369631Sruesac 4418099Spstopts= 4518099Spst 4669631Sru# `for i; do' doesn't work with some versions of sh 4769631Sru 4818099Spstfor i 4969631Sru do 5069631Sru case $1 in 51104868Sru -c) 52104868Sru opts="$opts -P-c" ;; 5369631Sru -h) 5469631Sru opts="$opts -P-h" ;; 5569631Sru -[eq] | -s*) 5669631Sru # ignore these options 5769631Sru ;; 58151503Sru -[dMmrnoT]) 5969631Sru echo "$prog: option $1 requires an argument" >&2 6069631Sru exit 1 ;; 61151503Sru -[iptSUC] | -[dMmrno]*) 6269631Sru opts="$opts $1" ;; 6369631Sru -Tascii | -Tlatin1 | -Tkoi8-r | -Tutf8 | -Tcp1047) 6469631Sru T=$1 ;; 6569631Sru -T*) 6669631Sru # ignore other devices 6769631Sru ;; 6869631Sru -u*) 69151503Sru # Solaris 2.2 through at least Solaris 9 `man' invokes 70151503Sru # `nroff -u0 ... | col -x'. Ignore the -u0, 7169631Sru # since `less' and `more' can use the emboldening info. 72151503Sru # However, disable SGR, since Solaris `col' mishandles it. 73151503Sru opts="$opts -P-c" ;; 7475590Sru -v | --version) 7575590Sru echo "GNU nroff (groff) version @VERSION@" 7675590Sru exit 0 ;; 7775590Sru --help) 78151503Sru echo "usage: nroff [-CchipStUv] [-dCS] [-MDIR] [-mNAME] [-nNUM] [-oLIST]" 79151503Sru echo " [-rCN] [-Tname] [FILE...]" 8075590Sru exit 0 ;; 8169631Sru --) 8269631Sru shift 8369631Sru break ;; 8469631Sru -) 8569631Sru break ;; 8669631Sru -*) 8769631Sru echo "$prog: invalid option $1" >&2 8869631Sru exit 1 ;; 8969631Sru *) 9069631Sru break ;; 9169631Sru esac 9269631Sru shift 9318099Spstdone 9418099Spst 95151503Sru# Set up the `GROFF_BIN_PATH' variable 96151503Sru# to be exported in the current `GROFF_RUNTIME' environment. 97151503Sru 98151503Sru@GROFF_BIN_PATH_SETUP@ 99151503Sruexport GROFF_BIN_PATH 100151503Sru 10118099Spst# This shell script is intended for use with man, so warnings are 10218099Spst# probably not wanted. Also load nroff-style character definitions. 10375590Sru 104151503SruPATH="$GROFF_RUNTIME$PATH" groff -mtty-char $T $opts ${1+"$@"} 10575590Sru 10675590Sru# eof 107