# HG changeset patch # User Jason Rumney # Date 1014487950 0 # Node ID dcb45a76827fefd40026dac6f1f8f45a39692a42 # Parent a435fc7720031d0984dcaa4575ab7ef3117cdcad (Fw32_set_clipboard_data): Run pre-write-conversion on the string before encoding it. (Fw32_get_clipboard_data): Run post-read-conversion on the string after decoding it. diff -r a435fc772003 -r dcb45a76827f src/w32select.c --- a/src/w32select.c Sat Feb 23 17:14:34 2002 +0000 +++ b/src/w32select.c Sat Feb 23 18:12:30 2002 +0000 @@ -197,6 +197,13 @@ Vnext_selection_coding_system = Vselection_coding_system; setup_coding_system (Fcheck_coding_system (Vnext_selection_coding_system), &coding); + if (SYMBOLP (coding.pre_write_conversion) + && !NILP (Ffboundp (coding.pre_write_conversion))) + { + string = run_pre_post_conversion_on_str (string, &coding, 1); + src = XSTRING (string)->data; + nbytes = STRING_BYTES (XSTRING (string)); + } coding.src_multibyte = 1; coding.dst_multibyte = 0; Vnext_selection_coding_system = Qnil; @@ -294,28 +301,21 @@ && memcmp(last_clipboard_text, src, nbytes) == 0) goto closeclip; - if ( -#if 1 - 1 -#else - ! NILP (buffer_defaults.enable_multibyte_characters) -#endif - ) - { - /* If the clipboard data contains any non-ascii code, we - need to decode it. */ - int i; + { + /* If the clipboard data contains any non-ascii code, we + need to decode it. */ + int i; - for (i = 0; i < nbytes; i++) - { - if (src[i] >= 0x80) - { - require_decoding = 1; - break; - } - } - } - + for (i = 0; i < nbytes; i++) + { + if (src[i] >= 0x80) + { + require_decoding = 1; + break; + } + } + } + if (require_decoding) { int bufsize; @@ -337,6 +337,9 @@ ret = make_string_from_bytes ((char *) buf, coding.produced_char, coding.produced); xfree (buf); + if (SYMBOLP (coding.post_read_conversion) + && !NILP (Ffboundp (coding.post_read_conversion))) + ret = run_pre_post_conversion_on_str (ret, &coding, 0); } else {