From fdb5ecc68ba1af058bcf17d60d236189a8606d27 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 11 Sep 2016 19:28:25 +0200 Subject: [PATCH] always call close() in lua when you're done with a file. --- scripts/eressea/autoseed.lua | 14 +++++++---- scripts/eressea/cursed.lua | 1 + scripts/tools/build-e3.lua | 47 +++++++++++++++++++----------------- scripts/tools/build-e4.lua | 38 +++++++++++++++-------------- scripts/tools/build.lua | 38 +++++++++++++++-------------- 5 files changed, 75 insertions(+), 63 deletions(-) diff --git a/scripts/eressea/autoseed.lua b/scripts/eressea/autoseed.lua index d0f83b6d3..219a8e460 100644 --- a/scripts/eressea/autoseed.lua +++ b/scripts/eressea/autoseed.lua @@ -39,13 +39,17 @@ local function read_players() -- return {{ email = "noreply@mailinator.com", race = "dwarf", lang = "de" }} local players = {} local input = io.open("newfactions", "r") - while input do + if input then local str = input:read("*line") - if str==nil then break end - local email, race, lang = str:match("([^ ]*) ([^ ]*) ([^ ]*)") - if email and string.char(string.byte(email, 1))~='#' then - table.insert(players, { race = race, lang = lang, email = email }) + while str do + if str==nil then break end + local email, race, lang = str:match("([^ ]*) ([^ ]*) ([^ ]*)") + if email and string.char(string.byte(email, 1))~='#' then + table.insert(players, { race = race, lang = lang, email = email }) + end + str = input:read("*line") end + input:close() end return players end diff --git a/scripts/eressea/cursed.lua b/scripts/eressea/cursed.lua index 91c143ed1..4a3e83b85 100644 --- a/scripts/eressea/cursed.lua +++ b/scripts/eressea/cursed.lua @@ -23,6 +23,7 @@ function cursed.init() if f then print("found cursed.txt") curse(f) + f:close() end end diff --git a/scripts/tools/build-e3.lua b/scripts/tools/build-e3.lua index 8ea2693b8..b33927877 100644 --- a/scripts/tools/build-e3.lua +++ b/scripts/tools/build-e3.lua @@ -124,30 +124,33 @@ end function seed() local input = io.open(config.basepath .. "/parteien.txt") - for f in factions() do - if f.race=="vampunicorn" then - local str = input:read("*line") - if str==nil then break end - local race, lang, email = str:match("([^ ]*) ([^ ]*) ([^ ]*)") - f.race = race:lower() - f.options = f.options + 4096 - f.email = email - f.locale = lang - for u in f.units do - u.race = race:lower() - u.hp = u.hp_max - local b = building.create(u.region, "castle") - if lang=="de" then - u.name = "Entdecker" - b.name = "Heimat" - else - u.name = "Explorer" - b.name = "Home" + if input then + for f in factions() do + if f.race=="vampunicorn" then + local str = input:read("*line") + if str==nil then break end + local race, lang, email = str:match("([^ ]*) ([^ ]*) ([^ ]*)") + f.race = race:lower() + f.options = f.options + 4096 + f.email = email + f.locale = lang + for u in f.units do + u.race = race:lower() + u.hp = u.hp_max + local b = building.create(u.region, "castle") + if lang=="de" then + u.name = "Entdecker" + b.name = "Heimat" + else + u.name = "Explorer" + b.name = "Home" + end + b.size = 10 + u.building = b + end end - b.size = 10 - u.building = b end - end + input:close() end for r in regions() do r:set_resource("sapling", r:get_resource("tree")/4) diff --git a/scripts/tools/build-e4.lua b/scripts/tools/build-e4.lua index d873ab00b..b4ac57f8c 100644 --- a/scripts/tools/build-e4.lua +++ b/scripts/tools/build-e4.lua @@ -27,27 +27,29 @@ else end local f=assert(io.open("factions", "r")) -line=f:read("*line") -players = {} -emails = {} -patrons = {} -nplayers = 0 -while line~=nil do - fields = {} - line:gsub("([^\t]*)\t*", function(c) table.insert(fields, c) end) +if f then line=f:read("*line") - email = fields[1] - if fields[2]=='yes' then - table.insert(patrons, email) - else - table.insert(emails, email) + players = {} + emails = {} + patrons = {} + nplayers = 0 + while line~=nil do + fields = {} + line:gsub("([^\t]*)\t*", function(c) table.insert(fields, c) end) + line=f:read("*line") + email = fields[1] + if fields[2]=='yes' then + table.insert(patrons, email) + else + table.insert(emails, email) + end + if fields[3]=='German' then lang='de' else lang='en' end + race=string.gsub(fields[4], "/.*", ''):lower() + players[email] = { ['lang'] = lang, ['race'] = race } + nplayers = nplayers + 1 end - if fields[3]=='German' then lang='de' else lang='en' end - race=string.gsub(fields[4], "/.*", ''):lower() - players[email] = { ['lang'] = lang, ['race'] = race } - nplayers = nplayers + 1 + f:close() end - for k, r in ipairs(homes) do print(k, r) end diff --git a/scripts/tools/build.lua b/scripts/tools/build.lua index d873ab00b..b4ac57f8c 100644 --- a/scripts/tools/build.lua +++ b/scripts/tools/build.lua @@ -27,27 +27,29 @@ else end local f=assert(io.open("factions", "r")) -line=f:read("*line") -players = {} -emails = {} -patrons = {} -nplayers = 0 -while line~=nil do - fields = {} - line:gsub("([^\t]*)\t*", function(c) table.insert(fields, c) end) +if f then line=f:read("*line") - email = fields[1] - if fields[2]=='yes' then - table.insert(patrons, email) - else - table.insert(emails, email) + players = {} + emails = {} + patrons = {} + nplayers = 0 + while line~=nil do + fields = {} + line:gsub("([^\t]*)\t*", function(c) table.insert(fields, c) end) + line=f:read("*line") + email = fields[1] + if fields[2]=='yes' then + table.insert(patrons, email) + else + table.insert(emails, email) + end + if fields[3]=='German' then lang='de' else lang='en' end + race=string.gsub(fields[4], "/.*", ''):lower() + players[email] = { ['lang'] = lang, ['race'] = race } + nplayers = nplayers + 1 end - if fields[3]=='German' then lang='de' else lang='en' end - race=string.gsub(fields[4], "/.*", ''):lower() - players[email] = { ['lang'] = lang, ['race'] = race } - nplayers = nplayers + 1 + f:close() end - for k, r in ipairs(homes) do print(k, r) end