Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r13931 - in main/trunk/pym: _emerge portage/elog
Date: Thu, 06 Aug 2009 09:18:52
Message-Id: E1MYz7Z-0005MV-JF@stork.gentoo.org
1 Author: zmedico
2 Date: 2009-08-06 09:18:49 +0000 (Thu, 06 Aug 2009)
3 New Revision: 13931
4
5 Modified:
6 main/trunk/pym/_emerge/Scheduler.py
7 main/trunk/pym/_emerge/emergelog.py
8 main/trunk/pym/portage/elog/messages.py
9 Log:
10 Add unicode conversions in various logging code.
11
12
13 Modified: main/trunk/pym/_emerge/Scheduler.py
14 ===================================================================
15 --- main/trunk/pym/_emerge/Scheduler.py 2009-08-06 08:25:23 UTC (rev 13930)
16 +++ main/trunk/pym/_emerge/Scheduler.py 2009-08-06 09:18:49 UTC (rev 13931)
17 @@ -477,6 +477,10 @@
18 return self._pkg(cpv, type_name, root_config, installed=installed)
19
20 def _append_to_log_path(self, log_path, msg):
21 +
22 + if not isinstance(msg, unicode):
23 + msg = unicode(msg, encoding='utf_8', errors='replace')
24 +
25 f = codecs.open(log_path, mode='a',
26 encoding='utf_8', errors='replace')
27 try:
28
29 Modified: main/trunk/pym/_emerge/emergelog.py
30 ===================================================================
31 --- main/trunk/pym/_emerge/emergelog.py 2009-08-06 08:25:23 UTC (rev 13930)
32 +++ main/trunk/pym/_emerge/emergelog.py 2009-08-06 09:18:49 UTC (rev 13931)
33 @@ -19,6 +19,13 @@
34 _emerge_log_dir = '/var/log'
35
36 def emergelog(xterm_titles, mystr, short_msg=None):
37 +
38 + if not isinstance(mystr, unicode):
39 + mystr = unicode(mystr, encoding='utf_8', errors='replace')
40 +
41 + if short_msg is not None and not isinstance(short_msg, unicode):
42 + short_msg = unicode(short_msg, encoding='utf_8', errors='replace')
43 +
44 if xterm_titles and short_msg:
45 if "HOSTNAME" in os.environ:
46 short_msg = os.environ["HOSTNAME"]+": "+short_msg
47
48 Modified: main/trunk/pym/portage/elog/messages.py
49 ===================================================================
50 --- main/trunk/pym/portage/elog/messages.py 2009-08-06 08:25:23 UTC (rev 13930)
51 +++ main/trunk/pym/portage/elog/messages.py 2009-08-06 09:18:49 UTC (rev 13931)
52 @@ -79,16 +79,24 @@
53
54 global _msgbuffer
55
56 - if color == None:
57 + if out is None:
58 + out = sys.stdout
59 +
60 + if color is None:
61 color = "GOOD"
62
63 + if not isinstance(msg, unicode):
64 + msg = unicode(msg, encoding='utf_8', errors='replace')
65 +
66 formatted_msg = colorize(color, " * ") + msg + "\n"
67
68 - if out is None:
69 - sys.stdout.write(formatted_msg)
70 - else:
71 - out.write(formatted_msg)
72 + if sys.hexversion < 0x3000000 and \
73 + out in (sys.stdout, sys.stderr) and isinstance(formatted_msg, unicode):
74 + # avoid potential UnicodeEncodeError
75 + formatted_msg = formatted_msg.encode('utf_8', 'replace')
76
77 + out.write(formatted_msg)
78 +
79 if key not in _msgbuffer:
80 _msgbuffer[key] = {}
81 if phase not in _msgbuffer[key]: