Re: [O] [babel] #+call-line removes hlines and headings ?
Hi Eric, thanx ! That explains very clearly what I have seen, when trying to debug this phaenomenon. So this behaviour is by design and I can work around :-) kind regards, Marc Am 30.01.2012 17:10, schrieb Eric Schulte: Marc-Oliver Ihmmarc-oliver@online.de writes: Am 29.01.2012 11:42, schrieb Andreas Leha: :colnames yes Hi Andreas, Thanx, that is definitely a solution ! And I agree with you, that its a bit puzzling, that both cases behave differently; the #+call-line should just have the same result as the #+begin_src-line, to which after all it just refers. Beeing able to change the behaviour of the #+call-line with header arguments is of course a good thing, but it should not be necessary here in the first place. However, this would require a patch to the babel-code, which I am currently not able to produce, because I already got lost in debugging this problem :-) And of course I am not sure what would be the side effects of changing this behaviour ... So, thanx again for pointing out this very easy workaround ! with kind regards, Marc-Oliver Ihm To explain the cause (if not rationale) for the current behavior; when executing a call line, an ephemeral code block is created at the point of the call line. The result of the called function is passed into this ephemeral block, and the output of the block is inserted into the buffer. This is why call lines have *two* possible sets of header arguments, one to pass to the original called code block, and one for local effect in the ephemeral block. The reason the colnames header argument is required for the call line and not the code block, is because hlines are only stripped when data passes *into* a code block as a variable. In this case the 'hlines are stripped when the table passes into the ephemeral code blocks. Hope the above is more illuminating that confusing,
Re: [O] [babel] #+call-line removes hlines and headings ?
Marc-Oliver Ihm marc-oliver@online.de writes: Am 29.01.2012 11:42, schrieb Andreas Leha: :colnames yes Hi Andreas, Thanx, that is definitely a solution ! And I agree with you, that its a bit puzzling, that both cases behave differently; the #+call-line should just have the same result as the #+begin_src-line, to which after all it just refers. Beeing able to change the behaviour of the #+call-line with header arguments is of course a good thing, but it should not be necessary here in the first place. However, this would require a patch to the babel-code, which I am currently not able to produce, because I already got lost in debugging this problem :-) And of course I am not sure what would be the side effects of changing this behaviour ... So, thanx again for pointing out this very easy workaround ! with kind regards, Marc-Oliver Ihm To explain the cause (if not rationale) for the current behavior; when executing a call line, an ephemeral code block is created at the point of the call line. The result of the called function is passed into this ephemeral block, and the output of the block is inserted into the buffer. This is why call lines have *two* possible sets of header arguments, one to pass to the original called code block, and one for local effect in the ephemeral block. The reason the colnames header argument is required for the call line and not the code block, is because hlines are only stripped when data passes *into* a code block as a variable. In this case the 'hlines are stripped when the table passes into the ephemeral code blocks. Hope the above is more illuminating that confusing, -- Eric Schulte http://cs.unm.edu/~eschulte/
[O] [babel] #+call-line removes hlines and headings ?
Hello ! Generally enjoying babel very much, I have stumbled across a behaviour, that I do not quite understand: As it seems, a #+call in babel removes hlines from the results. Here is an example: #+call: foo() | 3 | 4 | #+name: foo #+begin_src emacs-lisp '((1 2) hline (3 4)) #+end_src #+results: foo | 1 | 2 | |---+---| | 3 | 4 | The #+begin_src-line does what I would expect; however, when it is called through a #+call-line the hline and the heading are removed. Is this the intended behaviour, a bug or am I missing something obvious ? Thanx a lot for any help ! with kind regards, Marc-Oliver Ihm
Re: [O] [babel] #+call-line removes hlines and headings ?
Marc-Oliver Ihm marc-oliver@online.de writes: Hello ! Generally enjoying babel very much, I have stumbled across a behaviour, that I do not quite understand: As it seems, a #+call in babel removes hlines from the results. Here is an example: #+call: foo() | 3 | 4 | #+name: foo #+begin_src emacs-lisp '((1 2) hline (3 4)) #+end_src #+results: foo | 1 | 2 | |---+---| | 3 | 4 | The #+begin_src-line does what I would expect; however, when it is called through a #+call-line the hline and the heading are removed. Is this the intended behaviour, a bug or am I missing something obvious ? Thanx a lot for any help ! with kind regards, Marc-Oliver Ihm Hi Marc-Oliver, it works with #+call: foo() :colnames yes The more surprising part for me is, that it works on the block itself without. Best, Andreas
Re: [O] [babel] #+call-line removes hlines and headings ?
Am 29.01.2012 11:42, schrieb Andreas Leha: :colnames yes Hi Andreas, Thanx, that is definitely a solution ! And I agree with you, that its a bit puzzling, that both cases behave differently; the #+call-line should just have the same result as the #+begin_src-line, to which after all it just refers. Beeing able to change the behaviour of the #+call-line with header arguments is of course a good thing, but it should not be necessary here in the first place. However, this would require a patch to the babel-code, which I am currently not able to produce, because I already got lost in debugging this problem :-) And of course I am not sure what would be the side effects of changing this behaviour ... So, thanx again for pointing out this very easy workaround ! with kind regards, Marc-Oliver Ihm