| 
					
				 | 
			
			
				@@ -399,6 +399,82 @@ with C-c C-c." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (when hash (kill-new hash) (message hash)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-hash-at-point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-result-hide-spec () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (org-add-to-invisibility-spec '(org-babel-hide-result . t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(add-hook 'org-mode-hook 'org-babel-result-hide-spec) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-babel-hide-result-overlays nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Overlays hiding results.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-result-hide-all () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Fold all results in the current buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (org-babel-show-result-all) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (while (re-search-forward org-babel-result-regexp nil t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (save-excursion (goto-char (match-beginning 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      (org-babel-hide-result-toggle-maybe))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-show-result-all () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Unfold all results in the current buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (mapc 'org-delete-overlay org-babel-hide-result-overlays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (setq org-babel-hide-result-overlays nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-hide-result-toggle-maybe () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Toggle visibility of result at point." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((case-fold-search t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          (beginning-of-line 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          (looking-at org-babel-result-regexp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (progn (org-babel-hide-result-toggle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               t) ;; to signal that we took action 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nil))) ;; to signal that we did not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-babel-hide-result-toggle (&optional force) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Toggle the visibility of the current result." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (beginning-of-line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (re-search-forward org-babel-result-regexp nil t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (let ((start (progn (beginning-of-line 2) (- (point) 1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (end (progn (goto-char (- (org-babel-result-end) 1)) (point))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ov) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          (if (memq t (mapcar (lambda (overlay) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                (eq (org-overlay-get overlay 'invisible) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				    'org-babel-hide-result)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              (org-overlays-at start))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              (if (or (not force) (eq force 'off)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  (mapc (lambda (ov) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          (when (member ov org-babel-hide-result-overlays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            (setq org-babel-hide-result-overlays 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  (delq ov org-babel-hide-result-overlays))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          (when (eq (org-overlay-get ov 'invisible) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    'org-babel-hide-result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            (org-delete-overlay ov))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        (org-overlays-at start))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (setq ov (org-make-overlay start end)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (org-overlay-put ov 'invisible 'org-babel-hide-result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ;; make the block accessible to isearch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (org-overlay-put 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             ov 'isearch-open-invisible 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             (lambda (ov) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (when (member ov org-babel-hide-result-overlays) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 (setq org-babel-hide-result-overlays 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       (delq ov org-babel-hide-result-overlays))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (when (eq (org-overlay-get ov 'invisible) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         'org-babel-hide-result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 (org-delete-overlay ov)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (push ov org-babel-hide-result-overlays))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (error "Not looking at a result line")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; org-tab-after-check-for-cycling-hook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(add-hook 'org-tab-first-hook 'org-babel-hide-result-toggle-maybe) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; Remove overlays when changing major mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(add-hook 'org-mode-hook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (lambda () (org-add-hook 'change-major-mode-hook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				   'org-babel-show-result-all 'append 'local))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defmacro org-babel-map-source-blocks (file &rest body) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Evaluate BODY forms on each source-block in FILE." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (declare (indent 1)) 
			 |