units/units-2.10-bz1082335.patch
2014-03-31 15:04:11 +02:00

36 lines
1.2 KiB
Diff

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