Hi Andreas, I think the behaviour you have discovered is governed by the constant org-babel-block-lob-one-liner-regexp; However, tweaking this regular expression the right way seems to be really hard (impossible):
http://stackoverflow.com/questions/546433/regular-expression-to-match-outer-brackets ,so the only option seems to be to write a function to do the matching correctly, but which is probably a big task ... So as I understand things, I would recommend to stick with the current behaviour and use your workaround :-) with kind regards, Marc Am 22.03.2012 09:42, schrieb Andreas Leha:
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