Hi all,

there seems to be a bug in call lines:

Suppose, I have a src block with two parameters:

#+name: insert_hline
#+header: :var fulltable=mytable() :var after_row=1
#+begin_src emacs-lisp
  (let ((rrr (cons (quote hline) fulltable))
        (bottomrows (nthcdr after_row fulltable))
        (toprows (reverse (nthcdr (- (length fulltable) after_row) (reverse 
fulltable)))))
    (setcdr rrr bottomrows)
    (setcdr (nthcdr (- after_row 1) fulltable) rrr)
    fulltable)
 #+end_src

As first argument I would like to pass the results of a second
source block:
#+name: mytable
#+begin_src R
  data.frame(par=1:3, val=1:3)
#+end_src

#+results: mytable
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |

So, what I do is:

#+call: insert_hline(fulltable=mytable(),after_row=1) :hlines yes :colnames no

#+results: insert_hline(fulltable=mytable()
| 1 | 1 |
|---+---|
| 2 | 2 |
| 3 | 3 |

But the #+results: name is shortened.

So, the following won't produce another results block, but wrongly update
the block above:
#+call: insert_hline(fulltable=mytable(),after_row=2) :hlines yes :colnames no


The problem seems to be the ")" within the parameter list stopping
some parsing.

Note: This works as expected
#+call: insert_hline[:var fulltable=mytable() :var after_row=1]() :hlines yes 
:colnames no

#+results: insert_hline[:var fulltable=mytable() :var after_row=1]()
| 1 | 1 |
|---+---|
| 2 | 2 |
| 3 | 3 |

#+call: insert_hline[:var fulltable=mytable() :var after_row=2]() :hlines yes 
:colnames no

#+results: insert_hline[:var fulltable=mytable() :var after_row=2]()
| 1 | 1 |
| 2 | 2 |
|---+---|
| 3 | 3 |


Regards,
Andreas


Reply via email to