- Use inline function instead of macro.
authorAlex Ionescu <aionescu@gmail.com>
Wed, 27 Jul 2005 16:34:14 +0000 (16:34 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Wed, 27 Jul 2005 16:34:14 +0000 (16:34 +0000)
svn path=/trunk/; revision=16803

reactos/lib/ntdll/stdio/sprintf.c
reactos/lib/ntdll/stdio/swprintf.c

index 881acb0..9934dfa 100644 (file)
  * 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 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 @@ number(char * buf, char * end, long long num, int base, int size, int precision,
        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;
index 9124cc4..3ee5149 100644 (file)
 #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 @@ number(wchar_t * buf, wchar_t * end, long long num, int base, int size, int prec
        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;