Mercurial > emacs
changeset 89478:756c32423971
(choose_write_coding_system): Return a decided coding system.
(Fwrite_region): Set Vlast_coding_system_used to the return value
of choose_write_coding_system.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 26 Jun 2003 00:26:38 +0000 |
parents | 3fbea8672973 |
children | 4f6968b6a5e8 |
files | src/fileio.c |
diffstat | 1 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c Sun Jun 22 23:27:44 2003 +0000 +++ b/src/fileio.c Thu Jun 26 00:26:38 2003 +0000 @@ -4583,7 +4583,7 @@ /* Decide the coding-system to encode the data with. */ -void +static Lisp_Object choose_write_coding_system (start, end, filename, append, visit, lockname, coding) Lisp_Object start, end, filename, append, visit, lockname; @@ -4631,8 +4631,7 @@ val = XCDR (coding_systems); } - if (NILP (val) - && !NILP (current_buffer->buffer_file_coding_system)) + if (NILP (val)) { /* If we still have not decided a coding system, use the default value of buffer-file-coding-system. */ @@ -4658,7 +4657,8 @@ /* If the decided coding-system doesn't specify end-of-line format, we use that of `default-buffer-file-coding-system'. */ - if (! using_default_coding) + if (! using_default_coding + && ! NILP (buffer_defaults.buffer_file_coding_system)) val = (coding_inherit_eol_type (val, buffer_defaults.buffer_file_coding_system)); @@ -4668,10 +4668,14 @@ val = raw_text_coding_system (val); } - setup_coding_system (Fcheck_coding_system (val), coding); + setup_coding_system (val, coding); + if (! NILP (val) + && VECTORP (CODING_ID_EOL_TYPE (coding->id))) + val = AREF (CODING_ID_EOL_TYPE (coding->id), 0); if (!STRINGP (start) && !NILP (current_buffer->selective_display)) coding->mode |= CODING_MODE_SELECTIVE_DISPLAY; + return val; } DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7, @@ -4807,9 +4811,9 @@ We used to make this choice before calling build_annotations, but that leads to problems when a write-annotate-function takes care of unsavable chars (as was the case with X-Symbol). */ - choose_write_coding_system (start, end, filename, - append, visit, lockname, &coding); - Vlast_coding_system_used = CODING_ID_NAME (coding.id); + Vlast_coding_system_used + = choose_write_coding_system (start, end, filename, + append, visit, lockname, &coding); given_buffer = current_buffer; if (current_buffer != given_buffer)