[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [PATCH 03/10] Clean up various org-babel-*-maybe commands
From: |
Aaron Ecay |
Subject: |
Re: [O] [PATCH 03/10] Clean up various org-babel-*-maybe commands |
Date: |
Thu, 18 Apr 2013 03:03:52 -0400 |
User-agent: |
Notmuch/0.15.2+43~ge848af8 (http://notmuchmail.org) Emacs/24.3.50.1 (x86_64-unknown-linux-gnu) |
Hi Bastien,
Thanks for your comments.
2013ko apirilak 3an, Bastien-ek idatzi zuen:
[...]
>> org-babel-get-src-block-info is a potentially expensive operation, which
>> is why its ‘light’ argument exists. But in any case, it is overkill to
>> query the whole info, if all that is needed is whether point is in a
>> block or not. Factor the simplified common code out into a macro.
>
> The let-bound info variable is not only used to check if we are within
> a src block, it is also passed as an argument to functions, see the ^^
> marks below.
All of these functions will re-calculate the info if it is not
passed, using org-babel-get-src-block-info. So not passing it does no
harm.
>
>> ---
>> lisp/ob-core.el | 31 +++++++++++++++++--------------
>> 1 file changed, 17 insertions(+), 14 deletions(-)
>>
>> diff --git a/lisp/ob-core.el b/lisp/ob-core.el
>> index 723aa9d..283628e 100644
>> --- a/lisp/ob-core.el
>> +++ b/lisp/ob-core.el
>> @@ -365,15 +365,22 @@ of potentially harmful code."
>> (or (org-babel-execute-src-block-maybe)
>> (org-babel-lob-execute-maybe)))
>>
>> +(defmacro org-babel-when-in-src-block (&rest body)
>> + `(if (or (org-babel-where-is-src-block-head)
>> + (org-babel-get-inline-src-block-matches))
>> + (progn
>> + ,@body
>> + t)
>> + nil))
>
> (Please always add a docstring of defuns and defmacros)
I’ll resend the patch with a docstring and fixing the commit message
problems you and Achim pointed out.
[...]
>> @@ -433,8 +436,8 @@ then run `org-babel-load-in-session'."
>> Detect if this is context for a org-babel src-block and if so
>> then run `org-babel-pop-to-session'."
>> (interactive)
>> - (let ((info (org-babel-get-src-block-info)))
>> - (if info (progn (org-babel-pop-to-session current-prefix-arg info) t)
>> nil)))
> ^^^^
>> + (org-babel-when-in-src-block
>> + (org-babel-pop-to-session current-prefix-arg)))
>
> (Let's use the current name `org-babel-switch-to-session' instead of
> the obsolete alias.)
OK.
>
> Maybe we don't always need to pass the info as an argument, but at
> least for this last example it is needed.
o-b-switch-to-session does nothing with the info argument but pass it
along to o-b-initiate-session, which will recalculate it if it is
missing. So it takes 2 hops in contrast to the 1 in the other cases,
but it still gets recalculated.
--
Aaron Ecay
- [O] [PATCH 01/10] Fix org-babel-R-initiate-session, (continued)
[O] [PATCH 03/10] Clean up various org-babel-*-maybe commands, Aaron Ecay, 2013/04/01
[O] [PATCH 02/10] Clean up org-babel-expand-body: functions for awk and picolisp, Aaron Ecay, 2013/04/01
[O] [PATCH 07/10] Simplify org-babel-execute-src-block, Aaron Ecay, 2013/04/01