]> cygwin.com Git - cygwin-apps/setup.git/blobdiff - PackageSpecification.cc
2003-02-16 Pavel Tsekov <ptsekov@gmx.net>
[cygwin-apps/setup.git] / PackageSpecification.cc
index 012abb8a74b67561b3685178a9bc38a95a9cf48c..56a4d2b93c623f92f59cc9a5abcbb0cef73179a4 100644 (file)
@@ -46,7 +46,12 @@ PackageSpecification::setVersion (String const &aVersion)
 bool
 PackageSpecification::satisfies (packageversion const &aPackage) const
 {
-  return false;
+  if (_packageName.casecompare (aPackage.Name()) != 0)
+    return false;
+  if (_operator && _version.size() 
+      && !_operator->satisfies (aPackage.Canonical_version (), _version))
+    return false;
+  return true;
 }
 
 String
@@ -96,3 +101,22 @@ PackageSpecification::_operators::caption () const
   // Pacify GCC: (all case options are checked above)
   return "Unknown operator";
 }
+
+bool
+PackageSpecification::_operators::satisfies (String const &lhs, String const &rhs) const
+{
+  switch (_value)
+    {
+    case 0:
+      return lhs.casecompare (rhs) == 0;
+    case 1:
+      return lhs.casecompare (rhs) < 0;
+    case 2:
+      return lhs.casecompare (rhs) > 0;
+    case 3:
+      return lhs.casecompare (rhs) <= 0;
+    case 4:
+      return lhs.casecompare (rhs) >= 0;
+    }
+  return false;
+}
This page took 0.023949 seconds and 5 git commands to generate.