branch: elpa/jabber
commit 1c33b8cb42874f75ed5bb6f31bd6f33792c5c950
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>

    roster: Remove sort machinery orphaned by popup rework
---
 lisp/jabber-roster.el       | 83 ---------------------------------------------
 tests/jabber-test-roster.el | 81 ++-----------------------------------------
 2 files changed, 3 insertions(+), 161 deletions(-)

diff --git a/lisp/jabber-roster.el b/lisp/jabber-roster.el
index 3a38600ac6..9eca35cb6e 100644
--- a/lisp/jabber-roster.el
+++ b/lisp/jabber-roster.el
@@ -39,24 +39,6 @@
 (defgroup jabber-roster nil "Roster options."
   :group 'jabber)
 
-(defcustom jabber-roster-sort-functions
-  '(jabber-roster-sort-by-status jabber-roster-sort-by-displayname)
-  "Sort roster according to these criteria.
-
-These functions should take two roster items A and B, and return:
-<0 if A < B
-0  if A = B
->0 if A > B."
-  :type 'hook
-  :options '(jabber-roster-sort-by-status
-            jabber-roster-sort-by-displayname
-            jabber-roster-sort-by-group))
-
-(defcustom jabber-sort-order '("chat" "" "away" "dnd" "xa")
-  "Sort by status in this order.  Anything not in list goes last.
-Offline is represented as nil."
-  :type '(repeat (restricted-sexp :match-alternatives (stringp nil))))
-
 (defcustom jabber-remove-newlines t
   "Remove newlines in status messages?
 Newlines in status messages mess up the roster display.  However,
@@ -604,14 +586,6 @@ entry is offered to clear the scope."
 
 ;;; Roster data management
 
-(defun jabber-roster--accounts-for-jid (jid)
-  "Return list of connections that have JID in their roster."
-  (let ((sym (jabber-jid-symbol jid)))
-    (cl-remove-if-not
-     (lambda (jc)
-       (memq sym (plist-get (fsm-get-state-data jc) :roster)))
-     jabber-connections)))
-
 (defun jabber-roster-prepare-roster (jc)
   "Make a hash based roster.
 JC is the Jabber connection."
@@ -637,63 +611,6 @@ JC is the Jabber connection."
     (plist-put state-data :roster-hash
               hash)))
 
-(defun jabber-sort-roster (jc)
-  "Sort roster according to online status.
-JC is the Jabber connection."
-  (let ((state-data (fsm-get-state-data jc)))
-    (dolist (group (plist-get state-data :roster-groups))
-      (let ((group-name (car group)))
-       (puthash group-name
-                (sort
-                 (gethash group-name
-                          (plist-get state-data :roster-hash))
-                 #'jabber-roster-sort-items)
-                (plist-get state-data :roster-hash))))))
-
-(defun jabber-roster-sort-items (a b)
-  "Sort roster items A and B according to `jabber-roster-sort-functions'.
-Return t if A is less than B."
-  (cl-dolist (fn jabber-roster-sort-functions)
-    (let ((comparison (funcall fn a b)))
-      (cond
-       ((< comparison 0)
-       (cl-return t))
-       ((> comparison 0)
-       (cl-return nil))))))
-
-(defun jabber-roster-sort-by-status (a b)
-  "Sort roster items A and B by online status.
-See `jabber-sort-order' for order used."
-  (cl-flet ((order (item) (length (member (get item 'show) 
jabber-sort-order))))
-    (let ((a-order (order a))
-         (b-order (order b)))
-      (cond
-       ((< a-order b-order)
-       1)
-       ((> a-order b-order)
-       -1)
-       (t
-       0)))))
-
-(defun jabber-roster-sort-by-displayname (a b)
-  "Sort roster items A and B by displayed name."
-  (let ((a-name (jabber-jid-displayname a))
-       (b-name (jabber-jid-displayname b)))
-    (cond
-     ((string-lessp a-name b-name) -1)
-     ((string= a-name b-name) 0)
-     (t 1))))
-
-(defun jabber-roster-sort-by-group (a b)
-  "Sort roster items A and B by group membership."
-  (cl-flet ((first-group (item) (or (car (get item 'groups)) "")))
-    (let ((a-group (first-group a))
-         (b-group (first-group b)))
-      (cond
-       ((string-lessp a-group b-group) -1)
-       ((string= a-group b-group) 0)
-       (t 1)))))
-
 (defun jabber-fix-status (status)
   "Make STATUS strings more readable."
   (when status
diff --git a/tests/jabber-test-roster.el b/tests/jabber-test-roster.el
index 46511666d6..da30a00eea 100644
--- a/tests/jabber-test-roster.el
+++ b/tests/jabber-test-roster.el
@@ -2,7 +2,7 @@
 
 ;;; Commentary:
 
-;; Roster display and contact sorting.
+;; Roster display.
 
 ;;; Code:
 
@@ -17,82 +17,7 @@
 
 (require 'jabber-roster)
 
-;;; Group 1: jabber-roster-sort-by-status
-
-(ert-deftest jabber-test-roster-sort-by-status-online-vs-away ()
-  "Online user sorts before away user."
-  (let ((jabber-sort-order '("chat" "" "away" "dnd" "xa"))
-        (a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'show "")
-    (put b 'show "away")
-    (should (< (jabber-roster-sort-by-status a b) 0))))
-
-(ert-deftest jabber-test-roster-sort-by-status-same ()
-  "Same status returns 0."
-  (let ((jabber-sort-order '("chat" "" "away" "dnd" "xa"))
-        (a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'show "away")
-    (put b 'show "away")
-    (should (= (jabber-roster-sort-by-status a b) 0))))
-
-(ert-deftest jabber-test-roster-sort-by-status-offline-last ()
-  "Offline (nil show) sorts after online."
-  (let ((jabber-sort-order '("chat" "" "away" "dnd" "xa"))
-        (a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'show nil)
-    (put b 'show "")
-    (should (> (jabber-roster-sort-by-status a b) 0))))
-
-;;; Group 2: jabber-roster-sort-by-displayname
-
-(ert-deftest jabber-test-roster-sort-by-displayname-order ()
-  "Alphabetical ordering by display name."
-  (let ((jabber-jid-obarray (make-vector 127 0))
-        (a (intern "[email protected]" (make-vector 127 0)))
-        (b (intern "[email protected]" (make-vector 127 0))))
-    (put a 'name "Alice")
-    (put b 'name "Bob")
-    (should (< (jabber-roster-sort-by-displayname a b) 0))))
-
-(ert-deftest jabber-test-roster-sort-by-displayname-equal ()
-  "Same name returns 0."
-  (let ((jabber-jid-obarray (make-vector 127 0))
-        (a (intern "[email protected]" (make-vector 127 0)))
-        (b (intern "[email protected]" (make-vector 127 0))))
-    (put a 'name "Alice")
-    (put b 'name "Alice")
-    (should (= (jabber-roster-sort-by-displayname a b) 0))))
-
-;;; Group 3: jabber-roster-sort-by-group
-
-(ert-deftest jabber-test-roster-sort-by-group-different ()
-  "Different groups sort alphabetically."
-  (let ((a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'groups '("Friends"))
-    (put b 'groups '("Work"))
-    (should (< (jabber-roster-sort-by-group a b) 0))))
-
-(ert-deftest jabber-test-roster-sort-by-group-same ()
-  "Same group returns 0."
-  (let ((a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'groups '("Friends"))
-    (put b 'groups '("Friends"))
-    (should (= (jabber-roster-sort-by-group a b) 0))))
-
-(ert-deftest jabber-test-roster-sort-by-group-no-group ()
-  "No group falls back to empty string."
-  (let ((a (make-symbol "[email protected]"))
-        (b (make-symbol "[email protected]")))
-    (put a 'groups nil)
-    (put b 'groups '("Work"))
-    (should (< (jabber-roster-sort-by-group a b) 0))))
-
-;;; Group 4: jabber-fix-status
+;;; Group 1: jabber-fix-status
 
 (ert-deftest jabber-test-roster-fix-status-trailing-newlines ()
   "Trailing newlines are removed."
@@ -113,7 +38,7 @@
   "Nil input returns nil."
   (should (null (jabber-fix-status nil))))
 
-;;; Group 5: Face definitions
+;;; Group 2: Face definitions
 
 (ert-deftest jabber-test-roster-faces-use-inherit ()
   "Modernized roster faces use :inherit."

Reply via email to