summaryrefslogtreecommitdiff
path: root/kconfiglib.py
diff options
context:
space:
mode:
Diffstat (limited to 'kconfiglib.py')
-rw-r--r--kconfiglib.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/kconfiglib.py b/kconfiglib.py
index f1a254d..550c347 100644
--- a/kconfiglib.py
+++ b/kconfiglib.py
@@ -3671,17 +3671,17 @@ def expr_str(expr):
_REL_TO_STR[expr[0]],
expr_str(expr[2]))
-# escape()/unescape() helpers
-_escape_re_sub = re.compile(r'(["\\])').sub
-_unescape_re_sub = re.compile(r"\\(.)").sub
-
def escape(s):
r"""
Escapes the string 's' in the same fashion as is done for display in
Kconfig format and when writing strings to a .config file. " and \ are
replaced by \" and \\, respectively.
"""
- return _escape_re_sub(r"\\\1", s)
+ # \ must be escaped before " to avoid double escaping
+ return s.replace("\\", r"\\").replace('"', r'\"')
+
+# unescape() helper
+_unescape_re_sub = re.compile(r"\\(.)").sub
def unescape(s):
r"""