Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

72 lines
916 B
C

/*
Copyright 1983
Alcyon Corporation
8716 Production Ave.
San Diego, CA 92121
@(#) __prtint.c - Sep 12, 1983 REGULUS 4.1
*/
char *
__prtint(pobj, buf, base, signed, f, upper)
int *pobj;
char *buf;
int base, signed, upper;
char *(*f)();
{
char digs[15];
register char *dp;
register int k;
register char *p;
dp = (*f)(pobj, &buf, base, signed, digs);
if (dp == digs)
*dp++ = 0;
p = buf;
while (dp != digs)
{
k = *--dp;
if (k < 10)
k =+ '0';
else
k =+ upper ? 'A'-10 : 'a'-10;
*p++ = k;
}
*p = 0;
return (p);
}
char *
__prtshort(pobj, pbuf, base, signed, digs)
int *pobj;
char **pbuf;
int base, signed;
char *digs;
{
register long n;
register char *p;
register long b;
p = digs;
b = base;
n = *pobj;
if (signed && n < 0)
{
n = -n;
*(*pbuf)++ = '-';
}
else
n =& 0xffffL; /* clear upper half */
while (n != 0)
{
*p++ = n%b;
n /= b;
}
return (p);
}