mercurial/util.py
changeset 33682 1d5e497c08b3
parent 33619 609606d21765
child 33736 86aca74a063b
equal deleted inserted replaced
33681:8626b44516c1 33682:1d5e497c08b3
  2265     # Python 3 compatibility
  2265     # Python 3 compatibility
  2266     return codecs.escape_encode(s)[0]
  2266     return codecs.escape_encode(s)[0]
  2267 
  2267 
  2268 def unescapestr(s):
  2268 def unescapestr(s):
  2269     return codecs.escape_decode(s)[0]
  2269     return codecs.escape_decode(s)[0]
       
  2270 
       
  2271 def forcebytestr(obj):
       
  2272     """Portably format an arbitrary object (e.g. exception) into a byte
       
  2273     string."""
       
  2274     try:
       
  2275         return pycompat.bytestr(obj)
       
  2276     except UnicodeEncodeError:
       
  2277         # non-ascii string, may be lossy
       
  2278         return pycompat.bytestr(encoding.strtolocal(str(obj)))
  2270 
  2279 
  2271 def uirepr(s):
  2280 def uirepr(s):
  2272     # Avoid double backslash in Windows path repr()
  2281     # Avoid double backslash in Windows path repr()
  2273     return repr(s).replace('\\\\', '\\')
  2282     return repr(s).replace('\\\\', '\\')
  2274 
  2283