12inline bool scene_glob_match(std::string_view pattern, std::string_view text)
noexcept
14 constexpr auto npos = std::string_view::npos;
15 std::size_t pi = 0, ti = 0;
18 std::size_t star_pi = npos, star_ti = 0;
19 std::size_t dstar_pi = npos, dstar_ti = 0;
21 while(ti < text.size())
23 if(pi < pattern.size())
25 const char pc = pattern[pi];
28 if(pi + 1 < pattern.size() && pattern[pi + 1] ==
'*')
43 if(pc ==
'?' ? text[ti] !=
'/' : pc == text[ti])
50 if(star_pi != npos && text[star_ti] !=
'/')
65 while(pi < pattern.size() && pattern[pi] ==
'*')
67 return pi == pattern.size();