Merge pull request #3249 from Grumph/gears_improvements

Make gears.string.*with functions more permissive
This commit is contained in:
mergify[bot] 2021-01-27 20:19:03 +00:00 committed by GitHub
commit 4319b16110
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 13 additions and 2 deletions

View File

@ -116,7 +116,7 @@ end
-- @tparam string sub String to check for.
-- @staticfct gears.string.startswith
function gstring.startswith(str, sub)
return string.sub(str, 1, string.len(sub)) == sub
return str and (string.sub(str, 1, string.len(sub)) == sub) or false
end
--- Check if a string ends with another string.
@ -126,7 +126,7 @@ end
-- @treturn boolean `true` if string ends with specified string
-- @staticfct gears.string.endswith
function gstring.endswith(str, sub)
return sub == "" or string.sub(str,-string.len(sub)) == sub
return str and (sub == "" or string.sub(str,-string.len(sub)) == sub) or false
end
return gstring

View File

@ -34,12 +34,14 @@ describe("gears.string", function()
assert.is_true(gstring.startswith("something", ""))
assert.is_true(gstring.startswith("something", "some"))
assert.is_false(gstring.startswith("something", "none"))
assert.is_false(gstring.startswith(nil, "anything"))
end)
describe("endswith", function()
assert.is_true(gstring.endswith("something", ""))
assert.is_true(gstring.endswith("something", "thing"))
assert.is_false(gstring.endswith("something", "that"))
assert.is_false(gstring.endswith(nil, "anything"))
end)
describe("split", function()

View File

@ -10,3 +10,6 @@ res = gears.string.endswith(test,"do")
print(tostring(res))
assert(res == false) --DOC_HIDE
res = gears.string.endswith(nil,"it")
print(tostring(res))
assert(res == false) --DOC_HIDE

View File

@ -1,2 +1,3 @@
true
false
false

View File

@ -9,3 +9,7 @@ assert(res == true) --DOC_HIDE
res = gears.string.startswith(test,"it")
print(tostring(res)) -- print boolean value
assert(res == false) --DOC_HIDE
res = gears.string.startswith(nil,"do")
print(tostring(res)) -- print boolean value
assert(res == false) --DOC_HIDE

View File

@ -1,2 +1,3 @@
true
false
false