Window System Selections
========================
The X server records a set of "selections" which permit transfer of
data between application programs. The various selections are
distinguished by "selection types", represented in Emacs by symbols. X
clients including Emacs can read or set the selection for any given
type.
- Function: x-set-selection type data
This function sets a "selection" in the X server. It takes two
arguments: a selection type TYPE, and the value to assign to it,
DATA. If DATA is `nil', it means to clear out the selection.
Otherwise, DATA may be a string, a symbol, an integer (or a cons
of two integers or list of two integers), an overlay, or a cons of
two markers pointing to the same buffer. An overlay or a pair of
markers stands for text in the overlay or between the markers.
The argument DATA may also be a vector of valid non-vector
selection values.
Each possible TYPE has its own selection value, which changes
independently. The usual values of TYPE are `PRIMARY' and
`SECONDARY'; these are symbols with upper-case names, in accord
with X Window System conventions. The default is `PRIMARY'.
- Function: x-get-selection &optional type data-type
This function accesses selections set up by Emacs or by other X
clients. It takes two optional arguments, TYPE and DATA-TYPE.
The default for TYPE, the selection type, is `PRIMARY'.
The DATA-TYPE argument specifies the form of data conversion to
use, to convert the raw data obtained from another X client into
Lisp data. Meaningful values include `TEXT', `STRING', `TARGETS',
`LENGTH', `DELETE', `FILE_NAME', `CHARACTER_POSITION',
`LINE_NUMBER', `COLUMN_NUMBER', `OWNER_OS', `HOST_NAME', `USER',
`CLASS', `NAME', `ATOM', and `INTEGER'. (These are symbols with
upper-case names in accord with X conventions.) The default for
DATA-TYPE is `STRING'.
The X server also has a set of numbered "cut buffers" which can
store text or other data being moved between applications. Cut buffers
are considered obsolete, but Emacs supports them for the sake of X
clients that still use them.
- Function: x-get-cut-buffer n
This function returns the contents of cut buffer number N.
- Function: x-set-cut-buffer string &optional push
This function stores STRING into the first cut buffer (cut buffer
0). If PUSH is `nil', only the first cut buffer is changed. If
PUSH is non-`nil', that says to move the values down through the
series of cut buffers, much like the way successive kills in Emacs
move down the kill ring. In other words, the previous value of
the first cut buffer moves into the second cut buffer, and the
second to the third, and so on through all eight cut buffers.
- Variable: selection-coding-system
This variable specifies the coding system to use when reading and
writing selections, the clipboard, or a cut buffer. Note:Coding
Systems. The default is `compound-text', which converts to the
text representation that X11 normally uses.
When Emacs runs on MS-Windows, it does not implement X selections in
general, but it does support the clipboard. `x-get-selection' and
`x-set-selection' on MS-Windows support the text data type only; if the
clipboard holds other types of data, Emacs treats the clipboard as
empty.
- User Option: x-select-enable-clipboard
If this is non-`nil', the Emacs yank functions consult the
clipboard before the primary selection, and the kill functions
store in the clipboard as well as the primary selection.
Otherwise they do not access the clipboard at all. The default is
`nil' on most systems, but `t' on MS-Windows.