Mercurial > hg > xemacs-beta
diff src/data.c @ 2010:a9cdbfb4716e
[xemacs-hg @ 2004-04-13 15:38:30 by james]
Handle leading + signs on numbers correctly.
author | james |
---|---|
date | Tue, 13 Apr 2004 15:38:42 +0000 |
parents | cc5b615380f8 |
children | f2fdfc131770 |
line wrap: on
line diff
--- a/src/data.c Tue Apr 13 04:23:50 2004 +0000 +++ b/src/data.c Tue Apr 13 15:38:42 2004 +0000 @@ -1271,6 +1271,9 @@ #ifdef HAVE_BIGFLOAT else { + /* GMP bigfloat_set_string returns random values with initial + */ + if (*p == '+') + p++; bigfloat_set_prec (scratch_bigfloat, bigfloat_get_default_prec ()); bigfloat_set_string (scratch_bigfloat, (const char *) p, b); return make_bigfloat_bf (scratch_bigfloat); @@ -1281,12 +1284,19 @@ #ifdef HAVE_RATIO if (qxestrchr (p, '/') != NULL) { + /* GMP ratio_set_string returns random values with initial + sign */ + if (*p == '+') + p++; ratio_set_string (scratch_ratio, (const char *) p, b); return make_ratio_rt (scratch_ratio); } #endif /* HAVE_RATIO */ #ifdef HAVE_BIGNUM + /* GMP bignum_set_string returns random values when the string starts with a + plus sign */ + if (*p == '+') + p++; /* GMP bignum_set_string returns random values when fed an empty string */ if (*p == '\0') return make_int (0);