[Mew-dist 07165] Reedit a part then display another part

根本 篤志 (Atsushi Nemoto) nemoto at example.com
1998年 12月 25日 (金) 16:12:02 JST


mew-1.94b2 で以下のような問題を見つけました。

mew-summary-reedit でパートを再編集した後で、そのメッセージ内の別のパー
トを表示させようとするとエラーになります。

具体的には、サマリバッファが以下のような状態の時に、part3
(Message/Rfc822)をを E で再編集して、C-c C-c または C-c C-q で抜けた後
(この時点ではメッセージバッファに part3 が表示されている)、p で part2 
を表示させようとすると "Wrong type argument: stringp, nil" となります。

# part2 が delivery-status じゃなくて Octet-Stream になってるのは
# 既に報告/解決済みのようですね :-)

--- --- ---
    7 M12/25 Mail Delivery  Returned mail: User unknown                        
     2  Application/Octet-Stream                                  
     3  Message/Rfc822               test                         
--- --- ---

スタックトレースは以下のようになりました。

Signaling: (wrong-type-argument stringp nil)
  mew-summary-display()
  mew-summary-display-up(nil)
  call-interactively(mew-summary-display-up)

ちなみに、mew-summary-display を byte-compile しない状態だと以下のよう
になりました。ofld-msg が nil になっているというところまで調べましたが、
それ以上はわかりませんでした。

Signaling: (wrong-type-argument stringp nil)
  set-buffer(nil)
  (save-excursion (set-buffer (mew-cache-hit ofld-msg)) mew-decode-syntax)
  (mew-cache-decode-syntax (mew-cache-hit ofld-msg))
  (mew-summary-display-part (mew-cache-decode-syntax (mew-cache-hit ofld-msg)) part)
  (if (or (null opart) (null ...)) (mew-summary-display-part (mew-cache-decode-syntax ...) part))
  (cond (msg (if ... ...)) (part (if ... ...)))
  (progn (if (or ... redisplay) (progn ... ...) (mew-window-configure ... ...) (set-buffer ...)) (cond (msg ...) (part ...)))
  (unwind-protect (progn (if ... ... ... ...) (cond ... ...)) (mew-pop-to-buffer buf) (if (null notforce) (mew-summary-recenter)) (mew-highlight-cursor-line))
  (let* ((fld ...) (msg ...) (ofld-msg ...) (part ...) (opart ...) (buf ...) (cache nil) (redisplay mew-summary-buffer-disp-msg)) (unwind-protect (progn ... ...) (mew-pop-to-buffer buf) (if ... ...) (mew-highlight-cursor-line)) (set-buffer-modified-p nil) (or cache (mew-cache-hit ofld-msg)))
  (cond ((eobp) (message "No message")) ((not ...) (message "No message")) (t (let* ... ... ... ...)))
  (mew-summary-msg-or-part (let* (... ... ... ... ... ... ... ...) (unwind-protect ... ... ... ...) (set-buffer-modified-p nil) (or cache ...)))
  mew-summary-display()
  mew-summary-display-up(nil)
  call-interactively(mew-summary-display-up)


mew-1.94b2, mew-1.94b1 ともに同じようになります。
mew-1.93 では試してません。

---
根本 篤志 (Atsushi Nemoto)
E-Mail: anemo at example.com (Home)
E-Mail: nemoto at example.com (Office)
        nemoto at example.com (1999/1/1-)  <= アドレスが変わります



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