diff options
author | Bruce Evans <bde@FreeBSD.org> | 1995-06-14 07:55:07 +0000 |
---|---|---|
committer | Bruce Evans <bde@FreeBSD.org> | 1995-06-14 07:55:07 +0000 |
commit | f53dbe9765396cf4e33f7d780d59743edcaf320d (patch) | |
tree | 455e9f4d86c93e65fa0f805db76f05c8c813c9e6 /sys/kern/subr_prf.c | |
parent | 6f5014b4622d41bbf7d2933c5e2623f1aaf9eef5 (diff) | |
download | src-f53dbe9765396cf4e33f7d780d59743edcaf320d.tar.gz src-f53dbe9765396cf4e33f7d780d59743edcaf320d.zip |
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().
Notes
Notes:
svn path=/head/; revision=9224
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 cc52cbbf639e..e8813bceb292 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; |