Lines Matching refs:I
38 unsigned I = 0; // Index to `Pattern`. in matchFilePath() local
41 if (I == EOP) in matchFilePath()
44 switch (const auto F = FilePath[J]; Pattern[I]) { in matchFilePath()
46 if (++I == EOP || F != Pattern[I]) in matchFilePath()
54 bool Globstar = I == 0 || Pattern[I - 1] == Separator; in matchFilePath()
56 for (; ++I < EOP && Pattern[I] == '*'; ++StarCount) { in matchFilePath()
63 if (I == EOP) // `Pattern` ends with a star. in matchFilePath()
65 if (Pattern[I] != Separator) { in matchFilePath()
67 if (Pattern[I] == '\\' && ++I == EOP) in matchFilePath()
72 if (Pattern[I] == Separator) { in matchFilePath()
79 if (++I == EOP) in matchFilePath()
83 for (auto Pat = Pattern.substr(I); in matchFilePath()
92 if (I + 3 < EOP || (I + 3 == EOP && Pattern[I + 1] != '!')) { in matchFilePath()
94 if (const auto K = Pattern.find_first_of("]/", I + 1); in matchFilePath()
95 K != StringRef::npos && Pattern[K] == ']' && K > I + 1) { in matchFilePath()
98 ++I; // After the `[`. in matchFilePath()
100 if (Pattern[I] == '!') { in matchFilePath()
102 ++I; // After the `!`. in matchFilePath()
106 if (I + 2 < K && Pattern[I + 1] == '-') { in matchFilePath()
107 Match = Pattern[I] <= F && F <= Pattern[I + 2]; in matchFilePath()
108 I += 3; // After the range, e.g. `A-Z`. in matchFilePath()
110 Match = F == Pattern[I++]; in matchFilePath()
112 } while (!Match && I < K); in matchFilePath()
115 I = K + 1; // After the `]`. in matchFilePath()
121 if (F != Pattern[I]) in matchFilePath()
125 ++I; in matchFilePath()
129 while (I < EOP && Pattern[I] == '*') in matchFilePath()
130 ++I; in matchFilePath()
132 return I == EOP; in matchFilePath()