[Mew-dist 04493] mew-summary-folder-cache-save

SAKAI Kiyotaka ksakai at example.com
1998年 5月 1日 (金) 10:57:40 JST


新着メールが入っているわけではないにもかかわらず .mew-cache のタイムス
タンプが folder のタイムスタンプよりも古くなることがあるので調べていた
ところ、write-region の仕様が

・まず、書き出すファイルと同じディレクトリに temporary file を作成して、
  そのファイルに write-region で書き出す内容を書き込む。

・これが成功した後に、temporary file を本来のファイルに rename する。

という仕様なっていることが分かりました。これは、file system full のと
きでも古いファイルが失なわれないようにするためだそうです。

そのため、.mew-cache と folder のタイムスタンプはほぼ同じ時刻になりま
すが、rename() のインプリメントやタイミングによっては .mew-cache の方
が古いタイムスタンプを持つことも充分にありえることが分かりました。

Emacs Lisp の関数に file の time stamp を変更できるものがあれば、
mew-summary-folder-cache-save で write-region の後にその関数を呼び出せ
ばいいのですが、ないようなのでどうするのがいいのでしょうね。

僕が思い付くのは、

・call-process を使って touch コマンドを呼び出す。
・cache file を folder の直下に作成するのは止めて、別のディレクトリの
  下の作成する。

ぐらいですが。
-- 
酒井 清隆 (E-mail: ksakai at example.com)



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