Jberkel has uploaded a new change for review. https://gerrit.wikimedia.org/r/240388
Change subject: Fix off-by one error in gsub ...................................................................... Fix off-by one error in gsub Change-Id: I49c0386970e007271d23087fd112580af7b21c9c --- M engines/LuaCommon/lualib/ustring/ustring.lua M tests/engines/LuaCommon/UstringLibraryTests.lua 2 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Scribunto refs/changes/88/240388/1 diff --git a/engines/LuaCommon/lualib/ustring/ustring.lua b/engines/LuaCommon/lualib/ustring/ustring.lua index 57456ac..da757e8 100644 --- a/engines/LuaCommon/lualib/ustring/ustring.lua +++ b/engines/LuaCommon/lualib/ustring/ustring.lua @@ -937,7 +937,7 @@ local init = 1 local ct = 0 local ret = {} - while init < cps.len and ct < n do + while init < cps.len + 1 and ct < n do local m = { find( s, cps, pattern, pat, init ) } if not m[1] then break diff --git a/tests/engines/LuaCommon/UstringLibraryTests.lua b/tests/engines/LuaCommon/UstringLibraryTests.lua index bc81350..c9bebbf 100644 --- a/tests/engines/LuaCommon/UstringLibraryTests.lua +++ b/tests/engines/LuaCommon/UstringLibraryTests.lua @@ -463,6 +463,18 @@ expect = { 1 } }, + { name = 'gsub: (emtpy string, empty pattern)', func = mw.ustring.gsub, + args = { '', '', 'X' }, + expect = { 'X', 1 } + }, + { name = 'gsub: (emtpy string, one char pattern)', func = mw.ustring.gsub, + args = { '', 'á', 'X' }, + expect = { '', 0 } + }, + { name = 'gsub: (one char string, one char pattern)', func = mw.ustring.gsub, + args = { 'á', 'á', 'X' }, + expect = { 'X', 1 } + }, { name = 'gsub: (string 1)', func = mw.ustring.gsub, args = { str2, 'f%a+', 'X' }, expect = { 'X bar X X baz X X X', 6 } -- To view, visit https://gerrit.wikimedia.org/r/240388 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I49c0386970e007271d23087fd112580af7b21c9c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Scribunto Gerrit-Branch: master Gerrit-Owner: Jberkel <jan.ber...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits