aboutsummaryrefslogtreecommitdiff
path: root/src/xzdec/xzdec.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2010-08-07Disable the memory usage limiter by default.Lasse Collin1-172/+4
For several people, the limiter causes bigger problems that it solves, so it is better to have it disabled by default. Those who want to have a limiter by default need to enable it via the environment variable XZ_DEFAULTS. Support for environment variable XZ_DEFAULTS was added. It is parsed before XZ_OPT and technically identical with it. The intended uses differ quite a bit though; see the man page. The memory usage limit can now be set separately for compression and decompression using --memlimit-compress and --memlimit-decompress. To set both at once, -M or --memlimit can be used. --memory was retained as a legacy alias for --memlimit for backwards compatibility. The semantics of --info-memory were changed in backwards incompatible way. Compatibility wasn't meaningful due to changes in the memory usage limiter functionality. The memory usage limiter info is no longer shown at the bottom of xz --long -help. The memory usage limiter support for removed completely from xzdec. xz's man page was updated to match the above changes. Various unrelated fixes were also made to the man page.
2010-06-11Fix string to uint64_t conversion.Lasse Collin1-2/+11
Thanks to Denis Excoffier for the bug report.
2010-03-07Treat all integer multiplier suffixes as base-2.Lasse Collin1-26/+16
Originally both base-2 and base-10 were supported, but since there seems to be little need for base-10 in XZ Utils, treat everything as base-2 and also be more relaxed about the case of the first letter of the suffix. Now xz will accept e.g. KiB, Ki, k, K, kB, and KB, and interpret them all as 1024. The recommended spelling of the suffixes are still KiB, MiB, and GiB.
2010-03-07Consistently round up the memory usage limit in messages.Lasse Collin1-2/+5
It still feels a bit wrong to round 1 byte to 1 MiB but at least it is now done consistently so that the same byte value is always rounded the same way to MiB.
2010-03-07Increase the default memory usage limit on "low-memory" systems.Lasse Collin1-12/+30
Previously the default limit was always 40 % of RAM. The new limit is a little bit more complex: - If 40 % of RAM is at least 80 MiB, 40 % of RAM is used as the limit. - If 80 % of RAM is over 80 MiB, 80 MiB is used as the limit. - Otherwise 80 % of RAM is used as the limit. This should make it possible to decompress files created with "xz -9" on more systems. Swapping is generally more expected on systems with less RAM, so higher default limit on them shouldn't cause too bad surprises in terms of heavy swapping. Instead, the higher default limit should reduce the number of bad surprises when it used to prevent decompression of files created with "xz -9". The DoS prevention system shouldn't be a DoS itself. Note that even with the new default limit, a system with 64 MiB RAM cannot decompress files created with "xz -9" without user overriding the limit. This should be OK, because if xz is going to need more memory than the system has RAM, it will run very very slowly and thus it's good that user has to override the limit in that case.
2010-01-27Use PACKAGE_URL instead of custom PACKAGE_HOMEPAGE.Lasse Collin1-1/+1
2009-11-15Add lzma_physmem().Lasse Collin1-2/+1
I had hoped to keep liblzma as purely a compression library as possible (e.g. file I/O will go into a different library), but it seems that applications linking agaisnt liblzma need some way to determine the memory usage limit, and knowing the amount of RAM is one reasonable way to help making such decisions. Thanks to Jonathan Nieder for the original patch.
2009-10-02Add support for --enable-assume-ram=SIZE.Lasse Collin1-2/+3
2009-09-19Various changes.Lasse Collin1-40/+15
Separate a few reusable components from XZ Utils specific code. The reusable code is now in "tuklib" modules. A few more could be separated still, e.g. bswap.h. Fix some bugs in lzmainfo. Fix physmem and cpucores code on OS/2. Thanks to Elbert Pol for help. Add OpenVMS support into physmem. Add a few #ifdefs to ease building XZ Utils on OpenVMS. Thanks to Jouk Jansen for the original patch.
2009-09-12A few grammar fixes.Lasse Collin1-1/+1
Thanks to Christian Weisgerber for pointing out some of these.
2009-08-13Sync some error messages from xz to xzdec.Lasse Collin1-3/+3
Make xz error message translation usable outside xz (at least in upcoming lzmainfo).
2009-07-08Remove --force from xzdec.Lasse Collin1-4/+1
It was ignored for compatibility with xz, but now that --decompress --stdout --force copies unrecognized files as is to stdout, simply ignoring --force in xzdec would be wrong. xzdec will not support copying unrecognized data as is to stdout, so it cannot support --force.
2009-07-02Define PACKAGE_HOMEPAGE in configure.ac and use it inLasse Collin1-2/+2
xz and xzdec. Use also PACKAGE_NAME instead of hardcoding "XZ Utils".
2009-06-04Harmonized xzdec --memory with xz --memory and madeLasse Collin1-21/+53
minor cleanups.
2009-05-22Added support for --quiet and --no-warn to xzdec.Lasse Collin1-27/+49
Cleaned up the --help message a little.
2009-05-22Use the 40 % of RAM memory usage limit in xzdec too.Lasse Collin1-5/+5
Update the memory usage info text in --help to match the text in xz --long-help.
2009-05-21Support special value "max" where xz and xzdec accept an integer.Lasse Collin1-1/+5
Don't round the memory usage limit in xzdec --help to avoid an integer overflow and to not give wrong impression that the limit is high enough when it may not actually be.
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin1-10/+3
Some minor documentation cleanups were made at the same time.
2009-02-13Changed how the version number is specified in various places.Lasse Collin1-1/+1
Now configure.ac will get the version number directly from src/liblzma/api/lzma/version.h. The intent is to reduce the number of places where the version number is duplicated. In future, support for displaying Git commit ID may be added too.
2009-02-13Improve support for DOS-like systems.Lasse Collin1-2/+3
Here DOS-like means DOS, Windows, and OS/2.
2009-02-01Fix missing newlines in xzdec.c.Lasse Collin1-3/+3
2009-01-31Add LZMA_API to liblzma API headers. It's useful at leastLasse Collin1-0/+1
on Windows. sysdefs.h no longer #includes lzma.h, so lzma.h has to be #included separately where needed.
2009-01-31Use _WIN32 instead of WIN32 in xzdec.c to test if compiling on Windows.Lasse Collin1-2/+2
2008-12-31Remove lzma_init() and other init functions from liblzma API.Lasse Collin1-3/+0
Half of developers were already forgetting to use these functions, which could have caused total breakage in some future liblzma version or even now if --enable-small was used. Now liblzma uses pthread_once() to do the initializations unless it has been built with --disable-threads which make these initializations thread-unsafe. When --enable-small isn't used, liblzma currently gets needlessly linked against libpthread (on systems that have it). While it is stupid for now, liblzma will need threads in future anyway, so this stupidity will be temporary only. When --enable-small is used, different code CRC32 and CRC64 is now used than without --enable-small. This made the resulting binary slightly smaller, but the main reason was to clean it up and to handle the lack of lzma_init_check(). The pkg-config file lzma.pc was renamed to liblzma.pc. I'm not sure if it works correctly and portably for static linking (Libs.private includes -pthread or other operating system specific flags). Hopefully someone complains if it is bad. lzma_rc_prices[] is now included as a precomputed array even with --enable-small. It's just 128 bytes now that it uses uint8_t instead of uint32_t. Smaller array seemed to be at least as fast as the more bloated uint32_t array on x86; hopefully it's not bad on other architectures.
2008-11-20Build xzdec and lzmadec from xzdec.c. xzdec supports only .xzLasse Collin1-177/+134
files and lzmadec only .lzma files.
2008-11-20Minor cleanups to xzdec.Lasse Collin1-10/+10
2008-11-19Renamed lzma to xz and lzmadec to xzdec. We create symlinksLasse Collin1-0/+492
lzma, unlzma, and lzcat in "make install" for backwards compatibility with LZMA Utils 4.32.x; I'm not sure if this should be the default though.