diff options
Diffstat (limited to 'lib/libI77/fmtlib.c')
-rw-r--r-- | lib/libI77/fmtlib.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/libI77/fmtlib.c b/lib/libI77/fmtlib.c new file mode 100644 index 0000000..37a4cc5 --- /dev/null +++ b/lib/libI77/fmtlib.c @@ -0,0 +1,28 @@ +/* @(#)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]); +} |