- if (c == 'X')
- printx((long)*adx, trace);
- else if (c == 'd' || c == 'u' || c == 'o' || c == 'x')
- printn((long)*adx, c=='o'? 8: (c=='x'? 16:10), trace);
- else if (c == 's') {
+ /* THIS CODE IS VAX DEPENDENT IN HANDLING %l? AND %c */
+ switch (c) {
+
+ case 'l':
+ goto again;
+ case 'x': case 'X':
+ b = 16;
+ goto number;
+ case 'd': case 'D':
+ case 'u': /* what a joke */
+ b = 10;
+ goto number;
+ case 'o': case 'O':
+ b = 8;
+number:
+ printn((u_long)*adx, b, flags, ttyp);
+ break;
+ case 'c':
+ b = *adx;
+ for (i = 24; i >= 0; i -= 8)
+ if (c = (b >> i) & 0x7f)
+ putchar(c, flags, ttyp);
+ break;
+ case 'b':
+ b = *adx++;
+ s = (char *)*adx;
+ printn((u_long)b, *s++, flags, ttyp);
+ any = 0;
+ if (b) {
+ while (i = *s++) {
+ if (b & (1 << (i-1))) {
+ putchar(any? ',' : '<', flags, ttyp);
+ any = 1;
+ for (; (c = *s) > 32; s++)
+ putchar(c, flags, ttyp);
+ } else
+ for (; *s > 32; s++)
+ ;
+ }
+ if (any)
+ putchar('>', flags, ttyp);
+ }
+ break;
+
+ case 's':