summaryrefslogtreecommitdiff
path: root/lisp/select.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-05-17 05:42:12 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-05-17 05:42:12 +0200
commitab263a798076c028812b9a747d6c4206b8090faf (patch)
treed0dd1a8b916bd318cd27a7cc5775fb2ae525f93c /lisp/select.el
parent54f5d678dccdf7b6a60579c6048e8cf87c81c4ae (diff)
downloademacs-ab263a798076c028812b9a747d6c4206b8090faf.tar.gz
emacs-ab263a798076c028812b9a747d6c4206b8090faf.tar.bz2
emacs-ab263a798076c028812b9a747d6c4206b8090faf.zip
(gui-get-selection): Avoid using `string-to-multibyte'
* lisp/select.el (gui-get-selection): Avoid using `string-to-multibyte' -- instead encode as `eight-bit' if the string is unibyte.
Diffstat (limited to 'lisp/select.el')
-rw-r--r--lisp/select.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/select.el b/lisp/select.el
index c79e923b743..3ea741d383e 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -308,8 +308,15 @@ the formats available in the clipboard if TYPE is `CLIPBOARD'."
('STRING 'iso-8859-1)
(_ (error "Unknown selection data type: %S"
type))))))
- (setq data (if coding (decode-coding-string data coding)
- (string-to-multibyte data))))
+ (setq data (cond
+ (coding
+ (decode-coding-string data coding))
+ ;; The last two cases are only possible in the
+ ;; C_STRING case.
+ ((multibyte-string-p data)
+ data)
+ (t
+ (encode-coding-string data 'eight-bit)))))
(setq next-selection-coding-system nil)
(put-text-property 0 (length data) 'foreign-selection data-type data))
data))