comparison mercurial/templateutil.py @ 38228:8bded7eae26c

templater: consistently join() string-like object per character (BC) The old behavior was copied from join() of a lazy generator string, which was unified to the behavior of join() of a byte string by the previous patch. This patch fixes the mappable type to do the same.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 21 Apr 2018 17:15:11 +0900
parents 7824783a6d5e
children 7701c2d4a438
comparison
equal deleted inserted replaced
38227:1c8098cf560a 38228:8bded7eae26c
187 187
188 def itermaps(self, context): 188 def itermaps(self, context):
189 yield self.tomap() 189 yield self.tomap()
190 190
191 def join(self, context, mapping, sep): 191 def join(self, context, mapping, sep):
192 # TODO: just copies the old behavior where a value was a generator 192 w = makewrapped(context, mapping, self._value)
193 # yielding one item, but reconsider about it. join() over a string 193 return w.join(context, mapping, sep)
194 # has no consistent result because a string may be a bytes, or a
195 # generator yielding an item, or a generator yielding multiple items.
196 # Preserving all of the current behaviors wouldn't make any sense.
197 return self.show(context, mapping)
198 194
199 def show(self, context, mapping): 195 def show(self, context, mapping):
200 # TODO: switch gen to (context, mapping) API? 196 # TODO: switch gen to (context, mapping) API?
201 gen = self._gen 197 gen = self._gen
202 if gen is None: 198 if gen is None: