// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cmndline.h,v 1.2 1998/09/26 05:34:25 jgg Exp $
+// $Id: cmndline.h,v 1.6 1999/01/18 06:20:07 jgg Exp $
/* ######################################################################
Command Line Class - Sophisticated command line parser
##################################################################### */
/*}}}*/
-// Header section: pkglib
#ifndef PKGLIB_CMNDLINE_H
#define PKGLIB_CMNDLINE_H
{
public:
struct Args;
+ struct Dispatch;
protected:
Args *ArgList;
Configuration *Conf;
- bool HandleOpt(int &I,int argc,const char *argv[],const char *&Opt,Args *A);
-
+ bool HandleOpt(int &I,int argc,const char *argv[],
+ const char *&Opt,Args *A,bool PreceedeMatch = false);
+
public:
enum AFlags
bool Parse(int argc,const char **argv);
void ShowHelp();
unsigned int FileSize() const;
+ bool DispatchArg(Dispatch *List,bool NoMatch = true);
CommandLine(Args *AList,Configuration *Conf);
~CommandLine();
inline bool end() {return ShortOpt == 0 && LongOpt == 0;};
inline bool IsBoolean() {return Flags == 0 || (Flags & (Boolean|InvBoolean)) != 0;};
};
-
+
+struct CommandLine::Dispatch
+{
+ const char *Match;
+ bool (*Handler)(CommandLine &);
+};
+
#endif