From: Eric Schulte <eric.schulte@gmx.com>
To: cberry@tajo.ucsd.edu
Cc: emacs-orgmode@gnu.org
Subject: Re: About the use of PROPERTY "meta lines"...
Date: Fri, 06 Jan 2012 11:22:44 -0700 [thread overview]
Message-ID: <87ty48y9kf.fsf@gmx.com> (raw)
In-Reply-To: 874nw892kd.fsf@tajo.ucsd.edu
[-- Attachment #1: Type: text/plain, Size: 1649 bytes --]
cberry@tajo.ucsd.edu writes:
> Torsten Wagner <torsten.wagner@gmail.com> writes:
>
>> Hmm...
>> but this point is really interesting at least worse to write down in
>> the manual.
>> From my understanding a
>> #+PROPERTY: var bar=2
>> sets bar globally to 2
>> somewhere and many lines and headers later
>> #+PROPERTY: var bar=5
>> would change this value to 5 for either the rest of the file or until
>> a new assignment is given...
>
> I think the behavior is trickier than that.
>
> This file:
>
> ,----
> | #+property: var foo=1
> | #+property: var+ bar=2
> |
> | #+begin_src emacs-lisp :results value :exports both
> | (+ foo bar)
> | #+end_src
> |
> | #+property: var foo=10
> | #+property: var+ bar=20
> |
> |
> | #+begin_src emacs-lisp :results value :exports both
> | (+ foo bar)
> | #+end_src
> `----
>
> Yields '30' after each block upon C-c C-e A, suggesting it is the last
> #+property setting the global property.
>
This makes sense
>
> But this one:
>
> ,----
> | #+property: var foo=1
> | #+property: var+ bar=2
> |
> | #+begin_src emacs-lisp :results value :exports both
> | (+ foo bar)
> | #+end_src
> |
> | #+property: var foo=10
> |
> | #+begin_src emacs-lisp :results value :exports both
> | (+ foo bar)
> | #+end_src
> `----
>
> Yields '3' after each block.
>
> So the global behavior of the second 'var foo' line depends on there
> baing a subsequent 'var+' line.
>
> Is this really the expected behavior?
>
No, the above behavior is not expected. I've just pushed up a patch
which results in the following behavior, in which the last specification
of a property overwrites any previous specifications.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: overwriting-properties.org --]
[-- Type: text/x-org, Size: 181 bytes --]
#+property: something foo=1
#+property: something+ bar=2
#+property: something foo=10
#+begin_src emacs-lisp
org-file-properties
#+end_src
#+results:
| (something . foo=10) |
[-- Attachment #3: Type: text/plain, Size: 3133 bytes --]
Best,
>
> (Org-mode version 7.8.03)
>
> Chuck
>
>
>> in that way a property line would be an tree-independent global variable
>>
>> in contrast, a property-block is only valid of the given tree (and
>> subtrees?).
>>
>> This brings up the question if there is a need for
>>
>> #+PROPERTY: const bar=2
>>
>> which would behave exactly the same like var but issue an error
>> message if someone tries to set it again somewhere in the file.
>>
>> Torsten
>>
>>
>>
>> On 01/06/2012 04:28 PM, Eric Schulte wrote:
>>> "Sebastien Vauban"<wxhgmqzgwmuf@spammotel.com> writes:
>>>
>>>> Hi Eric and all,
>>>>
>>>> Eric Schulte wrote:
>>>>> "Sebastien Vauban"<wxhgmqzgwmuf@spammotel.com> writes:
>>>>>
>>>>>> #+TITLE: Properties
>>>>>> #+AUTHOR: Seb Vauban
>>>>>> #+PROPERTY: var foo=1
>>>>>> #+PROPERTY: var+ bar=2
>>>>>>
>>>>>> * Abstract
>>>>>>
>>>>>> IIUC, properties are set in this way:
>>>>>>
>>>>>> - on a file basis, before any heading, through the =PROPERTY= keyword,
>>>>>> - on a subtree basis, through the =PROPERTIES= block.
>>>>>>
>>>>>> My comprehension is that the =PROPERTY= keyword may not be used inside "trees",
>>>>>> and should be ignored if that would happen.
>>>>>
>>>>> While it is not normal usage, I think that it is legal for #+PROPERTY:
>>>>> lines (or #+Option: lines etc...) to appear inside of subtrees.
>>>>
>>>> I realize this is not especially a Babel question, but more a Org core
>>>> question...
>>>>
>>>> Thanks for your answer -- which generates a new one, though: what is then the
>>>> expected *semantics* of such a construct?
>>>>
>>>> There are at least 3 different views on such a construct: putting a PROPERTY
>>>> line inside a subtree...
>>>>
>>>> - ... resets some values from that point up to the end of the subtree
>>>> - ... resets some values from that point up to the end of the buffer
>>>> - ... defines some values which can have already been by the subtree
>>>>
>>>
>>> I agree this is murky and whatever behavior we want should be clearly
>>> thought out and documented in the manual. I would argue that you missed
>>> another possible semantics, the simple semantics which are currently
>>> implemented in which a property line *anywhere* in a buffer sets a
>>> global property.
>>>
>>> Cheers,
>>>
>>>>
>>>> Best regards,
>>>> Seb
>>>>
>>>>>> The following example shows that either:
>>>>>>
>>>>>> - I'm wrong to think so,
>>>>>> - there is a bug.
>>>>>>
>>>>>> What is the right assumption here?
>>>>>>
>>>>>> * Subtree
>>>>>>
>>>>>> Being located in a subtree, the following lines are ill-placed IMHO:
>>>>>>
>>>>>> #+PROPERTY: var foo="Hello
>>>>>> #+PROPERTY: var+ world"
>>>>>>
>>>>>> Though, they're well taken into account:
>>>>>>
>>>>>> #+begin_src emacs-lisp
>>>>>> foo
>>>>>> #+end_src
>>>>>>
>>>>>> #+results:
>>>>>> : Hello world
>>>>>>
>>>>>> These lines have even wiped the definition of =bar= (because of the use of =var=
>>>>>> without any =+=):
>>>>>>
>>>>>> #+begin_src emacs-lisp
>>>>>> (+ foo bar)
>>>>>> #+end_src
>>>>>>
>>>>>> returns the error "Symbol's value as variable is void: bar."
>
>
--
Eric Schulte
http://cs.unm.edu/~eschulte/
next prev parent reply other threads:[~2012-01-06 18:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-29 8:58 About the use of PROPERTY "meta lines" Sebastien Vauban
2012-01-02 17:39 ` Eric Schulte
2012-01-03 7:42 ` Sebastien Vauban
2012-01-06 7:28 ` Eric Schulte
2012-01-06 7:57 ` Torsten Wagner
2012-01-06 17:13 ` cberry
2012-01-06 18:22 ` Eric Schulte [this message]
2012-01-06 18:07 ` Eric Schulte
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=87ty48y9kf.fsf@gmx.com \
--to=eric.schulte@gmx.com \
--cc=cberry@tajo.ucsd.edu \
--cc=emacs-orgmode@gnu.org \
/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.