I’m experimenting with tangling files in org-mode, and have found that certain 
files cause org-babel-tangle to die with an error (Org-mode version 8.3beta 
(release_8.3beta-884-g9ed426). Here’s a small example:

————————————

* Sample code

#+BEGIN_SRC makefile :tangle makefile-main
circle:
        @gfortran -c circle.f90

main: circle
        @gfortran -c main.f90
        @gfortran circle.o main.o -o main

clean:
        @rm -f *.o main
#+END_SRC

Run this block to tangle out the new files.

#+BEGIN_SRC emacs-lisp
(org-babel-tangle)
#+END_SRC

#+RESULTS:
| makefile-main |

In this block I use this header:
#+BEGIN_EXAMPLE
#+BEGIN_SRC sh :results raw 
#+END_EXAMPLE

#+BEGIN_SRC sh :results raw replace
make -f makefile-main clean main
./main
#+END_SRC

————————————  

When I run org-babel-tangle on this file (or press C-c C-c in the emacs-lisp 
block), I get the following error:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  string-match("-l \"\\(.+\\)\"" nil)
  org-babel-tangle-single-block(5)
  org-babel-tangle-collect-blocks(nil nil)
  org-babel-tangle()
  (progn (org-babel-tangle))
  eval((progn (org-babel-tangle)))
  org-babel-execute:emacs-lisp("(org-babel-tangle)" ((:comments . "") (:shebang 
. "") (:cache . "no") (:padline . "") (:noweb . "no") (:tangle . "no") 
(:exports . "code") (:results . "replace") (:session . "none") (:hlines . "no") 
(:result-type . value) (:result-params "replace") (:rowname-names) 
(:colname-names)))
  org-babel-execute-src-block(nil)
  org-babel-execute-src-block-maybe()
  org-babel-execute-maybe()
  org-babel-execute-safely-maybe()
  run-hook-with-args-until-success(org-babel-execute-safely-maybe)
  org-ctrl-c-ctrl-c(nil)
  call-interactively(org-ctrl-c-ctrl-c nil nil)
  command-execute(org-ctrl-c-ctrl-c)


Any ideas what’s going on? If I delete either of the two blocks at the bottom 
of the file (the EXAMPLE block or the final SRC block), it works fine.

Thanks.

Richard Stanton



Reply via email to