diff --git a/filters/standard_filters.go b/filters/standard_filters.go index 13b2ca1..4737a46 100644 --- a/filters/standard_filters.go +++ b/filters/standard_filters.go @@ -391,6 +391,9 @@ func AddStandardFilters(fd FilterDictionary) { //nolint: gocyclo start = len(runes) } end := start + n + if end < start { + end = start + } if end > len(runes) { end = len(runes) } @@ -413,6 +416,9 @@ func AddStandardFilters(fd FilterDictionary) { //nolint: gocyclo start = len(slice) } end := start + n + if end < start { + end = start + } if end > len(slice) { end = len(slice) } diff --git a/filters/standard_filters_test.go b/filters/standard_filters_test.go index 9141c98..55d3591 100644 --- a/filters/standard_filters_test.go +++ b/filters/standard_filters_test.go @@ -169,6 +169,9 @@ Liquid" | slice: 2, 4`, "quid"}, {`"白鵬翔" | slice: -100`, "白"}, {`"白鵬翔" | slice: -100, 200`, "白鵬翔"}, {`">` + strings.Repeat(".", 10000) + `<" | slice: 1, 10000`, strings.Repeat(".", 10000)}, + {`"Liquid" | slice: 2, -1`, ""}, + {`"白鵬翔" | slice: 1, -1`, ""}, + {`"a,b,c" | split: "," | slice: 1, -1 | join`, ""}, {`"a,b,c" | split: "," | slice: -1 | join`, "c"}, {`"a,b,c" | split: "," | slice: 1, 1 | join`, "b"}, {`"a,b,c" | split: "," | slice: 0, 2 | join`, "a b"},