mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-01 18:00:40 -08:00
Make number-to-string work for bignums
* src/data.c (Fnumber_to_string): Handle bignum. * test/src/data-tests.el (data-tests-number-to-string): New test.
This commit is contained in:
parent
6d4bf2ceda
commit
23eab9a6a6
2 changed files with 13 additions and 0 deletions
|
|
@ -2756,6 +2756,14 @@ NUMBER may be an integer or a floating point number. */)
|
|||
char buffer[max (FLOAT_TO_STRING_BUFSIZE, INT_BUFSIZE_BOUND (EMACS_INT))];
|
||||
int len;
|
||||
|
||||
if (BIGNUMP (number))
|
||||
{
|
||||
ptrdiff_t count = SPECPDL_INDEX ();
|
||||
char *str = mpz_get_str (NULL, 10, XBIGNUM (number)->value);
|
||||
record_unwind_protect_ptr (xfree, str);
|
||||
return unbind_to (count, make_unibyte_string (str, strlen (str)));
|
||||
}
|
||||
|
||||
CHECK_FIXNUM_OR_FLOAT (number);
|
||||
|
||||
if (FLOATP (number))
|
||||
|
|
|
|||
|
|
@ -574,4 +574,9 @@ comparing the subr with a much slower lisp implementation."
|
|||
(should-not (fixnump (+ most-positive-fixnum 1)))
|
||||
(should (bignump (+ most-positive-fixnum 1))))
|
||||
|
||||
(ert-deftest data-tests-number-to-string ()
|
||||
(let* ((s "99999999999999999999999999999")
|
||||
(v (read s)))
|
||||
(should (equal (number-to-string v) s))))
|
||||
|
||||
;;; data-tests.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue