KTBN さんが書きました:
私の環境はpatchは導入していませんがいいのでしょうか
「アップル - ホットニュース」で行った結果です
やっと、バグを開いてくれたKTBN さんが、feeds.rdfの中身を見てくれた...(^^)
パッチがあたっていない、素のThunderbrd 38での結果が重要。
で、長くなって見づらいから、「スラド」って言ったのにぃ...
KTBN さんが書きました:
actionValue="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"
比較用にfeeds.rdf
<fz:destFolder RDF:resource="mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB%20-%20%E3%83%9B%E3%83%83%E3%83%88%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9"/>
「%20-%20%」の前が「アップル」に対応するから、そこだけを抜き出して並べると、
feeds.rdfのfz:feedの下のfz:destFolder RDF:resource
コード:
mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB
msgFilterRules.datのactionValue
コード:
mailbox://nobody@Feeds-3/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB
%E3%82%A2 = 「ア」のutf-8の%エスケープ
%E3%83%83 = 「ッ」のutf-8の%エスケープ
%E3%83%97 = 「プ」のNFC(composed form)のutf-8の%エスケープ
%E3%83%AB = 「ル」のutf-8の%エスケープ
再起動すると、HFS+に書かれているNFD(decomposed form)のファイル名を元にセットされたmsgFolder.URIで検索するので、NFC(composed form)で書かれているfeeds.rdfの中のエントリーを見つけられない、というのが、このトピックの問題なんですが、
msgFolder=this.server.rootMsgFolder.QueryInterface(Ci.nsIMsgLocalMailFolder).createLocalSubfolder(this.folderName);
のようにして、作ったフィードのフォルダーをオープンした状態にするので、
メッセージフィルターを作る時にも、NFC(composed form)のmsgFolder.URIが使われて、
そのために、再起動するとメッセージフィルターが動かなくなる、ということも起こりそうですね。
通常のメールフォルダーのメッセージフィルターの場合にどうなるかは、フィードのフォルダーのデータだけでは、不明ですけど。
フィードのfeeds.rdfのfz:feedのエントリーの検索は、mailbox URIの形式で表した「文字列」である「検索のためのキー」での検索ですが、
メッセージフィルターなどの「メッセージフォルダー」のアクセスでは、「mailbox URI」という、「フォルダーの実体」をある文字列で表現した「メッセージフォルダーへのポインター」を使っての「メッセージフォルダー」のアクセス、という違いがあります。
パッチをあてたmeeyar さんのデータだと、この「再起動後にメッセージフィルターでも問題が起こるはず」ということが見えなくなってしまうので、パッチがあたっていない、現在の素のThunderbrd 38での結果が重要なんです。
meeyar さんのパッチをあてた後のデータを見ると、
パッチをあてた後は、作ったフィードのフォルダーをオープンした状態にはしないので、
メッセージフィルターにおいて、msgFilterRules.datにはNFD(decomposed form)のmailbox URIが書かれるから、
「msgFilterRules.datにNFC(composed form)のmailbox URIが書かれているために、再起動後には、NFD(decomposed form)のmailbox URIでアクセスするのでメッセージフィルターでも再起動後に問題が起こるはず」という方は解消するけれど、
新規に購読した時にフォルダーを作ると、パッチをあてた後でもfeeds.rdfにはNFC(composed form)の方が書かれて、再起動後にfz:feedのエントリーが見つからない、という問題の方は、まだ解決しないようですが。