]> xenbits.xensource.com Git - people/liuw/mini-os.git/commitdiff
Accept %z in printf formats
authorThomas Leonard <talex5@gmail.com>
Wed, 1 Jul 2015 09:24:50 +0000 (10:24 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Fri, 3 Jul 2015 09:14:55 +0000 (10:14 +0100)
Before, we only supported %Z (upper-case). It seems that the lower-case
version is standard, and this matches the behaviour of Xen's vsprintf.c.

Signed-off-by: Thomas Leonard <talex5@gmail.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
lib/printf.c

index 3d02e959f7eeea632270155d74aca7e396f5bf4d..40f92fcef722df8bda445788ad85275ed0329574 100644 (file)
@@ -346,12 +346,14 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
 
         /* get the conversion qualifier */
         qualifier = -1;
-        if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt =='Z') {
+        if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt =='Z' || *fmt == 'z') {
             qualifier = *fmt;
             ++fmt;
             if (qualifier == 'l' && *fmt == 'l') {
                 qualifier = 'L';
                 ++fmt;
+            } else if (qualifier == 'z') {
+                qualifier = 'Z';
             }
         }
         if (*fmt == 'q') {