* #1961 diagnostic logging refresh_nodes_for_path * #1961 add cycle detection to refresh_nodes_for_path * #1961 escape special characters on when path matching during refresh * #1961 escape special characters on when path matching during refresh
This commit is contained in:
parent
8b8d457e07
commit
4222bb875d
@ -166,6 +166,9 @@ function M.refresh_nodes_for_path(path)
|
||||
|
||||
local profile = log.profile_start("refresh_nodes_for_path %s", path)
|
||||
|
||||
-- avoids cycles
|
||||
local paths_refreshed = {}
|
||||
|
||||
NodeIterator.builder({ explorer })
|
||||
:hidden()
|
||||
:recursor(function(node)
|
||||
@ -177,11 +180,14 @@ function M.refresh_nodes_for_path(path)
|
||||
end
|
||||
end)
|
||||
:applier(function(node)
|
||||
local abs_contains = node.absolute_path and path:match("^" .. node.absolute_path)
|
||||
local link_contains = node.link_to and path:match("^" .. node.link_to)
|
||||
local abs_contains = node.absolute_path and path:find(node.absolute_path, 1, true) ~= 1
|
||||
local link_contains = node.link_to and path:find(node.link_to, 1, true) ~= 1
|
||||
if abs_contains or link_contains then
|
||||
if not paths_refreshed[node.absolute_path] then
|
||||
paths_refreshed[node.absolute_path] = true
|
||||
M.refresh_node(node)
|
||||
end
|
||||
end
|
||||
end)
|
||||
:iterate()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user