aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2014-10-21 20:36:33 -0600
committerbors-servo <metajack+bors@gmail.com>2014-10-21 20:36:33 -0600
commitcf789e40c58179f1a314439f53e8c8be9a5da6b7 (patch)
treed2fff2e639a5008b3027be2a3fd0f2a054470214
parent691e42f7ef9005b2466bff85eee21e0363c77050 (diff)
parent38ccbe61ae2c22281279b4130c75c48658984d2e (diff)
downloadservo-cf789e40c58179f1a314439f53e8c8be9a5da6b7.tar.gz
servo-cf789e40c58179f1a314439f53e8c8be9a5da6b7.zip
auto merge of #3751 : fabricedesre/servo/update-toml, r=metajack
-rw-r--r--python/toml/toml.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/python/toml/toml.py b/python/toml/toml.py
index 8b3ecb67a2a..aa43ecae941 100644
--- a/python/toml/toml.py
+++ b/python/toml/toml.py
@@ -1,4 +1,4 @@
-import datetime, decimal
+import datetime, decimal, re
try:
_range = xrange
@@ -42,7 +42,7 @@ def loads(s):
sl = list(s)
openarr = 0
openstring = False
- arrayoftables = True
+ arrayoftables = False
beginline = True
keygroup = False
delnum = 1
@@ -79,7 +79,7 @@ def loads(s):
keygroup = True
else:
openarr += 1
- if sl[i] == ']' and not openstring and not keygroup and not arrayoftables:
+ if sl[i] == ']' and not openstring:
if keygroup:
keygroup = False
elif arrayoftables:
@@ -251,10 +251,10 @@ def load_value(v):
newv += unicode(hx[len(hxb):])
v = newv
for i in range(len(escapes)):
- v = v.replace("\\"+escapes[i], escapedchars[i])
- # (where (n) signifies a member of escapes:
- # undo (\\)(\\)(n) -> (\\)(\n)
- v = v.replace("\\"+escapedchars[i], "\\\\"+escapes[i])
+ if escapes[i] == '\\':
+ v = v.replace("\\"+escapes[i], escapedchars[i])
+ else:
+ v = re.sub("([^\\\\](\\\\\\\\)*)\\\\"+escapes[i], "\\1"+escapedchars[i], v)
return (v[1:-1], "str")
elif v[0] == '[':
return (load_array(v), "array")