]> git.ipfire.org Git - thirdparty/git.git/commit
grep: stop modifying buffer in strip_timestamp
authorJeff King <peff@peff.net>
Tue, 21 Sep 2021 03:46:56 +0000 (23:46 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Sep 2021 18:59:50 +0000 (11:59 -0700)
commitcc8e26ee8d56dbdb442796a43aa7f30d3684b036
tree69fb5f58e73901ee17867c4b86631e4f34d0e1fb
parent99c99ed8259bf070cd8ae7b51a94904b7cf5c161
grep: stop modifying buffer in strip_timestamp

When grepping for headers in commit objects, we receive individual
lines (e.g., "author Name <email> 1234 -0000"), and then strip off the
timestamp to do our match. We do so by writing a NUL byte over the
whitespace separator, and then remembering to restore it later.

We had to do it this way when this was added back in a4d7d2c6db (log
--author/--committer: really match only with name part, 2008-09-04),
because we fed the result directly to regexec(), which expects a
NUL-terminated string. But since b7d36ffca0 (regex: use regexec_buf(),
2016-09-21), we have a function which can match part of a buffer.

So instead of modifying the string, we can instead just move the "eol"
pointer, and the rest of the code will do the right thing. This will let
further patches mark more buffers as "const".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
grep.c