| 
					
				 | 
			
			
				@@ -51,11 +51,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-babel-R-command "R --slave --no-save" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Name of command to use for executing R code.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-babel-expand-body:R (body params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-expand-body:R (body params &optional processed-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Expand BODY according to PARAMS, return the expanded body." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let (out-file (cdr (assoc :file params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     #'org-babel-trim 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     #'identity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      ((lambda (inside) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(if out-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (append 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,7 +63,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     inside 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     (list "dev.off()")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  inside)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (append (org-babel-R-variable-assignments params) (list body))) "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (append (org-babel-variable-assignments:R params processed-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (list body))) "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-execute:R (body params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Execute a block of R code. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,7 +77,7 @@ This function is called by `org-babel-execute-src-block'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (colnames-p (cdr (assoc :colnames params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (rownames-p (cdr (assoc :rownames params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (out-file (cdr (assoc :file params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (full-body (org-babel-expand-body:R body params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (full-body (org-babel-expand-body:R body params processed-params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (org-babel-R-evaluate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     session full-body result-type 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,7 +91,7 @@ This function is called by `org-babel-execute-src-block'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-babel-prep-session:R (session params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Prepare SESSION according to the header arguments specified in PARAMS." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let* ((session (org-babel-R-initiate-session session params)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (var-lines (org-babel-R-variable-assignments params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (var-lines (org-babel-variable-assignments:R params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-babel-comint-in-buffer session 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (mapc (lambda (var) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               (end-of-line 1) (insert var) (comint-send-input nil t) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,9 +109,10 @@ This function is called by `org-babel-execute-src-block'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;; helper functions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-babel-R-variable-assignments (params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-variable-assignments:R (params &optional processed-params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Return list of R statements assigning the block's variables" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let ((processed-params (org-babel-process-params params))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((processed-params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (or processed-params (org-babel-process-params params)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (mapcar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      (lambda (pair) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        (org-babel-R-assign-elisp 
			 |