DEVEL15-afs-snrpintf-support-percentp-for-ptrs-20090616
authorDerrick Brashear <shadow@dementia.org>
Tue, 16 Jun 2009 19:08:25 +0000 (19:08 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 16 Jun 2009 19:08:25 +0000 (19:08 +0000)
LICENSE IPL10

so we can portably log pointers

(cherry picked from commit a44bee561505c8f955c84d5c96227d72d3cdaf57)

src/util/snprintf.c

index 6736f95..5a5004a 100644 (file)
@@ -347,6 +347,26 @@ afs_vsnprintf(char *p, size_t avail, const char *fmt, va_list ap)
            len = strlen(x);
            break;
 
+       case 'p':               /* unsigned decimal integer */
+           UVAL = va_arg(ap, void *);
+
+           xbuf[0] = '0';
+           xbuf[1] = 'x';
+
+           if (!haveprec) {
+               if (zfill && !ljust)
+                   precision = width;
+               else
+                   precision = 1;
+           }
+           if (precision > MAXPREC)
+               precision = MAXPREC;
+
+           mkint(xbuf + 2, UVAL, 16, 0, precision);
+           x = xbuf + ((altform && UVAL) ? 0 : 2);
+           len = strlen(x);
+           break;
+
        case 'x':
        case 'X':               /* unsigned hexadecimal integer */
            if (lflag > 1)