From 5cdddd32ef3df78be7cb187446235a04491036b5 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 5 Sep 2022 12:06:53 +0200 Subject: lib: add limit support to split() and replace() Extend the split() and replace() functions to accept an additional optional `limit` argument which limits the amount of split operations / substitutions performed by these functions. Signed-off-by: Jo-Philipp Wich --- tests/custom/03_stdlib/18_split | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/custom/03_stdlib/18_split') diff --git a/tests/custom/03_stdlib/18_split b/tests/custom/03_stdlib/18_split index 5ee35a2..20d5c8d 100644 --- a/tests/custom/03_stdlib/18_split +++ b/tests/custom/03_stdlib/18_split @@ -43,6 +43,18 @@ argument is neither a string nor a regular expression. // subject and split strings handle embedded \0 split("foo=1\0bar=2\0baz=3", "\0"), + + // supplying a limit only splits the string into that many parts + split("foo=1=2=3", "=", 2), + + // limit of one produces a result array conaining the entire string as sole item + split("foo=1=2=3", "=", 1), + + // negative limit yields an empty result array + split("foo=1=2=3", "=", -1), + + // zero limit yields an empty result array + split("foo=1=2=3", "=", 0), ]), "\n"); %} -- End -- @@ -62,6 +74,10 @@ argument is neither a string nor a regular expression. [ "", "abc", "def", "" ] [ "", "foo", "bar", "" ] [ "foo=1", "bar=2", "baz=3" ] +[ "foo", "1=2=3" ] +[ "foo=1=2=3" ] +[ ] +[ ] -- End -- -- cgit v1.2.3