rendered paste bodydiff -BurN ../build_old/lzma/SRC/7zip/Compress/LZMA_Lib/lzmaext.h lzma/SRC/7zip/Compress/LZMA_Lib/lzmaext.h--- ../build_old/lzma/SRC/7zip/Compress/LZMA_Lib/lzmaext.h 1969-12-31 19:00:00.000000000 -0500+++ lzma/SRC/7zip/Compress/LZMA_Lib/lzmaext.h 2006-07-07 12:10:50.000000000 -0400@@ -0,0 +1,31 @@+/*+ * lzmaext.h+ *+ * LZMA Parameter extensions+ * these minor additions by Jeremy Collake <jeremy@bitsum.com>+ *+ * This library is free software; you can redistribute + * it and/or modify it under the terms of the GNU Lesser + * General Public License as published by the Free Software + * Foundation; either version 2.1 of the License, or + * (at your option) any later version.+ *+ * This library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU Lesser General Public License + * for more details.+ *+ * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to + * the Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + */++int compress2_lzma (Bytef *dest, uLongf *destLen,+ const Bytef *source, uLong sourceLen,+ int level, + int fb,+ int lc,+ int lp,+ int pb);diff -BurN ../build_old/lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.cpp lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.cpp--- ../build_old/lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.cpp 2006-07-07 12:17:30.000000000 -0400+++ lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.cpp 2006-07-07 11:08:59.000000000 -0400@@ -20,6 +20,19 @@ * the Free Software Foundation, Inc., 59 Temple Place, * Suite 330, Boston, MA 02111-1307 USA */+ +#ifdef WIN32+#include <initguid.h>+#else+#define INITGUID+#endif++/* jc: undef to kill compress2_lzma */+#define _LZMA_PARAMS ++#include "../../../Common/MyWindows.h"+#include "../LZMA/LZMADecoder.h"+#include "../LZMA/LZMAEncoder.h" /* * default values for encoder/decoder used by wrapper@@ -27,19 +40,14 @@ #include <zlib.h> +#ifdef _LZMA_PARAMS+//#include "lzmaext.h"+#endif+ #define ZLIB_LC 3 #define ZLIB_LP 0 #define ZLIB_PB 2--#ifdef WIN32-#include <initguid.h>-#else-#define INITGUID-#endif--#include "../../../Common/MyWindows.h"-#include "../LZMA/LZMADecoder.h"-#include "../LZMA/LZMAEncoder.h"+#define ZLIB_FB 128 /* jc: add fast bytes param */ #define STG_E_SEEKERROR ((HRESULT)0x80030019L) #define STG_E_MEDIUMFULL ((HRESULT)0x80030070L)@@ -180,6 +188,8 @@ UInt64 m_offset; }; ++ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level))@@ -214,8 +224,8 @@ properties[1].ulVal = UInt32(ZLIB_PB); properties[2].ulVal = UInt32(ZLIB_LC); // for normal files properties[3].ulVal = UInt32(ZLIB_LP); // for normal files- properties[4].ulVal = UInt32(2);- properties[5].ulVal = UInt32(128);+ properties[4].ulVal = UInt32(2); // todo+ properties[5].ulVal = UInt32(ZLIB_FB); properties[6].vt = VT_BSTR; properties[6].bstrVal = (BSTR)(const wchar_t *)L"BT4";@@ -243,6 +253,76 @@ return Z_OK; } +#ifdef _LZMA_PARAMS+/* jc: new compress2 proxy that allows lzma param specification */+extern "C" int compress2_lzma (Bytef *dest, uLongf *destLen,+ const Bytef *source, uLong sourceLen,+ int level, int fb, int lc, int lp, int pb)+{ + CInMemoryStream *inStreamSpec = new CInMemoryStream(source, sourceLen);+ CMyComPtr<ISequentialInStream> inStream = inStreamSpec;+ + COutMemoryStream *outStreamSpec = new COutMemoryStream(dest, *destLen);+ CMyComPtr<ISequentialOutStream> outStream = outStreamSpec;+ + NCompress::NLZMA::CEncoder *encoderSpec = + new NCompress::NLZMA::CEncoder;+ CMyComPtr<ICompressCoder> encoder = encoderSpec;+ + PROPID propIDs[] = + {+ NCoderPropID::kDictionarySize,+ NCoderPropID::kPosStateBits,+ NCoderPropID::kLitContextBits,+ NCoderPropID::kLitPosBits,+ NCoderPropID::kAlgorithm,+ NCoderPropID::kNumFastBytes,+ NCoderPropID::kMatchFinder,+ NCoderPropID::kEndMarker+ };+ const int kNumProps = sizeof(propIDs) / sizeof(propIDs[0]);+ + if(pb<0) pb=ZLIB_PB;+ if(lc<0) lc=ZLIB_LC;+ if(lp<0) lp=ZLIB_LP;+ if(fb<0) fb=ZLIB_FB;+ PROPVARIANT properties[kNumProps];+ for (int p = 0; p < 6; p++)+ properties[p].vt = VT_UI4;+ properties[0].ulVal = UInt32(1 << (level + 14));+ properties[1].ulVal = UInt32(pb);+ properties[2].ulVal = UInt32(lc); // for normal files+ properties[3].ulVal = UInt32(lp); // for normal files+ properties[4].ulVal = UInt32(2); // todo+ properties[5].ulVal = UInt32(fb); + + properties[6].vt = VT_BSTR;+ properties[6].bstrVal = (BSTR)(const wchar_t *)L"BT4";+ + properties[7].vt = VT_BOOL;+ properties[7].boolVal = VARIANT_TRUE;+ + if (encoderSpec->SetCoderProperties(propIDs, properties, kNumProps) != S_OK)+ return Z_MEM_ERROR; // should not happen+ + HRESULT result = encoder->Code(inStream, outStream, 0, 0, 0);+ if (result == E_OUTOFMEMORY)+ {+ return Z_MEM_ERROR;+ } + else if (result != S_OK)+ {+ return Z_BUF_ERROR; // should not happen+ } + + UInt64 fileSize;+ outStreamSpec->Seek(0, STREAM_SEEK_END, &fileSize);+ *destLen = fileSize;+ + return Z_OK;+}+#endif+ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)) {Binary files ../build_old/lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.o and lzma/SRC/7zip/Compress/LZMA_Lib/ZLib.o differdiff -BurN ../build_old/squashfs2.1-r2/squashfs-tools/Makefile squashfs2.1-r2/squashfs-tools/Makefile--- ../build_old/squashfs2.1-r2/squashfs-tools/Makefile 2006-07-07 12:19:20.000000000 -0400+++ squashfs2.1-r2/squashfs-tools/Makefile 2006-07-07 12:11:44.000000000 -0400@@ -1,7 +1,7 @@ INCLUDEDIR = .-#LZMAPATH = ../lzma/SRC/7zip/Compress/LZMA_Lib+#LZMAPATH = ../../lzma/SRC/7zip/Compress/LZMA_Lib -CFLAGS := -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2+CFLAGS := -v -I$(INCLUDEDIR) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 -D_LZMA_PARAMS mksquashfs: mksquashfs.o read_fs.o sort.o $(CC) mksquashfs.o read_fs.o sort.o -lz -o $@diff -BurN ../build_old/squashfs2.1-r2/squashfs-tools/mksquashfs.c squashfs2.1-r2/squashfs-tools/mksquashfs.c--- ../build_old/squashfs2.1-r2/squashfs-tools/mksquashfs.c 2004-12-12 20:51:20.000000000 -0500+++ squashfs2.1-r2/squashfs-tools/mksquashfs.c 2006-07-07 11:20:21.000000000 -0400@@ -17,8 +17,12 @@ * along with this program; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *+ * * mksquashfs.c */+ +/* jc: define to add lzma params, specify during compile */+// #define _LZMA_PARAMS #define TRUE 1 #include <pwd.h>@@ -57,6 +61,15 @@ fprintf(stderr, "FATAL ERROR:" s, ##args);\ EXIT_MKSQUASHFS();\ } while(0)+ +#ifdef _LZMA_PARAMS+#include "../../lzma/SRC/7zip/Compress/LZMA_Lib/lzmaext.h" +/* jc: be lame and use some globals.. this app is signle threaded*/ +int g_fb=-1;+int g_lc=-1;+int g_lp=-1;+int g_pb=-1; +#endif int total_compressed = 0, total_uncompressed = 0; int fd;@@ -265,7 +278,11 @@ unsigned long c_byte = block_size << 1; unsigned int res; +#ifdef _LZMA_PARAMS+ if(!uncompressed && (res = compress2_lzma(d, &c_byte, s, size, 9, g_fb, g_lc, g_lp, g_pb)) != Z_OK) {+#else if(!uncompressed && (res = compress2(d, &c_byte, s, size, 9)) != Z_OK) {+#endif if(res == Z_MEM_ERROR) BAD_ERROR("zlib::compress failed, not enough memory\n"); else if(res == Z_BUF_ERROR)@@ -1624,7 +1641,62 @@ ERROR("%s: -b block size not power of two or not between 512 and 64K\n", argv[0]); exit(1); }- } else if(strcmp(argv[i], "-ef") == 0) {+ } +#ifdef _LZMA_PARAMS + else if(strcmp(argv[i], "-lc") == 0)+ {+ if(++i == argc) + {+ ERROR("%s: -lc missing or invalid value\n", argv[0]);+ exit(1);+ }+ g_lc = strtol(argv[i], &g_lc, 10);+ if(g_lc<0 || g_lc>8)+ {+ ERROR("lc is out of bounds.");+ }+ }+ else if(strcmp(argv[i], "-lp") == 0)+ {+ if(++i == argc) + {+ ERROR("%s: -lp missing or invalid value\n", argv[0]);+ exit(1);+ }+ g_lp = strtol(argv[i], &g_lp, 10);+ if(g_lp<0 || g_lp>4)+ {+ ERROR("lp is out of bounds.");+ } + }+ else if(strcmp(argv[i], "-pb") == 0)+ {+ if(++i == argc) + {+ ERROR("%s: -pb missing or invalid value\n", argv[0]);+ exit(1);+ }+ g_pb = strtol(argv[i], &g_pb, 10);+ if(g_pb<0 || g_pb>4)+ {+ ERROR("pb is out of bounds.");+ } + } + else if(strcmp(argv[i], "-fb") == 0)+ {+ if(++i == argc) + {+ ERROR("%s: -fb missing or invalid value\n", argv[0]);+ exit(1);+ }+ g_fb = strtol(argv[i], &g_fb, 10);+ if(g_fb<5 || g_fb>272)+ {+ ERROR("fb is out of bounds.");+ }+ }+#endif + else if(strcmp(argv[i], "-ef") == 0) { if(++i == argc) { ERROR("%s: -ef missing filename\n", argv[0]); exit(1);@@ -1770,6 +1842,12 @@ ERROR("\t\t\tfile or dir with priority per line. Priority -32768 to\n"); ERROR("\t\t\t32767, default priority 0\n"); ERROR("-ef <exclude_file>\tlist of exclude dirs/files. One per line\n");+ #ifdef _LZMA_PARAMS+ ERROR("-fb x\t\t\tset lzma fast bytes to x\n"); + ERROR("-lc x\t\t\tset lzma literal context bits to x\n");+ ERROR("-lp x\t\t\tset lzma literal pos bits to x\n");+ ERROR("-pb x\t\t\tset lzma pos bits to x\n");+ #endif exit(1); } }