summaryrefslogtreecommitdiffstats
path: root/lib/split.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/split.lua')
-rw-r--r--lib/split.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/split.lua b/lib/split.lua
new file mode 100644
index 0000000..f3e2e95
--- /dev/null
+++ b/lib/split.lua
@@ -0,0 +1,31 @@
+--[[
+ module for splitting a string to an array
+]]--
+
+module (..., package.seeall)
+
+-- This code comes from http://lua-users.org/wiki/SplitJoin
+
+-- Split text into a list consisting of the strings in text,
+-- separated by strings matching delimiter (which may be a pattern).
+-- example: strsplit(",%s*", "Anna, Bob, Charlie,Dolores")
+return function (delimiter, text)
+ local list = {}
+ local pos = 1
+ -- this would result in endless loops
+ if string.find("", delimiter, 1) then
+ error("delimiter matches empty string!")
+ end
+ while 1 do
+ local first, last = string.find(text, delimiter, pos)
+ if first then -- found?
+ table.insert(list, string.sub(text, pos, first-1))
+ pos = last+1
+ else
+ table.insert(list, string.sub(text, pos))
+ break
+ end
+ end
+ return list
+end
+