CopyAcceleratorTableA: dont access lpAccelDst it its NULL (w3seek)
Modified: trunk/reactos/lib/user32/windows/accel.c

Modified: trunk/reactos/lib/user32/windows/accel.c
--- trunk/reactos/lib/user32/windows/accel.c	2005-03-21 17:09:06 UTC (rev 14253)
+++ trunk/reactos/lib/user32/windows/accel.c	2005-03-21 17:11:48 UTC (rev 14254)
@@ -285,38 +285,34 @@
 }
 
 
-/*
- * @implemented
- */
 int WINAPI CopyAcceleratorTableA
 (
  HACCEL hAccelSrc,
- LPACCEL lpAccelDst,
+ LPACCEL lpAccelDst, /* can be NULL */
  int cAccelEntries
 )
 {
- int i;
-
- cAccelEntries = CopyAcceleratorTableW(hAccelSrc, lpAccelDst, cAccelEntries);
+   int i;
  
- if(cAccelEntries == 0) return 0;
+   cAccelEntries = CopyAcceleratorTableW(hAccelSrc, lpAccelDst, cAccelEntries);
+ 
+   if (lpAccelDst == NULL) return cAccelEntries;
 
- for(i = 0; i < cAccelEntries; ++ i)
-  if(!(lpAccelDst[i].fVirt & FVIRTKEY))
-  {
-   NTSTATUS nErrCode = RtlUnicodeToMultiByteN
-   (
-    (PCHAR)&lpAccelDst[i].key,
-    sizeof(lpAccelDst[i].key),
-    NULL,
-    (PWCHAR)&lpAccelDst[i].key,
-    sizeof(lpAccelDst[i].key)
-   );
-
-   if(!NT_SUCCESS(nErrCode)) lpAccelDst[i].key = 0;
-  }
-
- return cAccelEntries;
+   for(i = 0; i < cAccelEntries; ++ i)
+   if(!(lpAccelDst[i].fVirt & FVIRTKEY))
+   {
+      NTSTATUS nErrCode = RtlUnicodeToMultiByteN(
+         (PCHAR)&lpAccelDst[i].key,
+         sizeof(lpAccelDst[i].key),
+         NULL,
+         (PWCHAR)&lpAccelDst[i].key,
+         sizeof(lpAccelDst[i].key)
+         ); 
+ 
+      if(!NT_SUCCESS(nErrCode)) lpAccelDst[i].key = 0;
+   }
+ 
+   return cAccelEntries;
 }