75 lines
1.9 KiB
C
75 lines
1.9 KiB
C
|
/*
|
||
|
* the format strings may be:
|
||
|
* .* must match exactly
|
||
|
* .*\*.* head and tail must match, with wild card in middle
|
||
|
* .*# head must match. tail can either be adjacent or next word
|
||
|
* at the moment '-' is not treated specialy
|
||
|
* note that 'middle' may be at either end since '.*' matches null.
|
||
|
*/
|
||
|
|
||
|
#define TAKESARG 0x20 /* tag to indicate argument or not */
|
||
|
#define FLAG 1 /* set the flag */
|
||
|
#define STRING 2|TAKESARG /* set the string, either from here, or next word */
|
||
|
#define SUBSTR 3|TAKESARG /* set single letter flags from substring */
|
||
|
#define NUMBER 4|TAKESARG /* set read in the number */
|
||
|
#define UNFLAG 5 /* turn the flag off */
|
||
|
#define PSHSTR 6|TAKESARG /* like string, but puts it on a LIST structure */
|
||
|
#define NOVSTR 7|TAKESARG /* like string, but complains about overwriting */
|
||
|
|
||
|
#define NUM_ARGS 50 /* Limit of flags passed from driver to pass */
|
||
|
#define MSC_ENVFLAGS "MSC_CMD_FLAGS"
|
||
|
/* Environment variable flags passed in, used for getenv() */
|
||
|
#define PUT_MSC_ENVFLAGS "MSC_CMD_FLAGS="
|
||
|
/* Environment variable flags passed in, used for putenv() */
|
||
|
|
||
|
/* return values from getflags */
|
||
|
#define R_SWITCH 1
|
||
|
#define R_CFILE 2
|
||
|
#define R_ASMFILE 3
|
||
|
#define R_OBJFILE 4
|
||
|
#define R_ERROR 5
|
||
|
#define R_FILE 6
|
||
|
#define R_EXIT 7
|
||
|
#define R_FFILE 8
|
||
|
#define R_PFILE 9
|
||
|
#define R_AFILE 10
|
||
|
#define R_OFILE 11
|
||
|
/* r. nevin, 1/11/85 */
|
||
|
#define R_HELP 12
|
||
|
/* b. nguyen, 4/7/86 */
|
||
|
#define R_HELPC 13
|
||
|
#define R_HELPF 14
|
||
|
|
||
|
struct cmdtab
|
||
|
{
|
||
|
char *format; /* format matching string */
|
||
|
char *flag; /* pointer to what to fill in */
|
||
|
/* this is really a
|
||
|
* union
|
||
|
* {
|
||
|
* char **str;
|
||
|
* int *flag;
|
||
|
* struct subtab *sub;
|
||
|
* struct LIST *list;
|
||
|
* } cm;
|
||
|
* but you cant initialize unions so we have to fake it.
|
||
|
*/
|
||
|
char retval; /* crack_cmd will return whatever is here */
|
||
|
UCHAR type; /* control mask */
|
||
|
};
|
||
|
|
||
|
struct subtab
|
||
|
{
|
||
|
int letter;
|
||
|
int type;
|
||
|
int *flag;
|
||
|
};
|
||
|
|
||
|
#define FORT_LANG 1
|
||
|
#define C_LANG 2
|
||
|
|
||
|
struct Help_string{
|
||
|
char *message;
|
||
|
int fLanguage;
|
||
|
};
|