]> git.tdb.fi Git - builder.git/blobdiff - source/condition.cpp
Fix compile errors on 64-bit systems
[builder.git] / source / condition.cpp
index 4b45dca51f2eeaf06a13880d2c214b3fe557d594..4c9ac0b84453935c8afa3b86cc4cfcdb934afcd9 100644 (file)
@@ -1,11 +1,12 @@
 /* $Id$
 
 This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2009  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
 #include <msp/strings/utils.h>
+#include "builder.h"
 #include "condition.h"
 #include "sourcepackage.h"
 
@@ -22,7 +23,7 @@ Condition::Condition(SourcePackage &p, const string &expr):
                if(*i=="and")
                        continue;
 
-               unsigned token=i->find_first_of("=!");
+               string::size_type token=i->find_first_of("=!");
                if(token==string::npos)
                        expression.insert(StringMap::value_type(*i, "!0"));
                else if(token==0 && (*i)[0]=='!')
@@ -44,7 +45,13 @@ bool Condition::eval()
                if(i->second[1]=='=')
                        ++start;
 
-               if((conf.get_option(i->first).value==i->second.substr(start))==neg)
+               string value;
+               if(conf.is_option(i->first))
+                       value=conf.get_option(i->first).value;
+               else if(i->first=="arch")
+                       value=pkg.get_builder().get_current_arch().get_name();
+
+               if((value==i->second.substr(start))==neg)
                        result=false;
        }