diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-03-24 05:32:10 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-03-24 05:32:10 -0400 |
commit | 288ecdf90cb971a3871f7e99e3948176ae4f0e85 (patch) | |
tree | e1f8bee8d50fc1325231f190536bd6246ae2abd8 /lisp/select.el | |
parent | f7a90cc85b470578133d6b143d2740995ad4496b (diff) | |
download | emacs-288ecdf90cb971a3871f7e99e3948176ae4f0e85.tar.gz emacs-288ecdf90cb971a3871f7e99e3948176ae4f0e85.tar.bz2 emacs-288ecdf90cb971a3871f7e99e3948176ae4f0e85.zip |
* lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq`
Diffstat (limited to 'lisp/select.el')
-rw-r--r-- | lisp/select.el | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/lisp/select.el b/lisp/select.el index 36452776e9a..90970f989a8 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) |