From b394359261c05fe847fac6a2075aa22f9a0eec2f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 1 Jan 2023 11:04:22 +0200 Subject: [PATCH] Improve documentation of 'isearch-open-overlay-temporary' * lisp/isearch.el (isearch-open-overlay-temporary): Document that the overlay passed to the 'isearch-open-invisible-temporary' function cannot be deleted too early. (Bug#60399) --- lisp/isearch.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index ba67cce841a..d20d816a428 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -3723,8 +3723,14 @@ Optional third argument, if t, means if fail just return nil (no error). (defun isearch-open-overlay-temporary (ov) (if (not (null (overlay-get ov 'isearch-open-invisible-temporary))) ;; Some modes would want to open the overlays temporary during - ;; isearch in their own way, they should set the - ;; `isearch-open-invisible-temporary' to a function doing this. + ;; isearch in their own way, they should set the overlay's + ;; `isearch-open-invisible-temporary' property to a function + ;; doing this. + ;; Warning: if your code uses this technique, it should not + ;; delete the overlay passed to that function, since the values + ;; of the `invisible' property will be recorded on that overlay, + ;; to be restored after isearch is done with the text hidden by + ;; the overlay. (funcall (overlay-get ov 'isearch-open-invisible-temporary) ov nil) ;; Store the values for the `invisible' property, and then set it to nil. ;; This way the text hidden by this overlay becomes visible. -- 2.39.2