# HG changeset patch # User Kenichi Handa # Date 1044865469 0 # Node ID f118fc83f5a56f4ec6451512f878e300cec3e318 # Parent cbec1327e2f156eb1260535d6106dd06233c6e38 *** empty log message *** diff -r cbec1327e2f1 -r f118fc83f5a5 etc/NEWS --- a/etc/NEWS Mon Feb 10 07:58:29 2003 +0000 +++ b/etc/NEWS Mon Feb 10 08:24:29 2003 +0000 @@ -1168,6 +1168,23 @@ * Lisp Changes in Emacs 21.4 +** New function `set-process-filter-multibyte' sets the multibyteness +of a string given to a process's filter. + +** New function `process-filter-multibyte-p' returns t if +a string given to a process's filter is multibyte. + +** A filter function of a process is called with a multibyte string if +the filter's multibyteness is t. That multibyteness is decided by the +value of `default-enable-multibyte-characters' when the process is +created and can be changed later by `set-process-filter-multibyte'. + +** If a process's coding system is raw-text or no-conversion and its +buffer is multibyte, the output of the process is at first converted +to multibyte by `string-to-multibyte' then inserted in the buffer. +Previously, it was converted to multibyte by `string-as-multibyte', +which was not compatible with the behaviour of file reading. + ** New function `string-to-multibyte' converts a unibyte string to a multibyte string with the same individual character codes. diff -r cbec1327e2f1 -r f118fc83f5a5 src/ChangeLog --- a/src/ChangeLog Mon Feb 10 07:58:29 2003 +0000 +++ b/src/ChangeLog Mon Feb 10 08:24:29 2003 +0000 @@ -1,3 +1,36 @@ +2003-02-10 Kenichi Handa + + * process.c (QCfilter_multibyte): New variable. + (setup_process_coding_systems): New function. + (Fset_process_buffer, Fset_process_filter): Call + setup_process_coding_systems. + (Fstart_process): Initialize the member `filter_multibyte' of + struct Lisp_Process. + (create_process): Call setup_process_coding_systems. + (Fmake_network_process): New keyward `:filter-multibyte'. + Initialize the member `filter_multibyte' of struct Lisp_Process. + Call setup_process_coding_systems. + (server_accept_connection): Call setup_process_coding_systems. + (read_process_output): If the process has a filter, decide the + multibyteness of a string to given to the filter by + `filter_multibyte' member of the process. If the process doesn't + have a filter and the result of conversion is unibyte, use + Fstring_to_multibyte (not Fstring_make_multibyte) to get the + multibyte form. + (Fset_process_coding_system): Call setup_process_coding_systems. + (Fset_process_filter_multibyte): New function. + (Fprocess_filter_multibyte_p): New function. + (syms_of_process): Intern and staticpro QCfilter_multibyte. + Defsubr Sset_process_filter_multibyte and + Sprocess_filter_multibyte_p. + + * process.h (struct Lisp_Process): New member filter_multibyte. + + * lisp.h (setup_process_coding_systems): Add prototype. + + * buffer.c (Fset_buffer_multibyte): If the current buffer has a + process, update coding systems for the process. + 2003-02-09 Kenichi Handa * fns.c (string_to_multibyte): New function.