From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: [PATCH] org-babel-confirm-evaluate when org-confirm-babel-evaluate is a function Date: Tue, 21 Dec 2010 09:38:24 -0700 Message-ID: <87lj3j84jj.fsf@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from [140.186.70.92] (port=39351 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PV5ER-0003zY-LU for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 11:38:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PV5EO-0008HZ-4o for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 11:38:35 -0500 Received: from mail-gy0-f169.google.com ([209.85.160.169]:42418) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PV5EO-0008HV-2N for emacs-orgmode@gnu.org; Tue, 21 Dec 2010 11:38:32 -0500 Received: by gyg10 with SMTP id 10so1999148gyg.0 for ; Tue, 21 Dec 2010 08:38:31 -0800 (PST) In-Reply-To: (Vladimir Alexiev's message of "Mon, 20 Dec 2010 19:33:31 +0000 (UTC)") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Vladimir Alexiev Cc: emacs-orgmode@gnu.org Hi Vladimir, Thanks very much for this patch, it is great to receive patches that update the documentation as well as the code. I've just applied a slightly modified version of your patch. Thanks -- Eric Vladimir Alexiev writes: > I tried following http://orgmode.org/worg/org-contribute.php to the letter. > But this is my first patch (and first time using git & magit), so please kindly > give me feedback if something is not right. > > * doc/org.texi: org-confirm-babel-evaluate: add example for using a > function > * lisp/ob.el (org-babel-confirm-evaluate): Fix for the case when > org-confirm-babel-evaluate is a function (used to always ask no matter > what the function returns) > > --- a/doc/org.texi > +++ b/doc/org.texi > @@ -12662,9 +12662,19 @@ Make sure you know what you are doing before > customizing the variables > which take off the default security brakes. > > @defopt org-confirm-babel-evaluate > -When set to t user is queried before code block evaluation > +When t (the default), the user is asked before every code block evaluation. > +When nil, the user is not asked. > +When set to a function, it is called with two arguments (language and body of > the code > +block) and should return t to ask and nil not to ask. > @end defopt > > +For example, here is how to execute "ditaa" code (which is considered safe) > without asking: > +@example > +(defun my-org-confirm-babel-evaluate (lang body) > + (not (string= lang "ditaa"))) ; don't ask for ditaa > +(setq org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate) > +@end example > + > > --- a/lisp/ob.el > +++ b/lisp/ob.el > @@ -209,11 +209,11 @@ Note disabling confirmation may result in accidental > evaluation > of potentially harmful code." > (let* ((eval (or (cdr (assoc :eval (nth 2 info))) > (when (assoc :noeval (nth 2 info)) "no"))) > - (query (or (equal eval "query") > - (if (functionp org-confirm-babel-evaluate) > - (funcall org-confirm-babel-evaluate > - (nth 0 info) (nth 1 info)) > - org-confirm-babel-evaluate)))) > + (query (cond ((equal eval "query")) > + ((functionp org-confirm-babel-evaluate) > + (funcall org-confirm-babel-evaluate > + (nth 0 info) (nth 1 info))) > + ((org-confirm-babel-evaluate))))) > (if (or (equal eval "never") (equal eval "no") > (and query > (not (yes-or-no-p > > TINYCHANGE > > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode