summaryrefslogtreecommitdiff
path: root/set_str.c
diff options
context:
space:
mode:
authorhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2003-02-24 12:32:56 +0000
committerhanrot <hanrot@280ebfd0-de03-0410-8827-d642c229c3f4>2003-02-24 12:32:56 +0000
commit76014a241d9a7e4c2372b3db3a23f00f7f630055 (patch)
tree52c2d3069478cc1bce70c955cc9ee17c972d8748 /set_str.c
parentad3bb5fb96a080649f2373149fd17114d03ee29a (diff)
downloadmpfr-76014a241d9a7e4c2372b3db3a23f00f7f630055.tar.gz
Replaced NaN, Inf by @NaN@, @Inf@ [for bases > 24].
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2249 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'set_str.c')
-rw-r--r--set_str.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/set_str.c b/set_str.c
index 92f917efb..c177d4017 100644
--- a/set_str.c
+++ b/set_str.c
@@ -95,10 +95,7 @@ mpfr_set_str (mpfr_t x, const char *str, int base, mp_rnd_t rnd)
if (base < 2 || base > 36)
return -1;
- /* be careful that 'nan' is a valid number in base >= 24,
- since n=23, a=10, n=23 */
- if (((base < 24) ? strncasecmp (str, "NaN", 3) : strncmp (str, "NaN", 3))
- == 0)
+ if (strlen(str) >= 5 && strncasecmp (str, "@NaN@", 5) == 0)
{
MPFR_SET_NAN(x);
/* MPFR_RET_NAN not used as the return value isn't a ternary value */
@@ -113,8 +110,7 @@ mpfr_set_str (mpfr_t x, const char *str, int base, mp_rnd_t rnd)
/* be careful that 'inf' is a valid number in base >= 24,
since i=18, n=23, f=15 */
- if (((base < 24) ? strncasecmp (str, "Inf", 3) : strncmp (str, "Inf", 3))
- == 0)
+ if (strlen(str) >= 3 && strncasecmp (str, "@Inf@", 5) == 0)
{
MPFR_CLEAR_NAN (x);
MPFR_SET_INF (x);