8435167dae
- work if bash's noclobber is on (#127492)
74 lines
1.5 KiB
Bash
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
|