@@ -132,8 +132,9 @@ parseBraceExpansions(StringRef S, std::optional<size_t> MaxSubPatterns) {
132132 return std::move (SubPatterns);
133133}
134134
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) {
137138 GlobPattern Pat;
138139
139140 // Store the prefix that does not contain any metacharacter.
@@ -147,7 +148,7 @@ GlobPattern::create(StringRef S, std::optional<size_t> MaxSubPatterns) {
147148 if (auto Err = parseBraceExpansions (S, MaxSubPatterns).moveInto (SubPats))
148149 return std::move (Err);
149150 for (StringRef SubPat : SubPats) {
150- auto SubGlobOrErr = SubGlobPattern::create (SubPat);
151+ auto SubGlobOrErr = SubGlobPattern::create (SubPat, IsSlashAgnostic );
151152 if (!SubGlobOrErr)
152153 return SubGlobOrErr.takeError ();
153154 Pat.SubGlobs .push_back (*SubGlobOrErr);
@@ -157,8 +158,9 @@ GlobPattern::create(StringRef S, std::optional<size_t> MaxSubPatterns) {
157158}
158159
159160Expected<GlobPattern::SubGlobPattern>
160- GlobPattern::SubGlobPattern::create (StringRef S) {
161+ GlobPattern::SubGlobPattern::create (StringRef S, bool SlashAgnostic ) {
161162 SubGlobPattern Pat;
163+ Pat.IsSlashAgnostic = SlashAgnostic;
162164
163165 // Parse brackets.
164166 Pat.Pat .assign (S.begin (), S.end ());
@@ -231,7 +233,7 @@ bool GlobPattern::SubGlobPattern::match(StringRef Str) const {
231233 ++S;
232234 continue ;
233235 }
234- } else if (*P == ' /' && (*S == ' /' || *S == ' \\ ' )) {
236+ } else if (IsSlashAgnostic && *P == ' /' && (*S == ' /' || *S == ' \\ ' )) {
235237 ++P;
236238 ++S;
237239 continue ;
0 commit comments