Leo Alekseyev <dnqu...@gmail.com> writes: > On Mon, Mar 5, 2012 at 10:24 AM, Eric Schulte <eric.schu...@gmx.com> wrote: >> Andreas Leha <andreas.l...@med.uni-goettingen.de> writes: >> >>> Eric Schulte <eric.schu...@gmx.com> writes: >>> >>>> Leo Alekseyev <dnqu...@gmail.com> writes: >>>> >>>>> I was wondering if there was an easy way to execute some shell >>>>> commands contained in a src block as root. Alternatively, is there a >>>>> quick way to export _just_ that one source block to a temp file so >>>>> that I could run it as root manually? >>>>> >>>> >>>> Just call org-babel-tangle with a prefix argument and it only tangles >>>> the current block > > Hi all, > > I just pulled a fresh version of org, and this tangling an individual > block only works if there's a :tangle header argument present. I > don't think this is the intended behavior! The problem, it seems, is > that when :tangle is not present, the (or ...) in the code below > always evaluates to true. > > #+begin_src emacs-lisp > (unless (or (cdr (assoc :tangle (nth 2 (org-babel-get-src-block-info)))) > target-file) > (setq target-file > (read-from-minibuffer "Tangle to: " (buffer-file-name))))) > #+end_src
Thanks for raising this issue. I can not apply patches to the git repository until the recent git issues are sorted, so I am attaching the patch to this email so that you can apply it locally if you like. I will push this up once our git repository is back in working order. Best,
>From bfacabb33acb4d2dbcfd87b10e3488e43cf5d84a Mon Sep 17 00:00:00 2001 From: Eric Schulte <eric.schu...@gmx.com> Date: Mon, 19 Mar 2012 10:44:43 -0400 Subject: [PATCH 2/2] Bring back prompt for single-block tangling. * lisp/ob-tangle.el (org-babel-tangle): Bring back prompt for single-block tangling. --- lisp/ob-tangle.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index 5e498ab..b57d89d 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -186,7 +186,10 @@ exported source code blocks by language." (unless (org-babel-where-is-src-block-head) (error "Point is not currently inside of a code block")) (save-match-data - (unless (or (cdr (assoc :tangle (nth 2 (org-babel-get-src-block-info)))) + (unless (or (not (string= + (cdr (assoc :tangle + (nth 2 (org-babel-get-src-block-info)))) + "no")) target-file) (setq target-file (read-from-minibuffer "Tangle to: " (buffer-file-name))))) -- 1.7.9.4
-- Eric Schulte http://cs.unm.edu/~eschulte/