mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(ibuffer-visit-buffer): Optionally allow reducing to one window.
(ibuffer-visit-buffer-1-window): Simply call `ibuffer-visit-buffer'. (ibuffer-current-state-list): Reinstate optional argument; now just call `point' inside the mapping function.
This commit is contained in:
parent
3de7b1bde8
commit
d246cabf2d
1 changed files with 27 additions and 17 deletions
|
|
@ -842,14 +842,21 @@ width and the longest string in LIST."
|
|||
(forward-line 1))
|
||||
(decf arg))))
|
||||
|
||||
(defun ibuffer-visit-buffer ()
|
||||
"Visit the buffer on this line."
|
||||
(interactive)
|
||||
(defun ibuffer-visit-buffer (&optional single)
|
||||
"Visit the buffer on this line.
|
||||
|
||||
If optional argument SINGLE is non-nil, then also ensure there is only
|
||||
one window."
|
||||
(interactive "P")
|
||||
(let ((buf (ibuffer-current-buffer)))
|
||||
(unless (buffer-live-p buf)
|
||||
(error "Buffer %s has been killed!" buf))
|
||||
(if (bufferp buf)
|
||||
(unless (buffer-live-p buf)
|
||||
(error "Buffer %s has been killed!" buf))
|
||||
(error "No buffer on this line"))
|
||||
(bury-buffer (current-buffer))
|
||||
(switch-to-buffer buf)))
|
||||
(switch-to-buffer buf)
|
||||
(when single
|
||||
(delete-other-windows))))
|
||||
|
||||
(defun ibuffer-visit-buffer-other-window (&optional noselect)
|
||||
"Visit the buffer on this line in another window."
|
||||
|
|
@ -881,11 +888,7 @@ width and the longest string in LIST."
|
|||
(defun ibuffer-visit-buffer-1-window ()
|
||||
"Visit the buffer on this line, and delete other windows."
|
||||
(interactive)
|
||||
(let ((buf (ibuffer-current-buffer)))
|
||||
(unless (buffer-live-p buf)
|
||||
(error "Buffer %s has been killed!" buf))
|
||||
(switch-to-buffer buf)
|
||||
(delete-other-windows)))
|
||||
(ibuffer-visit-buffer t))
|
||||
|
||||
(defun ibuffer-bury-buffer ()
|
||||
"Bury the buffer on this line."
|
||||
|
|
@ -1668,15 +1671,22 @@ current mark symbol, and the beginning and ending line positions."
|
|||
(car e)))
|
||||
(ibuffer-current-state-list))))
|
||||
|
||||
(defun ibuffer-current-state-list ()
|
||||
"Return a list like (BUF . MARK) of all buffers in an ibuffer."
|
||||
(defun ibuffer-current-state-list (&optional pos)
|
||||
"Return a list like (BUF . MARK) of all buffers in an ibuffer.
|
||||
If POS is non-nil, return a list like (BUF MARK POINT), where POINT is
|
||||
the value of point at the beginning of the line for that buffer."
|
||||
(let ((ibuffer-current-state-list-tmp '()))
|
||||
;; ah, if only we had closures. I bet this will mysteriously
|
||||
;; break later. Don't blame me.
|
||||
(ibuffer-map-lines-nomodify
|
||||
#'(lambda (buf mark)
|
||||
(when (buffer-live-p buf)
|
||||
(push (cons buf mark) ibuffer-current-state-list-tmp))))
|
||||
(if pos
|
||||
(ibuffer-map-lines-nomodify
|
||||
#'(lambda (buf mark)
|
||||
(when (buffer-live-p buf)
|
||||
(push (list buf mark (point)) ibuffer-current-state-list-tmp))))
|
||||
(ibuffer-map-lines-nomodify
|
||||
#'(lambda (buf mark)
|
||||
(when (buffer-live-p buf)
|
||||
(push (cons buf mark) ibuffer-current-state-list-tmp)))))
|
||||
(nreverse ibuffer-current-state-list-tmp)))
|
||||
|
||||
(defun ibuffer-current-buffers-with-marks (curbufs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue