url: add cgi.escape equivalent for bytestrings
This seems like a sensible enough place to put it.
Differential Revision: https://phab.mercurial-scm.org/D1066
--- a/mercurial/url.py Thu Oct 05 14:15:05 2017 -0400
+++ b/mercurial/url.py Sat Oct 14 02:57:26 2017 -0400
@@ -30,6 +30,21 @@
urlerr = util.urlerr
urlreq = util.urlreq
+def escape(s, quote=None):
+ '''Replace special characters "&", "<" and ">" to HTML-safe sequences.
+ If the optional flag quote is true, the quotation mark character (")
+ is also translated.
+
+ This is the same as cgi.escape in Python, but always operates on
+ bytes, whereas cgi.escape in Python 3 only works on unicodes.
+ '''
+ s = s.replace(b"&", b"&")
+ s = s.replace(b"<", b"<")
+ s = s.replace(b">", b">")
+ if quote:
+ s = s.replace(b'"', b""")
+ return s
+
class passwordmgr(object):
def __init__(self, ui, passwddb):
self.ui = ui