diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2007-07-24 04:00:00 +0400 |
---|---|---|
committer | Kornel LesiĆski <kornel@geekhood.net> | 2016-05-28 02:15:52 +0300 |
commit | 980e181dcc9d64312a4dddfa58f80770506f27f5 (patch) | |
tree | 4ab20c1b4c7ebfe0f5fbf39ec2ce2cd3022ebf66 /CPP/7zip/Archive/Nsis | |
parent | 7038848692e7049234f223703522681a19db49a5 (diff) |
4.50 beta
Diffstat (limited to 'CPP/7zip/Archive/Nsis')
-rwxr-xr-x | CPP/7zip/Archive/Nsis/NsisHandler.h | 11 | ||||
-rwxr-xr-x | CPP/7zip/Archive/Nsis/NsisIn.cpp | 9 |
2 files changed, 7 insertions, 13 deletions
diff --git a/CPP/7zip/Archive/Nsis/NsisHandler.h b/CPP/7zip/Archive/Nsis/NsisHandler.h index e180f70d..82e76139 100755 --- a/CPP/7zip/Archive/Nsis/NsisHandler.h +++ b/CPP/7zip/Archive/Nsis/NsisHandler.h @@ -32,16 +32,7 @@ public: MY_QUERYINTERFACE_END MY_ADDREF_RELEASE - STDMETHOD(Open)(IInStream *stream, const UInt64 *maxCheckStartPosition, IArchiveOpenCallback *openArchiveCallback); - STDMETHOD(Close)(); - STDMETHOD(GetNumberOfItems)(UInt32 *numItems); - STDMETHOD(GetProperty)(UInt32 index, PROPID propID, PROPVARIANT *value); - STDMETHOD(Extract)(const UInt32* indices, UInt32 numItems, Int32 testMode, IArchiveExtractCallback *extractCallback); - STDMETHOD(GetArchiveProperty)(PROPID propID, PROPVARIANT *value); - STDMETHOD(GetNumberOfProperties)(UInt32 *numProperties); - STDMETHOD(GetPropertyInfo)(UInt32 index, BSTR *name, PROPID *propID, VARTYPE *varType); - STDMETHOD(GetNumberOfArchiveProperties)(UInt32 *numProperties); - STDMETHOD(GetArchivePropertyInfo)(UInt32 index, BSTR *name, PROPID *propID, VARTYPE *varType); + INTERFACE_IInArchive(;) DECL_ISetCompressCodecsInfo }; diff --git a/CPP/7zip/Archive/Nsis/NsisIn.cpp b/CPP/7zip/Archive/Nsis/NsisIn.cpp index 8797a8e7..aa1e456f 100755 --- a/CPP/7zip/Archive/Nsis/NsisIn.cpp +++ b/CPP/7zip/Archive/Nsis/NsisIn.cpp @@ -57,9 +57,11 @@ void CInArchive::ReadBlockHeader(CBlockHeader &bh) static int CompareItems(void *const *p1, void *const *p2, void * /* param */) { - RINOZ(MyCompare( - (**(const CItem **)p1).Pos, - (**(const CItem **)p2).Pos)); + const CItem &i1 = **(CItem **)p1; + const CItem &i2 = **(CItem **)p2; + RINOZ(MyCompare(i1.Pos, i2.Pos)); + RINOZ(i1.Prefix.Compare(i2.Prefix)); + RINOZ(i1.Name.Compare(i2.Name)); return 0; } @@ -903,6 +905,7 @@ HRESULT CInArchive::ReadEntries(const CBlockHeader &bh) { Items.Sort(CompareItems, 0); int i; + if (IsSolid) for (i = 0; i + 1 < Items.Size();) { if (Items[i].Pos == Items[i + 1].Pos) |