summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2017-09-07 15:20:26 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2017-09-07 15:20:26 +0200
commit91a76063d8ba4b2b0932b3dbe9e87a4e1f798540 (patch)
tree5724877d85ba944d441f74d04a956ab851823e5f
parentf1a1cad93a1648942a3999f0b133fcc3e58d7a96 (diff)
downloadorg-mode-91a76063d8ba4b2b0932b3dbe9e87a4e1f798540.tar.gz
org-duration: Fix `org-duration-to-minutes' with the empty string
* lisp/org-duration.el (org-duration-to-minutes): Accept the empty string. * testing/lisp/test-org-duration.el (test-org-duration/to-minutes): Add test. For backward compatibility with `org-duration-string-to-minutes' accept the empty string as a duration.
-rw-r--r--lisp/org-duration.el4
-rw-r--r--testing/lisp/test-org-duration.el2
2 files changed, 5 insertions, 1 deletions
diff --git a/lisp/org-duration.el b/lisp/org-duration.el
index 6d7770e..62afa01 100644
--- a/lisp/org-duration.el
+++ b/lisp/org-duration.el
@@ -272,11 +272,13 @@ When optional argument CANONICAL is non-nil, refer to
When optional argument CANONICAL is non-nil, ignore
`org-duration-units' and use standard time units value.
-As a special case, a bare number represents minutes.
+A bare number is translated into minutes. The empty string is
+translated into 0.0.
Return value as a float. Raise an error if duration format is
not recognized."
(cond
+ ((equal duration "") 0.0)
((numberp duration) (float duration))
((string-match-p org-duration--h:mm-re duration)
(pcase-let ((`(,hours ,minutes ,seconds)
diff --git a/testing/lisp/test-org-duration.el b/testing/lisp/test-org-duration.el
index 156ee59..0f9ef42 100644
--- a/testing/lisp/test-org-duration.el
+++ b/testing/lisp/test-org-duration.el
@@ -35,6 +35,8 @@
(should (= (org-duration-to-minutes "2") 2))
(should (= (org-duration-to-minutes "2.5") 2.5))
(should (= (org-duration-to-minutes 1) 1))
+ ;; Special case: the empty string is 0.0.
+ (should (= (org-duration-to-minutes "") 0.0))
;; Support custom units.
(should (= 4
(let ((org-duration-units '(("longmin" . 2)))