From ce8b802af9f4ec40cc7d9d58a9a4fd636acf9028 Mon Sep 17 00:00:00 2001 From: Marcela Mašláňová Date: Thu, 24 Jan 2008 15:33:10 +0000 Subject: Nroff is now fixed for working with or without -T option. --- nroff | 64 ++++++++++++++++++++++------------------ nroff.patch | 97 ------------------------------------------------------------- 2 files changed, 35 insertions(+), 126 deletions(-) delete mode 100644 nroff.patch diff --git a/nroff b/nroff index c65653e..8cb508f 100644 --- a/nroff +++ b/nroff @@ -4,6 +4,7 @@ prog="$0" charset_in=iso-8859-1 charset_out=`locale charmap 2>/dev/null` +# we prefer utf8 opts="-mtty-char -Tutf8" for i @@ -18,9 +19,10 @@ do exit 1 ;; -[iptSUC] | -[mrno]*) opts="$opts $1" ;; - -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean) - T=$1 ; - opts="-mtty-char $T";; + # someone wants specified -T, let's change opts from utf8 + -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean) + T=$1 ; + opts="-mtty-char $T";; -[eq] | -s* | -u* | -T*) # ignore other devices ;; @@ -55,44 +57,48 @@ else TMPFILE=buf fi -if [ $TMPFILE = buf ]; then - echo -n "$buf" | iconv -f utf-8 -t utf-8 &>/dev/null && charset_in=utf-8 +# if -T was set -> just run groff and quit nroff +if [ -n "$T" ]; then + /usr/bin/groff -mtty-char $opts ${TMPFILE} 2>/dev/null else - iconv -f utf-8 -t utf-8 $TMPFILE &>/dev/null && charset_in=utf-8 -fi + 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 -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 + 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 else - 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 | \ + 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 - 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 fi fi - # eof diff --git a/nroff.patch b/nroff.patch deleted file mode 100644 index 8b36ead..0000000 --- a/nroff.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff -up ./nroff.old ./nroff ---- ./nroff.old 2007-08-16 16:11:35.000000000 +0200 -+++ ./nroff 2008-01-23 14:22:19.000000000 +0100 -@@ -6,51 +6,6 @@ charset_in=iso-8859-1 - charset_out=`locale charmap 2>/dev/null` - opts="-mtty-char -Tutf8" - --# Default device. --# First try the "locale charmap" command, because it's most reliable. --# On systems where it doesn't exist, look at the environment variables. --case "`locale charmap 2>/dev/null`" in -- UTF-8) -- T=-Tutf8 ;; -- ISO-8859-1) -- T=-Tlatin1 ;; -- IBM-1047) -- T=-Tcp1047 ;; -- EUC-JP) -- T=-Tnippon ;; -- EUC-KR) -- T=-Tkorean ;; -- *) -- case "${LC_ALL-${LC_CTYPE-${LANG}}}" in -- *.UTF-8) -- T=-Tutf8 ;; -- iso_8859_1 | *.ISO-8859-1) -- T=-Tlatin1 ;; -- *.IBM-1047) -- T=-Tcp1047 ;; -- ja_JP.ujis | ja_JP.eucJP) -- T=-Tnippon ;; -- ko_KR.eucKR) -- T=-Tkorean ;; -- *) -- case "$LESSCHARSET" in -- utf-8) -- T=-Tutf8 ;; -- latin1) -- T=-Tlatin1 ;; -- cp1047) -- T=-Tcp1047 ;; -- japanese) -- T=-Tnippon ;; -- ko) -- T=-Tkorean ;; -- *) -- T=-Tascii8 ;; -- esac ;; -- esac ;; --esac -- -- - for i - do - case $1 in -@@ -58,19 +13,16 @@ do - opts="$opts -P-c" ;; - -h) - opts="$opts -P-h" ;; -- -[eq] | -s*) -- # ignore these options -- ;; - -[mrnoT]) - echo $"option $1 requires an argument" >&2 - exit 1 ;; - -[iptSUC] | -[mrno]*) - opts="$opts $1" ;; -- -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean) -- opts= -- T=$1 ;; -- -T*) -- # ignore other devices -+ -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean) -+ T=$1 ; -+ opts="-mtty-char $T";; -+ -[eq] | -s* | -u* | -T*) -+ # ignore other devices - ;; - -v | --version) - echo $"GNU nroff (groff) with Red Hat i18n/l10n support" -@@ -120,7 +72,6 @@ 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 -@@ -140,7 +91,7 @@ else - /usr/bin/groff $opts 2>/dev/null | \ - /usr/bin/iconv -f utf-8 -t ${charset_out}//translit - -- rm -f $TMPFILE -+ rm -f $TMPFILE - fi - fi - -- cgit