source: vendor/gcc/3.3.4/libf2c/libI77/fmtlib.c

Last change on this file was 1391, checked in by bird, 21 years ago

GCC v3.3.3 sources.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 779 bytes
Line 
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
13char *
14f__icvt (longint value, int *ndigit, int *sign, int base)
15{
16 static char buf[MAXINTLENGTH + 1];
17 register int i;
18 ulongint uvalue;
19
20 if (value > 0)
21 {
22 uvalue = value;
23 *sign = 0;
24 }
25 else if (value < 0)
26 {
27 uvalue = -value;
28 *sign = 1;
29 }
30 else
31 {
32 *sign = 0;
33 *ndigit = 1;
34 buf[MAXINTLENGTH - 1] = '0';
35 return &buf[MAXINTLENGTH - 1];
36 }
37 i = MAXINTLENGTH;
38 do
39 {
40 buf[--i] = (uvalue % base) + '0';
41 uvalue /= base;
42 }
43 while (uvalue > 0);
44 *ndigit = MAXINTLENGTH - i;
45 return &buf[i];
46}
Note: See TracBrowser for help on using the repository browser.