emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 265d525: More validatation of coding system in 'wri


From: Eli Zaretskii
Subject: [Emacs-diffs] master 265d525: More validatation of coding system in 'write-region'
Date: Sat, 03 Oct 2015 11:51:05 +0000

branch: master
commit 265d525a5ef9f59a6c26d40cd560ae43c3ae1d2c
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    More validatation of coding system in 'write-region'
    
    * src/coding.c (choose_write_coding_system): More validation of
    coding-system from various sources.  Suggested by Andreas Schwab
    <address@hidden>.  (Bug#21602)
---
 src/fileio.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/fileio.c b/src/fileio.c
index 65aaf57..15bebdf 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4593,17 +4593,26 @@ choose_write_coding_system (Lisp_Object start, 
Lisp_Object end, Lisp_Object file
 
       if (!force_raw_text
          && !NILP (Ffboundp (Vselect_safe_coding_system_function)))
-       /* Confirm that VAL can surely encode the current region.  */
-       val = call5 (Vselect_safe_coding_system_function,
-                    start, end, val, Qnil, filename);
+       {
+         /* Confirm that VAL can surely encode the current region.  */
+         val = call5 (Vselect_safe_coding_system_function,
+                      start, end, val, Qnil, filename);
+         CHECK_CODING_SYSTEM (val);
+       }
 
       /* 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
-         && ! NILP (BVAR (&buffer_defaults, buffer_file_coding_system)))
-       val = (coding_inherit_eol_type
-              (val, BVAR (&buffer_defaults, buffer_file_coding_system)));
+      if (! using_default_coding)
+       {
+         Lisp_Object dflt = BVAR (&buffer_defaults, buffer_file_coding_system);
+
+         if (! NILP (dflt))
+           {
+             CHECK_CODING_SYSTEM (dflt);
+             val = (coding_inherit_eol_type (val, dflt));
+           }
+       }
 
       /* If we decide not to encode text, use `raw-text' or one of its
         subsidiaries.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]