diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
commit | a6c1ed4716cf02626ea035beb6dd4a921642ba80 (patch) | |
tree | ef582c1b52819e27bdd16097ec03b69799d04ede /newlib/libc/stdlib/efgcvt.c | |
parent | f6c9a624fa8a6878a7fb2b02f55e4990a20feb59 (diff) |
Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gbalibc
Diffstat (limited to 'newlib/libc/stdlib/efgcvt.c')
-rw-r--r-- | newlib/libc/stdlib/efgcvt.c | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/newlib/libc/stdlib/efgcvt.c b/newlib/libc/stdlib/efgcvt.c deleted file mode 100644 index 556d224..0000000 --- a/newlib/libc/stdlib/efgcvt.c +++ /dev/null @@ -1,202 +0,0 @@ -/* -FUNCTION -<<ecvt>>,<<ecvtf>>,<<fcvt>>,<<fcvtf>>---double or float to string - -INDEX - ecvt -INDEX - fcvt - -ANSI_SYNOPSIS - #include <stdlib.h> - - char *ecvt(double <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); - char *ecvtf(float <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); - - char *fcvt(double <[val]>, int <[decimals]>, - int *<[decpt]>, int *<[sgn]>); - char *fcvtf(float <[val]>, int <[decimals]>, - int *<[decpt]>, int *<[sgn]>); - -TRAD_SYNOPSIS - #include <stdlib.h> - - char *ecvt(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); - double <[val]>; - int <[chars]>; - int *<[decpt]>; - int *<[sgn]>; - char *ecvtf(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); - float <[val]>; - int <[chars]>; - int *<[decpt]>; - int *<[sgn]>; - - char *fcvt(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); - double <[val]>; - int <[decimals]>; - int *<[decpt]>; - int *<[sgn]>; - char *fcvtf(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); - float <[val]>; - int <[decimals]>; - int *<[decpt]>; - int *<[sgn]>; - -DESCRIPTION -<<ecvt>> and <<fcvt>> produce (null-terminated) strings of digits -representating the <<double>> number <[val]>. -<<ecvtf>> and <<fcvtf>> produce the corresponding character -representations of <<float>> numbers. - -(The <<stdlib>> functions <<ecvtbuf>> and <<fcvtbuf>> are reentrant -versions of <<ecvt>> and <<fcvt>>.) - -The only difference between <<ecvt>> and <<fcvt>> is the -interpretation of the second argument (<[chars]> or <[decimals]>). -For <<ecvt>>, the second argument <[chars]> specifies the total number -of characters to write (which is also the number of significant digits -in the formatted string, since these two functions write only digits). -For <<fcvt>>, the second argument <[decimals]> specifies the number of -characters to write after the decimal point; all digits for the integer -part of <[val]> are always included. - -Since <<ecvt>> and <<fcvt>> write only digits in the output string, -they record the location of the decimal point in <<*<[decpt]>>>, and -the sign of the number in <<*<[sgn]>>>. After formatting a number, -<<*<[decpt]>>> contains the number of digits to the left of the -decimal point. <<*<[sgn]>>> contains <<0>> if the number is positive, -and <<1>> if it is negative. - -RETURNS -All four functions return a pointer to the new string containing a -character representation of <[val]>. - -PORTABILITY -None of these functions are ANSI C. - -Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, -<<lseek>>, <<read>>, <<sbrk>>, <<write>>. - -NEWPAGE -FUNCTION -<<gvcvt>>, <<gcvtf>>---format double or float as string - -INDEX - gcvt -INDEX - gcvtf - -ANSI_SYNOPSIS - #include <stdlib.h> - - char *gcvt(double <[val]>, int <[precision]>, char *<[buf]>); - char *gcvtf(float <[val]>, int <[precision]>, char *<[buf]>); - -TRAD_SYNOPSIS - #include <stdlib.h> - - char *gcvt(<[val]>, <[precision]>, <[buf]>); - double <[val]>; - int <[precision]>; - char *<[buf]>; - char *gcvtf(<[val]>, <[precision]>, <[buf]>); - float <[val]>; - int <[precision]>; - char *<[buf]>; - -DESCRIPTION -<<gcvt>> writes a fully formatted number as a null-terminated -string in the buffer <<*<[buf]>>>. <<gdvtf>> produces corresponding -character representations of <<float>> numbers. - -<<gcvt>> uses the same rules as the <<printf>> format -`<<%.<[precision]>g>>'---only negative values are signed (with -`<<->>'), and either exponential or ordinary decimal-fraction format -is chosen depending on the number of significant digits (specified by -<[precision]>). - -RETURNS -The result is a pointer to the formatted representation of <[val]> -(the same as the argument <[buf]>). - -PORTABILITY -Neither function is ANSI C. - -Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, -<<lseek>>, <<read>>, <<sbrk>>, <<write>>. -*/ - -#include <_ansi.h> -#include <reent.h> -#include <stdio.h> -#include <stdlib.h> -#include "local.h" - -char * -_DEFUN (fcvt, (d, ndigit, decpt, sign), - double d _AND - int ndigit _AND - int *decpt _AND - int *sign) -{ - return fcvtbuf (d, ndigit, decpt, sign, NULL); -} - -char * -_DEFUN (fcvtf, (d, ndigit, decpt, sign), - float d _AND - int ndigit _AND - int *decpt _AND - int *sign) -{ - return fcvt ((float) d, ndigit, decpt, sign); -} - - -char * -_DEFUN (gcvtf, (d, ndigit, buf), - float d _AND - int ndigit _AND - char *buf) -{ - double asd = d; - return gcvt (asd, ndigit, buf); -} - - -char * -_DEFUN (ecvt, (d, ndigit, decpt, sign), - double d _AND - int ndigit _AND - int *decpt _AND - int *sign) -{ - return ecvtbuf (d, ndigit, decpt, sign, NULL); -} - -char * -_DEFUN (ecvtf, (d, ndigit, decpt, sign), - float d _AND - int ndigit _AND - int *decpt _AND - int *sign) -{ - return ecvt ((double) d, ndigit, decpt, sign); -} - - -char * -_DEFUN (gcvt, (d, ndigit, buf), - double d _AND - int ndigit _AND - char *buf) -{ - char *tbuf = buf; - if (d < 0) { - *buf = '-'; - buf++; - ndigit--; - } - return (_gcvt (_REENT, d, ndigit, buf, 'g', 0) ? tbuf : 0); -} |