diff options
author | Ryooooooga <eial5q265e5@gmail.com> | 2021-08-04 18:43:34 +0900 |
---|---|---|
committer | Ryooooooga <eial5q265e5@gmail.com> | 2021-08-04 18:43:34 +0900 |
commit | ac609bd37c0b879ce08f0fcff7b1c7ef09d37333 (patch) | |
tree | e402ef4ca8af9929d0c9e1f9caa18ea25d34bb18 /pkg/commands | |
parent | 67cc65930ae62346fcc522f56da59fba5eef1dbe (diff) |
fix backward compatibility
Diffstat (limited to 'pkg/commands')
-rw-r--r-- | pkg/commands/files.go | 6 | ||||
-rw-r--r-- | pkg/commands/files_test.go | 16 | ||||
-rw-r--r-- | pkg/commands/patch/patch_modifier.go | 10 | ||||
-rw-r--r-- | pkg/commands/patch/patch_modifier_test.go | 2 |
4 files changed, 18 insertions, 16 deletions
diff --git a/pkg/commands/files.go b/pkg/commands/files.go index 1d4ad5fe6..fed1e795c 100644 --- a/pkg/commands/files.go +++ b/pkg/commands/files.go @@ -323,7 +323,7 @@ func (c *GitCommand) ResetAndClean() error { } func (c *GitCommand) EditFileCmdStr(filename string, lineNumber int) (string, error) { - editor := c.Config.GetUserConfig().OS.Editor + editor := c.Config.GetUserConfig().OS.EditCommand if editor == "" { editor = c.GetConfigValue("core.editor") @@ -353,6 +353,6 @@ func (c *GitCommand) EditFileCmdStr(filename string, lineNumber int) (string, er "line": strconv.Itoa(lineNumber), } - editTemplate := c.Config.GetUserConfig().OS.EditCommand - return utils.ResolvePlaceholderString(editTemplate, templateValues), nil + editCmdTemplate := c.Config.GetUserConfig().OS.EditCommandTemplate + return utils.ResolvePlaceholderString(editCmdTemplate, templateValues), nil } diff --git a/pkg/commands/files_test.go b/pkg/commands/files_test.go index 46ccda947..f12067e55 100644 --- a/pkg/commands/files_test.go +++ b/pkg/commands/files_test.go @@ -741,13 +741,13 @@ func TestGitCommandRemoveUntrackedFiles(t *testing.T) { // TestEditFileCmdStr is a function. func TestEditFileCmdStr(t *testing.T) { type scenario struct { - filename string - configEditor string - configEditCommand string - command func(string, ...string) *exec.Cmd - getenv func(string) string - getGitConfigValue func(string) (string, error) - test func(string, error) + filename string + configEditCommand string + configEditCommandTemplate string + command func(string, ...string) *exec.Cmd + getenv func(string) string + getGitConfigValue func(string) (string, error) + test func(string, error) } scenarios := []scenario{ @@ -912,8 +912,8 @@ func TestEditFileCmdStr(t *testing.T) { for _, s := range scenarios { gitCmd := NewDummyGitCommand() - gitCmd.Config.GetUserConfig().OS.Editor = s.configEditor gitCmd.Config.GetUserConfig().OS.EditCommand = s.configEditCommand + gitCmd.Config.GetUserConfig().OS.EditCommandTemplate = s.configEditCommandTemplate gitCmd.OSCommand.Command = s.command gitCmd.OSCommand.Getenv = s.getenv gitCmd.getGitConfigValue = s.getGitConfigValue diff --git a/pkg/commands/patch/patch_modifier.go b/pkg/commands/patch/patch_modifier.go index e5c6d061f..3ab13931b 100644 --- a/pkg/commands/patch/patch_modifier.go +++ b/pkg/commands/patch/patch_modifier.go @@ -137,17 +137,19 @@ func ModifiedPatchForLines(log *logrus.Entry, filename string, diffText string, } // I want to know, given a hunk, what line a given index is on -func (hunk *PatchHunk) LineNumberOfLine(idx int) (int, error) { +func (hunk *PatchHunk) LineNumberOfLine(idx int) int { n := idx - hunk.FirstLineIdx - 1 - if n < 0 || len(hunk.bodyLines) <= n { - return -1, fmt.Errorf("line index out of range") + if n < 0 { + n = 0 + } else if n >= len(hunk.bodyLines) { + n = len(hunk.bodyLines) - 1 } lines := hunk.bodyLines[0:n] offset := nLinesWithPrefix(lines, []string{"+", " "}) - return hunk.newStart + offset, nil + return hunk.newStart + offset } func nLinesWithPrefix(lines []string, chars []string) int { diff --git a/pkg/commands/patch/patch_modifier_test.go b/pkg/commands/patch/patch_modifier_test.go index 1f1eeb114..8b866019b 100644 --- a/pkg/commands/patch/patch_modifier_test.go +++ b/pkg/commands/patch/patch_modifier_test.go @@ -539,7 +539,7 @@ func TestLineNumberOfLine(t *testing.T) { for _, s := range scenarios { t.Run(s.testName, func(t *testing.T) { - result, _ := s.hunk.LineNumberOfLine(s.idx) + result := s.hunk.LineNumberOfLine(s.idx) if !assert.Equal(t, s.expected, result) { fmt.Println(result) } |