aboutsummaryrefslogtreecommitdiff
path: root/nomsu_environment.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nomsu_environment.lua')
-rw-r--r--nomsu_environment.lua34
1 files changed, 23 insertions, 11 deletions
diff --git a/nomsu_environment.lua b/nomsu_environment.lua
index 93487aa..71d7d06 100644
--- a/nomsu_environment.lua
+++ b/nomsu_environment.lua
@@ -322,18 +322,30 @@ local nomsu_environment = Importer({
break
end
for _index_0 = 1, #files do
- local filename = files[_index_0]
- local lua_filename = filename:gsub("%.nom$", ".lua")
- local code
- if optimization ~= 0 and Files.read(lua_filename) then
- local file = Files.read(lua_filename)
- code = LuaCode:from(Source(filename, 1, #file), file)
- else
- local file = Files.read(filename)
- code = NomsuCode:from(Source(filename, 1, #file), file)
+ local _continue_1 = false
+ repeat
+ local filename = files[_index_0]
+ local lua_filename = filename:gsub("%.nom$", ".lua")
+ if environment.FILE_CACHE[filename] then
+ import_to_1_from(environment, environment.FILE_CACHE[filename], prefix)
+ _continue_1 = true
+ break
+ end
+ local code
+ if optimization ~= 0 and Files.read(lua_filename) then
+ local file = Files.read(lua_filename)
+ code = LuaCode:from(Source(filename, 1, #file), file)
+ else
+ local file = Files.read(filename)
+ code = NomsuCode:from(Source(filename, 1, #file), file)
+ end
+ environment.run_1_in(code, mod)
+ did_anything = true
+ _continue_1 = true
+ until true
+ if not _continue_1 then
+ break
end
- environment.run_1_in(code, mod)
- did_anything = true
end
break
end