Browse Source

org-babel: more robust version of :results value for python and perl.

In ':results value' ('functional') mode, a return statement is now
required in python and perl code.
Dan Davison 15 years ago
parent
commit
a9069d8dfd

+ 4 - 5
contrib/babel/lisp/langs/org-babel-perl.el

@@ -108,11 +108,10 @@ last statement in BODY, as elisp."
 		 (if (member "pp" result-params)
                      (error "Pretty-printing not implemented for perl")
                    org-babel-perl-wrapper-method)
-		 (let ((lines (split-string
-			       (org-remove-indentation (org-babel-trim body)) "[\r\n]")))
-		   (concat
-		    (mapconcat #'identity (butlast lines) "\n")
-		    (format "\nreturn %s" (car (last lines)))))
+		 (mapconcat
+		  (lambda (line) (format "\t%s" line))
+		  (split-string
+		   (org-remove-indentation (org-babel-trim body)) "[\r\n]") "\n")
 		 tmp-file))
                ;; (message "buffer=%s" (buffer-string)) ;; debugging
                (shell-command-on-region (point-min) (point-max) "perl"))

+ 4 - 7
contrib/babel/lisp/langs/org-babel-python.el

@@ -160,13 +160,10 @@ last statement in BODY, as elisp."
 		 (if (member "pp" result-params)
                      org-babel-python-pp-wrapper-method
                    org-babel-python-wrapper-method)
-		 (let ((lines (split-string
-			       (org-remove-indentation (org-babel-trim body)) "[\r\n]")))
-		   (concat
-		    (mapconcat
-		     (lambda (line) (format "\t%s" line))
-		     (butlast lines) "\n")
-		    (format "\n\treturn %s" (car (last lines)))))
+		 (mapconcat
+		  (lambda (line) (format "\t%s" line))
+		  (split-string
+		   (org-remove-indentation (org-babel-trim body)) "[\r\n]") "\n")
 		 tmp-file))
                ;; (message "buffer=%s" (buffer-string)) ;; debugging
                (shell-command-on-region (point-min) (point-max) "python"))