'select-make-extent-for-selection)
(define-obsolete-function-alias 'x-cut-copy-clear-internal 'cut-copy-clear-internal)
(define-obsolete-function-alias 'x-get-selection 'get-selection)
+(define-obsolete-function-alias 'x-get-clipboard 'get-clipboard)
+(define-obsolete-function-alias 'x-yank-clipboard-selection
+ 'yank-clipboard-selection)
(define-obsolete-function-alias 'x-disown-selection-internal
'disown-selection-internal)
"Return text selected from some X window."
(get-selection 'SECONDARY))
-(defun x-get-clipboard ()
- "Return text pasted to the clipboard."
- (get-selection 'CLIPBOARD))
-
(defun x-own-secondary-selection (selection &optional type)
"Make a secondary X Selection of the given argument. The argument may be a
string or a cons of two markers (in which case the selection is considered to
(list (cons ;; these need not be ordered.
(copy-marker (point-marker))
(copy-marker (mark-marker))))))
- (x-own-selection selection 'SECONDARY))
+ (own-selection selection 'SECONDARY))
(defun x-notice-selection-requests (selection type successful)
- "for possible use as the value of x-sent-selection-hooks."
+ "for possible use as the value of `x-sent-selection-hooks'."
(if (not successful)
(message "Selection request failed to convert %s to %s"
selection type)
(message "Sent selection %s as %s" selection type)))
(defun x-notice-selection-failures (selection type successful)
- "for possible use as the value of x-sent-selection-hooks."
+ "for possible use as the value of `x-sent-selection-hooks'."
(or successful
(message "Selection request failed to convert %s to %s"
selection type)))
;(setq x-sent-selection-hooks 'x-notice-selection-failures)
\f
-;;; Selections in killed buffers
-;;; this function is called by kill-buffer as if it were on the
-;;; kill-buffer-hook (though it isn't really).
-
-(defun xselect-kill-buffer-hook ()
- ;; Probably the right thing is to write a C function to return a list
- ;; of the selections which emacs owns, since it could conceivably own
- ;; a user-defined selection type that we've never heard of.
- (xselect-kill-buffer-hook-1 'PRIMARY)
- (xselect-kill-buffer-hook-1 'SECONDARY)
- (xselect-kill-buffer-hook-1 'CLIPBOARD))
-
-(defun xselect-kill-buffer-hook-1 (selection)
- (let (value)
- (if (and (x-selection-owner-p selection)
- (setq value (get-selection-internal selection '_EMACS_INTERNAL))
- ;; The _EMACS_INTERNAL selection type has a converter registered
- ;; for it that does no translation. This only works if emacs is
- ;; requesting the selection from itself. We could have done this
- ;; by writing a C function to return the raw selection data, and
- ;; that might be the right way to do this, but this was easy.
- (or (and (consp value)
- (markerp (car value))
- (eq (current-buffer) (marker-buffer (car value))))
- (and (extent-live-p value)
- (eq (current-buffer) (extent-object value)))
- (and (extentp value) (not (extent-live-p value)))))
- (disown-selection-internal selection))))
-
-\f
;;; Cut Buffer support
;;; FSF name x-get-cut-buffer
"Return the value of one of the 8 X server cut buffers.
Optional arg WHICH-ONE should be a number from 0 to 7, defaulting to 0.
Cut buffers are considered obsolete; you should use selections instead.
-This function does nothing if support for cut buffers was not compiled
-into Emacs."
- (and (fboundp 'x-get-cutbuffer-internal)
- (x-get-cutbuffer-internal
- (if which-one
- (aref [CUT_BUFFER0 CUT_BUFFER1 CUT_BUFFER2 CUT_BUFFER3
- CUT_BUFFER4 CUT_BUFFER5 CUT_BUFFER6 CUT_BUFFER7]
- which-one)
- 'CUT_BUFFER0))))
+This function does nothing if cut buffer support was not compiled in."
+ (when (fboundp 'x-get-cutbuffer-internal)
+ (x-get-cutbuffer-internal
+ (aref [CUT_BUFFER0 CUT_BUFFER1 CUT_BUFFER2 CUT_BUFFER3
+ CUT_BUFFER4 CUT_BUFFER5 CUT_BUFFER6 CUT_BUFFER7]
+ (or which-one 0)))))
;;; FSF name x-set-cut-buffer
(defun x-store-cutbuffer (string &optional push)
"Store STRING into the X server's primary cut buffer.
-If PUSH is non-nil, also rotate the cut buffers:
-this means the previous value of the primary cut buffer moves the second
+If optional arg PUSH is non-nil, also rotate the cut buffers: this
+means the previous value of the primary cut buffer moves to the second
cut buffer, and the second to the third, and so on (there are 8 buffers.)
Cut buffers are considered obsolete; you should use selections instead.
-This function does nothing if support for cut buffers was not compiled
-into Emacs."
- (and (fboundp 'x-store-cutbuffer-internal)
- (progn
- ;; Check the data type of STRING.
- (substring string 0 0)
- (if push
- (x-rotate-cutbuffers-internal 1))
- (x-store-cutbuffer-internal 'CUT_BUFFER0 string))))
+This function does nothing if cut buffer support was not compiled in."
+ (when (fboundp 'x-store-cutbuffer-internal)
+ (when push
+ (x-rotate-cutbuffers-internal 1))
+ (x-store-cutbuffer-internal 'CUT_BUFFER0 string)))
\f
-;;; Random utility functions
-
-(defun x-yank-clipboard-selection ()
- "Insert the current Clipboard selection at point."
- (interactive "*")
- (setq last-command nil)
- (setq this-command 'yank) ; so that yank-pop works.
- (let ((clip (x-get-clipboard)))
- (or clip (error "there is no clipboard selection"))
- (push-mark)
- (insert clip)))
-\f
-
;FSFmacs (provide 'select)
;;; x-select.el ends here.