emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 759676b308 092/101: org-fold-core--isearch-show: Do


From: ELPA Syncer
Subject: [elpa] externals/org 759676b308 092/101: org-fold-core--isearch-show: Do not fully rely on `point'
Date: Sat, 1 Jul 2023 09:59:17 -0400 (EDT)

branch: externals/org
commit 759676b30894cc5e71f992f61ed863c10b124602
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    org-fold-core--isearch-show: Do not fully rely on `point'
    
    * lisp/org-fold-core.el (org-fold-core--isearch-show): Make use of the
    passed argument.  Do not just rely on `point' being at the isearch
    match.
    
    This partially fixes edge case with point being moved to the end of
    the folded region during isearch.
---
 lisp/org-fold-core.el | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/lisp/org-fold-core.el b/lisp/org-fold-core.el
index 3dbbf6e7d6..15e4747c61 100644
--- a/lisp/org-fold-core.el
+++ b/lisp/org-fold-core.el
@@ -1173,9 +1173,19 @@ This function is intended to be used as 
`isearch-filter-predicate'."
   "Clear `org-fold-core--isearch-local-regions'."
   (clrhash org-fold-core--isearch-local-regions))
 
-(defun org-fold-core--isearch-show (_)
-  "Reveal text at point found by isearch."
-  (funcall org-fold-core-isearch-open-function (point)))
+(defun org-fold-core--isearch-show (overlay-or-region)
+  "Reveal text at OVERLAY-OR-REGION found by isearch."
+  (let (beg end)
+    (if (overlayp overlay-or-region)
+        (setq beg (overlay-start overlay-or-region)
+              end(overlay-end overlay-or-region))
+      (setq beg (car overlay-or-region)
+            end (cdr overlay-or-region)))
+    (when (< beg (point) end)
+      (funcall org-fold-core-isearch-open-function (point)))
+    (funcall org-fold-core-isearch-open-function beg)
+    (when (< beg (1- end))
+      (funcall org-fold-core-isearch-open-function (1- end)))))
 
 (defun org-fold-core--isearch-show-temporary (region hide-p)
   "Temporarily reveal text in REGION.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]