From: phillip.wood123@gmail.com Date: Sat, 13 Jul 2024 13:19:39 GMT Subject: Re: [RFC/PATCH] add-patch: handle splitting hunks with diff.suppressBlankEmpty Message-ID: <622849f1-de52-4b92-9465-931014c8d3eb@gmail.com> In-Reply-To: <20240711212628.GA3648684@coredump.intra.peff.net> Hi Peff On 11/07/2024 22:26, Jeff King wrote: > On Wed, Jul 10, 2024 at 02:46:30PM +0100, Phillip Wood wrote: > >> I think your patch looks good. I did wonder if we wanted to fix this >> by normalizing context lines instead as shown in the diff below. That >> might make it less likely to miss adding "|| '\n'" in future code that >> is looking for a context line but I don't have a strong preference >> either way. > > Yeah, I had a similar thought, but it got messy because we have to deal > with the source buffer. But the extra "char ch" you added in the patch > below fixes that. I think the result is better. > > Looking at the blank-line handling in recount_edited_hunk(), we also > handle a CRLF empty line there. Should we do so here, too? If so, then > it would just be a matter of touching normalize_marker() in your patch. > > Do you want to just re-send your patch with a commit message to replace > mine? (Feel free to steal the non-wrong parts of my message ;) ). Thanks, I'll do that Best Wishes Phillip >> ---- >8 ---- >> diff --git a/add-patch.c b/add-patch.c >> index d8ea05ff108..795aa772b7a 100644 >> --- a/add-patch.c >> +++ b/add-patch.c >> @@ -400,6 +400,12 @@ static void complete_file(char marker, struct hunk *hunk) >> hunk->splittable_into++; >> } >> +/* Empty context lines may omit the leading ' ' */ >> +static int normalize_marker(char marker) >> +{ >> + return marker == '\n' ? ' ' : marker; >> +} >> + >> static int parse_diff(struct add_p_state *s, const struct pathspec *ps) > > Minor nit: missing blank line between functions. > > -Peff