diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-01-15 22:39:48 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-01-15 22:39:48 +0900 |
| commit | 717562b264a49a25c8b934d174e959b33bd02681 (patch) | |
| tree | 43385366c9098de3c4cba0d98fd54a4e5770b117 | |
| parent | 9d6637c1b3b3c7c0a6eadbc73fe887e11ab14b72 (diff) | |
| download | fzf-717562b264a49a25c8b934d174e959b33bd02681.tar.gz | |
Disallow incorrect wrapping range expression for --nth
| -rw-r--r-- | src/tokenizer.go | 2 | ||||
| -rw-r--r-- | src/tokenizer_test.go | 12 |
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) { |
