Logo Search packages:      
Sourcecode: ncftp2 version File versions  Download package

MakeArgv.h

/* 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 */

Generated by  Doxygen 1.6.0   Back to index