From 36fd98f7e39b5ac55e4a3c4f687cccff9af3df73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcela=20Ma=C5=A1l=C3=A1=C5=88ov=C3=A1?= Date: Fri, 25 Jan 2008 07:46:15 +0000 Subject: [PATCH] Final realease of nroff. Reviewed-by: mlichvar and skasal --- nroff | 71 ++++++++++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 37 deletions(-) diff --git a/nroff b/nroff index 8cb508f..31a4d19 100644 --- a/nroff +++ b/nroff @@ -4,8 +4,7 @@ prog="$0" charset_in=iso-8859-1 charset_out=`locale charmap 2>/dev/null` -# we prefer utf8 -opts="-mtty-char -Tutf8" +opts="-mtty-char" for i do @@ -19,12 +18,10 @@ do exit 1 ;; -[iptSUC] | -[mrno]*) opts="$opts $1" ;; - # someone wants specified -T, let's change opts from utf8 -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean) - T=$1 ; - opts="-mtty-char $T";; + T=$1 ;; -[eq] | -s* | -u* | -T*) - # ignore other devices + # ignore these options ;; -v | --version) echo $"GNU nroff (groff) with Red Hat i18n/l10n support" @@ -49,6 +46,11 @@ do shift done +# Don't convert encodings when -T is specified +[ -n "$T" ] && exec /usr/bin/groff $opts $T ${1+"$@"} 2>/dev/null + +opts="$opts -Tutf8" + if TMPFILE=$(mktemp /tmp/man.XXXXXX 2>/dev/null); then trap "rm -f $TMPFILE" 0 1 2 3 15 cat ${1+"$@"} >| $TMPFILE @@ -57,48 +59,43 @@ else TMPFILE=buf fi -# if -T was set -> just run groff and quit nroff -if [ -n "$T" ]; then - /usr/bin/groff -mtty-char $opts ${TMPFILE} 2>/dev/null +if [ $TMPFILE = buf ]; then + echo -n "$buf" | iconv -f utf-8 -t utf-8 &>/dev/null && charset_in=utf-8 else - if [ $TMPFILE = buf ]; then - echo -n "$buf" | iconv -f utf-8 -t utf-8 &>/dev/null && charset_in=utf-8 - else - iconv -f utf-8 -t utf-8 $TMPFILE &>/dev/null && charset_in=utf-8 - fi + iconv -f utf-8 -t utf-8 $TMPFILE &>/dev/null && charset_in=utf-8 +fi - if [ $charset_in != utf-8 ]; then - echo XXX - echo XXX $"WARNING: old character encoding and/or character set" - echo XXX - fi +if [ $charset_in != utf-8 ]; then + 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 +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. - if [ $charset_in = utf-8 -a $charset_out = UTF-8 ]; then - if [ $TMPFILE = buf ]; then - echo -n "$buf" | /usr/bin/groff $opts 2>/dev/null - else - exec < $TMPFILE - rm -f $TMPFILE - exec /usr/bin/groff $opts 2>/dev/null - fi +if [ $charset_in = utf-8 -a $charset_out = UTF-8 ]; then + if [ $TMPFILE = buf ]; then + echo -n "$buf" | /usr/bin/groff $opts 2>/dev/null else - if [ $TMPFILE = buf ]; then - echo -n "$buf" | \ - /usr/bin/iconv -f $charset_in -t utf-8 | \ - /usr/bin/groff $opts 2>/dev/null | \ - /usr/bin/iconv -f utf-8 -t ${charset_out}//translit - else - /usr/bin/iconv -f $charset_in -t utf-8 $TMPFILE | \ + exec < $TMPFILE + rm -f $TMPFILE + exec /usr/bin/groff $opts 2>/dev/null + fi +else + if [ $TMPFILE = buf ]; then + echo -n "$buf" | \ + /usr/bin/iconv -f $charset_in -t utf-8 | \ /usr/bin/groff $opts 2>/dev/null | \ /usr/bin/iconv -f utf-8 -t ${charset_out}//translit + else + /usr/bin/iconv -f $charset_in -t utf-8 $TMPFILE | \ + /usr/bin/groff $opts 2>/dev/null | \ + /usr/bin/iconv -f utf-8 -t ${charset_out}//translit - rm -f $TMPFILE - fi + rm -f $TMPFILE fi fi # eof