X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/4fc6b7570c3e97b65c118b58cdf6729fa94c9b03..d27daedb6a0bf672508072100f20233d08ccf0e0:/apt-pkg/contrib/cmndline.cc

diff --git a/apt-pkg/contrib/cmndline.cc b/apt-pkg/contrib/cmndline.cc
index ff8b09ebc..c8a6e2787 100644
--- a/apt-pkg/contrib/cmndline.cc
+++ b/apt-pkg/contrib/cmndline.cc
@@ -124,7 +124,7 @@ bool CommandLine::Parse(int argc,const char **argv)
 	    Args *A;
 	    for (A = ArgList; A->end() == false && A->ShortOpt != *Opt; A++);
 	    if (A->end() == true)
-	       return _error->Error(_("Command line option '%c' [from %s] is not known."),*Opt,argv[I]);
+	       return _error->Error(_("Command line option '%c' [from %s] is not understood in combination with the other options."),*Opt,argv[I]);
 
 	    if (HandleOpt(I,argc,argv,Opt,A) == false)
 	       return false;
@@ -149,7 +149,7 @@ bool CommandLine::Parse(int argc,const char **argv)
       {
          Opt = (const char*) memchr(Opt, '-', OptEnd - Opt);
 	 if (Opt == NULL)
-	    return _error->Error(_("Command line option %s is not understood"),argv[I]);
+	    return _error->Error(_("Command line option %s is not understood in combination with the other options"),argv[I]);
 	 Opt++;
 	 
 	 for (A = ArgList; A->end() == false &&
@@ -158,7 +158,7 @@ bool CommandLine::Parse(int argc,const char **argv)
 
 	 // Failed again..
 	 if (A->end() == true && OptEnd - Opt != 1)
-	    return _error->Error(_("Command line option %s is not understood"),argv[I]);
+	    return _error->Error(_("Command line option %s is not understood in combination with the other options"),argv[I]);
 
 	 // The option could be a single letter option prefixed by a no-..
 	 if (A->end() == true)
@@ -166,7 +166,7 @@ bool CommandLine::Parse(int argc,const char **argv)
 	    for (A = ArgList; A->end() == false && A->ShortOpt != *Opt; A++);
 	    
 	    if (A->end() == true)
-	       return _error->Error(_("Command line option %s is not understood"),argv[I]);
+	       return _error->Error(_("Command line option %s is not understood in combination with the other options"),argv[I]);
 	 }
 	 
 	 // The option is not boolean
@@ -205,17 +205,11 @@ bool CommandLine::HandleOpt(int &I,int argc,const char *argv[],
 
    /* Determine the possible location of an option or 0 if their is
       no option */
-   if (Opt[1] == 0 || (Opt[1] == '=' && Opt[2] == 0))
+   if (Opt[1] == 0)
    {
       if (I + 1 < argc && argv[I+1][0] != '-')
 	 Argument = argv[I+1];
-      
-      // Equals was specified but we fell off the end!
-      if (Opt[1] == '=' && Argument == 0)
-	 return _error->Error(_("Option %s requires an argument."),argv[I]);
-      if (Opt[1] == '=')
-	 CertainArg = true;
-	 
+
       IncI = 1;
    }
    else
@@ -244,20 +238,11 @@ bool CommandLine::HandleOpt(int &I,int argc,const char *argv[],
       // Arbitrary item specification
       if ((A->Flags & ArbItem) == ArbItem)
       {
-	 const char *J = strchr(Argument, '=');
-	 if (J == NULL)
+	 const char * const J = strchr(Argument, '=');
+	 if (J == nullptr)
 	    return _error->Error(_("Option %s: Configuration item specification must have an =<val>."),argv[I]);
 
-	 // = is trailing
-	 if (J[1] == 0)
-	 {
-	    if (I+1 >= argc)
-	       return _error->Error(_("Option %s: Configuration item specification must have an =<val>."),argv[I]);
-	    Conf->Set(string(Argument,J-Argument),string(argv[I++ +1]));
-	 }
-	 else
-	    Conf->Set(string(Argument,J-Argument),string(J+1));
-	 
+	 Conf->Set(string(Argument,J-Argument), J+1);
 	 return true;
       }
       
@@ -374,9 +359,7 @@ unsigned int CommandLine::FileSize() const
 }
 									/*}}}*/
 // CommandLine::DispatchArg - Do something with the first arg		/*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch)
+bool CommandLine::DispatchArg(Dispatch const * const Map,bool NoMatch)
 {
    int I;
    for (I = 0; Map[I].Match != 0; I++)
@@ -398,6 +381,11 @@ bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch)
    }
    
    return false;
+}
+bool CommandLine::DispatchArg(Dispatch *Map,bool NoMatch)
+{
+   Dispatch const * const Map2 = Map;
+   return DispatchArg(Map2, NoMatch);
 }
 									/*}}}*/
 // CommandLine::SaveInConfig - for output later in a logfile or so	/*{{{*/