hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 0e75af74db30259ec355a7b79a1e257d5fe00eef
parent 5f1aafafb40299bb4c8aebf71e05843431eb84c5
Author: Baibhav Vatsa <baibhavvatsa@gmail.com>
Date:   Fri, 11 Oct 2019 13:15:39 -0500

tpl: Last now accepts 0 as limit

Modified the if conditional because of which last threw an error if 0 was passed as limit. The function now returns an empty slice if it is called with 0 as limit. The behavior of first and last is now the same when 0 is passed as limit. Also added tests to test the new behavior.

Fixes #6419

Diffstat:
Mtpl/collections/collections.go | 2+-
Mtpl/collections/collections_test.go | 2++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/tpl/collections/collections.go b/tpl/collections/collections.go
@@ -378,7 +378,7 @@ func (ns *Namespace) Last(limit interface{}, seq interface{}) (interface{}, erro
 		return nil, err
 	}
 
-	if limitv < 1 {
+	if limitv < 0 {
 		return nil, errors.New("can't return negative/empty count of items from sequence")
 	}
 
diff --git a/tpl/collections/collections_test.go b/tpl/collections/collections_test.go
@@ -495,6 +495,8 @@ func TestLast(t *testing.T) {
 		{int64(2), []int{100, 200, 300}, []int{200, 300}},
 		{100, []int{100, 200}, []int{100, 200}},
 		{"1", []int{100, 200, 300}, []int{300}},
+		{"0", []int{100, 200, 300}, []int{}},
+		{"0", []string{"a", "b", "c"}, []string{}},
 		// errors
 		{int64(-1), []int{100, 200, 300}, false},
 		{"noint", []int{100, 200, 300}, false},