summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormux <mux@FreeBSD.org>2002-10-25 19:41:32 +0000
committermux <mux@FreeBSD.org>2002-10-25 19:41:32 +0000
commitbdcd4ebb5d13250d4ca2e13312032e45fee4c725 (patch)
tree75099c64f010b7695aed5d86c9af5ebc925592d8 /sys
parentedb58880e4d8d9564ad042d1b4d801464f516816 (diff)
downloadFreeBSD-src-bdcd4ebb5d13250d4ca2e13312032e45fee4c725.zip
FreeBSD-src-bdcd4ebb5d13250d4ca2e13312032e45fee4c725.tar.gz
- Rename the DDB specific %z printf format to %y.
- Make DDB use %y instead of %z. - Teach GCC about %y. - Implement support for the C99 %z format modifier. Approved by: re@ Reviewed by: peter Tested on: i386, sparc64
Diffstat (limited to 'sys')
-rw-r--r--sys/ddb/db_examine.c4
-rw-r--r--sys/kern/subr_prf.c15
2 files changed, 14 insertions, 5 deletions
diff --git a/sys/ddb/db_examine.c b/sys/ddb/db_examine.c
index 377316a..ccc5ebd 100644
--- a/sys/ddb/db_examine.c
+++ b/sys/ddb/db_examine.c
@@ -129,7 +129,7 @@ db_examine(addr, fmt, count)
case 'z': /* signed hex */
value = db_get_value(addr, size, TRUE);
addr += size;
- db_printf("%-*lz", width, (long)value);
+ db_printf("%-*ly", width, (long)value);
break;
case 'd': /* signed decimal */
value = db_get_value(addr, size, TRUE);
@@ -213,7 +213,7 @@ db_print_cmd(addr, have_addr, count, modif)
db_printf("%8lx", (unsigned long)addr);
break;
case 'z':
- db_printf("%8lz", (long)addr);
+ db_printf("%8ly", (long)addr);
break;
case 'd':
db_printf("%11ld", (long)addr);
diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c
index ac4be9b..910cf13 100644
--- a/sys/kern/subr_prf.c
+++ b/sys/kern/subr_prf.c
@@ -478,7 +478,7 @@ kvprintf(char const *fmt, void (*func)(int, void*), void *arg, int radix, va_lis
int ch, n;
uintmax_t num;
int base, lflag, qflag, tmp, width, ladjust, sharpflag, neg, sign, dot;
- int jflag;
+ int jflag, zflag;
int dwidth;
char padc;
int retval = 0;
@@ -506,7 +506,7 @@ kvprintf(char const *fmt, void (*func)(int, void*), void *arg, int radix, va_lis
percent = fmt - 1;
qflag = 0; lflag = 0; ladjust = 0; sharpflag = 0; neg = 0;
sign = 0; dot = 0; dwidth = 0;
- jflag = 0;
+ jflag = 0; zflag = 0;
reswitch: switch (ch = (u_char)*fmt++) {
case '.':
dot = 1;
@@ -614,6 +614,8 @@ reswitch: switch (ch = (u_char)*fmt++) {
*(va_arg(ap, quad_t *)) = retval;
else if (lflag)
*(va_arg(ap, long *)) = retval;
+ else if (zflag)
+ *(va_arg(ap, size_t *)) = retval;
else
*(va_arg(ap, int *)) = retval;
break;
@@ -662,10 +664,13 @@ reswitch: switch (ch = (u_char)*fmt++) {
case 'X':
base = 16;
goto handle_nosign;
- case 'z':
+ case 'y':
base = 16;
sign = 1;
goto handle_sign;
+ case 'z':
+ zflag = 1;
+ goto reswitch;
handle_nosign:
sign = 0;
if (jflag)
@@ -674,6 +679,8 @@ handle_nosign:
num = va_arg(ap, u_quad_t);
else if (lflag)
num = va_arg(ap, u_long);
+ else if (zflag)
+ num = va_arg(ap, size_t);
else
num = va_arg(ap, u_int);
goto number;
@@ -684,6 +691,8 @@ handle_sign:
num = va_arg(ap, quad_t);
else if (lflag)
num = va_arg(ap, long);
+ else if (zflag)
+ num = va_arg(ap, size_t);
else
num = va_arg(ap, int);
number:
OpenPOWER on IntegriCloud