comparison src/file-coding.c @ 4647:e4ed58cb0e5b

Fix bugs with #'find-file, 0-length files, & coding-system-for-read specified. src/ChangeLog addition: 2009-07-11 Aidan Kehoe <kehoea@parhasard.net> * file-coding.c (undecided_canonicalize_after_coding): If no data have been seen, or if coding_stream_canonicalize_after_coding gives nil, pass back str->codesys, which will be of type undecided (the same as the old behaviour) but will reflect any CODESYS argument passed to make_coding_input_stream. See also the change in lisp/code-files.el lisp/ChangeLog addition: 2009-07-11 Aidan Kehoe <kehoea@parhasard.net> * code-files.el (insert-file-contents): Take advantage of more sensible behaviour from #'insert-file-contents-internal, allowing us to actually follow the documented coding system behaviour for nonexistent files (that is, buffer-file-coding-system reflects coding-system-for-read &c., not becoming undecided for either zero-length or nonexistent files). tests/ChangeLog addition: 2009-07-11 Aidan Kehoe <kehoea@parhasard.net> * automated/mule-tests.el: Check for Richard Zidlicky's bug of http://mid.gmane.org/20090602194123.GA5163@linux-m68k.org; also check that supplying CODESYS to #'find-file is respected both for nonexistent files and zero-length existing files.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 11 Jul 2009 16:33:35 +0100
parents 80e0588fb42f
children 257b468bf2ca
comparison
equal deleted inserted replaced
4646:6c6bfdb80a0c 4647:e4ed58cb0e5b
4076 4076
4077 if (str->direction == CODING_ENCODE) 4077 if (str->direction == CODING_ENCODE)
4078 return str->codesys; 4078 return str->codesys;
4079 4079
4080 if (!data->c.initted) 4080 if (!data->c.initted)
4081 return Fget_coding_system (Qundecided); 4081 return str->codesys;
4082 4082
4083 ret = coding_stream_canonicalize_after_coding 4083 ret = coding_stream_canonicalize_after_coding
4084 (XLSTREAM (data->c.lstreams[0])); 4084 (XLSTREAM (data->c.lstreams[0]));
4085 if (NILP (ret)) 4085 if (NILP (ret))
4086 ret = Fget_coding_system (Qundecided); 4086 ret = str->codesys;
4087 if (XCODING_SYSTEM_EOL_TYPE (ret) != EOL_AUTODETECT) 4087 if (XCODING_SYSTEM_EOL_TYPE (ret) != EOL_AUTODETECT)
4088 return ret; 4088 return ret;
4089 eolret = coding_stream_canonicalize_after_coding 4089 eolret = coding_stream_canonicalize_after_coding
4090 (XLSTREAM (data->c.lstreams[1])); 4090 (XLSTREAM (data->c.lstreams[1]));
4091 if (!EQ (XCODING_SYSTEM_TYPE (eolret), Qconvert_eol)) 4091 if (!EQ (XCODING_SYSTEM_TYPE (eolret), Qconvert_eol))