~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

codecs.getwriter() doesn't set '.encoding' properly, so do the work for it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
240
240
            input_encoding = getattr(sys.stdin, 'encoding', None)
241
241
            if not input_encoding:
242
242
                output_encoding = bzrlib.user_encoding
243
 
                mutter('encoding stdout bzrlib.user_encoding %r', output_encoding)
 
243
                mutter('encoding stdout as bzrlib.user_encoding %r', output_encoding)
244
244
            else:
245
245
                output_encoding = input_encoding
246
 
                mutter('encoding stdout log as sys.stdin encoding %r', output_encoding)
 
246
                mutter('encoding stdout as sys.stdin encoding %r', output_encoding)
247
247
        else:
248
 
            mutter('encoding stdout log as sys.stdout encoding %r', output_encoding)
 
248
            mutter('encoding stdout as sys.stdout encoding %r', output_encoding)
249
249
 
250
250
        # use 'replace' so that we don't abort if trying to write out
251
251
        # in e.g. the default C locale.
252
252
        self.outf = codecs.getwriter(output_encoding)(sys.stdout, errors=self.encoding_type)
 
253
        # For whatever reason codecs.getwriter() does not advertise its encoding
 
254
        # it just returns the encoding of the wrapped file, which is completely
 
255
        # bogus. So set the attribute, so we can find the correct encoding later.
 
256
        self.outf.encoding = output_encoding
253
257
 
254
258
    @deprecated_method(zero_eight)
255
259
    def run_argv(self, argv):