From: Eli Zaretskii Date: Wed, 5 Jun 2002 17:38:19 +0000 (+0000) Subject: (lisp_data_to_selection_data): If the requested type X-Git-Tag: ttn-vms-21-2-B4~14763 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8f9b87b5561d282c9e410da2d920b2cd8875e13f;p=emacs.git (lisp_data_to_selection_data): If the requested type is STRING, call string_make_unibyte to encode the selected text as a string. --- diff --git a/src/ChangeLog b/src/ChangeLog index 941ded6b959..6bef61ab14e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2002-06-05 Eli Zaretskii + * xselect.c (lisp_data_to_selection_data): If the requested type + is STRING, call string_make_unibyte to encode the selected text + as a string. + * window.c (Fset_window_hscroll): Doc fix. 2002-06-05 Pavel Jan,Bm(Bk diff --git a/src/xselect.c b/src/xselect.c index 28b3338757e..3e1c9d0edf9 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -1757,14 +1757,32 @@ lisp_data_to_selection_data (display, obj, /* Since we are now handling multilingual text, we must consider sending back compound text. */ int stringp; + extern Lisp_Object Qcompound_text; if (NILP (Vnext_selection_coding_system)) Vnext_selection_coding_system = Vselection_coding_system; *format_ret = 8; - *data_ret = x_encode_text (obj, Vnext_selection_coding_system, 1, - (int *) size_ret, &stringp); - *nofree_ret = (*data_ret == XSTRING (obj)->data); + /* If the requested type is STRING, we must encode the selected + text as a string, even if the coding system set by the user + is ctext or its derivatives. */ + if (EQ (type, QSTRING) + && (EQ (Vnext_selection_coding_system, Qcompound_text) + || EQ (Vnext_selection_coding_system, + Qcompound_text_with_extensions))) + { + Lisp_Object unibyte_string; + + unibyte_string = string_make_unibyte (obj); + *data_ret = XSTRING (unibyte_string)->data; + *nofree_ret = 1; + } + else + { + *data_ret = x_encode_text (obj, Vnext_selection_coding_system, 1, + (int *) size_ret, &stringp); + *nofree_ret = (*data_ret == XSTRING (obj)->data); + } if (NILP (type)) type = (stringp ? QSTRING : QCOMPOUND_TEXT); Vlast_coding_system_used = (*nofree_ret