summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_prf.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1995-06-14 07:55:07 +0000
committerbde <bde@FreeBSD.org>1995-06-14 07:55:07 +0000
commit909b527c19133d6ced3b877bb3277396b00696ae (patch)
tree455e9f4d86c93e65fa0f805db76f05c8c813c9e6 /sys/kern/subr_prf.c
parent8ba63f456c4da0f6955a4bb2a79a877981489dad (diff)
downloadFreeBSD-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.c21
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;
OpenPOWER on IntegriCloud