summaryrefslogtreecommitdiff
path: root/lisp/ibuf-ext.el
diff options
context:
space:
mode:
authorJohn Paul Wallington <jpw@pobox.com>2004-10-23 10:11:17 +0000
committerJohn Paul Wallington <jpw@pobox.com>2004-10-23 10:11:17 +0000
commit33a584e6d6d2f7fc2b1ea35bced5ea625d043a39 (patch)
treef06583ffa6cd2fab4ed06936d8e8b8f89a34189d /lisp/ibuf-ext.el
parentd0ee2ed32e696fa020bc1eb16f42d3c09e6f8bbd (diff)
downloademacs-33a584e6d6d2f7fc2b1ea35bced5ea625d043a39.tar.gz
(ibuffer-jump-to-buffer): Read buffer name in interactive spec rather
than use `interactive-p' in body of function.
Diffstat (limited to 'lisp/ibuf-ext.el')
-rw-r--r--lisp/ibuf-ext.el92
1 files changed, 45 insertions, 47 deletions
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 5d24964362a..1c77e409ae4 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1237,53 +1237,51 @@ hidden group filter, open it.
If `ibuffer-jump-offer-only-visible-buffers' is non-nil, only offer
visible buffers in the completion list. Calling the command with
a prefix argument reverses the meaning of that variable."
- (interactive (list nil))
- (let ((only-visible ibuffer-jump-offer-only-visible-buffers))
- (when current-prefix-arg
- (setq only-visible (not only-visible)))
- (if only-visible
- (let ((table (mapcar #'(lambda (x)
- (buffer-name (car x)))
- (ibuffer-current-state-list))))
- (when (null table)
- (error "No buffers!"))
- (when (interactive-p)
- (setq name (completing-read "Jump to buffer: "
- table nil t))))
- (when (interactive-p)
- (setq name (read-buffer "Jump to buffer: " nil t))))
- (when (not (string= "" name))
- (let (buf-point)
- ;; Blindly search for our buffer: it is very likely that it is
- ;; not in a hidden filter group.
- (ibuffer-map-lines #'(lambda (buf marks)
- (when (string= (buffer-name buf) name)
- (setq buf-point (point))
- nil))
- t nil)
- (when (and
- (null buf-point)
- (not (null ibuffer-hidden-filter-groups)))
- ;; We did not find our buffer. It must be in a hidden filter
- ;; group, so go through all hidden filter groups to find it.
- (catch 'found
- (dolist (group ibuffer-hidden-filter-groups)
- (ibuffer-jump-to-filter-group group)
- (ibuffer-toggle-filter-group)
- (ibuffer-map-lines #'(lambda (buf marks)
- (when (string= (buffer-name buf) name)
- (setq buf-point (point))
- nil))
- t group)
- (if buf-point
- (throw 'found nil)
- (ibuffer-toggle-filter-group)))))
- (if (null buf-point)
- ;; Still not found even though we expanded all hidden filter
- ;; groups: that must be because it's hidden by predicate:
- ;; we won't bother trying to display it.
- (error "No buffer with name %s" name)
- (goto-char buf-point))))))
+ (interactive (list
+ (let ((only-visible ibuffer-jump-offer-only-visible-buffers))
+ (when current-prefix-arg
+ (setq only-visible (not only-visible)))
+ (if only-visible
+ (let ((table (mapcar #'(lambda (x)
+ (buffer-name (car x)))
+ (ibuffer-current-state-list))))
+ (when (null table)
+ (error "No buffers!"))
+ (completing-read "Jump to buffer: "
+ table nil t))
+ (read-buffer "Jump to buffer: " nil t)))))
+ (when (not (string= "" name))
+ (let (buf-point)
+ ;; Blindly search for our buffer: it is very likely that it is
+ ;; not in a hidden filter group.
+ (ibuffer-map-lines #'(lambda (buf marks)
+ (when (string= (buffer-name buf) name)
+ (setq buf-point (point))
+ nil))
+ t nil)
+ (when (and
+ (null buf-point)
+ (not (null ibuffer-hidden-filter-groups)))
+ ;; We did not find our buffer. It must be in a hidden filter
+ ;; group, so go through all hidden filter groups to find it.
+ (catch 'found
+ (dolist (group ibuffer-hidden-filter-groups)
+ (ibuffer-jump-to-filter-group group)
+ (ibuffer-toggle-filter-group)
+ (ibuffer-map-lines #'(lambda (buf marks)
+ (when (string= (buffer-name buf) name)
+ (setq buf-point (point))
+ nil))
+ t group)
+ (if buf-point
+ (throw 'found nil)
+ (ibuffer-toggle-filter-group)))))
+ (if (null buf-point)
+ ;; Still not found even though we expanded all hidden filter
+ ;; groups: that must be because it's hidden by predicate:
+ ;; we won't bother trying to display it.
+ (error "No buffer with name %s" name)
+ (goto-char buf-point)))))
;;;###autoload
(defun ibuffer-diff-with-file ()