]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/policy.cc
Release 0.7.11
[apt.git] / apt-pkg / policy.cc
index 228d858a9dfe705accb062f35ece7f8083890a40..8b083fd444aa80e8d8b9c4314a12a7802c879470 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: policy.cc,v 1.9 2002/11/06 06:43:14 jgg Exp $
+// $Id: policy.cc,v 1.10 2003/08/12 00:17:37 mdz Exp $
 /* ######################################################################
 
    Package Version Policy implementation
@@ -23,9 +23,6 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/policy.h"
-#endif
 #include <apt-pkg/policy.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/tagfile.h>
@@ -36,6 +33,7 @@
 #include <apti18n.h>
 
 #include <iostream>
+#include <sstream>
                                                                        /*}}}*/
 
 using namespace std;
@@ -293,8 +291,20 @@ bool ReadPinFile(pkgPolicy &Plcy,string File)
       }
       for (; Word != End && isspace(*Word) != 0; Word++);
 
-      Plcy.CreatePin(Type,Name,string(Word,End),
-                    Tags.FindI("Pin-Priority"));
+      short int priority = Tags.FindI("Pin-Priority", 0);
+      if (priority == 0)
+      {
+         _error->Warning(_("No priority (or zero) specified for pin"));
+         continue;
+      }
+
+      istringstream s(Name);
+      string pkg;
+      while(!s.eof())
+      {
+        s >> pkg;
+         Plcy.CreatePin(Type, pkg, string(Word,End),priority);
+      };
    }
 
    Plcy.InitDefaults();