Explorar o código

policy: Assign per-version pins

Julian Andres Klode %!s(int64=11) %!d(string=hai) anos
pai
achega
7fd9c353e1
Modificáronse 1 ficheiros con 11 adicións e 0 borrados
  1. 11 0
      apt-pkg/policy.cc

+ 11 - 0
apt-pkg/policy.cc

@@ -284,6 +284,17 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name,
 	 P->Priority = Priority;
 	 P->Data = Data;
 	 matched = true;
+
+	 // Find matching version(s) and copy the pin into it
+	 pkgVersionMatch Match(P->Data,P->Type);
+	 for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() != true; Ver++)
+	 {
+	    if (Match.VersionMatches(Ver)) {
+	       Pin *VP = VerPins + Ver->ID;
+	       if (VP->Type == pkgVersionMatch::None)
+		  *VP = *P;
+	    }
+	 }
       }
    }