Re: [PATCH 2/5] grep: stop modifying buffer in show_line()
From: Taylor Blau <hidden>
Date: 2021-09-21 04:22:54
On Mon, Sep 20, 2021 at 11:48:09PM -0400, Jeff King wrote:
When showing lines via grep (or looking for funcnames), we call show_line() on a multi-line buffer. It finds the end of line and marks it with a NUL. However, we don't need to do so, as the resulting line is only used along with its "eol" marker: - we pass both to next_match(), which takes care to look at only the bytes we specified
Thinking aloud, next_match() calls match_next_pattern() which takes eol as non-const and passes it to match_one_pattern(). And that calls strip_timestamp(), which would be non-const, were it not the previous patch. So I think this conversion is safe.
- we pass the line to output_color() without its matching eol marker. However, we do use the "match" struct we got from next_match() to tell it how many bytes to look at (which can never exceed the string we passed it
Yep, makes sense. The patch looks good and matches your description here. Thanks, Taylor