X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9321e425a4b6a42f8c6579a27f575d40a07efa12..7aa0aba382ae97fd986f8cbe33d6f2c2ff22eb9d:/settings/flex-base.lua diff --git a/settings/flex-base.lua b/settings/flex-base.lua index a7a3c58c..58d60228 100644 --- a/settings/flex-base.lua +++ b/settings/flex-base.lua @@ -223,9 +223,9 @@ function Place:write_row(k, v, save_extra_mains) return 0 end - if save_extra_mains then + if save_extra_mains ~= nil then for extra_k, extra_v in pairs(self.object.tags) do - if extra_k ~= k then + if extra_k ~= k and save_extra_mains(extra_k, extra_v) then self.extratags[extra_k] = extra_v end end @@ -243,7 +243,9 @@ function Place:write_row(k, v, save_extra_mains) if save_extra_mains then for k, v in pairs(self.object.tags) do - self.extratags[k] = nil + if save_extra_mains(k, v) then + self.extratags[k] = nil + end end end @@ -437,7 +439,7 @@ function module.process_tags(o) return end - o:clean{delete = POST_DELETE, extra = POST_EXTRAS} + o:clean{delete = POST_DELETE} -- collect main keys for k, v in pairs(o.object.tags) do @@ -461,8 +463,8 @@ end function module.set_prefilters(data) PRE_DELETE = module.tag_match{keys = data.delete_keys, tags = data.delete_tags} - PRE_EXTRAS = module.tag_match{keys = data.extratag_keys, - tags = data.extratag_tags} + PRE_EXTRAS = module.tag_match{keys = data.extra_keys, + tags = data.extra_tags} end function module.set_main_tags(data) @@ -484,13 +486,11 @@ end function module.set_unused_handling(data) if data.extra_keys == nil and data.extra_tags == nil then - POST_DELETE = module.tag_match{data.delete_keys, tags = data.delete_tags} - POST_EXTRAS = nil - SAVE_EXTRA_MAINS = true + POST_DELETE = module.tag_match{keys = data.delete_keys, tags = data.delete_tags} + SAVE_EXTRA_MAINS = function() return true end elseif data.delete_keys == nil and data.delete_tags == nil then POST_DELETE = nil - POST_EXTRAS = module.tag_match{data.extra_keys, tags = data.extra_tags} - SAVE_EXTRA_MAINS = false + SAVE_EXTRA_MAINS = module.tag_match{keys = data.extra_keys, tags = data.extra_tags} else error("unused handler can have only 'extra_keys' or 'delete_keys' set.") end