| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Eliminates duplicated code in script_command and handle_unknown_command.
Fixes bug with duplicated help output generated by placeholder commands.
|
|
|
|
|
|
|
|
|
| |
Factors log capture while running script commands, eliminating
duplicated code between script_command and jim_capture. Factors
setting a command's Jim "retval" into a new helper as well.
Using these new helpers in the new unknown command handler's
fixes possible regressions caused by these bits being missing.
|
|
|
|
| |
Remove duplicated handler code by checking the running command name.
|
|
|
|
|
| |
Rewrite formatting code in C, removing last remenants of TCL help code.
Sinificantly improves the readability by using smarter indent and wrap.
|
|
|
|
|
|
| |
The add_usage_text command uses the same C handler, which was updated
to support its new polymorphic role. This patch updates the two script
commands that needed this support: 'find' and 'script'.
|
|
|
|
|
|
| |
Adding jim_handler field to command_registration allows removing the
register_jim helper. All command registrations now go through the
register_command{,s}() functions.
|
|
|
|
| |
Save stack space: use a struct. Makes it easier to add new parameters.
|
|
|
|
|
| |
Rewrite the magical 'unknown' command in C as a Jim handler, allowing
it to dispatch commands to any level in the tree.
|
|
|
|
|
| |
Allow other modules to find a command, primarily for the purpose of
registering and unregistering subcommands.
|
|
|
|
| |
Move command context acquisition to current_command_context() for re-use.
|
|
|
|
|
|
|
|
|
| |
Adds the ability to chain registration structures. Modules can define a
command with the 'chain' and 'num_chain' fields defined in their
registration table, and the register_commands() function will initialize
these commands. If the registration record creates a new command, then
the chained commands are created under it; otherwise, they are created
in the same context as the other commands (i.e. the parent argument).
|
|
|
|
|
| |
Split out the handler registration into its own function, and add a
few obviously missing NULL pointer error checking.
|
|
|
|
|
|
| |
Use register_commands() to register low-level command handlers,
adding a builtin_command_handlers declaration that is easy to understand.
Splits help and usage information into their appropriate fields.
|
|
|
|
|
|
| |
Adds the usage command, to display usage information for commands.
The output for this command will remain erronenously empty until
commands are updated to use these new coventions.
|
|
|
|
|
|
| |
The register_commands API takes multiple commands in one call, allowing
modules to declare and pass a much simpler (and more explicit) array of
command_registration records.
|
|
|
|
|
|
|
|
|
| |
Add a structure to encapsulate command registration information, rather
than passing them all as parameters. Enables further API changes that
require additional required or optional parameters.
Updates the register_command API and COMMAND_REGISTER macro to use it,
along with their documentation.
|
|
|
|
|
| |
Replaces direct calls to register_command() with a macro, to allow
its parameters to be changed and callers updated in phases.
|
|
|
|
|
| |
Use insertion sort to the command link lists. The only practical effect
of this is to order the output of the new 'help' command.
|
|
|
|
|
|
|
|
|
|
| |
Rewrite means for scripts to register help text for commands. These
cause the new commands to be stored in the command heirarchy, with
built-in commands; however, they will never be invoked there because
they do not receive a command handler. The same trick is used for
the Jim commands.
Remove the old helpers that were used to register commands.
|
|
|
|
|
|
| |
For the startup.tcl code to use built-in commands, the context must be
associated with the interpreter temporarily. This will be required to
add help text.
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrites 'help' command in C, using new 'cmd_help' for display. Adds the
built-in 'help' COMMAND_HANDLER to provide better output than the
TCL-based script command (e.g. heirarchical listing of commands).
The help string is stored in the command structure, though it conitnues
to be pushed into the Jim environment. The current idiomatic usage
suggests the addition of a usage field as well, to provide two levels
of detail for users to consume (i.e. terse usage list, or verbose help).
|
|
|
|
|
|
|
|
|
| |
Refactors the command registration to use helpers to simplify the code.
The unregistration routines were made more flexible by allowing them
to operate on a single command, such that one can remove all of a
commands children in one step (perhaps before adding back a 'config'
subcommand that allows getting the others back). Eliminates a bit
of duplicated code and adds full API documentation for these routines.
|
|
|
|
| |
Avoid requiring double pointers where a single would suffice.
|
|
|
|
| |
Splits argument allocation out from script command, reusing free() code.
|
|
|
|
|
|
|
|
| |
Removing the fast command eliminates the fast_and_dangerous global,
which was used only by arm7_9_common as an initializer. The command
is not called in the tree; instead, more explicit commands are used.
The jim_global_long function was not used anywhere in the tree.
|
|
|
|
|
|
|
|
|
| |
This patch changes the behavior of all boolean parsing callers to
accept any one of "true/enable/on/yes/1" or "false/disable/off/no/0".
Since one particular pair will be most appropriate in any given
situation, the specific macros should continue to be used in
order to display the most informative error messages possible.
|
|
|
|
|
|
|
|
|
| |
Rewrite arm11_handle_bool to provide a generic on/off command helper.
Refactors COMMAND_PARSE_BOOL to use new command_parse_bool helper,
which gets reused by the new command_parse_bool_any helper.
This later helper is called by the new command helper function to
accepts any on/off, enable/disable, true/false, yes/no, or 0/1 parameter.
|
|
|
|
|
| |
Removes external linkage from helper module, making the startup
code a parameter to a new command context's initialization routine.
|
| |
|
|
|
|
|
| |
Update CMD_NAME from its migratory home in CMD_ARGV[-1] to cmd->name.
Allows CMD_ARGV++ idiom to be used safely in command handlers.
|
|
|
|
|
|
|
|
|
|
| |
Adds the command_invocation structure to encapsulate parameters for
all COMMAND_HANDLER routines. Rather than passing several arguments
to each successive subroutine, a single pointer may be passed around.
Changes the CMD_* macros to reference the new fields.
Updates run_command to create an instance and pass it to the handler.
|
|
|
|
|
| |
This patch converts all instances of 'args' in COMMAND_HANDLER routines
to use CMD_ARGV macro.
|
|
|
|
|
| |
This patch converts all instances of 'argc' in COMMAND_HANDLER routines
to use CMD_ARGC.
|
|
|
|
| |
The jim_register command just needed to use the type defined by jim.h.
|
|
|
|
| |
Remove misleading typedef and redundant suffix from struct command.
|
|
|
|
| |
Remove misleading typedef and redundant suffix from struct command_context.
|
|
|
|
|
| |
This patch removes 'cmd' from the list of direct parameters, moving
that pointer to args[-1] (by way of the new CMD_NAME macro).
|
|
|
|
|
| |
This patch prevents command handlers from modifying the strings passed
in the 'args' array.
|
| |
|
|
|
|
|
|
| |
This patch adds new typedefs for command handler callback functions.
Users of this type signature were updated to use these new types.
It uses the new __COMMAND_HANDLER macro to prevent duplication.
|
|
|
|
|
| |
Add a typedef for command output handler function type, simplifying
the appearance of functions that use it and eliminating duplicate code.
|
|
|
|
|
|
|
| |
Eliminate duplicate code for linking commands into a list.
Adds a check to ensure the command does not already exist;
if it does, return that one instead of creating a duplicate.
|
|
|
|
|
|
|
|
|
| |
Add help for commands regardless of whether a handler is involved.
With this, all sorts of new commands can be found in 'help' text.
Hopefully, all of them have been documented....
Sadly, the lsort function appears to handle nested lists poorly, such
that sub-commands do not group with their parents.
|
|
|
|
|
| |
Add helpers to manage adding entries to the helptext list.
Adds support for arbitrarily nested commands.
|
|
|
|
|
|
|
| |
The command_name function returns a malloced string for a given
command and its parents. This can be used to display a message
to the user, but it is used internally to handle registration
and syntax errors. This helps permit arbitrary command nesting.
|
|
|
|
| |
Use unsigned type for number of arguments.
|
|
|
|
| |
This patch also improves the signature of run_command function.
|
|
|
|
| |
Use unsigned type for line number in log_callback_fn signature.
|
|
|
|
| |
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
|
|
|
|
|
| |
Removes useless declarations, moving the handler functions to appear
before their use in the (much bigger) command registriation function.
|