groff/nroff
Jindrich Novy 8435167dae - require X dependencies only for gxditview (#177118)
- work if bash's noclobber is on (#127492)
2006-01-06 19:36:42 +00:00

74 lines
1.5 KiB
Bash

#!/bin/bash
# Emulate nroff with groff.
prog="$0"
charset_in=iso-8859-1
charset_out=`locale charmap 2>/dev/null`
opts=
for i
do
case $1 in
-c)
opts="$opts -P-c" ;;
-h)
opts="$opts -P-h" ;;
-[eq] | -s* | -u* | -T* )
# ignore these options
;;
-[mrnoT])
echo $"option $1 requires an argument" >&2
exit 1 ;;
-[iptSUC] | -[mrno]*)
opts="$opts $1" ;;
-v | --version)
echo $"GNU nroff (groff) with Red Hat i18n/l10n support"
exit 0 ;;
--legacy)
shift
charset_in=$1 ;;
--help)
echo $"usage: $prog [-cChipt] [-mNAME] [-nNUM] [--legacy CHARSET] [-oLIST] [-rCN] [FILE...]"
exit 0 ;;
--)
shift
break ;;
-)
break ;;
-*)
echo $"$prog: invalid option $1" >&2
exit 1 ;;
*)
break ;;
esac
shift
done
TMPFILE=$(mktemp /tmp/man.XXXXXX)
trap "rm -f $TMPFILE" 0 1 2 3 15
cat ${1+"$@"} >| ${TMPFILE}
if iconv -f utf-8 -t utf-8 -o /dev/null ${TMPFILE} 2>/dev/null
then
charset_in=utf-8
else
echo XXX
echo XXX $"WARNING: old character encoding and/or character set"
echo XXX
fi
# en_US is chosen arbitrarily; any UTF-8 locale should work
export LC_ALL=en_US.UTF-8
# This shell script is intended for use with man, so warnings are
# probably not wanted. Also load nroff-style character definitions.
/usr/bin/iconv -f ${charset_in} -t utf-8 ${TMPFILE} | \
/usr/bin/groff -mtty-char -Tutf8 $opts 2>/dev/null | \
/usr/bin/iconv -f utf-8 -t ${charset_out}//translit
rm -f ${TMPFILE}
# eof