summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-01-05 19:32:44 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-01-05 19:32:44 +0900
commitee2ee025993421b243ef668e4d4ee395a5201820 (patch)
treeac4f259cea0ddbff40b4dc7ce60546ee55319f58
parentb42dcdb7a747cd5c7a412ca1dc8b7eb73b64f084 (diff)
Fix index out of bounds error during Transform
-rw-r--r--src/tokenizer.go8
-rw-r--r--src/tokenizer_test.go4
2 files changed, 11 insertions, 1 deletions
diff --git a/src/tokenizer.go b/src/tokenizer.go
index c187529b..bc1ca3a4 100644
--- a/src/tokenizer.go
+++ b/src/tokenizer.go
@@ -186,7 +186,13 @@ func Transform(tokens []Token, withNth []Range) *Transformed {
}
}
whole += part
- transTokens[idx] = Token{&part, tokens[minIdx].prefixLength}
+ var prefixLength int
+ if minIdx < numTokens {
+ prefixLength = tokens[minIdx].prefixLength
+ } else {
+ prefixLength = 0
+ }
+ transTokens[idx] = Token{&part, prefixLength}
}
return &Transformed{
whole: &whole,
diff --git a/src/tokenizer_test.go b/src/tokenizer_test.go
index ed77efe9..1ae0c7ee 100644
--- a/src/tokenizer_test.go
+++ b/src/tokenizer_test.go
@@ -95,3 +95,7 @@ func TestTransform(t *testing.T) {
}
}
}
+
+func TestTransformIndexOutOfBounds(t *testing.T) {
+ Transform([]Token{}, splitNth("1"))
+}