MFV r291123:
xz 5.2.2. MFC after: 1 month Relnotes: yes
This commit is contained in:
commit
fe50a38eb0
@ -1,3 +1,313 @@
|
|||||||
|
commit 9815cdf6987ef91a85493bfcfd1ce2aaf3b47a0a
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-09-29 13:59:35 +0300
|
||||||
|
|
||||||
|
Bump version and soname for 5.2.2.
|
||||||
|
|
||||||
|
src/liblzma/Makefile.am | 2 +-
|
||||||
|
src/liblzma/api/lzma/version.h | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
commit cbe0cec8476bdd0416c7ca9bc83895c9bea1cf78
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-09-29 13:57:28 +0300
|
||||||
|
|
||||||
|
Update NEWS for 5.2.2.
|
||||||
|
|
||||||
|
NEWS | 18 ++++++++++++++++++
|
||||||
|
1 file changed, 18 insertions(+)
|
||||||
|
|
||||||
|
commit 49427ce7eececdd18bbd35dab23c81910d083e1c
|
||||||
|
Author: Andre Noll <maan@tuebingen.mpg.de>
|
||||||
|
Date: 2015-05-28 15:50:00 +0200
|
||||||
|
|
||||||
|
Fix typo in German translation.
|
||||||
|
|
||||||
|
As pointed out by Robert Pollak, there's a typo in the German
|
||||||
|
translation of the compression preset option (-0 ... -9) help text.
|
||||||
|
"The compressor" translates to "der Komprimierer", and the genitive
|
||||||
|
form is "des Komprimierers". The old word makes no sense at all.
|
||||||
|
|
||||||
|
po/de.po | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 608d6f06c940e7f28c25de005e8b99bdff42d27c
|
||||||
|
Author: Hauke Henningsen <sqrt@entless.org>
|
||||||
|
Date: 2015-08-17 04:59:54 +0200
|
||||||
|
|
||||||
|
Update German translation, mostly wrt orthography
|
||||||
|
|
||||||
|
Provide an update of the German translation.
|
||||||
|
* A lot of compound words were previously written with spaces, while
|
||||||
|
German orthography is relatively clear in that the components
|
||||||
|
should not be separated.
|
||||||
|
* When referring to the actual process of (de)compression rather than the
|
||||||
|
concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
|
||||||
|
Previously, both forms were used in this context and are now used in a
|
||||||
|
manner consistent with “Komprimierung” being more likely to refer to
|
||||||
|
a process.
|
||||||
|
* Consistently translate “standard input”/“output”
|
||||||
|
* Use “Zeichen” instead of false friend “Charakter” for “character”
|
||||||
|
* Insert commas around relative clauses (as required in German)
|
||||||
|
* Some other minor corrections
|
||||||
|
* Capitalize “ß” as “ẞ”
|
||||||
|
* Consistently start option descriptions in --help with capital letters
|
||||||
|
|
||||||
|
Acked-By: Andre Noll <maan@tuebingen.mpg.de>
|
||||||
|
|
||||||
|
* Update after msgmerge
|
||||||
|
|
||||||
|
po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
|
||||||
|
1 file changed, 196 insertions(+), 187 deletions(-)
|
||||||
|
|
||||||
|
commit c8988414e5b67b8ef2fe0ba7b1ccdd0ec73c60d3
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-08-11 13:23:04 +0300
|
||||||
|
|
||||||
|
Build: Minor Cygwin cleanup.
|
||||||
|
|
||||||
|
Some tests used "cygwin*" and some used "cygwin". I changed
|
||||||
|
them all to use "cygwin". Shouldn't affect anything in practice.
|
||||||
|
|
||||||
|
configure.ac | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
commit 85a6dfed53477906bfe9a7c0123dd412e391cb48
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-08-11 13:21:52 +0300
|
||||||
|
|
||||||
|
Build: Support building of MSYS2 binaries.
|
||||||
|
|
||||||
|
configure.ac | 16 +++++++++++-----
|
||||||
|
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
commit 77f270be8432df2e4516a0c48814b6976d6618c5
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-08-09 21:06:26 +0300
|
||||||
|
|
||||||
|
Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
|
||||||
|
|
||||||
|
src/liblzma/common/common.h uses it to set __declspec(dllexport)
|
||||||
|
for the API symbols.
|
||||||
|
|
||||||
|
Thanks to Adam Walling.
|
||||||
|
|
||||||
|
windows/liblzma_dll.vcxproj | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
commit 8c975446c5903090a5a8493b5b96b71003056a88
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-08-09 21:02:20 +0300
|
||||||
|
|
||||||
|
Windows: Omit unneeded header files from MSVC project files.
|
||||||
|
|
||||||
|
windows/liblzma.vcxproj | 5 -----
|
||||||
|
windows/liblzma_dll.vcxproj | 5 -----
|
||||||
|
2 files changed, 10 deletions(-)
|
||||||
|
|
||||||
|
commit 119a00434954726ca58e4a578e6469f530fca30e
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-07-12 20:48:19 +0300
|
||||||
|
|
||||||
|
liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
|
||||||
|
|
||||||
|
src/liblzma/api/lzma.h | 18 +++++++++++++-----
|
||||||
|
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
commit d4e7c557fcab353539c9481a8d95cb04bcb15c7c
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-06-19 20:38:55 +0300
|
||||||
|
|
||||||
|
Update THANKS.
|
||||||
|
|
||||||
|
THANKS | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
commit 98001740ca56c894a7bd32eb47e9857a8a7d878d
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-06-19 20:21:30 +0300
|
||||||
|
|
||||||
|
Windows: Update the docs.
|
||||||
|
|
||||||
|
INSTALL | 29 ++++++----
|
||||||
|
windows/INSTALL-MSVC.txt | 47 +++++++++++++++
|
||||||
|
windows/INSTALL-MinGW.txt | 138 ++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
windows/INSTALL-Windows.txt | 138 --------------------------------------------
|
||||||
|
4 files changed, 204 insertions(+), 148 deletions(-)
|
||||||
|
|
||||||
|
commit 28195e4c877007cc760ecea1d17f740693d66873
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-06-19 17:25:31 +0300
|
||||||
|
|
||||||
|
Windows: Add MSVC project files for building liblzma.
|
||||||
|
|
||||||
|
Thanks to Adam Walling for creating these files.
|
||||||
|
|
||||||
|
windows/liblzma.vcxproj | 359 ++++++++++++++++++++++++++++++++++++++++
|
||||||
|
windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
windows/xz_win.sln | 48 ++++++
|
||||||
|
3 files changed, 795 insertions(+)
|
||||||
|
|
||||||
|
commit 960440f3230dc628f6966d9f7614fc1b28baf44e
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-05-13 20:57:55 +0300
|
||||||
|
|
||||||
|
Tests: Fix a memory leak in test_bcj_exact_size.
|
||||||
|
|
||||||
|
Thanks to Cristian Rodríguez.
|
||||||
|
|
||||||
|
tests/test_bcj_exact_size.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
commit 68cd35acafbdcdf4e8ea8b5bb843c736939d6f8b
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-05-12 18:08:24 +0300
|
||||||
|
|
||||||
|
Fix NEWS about threading in 5.2.0.
|
||||||
|
|
||||||
|
Thanks to Andy Hochhaus.
|
||||||
|
|
||||||
|
NEWS | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit ff96ed6d25786728356017a13baf8c14731b4f1e
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-05-11 21:26:16 +0300
|
||||||
|
|
||||||
|
xz: Document that threaded decompression hasn't been implemented yet.
|
||||||
|
|
||||||
|
src/xz/xz.1 | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit 00d37b64a64ea8597fd2422d5187afd761ab9531
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-04-20 20:20:29 +0300
|
||||||
|
|
||||||
|
Update THANKS.
|
||||||
|
|
||||||
|
THANKS | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
commit db190a832c49ca3aed6d69cc992fa5583cae7b11
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-04-20 19:59:18 +0300
|
||||||
|
|
||||||
|
Revert "xz: Use pipe2() if available."
|
||||||
|
|
||||||
|
This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
|
||||||
|
It is a problem when libc has pipe2() but the kernel is too
|
||||||
|
old to have pipe2() and thus pipe2() fails. In xz it's pointless
|
||||||
|
to have a fallback for non-functioning pipe2(); it's better to
|
||||||
|
avoid pipe2() completely.
|
||||||
|
|
||||||
|
Thanks to Michael Fox for the bug report.
|
||||||
|
|
||||||
|
configure.ac | 4 ++--
|
||||||
|
src/xz/file_io.c | 9 +--------
|
||||||
|
2 files changed, 3 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-29 22:14:47 +0300
|
||||||
|
|
||||||
|
Update THANKS.
|
||||||
|
|
||||||
|
THANKS | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-29 22:13:48 +0300
|
||||||
|
|
||||||
|
Fix the detection of installed RAM on QNX.
|
||||||
|
|
||||||
|
The earlier version compiled but didn't actually work
|
||||||
|
since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
|
||||||
|
|
||||||
|
Thanks to Ole André Vadla Ravnås for the patch and testing.
|
||||||
|
|
||||||
|
m4/tuklib_physmem.m4 | 6 +++---
|
||||||
|
src/common/tuklib_physmem.c | 14 +++++++++++++-
|
||||||
|
2 files changed, 16 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
commit 4c544d2410903d38402221cb783ed85585b6a007
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-27 22:39:07 +0200
|
||||||
|
|
||||||
|
Fix CPU core count detection on QNX.
|
||||||
|
|
||||||
|
It tried to use sysctl() on QNX but
|
||||||
|
- it broke the build because sysctl() needs -lsocket on QNX;
|
||||||
|
- sysctl() doesn't work for detecting the core count on QNX
|
||||||
|
even if it compiled.
|
||||||
|
|
||||||
|
sysconf() works. An alternative would have been to use
|
||||||
|
QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
|
||||||
|
|
||||||
|
Thanks to Ole André Vadla Ravnås.
|
||||||
|
|
||||||
|
m4/tuklib_cpucores.m4 | 15 +++++++++++----
|
||||||
|
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-07 22:05:57 +0200
|
||||||
|
|
||||||
|
xz: size_t/uint32_t cleanup in options.c.
|
||||||
|
|
||||||
|
src/xz/options.c | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
commit 8bcca29a65335fd679c13814b70b35b68fa5daed
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-07 22:04:23 +0200
|
||||||
|
|
||||||
|
xz: Fix a comment and silence a warning in message.c.
|
||||||
|
|
||||||
|
src/xz/message.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-07 22:01:00 +0200
|
||||||
|
|
||||||
|
liblzma: Silence more uint32_t vs. size_t warnings.
|
||||||
|
|
||||||
|
src/liblzma/lz/lz_encoder.c | 2 +-
|
||||||
|
src/liblzma/lzma/lzma_encoder.c | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-07 19:54:00 +0200
|
||||||
|
|
||||||
|
xz: Make arg_count an unsigned int to silence a warning.
|
||||||
|
|
||||||
|
Actually the value of arg_count cannot exceed INT_MAX
|
||||||
|
but it's nicer as an unsigned int.
|
||||||
|
|
||||||
|
src/xz/args.h | 2 +-
|
||||||
|
src/xz/main.c | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
commit f6ec46801588b1be29c07c9db98558b521304002
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-03-07 19:33:17 +0200
|
||||||
|
|
||||||
|
liblzma: Fix a warning in index.c.
|
||||||
|
|
||||||
|
src/liblzma/common/index.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
commit a24518971cc621315af142dd3bb7614fab04ad27
|
||||||
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
|
Date: 2015-02-26 20:46:14 +0200
|
||||||
|
|
||||||
|
Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
|
||||||
|
|
||||||
|
build-aux/version.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
commit dec11497a71518423b5ff0e759100cf8aadf6c7b
|
commit dec11497a71518423b5ff0e759100cf8aadf6c7b
|
||||||
Author: Lasse Collin <lasse.collin@tukaani.org>
|
Author: Lasse Collin <lasse.collin@tukaani.org>
|
||||||
Date: 2015-02-26 16:53:44 +0200
|
Date: 2015-02-26 16:53:44 +0200
|
||||||
|
@ -21,6 +21,7 @@ has been important. :-) In alphabetical order:
|
|||||||
- Milo Casagrande
|
- Milo Casagrande
|
||||||
- Marek Černocký
|
- Marek Černocký
|
||||||
- Tomer Chachamu
|
- Tomer Chachamu
|
||||||
|
- Gabi Davar
|
||||||
- Chris Donawa
|
- Chris Donawa
|
||||||
- Andrew Dudman
|
- Andrew Dudman
|
||||||
- Markus Duft
|
- Markus Duft
|
||||||
@ -29,6 +30,7 @@ has been important. :-) In alphabetical order:
|
|||||||
- Gilles Espinasse
|
- Gilles Espinasse
|
||||||
- Denis Excoffier
|
- Denis Excoffier
|
||||||
- Michael Felt
|
- Michael Felt
|
||||||
|
- Michael Fox
|
||||||
- Mike Frysinger
|
- Mike Frysinger
|
||||||
- Daniel Richard G.
|
- Daniel Richard G.
|
||||||
- Bill Glessner
|
- Bill Glessner
|
||||||
@ -74,6 +76,7 @@ has been important. :-) In alphabetical order:
|
|||||||
- Mikko Pouru
|
- Mikko Pouru
|
||||||
- Trần Ngọc Quân
|
- Trần Ngọc Quân
|
||||||
- Pavel Raiskup
|
- Pavel Raiskup
|
||||||
|
- Ole André Vadla Ravnås
|
||||||
- Robert Readman
|
- Robert Readman
|
||||||
- Bernhard Reutner-Fischer
|
- Bernhard Reutner-Fischer
|
||||||
- Eric S. Raymond
|
- Eric S. Raymond
|
||||||
@ -95,6 +98,7 @@ has been important. :-) In alphabetical order:
|
|||||||
- Alexey Tourbin
|
- Alexey Tourbin
|
||||||
- Patrick J. Volkerding
|
- Patrick J. Volkerding
|
||||||
- Martin Väth
|
- Martin Väth
|
||||||
|
- Adam Walling
|
||||||
- Christian Weisgerber
|
- Christian Weisgerber
|
||||||
- Bert Wesarg
|
- Bert Wesarg
|
||||||
- Fredrik Wikstrom
|
- Fredrik Wikstrom
|
||||||
|
@ -37,7 +37,10 @@
|
|||||||
# define __USE_INLINE__
|
# define __USE_INLINE__
|
||||||
# include <proto/exec.h>
|
# include <proto/exec.h>
|
||||||
|
|
||||||
// AIX
|
#elif defined(__QNX__)
|
||||||
|
# include <sys/syspage.h>
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
#elif defined(TUKLIB_PHYSMEM_AIX)
|
#elif defined(TUKLIB_PHYSMEM_AIX)
|
||||||
# include <sys/systemcfg.h>
|
# include <sys/systemcfg.h>
|
||||||
|
|
||||||
@ -126,6 +129,15 @@ tuklib_physmem(void)
|
|||||||
#elif defined(AMIGA) || defined(__AROS__)
|
#elif defined(AMIGA) || defined(__AROS__)
|
||||||
ret = AvailMem(MEMF_TOTAL);
|
ret = AvailMem(MEMF_TOTAL);
|
||||||
|
|
||||||
|
#elif defined(__QNX__)
|
||||||
|
const struct asinfo_entry *entries = SYSPAGE_ENTRY(asinfo);
|
||||||
|
size_t count = SYSPAGE_ENTRY_SIZE(asinfo) / sizeof(struct asinfo_entry);
|
||||||
|
const char *strings = SYSPAGE_ENTRY(strings)->data;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < count; ++i)
|
||||||
|
if (strcmp(strings + entries[i].name, "ram") == 0)
|
||||||
|
ret += entries[i].end - entries[i].start + 1;
|
||||||
|
|
||||||
#elif defined(TUKLIB_PHYSMEM_AIX)
|
#elif defined(TUKLIB_PHYSMEM_AIX)
|
||||||
ret = _system_configuration.physmem;
|
ret = _system_configuration.physmem;
|
||||||
|
|
||||||
|
@ -82,12 +82,20 @@
|
|||||||
# if !defined(UINT32_C) || !defined(UINT64_C) \
|
# if !defined(UINT32_C) || !defined(UINT64_C) \
|
||||||
|| !defined(UINT32_MAX) || !defined(UINT64_MAX)
|
|| !defined(UINT32_MAX) || !defined(UINT64_MAX)
|
||||||
/*
|
/*
|
||||||
* MSVC has no C99 support, and thus it cannot be used to
|
* MSVC versions older than 2013 have no C99 support, and
|
||||||
* compile liblzma. The liblzma API has to still be usable
|
* thus they cannot be used to compile liblzma. Using an
|
||||||
* from MSVC, so we need to define the required standard
|
* existing liblzma.dll with old MSVC can work though(*),
|
||||||
* integer types here.
|
* but we need to define the required standard integer
|
||||||
|
* types here in a MSVC-specific way.
|
||||||
|
*
|
||||||
|
* (*) If you do this, the existing liblzma.dll probably uses
|
||||||
|
* a different runtime library than your MSVC-built
|
||||||
|
* application. Mixing runtimes is generally bad, but
|
||||||
|
* in this case it should work as long as you avoid
|
||||||
|
* the few rarely-needed liblzma functions that allocate
|
||||||
|
* memory and expect the caller to free it using free().
|
||||||
*/
|
*/
|
||||||
# if defined(_WIN32) && defined(_MSC_VER)
|
# if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1800
|
||||||
typedef unsigned __int8 uint8_t;
|
typedef unsigned __int8 uint8_t;
|
||||||
typedef unsigned __int32 uint32_t;
|
typedef unsigned __int32 uint32_t;
|
||||||
typedef unsigned __int64 uint64_t;
|
typedef unsigned __int64 uint64_t;
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
#define LZMA_VERSION_MAJOR 5
|
#define LZMA_VERSION_MAJOR 5
|
||||||
#define LZMA_VERSION_MINOR 2
|
#define LZMA_VERSION_MINOR 2
|
||||||
#define LZMA_VERSION_PATCH 1
|
#define LZMA_VERSION_PATCH 2
|
||||||
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
||||||
|
|
||||||
#ifndef LZMA_VERSION_COMMIT
|
#ifndef LZMA_VERSION_COMMIT
|
||||||
|
@ -339,7 +339,7 @@ index_tree_locate(const index_tree *tree, lzma_vli target)
|
|||||||
/// Allocate and initialize a new Stream using the given base offsets.
|
/// Allocate and initialize a new Stream using the given base offsets.
|
||||||
static index_stream *
|
static index_stream *
|
||||||
index_stream_init(lzma_vli compressed_base, lzma_vli uncompressed_base,
|
index_stream_init(lzma_vli compressed_base, lzma_vli uncompressed_base,
|
||||||
lzma_vli stream_number, lzma_vli block_number_base,
|
uint32_t stream_number, lzma_vli block_number_base,
|
||||||
const lzma_allocator *allocator)
|
const lzma_allocator *allocator)
|
||||||
{
|
{
|
||||||
index_stream *s = lzma_alloc(sizeof(index_stream), allocator);
|
index_stream *s = lzma_alloc(sizeof(index_stream), allocator);
|
||||||
@ -1008,6 +1008,8 @@ iter_set_info(lzma_index_iter *iter)
|
|||||||
iter->internal[ITER_GROUP].p = NULL;
|
iter->internal[ITER_GROUP].p = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: lzma_index_iter.stream.number is lzma_vli but we use uint32_t
|
||||||
|
// internally.
|
||||||
iter->stream.number = stream->number;
|
iter->stream.number = stream->number;
|
||||||
iter->stream.block_count = stream->record_count;
|
iter->stream.block_count = stream->record_count;
|
||||||
iter->stream.compressed_offset = stream->node.compressed_base;
|
iter->stream.compressed_offset = stream->node.compressed_base;
|
||||||
|
@ -139,7 +139,7 @@ fill_window(lzma_coder *coder, const lzma_allocator *allocator,
|
|||||||
&& coder->mf.read_pos < coder->mf.read_limit) {
|
&& coder->mf.read_pos < coder->mf.read_limit) {
|
||||||
// Match finder may update coder->pending and expects it to
|
// Match finder may update coder->pending and expects it to
|
||||||
// start from zero, so use a temporary variable.
|
// start from zero, so use a temporary variable.
|
||||||
const size_t pending = coder->mf.pending;
|
const uint32_t pending = coder->mf.pending;
|
||||||
coder->mf.pending = 0;
|
coder->mf.pending = 0;
|
||||||
|
|
||||||
// Rewind read_pos so that the match finder can hash
|
// Rewind read_pos so that the match finder can hash
|
||||||
|
@ -464,7 +464,7 @@ length_encoder_reset(lzma_length_encoder *lencoder,
|
|||||||
bittree_reset(lencoder->high, LEN_HIGH_BITS);
|
bittree_reset(lencoder->high, LEN_HIGH_BITS);
|
||||||
|
|
||||||
if (!fast_mode)
|
if (!fast_mode)
|
||||||
for (size_t pos_state = 0; pos_state < num_pos_states;
|
for (uint32_t pos_state = 0; pos_state < num_pos_states;
|
||||||
++pos_state)
|
++pos_state)
|
||||||
length_update_prices(lencoder, pos_state);
|
length_update_prices(lencoder, pos_state);
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ typedef struct {
|
|||||||
char **arg_names;
|
char **arg_names;
|
||||||
|
|
||||||
/// Number of filenames from command line
|
/// Number of filenames from command line
|
||||||
size_t arg_count;
|
unsigned int arg_count;
|
||||||
|
|
||||||
/// Name of the file from which to read filenames. This is NULL
|
/// Name of the file from which to read filenames. This is NULL
|
||||||
/// if --files or --files0 was not used.
|
/// if --files or --files0 was not used.
|
||||||
|
@ -82,13 +82,7 @@ io_init(void)
|
|||||||
// we are root.
|
// we are root.
|
||||||
warn_fchown = geteuid() == 0;
|
warn_fchown = geteuid() == 0;
|
||||||
|
|
||||||
// Create a pipe for the self-pipe trick. If pipe2() is available,
|
// Create a pipe for the self-pipe trick.
|
||||||
// we can avoid the fcntl() calls.
|
|
||||||
# ifdef HAVE_PIPE2
|
|
||||||
if (pipe2(user_abort_pipe, O_NONBLOCK))
|
|
||||||
message_fatal(_("Error creating a pipe: %s"),
|
|
||||||
strerror(errno));
|
|
||||||
# else
|
|
||||||
if (pipe(user_abort_pipe))
|
if (pipe(user_abort_pipe))
|
||||||
message_fatal(_("Error creating a pipe: %s"),
|
message_fatal(_("Error creating a pipe: %s"),
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
@ -101,7 +95,6 @@ io_init(void)
|
|||||||
message_fatal(_("Error creating a pipe: %s"),
|
message_fatal(_("Error creating a pipe: %s"),
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
}
|
}
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __DJGPP__
|
#ifdef __DJGPP__
|
||||||
|
@ -212,7 +212,7 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
// Process the files given on the command line. Note that if no names
|
// Process the files given on the command line. Note that if no names
|
||||||
// were given, args_parse() gave us a fake "-" filename.
|
// were given, args_parse() gave us a fake "-" filename.
|
||||||
for (size_t i = 0; i < args.arg_count && !user_abort; ++i) {
|
for (unsigned i = 0; i < args.arg_count && !user_abort; ++i) {
|
||||||
if (strcmp("-", args.arg_names[i]) == 0) {
|
if (strcmp("-", args.arg_names[i]) == 0) {
|
||||||
// Processing from stdin to stdout. Check that we
|
// Processing from stdin to stdout. Check that we
|
||||||
// aren't writing compressed data to a terminal or
|
// aren't writing compressed data to a terminal or
|
||||||
|
@ -381,7 +381,7 @@ progress_speed(uint64_t uncompressed_pos, uint64_t elapsed)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Make a string indicating elapsed or remaining time. The format is either
|
/// Make a string indicating elapsed time. The format is either
|
||||||
/// M:SS or H:MM:SS depending on if the time is an hour or more.
|
/// M:SS or H:MM:SS depending on if the time is an hour or more.
|
||||||
static const char *
|
static const char *
|
||||||
progress_time(uint64_t mseconds)
|
progress_time(uint64_t mseconds)
|
||||||
@ -389,7 +389,8 @@ progress_time(uint64_t mseconds)
|
|||||||
// 9999 hours = 416 days
|
// 9999 hours = 416 days
|
||||||
static char buf[sizeof("9999:59:59")];
|
static char buf[sizeof("9999:59:59")];
|
||||||
|
|
||||||
uint32_t seconds = mseconds / 1000;
|
// 32-bit variable is enough for elapsed time (136 years).
|
||||||
|
uint32_t seconds = (uint32_t)(mseconds / 1000);
|
||||||
|
|
||||||
// Don't show anything if the time is zero or ridiculously big.
|
// Don't show anything if the time is zero or ridiculously big.
|
||||||
if (seconds == 0 || seconds > ((9999 * 60) + 59) * 60 + 59)
|
if (seconds == 0 || seconds > ((9999 * 60) + 59) * 60 + 59)
|
||||||
|
@ -59,7 +59,7 @@ typedef struct {
|
|||||||
static void
|
static void
|
||||||
parse_options(const char *str, const option_map *opts,
|
parse_options(const char *str, const option_map *opts,
|
||||||
void (*set)(void *filter_options,
|
void (*set)(void *filter_options,
|
||||||
uint32_t key, uint64_t value, const char *valuestr),
|
unsigned key, uint64_t value, const char *valuestr),
|
||||||
void *filter_options)
|
void *filter_options)
|
||||||
{
|
{
|
||||||
if (str == NULL || str[0] == '\0')
|
if (str == NULL || str[0] == '\0')
|
||||||
@ -87,7 +87,7 @@ parse_options(const char *str, const option_map *opts,
|
|||||||
"pairs separated with commas"), str);
|
"pairs separated with commas"), str);
|
||||||
|
|
||||||
// Look for the option name from the option map.
|
// Look for the option name from the option map.
|
||||||
size_t i = 0;
|
unsigned i = 0;
|
||||||
while (true) {
|
while (true) {
|
||||||
if (opts[i].name == NULL)
|
if (opts[i].name == NULL)
|
||||||
message_fatal(_("%s: Invalid option name"),
|
message_fatal(_("%s: Invalid option name"),
|
||||||
@ -103,7 +103,7 @@ parse_options(const char *str, const option_map *opts,
|
|||||||
if (opts[i].map != NULL) {
|
if (opts[i].map != NULL) {
|
||||||
// value is a string which we should map
|
// value is a string which we should map
|
||||||
// to an integer.
|
// to an integer.
|
||||||
size_t j;
|
unsigned j;
|
||||||
for (j = 0; opts[i].map[j].name != NULL; ++j) {
|
for (j = 0; opts[i].map[j].name != NULL; ++j) {
|
||||||
if (strcmp(opts[i].map[j].name, value) == 0)
|
if (strcmp(opts[i].map[j].name, value) == 0)
|
||||||
break;
|
break;
|
||||||
@ -149,7 +149,7 @@ enum {
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_delta(void *options, uint32_t key, uint64_t value,
|
set_delta(void *options, unsigned key, uint64_t value,
|
||||||
const char *valuestr lzma_attribute((__unused__)))
|
const char *valuestr lzma_attribute((__unused__)))
|
||||||
{
|
{
|
||||||
lzma_options_delta *opt = options;
|
lzma_options_delta *opt = options;
|
||||||
@ -193,7 +193,7 @@ enum {
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_bcj(void *options, uint32_t key, uint64_t value,
|
set_bcj(void *options, unsigned key, uint64_t value,
|
||||||
const char *valuestr lzma_attribute((__unused__)))
|
const char *valuestr lzma_attribute((__unused__)))
|
||||||
{
|
{
|
||||||
lzma_options_bcj *opt = options;
|
lzma_options_bcj *opt = options;
|
||||||
@ -249,7 +249,7 @@ error_lzma_preset(const char *valuestr)
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_lzma(void *options, uint32_t key, uint64_t value, const char *valuestr)
|
set_lzma(void *options, unsigned key, uint64_t value, const char *valuestr)
|
||||||
{
|
{
|
||||||
lzma_options_lzma *opt = options;
|
lzma_options_lzma *opt = options;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
.\" This file has been put into the public domain.
|
.\" This file has been put into the public domain.
|
||||||
.\" You can do whatever you want with this file.
|
.\" You can do whatever you want with this file.
|
||||||
.\"
|
.\"
|
||||||
.TH XZ 1 "2014-12-16" "Tukaani" "XZ Utils"
|
.TH XZ 1 "2015-05-11" "Tukaani" "XZ Utils"
|
||||||
.
|
.
|
||||||
.SH NAME
|
.SH NAME
|
||||||
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
|
xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
|
||||||
@ -1055,6 +1055,14 @@ The default block size depends on the compression level and
|
|||||||
can be overriden with the
|
can be overriden with the
|
||||||
.BI \-\-block\-size= size
|
.BI \-\-block\-size= size
|
||||||
option.
|
option.
|
||||||
|
.IP ""
|
||||||
|
Threaded decompression hasn't been implemented yet.
|
||||||
|
It will only work on files that contain multiple blocks
|
||||||
|
with size information in block headers.
|
||||||
|
All files compressed in multi-threaded mode meet this condition,
|
||||||
|
but files compressed in single-threaded mode don't even if
|
||||||
|
.BI \-\-block\-size= size
|
||||||
|
is used.
|
||||||
.
|
.
|
||||||
.SS "Custom compressor filter chains"
|
.SS "Custom compressor filter chains"
|
||||||
A custom filter chain allows specifying
|
A custom filter chain allows specifying
|
||||||
|
@ -188,9 +188,6 @@
|
|||||||
/* Define to 1 if getopt.h declares extern int optreset. */
|
/* Define to 1 if getopt.h declares extern int optreset. */
|
||||||
#define HAVE_OPTRESET 1
|
#define HAVE_OPTRESET 1
|
||||||
|
|
||||||
/* Define to 1 if you have the `pipe2' function. */
|
|
||||||
#define HAVE_PIPE2 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `posix_fadvise' function. */
|
/* Define to 1 if you have the `posix_fadvise' function. */
|
||||||
#define HAVE_POSIX_FADVISE 1
|
#define HAVE_POSIX_FADVISE 1
|
||||||
|
|
||||||
@ -326,7 +323,7 @@
|
|||||||
#define PACKAGE_NAME "XZ Utils"
|
#define PACKAGE_NAME "XZ Utils"
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
/* Define to the full name and version of this package. */
|
||||||
#define PACKAGE_STRING "XZ Utils 5.2.1"
|
#define PACKAGE_STRING "XZ Utils 5.2.2"
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
/* Define to the one symbol short name of this package. */
|
||||||
#define PACKAGE_TARNAME "xz"
|
#define PACKAGE_TARNAME "xz"
|
||||||
@ -335,7 +332,7 @@
|
|||||||
#define PACKAGE_URL "http://tukaani.org/xz/"
|
#define PACKAGE_URL "http://tukaani.org/xz/"
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
/* Define to the version of this package. */
|
||||||
#define PACKAGE_VERSION "5.2.1"
|
#define PACKAGE_VERSION "5.2.2"
|
||||||
|
|
||||||
/* Define to necessary symbol if this constant uses a non-standard name on
|
/* Define to necessary symbol if this constant uses a non-standard name on
|
||||||
your system. */
|
your system. */
|
||||||
@ -419,7 +416,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Version number of package */
|
/* Version number of package */
|
||||||
#define VERSION "5.2.1"
|
#define VERSION "5.2.2"
|
||||||
|
|
||||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||||
|
Loading…
Reference in New Issue
Block a user