From: Sarah Hoffmann Date: Mon, 20 Mar 2023 20:20:27 +0000 (+0100) Subject: fix handling of unused extra tags X-Git-Tag: v4.3.0~88^2~1 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/114cc776be066443c95b576eedd8011fb92a2c59 fix handling of unused extra tags The tags can only be moved to extra tags after the main tags have been handled. --- diff --git a/settings/flex-base.lua b/settings/flex-base.lua index 0e112736..000d01f3 100644 --- a/settings/flex-base.lua +++ b/settings/flex-base.lua @@ -223,14 +223,15 @@ 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 end + print(k, v) place_table:insert{ class = k, type = v, @@ -243,7 +244,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 +440,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 @@ -485,12 +488,10 @@ end function module.set_unused_handling(data) if data.extra_keys == nil and data.extra_tags == nil then POST_DELETE = module.tag_match{keys = data.delete_keys, tags = data.delete_tags} - POST_EXTRAS = nil - SAVE_EXTRA_MAINS = true + 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{keys = 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