summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2010-10-16 09:28:05 -0600
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:06:00 +0100
commit71d50277b500350e02361563565b4a2ef98f7082 (patch)
treea2b508a9ab76b519c28e1f49ecdce12b51b6de02
parent1412447d61dc637188d4e638258934930f038125 (diff)
downloadorg-mode-71d50277b500350e02361563565b4a2ef98f7082.tar.gz
ob: only sort parameters if it's required for caching
* lisp/ob.el (org-babel-execute-src-block): only sort parameters if it's required for caching
-rw-r--r--lisp/ob.el22
1 files changed, 12 insertions, 10 deletions
diff --git a/lisp/ob.el b/lisp/ob.el
index c8bdf1e..da5fd73 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -357,16 +357,18 @@ block."
(let ((info (or info (org-babel-get-src-block-info))))
(when (org-babel-confirm-evaluate info)
(let* ((lang (nth 0 info))
- (params (setf
- (nth 2 info)
- (sort (org-babel-merge-params (nth 2 info) params)
- (lambda (el1 el2) (string< (symbol-name (car el1))
- (symbol-name (car el2)))))))
- (new-hash
- (if (and (cdr (assoc :cache params))
- (string= "yes" (cdr (assoc :cache params))))
- (org-babel-sha1-hash info)))
- (old-hash (org-babel-result-hash info))
+ (params (org-babel-merge-params (nth 2 info) params))
+ (cache? (and (cdr (assoc :cache params))
+ (string= "yes" (cdr (assoc :cache params)))))
+ (params (setf (nth 2 info)
+ (if cache?
+ (sort params
+ (lambda (el1 el2)
+ (string< (symbol-name (car el1))
+ (symbol-name (car el2)))))
+ params)))
+ (new-hash (when cache? (org-babel-sha1-hash info)))
+ (old-hash (when cache? (org-babel-result-hash info)))
(body (setf (nth 1 info)
(if (and (cdr (assoc :noweb params))
(string= "yes" (cdr (assoc :noweb params))))