| 
					
				 | 
			
			
				@@ -182,18 +182,20 @@ confirmation from the user. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Note disabling confirmation may result in accidental evaluation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 of potentially harmful code." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let* ((eval (cdr (assoc :eval (nth 2 info)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let* ((eval (or (cdr (assoc :eval (nth 2 info))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (when (assoc :noeval (nth 2 info)) "no"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (query (or (equal eval "query") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    (and (functionp org-confirm-babel-evaluate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			 (funcall org-confirm-babel-evaluate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				  (nth 0 info) (nth 1 info))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		    org-confirm-babel-evaluate))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (when (or (equal eval "never") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (and query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		   (not (yes-or-no-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 (format "Evaluate this%scode on your system? " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (if info (format " %s " (nth 0 info)) " ")))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (error "evaluation aborted")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (or (equal eval "never") (equal eval "no") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (and query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (not (yes-or-no-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (format "Evaluate this%scode on your system? " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (if info (format " %s " (nth 0 info)) " ")))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(prog1 nil (message "evaluation aborted")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;;###autoload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-execute-safely-maybe () 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -254,7 +256,7 @@ then run `org-babel-pop-to-session'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defconst org-babel-header-arg-names 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   '(cache cmdline colnames dir exports file noweb results 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  session tangle var noeval comments) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    session tangle var eval noeval comments) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Common header arguments used by org-babel. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Note that individual languages may define their own language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 specific header arguments as well.") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -322,66 +324,65 @@ Optionally supply a value for PARAMS which will be merged with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 the header arguments specified at the front of the source code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 block." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let* ((info (or info (org-babel-get-src-block-info))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 ;; note the `evaluation-confirmed' variable is currently not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 ;; used, but could be used later to avoid the need for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 ;; chaining confirmations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (evaluation-confirmed (org-babel-confirm-evaluate info)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (body (setf (nth 1 info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (if (and (cdr (assoc :noweb params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              (string= "yes" (cdr (assoc :noweb params)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                         (org-babel-expand-noweb-references info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (nth 1 info)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (result-params (split-string (or (cdr (assoc :results params)) ""))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (result-type (cond ((member "output" result-params) 'output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    ((member "value" result-params) 'value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (t 'value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         (cmd (intern (concat "org-babel-execute:" lang))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (dir (cdr (assoc :dir params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (default-directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (or (and dir (file-name-as-directory dir)) default-directory)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-babel-call-process-region-original 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (if (boundp 'org-babel-call-process-region-original) org-babel-call-process-region-original 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (symbol-function 'call-process-region))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (indent (car (last info))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (unwind-protect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (flet ((call-process-region (&rest args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                 (apply 'org-babel-tramp-handle-call-process-region args))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (unless (fboundp cmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (error "No org-babel-execute function for %s!" lang)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          (if (and (not arg) new-hash (equal new-hash old-hash)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              (save-excursion ;; return cached result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (goto-char (org-babel-where-is-src-block-result nil info)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (end-of-line 1) (forward-char 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (setq result (org-babel-read-result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (message (replace-regexp-in-string "%" "%%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                   (format "%S" result))) result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (message "executing %s code block%s..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (capitalize lang) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (if (nth 4 info) (format " (%s)" (nth 4 info)) "")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (setq result (funcall cmd body params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (if (eq result-type 'value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (setq result (if (and (or (member "vector" result-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                          (member "table" result-params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                      (not (listp result))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 (list (list result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                               result))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (org-babel-insert-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     result result-params info new-hash indent lang) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (run-hooks 'org-babel-after-execute-hook) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (setq call-process-region 'org-babel-call-process-region-original)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (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)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (body (setf (nth 1 info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (if (and (cdr (assoc :noweb params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				  (string= "yes" (cdr (assoc :noweb params)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     (org-babel-expand-noweb-references info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (nth 1 info)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (result-params (split-string (or (cdr (assoc :results params)) ""))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (result-type (cond ((member "output" result-params) 'output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				((member "value" result-params) 'value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(t 'value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (cmd (intern (concat "org-babel-execute:" lang))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (dir (cdr (assoc :dir params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (default-directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (or (and dir (file-name-as-directory dir)) default-directory)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (org-babel-call-process-region-original 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (if (boundp 'org-babel-call-process-region-original) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  org-babel-call-process-region-original 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(symbol-function 'call-process-region))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (indent (car (last info))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(unwind-protect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (flet ((call-process-region (&rest args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (apply 'org-babel-tramp-handle-call-process-region args))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (unless (fboundp cmd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(error "No org-babel-execute function for %s!" lang)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (if (and (not arg) new-hash (equal new-hash old-hash)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (save-excursion ;; return cached result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (goto-char (org-babel-where-is-src-block-result nil info)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (end-of-line 1) (forward-char 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (setq result (org-babel-read-result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (message (replace-regexp-in-string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      "%" "%%" (format "%S" result))) result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(message "executing %s code block%s..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (capitalize lang) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (if (nth 4 info) (format " (%s)" (nth 4 info)) "")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(setq result (funcall cmd body params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(if (eq result-type 'value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (setq result (if (and (or (member "vector" result-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					      (member "table" result-params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					  (not (listp result))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     (list (list result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				   result))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(org-babel-insert-result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 result result-params info new-hash indent lang) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(run-hooks 'org-babel-after-execute-hook) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (setq call-process-region 'org-babel-call-process-region-original)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-expand-body:generic (body params &optional processed-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Expand BODY with PARAMS. 
			 |