3 * (C) COPYRIGHT IBM CORPORATION 1988, 1989
4 * LICENSED MATERIALS - PROPERTY OF IBM
12 #define CMD_FLAG 1 /* no parms */
13 #define CMD_SINGLE 2 /* one parm */
14 #define CMD_LIST 3 /* two parms */
17 #define CMD_ALIAS 1 /* this is an alias */
18 #define CMD_HIDDEN 4 /* A hidden command - similar to CMD_HIDE */
20 #define CMD_HELPPARM (CMD_MAXPARMS-1)/* last one is used by -help switch */
21 #define CMD_MAXPARMS 64 /* max number of parm types to a cmd line */
23 /* parse items are here */
25 struct cmd_item *next;
30 char *name; /* switch name */
31 int type; /* flag, single or list */
32 struct cmd_item *items; /* list of cmd items */
33 afs_int32 flags; /* flags */
34 char *help; /* optional help descr */
37 /* cmd_parmdesc flags */
38 #define CMD_REQUIRED 0
39 #define CMD_OPTIONAL 1
40 #define CMD_EXPANDS 2 /* if list, try to eat tokens through eoline, instead of just 1 */
41 #define CMD_HIDE 4 /* A hidden option */
42 #define CMD_PROCESSED 8
45 struct cmd_syndesc *next; /* next one in system list */
46 struct cmd_syndesc *nextAlias; /* next in alias chain */
47 struct cmd_syndesc *aliasOf; /* back ptr for aliases */
48 char *name; /* subcommand name */
49 char *a0name; /* command name from argv[0] */
50 char *help; /* help description */
53 int nParms; /* number of parms */
54 afs_int32 flags; /* random flags */
55 struct cmd_parmdesc parms[CMD_MAXPARMS]; /* parms themselves */
58 extern struct cmd_syndesc *cmd_CreateSyntax(
65 extern cmd_SetBeforeProc(
70 extern cmd_SetAfterProc(
75 extern int cmd_CreateAlias(
76 struct cmd_syndesc *as,
81 struct cmd_syndesc *as,
85 extern int cmd_AddParm(
86 struct cmd_syndesc *as,
102 extern cmd_ParseLine(
109 #endif /* __CMD_INCL__ */