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