From 317f89e1cd7cc8300ded51c3a24c8aa7839b52c8 Mon Sep 17 00:00:00 2001 From: Pimyn Girgis Date: Mon, 13 Oct 2025 13:51:06 +0000 Subject: pkg/email: parse diff more tolerably Accept empty lines as part of a diff. Fixes #6403 --- pkg/email/patch.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pkg/email') diff --git a/pkg/email/patch.go b/pkg/email/patch.go index 8af5e1b79..81ea9b26c 100644 --- a/pkg/email/patch.go +++ b/pkg/email/patch.go @@ -21,18 +21,22 @@ func ParsePatch(message []byte) (diff string) { continue } if diffStarted { - if ln == "" || ln == "--" || ln == "-- " || ln[0] == '>' { + if ln == "--" || ln == "-- " || ln != "" && ln[0] == '>' { diffStarted = false continue } - if strings.HasPrefix(ln, " ") || strings.HasPrefix(ln, "+") || + if ln == "" || strings.HasPrefix(ln, " ") || strings.HasPrefix(ln, "+") || strings.HasPrefix(ln, "-") || strings.HasPrefix(ln, "@") || strings.HasPrefix(ln, "================") { diff += ln + "\n" continue } + diffStarted = false } } + if diff != "" { + diff = strings.TrimRight(diff, "\n") + "\n" + } err := s.Err() if err == bufio.ErrTooLong { // It's a problem of the incoming patch, rather than anything else. -- cgit mrf-deployment