summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdline/apt-get.cc11
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);