aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1995-06-14 07:55:07 +0000
committerBruce Evans <bde@FreeBSD.org>1995-06-14 07:55:07 +0000
commitf53dbe9765396cf4e33f7d780d59743edcaf320d (patch)
tree455e9f4d86c93e65fa0f805db76f05c8c813c9e6 /sys
parent6f5014b4622d41bbf7d2933c5e2623f1aaf9eef5 (diff)
downloadsrc-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')
-rw-r--r--sys/kern/subr_prf.c21
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;