Hi Phil,

Phil Jackson <[EMAIL PROTECTED]> writes:

> Something I thought might be nice is highlighting of timestamps
> according to there relativity to time().
>
> For example, at time of writing, <2006-12-11> would be red, <2007-12-03
> Mon 19:00> pink. Perhaps for customisation:
>
> (setq org-timestamp-colour-map
>  '(("<2h" . 'face)
>    ("<10m" . 'face)))

I like the general idea of having feedback about the proximity of a
deadline or time-stamp.  But I think doing this interactively is better,
since the values like "<2h" "<10m" (in your example) are very likely to
change quite often, no?

In the same spirit, I've written this, which let you check for deadlines
or scheduled items before a date (strings like "+2d" are okay):

--8<---------------cut here---------------start------------->8---
(defun org-check-before-date (date)
  "Check if there are deadlines or scheduled entries before DATE."
  (interactive (list (org-read-date)))
  (let ((case-fold-search nil)
        (regexp (concat "\\<\\(" org-deadline-string 
                        "\\|" org-scheduled-string 
                        "\\) *<\\([^>]+\\)>"))
        (callback
         (lambda () (time-less-p
                     (org-time-string-to-time (match-string 2))
                     (org-time-string-to-time date)))))
    (message "%d entries before %s"
             (org-occur regexp nil callback) date)))
--8<---------------cut here---------------end--------------->8---

If you want to permanently add this to `org-sparse-trees', here is a
patch against 5.16b.

diff -u /home/guerry/elisp/testing/org-5.16b/ /home/guerry/elisp/testing/tmp/org.el
--- /home/guerry/elisp/testing/org-5.16b/org.el	2007-12-04 08:40:13.000000000 +0000
+++ /home/guerry/elisp/testing/tmp/org.el	2007-12-09 22:32:07.000000000 +0000
@@ -14433,11 +14433,13 @@
 r      Show entries matching a regular expression"
   (interactive "P")
   (let (ans kwd value)
-    (message "Sparse tree: [/]regexp   [t]odo-kwd   [T]ag   [p]roperty  [d]eadlines")
+    (message "Sparse tree: [/]regexp  [t]odo-kwd  [T]ag  [p]roperty  [d]eadlines  [b]efore-date")
     (setq ans (read-char-exclusive))
     (cond
      ((equal ans ?d)
       (call-interactively 'org-check-deadlines))
+     ((equal ans ?b)
+      (call-interactively 'org-check-before-date))
      ((equal ans ?t)
       (org-show-todo-tree '(4)))
      ((equal ans ?T)
@@ -17372,6 +17374,20 @@
 	     (org-occur regexp nil callback)
 	     org-warn-days)))
 
+(defun org-check-before-date (date)
+  "Check if there are deadlines or scheduled entries before DATE."
+  (interactive (list (org-read-date)))
+  (let ((case-fold-search nil)
+	(regexp (concat "\\<\\(" org-deadline-string 
+			"\\|" org-scheduled-string 
+			"\\) *<\\([^>]+\\)>"))
+	(callback
+	 (lambda () (time-less-p
+		     (org-time-string-to-time (match-string 2))
+		     (org-time-string-to-time date)))))
+    (message "%d entries before %s"
+	     (org-occur regexp nil callback) date)))
+
 (defun org-evaluate-time-range (&optional to-buffer)
   "Evaluate a time range by computing the difference between start and end.
 Normally the result is just printed in the echo area, but with prefix arg

Diff finished.  Sun Dec  9 22:32:19 2007
-- 
Bastien
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to