Browse Source

don't over-evaluate result-params in macro

* lisp/ob-core.el (org-babel-result-cond): Don't over-evaluate
  result-params in macro.
Eric Schulte 12 years ago
parent
commit
385ef25c6e
1 changed files with 15 additions and 13 deletions
  1. 15 13
      lisp/ob-core.el

+ 15 - 13
lisp/ob-core.el

@@ -2631,19 +2631,21 @@ Emacs shutdown."))
   "Call the code to parse raw string results according to RESULT-PARAMS."
   (declare (indent 1)
 	   (debug (form form &rest form)))
-  `(unless (member "none" ,result-params)
-     (if (or (member "scalar" ,result-params)
-	     (member "verbatim" ,result-params)
-	     (member "html" ,result-params)
-	     (member "code" ,result-params)
-	     (member "pp" ,result-params)
-	     (and (or (member "output" ,result-params)
-		      (member "raw"    ,result-params)
-		      (member "org"    ,result-params)
-		      (member "drawer" ,result-params))
-		  (not (member "table" ,result-params))))
-	 ,scalar-form
-       ,@table-forms)))
+  (org-with-gensyms (params)
+    `(let ((,params ,result-params))
+       (unless (member "none" ,params)
+	 (if (or (member "scalar" ,params)
+		 (member "verbatim" ,params)
+		 (member "html" ,params)
+		 (member "code" ,params)
+		 (member "pp" ,params)
+		 (and (or (member "output" ,params)
+			  (member "raw"    ,params)
+			  (member "org"    ,params)
+			  (member "drawer" ,params))
+		      (not (member "table" ,params))))
+	     ,scalar-form
+	   ,@table-forms)))))
 (def-edebug-spec org-babel-result-cond (form form body))
 
 (defun org-babel-temp-file (prefix &optional suffix)