diff options
author | Kenichi Handa <handa@m17n.org> | 2003-06-17 10:54:39 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2003-06-17 10:54:39 +0000 |
commit | f147fd76db3f412d36c2d764dcce44c91b307ca8 (patch) | |
tree | 214c5ce91d2329dadbb0c2b4990075f1fe84d744 /lisp/select.el | |
parent | 0c6db68bc0f044e1e8b4b3a05cc08a4715350ada (diff) | |
download | emacs-f147fd76db3f412d36c2d764dcce44c91b307ca8.tar.gz |
(x-get-selection): If the string returned by
x-get-selection-internal has text property `foreign-selection',
decode it while preserving that property.
Diffstat (limited to 'lisp/select.el')
-rw-r--r-- | lisp/select.el | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lisp/select.el b/lisp/select.el index 618e10f4021..f679b27805a 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -38,7 +38,18 @@ how to convert the data. TYPE may be `SECONDARY' or `CLIPBOARD', in addition to `PRIMARY'. DATA-TYPE is usually `STRING', but can also be one of the symbols in `selection-converter-alist', which see." - (x-get-selection-internal (or type 'PRIMARY) (or data-type 'STRING))) + (let ((data (x-get-selection-internal (or type 'PRIMARY) + (or data-type 'STRING))) + coding) + (when (and (stringp data) + (setq data-type (get-text-property 0 'foreign-selection data))) + (setq coding (if (eq data-type 'UTF8_STRING) + 'utf-8 + (or next-selection-coding-system + selection-coding-system)) + data (decode-coding-string data coding)) + (put-text-property 0 (length data) 'foreign-selection data-type data)) + data)) (defun x-get-clipboard () "Return text pasted to the clipboard." |