]> git.eshelyaron.com Git - emacs.git/commitdiff
Calc: revert to old precedence of '/' in (La)TeX input mode
authorMattias Engdegård <mattiase@acm.org>
Sun, 11 Oct 2020 16:28:39 +0000 (18:28 +0200)
committerMattias Engdegård <mattiase@acm.org>
Tue, 13 Oct 2020 09:29:01 +0000 (11:29 +0200)
Make the '/' precedence higher than that of '+' and '-' again,
partially reverting fda9b316f84 (bug#43902).

* lisp/calc/calc-lang.el (tex): Change precedence of '/'.
* test/lisp/calc/calc-tests.el (calc-latex-input): New test.

lisp/calc/calc-lang.el
test/lisp/calc/calc-tests.el

index 1c270cfc243dca5be3031e48cb20a642b88ff7f3..bde5abe649f4dda2c65e3675abf1ad5cd6d47ef7 100644 (file)
      ( "\\times"  *               191 190 )
      ( "*"        *               191 190 )
      ( "2x"      *                191 190 )
+     ( "/"       /                185 186 )
      ( "+"       +                180 181 )
      ( "-"       -                180 181 )
      ( "\\over"          /                170 171 )
-     ( "/"       /                170 171 )
      ( "\\choose" calcFunc-choose  170 171 )
      ( "\\mod"   %                170 171 )
      ( "<"       calcFunc-lt      160 161 )
index d08a1f605b85b641bfeff240d504978996dcab37..fd161027a960fc38f0bfb7330df1619f991702c4 100644 (file)
@@ -636,6 +636,25 @@ An existing calc stack is reused, otherwise a new one is created."
         (should (equal (calcFunc-rot x n w)
                        (calc-tests--rot x n w)))))))
 
+(ert-deftest calc-latex-input ()
+  ;; Check precedence of "/" in LaTeX input mode.
+  (should (equal (math-read-exprs "a+b/c*d")
+                 '((+ (var a var-a) (/ (var b var-b)
+                                       (* (var c var-c) (var d var-d)))))))
+  (unwind-protect
+      (progn
+        (calc-set-language 'latex)
+        (should (equal (math-read-exprs "a+b/c*d")
+                 '((+ (var a var-a) (/ (var b var-b)
+                                       (* (var c var-c) (var d var-d)))))))
+        (should (equal (math-read-exprs "a+b\\over c*d")
+                       '((/ (+ (var a var-a) (var b var-b))
+                            (* (var c var-c) (var d var-d))))))
+        (should (equal (math-read-exprs "a/b/c")
+                       '((/ (/ (var a var-a) (var b var-b))
+                            (var c var-c))))))
+    (calc-set-language nil)))
+
 (provide 'calc-tests)
 ;;; calc-tests.el ends here