# HG changeset patch # User Matthew Wild # Date 1679585432 0 # Node ID e547ddf8b64d2dfdeffbeaf7369387a1764446fc # Parent 3c19b67a1f0f4726ae5dcd2b6ffd99a6a2a36c57 Remove dependency on util.iterators I mistakenly thought it was bundled with verse. diff -r 3c19b67a1f0f -r e547ddf8b64d scansion/helpers.lua --- a/scansion/helpers.lua Thu Mar 23 15:16:00 2023 +0000 +++ b/scansion/helpers.lua Thu Mar 23 15:30:32 2023 +0000 @@ -27,7 +27,22 @@ return stanza; end +local function sorted_pairs(t, sort_func) + local keys = {}; + for k in pairs(t) do table.insert(keys, k); end + table.sort(keys, sort_func); + local i = 0; + return function () + i = i + 1; + local key = keys[i]; + if key ~= nil then + return key, t[key]; + end + end; +end + return { filter_expression = filter_expression; fill_vars = fill_vars; + sorted_pairs = sorted_pairs; }; diff -r 3c19b67a1f0f -r e547ddf8b64d scansion/ordered_serializer.lua --- a/scansion/ordered_serializer.lua Thu Mar 23 15:16:00 2023 +0000 +++ b/scansion/ordered_serializer.lua Thu Mar 23 15:30:32 2023 +0000 @@ -1,7 +1,7 @@ local s_find, s_gsub, s_match = string.find, string.gsub, string.match; local t_concat, t_insert = table.concat, table.insert; -local pairs = require "util.iterators".sorted_pairs; +local pairs = require "scansion.helpers".sorted_pairs; local escape_table = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; local function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end diff -r 3c19b67a1f0f -r e547ddf8b64d scansion/pretty.lua --- a/scansion/pretty.lua Thu Mar 23 15:16:00 2023 +0000 +++ b/scansion/pretty.lua Thu Mar 23 15:30:32 2023 +0000 @@ -3,7 +3,7 @@ local s_format, s_gsub = string.format, string.gsub; local unsorted_pairs = pairs; -local sorted_pairs = require "util.iterators".sorted_pairs; +local sorted_pairs = require "scansion.helpers".sorted_pairs; local escape_table = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; local function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end