aboutsummaryrefslogtreecommitdiffstats
path: root/python/toml/toml.py
diff options
context:
space:
mode:
authorFabrice Desré <fabrice@desre.org>2014-10-20 22:20:15 -0700
committerFabrice Desré <fabrice@desre.org>2014-10-20 22:20:15 -0700
commit38ccbe61ae2c22281279b4130c75c48658984d2e (patch)
tree9da80302030357fc2e502bc86081354d6521f771 /python/toml/toml.py
parentf6941b35e3b945f4a6dcd2cf03daa345ad2bcaed (diff)
downloadservo-38ccbe61ae2c22281279b4130c75c48658984d2e.tar.gz
servo-38ccbe61ae2c22281279b4130c75c48658984d2e.zip
Update toml.py to upstream 1069d2449760525535ca77514a92e9237ee0deaf
Diffstat (limited to 'python/toml/toml.py')
-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")