[mew-win32 4589] Re: Haskell 版 cmew の差分更新

Shuichi KITAGUCHI ki at example.com
2011年 9月 9日 (金) 22:43:17 JST


北口です。

細田さん、ありがとうございます。
ちょうど、まずいことを思い出してやろうと思っていたところでした。

>> 本来は、他の OS の動作も考えると、
>> getChangeTime が Nothing を返したときだけ、
>> getModificationTime を使うようにする、とかすべきかと思いますが、
>> どうやって書けばいいのか分からず、力尽きました…。
> 
> ですが、以下のように書けば良さそうな気がしてきました。
> とりあえず Windows では差分更新も含めて動いています。

ちょっと方向性を変えて、getChangeTimeがNothingを返すのが問題
かなと思って、MewではなくEasyFile側を以下のように変えてみました。
これでcmewの動きとしては問題なさそうなのですが、どうでしょうか?
  >かずさん

--- a/System/EasyFile/Missing.hs
+++ b/System/EasyFile/Missing.hs
@@ -73,7 +73,7 @@ MacOS's rename() does.
 -}
 getChangeTime :: FilePath -> IO (Maybe UTCTime)
 #if defined(mingw32_HOST_OS) || defined(__MINGW32__)
-getChangeTime _ = return Nothing
+getChangeTime file = Just . writeTime <$> fileTime file
 #else
 getChangeTime file = Just . epochTimeToUTCTime . statusChangeTime <$> getFileStatus file
 #endif

以上です。


--
Shuichi KITAGUCHI // kit at example.com / ki at example.com


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