calccomp.el (math-compose-expr): Add extra argument indicating that

parentheses should be put around products in denominators.  Give
multiplication precedence over division during composition.
This commit is contained in:
Jay Belanger 2012-08-09 09:46:03 -05:00
parent dee4ef9388
commit 3167378035
2 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,10 @@
2012-08-09 Jay Belanger <jay.p.belanger@gmail.com>
* calc/calccomp.el (math-compose-expr): Add extra argument
indicating that parentheses should be put around products in
denominators. Give multiplication precedence over division during
composition.
2012-08-09 Chong Yidong <cyd@gnu.org>
* man.el (Man-switches, Man-sed-command, Man-awk-command)

View file

@ -86,8 +86,11 @@
(setq sn (math-to-underscores sn)))
sn)))
(defun math-compose-expr (a prec)
(let ((math-compose-level (1+ math-compose-level))
;;; Give multiplication precendence when composing to avoid
;;; writing a*(b c) instead of a b c
(defun math-compose-expr (a prec &optional div)
(let ((calc-multiplication-has-precedence t)
(math-compose-level (1+ math-compose-level))
(math-expr-opers (math-expr-ops))
spfn)
(cond
@ -591,7 +594,9 @@
(or (= (length a) 3) (eq (car a) 'calcFunc-if))
(/= (nth 3 op) -1))
(cond
((> prec (or (nth 4 op) (min (nth 2 op) (nth 3 op))))
((or
(> prec (or (nth 4 op) (min (nth 2 op) (nth 3 op))))
(and div (eq (car a) '*)))
(if (and (memq calc-language '(tex latex))
(not (math-tex-expr-is-flat a)))
(if (eq (car-safe a) '/)
@ -631,7 +636,7 @@
nil)
math-compose-level))
(lhs (math-compose-expr (nth 1 a) (nth 2 op)))
(rhs (math-compose-expr (nth 2 a) (nth 3 op))))
(rhs (math-compose-expr (nth 2 a) (nth 3 op) (eq (nth 1 op) '/))))
(and (equal (car op) "^")
(eq (math-comp-first-char lhs) ?-)
(setq lhs (list 'horiz "(" lhs ")")))