diff options
author | bde <bde@FreeBSD.org> | 1995-06-14 07:55:07 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-06-14 07:55:07 +0000 |
commit | 909b527c19133d6ced3b877bb3277396b00696ae (patch) | |
tree | 455e9f4d86c93e65fa0f805db76f05c8c813c9e6 /sys/kern/subr_prf.c | |
parent | 8ba63f456c4da0f6955a4bb2a79a877981489dad (diff) | |
download | FreeBSD-src-909b527c19133d6ced3b877bb3277396b00696ae.zip FreeBSD-src-909b527c19133d6ced3b877bb3277396b00696ae.tar.gz |
Convert %p to 0x%x instead of to 0x%8x. The latter gives blank padding
in the wrong place. Blank padding in the right place or zero padding
would be inconsistent with user mode.
Put case 'p' in alphabetical order.
Implement %p in sprintf() too. I'd like only a single, more complete
printf() core, perhaps one based on vsnprintf().
Diffstat (limited to 'sys/kern/subr_prf.c')
-rw-r--r-- | sys/kern/subr_prf.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c index cc52cbb..e8813bc 100644 --- a/sys/kern/subr_prf.c +++ b/sys/kern/subr_prf.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)subr_prf.c 8.3 (Berkeley) 1/21/94 - * $Id: subr_prf.c,v 1.12 1995/04/01 20:18:43 joerg Exp $ + * $Id: subr_prf.c,v 1.13 1995/04/08 21:32:11 joerg Exp $ */ #include <sys/param.h> @@ -448,17 +448,16 @@ reswitch: switch (ch = *(u_char *)fmt++) { ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); base = 8; goto number; + case 'p': + ul = (u_long)va_arg(ap, void *); + base = 16; + putchar('0', flags, tp); + putchar('x', flags, tp); + goto number; case 'u': ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); base = 10; goto number; - case 'p': - ul = (u_long) va_arg(ap, void *); - width=8; - base=16; - putchar('0',flags,tp); - putchar('x',flags,tp); - goto number; case 'x': ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); base = 16; @@ -574,6 +573,12 @@ reswitch: switch (ch = *(u_char *)fmt++) { base = 8; goto number; break; + case 'p': + ul = (u_long)va_arg(ap, void *); + base = 16; + *bp++ = '0'; + *bp++ = 'x'; + goto number; case 'u': ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); base = 10; |