Function: org-occur-in-agenda-files
org-occur-in-agenda-files is an interactive and byte-compiled function
defined in org.el.gz.
Signature
(org-occur-in-agenda-files REGEXP &optional NLINES)
Documentation
Call multi-occur with buffers for all agenda files.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-occur-in-agenda-files (regexp &optional _nlines)
"Call `multi-occur' with buffers for all agenda files."
(interactive "sOrg-files matching: ")
(let* ((files (org-agenda-files))
(tnames (mapcar #'file-truename files))
(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)))
(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))
(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)
;; Restore the narrowing.
(dolist (narrow narrows)
(with-current-buffer (car narrow)
(widen)
(narrow-to-region (nth 1 narrow) (nth 2 narrow))))))