changeset 81466:e51a63a95590

(calc-multiplication-has-precendence): New variable. (math-standard-ops,math-standard-ops-p,math-expr-ops): New functions. (math-expr-opers): Define using math-standard-ops rather than math-standard-opers.
author Jay Belanger <jay.p.belanger@gmail.com>
date Wed, 20 Jun 2007 04:07:24 +0000
parents ea719971ae70
children a90e4a0758e3
files lisp/calc/calc.el
diffstat 1 files changed, 32 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calc/calc.el	Tue Jun 19 08:53:36 2007 +0000
+++ b/lisp/calc/calc.el	Wed Jun 20 04:07:24 2007 +0000
@@ -401,6 +401,13 @@
   :group 'calc
   :type '(choice (string) (sexp)))
 
+(defcustom calc-multiplication-has-precedence
+  t
+  "*If non-nil, multiplication has precedence over division
+in normal mode."
+  :group 'calc
+  :type 'boolean)
+
 (defvar calc-bug-address "jay.p.belanger@gmail.com"
   "Address of the maintainer of Calc, for use by `report-calc-bug'.")
 
@@ -3467,8 +3474,6 @@
      ( "!"     calcFunc-fact 210  -1 )
      ( "^"     ^             201 200 )
      ( "**"    ^             201 200 )
-     ( "*"     *             196 195 )
-     ( "2x"    *             196 195 )
      ( "/"     /             190 191 )
      ( "%"     %             190 191 )
      ( "\\"    calcFunc-idiv 190 191 )
@@ -3492,7 +3497,31 @@
      ( "::"    calcFunc-condition 45 46 )
      ( "=>"    calcFunc-evalto 40 41 )
      ( "=>"    calcFunc-evalto 40 -1 )))
-(defvar math-expr-opers math-standard-opers)
+
+(defun math-standard-ops ()
+  (if calc-multiplication-has-precedence
+      (cons
+       '( "*"     *             196 195 )
+       (cons
+        '( "2x"    *             196 195 )
+        math-standard-opers))
+    (cons
+     '( "*"     *             186 185 )
+     (cons
+      '( "2x"    *             186 185 )
+      math-standard-opers))))
+
+(defun math-standard-ops-p ()
+  (let ((meo (caar math-expr-opers)))
+    (and (stringp meo)
+         (string= meo "*"))))
+
+(defvar math-expr-opers (math-standard-ops))
+
+(defun math-expr-ops ()
+  (if (math-standard-ops-p)
+      (math-standard-ops)
+    math-expr-opers))
 
 ;;;###autoload
 (defun calc-grab-region (top bot arg)