| 286 | } |
| 287 | |
| 288 | Vector<String> filter(const Vector<String> &names, |
| 289 | const String &pattern) { |
| 290 | // std::cout << "Pattern: " << pattern << "\n"; |
| 291 | Vector<String> result; |
| 292 | auto translated = Glob::translate(pattern); |
| 293 | auto re = RegEx::create_from_string(translated); |
| 294 | for (auto &name : names) { |
| 295 | // std::cout << "Checking for " << name.string() << "\n"; |
| 296 | auto match = re->search(name); |
| 297 | if (match.is_valid()) { |
| 298 | result.push_back(name); |
| 299 | } |
| 300 | } |
| 301 | return result; |
| 302 | } |
| 303 | |
| 304 | bool is_hidden(const String &pathname) { |
| 305 | return pathname[0] == '.'; |