[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ibuf-ext.el
From: |
Colin Walters |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ibuf-ext.el |
Date: |
Sat, 04 May 2002 20:12:17 -0400 |
Index: emacs/lisp/ibuf-ext.el
diff -c emacs/lisp/ibuf-ext.el:1.19 emacs/lisp/ibuf-ext.el:1.20
*** emacs/lisp/ibuf-ext.el:1.19 Mon Apr 29 19:12:29 2002
--- emacs/lisp/ibuf-ext.el Sat May 4 20:12:17 2002
***************
*** 600,612 ****
;;;###autoload
(defun ibuffer-kill-filter-group (name)
! "Delete the filtering group named NAME."
(interactive (list nil))
(when (interactive-p)
(setq name (completing-read "Kill filter group: "
ibuffer-filter-groups nil t)))
(ibuffer-aif (assoc name ibuffer-filter-groups)
(progn
(setq ibuffer-filter-groups (ibuffer-delete-alist
name ibuffer-filter-groups))
(setq ibuffer-hidden-filter-groups
--- 600,616 ----
;;;###autoload
(defun ibuffer-kill-filter-group (name)
! "Kill the filtering group named NAME.
! The group will be added to `ibuffer-filter-group-kill-ring'."
(interactive (list nil))
(when (interactive-p)
(setq name (completing-read "Kill filter group: "
ibuffer-filter-groups nil t)))
+ (when (equal name "Default")
+ (error "Can't kill default filtering group"))
(ibuffer-aif (assoc name ibuffer-filter-groups)
(progn
+ (push (copy-tree it) ibuffer-filter-group-kill-ring)
(setq ibuffer-filter-groups (ibuffer-delete-alist
name ibuffer-filter-groups))
(setq ibuffer-hidden-filter-groups
***************
*** 616,657 ****
;;;###autoload
(defun ibuffer-kill-line (&optional arg)
(interactive "P")
(ibuffer-aif (save-excursion
(ibuffer-forward-line 0)
(get-text-property (point) 'ibuffer-filter-group-name))
(progn
- (when (equal it "Default")
- (error "Can't kill default filtering group"))
- (push (copy-tree (assoc it ibuffer-filter-groups))
- ibuffer-filter-group-kill-ring)
(ibuffer-kill-filter-group it))
(funcall (if (interactive-p) #'call-interactively #'funcall)
#'kill-line arg)))
;;;###autoload
! (defun ibuffer-yank (&optional arg)
! (interactive "P")
(unless ibuffer-filter-group-kill-ring
(error "ibuffer-filter-group-kill-ring is empty"))
(save-excursion
(ibuffer-forward-line 0)
! (let* ((last-killed (pop ibuffer-filter-group-kill-ring))
! (all-groups ibuffer-filter-groups)
! (cur (or (get-text-property (point) 'ibuffer-filter-group-name)
! (get-text-property (point) 'ibuffer-filter-group)
! (last all-groups)))
! (pos (or (position cur (mapcar #'car all-groups) :test #'equal)
! (length all-groups))))
! (cond ((= pos 0)
! (push last-killed ibuffer-filter-groups))
! ((= pos (length all-groups))
! (setq ibuffer-filter-groups
! (nconc ibuffer-filter-groups (list last-killed))))
! (t
! (let ((cell (nthcdr pos ibuffer-filter-groups)))
! (setf (cdr cell) (cons (car cell) (cdr cell)))
! (setf (car cell) last-killed))))))
(ibuffer-update nil t))
;;;###autoload
--- 620,671 ----
;;;###autoload
(defun ibuffer-kill-line (&optional arg)
+ "Kill the filtering group at point.
+ See also `ibuffer-kill-filter-group'."
(interactive "P")
(ibuffer-aif (save-excursion
(ibuffer-forward-line 0)
(get-text-property (point) 'ibuffer-filter-group-name))
(progn
(ibuffer-kill-filter-group it))
(funcall (if (interactive-p) #'call-interactively #'funcall)
#'kill-line arg)))
+ (defun ibuffer-insert-filter-group-before (newgroup group)
+ (let ((pos (or (position group (mapcar #'car ibuffer-filter-groups)
+ :test #'equal)
+ (length ibuffer-filter-groups))))
+ (cond ((<= pos 0)
+ (push newgroup ibuffer-filter-groups))
+ ((= pos (length ibuffer-filter-groups))
+ (setq ibuffer-filter-groups (nconc ibuffer-filter-groups (list
newgroup))))
+ (t
+ (let ((cell (nthcdr pos ibuffer-filter-groups)))
+ (setf (cdr cell) (cons (car cell) (cdr cell)))
+ (setf (car cell) newgroup))))))
+
;;;###autoload
! (defun ibuffer-yank ()
! "Yank the last killed filter group before group at point."
! (interactive)
! (ibuffer-yank-filter-group
! (or (get-text-property (point) 'ibuffer-filter-group-name)
! (get-text-property (point) 'ibuffer-filter-group)
! (error "No filter group at point"))))
!
! ;;;###autoload
! (defun ibuffer-yank-filter-group (name)
! "Yank the last killed filter group before group named NAME."
! (interactive (list nil))
(unless ibuffer-filter-group-kill-ring
(error "ibuffer-filter-group-kill-ring is empty"))
+ (when (and (not name) (interactive-p))
+ (setq name (completing-read "Yank filter group before group: "
+ ibuffer-filter-groups nil t)))
(save-excursion
(ibuffer-forward-line 0)
! (ibuffer-insert-filter-group-before (pop ibuffer-filter-group-kill-ring)
! name))
(ibuffer-update nil t))
;;;###autoload
- [Emacs-diffs] Changes to emacs/lisp/ibuf-ext.el,
Colin Walters <=