emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master fda07b56d9e 2/2: Revise selection documentation


From: Po Lu
Subject: master fda07b56d9e 2/2: Revise selection documentation
Date: Thu, 26 Oct 2023 00:50:50 -0400 (EDT)

branch: master
commit fda07b56d9e985b6ae74a6845453b55da0345e3c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Revise selection documentation
    
    * doc/lispref/frames.texi (Window System Selections):
    (X Selections):
    
    * lisp/select.el (selection-coding-system): Correct
    misunderstandings about the nature of selection-coding-system
    under X.
---
 doc/lispref/frames.texi | 27 ++++++++++++++-------------
 lisp/select.el          | 39 ++++++++++++++++++++-------------------
 2 files changed, 34 insertions(+), 32 deletions(-)

diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 1a7af04b103..ef5ed146015 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -4058,11 +4058,12 @@ is used to encode selection data, and takes effect on 
MS-DOS,
 MS-Windows and X@.
 
 Under MS-DOS and MS-Windows, it is the coding system by which all
-clipboard text will be encoded and decoded, whereas on X it merely
-supplies the EOL format of the selection text sent in response to a
-request for text encoded by a matching coding system; which is to say
-that if its value is @code{utf-8-dos}, it will influence requests for
-@code{UTF8_STRING} data, but not those for @code{STRING}.
+non-ASCII clipboard text will be encoded and decoded; if set under X,
+it provides the coding system calls to @code{gui-get-selection} will
+decode selection data for a subset of text data types by, and also
+forces replies to selection requests for the polymorphic @code{TEXT}
+data type to be encoded by the @code{compound-text-with-extensions}
+coding system rather than Unicode.
 
 Its default value is the system code page under MS-Windows 95, 98 or
 Me, @code{utf-16le-dos} under NT/W2K/XP, @code{iso-latin-1-dos} on
@@ -4154,12 +4155,12 @@ format and data type to convert the data transferred by 
the selection
 owner to a Lisp representation, which @code{gui-get-selection}
 returns.
 
-  By default, Emacs converts selection data consisting of any series
-of bytes to a unibyte string holding those bytes, that consisting of a
-single 16-bit or 32-bit word as an unsigned number, and that
-consisting of multiple such words as a vector of unsigned numbers.
-However, Emacs applies special treatment for data from the following
-conversion targets:
+  Emacs converts selection data consisting of any series of bytes to a
+unibyte string holding those bytes, that consisting of a single 16-bit
+or 32-bit word as an unsigned number, and that consisting of multiple
+such words as a vector of unsigned numbers.  The exceptions to this
+general pattern are that Emacs applies special treatment for data from
+the following conversion targets:
 
 @table @code
 @item INTEGER
@@ -4384,8 +4385,8 @@ This selection converter returns selection data as:
 @itemize @bullet
 @item
 A string of type @code{C_STRING}, if the selection contents contain no
-multibyte characters, or contains 8-bit characters with all 8 bits
-set.
+multibyte characters, or contain ``raw 8-bit bytes'' (@pxref{Text
+Representations}).
 
 @item
 A string of type @code{STRING}, if the selection contents can be
diff --git a/lisp/select.el b/lisp/select.el
index 09c678867d0..f62f7b07239 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -49,27 +49,28 @@ the current system default encoding on 9x/Me, `utf-16le-dos'
 \(Unicode) on NT/W2K/XP, and `iso-latin-1-dos' on MS-DOS.
 
 For X Windows:
-When sending text via selection and clipboard, if the target
-data-type matches this coding system according to the table
-below, it is used for encoding the text.  Otherwise (including
-the case that this variable is nil), a proper coding system is
-selected as below:
-
-data-type      coding system
----------      -------------
-UTF8_STRING    utf-8
-COMPOUND_TEXT  compound-text-with-extensions
-STRING         iso-latin-1
-C_STRING       raw-text-unix
-
-When receiving text, if this coding system is non-nil, it is used
-for decoding regardless of the data-type.  If this is nil, a
-proper coding system is used according to the data-type as above.
 
-See also the documentation of the variable `x-select-request-type' how
-to control which data-type to request for receiving text.
+This coding system replaces that of the default coding system
+selection text is encoded by in reaction to a request for the
+polymorphic `TEXT' selection target when its base coding system
+is compatible with `compound-text' and the text being encoded
+cannot be rendered Latin-1 without loss of information.
+
+It also replaces the coding system by which calls to
+`gui-get-selection' decode selection requests for text data
+types, which are enumerated below beside their respective coding
+systems otherwise used.
+
+DATA TYPE                      CODING SYSTEM
+--------------------------     -------------
+UTF8_STRING                    utf-8
+text/plain\\;charset=utf-8     utf-8
+COMPOUND_TEXT                  compound-text-with-extensions
+STRING                         iso-latin-1
+C_STRING                       raw-text-unix
 
-The default value is nil."
+See also the documentation of the variable `x-select-request-type' how
+to control which data-type to request for receiving text."
   :type 'coding-system
   :group 'mule
   ;; Default was compound-text-with-extensions in 22.x (pre-unicode).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]