X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpattern.cpp;h=d910f196276c142dac8b0f573522c4140d409286;hb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;hp=74c7c31cec44f5e3d5f01be9aa5025c1b3a44e6b;hpb=402a19ee62dc2d3465b48fc518bdae265fc3e090;p=builder.git diff --git a/source/pattern.cpp b/source/pattern.cpp index 74c7c31..d910f19 100644 --- a/source/pattern.cpp +++ b/source/pattern.cpp @@ -14,13 +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)); + for(const Pattern &p: patterns) + result.push_back(p.apply(body)); return result; }