From: Kenichi Handa Date: Tue, 17 Jun 2003 10:54:39 +0000 (+0000) Subject: (x-get-selection): If the string returned by X-Git-Tag: ttn-vms-21-2-B4~9623 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f147fd76db3f412d36c2d764dcce44c91b307ca8;p=emacs.git (x-get-selection): If the string returned by x-get-selection-internal has text property `foreign-selection', decode it while preserving that property. --- 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."