improve utf-8 support in the units_cur script

This commit is contained in:
Kamil Dudka 2014-03-31 15:01:47 +02:00
parent e50fd20988
commit b4cef9b392
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,35 @@
From 767f49f2d3e6ded0f2e01563fcf2d272aa6a7141 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Mon, 31 Mar 2014 14:38:57 +0200
Subject: [PATCH] units_cur2: encode utf-8 for sys.stdout, too
Otherwise, the script ends up with the following error:
$ python2 ./units_cur2 - | cat
./units_cur2:53: RuntimeWarning: Argument <type 'str'> is not an unicode object. Passing an encoded string will likely have unexpected results.
ascii = unidecode(names[i])
Traceback (most recent call last):
File "./units_cur2", line 114, in <module>
outfile.write(outstr.replace('\n',os.linesep))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 41: ordinal not in range(128)
---
units_cur2 | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/units_cur2 b/units_cur2
index 7d4e8f5..d810be5 100755
--- a/units_cur2
+++ b/units_cur2
@@ -104,7 +104,8 @@ for metal in metals:
try:
if outfile == '-':
- outfile = sys.stdout
+ info = codecs.lookup('utf8')
+ outfile = codecs.StreamReaderWriter(sys.stdout, info.streamreader, info.streamwriter)
else:
outfile = codecs.open(outfile,'w','utf8')
except IOError, exc:
--
1.7.1

View File

@ -3,6 +3,7 @@ Name: units
Version: 2.10
Release: 2%{?dist}
Source: ftp://ftp.gnu.org/gnu/units/%{name}-%{version}.tar.gz
Patch0: units-2.10-bz1082335.patch
URL: http://www.gnu.org/software/units/units.html
License: GPLv3+
Group: Applications/Engineering
@ -23,6 +24,8 @@ well as conversions such as Fahrenheit to Celsius.
%prep
%setup -q
%patch0 -p1
touch units_cur3
%build
%configure
@ -59,6 +62,7 @@ fi
%changelog
* Mon Mar 31 2014 Kamil Dudka <kdudka@redhat.com> - 2.10-2
- require python-unidecode used by the units_cur script
- improve utf-8 support in the units_cur script
* Thu Mar 27 2014 Kamil Dudka <kdudka@redhat.com> - 2.10-1
- new upstream release