diff options
| author | Gerd Moellmann | 2000-08-15 21:28:08 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-08-15 21:28:08 +0000 |
| commit | 601ed8a0b1e5238534acf1799332d7ef1040750a (patch) | |
| tree | d7019fe93f93e3eb9c7224d922e548018f6884a2 | |
| parent | b9f80d41be5cfadaec0c1a12653a50bf5ebb72fa (diff) | |
| download | emacs-601ed8a0b1e5238534acf1799332d7ef1040750a.tar.gz emacs-601ed8a0b1e5238534acf1799332d7ef1040750a.zip | |
(list-buffers-noselect): Set `buffer' as well as
'buffer-menu' property.
(Buffer-menu-buffer): Use `buffer' property if `buffer-name'
fails.
(Buffer-menu-execute): When deleting, test `(and buf (buffer-name
buf))', instead of `(Buffer-menu-buffer nil)', to see if buffer
wasn't killed.
| -rw-r--r-- | lisp/buff-menu.el | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index cd7c8debcbd..c84ed105d9b 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -158,15 +158,18 @@ Letters do not insert themselves; instead, they are commands. | |||
| 158 | (let* ((where (save-excursion | 158 | (let* ((where (save-excursion |
| 159 | (beginning-of-line) | 159 | (beginning-of-line) |
| 160 | (+ (point) Buffer-menu-buffer-column))) | 160 | (+ (point) Buffer-menu-buffer-column))) |
| 161 | (name (and (not (eobp)) (get-text-property where 'buffer-name)))) | 161 | (name (and (not (eobp)) (get-text-property where 'buffer-name))) |
| 162 | (buf (and (not (eobp)) (get-text-property where 'buffer)))) | ||
| 162 | (if name | 163 | (if name |
| 163 | (or (get-buffer name) | 164 | (or (get-buffer name) |
| 165 | (and buf (buffer-name buf) buf) | ||
| 164 | (if error-if-non-existent-p | 166 | (if error-if-non-existent-p |
| 165 | (error "No buffer named `%s'" name) | 167 | (error "No buffer named `%s'" name) |
| 166 | nil)) | 168 | nil)) |
| 169 | (or (and buf (buffer-name buf) buf) | ||
| 167 | (if error-if-non-existent-p | 170 | (if error-if-non-existent-p |
| 168 | (error "No buffer on this line") | 171 | (error "No buffer on this line") |
| 169 | nil)))) | 172 | nil))))) |
| 170 | 173 | ||
| 171 | (defun buffer-menu (&optional arg) | 174 | (defun buffer-menu (&optional arg) |
| 172 | "Make a menu of buffers so you can save, delete or select them. | 175 | "Make a menu of buffers so you can save, delete or select them. |
| @@ -305,12 +308,12 @@ and then move up one line. Prefix arg means move that many lines." | |||
| 305 | (let ((buf (Buffer-menu-buffer nil))) | 308 | (let ((buf (Buffer-menu-buffer nil))) |
| 306 | (or (eq buf nil) | 309 | (or (eq buf nil) |
| 307 | (eq buf buff-menu-buffer) | 310 | (eq buf buff-menu-buffer) |
| 308 | (save-excursion (kill-buffer buf)))) | 311 | (save-excursion (kill-buffer buf))) |
| 309 | (if (Buffer-menu-buffer nil) | 312 | (if (and buf (buffer-name buf)) |
| 310 | (progn (delete-char 1) | 313 | (progn (delete-char 1) |
| 311 | (insert ? )) | 314 | (insert ? )) |
| 312 | (delete-region (point) (progn (forward-line 1) (point))) | 315 | (delete-region (point) (progn (forward-line 1) (point))) |
| 313 | (forward-char -1)))))) | 316 | (forward-char -1))))))) |
| 314 | 317 | ||
| 315 | (defun Buffer-menu-select () | 318 | (defun Buffer-menu-select () |
| 316 | "Select this line's buffer; also display buffers marked with `>'. | 319 | "Select this line's buffer; also display buffers marked with `>'. |
| @@ -548,6 +551,8 @@ The R column contains a % for buffers that are read-only." | |||
| 548 | (indent-to 17 2) | 551 | (indent-to 17 2) |
| 549 | (put-text-property this-buffer-line-start name-end | 552 | (put-text-property this-buffer-line-start name-end |
| 550 | 'buffer-name name) | 553 | 'buffer-name name) |
| 554 | (put-text-property this-buffer-line-start (point) | ||
| 555 | 'buffer buffer) | ||
| 551 | (put-text-property this-buffer-line-start name-end | 556 | (put-text-property this-buffer-line-start name-end |
| 552 | 'mouse-face 'highlight)) | 557 | 'mouse-face 'highlight)) |
| 553 | (let (size | 558 | (let (size |