// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cmndline.cc,v 1.5 1998/10/24 20:14:34 jgg Exp $
+// $Id: cmndline.cc,v 1.6 1998/11/25 23:54:22 jgg Exp $
/* ######################################################################
Command Line Class - Sophisticated command line parser
return true;
}
/*}}}*/
-// CommandLine::FileSize - Count the number of filenames /*{{{*/
+// CommandLine::FileSize - Count the number of filenames /*{{{*/
// ---------------------------------------------------------------------
/* */
unsigned int CommandLine::FileSize() const
return Count;
}
/*}}}*/
+// CommandLine::DispatchArg - Do something with the first arg /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool CommandLine::DispatchArg(Dispatch *Map)
+{
+ int I;
+ for (I = 0; Map[I].Match != 0; I++)
+ {
+ if (strcmp(FileList[0],Map[I].Match) == 0)
+ {
+ bool Res = Map[I].Handler(*this);
+ if (Res == false && _error->PendingError() == false)
+ _error->Error("Handler silently failed");
+ return Res;
+ }
+ }
+
+ // No matching name
+ if (Map[I].Match == 0)
+ _error->Error("Invalid operation %s",FileList[0]);
+ return false;
+}
+ /*}}}*/
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cmndline.h,v 1.3 1998/10/24 20:14:35 jgg Exp $
+// $Id: cmndline.h,v 1.4 1998/11/25 23:54:31 jgg Exp $
/* ######################################################################
Command Line Class - Sophisticated command line parser
{
public:
struct Args;
+ struct Dispatch;
protected:
bool Parse(int argc,const char **argv);
void ShowHelp();
unsigned int FileSize() const;
+ bool DispatchArg(Dispatch *List);
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
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: md5.h,v 1.1 1998/10/31 05:19:59 jgg Exp $
+// $Id: md5.h,v 1.2 1998/11/25 23:54:45 jgg Exp $
/* ######################################################################
MD5SumValue - Storage for a MD5Sum
public:
bool Add(const unsigned char *Data,unsigned long Size);
+ inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));};
bool AddFD(int Fd,unsigned long Size);
inline bool Add(const unsigned char *Beg,const unsigned char *End)
{return Add(Beg,End-Beg);};
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: init.cc,v 1.13 1998/11/22 03:20:32 jgg Exp $
+// $Id: init.cc,v 1.14 1998/11/25 23:54:06 jgg Exp $
/* ######################################################################
Init - Initialize the package library
Cnf.Set("Dir::State::xstatus","xstatus");
Cnf.Set("Dir::State::userstatus","status.user");
Cnf.Set("Dir::State::status","/var/lib/dpkg/status");
+ Cnf.Set("Dir::State::cdroms","cdroms.list");
// Cache
Cnf.Set("Dir::Cache","/var/cache/apt/");