Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13932 - main/trunk/pym/_emerge
Date: Thu, 06 Aug 2009 09:27:58
Message-Id: E1MYzGP-0005ZY-9s@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-08-06 09:27:54 +0000 (Thu, 06 Aug 2009)
3 New Revision: 13932
4
5 Modified:
6 main/trunk/pym/_emerge/JobStatusDisplay.py
7 Log:
8 Convert unicode if necessary before writing to stdout.
9
10
11 Modified: main/trunk/pym/_emerge/JobStatusDisplay.py
12 ===================================================================
13 --- main/trunk/pym/_emerge/JobStatusDisplay.py 2009-08-06 09:18:49 UTC (rev 13931)
14 +++ main/trunk/pym/_emerge/JobStatusDisplay.py 2009-08-06 09:27:54 UTC (rev 13932)
15 @@ -73,6 +73,13 @@
16 temporarily overridden stdout."""
17 return sys.stdout
18
19 + def _write(self, s):
20 + if sys.hexversion < 0x3000000 and isinstance(s, unicode):
21 + # avoid potential UnicodeEncodeError
22 + s = s.encode('utf_8', 'replace')
23 + self.out.write(s)
24 + self.out.flush()
25 +
26 def _init_term(self):
27 """
28 Initialize term control codes.
29 @@ -110,23 +117,19 @@
30 return ">>> %s" % msg
31
32 def _erase(self):
33 - self.out.write(
34 + self._write(
35 self._term_codes['carriage_return'] + \
36 self._term_codes['clr_eol'])
37 - self.out.flush()
38 self._displayed = False
39
40 def _display(self, line):
41 - self.out.write(line)
42 - self.out.flush()
43 + self._write(line)
44 self._displayed = True
45
46 def _update(self, msg):
47
48 - out = self.out
49 if not self._isatty:
50 - out.write(self._format_msg(msg) + self._term_codes['newline'])
51 - self.out.flush()
52 + self._write(self._format_msg(msg) + self._term_codes['newline'])
53 self._displayed = True
54 return
55
56 @@ -142,8 +145,7 @@
57 if self._isatty and self._displayed:
58 self._erase()
59
60 - self.out.write(self._format_msg(msg) + self._term_codes['newline'])
61 - self.out.flush()
62 + self._write(self._format_msg(msg) + self._term_codes['newline'])
63 self._displayed = False
64
65 if was_displayed:
66 @@ -157,8 +159,7 @@
67 object.__setattr__(self, name, 0)
68
69 if self._displayed:
70 - self.out.write(self._term_codes['newline'])
71 - self.out.flush()
72 + self._write(self._term_codes['newline'])
73 self._displayed = False
74
75 def __setattr__(self, name, value):