X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fselect.el;h=b185dea27388e587421a9d364dc7407e1aa8e280;hb=293bf3c60cd6af9d23cb86da2cdd94927517cea3;hp=390564105fbd486310f0e7ede0670b417302315b;hpb=98a6e4055a1fa624c592ac06f79287d55196ca37;p=chise%2Fxemacs-chise.git.1 diff --git a/lisp/select.el b/lisp/select.el index 3905641..b185dea 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -75,9 +75,15 @@ set the clipboard.") (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.") @@ -93,19 +99,27 @@ says how to convert the data. Returns NIL if there is no selection." "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. @@ -196,8 +210,9 @@ See `interprogram-cut-function' for more information." (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)