X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpattern.cpp;h=91929f62b0c85a541361af63bc3102b9641d1eba;hb=62853c9bb228cbb541304e866036cd931e3f5500;hp=e87981f8f941603653de1bbf9f5e33ba068bcc45;hpb=40177b0cfc0d4e67f971941f632e4f1f7e7c3f88;p=builder.git diff --git a/source/pattern.cpp b/source/pattern.cpp index e87981f..91929f6 100644 --- a/source/pattern.cpp +++ b/source/pattern.cpp @@ -14,5 +14,18 @@ Pattern::Pattern(const string &pat) string Pattern::apply(const string &body) const { - return prefix+body+suffix; + string result = body; + if(body.compare(0, prefix.size(), prefix)) + result = prefix+result; + if(body.size()<=suffix.size() || body.compare(body.size()-suffix.size(), suffix.size(), suffix)) + result += suffix; + return result; +} + +list Pattern::apply_list(const list &patterns, const string &body) +{ + list result; + for(list::const_iterator i=patterns.begin(); i!=patterns.end(); ++i) + result.push_back(i->apply(body)); + return result; }