Codebase list magit / 3158faf
magit-mode-get-buffer: support getting locked buffers Jonas Bernoulli 8 years ago
1 changed file(s) with 6 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
554554 (defvar-local magit-buffer-locked-p nil)
555555 (put 'magit-buffer-locked-p 'permanent-local t)
556556
557 (defun magit-mode-get-buffer (mode &optional create frame)
557 (defun magit-mode-get-buffer (mode &optional create frame value)
558558 (-if-let (topdir (magit-toplevel))
559559 (or (--first (with-current-buffer it
560560 (and (eq major-mode mode)
561561 (equal magit--default-directory topdir)
562 (not magit-buffer-locked-p)))
562 (if value
563 (and magit-buffer-locked-p
564 (equal (magit-buffer-lock-value) value))
565 (not magit-buffer-locked-p))))
563566 (if frame
564567 (-map #'window-buffer
565568 (window-list (unless (eq frame t) frame)))
566569 (buffer-list)))
567570 (and create
568571 (let ((default-directory topdir))
569 (magit-generate-new-buffer mode))))
572 (magit-generate-new-buffer mode value))))
570573 (user-error "Not inside a Git repository")))
571574
572575 (defun magit-generate-new-buffer (mode &optional value)