| 
					
				 | 
			
			
				@@ -271,25 +271,38 @@ used to limit the exported source code blocks by language." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		      (and (file-exists-p file-name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   (not (member file-name (mapcar #'car path-collector))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   (delete-file file-name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      ;; drop source-block to file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (with-temp-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(when (fboundp lang-f) (ignore-errors (funcall lang-f))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(when (and she-bang (not (member file-name she-banged))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (insert (concat she-bang "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (setq she-banged (cons file-name she-banged))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(org-babel-spec-to-string spec) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			;; We avoid append-to-file as it does not work with tramp. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(let ((content (buffer-string))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (with-temp-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (when (file-exists-p file-name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (insert-file-contents file-name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    ;; Handle :padlines unless first line in file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (unless (or (string= "no" (cdr (assq :padline (nth 4 spec)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					(= (point) (point-min))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (insert "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (insert content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (write-region nil nil file-name)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      ;; Drop source-block to file.  Preserve local 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      ;; file variables set in original Org buffer so 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      ;; that `org-babel-spec-to-string' doesn't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      ;; ignore them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (let ((org-babel-tangle-use-relative-file-links 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-babel-tangle-use-relative-file-links) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (org-babel-tangle-uncomment-comments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-babel-tangle-uncomment-comments) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (org-babel-tangle-comment-format-beg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-babel-tangle-comment-format-beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (org-src-preserve-indentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-src-preserve-indentation) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (org-babel-tangle-comment-format-end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-babel-tangle-comment-format-end)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			(with-temp-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (when (fboundp lang-f) (ignore-errors (funcall lang-f))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (when (and she-bang (not (member file-name she-banged))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (insert (concat she-bang "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (setq she-banged (cons file-name she-banged))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (org-babel-spec-to-string spec) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  ;; We avoid append-to-file as it does not work with tramp. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (let ((content (buffer-string))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (with-temp-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (when (file-exists-p file-name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(insert-file-contents file-name)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      ;; Handle :padlines unless first line in file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (unless (or (string= "no" (cdr (assq :padline (nth 4 spec)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					  (= (point) (point-min))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(insert "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (insert content) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (write-region nil nil file-name))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		      ;; if files contain she-bangs, then make the executable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		      (when she-bang 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			(unless tangle-mode (setq tangle-mode #o755))) 
			 |