diff mercurial/parser.py @ 26231:87c9c562c37a

parser: move unescape helper from templater revset and fileset have a similar problem, so let's make it a common helper function.
author Yuya Nishihara <yuya@tcha.org>
date Thu, 10 Sep 2015 23:25:10 +0900
parents 7448df709b2e
children 639e0f1e8ffa
line wrap: on
line diff
--- a/mercurial/parser.py	Thu Sep 10 16:14:39 2015 -0700
+++ b/mercurial/parser.py	Thu Sep 10 23:25:10 2015 +0900
@@ -122,6 +122,13 @@
         args[k] = x[2]
     return args
 
+def unescapestr(s):
+    try:
+        return s.decode("string_escape")
+    except ValueError as e:
+        # mangle Python's exception into our format
+        raise error.ParseError(str(e).lower())
+
 def _prettyformat(tree, leafnodes, level, lines):
     if not isinstance(tree, tuple) or tree[0] in leafnodes:
         lines.append((level, str(tree)))