Bläddra i källkod

policy: Assign per-version pins

Julian Andres Klode 11 år sedan
förälder
incheckning
7fd9c353e1
1 ändrade filer med 11 tillägg och 0 borttagningar
  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->Priority = Priority;
 	 P->Data = Data;
 	 P->Data = Data;
 	 matched = true;
 	 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;
+	    }
+	 }
       }
       }
    }
    }