[haiku-commits] r37773 - haiku/trunk/src/system/kernel/lib

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 27 Jul 2010 17:39:47 +0200 (CEST)

Author: axeld
Date: 2010-07-27 17:39:47 +0200 (Tue, 27 Jul 2010)
New Revision: 37773
Changeset: http://dev.haiku-os.org/changeset/37773

Modified:
   haiku/trunk/src/system/kernel/lib/kernel_vsprintf.cpp
Log:
* Implemented support for the 'z' qualifier prefix for [s]size_t.


Modified: haiku/trunk/src/system/kernel/lib/kernel_vsprintf.cpp
===================================================================
--- haiku/trunk/src/system/kernel/lib/kernel_vsprintf.cpp       2010-07-27 
14:45:25 UTC (rev 37772)
+++ haiku/trunk/src/system/kernel/lib/kernel_vsprintf.cpp       2010-07-27 
15:39:47 UTC (rev 37773)
@@ -342,7 +342,7 @@
                /* get the conversion qualifier */
 
                qualifier = -1;
-               if (format[0] == 'h' || format[0] == 'L') {
+               if (format[0] == 'h' || format[0] == 'L' || format[0] == 'z') {
                        qualifier = *format++;
                } else if (format[0] == 'l')  {
                        format++;
@@ -453,13 +453,17 @@
                        num = va_arg(args, uint64);
                else if (qualifier == 'l') {
                        num = va_arg(args, uint32);
-                       if (flags & SIGN)
+                       if ((flags & SIGN) != 0)
+                               num = (ssize_t)num;
+               } else if (qualifier == 'z') {
+                       num = va_arg(args, size_t);
+                       if ((flags & SIGN) != 0)
                                num = (long)num;
                } else if (qualifier == 'h') {
                        num = (unsigned short)va_arg(args, int);
-                       if (flags & SIGN)
+                       if ((flags & SIGN) != 0)
                                num = (short)num;
-               } else if (flags & SIGN)
+               } else if ((flags & SIGN) != 0)
                        num = va_arg(args, int);
                else
                        num = va_arg(args, unsigned int);


Other related posts:

  • » [haiku-commits] r37773 - haiku/trunk/src/system/kernel/lib - axeld