More CD support
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:40 +0000 (16:51 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:51:40 +0000 (16:51 +0000)
Author: jgg
Date: 1998-11-25 23:54:06 GMT
More CD support

apt-pkg/contrib/cmndline.cc
apt-pkg/contrib/cmndline.h
apt-pkg/contrib/md5.h
apt-pkg/init.cc

index 9546eac..858a530 100644 (file)
@@ -1,6 +1,6 @@
 // -*- 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
@@ -302,7 +302,7 @@ bool CommandLine::HandleOpt(int &I,int argc,const char *argv[],
    return true;
 }
                                                                        /*}}}*/
-// CommandLine::FileSize - Count the number of filenames                                                                       /*{{{*/
+// CommandLine::FileSize - Count the number of filenames               /*{{{*/
 // ---------------------------------------------------------------------
 /* */
 unsigned int CommandLine::FileSize() const
@@ -313,3 +313,26 @@ 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;
+}
+                                                                       /*}}}*/
index f502dfe..2e1e052 100644 (file)
@@ -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.4 1998/11/25 23:54:31 jgg Exp $
 /* ######################################################################
 
    Command Line Class - Sophisticated command line parser
@@ -52,6 +52,7 @@ class CommandLine
 {
    public:
    struct Args;
+   struct Dispatch;
    
    protected:
    
@@ -77,6 +78,7 @@ class CommandLine
    bool Parse(int argc,const char **argv);
    void ShowHelp();
    unsigned int FileSize() const;
+   bool DispatchArg(Dispatch *List);
       
    CommandLine(Args *AList,Configuration *Conf);
    ~CommandLine();
@@ -92,5 +94,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
index 43bad01..84863f7 100644 (file)
@@ -1,6 +1,6 @@
 // -*- 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
@@ -56,6 +56,7 @@ class MD5Summation
    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);};
index 3343e19..29926b9 100644 (file)
@@ -1,6 +1,6 @@
 // -*- 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
@@ -33,6 +33,7 @@ bool pkgInitialize(Configuration &Cnf)
    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/");