emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Problem with noweb-ref property


From: Eric Schulte
Subject: Re: [O] Problem with noweb-ref property
Date: Thu, 29 Dec 2011 12:51:44 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

Tomas Grigera <address@hidden> 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 <<foo>> 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
> <<fullest-disk>>
> #+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/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]