Commit | Line | Data |
---|---|---|
520d5775 EA |
1 | __prtint(pobj, buf, base, signed, f, upper) |
2 | int *pobj; | |
3 | char *buf; | |
4 | int base; | |
5 | int signed; | |
6 | int upper; | |
7 | char *(*f)(); | |
8 | { | |
9 | char digs[15]; | |
10 | register char *dp; | |
11 | register int k; | |
12 | register char *p; | |
13 | ||
14 | dp = (*f)(pobj, &buf, base, signed, digs); | |
15 | ||
16 | if (dp == digs) | |
17 | *dp++ = 0; | |
18 | p = buf; | |
19 | while (dp != digs) | |
20 | { | |
21 | k = *--dp; | |
22 | if (k < 10) | |
23 | k =+ '0'; | |
24 | else | |
25 | k =+ upper ? 'A' : 'a'; | |
26 | *p++ = k; | |
27 | } | |
28 | *p = 0; | |
29 | return (p); | |
30 | } | |
31 | ||
32 | ||
33 | __prtshort(pobj, pbuf, base, signed, digs) | |
34 | int *pobj; | |
35 | char **pbuf; | |
36 | int base; | |
37 | int signed; | |
38 | char *digs; | |
39 | { | |
40 | extern int ldivr; | |
41 | register int n; | |
42 | register char *p; | |
43 | ||
44 | p = digs; | |
45 | n = *pobj; | |
46 | if (signed && n < 0) | |
47 | { | |
48 | n = -n; | |
49 | *(*pbuf)++ = '-'; | |
50 | } | |
51 | while (n != 0) | |
52 | { | |
53 | n = ldiv(0, n, base); | |
54 | *p++ = ldivr; | |
55 | } | |
56 | return (p); | |
57 | } |