OSDN Git Service

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