From c2b8ce4439935e2e158d4357d234135a251c5767 Mon Sep 17 00:00:00 2001 From: Mattias EngdegÄrd Date: Fri, 27 Mar 2020 18:11:18 +0100 Subject: Calc: don't treat nil as an integer (bug#40155) Make Math-num-integerp return false for nil, following Math-integerp which was changed in the bignum reform. This fixes a crash in calc-graph-fast. Reported by Narendra Joshi. * lisp/calc/calc-macs.el (Math-num-integerp): Not true for nil. * test/lisp/calc/calc-tests.el (calc-Math-integerp): New tests. --- test/lisp/calc/calc-tests.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/lisp/calc') diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el index 784b404898a..8fffb7c14b5 100644 --- a/test/lisp/calc/calc-tests.el +++ b/test/lisp/calc/calc-tests.el @@ -334,6 +334,17 @@ An existing calc stack is reused, otherwise a new one is created." (should (equal tos '(- (* 2 (var x var-x)) 4))) (should (equal trail "pdiv 2 * x - 4\nprem 8 * x + 1\n")))))) +(ert-deftest calc-Math-integerp () + (should (Math-integerp -7)) + (should (Math-integerp (ash 1 65))) + (should-not (Math-integerp '(float 1 0))) + (should-not (Math-integerp nil)) + + (should (Math-num-integerp -7)) + (should (Math-num-integerp (ash 1 65))) + (should (Math-num-integerp '(float 1 0))) + (should-not (Math-integerp nil))) + (provide 'calc-tests) ;;; calc-tests.el ends here -- cgit v1.2.3