Index: third_party/lzma/v4_65/files/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs |
diff --git a/third_party/lzma/v4_65/files/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs b/third_party/lzma/v4_65/files/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs |
deleted file mode 100644 |
index 7e22450a5d69862a5c4b55cfb67dc04f53cb60ee..0000000000000000000000000000000000000000 |
--- a/third_party/lzma/v4_65/files/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs |
+++ /dev/null |
@@ -1,364 +0,0 @@ |
-using System; |
-using System.IO; |
-namespace SevenZip |
-{ |
- using CommandLineParser; |
- |
- public class CDoubleStream: Stream |
- { |
- public System.IO.Stream s1; |
- public System.IO.Stream s2; |
- public int fileIndex; |
- public long skipSize; |
- |
- public override bool CanRead { get { return true; }} |
- public override bool CanWrite { get { return false; }} |
- public override bool CanSeek { get { return false; }} |
- public override long Length { get { return s1.Length + s2.Length - skipSize; } } |
- public override long Position |
- { |
- get { return 0; } |
- set { } |
- } |
- public override void Flush() { } |
- public override int Read(byte[] buffer, int offset, int count) |
- { |
- int numTotal = 0; |
- while (count > 0) |
- { |
- if (fileIndex == 0) |
- { |
- int num = s1.Read(buffer, offset, count); |
- offset += num; |
- count -= num; |
- numTotal += num; |
- if (num == 0) |
- fileIndex++; |
- } |
- if (fileIndex == 1) |
- { |
- numTotal += s2.Read(buffer, offset, count); |
- return numTotal; |
- } |
- } |
- return numTotal; |
- } |
- public override void Write(byte[] buffer, int offset, int count) |
- { |
- throw (new Exception("can't Write")); |
- } |
- public override long Seek(long offset, System.IO.SeekOrigin origin) |
- { |
- throw (new Exception("can't Seek")); |
- } |
- public override void SetLength(long value) |
- { |
- throw (new Exception("can't SetLength")); |
- } |
- } |
- |
- class LzmaAlone |
- { |
- enum Key |
- { |
- Help1 = 0, |
- Help2, |
- Mode, |
- Dictionary, |
- FastBytes, |
- LitContext, |
- LitPos, |
- PosBits, |
- MatchFinder, |
- EOS, |
- StdIn, |
- StdOut, |
- Train |
- }; |
- |
- static void PrintHelp() |
- { |
- System.Console.WriteLine("\nUsage: LZMA <e|d> [<switches>...] inputFile outputFile\n" + |
- " e: encode file\n" + |
- " d: decode file\n" + |
- " b: Benchmark\n" + |
- "<Switches>\n" + |
- // " -a{N}: set compression mode - [0, 1], default: 1 (max)\n" + |
- " -d{N}: set dictionary - [0, 29], default: 23 (8MB)\n" + |
- " -fb{N}: set number of fast bytes - [5, 273], default: 128\n" + |
- " -lc{N}: set number of literal context bits - [0, 8], default: 3\n" + |
- " -lp{N}: set number of literal pos bits - [0, 4], default: 0\n" + |
- " -pb{N}: set number of pos bits - [0, 4], default: 2\n" + |
- " -mf{MF_ID}: set Match Finder: [bt2, bt4], default: bt4\n" + |
- " -eos: write End Of Stream marker\n" |
- // + " -si: read data from stdin\n" |
- // + " -so: write data to stdout\n" |
- ); |
- } |
- |
- static bool GetNumber(string s, out Int32 v) |
- { |
- v = 0; |
- for (int i = 0; i < s.Length; i++) |
- { |
- char c = s[i]; |
- if (c < '0' || c > '9') |
- return false; |
- v *= 10; |
- v += (Int32)(c - '0'); |
- } |
- return true; |
- } |
- |
- static int IncorrectCommand() |
- { |
- throw (new Exception("Command line error")); |
- // System.Console.WriteLine("\nCommand line error\n"); |
- // return 1; |
- } |
- static int Main2(string[] args) |
- { |
- System.Console.WriteLine("\nLZMA# 4.61 2008-11-23\n"); |
- |
- if (args.Length == 0) |
- { |
- PrintHelp(); |
- return 0; |
- } |
- |
- SwitchForm[] kSwitchForms = new SwitchForm[13]; |
- int sw = 0; |
- kSwitchForms[sw++] = new SwitchForm("?", SwitchType.Simple, false); |
- kSwitchForms[sw++] = new SwitchForm("H", SwitchType.Simple, false); |
- kSwitchForms[sw++] = new SwitchForm("A", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("D", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("FB", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("LC", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("LP", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("PB", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("MF", SwitchType.UnLimitedPostString, false, 1); |
- kSwitchForms[sw++] = new SwitchForm("EOS", SwitchType.Simple, false); |
- kSwitchForms[sw++] = new SwitchForm("SI", SwitchType.Simple, false); |
- kSwitchForms[sw++] = new SwitchForm("SO", SwitchType.Simple, false); |
- kSwitchForms[sw++] = new SwitchForm("T", SwitchType.UnLimitedPostString, false, 1); |
- |
- |
- Parser parser = new Parser(sw); |
- try |
- { |
- parser.ParseStrings(kSwitchForms, args); |
- } |
- catch |
- { |
- return IncorrectCommand(); |
- } |
- |
- if (parser[(int)Key.Help1].ThereIs || parser[(int)Key.Help2].ThereIs) |
- { |
- PrintHelp(); |
- return 0; |
- } |
- |
- System.Collections.ArrayList nonSwitchStrings = parser.NonSwitchStrings; |
- |
- int paramIndex = 0; |
- if (paramIndex >= nonSwitchStrings.Count) |
- return IncorrectCommand(); |
- string command = (string)nonSwitchStrings[paramIndex++]; |
- command = command.ToLower(); |
- |
- bool dictionaryIsDefined = false; |
- Int32 dictionary = 1 << 21; |
- if (parser[(int)Key.Dictionary].ThereIs) |
- { |
- Int32 dicLog; |
- if (!GetNumber((string)parser[(int)Key.Dictionary].PostStrings[0], out dicLog)) |
- IncorrectCommand(); |
- dictionary = (Int32)1 << dicLog; |
- dictionaryIsDefined = true; |
- } |
- string mf = "bt4"; |
- if (parser[(int)Key.MatchFinder].ThereIs) |
- mf = (string)parser[(int)Key.MatchFinder].PostStrings[0]; |
- mf = mf.ToLower(); |
- |
- if (command == "b") |
- { |
- const Int32 kNumDefaultItereations = 10; |
- Int32 numIterations = kNumDefaultItereations; |
- if (paramIndex < nonSwitchStrings.Count) |
- if (!GetNumber((string)nonSwitchStrings[paramIndex++], out numIterations)) |
- numIterations = kNumDefaultItereations; |
- return LzmaBench.LzmaBenchmark(numIterations, (UInt32)dictionary); |
- } |
- |
- string train = ""; |
- if (parser[(int)Key.Train].ThereIs) |
- train = (string)parser[(int)Key.Train].PostStrings[0]; |
- |
- bool encodeMode = false; |
- if (command == "e") |
- encodeMode = true; |
- else if (command == "d") |
- encodeMode = false; |
- else |
- IncorrectCommand(); |
- |
- bool stdInMode = parser[(int)Key.StdIn].ThereIs; |
- bool stdOutMode = parser[(int)Key.StdOut].ThereIs; |
- |
- Stream inStream = null; |
- if (stdInMode) |
- { |
- throw (new Exception("Not implemeted")); |
- } |
- else |
- { |
- if (paramIndex >= nonSwitchStrings.Count) |
- IncorrectCommand(); |
- string inputName = (string)nonSwitchStrings[paramIndex++]; |
- inStream = new FileStream(inputName, FileMode.Open, FileAccess.Read); |
- } |
- |
- FileStream outStream = null; |
- if (stdOutMode) |
- { |
- throw (new Exception("Not implemeted")); |
- } |
- else |
- { |
- if (paramIndex >= nonSwitchStrings.Count) |
- IncorrectCommand(); |
- string outputName = (string)nonSwitchStrings[paramIndex++]; |
- outStream = new FileStream(outputName, FileMode.Create, FileAccess.Write); |
- } |
- |
- FileStream trainStream = null; |
- if (train.Length != 0) |
- trainStream = new FileStream(train, FileMode.Open, FileAccess.Read); |
- |
- if (encodeMode) |
- { |
- if (!dictionaryIsDefined) |
- dictionary = 1 << 23; |
- |
- Int32 posStateBits = 2; |
- Int32 litContextBits = 3; // for normal files |
- // UInt32 litContextBits = 0; // for 32-bit data |
- Int32 litPosBits = 0; |
- // UInt32 litPosBits = 2; // for 32-bit data |
- Int32 algorithm = 2; |
- Int32 numFastBytes = 128; |
- |
- bool eos = parser[(int)Key.EOS].ThereIs || stdInMode; |
- |
- if (parser[(int)Key.Mode].ThereIs) |
- if (!GetNumber((string)parser[(int)Key.Mode].PostStrings[0], out algorithm)) |
- IncorrectCommand(); |
- |
- if (parser[(int)Key.FastBytes].ThereIs) |
- if (!GetNumber((string)parser[(int)Key.FastBytes].PostStrings[0], out numFastBytes)) |
- IncorrectCommand(); |
- if (parser[(int)Key.LitContext].ThereIs) |
- if (!GetNumber((string)parser[(int)Key.LitContext].PostStrings[0], out litContextBits)) |
- IncorrectCommand(); |
- if (parser[(int)Key.LitPos].ThereIs) |
- if (!GetNumber((string)parser[(int)Key.LitPos].PostStrings[0], out litPosBits)) |
- IncorrectCommand(); |
- if (parser[(int)Key.PosBits].ThereIs) |
- if (!GetNumber((string)parser[(int)Key.PosBits].PostStrings[0], out posStateBits)) |
- IncorrectCommand(); |
- |
- CoderPropID[] propIDs = |
- { |
- CoderPropID.DictionarySize, |
- CoderPropID.PosStateBits, |
- CoderPropID.LitContextBits, |
- CoderPropID.LitPosBits, |
- CoderPropID.Algorithm, |
- CoderPropID.NumFastBytes, |
- CoderPropID.MatchFinder, |
- CoderPropID.EndMarker |
- }; |
- object[] properties = |
- { |
- (Int32)(dictionary), |
- (Int32)(posStateBits), |
- (Int32)(litContextBits), |
- (Int32)(litPosBits), |
- (Int32)(algorithm), |
- (Int32)(numFastBytes), |
- mf, |
- eos |
- }; |
- |
- Compression.LZMA.Encoder encoder = new Compression.LZMA.Encoder(); |
- encoder.SetCoderProperties(propIDs, properties); |
- encoder.WriteCoderProperties(outStream); |
- Int64 fileSize; |
- if (eos || stdInMode) |
- fileSize = -1; |
- else |
- fileSize = inStream.Length; |
- for (int i = 0; i < 8; i++) |
- outStream.WriteByte((Byte)(fileSize >> (8 * i))); |
- if (trainStream != null) |
- { |
- CDoubleStream doubleStream = new CDoubleStream(); |
- doubleStream.s1 = trainStream; |
- doubleStream.s2 = inStream; |
- doubleStream.fileIndex = 0; |
- inStream = doubleStream; |
- long trainFileSize = trainStream.Length; |
- doubleStream.skipSize = 0; |
- if (trainFileSize > dictionary) |
- doubleStream.skipSize = trainFileSize - dictionary; |
- trainStream.Seek(doubleStream.skipSize, SeekOrigin.Begin); |
- encoder.SetTrainSize((uint)(trainFileSize - doubleStream.skipSize)); |
- } |
- encoder.Code(inStream, outStream, -1, -1, null); |
- } |
- else if (command == "d") |
- { |
- byte[] properties = new byte[5]; |
- if (inStream.Read(properties, 0, 5) != 5) |
- throw (new Exception("input .lzma is too short")); |
- Compression.LZMA.Decoder decoder = new Compression.LZMA.Decoder(); |
- decoder.SetDecoderProperties(properties); |
- if (trainStream != null) |
- { |
- if (!decoder.Train(trainStream)) |
- throw (new Exception("can't train")); |
- } |
- long outSize = 0; |
- for (int i = 0; i < 8; i++) |
- { |
- int v = inStream.ReadByte(); |
- if (v < 0) |
- throw (new Exception("Can't Read 1")); |
- outSize |= ((long)(byte)v) << (8 * i); |
- } |
- long compressedSize = inStream.Length - inStream.Position; |
- decoder.Code(inStream, outStream, compressedSize, outSize, null); |
- } |
- else |
- throw (new Exception("Command Error")); |
- return 0; |
- } |
- |
- [STAThread] |
- static int Main(string[] args) |
- { |
- try |
- { |
- return Main2(args); |
- } |
- catch (Exception e) |
- { |
- Console.WriteLine("{0} Caught exception #1.", e); |
- // throw e; |
- return 1; |
- } |
- } |
- } |
-} |