emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: cberry@tajo.ucsd.edu
To: emacs-orgmode@gnu.org
Subject: Re: About the use of PROPERTY "meta lines"...
Date: Fri, 06 Jan 2012 09:13:38 -0800	[thread overview]
Message-ID: <874nw892kd.fsf@tajo.ucsd.edu> (raw)
In-Reply-To: 4F06A958.2080508@gmail.com

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.

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?

(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."

  reply	other threads:[~2012-01-06 17:13 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 [this message]
2012-01-06 18:22           ` Eric Schulte
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

  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=874nw892kd.fsf@tajo.ucsd.edu \
    --to=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 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).