[ros-diffs] [pschweitzer] 35573: Take UpcaseTable into account. FsRtlIsNameInExpression should be rewritten...

pschweitzer at svn.reactos.org pschweitzer at svn.reactos.org
Sat Aug 23 20:55:05 CEST 2008


Author: pschweitzer
Date: Sat Aug 23 13:55:05 2008
New Revision: 35573

URL: http://svn.reactos.org/svn/reactos?rev=35573&view=rev
Log:
Take UpcaseTable into account.
FsRtlIsNameInExpression should be rewritten...

Modified:
    branches/pierre-fsd/ntoskrnl/fsrtl/name.c

Modified: branches/pierre-fsd/ntoskrnl/fsrtl/name.c
URL: http://svn.reactos.org/svn/reactos/branches/pierre-fsd/ntoskrnl/fsrtl/name.c?rev=35573&r1=35572&r2=35573&view=diff
==============================================================================
--- branches/pierre-fsd/ntoskrnl/fsrtl/name.c [iso-8859-1] (original)
+++ branches/pierre-fsd/ntoskrnl/fsrtl/name.c [iso-8859-1] Sat Aug 23 13:55:05 2008
@@ -282,17 +282,24 @@
         }
         else
         {
-            /* FIXME: Take UpcaseTable into account! */
-            if (Expression->Buffer[ExpressionPosition] == L'?' ||
-                (IgnoreCase &&
+            if (Expression->Buffer[ExpressionPosition] == L'?' || (
+                IgnoreCase && !UpcaseTable &&
                 RtlUpcaseUnicodeChar(Expression->Buffer[ExpressionPosition]) ==
                 RtlUpcaseUnicodeChar(Name->Buffer[NamePosition])) ||
-                (!IgnoreCase &&
-                Expression->Buffer[ExpressionPosition] ==
+                (!IgnoreCase && Expression->Buffer[ExpressionPosition] ==
                 Name->Buffer[NamePosition]))
             {
                 NamePosition++;
                 ExpressionPosition++;
+            }
+            else if (IgnoreCase && UpcaseTable)
+            {
+                if (UpcaseTable[Expression->Buffer[ExpressionPosition]] ==
+                    UpcaseTable[Name->Buffer[NamePosition]])
+                {
+                    NamePosition++;
+                    ExpressionPosition++;
+                }
             }
             else
             {



More information about the Ros-diffs mailing list