[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [BUG] src_blocks - :results raw and replace don't work together
From: |
Andreas Leha |
Subject: |
Re: [O] [BUG] src_blocks - :results raw and replace don't work together |
Date: |
Mon, 07 Jul 2014 12:16:41 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (darwin) |
Hi Thorsten,
Thorsten Jolitz <address@hidden> writes:
> Thorsten Jolitz <address@hidden> writes:
>
>> Andreas Leha <address@hidden> writes:
>>
>>> Hi Thorsten,
>>>
>>> Thorsten Jolitz <address@hidden> writes:
>>>
>>>> Hi List,
>>>>
>>>> evaluating this 3 times does not work as expected:
>>>>
>>>> ,----
>>>> | * A
>>>> |
>>>> | #+header: :results raw replace
>>>> | #+begin_src emacs-lisp
>>>> | (+ 2 2)
>>>> | #+end_src
>>>> |
>>>> | #+results:
>>>> | 4
>>>> | 4
>>>> | 4
>>>> `----
>>>>
>>>> Independent from argument order, 'replace' (which should be default
>>>> anyway) is ignored.
>>>
>>>
>>> Try adding the :wrap, which works for me:
>>>
>>> ,----
>>> | * A
>>> |
>>> | #+header: :results raw replace :wrap
>>> | #+begin_src emacs-lisp
>>> | (+ 2 2)
>>> | #+end_src
>>> |
>>> | #+results:
>>> | #+BEGIN_RESULTS
>>> | 4
>>> | #+END_RESULTS
>>> `----
>>
>> This actually works here too, thanks. But is this wrapping results block
>> 'neutral', i.e. is its content treated just like raw Org syntax in all
>> situations? E.g. when I create a dblock from elisp, would
>>
>> #+results:
>> #+BEGIN_RESULTS
>> #+begin my-dblock
>> (foo)
>> #+end
>> #+END_RESULTS
>>
>> be equivalent to
>>
>> #+results:
>> #+begin my-dblock
>> (foo)
>> #+end
>>
>> in all cases?
>>
>> However, the combo ':results raw replace' seems like the natural fit
>> when programmatically creating content in an Org file with a src_block
>> that might eventually be evaluated more than once. That it does not work
>> 'as-is' seems too much of a surprise to not call it a bug (at least when
>> the manual does not mention it as special case).
>
> My use-case is actually this, and it won't work with wrapped results:
>
> ,----
> | ** Utility Function :ARCHIVE:
> |
> | #+name: create-subtree-with-dblock
> | #+header: :var name="foo"
> | #+header: :var prms=":bar loo"
> | #+header: :results replace raw
> | #+begin_src emacs-lisp
> | (format
> | (concat "\n\n** Overview :READONLY:\n\n"
> | "#+begin: %s %s\n\n#+end:\n")
> | name prms)
> | #+end_src
> |
> | #+results: dblock
> |
> |
> | ** Overview :READONLY:
> |
> | #+begin: foo :bar loo
> |
> | #+end:
> `----
I am not in the position to answer this. But the combo "raw replace" is
problematic, I think, in that it is hard to say how much there is to be
replaced. So I think some delimiters (as produced by :wrap) are
necesarry in the general case.
If I understand correctly, you want to nest blocks: A source block
nested in a results block. I think, that is not possible. So, for that
use case, I guess, another construct (other than results block) would be
necessary.
But other people might have the proper answer here...
Regards,
Andreas
Re: [O] [BUG] src_blocks - :results raw and replace don't work together, Nick Dokos, 2014/07/07
Re: [O] [BUG] src_blocks - :results raw and replace don't work together, Thorsten Jolitz, 2014/07/07