emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 288ecdf90c: * lisp/select.el (xselect-convert-to-targets): Use `d


From: Stefan Monnier
Subject: master 288ecdf90c: * lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq`
Date: Thu, 24 Mar 2022 05:32:20 -0400 (EDT)

branch: master
commit 288ecdf90cb971a3871f7e99e3948176ae4f0e85
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq`
---
 lisp/select.el | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/lisp/select.el b/lisp/select.el
index 36452776e9..90970f989a 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -547,25 +547,18 @@ two markers or an overlay.  Otherwise, it is nil."
        (xselect--int-to-cons len))))
 
 (defun xselect-convert-to-targets (selection _type value)
-  ;; return a vector of atoms, but remove duplicates first.
-  (let* ((all (cons 'TIMESTAMP
-                   (cons 'MULTIPLE
-                         (mapcar (lambda (conv)
-                                    (if (or (not (consp (cdr conv)))
-                                            (funcall (cadr conv) selection
-                                                     (car conv) value))
-                                        (car conv)
-                                      '_EMACS_INTERNAL))
-                                  selection-converter-alist))))
-        (rest all))
-    (while rest
-      (cond ((memq (car rest) (cdr rest))
-            (setcdr rest (delq (car rest) (cdr rest))))
-           ((eq (car (cdr rest)) '_EMACS_INTERNAL)
-            (setcdr rest (cdr (cdr rest))))
-           (t
-            (setq rest (cdr rest)))))
-    (apply 'vector all)))
+  ;; Return a vector of atoms, but remove duplicates first.
+  (apply #'vector
+         (delete-dups
+          `( TIMESTAMP MULTIPLE
+             . ,(delq '_EMACS_INTERNAL
+                      (mapcar (lambda (conv)
+                                (if (or (not (consp (cdr conv)))
+                                        (funcall (cadr conv) selection
+                                                 (car conv) value))
+                                    (car conv)
+                                  '_EMACS_INTERNAL))
+                              selection-converter-alist))))))
 
 (defun xselect-convert-to-delete (selection _type _value)
   (gui-backend-set-selection selection nil)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]