1: char *_ptrbf, *_ptrst, *__fmt;
2: printf(a1,a2,a3,a4){
3: auto char c, *s, adj, *ptr,*p, buf[30];
4: extern cputc(),_putstr(), cout;
5: auto int *adx, x, n, m, width, prec,i, padchar, fd;
6: double zz, *dblptr;
7: char (*f)();
8: _ptrbf = buf;
9:
10: fd=cout;
11: adx = &a1;
12: f = cputc;
13: if (a1 == -1)
14: {
15: f = _putstr;
16: _ptrst = a2;
17: adx =+ 2;
18: }
19: else if (a1 >= 0 && a1 <= 9)
20: fd = *adx++;
21: __fmt = *adx++;
22:
23:
24: while( c = *__fmt++ ){
25: if(c != '%') (*f)(c,fd);
26: else { x = *adx++;
27: if( *__fmt == '-' ){ adj = 'l'; __fmt++; }
28: else adj = 'r';
29: padchar = (*__fmt=='0') ? '0' : ' ';
30: width = __conv();
31: if( *__fmt == '.'){++__fmt; prec = __conv();}
32: else prec = 0;
33:
34: s = 0;
35: switch ( c = *__fmt++ ) {
36: case 'D':
37: case 'd':
38: _prt1(x); break;
39: case 'o':
40: case 'O':
41: _prnt8(x); break;
42: case 'x':
43: case 'X':
44: _prntx(x); break;
45: case 'S':
46: case 's': s=x;
47: break;
48: case 'C':
49: case 'c': *_ptrbf++ = x&0777;
50: break;
51: case 'E':
52: case 'e':
53: case 'F':
54: case 'f':
55: dblptr = adx-1;
56: zz = *dblptr;
57: adx =+ 3;
58: ftoa (zz, buf, prec, c);
59: prec = 0;
60: s = buf;
61: break;
62: default: (*f)(c,fd);
63: adx--;
64: }
65: if (s == 0)
66: {*_ptrbf = '\0'; s = buf;}
67: n = _clenf (s);
68: n = (prec<n && prec != 0) ? prec : n;
69: m = width-n;
70: if (adj == 'r') while (m-- > 0) (*f)(padchar,fd);
71: while (n--) (*f)(*s++,fd);
72: while (m-- > 0) (*f)(padchar,fd);
73: _ptrbf = buf;
74: }
75: }
76: if(a1 == -1) (*f)('\0',fd);
77: }
78:
79:
80: _prnt8 (n)
81: { /* print in octal */
82: int p, k, sw;
83: if (n==0) {*_ptrbf++ = '0'; return;}
84: sw = 0;
85: for (p=15; p >= 0; p =- 3)
86: if ((k = (n>>p)&07) || sw)
87: {
88: *_ptrbf++ = '0' + k;
89: sw = 1;
90: }
91: }
92: _prntx (n)
93: {
94: int d,a;
95: if (a = n>>4)
96: _prntx ( a & 07777);
97: d = n&017;
98: *_ptrbf++ = d > 9 ? 'A'+d-10 : '0' + d;
99: }
100:
101: __conv()
102: {
103: auto c,n;
104: n = 0;
105: while( ((c = *__fmt++) >= '0') && (c<='9')) n = n*10+c-'0';
106: __fmt--;
107: return(n);
108: }
109:
110: _putstr(chr,str){
111: *_ptrst++ = chr;
112: return; ieh305i(); /* force loading of dummy.s */
113: }
114: _prt1(n)
115: {
116: int digs[15], *dpt;
117: dpt = digs;
118: if (n >= 0)
119: n = -n;
120: else
121: *_ptrbf++ = '-';
122: for (; n != 0; n = n/10)
123: *dpt++ = n%10;
124: if (dpt == digs)
125: *dpt++ = 0;
126: while (dpt != digs)
127: { --dpt;
128: *_ptrbf++ = '0' - *dpt;
129: }
130: }
Defined functions
printf
defined in line
2;
never used
Defined variables
__fmt
defined in line
1; used 10 times
_ptrbf
defined in line
1; used 9 times
_ptrst
defined in line
1; used 2 times