Re: [PATCH 2/5] grep: stop modifying buffer in show_line()
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Sep 21, 2021, 04:45 UTC
- Message-ID
- <YUljZU5YpclFn56t@nand.local>
- In-Reply-To
- <YUlinQ7hPokFLgfm@coredump.intra.peff.net>
On Tue, Sep 21, 2021 at 12:42:05AM -0400, Jeff King wrote:
Show 19 quoted lines
> On Tue, Sep 21, 2021 at 12:22:45AM -0400, Taylor Blau wrote: > > > 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. > > To be a little nit-picky: this move would be OK even without the change > to strip_timestamp(). The question is whether any of those sub-calls > actually looks past the "eol" pointer we give it.
Right, I wasn't implying that this move was unsafe without the previous patch. Just that without the previous patch, we couldn't make show_line() take a const-pointer to eol.
Thanks, Taylor