[mew-win32 03445] Re: "Attempt to modify read-only text" when handling attachments

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2001年 9月 11日 (火) 11:31:48 JST


From: Tatsuji Suzuki <t.suzuki at example.com> さん曰く
Subject: [mew-win32 03444] "Attempt to modify read-only text" when handling attachments
Message-ID: <20010911.103255.78210495.t.suzuki at example.com>
Date: Tue, 11 Sep 2001 10:32:55 +0900 (JST)

鈴木> はじめまして。鈴木と申します。
鈴木> WinNT4 + Meadow 1.14 + Mew 2.0 を使用しております。

こんにちは、白井です。

鈴木> Mew 1.94からバージョンをあげて以来はじめて、
鈴木> 添付ファイル付のメッセージを作成し queue しようとしたところ、
鈴木> mew-draft-make-messageのところで、 "Attempt to modify read-only text"
鈴木> というエラーになってしまいました。

う〜〜ん。

鈴木> メッセージはバッファに表示されたままでqueuingされず、なぜか
鈴木> attachments のフィールドがもう一つ追加されてしまいます
鈴木> (繰り返すとどんどん増えます)。この状態では queue もできなければ
鈴木> kill-draft も同様のエラーでできません。Mail/attachフォルダの中には
鈴木> CoverPage と 指定した添付ファイルのコピーがちゃんとおかれています。

鈴木> Mailフォルダ付近ののアクセス権の問題でしょうか?
鈴木> 心当たりがあるといえばそれくらいなのですが。

これは、そういう問題ではなくて、draft のどこかに read-only な属
性が残っていて、そいつを変更しようとしたときに出るものです。

例えば、無理やり draft の body の一部に read-only な property を
つけて、"C-cC-m" すると、こんなエラーになります。

Signaling: (error "Attempt to modify read-only text")
  encode-coding-region(598 651 iso-2022-jp)
  mew-cs-encode-region(598 651 iso-2022-jp)

鈴木> なお、通常の(添付ファイルナシ)のメッセージを作成している時は
鈴木> なんの問題ありません。

う〜〜〜ん、通常の attach 領域には read-only な属性がついている
のですが、C-cC-m するときに外してしまいます。それが何らかの原因
で残っているのではないかと思います。とりあえず、

(1) *.elc (最低限 mew-encode.elc, mew-draft-elc) を消して、
 Meadow を立ち上げ直す。

(2) *scratch* などで (setq debug-on-error t) とする。
# 今回はおそらく (setq mew-debug 'encode) でもいいと思いますが。

(3) マルチパートなメールを作って、"C-cC-m" して *Backtrace* を出
 す。

をして、どこでエラーになっているかみるぐらいかなぁ。。。


あと、事前に、以下の hoge() を定義しておいて、書きかけのマルチパー
トな message の上で、M-x hoge とするとどうなるか。。。

(defun hoge ()
  (interactive)
  (if (mew-attach-p)
      (progn
	(mew-attach-clear)
	(goto-char (mew-header-end))
	(forward-line)
	(let ((pos (text-property-any (point) (point-max) 'read-only t)))
	  (if pos
	      (progn
		(goto-char pos)
		(message "read-only det"))
	    (message "ok"))))
    (message "no multipart")))

ちなみに、いろんな hook が悪さをしている可能性もあるので、
まず、(add-hook 'mew...) は外して試してみましょう。

-- 
白井秀行 (mailto:shirai at example.com)



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