summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2019-11-29 10:17:34 -0600
committer cracyc <cracyc@users.noreply.github.com>2019-11-29 10:18:50 -0600
commitb32f90e5a98f2d0087ccbbe628986b6df5283ef9 (patch)
treeb12d82ce0972daca4002aff33bca58d4b71f992d
parent35a1da30f1b8c2462bd17467bfae6886efe293bd (diff)
plugins/data: small cleanups (nw)
-rw-r--r--plugins/data/button_char.lua6
-rw-r--r--plugins/data/data_command.lua6
-rw-r--r--plugins/data/load_dat.lua20
3 files changed, 20 insertions, 12 deletions
diff --git a/plugins/data/button_char.lua b/plugins/data/button_char.lua
index cee756c2603..02c64d9673c 100644
--- a/plugins/data/button_char.lua
+++ b/plugins/data/button_char.lua
@@ -236,9 +236,9 @@ local convert_text =
}
local function convert_char(str)
- str = str:gsub("@([a-zA-Z%-]+)", function(s) if convert_text[s] then return utf8.char(convert_text[s] + 0xe000) end return s end)
- str = str:gsub("_(.)", function(s) if default_text[s] then return utf8.char(default_text[s] + 0xe000) end return s end)
- str = str:gsub("%^(.)", function(s) if expand_text[s] then return utf8.char(expand_text[s] + 0xe000) end return s end)
+ str = str:gsub("@(%g+)", function(s) if convert_text[s] then return utf8.char(convert_text[s] + 0xe000) end return s end)
+ str = str:gsub("_(%g)", function(s) if default_text[s] then return utf8.char(default_text[s] + 0xe000) end return s end)
+ str = str:gsub("%^(%g)", function(s) if expand_text[s] then return utf8.char(expand_text[s] + 0xe000) end return s end)
return str
end
diff --git a/plugins/data/data_command.lua b/plugins/data/data_command.lua
index 119374544b1..f32544c5063 100644
--- a/plugins/data/data_command.lua
+++ b/plugins/data/data_command.lua
@@ -2,7 +2,11 @@ local dat = {}
local info, ver
local datread = require("data/load_dat")
do
- local convert = require("data/button_char")
+ local buttonchar
+ local function convert(str)
+ if not buttonchar then buttonchar = require("data/button_char") end
+ return buttonchar(str)
+ end
datread, ver = datread.open("command.dat", "# Version:", convert)
end
diff --git a/plugins/data/load_dat.lua b/plugins/data/load_dat.lua
index f5afeb30409..172f2ef71ca 100644
--- a/plugins/data/load_dat.lua
+++ b/plugins/data/load_dat.lua
@@ -1,14 +1,11 @@
local datfile = {}
local db = require("data/database")
-function datfile.open(file, vertag, fixupcb)
- if not db then
- return nil
- end
+local function readret(file)
local function read(tag1, tag2, set)
local data
local stmt = db.prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
- AS f WHERE fi.type = ? AND fi.val = ? AND fi.romset = ? AND f.rowid = fi.data]])
+ AS f WHERE fi.type = ? AND fi.val = ? AND fi.romset = ? AND f.rowid = fi.data]])
db.check("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
stmt:bind_values(tag1, tag2, set)
if stmt:step() == db.ROW then
@@ -17,7 +14,14 @@ function datfile.open(file, vertag, fixupcb)
stmt:finalize()
return data
end
+ return read
+end
+
+function datfile.open(file, vertag, fixupcb)
+ if not db then
+ return nil
+ end
local ver, dbver
local filepath
local fh
@@ -60,7 +64,7 @@ function datfile.open(file, vertag, fixupcb)
if vertag then
for line in fh:lines() do
- local match = line:match(vertag .. "%s*([^%s]+)")
+ local match = line:match(vertag .. "%s*(%S+)")
if match then
ver = match
break
@@ -106,7 +110,7 @@ function datfile.open(file, vertag, fixupcb)
if not spos then
return nil
end
- npos, epos = buffer:find("[\n\r]$[%w]*[\n\r]+", epos)
+ npos, epos = buffer:find("[\n\r]$%w*[\n\r]+", epos)
if not npos then
return nil
end
@@ -164,7 +168,7 @@ function datfile.open(file, vertag, fixupcb)
end
fh:close()
- return read, ver
+ return readret(file), ver
end
return datfile