From 326fff28230506e2935263e21f7641300700b8e5 Mon Sep 17 00:00:00 2001 From: Phil Jackson Date: Thu, 6 May 2010 19:26:34 +0100 Subject: [PATCH] Replace cl functions. --- magit.el | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/magit.el b/magit.el index 86841b33..ea3ecafb 100644 --- a/magit.el +++ b/magit.el @@ -4047,21 +4047,33 @@ With prefix force the removal even it it hasn't been merged." (defun magit-list-buffers () "Returns a list of magit buffers." - (remove-if-not (lambda (b) - (save-excursion - (set-buffer b) - (eq major-mode 'magit-mode))) - (buffer-list))) + (delq nil (mapcar (lambda (b) + (save-excursion + (set-buffer b) + (when (eq major-mode 'magit-mode) + b))) + (buffer-list)))) + +(defun remove-dupes (list) + "Remove the duplicate items in a sorted list." + (let (tmp-list head) + (while list + (setq head (pop list)) + (unless (equal head (car list)) + (push head tmp-list))) + (reverse tmp-list))) (defun magit-list-projects () "Returns a list of directories with a magit representation." - (remove-duplicates - (mapcar (lambda (b) - (save-excursion - (set-buffer b) - (directory-file-name default-directory))) - (magit-list-buffers)) - :test 'string=)) + (remove-dupes + (sort + (mapcar (lambda (b) + (save-excursion + (set-buffer b) + (directory-file-name default-directory))) + (magit-list-buffers)) + 'string=))) + (provide 'magit)