Make the debugging functions slightly more portable.
[reactos.git] / reactos / boot / freeldr / freeldr / debug.c
index 4c8f8e3..89e2715 100644 (file)
@@ -231,9 +231,9 @@ VOID DebugPrintHeader(ULONG Mask)
 
 VOID DebugPrint(ULONG Mask, char *format, ...)
 {
 
 VOID DebugPrint(ULONG Mask, char *format, ...)
 {
-       int *dataptr = (int *) &format;
-        char Buffer[4096];
-        char *ptr = Buffer;
+       va_list ap;
+       char Buffer[4096];
+       char *ptr = Buffer;
 
        // Mask out unwanted debug messages
        if (!(Mask & DebugPrintMask))
 
        // Mask out unwanted debug messages
        if (!(Mask & DebugPrintMask))
@@ -248,24 +248,28 @@ VOID DebugPrint(ULONG Mask, char *format, ...)
                DebugStartOfLine = FALSE;
        }
 
                DebugStartOfLine = FALSE;
        }
 
-        vsprintf(Buffer, format, (PVOID)(++dataptr));
-        while (*ptr)
-        {
-            DebugPrintChar(*ptr++);
-        }
+       va_start(ap, format);
+       vsprintf(Buffer, format, ap);
+       va_end(ap);
+       while (*ptr)
+       {
+               DebugPrintChar(*ptr++);
+       }
 }
 
 VOID DebugPrint1(char *format, ...)
 {
 }
 
 VOID DebugPrint1(char *format, ...)
 {
-       int *dataptr = (int *) &format;
-        char Buffer[4096];
-        char *ptr = Buffer;
-
-        vsprintf(Buffer, format, (PVOID)(++dataptr));
-        while (*ptr)
-        {
-            DebugPrintChar(*ptr++);
-        }
+       va_list ap;
+       char Buffer[4096];
+       char *ptr = Buffer;
+
+       va_start(ap, format);
+       vsprintf(Buffer, format, ap);
+       va_end(ap);
+       while (*ptr)
+       {
+               DebugPrintChar(*ptr++);
+       }
 }
 
 VOID DebugDumpBuffer(ULONG Mask, PVOID Buffer, ULONG Length)
 }
 
 VOID DebugDumpBuffer(ULONG Mask, PVOID Buffer, ULONG Length)