BSD 1 development
[unix-history] / portlib / __prtint.c
CommitLineData
520d5775
EA
1__prtint(pobj, buf, base, signed, f, upper)
2int *pobj;
3char *buf;
4int base;
5int signed;
6int upper;
7char *(*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)
34int *pobj;
35char **pbuf;
36int base;
37int signed;
38char *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}