Hi Michael,
The <%%(diary-function)> format is really for DEADLINE and scheduled.
If you want to use diary-like entries, also including the text after the function call, the idea is that you place these lines directly in the buffer, exactly like you would in the diary buffer:
* Today is the 17th %%(diary-date 17 t t) %%(diary-date 18 t t) Now it is the 18th. * Birthdays %%(diary-anniversary 3 3 1979) Adam becomes %d years old!
The <%%(-sexps has worked properly before in earlier versions of org and the regexp
- (regexp "^&?%%(")
makes me think that there is more because I find the ampersand hard to understand or motivate.
The ampersand is allowed because it has a function in diary buffers. It has no function in Org buffers, but this allows you to copy and paste diary lines into Org buffers without further modifications.
HTH
- Carsten
On Feb 19, 2009, at 4:27 PM, Mikael Fornius wrote: Fixes a problem with some diary-sexps not occuring correct or not showing up at all in agenda view. (More description in the attached patch.)
I hope it will be useful!
Org-mode is a great mode.
From 0f05f81034eefeca63fd03f841c22a89357f3768 Mon Sep 17 00:00:00 2001 From: Mikael Fornius <address@hidden> Date: Thu, 19 Feb 2009 15:54:05 +0100 Subject: [PATCH] Makes diary sexps appear correct in agenda views.
Advanced sexps did not show up because of problem in org-agenda-get-sexps. Now:
When no additional text in sexp-entry it uses the headline text in agenda:
* Today is the 17th <%%(diary-date 17 t t)> <%%(diary-date 18 t t) Now it is the 18th.> * Birthdays <%%(diary-anniversary 3 3 1979) Adam becomes %d years old!>
The first is formatted with "Today is the 17th" in the agenda view, the second sexp as "Now it is the 18th." (not with the heading) and the anniversary as "Adam becomes 30 years old!". --- lisp/org-agenda.el | 23 ++++++++++------------- 1 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 40fc456..a67081a 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3504,7 +3504,7 @@ the documentation of `org-diary'." 'help-echo (format "mouse-2 or RET jump to org file %s" (abbreviate-file-name buffer-file-name)))) - (regexp "^&?%%(") + (regexp "<%%(") marker category ee txt tags entry result beg b sexp sexp-entry todo-state) (goto-char (point-min)) @@ -3516,7 +3516,7 @@ the documentation of `org-diary'." (setq b (point)) (forward-sexp 1) (setq sexp (buffer-substring b (point))) - (setq sexp-entry (if (looking-at "[ \t]*\\(\\S-.*\\)") + (setq sexp-entry (if (looking-at "[ \t]*\\(\\S-.*\\)>") (org-trim (match-string 1)) "")) (setq result (org-diary-sexp-entry sexp sexp-entry date)) @@ -3525,17 +3525,14 @@ the documentation of `org-diary'." category (org-get-category beg) todo-state (org-get-todo-state))
- (if (string-match "\\S-" result) - (setq txt result) - (setq txt "SEXP entry returned empty string")) - - (setq txt (org-format-agenda-item - "" txt category tags 'time)) - (org-add-props txt props 'org-marker marker) - (org-add-props txt nil - 'org-category category 'date date 'todo-state todo-state - 'type "sexp") - (push txt ee)))) + (when (string-match "\\S-" result) + (setq txt (org-format-agenda-item + "" result category tags 'time)) + (org-add-props txt props 'org-marker marker) + (org-add-props txt nil + 'org-category category 'date date 'todo-state todo-state + 'type "sexp") + (push txt ee))))) (nreverse ee)))
(defalias 'org-get-closed 'org-agenda-get-progress) -- 1.5.6
-- Mikael Fornius _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. address@hidden http://lists.gnu.org/mailman/listinfo/emacs-orgmode
|