From aba641ac44bfb641dd56f0c73ccd5c11689d4c01 Mon Sep 17 00:00:00 2001 From: Joe Date: Mon, 15 Jan 2024 20:20:20 +0100 Subject: go --- c_litems.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'c_litems.go') diff --git a/c_litems.go b/c_litems.go index 33a3840..031432d 100644 --- a/c_litems.go +++ b/c_litems.go @@ -166,3 +166,27 @@ func (litems *ItemsList) inc(jump int) { } litems.curr = new_item } + +// returns the next directory in line with the same or lower depth +func (item *ItemsNode) get_next_level() *ItemsNode { + if item == nil || item.Dirs == nil { + return nil + } + dir := item.Dirs + ptr := dir.next + for ptr != nil && ptr.Depth > dir.Depth { + ptr = ptr.next + } + item_ptr := item + for item_ptr != nil { + if item_ptr.is_dir() == false { + continue + } + if item_ptr.Dirs == ptr { + break + } + item_ptr = item_ptr.next + } + return item_ptr +} + -- cgit v1.2.3