Bring in the improved internal API for the CLI.
authorLuigi Rizzo <rizzo@icir.org>
Tue, 14 Nov 2006 15:23:35 +0000 (15:23 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Tue, 14 Nov 2006 15:23:35 +0000 (15:23 +0000)
commitfbb143b829c2457b2487ea033ea43d18b5d11519
tree35adce1c46b43fa2057b3281ac902334c2bd65a3
parent063ebdf2799ff7f0b4c5ec43c85ee553e06a5f9b
Bring in the improved internal API for the CLI.
WATCH OUT: this changes the binary interface (ABI) for modules,
so e.g. users of g729 codecs need a rebuilt module (but read below).

The new way to write CLI handlers is described in detail in cli.h,
and there are a few converted handlers in cli.c, look for NEW_CLI.

After converting a couple of commands i am convinced that
it is reasonably convenient to use, and it makes it easier to fix the
pending CLI issues.

On passing, note a bug with the current 'complete' architecture:
if a command is a prefix of multiple CLI entries, we miss some
of the possible options. As an example, "core set debug" can
continue with "channel" from one CLI entry, and "off" or "atleast"
from another one.

We address this problem in a separate commit
(when i have figured out a fix, that is).

ABI issues:
I asked Kevin if it was ok to make this change and he said yes.
While it would have been possible to make the change without breaking
the module ABI, the code would have been more convoluted.

I am happy to restore the old ABI (while still being able
to use the "new style" handlers) if there is demand.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/cli.h
main/cli.c