]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix handling of non-integer START param to write-region
authorNoam Postavsky <npostavs@gmail.com>
Fri, 7 Apr 2017 22:24:35 +0000 (18:24 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Fri, 7 Apr 2017 22:24:35 +0000 (18:24 -0400)
The previous patch for Bug#354 incorrectly assumed that START would
always be an integer.

* lisp/epa-file.el (epa-file-write-region):
* lisp/jka-compr.el (jka-compr-write-region):
* lisp/net/ange-ftp.el (ange-ftp-write-region):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
* src/fileio.c (write_region): Handle nil and string values of START.

lisp/epa-file.el
lisp/jka-compr.el
lisp/net/ange-ftp.el
lisp/net/tramp-gvfs.el
lisp/net/tramp-sh.el
src/fileio.c

index 72ffb58c3086525a4302e26fd5889689ac85d49e..2e06c8374ffd06d0b3747ac5c8134c505bb3390d 100644 (file)
@@ -290,7 +290,11 @@ If no one is selected, symmetric encryption will be performed.  "
     (if (or (eq visit t)
            (eq visit nil)
            (stringp visit))
-       (message "Wrote %d characters to `%s'" (- end start) buffer-file-name))))
+       (message "Wrote %d characters to `%s'"
+                 (cond ((null start) (buffer-size))
+                       ((stringp start) (length start))
+                       (t (- end start)))
+                 buffer-file-name))))
 (put 'write-region 'epa-file 'epa-file-write-region)
 
 (defun epa-file-select-keys ()
index 55440a709c77f3d1b2d3783411cfef0d4fda942d..a5e24a6f9ac1943a46d1d67472abfb8ef80fa7c8 100644 (file)
@@ -357,7 +357,11 @@ There should be no more than seven characters after the final `/'."
          (and (or (eq visit t)
                   (eq visit nil)
                   (stringp visit))
-              (message "Wrote %d characters to `%s'" (- end start) visit-file))
+              (message "Wrote %d characters to `%s'"
+                        (cond ((null start) (buffer-size))
+                              ((stringp start) (length start))
+                              (t (- end start)))
+                        visit-file))
 
          ;; ensure `last-coding-system-used' has an appropriate value
          (setq last-coding-system-used coding-system-used)
index aecb9e1ecbee36125cad82ece7d40bddc5ec46ee..6e84269e30872145ea923a80045ad0127c90f32a 100644 (file)
@@ -3284,7 +3284,11 @@ system TYPE.")
                (set-buffer-modified-p nil)))
          ;; ensure `last-coding-system-used' has an appropriate value
          (setq last-coding-system-used coding-system-used)
-         (ange-ftp-message "Wrote %d characters to `%s'" (- end start) abbr)
+         (ange-ftp-message "Wrote %d characters to `%s'"
+                            (cond ((null start) (buffer-size))
+                                  ((stringp start) (length start))
+                                  (t (- end start)))
+                            abbr)
          (ange-ftp-add-file-entry filename))
       (ange-ftp-real-write-region start end filename append visit))))
 
index 8ab34af85b701e4431aa46f8f6c90b95532e2811..b7477271d7033a450e11901326fd399391e134d3 100644 (file)
@@ -1223,7 +1223,11 @@ file-notify events."
 
     ;; The end.
     (when (or (eq visit t) (null visit) (stringp visit))
-      (tramp-message v 0 "Wrote %d characters to `%s'" (- end start) filename))
+      (tramp-message v 0 "Wrote %d characters to `%s'"
+                     (cond ((null start) (buffer-size))
+                           ((stringp start) (length start))
+                           (t (- end start)))
+                     filename))
     (run-hooks 'tramp-handle-write-region-hook)))
 
 \f
index f78f54154fde6c51a833eaa0d987a1235478a0fe..a8556b9a0d030c77b33f35b483563891959a9e6a 100644 (file)
@@ -3412,7 +3412,10 @@ the result will be a local, non-Tramp, file name."
           (tramp-set-file-uid-gid filename uid gid))
        (when (or (eq visit t) (null visit) (stringp visit))
           (tramp-message v 0 "Wrote %d characters to `%s'"
-                         (- end start) filename))
+                         (cond ((null start) (buffer-size))
+                               ((stringp start) (length start))
+                               (t (- end start)))
+                         filename))
        (run-hooks 'tramp-handle-write-region-hook)))))
 
 (defvar tramp-vc-registered-file-names nil
index 0fc52294011d33eb4065e62ed7fae8daff899c70..567f56c90630c72d2356196373a1984c15cc733c 100644 (file)
@@ -5157,7 +5157,8 @@ write_region (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
                    ? "Added %d characters to `%s'"
                    : "Wrote %d characters to `%s'");
       CALLN (Fmessage, format,
-             make_number (XINT (end) - XINT (start)),
+             (STRINGP (start) ? Flength (start)
+              : make_number (XINT (end) - XINT (start))),
              visit_file);
     }
   return Qnil;