common/vsprintf: Refactor pointer() out of vsnprintf()
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 12 Nov 2013 10:06:45 +0000 (11:06 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Nov 2013 10:06:45 +0000 (11:06 +0100)
No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/common/vsprintf.c

index 4211ebee0d4c3adfa1b8d82eb1695a5b75689ae7..db926dfe77e0126f0695ca80339c07216ffd828f 100644 (file)
@@ -261,6 +261,20 @@ static char *string(char *str, char *end, const char *s,
     return str;
 }
 
+static char *pointer(char *str, char *end,
+                     const void *arg, int field_width, int precision,
+                     int flags)
+{
+    if ( field_width == -1 )
+    {
+        field_width = 2 * sizeof(void *);
+        flags |= ZEROPAD;
+    }
+
+    return number(str, end, (unsigned long)arg,
+                  16, field_width, precision, flags);
+}
+
 /**
  * vsnprintf - Format a string and place it in a buffer
  * @buf: The buffer to place the result into
@@ -399,13 +413,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
             continue;
 
         case 'p':
-            if (field_width == -1) {
-                field_width = 2*sizeof(void *);
-                flags |= ZEROPAD;
-            }
-            str = number(str, end,
-                         (unsigned long) va_arg(args, void *),
-                         16, field_width, precision, flags);
+            str = pointer(str, end, va_arg(args, const void *),
+                          field_width, precision, flags);
             continue;