emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Mikael Fornius <mfo@abc.se>
To: emacs-orgmode@gnu.org
Subject: [PATCH] Makes diary sexps appear correct in agenda views.
Date: Thu, 19 Feb 2009 16:27:57 +0100	[thread overview]
Message-ID: <87wsbm8n0i.fsf@abc.se> (raw)

[-- Attachment #1: Type: text/plain, Size: 197 bytes --]

Fixes a problem with some diary-sexps not occuring correct or not
showing up at all in agenda view. (More description in the attached

I hope it will be useful!

Org-mode is a great mode.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Makes-diary-sexps-appear-correct-in-agenda-views.patch --]
[-- Type: text/x-patch, Size: 2562 bytes --]

From 0f05f81034eefeca63fd03f841c22a89357f3768 Mon Sep 17 00:00:00 2001
From: Mikael Fornius <mfo@abc.se>
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

* 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'."
 		      (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
     (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)

[-- Attachment #3: Type: text/plain, Size: 20 bytes --]

Mikael Fornius

[-- Attachment #4: Type: text/plain, Size: 204 bytes --]

Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.

             reply	other threads:[~2009-02-19 15:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-19 15:27 Mikael Fornius [this message]
2009-02-19 17:25 ` [PATCH] Makes diary sexps appear correct in agenda views Mikael Fornius
2009-02-20 10:29   ` Diary sexps in agenda Mikael Fornius
2009-02-20 10:05 ` [PATCH] Makes diary sexps appear correct in agenda views Carsten Dominik
2009-02-20 10:35   ` Mikael Fornius

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wsbm8n0i.fsf@abc.se \
    --to=mfo@abc.se \
    --cc=emacs-orgmode@gnu.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).