equal
deleted
inserted
replaced
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 |