emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: Mikael Fornius <mfo@abc.se>
Cc: emacs-orgmode@gnu.org
Subject: Re: [PATCH] Makes diary sexps appear correct in agenda views.
Date: Fri, 20 Feb 2009 11:05:09 +0100	[thread overview]
Message-ID: <839C66B8-92BE-49DB-8977-103AC67B32D0@uva.nl> (raw)
In-Reply-To: <87wsbm8n0i.fsf@abc.se>


[-- Attachment #1.1: Type: text/plain, Size: 4062 bytes --]


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 <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
> 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.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[-- Attachment #1.2: Type: text/html, Size: 8540 bytes --]

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

_______________________________________________
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

  parent reply	other threads:[~2009-02-20 10:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-19 15:27 [PATCH] Makes diary sexps appear correct in agenda views Mikael Fornius
2009-02-19 17:25 ` Mikael Fornius
2009-02-20 10:29   ` Diary sexps in agenda Mikael Fornius
2009-02-20 10:05 ` Carsten Dominik [this message]
2009-02-20 10:35   ` [PATCH] Makes diary sexps appear correct in agenda views 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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  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=839C66B8-92BE-49DB-8977-103AC67B32D0@uva.nl \
    --to=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    --cc=mfo@abc.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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).