Explorar o código

* merged from apt--tasks

Michael Vogt %!s(int64=20) %!d(string=hai) anos
pai
achega
6407057398
Modificáronse 1 ficheiros con 5 adicións e 6 borrados
  1. 5 6
      cmdline/apt-get.cc

+ 5 - 6
cmdline/apt-get.cc

@@ -1513,18 +1513,16 @@ bool DoInstallTask(CommandLine &CmdL)
    pkgRecords Recs(Cache);
    
    unsigned int ExpectedInst = 0;
-   unsigned int Packages = 0;
    pkgProblemResolver Fix(Cache);
    char buf[64*1024];
 
    for (const char **I = CmdL.FileList + 1; *I != 0; I++)
    {
       regex_t Pattern;
-      int Res;
 
       // build regexp for the task
       char S[300];
-      snprintf(S, sizeof(S), "^Task:.*%s.*\n", *I);
+      snprintf(S, sizeof(S), "^Task:.*[^a-z]%s[^a-z].*\n", *I);
       regcomp(&Pattern,S, REG_EXTENDED | REG_NOSUB | REG_NEWLINE);
 
       for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
@@ -1538,14 +1536,15 @@ bool DoInstallTask(CommandLine &CmdL)
 	 buf[end-start] = 0x0;
 	 if (regexec(&Pattern,buf,0,0,0) != 0)
 	    continue;
-	 TryToInstall(Pkg,Cache,Fix,false,false,ExpectedInst);
+	 TryToInstall(Pkg,Cache,Fix,false,true,ExpectedInst);
       }
+
+      regfree(&Pattern);
    }
 
    // Call the scored problem resolver
    Fix.InstallProtect();
-   if (Fix.Resolve(true) == false)
-      _error->Discard();
+   Fix.Resolve(true);
    
    // prompt for install
    return InstallPackages(Cache,false,true);