1 /*	@(#)fmtlib.c	1.2	*/
2 #define MAXINTLENGTH 23
3 
4 #include "f2c.h"
5 #ifndef Allow_TYQUAD
6 #undef longint
7 #define longint long
8 #undef ulongint
9 #define ulongint unsigned long
10 #endif
11 
12 #ifdef KR_headers
f__icvt(value,ndigit,sign,base)13 char *f__icvt(value,ndigit,sign, base) longint value; int *ndigit,*sign;
14  register int base;
15 #else
16 char *f__icvt(longint value, int *ndigit, int *sign, int base)
17 #endif
18 {
19 	static char buf[MAXINTLENGTH+1];
20 	register int i;
21 	ulongint uvalue;
22 
23 	if(value > 0) {
24 		uvalue = value;
25 		*sign = 0;
26 		}
27 	else if (value < 0) {
28 		uvalue = -value;
29 		*sign = 1;
30 		}
31 	else {
32 		*sign = 0;
33 		*ndigit = 1;
34 		buf[MAXINTLENGTH-1] = '0';
35 		return &buf[MAXINTLENGTH-1];
36 		}
37 	i = MAXINTLENGTH;
38 	do {
39 		buf[--i] = (uvalue%base) + '0';
40 		uvalue /= base;
41 		}
42 		while(uvalue > 0);
43 	*ndigit = MAXINTLENGTH - i;
44 	return &buf[i];
45 	}
46