emacs-devel
[Top][All Lists]
Advanced

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

Re: smtpmail.el and 1msg


From: Simon Josefsson
Subject: Re: smtpmail.el and 1msg
Date: Thu, 11 Mar 2004 00:11:56 +0100
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux)

Jonathan Glauner <address@hidden> writes:

>   > Does this patch help?  If not, can you pinpoint exactly
>   > where does smtpmail.el hang, using (setq debug-on-quit t) and
>   > pressing C-g when it spins?
>
> The patch didn't help, and here's the backtrace from C-g:
>
> --SNIP--
>
> Debugger entered--Lisp error: (quit)
>   accept-process-output(#<process SMTP>)
>   smtpmail-read-response(#<process SMTP>)

How about this, then?  It add a timeout to the accept-process-output
call.

I thought accept-process-output was supposed to return if the process
died, though.  Are you using Windows or Macintosh?  I recall some
process related problems on those systems.

--- smtpmail.el.~1.65.~ 2004-02-11 13:34:59.000000000 +0100
+++ smtpmail.el 2004-03-11 00:10:33.000000000 +0100
@@ -1,6 +1,6 @@
 ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
 
-;; Copyright (C) 1995, 1996, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004 Free Software Foundation, 
Inc.
 
 ;; Author: Tomoji Kagatani <address@hidden>
 ;; Maintainer: Simon Josefsson <address@hidden>
@@ -778,11 +778,13 @@
        (response-continue t)
        (return-value '(nil ()))
        match-end)
-
+    (catch 'done
     (while response-continue
       (goto-char smtpmail-read-point)
       (while (not (search-forward "\r\n" nil t))
-       (accept-process-output process)
+         (unless (memq (process-status process) '(open run))
+           (throw 'done nil))
+         (accept-process-output process 1)
        (goto-char smtpmail-read-point))
 
       (setq match-end (point))
@@ -817,10 +819,8 @@
            (setq smtpmail-read-point match-end)
            (setq response-continue nil)
            (setq return-value
-                 (cons nil (nreverse response-strings)))
-           )
-         )))
-    (setq smtpmail-read-point match-end)
+                   (cons nil (nreverse response-strings)))))))
+      (setq smtpmail-read-point match-end))
     return-value))
 
 




reply via email to

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