>From 5bde054f8c80f64c15e105e21aaddccff67d9e7a Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Fri, 13 Apr 2018 12:47:30 +0100 Subject: [PATCH] Do not destructively modify interprogram paste * simple.el (kill-new, current-kill): Non-destructively reverse list returned by interprogram-paste-function. (bug#31097) --- lisp/simple.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index efe5406bf7..19e41344d1 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4369,7 +4369,8 @@ kill-new (funcall interprogram-paste-function)))) (when interprogram-paste (dolist (s (if (listp interprogram-paste) - (nreverse interprogram-paste) + ;; Use `reverse' to avoid modifying external data + (reverse interprogram-paste) (list interprogram-paste))) (unless (and kill-do-not-save-duplicates (equal-including-properties s (car kill-ring))) @@ -4448,7 +4449,8 @@ current-kill ;; selection, with identical text. (let ((interprogram-cut-function nil)) (if (listp interprogram-paste) - (mapc 'kill-new (nreverse interprogram-paste)) + ;; Use `reverse' to avoid modifying external data + (mapc #'kill-new (reverse interprogram-paste)) (kill-new interprogram-paste))) (car kill-ring)) (or kill-ring (error "Kill ring is empty")) -- 2.16.3