diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/lzma/LzmaDec.c | 14 | ||||
| -rw-r--r-- | lib/lzma/LzmaDec.h | 6 | ||||
| -rw-r--r-- | lib/lzma/Types.h | 36 | ||||
| -rw-r--r-- | lib/lzma/history.txt | 35 | ||||
| -rw-r--r-- | lib/lzma/lzma.txt | 34 | 
5 files changed, 91 insertions, 34 deletions
| diff --git a/lib/lzma/LzmaDec.c b/lib/lzma/LzmaDec.c index f941da27d..4f45f80fe 100644 --- a/lib/lzma/LzmaDec.c +++ b/lib/lzma/LzmaDec.c @@ -1,5 +1,5 @@  /* LzmaDec.c -- LZMA Decoder -2008-11-06 : Igor Pavlov : Public domain */ +2009-09-20 : Igor Pavlov : Public domain */  #include <config.h>  #include <common.h> @@ -116,12 +116,6 @@  StopCompilingDueBUG  #endif -static const Byte kLiteralNextStates[kNumStates * 2] = -{ -  0, 0, 0, 0, 1, 2, 3,  4,  5,  6,  4,  5, -  7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10 -}; -  #define LZMA_DIC_MIN (1 << 12)  /* First LZMA-symbol is always decoded. @@ -180,6 +174,7 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte        if (state < kNumLitStates)        { +        state -= (state < 4) ? state : 3;          symbol = 1;          WATCHDOG_RESET(); @@ -190,6 +185,7 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte        {          unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];          unsigned offs = 0x100; +        state -= (state < 10) ? 3 : 6;          symbol = 1;          WATCHDOG_RESET(); @@ -207,9 +203,6 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte        }        dic[dicPos++] = (Byte)symbol;        processedPos++; - -      state = kLiteralNextStates[state]; -      /* if (state < 4) state = 0; else if (state < 10) state -= 3; else state -= 6; */        continue;      }      else @@ -395,7 +388,6 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte          else if (distance >= checkDicSize)            return SZ_ERROR_DATA;          state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3; -        /* state = kLiteralNextStates[state]; */        }        len += kMatchMinLen; diff --git a/lib/lzma/LzmaDec.h b/lib/lzma/LzmaDec.h index 7fba87f07..63aa505e8 100644 --- a/lib/lzma/LzmaDec.h +++ b/lib/lzma/LzmaDec.h @@ -1,8 +1,8 @@  /* LzmaDec.h -- LZMA Decoder -2008-10-04 : Igor Pavlov : Public domain */ +2009-02-07 : Igor Pavlov : Public domain */ -#ifndef __LZMADEC_H -#define __LZMADEC_H +#ifndef __LZMA_DEC_H +#define __LZMA_DEC_H  #include "Types.h" diff --git a/lib/lzma/Types.h b/lib/lzma/Types.h index 1af5cfc4d..8afcba556 100644 --- a/lib/lzma/Types.h +++ b/lib/lzma/Types.h @@ -1,5 +1,5 @@  /* Types.h -- Basic types -2008-11-23 : Igor Pavlov : Public domain */ +2010-10-09 : Igor Pavlov : Public domain */  #ifndef __7Z_TYPES_H  #define __7Z_TYPES_H @@ -65,9 +65,11 @@ typedef unsigned long UInt64;  #if defined(_MSC_VER) || defined(__BORLANDC__)  typedef __int64 Int64;  typedef unsigned __int64 UInt64; +#define UINT64_CONST(n) n  #else  typedef long long int Int64;  typedef unsigned long long int UInt64; +#define UINT64_CONST(n) n ## ULL  #endif  #endif @@ -92,13 +94,11 @@ typedef int Bool;  #endif  #define MY_CDECL __cdecl -#define MY_STD_CALL __stdcall -#define MY_FAST_CALL MY_NO_INLINE __fastcall +#define MY_FAST_CALL __fastcall  #else  #define MY_CDECL -#define MY_STD_CALL  #define MY_FAST_CALL  #endif @@ -108,6 +108,16 @@ typedef int Bool;  typedef struct  { +  Byte (*Read)(void *p); /* reads one byte, returns 0 in case of EOF or error */ +} IByteIn; + +typedef struct +{ +  void (*Write)(void *p, Byte b); +} IByteOut; + +typedef struct +{    SRes (*Read)(void *p, void *buf, size_t *size);      /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream.         (output(*size) < input(*size)) is allowed */ @@ -140,7 +150,7 @@ typedef struct  typedef struct  { -  SRes (*Look)(void *p, void **buf, size_t *size); +  SRes (*Look)(void *p, const void **buf, size_t *size);      /* if (input(*size) != 0 && output(*size) == 0) means end_of_stream.         (output(*size) > input(*size)) is not allowed         (output(*size) < input(*size)) is allowed */ @@ -205,4 +215,20 @@ typedef struct  #define IAlloc_Alloc(p, size) (p)->Alloc((p), size)  #define IAlloc_Free(p, a) (p)->Free((p), a) +#ifdef _WIN32 + +#define CHAR_PATH_SEPARATOR '\\' +#define WCHAR_PATH_SEPARATOR L'\\' +#define STRING_PATH_SEPARATOR "\\" +#define WSTRING_PATH_SEPARATOR L"\\" + +#else + +#define CHAR_PATH_SEPARATOR '/' +#define WCHAR_PATH_SEPARATOR L'/' +#define STRING_PATH_SEPARATOR "/" +#define WSTRING_PATH_SEPARATOR L"/" + +#endif +  #endif diff --git a/lib/lzma/history.txt b/lib/lzma/history.txt index aadf8255e..443511bdd 100644 --- a/lib/lzma/history.txt +++ b/lib/lzma/history.txt @@ -1,6 +1,41 @@  HISTORY of the LZMA SDK  ----------------------- +9.18 beta      2010-11-02 +------------------------- +- New small SFX module for installers (SfxSetup). + + +9.12 beta      2010-03-24 +------------------------- +- The BUG in LZMA SDK 9.* was fixed: LZMA2 codec didn't work, +  if more than 10 threads were used (or more than 20 threads in some modes). + + +9.11 beta      2010-03-15 +------------------------- +- PPMd compression method support + + +9.09           2009-12-12 +------------------------- +- The bug was fixed: +   Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c +   incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8. +- Some bugs were fixed + + +9.06           2009-08-17 +------------------------- +- Some changes in ANSI-C 7z Decoder interfaces. + + +9.04           2009-05-30 +------------------------- +- LZMA2 compression method support +- xz format support + +  4.65           2009-02-03  -------------------------  - Some minor fixes diff --git a/lib/lzma/lzma.txt b/lib/lzma/lzma.txt index aa20f9dc5..144cd9aee 100644 --- a/lib/lzma/lzma.txt +++ b/lib/lzma/lzma.txt @@ -1,4 +1,4 @@ -LZMA SDK 4.65 +LZMA SDK 9.20  -------------  LZMA SDK provides the documentation, samples, header files, libraries, @@ -20,6 +20,10 @@ LICENSE  LZMA SDK is written and placed in the public domain by Igor Pavlov. +Some code in LZMA SDK is based on public domain code from another developers: +  1) PPMd var.H (2001): Dmitry Shkarin +  2) SHA-256: Wei Dai (Crypto++ library) +  LZMA SDK Contents  ----------------- @@ -33,7 +37,7 @@ LZMA SDK includes:  UNIX/Linux version  ------------------  To compile C++ version of file->file LZMA encoding, go to directory -C++/7zip/Compress/LZMA_Alone +CPP/7zip/Bundles/LzmaCon  and call make to recompile it:    make -f makefile.gcc clean all @@ -49,6 +53,7 @@ lzma.txt     - LZMA SDK description (this file)  7zC.txt      - 7z ANSI-C Decoder description  methods.txt  - Compression method IDs for .7z  lzma.exe     - Compiled file->file LZMA encoder/decoder for Windows +7zr.exe      - 7-Zip with 7z/lzma/xz support.  history.txt  - history of the LZMA SDK @@ -66,7 +71,7 @@ C/  - C files          LzmaEnc.*  - LZMA encoding          LzmaLib.*  - LZMA Library for DLL calling          Types.h    - Basic types for another .c files -	Threads.*  - The code for multithreading. +        Threads.*  - The code for multithreading.      LzmaLib  - LZMA Library (.DLL for Windows) @@ -86,12 +91,6 @@ CPP/ -- CPP files      Compress - files related to compression/decompression -      Copy         - Copy coder -      RangeCoder   - Range Coder (special code of compression/decompression) -      LZMA         - LZMA compression/decompression on C++ -      LZMA_Alone   - file->file LZMA compression/decompression -      Branch       - Filters for x86, IA-64, ARM, ARM-Thumb, PowerPC and SPARC code -      Archive - files related to archiving        Common   - common files for archive handling @@ -100,6 +99,7 @@ CPP/ -- CPP files      Bundles    - Modules that are bundles of other modules        Alone7z           - 7zr.exe: Standalone version of 7z.exe that supports only 7z/LZMA/BCJ/BCJ2 +      LzmaCon           - lzma.exe: LZMA compression/decompression        Format7zR         - 7zr.dll: Reduced version of 7za.dll: extracting/compressing to 7z/LZMA/BCJ/BCJ2        Format7zExtractR  - 7zxr.dll: Reduced version of 7zxa.dll: extracting from 7z/LZMA/BCJ/BCJ2. @@ -369,8 +369,8 @@ Interface:      propData - LZMA properties  (5 bytes)      propSize - size of propData buffer (5 bytes)      finishMode - It has meaning only if the decoding reaches output limit (*destLen). -	 LZMA_FINISH_ANY - Decode just destLen bytes. -	 LZMA_FINISH_END - Stream must be finished after (*destLen). +         LZMA_FINISH_ANY - Decode just destLen bytes. +         LZMA_FINISH_END - Stream must be finished after (*destLen).                             You can use LZMA_FINISH_END, when you know that                             current output buffer covers last bytes of stream.      alloc    - Memory allocator. @@ -431,7 +431,7 @@ Memory Requirements:    {      ...      int res = LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, -	const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode); +        const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode);      ...    } @@ -527,7 +527,8 @@ static ISzAlloc g_Alloc = { SzAlloc, SzFree };    LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc); -If callback function return some error code, LzmaEnc_Encode also returns that code. +If callback function return some error code, LzmaEnc_Encode also returns that code +or it can return the code like SZ_ERROR_READ, SZ_ERROR_WRITE or SZ_ERROR_PROGRESS.  Single-call RAM->RAM Compression @@ -549,8 +550,8 @@ Return code: -LZMA Defines ------------- +Defines +-------  _LZMA_SIZE_OPT - Enable some optimizations in LZMA Decoder to get smaller executable code. @@ -562,6 +563,9 @@ _LZMA_UINT32_IS_ULONG  - Define it if int is 16-bit on your compiler and long is  _LZMA_NO_SYSTEM_SIZE_T  - Define it if you don't want to use size_t type. +_7ZIP_PPMD_SUPPPORT - Define it if you don't want to support PPMD method in AMSI-C .7z decoder. + +  C++ LZMA Encoder/Decoder  ~~~~~~~~~~~~~~~~~~~~~~~~  C++ LZMA code use COM-like interfaces. So if you want to use it, |