~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Alexander Belchenko
  • Date: 2006-12-13 08:19:49 UTC
  • mto: This revision was merged to the branch mainline in revision 2204.
  • Revision ID: bialix@ukr.net-20061213081949-ec6sqdiwr3uh8ly4
Bugfix #55276: on win32 cat, bundle and diff commands provide binary output without mangling line-endings

Show diffs side-by-side

added added

removed removed

Lines of Context:
214
214
            replace - put in a bogus character (typically '?')
215
215
            exact - do not encode sys.stdout
216
216
 
 
217
    binary_stdout
 
218
        Typically output of Command use native line-endings on each
 
219
        platform. This leads to problems on win32 with some commands,
 
220
        because Windows convert LF to CRLF.
 
221
        If this attribute is True then output forced to binary
 
222
        (without such conversion) on Windows
217
223
    """
218
224
    aliases = []
219
225
    takes_args = []
220
226
    takes_options = []
221
227
    encoding_type = 'strict'
 
228
    binary_stdout = False
222
229
 
223
230
    hidden = False
224
231
    
243
250
        """Return a file linked to stdout, which has proper encoding."""
244
251
        assert self.encoding_type in ['strict', 'exact', 'replace']
245
252
 
 
253
        if sys.platform == 'win32' and self.binary_stdout:
 
254
            if hasattr(sys.stdout, 'fileno'):
 
255
                import msvcrt
 
256
                msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
 
257
 
246
258
        # Originally I was using self.stdout, but that looks
247
259
        # *way* too much like sys.stdout
248
260
        if self.encoding_type == 'exact':