diff options
author | Basil L. Contovounesios <contovob@tcd.ie> | 2018-04-13 12:47:30 +0100 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2018-04-14 01:20:03 -0400 |
commit | 2825d849451be45ea738e2d2b2567c834fe5a0fb (patch) | |
tree | 53743c2e4d44ab4ba46e3383fc05e6fd55e09093 | |
parent | 0263216ec39d0914f17b662a3e45b4163ab6cc78 (diff) | |
download | emacs-2825d849451be45ea738e2d2b2567c834fe5a0fb.tar.gz emacs-2825d849451be45ea738e2d2b2567c834fe5a0fb.tar.bz2 emacs-2825d849451be45ea738e2d2b2567c834fe5a0fb.zip |
Do not destructively modify interprogram paste
* simple.el (kill-new, current-kill): Non-destructively reverse list
returned by interprogram-paste-function. (bug#31097)
-rw-r--r-- | lisp/simple.el | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lisp/simple.el b/lisp/simple.el index efe5406bf70..dada65d4ee3 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4369,7 +4369,8 @@ argument should still be a \"useful\" string for such uses." (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 @@ move the yanking point; just return the Nth kill forward." ;; 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")) |