diff --git a/sys/ddb/db_output.c b/sys/ddb/db_output.c index 4468cbd0f2ee..4e062ef07879 100644 --- a/sys/ddb/db_output.c +++ b/sys/ddb/db_output.c @@ -1,4 +1,4 @@ -/* $NetBSD: db_output.c,v 1.16 1997/02/03 19:56:24 cgd Exp $ */ +/* $NetBSD: db_output.c,v 1.17 1997/10/24 18:20:23 chuck Exp $ */ /* * Mach Operating System @@ -76,8 +76,6 @@ int db_max_line = DB_MAX_LINE; /* output max lines */ int db_max_width = DB_MAX_WIDTH; /* output line width */ static void db_more __P((void)); -static char *db_ksprintn __P((u_long, int, int *)); -static void db_printf_guts __P((const char *, va_list)); /* * Force pending whitespace. @@ -194,45 +192,6 @@ db_print_position() return (db_output_position); } -/* - * Printing - */ -extern int db_radix; - -/*VARARGS1*/ -void -#if __STDC__ -db_printf(const char *fmt, ...) -#else -db_printf(fmt, va_alist) - const char *fmt; - va_dcl -#endif -{ - va_list listp; - va_start(listp, fmt); - db_printf_guts (fmt, listp); - va_end(listp); -} - -/* alternate name */ - -/*VARARGS1*/ -void -#if __STDC__ -kdbprintf(const char *fmt, ...) -#else -kdbprintf(fmt, va_alist) - char *fmt; - va_dcl -#endif -{ - va_list listp; - va_start(listp, fmt); - db_printf_guts (fmt, listp); - va_end(listp); -} - /* * End line if too long. */ @@ -242,212 +201,3 @@ db_end_line() if (db_output_position >= db_max_width) db_printf("\n"); } - -/* - * Put a number (base <= 16) in a buffer in reverse order; return an - * optional length and a pointer to the NULL terminated (preceded?) - * buffer. - */ -static char * -db_ksprintn(ul, base, lenp) - register u_long ul; - register int base, *lenp; -{ /* A long in base 8, plus NULL. */ - static char buf[sizeof(long) * NBBY / 3 + 2]; - register char *p; - - p = buf; - do { - *++p = "0123456789abcdef"[ul % base]; - } while (ul /= base); - if (lenp) - *lenp = p - buf; - return (p); -} - -static void -db_printf_guts(fmt, ap) - register const char *fmt; - va_list ap; -{ - register char *p; - register int ch, n; - u_long ul; - int base, lflag, tmp, width; - char padc; - int ladjust; - int sharpflag; - int neg; - - for (;;) { - padc = ' '; - width = 0; - while ((ch = *(const u_char *)fmt++) != '%') { - if (ch == '\0') - return; - db_putchar(ch); - } - lflag = 0; - ladjust = 0; - sharpflag = 0; - neg = 0; -reswitch: switch (ch = *(const u_char *)fmt++) { - case '0': - case '.': - padc = '0'; - goto reswitch; - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - for (width = 0;; ++fmt) { - width = width * 10 + ch - '0'; - ch = *fmt; - if (ch < '0' || ch > '9') - break; - } - goto reswitch; - case 'l': - lflag = 1; - goto reswitch; - case '-': - ladjust = 1; - goto reswitch; - case '#': - sharpflag = 1; - goto reswitch; - case 'b': - ul = va_arg(ap, int); - p = va_arg(ap, char *); - for (p = db_ksprintn(ul, *p++, NULL); - (ch = *p--) !='\0';) - db_putchar(ch); - - if (!ul) - break; - - for (tmp = 0; (n = *p++) != '\0';) { - if (ul & (1 << (n - 1))) { - db_putchar(tmp ? ',' : '<'); - for (; (n = *p) > ' '; ++p) - db_putchar(n); - tmp = 1; - } else - for (; *p > ' '; ++p); - } - if (tmp) - db_putchar('>'); - break; - case '*': - width = va_arg (ap, int); - if (width < 0) { - ladjust = !ladjust; - width = -width; - } - goto reswitch; - case ':': - p = va_arg(ap, char *); - db_printf_guts (p, va_arg(ap, va_list)); - break; - case 'c': - db_putchar(va_arg(ap, int)); - break; - case 's': - p = va_arg(ap, char *); - width -= strlen (p); - if (!ladjust && width > 0) - while (width--) - db_putchar (padc); - while ((ch = *p++) != '\0') - db_putchar(ch); - if (ladjust && width > 0) - while (width--) - db_putchar (padc); - break; - case 'r': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - if ((long)ul < 0) { - neg = 1; - ul = -(long)ul; - } - base = db_radix; - if (base < 8 || base > 16) - base = 10; - goto number; - case 'n': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - base = db_radix; - if (base < 8 || base > 16) - base = 10; - goto number; - case 'd': - ul = lflag ? va_arg(ap, long) : va_arg(ap, int); - if ((long)ul < 0) { - neg = 1; - ul = -(long)ul; - } - base = 10; - goto number; - case 'o': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - base = 8; - goto number; - case 'p': - db_putchar ('0'); - db_putchar ('x'); - ul = (u_long) va_arg(ap, void *); - base = 16; - goto number; - case 'u': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - base = 10; - goto number; - case 'z': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - if ((long)ul < 0) { - neg = 1; - ul = -(long)ul; - } - base = 16; - goto number; - case 'x': - ul = lflag ? va_arg(ap, u_long) : va_arg(ap, u_int); - base = 16; -number: p = (char *)db_ksprintn(ul, base, &tmp); - if (sharpflag && ul != 0) { - if (base == 8) - tmp++; - else if (base == 16) - tmp += 2; - } - if (neg) - tmp++; - - if (!ladjust && width && (width -= tmp) > 0) - while (width--) - db_putchar(padc); - if (neg) - db_putchar ('-'); - if (sharpflag && ul != 0) { - if (base == 8) { - db_putchar ('0'); - } else if (base == 16) { - db_putchar ('0'); - db_putchar ('x'); - } - } - if (ladjust && width && (width -= tmp) > 0) - while (width--) - db_putchar(padc); - - while ((ch = *p--) != '\0') - db_putchar(ch); - break; - default: - db_putchar('%'); - if (lflag) - db_putchar('l'); - /* FALLTHROUGH */ - case '%': - db_putchar(ch); - } - } -}