+2001-11-30 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * acap.el (acap-logging-out): New buffer local variable.
+ (acap-close): Set it.
+ (acap-wait-for-response): If acap-logging-out is non-nil, don't cause
+ an error.
+
2001-11-28 Yuuichi Teranishi <teranisi@gohome.org>
* acap.el (acap-response-bye-p): New function.
(defvar acap-response nil
"ACAP Response.")
+(defvar acap-logging-out nil
+ "Non-nil when ACAP is logging out.")
+
(make-variable-buffer-local 'acap-state)
(make-variable-buffer-local 'acap-auth)
(make-variable-buffer-local 'acap-capability)
(make-variable-buffer-local 'acap-server)
(make-variable-buffer-local 'acap-port)
(make-variable-buffer-local 'acap-response)
+(make-variable-buffer-local 'acap-logging-out)
(defvar acap-network-stream-alist
'((default . open-network-stream-as-binary)))
(defun acap-close (process)
(with-current-buffer (process-buffer process)
+ (setq acap-logging-out t)
(unless (acap-response-ok-p (acap-send-command-wait process "LOGOUT"))
(message "Server %s didn't let me log out" acap-server))
(when (memq (process-status process) '(open run))
(while (and (not (acap-response-cont-p acap-response))
(< acap-reached-tag tag))
(when (acap-response-bye-p acap-response)
- (error (prog1 (acap-response-bye-message acap-response)
- (setq acap-response nil))))
+ (if acap-logging-out
+ (setq acap-response nil)
+ (error (prog1 (acap-response-bye-message acap-response)
+ (setq acap-response nil)))))
(or (and (not (memq (process-status process) '(open run)))
(sit-for 1))
(let ((len (/ (point-max) 1024))
+2001-11-30 Yuuichi Teranishi <teranisi@gohome.org>
+
+ * wl-acap.el (wl-acap-init): If initialization via ACAP is interrupted,
+ resume msgdb directory.
+
2001-11-28 Yuuichi Teranishi <teranisi@gohome.org>
* wl.el (wl-exit): Call `wl-acap-exit'.
(defun wl-acap-init ()
"A candidate for `wl-folder-init-function'."
+ (setq wl-acap-original-msgdb-dir nil)
+ (condition-case nil ; catch error and quit.
(let ((service (wl-acap-find-acap-service))
proc entries settings folder-top type)
(unless (car service) (error "No ACAP service found"))
(setq elmo-msgdb-dir (expand-file-name
(concat "acap/" (car service) "/" wl-acap-user)
elmo-msgdb-dir))
- (acap-close proc)))
+ (acap-close proc))
+ (error (when wl-acap-original-msgdb-dir
+ (setq elmo-msgdb-dir wl-acap-original-msgdb-dir)))
+ (quit (when wl-acap-original-msgdb-dir
+ (setq elmo-msgdb-dir wl-acap-original-msgdb-dir)))))
+
(defun wl-acap-create-folder-entity (string)
(with-temp-buffer