From 8bc49fd1f3a9cdcf01d8e9bfcc7046527778cef3 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Thu, 16 Jul 1998 00:14:44 +0000 Subject: [PATCH] (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. --- src/process.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/process.c b/src/process.c index c8ee4b96ea9..4d362b95d1e 100644 --- a/src/process.c +++ b/src/process.c @@ -2911,21 +2911,24 @@ read_process_output (proc, channel) : 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 @@ read_process_output (proc, channel) 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) -- 2.39.2