Skip to content

Commit e210b15

Browse files
committed
[settings-] prevent lockup when keystroke is same as longname
like from addCommand('a', 'a', 'pass', 'looping command')
1 parent 87bec49 commit e210b15

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

visidata/settings.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,8 +383,13 @@ def getCommand(sheet, cmd):
383383
return cmd
384384

385385
longname = cmd
386+
seen = []
386387
while vd.bindkeys._get(longname, obj=sheet) is not None:
387388
longname = vd.bindkeys._get(longname, obj=sheet)
389+
if longname in seen:
390+
vd.warning('keystroke/command definitions form a cycle')
391+
break
392+
seen.append(longname)
388393

389394
return vd.commands._get(longname, obj=sheet)
390395

0 commit comments

Comments
 (0)