// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cmndline.cc,v 1.6 1998/11/25 23:54:22 jgg Exp $
+// $Id: cmndline.cc,v 1.9 1999/01/27 02:48:52 jgg Exp $
/* ######################################################################
Command Line Class - Sophisticated command line parser
#endif
#include <apt-pkg/cmndline.h>
#include <apt-pkg/error.h>
-#include <strutl.h>
+#include <apt-pkg/strutl.h>
/*}}}*/
// CommandLine::CommandLine - Constructor /*{{{*/
if (Opt == OptEnd)
return _error->Error("Command line option %s is not understood",argv[I]);
Opt++;
- cout << Opt << endl;
for (A = ArgList; A->end() == false &&
stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++);
return true;
}
- Conf->Set(A->ConfName,Argument);
+ const char *I = A->ConfName;
+ for (; *I != 0 && *I != ' '; I++);
+ if (*I == ' ')
+ Conf->Set(string(A->ConfName,0,I-A->ConfName),string(I+1) + Argument);
+ else
+ Conf->Set(A->ConfName,string(I) + Argument);
+
return true;
}
// CommandLine::DispatchArg - Do something with the first arg /*{{{*/
// ---------------------------------------------------------------------
/* */
-bool CommandLine::DispatchArg(Dispatch *Map)
+bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch)
{
int I;
for (I = 0; Map[I].Match != 0; I++)
// No matching name
if (Map[I].Match == 0)
- _error->Error("Invalid operation %s",FileList[0]);
+ {
+ if (NoMatch == true)
+ _error->Error("Invalid operation %s",FileList[0]);
+ }
+
return false;
}
/*}}}*/