Re: [O] Setting multiple variables for code blocks in one property drawer
Hi Eric, Eric Schulte wrote: However try replacing :var: foo=a with :var+: foo=a which is valid and should work for your use case below. I'm not sure if I understood you correctly, but even if I replace var with var+ in the child's property drawer, the value of bar that is set in the parent task is not available in the child task. Cheers, Viktor There are still some lingering issues with inheritance and Org-mode properties which I may try to address one of these days. Cheers, Cheers, Viktor * Parent task :PROPERTIES: :var: foo=1 :var+: bar=2 :END: ** Child task without own properties #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | 1 | | bar: | 2 | ** Child task with own properties :PROPERTIES: :var: foo=a :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | a | | bar: | | -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Setting multiple variables for code blocks in one property drawer
Hi, Viktor Rosenfeld listuse...@googlemail.com writes: Hi Eric, Eric Schulte wrote: Viktor Rosenfeld listuse...@googlemail.com writes: Hi Eric, thanks for your input. I just pulled the latest code from git and while my original example works, the following does not: :PROPERTIES: :var: foo=1 :var+: bar=2 :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC Thanks for reporting, I've just pushed up a fix for this bug. Thanks for your fix. The above example now works for me. However, I've noticed a problem with inheriting var properties. They are inherited in a child task only if the child task itself has no var property. Is this the intended behavior? See the example below. Yes, The example below is the intended behavior. The property mechanism is not tailored to variable setting, but is rather a general mechanism for the concatenation of property strings. Any property specification unless it is postfixed with a + will /reset/ the value of that property to its current value. However try replacing :var: foo=a with :var+: foo=a which is valid and should work for your use case below. There are still some lingering issues with inheritance and Org-mode properties which I may try to address one of these days. Cheers, Cheers, Viktor * Parent task :PROPERTIES: :var: foo=1 :var+: bar=2 :END: ** Child task without own properties #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | 1 | | bar: | 2 | ** Child task with own properties :PROPERTIES: :var: foo=a :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | a | | bar: | | -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Setting multiple variables for code blocks in one property drawer
Hi Eric, Eric Schulte wrote: Viktor Rosenfeld listuse...@googlemail.com writes: Hi Eric, thanks for your input. I just pulled the latest code from git and while my original example works, the following does not: :PROPERTIES: :var: foo=1 :var+: bar=2 :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC Thanks for reporting, I've just pushed up a fix for this bug. Thanks for your fix. The above example now works for me. However, I've noticed a problem with inheriting var properties. They are inherited in a child task only if the child task itself has no var property. Is this the intended behavior? See the example below. Cheers, Viktor * Parent task :PROPERTIES: :var: foo=1 :var+: bar=2 :END: ** Child task without own properties #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | 1 | | bar: | 2 | ** Child task with own properties :PROPERTIES: :var: foo=a :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar #+END_SRC #+RESULTS: | foo: | a | | bar: | |
Re: [O] Setting multiple variables for code blocks in one property drawer
Viktor Rosenfeld listuse...@googlemail.com writes: Hi Eric, thanks for your input. I just pulled the latest code from git and while my original example works, the following does not: :PROPERTIES: :var: foo=1 :var+: bar=2 :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC Thanks for reporting, I've just pushed up a fix for this bug. There also appears to be a difference between quoted and unquoted values and commatas. E.g. the following works :PROPERTIES: :var: foo=1 :var+: bar=2, baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC If I remove the quotes around 2 I get the following error: ad-Orig-error: reference '2,' not found in this buffer On the other hand, the following version does not produce an error, but the value of $baz is not set. :PROPERTIES: :var: foo=1 :var+: bar=2, :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC Yes, the comma results in the 2 not being parsed as a number, which means that it will then try to be understood by Babel (which thinks first of a reference unless the value is wrapped in quotes indicating it is a string). The moral is to not give references purely numerical names. Best, Cheers, Viktor Eric Schulte wrote: Viktor Rosenfeld listuse...@googlemail.com writes: Hi, after following the discussion about the new BABEL syntax I was under the impression that the following should work to set two variables in one PROPERTIES drawer: :PROPERTIES: :var: foo=1 :var+: bar=2 :END: However, the definition of bar is ignored. It turns out that there can only be one :var: or :var+: entry in a drawer and the latter can only be used to append to inherited entries, but not to those defined in the same drawer. Is this the intended behavior? How would I define multiple variables in a drawer (except for putting them all on one line)? Thanks, Viktor You are correct, I believe this is a bug. I've just pushed up a fix, so your example above should now work as expected. Thanks, -- Eric Schulte http://cs.unm.edu/~eschulte/ -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Setting multiple variables for code blocks in one property drawer
Viktor Rosenfeld listuse...@googlemail.com writes: Hi, after following the discussion about the new BABEL syntax I was under the impression that the following should work to set two variables in one PROPERTIES drawer: :PROPERTIES: :var: foo=1 :var+: bar=2 :END: However, the definition of bar is ignored. It turns out that there can only be one :var: or :var+: entry in a drawer and the latter can only be used to append to inherited entries, but not to those defined in the same drawer. Is this the intended behavior? How would I define multiple variables in a drawer (except for putting them all on one line)? Thanks, Viktor You are correct, I believe this is a bug. I've just pushed up a fix, so your example above should now work as expected. Thanks, -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Setting multiple variables for code blocks in one property drawer
Hi Eric, thanks for your input. I just pulled the latest code from git and while my original example works, the following does not: :PROPERTIES: :var: foo=1 :var+: bar=2 :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC If I evaluate the source block I get the following error in the messages buffer: =: Args out of range: , 0 The following works: :PROPERTIES: :var: foo=1 :var+: bar=2 baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC There also appears to be a difference between quoted and unquoted values and commatas. E.g. the following works :PROPERTIES: :var: foo=1 :var+: bar=2, baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC If I remove the quotes around 2 I get the following error: ad-Orig-error: reference '2,' not found in this buffer On the other hand, the following version does not produce an error, but the value of $baz is not set. :PROPERTIES: :var: foo=1 :var+: bar=2, :var+: baz=3 :END: #+BEGIN_SRC sh echo foo: $foo echo bar: $bar echo baz: $baz #+END_SRC Cheers, Viktor Eric Schulte wrote: Viktor Rosenfeld listuse...@googlemail.com writes: Hi, after following the discussion about the new BABEL syntax I was under the impression that the following should work to set two variables in one PROPERTIES drawer: :PROPERTIES: :var: foo=1 :var+: bar=2 :END: However, the definition of bar is ignored. It turns out that there can only be one :var: or :var+: entry in a drawer and the latter can only be used to append to inherited entries, but not to those defined in the same drawer. Is this the intended behavior? How would I define multiple variables in a drawer (except for putting them all on one line)? Thanks, Viktor You are correct, I believe this is a bug. I've just pushed up a fix, so your example above should now work as expected. Thanks, -- Eric Schulte http://cs.unm.edu/~eschulte/