Skip to content

Commit 0e3b68b

Browse files
committed
Revert "revert to old way"
This reverts commit 436539d01c41c201d76237255e9e63a0a6651d9e.
1 parent 46fa371 commit 0e3b68b

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

services/gitdiff/gitdiff.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,11 @@ func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader, ski
503503
}
504504
return diff, err
505505
}
506+
507+
prepareValue := func(s, p string) string {
508+
return strings.TrimSpace(strings.TrimPrefix(s, p))
509+
}
510+
506511
parsingLoop:
507512
for {
508513
// 1. A patch file always begins with `diff --git ` + `a/path b/path` (possibly quoted)
@@ -587,48 +592,49 @@ parsingLoop:
587592
}
588593
break parsingLoop
589594
}
595+
590596
switch {
591597
case strings.HasPrefix(line, cmdDiffHead):
592598
break curFileLoop
593599
case strings.HasPrefix(line, "old mode ") ||
594600
strings.HasPrefix(line, "new mode "):
595601

596602
if strings.HasPrefix(line, "old mode ") {
597-
curFile.OldMode = line[len("old mode ") : len(line)-1]
603+
curFile.OldMode = prepareValue(line, "old mode ")
598604
}
599605
if strings.HasPrefix(line, "new mode ") {
600-
curFile.Mode = line[len("new mode ") : len(line)-1]
606+
curFile.Mode = prepareValue(line, "new mode ")
601607
}
602608

603609
if strings.HasSuffix(line, " 160000\n") {
604610
curFile.IsSubmodule = true
605611
}
606612
case strings.HasPrefix(line, "new file mode "):
607-
curFile.Mode = line[len("new file mode ") : len(line)-1]
613+
curFile.Mode = strings.TrimPrefix(line, "new file mode ")
608614
case strings.HasPrefix(line, "rename from "):
609615
curFile.IsRenamed = true
610616
curFile.Type = DiffFileRename
611617
if curFile.IsAmbiguous {
612-
curFile.OldName = line[len("rename from ") : len(line)-1]
618+
curFile.OldName = prepareValue(line, "rename from ")
613619
}
614620
case strings.HasPrefix(line, "rename to "):
615621
curFile.IsRenamed = true
616622
curFile.Type = DiffFileRename
617623
if curFile.IsAmbiguous {
618-
curFile.Name = line[len("rename to ") : len(line)-1]
624+
curFile.Name = prepareValue(line, "rename to ")
619625
curFile.IsAmbiguous = false
620626
}
621627
case strings.HasPrefix(line, "copy from "):
622628
curFile.IsRenamed = true
623629
curFile.Type = DiffFileCopy
624630
if curFile.IsAmbiguous {
625-
curFile.OldName = line[len("copy from ") : len(line)-1]
631+
curFile.OldName = prepareValue(line, "copy from ")
626632
}
627633
case strings.HasPrefix(line, "copy to "):
628634
curFile.IsRenamed = true
629635
curFile.Type = DiffFileCopy
630636
if curFile.IsAmbiguous {
631-
curFile.Name = line[len("copy to ") : len(line)-1]
637+
curFile.Name = prepareValue(line, "copy to ")
632638
curFile.IsAmbiguous = false
633639
}
634640
case strings.HasPrefix(line, "new file"):

0 commit comments

Comments
 (0)