Re: [PATCH 2/5] grep: stop modifying buffer in show_line()
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Sep 21, 2021, 04:22 UTC
- Message-ID
- <YUleFU4QrKb28bDz@nand.local>
- In-Reply-To
- <YUlV+RPMHGGfk25d@coredump.intra.peff.net>
On Mon, Sep 20, 2021 at 11:48:09PM -0400, Jeff King wrote:
Show 7 quoted lines
> 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