From ddba23f32361782fb26489a718ef82afc6beb2bc Mon Sep 17 00:00:00 2001 From: gnuxie Date: Fri, 10 Feb 2023 19:13:37 +0000 Subject: [PATCH] Interning a sub-command would overwrite the parent command. --- src/commands/interface-manager/InterfaceCommand.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/interface-manager/InterfaceCommand.ts b/src/commands/interface-manager/InterfaceCommand.ts index 6c214272..732b1407 100644 --- a/src/commands/interface-manager/InterfaceCommand.ts +++ b/src/commands/interface-manager/InterfaceCommand.ts @@ -91,8 +91,9 @@ export class CommandTable { if (table.next === undefined) { table.next = new Map(); } - const nextLookupEntry = {}; - table.next!.set(designator.shift()!, nextLookupEntry); + const currentDesignator = designator.shift()!; + const nextLookupEntry = table.next.get(currentDesignator) + ?? ((lookup: CommandLookupEntry) => (table.next?.set(currentDesignator, lookup), lookup))({}); internCommandHelper(nextLookupEntry, designator); } }