From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Problem with noweb-ref property Date: Thu, 29 Dec 2011 12:51:44 -0700 Message-ID: <87wr9frwa7.fsf@gmx.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:34289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgM1A-0006YJ-U8 for emacs-orgmode@gnu.org; Thu, 29 Dec 2011 14:52:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RgM19-0005Iw-FO for emacs-orgmode@gnu.org; Thu, 29 Dec 2011 14:52:00 -0500 Received: from mailout-us.gmx.com ([74.208.5.67]:46085) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1RgM19-0005Is-AC for emacs-orgmode@gnu.org; Thu, 29 Dec 2011 14:51:59 -0500 In-Reply-To: (Tomas Grigera's message of "Thu, 29 Dec 2011 16:13:40 -0300") 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: Tomas Grigera Cc: emacs-orgmode@gnu.org Tomas Grigera writes: > Hi list, > > This is my first post, so just let me say first that I have been using > org-mode for 10 months or so and I love it. It's an exceptional > package, and before I ask my question I would just like to thank > Carsten, Bastien, and the community for the great work and for > sharing. > > Now my question: I am trying to extract code from a .org file by > tangling with noweb-style references. As I understand from the manual, > if I write <> in a code block, the line will be expanded with the > code block named foo. This name I can set with #+NAME: or with the > :noweb-ref header argument. Both ways work for me, except that I > cannont set the :noweb-ref argument through a property. > > The following example is almost verbatim from the manual: > > #+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh > <> > #+END_SRC > > * the mount point of the fullest disk > > ** query all mounted disks > > #+HEADER: :noweb-ref fullest-disk > #+BEGIN_SRC sh > df \ > #+END_SRC > > > ** strip the header row > :PROPERTIES: > :noweb-ref: fullest-disk > :END: > #+BEGIN_SRC sh :noweb yes > |sed '1d' \ > #+END_SRC > > > If I understand correctly, tangling should produce a file which is a > concatenation of the two code blocks. However, when I do > org-babel-tangle, only the first block is inserted. Am I doing > something wrong? > > I'm with emacs 23.2.1 and org-mode 7.8.02 > > Thanks in advance, > > Tomas > Hi Tomas, You are correct the behavior described above is a bug introduced by a fairly recent commit of mine which switched to using regular expressions when resolving noweb references in an attempt to decrease the time required to tangle code blocks (which can be significant in large code blocks). However correct performance is more important than fast performance. I've just pushed up a patch which fixes the bug you've described, and hopefully doesn't slow down the tangling process too significantly. Cheers, -- Eric Schulte http://cs.unm.edu/~eschulte/