comparison mercurial/util.py @ 36629:c98d1c6763a6

util: teach escapedata() about bytearray re.map doesn't seem to know about bytearray (at least in Python 2). Cast bytearray to a bytes to work around this inconvenience. Differential Revision: https://phab.mercurial-scm.org/D2582
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 02 Mar 2018 22:47:18 -0500
parents c6061cadb400
children 29128309c52d
comparison
equal deleted inserted replaced
36628:70415568ea65 36629:c98d1c6763a6
700 b'\n': br'\n', 700 b'\n': br'\n',
701 }) 701 })
702 DATA_ESCAPE_RE = remod.compile(br'[\x00-\x08\x0a-\x1f\\\x7f-\xff]') 702 DATA_ESCAPE_RE = remod.compile(br'[\x00-\x08\x0a-\x1f\\\x7f-\xff]')
703 703
704 def escapedata(s): 704 def escapedata(s):
705 if isinstance(s, bytearray):
706 s = bytes(s)
707
705 return DATA_ESCAPE_RE.sub(lambda m: DATA_ESCAPE_MAP[m.group(0)], s) 708 return DATA_ESCAPE_RE.sub(lambda m: DATA_ESCAPE_MAP[m.group(0)], s)
706 709
707 class fileobjectobserver(object): 710 class fileobjectobserver(object):
708 """Logs file object activity.""" 711 """Logs file object activity."""
709 def __init__(self, fh, name, reads=True, writes=True, logdata=False): 712 def __init__(self, fh, name, reads=True, writes=True, logdata=False):