diff options
Diffstat (limited to 'lisp/calc/calc-alg.el')
| -rw-r--r-- | lisp/calc/calc-alg.el | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el index 50b31400a6a..3182e85a8c6 100644 --- a/lisp/calc/calc-alg.el +++ b/lisp/calc/calc-alg.el @@ -356,6 +356,8 @@  ;; math-simplify-step, which is called by math-simplify.  (defvar math-top-only) +;; math-normalize-error is declared in calc.el. +(defvar math-normalize-error)  (defun math-simplify (top-expr)    (let ((math-simplifying t)  	(math-top-only (consp calc-simplify-mode)) @@ -383,10 +385,12 @@        (calc-with-default-simplification         (while (let ((r simp-rules))  		(setq res (math-normalize top-expr)) -		(while r -		  (setq res (math-rewrite res (car r)) -			r (cdr r))) -		(not (equal top-expr (setq res (math-simplify-step res))))) +                (if (not math-normalize-error) +                    (progn +                      (while r +                        (setq res (math-rewrite res (car r)) +                              r (cdr r))) +                      (not (equal top-expr (setq res (math-simplify-step res)))))))  	 (setq top-expr res)))))    top-expr) | 
