summaryrefslogtreecommitdiff
path: root/lisp/outline.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/outline.el')
-rw-r--r--lisp/outline.el9
1 files changed, 8 insertions, 1 deletions
diff --git a/lisp/outline.el b/lisp/outline.el
index 0ec527060a1..b44fd288bfc 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -690,6 +690,11 @@ This puts point at the start of the current subtree, and mark at the end."
(goto-char beg)))
+(defvar outline-isearch-open-invisible-function nil
+ "Function called if `isearch' finishes in an invisible overlay.
+The function is called with the overlay as its only argument.
+If nil, `show-entry' is called to reveal the invisible text.")
+
(put 'outline 'reveal-toggle-invisible 'outline-reveal-toggle-invisible)
(defun outline-flag-region (from to flag)
"Hide or show lines from FROM to TO, according to FLAG.
@@ -698,7 +703,9 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
(when flag
(let ((o (make-overlay from to)))
(overlay-put o 'invisible 'outline)
- (overlay-put o 'isearch-open-invisible 'outline-isearch-open-invisible)))
+ (overlay-put o 'isearch-open-invisible
+ (or outline-isearch-open-invisible-function
+ 'outline-isearch-open-invisible))))
;; Seems only used by lazy-lock. I.e. obsolete.
(run-hooks 'outline-view-change-hook))