]> git.tdb.fi Git - builder.git/blobdiff - source/pattern.cpp
Replace basic for loops with range-based loops or algorithms
[builder.git] / source / pattern.cpp
index 74c7c31cec44f5e3d5f01be9aa5025c1b3a44e6b..d910f196276c142dac8b0f573522c4140d409286 100644 (file)
@@ -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<string> Pattern::apply_list(const list<Pattern> &patterns, const string &body)
 {
        list<string> result;
-       for(list<Pattern>::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;
 }