Mercurial > hg
comparison hgext/convert/common.py @ 36132:42a393ea56d2
convert: open all files in binary mode
Differential Revision: https://phab.mercurial-scm.org/D2220
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 12 Feb 2018 23:50:58 -0500 |
parents | 671aba341d90 |
children | 0f9e52f900c4 |
comparison
equal
deleted
inserted
replaced
36131:ce9f1c32810b | 36132:42a393ea56d2 |
---|---|
445 | 445 |
446 def _read(self): | 446 def _read(self): |
447 if not self.path: | 447 if not self.path: |
448 return | 448 return |
449 try: | 449 try: |
450 fp = open(self.path, 'r') | 450 fp = open(self.path, 'rb') |
451 except IOError as err: | 451 except IOError as err: |
452 if err.errno != errno.ENOENT: | 452 if err.errno != errno.ENOENT: |
453 raise | 453 raise |
454 return | 454 return |
455 for i, line in enumerate(util.iterfile(fp)): | 455 for i, line in enumerate(util.iterfile(fp)): |
469 fp.close() | 469 fp.close() |
470 | 470 |
471 def __setitem__(self, key, value): | 471 def __setitem__(self, key, value): |
472 if self.fp is None: | 472 if self.fp is None: |
473 try: | 473 try: |
474 self.fp = open(self.path, 'a') | 474 self.fp = open(self.path, 'ab') |
475 except IOError as err: | 475 except IOError as err: |
476 raise error.Abort( | 476 raise error.Abort( |
477 _('could not open map file %r: %s') % | 477 _('could not open map file %r: %s') % |
478 (self.path, encoding.strtolocal(err.strerror))) | 478 (self.path, encoding.strtolocal(err.strerror))) |
479 self.fp.write('%s %s\n' % (key, value)) | 479 self.fp.write('%s %s\n' % (key, value)) |