Mercurial > emacs
changeset 43483:dcb45a76827f
(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.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sat, 23 Feb 2002 18:12:30 +0000 |
parents | a435fc772003 |
children | a3cecd273126 |
files | src/w32select.c |
diffstat | 1 files changed, 24 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- 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 {