]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix calculator entry of numbers with negative exponents (bug#41347)
authorMattias Engdegård <mattiase@acm.org>
Sun, 17 May 2020 16:11:27 +0000 (18:11 +0200)
committerMattias Engdegård <mattiase@acm.org>
Mon, 18 May 2020 09:27:40 +0000 (11:27 +0200)
* lisp/calculator.el (calculator-string-to-number):
Remove obsolete string transformations preventing entry of 1e-3 etc.
Keep one transformation to allow entry of "1.e3".
Reported by Chris Zheng.

lisp/calculator.el

index 7e0b2fcc6a3a876461d43158772a8bb178566529..cd92f992689b4d067c150055d77ef87a35882ffa 100644 (file)
@@ -858,12 +858,10 @@ The result should not exceed the screen width."
   "Convert the given STR to a number, according to the value of
 `calculator-input-radix'."
   (if calculator-input-radix
-    (string-to-number str (cadr (assq calculator-input-radix
-                                      '((bin 2) (oct 8) (hex 16)))))
-    (let* ((str (replace-regexp-in-string
-                 "\\.\\([^0-9].*\\)?$" ".0\\1" str))
-           (str (replace-regexp-in-string
-                 "[eE][+-]?\\([^0-9].*\\)?$" "e0\\1" str)))
+      (string-to-number str (cadr (assq calculator-input-radix
+                                        '((bin 2) (oct 8) (hex 16)))))
+    ;; Allow entry of "1.e3".
+    (let ((str (replace-regexp-in-string (rx "." (any "eE")) "e" str)))
       (float (string-to-number str)))))
 
 (defun calculator-push-curnum ()