X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fcmd%2Fcmd.p.h;h=3193d56debd65e892aa0ad120d2e5d162eda8e12;hp=a4a77bff248201127d26d65b9bb9fce9c7cbc585;hb=64b255327dc6c2456ba4d4e28651b07819710a60;hpb=36d02757fd6863a845163daf0d730bdcc0a28343 diff --git a/src/cmd/cmd.p.h b/src/cmd/cmd.p.h index a4a77bf..3193d56 100644 --- a/src/cmd/cmd.p.h +++ b/src/cmd/cmd.p.h @@ -1,7 +1,7 @@ /* * Copyright 2000, International Business Machines Corporation and others. * All Rights Reserved. - * + * * This software has been released under the terms of the IBM Public * License. For details, see the LICENSE file in the top-level source * directory or online at http://www.openafs.org/dl/license10.html @@ -9,19 +9,19 @@ #ifndef __CMD_INCL__ #define __CMD_INCL__ 1 -#include /* parmdesc types */ #define CMD_FLAG 1 /* no parms */ #define CMD_SINGLE 2 /* one parm */ #define CMD_LIST 3 /* two parms */ +#define CMD_SINGLE_OR_FLAG 4 /* one parm or flag */ /* syndesc flags */ #define CMD_ALIAS 1 /* this is an alias */ -#define CMD_ADMIN 2 /* admin. command, show only with -admin */ -#define CMD_HIDDEN 4 /* A hidden command - similar to CMD_HIDE */ +#define CMD_ADMIN 2 /* admin. command, show only with -admin */ +#define CMD_HIDDEN 4 /* A hidden command - similar to CMD_HIDE */ -#define CMD_HELPPARM (CMD_MAXPARMS-1)/* last one is used by -help switch */ +#define CMD_HELPPARM (CMD_MAXPARMS-1) /* last one is used by -help switch */ #define CMD_MAXPARMS 64 /* max number of parm types to a cmd line */ /* parse items are here */ @@ -32,82 +32,68 @@ struct cmd_item { struct cmd_parmdesc { char *name; /* switch name */ - int type; /* flag, single or list */ + int type; /* flag, single or list */ struct cmd_item *items; /* list of cmd items */ - afs_int32 flags; /* flags */ + afs_int32 flags; /* flags */ char *help; /* optional help descr */ + struct cmd_item *aliases; /* optional aliases */ }; /* cmd_parmdesc flags */ #define CMD_REQUIRED 0 #define CMD_OPTIONAL 1 #define CMD_EXPANDS 2 /* if list, try to eat tokens through eoline, instead of just 1 */ -#define CMD_HIDE 4 /* A hidden option */ +#define CMD_HIDE 4 /* A hidden option */ #define CMD_PROCESSED 8 struct cmd_syndesc { struct cmd_syndesc *next; /* next one in system list */ - struct cmd_syndesc *nextAlias; /* next in alias chain */ - struct cmd_syndesc *aliasOf; /* back ptr for aliases */ - char *name; /* subcommand name */ - char *a0name; /* command name from argv[0] */ - char *help; /* help description */ - int (*proc)(); - char *rock; - int nParms; /* number of parms */ - afs_int32 flags; /* random flags */ + struct cmd_syndesc *nextAlias; /* next in alias chain */ + struct cmd_syndesc *aliasOf; /* back ptr for aliases */ + char *name; /* subcommand name */ + char *a0name; /* command name from argv[0] */ + char *help; /* help description */ + int (*proc) (struct cmd_syndesc * ts, void *arock); + void *rock; + int nParms; /* number of parms */ + afs_int32 flags; /* random flags */ struct cmd_parmdesc parms[CMD_MAXPARMS]; /* parms themselves */ }; -extern struct cmd_syndesc *cmd_CreateSyntax( - char *namep, - int (*aprocp)(), - char *rockp, - char *helpp -); - -extern cmd_SetBeforeProc( - int (*aproc)(), - char *arock -); - -extern cmd_SetAfterProc( - int (*aproc)(), - char *arock -); - -extern int cmd_CreateAlias( - struct cmd_syndesc *as, - char *aname -); - -extern int cmd_Seek( - struct cmd_syndesc *as, - int apos -); - -extern int cmd_AddParm( - struct cmd_syndesc *as, - char *aname, - int atype, - afs_int32 aflags, - char *ahelp -); - -extern cmd_Dispatch( - int argc, - char **argv -); - -extern cmd_FreeArgv( - char **argv -); - -extern cmd_ParseLine( - char *aline, - char **argv, - afs_int32 *an, - afs_int32 amaxn -); +extern struct cmd_syndesc *cmd_CreateSyntax(char *namep, + int (*aprocp) (struct cmd_syndesc + * ts, void *arock), + void *rockp, char *helpp); +extern int + cmd_SetBeforeProc(int (*aproc) (struct cmd_syndesc * ts, void *beforeRock), + void *arock); +extern int + cmd_SetAfterProc(int (*aproc) (struct cmd_syndesc * ts, void *afterRock), + void *arock); +extern int cmd_CreateAlias(struct cmd_syndesc *as, char *aname); +extern int cmd_Seek(struct cmd_syndesc *as, int apos); +extern int cmd_AddParm(struct cmd_syndesc *as, char *aname, int atype, + afs_int32 aflags, char *ahelp); +extern int cmd_AddParmAtOffset(struct cmd_syndesc *as, int ref, char *name, + int atype, afs_int32 aflags, char *ahelp); +extern int cmd_AddParmAlias(struct cmd_syndesc *as, int pos, char *alias); +extern int cmd_Dispatch(int argc, char **argv); +extern int cmd_FreeArgv(char **argv); +extern int cmd_ParseLine(char *aline, char **argv, afs_int32 * an, + 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); + +extern int cmd_Parse(int argc, char **argv, struct cmd_syndesc **outsyntax); +extern void cmd_FreeOptions(struct cmd_syndesc **ts); +extern int cmd_OptionAsInt(struct cmd_syndesc *syn, int pos, int *value); +extern int cmd_OptionAsUint(struct cmd_syndesc *, int, unsigned int *); +extern int cmd_OptionAsString(struct cmd_syndesc *syn, int pos, char **value); +extern int cmd_OptionAsList(struct cmd_syndesc *syn, int pos, struct cmd_item **); +extern int cmd_OptionAsFlag(struct cmd_syndesc *syn, int pos, int *value); +extern int cmd_OptionPresent(struct cmd_syndesc *syn, int pos); #endif /* __CMD_INCL__ */