emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [Accepted] Making the output of %% functions linkable in agenda


From: Bert Burgemeister
Subject: Re: [O] [Accepted] Making the output of %% functions linkable in agenda views
Date: Fri, 06 May 2011 09:49:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Carsten Dominik <address@hidden> writes:

> Patch 781 (http://patchwork.newartisans.com/patch/781/) is now "Accepted".
>
> Maintainer comment: none
>
> This relates to the following submission:
>
> http://mid.gmane.org/%3C87aaf3tv5l.fsf%40fastmail.fm%3E
>
> Here is the original message containing the patch:
>
>> Content-Type: text/plain; charset="utf-8"
>> MIME-Version: 1.0
>> Content-Transfer-Encoding: 7bit
>> Subject: [O] Making the output of %% functions linkable in agenda views
>> Date: Wed, 04 May 2011 00:56:54 -0000
>> From: Matt Lundin <address@hidden>
>> X-Patchwork-Id: 781
>> Message-Id: <address@hidden>
>> To: address@hidden (Sebold, Charles)
>> Cc: emacs-orgmode <address@hidden>
>> 
>> address@hidden writes:
>> 
>> > On 7 Apr 2011, Charles Sebold wrote:
>> >
>> >> Here's a test.  Take the line below and put it in an agenda file, then
>> >> view the agenda.
>> >>
>> >> %%(format "%s" (concat "[[elisp:(info)]" "[Link to info]]"))
>> >>
>> >> The results as I see them give me a link that I can mouse-click on,
>> >> but I can't move point to it and hit C-c C-o.
>> >>
>> >> What do I need to do to make this a normal org link in every way?  Or
>> >> is this a bug?
>> >>
>> 
>> Here's what seems to be going on. 
>> 
>> Clicking with the mouse works because it calls org-open-at-mouse, which
>> (by calling org-open-at-point) simply looks at the text surrounding the
>> click point to find a link.
>> 
>> The function org-agenda-open-link, on the other hand, grabs part of the
>> headline as a string (the prefix), then jumps to the location in the
>> original buffer and calls org-offer-links-in-entry to look for links in
>> both the entry and the prefix of agenda text. Obviously, it won't find
>> your link in the original entry since it looks like this:
>> 
>> %%(format "%s" (concat "[[elisp:(info)]" "[Link to info]]"))
>> 
>> I think it shouldn't be a problem to pass the whole agenda line to
>> org-offer-links-in-entry. This will not result in duplicate links, since
>> org-offer-links-in-entry "uniquifies" the links.
>> 
>> I've attached a patch.
>> 
>> The bigger question, however, is why the expression above is even
>> showing up in the agenda, since it contains no scheduling information.
>> :)
>> 
>> Best,
>> Matt
>> 
>> 
>> >From 58c7621c0c84b9c1930098a098e4559aa516eec0 Mon Sep 17 00:00:00 2001
>> From: Matt Lundin <address@hidden>
>> Date: Tue, 3 May 2011 15:54:35 -0400
>> Subject: [PATCH] Pass entire text of agenda line to org-offer-links-in-entry.
>> 
>> * lisp/org-agenda.el (org-agenda-open-link): Pass entire text of
>>   agenda line to org-offer-links-in-entry.
>> 
>> This fixes bug noticed by Charles Sebold, in which links that are
>> dynamically formatted for the agenda view are ignored.
>> http://permalink.gmane.org/gmane.emacs.orgmode/40673
>> ---
>>  lisp/org-agenda.el |    4 +---
>>  1 files changed, 1 insertions(+), 3 deletions(-)
>> 
>> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
>> index 65f7cea..609edd4 100644
>> --- a/lisp/org-agenda.el
>> +++ b/lisp/org-agenda.el
>> @@ -6879,9 +6879,7 @@ at the text of the entry itself."
>>                   (org-get-at-bol 'org-marker)))
>>       (buffer (and marker (marker-buffer marker)))
>>       (prefix (buffer-substring
>> -              (point-at-bol)
>> -              (or (text-property-any (point-at-bol) (point-at-eol) 
>> 'org-heading t)
>> -                  (point-at-bol)))))
>> +              (point-at-bol) (point-at-eol))))
>>      (cond
>>       (buffer
>>        (with-current-buffer buffer
>> -- 
>> 1.7.5
>> 
>> 
>
>

Just curious, is there anything I should have known that prevented the
patch submitted in http://article.gmane.org/gmane.emacs.orgmode/39313,

> From: Bert Burgemeister <address@hidden>
> Subject: [O] [PATCH] Bugfix: org-agenda-open-link
> Newsgroups: gmane.emacs.orgmode
> To: address@hidden
> Date: Sun, 13 Mar 2011 16:18:44 +0100
> 
> 
> * Org-agenda.el (org-agenda-open-link): C-c C-o didn't open links
> inserted via the `%%( )' mechanism, affecting usability of
> `%%(org-bbdb-anniversaries).
> 
> TINYCHANGE
> ---
> 
> 
> The bug was apparently introduced in commit
> ba1e90893d128d8004e4cb6763af692c5a6cd677.
> 
> -- 
> Bert 
> 
> 
> 
>  lisp/org-agenda.el |   14 +++++++-------
>  1 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
> index 4b4dd68..123668c 100644
> --- a/lisp/org-agenda.el
> +++ b/lisp/org-agenda.el
> @@ -6742,13 +6742,13 @@ at the text of the entry itself."
>                 (+ (point-at-bol)
>                    (or (org-get-at-bol 'prefix-length) 0)))))
>      (cond
> -     (buffer
> -      (with-current-buffer buffer
> -     (save-excursion
> -       (save-restriction
> -         (widen)
> -         (goto-char marker)
> -         (org-offer-links-in-entry arg prefix)))))
> +     ((and buffer
> +        (with-current-buffer buffer
> +          (save-excursion
> +            (save-restriction
> +              (widen)
> +              (goto-char marker)
> +              (org-offer-links-in-entry arg prefix))))))
>       ((or (org-in-regexp (concat "\\(" org-bracket-link-regexp "\\)"))
>         (save-excursion
>           (beginning-of-line 1)
> -- 
> 1.7.2.3

from being noticed?

-- 
Bert




reply via email to

[Prev in Thread] Current Thread [Next in Thread]