X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/0d47bd084abcb2739c60ce56f2ece2c5a05e7f31..1afd369d00f2f9272462ffc6c6e24f293a81459e:/apt-pkg/contrib/cmndline.h?ds=sidebyside diff --git a/apt-pkg/contrib/cmndline.h b/apt-pkg/contrib/cmndline.h index f502dfeb6..180276633 100644 --- a/apt-pkg/contrib/cmndline.h +++ b/apt-pkg/contrib/cmndline.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: cmndline.h,v 1.3 1998/10/24 20:14:35 jgg Exp $ +// $Id: cmndline.h,v 1.7 1999/10/31 06:32:28 jgg Exp $ /* ###################################################################### Command Line Class - Sophisticated command line parser @@ -17,7 +17,7 @@ CommandLine::Args Args[] = {{'q',"quiet","apt::get::quiet",CommandLine::IntLevel}, - {0,0,0,0,0}}; + {0,0,0,0}}; The flags mean, HasArg - Means the argument has a value @@ -34,24 +34,27 @@ ConfigFile - Means this flag should be interprited as the name of a config file to read in at this point in option processing. Implies HasArg. + ArbItem - Means the item is an arbitrary configuration string of + the form item=value, where item is passed directly + to the configuration class. The default, if the flags are 0 is to use Boolean ##################################################################### */ /*}}}*/ -// Header section: pkglib #ifndef PKGLIB_CMNDLINE_H #define PKGLIB_CMNDLINE_H -#ifdef __GNUG__ -#pragma interface "apt-pkg/cmndline.h" -#endif - +#ifndef APT_8_CLEANER_HEADERS #include +#endif + +class Configuration; class CommandLine { public: struct Args; + struct Dispatch; protected: @@ -59,6 +62,7 @@ class CommandLine Configuration *Conf; bool HandleOpt(int &I,int argc,const char *argv[], const char *&Opt,Args *A,bool PreceedeMatch = false); + void static SaveInConfig(unsigned int const &argc, char const * const * const argv); public: @@ -77,7 +81,14 @@ class CommandLine bool Parse(int argc,const char **argv); void ShowHelp(); unsigned int FileSize() const; + bool DispatchArg(Dispatch *List,bool NoMatch = true); + static char const * GetCommand(Dispatch const * const Map, + unsigned int const argc, char const * const * const argv); + + static CommandLine::Args MakeArgs(char ShortOpt, char const *LongOpt, + char const *ConfName, unsigned long Flags); + CommandLine(Args *AList,Configuration *Conf); ~CommandLine(); }; @@ -92,5 +103,11 @@ struct CommandLine::Args 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