diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2022-12-05 13:55:41 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2022-12-05 14:43:35 +0100 |
| commit | 64eb5abeff73f290c3b76aa97c6acd7ed627fa2d (patch) | |
| tree | e2bf2339b133543a2950fcc2eb0e9c25904bd3d5 /pkg/email/patch.go | |
| parent | dff7de3a521bb4e0538796e8c96e380270f5bfc9 (diff) | |
pkg/email: refactor ParsePatch
Currently the function returns the values that are not being used
anywhere. Refactor it.
Diffstat (limited to 'pkg/email/patch.go')
| -rw-r--r-- | pkg/email/patch.go | 42 |
1 files changed, 5 insertions, 37 deletions
diff --git a/pkg/email/patch.go b/pkg/email/patch.go index 80fac6097..c77d19bed 100644 --- a/pkg/email/patch.go +++ b/pkg/email/patch.go @@ -5,23 +5,19 @@ package email import ( "bufio" - "fmt" + "bytes" "regexp" "strings" ) -func ParsePatch(text string) (title, diff string, err error) { - s := bufio.NewScanner(strings.NewReader(text)) - lastLine := "" +func ParsePatch(message []byte) (diff string) { + s := bufio.NewScanner(bytes.NewReader(message)) diffStarted := false for s.Scan() { ln := s.Text() if lineMatchesDiffStart(ln) { diffStarted = true diff += ln + "\n" - if title == "" { - title = lastLine - } continue } if diffStarted { @@ -36,37 +32,9 @@ func ParsePatch(text string) (title, diff string, err error) { continue } } - if strings.HasPrefix(ln, "Subject: ") { - title = ln[len("Subject: "):] - continue - } - if ln == "" || title != "" || diffStarted { - continue - } - lastLine = ln - if strings.HasPrefix(ln, " ") { - title = ln[4:] - } - } - if err = s.Err(); err != nil { - return - } - if strings.Contains(strings.ToLower(title), "[patch") { - pos := strings.IndexByte(title, ']') - if pos == -1 { - err = fmt.Errorf("title contains '[patch' but not ']'") - return - } - title = title[pos+1:] - } - title = strings.TrimSpace(title) - if title == "" { - err = fmt.Errorf("failed to extract title") - return } - if diff == "" { - err = fmt.Errorf("failed to extract diff") - return + if err := s.Err(); err != nil { + panic("error while scanning from memory: " + err.Error()) } return } |
