Obsolete local set difference functions in favor of seq-difference
* lisp/emacs-lisp/seq.el (seq-difference): Add autoload cookie. * lisp/gnus/gnus-range.el (gnus-set-difference): * lisp/gnus/spam.el (spam-set-difference): Make obsolete in favor of seq-difference. Update callers.
This commit is contained in:
parent
257caab1d0
commit
20f7fa691b
7 changed files with 18 additions and 27 deletions
|
@ -468,6 +468,7 @@ Equality is defined by TESTFN if non-nil or by `equal' if nil."
|
|||
(seq-reverse sequence1)
|
||||
'()))
|
||||
|
||||
;;;###autoload
|
||||
(cl-defgeneric seq-difference (sequence1 sequence2 &optional testfn)
|
||||
"Return a list of the elements that appear in SEQUENCE1 but not in SEQUENCE2.
|
||||
Equality is defined by TESTFN if non-nil or by `equal' if nil."
|
||||
|
|
|
@ -839,7 +839,7 @@ See also the documentation for `gnus-article-highlight-citation'."
|
|||
(setq current (car loop)
|
||||
loop (cdr loop))
|
||||
(setcdr current
|
||||
(gnus-set-difference (cdr current) numbers)))))))))
|
||||
(seq-difference (cdr current) numbers #'eq)))))))))
|
||||
|
||||
(defun gnus-cite-parse-attributions ()
|
||||
(let (al-alist)
|
||||
|
@ -999,7 +999,7 @@ See also the documentation for `gnus-article-highlight-citation'."
|
|||
loop (cdr loop))
|
||||
(if (eq current best)
|
||||
()
|
||||
(setcdr current (gnus-set-difference (cdr current) numbers))
|
||||
(setcdr current (seq-difference (cdr current) numbers #'eq))
|
||||
(when (null (cdr current))
|
||||
(setq gnus-cite-loose-prefix-alist
|
||||
(delq current gnus-cite-loose-prefix-alist)
|
||||
|
|
|
@ -42,13 +42,8 @@ If RANGE is a single range, return (RANGE). Otherwise, return RANGE."
|
|||
|
||||
(defun gnus-set-difference (list1 list2)
|
||||
"Return a list of elements of LIST1 that do not appear in LIST2."
|
||||
(let ((hash2 (make-hash-table :test 'eq))
|
||||
(result nil))
|
||||
(dolist (elt list2) (puthash elt t hash2))
|
||||
(dolist (elt list1)
|
||||
(unless (gethash elt hash2)
|
||||
(setq result (cons elt result))))
|
||||
(nreverse result)))
|
||||
(declare (obsolete seq-difference "28.1"))
|
||||
(seq-difference list1 list2 #'eq))
|
||||
|
||||
(defun gnus-range-nconcat (&rest ranges)
|
||||
"Return a range comprising all the RANGES, which are pre-sorted.
|
||||
|
|
|
@ -8569,8 +8569,9 @@ If UNREPLIED (the prefix), limit to unreplied articles."
|
|||
(interactive "P" gnus-summary-mode)
|
||||
(if unreplied
|
||||
(gnus-summary-limit
|
||||
(gnus-set-difference gnus-newsgroup-articles
|
||||
gnus-newsgroup-replied))
|
||||
(seq-difference gnus-newsgroup-articles
|
||||
gnus-newsgroup-replied
|
||||
#'eq))
|
||||
(gnus-summary-limit gnus-newsgroup-replied))
|
||||
(gnus-summary-position-point))
|
||||
|
||||
|
|
|
@ -579,7 +579,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
|
|||
(defun gnus-new-processable (unmarkp articles)
|
||||
(if unmarkp
|
||||
(nreverse (seq-intersection gnus-newsgroup-processable articles #'eq))
|
||||
(gnus-set-difference articles gnus-newsgroup-processable)))
|
||||
(seq-difference articles gnus-newsgroup-processable #'eq)))
|
||||
|
||||
(defun gnus-uu-mark-by-regexp (regexp &optional unmark)
|
||||
"Set the process mark on articles whose subjects match REGEXP.
|
||||
|
|
|
@ -1614,13 +1614,15 @@ If LIMIT, first try to limit the search to the N last articles."
|
|||
(setq start-article 1))
|
||||
(let* ((unread
|
||||
(gnus-compress-sequence
|
||||
(gnus-set-difference
|
||||
(gnus-set-difference
|
||||
(seq-difference
|
||||
(seq-difference
|
||||
existing
|
||||
(gnus-sorted-union
|
||||
(cdr (assoc '%Seen flags))
|
||||
(cdr (assoc '%Deleted flags))))
|
||||
(cdr (assoc '%Flagged flags)))))
|
||||
(cdr (assoc '%Deleted flags)))
|
||||
#'eq)
|
||||
(cdr (assoc '%Flagged flags))
|
||||
#'eq)))
|
||||
(read (gnus-range-difference
|
||||
(cons start-article high) unread)))
|
||||
(when (> start-article 1)
|
||||
|
|
|
@ -710,16 +710,8 @@ finds ham or spam.")
|
|||
(defun spam-set-difference (list1 list2)
|
||||
"Return a set difference of LIST1 and LIST2.
|
||||
When either list is nil, the other is returned."
|
||||
(if (and list1 list2)
|
||||
;; we have two non-nil lists
|
||||
(progn
|
||||
(dolist (item (append list1 list2))
|
||||
(when (and (memq item list1) (memq item list2))
|
||||
(setq list1 (delq item list1))
|
||||
(setq list2 (delq item list2))))
|
||||
(append list1 list2))
|
||||
;; if either of the lists was nil, return the other one
|
||||
(if list1 list1 list2)))
|
||||
(declare (obsolete seq-difference "28.1"))
|
||||
(seq-difference list1 list2 #'eq))
|
||||
|
||||
(defun spam-group-ham-mark-p (group mark &optional spam)
|
||||
"Checks if MARK is considered a ham mark in GROUP."
|
||||
|
@ -1327,7 +1319,7 @@ In the case of mover backends, checks the setting of
|
|||
(new-articles (spam-list-articles
|
||||
gnus-newsgroup-articles
|
||||
classification))
|
||||
(changed-articles (spam-set-difference new-articles old-articles)))
|
||||
(changed-articles (seq-difference new-articles old-articles #'eq)))
|
||||
;; now that we have the changed articles, we go through the processors
|
||||
(dolist (backend (spam-backend-list))
|
||||
(let (unregister-list)
|
||||
|
|
Loading…
Add table
Reference in a new issue