I want to use the function with a different default (empty dict, to be
specific) and this enables that.
Details
Details
- Reviewers
- None
- Group Reviewers
hg-reviewers
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Event Timeline
Comment Actions
+def decodeextra(text, default):
""" >>> from .pycompat import bytechr as chr
- >>> sorted(decodeextra(encodeextra({b'foo': b'bar', b'baz': chr(0) + b'2'})
- ... ).items())
+ >>> sorted(decodeextra(encodeextra({b'foo': b'bar', b'baz': chr(0) + b'2'}),
+ ... _defaultextra).items())[('baz', '\\x002'), ('branch', 'default'), ('foo', 'bar')] >>> sorted(decodeextra(encodeextra({b'foo': b'bar',
- ... b'baz': chr(92) + chr(0) + b'2'})
- ... ).items())
+ ... b'baz': chr(92) + chr(0) + b'2'}),
+ ... _defaultextra).items())
Maybe these tests update _defaultextra in place?
[('baz', '\\\\\\x002'), ('branch', 'default'), ('foo', 'bar')] """
- extra = _defaultextra.copy()
+ extra = default
I think it's safer to do default.copy() here.
for l in text.split('\0'): if l: k, v = _string_unescape(l).split(':', 1)@@ -275,7 +275,7 @@
if raw is None: return _defaultextra
- return decodeextra(raw)
+ return decodeextra(raw, _defaultextra.copy())
Comment Actions
Good point. I'll change it.
for l in text.split('\0'): if l: k, v = _string_unescape(l).split(':', 1)@@ -275,7 +275,7 @@
if raw is None: return _defaultextra
- return decodeextra(raw)
+ return decodeextra(raw, _defaultextra.copy())
Comment Actions
Oh, I actually don't need this patch anymore since I added the string_unescape() method. I'll drop this one.