Function: gui--selection-value-internal
gui--selection-value-internal is a byte-compiled function defined in
select.el.gz.
Signature
(gui--selection-value-internal TYPE)
Documentation
Get a selection value of type TYPE.
Call gui-get-selection with an appropriate DATA-TYPE argument
decided by x-select-request-type. The return value is already
decoded. If gui-get-selection signals an error, return nil.
Source Code
;; Defined in /usr/src/emacs/lisp/select.el.gz
(defun gui--selection-value-internal (type)
"Get a selection value of type TYPE.
Call `gui-get-selection' with an appropriate DATA-TYPE argument
decided by `x-select-request-type'. The return value is already
decoded. If `gui-get-selection' signals an error, return nil."
;; The doc string of `interprogram-paste-function' says to return
;; nil if no other program has provided text to paste.
(unless (and gui-last-cut-in-clipboard
;; `gui-backend-selection-owner-p' might be unreliable on
;; some other window systems.
(memq window-system '(x haiku))
(eq type 'CLIPBOARD)
;; Should we unify this with gui--clipboard-selection-unchanged-p?
(gui-backend-selection-owner-p type))
(let ((request-type (if (memq window-system '(x pgtk haiku))
(or x-select-request-type
'(UTF8_STRING COMPOUND_TEXT STRING text/plain\;charset=utf-8))
'STRING))
text)
(with-demoted-errors "gui-get-selection: %S"
(if (consp request-type)
(while (and request-type (not text))
(setq text (gui-get-selection type (car request-type)))
(setq request-type (cdr request-type)))
(setq text (gui-get-selection type request-type))))
(if text
(remove-text-properties 0 (length text) '(foreign-selection nil) text))
text)))