diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-11-06 23:21:48 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-11-07 15:31:29 +1000 |
commit | 5fe0bb5f3beedb262512a8e548bf7cc6ed9bff96 (patch) | |
tree | 3b010fb2fc159e74b3f5eb14dc273179a159e36d /jim-subcmd.c | |
parent | 5e7859e24d9534bf1e7e745bf1e2906afcf83633 (diff) | |
download | jimtcl-5fe0bb5f3beedb262512a8e548bf7cc6ed9bff96.zip jimtcl-5fe0bb5f3beedb262512a8e548bf7cc6ed9bff96.tar.gz jimtcl-5fe0bb5f3beedb262512a8e548bf7cc6ed9bff96.tar.bz2 |
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.c | 97 |
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; -} |