X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Floader.cpp;h=4bc715aff01597c4164f19b206f5a31ae8db87fb;hb=4edbe0eb078c4e480682862ccb68ebc8cb284045;hp=e1a0d4abd7bcd80adfa4040c2a9bdf43ffb43ee7;hpb=3b78eeb8b92dc3524d6a0456b4daf0a0f3dbf813;p=libs%2Fdatafile.git diff --git a/source/loader.cpp b/source/loader.cpp index e1a0d4a..4bc715a 100644 --- a/source/loader.cpp +++ b/source/loader.cpp @@ -1,6 +1,6 @@ #include #include -#include "dataerror.h" +#include "except.h" #include "loader.h" #include "type.h" @@ -24,7 +24,7 @@ bool signature_match(const string &st_sig, const string &act_sig) else if(act_sig.size()==2 && act_sig[1]=='*') { for(string::const_iterator i=st_sig.begin(); i!=st_sig.end(); ++i) - if(*i!=act_sig[0]) + if(!signature_match(*i, act_sig[0])) return false; return true; @@ -87,7 +87,7 @@ void Loader::load(Parser &p) { if(p.peek(0)) load_direct(p, 0); - else + else if(p) // Peek may have processed an __end, so recheck goodness { // Parse in raw mode so we can peek immediately after a mode change Statement st = p.parse(true);