summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--complete.go3
-rw-r--r--complete_test.go2
2 files changed, 4 insertions, 1 deletions
diff --git a/complete.go b/complete.go
index 9ddfee2..2a4c905 100644
--- a/complete.go
+++ b/complete.go
@@ -78,6 +78,9 @@ func Complete(name string, cmd Completer) {
if err != nil {
panic("COMP_POINT env should be integer, got: " + point)
}
+ if i > len(line) {
+ i = len(line)
+ }
// Parse the command line up to the completion point.
args := arg.Parse(line[:i])
diff --git a/complete_test.go b/complete_test.go
index 04b10cc..3a0809f 100644
--- a/complete_test.go
+++ b/complete_test.go
@@ -173,7 +173,7 @@ func TestComplete(t *testing.T) {
{shouldExit: false, line: "", point: ""},
{shouldPanic: true, line: "cmd", point: ""},
{shouldPanic: true, line: "cmd", point: "a"},
- {shouldPanic: true, line: "cmd", point: "4"},
+ {shouldExit: true, line: "cmd", point: "4"},
{shouldExit: true, install: "1"},
{shouldExit: false, install: "a"},