diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-21 17:56:26 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-21 17:57:02 -0700 |
commit | 1f852acc8fa14d531802eed04761b93112668c1e (patch) | |
tree | 67ecd2b3c722636538a104a3c3778f869d6e0c8c | |
parent | d7494165ec7ae507c7340dcaad2e2c95fda5ee11 (diff) | |
download | mu-1f852acc8fa14d531802eed04761b93112668c1e.tar.gz |
1415
-rw-r--r-- | 003trace.cc | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/003trace.cc b/003trace.cc index ccb3265f..a208f21d 100644 --- a/003trace.cc +++ b/003trace.cc @@ -117,11 +117,12 @@ struct trace_stream { } // Useful for debugging. - string readable_contents(string layer) { // missing layer = everything, hierarchical layers + string readable_contents(string layer) { // missing layer = everything newline(); ostringstream output; + layer = trim(layer); for (vector<pair<string, string> >::iterator p = past_lines.begin(); p != past_lines.end(); ++p) - if (layer.empty() || prefix_match(layer, p->first)) + if (layer.empty() || layer == p->first) output << p->first << ": " << p->second << '\n'; return output.str(); } @@ -288,29 +289,6 @@ vector<string> split(string s, string delim) { return result; } -bool any_prefix_match(const vector<string>& pats, const string& needle) { - if (pats.empty()) return false; - if (*pats.at(0).rbegin() != '/') - // prefix match not requested - return find(pats.begin(), pats.end(), needle) != pats.end(); - // first pat ends in a '/'; assume all pats do. - for (vector<string>::const_iterator p = pats.begin(); p != pats.end(); ++p) - if (headmatch(needle, *p)) return true; - return false; -} - -bool prefix_match(const string& pat, const string& needle) { - if (*pat.rbegin() != '/') - // prefix match not requested - return pat == needle; - return headmatch(needle, pat); -} - -bool headmatch(const string& s, const string& pat) { - if (SIZE(pat) > SIZE(s)) return false; - return std::mismatch(pat.begin(), pat.end(), s.begin()).first == pat.end(); -} - string trim(const string& s) { string::const_iterator first = s.begin(); while (first != s.end() && isspace(*first)) |