From a87840fffbf471d53eba17ea683728125d2d4767 Mon Sep 17 00:00:00 2001 From: Mattias EngdegÄrd Date: Tue, 16 Jul 2019 17:18:32 +0200 Subject: Fix calc number formatting with digit grouping (bug#36689) The functions math-format-hex and math-format-octal were not implemented, yet called, leading to a crash when using hex or octal radix with digit grouping. * test/lisp/calc/calc-tests.el (calc-test-format-radix): New test. * lisp/calc/calc-ext.el: Don't declare non-existing functions. (math--format-integer-fancy): Don't call non-existing functions. * lisp/calc/calc-bin.el (math-format-binary, math-binary-digits): Simplify, fixing 0-padding bug. --- lisp/calc/calc-bin.el | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'lisp/calc/calc-bin.el') diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el index b4371bdaf98..558e309e472 100644 --- a/lisp/calc/calc-bin.el +++ b/lisp/calc/calc-bin.el @@ -506,18 +506,9 @@ a (/ a calc-number-radix))) s))) -(defconst math-binary-digits ["000" "001" "010" "011" - "100" "101" "110" "111"]) (defun math-format-binary (a) ; [X S] - (if (< a 8) - (if (< a 0) - (concat "-" (math-format-binary (- a))) - (aref math-binary-digits a)) - (let ((s "")) - (while (> a 7) - (setq s (concat (aref math-binary-digits (% a 8)) s) - a (/ a 8))) - (concat (math-format-binary a) s)))) + (let ((calc-number-radix 2)) + (math-format-radix a))) ;;; Decompose into integer and fractional parts, without depending ;;; on calc-internal-prec. -- cgit v1.2.3