mirror of
https://github.com/reactos/reactos.git
synced 2025-05-18 00:31:27 +00:00
[NTOSKRNL]
Allow ignoring all nullable matching wildcards at the end of the expression string when name is over in FsRtlIs*InExpression() This fixes a few tests svn path=/trunk/; revision=58806
This commit is contained in:
parent
e214308f84
commit
d7c9b59f0f
2 changed files with 24 additions and 6 deletions
|
@ -247,11 +247,20 @@ FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
|
||||||
ExpressionPosition = BackTracking[StarFound--];
|
ExpressionPosition = BackTracking[StarFound--];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ExpressionPosition + 1 == Expression->Length && NamePosition == Name->Length &&
|
/* If we have nullable matching wc at the end of the string, eat them */
|
||||||
(Expression->Buffer[ExpressionPosition] == ANSI_DOS_DOT || Expression->Buffer[ExpressionPosition] == '*'))
|
if (ExpressionPosition != Expression->Length && NamePosition == Name->Length)
|
||||||
{
|
{
|
||||||
|
while (ExpressionPosition < Expression->Length)
|
||||||
|
{
|
||||||
|
if (Expression->Buffer[ExpressionPosition] != ANSI_DOS_DOT &&
|
||||||
|
Expression->Buffer[ExpressionPosition] != '*' &&
|
||||||
|
Expression->Buffer[ExpressionPosition] != ANSI_DOS_STAR)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
ExpressionPosition++;
|
ExpressionPosition++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (BackTracking)
|
if (BackTracking)
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,11 +184,20 @@ FsRtlIsNameInExpressionPrivate(IN PUNICODE_STRING Expression,
|
||||||
ExpressionPosition = BackTracking[StarFound--];
|
ExpressionPosition = BackTracking[StarFound--];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ExpressionPosition + 1 == Expression->Length / sizeof(WCHAR) && NamePosition == Name->Length / sizeof(WCHAR) &&
|
/* If we have nullable matching wc at the end of the string, eat them */
|
||||||
(Expression->Buffer[ExpressionPosition] == DOS_DOT || Expression->Buffer[ExpressionPosition] == L'*'))
|
if (ExpressionPosition != Expression->Length / sizeof(WCHAR) && NamePosition == Name->Length / sizeof(WCHAR))
|
||||||
{
|
{
|
||||||
|
while (ExpressionPosition < Expression->Length / sizeof(WCHAR))
|
||||||
|
{
|
||||||
|
if (Expression->Buffer[ExpressionPosition] != DOS_DOT &&
|
||||||
|
Expression->Buffer[ExpressionPosition] != L'*' &&
|
||||||
|
Expression->Buffer[ExpressionPosition] != DOS_STAR)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
ExpressionPosition++;
|
ExpressionPosition++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (BackTracking)
|
if (BackTracking)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue