Re: [O] [babel] #+call-line removes hlines and headings ?

2012-01-31 Thread Marc-Oliver Ihm

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 ?

2012-01-30 Thread Eric Schulte
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 ?

2012-01-29 Thread Marc-Oliver Ihm

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 ?

2012-01-29 Thread Andreas Leha
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 ?

2012-01-29 Thread Marc-Oliver Ihm

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