diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index 9adc180..89c9dde 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el @@ -4733,6 +4733,7 @@ be skipped." (list (if (memq 'closed items) (concat "\\<" org-closed-string)) (if (memq 'clock items) (concat "\\<" org-clock-string)) + (if (memq 'scheduled items) (concat "\\<" org-scheduled-string)) (if (memq 'state items) "- State \"\\([a-zA-Z0-9]+\\)\".*?")))) (parts-re (if parts (mapconcat 'identity parts "\\|") (error "`org-agenda-log-mode-items' is empty"))) @@ -4744,10 +4745,10 @@ be skipped." (format-time-string (car org-time-stamp-formats) (apply 'encode-time ; DATE bound by calendar - (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) + (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) 1 11)))) (org-agenda-search-headline-for-time nil) - marker hdmarker priority category tags closedp statep clockp state + marker hdmarker priority category tags closedp statep clockp scheduledp state ee txt extra timestr rest clocked) (goto-char (point-min)) (while (re-search-forward regexp nil t) @@ -4755,8 +4756,9 @@ be skipped." (org-agenda-skip) (setq marker (org-agenda-new-marker (match-beginning 0)) closedp (equal (match-string 1) org-closed-string) + scheduledp (equal (match-string 1) org-scheduled-string) statep (equal (string-to-char (match-string 1)) ?-) - clockp (not (or closedp statep)) + clockp (not (or closedp scheduledp statep)) state (and statep (match-string 2)) category (org-get-category (match-beginning 0)) timestr (buffer-substring (match-beginning 0) (point-at-eol)) @@ -4765,7 +4767,7 @@ be skipped." ;; substring should only run to end of time stamp (setq rest (substring timestr (match-end 0)) timestr (substring timestr 0 (match-end 0))) - (if (and (not closedp) (not statep) + (if (and (not closedp) (not statep) (not scheduledp) (string-match "\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)\\].*?\\([0-9]\\{1,2\\}:[0-9]\\{2\\}\\)" rest)) (progn (setq timestr (concat (substring timestr 0 -1) "-" (match-string 1 rest) "]")) @@ -4780,6 +4782,9 @@ be skipped." (setq extra (match-string 1)))) (clockp (and (looking-at ".*\n[ \t]*-[ \t]+\\([^-\n \t].*?\\)[ \t]*$") + (setq extra (match-string 1)))) + (scheduledp + (and (looking-at ".*\n[ \t]*-[ \t]+\\([^-\n \t].*?\\)[ \t]*$") (setq extra (match-string 1))))) (if (not (re-search-backward "^\\*+ " nil t)) (setq txt org-agenda-no-heading-message) @@ -4788,6 +4793,8 @@ be skipped." tags (org-get-tags-at)) (looking-at "\\*+[ \t]+\\([^\r\n]+\\)") (setq txt (match-string 1)) + (if (and scheduledp (not (string-match (regexp-opt org-done-keywords-for-agenda) txt))) + (throw :skip nil)) (when extra (if (string-match "\\([ \t]+\\)\\(:[^ \n\t]*?:\\)[ \t]*$" txt) (setq txt (concat (substring txt 0 (match-beginning 1)) @@ -4796,8 +4803,9 @@ be skipped." (setq txt (org-format-agenda-item (cond (closedp "Closed: ") - (statep (concat "State: (" state ")")) - (t (concat "Clocked: (" clocked ")"))) + (scheduledp "Scheduled: ") + (statep (concat "State: (" state ")")) + (t (concat "Clocked: (" clocked ")"))) txt category tags timestr))) (setq priority 100000) (org-add-props txt props