summaryrefslogtreecommitdiff
path: root/lisp/mail
diff options
context:
space:
mode:
authorGrégoire Jadi <daimrod@gmail.com>2013-08-12 19:25:22 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2013-08-12 19:25:22 +0200
commit7997a2f181ae0dc36726af0c8afbaf86595a8290 (patch)
tree4a686de0b66aa20b9ef6609a0d1123f0fbe3de98 /lisp/mail
parent7699d09ec6f13ec0b864e82a8c59e56037628539 (diff)
downloademacs-7997a2f181ae0dc36726af0c8afbaf86595a8290.tar.gz
* mail/sendmail.el (sendmail-send-it): Don't kill the error buffer on error
This makes debugging easier.
Diffstat (limited to 'lisp/mail')
-rw-r--r--lisp/mail/sendmail.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index e1dee3295f2..4fdd75c68a6 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -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")