Mercurial > emacs
changeset 22763:059f1c33af70
(read_process_output): Even if we read data without
code conversion, calculate character counts. If we insert the
data into a unibyte buffer, treat the data as unibyte.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 16 Jul 1998 00:14:44 +0000 |
parents | 1de4d5771a8f |
children | 8543c4052dd2 |
files | src/process.c |
diffstat | 1 files changed, 18 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/process.c Wed Jul 15 10:21:04 1998 +0000 +++ b/src/process.c Thu Jul 16 00:14:44 1998 +0000 @@ -2911,21 +2911,24 @@ : coding->produced_char); chars_in_decoding_buf = 1; } -#ifdef VMS - else if (chars_allocated) + else { - /* Although we don't have to decode the received data, we must - move it to an area which we don't have to free. */ - if (! STRINGP (p->decoding_buf) - || STRING_BYTES (XSTRING (p->decoding_buf)) < nbytes) - p->decoding_buf = make_uninit_string (nbytes); - bcopy (chars, XSTRING (p->decoding_buf)->data, nbytes); - free (chars); - chars = XSTRING (p->decoding_buf)->data; +#ifdef VMS + if (chars_allocated) + { + /* Although we don't have to decode the received data, we + must move it to an area which we don't have to free. */ + if (! STRINGP (p->decoding_buf) + || STRING_BYTES (XSTRING (p->decoding_buf)) < nbytes) + p->decoding_buf = make_uninit_string (nbytes); + bcopy (chars, XSTRING (p->decoding_buf)->data, nbytes); + free (chars); + chars = XSTRING (p->decoding_buf)->data; + chars_in_decoding_buf = 1; + } +#endif nchars = multibyte_chars_in_text (chars, nbytes); - chars_in_decoding_buf = 1; } -#endif Vlast_coding_system_used = coding->symbol; @@ -3054,6 +3057,9 @@ if (! (BEGV <= PT && PT <= ZV)) Fwiden (); + if (NILP (current_buffer->enable_multibyte_characters)) + nchars = nbytes; + /* Insert before markers in case we are inserting where the buffer's mark is, and the user's next command is Meta-y. */ if (chars_in_decoding_buf)