[Mew-dist 15817] a patch for b96

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2001年 1月 10日 (水) 19:53:08 JST


以下のパッチをオリジナルの b96 当ると

- POP lock vs パスワード問題
- モードラインでの "Mail(n)" がくっついちゃう問題

が解決できると思います。

先ほど、ロックのときのやりとりを送って下さった方は、もう一度試して頂け
ると嬉しいです。すべてのエラーメッセージに "lock" という文字列が含まれ
ていますので、これを見て判断するようにしました。

--かず

Index: mew-pop.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-pop.el,v
retrieving revision 1.105
retrieving revision 1.110
diff -c -r1.105 -r1.110
*** mew-pop.el	2001/01/10 01:49:32	1.105
--- mew-pop.el	2001/01/10 10:50:04	1.110
***************
*** 151,162 ****
  (defun mew-pop-biff-setup ()
    (if (not mew-use-biff)
        ()
      (setq mew-pop-biff-timer-id
  	  (mew-timer (* 60 mew-pop-biff-interval) (function mew-pop-biff)))
!     (if (not (member '(mew-biff-string mew-biff-string) global-mode-string))
! 	(setq global-mode-string
! 	      (append global-mode-string
! 		      '((mew-biff-string mew-biff-string)))))))
  
  (defun mew-pop-biff-clean-up ()
    (if mew-pop-biff-timer-id (mew-timer-reset mew-pop-biff-timer-id))
--- 151,165 ----
  (defun mew-pop-biff-setup ()
    (if (not mew-use-biff)
        ()
+     (if mew-pop-biff-timer-id (mew-timer-reset mew-pop-biff-timer-id))
      (setq mew-pop-biff-timer-id
  	  (mew-timer (* 60 mew-pop-biff-interval) (function mew-pop-biff)))
!     (let ((ent '((mew-biff-string mew-biff-string))))
!       (if (member ent global-mode-string)
! 	  ()
! 	(if global-mode-string
! 	    (setq global-mode-string (append global-mode-string '(" ") ent))
! 	  (setq global-mode-string ent))))))
  
  (defun mew-pop-biff-clean-up ()
    (if mew-pop-biff-timer-id (mew-timer-reset mew-pop-biff-timer-id))
***************
*** 475,493 ****
       pro (format "apop %s %s%s" (mew-pop-get-user pnm) kmd5 mew-cs-eol))))
  
  (defun mew-pop-command-wpwd (pro pnm)
!   (let ((auth (mew-pop-get-auth pnm)))
      (cond
       ((or (eq auth 'pass) (eq auth 'user))
        (mew-pop-message pnm "POP password is wrong!"))
!      (t
!       (mew-pop-message pnm "APOP password is wrong!"))))
!   (mew-passwd-set-passwd (mew-pop-passtag pnm) nil)
!   (mew-pop-tear-down pnm))
  
  (defun mew-pop-command-wpwd2 (pro pnm)
    (mew-pop-message pnm "Stronger password scheme should be used!")
    (mew-passwd-set-passwd (mew-pop-passtag pnm) nil)
!   (mew-pop-tear-down pnm))
  
  (defun mew-pop-command-list (pro pnm)
    (mew-pop-message pnm "Communicating with the POP server ... ")
--- 478,503 ----
       pro (format "apop %s %s%s" (mew-pop-get-user pnm) kmd5 mew-cs-eol))))
  
  (defun mew-pop-command-wpwd (pro pnm)
!   (let ((auth (mew-pop-get-auth pnm))
! 	(str (mew-pop-get-string pnm))
! 	(clear-pass t))
      (cond
+      ((and (stringp str) (string-match "lock" str))
+       (mew-pop-message pnm "The mailbox is locked!")
+       (setq clear-pass nil))
       ((or (eq auth 'pass) (eq auth 'user))
        (mew-pop-message pnm "POP password is wrong!"))
!      ((eq auth 'apop)
!       (mew-pop-message pnm "APOP password is wrong!"))
!      ((stringp auth)
!       (mew-pop-message pnm "%s password is wrong!" (upcase auth))))
!     (if clear-pass (mew-passwd-set-passwd (mew-pop-passtag pnm) nil))
!     (mew-pop-tear-down pnm))) ;; Typical servers disconnect, so no quit
  
  (defun mew-pop-command-wpwd2 (pro pnm)
    (mew-pop-message pnm "Stronger password scheme should be used!")
    (mew-passwd-set-passwd (mew-pop-passtag pnm) nil)
!   (mew-pop-tear-down pnm)) ;; Typical servers disconnect, so no quit
  
  (defun mew-pop-command-list (pro pnm)
    (mew-pop-message pnm "Communicating with the POP server ... ")
***************
*** 555,561 ****
        (mew-pop-message pnm "Receiving %d messages in background ... " n)))
      (cond
       ((eq directive 'biff)
!       (mew-pop-tear-down pnm))
       (t
        (mew-pop-set-status pnm "retr")
        (mew-pop-command-retr pro pnm))))) ;; this quits if n = 0
--- 565,572 ----
        (mew-pop-message pnm "Receiving %d messages in background ... " n)))
      (cond
       ((eq directive 'biff)
!       (mew-pop-set-status pnm "quit")
!       (mew-pop-command-quit pro pnm))
       (t
        (mew-pop-set-status pnm "retr")
        (mew-pop-command-retr pro pnm))))) ;; this quits if n = 0




Mew-dist メーリングリストの案内