From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marc-Oliver Ihm Subject: Re: [babel] BUG in call lines Date: Thu, 22 Mar 2012 21:04:19 +0100 Message-ID: References: <87wr6dowlw.fsf@med.uni-goettingen.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([208.118.235.92]:45812) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAoFI-0004DW-3B for emacs-orgmode@gnu.org; Thu, 22 Mar 2012 16:04:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAoFF-0006XR-Oq for emacs-orgmode@gnu.org; Thu, 22 Mar 2012 16:04:27 -0400 Received: from plane.gmane.org ([80.91.229.3]:59999) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAoFF-0006XF-HY for emacs-orgmode@gnu.org; Thu, 22 Mar 2012 16:04:25 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1SAoFB-0006ON-Mp for emacs-orgmode@gnu.org; Thu, 22 Mar 2012 21:04:21 +0100 Received: from p54a88659.dip0.t-ipconnect.de ([84.168.134.89]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 22 Mar 2012 21:04:21 +0100 Received: from marc-oliver.ihm by p54a88659.dip0.t-ipconnect.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 22 Mar 2012 21:04:21 +0100 In-Reply-To: <87wr6dowlw.fsf@med.uni-goettingen.de> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org 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 > > >