aboutsummaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-07-20 15:30:21 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-07-20 15:30:21 +0300
commit2508d4d0e05ef55beb3a4db52aa01424eedb4226 (patch)
tree077d8e9e2f8686ae081fd4bebfe146cf8ebb5788 /mod
parentf3e05fd089e3845ee0c11af7d3b27d40d08ab119 (diff)
Make package manifest build inclusions and exclusions order significant
Diffstat (limited to 'mod')
-rw-r--r--mod/build-config.cxx10
-rw-r--r--mod/mod-package-version-details.cxx11
2 files changed, 6 insertions, 15 deletions
diff --git a/mod/build-config.cxx b/mod/build-config.cxx
index ecbcf6f..1ac4939 100644
--- a/mod/build-config.cxx
+++ b/mod/build-config.cxx
@@ -160,14 +160,8 @@ namespace brep
{
for (const auto& bc: p.constraints)
{
- if (!bc.exclusion && match (bc.config, bc.target, c))
- return false;
- }
-
- for (const auto& bc: p.constraints)
- {
- if (bc.exclusion && match (bc.config, bc.target, c))
- return true;
+ if (match (bc.config, bc.target, c))
+ return bc.exclusion;
}
return false;
diff --git a/mod/mod-package-version-details.cxx b/mod/mod-package-version-details.cxx
index 0138154..edab232 100644
--- a/mod/mod-package-version-details.cxx
+++ b/mod/mod-package-version-details.cxx
@@ -384,14 +384,11 @@ handle (request& rq, response& rs)
{
for (const auto& bc: pkg->build_constraints)
{
- if (!bc.exclusion && match (bc.config, bc.target, c))
- return false;
- }
-
- for (const auto& bc: pkg->build_constraints)
- {
- if (bc.exclusion && match (bc.config, bc.target, c))
+ if (match (bc.config, bc.target, c))
{
+ if (!bc.exclusion)
+ return false;
+
// Save the first sentence of the exclusion comment, lower-case the
// first letter if the beginning looks like a word (the second
// character is the lower-case letter or space).