#define MAXINTLENGTH 23 #ifndef Allow_TYQUAD #undef longint #define longint long #undef ulongint #define ulongint unsigned long #endif char *f__icvt(longint value, int *ndigit, int *sign, int base) { static char buf[MAXINTLENGTH + 1]; register int i; ulongint uvalue; if (value > 0) { uvalue = value; *sign = 0; } else if (value < 0) { uvalue = -value; *sign = 1; } else { *sign = 0; *ndigit = 1; buf[MAXINTLENGTH - 1] = '0'; return &buf[MAXINTLENGTH - 1]; } i = MAXINTLENGTH; do { buf[--i] = (uvalue % base) + '0'; uvalue /= base; } while (uvalue > 0); *ndigit = MAXINTLENGTH - i; return &buf[i]; }