aboutsummaryrefslogtreecommitdiff
path: root/font_api
diff options
context:
space:
mode:
Diffstat (limited to 'font_api')
-rw-r--r--font_api/font.lua20
1 files changed, 10 insertions, 10 deletions
diff --git a/font_api/font.lua b/font_api/font.lua
index db12dba..e12bb4b 100644
--- a/font_api/font.lua
+++ b/font_api/font.lua
@@ -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
--------------------------------------------------------------------------------