// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: policy.cc,v 1.8 2001/05/27 23:40:56 jgg Exp $
+// $Id: policy.cc,v 1.10 2003/08/12 00:17:37 mdz Exp $
/* ######################################################################
Package Version Policy implementation
##################################################################### */
/*}}}*/
// 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>
#include <apti18n.h>
#include <iostream>
+#include <sstream>
/*}}}*/
using namespace std;
Pin *P = 0;
if (Name.empty() == true)
- P = &*Defaults.insert(Defaults.end());
+ P = &*Defaults.insert(Defaults.end(),PkgPin());
else
{
// Get a spot to put the pin
P = &*I;
if (P == 0)
- P = &*Unmatched.insert(Unmatched.end());
+ P = &*Unmatched.insert(Unmatched.end(),PkgPin());
}
else
{
}
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();