This small patch handles :results output for clojure src blocks by using
clojure's with-out-str function.

Please let me know if I've done anything wrong as this is my first patch to
org-mode.

sincerely,
--Robert McIntyre
diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index a72b14c..00013b8 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -62,16 +62,22 @@
 			     vars "\n      ")
 			    "]\n" body ")")
 		  body))))
-    (if (or (member "code" result-params)
-	    (member "pp" result-params))
-	(format
-	 (concat
-	  "(let [org-mode-print-catcher (java.io.StringWriter.)] "
-	  "(clojure.pprint/with-pprint-dispatch clojure.pprint/%s-dispatch "
-	  "(clojure.pprint/pprint (do %s) org-mode-print-catcher) "
-	  "(str org-mode-print-catcher)))")
-	 (if (member "code" result-params) "code" "simple") body)
-      body)))
+    (cond 
+     ((or (member "code" result-params)
+	  (member "pp" result-params))
+      (format
+       (concat
+	"(let [org-mode-print-catcher (java.io.StringWriter.)] "
+	"(clojure.pprint/with-pprint-dispatch clojure.pprint/%s-dispatch "
+	"(clojure.pprint/pprint (do %s) org-mode-print-catcher) "
+	"(str org-mode-print-catcher)))")
+       (if (member "code" result-params) "code" "simple") body))
+     ;; if (:results output), collect printed output 
+     ((member "output" result-params)
+      (format "(clojure.core/with-out-str %s)" body))
+     (t body))))
+
+
 
 (defun org-babel-execute:clojure (body params)
   "Execute a block of Clojure code with Babel."

Reply via email to