home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
ncftp-2.3.0-base.tgz
/
ncftp-2.3.0-base.tar
/
contrib
/
ncftp
/
MakeArgv.h
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-07
|
1KB
|
57 lines
/* MakeArgv.h */
#ifndef _makeargv_h_
#define _makeargv_h_
/* Result codes returned after parsing a command line. */
#define kMavNoErr 0
#define kMavErrUnbalancedQuotes 1
#define kMavErrTooManyQuotePairs 2
#define kMavErrTooManyReDirections 3
#define kMavErrNoReDirectedFileName 4
#define kMavErrNoPipeCommand 5
#define kMavErrNoReDirectedInput 6
#define kMavErrBothPipeAndReDirOut 7
/* The different sets of quotes supported. */
#define ISQUOTE(c) (((c) == '"') || ((c) == '\'') || ((c) == '`'))
/* Max number of sets of nested quotes supported. */
#define kMaxQuotePairs 15
/* Special token types. */
#define kRegularArg 0
#define kReDirectOutArg 1
#define kReDirectOutAppendArg 2
/* Limit on number of arguments to track. */
#define kMaxArgs 128
typedef struct CmdLineInfo {
int argCount;
int isAppend;
char outFileName[1024];
char pipeCmdLine[1024];
int savedStdout;
int outFile;
char argBuf[1024];
char *argVector[kMaxArgs + 4];
int err;
char *errStr;
} CmdLineInfo, *CmdLineInfoPtr;
#define NEWCMDLINEINFOPTR \
((CmdLineInfoPtr) calloc((size_t)1, sizeof(CmdLineInfo)))
/* We put a few more things in the arg vector. */
#define CMDLINEFROMARGS(c,v) (v[(c) + 1])
#define CLIPFROMARGS(c,v) ((CmdLineInfoPtr) (v[(c) + 2]))
int MakeArgVector(char *str, CmdLineInfoPtr clp);
void ExpandDollarVariables(char *cmdLine, size_t sz, int argc, char **argv);
#endif /* _makeargv_h_ */
/* eof makeargv.h */