summaryrefslogtreecommitdiffstats
path: root/lib/libthr
diff options
context:
space:
mode:
authorcem <cem@FreeBSD.org>2016-06-01 16:11:09 +0000
committercem <cem@FreeBSD.org>2016-06-01 16:11:09 +0000
commit51037ae517bcc9a8a275eb7ff07c708d803a9173 (patch)
treeef942d0259ea2df00d35646f710286199c799151 /lib/libthr
parentd29b361251aaf275981b66d83ab2772d5def98b0 (diff)
downloadFreeBSD-src-51037ae517bcc9a8a275eb7ff07c708d803a9173.zip
FreeBSD-src-51037ae517bcc9a8a275eb7ff07c708d803a9173.tar.gz
libthr: _thread_vprintf: Enhance support for %p, %#x
No functional change. No ABI change. Reviewed by: kib Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D6672
Diffstat (limited to 'lib/libthr')
-rw-r--r--lib/libthr/thread/thr_printf.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/libthr/thread/thr_printf.c b/lib/libthr/thread/thr_printf.c
index 8e9a151..d38ee18 100644
--- a/lib/libthr/thread/thr_printf.c
+++ b/lib/libthr/thread/thr_printf.c
@@ -68,15 +68,19 @@ _thread_vprintf(int fd, const char *fmt, va_list ap)
unsigned long r, u;
int c;
long d;
- int islong;
+ int islong, isalt;
while ((c = *fmt++)) {
+ isalt = 0;
islong = 0;
if (c == '%') {
next: c = *fmt++;
if (c == '\0')
return;
switch (c) {
+ case '#':
+ isalt = 1;
+ goto next;
case 'c':
pchar(fd, va_arg(ap, int));
continue;
@@ -87,10 +91,13 @@ next: c = *fmt++;
islong = 1;
goto next;
case 'p':
+ pstr(fd, "0x");
islong = 1;
case 'd':
case 'u':
case 'x':
+ if (c == 'x' && isalt)
+ pstr(fd, "0x");
r = ((c == 'u') || (c == 'd')) ? 10 : 16;
if (c == 'd') {
if (islong)
OpenPOWER on IntegriCloud