Mercurial > public > mercurial-scm > hg
comparison mercurial/changelog.py @ 37084:f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
This might conflict with other patches floating around, sorry.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 22 Mar 2018 21:56:20 +0900 |
parents | c6061cadb400 |
children | e7aa113b14f7 |
comparison
equal
deleted
inserted
replaced
37083:f99d64e8a4e4 | 37084:f0b6fbea00cf |
---|---|
22 error, | 22 error, |
23 pycompat, | 23 pycompat, |
24 revlog, | 24 revlog, |
25 util, | 25 util, |
26 ) | 26 ) |
27 from .utils import dateutil | 27 from .utils import ( |
28 dateutil, | |
29 stringutil, | |
30 ) | |
28 | 31 |
29 _defaultextra = {'branch': 'default'} | 32 _defaultextra = {'branch': 'default'} |
30 | 33 |
31 def _string_escape(text): | 34 def _string_escape(text): |
32 """ | 35 """ |
34 >>> d = {b'nl': chr(10), b'bs': chr(92), b'cr': chr(13), b'nul': chr(0)} | 37 >>> d = {b'nl': chr(10), b'bs': chr(92), b'cr': chr(13), b'nul': chr(0)} |
35 >>> s = b"ab%(nl)scd%(bs)s%(bs)sn%(nul)sab%(cr)scd%(bs)s%(nl)s" % d | 38 >>> s = b"ab%(nl)scd%(bs)s%(bs)sn%(nul)sab%(cr)scd%(bs)s%(nl)s" % d |
36 >>> s | 39 >>> s |
37 'ab\\ncd\\\\\\\\n\\x00ab\\rcd\\\\\\n' | 40 'ab\\ncd\\\\\\\\n\\x00ab\\rcd\\\\\\n' |
38 >>> res = _string_escape(s) | 41 >>> res = _string_escape(s) |
39 >>> s == util.unescapestr(res) | 42 >>> s == stringutil.unescapestr(res) |
40 True | 43 True |
41 """ | 44 """ |
42 # subset of the string_escape codec | 45 # subset of the string_escape codec |
43 text = text.replace('\\', '\\\\').replace('\n', '\\n').replace('\r', '\\r') | 46 text = text.replace('\\', '\\\\').replace('\n', '\\n').replace('\r', '\\r') |
44 return text.replace('\0', '\\0') | 47 return text.replace('\0', '\\0') |
60 if '\\0' in l: | 63 if '\\0' in l: |
61 # fix up \0 without getting into trouble with \\0 | 64 # fix up \0 without getting into trouble with \\0 |
62 l = l.replace('\\\\', '\\\\\n') | 65 l = l.replace('\\\\', '\\\\\n') |
63 l = l.replace('\\0', '\0') | 66 l = l.replace('\\0', '\0') |
64 l = l.replace('\n', '') | 67 l = l.replace('\n', '') |
65 k, v = util.unescapestr(l).split(':', 1) | 68 k, v = stringutil.unescapestr(l).split(':', 1) |
66 extra[k] = v | 69 extra[k] = v |
67 return extra | 70 return extra |
68 | 71 |
69 def encodeextra(d): | 72 def encodeextra(d): |
70 # keys must be sorted to produce a deterministic changelog entry | 73 # keys must be sorted to produce a deterministic changelog entry |