[ros-diffs] [fireball] 23843: Change a very ugly done DbgPrint() function to a good implementation. Now Freeldr shows all DPRINTs from e.g. cmlib correctly.
fireball at svn.reactos.org
fireball at svn.reactos.org
Thu Aug 31 18:08:18 CEST 2006
Author: fireball
Date: Thu Aug 31 20:08:17 2006
New Revision: 23843
URL: http://svn.reactos.org/svn/reactos?rev=23843&view=rev
Log:
Change a very ugly done DbgPrint() function to a good implementation. Now Freeldr shows all DPRINTs from e.g. cmlib correctly.
Modified:
trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c
Modified: trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c?rev=23843&r1=23842&r2=23843&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c Thu Aug 31 20:08:17 2006
@@ -870,10 +870,33 @@
#undef DbgPrint
ULONG
-DbgPrint(const char *Fmt, ...)
-{
- UiMessageBox(Fmt);
- return 0;
+DbgPrint(const char *Format, ...)
+{
+ va_list ap;
+ CHAR Buffer[512];
+ ULONG Length;
+
+ va_start(ap, Format);
+
+ /* Construct a string */
+ Length = _vsnprintf(Buffer, 512, Format, ap);
+
+ /* Check if we went past the buffer */
+ if (Length == -1)
+ {
+ /* Terminate it if we went over-board */
+ Buffer[sizeof(Buffer) - 1] = '\n';
+
+ /* Put maximum */
+ Length = sizeof(Buffer);
+ }
+
+ /* Show it as a message box */
+ UiMessageBox(Buffer);
+
+ /* Cleanup and exit */
+ va_end(ap);
+ return 0;
}
/* EOF */
More information about the Ros-diffs
mailing list