今日の成果

  • 例外クラスがformat stringにbyte stringを使っていたので、"%s" % (foo,) みたいな部分で foo.__unicode__ ではなくて foo.__str__ が呼ばれてしまっていた。 __str__ を使うとunicodeのパスをutf8にencodeしてしまうクラスがあり、Windowsでエラーを出すとutf8でエンコードされた日本語パスが文字化けしていた。とりあえず目に付くフォーマット文字列に u を付けまくった。フォーマット文字列自体がascii文字しか含んでいなくても%sを使うならunicodeを使うべきって、ASCII圏の人は気づきにくい点の一つだな。
  • qbzr が、 bzr が文字化けしたエラーを出力したときに UnicodeDecodeErrorでクラッシュしていたので、stderrをdecodeするときに error='replace' するようにした.
  • qbzr が PyQt 4.5 に対応していない問題に対応するブランチがqbzrのtrunkに取り残されていたので、trunkの変更点をmergeした。

全部launchpad上にpushして、バグ登録してbranchを関連付けた。2.0が出る前には取り込んでもらいたいな。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。