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);