diff options
author | Pierre-Yves Rollo <dev@pyrollo.com> | 2018-11-01 12:25:47 +0100 |
---|---|---|
committer | Pierre-Yves Rollo <dev@pyrollo.com> | 2018-11-01 12:25:47 +0100 |
commit | 1a50b59995cc2637afa7cbf2ac2192eac845255f (patch) | |
tree | bb2b301c73d9aaf95cc4ddfd74bc83d757fab246 | |
parent | b74407e11e100deddfd99bc5aadccc60cbfb8d69 (diff) | |
download | display_modpack_no_craft-1a50b59995cc2637afa7cbf2ac2192eac845255f.tar.gz display_modpack_no_craft-1a50b59995cc2637afa7cbf2ac2192eac845255f.zip |
Rewrited split_lines to avoid a string.split bug if first line empty
-rw-r--r-- | font.lua | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -55,17 +55,17 @@ local function char_to_codepoint(str) end -- Split multiline text into array of lines, with <maxlines> maximum lines. +-- Can not use minetest string.split as it has bug if first line(s) empty local function split_lines(text, maxlines) - local splits = text:split("\n") - if maxlines then - local lines = {} - for num = 1,maxlines do - lines[num] = splits[num] - end - return lines - else - return splits - end + local lines = {} + local pos = 1 + repeat + local found = string.find(text, "\n", pos) + found = found or #text + 1 + lines[#lines + 1] = string.sub(text, pos, found - 1) + pos = found + 1 + until (maxlines and (#lines >= maxlines)) or (pos > (#text + 1)) + return lines end -------------------------------------------------------------------------------- |