home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume10
/
parseargs
/
parseargs.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-02-16
|
1KB
|
54 lines
/*
** PARSEARGS.H -- declarations for argument vector parser
**
** $Header: parseargs.h,v 2.0 89/12/24 00:56:29 eric Exp $
**
** Author:
** Eric Allman
** University of California, Berkeley
*/
#ifndef ARGDESC
#ifndef _USEFUL_H_
#include <useful.h>
#endif
#define ARGDESC struct _argdesc
ARGDESC
{
char ad_name; /* flag name */
char ad_flags; /* flags */
BOOL (*ad_type) ARGS((ARGDESC *, char *, BOOL));
/* function to parse value */
ARBPTR ad_valp; /* pointer to value storage area */
char *ad_prompt; /* prompt string */
};
/* bits for ad_flags */
#define ARGREQ 0x01 /* required argument */
#define ARGOPT 0x00 /* optional argument pseudo-flag */
#define ARGHIDDEN 0x02 /* don't display in usage message */
#define ARGGIVEN 0x08 /* (internal) argument has been specified */
/* types available for ad_type */
extern BOOL argBool ARGS((ARGDESC *, char *, BOOL));
extern BOOL argChar ARGS((ARGDESC *, char *, BOOL));
extern BOOL argStr ARGS((ARGDESC *, char *, BOOL));
extern BOOL argInt ARGS((ARGDESC *, char *, BOOL));
extern BOOL argShort ARGS((ARGDESC *, char *, BOOL));
extern BOOL argLong ARGS((ARGDESC *, char *, BOOL));
extern BOOL argFloat ARGS((ARGDESC *, char *, BOOL));
extern BOOL argDouble ARGS((ARGDESC *, char *, BOOL));
extern BOOL argList ARGS((ARGDESC *, char *, BOOL));
struct namelist {
struct namelist *nl_next;
char *nl_name;
};
#define ENDOFARGS { '\0' }
#endif