summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcela Mašláňová <mmaslano@fedoraproject.org>2007-08-16 11:34:13 +0000
committerMarcela Mašláňová <mmaslano@fedoraproject.org>2007-08-16 11:34:13 +0000
commitba30fcda70d66a7ac97d6a7fd299367041fcb43c (patch)
tree45a666ac1651be4c35932e05dee18fcc609f0832
parent4086ba1d56d698167c6f20af53a678103005f6b5 (diff)
Nroff was changed: man pages are printed, when partion is ro and othergroff-1_18_1_4-5_fc7
encoding could be print correct.
-rw-r--r--groff.spec6
-rw-r--r--nroff101
2 files changed, 94 insertions, 13 deletions
diff --git a/groff.spec b/groff.spec
index 099b71d..d0fcbf7 100644
--- a/groff.spec
+++ b/groff.spec
@@ -3,7 +3,7 @@
Summary: A document formatting system
Name: groff
Version: 1.18.1.4
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPL
Group: Applications/Publishing
URL: http://groff.ffii.org
@@ -233,6 +233,10 @@ exit 0
%endif
%changelog
+* Thu Aug 16 2007 Marcela Maslanova <mmaslano@redhat.com> - 1.18.1.4-5
+- nroff was changed: man pages are printed, when partion is ro and
+ other encoding could be print correct
+
* Tue Feb 27 2007 Marcela Maslanova <mmaslano@redhat.com> - 1.18.1.4-4
- merge review
- rhbz#225859 review
diff --git a/nroff b/nroff
index 2c7f3d0..5588a4f 100644
--- a/nroff
+++ b/nroff
@@ -5,6 +5,51 @@ prog="$0"
charset_in=iso-8859-1
charset_out=`locale charmap 2>/dev/null`
opts=
+othercoding=0
+
+# 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
@@ -13,7 +58,7 @@ do
opts="$opts -P-c" ;;
-h)
opts="$opts -P-h" ;;
- -[eq] | -s* | -u* | -T* )
+ -[eq] | -s*)
# ignore these options
;;
-[mrnoT])
@@ -21,6 +66,12 @@ do
exit 1 ;;
-[iptSUC] | -[mrno]*)
opts="$opts $1" ;;
+ -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon | -Tkorean)
+ othercoding=1
+ T=$1 ;;
+ -T*)
+ # ignore other devices
+ ;;
-v | --version)
echo $"GNU nroff (groff) with Red Hat i18n/l10n support"
exit 0 ;;
@@ -44,15 +95,21 @@ do
shift
done
-TMPFILE=$(mktemp /tmp/man.XXXXXX)
-trap "rm -f $TMPFILE" 0 1 2 3 15
-
-cat ${1+"$@"} >| ${TMPFILE}
+if TMPFILE=$(mktemp /tmp/man.XXXXXX 2>/dev/null); then
+ trap "rm -f $TMPFILE" 0 1 2 3 15
+ cat ${1+"$@"} >| $TMPFILE
+else
+ buf=$(cat ${1+"$@"})
+ TMPFILE=buf
+fi
-if iconv -f utf-8 -t utf-8 -o /dev/null ${TMPFILE} 2>/dev/null
-then
- charset_in=utf-8
+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
@@ -63,11 +120,31 @@ 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 [ "$othercoding" == 0 ]; then
+ opts="-mtty-char -Tutf8"
+fi
-/usr/bin/iconv -f ${charset_in} -t utf-8 ${TMPFILE} | \
- /usr/bin/groff -mtty-char -Tutf8 $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
+ 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}
-
+ rm -f $TMPFILE
+ fi
+fi
+
# eof