static int (*beforeProc) (struct cmd_syndesc * ts, void *beforeRock) = NULL;
static int (*afterProc) (struct cmd_syndesc * ts, void *afterRock) = NULL;
static int enablePositional = 1;
+static int enableAbbreviation = 1;
static void *beforeRock, *afterRock;
static char initcmd_opcode[] = "initcmd"; /*Name of initcmd opcode */
if (strlen(as->parms[i].name) < cmdlen)
continue;
/* A hidden option must be a full match (no best matches) */
- if (as->parms[i].flags & CMD_HIDE)
+ if (as->parms[i].flags & CMD_HIDE || !enableAbbreviation)
continue;
if (strncmp(as->parms[i].name, aname, cmdlen) == 0) {
enablePositional = 0;
}
+void
+cmd_DisableAbbreviations(void)
+{
+ enableAbbreviation = 0;
+}
+
int
cmd_IsAdministratorCommand(struct cmd_syndesc *as)
{
afs_int32 amaxn);
extern int cmd_IsAdministratorCommand(struct cmd_syndesc *as);
extern void cmd_DisablePositionalCommands(void);
+extern void cmd_DisableAbbreviations(void);
extern void PrintSyntax(struct cmd_syndesc *as);
extern void PrintFlagHelp(struct cmd_syndesc *as);
int code;
int tc;
- plan(27);
+ plan(29);
initialize_CMD_error_table();
is_int(3359746, code, "positional parameters can be disabled");
cmd_FreeArgv(tv);
+ /* Disable abbreviations */
+ cmd_DisableAbbreviations();
+ code = cmd_ParseLine("-fi foo -s bar -flag", tv, &tc, 100);
+ is_int(0, code, "cmd_ParseLine succeeds");
+ code = cmd_Dispatch(tc, tv);
+ is_int(CMD_UNKNOWNSWITCH, code, "dispatching abbreviations succeeds");
+ cmd_FreeArgv(tv);
+
return 0;
}