summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-01-15 22:39:48 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-01-15 22:39:48 +0900
commit717562b264a49a25c8b934d174e959b33bd02681 (patch)
tree43385366c9098de3c4cba0d98fd54a4e5770b117
parent9d6637c1b3b3c7c0a6eadbc73fe887e11ab14b72 (diff)
downloadfzf-717562b264a49a25c8b934d174e959b33bd02681.tar.gz
Disallow incorrect wrapping range expression for --nth
-rw-r--r--src/tokenizer.go2
-rw-r--r--src/tokenizer_test.go12
2 files changed, 13 insertions, 1 deletions
diff --git a/src/tokenizer.go b/src/tokenizer.go
index 6b2ef72b..7f4aef48 100644
--- a/src/tokenizer.go
+++ b/src/tokenizer.go
@@ -73,7 +73,7 @@ func ParseRange(str *string) (Range, bool) {
}
begin, err1 := strconv.Atoi(ns[0])
end, err2 := strconv.Atoi(ns[1])
- if err1 != nil || err2 != nil || begin == 0 || end == 0 {
+ if err1 != nil || err2 != nil || begin == 0 || end == 0 || begin < 0 && end > 0 {
return Range{}, false
}
return newRange(begin, end), true
diff --git a/src/tokenizer_test.go b/src/tokenizer_test.go
index 3119f797..39f32dc8 100644
--- a/src/tokenizer_test.go
+++ b/src/tokenizer_test.go
@@ -40,6 +40,18 @@ func TestParseRange(t *testing.T) {
t.Errorf("%v", r)
}
}
+ {
+ i := "1..3..5"
+ if r, ok := ParseRange(&i); ok {
+ t.Errorf("%v", r)
+ }
+ }
+ {
+ i := "-3..3"
+ if r, ok := ParseRange(&i); ok {
+ t.Errorf("%v", r)
+ }
+ }
}
func TestTokenize(t *testing.T) {