summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/data/data_gameinit.lua4
-rw-r--r--plugins/data/data_history.lua4
-rw-r--r--plugins/data/data_mameinfo.lua4
-rw-r--r--plugins/data/data_messinfo.lua4
-rw-r--r--plugins/data/data_story.lua4
-rw-r--r--plugins/data/data_sysinfo.lua4
-rw-r--r--plugins/data/init.lua29
-rw-r--r--plugins/data/load_dat.lua2
8 files changed, 52 insertions, 3 deletions
diff --git a/plugins/data/data_gameinit.lua b/plugins/data/data_gameinit.lua
index 040cfb7745b..13e2489a19d 100644
--- a/plugins/data/data_gameinit.lua
+++ b/plugins/data/data_gameinit.lua
@@ -20,4 +20,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/data_history.lua b/plugins/data/data_history.lua
index 29da2f62fd5..329bccd0b1e 100644
--- a/plugins/data/data_history.lua
+++ b/plugins/data/data_history.lua
@@ -19,4 +19,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/data_mameinfo.lua b/plugins/data/data_mameinfo.lua
index c22175b91e4..6daddc57b45 100644
--- a/plugins/data/data_mameinfo.lua
+++ b/plugins/data/data_mameinfo.lua
@@ -19,4 +19,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/data_messinfo.lua b/plugins/data/data_messinfo.lua
index f616882cb78..5aed9eea8d1 100644
--- a/plugins/data/data_messinfo.lua
+++ b/plugins/data/data_messinfo.lua
@@ -20,4 +20,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/data_story.lua b/plugins/data/data_story.lua
index 398fba2da4f..1a933f0d74b 100644
--- a/plugins/data/data_story.lua
+++ b/plugins/data/data_story.lua
@@ -25,4 +25,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/data_sysinfo.lua b/plugins/data/data_sysinfo.lua
index 2a545cad1d5..9271f7b0a42 100644
--- a/plugins/data/data_sysinfo.lua
+++ b/plugins/data/data_sysinfo.lua
@@ -19,4 +19,8 @@ function dat.get()
return info
end
+function dat.ver()
+ return ver
+end
+
return dat
diff --git a/plugins/data/init.lua b/plugins/data/init.lua
index 9b947cc69f9..83cf194af11 100644
--- a/plugins/data/init.lua
+++ b/plugins/data/init.lua
@@ -20,7 +20,10 @@ end
function data.startplugin()
local data_scr = {}
local valid_lst = {}
+ local cur_set
+ local cur_list
emu.register_start(function()
+ data_scr = {}
for file in lfs.dir(data.path) do
local name = string.match(file, "^(data_.*).lua$")
if name then
@@ -32,7 +35,17 @@ function data.startplugin()
end
end)
emu.register_callback(function(set)
- local ret = ""
+ local ret
+ if set == cur_set then
+ return cur_list
+ elseif set == "" then
+ set = cur_set
+ else
+ cur_set = set
+ end
+ if not set then
+ return nil
+ end
valid_lst = {}
for num, scr in ipairs(data_scr) do
local setname, softname = set:match("^([^,]+),?(.*)$")
@@ -41,7 +54,7 @@ function data.startplugin()
end
local name = scr.check(setname, softname)
if name then
- if ret == "" then
+ if not ret then
ret = name
else
ret = ret .. "," .. name
@@ -49,12 +62,24 @@ function data.startplugin()
valid_lst[#valid_lst + 1] = scr
end
end
+ cur_list = ret
return ret
end, "data_list")
emu.register_callback(function(num)
return valid_lst[num + 1].get()
end, "data")
+
+ emu.register_callback(function(num)
+ local ver
+ if valid_lst[num + 1].ver then
+ ver = valid_lst[num + 1].ver()
+ end
+ if ver then
+ return ver
+ end
+ return ""
+ end, "data_version")
end
return exports
diff --git a/plugins/data/load_dat.lua b/plugins/data/load_dat.lua
index a113da7fd63..72956a8becb 100644
--- a/plugins/data/load_dat.lua
+++ b/plugins/data/load_dat.lua
@@ -19,7 +19,7 @@ function datfile.open(file, vertag)
local inblock = false
local buffer = fh:read("a")
if vertag then
- local match = buffer:match("^" .. vertag .. "%s([^%s]+)")
+ local match = buffer:match(vertag .. "%s*([^%s]+)")
if match then
ver = match
end