@@ -132,8 +132,9 @@ parseBraceExpansions(StringRef S, std::optional<size_t> MaxSubPatterns) {
132
132
return std::move (SubPatterns);
133
133
}
134
134
135
- Expected<GlobPattern>
136
- GlobPattern::create (StringRef S, std::optional<size_t > MaxSubPatterns) {
135
+ Expected<GlobPattern> GlobPattern::create (StringRef S,
136
+ std::optional<size_t > MaxSubPatterns,
137
+ bool IsSlashAgnostic) {
137
138
GlobPattern Pat;
138
139
139
140
// Store the prefix that does not contain any metacharacter.
@@ -147,7 +148,7 @@ GlobPattern::create(StringRef S, std::optional<size_t> MaxSubPatterns) {
147
148
if (auto Err = parseBraceExpansions (S, MaxSubPatterns).moveInto (SubPats))
148
149
return std::move (Err);
149
150
for (StringRef SubPat : SubPats) {
150
- auto SubGlobOrErr = SubGlobPattern::create (SubPat);
151
+ auto SubGlobOrErr = SubGlobPattern::create (SubPat, IsSlashAgnostic );
151
152
if (!SubGlobOrErr)
152
153
return SubGlobOrErr.takeError ();
153
154
Pat.SubGlobs .push_back (*SubGlobOrErr);
@@ -157,8 +158,9 @@ GlobPattern::create(StringRef S, std::optional<size_t> MaxSubPatterns) {
157
158
}
158
159
159
160
Expected<GlobPattern::SubGlobPattern>
160
- GlobPattern::SubGlobPattern::create (StringRef S) {
161
+ GlobPattern::SubGlobPattern::create (StringRef S, bool SlashAgnostic ) {
161
162
SubGlobPattern Pat;
163
+ Pat.IsSlashAgnostic = SlashAgnostic;
162
164
163
165
// Parse brackets.
164
166
Pat.Pat .assign (S.begin (), S.end ());
@@ -231,7 +233,7 @@ bool GlobPattern::SubGlobPattern::match(StringRef Str) const {
231
233
++S;
232
234
continue ;
233
235
}
234
- } else if (*P == ' /' && (*S == ' /' || *S == ' \\ ' )) {
236
+ } else if (IsSlashAgnostic && *P == ' /' && (*S == ' /' || *S == ' \\ ' )) {
235
237
++P;
236
238
++S;
237
239
continue ;
0 commit comments