[ros-diffs] [pschweitzer] 56143: [NTOSKRNL] FsRtlIsDbcsInExpression/FsRtlIsNameInExpression: in case there are contigous stars in the expression, skip all the stars up to the last one and only consider the las...

pschweitzer at svn.reactos.org pschweitzer at svn.reactos.org
Tue Mar 13 22:03:34 UTC 2012


Author: pschweitzer
Date: Tue Mar 13 22:03:30 2012
New Revision: 56143

URL: http://svn.reactos.org/svn/reactos?rev=56143&view=rev
Log:
[NTOSKRNL]
FsRtlIsDbcsInExpression/FsRtlIsNameInExpression: in case there are contigous stars in the expression, skip all the stars up to the last one and only consider the last one.
This fixes the failing tests.

Modified:
    trunk/reactos/ntoskrnl/fsrtl/dbcsname.c
    trunk/reactos/ntoskrnl/fsrtl/name.c

Modified: trunk/reactos/ntoskrnl/fsrtl/dbcsname.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fsrtl/dbcsname.c?rev=56143&r1=56142&r2=56143&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/fsrtl/dbcsname.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/fsrtl/dbcsname.c [iso-8859-1] Tue Mar 13 22:03:30 2012
@@ -187,6 +187,12 @@
         /* Test star */
         else if (Expression->Buffer[ExpressionPosition] == '*')
         {
+            /* Skip contigous stars */
+            while (ExpressionPosition + 1 < Expression->Length && Expression->Buffer[ExpressionPosition + 1] == '*')
+            {
+                ExpressionPosition++;
+            }
+
             /* Save star position */
             if (!BackTracking)
             {

Modified: trunk/reactos/ntoskrnl/fsrtl/name.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fsrtl/name.c?rev=56143&r1=56142&r2=56143&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/fsrtl/name.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/fsrtl/name.c [iso-8859-1] Tue Mar 13 22:03:30 2012
@@ -117,6 +117,12 @@
         /* Test star */
         else if (Expression->Buffer[ExpressionPosition] == L'*')
         {
+            /* Skip contigous stars */
+            while (ExpressionPosition + 1 < Expression->Length / sizeof(WCHAR) && Expression->Buffer[ExpressionPosition + 1] == '*')
+            {
+                ExpressionPosition++;
+            }
+
             /* Save star position */
             if (!BackTracking)
             {




More information about the Ros-diffs mailing list