- Use inline function instead of macro.
Modified: trunk/reactos/lib/ntdll/stdio/sprintf.c
Modified: trunk/reactos/lib/ntdll/stdio/swprintf.c

Modified: trunk/reactos/lib/ntdll/stdio/sprintf.c
--- trunk/reactos/lib/ntdll/stdio/sprintf.c	2005-07-27 16:18:06 UTC (rev 16802)
+++ trunk/reactos/lib/ntdll/stdio/sprintf.c	2005-07-27 16:34:14 UTC (rev 16803)
@@ -20,15 +20,8 @@
  * Wirzenius wrote this portably, Torvalds fucked it up :-)
  */
 
-#define __NO_CTYPE_INLINES
-#include <ctype.h>
-#include <limits.h>
-
 #include <ntdll.h>
-#define NDEBUG
-#include <debug.h>
 
-
 #define ZEROPAD	1		/* pad with zero */
 #define SIGN	2		/* unsigned/signed long */
 #define PLUS	4		/* show plus */
@@ -38,11 +31,16 @@
 #define LARGE	64		/* use 'ABCDEF' instead of 'abcdef' */
 
 
-#define do_div(n,base) ({ \
-int __res; \
-__res = ((unsigned long long) n) % (unsigned) base; \
-n = ((unsigned long long) n) / (unsigned) base; \
-__res; })
+static
+__inline
+int
+do_div(long long *n, int base)
+{
+    int a;
+    a = ((unsigned long long) *n) % (unsigned) base;
+    *n = ((unsigned long long) *n) / (unsigned) base;
+    return a;
+}
 
 
 static int skip_atoi(const char **s)
@@ -94,7 +92,7 @@
 	if (num == 0)
 		tmp[i++]='0';
 	else while (num != 0)
-		tmp[i++] = digits[do_div(num,base)];
+		tmp[i++] = digits[do_div(&num,base)];
 	if (i > precision)
 		precision = i;
 	size -= precision;

Modified: trunk/reactos/lib/ntdll/stdio/swprintf.c
--- trunk/reactos/lib/ntdll/stdio/swprintf.c	2005-07-27 16:18:06 UTC (rev 16802)
+++ trunk/reactos/lib/ntdll/stdio/swprintf.c	2005-07-27 16:34:14 UTC (rev 16803)
@@ -37,11 +37,16 @@
 #define LARGE	64		/* use 'ABCDEF' instead of 'abcdef' */
 
 
-#define do_div(n,base) ({ \
-int __res; \
-__res = ((unsigned long long) n) % (unsigned) base; \
-n = ((unsigned long long) n) / (unsigned) base; \
-__res; })
+static
+__inline
+int
+do_div(long long *n, int base)
+{
+    int a;
+    a = ((unsigned long long) *n) % (unsigned) base;
+    *n = ((unsigned long long) *n) / (unsigned) base;
+    return a;
+}
 
 
 static int skip_atoi(const wchar_t **s)
@@ -93,7 +98,7 @@
 	if (num == 0)
 		tmp[i++] = L'0';
 	else while (num != 0)
-		tmp[i++] = digits[do_div(num,base)];
+		tmp[i++] = digits[do_div(&num,base)];
 	if (i > precision)
 		precision = i;
 	size -= precision;