fix regression causing duplicated output
authorZachary T Welch <zw@superlucidity.net>
Fri, 27 Nov 2009 21:51:17 +0000 (13:51 -0800)
committerZachary T Welch <zw@superlucidity.net>
Fri, 27 Nov 2009 22:30:26 +0000 (14:30 -0800)
commit77aa7ca8d65ac5dc7b46ad9ef79e3f6aed9b4d0e
tree65e821f25a0fada620392b1e0695b965c40eb2d8
parenta0d983ab0616581559634c7217a8eecf61f4d65b
fix regression causing duplicated output

The command refactoring caused subcommand handlers to produce duplicate
output when run.  The problem was introduced by failing to ensure all
such invocations went through a top-level "catcher" script, prefixing
the command name with the 'ocd_' prefix and consuming its results.

The fix is to ensure such a top-level "catcher" script gets created
for each top-level command, regardless of whether it has a handler.
Indeed, this patch removes all command registrations for sub-commands,
which would not have worked in the new registration scheme anyway.

For now, dispatch of subcommands continues to be handled by the new
'unknown' command handler, which gets fixed here to strip the 'ocd_'
prefix if searching for the top-level command name fails initially.
Some Jim commands may be registered with this prefix, and that situation
seems to require the current fallback approach.  Otherwise, that prefix
could be stripped unconditionally and the logic made a little simpler.
The same problem must be handled by the 'help' command handler too,
so its lookup process works as intended.

Overall, the command dispatching remains more complicated than desired,
but this patch fixes the immediate regressions.
src/helper/command.c