aboutsummaryrefslogtreecommitdiff
path: root/nomsu.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nomsu.lua')
-rw-r--r--nomsu.lua11
1 files changed, 10 insertions, 1 deletions
diff --git a/nomsu.lua b/nomsu.lua
index 07cd17f..10a3b66 100644
--- a/nomsu.lua
+++ b/nomsu.lua
@@ -88,7 +88,16 @@ all_files = function(path)
return iterate_single, path
end
path = path:gsub("\\", "\\\\"):gsub("`", ""):gsub('"', '\\"'):gsub("$", "")
- return io.popen('find -L "' .. path .. '" -type f -name "*.nom"'):lines()
+ return coroutine.wrap(function()
+ local f = io.popen('find -L "' .. path .. '" -type f -name "*.nom"')
+ for line in f:lines() do
+ coroutine.yield(line)
+ end
+ local success = f:close()
+ if not (success) then
+ return error("Invalid file path: " .. tostring(path))
+ end
+ end)
end
local line_counter = re.compile([[ lines <- {| line (%nl line)* |}
line <- {} (!%nl .)*