瀏覽代碼

Avoid failing concat for multi-encoding filenames

repo status should output filenames one by one instead of trying to
build a string from incompatible encodings (like utf-8 and sjis
filenames)

Change-Id: I52282236ececa562f109f9ea4b2e971d2b4bc045
Cezary Baginski 13 年之前
父節點
當前提交
ccf86432b3
共有 1 個文件被更改,包括 9 次插入2 次删除
  1. 9 2
      subcmds/status.py

+ 9 - 2
subcmds/status.py

@@ -111,14 +111,21 @@ the following meanings:
       threads_and_output = []
       for project in all:
         sem.acquire()
-        output = StringIO.StringIO()
+
+        class BufList(StringIO.StringIO):
+          def dump(self, ostream):
+            for entry in self.buflist:
+              ostream.write(entry)
+
+        output = BufList()
+
         t = _threading.Thread(target=self._StatusHelper,
                               args=(project, counter, sem, output))
         threads_and_output.append((t, output))
         t.start()
       for (t, output) in threads_and_output:
         t.join()
-        sys.stdout.write(output.getvalue())
+        output.dump(sys.stdout)
         output.close()
     if len(all) == counter.next():
       print 'nothing to commit (working directory clean)'