From 1b20342f25dda771055fe93749190719733c4d0a Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 30 Jun 2017 16:20:19 +0200 Subject: pkg/email: move patch parsing from pkg/kernel ParsePatch is used by appengine app. Appengine apps can't depend on syscall/unsafe, but pkg/kernel currently does. Move patch parsing to pkg/email which does not depend on syscall/unsafe. --- pkg/kernel/patch.go | 69 ----------------------------------------------------- 1 file changed, 69 deletions(-) delete mode 100644 pkg/kernel/patch.go (limited to 'pkg/kernel/patch.go') diff --git a/pkg/kernel/patch.go b/pkg/kernel/patch.go deleted file mode 100644 index b8e30dbec..000000000 --- a/pkg/kernel/patch.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2017 syzkaller project authors. All rights reserved. -// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. - -package kernel - -import ( - "bufio" - "fmt" - "strings" -) - -func ParsePatch(text string) (title string, diff string, err error) { - s := bufio.NewScanner(strings.NewReader(text)) - parsingDiff := false - diffStarted := false - lastLine := "" - for s.Scan() { - ln := s.Text() - if strings.HasPrefix(ln, "--- a/") || strings.HasPrefix(ln, "--- /dev/null") { - parsingDiff = true - if title == "" { - title = lastLine - } - } - if parsingDiff { - if ln == "--" || ln == "-- " { - break - } - diff += ln + "\n" - continue - } - if strings.HasPrefix(ln, "diff --git") { - diffStarted = true - 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 - } - return -} -- cgit mrf-deployment