diff options
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index cd43e17c7..0c2e15d7e 100644 --- a/cmdline/apt-get.cc +++ b/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); |