From 0e306c084284aeafb3d5cde0cfec11a85a11cb9c Mon Sep 17 00:00:00 2001 From: Pierre-Yves Rollo Date: Thu, 1 Nov 2018 21:07:01 +0100 Subject: [PATCH] Fix string.split returning an empty table if string starts with sepearator (#7827) Calling string.split(":A:B:C:D", ":") returns an empty array. This is due to first empty string not making repeat loop decreasing max_split which has a 0 value when reaching until. Changing max_splits default value from -1 to -2 fixes that issue. --- builtin/common/misc_helpers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua index d7f51f072..e250b0ed1 100644 --- a/builtin/common/misc_helpers.lua +++ b/builtin/common/misc_helpers.lua @@ -166,7 +166,7 @@ end -------------------------------------------------------------------------------- function string.split(str, delim, include_empty, max_splits, sep_is_pattern) delim = delim or "," - max_splits = max_splits or -1 + max_splits = max_splits or -2 local items = {} local pos, len = 1, #str local plain = not sep_is_pattern