home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / f2c / i77lib / fmtlib.c < prev    next >
C/C++ Source or Header  |  2000-06-22  |  650b  |  35 lines

  1. /*    @(#)fmtlib.c    1.2    */
  2. #define MAXINTLENGTH 23
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #ifdef KR_headers
  7. char *f__icvt(value,ndigit,sign, base) long value; int *ndigit,*sign;
  8.  register int base;
  9. #else
  10. char *f__icvt(long value, int *ndigit, int *sign, int base)
  11. #endif
  12. {    static char buf[MAXINTLENGTH+1];
  13.     register int i;
  14.     if(value>0) *sign=0;
  15.     else if(value<0)
  16.     {    value = -value;
  17.         *sign= 1;
  18.     }
  19.     else
  20.     {    *sign=0;
  21.         *ndigit=1;
  22.         buf[MAXINTLENGTH]='0';
  23.         return(&buf[MAXINTLENGTH]);
  24.     }
  25.     for(i=MAXINTLENGTH-1;value>0;i--)
  26.     {    *(buf+i)=(int)(value%base)+'0';
  27.         value /= base;
  28.     }
  29.     *ndigit=MAXINTLENGTH-1-i;
  30.     return(&buf[i+1]);
  31. }
  32. #ifdef __cplusplus
  33.     }
  34. #endif
  35.