MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / WildcardMatch

Function WildcardMatch

common/StringUtil.cpp:54–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52 }
53
54 bool WildcardMatch(const char* subject, const char* mask, bool case_sensitive /*= true*/)
55 {
56 if (case_sensitive)
57 {
58 const char* cp = nullptr;
59 const char* mp = nullptr;
60
61 while ((*subject) && (*mask != '*'))
62 {
63 if ((*mask != '?') && (std::tolower(*mask) != std::tolower(*subject)))
64 return false;
65
66 mask++;
67 subject++;
68 }
69
70 while (*subject)
71 {
72 if (*mask == '*')
73 {
74 if (*++mask == 0)
75 return true;
76
77 mp = mask;
78 cp = subject + 1;
79 }
80 else
81 {
82 if ((*mask == '?') || (std::tolower(*mask) == std::tolower(*subject)))
83 {
84 mask++;
85 subject++;
86 }
87 else
88 {
89 mask = mp;
90 subject = cp++;
91 }
92 }
93 }
94
95 while (*mask == '*')
96 {
97 mask++;
98 }
99
100 return *mask == 0;
101 }
102 else
103 {
104 const char* cp = nullptr;
105 const char* mp = nullptr;
106
107 while ((*subject) && (*mask != '*'))
108 {
109 if ((*mask != *subject) && (*mask != '?'))
110 return false;
111

Callers 3

ExecutablePathToSerialFunction · 0.85
RecursiveFindFilesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected