From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#29489: Obsolete gnus-remove-if and gnus-remove-if-not Date: Tue, 28 Nov 2017 09:02:49 -0800 Message-ID: <87o9nmgwue.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1511888872 4691 195.159.176.226 (28 Nov 2017 17:07:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 28 Nov 2017 17:07:52 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: 29489@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Nov 28 18:07:48 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJjMB-0000IC-7m for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Nov 2017 18:07:39 +0100 Original-Received: from localhost ([::1]:39128 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJjMI-0004iu-FW for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Nov 2017 12:07:46 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJjHt-0001Xs-5M for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2017 12:03:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJjHm-0000I0-ES for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2017 12:03:13 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:54418) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eJjHm-0000Ht-7D for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2017 12:03:06 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eJjHl-0001c7-FG; Tue, 28 Nov 2017 12:03:05 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Tue, 28 Nov 2017 17:03:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 29489 X-GNU-PR-Package: emacs,gnus X-GNU-PR-Keywords: X-Debbugs-Original-To: submit@debbugs.gnu.org (The Gnus Bugfixing Girls + Boys) Original-Received: via spool by submit@debbugs.gnu.org id=B.15118885776145 (code B ref -1); Tue, 28 Nov 2017 17:03:05 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Nov 2017 17:02:57 +0000 Original-Received: from localhost ([127.0.0.1]:34859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJjHc-0001b3-F7 for submit@debbugs.gnu.org; Tue, 28 Nov 2017 12:02:56 -0500 Original-Received: from mail.ericabrahamsen.net ([50.56.99.223]:42057) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJjHY-0001as-AM for submit@debbugs.gnu.org; Tue, 28 Nov 2017 12:02:53 -0500 Original-Received: from localhost (71-212-22-173.tukw.qwest.net [71.212.22.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 60258C0329 for ; Tue, 28 Nov 2017 17:02:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.ericabrahamsen.net; s=mail; t=1511888570; bh=vXBzKzj9MCEMwKPbrD9hScAkJFZxBbUYY/CfIts3u3g=; h=From:To:Subject:Date:From; b=ElnhdVBX2817YqZYp+DLVWg777g0MUz6/RaDXTqxCP8uiTlrMZB9t5kxmqgSAPN7W EanFXBJKpzy8Zi4HsUPejFGl+ZrDoFJuLFF1Yemmvt+vDeqIH6/Sunl3VY4Pfajou4 kqdjzczCpyLHw4PorSkg+F1EzQDiMQ61BKCOSzxc= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:140491 Archived-At: --=-=-= Content-Type: text/plain Here's another one of these. I've replaced these with `seq-remove' and `seq-filter', and I suppose someone might object to that -- the other option would be `cl-remove-if' and `cl-remove-if-not'. I don't believe there's much practical difference. Gnus v5.13 GNU Emacs 27.0.50 (build 13, x86_64-pc-linux-gnu, GTK+ Version 3.22.26) of 2017-11-27 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Obsolete-gnus-remove-if-and-gnus-remove-if-not.patch >From 39b8e2bf7371df930081642b5127db268fcf4d46 Mon Sep 17 00:00:00 2001 From: Eric Abrahamsen Date: Sat, 25 Nov 2017 18:42:55 -0800 Subject: [PATCH] Obsolete gnus-remove-if and gnus-remove-if-not Use seq-remove and seq-filter, respectively, instead. * lisp/gnus/gnus-util.el: Remove functions and replace with define-obsolete-function-alias calls. * lisp/gnus/gnus.el: Require seq here. * lisp/gnus/gnus-art.el (gnus-mime-view-part-as-type): * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--get-attendee-names): * lisp/gnus/gnus-score.el (gnus-summary-score-effect): * lisp/gnus/gnus-sum.el (gnus-read-move-group-name): * lisp/gnus/gnus-topic.el (gnus-group-prepare-topics): * lisp/gnus/gnus-win.el (gnus-get-buffer-window): * lisp/gnus/nnmail.el (nnmail-purge-split-history): * lisp/gnus/nnmaildir.el (nnmaildir-request-scan): * lisp/gnus/nnrss.el (nnrss-make-hash-index): Replace calls in all these locations. --- lisp/gnus/gnus-art.el | 2 +- lisp/gnus/gnus-icalendar.el | 4 ++-- lisp/gnus/gnus-score.el | 2 +- lisp/gnus/gnus-sum.el | 4 ++-- lisp/gnus/gnus-topic.el | 4 ++-- lisp/gnus/gnus-util.el | 38 +++----------------------------------- lisp/gnus/gnus-win.el | 2 +- lisp/gnus/gnus.el | 1 + lisp/gnus/nnmail.el | 2 +- lisp/gnus/nnmaildir.el | 2 +- lisp/gnus/nnrss.el | 2 +- 11 files changed, 16 insertions(+), 47 deletions(-) diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 97aa878ab6..6ee0d7b023 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -5219,7 +5219,7 @@ gnus-mime-view-part-as-type (gnus-completing-read "View as MIME type" (if pred - (gnus-remove-if-not pred (mailcap-mime-types)) + (seq-filter pred (mailcap-mime-types)) (mailcap-mime-types)) nil nil nil (car default))))) diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el index cca4a81d1c..38c3ea36d6 100644 --- a/lisp/gnus/gnus-icalendar.el +++ b/lisp/gnus/gnus-icalendar.el @@ -169,7 +169,7 @@ gnus-icalendar-event--find-attendee (defun gnus-icalendar-event--get-attendee-names (ical) (let* ((event (car (icalendar--all-events ical))) - (attendee-props (gnus-remove-if-not + (attendee-props (seq-filter (lambda (p) (eq (car p) 'ATTENDEE)) (caddr event)))) @@ -180,7 +180,7 @@ gnus-icalendar-event--get-attendee-names (or (plist-get (cadr prop) 'CN) (replace-regexp-in-string "^.*MAILTO:" "" (caddr prop)))) (attendees-by-type (type) - (gnus-remove-if-not + (seq-filter (lambda (p) (string= (attendee-role p) type)) attendee-props)) (attendee-names-by-type diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index 765dfab570..a2cc07db46 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el @@ -921,7 +921,7 @@ gnus-summary-score-effect (interactive (list (gnus-completing-read "Header" (mapcar 'car - (gnus-remove-if-not + (seq-filter (lambda (x) (fboundp (nth 2 x))) gnus-header-index)) t) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index e599a8460f..dfecd2713d 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -12275,12 +12275,12 @@ gnus-read-move-group-name ((null split-name) (gnus-group-completing-read prom - (gnus-remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb t) + (seq-filter 'gnus-valid-move-group-p gnus-active-hashtb) nil prefix nil default)) ((= 1 (length split-name)) (gnus-group-completing-read prom - (gnus-remove-if-not 'gnus-valid-move-group-p gnus-active-hashtb t) + (seq-filter 'gnus-valid-move-group-p gnus-active-hashtb) nil prefix 'gnus-group-history (car split-name))) (t (gnus-completing-read diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el index ba756e0314..065215b471 100644 --- a/lisp/gnus/gnus-topic.el +++ b/lisp/gnus/gnus-topic.el @@ -460,9 +460,9 @@ gnus-group-prepare-topics (unless gnus-killed-hashtb (gnus-make-hashtable-from-killed)) (gnus-group-prepare-flat-list-dead - (gnus-remove-if (lambda (group) + (seq-remove (lambda (group) (or (gnus-group-entry group) - (gnus-gethash group gnus-killed-hashtb))) + (gethash group gnus-killed-hashtb))) not-in-list) gnus-level-killed ?K regexp))) diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index b7477a7fa8..ed112273ca 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -1117,41 +1117,9 @@ gnus-alive-p (with-current-buffer gnus-group-buffer (eq major-mode 'gnus-group-mode)))) -(defun gnus-remove-if (predicate sequence &optional hash-table-p) - "Return a copy of SEQUENCE with all items satisfying PREDICATE removed. -SEQUENCE should be a list, a vector, or a string. Returns always a list. -If HASH-TABLE-P is non-nil, regards SEQUENCE as a hash table." - (let (out) - (if hash-table-p - (mapatoms (lambda (symbol) - (unless (funcall predicate symbol) - (push symbol out))) - sequence) - (unless (listp sequence) - (setq sequence (append sequence nil))) - (while sequence - (unless (funcall predicate (car sequence)) - (push (car sequence) out)) - (setq sequence (cdr sequence)))) - (nreverse out))) - -(defun gnus-remove-if-not (predicate sequence &optional hash-table-p) - "Return a copy of SEQUENCE with all items not satisfying PREDICATE removed. -SEQUENCE should be a list, a vector, or a string. Returns always a list. -If HASH-TABLE-P is non-nil, regards SEQUENCE as a hash table." - (let (out) - (if hash-table-p - (mapatoms (lambda (symbol) - (when (funcall predicate symbol) - (push symbol out))) - sequence) - (unless (listp sequence) - (setq sequence (append sequence nil))) - (while sequence - (when (funcall predicate (car sequence)) - (push (car sequence) out)) - (setq sequence (cdr sequence)))) - (nreverse out))) +(define-obsolete-function-alias 'gnus-remove-if 'seq-remove "27.1") + +(define-obsolete-function-alias 'gnus-remove-if-not 'seq-filter "27.1") (defun gnus-grep-in-list (word list) "Find if a WORD matches any regular expression in the given LIST." diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 8e47ae3f98..4f720463b4 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el @@ -513,7 +513,7 @@ gnus-get-buffer-window (memq frame '(t 0 visible))) (car (let ((frames (frames-on-display-list))) - (gnus-remove-if (lambda (win) (not (memq (window-frame win) + (seq-remove (lambda (win) (not (memq (window-frame win) frames))) (get-buffer-window-list buffer nil frame))))) (t diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 3458fdea71..597470c381 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -33,6 +33,7 @@ (require 'wid-edit) (require 'mm-util) (require 'nnheader) +(require 'seq) ;; These are defined afterwards with gnus-define-group-parameter (defvar gnus-ham-process-destinations) diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index ad58d29208..5ed80a9bb6 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -2034,7 +2034,7 @@ nnmail-purge-split-history "Remove all instances of GROUP from `nnmail-split-history'." (let ((history nnmail-split-history)) (while history - (setcar history (gnus-remove-if (lambda (e) (string= (car e) group)) + (setcar history (seq-remove (lambda (e) (string= (car e) group)) (car history))) (pop history)) (setq nnmail-split-history (delq nil nnmail-split-history)))) diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 708a3426af..3e4a87cee7 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el @@ -915,7 +915,7 @@ nnmaildir-request-scan (setq dirs (funcall srv-ls srv-dir nil "\\`[^.]" 'nosort) dirs (if (zerop (length target-prefix)) dirs - (gnus-remove-if + (seq-remove (lambda (dir) (and (>= (length dir) (length target-prefix)) (string= (substring dir 0 diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 9a3a562a5d..aa19c376d1 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el @@ -625,7 +625,7 @@ nnrss-mime-encode-string ;;; Snarf functions (defun nnrss-make-hash-index (item) (gnus-message 9 "nnrss: Making hash index of %s" (gnus-prin1-to-string item)) - (setq item (gnus-remove-if + (setq item (seq-remove (lambda (field) (when (listp field) (memq (car field) nnrss-ignore-article-fields))) -- 2.15.0 --=-=-=--