Function: project--buffer-check
project--buffer-check is a byte-compiled function defined in
project.el.gz.
Signature
(project--buffer-check BUF CONDITIONS)
Documentation
Check if buffer BUF matches any element of the list CONDITIONS.
See project-kill-buffer-conditions or
project-ignore-buffer-conditions for more details on the
form of CONDITIONS.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/project.el.gz
;;;###autoload(put 'project-kill-buffers-display-buffer-list 'safe-local-variable #'booleanp)
;; FIXME: Could this be replaced by `buffer-match-p' in Emacs 29+?
(defun project--buffer-check (buf conditions)
"Check if buffer BUF matches any element of the list CONDITIONS.
See `project-kill-buffer-conditions' or
`project-ignore-buffer-conditions' for more details on the
form of CONDITIONS."
(catch 'match
(dolist (c conditions)
(when (cond
((stringp c)
(string-match-p c (buffer-name buf)))
((functionp c)
(funcall c buf))
((eq (car-safe c) 'major-mode)
(eq (buffer-local-value 'major-mode buf)
(cdr c)))
((eq (car-safe c) 'derived-mode)
(provided-mode-derived-p
(buffer-local-value 'major-mode buf)
(cdr c)))
((eq (car-safe c) 'not)
(not (project--buffer-check buf (cdr c))))
((eq (car-safe c) 'or)
(project--buffer-check buf (cdr c)))
((eq (car-safe c) 'and)
(seq-every-p
(apply-partially #'project--buffer-check
buf)
(mapcar #'list (cdr c)))))
(throw 'match t)))))