This is an archive of the discontinued Mercurial Phabricator instance.

templates: make `firstline` filter not keep '\v', '\f' and similar
ClosedPublic

Authored by martinvonz on Mar 25 2022, 1:38 AM.

Details

Summary

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).

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.