From 0584101cce220475b866b517be28da8f0d838bc5 Mon Sep 17 00:00:00 2001 From: sirakaba Date: Tue, 9 Nov 2010 13:29:41 +0000 Subject: [PATCH] =?utf8?q?gz=E5=BD=A2=E5=BC=8F=E3=81=AA=E3=81=A9=E3=80=81?= =?utf8?q?=E6=8B=A1=E5=BC=B5=E5=AD=90=E3=81=8C=E7=A9=BA=E3=81=AE=E5=A0=B4?= =?utf8?q?=E5=90=88=E3=81=AE=E6=A0=BC=E7=B4=8D=E3=83=95=E3=82=A1=E3=82=A4?= =?utf8?q?=E3=83=AB=E5=90=8D=E7=94=9F=E6=88=90=E5=87=A6=E7=90=86=E3=82=92?= =?utf8?q?=E6=94=B9=E5=96=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@430 9df91469-1e22-0410-86e7-ea8537beb833 --- src/lychee/frm_main.cpp | 6 +++++- src/plugin/7zArc/7zArc.cpp | 14 +++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/lychee/frm_main.cpp b/src/lychee/frm_main.cpp index f464461..31d304a 100644 --- a/src/lychee/frm_main.cpp +++ b/src/lychee/frm_main.cpp @@ -402,7 +402,11 @@ void MainFrame::OnArcOpen(wxCommandEvent& e) // 拡張子のみ設定されている場合。 if (piInfo.fiInfo.szStoredName.IsEmpty()) { - piInfo.fiInfo.szStoredName = this->fnArchive.GetName() + wxT('.') + piInfo.fiInfo.fnFileName.GetExt(); + piInfo.fiInfo.szStoredName = this->fnArchive.GetName(); + if (piInfo.fiInfo.fnFileName.HasExt()) + { + piInfo.fiInfo.szStoredName += wxT('.') + piInfo.fiInfo.fnFileName.GetExt(); + } piInfo.fiInfo.fnFileName = wxFileName(piInfo.fiInfo.szStoredName); } diff --git a/src/plugin/7zArc/7zArc.cpp b/src/plugin/7zArc/7zArc.cpp index 57faf06..170b644 100644 --- a/src/plugin/7zArc/7zArc.cpp +++ b/src/plugin/7zArc/7zArc.cpp @@ -123,7 +123,7 @@ int GetFileInformation2(void * _hArchive, TPI_FILEINFO * _fiInfo, wxULongLong_t { hArc->GetProperty(nIndex, kpidExtension, & prop); _fiInfo->szStoredName.Empty(); - _fiInfo->fnFileName.SetExt(WC2String(prop.bstrVal)); + _fiInfo->fnFileName.SetExt(prop.vt == VT_BSTR ? WC2String(prop.bstrVal) : (wxString) wxEmptyString); } hArc->GetProperty(nIndex, kpidMethod, & prop); _fiInfo->szMethod = prop.vt == VT_BSTR ? WC2String(prop.bstrVal) : (wxString) wxEmptyString; hArc->GetProperty(nIndex, kpidComment, & prop); _fiInfo->szComment = prop.vt == VT_BSTR ? WC2String(prop.bstrVal) : (wxString) wxEmptyString; @@ -448,7 +448,11 @@ STDMETHODIMP CArchiveExtractCallback::GetStream(unsigned int nIndex, ISequential GetFileInformation2(this->hArc, & this->piInfo.fiInfo, nIndex); if (this->piInfo.fiInfo.szStoredName.IsEmpty()) { - this->piInfo.fiInfo.szStoredName = this->fnArchive.GetName() + wxT('.') + this->piInfo.fiInfo.fnFileName.GetExt(); + this->piInfo.fiInfo.szStoredName = this->fnArchive.GetName(); + if (this->piInfo.fiInfo.fnFileName.HasExt()) + { + this->piInfo.fiInfo.szStoredName += wxT('.') + this->piInfo.fiInfo.fnFileName.GetExt(); + } this->piInfo.fiInfo.fnFileName = wxFileName(this->piInfo.fiInfo.szStoredName); } @@ -983,7 +987,11 @@ int __stdcall Command { if (fiInfo.szStoredName.IsEmpty()) { - fiInfo.szStoredName = fnArchive.GetName() + wxT('.') + fiInfo.fnFileName.GetExt(); + fiInfo.szStoredName = fnArchive.GetName(); + if (fiInfo.fnFileName.HasExt()) + { + fiInfo.szStoredName += wxT('.') + fiInfo.fnFileName.GetExt(); + } } if (_szFiles.Index(fiInfo.szStoredName) != wxNOT_FOUND) { -- 2.11.0