From: Ihor Radchenko <yantar92@posteo.net>
To: alain.cochard@unistra.fr
Cc: emacs-orgmode@gnu.org
Subject: Re: Problem with multi-occur search when restricted to region
Date: Tue, 27 Dec 2022 13:43:37 +0000 [thread overview]
Message-ID: <8735912c8m.fsf@localhost> (raw)
In-Reply-To: <25514.61148.396137.347019@gargle.gargle.HOWL>
[-- Attachment #1: Type: text/plain, Size: 301 bytes --]
Alain.Cochard@unistra.fr writes:
> * h1
> foo
> * h2
> foo bar
>
> I make the 1st two lines the region. Then I do
>
> M-x org-agenda << / foo
>
> and I see
>
> 2 matches for "foo" in buffer: debug.org
> 2:foo
> 4:foo bar
Thanks for reporting!
Can you try the attached patch?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-org-occur-in-agenda-files-Respect-agenda-restriction.patch --]
[-- Type: text/x-patch, Size: 2734 bytes --]
From e0e18a6e98fb2faafcc9a43a55321206e8b3f9ed Mon Sep 17 00:00:00 2001
Message-Id: <e0e18a6e98fb2faafcc9a43a55321206e8b3f9ed.1672148559.git.yantar92@posteo.net>
From: Ihor Radchenko <yantar92@posteo.net>
Date: Tue, 27 Dec 2022 16:41:57 +0300
Subject: [PATCH] org-occur-in-agenda-files: Respect agenda restriction
* lisp/org.el (org-occur-in-agenda-files): Respect agenda restriction
when searching.
Reported-by: Alain.Cochard@unistra.fr
Link: https://orgmode.org/list/25514.61148.396137.347019@gargle.gargle.HOWL
---
lisp/org.el | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/lisp/org.el b/lisp/org.el
index 26a4c8b1c..2ab7c0ccf 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18551,24 +18551,40 @@ (defun org-occur-in-agenda-files (regexp &optional _nlines)
(interactive "sOrg-files matching: ")
(let* ((files (org-agenda-files))
(tnames (mapcar #'file-truename files))
- (extra org-agenda-text-search-extra-files))
- (when (eq (car extra) 'agenda-archives)
+ (extra org-agenda-text-search-extra-files)
+ (narrows nil))
+ (when (and (eq (car extra) 'agenda-archives)
+ (not org-agenda-restrict))
(setq extra (cdr extra))
(setq files (org-add-archive-files files)))
- (dolist (f extra)
- (unless (member (file-truename f) tnames)
- (unless (member f files) (setq files (append files (list f))))
- (setq tnames (append tnames (list (file-truename f))))))
+ (unless org-agenda-restrict
+ (dolist (f extra)
+ (unless (member (file-truename f) tnames)
+ (unless (member f files) (setq files (append files (list f))))
+ (setq tnames (append tnames (list (file-truename f)))))))
(multi-occur
(mapcar (lambda (x)
(with-current-buffer
;; FIXME: Why not just (find-file-noselect x)?
;; Is it to avoid the "revert buffer" prompt?
(or (get-file-buffer x) (find-file-noselect x))
- (widen)
+ (if (eq (current-buffer) org-agenda-restrict)
+ (progn
+ ;; Save the narrowing state.
+ (push (list (current-buffer) (point-min) (point-max))
+ narrows)
+ (widen)
+ (narrow-to-region org-agenda-restrict-begin
+ org-agenda-restrict-end))
+ (widen))
(current-buffer)))
files)
- regexp)))
+ regexp)
+ ;; Restore the narrowing.
+ (dolist (narrow narrows)
+ (with-current-buffer (car narrow)
+ (widen)
+ (narrow-to-region (nth 1 narrow) (nth 2 narrow))))))
(add-hook 'occur-mode-find-occurrence-hook
(lambda () (when (derived-mode-p 'org-mode) (org-fold-reveal))))
--
2.38.1
[-- Attachment #3: Type: text/plain, Size: 224 bytes --]
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
next prev parent reply other threads:[~2022-12-27 13:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-27 13:10 Problem with multi-occur search when restricted to region Alain.Cochard
2022-12-27 13:43 ` Ihor Radchenko [this message]
2022-12-27 20:36 ` Alain.Cochard
2022-12-29 9:57 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8735912c8m.fsf@localhost \
--to=yantar92@posteo.net \
--cc=alain.cochard@unistra.fr \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).