From 59544382d3d13e6b34657fb3886d1db57463ea03 Mon Sep 17 00:00:00 2001 From: cracyc Date: Sun, 21 Jan 2018 18:32:15 -0600 Subject: plugins/portname: sort the list and print the port names and masks (nw) --- plugins/portname/init.lua | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/plugins/portname/init.lua b/plugins/portname/init.lua index 112c10aef47..0d1edeb288d 100644 --- a/plugins/portname/init.lua +++ b/plugins/portname/init.lua @@ -96,11 +96,15 @@ function portname.startplugin() for fname, field in pairs(port.fields) do local dname = field.default_name if not fields[dname] then - fields[dname] = "" + fields[dname] = {} + fields[dname].name = "" end if fname ~= dname then - fields[dname] = fname + fields[dname].name = fname end + fields[dname].port = pname + fields[dname].mask = field.mask + fields[dname].default = dname end end local function check_path(path) @@ -133,10 +137,16 @@ function portname.startplugin() file:close() return false end + local sfields = {} + for def, field in pairs(fields) do + sfields[#sfields + 1] = field + end + table.sort(sfields, function(a, b) if(a.port == b.port) then return a.mask < b.mask end return a.port < b.port end) file = io.open(ctrlrpath .. "/portname/" .. filename, "w") - for def, custom in pairs(fields) do - def = def:gsub("[\\\"]", function (s) return "\\" .. s end) - custom = custom:gsub("[\\\"]", function (s) return "\\" .. s end) + for n, field in ipairs(sfields) do + def = field.default:gsub("[\\\"]", function (s) return "\\" .. s end) + custom = field.name:gsub("[\\\"]", function (s) return "\\" .. s end) + file:write(string.format("# port %s mask %08x\n", field.port, field.mask)) file:write("msgid \"" .. def .."\"\nmsgstr \"" .. custom .. "\"\n\n") end file:close() -- cgit v1.2.3