summaryrefslogtreecommitdiff
path: root/jim-subcmd.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-11-06 23:21:48 +1000
committerSteve Bennett <steveb@workware.net.au>2011-11-07 15:31:29 +1000
commit5fe0bb5f3beedb262512a8e548bf7cc6ed9bff96 (patch)
tree3b010fb2fc159e74b3f5eb14dc273179a159e36d /jim-subcmd.c
parent5e7859e24d9534bf1e7e745bf1e2906afcf83633 (diff)
Remove use of designated initialisers
For better compatibility c89 compatibility. Also simplify jim-subcmd. Remove -usage and command descriptions. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-subcmd.c')
-rw-r--r--jim-subcmd.c97
1 files changed, 2 insertions, 95 deletions
diff --git a/jim-subcmd.c b/jim-subcmd.c
index 2de560a..f417c1e 100644
--- a/jim-subcmd.c
+++ b/jim-subcmd.c
@@ -17,9 +17,7 @@ static int subcmd_null(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
* Do-nothing command to support -commands and -usage
*/
static const jim_subcmd_type dummy_subcmd = {
- .cmd = "dummy",
- .function = subcmd_null,
- .flags = JIM_MODFLAG_HIDDEN,
+ "dummy", NULL, subcmd_null, 0, 0, JIM_MODFLAG_HIDDEN
};
static void add_commands(Jim_Interp *interp, const jim_subcmd_type * ct, const char *sep)
@@ -63,22 +61,6 @@ static void add_cmd_usage(Jim_Interp *interp, const jim_subcmd_type * ct, Jim_Ob
}
}
-static void show_full_usage(Jim_Interp *interp, const jim_subcmd_type * ct, int argc,
- Jim_Obj *const *argv)
-{
- Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
- for (; ct->cmd; ct++) {
- if (!(ct->flags & JIM_MODFLAG_HIDDEN)) {
- /* subcmd */
- add_cmd_usage(interp, ct, argv[0]);
- if (ct->description) {
- Jim_AppendStrings(interp, Jim_GetResult(interp), "\n\n ", ct->description, NULL);
- }
- Jim_AppendStrings(interp, Jim_GetResult(interp), "\n\n", NULL);
- }
- }
-}
-
static void set_wrong_args(Jim_Interp *interp, const jim_subcmd_type * command_table, Jim_Obj *subcmd)
{
Jim_SetResultString(interp, "wrong # args: must be \"", -1);
@@ -103,19 +85,12 @@ const jim_subcmd_type *Jim_ParseSubCmd(Jim_Interp *interp, const jim_subcmd_type
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
Jim_AppendStrings(interp, Jim_GetResult(interp), "wrong # args: should be \"", cmdname,
" command ...\"\n", NULL);
- Jim_AppendStrings(interp, Jim_GetResult(interp), "Use \"", cmdname, " -help\" or \"",
- cmdname, " -help command\" for help", NULL);
+ Jim_AppendStrings(interp, Jim_GetResult(interp), "Use \"", cmdname, " -help ?command?\" for help", NULL);
return 0;
}
cmd = argv[1];
- if (argc == 2 && Jim_CompareStringImmediate(interp, cmd, "-usage")) {
- /* Show full usage */
- show_full_usage(interp, command_table, argc, argv);
- return &dummy_subcmd;
- }
-
/* Check for the help command */
if (Jim_CompareStringImmediate(interp, cmd, "-help")) {
if (argc == 2) {
@@ -180,9 +155,6 @@ const jim_subcmd_type *Jim_ParseSubCmd(Jim_Interp *interp, const jim_subcmd_type
Jim_SetResultString(interp, "Usage: ", -1);
/* subcmd */
add_cmd_usage(interp, ct, argv[0]);
- if (ct->description) {
- Jim_AppendStrings(interp, Jim_GetResult(interp), "\n\n", ct->description, NULL);
- }
return &dummy_subcmd;
}
@@ -226,68 +198,3 @@ int Jim_SubCmdProc(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
return Jim_CallSubCmd(interp, ct, argc, argv);
}
-
-/* The following two functions are for normal commands */
-int
-Jim_CheckCmdUsage(Jim_Interp *interp, const jim_subcmd_type * command_table, int argc,
- Jim_Obj *const *argv)
-{
- /* -usage or -help */
- if (argc == 2) {
- if (Jim_CompareStringImmediate(interp, argv[1], "-usage")
- || Jim_CompareStringImmediate(interp, argv[1], "-help")) {
- Jim_SetResultString(interp, "Usage: ", -1);
- add_cmd_usage(interp, command_table, NULL);
- if (command_table->description) {
- Jim_AppendStrings(interp, Jim_GetResult(interp), "\n\n", command_table->description,
- NULL);
- }
- return JIM_OK;
- }
- }
- if (argc >= 2 && command_table->function) {
- /* This is actually a sub command table */
-
- Jim_Obj *nargv[4];
- int nargc = 0;
- const char *subcmd = NULL;
-
- if (Jim_CompareStringImmediate(interp, argv[1], "-subcommands")) {
- Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
- add_commands(interp, (jim_subcmd_type *) command_table->function, " ");
- return JIM_OK;
- }
-
- if (Jim_CompareStringImmediate(interp, argv[1], "-subhelp")
- || Jim_CompareStringImmediate(interp, argv[1], "-help")) {
- subcmd = "-help";
- }
- else if (Jim_CompareStringImmediate(interp, argv[1], "-subusage")) {
- subcmd = "-usage";
- }
-
- if (subcmd) {
- nargv[nargc++] = Jim_NewStringObj(interp, "$handle", -1);
- nargv[nargc++] = Jim_NewStringObj(interp, subcmd, -1);
- if (argc >= 3) {
- nargv[nargc++] = argv[2];
- }
- Jim_ParseSubCmd(interp, (jim_subcmd_type *) command_table->function, nargc, nargv);
- Jim_FreeNewObj(interp, nargv[0]);
- Jim_FreeNewObj(interp, nargv[1]);
- return 0;
- }
- }
-
- /* Check the number of args */
- if (argc - 1 < command_table->minargs || (command_table->maxargs >= 0
- && argc - 1 > command_table->maxargs)) {
- set_wrong_args(interp, command_table, NULL);
- Jim_AppendStrings(interp, Jim_GetResult(interp), "\nUse \"", Jim_String(argv[0]),
- " -help\" for help", NULL);
- return JIM_ERR;
- }
-
- /* Not usage, but passed arg checking */
- return -1;
-}