From: Carsten Dominik <carsten.dominik@gmail.com>
To: Holger Macht <holger@homac.de>
Cc: "Emilio Jesús Gallego Arias" <egallego@babel.ls.fi.upm.es>,
emacs-orgmode@gnu.org
Subject: Re: Re: (org-entry-properties nil 'all) does not return inherited properties
Date: Wed, 24 Mar 2010 13:37:30 +0100 [thread overview]
Message-ID: <6B684A45-DD70-4A60-B2A2-18D508727557@gmail.com> (raw)
In-Reply-To: <20100322215622.GC26505@homac>
On Mar 22, 2010, at 10:56 PM, Holger Macht wrote:
> On Mon 22. Mar - 21:07:43, Emilio Jesús Gallego Arias wrote:
>> Holger Macht <holger@homac.de> writes:
>>
>>> On Mo 22. Mär - 18:44:38, Emilio Jesús Gallego Arias wrote:
>>>> Holger Macht <holger@homac.de> writes:
>>>>
>>>>> (org-entry-properties nil 'all) does not return inherited
>>>>> properties
>>>>> added with a file directive like that:
>>>>>
>>>>> #+PROPERTY: propkey propval
>>>>>
>>>>> Is this by intention? If so, is there a method to get all the
>>>>> properties
>>>>> of an item, also inherited ones?
>>>>>
>>>>> Currently I was just able to find (org-entry-get), but this only
>>>>> returns
>>>>> one specific property of which I need to know the name.
>>>>
>>>> See:
>>>>
>>>> ,----[ C-h v org-use-property-inheritance RET ]
>>>
>>> Have you tried? At least this doesn't have an effect on
>>> (org-entry-properties in current git head.
>>
>> Sorry Holger I misunderstood your question. I guess you should modify
>> org-entry-properties in order to include global properties like is
>> done
>> in the inheritance case.
>
> This does exactly what I want, thanks for the pointer. However, I'm
> missing the overview to know what impact this might have. Just for
> reference:
>
> ---
> diff --git a/lisp/org.el b/lisp/org.el
> index aa22309..ce57451 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -12663,7 +12663,11 @@ things up because then unnecessary parsing
> is avoided."
> (setq key (org-match-string-no-properties 1)
> value (org-trim (or (org-match-string-no-properties 2) "")))
> (unless (member key excluded)
> - (push (cons key (or value "")) props)))))
> + (push (cons key (or value "")) props))))
> + (when org-use-property-inheritance
> + (setq props (append org-file-properties props)
> + props (append org-global-properties props)
> + props (append org-global-properties-fixed props))))
> (if clocksum
> (push (cons "CLOCKSUM"
> (org-columns-number-to-string (/ (float clocksum) 60.)
>
On Mar 22, 2010, at 11:34 PM, Emilio Jesús Gallego Arias wrote:
> Holger Macht <holger@homac.de> writes:
>
>> This does exactly what I want, thanks for the pointer. However, I'm
>> missing the overview to know what impact this might have. Just for
>> reference:
>
> IMHO, this change should be safe to include.
>
Hi Holger, hi Emilio,
this is a good attempt at creating a function that gives all
properties of an entry including inherited ones. However,
there are problems:
1. org-entry-properties is not supposed to give this result.
It only returns what is present in the entry itself
(yes, with ALLTAGS being the one exception)
2. The change is still not complete, because it will miss
properties defined in in the parents and grandparents.
I would accept a patch that introduces a new function for this
purpose. This function would start with calling org-entry-properties,
then it would walk the hierarchy using org-up-heading-safe, call
org-entry-properties at each stop and add the properties that
are not present yet and that satisfy org-property-inherit-p.
Finally, it would add file and global properties, as you did
in your patch.
Emilio, if Holgers patch was enough for you, just define
a separate function doing the adding of file and global properties
for you.
Finally, please note that property inheritance can slow down things,
so make sure to call these functions as little as possible in your code.
HTH
- Carsten
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
prev parent reply other threads:[~2010-03-24 20:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-22 15:01 (org-entry-properties nil 'all) does not return inherited properties Holger Macht
2010-03-22 17:44 ` Emilio Jesús Gallego Arias
2010-03-22 18:06 ` Holger Macht
2010-03-22 20:07 ` Emilio Jesús Gallego Arias
2010-03-22 21:56 ` Holger Macht
2010-03-22 22:34 ` Emilio Jesús Gallego Arias
2010-03-24 12:37 ` Carsten Dominik [this message]
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6B684A45-DD70-4A60-B2A2-18D508727557@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=egallego@babel.ls.fi.upm.es \
--cc=emacs-orgmode@gnu.org \
--cc=holger@homac.de \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.