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))