branch: master commit 4a0b5fb85ecd689346719881e149d1f4341b5da4 Author: Wolfgang Jenkner <wjenk...@inode.at> Commit: Wolfgang Jenkner <wjenk...@inode.at>
Add a work-around for bug#19582, present before Emacs 24.5. * packages/metar/metar.el (metar-convert-unit): Rewrite expr if it starts with the `neg' operator. Technically, this is wrong because various functions in calc-units expect already simplified expressions. In practice, it should work around the above bug. --- packages/metar/metar.el | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/packages/metar/metar.el b/packages/metar/metar.el index 9575313..a05a353 100644 --- a/packages/metar/metar.el +++ b/packages/metar/metar.el @@ -249,6 +249,9 @@ It must have the signature of `math-convert-units', which is the default." (unless (symbolp new-unit) (setq new-unit (intern new-unit))) (let ((expr (math-simplify (math-read-expr value)))) + ;; Sneakily work around bug#19582. + (when (eq (car-safe expr) 'neg) + (setq expr `(* -1 ,(cadr expr)))) (cl-assert (or (math-zerop expr) (not (memq (math-single-units-in-expr-p expr) '(nil wrong)))) nil