OSDN Git Service

RAR書庫以外でファイルのコメントを取得できていなかったバグを修正。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sat, 25 Sep 2010 07:41:10 +0000 (07:41 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sat, 25 Sep 2010 07:41:10 +0000 (07:41 +0000)
格納ファイルの日時が取得できない形式で不正な値を返していたバグを修正。

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@358 9df91469-1e22-0410-86e7-ea8537beb833

doc/history.html
src/plugin/7zArc/7zArc.cpp

index b3ccc6b..eece5d1 100644 (file)
@@ -56,6 +56,8 @@
        <li class="chg">有用性が低いSwfへの対応を取りやめ。</li>\r
        <li class="fix">Linux上でマルチバイト文字を含む名前のファイルを扱えなかったバグを修正。</li>\r
        <li class="fix">作業ディレクトリからライブラリを読み込まないよう修正。</li>\r
+       <li class="fix">RAR書庫以外でファイルのコメントを取得できていなかったバグを修正。</li>\r
+       <li class="fix">格納ファイルの日時が取得できない形式で不正な値を返していたバグを修正。</li>\r
       </ul>\r
      </dd>\r
      <dt>calLibrary</dt>\r
index 78f37b1..eb79e63 100644 (file)
@@ -77,14 +77,23 @@ int GetFileInformation2(void * _hArchive, TPI_FILEINFO * _fiInfo, wxULongLong_t
        _fiInfo->nUnpackedSize  = prop.vt == VT_EMPTY ? 0 : prop.vt == VT_UI8 ? prop.uhVal.QuadPart : prop.ulVal;\r
        unsigned int t;\r
        hArc->GetProperty(nIndex, kpidMTime, & prop);\r
-       NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
-       _fiInfo->tmModified.Set((time_t) t);\r
+       if (prop.vt == VT_FILETIME)\r
+       {\r
+               NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
+               _fiInfo->tmModified.Set((time_t) t);\r
+       }\r
        hArc->GetProperty(nIndex, kpidCTime, & prop);\r
-       NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
-       _fiInfo->tmCreate.Set((time_t) t);\r
+       if (prop.vt == VT_FILETIME)\r
+       {\r
+               NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
+               _fiInfo->tmCreate.Set((time_t) t);\r
+       }\r
        hArc->GetProperty(nIndex, kpidATime, & prop);\r
-       NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
-       _fiInfo->tmAccess.Set((time_t) t);\r
+       if (prop.vt == VT_FILETIME)\r
+       {\r
+               NWindows::NTime::FileTimeToUnixTime(prop.filetime, t);\r
+               _fiInfo->tmAccess.Set((time_t) t);\r
+       }\r
        hArc->GetProperty(nIndex, kpidPath, & prop);\r
        if (prop.vt == VT_BSTR)\r
        {\r
@@ -102,10 +111,9 @@ int GetFileInformation2(void * _hArchive, TPI_FILEINFO * _fiInfo, wxULongLong_t
        {\r
                _fiInfo->szMethod = WC2String(prop.bstrVal);\r
        }\r
-       hArc->GetProperty(nIndex, kpidCommented, & prop);\r
-       if (prop.vt == VT_BOOL && VARIANT_BOOLToBool(prop.boolVal))\r
+       hArc->GetProperty(nIndex, kpidComment, & prop);\r
+       if (prop.vt == VT_BSTR)\r
        {\r
-               hArc->GetProperty(nIndex, kpidComment, & prop);\r
                _fiInfo->szComment  = WC2String(prop.bstrVal);\r
        }\r
        _fiInfo->nFileId        = nIndex;\r