agenda: Fix org-duration-to-minutes error (take 2)
* lisp/org.el (org-stamp-time-of-day-regexp): Limit match group 2 to first time. * lisp/org-agenda.el (org-agenda-format-item): Compute duration before formatting time with `org-get-time-of-day'.
This commit is contained in:
parent
6107c2b15b
commit
c26f8d2cc5
|
@ -6656,10 +6656,6 @@ Any match of REMOVE-RE will be removed from TXT."
|
|||
(= (match-beginning 0) 0)
|
||||
t))
|
||||
(setq txt (replace-match "" nil nil txt))))
|
||||
;; Normalize the time(s) to 24 hour
|
||||
(when s1 (setq s1 (org-get-time-of-day s1 'string t)))
|
||||
(when s2 (setq s2 (org-get-time-of-day s2 'string t)))
|
||||
|
||||
;; Try to set s2 if s1 and
|
||||
;; `org-agenda-default-appointment-duration' are set
|
||||
(when (and s1 (not s2) org-agenda-default-appointment-duration)
|
||||
|
@ -6668,12 +6664,13 @@ Any match of REMOVE-RE will be removed from TXT."
|
|||
(+ (org-duration-to-minutes s1 t)
|
||||
org-agenda-default-appointment-duration)
|
||||
nil t)))
|
||||
|
||||
;; Compute the duration
|
||||
(when s2
|
||||
(setq duration (- (org-duration-to-minutes s2)
|
||||
(org-duration-to-minutes s1)))))
|
||||
|
||||
(org-duration-to-minutes s1))))
|
||||
;; Normalize the time(s) to 24 hour
|
||||
(when s1 (setq s1 (org-get-time-of-day s1 'string t)))
|
||||
(when s2 (setq s2 (org-get-time-of-day s2 'string t))))
|
||||
(when (string-match org-tag-group-re txt)
|
||||
;; Tags are in the string
|
||||
(if (or (eq org-agenda-remove-tags t)
|
||||
|
|
|
@ -4106,7 +4106,7 @@ groups carry important information:
|
|||
(defconst org-stamp-time-of-day-regexp
|
||||
(concat
|
||||
"<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} +\\sw+ +\\)"
|
||||
"\\([012][0-9]:[0-5][0-9]\\(-\\([012][0-9]:[0-5][0-9]\\)\\)?[^\n\r>]*?\\)>"
|
||||
"\\([012][0-9]:[0-5][0-9]\\)\\(-\\([012][0-9]:[0-5][0-9]\\)\\)?[^\n\r>]*?>"
|
||||
"\\(--?"
|
||||
"<\\1\\([012][0-9]:[0-5][0-9]\\)>\\)?")
|
||||
"Regular expression to match a timestamp time or time range.
|
||||
|
|
Loading…
Reference in New Issue