Lasse Collin [Wed, 17 Dec 2008 18:11:23 +0000 (20:11 +0200)]
xz message handling improvements
Lasse Collin [Mon, 15 Dec 2008 21:26:43 +0000 (23:26 +0200)]
Fix a dumb bug in .lzma decoder which was introduced in
the previous commit. (Probably the previous commit has
other bugs too, it wasn't tested.)
Lasse Collin [Mon, 15 Dec 2008 17:39:13 +0000 (19:39 +0200)]
Bunch of liblzma API cleanups and fixes.
Lasse Collin [Mon, 15 Dec 2008 12:26:52 +0000 (14:26 +0200)]
The LZMA2 decoder fix introduced a bug to LZ decoder,
which made LZ decoder return too early after dictionary
reset. This fixes it.
Lasse Collin [Mon, 15 Dec 2008 09:20:22 +0000 (11:20 +0200)]
Added two new test files.
Lasse Collin [Mon, 15 Dec 2008 08:01:59 +0000 (10:01 +0200)]
Fix data corruption in LZMA2 decoder.
Lasse Collin [Fri, 12 Dec 2008 22:54:11 +0000 (00:54 +0200)]
Name the package "xz" in configure.ac.
Lasse Collin [Fri, 12 Dec 2008 20:43:21 +0000 (22:43 +0200)]
Some adjustments to GCC warning flags. The important change
is the removal of -pedantic. It messes up -Werror (which I
really want to keep so that I don't miss any warnings) with
printf format strings that are in POSIX but not in C99.
Lasse Collin [Tue, 9 Dec 2008 23:31:00 +0000 (01:31 +0200)]
Remove obsolete comment.
Lasse Collin [Tue, 9 Dec 2008 23:27:15 +0000 (01:27 +0200)]
Use "decompression" consistently in --long-help.
Lasse Collin [Tue, 9 Dec 2008 23:23:58 +0000 (01:23 +0200)]
Added preset=NUM to --lzma1 and --lzma2. This makes it easy
to take a preset as a template and modify it a little.
Lasse Collin [Tue, 9 Dec 2008 15:43:31 +0000 (17:43 +0200)]
Put the file format specification into the public domain.
Same will be done to the actual code later.
Lasse Collin [Tue, 9 Dec 2008 15:41:49 +0000 (17:41 +0200)]
Make the memusage functions of LZMA1 and LZMA2 encoders
to validate the filter options. Add missing validation
to LZMA2 encoder when options are changed in the middle
of encoding.
Lasse Collin [Tue, 9 Dec 2008 08:36:24 +0000 (10:36 +0200)]
Updated THANKS.
Lasse Collin [Mon, 1 Dec 2008 21:04:12 +0000 (23:04 +0200)]
In command line tool, take advantage of memusage calculation's
ability to also validate the filter chain and options (not
implemented yet for all filters).
Lasse Collin [Mon, 1 Dec 2008 20:59:28 +0000 (22:59 +0200)]
Validate the filter chain before checking filter-specific
memory usage.
Lasse Collin [Mon, 1 Dec 2008 20:58:22 +0000 (22:58 +0200)]
Make the memusage functions of LZMA1 and LZMA2 decoders
to validate the filter options.
Lasse Collin [Mon, 1 Dec 2008 20:55:18 +0000 (22:55 +0200)]
Added the changes for Delta filter that should have been
part of
656ec87882ee74b192c4ea4a233a235eca7b04d4.
Lasse Collin [Mon, 1 Dec 2008 20:50:28 +0000 (22:50 +0200)]
LZMA2 decoder cleanups. Make it require new LZMA properties
also in the first LZMA chunk after a dictionary reset in
uncompressed chunk.
Lasse Collin [Mon, 1 Dec 2008 14:30:11 +0000 (16:30 +0200)]
Added lzma_delta_coder_memusage() which also validates
the options.
Lasse Collin [Sat, 29 Nov 2008 08:03:49 +0000 (10:03 +0200)]
Automake includes the m4 directory, so don't add it in
Makefile.am separately.
Updated THANKS.
Lasse Collin [Fri, 28 Nov 2008 10:00:48 +0000 (12:00 +0200)]
Tested using COLUMNS environment variable to avoid broken
progress indicator but since COLUMNS isn't usually available,
the code was left commented out.
Lasse Collin [Thu, 27 Nov 2008 17:28:59 +0000 (19:28 +0200)]
Cleanups to message.c.
Lasse Collin [Tue, 25 Nov 2008 00:37:47 +0000 (02:37 +0200)]
Remove the nowadays unneeded memory limitting malloc() wrapper.
Lasse Collin [Sun, 23 Nov 2008 13:09:03 +0000 (15:09 +0200)]
VLI encoder and decoder cleanups. Made encoder return
LZMA_PROG_ERROR in single-call mode if there's no output
space.
Lasse Collin [Sat, 22 Nov 2008 15:44:33 +0000 (17:44 +0200)]
Typo fix
Lasse Collin [Thu, 20 Nov 2008 20:59:10 +0000 (22:59 +0200)]
Support NetBSD's errno for O_NOFOLLOW.
Lasse Collin [Thu, 20 Nov 2008 16:05:52 +0000 (18:05 +0200)]
Build xzdec and lzmadec from xzdec.c. xzdec supports only .xz
files and lzmadec only .lzma files.
Lasse Collin [Thu, 20 Nov 2008 09:01:29 +0000 (11:01 +0200)]
Minor cleanups to xzdec.
Lasse Collin [Wed, 19 Nov 2008 21:55:22 +0000 (23:55 +0200)]
Added missing check for uint16_t.
Lasse Collin [Wed, 19 Nov 2008 21:52:24 +0000 (23:52 +0200)]
Renamed lzma to xz and lzmadec to xzdec. We create symlinks
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.
Lasse Collin [Wed, 19 Nov 2008 18:46:52 +0000 (20:46 +0200)]
Oh well, big messy commit again. Some highlights:
- Updated to the latest, probably final file format version.
- Command line tool reworked to not use threads anymore.
Threading will probably go into liblzma anyway.
- Memory usage limit is now about 30 % for uncompression
and about 90 % for compression.
- Progress indicator with --verbose
- Simplified --help and full --long-help
- Upgraded to the last LGPLv2.1+ getopt_long from gnulib.
- Some bug fixes
Lasse Collin [Thu, 9 Oct 2008 08:12:29 +0000 (11:12 +0300)]
Fixed the test that should have been fixed as part
of
1e8e4fd1f3e50129b4541406ad765d2aa1233943.
Lasse Collin [Tue, 7 Oct 2008 13:42:18 +0000 (16:42 +0300)]
Fixed some help messages.
Lasse Collin [Tue, 7 Oct 2008 06:40:31 +0000 (09:40 +0300)]
Made the preset numbering more logical in liblzma API.
Lasse Collin [Fri, 3 Oct 2008 16:36:09 +0000 (19:36 +0300)]
Removed fi from po/LINGUAS.
Lasse Collin [Fri, 3 Oct 2008 04:06:48 +0000 (07:06 +0300)]
Fixed suffix handling with --format=raw.
Lasse Collin [Thu, 2 Oct 2008 19:51:46 +0000 (22:51 +0300)]
Initial changes to change the suffix of the new format to .xz.
This also fixes a bug related to --suffix option. Some issues
with suffixes with --format=raw were not fixed.
Lasse Collin [Tue, 30 Sep 2008 14:43:55 +0000 (17:43 +0300)]
Renamed the test files from .lzma suffix to .xz suffix.
Lasse Collin [Tue, 30 Sep 2008 10:57:44 +0000 (13:57 +0300)]
Fixed Stream decoder to actually use the first_stream variable.
Lasse Collin [Tue, 30 Sep 2008 10:56:57 +0000 (13:56 +0300)]
Added one more test file.
Lasse Collin [Tue, 30 Sep 2008 10:34:07 +0000 (13:34 +0300)]
Fixed uninitialized variable in Stream decoder.
Lasse Collin [Tue, 30 Sep 2008 10:27:28 +0000 (13:27 +0300)]
Added two test files.
Lasse Collin [Sat, 27 Sep 2008 20:49:24 +0000 (23:49 +0300)]
Fix conflicting Subblock helper filter's ID.
Lasse Collin [Sat, 27 Sep 2008 20:37:13 +0000 (23:37 +0300)]
Changed magic bytes to match the updated spec. Filename
suffix wasn't changed yet.
Lasse Collin [Sat, 27 Sep 2008 20:16:09 +0000 (23:16 +0300)]
Remove po/fi.po since I'm not keeping it updated for now.
Lasse Collin [Sat, 27 Sep 2008 20:13:54 +0000 (23:13 +0300)]
Fix also test_compress.sh.
Lasse Collin [Sat, 27 Sep 2008 20:01:15 +0000 (23:01 +0300)]
Fixed compilation of test_filter_flags.c, which was broken by
1dcecfb09b55157b8653d747963069c8bed74f04.
Lasse Collin [Sat, 27 Sep 2008 16:11:02 +0000 (19:11 +0300)]
Updated file format specification. It changes the suffix
of the new format to .xz and removes the recently added
LZMA filter.
Lasse Collin [Sat, 27 Sep 2008 16:09:21 +0000 (19:09 +0300)]
Some API changes, bug fixes, cleanups etc.
Lasse Collin [Sat, 27 Sep 2008 08:28:49 +0000 (11:28 +0300)]
Added 7z2lzma.bash.
Lasse Collin [Wed, 17 Sep 2008 19:11:39 +0000 (22:11 +0300)]
Miscellaneous LZ and LZMA encoder cleanups
Lasse Collin [Sat, 13 Sep 2008 10:54:00 +0000 (13:54 +0300)]
LZ decoder cleanup
Lasse Collin [Sat, 13 Sep 2008 09:10:43 +0000 (12:10 +0300)]
Renamed constants:
- LZMA_VLI_VALUE_MAX -> LZMA_VLI_MAX
- LZMA_VLI_VALUE_UNKNOWN -> LZMA_VLI_UNKNOWN
- LZMA_HEADER_ERRRO -> LZMA_OPTIONS_ERROR
Lasse Collin [Fri, 12 Sep 2008 19:41:40 +0000 (22:41 +0300)]
Improved the Stream Flags handling API.
Lasse Collin [Thu, 11 Sep 2008 20:10:44 +0000 (23:10 +0300)]
Simplified debug/known_sizes.c to match the relaxed
requirements of Block encoder.
Lasse Collin [Thu, 11 Sep 2008 20:09:24 +0000 (23:09 +0300)]
Remove a check from Block encoder that should have already
been removed in
2ba01bfa755e47ff6af84a978e3c8d63d7d2775e.
Lasse Collin [Thu, 11 Sep 2008 17:02:38 +0000 (20:02 +0300)]
Remove bogus #includes.
Lasse Collin [Thu, 11 Sep 2008 07:49:14 +0000 (10:49 +0300)]
Updated THANKS.
Lasse Collin [Thu, 11 Sep 2008 07:48:12 +0000 (10:48 +0300)]
Fix a compiler error on big endian systems that don't
support unaligned memory access.
Lasse Collin [Thu, 11 Sep 2008 07:46:14 +0000 (10:46 +0300)]
Silence a compiler warning.
Lasse Collin [Wed, 10 Sep 2008 16:16:32 +0000 (19:16 +0300)]
Bumped version to 4.999.6alpha.
Lasse Collin [Wed, 10 Sep 2008 14:02:00 +0000 (17:02 +0300)]
Check for LZMA_FILTER_RESERVED_START in filter_flags_encoder.c.
Use LZMA_PROG_ERROR instead of LZMA_HEADER_ERROR if the Filter ID
is in the reserved range. This allows Block Header encoder to
detect unallowed Filter IDs, which is good for Stream encoder.
Lasse Collin [Wed, 10 Sep 2008 13:44:32 +0000 (16:44 +0300)]
Filter handling cleanups
Lasse Collin [Tue, 9 Sep 2008 21:33:00 +0000 (00:33 +0300)]
Comments
Lasse Collin [Tue, 9 Sep 2008 21:27:02 +0000 (00:27 +0300)]
Cleaned up Block encoder and moved the no longer shared
code from block_private.h to block_decoder.c. Now the Block
encoder doesn't need compressed_size and uncompressed_size
from lzma_block structure to be initialized.
Lasse Collin [Sun, 7 Sep 2008 07:23:13 +0000 (10:23 +0300)]
Changed Filter ID of LZMA to 0x20.
Lasse Collin [Sat, 6 Sep 2008 20:42:50 +0000 (23:42 +0300)]
Comments
Lasse Collin [Sat, 6 Sep 2008 12:14:30 +0000 (15:14 +0300)]
Some API cleanups
Lasse Collin [Thu, 4 Sep 2008 08:53:06 +0000 (11:53 +0300)]
Added support for raw encoding and decoding to the command
line tool, and made various cleanups. --lzma was renamed to
--lzma1 to prevent people from accidentally using LZMA when
they want LZMA2.
Lasse Collin [Thu, 4 Sep 2008 07:39:15 +0000 (10:39 +0300)]
Don't allow LZMA_SYNC_FLUSH with decoders anymore. There's
simply nothing that would use it. Allow LZMA_FINISH to the
decoders, which will usually ignore it (auto decoder and
Stream decoder being exceptions).
Lasse Collin [Wed, 3 Sep 2008 14:06:25 +0000 (17:06 +0300)]
Minor updates to the file format specification.
Lasse Collin [Tue, 2 Sep 2008 16:33:32 +0000 (19:33 +0300)]
Command line tool fixes
Lasse Collin [Tue, 2 Sep 2008 16:31:42 +0000 (19:31 +0300)]
Auto decoder cleanup
Lasse Collin [Tue, 2 Sep 2008 16:12:12 +0000 (19:12 +0300)]
Updated auto decoder to handle LZMA_CONCATENATED when decoding
LZMA_Alone files. Decoding of concatenated LZMA_Alone files is
intentionally not supported, so it is better to put this in
auto decoder than LZMA_Alone decoder.
Lasse Collin [Tue, 2 Sep 2008 11:56:52 +0000 (14:56 +0300)]
Stream decoder cleanups
Lasse Collin [Tue, 2 Sep 2008 08:45:39 +0000 (11:45 +0300)]
Some fixes to LZ encoder.
Lasse Collin [Sun, 31 Aug 2008 08:47:01 +0000 (11:47 +0300)]
Fix wrong pointer calculation in LZMA encoder.
Lasse Collin [Thu, 28 Aug 2008 19:53:15 +0000 (22:53 +0300)]
Sort of garbage collection commit. :-| Many things are still
broken. API has changed a lot and it will still change a
little more here and there. The command line tool doesn't
have all the required changes to reflect the API changes, so
it's easy to get "internal error" or trigger assertions.
Lasse Collin [Fri, 20 Jun 2008 14:16:32 +0000 (17:16 +0300)]
Fix test_filter_flags to match the new restriction of lc+lp.
Lasse Collin [Fri, 20 Jun 2008 13:19:54 +0000 (16:19 +0300)]
Remove some redundant code from LZMA encoder.
Lasse Collin [Thu, 19 Jun 2008 13:35:08 +0000 (16:35 +0300)]
Add limit of lc + lp <= 4. Now we can allocate the
literal coder as part of the main LZMA encoder or
decoder structure.
Make the LZMA decoder to rely on the current internal API
to free the allocated memory in case an error occurs.
Lasse Collin [Wed, 18 Jun 2008 18:45:19 +0000 (21:45 +0300)]
Comments
Lasse Collin [Wed, 18 Jun 2008 16:19:02 +0000 (19:19 +0300)]
Delete old code that was supposed to be already deleted
from test_block_header.c.
Lasse Collin [Wed, 18 Jun 2008 15:02:10 +0000 (18:02 +0300)]
Update the code to mostly match the new simpler file format
specification. Simplify things by removing most of the
support for known uncompressed size in most places.
There are some miscellaneous changes here and there too.
The API of liblzma has got many changes and still some
more will be done soon. While most of the code has been
updated, some things are not fixed (the command line tool
will choke with invalid filter chain, if nothing else).
Subblock filter is somewhat broken for now. It will be
updated once the encoded format of the Subblock filter
has been decided.
Lasse Collin [Tue, 17 Jun 2008 12:03:46 +0000 (15:03 +0300)]
Update the file format specification draft. The new one is
a lot simpler than the previous versions, but it also means
that the existing code will change a lot.
Lasse Collin [Wed, 11 Jun 2008 18:42:47 +0000 (21:42 +0300)]
Fix uninitialized variable in LZMA encoder. This was
introduced in
369f72fd656f537a9a8e06f13e6d0d4c242be22f.
Lasse Collin [Wed, 11 Jun 2008 12:08:44 +0000 (15:08 +0300)]
Improve command line integer parsing a little in lzma and
lzmadec to make them accept also KiB in addition Ki etc.
Fix also memory usage information in lzmadec --help.
Lasse Collin [Tue, 10 Jun 2008 17:36:12 +0000 (20:36 +0300)]
s/decompressed/compressed/ in the command line tool's
error message.
Lasse Collin [Sun, 1 Jun 2008 09:48:17 +0000 (12:48 +0300)]
Fix a buffer overflow in the LZMA encoder. It was due to my
misunderstanding of the code. There's no tiny fix for this
problem, so I also cleaned up the code in general.
This reduces the speed of the encoder 2-5 % in the fastest
compression mode ("lzma -1"). High compression modes should
have no noticeable performance difference.
This commit breaks things (especially LZMA_SYNC_FLUSH) but I
will fix them once the new format and LZMA2 has been roughly
implemented. Plain LZMA won't support LZMA_SYNC_FLUSH at all
and won't be supported in the new .lzma format. This may
change still but this is what it looks like now.
Support for known uncompressed size (that is, LZMA or LZMA2
without EOPM) is likely to go away. This means there will
be API changes.
Lasse Collin [Fri, 30 May 2008 08:53:41 +0000 (11:53 +0300)]
Typo fixes from meyering.
Lasse Collin [Sun, 11 May 2008 11:24:42 +0000 (14:24 +0300)]
Remove support for pre-C89 libc versions that lack memcpy,
memmove, and memset.
Lasse Collin [Sun, 11 May 2008 11:17:21 +0000 (14:17 +0300)]
Improved C99 compiler detection in configure.ac. It will
pass -std=gnu99 instead of -std=c99 to GCC now, but -pedantic
should still give warnings about GNU extensions like before
except with some special keywords like asm().
Lasse Collin [Tue, 6 May 2008 12:15:07 +0000 (15:15 +0300)]
Bunch of grammar fixes from meyering.
Lasse Collin [Tue, 6 May 2008 10:41:05 +0000 (13:41 +0300)]
Typo fix
Lasse Collin [Sun, 4 May 2008 19:29:27 +0000 (22:29 +0300)]
Don't print an error message on broken pipe unless --verbose
is used.
Lasse Collin [Wed, 30 Apr 2008 19:16:17 +0000 (22:16 +0300)]
Fix a crash with --format=alone if other filters than LZMA
are specified on the command line.
Lasse Collin [Mon, 28 Apr 2008 14:08:27 +0000 (17:08 +0300)]
Updated THANKS.
Lasse Collin [Mon, 28 Apr 2008 14:06:34 +0000 (17:06 +0300)]
Fixed wrong spelling "limitter" to "limiter". This affects
liblzma's API.
Lasse Collin [Fri, 25 Apr 2008 12:39:50 +0000 (15:39 +0300)]
Prevent LZ encoder from hanging with known uncompressed
size. The "fix" breaks LZMA_SYNC_FLUSH at end of stream
with known uncompressed size, but since it currently seems
likely that support for encoding with known uncompressed
size will go away anyway, I'm not fixing this problem now.