Mercurial > hg-stable
changeset 49085:1138674ecdb8
templates: make `firstline` filter not keep '\v', '\f' and similar
In b288b4bb8448 (hide some functions behind lambdas, so demandload is
useful., 2006-02-28), `x.splitlines(1)[0]` was replaced by
`x.splitlines(1)[0].rstrip('\r\n')`, i.e. stripping trailing '\r' and
'\n'. Combined with the "truthy" `1` passed to `splitlines()` to get
it to keep line endings, that results in e.g. trailing '\v' (Line
Tabulation) and '\f' (Form Feed) being preserved. I can't see why one
would want that, and I doubt that was the intention; I suspect the
author just didn't think to instead remove the `1` argument. Perhaps
they thought the 1 being passed there - added by themselves in
a7e416bf3c1d (improve templating., 2006-02-27) - was to limit the
number of splits to 1 (i.e. thinking about it as `maxsplit=1` rather
than `keepends=1`).
Differential Revision: https://phab.mercurial-scm.org/D12403
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 24 Mar 2022 15:41:29 -0700 |
parents | 455dce344c56 |
children | 51aed118f9dc |
files | mercurial/templatefilters.py |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templatefilters.py Tue Mar 22 11:22:09 2022 -0400 +++ b/mercurial/templatefilters.py Thu Mar 24 15:41:29 2022 -0700 @@ -269,7 +269,7 @@ def firstline(text): """Any text. Returns the first line of text.""" try: - return text.splitlines(True)[0].rstrip(b'\r\n') + return text.splitlines()[0] except IndexError: return b''