* mail/sendmail.el (sendmail-send-it): Don't kill the error buffer on error
authorGrégoire Jadi <daimrod@gmail.com>
Mon, 12 Aug 2013 17:25:22 +0000 (19:25 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 12 Aug 2013 17:25:22 +0000 (19:25 +0200)
This makes debugging easier.

lisp/ChangeLog
lisp/mail/sendmail.el

index aa4d028..290af08 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-12  Grégoire Jadi  <daimrod@gmail.com>
+
+       * mail/sendmail.el (sendmail-send-it): Don't kill the error buffer
+       if sending fails.  This makes debugging easier.
+
 2013-08-12  Juanma Barranquero  <lekktu@gmail.com>
 
        * xml.el (xml-parse-tag-1): Use looking-at (this reverts change in
index e1dee32..4fdd75c 100644 (file)
@@ -1114,6 +1114,7 @@ external program defined by `sendmail-program'."
   (let ((errbuf (if mail-interactive
                    (generate-new-buffer " sendmail errors")
                  0))
+        (error nil)
        (tembuf (generate-new-buffer " sendmail temp"))
        (multibyte enable-multibyte-characters)
        (case-fold-search nil)
@@ -1278,10 +1279,13 @@ external program defined by `sendmail-program'."
                     (exit-value (apply 'call-process-region args)))
                (cond ((or (null exit-value) (eq 0 exit-value)))
                      ((numberp exit-value)
+                       (setq error t)
                       (error "Sending...failed with exit value %d" exit-value))
                      ((stringp exit-value)
+                       (setq error t)
                       (error "Sending...terminated by signal: %s" exit-value))
                      (t
+                       (setq error t)
                       (error "SENDMAIL-SEND-IT -- fall through: %S" exit-value))))
            (or fcc-was-found
                (error "No recipients")))
@@ -1290,12 +1294,15 @@ external program defined by `sendmail-program'."
                (goto-char (point-min))
                (while (re-search-forward "\n\n* *" nil t)
                  (replace-match "; "))
-               (if (not (zerop (buffer-size)))
-                   (error "Sending...failed to %s"
-                          (buffer-substring (point-min) (point-max)))))))
+               (unless (zerop (buffer-size))
+                  (setq error t)
+                  (error "Sending...failed to %s"
+                         (buffer-substring (point-min) (point-max)))))))
       (kill-buffer tembuf)
-      (if (bufferp errbuf)
-         (kill-buffer errbuf)))))
+      (if (and (bufferp errbuf)
+               (not error))
+          (kill-buffer errbuf)
+        (switch-to-buffer-other-window errbuf)))))
 
 (autoload 'rmail-output-to-rmail-buffer "rmailout")