From 3b302d03947c91f36f40e8ab35582eabda49b2da Mon Sep 17 00:00:00 2001 From: Rob Muhlestein Date: Tue, 29 Nov 2022 22:39:28 -0500 Subject: [PATCH] Fix edge case infinite loop with Get --- z/cmd.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/z/cmd.go b/z/cmd.go index a660639..090b4a6 100644 --- a/z/cmd.go +++ b/z/cmd.go @@ -540,8 +540,14 @@ func (x *Cmd) PathCmds() []*Cmd { func (x *Cmd) PathNames() []string { path := qstack.New[string]() path.Unshift(x.Name) - for p := x.Caller; p != nil; p = p.Caller { + log.Print(x.Caller) + p := x.Caller + for p != nil { path.Unshift(p.Name) + if p == p.Caller { + break + } + p = p.Caller } path.Shift() return path.Items()