Subject: Re: bug#41347: 28.0.50; calculator.el: Cannot input negative exponents

From: Andreas Schwab <[email-masked]>
Date: Sun, 17 May 2020 13:57:50 +0200

On Mai 17 2020, Mattias Engdegård wrote:

>> @@ -863,7 +863,7 @@ calculator-string-to-number
>>      (let* ((str (replace-regexp-in-string
>>                   "\\.\\([^0-9].*\\)?$" ".0\\1" str))
>>             (str (replace-regexp-in-string
>> -                 "[eE][+-]?\\([^0-9].*\\)?$" "e0\\1" str)))
>> +                 "[eE]\\([+-]?\\)?$" "e\\10" str)))
>>        (float (string-to-number str)))))
>
> Thanks for the report and the suggested patch! However, I'm not sure what either of these replace-regexp-in-string calls are good for. The first one possibly to accept 1.e23 instead of 1e23; the second one is less clear. Frankly, I think we can drop both.

In commit f248292ede, there was

-                ((string-match-p "[eE][+-]?$" str) (concat str "0"))

so the bug is that the part matching "[+-]?" is now dropped.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."