(insert clip))))
(defun get-clipboard ()
- "Return text pasted to the clipboard."
+ "Return text pasted to the clipboard.
+Not suitable for `interprogram-paste-function', use `get-clipboard-foreign'."
(get-selection 'CLIPBOARD))
+(defun get-clipboard-foreign ()
+ "Return text pasted to the clipboard by another program.
+See `interprogram-paste-function' for more information."
+ (get-selection-foreign 'CLIPBOARD))
+
(define-device-method get-cutbuffer
"Return the value of one of the cut buffers.
This will do nothing under anything other than X.")
"Return the value of a window-system selection.
The argument TYPE (default `PRIMARY') says which selection,
and the argument DATA-TYPE (default `STRING', or `COMPOUND_TEXT' under Mule)
-says how to convert the data. If there is no selection an error is signalled."
+says how to convert the data. If there is no selection an error is signalled.
+Not suitable in a `interprogram-paste-function', q.v."
(or type (setq type 'PRIMARY))
(or data-type (setq data-type selected-text-type))
- (let ((text
- (if (consp data-type)
- (condition-case err
- (get-selection-internal type (car data-type))
- (selection-conversion-error
- (if (cdr data-type)
- (get-selection type (cdr data-type))
- (signal (car err) (cdr err)))))
- (get-selection-internal type data-type))))
- text))
+ (if (consp data-type)
+ (condition-case err
+ (get-selection-internal type (car data-type))
+ (selection-conversion-error
+ (if (cdr data-type)
+ (get-selection type (cdr data-type))
+ (signal (car err) (cdr err)))))
+ (get-selection-internal type data-type)))
+
+(defun get-selection-foreign (&optional type data-type)
+ "Return the value of a window-system selection, or nil if XEmacs owns it.
+The argument TYPE (default `PRIMARY') says which selection,
+and the argument DATA-TYPE (default `STRING', or `COMPOUND_TEXT' under Mule)
+says how to convert the data. If there is no selection an error is signalled.
+See `interprogram-paste-function' for more information."
+ (unless (selection-owner-p type)
+ (get-selection type data-type)))
;; FSFmacs calls this `x-set-selection', and reverses the
;; first two arguments (duh ...). This order is more logical.
(own-selection string 'CLIPBOARD))
(defun disown-selection (&optional secondary-p)
- "Assuming we own the selection, disown it. With an argument, discard the
-secondary selection instead of the primary selection."
+ "Assuming we own the selection, disown it.
+With an argument, discard the secondary selection instead of the
+primary selection."
(disown-selection-internal (if secondary-p 'SECONDARY 'PRIMARY))
(when (and selection-sets-clipboard
(or (not secondary-p)