|
|
@@ -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);
|