changeset 18648:5deb269b970f

(Fstart_process): If enable-multibyte-characters is nil, set coding system for decoding output of process to emacs-mule, and set coding system for encoding to nil. (Fopen_network_stream): If enable-multibyte-characters is nil, set coding systems for decoding and encoding to nil.
author Kenichi Handa <handa@m17n.org>
date Mon, 07 Jul 1997 00:59:44 +0000
parents 72b27986e71d
children b0b06137ebfb
files src/process.c
diffstat 1 files changed, 32 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Mon Jul 07 00:59:44 1997 +0000
+++ b/src/process.c	Mon Jul 07 00:59:44 1997 +0000
@@ -1174,7 +1174,11 @@
       Lisp_Object val, *args2;
       struct gcpro gcpro1;
 
-      if (NILP (val = Vcoding_system_for_read))
+      if (!NILP (Vcoding_system_for_read))
+	val = Vcoding_system_for_read;
+      else if (NILP (current_buffer->enable_multibyte_characters))
+	val = Qemacs_mule;
+      else
 	{
 	  args2 = (Lisp_Object *) alloca ((nargs + 1) * sizeof *args2);
 	  args2[0] = Qstart_process;
@@ -1186,10 +1190,16 @@
 	    val = XCONS (coding_systems)->car;
 	  else if (CONSP (Vdefault_process_coding_system))
 	    val = XCONS (Vdefault_process_coding_system)->car;
+	  else
+	    val = Qnil;
 	}
       XPROCESS (proc)->decode_coding_system = val;
 
-      if (NILP (val = Vcoding_system_for_write))
+      if (!NILP (Vcoding_system_for_write))
+	val = Vcoding_system_for_write;
+      else if (NILP (current_buffer->enable_multibyte_characters))
+	val = Qnil;
+      else
 	{
 	  if (EQ (coding_systems, Qt))
 	    {
@@ -1205,6 +1215,8 @@
 	    val = XCONS (coding_systems)->cdr;
 	  else if (CONSP (Vdefault_process_coding_system))
 	    val = XCONS (Vdefault_process_coding_system)->cdr;
+	  else
+	    val = Qnil;
 	}
       XPROCESS (proc)->encode_coding_system = val;
     }
@@ -1907,7 +1919,15 @@
       Lisp_Object coding_systems = Qt;
       Lisp_Object args[5], val;
 
-      if (NILP (val = Vcoding_system_for_read))
+      if (!NILP (Vcoding_system_for_read))
+	val = Vcoding_system_for_read;
+      else if (NILP (current_buffer->enable_multibyte_characters))
+	/* We dare not decode end-of-line format by setting VAL to
+           Qemacs_mule, because the existing Emacs Lisp libraries
+           assume that they receive bare code including a sequene of
+           CR LF.  */
+	val = Qnil;
+      else
 	{
 	  args[0] = Qopen_network_stream, args[1] = name,
 	    args[2] = buffer, args[3] = host, args[4] = service;
@@ -1918,10 +1938,16 @@
 	    val = XCONS (coding_systems)->car;
 	  else if (CONSP (Vdefault_process_coding_system))
 	    val = XCONS (Vdefault_process_coding_system)->car;
+	  else
+	    val = Qnil;
 	}
       XPROCESS (proc)->decode_coding_system = val;
 
-      if (NILP (val = Vcoding_system_for_write))
+      if (!NILP (Vcoding_system_for_write))
+	val = Vcoding_system_for_write;
+      else if (NILP (current_buffer->enable_multibyte_characters))
+	val = Qnil;
+      else
 	{
 	  if (EQ (coding_systems, Qt))
 	    {
@@ -1935,6 +1961,8 @@
 	    val = XCONS (coding_systems)->cdr;
 	  else if (CONSP (Vdefault_process_coding_system))
 	    val = XCONS (Vdefault_process_coding_system)->cdr;
+	  else
+	    val = Qnil;
 	}
       XPROCESS (proc)->encode_coding_system = val;
     }