/*  @(#)fmtlib.c  1.2 */
#define MAXINTLENGTH 23
#ifdef KR_headers
char *f__icvt(value, ndigit, sign, base) long value;
int *ndigit, *sign;
register int base;
#else
char *f__icvt(long value, int *ndigit, int *sign, int base)
#endif
{
  static char buf[MAXINTLENGTH + 1];
  register int i;
  if(value > 0) *sign = 0;
  else if(value < 0)
  {
    value = -value;
    *sign = 1;
  }
  else
  {
    *sign = 0;
    *ndigit = 1;
    buf[MAXINTLENGTH] = '0';
    return(&buf[MAXINTLENGTH]);
  }
  for(i = MAXINTLENGTH - 1; value > 0; i--)
  {
    *(buf + i) = (int)(value % base) + '0';
    value /= base;
  }
  *ndigit = MAXINTLENGTH - 1 - i;
  return(&buf[i + 1]);
}
