Mercurial > hg
diff mercurial/formatter.py @ 36634:cafd0586876b
templater: byte-stringify dict/list values before passing to default format
bytestr() is applied only when no custom format string like '%d' is specified.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 01 Mar 2018 08:14:54 -0500 |
parents | 034a07e60e98 |
children | 6ff6e1d6b5b8 |
line wrap: on
line diff
--- a/mercurial/formatter.py Thu Mar 01 08:07:22 2018 -0500 +++ b/mercurial/formatter.py Thu Mar 01 08:14:54 2018 -0500 @@ -248,15 +248,20 @@ @staticmethod def formatdict(data, key, value, fmt, sep): '''stringify key-value pairs separated by sep''' + prefmt = pycompat.identity if fmt is None: fmt = '%s=%s' - return sep.join(fmt % (k, v) for k, v in _iteritems(data)) + prefmt = pycompat.bytestr + return sep.join(fmt % (prefmt(k), prefmt(v)) + for k, v in _iteritems(data)) @staticmethod def formatlist(data, name, fmt, sep): '''stringify iterable separated by sep''' + prefmt = pycompat.identity if fmt is None: fmt = '%s' - return sep.join(fmt % e for e in data) + prefmt = pycompat.bytestr + return sep.join(fmt % prefmt(e) for e in data) class plainformatter(baseformatter): '''the default text output scheme'''