summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/patch/patch_modifier.go8
-rw-r--r--pkg/commands/patch/patch_parser.go4
2 files changed, 10 insertions, 2 deletions
diff --git a/pkg/commands/patch/patch_modifier.go b/pkg/commands/patch/patch_modifier.go
index 2d060ec18..fe0a896b1 100644
--- a/pkg/commands/patch/patch_modifier.go
+++ b/pkg/commands/patch/patch_modifier.go
@@ -27,7 +27,9 @@ func GetHunksFromDiff(diff string) []*PatchHunk {
var hunkLines []string //nolint:prealloc
pastDiffHeader := false
- for lineIdx, line := range strings.SplitAfter(diff, "\n") {
+ lines := strings.SplitAfter(diff, "\n")
+
+ for lineIdx, line := range lines {
isHunkHeader := strings.HasPrefix(line, "@@ -")
if isHunkHeader {
@@ -44,6 +46,10 @@ func GetHunksFromDiff(diff string) []*PatchHunk {
continue
}
+ if lineIdx == len(lines)-1 && line == "" { // skip the trailing newline
+ continue
+ }
+
hunkLines = append(hunkLines, line)
}
diff --git a/pkg/commands/patch/patch_parser.go b/pkg/commands/patch/patch_parser.go
index 1fd3c107a..3f191f40a 100644
--- a/pkg/commands/patch/patch_parser.go
+++ b/pkg/commands/patch/patch_parser.go
@@ -134,7 +134,8 @@ func coloredString(textStyle style.TextStyle, str string, selected bool, include
}
func parsePatch(patch string) ([]int, []int, []*PatchLine) {
- lines := strings.Split(patch, "\n")
+ // ignore trailing newline.
+ lines := strings.Split(strings.TrimSuffix(patch, "\n"), "\n")
hunkStarts := []int{}
stageableLines := []int{}
pastFirstHunkHeader := false
@@ -179,6 +180,7 @@ func parsePatch(patch string) ([]int, []int, []*PatchLine) {
}
patchLines[index] = &PatchLine{Kind: lineKind, Content: line}
}
+
return hunkStarts, stageableLines, patchLines
}