X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=lisp%2Fselect.el;fp=lisp%2Fselect.el;h=f21d44090e3204a368fbd27c59210c6c7e94a1ab;hp=338ea0cfa8833d2612642063a13f784ba2ec536a;hb=44e716ef11bd794a51f8c5b56c4f3f10a7dbf217;hpb=2416430cb588c7f7a7ca990d536c092f3af3a0b9 diff --git a/lisp/select.el b/lisp/select.el index 338ea0c..f21d440 100644 --- a/lisp/select.el +++ b/lisp/select.el @@ -40,7 +40,7 @@ COMPOUND_TEXT and STRING are the most commonly used data types. If a list is provided, the types are tried in sequence until there is a successful conversion.") -(defvar selection-is-clipboard-p nil +(defvar selection-sets-clipboard nil "Controls the selection's relationship to the clipboard. When non-nil, any operation that sets the primary selection will also set the clipboard.") @@ -75,21 +75,18 @@ set the clipboard.") "Return the value of one of the cut buffers. This will do nothing under anything other than X.") -(defun get-selection (&optional type data-type) +(defun get-selection-no-error (&optional type data-type) "Return the value of a Windows 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." - (let ((text (get-selection-no-error type data-type))) - (when (not (stringp text)) - (error "Selection is not a string: %S" text)) - text)) +says how to convert the data. Returns NIL if there is no selection" + (condition-case err (get-selection type data-type) (t nil))) -(defun get-selection-no-error (&optional type data-type) +(defun get-selection (&optional type data-type) "Return the value of a Windows 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. Returns NIL if there is no selection" +says how to convert the data. If there is no selection an error is signalled." (or type (setq type 'PRIMARY)) (or data-type (setq data-type selected-text-type)) (let ((text @@ -103,6 +100,8 @@ says how to convert the data. Returns NIL if there is no selection" (get-selection-internal type data-type)))) (when (and (consp text) (symbolp (car text))) (setq text (cdr text))) + (when (not (stringp text)) + (error "Selection is not a string: %S" text)) text)) ;; FSFmacs calls this `x-set-selection', and reverses the @@ -144,7 +143,7 @@ Interactively, the text of the region is used as the selection value." (disown-selection-internal type) (own-selection-internal type data) (when (and (eq type 'PRIMARY) - selection-is-clipboard-p) + selection-sets-clipboard) (own-selection-internal 'CLIPBOARD data))) (cond ((eq type 'PRIMARY) (setq primary-selection-extent